SC Chapter 5 SMT Solving

Questions about the lecture 'Satisfiability Checking' of the RWTH Aachen Chapter 5 SMT Solving

Questions about the lecture 'Satisfiability Checking' of the RWTH Aachen Chapter 5 SMT Solving


Kartei Details

Karten 35
Sprache English
Kategorie Informatik
Stufe Universität
Erstellt / Aktualisiert 18.02.2017 / 27.02.2017
Weblink
https://card2brain.ch/box/20170218_sc_chapter_5_smt_solving
Einbinden
<iframe src="https://card2brain.ch/box/20170218_sc_chapter_5_smt_solving/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

What is the definition of SMT Solving?

Expand propositional logic with theories extending SAT to SAT-modulo-theories (SMT)

What is provided by the SMT community? [3]

1. SMT-LIB exists with language benchmarks tutorials

2. SMT-COMP exists with measuring performance and capabilities of tools

3. SMT workshops are held annually

What is the idea behind the eager approach of SMT? [2]

1. First theory and then SAT solver

2. Transformation of all NP-complete problems with polynomial effort to equivalent SAT problems // Not always most effective

What is the idea behind the full lazy approach of SMT?

First SAT solver and then theory

What are current implementations? [10]

1. UCLID

2. STP

3. Spear

4. Boolector

5. Beaver

6. SONOLAR

7. SWORD

8. CVC3

9. MathSAT

10. Z3

What is the definition of equality logic with uninterpreted functions? [6]

1. Propositional with equalities (P) and uninterpreted functions (F)

2. Both are NP-complete thus they model same decision problems

3. Input in NNF

 

4. Formula of propositional logic is phi^B

5. Formula with equalities is phi^E

6. Formula with equalities and uninterpreted functions is phi^UF

What is the effort of the removing constants algorithm in SMT?

Algorithm for phiUF in polynomial time

What is the idea of reducing phiUF to phiE? [2]

1. Replace f(a) by xf(a)

2. Assume that for all a,b in Dn that f(a)!=f(b) → a!=b

What are possible algorithms for reducing phi^UF to phi^E in SMT? [2]

1. Ackermann’s and 2. Bryant’s

What are the definitions of phi^E in Ackermann’s algorithm? [2]

1. phi^E := phi_flat \land phi_cong with phi_flat is a flattening of phi^UF and phi_cong is a conjunction of constraints for functional congruence

2. phi^E := phi_cong → phi_flat [which is the proper definition

How are the single function symbols replaced in Ackermann’s algorithm? [2]

1. Every F(x) is replaced by f_x in phi_flat

2. Every G(F(x)) is replaced by g_fx in phi_flat

How are the function pairs symbols replaced in Ackermann’s algorithm? [3]

1. or all pairs F(x),F(y) insert (x=y→f_x=f_y) into phi_cong

2. For all pairs G(F(x)),G(F(y)) insert (x=y→fx=fy \land fx=fy→g_fx=g_fy) into phi_cong

3. For all paris F(a,x),F(b,y) insert ((a=b \land x=y) → f_ax=f_by) into phi_cong

What are the characteristics of Bryant’s algorithm? [3]

1. Consider cases Fi*

2. Values of function are compared

3. Free mappings are considered fi and exchanged with F

Which methods exist to solve phi^E? [2]

1. E-graphs and 2. Sparse Method

What are the characteristics of E-graphs? [3]

1. Extract set E= (dashed) and E!= (solid)

2. Equality graph G^E(phi^E) = <V,E=,E!=>

3. Ignores boolean structure of phi^E representing an abstraction

What is the definition of the equality path in the E-graphs? [2]

1. Edges of E=

2. Written as x=*z with (x,z) not in E=

What is the definition of the disequality path in the E-graphs?

A equality path and one edge from E!=

What is the definition of the contradictory cycle in the E-graphs? [3]

1. If a disequality edge exists

2. For every two nodes x,y x=*y x!=*y holds

3. Simple if the smallest cycle

How can a E-graph be simplified? [2]

1. Replace all edges which are not part of a CC with false or true regarding if they are solid or dashed

2. Repeat this process till solved

What is the idea of the Sparse Method?

Transform phi^E to phi^PL

What is the definition of the Sparse Method basic algorithm? [3]

1. Replace equalities by boolean variables into phi_sk // So-called over-approximative propositional skeleton

2. Add transitivity constraints into phi_trans for each cycle in E-Graph // Otherwise they are lost

3. Check phi^PL := phi_sk \land phi_trans

How can Sparse Method be optimized? [3]

1. Only simple cycles

2. Only chord-free simple cycles

3. Make a graph chordal

How is a graph made chordal? [2]

1. Iff every cycle of length 4 or more has one chord

2. Only constraint triangles (polynomial effort)

What is the definition of the Sparse Method specific algorithm? [5]

1. Create phi_sk

2. Make a chordal version of G^E(phi^E)

3. phi_trans = true

4. Add to phi_trans for each triangle (ex \land ey) → ez

5. Return phi_sk \land phi_trans

What are the characteristics of finite-precision bit-vector arithmetic? [5]

1. Model bit-level operations (F and P) by boolean circuits

2. Use Tseitin’s encoding to generate phi^PL

3. Use SAT solver

4. Convert solution back to the theory

 

5. Efficient solution e.g. Clarke et al. With CBMC

What is the idea behind the less lazy approach of SMT?

Switches between SAT solver and theory

What are the steps of the full lazy algorithm of SMT? [5]

1. Put boolean abstraction of phi into SAT solver

2. If unsatisfiable return UNSAT

3. Put (in)equation set into theory solver

4. If satisfiable return SAT

5. Put explanation into SAT solver and move to step 2.

What are the characteristics of boolean abstraction (step one) of the full lazy algorithm of SMT? [2]

1. Each constraint is a boolean variable

2. Solve the PL formula with variable order and first false

What are the characteristics of (in)equation (step three) of the full lazy algorithm of SMT? [2]

1. Find conflicting true constraints

2. Compute a partition defining the equivalence classes of terms // Uninterpreted functions get their own equivalence classes

What are the characteristics of explanation (step five) of the full lazy algorithm of SMT?

Add conflicting constraints to PL formula

What are the steps of the less lazy algorithm of SMT? [5]

1. Init with no (dis)equations, empty partition and state=SAT

2. Put boolean abstraction of phi in CNF into SAT solver

3. If solution return SAT elseif unsatisfiable return UNSAT

4. Put (in)equation set into theory solver(s)

5. Put (partial) SAT or UNSAT explanation into SAT solver and move to step 3.

What should theory solvers of the less lazy approach of SMT do? [3]

1. Be incremental using previous for next check

2. Compute (minimal) infeasible subsets for a reason of unsatisfaction

3. Backtrack removing constraints in chronological order

What holds for the incremental feature of theory solvers of the less lazy approach of SMT? [2]

1. For new equation check previous disequations

2. For new disequations check them

What holds for the infeasible subset of theory solvers of the less lazy approach of SMT?

Set of equations proving t=t’ and disequation t=t’

What differs between less lazy approaches for SMT? [2]

1. Some approaches strictly divides between logical structure and theory constraints some not

2. E.g propagate in the SAT-solver bounds on theory variables