a cdcl la solver
play

A CDCL(LA) Solver SPASS-SATT A CDCL(LA) Solver Translation: fun - PowerPoint PPT Presentation

SPASS-SATT A CDCL(LA) Solver SPASS-SATT A CDCL(LA) Solver Translation: fun (=SPASS) sated (=SATT) SPASS-SATT A CDCL(LA) Solver Translation: fun (=SPASS) sated (=SATT) being sick/tired of having fun Quantifier-Free Linear Arithmetic


  1. SMT-COMP 2018 QF_LIA (Main Track) QF_LRA (Main Track) QF_LIA = quantifier-free linear integer arithmetic QF_LRA = quantifier-free linear rational arithmetic Benchmarks: 6947 Benchmarks: 1649 Time limit: 1200s Time limit: 1200s Solved CPU time Solved CPU time Solver Solved Solver Solved Score Score Score Score SPASS-SATT 6587.626 72.048 6744 CVC4 1586.833 69.006 1566 Ctrl-Ergo 6221.467 156.086 6259 SPASS-SATT 1586.396 64.292 1590 MathSAT n 6135.114 164.626 6528 Yices 2.6.0 1583.186 63.901 1567 SMTInterpol 5915.623 204.123 6286 veriT 1568.212 79.840 1527 CVC4 5891.019 194.986 6357 SMTInterpol 1548.476 102.257 1521 MathSAT n 1536.458 107.673 1461 Yices 2.6.0 5867.976 209.452 6232 z3-4.7.1 n z3-4.7.1 n 5733.374 224.539 6195 1527.249 113.154 1435 SMTRAT-Rat 4049.914 515.394 3112 opensmt2 1498.663 131.674 1329 veriT 3155.162 295.434 2734 Ctrl-Ergo 1450.082 172.097 1354 SMTRAT-Rat 1297.891 275.918 984 SMTRAT-MCSAT 1090.526 409.015 711 5/25

  2. 6/25

  3. SAT and theory interaction: 6/25

  4. SAT and theory interaction: Theory solver extensions: 6/25

  5. SAT and theory interaction: Theory solver extensions: Data-structure improvements: 6/25

  6. SAT and theory interaction: Theory solver extensions: Data-structure improvements: Preprocessing: 6/25

  7. […] invented by our team […] invented & published by someone else […] never published but implemented SAT and theory interaction: • weakened early pruning [Sebastiani07] • unate propagations and bound refinements [Dutertre06] • decision recommendations [Yices] Theory solver extensions: • unit cube test [Bromberger16] • bounding transformation [Bromberger18] • simple rounding and bound propagation [Schrijver86] Data-structure improvements: • priority queue for pivot selection [pretty much everyone] • integer coefficients instead of rational coefficients [veriT] • backup instead of recalculation [pretty much everyone] Preprocessing: • if-then-else (reconstruction, lifting, simplification, bounding) [CVC4] • pseudo-Boolean inequalities [CVC4] • small CNF transformation [Weidenbach01] 6/25

  8. […] invented by our team […] invented & published by someone else […] never published but implemented SAT and theory interaction: • weakened early pruning [Sebastiani07] • unate propagations and bound refinements [Dutertre06] • decision recommendations [Yices] Theory solver extensions: • unit cube test [Bromberger16] • bounding transformation [Bromberger18] • simple rounding and bound propagation [Schrijver86] Data-structure improvements: • priority queue for pivot selection [pretty much everyone] • integer coefficients instead of rational coefficients [veriT] • backup instead of recalculation [pretty much everyone] Preprocessing: • if-then-else (reconstruction, lifting, simplification, bounding) [CVC4] • pseudo-Boolean inequalities [CVC4] • small CNF transformation [Weidenbach01] 6/25

  9. SAT and Theory Interaction 7/25

  10. SAT and Theory Interaction Bare minimum requirements: • theory check for complete model • return theory conflict for learning 7/25

  11. SAT and Theory Interaction Bare minimum requirements: • theory check for complete model • return theory conflict for learning (Weakened) early pruning [Sebastiani07] theory check for some partial models ( ⇒ early conflicts) • • weaker check if full check too expensive 7/25

  12. SAT and Theory Interaction Bare minimum requirements: • theory check for complete model • return theory conflict for learning (Weakened) early pruning [Sebastiani07] theory check for some partial models ( ⇒ early conflicts) • • weaker check if full check too expensive Theory Propagation • unate propagations and bound refinements [Dutertre06] 7/25

  13. SAT and Theory Interaction Bare minimum requirements: • theory check for complete model • return theory conflict for learning (Weakened) early pruning [Sebastiani07] theory check for some partial models ( ⇒ early conflicts) • • weaker check if full check too expensive Theory Propagation • unate propagations and bound refinements [Dutertre06] SAT heuristics based on theory knowledge • decision recommendations [Yices] 7/25

  14. SAT and Theory Interaction (Weakened) early pruning [Sebastiani07] theory check for some partial models ( ⇒ early conflicts) • • weaker check if full check too expensive SAT heuristics based on theory knowledge • decision recommendations [Yices] 7/25

  15. Early Pruning 𝐵 ∨ 𝐶 ∧ 𝐷 ∨ 𝐸 ∧ 𝐹 ∧ ¬ 𝐵 ⊥ ⊤ ⊤ ⊤ ⊤ Theory Satisfiable? No! 𝐷 † Model: 𝐹 ¬𝐵 𝐶 𝐹 ⟺ 𝑧 < 0 ; 𝐵 ⟺ 𝑦 > 0; 𝐶 ⟺ 𝑦 + 𝑧 > 0; ¬𝐵 ⟺ 𝑦 ≤ 0; 𝐷 ⟺ 𝑦 < 0 ; 𝐸 ⟺ 𝑦 + 𝑧 > 4; 𝐶 ⟺ 𝑦 + 𝑧 > 0; 𝐹 ⟺ 𝑧 < 0 ; 8/25

  16. Early Pruning 𝐵 ∨ 𝐶 ∧ 𝐷 ∨ 𝐸 ∧ 𝐹 ∧ ¬ 𝐵 ⊥ ⊤ ⊤ ⊤ Check for theory satisfiability before each decision! 𝐵 ⟺ 𝑦 > 0; 𝐶 ⟺ 𝑦 + 𝑧 > 0; 𝐷 ⟺ 𝑦 < 0 ; 𝐸 ⟺ 𝑦 + 𝑧 > 4; 𝐹 ⟺ 𝑧 < 0 ; 8/25

  17. Early Pruning 𝐵 ∨ 𝐶 ∧ 𝐷 ∨ 𝐸 ∧ 𝐹 ∧ ¬ 𝐵 ⊥ ⊤ ⊤ ⊤ Check for theory satisfiability before each decision! Full theory check is too expensive? (NP for QF_LIA) 𝐵 ⟺ 𝑦 > 0; 𝐶 ⟺ 𝑦 + 𝑧 > 0; 𝐷 ⟺ 𝑦 < 0 ; 𝐸 ⟺ 𝑦 + 𝑧 > 4; 𝐹 ⟺ 𝑧 < 0 ; 8/25

  18. Weakened Early Pruning 𝐵 ∨ 𝐶 ∧ 𝐷 ∨ 𝐸 ∧ 𝐹 ∧ ¬ 𝐵 ⊥ ⊤ ⊤ ⊤ Check for theory satisfiability before each decision! Full theory check is too expensive? (NP for QF_LIA) Do a weaker check! (Check only for rational solutions) 𝐵 ⟺ 𝑦 > 0; 𝐶 ⟺ 𝑦 + 𝑧 > 0; 𝐷 ⟺ 𝑦 < 0 ; 𝐸 ⟺ 𝑦 + 𝑧 > 4; 𝐹 ⟺ 𝑧 < 0 ; 8/25

  19. Decision Recommendations 𝐷 † or ¬𝐷 † How to select phase of decision literal? 𝐵 ⟺ 𝑦 ≥ 0; 𝐶 ⟺ 𝑧 ≥ 𝑦 + 1 ; Model: 𝐵 𝐶 𝐷 ⟺ 𝑧 ≥ 5 ; 9/25

  20. Decision Recommendations 𝐷 † or ¬𝐷 † How to select phase of decision literal? Use rational assignment as heuristic (Assignment is side effect of failed weakened early pruning) 𝐵 ⟺ 𝑦 ≥ 0; 𝐶 ⟺ 𝑧 ≥ 𝑦 + 1 ; Model: 𝐵 𝐶 Assignment: 𝑦 = 0, 𝑧 = 1 𝐷 ⟺ 𝑧 ≥ 5 ; 9/25

  21. Decision Recommendations 𝐷 † or ¬𝐷 † How to select phase of decision literal? Use rational assignment as heuristic (Assignment is side effect of failed weakened early pruning) Goal: assignment should stay solution for model 𝐵 ⟺ 𝑦 ≥ 0; 𝐶 ⟺ 𝑧 ≥ 𝑦 + 1 ; Model: 𝐵 𝐶 Assignment: 𝑦 = 0, 𝑧 = 1 𝐷 ⟺ 𝑧 ≥ 5 ; 9/25

  22. Decision Recommendations 𝐷 † or ¬𝐷 † How to select phase of decision literal? Use rational assignment as heuristic (Assignment is side effect of failed weakened early pruning) Goal: assignment should stay solution for model (Why? Might reduce time spent on theory checking) 𝐵 ⟺ 𝑦 ≥ 0; 𝐶 ⟺ 𝑧 ≥ 𝑦 + 1 ; Model: 𝐵 𝐶 Assignment: 𝑦 = 0, 𝑧 = 1 𝐷 ⟺ 𝑧 ≥ 5 ; 9/25

  23. Decision Recommendations 𝐷 † or ¬𝐷 † How to select phase of decision literal? Use rational assignment as heuristic (Assignment is side effect of failed weakened early pruning) Goal: assignment should stay solution for model (Why? Might reduce time spent on theory checking) 𝐷 † ⟺ 1 ≥ 5 ; ¬𝐷 † ⟺ 1 < 5 ; 𝐵 ⟺ 𝑦 ≥ 0; 𝐶 ⟺ 𝑧 ≥ 𝑦 + 1 ; Model: 𝐵 𝐶 Assignment: 𝑦 = 0, 𝑧 = 1 𝐷 ⟺ 𝑧 ≥ 5 ; 9/25

  24. Decision Recommendations 𝐷 † or ¬𝐷 † How to select phase of decision literal? Use rational assignment as heuristic (Assignment is side effect of failed weakened early pruning) Goal: assignment should stay solution for model (Why? Might reduce time spent on theory checking) 𝐷 † ⟺ 1 ≥ 5 ; ¬𝐷 † ⟺ 1 < 5 ; 𝐵 ⟺ 𝑦 ≥ 0; 𝐶 ⟺ 𝑧 ≥ 𝑦 + 1 ; ¬𝐷 † Model: 𝐵 𝐶 Assignment: 𝑦 = 0, 𝑧 = 1 𝐷 ⟺ 𝑧 ≥ 5 ; 9/25

  25. Decision Recommendations QF_LIA (6947 problems) additional instances: 129 twice as fast/slow: 389/58 11/25

  26. Decision Recommendations QF_LIA (6947 problems) convert (319 problems) additional instances: 116 additional instances: 129 twice as fast/slow: 389/58 11/25

  27. Theory Solver 𝑈 𝑦 ≤ 𝑐 𝑗 𝑏 𝑗 𝑗 = 1, … , 𝑛} Input: QF_LRA: 𝑦 1 , … , 𝑦 𝑜 ∈ ℚ or QF_LIA: 𝑦 1 , … , 𝑦 𝑜 ∈ ℤ Goal: 12/25

  28. Theory Solver 𝑈 𝑦 ≤ 𝑐 𝑗 𝑏 𝑗 𝑗 = 1, … , 𝑛} Input: QF_LRA: 𝑦 1 , … , 𝑦 𝑜 ∈ ℚ or QF_LIA: 𝑦 1 , … , 𝑦 𝑜 ∈ ℤ Goal: Example: 2𝑦 2 ≤ 5𝑦 1 , 3𝑦 2 ≥ 4𝑦 1 , 2𝑦 2 ≤ −5𝑦 1 + 15, 2𝑦 2 ≥ −3𝑦 1 + 4, 12/25

  29. Theory Solver 𝑈 𝑦 ≤ 𝑐 𝑗 𝑏 𝑗 𝑗 = 1, … , 𝑛} Input: QF_LRA: 𝑦 1 , … , 𝑦 𝑜 ∈ ℚ or QF_LIA: 𝑦 1 , … , 𝑦 𝑜 ∈ ℤ Goal: Example: 2𝑦 2 ≤ 5𝑦 1 , 3𝑦 2 ≥ 4𝑦 1 , 2𝑦 2 ≤ −5𝑦 1 + 15, 2𝑦 2 ≥ −3𝑦 1 + 4, 12/25

  30. Theory Solver 𝑈 𝑦 ≤ 𝑐 𝑗 𝑏 𝑗 𝑗 = 1, … , 𝑛} Input: QF_LRA: 𝑦 1 , … , 𝑦 𝑜 ∈ ℚ or QF_LIA: 𝑦 1 , … , 𝑦 𝑜 ∈ ℤ Goal: Example: 2𝑦 2 ≤ 5𝑦 1 , 3𝑦 2 ≥ 4𝑦 1 , 2𝑦 2 ≤ −5𝑦 1 + 15, 2𝑦 2 ≥ −3𝑦 1 + 4, 𝑦 1 , 𝑦 2 ∈ ℚ QF_LRA 12/25

  31. Theory Solver 𝑈 𝑦 ≤ 𝑐 𝑗 𝑏 𝑗 𝑗 = 1, … , 𝑛} Input: QF_LRA: 𝑦 1 , … , 𝑦 𝑜 ∈ ℚ or QF_LIA: 𝑦 1 , … , 𝑦 𝑜 ∈ ℤ Goal: Example: 2𝑦 2 ≤ 5𝑦 1 , 3𝑦 2 ≥ 4𝑦 1 , 2𝑦 2 ≤ −5𝑦 1 + 15, 2𝑦 2 ≥ −3𝑦 1 + 4, 𝑦 1 , 𝑦 2 ∈ ℚ QF_LRA 12/25

  32. Theory Solver 𝑈 𝑦 ≤ 𝑐 𝑗 𝑏 𝑗 𝑗 = 1, … , 𝑛} Input: QF_LRA: 𝑦 1 , … , 𝑦 𝑜 ∈ ℚ or QF_LIA: 𝑦 1 , … , 𝑦 𝑜 ∈ ℤ Goal: Example: 2𝑦 2 ≤ 5𝑦 1 , 3𝑦 2 ≥ 4𝑦 1 , 2𝑦 2 ≤ −5𝑦 1 + 15, 2𝑦 2 ≥ −3𝑦 1 + 4, 𝑦 1 , 𝑦 2 ∈ ℤ QF_LIA 12/25

  33. Theory Solver 𝑈 𝑦 ≤ 𝑐 𝑗 𝑏 𝑗 𝑗 = 1, … , 𝑛} Input: QF_LRA: 𝑦 1 , … , 𝑦 𝑜 ∈ ℚ or QF_LIA: 𝑦 1 , … , 𝑦 𝑜 ∈ ℤ Goal: Example: 2𝑦 2 ≤ 5𝑦 1 , 3𝑦 2 ≥ 4𝑦 1 , 2𝑦 2 ≤ −5𝑦 1 + 15, 2𝑦 2 ≥ −3𝑦 1 + 4, 𝑦 1 , 𝑦 2 ∈ ℤ QF_LIA 12/25

  34. Theory Solver 𝑈 𝑦 ≤ 𝑐 𝑗 𝑏 𝑗 𝑗 = 1, … , 𝑛} Input: QF_LRA: 𝑦 1 , … , 𝑦 𝑜 ∈ ℚ or QF_LIA: 𝑦 1 , … , 𝑦 𝑜 ∈ ℤ Goal: Solver: QF_LRA: dual simplex QF_LIA: branch and bound Example: 2𝑦 2 ≤ 5𝑦 1 , 3𝑦 2 ≥ 4𝑦 1 , 2𝑦 2 ≤ −5𝑦 1 + 15, 2𝑦 2 ≥ −3𝑦 1 + 4, 𝑦 1 , 𝑦 2 ∈ ℤ QF_LIA 12/25

  35. Theory Solver 𝑈 𝑦 ≤ 𝑐 𝑗 𝑏 𝑗 𝑗 = 1, … , 𝑛} Input: QF_LRA: 𝑦 1 , … , 𝑦 𝑜 ∈ ℚ or QF_LIA: 𝑦 1 , … , 𝑦 𝑜 ∈ ℤ Goal: Solver: QF_LRA: dual simplex QF_LIA: branch and bound Example: 2𝑦 2 ≤ 5𝑦 1 , 3𝑦 2 ≥ 4𝑦 1 , 2𝑦 2 ≤ −5𝑦 1 + 15, 2𝑦 2 ≥ −3𝑦 1 + 4, 𝑦 1 , 𝑦 2 ∈ ℤ QF_LIA 12/25

  36. Theory Solver Extensions Unit Cube Test Bounding Transformation (IJCAR 2018) (IJCAR 2016) 2 2 1 1 1 1 2 1 2 2 −1 1 1 0 −1 1 0 for partially unbounded for absolutely unbounded problems problems 13/25

  37. Unbounded Problems 14/25

  38. Unbounded Problems Requirement: unbounded direction 14/25

  39. Unbounded Problems Requirement: unbounded direction ℎ ∈ ℚ 𝑜 is bounded iff 𝑈 𝑦 ≤ 𝑐 𝑗 ∃𝑚, 𝑣 ∈ ℤ. ∀𝑦 ∈ ℚ 𝑜 . 𝑏 𝑗 𝑗 = 1, … , 𝑛} → 𝑚 ≤ ℎ 𝑈 𝑦 ≤ 𝑣 14/25

  40. Unbounded Problems ℎ′ Requirement: unbounded direction ℎ ∈ ℚ 𝑜 is bounded iff 𝑈 𝑦 ≤ 𝑐 𝑗 ∃𝑚, 𝑣 ∈ ℤ. ∀𝑦 ∈ ℚ 𝑜 . 𝑏 𝑗 𝑗 = 1, … , 𝑛} → 𝑚 ≤ ℎ 𝑈 𝑦 ≤ 𝑣 14/25

  41. Unbounded Problems ℎ′ Requirement: unbounded direction ℎ ∈ ℚ 𝑜 is bounded iff 𝑈 𝑦 ≤ 𝑐 𝑗 ∃𝑚, 𝑣 ∈ ℤ. ∀𝑦 ∈ ℚ 𝑜 . 𝑏 𝑗 𝑗 = 1, … , 𝑛} → 𝑚 ≤ ℎ 𝑈 𝑦 ≤ 𝑣 14/25

  42. Unbounded Problems ℎ′ Requirement: unbounded direction ℎ ∈ ℚ 𝑜 is bounded iff 𝑈 𝑦 ≤ 𝑐 𝑗 ∃𝑚, 𝑣 ∈ ℤ. ∀𝑦 ∈ ℚ 𝑜 . 𝑏 𝑗 𝑗 = 1, … , 𝑛} → 𝑚 ≤ ℎ 𝑈 𝑦 ≤ 𝑣 14/25

  43. Unbounded Problems ℎ ℎ Requirement: unbounded direction ℎ ∈ ℚ 𝑜 is bounded iff 𝑈 𝑦 ≤ 𝑐 𝑗 ∃𝑚, 𝑣 ∈ ℤ. ∀𝑦 ∈ ℚ 𝑜 . 𝑏 𝑗 𝑗 = 1, … , 𝑛} → 𝑚 ≤ ℎ 𝑈 𝑦 ≤ 𝑣 14/25

  44. Unbounded Problems ℎ ℎ Requirement: unbounded direction ℎ ∈ ℚ 𝑜 is bounded iff 𝑈 𝑦 ≤ 𝑐 𝑗 ∃𝑚, 𝑣 ∈ ℤ. ∀𝑦 ∈ ℚ 𝑜 . 𝑏 𝑗 𝑗 = 1, … , 𝑛} → 𝑚 ≤ ℎ 𝑈 𝑦 ≤ 𝑣 14/25

  45. Unbounded Problems ℎ ℎ′ partially unbounded partially unbounded: both bounded and unbounded directions 14/25

  46. Unbounded Problems ℎ′ partially unbounded absolutely unbounded absolutely unbounded: only unbounded directions 14/25

  47. Overview: Unit Cube Test (IJCAR 2016) for absolutely unbounded problems 15/25

  48. Overview: Unit Cube Test (IJCAR 2016) • unit cube guarantees integer solution for absolutely unbounded problems 15/25

  49. Overview: Unit Cube Test (IJCAR 2016) • unit cube guarantees integer solution • computable in polynomial time for absolutely unbounded problems 15/25

  50. Overview: Unit Cube Test (IJCAR 2016) • unit cube guarantees integer solution • computable in polynomial time • incremental for absolutely unbounded problems 15/25

  51. Overview: Unit Cube Test (IJCAR 2016) • unit cube guarantees integer solution • computable in polynomial time • incremental • not complete in general for absolutely unbounded problems 15/25

  52. Overview: Unit Cube Test (IJCAR 2016) • unit cube guarantees integer solution • computable in polynomial time • incremental • not complete in general • always succeeds on abs. unbd. problems for absolutely unbounded problems 15/25

  53. Results: Unit Cube Test (IJCAR 2016) QF_LIA (6947 problems) for absolutely unbounded additional instances: 56 problems more than twice as fast: 705 16/25

  54. Overview: Bounding Transformation (IJCAR 2018) 2 2 1 1 1 1 2 1 2 2 −1 1 1 0 −1 1 0 for partially unbounded problems 17/25

  55. Overview: Bounding Transformation (IJCAR 2018) • transforms unbounded 2 2 into bounded problems 1 1 1 1 2 1 2 2 −1 1 1 0 −1 1 0 for partially unbounded problems 17/25

  56. Overview: Bounding Transformation (IJCAR 2018) • transforms unbounded 2 2 into bounded problems 1 1 • computable in 1 1 2 1 2 polynomial time 2 −1 1 1 0 −1 1 0 for partially unbounded problems 17/25

  57. Overview: Bounding Transformation (IJCAR 2018) • transforms unbounded 2 2 into bounded problems 1 1 • computable in 1 1 2 1 2 polynomial time • solution & conflict conversion (polynomial 2 time) −1 1 1 0 −1 1 0 for partially unbounded problems 17/25

  58. Overview: Bounding Transformation (IJCAR 2018) • transforms unbounded 2 2 into bounded problems 1 1 • computable in 1 1 2 1 2 polynomial time • solution & conflict conversion (polynomial 2 time) −1 1 1 0 • incremental −1 1 0 for partially unbounded problems 17/25

  59. Results: Bounding Transformation (IJCAR 2018) QF_LIA (6947 problems) 2 2 1 1 1 1 2 1 2 2 −1 1 1 0 −1 1 0 for partially unbounded additional instances: 169 problems more than twice as fast: 167 18/25

  60. […] invented by our team […] invented & published by someone else […] never published but implemented Preprocessing: • if-then-else (reconstruction, lifting, simplification, bounding) [CVC4] • pseudo-Boolean inequalities [CVC4] • small CNF transformation [Weidenbach01] 21/25

  61. […] invented by our team […] invented & published by someone else […] never published but implemented Preprocessing: • if-then-else (reconstruction, lifting, simplification, bounding) [CVC4] • pseudo-Boolean inequalities [CVC4] • small CNF transformation [Weidenbach01] QF_LIA (6947 problems) additional instances:1776 21/25

  62. […] invented by our team […] invented & published by someone else […] never published but implemented Preprocessing: • if-then-else (reconstruction, lifting, simplification, bounding) [CVC4] • pseudo-Boolean inequalities [CVC4] • small CNF transformation [Weidenbach01] QF_LIA (6947 problems) additional instances:1776 21/25

  63. Modular Arithmetic Type equation here. 22/25

  64. Modular Arithmetic 2 ≡ 9 3 ⋅ 𝑦 for 𝑦 ∈ ℤ Type equation here. 22/25

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