Equality Logic and Uninterpreted Functions
Download
Report
Transcript Equality Logic and Uninterpreted Functions
Generating minimum
transitivity constraints in
P-time for deciding
Equality Logic
Ofer Strichman and Mirron Rozanov
Technion, Haifa, Israel
Technion
1
Deciding Equality Logic (TE)
The eager approach: TE ! Pr
Bryant & Velev [BV-CAV’00] – Boolean satisfiability with
transitivity constraints.
Meir and Strichman [MS-CAV’05] – Yet another decision
procedure for equality logic.
This work: a ‘closure’ on [MS-CAV’05]
Technion
2
Basic notions
E: x = y Æ y = z Æ z x
(non-polar) Equality Graph:
y
x
z
Technion
3
From Equality to Propositional Logic
E : x1 = x2 Æ x2 = x3 Æ x1 x3
sk :
e1,2 Æ
e2,3 Æ :e1,3
x1
e1,3
[BV-CAV'00] – the Sparse method
x2
x3
Encode all edges with Boolean variables
Add transitivity constraints
Technion
4
From Equality to Propositional Logic
E : x1 = x2 Æ x2 = x3 Æ x1 x3
sk :
e1,2 Æ
e2,3 Æ :e1,3
x1
e1,3
[BV-CAV'00] – the Sparse method
x2
x3
Transitivity Constraints: For each cycle of size n,
forbid a true assignment to n-1 edges
T S = (e1,2 Æ e2,3 ! e1,3) Æ
(e1,2 Æ e1,3 ! e2,3) Æ
(e1,3 Æ e2,3 ! e1,2)
Check: sk Æ T S
Technion
5
From Equality to Propositional Logic
[BV-CAV'00] – the Sparse method
Thm-1: It is sufficient to constrain chord-free simple
cycles
e2
e1
e5
e3
e4
There can be an exponential number of chord-free
simple cycles…
Technion
6
From Equality to Propositional Logic
[BV-CAV'00] – the Sparse method
Make the graph ‘chordal’.
In a chordal graph, it is sufficient to constrain only triangles.
Polynomial # of edges and constraints.
# constraints = 3 £ #triangles
Technion
7
An improvement
[MS-CAV’05] – the RTC method
So far we did not consider the polarity of the edges.
E: x = y Æ y = z Æ z x
Assuming E is in Negation Normal Form
y
(polar) Equality Graph:
x
Technion
z
8
An improvement
Reduced Transitivity Constraints (RTC)
Here, T
R
= e3 Æ e2 ! e1 is sufficient
z
T
Allowing e.g.
:x = z, x = y, z y
T
e3
e1
x
F
e2
’:x = z, x = y, z = y
=
y
T
This is only true because of monotonicity of NNF
Technion
9
Definitions
Dfn-1: A contradictory cycle is a cycle with exactly
one disequality edge.
T
T
C=
T
T
F
Dfn-2: A contradictory Cycle C is constrained under
T if T does not allow such an assignment.
Technion
10
Main theorem
[MS-CAV’05]
Let T R be a conjunction of transitivity constraints.
If T R constrains all simple contradictory cycles
then
E is satisfiable iff sk Æ T R is satisfiable
The Equality
Formula
Technion
11
Transitivity: 5 constraints
RTC: 0 constraints
T
T
T
Transitivity: 5 constraints
RTC: 1 constraint
T
F
Technion
12
Applying RTC
How can we use the theorem without enumerating
contradictory cycles ?
Answer:
Consider
the chordal graph.
Still – which triangles ? which constraints?
Technion
14
The RTC solution
[MS-CAV’05]
x2
x0
x4
cache:
e0,2 Æ e1,2
e0,1 Æ e e
e
1,3
2,3
1,2
e2,4 Æ e3,4 e2,3
e0,2 Æ e0,4 e2,4
x1
x3
1) Exp # cycles to traverse 2) Not all cycles are simple.
Solution to 1): Stop before adding an existing constraint
Solution to 2): Explore only simple cycles
These solutions cannot be combined.
Technion
15
Constraining simple contradictory cycles
x7
1. Focus on each solid edge es separately
- (find its dashed Bi-connected component)
2. Make the graph chordal
x0
x2
x4
x3
x5
es
x1
Dowe
weneed:
need:
Do
Technion
x6
Æee3,6! !ee3,5 ??
5,6Æ
ee3,5
3,6
5,6
18
Constraining simple contradictory cycles
3. Remove a vertex xk that leans on an edge (xi,xj)
4. Is (xi,xj) on a simple cycle with es? O(|E|)
5. If yes, add (ek,i Æ ek,j ! ei,j)
x0
e5,6 Æ e3,6 e3,5
x2
x4
x3
x5
es
x1
Technion
x6
19
Constraining simple contradictory cycles
3.
Remove a vertex vk that leans on an edge (vi,vj)
4.
Does (vi,vj) on the same simple cycle with es?
5.
If yes, add (ek,i Æ ek,j ! ei,j)
x0
e5,6 Æ e3,6 e3,5
x2
x4
es
x1
x5
x3
Technion
x6
20
Correctness
The set of generated constraints is sufficient.
The set of generated constraints is necessary.
Technion
21
Random graphs (Satisfiable)
[MS-CAV’05]
Technion
22
Results – random graphs
400000
350000
Constraints
300000
250000
RTC
RTCS
200000
150000
100000
50000
0
10
30
50
70
% dashed
V=200, E=800, 16 random topologies
# constraints:
Run time:
reduction of 17%
reduction of 32%
Technion
23
Results – random graphs
450
400
run-time
350
300
250
RTC
RTCS
200
150
100
50
0
10
30
50
70
% dashed
V=200, E=800, 16 random topologies
# constraints:
Run time:
reduction of 17%
reduction of 32%
Technion
24
SMT benchmarks
Never really finished the implementation…
Our 4-5 experiments with them showed that
We still have a small advantage comparing to the Sparse method.
Yet Yices is much better….
A result of the Uninterpreted functions.
Are there formulas for which the eager approach still wins?
Generating meaningful equality formulas is hard…
Technion
25
A crafted example
2n assignments satisfy sk. None satisfy the theory.
Technion
26
Thank you
Technion
27
Results
Uclid benchmarks* (all unsat)
* Results strongly depend on the reduction method of Uninterpreted Functions.
Technion
28
Possible refutations of CNF’s generated by Sparse
Boolean
Encoding
Æ
B
Transitivity
constraints
TS
TR
B
P3
P2
P0
P4
TS–TR
P1
P2
ofaccording
the formtoe1the
Æmain
e2 ! theorem.
e3
AConstraints
P3 proof exists
Hypothesis: (T S – T R) clauses hardly participate in the proof
Thm: B is satisfiable ! B Æ (T S – T R) is satisfiable
Technion
32
T
R
CNF
B
T S- T R
TR
Average on:
10 graphs,
~890K clauses
All Unsat
Sparse: ~ 22 sec.
RTC: ~ 12 Sec.
B
Core
B – Boolean encoding
T R – RTC constraints
T S – Sparse constraints
T S- T R
Technion
33
Summary
The RTC method is ~dominant over the Sparse
method.
Open issue: find a P-time algorithm that exploits the
full power of the main theorem.
Technion
34
Example: Circuit Transformations
Stage 1
Stage 2
A pipeline processes data in stages
Data is processed in parallel – as in an
assembly line
Formal Model:
Stage 3
Technion
40
Example: Circuit Transformations
The maximum clock frequency depends
on the longest path between two latches
Note that the output of g is used
as input to k
We want to speed up the design by
postponing k to the third stage
Technion
41
Validating Circuit Transformations
?
=
Technion
42
Validating a compilation process
Target program
u1 = x1 + y1;
u2 = x2 + y2;
z = u1 u2 ;
Compilation
Source program
z = (x1 + y1) (x2 + y2);
Need to prove that:
(u1 = x1 + y1 u2 = x2 + y2 z = u1 u2) $ z = (x1 + y1) (x2 + y2)
Source
Target
Technion
43
Validating a compilation process
Target program
u1 = x1 + y1;
u2 = x2 + y2;
z = u1 u2 ;
Compilation
Source program
z = (x1 + y1) (x2 + y2);
Need to prove that:
(u1 = x1 + y1 u2 = x2 + y2 z = u1 u2) $ z = (x1 + y1) (x2 + y2)
f1
f2
g1
f1
f2
g2
Technion
44
Validating a compilation process
Instead, prove:
under functional consistency: for every uninterpreted function f
x = y ! f(x) = f(y)
Need to prove that:
(u1 = x1 + y1 u2 = x2 + y2 z = u1 u2) $ z = (x1 + y1) (x2 + y2)
Which translates to (via Ackermann’s
reduction):
g
f1
f2
1
f1
f2
g2
Technion
45
Definitions for the proof…
A Violating cycle under an assignment R:
F
eF
eT1
T
Either
dashed or
solid
T
eT2
This assignment violates T S but not necessarily T R
Technion
47
More definitions for the proof…
An edge e = (vi,vj) is equal under an assignment iff
there is an equality path between vi and vj all assigned
T under . Denote:
v3
F
T
T
v1
T
Technion
T
v2
48
More definitions for the proof…
An edge e = (vi,vj) is disequal under an assignment
iff there is a disequality path between vi and vj in
which the solid edge is the only one assigned false by
. Denote:
v3
F
T
T
v1
T
Technion
T
v2
49
Proof…
Observation 1:
The combination
is impossible if = R
(recall: R ² T R)
v3
F
T
T
v1
v2
Observation 2: if (v1,v3) is solid, then
Technion
50
ReConstructing S
Type 1:
Type 2:
It is not the case that
Otherwise it is not the case that
v3
v3
F
F
T
T
F
T
T
v1
T
v1
v2
Assign S (e23) = F
v2
Assign (e13) = T
In all other cases S = R
Technion
51
ReConstructing S
Starting from R, repeat until convergence:
(eT) := F in all Type 1 cycles
(eF) := T in all Type 2 cycles
All Type 1 and Type 2 triangles now satisfy T S
B is still satisfied (monotonicity of NNF)
Left to prove: all contradictory cycles are still
satisfied
Technion
52
Proof…
Invariant: contradictory cycles are not violating
throughout the reconstruction.
T
v3
F
T
F
T
T
v1
v2
contradicts the precondition to make this
assignment…
Technion
53
Proof…
Invariant: contradictory cycles are not violating
throughout the reconstruction.
v3
F
T
T
T
T
F
v1
v2
contradicts the precondition to make this
assignment…
Technion
54
Constraining simple contradictory cycles
The constraint e3,6 Æ e3,5 e5,6 is not added
x0
x1
x2
cache:
…
e5,6 Æ e4,6 e4,5
x4
x5
x3
x6
Open problem: constrain simple contradictory cycles in P time
Technion
55
Constraining simple contradictory cycles
the constraint
e3,6graph
Æ e3,5has
e35,6
is not
added, though needed
Suppose the
more
edges
Here we will stop, although …
cache:
x0
x1
…
e5,6 Æ e4,6 e4,5
x2
x4
x5
x3
x6
Open problem: constrain simple contradictory cycles in P time
Technion
56