proof attempts cooperating via models
play

Proof Attempts Cooperating via Models Giles Reger With Dmitry - PowerPoint PPT Presentation

One Proof Many Models Two Proofs Many Models Many Proofs Many Models Proof Attempts Cooperating via Models Giles Reger With Dmitry Tishkovsky and Andrei Voronkov University of Manchester 15th September 2015 One Proof Many Models Two Proofs


  1. One Proof Many Models Two Proofs Many Models Many Proofs Many Models Proof Attempts Cooperating via Models Giles Reger With Dmitry Tishkovsky and Andrei Voronkov University of Manchester 15th September 2015

  2. One Proof Many Models Two Proofs Many Models Many Proofs Many Models AVATAR: Guiding proof search using Models • A new architecture implemented in Vampire • Idea presented at CAV 14 and CADE 15 • Very high level idea: 1. Represent the problem in a SAT solver 2. Construct a Model 3. If no model, return “unsat” 4. Use the Model to select a sub-problem to explore 5. If sub-problem is refuted, learn something and goto 1 6. If strategy is complete retun “sat”

  3. One Proof Many Models Two Proofs Many Models Many Proofs Many Models Creating the SAT problem with Splitting • The splitting basics: • For variable disjoint clauses C 1 and C 2 • S ∪ ( C 1 ∨ C 2 ) is unsat iff both S ∪ C 1 and S ∪ C 2 are • Consider S ∪ C 1 and S ∪ C 2 separately • For every clause C in the problem • Let D 1 ∨ . . . ∨ D n be its minimal variable-disjoint components • Consistently introduce a name p i for component D i • Add SAT clause p 1 ∨ . . . ∨ p n • A model of this SAT problem is a splitting decision

  4. One Proof Many Models Two Proofs Many Models Many Proofs Many Models When refuting a model • First-order reasoning tracks which parts of the model derived clauses depend on by labelling clauses • A will depend on some part of the model • Derive ⊥ | { p 1 , . . . , p n } • Learn/add the conflict clause ¬ p 1 ∨ . . . ∨ ¬ p n • Now reconstruct the model • This represents backtracking • The conflict clause blocks a family of possible models/splitting decisions

  5. One Proof Many Models Two Proofs Many Models Many Proofs Many Models Missing details • Process is incremental, set of clauses expanding • When updating SAT model need to add/remove clauses from FO solver • Simplifications may be conditional on current model as it can change • Many variations i.e. may not add clause that cannot be split to SAT solver

  6. One Proof Many Models Two Proofs Many Models Many Proofs Many Models AVATAR Architecture FO prover assert( C ← [ C ]) allProcessed reinsert( D ← A ) new( C 1 ∨ . . . ∨ C n ← [ C ′ 1 ] ∧ . . . ∧ [ C ′ m ]) remove( D ← A ) contradict( ⊥ ← [ C 1 ] ∧ . . . ∧ [ C m ]) Splitting Interface variant index component records current model Solve model [ C 1 ] ∨ . . . ∨ [ C n ] ∨ ¬ [ C ′ 1 ] ∨ . . . ∨ ¬ [ C ′ m ] (split clause) Unsatisfiable ¬ [ C 1 ] ∨ . . . ∨ ¬ [ C m ] (contradiction clause) SAT solver

  7. One Proof Many Models Two Proofs Many Models Many Proofs Many Models Example • Input: FO SAT p ( a ), q ( b ), ¬ p ( x ) ∨¬ q ( y ) • Repeat • FO: Process new clauses • split clauses into components • SAT: Construct model • FO: Use model (do splitting) • FO: Do FO proving • Process refutation Components

  8. One Proof Many Models Two Proofs Many Models Many Proofs Many Models Example • Input: FO SAT p ( a ), q ( b ), ¬ p ( x ) ∨¬ q ( y ) • Repeat • FO: Process new clauses • split clauses into components • SAT: Construct model • FO: Use model (do splitting) • FO: Do FO proving • Process refutation Components

  9. One Proof Many Models Two Proofs Many Models Many Proofs Many Models Example • Input: FO SAT p ( a ), q ( b ), ¬ p ( x ) ∨¬ q ( y ) p ( a ) | {} • Repeat • FO: Process new clauses • split clauses into components • SAT: Construct model • FO: Use model (do splitting) • FO: Do FO proving • Process refutation Components

  10. One Proof Many Models Two Proofs Many Models Many Proofs Many Models Example • Input: FO SAT p ( a ), q ( b ), ¬ p ( x ) ∨¬ q ( y ) p ( a ) | {} • Repeat q ( b ) | {} • FO: Process new clauses • split clauses into components • SAT: Construct model • FO: Use model (do splitting) • FO: Do FO proving • Process refutation Components

  11. One Proof Many Models Two Proofs Many Models Many Proofs Many Models Example • Input: FO SAT p ( a ), q ( b ), ¬ p ( x ) ∨¬ q ( y ) p ( a ) | {} 1 ∨ 2 • Repeat q ( b ) | {} • FO: Process new clauses • split clauses into components • SAT: Construct model • FO: Use model (do splitting) • FO: Do FO proving • Process refutation Components 1 �→ ¬ p ( x ) 2 �→ ¬ q ( y )

  12. One Proof Many Models Two Proofs Many Models Many Proofs Many Models Example • Input: FO SAT p ( a ), q ( b ), ¬ p ( x ) ∨¬ q ( y ) p ( a ) | {} 1 ∨ 2 • Repeat q ( b ) | {} • FO: Process new clauses • split clauses into components • SAT: Construct model • FO: Use model (do splitting) • FO: Do FO proving • Process refutation Components 1 �→ ¬ p ( x ) 2 �→ ¬ q ( y )

  13. One Proof Many Models Two Proofs Many Models Many Proofs Many Models Example • Input: FO SAT p ( a ), q ( b ), ¬ p ( x ) ∨¬ q ( y ) p ( a ) | {} 1 ∨ 2 • Repeat q ( b ) | {} • FO: Process new clauses ¬ p ( x ) | { 1 } • split clauses into components • SAT: Construct model • FO: Use model (do splitting) • FO: Do FO proving • Process refutation Components 1 �→ ¬ p ( x ) 2 �→ ¬ q ( y )

  14. One Proof Many Models Two Proofs Many Models Many Proofs Many Models Example • Input: FO SAT p ( a ), q ( b ), ¬ p ( x ) ∨¬ q ( y ) p ( a ) | {} 1 ∨ 2 • Repeat q ( b ) | {} • FO: Process new clauses ¬ p ( x ) | { 1 } • split clauses into ⊥ | { 1 } components • SAT: Construct model • FO: Use model (do splitting) • FO: Do FO proving • Process refutation Components 1 �→ ¬ p ( x ) 2 �→ ¬ q ( y )

  15. One Proof Many Models Two Proofs Many Models Many Proofs Many Models Example • Input: FO SAT p ( a ), q ( b ), ¬ p ( x ) ∨¬ q ( y ) p ( a ) | {} 1 ∨ 2 • Repeat q ( b ) | {} ¬ 1 • FO: Process new clauses ¬ p ( x ) | { 1 } • split clauses into ⊥ | { 1 } components • SAT: Construct model • FO: Use model (do splitting) • FO: Do FO proving • Process refutation Components 1 �→ ¬ p ( x ) 2 �→ ¬ q ( y )

  16. One Proof Many Models Two Proofs Many Models Many Proofs Many Models Example • Input: FO SAT p ( a ), q ( b ), ¬ p ( x ) ∨¬ q ( y ) p ( a ) | {} 1 ∨ 2 • Repeat q ( b ) | {} ¬ 1 • FO: Process new clauses ¬ p ( x ) | { 1 } • split clauses into ⊥ | { 1 } components • SAT: Construct model • FO: Use model (do splitting) • FO: Do FO proving • Process refutation Components 1 �→ ¬ p ( x ) 2 �→ ¬ q ( y )

  17. One Proof Many Models Two Proofs Many Models Many Proofs Many Models Example • Input: FO SAT p ( a ), q ( b ), ¬ p ( x ) ∨¬ q ( y ) p ( a ) | {} 1 ∨ 2 • Repeat q ( b ) | {} ¬ 1 • FO: Process new clauses ¬ p ( x ) | { 1 } • split clauses into ⊥ | { 1 } components ¬ q ( y ) | { 2 } • SAT: Construct model • FO: Use model (do splitting) • FO: Do FO proving • Process refutation Components 1 �→ ¬ p ( x ) 2 �→ ¬ q ( y )

  18. One Proof Many Models Two Proofs Many Models Many Proofs Many Models Example • Input: FO SAT p ( a ), q ( b ), ¬ p ( x ) ∨¬ q ( y ) p ( a ) | {} 1 ∨ 2 • Repeat q ( b ) | {} ¬ 1 • FO: Process new clauses ¬ p ( x ) | { 1 } • split clauses into ⊥ | { 1 } components ¬ q ( y ) | { 2 } • SAT: Construct model ⊥ | { 2 } • FO: Use model (do splitting) • FO: Do FO proving • Process refutation Components 1 �→ ¬ p ( x ) 2 �→ ¬ q ( y )

  19. One Proof Many Models Two Proofs Many Models Many Proofs Many Models Example • Input: FO SAT p ( a ), q ( b ), ¬ p ( x ) ∨¬ q ( y ) p ( a ) | {} 1 ∨ 2 • Repeat q ( b ) | {} ¬ 1 • FO: Process new clauses ¬ p ( x ) | { 1 } ¬ 2 • split clauses into ⊥ | { 1 } components ¬ q ( y ) | { 2 } • SAT: Construct model ⊥ | { 2 } • FO: Use model (do splitting) • FO: Do FO proving • Process refutation Components 1 �→ ¬ p ( x ) 2 �→ ¬ q ( y )

  20. One Proof Many Models Two Proofs Many Models Many Proofs Many Models Example • Input: FO SAT p ( a ), q ( b ), ¬ p ( x ) ∨¬ q ( y ) p ( a ) | {} 1 ∨ 2 • Repeat q ( b ) | {} ¬ 1 • FO: Process new clauses ¬ p ( x ) | { 1 } ¬ 2 • split clauses into ⊥ | { 1 } components ¬ q ( y ) | { 2 } • SAT: Construct model ⊥ | { 2 } • FO: Use model (do splitting) • FO: Do FO proving • Process refutation Components 1 �→ ¬ p ( x ) 2 �→ ¬ q ( y )

  21. One Proof Many Models Two Proofs Many Models Many Proofs Many Models Example • Input: FO SAT p ( a ), q ( b ), ¬ p ( x ) ∨¬ q ( y ) p ( a ) | {} 1 ∨ 2 • Repeat q ( b ) | {} ¬ 1 • FO: Process new clauses ¬ p ( x ) | { 1 } ¬ 2 • split clauses into ⊥ | { 1 } components ¬ q ( y ) | { 2 } • SAT: Construct model ⊥ | { 2 } • FO: Use model (do splitting) • FO: Do FO proving • Process refutation Components 1 �→ ¬ p ( x ) • Refutation 2 �→ ¬ q ( y ) • From the SAT solver

  22. One Proof Many Models Two Proofs Many Models Many Proofs Many Models Varying the Example • Input: FO SAT p ( a ) , q ( b ) , ¬ p ( x ) ∨ ¬ q ( y ) , ¬ p ( x ) ∨ s ( x ) ∨ ¬ q ( y ) • Repeat • FO: Process new clauses • split clauses into components • SAT: Construct model • FO: Use model (do Components splitting) • FO: Do FO proving • Process refutation

Recommend


More recommend