satisfiability modulo theories and assignments
play

Satisfiability Modulo Theories and Assignments Maria Paola Bonacina, - PowerPoint PPT Presentation

Satisfiability Modulo Theories and Assignments Maria Paola Bonacina, Stphane Graham-Lengrand, and Natarajan Shankar Uni. degli Studi di Verona - CNRS - SRI International CADE, 8th August 2017 1/39 This talk is about the quantifier-free core


  1. An example in Linear Rational Arithmetic l 0 : ( − 2 · x − y < 0) , l 2 : ( x < − 1) l 1 : ( x + y < 0) , unsatisfiable in LRA. Here’s how it could start: ◮ Guess a value, e.g. y ← 0 Then l 0 yields lower bound x > 0 Together with l 2 , range of possible values for x is empty What to do? just undo y ← 0 and remember that y � = 0? 7/39

  2. An example in Linear Rational Arithmetic l 0 : ( − 2 · x − y < 0) , l 2 : ( x < − 1) l 1 : ( x + y < 0) , unsatisfiable in LRA. Here’s how it could start: ◮ Guess a value, e.g. y ← 0 Then l 0 yields lower bound x > 0 Together with l 2 , range of possible values for x is empty What to do? just undo y ← 0 and remember that y � = 0? ◮ No! Clash of bounds suggests a better conflict explanation, by inferring l 0 + 2 l 2 , i.e. l 3 : ( − y < − 2) It rules out y ← 0, but also many values that would fail for the same reasons. 7/39

  3. An example in Linear Rational Arithmetic l 0 : ( − 2 · x − y < 0) , l 2 : ( x < − 1) l 1 : ( x + y < 0) , unsatisfiable in LRA. Here’s how it could start: ◮ Guess a value, e.g. y ← 0 Then l 0 yields lower bound x > 0 Together with l 2 , range of possible values for x is empty What to do? just undo y ← 0 and remember that y � = 0? ◮ No! Clash of bounds suggests a better conflict explanation, by inferring l 0 + 2 l 2 , i.e. l 3 : ( − y < − 2) It rules out y ← 0, but also many values that would fail for the same reasons. ◮ Now undo the guess but keep l 3 . 7/39

  4. An example in Linear Rational Arithmetic l 0 : ( − 2 · x − y < 0) , l 2 : ( x < − 1) l 1 : ( x + y < 0) , unsatisfiable in LRA. Here’s how it could start: ◮ Guess a value, e.g. y ← 0 Then l 0 yields lower bound x > 0 Together with l 2 , range of possible values for x is empty What to do? just undo y ← 0 and remember that y � = 0? ◮ No! Clash of bounds suggests a better conflict explanation, by inferring l 0 + 2 l 2 , i.e. l 3 : ( − y < − 2) It rules out y ← 0, but also many values that would fail for the same reasons. ◮ Now undo the guess but keep l 3 . ◮ and so on. . . (when there is no guess to undo, problem is UNSAT) 7/39

  5. Using conflict-driven reasoning in the traditional scheme? T 1 T 2 SAT-solver (CDCL) Comb. T 3 T 4 T 5 8/39

  6. Using conflict-driven reasoning in the traditional scheme? T 1 T 2 SAT-solver (CDCL) Comb. T 3 T 4 T 5 8/39

  7. Using conflict-driven reasoning in the traditional scheme? T 1 T 2 SAT-solver (CDCL) Comb. T 3 T 4 T 5 Missing out on tighter integration possibilities, which overcome some limitations of the DPLL( T ) interfaces 8/39

  8. A recent approach: MCSAT (Model-Constructing Sat.) MCSAT, introduced in [dMJ13, JBdM13], ◮ departs from the DPLL( T ) architecture ◮ organises some combinations into a single conflict-driven loop: Trail contains l b u ◮ Boolean assignments e d i l d o i m n g a ← true ◮ First-order assignments . . . y ← 3 / 4 . . . p g r o n i o d f i l b u 9/39

  9. A recent approach: MCSAT (Model-Constructing Sat.) MCSAT, introduced in [dMJ13, JBdM13], ◮ departs from the DPLL( T ) architecture ◮ organises some combinations into a single conflict-driven loop: Trail contains Bool l b u ◮ Boolean assignments e d i l d o i m n g a ← true T ◮ First-order assignments . . . y ← 3 / 4 . . . T p g “Some combinations”: r o n i o d f i l b u Bool ◮ Boolean theory + 1 generic theory T [dMJ13, Jov17] 9/39

  10. A recent approach: MCSAT (Model-Constructing Sat.) MCSAT, introduced in [dMJ13, JBdM13], ◮ departs from the DPLL( T ) architecture ◮ organises some combinations into a single conflict-driven loop: Trail contains Bool l b u ◮ Boolean assignments e d i l d o i m n g a ← true LRA ◮ First-order assignments . . . y ← 3 / 4 . . . EUF LRA p g “Some combinations”: r o n i o d f i l b u Bool ◮ Boolean theory + 1 generic theory T [dMJ13, Jov17] ◮ Boolean theory + Linear Rational Arithmetic (LRA) + Equality with Uninterpreted Functions (EUF) [JBdM13] 9/39

  11. A recent approach: MCSAT (Model-Constructing Sat.) MCSAT, introduced in [dMJ13, JBdM13], ◮ departs from the DPLL( T ) architecture ◮ organises some combinations into a single conflict-driven loop: Trail contains l b u ◮ Boolean assignments e d i l d o i m n g a ← true ◮ First-order assignments . . . y ← 3 / 4 . . . p g “Some combinations”: r o n i o d f i l b u ◮ Boolean theory + 1 generic theory T [dMJ13, Jov17] ◮ Boolean theory + Linear Rational Arithmetic (LRA) + Equality with Uninterpreted Functions (EUF) [JBdM13] Other MCSAT contributions: bit-vectors [ZWR16, GLJ17] 9/39

  12. Features of model-constructing satisfiability ◮ Boolean theory can have the same status as other theories. ◮ Natively overcomes some limitations of the (basic) DPLL( T ) interfaces: ◮ in order to explain conflicts, terms and literals are exchanged that do not belong to the original problem, providing in some cases exponential speed-ups (already the case in some extensions of DPLL( T ) - see Splitting on demand [BNOT06]); 10/39

  13. Features of model-constructing satisfiability ◮ Boolean theory can have the same status as other theories. ◮ Natively overcomes some limitations of the (basic) DPLL( T ) interfaces: ◮ in order to explain conflicts, terms and literals are exchanged that do not belong to the original problem, providing in some cases exponential speed-ups (already the case in some extensions of DPLL( T ) - see Splitting on demand [BNOT06]); ◮ determining the truth-value of a literal can be done by evaluation (when its variables are assigned values on the trail); 10/39

  14. Features of model-constructing satisfiability ◮ Boolean theory can have the same status as other theories. ◮ Natively overcomes some limitations of the (basic) DPLL( T ) interfaces: ◮ in order to explain conflicts, terms and literals are exchanged that do not belong to the original problem, providing in some cases exponential speed-ups (already the case in some extensions of DPLL( T ) - see Splitting on demand [BNOT06]); ◮ determining the truth-value of a literal can be done by evaluation (when its variables are assigned values on the trail); ◮ communicating entailed equalities like t 1 ≃ t 2 may be subsumed by the fact that the putative partial model written on the trail determines this equality evaluates to true; 10/39

  15. Features of model-constructing satisfiability ◮ Boolean theory can have the same status as other theories. ◮ Natively overcomes some limitations of the (basic) DPLL( T ) interfaces: ◮ in order to explain conflicts, terms and literals are exchanged that do not belong to the original problem, providing in some cases exponential speed-ups (already the case in some extensions of DPLL( T ) - see Splitting on demand [BNOT06]); ◮ determining the truth-value of a literal can be done by evaluation (when its variables are assigned values on the trail); ◮ communicating entailed equalities like t 1 ≃ t 2 may be subsumed by the fact that the putative partial model written on the trail determines this equality evaluates to true; ◮ when a theory T has to decide a value for an assignment, its choice may be informed by inspecting what assignments other theories have written on the trail. 10/39

  16. Model-constructing sat. / Conflict-driven reasoning I reserve Model-Constructing satisfiability for the instances of conflict-driven reasoning where theories have canonical models: If a formula is not valid, a counter-example can be built in that model. e.g. Boolean logic, integer arithmetic, real arithmetic, bitvectors. . . 11/39

  17. Model-constructing sat. / Conflict-driven reasoning I reserve Model-Constructing satisfiability for the instances of conflict-driven reasoning where theories have canonical models: If a formula is not valid, a counter-example can be built in that model. e.g. Boolean logic, integer arithmetic, real arithmetic, bitvectors. . . ◮ Interpretation of sorts is fixed and known in advance (no cardinality issues); ◮ Symbols are either interpreted or uninterpreted. 11/39

  18. Model-constructing sat. / Conflict-driven reasoning I reserve Model-Constructing satisfiability for the instances of conflict-driven reasoning where theories have canonical models: If a formula is not valid, a counter-example can be built in that model. e.g. Boolean logic, integer arithmetic, real arithmetic, bitvectors. . . ◮ Interpretation of sorts is fixed and known in advance (no cardinality issues); ◮ Symbols are either interpreted or uninterpreted. Left to be determined: the interpretation of variables and uninterpreted symbols. 11/39

  19. This leaves open the following questions ◮ Specific combinations of MCSAT theories seem simple. . . . . . once we know how all sorts are interpreted, and for each sort there is a clear theory that “owns” it (i.e. is in charge of proposing assignments in that sort) 12/39

  20. This leaves open the following questions ◮ Specific combinations of MCSAT theories seem simple. . . . . . once we know how all sorts are interpreted, and for each sort there is a clear theory that “owns” it (i.e. is in charge of proposing assignments in that sort) ◮ What about the generic combination of n MCSAT theories T 1 , . . . , T n ? What do we need to know about them? i.e. what requirements can we enforce to ensure soundness, completeness, and termination of their combination? 12/39

  21. This leaves open the following questions ◮ Specific combinations of MCSAT theories seem simple. . . . . . once we know how all sorts are interpreted, and for each sort there is a clear theory that “owns” it (i.e. is in charge of proposing assignments in that sort) ◮ What about the generic combination of n MCSAT theories T 1 , . . . , T n ? What do we need to know about them? i.e. what requirements can we enforce to ensure soundness, completeness, and termination of their combination? ◮ What about the generic combination of n theories in general? (e.g. it is not clear which sorts they “own”, they may not have a canonical model, etc) 12/39

  22. This leaves open the following questions ◮ Specific combinations of MCSAT theories seem simple. . . . . . once we know how all sorts are interpreted, and for each sort there is a clear theory that “owns” it (i.e. is in charge of proposing assignments in that sort) ◮ What about the generic combination of n MCSAT theories T 1 , . . . , T n ? What do we need to know about them? i.e. what requirements can we enforce to ensure soundness, completeness, and termination of their combination? ◮ What about the generic combination of n theories in general? (e.g. it is not clear which sorts they “own”, they may not have a canonical model, etc) In particular, what about theories for which we have a black box fit for the equality-sharing / Nelson-Oppen scheme? 12/39

  23. This leaves open the following questions ◮ Specific combinations of MCSAT theories seem simple. . . . . . once we know how all sorts are interpreted, and for each sort there is a clear theory that “owns” it (i.e. is in charge of proposing assignments in that sort) ◮ What about the generic combination of n MCSAT theories T 1 , . . . , T n ? What do we need to know about them? i.e. what requirements can we enforce to ensure soundness, completeness, and termination of their combination? ◮ What about the generic combination of n theories in general? (e.g. it is not clear which sorts they “own”, they may not have a canonical model, etc) In particular, what about theories for which we have a black box fit for the equality-sharing / Nelson-Oppen scheme? Is there a way to integrate or generalize both MCSAT and the equality sharing scheme? 12/39

  24. The answer: CDSAT We answer these questions in a framework called CDSAT for Conflict-Driven Satisfiability. ◮ CDSAT generalises conflict-driven reasoning to generic combinations of disjoint theories T 1 , . . . , T n ◮ CDSAT solves the problem of combining multiple conflict-driven T k -satisfiability procedures into a conflict-driven ( � n k =1 T k )-satisfiability procedure ◮ CDSAT reduces to MCSAT when it combines Boolean reasoning with 1 MCSAT-procedure ◮ CDSAT can integrate black-box procedures, and reduces to the equality-sharing scheme if only such procedures are used 13/39

  25. The answer: CDSAT We answer these questions in a framework called CDSAT for Conflict-Driven Satisfiability. ◮ CDSAT generalises conflict-driven reasoning to generic combinations of disjoint theories T 1 , . . . , T n ◮ CDSAT solves the problem of combining multiple conflict-driven T k -satisfiability procedures into a conflict-driven ( � n k =1 T k )-satisfiability procedure ◮ CDSAT reduces to MCSAT when it combines Boolean reasoning with 1 MCSAT-procedure ◮ CDSAT can integrate black-box procedures, and reduces to the equality-sharing scheme if only such procedures are used We identify sufficient requirements on theory reasoning modules for the combined system to be sound, complete, and terminating. 13/39

  26. 2. The CDSAT framework 14/39

  27. The global picture . . . is roughly the same as before (all theories somehow participate to the main conflict-driven loop): T 2 l b u e i d l d T 1 o T 3 i m n g . . . . . . p g r T 6 n T 4 o i o d f l i b u T 5 15/39

  28. The global picture . . . is roughly the same as before (all theories somehow participate to the main conflict-driven loop): T 2 l b u e i d l d T 1 o T 3 i m n g . . . . . . p g r T 6 n T 4 o i o d f l i b u T 5 . . . except that it it now parametric in T 1 , . . . , T n . 15/39

  29. The global picture . . . is roughly the same as before (all theories somehow participate to the main conflict-driven loop): T 2 l b u e i d l d T 1 o T 3 i m n g . . . . . . p g r T 6 n T 4 o i o d f l i b u T 5 . . . except that it it now parametric in T 1 , . . . , T n . The trail is made of single assignments t ← c (term+value of matching sorts) coming from different theories (+ some structure). 15/39

  30. The global picture . . . is roughly the same as before (all theories somehow participate to the main conflict-driven loop): T 2 l b u e i d l d T 1 o T 3 i m n g . . . . . . p g r T 6 n T 4 o i o d f l i b u T 5 . . . except that it it now parametric in T 1 , . . . , T n . The trail is made of single assignments t ← c (term+value of matching sorts) coming from different theories (+ some structure). Everything is on the trail, including assertions from the input problem (e.g. C ← true for an input clause C ) 15/39

  31. Where are the values taken from? For each theory T to combine, and each sort that it knows of, we must specify a pool of T -values to use in assignments: √ e.g., if we want to solve ( x · x ≃ 2), we may want to write x ← 2. 16/39

  32. Where are the values taken from? For each theory T to combine, and each sort that it knows of, we must specify a pool of T -values to use in assignments: √ e.g., if we want to solve ( x · x ≃ 2), we may want to write x ← 2. Typically for MCSAT theories, T -values are the domain elements in the canonical model. 16/39

  33. Where are the values taken from? For each theory T to combine, and each sort that it knows of, we must specify a pool of T -values to use in assignments: √ e.g., if we want to solve ( x · x ≃ 2), we may want to write x ← 2. Typically for MCSAT theories, T -values are the domain elements in the canonical model. Values can be seen as new constants extending T ’s language. 16/39

  34. Where are the values taken from? For each theory T to combine, and each sort that it knows of, we must specify a pool of T -values to use in assignments: √ e.g., if we want to solve ( x · x ≃ 2), we may want to write x ← 2. Typically for MCSAT theories, T -values are the domain elements in the canonical model. Values can be seen as new constants extending T ’s language. These new constants satisfy some particular properties w.r.t T √ √ 2 ≃ 2): these are specified in an extension T + of T in (e.g. 2 · the extended language. 16/39

  35. Where are the values taken from? For each theory T to combine, and each sort that it knows of, we must specify a pool of T -values to use in assignments: √ e.g., if we want to solve ( x · x ≃ 2), we may want to write x ← 2. Typically for MCSAT theories, T -values are the domain elements in the canonical model. Values can be seen as new constants extending T ’s language. These new constants satisfy some particular properties w.r.t T √ √ 2 ≃ 2): these are specified in an extension T + of T in (e.g. 2 · the extended language. T + must be a conservative extension of T (problems in the original language that are T + -unsat are T -unsat). 16/39

  36. Where are the values taken from? For each theory T to combine, and each sort that it knows of, we must specify a pool of T -values to use in assignments: √ e.g., if we want to solve ( x · x ≃ 2), we may want to write x ← 2. Typically for MCSAT theories, T -values are the domain elements in the canonical model. Values can be seen as new constants extending T ’s language. These new constants satisfy some particular properties w.r.t T √ √ 2 ≃ 2): these are specified in an extension T + of T in (e.g. 2 · the extended language. T + must be a conservative extension of T (problems in the original language that are T + -unsat are T -unsat). We may leave some or all of the sorts without T -values: T will not publish on the trail assignments for terms of those sorts. 16/39

  37. Where are the values taken from? For each theory T to combine, and each sort that it knows of, we must specify a pool of T -values to use in assignments: √ e.g., if we want to solve ( x · x ≃ 2), we may want to write x ← 2. Typically for MCSAT theories, T -values are the domain elements in the canonical model. Values can be seen as new constants extending T ’s language. These new constants satisfy some particular properties w.r.t T √ √ 2 ≃ 2): these are specified in an extension T + of T in (e.g. 2 · the extended language. T + must be a conservative extension of T (problems in the original language that are T + -unsat are T -unsat). We may leave some or all of the sorts without T -values: T will not publish on the trail assignments for terms of those sorts. Exception: every theory uses the two values true and false for sort Bool 16/39

  38. What does each theory see of the trail? When combining T and T ′ , if T writes u ← c on the trail, what can T ′ understand from it? 17/39

  39. What does each theory see of the trail? When combining T and T ′ , if T writes u ← c on the trail, what can T ′ understand from it? Not much! Only that if T writes u 1 ← c and u 2 ← c , T ′ understands the trail as if it contained u 1 ≃ u 2 . 17/39

  40. What does each theory see of the trail? When combining T and T ′ , if T writes u ← c on the trail, what can T ′ understand from it? Not much! Only that if T writes u 1 ← c and u 2 ← c , T ′ understands the trail as if it contained u 1 ≃ u 2 . Similarly if T writes u 1 ← c 1 and u 2 ← c 2 with two distinct values, T ′ understands the trail as if it contained u 1 �≃ u 2 . 17/39

  41. What does each theory see of the trail? When combining T and T ′ , if T writes u ← c on the trail, what can T ′ understand from it? Not much! Only that if T writes u 1 ← c and u 2 ← c , T ′ understands the trail as if it contained u 1 ≃ u 2 . Similarly if T writes u 1 ← c 1 and u 2 ← c 2 with two distinct values, T ′ understands the trail as if it contained u 1 �≃ u 2 . This is formalised as the T -view of the trail (this is a theoretical concept, no need to eagerly compute the equalities/disequalities at runtime) 17/39

  42. What does each theory see of the trail? When combining T and T ′ , if T writes u ← c on the trail, what can T ′ understand from it? Not much! Only that if T writes u 1 ← c and u 2 ← c , T ′ understands the trail as if it contained u 1 ≃ u 2 . Similarly if T writes u 1 ← c 1 and u 2 ← c 2 with two distinct values, T ′ understands the trail as if it contained u 1 �≃ u 2 . This is formalised as the T -view of the trail (this is a theoretical concept, no need to eagerly compute the equalities/disequalities at runtime) Exception: all theories understand Boolean assignments 17/39

  43. What is a theory module? A set of inferences of the form t 1 ← c 1 , . . . , t k ← c k ⊢ l ← b where ◮ each t i ← c i is a single T -assignment (a term and a T -value of matching sorts) ◮ l ← b is a single Boolean assignment (a term of sort Bool and a truth value) 18/39

  44. What is a theory module? A set of inferences of the form t 1 ← c 1 , . . . , t k ← c k ⊢ l ← b where ◮ each t i ← c i is a single T -assignment (a term and a T -value of matching sorts) ◮ l ← b is a single Boolean assignment (a term of sort Bool and a truth value) ◮ Soundness requirement: Every model of the premisses is a model of the conclusion 18/39

  45. What is a theory module? A set of inferences of the form t 1 ← c 1 , . . . , t k ← c k ⊢ l ← b where ◮ each t i ← c i is a single T -assignment (a term and a T -value of matching sorts) ◮ l ← b is a single Boolean assignment (a term of sort Bool and a truth value) ◮ Soundness requirement: Every model of the premisses is a model of the conclusion i.e. any T + -model of t 1 ≃ c 1 ∧ . . . ∧ t k ≃ c k is a model of l ≃ b 18/39

  46. What is a theory module? A set of inferences of the form t 1 ← c 1 , . . . , t k ← c k ⊢ l ← b where ◮ each t i ← c i is a single T -assignment (a term and a T -value of matching sorts) ◮ l ← b is a single Boolean assignment (a term of sort Bool and a truth value) ◮ Soundness requirement: Every model of the premisses is a model of the conclusion i.e. any T + -model of t 1 ≃ c 1 ∧ . . . ∧ t k ≃ c k is a model of l ≃ b √ √ Example : ( x ← 2) , ( y ← 2) ⊢ x · y ≃ 2 (evaluation inference) 18/39

  47. What is a theory module? A set of inferences of the form t 1 ← c 1 , . . . , t k ← c k ⊢ l ← b where ◮ each t i ← c i is a single T -assignment (a term and a T -value of matching sorts) ◮ l ← b is a single Boolean assignment (a term of sort Bool and a truth value) ◮ Soundness requirement: Every model of the premisses is a model of the conclusion i.e. any T + -model of t 1 ≃ c 1 ∧ . . . ∧ t k ≃ c k * is a model of l ≃ b √ √ Example : ( x ← 2) , ( y ← 2) ⊢ x · y ≃ 2 (evaluation inference) *that interprets distinct constants within c 1 , . . . , c k by distinct elements 18/39

  48. What is a theory module? (Equality inferences) All theory modules have the equality inferences: t 1 ← c 1 , t 2 ← c 2 ⊢ t 1 ≃ t 2 if c 1 and c 2 are the same value t 1 ← c 1 , t 2 ← c 2 ⊢ t 1 �≃ t 2 if c 1 and c 2 are distinct values ⊢ t 1 ≃ t 1 t 1 ≃ t 2 ⊢ t 2 ≃ t 1 t 1 ≃ t 2 , t 2 ≃ t 3 ⊢ t 1 ≃ t 3 19/39

  49. Trail . . . is a stack of justified assignments H ⊢ ( t ← c ) and decisions ? ( t ← c ) Justification H : a set of assignments that appear earlier on the trail Trail initialised with input problem (assignments with empty justifications). Example (trail grows downwards): id trail items just. ( l ← true) abbreviated as l 0 − 2 · x − y < 0 {} 1 x + y < 0 {} 2 x < − 1 {} 3 y ← 0 ? 4 − y < − 2 { 0 , 2 } 20/39

  50. Trail . . . is a stack of justified assignments H ⊢ ( t ← c ) and decisions ? ( t ← c ) Justification H : a set of assignments that appear earlier on the trail Trail initialised with input problem (assignments with empty justifications). Example (trail grows downwards): id trail items just. lev. ( l ← true) abbreviated as l 0 − 2 · x − y < 0 {} 0 1 x + y < 0 {} 0 Level: 2 x < − 1 {} 0 greatest decision involved 3 y ← 0 ? 1 4 − y < − 2 { 0 , 2 } 0 20/39

  51. Trail . . . is a stack of justified assignments H ⊢ ( t ← c ) and decisions ? ( t ← c ) Justification H : a set of assignments that appear earlier on the trail Trail initialised with input problem (assignments with empty justifications). Example (trail grows downwards): id trail items just. lev. ( l ← true) abbreviated as l 0 − 2 · x − y < 0 {} 0 1 x + y < 0 {} 0 Level: 2 x < − 1 {} 0 greatest decision involved 3 y ← 0 ? 1 4 − y < − 2 { 0 , 2 } 0 Here: conflict of level 1 (if conflict is of level 0. . . . . . problem is unsat) 20/39

  52. CDSAT: Search rules Let T be a theory with a specific T -module. Decide Γ − → Γ , ? ( t ← c ) Deduce Γ − → Γ , J ⊢ ( t ← b ) if J ⊢ T ( t ← b ) and J ⊆ Γ, and t ← b is not in Γ, Conflict Γ − → � Γ; J , ( t ← b ) � if J ⊢ T ( t ← b ) and J ⊆ Γ, and t ← b is in Γ 21/39

  53. CDSAT: Search rules Let T be a theory with a specific T -module. Decide Γ − → Γ , ? ( t ← c ) Deduce Γ − → Γ , J ⊢ ( t ← b ) if J ⊢ T ( t ← b ) and J ⊆ Γ, and t ← b is not in Γ, Conflict Γ − → � Γ; J , ( t ← b ) � if J ⊢ T ( t ← b ) and J ⊆ Γ, and t ← b is in Γ Conflict states � Γ; E � ( E conflicting set of assignments from Γ) are subject to conflict-solving rules similar to MCSAT and CDCL, like resolve: � Γ; E , ( t ← c ) � − → � Γ; E ∪ H � if H ⊢ ( t ← c ) is in Γ and. . . 21/39

  54. CDSAT: Search rules Let T be a theory with a specific T -module. Decide Γ − → Γ , ? ( t ← c ) Deduce Γ − → Γ , J ⊢ ( t ← b ) if J ⊢ T ( t ← b ) and J ⊆ Γ, and t ← b is not in Γ, and t is in B Conflict Γ − → � Γ; J , ( t ← b ) � if J ⊢ T ( t ← b ) and J ⊆ Γ, and t ← b is in Γ Conflict states � Γ; E � ( E conflicting set of assignments from Γ) are subject to conflict-solving rules similar to MCSAT and CDCL, like resolve: � Γ; E , ( t ← c ) � − → � Γ; E ∪ H � if H ⊢ ( t ← c ) is in Γ and. . . 21/39

  55. CDSAT: Search rules CDSAT is parameterized by finite set of terms B called global basis. Let T be a theory with a specific T -module. Decide Γ − → Γ , ? ( t ← c ) Deduce Γ − → Γ , J ⊢ ( t ← b ) if J ⊢ T ( t ← b ) and J ⊆ Γ, and t ← b is not in Γ, and t is in B Conflict Γ − → � Γ; J , ( t ← b ) � if J ⊢ T ( t ← b ) and J ⊆ Γ, and t ← b is in Γ Conflict states � Γ; E � ( E conflicting set of assignments from Γ) are subject to conflict-solving rules similar to MCSAT and CDCL, like resolve: � Γ; E , ( t ← c ) � − → � Γ; E ∪ H � if H ⊢ ( t ← c ) is in Γ and. . . 21/39

  56. CDSAT: Search rules CDSAT is parameterized by finite set of terms B called global basis. Let T be a theory with a specific T -module. Decide Γ − → Γ , ? ( t ← c ) if t ← c is “relevant & acceptable” given T ’s view of the trail Γ Deduce Γ − → Γ , J ⊢ ( t ← b ) if J ⊢ T ( t ← b ) and J ⊆ Γ, and t ← b is not in Γ, and t is in B Conflict Γ − → � Γ; J , ( t ← b ) � if J ⊢ T ( t ← b ) and J ⊆ Γ, and t ← b is in Γ Conflict states � Γ; E � ( E conflicting set of assignments from Γ) are subject to conflict-solving rules similar to MCSAT and CDCL, like resolve: � Γ; E , ( t ← c ) � − → � Γ; E ∪ H � if H ⊢ ( t ← c ) is in Γ and. . . 21/39

  57. An example with arithmetic, arrays, congruence f ( a [ i := v ][ j ]) ≃ w , w − 2 ≃ f ( u ) , i ≃ j , u ≃ v id trail items just. lev. 0 f ( a [ i := v ][ j ]) ≃ w {} 0 1 w − 2 ≃ f ( u ) {} 0 2 i ≃ j {} 0 3 u ≃ v {} 0 22/39

  58. An example with arithmetic, arrays, congruence f ( a [ i := v ][ j ]) ≃ w , w − 2 ≃ f ( u ) , i ≃ j , u ≃ v id trail items just. lev. 0 f ( a [ i := v ][ j ]) ≃ w {} 0 1 w − 2 ≃ f ( u ) {} 0 2 i ≃ j {} 0 3 u ≃ v {} 0 u ← c 4 ? 1 22/39

  59. An example with arithmetic, arrays, congruence f ( a [ i := v ][ j ]) ≃ w , w − 2 ≃ f ( u ) , i ≃ j , u ≃ v id trail items just. lev. 0 f ( a [ i := v ][ j ]) ≃ w {} 0 1 w − 2 ≃ f ( u ) {} 0 2 i ≃ j {} 0 3 u ≃ v {} 0 u ← c 4 ? 1 v ← c 5 ? 2 22/39

  60. An example with arithmetic, arrays, congruence f ( a [ i := v ][ j ]) ≃ w , w − 2 ≃ f ( u ) , i ≃ j , u ≃ v id trail items just. lev. 0 f ( a [ i := v ][ j ]) ≃ w {} 0 1 w − 2 ≃ f ( u ) {} 0 2 i ≃ j {} 0 3 u ≃ v {} 0 u ← c 4 ? 1 v ← c 5 ? 2 6 a [ i := v ][ j ] ← c ? 3 22/39

  61. An example with arithmetic, arrays, congruence f ( a [ i := v ][ j ]) ≃ w , w − 2 ≃ f ( u ) , i ≃ j , u ≃ v id trail items just. lev. 0 f ( a [ i := v ][ j ]) ≃ w {} 0 1 w − 2 ≃ f ( u ) {} 0 2 i ≃ j {} 0 3 u ≃ v {} 0 u ← c 4 ? 1 v ← c 5 ? 2 6 a [ i := v ][ j ] ← c ? 3 7 w ← 0 ? 4 22/39

  62. An example with arithmetic, arrays, congruence f ( a [ i := v ][ j ]) ≃ w , w − 2 ≃ f ( u ) , i ≃ j , u ≃ v id trail items just. lev. 0 f ( a [ i := v ][ j ]) ≃ w {} 0 1 w − 2 ≃ f ( u ) {} 0 2 i ≃ j {} 0 3 u ≃ v {} 0 u ← c 4 ? 1 v ← c 5 ? 2 6 a [ i := v ][ j ] ← c ? 3 7 w ← 0 ? 4 8 f ( a [ i := v ][ j ]) ← 0 ? 5 22/39

  63. An example with arithmetic, arrays, congruence f ( a [ i := v ][ j ]) ≃ w , w − 2 ≃ f ( u ) , i ≃ j , u ≃ v id trail items just. lev. 0 f ( a [ i := v ][ j ]) ≃ w {} 0 1 w − 2 ≃ f ( u ) {} 0 2 i ≃ j {} 0 3 u ≃ v {} 0 u ← c 4 ? 1 v ← c 5 ? 2 6 a [ i := v ][ j ] ← c ? 3 7 w ← 0 ? 4 8 f ( a [ i := v ][ j ]) ← 0 ? 5 9 f ( u ) ←− 2 ? 6 22/39

  64. An example with arithmetic, arrays, congruence f ( a [ i := v ][ j ]) ≃ w , w − 2 ≃ f ( u ) , i ≃ j , u ≃ v id trail items just. lev. 0 f ( a [ i := v ][ j ]) ≃ w {} 0 1 w − 2 ≃ f ( u ) {} 0 2 i ≃ j {} 0 3 u ≃ v {} 0 u ← c 4 ? 1 v ← c 5 ? 2 6 a [ i := v ][ j ] ← c ? 3 7 w ← 0 ? 4 8 f ( a [ i := v ][ j ]) ← 0 ? 5 9 f ( u ) ←− 2 ? 6 10 u ≃ a [ i := v ][ j ] { 4 , 6 } 3 22/39

  65. An example with arithmetic, arrays, congruence f ( a [ i := v ][ j ]) ≃ w , w − 2 ≃ f ( u ) , i ≃ j , u ≃ v id trail items just. lev. 0 f ( a [ i := v ][ j ]) ≃ w {} 0 1 w − 2 ≃ f ( u ) {} 0 2 i ≃ j {} 0 3 u ≃ v {} 0 u ← c 4 ? 1 v ← c 5 ? 2 6 a [ i := v ][ j ] ← c ? 3 7 w ← 0 ? 4 8 f ( a [ i := v ][ j ]) ← 0 ? 5 9 f ( u ) ←− 2 ? 6 10 u ≃ a [ i := v ][ j ] { 4 , 6 } 3 11 f ( u ) �≃ f ( a [ i := v ][ j ]) { 8 , 9 } 6 22/39

  66. An example with arithmetic, arrays, congruence f ( a [ i := v ][ j ]) ≃ w , w − 2 ≃ f ( u ) , i ≃ j , u ≃ v id trail items just. lev. 0 f ( a [ i := v ][ j ]) ≃ w {} 0 1 w − 2 ≃ f ( u ) {} 0 2 i ≃ j {} 0 3 u ≃ v {} 0 u ← c 4 ? 1 v ← c 5 ? 2 6 a [ i := v ][ j ] ← c ? 3 7 w ← 0 ? 4 8 f ( a [ i := v ][ j ]) ← 0 ? 5 9 f ( u ) ←− 2 ? 6 10 u ≃ a [ i := v ][ j ] { 4 , 6 } 3 11 f ( u ) �≃ f ( a [ i := v ][ j ]) { 8 , 9 } 6 conflict E 1 : { 10 , 11 } 6 22/39

  67. An example with arithmetic, arrays, congruence f ( a [ i := v ][ j ]) ≃ w , w − 2 ≃ f ( u ) , i ≃ j , u ≃ v id trail items just. lev. id trail items just. lev. 0 f ( a [ i := v ][ j ]) ≃ w {} 0 0 f ( a [ i := v ][ j ]) ≃ w {} 0 1 w − 2 ≃ f ( u ) {} 0 1 w − 2 ≃ f ( u ) {} 0 2 i ≃ j {} 0 2 i ≃ j {} 0 3 u ≃ v {} 0 3 u ≃ v {} 0 u ← c 4 u ← c ? 1 4 ? 1 v ← c 5 v ← c ? 2 5 ? 2 6 a [ i := v ][ j ] ← c ? 3 6 a [ i := v ][ j ] ← c ? 3 7 w ← 0 ? 4 7 u ≃ a [ i := v ][ j ] { 4 , 6 } 3 8 f ( a [ i := v ][ j ]) ← 0 ? 5 8 f ( u ) ≃ f ( a [ i := v ][ j ]) { 7 } 3 9 f ( u ) ←− 2 ? 6 10 u ≃ a [ i := v ][ j ] { 4 , 6 } 3 11 f ( u ) �≃ f ( a [ i := v ][ j ]) { 8 , 9 } 6 conflict E 1 : { 10 , 11 } 6 22/39

  68. An example with arithmetic, arrays, congruence f ( a [ i := v ][ j ]) ≃ w , w − 2 ≃ f ( u ) , i ≃ j , u ≃ v id trail items just. lev. id trail items just. lev. 0 f ( a [ i := v ][ j ]) ≃ w {} 0 0 f ( a [ i := v ][ j ]) ≃ w {} 0 1 w − 2 ≃ f ( u ) {} 0 1 w − 2 ≃ f ( u ) {} 0 2 i ≃ j {} 0 2 i ≃ j {} 0 3 u ≃ v {} 0 3 u ≃ v {} 0 u ← c 4 u ← c ? 1 4 ? 1 v ← c 5 v ← c ? 2 5 ? 2 6 a [ i := v ][ j ] ← c ? 3 6 a [ i := v ][ j ] ← c ? 3 7 w ← 0 ? 4 7 u ≃ a [ i := v ][ j ] { 4 , 6 } 3 8 f ( a [ i := v ][ j ]) ← 0 ? 5 8 f ( u ) ≃ f ( a [ i := v ][ j ]) { 7 } 3 9 f ( u ) ←− 2 ? 6 10 u ≃ a [ i := v ][ j ] { 4 , 6 } 3 . . . 11 f ( u ) �≃ f ( a [ i := v ][ j ]) { 8 , 9 } 6 conflict E 1 : { 10 , 11 } 6 22/39

  69. 3. Termination, Soundness and Completeness 23/39

  70. Termination and Soundness Termination: Theorem: If the global basis B is finite, CDSAT terminates. 24/39

  71. Termination and Soundness Termination: Theorem: If the global basis B is finite, CDSAT terminates. How to determine B ? It should be sufficiently large to allow each theory module to explain its conflicts via deductions. 24/39

  72. Termination and Soundness Termination: Theorem: If the global basis B is finite, CDSAT terminates. How to determine B ? It should be sufficiently large to allow each theory module to explain its conflicts via deductions. For each theory module T involved, and all finite sets X of terms (think of it as the terms of the input), we must have a finite set of terms basis T ( X ), called local basis (those terms possibly introduced by T during the run) 24/39

  73. Termination and Soundness Termination: Theorem: If the global basis B is finite, CDSAT terminates. How to determine B ? It should be sufficiently large to allow each theory module to explain its conflicts via deductions. For each theory module T involved, and all finite sets X of terms (think of it as the terms of the input), we must have a finite set of terms basis T ( X ), called local basis (those terms possibly introduced by T during the run) If the local bases of T 1 , . . . , T n satisfy some (collective) properties, then it is possible to define a finite global basis B for � n k =1 T k . 24/39

  74. Termination and Soundness Termination: Theorem: If the global basis B is finite, CDSAT terminates. How to determine B ? It should be sufficiently large to allow each theory module to explain its conflicts via deductions. For each theory module T involved, and all finite sets X of terms (think of it as the terms of the input), we must have a finite set of terms basis T ( X ), called local basis (those terms possibly introduced by T during the run) If the local bases of T 1 , . . . , T n satisfy some (collective) properties, then it is possible to define a finite global basis B for � n k =1 T k . Soundness: Theorem: Since each theory module T is made of sound inferences, if the calculus ends with a conflict of level 0, then the input was unsat. (you can even get a proof) 24/39

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend