Accelerating MUS Extraction with Recursive Model Rotation Anton Belov and Joao Marques-Silva Complex and Adaptive Systems Laboratory School of Computer Science and Informatics University College Dublin, Ireland FMCAD 2011 October 31, 2011 Austin, TX, USA A. Belov, J. Marques-Silva (UCD, Dublin) Recursive Model Rotation FMCAD 2011 1 / 16
Introduction Minimal Unsatisfiability ◮ F is minimally unsatisfiable ( F ∈ MU), if F ∈ UNSAT and for any C ∈ F , F \ C ∈ SAT. A. Belov, J. Marques-Silva (UCD, Dublin) Recursive Model Rotation FMCAD 2011 2 / 16
Introduction Minimal Unsatisfiability ◮ F is minimally unsatisfiable ( F ∈ MU), if F ∈ UNSAT and for any C ∈ F , F \ C ∈ SAT. ◮ F ′ is minimally unsatisfiable subformula (MUS) of F ( F ′ ∈ MUS( F )) if F ′ ⊆ F and F ′ ∈ MU. A. Belov, J. Marques-Silva (UCD, Dublin) Recursive Model Rotation FMCAD 2011 2 / 16
Introduction Minimal Unsatisfiability ◮ F is minimally unsatisfiable ( F ∈ MU), if F ∈ UNSAT and for any C ∈ F , F \ C ∈ SAT. ◮ F ′ is minimally unsatisfiable subformula (MUS) of F ( F ′ ∈ MUS( F )) if F ′ ⊆ F and F ′ ∈ MU. Example C 1 = x ∨ y C 3 = x ∨ ¬ y C 5 = y ∨ z C 2 = ¬ x ∨ y C 4 = ¬ x ∨ ¬ y C 6 = y ∨ ¬ z ◮ { C 1 , C 2 , C 3 , C 4 } ∈ MU. A. Belov, J. Marques-Silva (UCD, Dublin) Recursive Model Rotation FMCAD 2011 2 / 16
Introduction Minimal Unsatisfiability ◮ F is minimally unsatisfiable ( F ∈ MU), if F ∈ UNSAT and for any C ∈ F , F \ C ∈ SAT. ◮ F ′ is minimally unsatisfiable subformula (MUS) of F ( F ′ ∈ MUS( F )) if F ′ ⊆ F and F ′ ∈ MU. Example C 1 = x ∨ y C 3 = x ∨ ¬ y C 5 = y ∨ z C 2 = ¬ x ∨ y C 4 = ¬ x ∨ ¬ y C 6 = y ∨ ¬ z ◮ { C 1 , C 2 , C 3 , C 4 } ∈ MU. ◮ F = { C 1 , . . . , C 6 } ∈ UNSAT, but / ∈ MU. A. Belov, J. Marques-Silva (UCD, Dublin) Recursive Model Rotation FMCAD 2011 2 / 16
Introduction Minimal Unsatisfiability ◮ F is minimally unsatisfiable ( F ∈ MU), if F ∈ UNSAT and for any C ∈ F , F \ C ∈ SAT. ◮ F ′ is minimally unsatisfiable subformula (MUS) of F ( F ′ ∈ MUS( F )) if F ′ ⊆ F and F ′ ∈ MU. Example C 1 = x ∨ y C 3 = x ∨ ¬ y C 5 = y ∨ z C 2 = ¬ x ∨ y C 4 = ¬ x ∨ ¬ y C 6 = y ∨ ¬ z ◮ { C 1 , C 2 , C 3 , C 4 } ∈ MU. ◮ { C 1 , C 2 , C 3 , C 4 } ∈ MUS( F ). A. Belov, J. Marques-Silva (UCD, Dublin) Recursive Model Rotation FMCAD 2011 2 / 16
Introduction Minimal Unsatisfiability ◮ F is minimally unsatisfiable ( F ∈ MU), if F ∈ UNSAT and for any C ∈ F , F \ C ∈ SAT. ◮ F ′ is minimally unsatisfiable subformula (MUS) of F ( F ′ ∈ MUS( F )) if F ′ ⊆ F and F ′ ∈ MU. Example C 1 = x ∨ y C 3 = x ∨ ¬ y C 5 = y ∨ z C 2 = ¬ x ∨ y C 4 = ¬ x ∨ ¬ y C 6 = y ∨ ¬ z ◮ { C 1 , C 2 , C 3 , C 4 } ∈ MU. ◮ { C 3 , C 4 , C 5 , C 6 } ∈ MUS( F ). A. Belov, J. Marques-Silva (UCD, Dublin) Recursive Model Rotation FMCAD 2011 2 / 16
Introduction Minimal Unsatisfiability ◮ F is minimally unsatisfiable ( F ∈ MU), if F ∈ UNSAT and for any C ∈ F , F \ C ∈ SAT. ◮ F ′ is minimally unsatisfiable subformula (MUS) of F ( F ′ ∈ MUS( F )) if F ′ ⊆ F and F ′ ∈ MU. Applications of MUSes (in formal methods) ◮ Abstraction refinement frameworks. ◮ Decision procedures. ◮ Design debugging. A. Belov, J. Marques-Silva (UCD, Dublin) Recursive Model Rotation FMCAD 2011 2 / 16
Computation of MUSes ◮ Based on iterative calls to SAT solver (not the only way, but currently the most effective): for each C ∈ F ◮ if F \ { C } ∈ UNSAT, then there is an MUS of F that does not contain C → remove C from F . ◮ if F \ { C } ∈ SAT ( C is necessary for F ), then C is in all MUSes of F → keep C . A. Belov, J. Marques-Silva (UCD, Dublin) Recursive Model Rotation FMCAD 2011 3 / 16
Computation of MUSes ◮ Based on iterative calls to SAT solver (not the only way, but currently the most effective): for each C ∈ F ◮ if F \ { C } ∈ UNSAT, then there is an MUS of F that does not contain C → remove C from F . ◮ if F \ { C } ∈ SAT ( C is necessary for F ), then C is in all MUSes of F → keep C . ◮ SAT solving is the main bottleneck of the computation, hence reduction in the number of SAT solver calls is the key to efficiency. A. Belov, J. Marques-Silva (UCD, Dublin) Recursive Model Rotation FMCAD 2011 3 / 16
Computation of MUSes ◮ Based on iterative calls to SAT solver (not the only way, but currently the most effective): for each C ∈ F ◮ if F \ { C } ∈ UNSAT, then there is an MUS of F that does not contain C → remove C from F . ◮ if F \ { C } ∈ SAT ( C is necessary for F ), then C is in all MUSes of F → keep C . ◮ SAT solving is the main bottleneck of the computation, hence reduction in the number of SAT solver calls is the key to efficiency. ◮ On UNSAT outcomes – clause set refinement : remove C and all clauses outside the unsatisfiable core of F \ { C } . [Dershowitz et al’06] A. Belov, J. Marques-Silva (UCD, Dublin) Recursive Model Rotation FMCAD 2011 3 / 16
Computation of MUSes ◮ Based on iterative calls to SAT solver (not the only way, but currently the most effective): for each C ∈ F ◮ if F \ { C } ∈ UNSAT, then there is an MUS of F that does not contain C → remove C from F . ◮ if F \ { C } ∈ SAT ( C is necessary for F ), then C is in all MUSes of F → keep C . ◮ SAT solving is the main bottleneck of the computation, hence reduction in the number of SAT solver calls is the key to efficiency. ◮ On UNSAT outcomes – clause set refinement : remove C and all clauses outside the unsatisfiable core of F \ { C } . [Dershowitz et al’06] ◮ On SAT outcomes – model rotation : detect additional necessary clauses without SAT solver calls. [Marques-Silva&Lynce’11] Recursive model rotation (RMR) – very effective improvement of model rotation. [this paper] A. Belov, J. Marques-Silva (UCD, Dublin) Recursive Model Rotation FMCAD 2011 3 / 16
Impact of RMR ◮ 500 benchmarks submitted to MUS track of SAT Competition 2011. ◮ Time limit 1200 sec, memory limit 4 GB. 10000 MUSer2 (with RMR), # SAT solver calls 1000 100 10 1 1 10 100 1000 10000 MUSer2 w/o RMR, # SAT solver calls ◮ MUS computation without RMR ( x -axis) vs with RMR ( y -axis) ◮ Left: number of SAT solver calls (on instances solved in both cases). A. Belov, J. Marques-Silva (UCD, Dublin) Recursive Model Rotation FMCAD 2011 4 / 16
Impact of RMR ◮ 500 benchmarks submitted to MUS track of SAT Competition 2011. ◮ Time limit 1200 sec, memory limit 4 GB. 1000 10000 MUSer2 (with RMR), # SAT solver calls MUSer2 (with RMR), CPU time (sec) 100 1000 100 10 10 1 1 0.1 1 10 100 1000 10000 0.1 1 10 100 1000 MUSer2 w/o RMR, # SAT solver calls MUSer2 w/o RMR, CPU time (sec) ◮ MUS computation without RMR ( x -axis) vs with RMR ( y -axis) ◮ Left: number of SAT solver calls (on instances solved in both cases). ◮ Right: CPU time (sec). A. Belov, J. Marques-Silva (UCD, Dublin) Recursive Model Rotation FMCAD 2011 4 / 16
Computation of MUSes Use SAT solver to identify necessary (or, transition ) clauses ◮ C ∈ F is necessary for F , if F ∈ UNSAT and F \ { C } ∈ SAT. A. Belov, J. Marques-Silva (UCD, Dublin) Recursive Model Rotation FMCAD 2011 5 / 16
Computation of MUSes Use SAT solver to identify necessary (or, transition ) clauses ◮ C ∈ F is necessary for F , if F ∈ UNSAT and F \ { C } ∈ SAT. ◮ F ∈ MU iff every clause C ∈ F is necessary for F . A. Belov, J. Marques-Silva (UCD, Dublin) Recursive Model Rotation FMCAD 2011 5 / 16
Computation of MUSes Use SAT solver to identify necessary (or, transition ) clauses ◮ C ∈ F is necessary for F , if F ∈ UNSAT and F \ { C } ∈ SAT. ◮ F ∈ MU iff every clause C ∈ F is necessary for F . ◮ If C is necessary for F then C is necessary for every unsatisfiable subset of F . A. Belov, J. Marques-Silva (UCD, Dublin) Recursive Model Rotation FMCAD 2011 5 / 16
Computation of MUSes Use SAT solver to identify necessary (or, transition ) clauses ◮ C ∈ F is necessary for F , if F ∈ UNSAT and F \ { C } ∈ SAT. ◮ F ∈ MU iff every clause C ∈ F is necessary for F . ◮ If C is necessary for F then C is necessary for every unsatisfiable subset of F . Deletion-based MUS Computation Input : F — an unsatisfiable CNF formula M ← F M is a superset of some MUS of F // Inv: foreach C ∈ F do if M \ { C } ∈ UNSAT then // is C necessary for M ? // no - delete it M ← M \ { C } // yes - keep it return M // Every C ∈ M is necessary for M A. Belov, J. Marques-Silva (UCD, Dublin) Recursive Model Rotation FMCAD 2011 5 / 16
Example F = { C 1 , . . . , C 6 } M (an overapproximation of some MUS of F ): C 1 = x ∨ y C 3 = x ∨ ¬ y C 5 = y ∨ z C 2 = ¬ x ∨ y C 4 = ¬ x ∨ ¬ y C 6 = y ∨ ¬ z M = F ∈ UNSAT A. Belov, J. Marques-Silva (UCD, Dublin) Recursive Model Rotation FMCAD 2011 6 / 16
Example F = { C 1 , . . . , C 6 } M (an overapproximation of some MUS of F ): C 1 = x ∨ y C 3 = x ∨ ¬ y C 5 = y ∨ z C 2 = ¬ x ∨ y C 4 = ¬ x ∨ ¬ y C 6 = y ∨ ¬ z M = F ∈ UNSAT M \ { C 1 } ∈ UNSAT, hence C 1 is not necessary A. Belov, J. Marques-Silva (UCD, Dublin) Recursive Model Rotation FMCAD 2011 6 / 16
Recommend
More recommend