Title: Automated Theorem Proving Lecture 5
1Automated Theorem ProvingLecture 5
2Theory of lists
- ? Formula A ? ? ?
- A ? Atom t t t ? t
- t ? Term c car(t) cdr(t) cons(t,t)
- c ? SymConst
- Axioms
- ?x,y. car(cons(x,y)) x
- ?x,y. cdr(cons(x,y)) y
- Extend congruence closure to deal with these
axioms
3x cons(u,v) ? cons(car(x), cdr(x)) ? x
cons
cons
car
cdr
u
v
x
Car axiom ?x,y. car(cons(x,y)) x Cdr axiom
?x,y. cdr(cons(x,y)) y
4cons(u,v) cons(x,y) ? u ? x
cons
cons
u
v
x
y
Car axiom ?x,y. car(cons(x,y)) x Cdr axiom
?x,y. cdr(cons(x,y)) y
Suppose cons(x,y) cons(u,v) n. Then car(n)
x and car(n) u, which contradicts u ? x. Hence,
our current algorithm is incomplete.
5Problem There are not enough terms in the
e-graph.
Solution Whenever the term cons(u,v) exists in
the e-graph, add the term car(cons(u,v)) to the
e-graph.
cons(u,v) cons(x,y) ? u ? x
car
car
cons
cons
u
v
x
y
6cons(u,v) cons(x,y) ? v ? y
cons
cons
u
v
x
y
Problem There are not enough terms in the
e-graph.
Solution Whenever the term cons(u,v) exists in
the e-graph, add the term cdr(cons(u,v)) to the
e-graph.
7Algorithm
- Add terms to the e-graph as follows if cons(u,v)
- exists, add car(cons(u,v)) and cdr(cons(u,v))
- 2. Close the graph under congruence and the car
and - cdr axioms
- 3. If there is a disequality t1 ? t2 and an
equivalence - class containing both t1 and t2, return
unsatisfiable. - 4. Otherwise, return satisfiable.
8Completeness
- Definition Suppose ? and ? are equivalence
classes of G. - car(?) ? G iff ?u?? s.t. car(u) is a term in G.
- cdr(?) ? G iff ?u?? s.t. cdr(u) is a term in G.
- cons(?,?) ? G iff ?u??,v? ? s.t. cons(u,v) is a
term in G.
Definition Suppose t ? G. Then EC(t) is the
equivalence class containing t.
9G0 e-graph at the termination of the
algorithm Gi1 is obtained from Gi by adding
terms as follows
Case I
car
cdr
cons
u
v
If there are equivalence classes ?,? of Gi such
that cons(?,?) ? Gi
10Case II
car
car
car
car
cdr
u
If there is an equivalence class ? of Gi such
that car(?) ? Gi
cdr
cdr
cdr
car
cdr
u
If there is an equivalence class ? of Gi such
that cdr(?) ? Gi
11Model
Suppose Ik is the partial interpretation
corresponding to the e-graph Gk. Then Ik1
extends Ik for all k ? 0. The model is given by
the infinite union Uk?0 Ik.
12Theory of arrays
- ? Formula A ? ? ?
- A ? Atom t t t ? t m m m ? m
- t ? Term c Select(m,t)
- m ? MemTerm f Update(m,t,t)
- c ? SymConst
for all objects o and o, and memories m ? o
o ? Select(Update(m,o,v),o) v ? o ? o ?
Select(Update(m,o,v),o) Select(m,o)
Extend congruence closure with these axioms
13b Update(a,i,v) ? Select(b,i) u ? u ? v
Update
Select
a
i
v
b
u
14b Update(a,i,e) ? b Update(a,i,e) ? e ? e
Update
Update
b
a
i
e
a
e
Select(b,i) e and Select(b,i) e, which
contradicts e ? e. Hence, algorithm is
incomplete.
15Rule 1
Update
a
i
e
16b Update(a,i,e) ? b Update(a,i,e) ? e ? e
Update
Update
b
a
i
e
a
e
17 x Select(Update(a,i,e),j) ? i ? j ? y
Select(Update(a,i,e),j) ? i ? j ? x ? y
Select
Select
x
y
Update
Update
a
i
e
i
e
j
18Rule 2
Select
Update
j
a
i
e
19 x Select(Update(a,i,e),j) ? i ? j ? y
Select(Update(a,i,e),j) ? i ? j ? x ? y
Select
Select
x
y
Update
Update
a
i
e
i
e
j
20 Update(a,i,e) Update(a,i,e) ? Select(a,j)
? Select(a,j) ? i ? j ? i ? j
Select
Select
Update
Update
a
i
e
a
i
e
j
Suppose Update(a,i,e) Update(a,i,e)
n Select(n,j) Select(a,j) since i ?
j Select(n,j) Select(a,j) since i ? j Hence,
we get a contradiction
21Rule 3
Select
Update
j
a
i
e
22 Update(a,i,e) Update(a,i,e) ? Select(a,j)
? Select(a,j) ? i ? j ? i ? j
Select
Select
Update
Update
a
i
e
a
i
e
j
23Algorithm
- Construct e-graph G for initial set of
constraints - For each Update(a,b,c) ? G, add to G (Rule 1)
- - term Select(Update(a,b,c),b)
- constraint Select(Update(a,b,c),b) c
- Maintain e-graph G and set of disequalities D
- Iterate
- - Generate case split
- Add new terms, equalities, and disequalities
- to satisfy Rules 2 and 3
- - If satisfiable return else backtrack
24G, D
i j ? Select(Update(a,i,v),j) ? G
Case split
25G, D
i j ? Update(a,i,v) ? G ? Select(a,j) ? G
Case split
26Completeness
Similar to the theory of lists