Playing with AVATAR How to play with AVATAR
Giles Reger, Martin Suda and Andrei Voronkov
School of Computer Science, University of Manchester
The 1st Vampire Workshop
Reger,G How to play with AVATAR 1 / 26
Playing with AVATAR How to play with AVATAR Giles Reger, Martin - - PowerPoint PPT Presentation
Playing with AVATAR How to play with AVATAR Giles Reger, Martin Suda and Andrei Voronkov School of Computer Science, University of Manchester The 1st Vampire Workshop Reger,G How to play with AVATAR 1 / 26 Overview Introduction 1
Reger,G How to play with AVATAR 1 / 26
Reger,G How to play with AVATAR 2 / 26
◮ (and what effects they have)
Reger,G How to play with AVATAR 3 / 26
Reger,G How to play with AVATAR 4 / 26
◮ FO: Process new clauses ⋆ split clauses into
◮ SAT: Construct model ◮ FO: Use model (do splitting) ◮ FO: Do FO proving ⋆ Process refutation
Reger,G How to play with AVATAR 5 / 26
◮ FO: Process new clauses ⋆ split clauses into
◮ SAT: Construct model ◮ FO: Use model (do splitting) ◮ FO: Do FO proving ⋆ Process refutation
Reger,G How to play with AVATAR 5 / 26
◮ FO: Process new clauses ⋆ split clauses into
◮ SAT: Construct model ◮ FO: Use model (do splitting) ◮ FO: Do FO proving ⋆ Process refutation
Reger,G How to play with AVATAR 5 / 26
◮ FO: Process new clauses ⋆ split clauses into
◮ SAT: Construct model ◮ FO: Use model (do splitting) ◮ FO: Do FO proving ⋆ Process refutation
Reger,G How to play with AVATAR 5 / 26
◮ FO: Process new clauses ⋆ split clauses into
◮ SAT: Construct model ◮ FO: Use model (do splitting) ◮ FO: Do FO proving ⋆ Process refutation
Reger,G How to play with AVATAR 5 / 26
◮ FO: Process new clauses ⋆ split clauses into
◮ SAT: Construct model ◮ FO: Use model (do splitting) ◮ FO: Do FO proving ⋆ Process refutation
Reger,G How to play with AVATAR 5 / 26
◮ FO: Process new clauses ⋆ split clauses into
◮ SAT: Construct model ◮ FO: Use model (do splitting) ◮ FO: Do FO proving ⋆ Process refutation
Reger,G How to play with AVATAR 5 / 26
◮ FO: Process new clauses ⋆ split clauses into
◮ SAT: Construct model ◮ FO: Use model (do splitting) ◮ FO: Do FO proving ⋆ Process refutation
Reger,G How to play with AVATAR 5 / 26
◮ FO: Process new clauses ⋆ split clauses into
◮ SAT: Construct model ◮ FO: Use model (do splitting) ◮ FO: Do FO proving ⋆ Process refutation
Reger,G How to play with AVATAR 5 / 26
◮ FO: Process new clauses ⋆ split clauses into
◮ SAT: Construct model ◮ FO: Use model (do splitting) ◮ FO: Do FO proving ⋆ Process refutation
Reger,G How to play with AVATAR 5 / 26
◮ FO: Process new clauses ⋆ split clauses into
◮ SAT: Construct model ◮ FO: Use model (do splitting) ◮ FO: Do FO proving ⋆ Process refutation
Reger,G How to play with AVATAR 5 / 26
◮ FO: Process new clauses ⋆ split clauses into
◮ SAT: Construct model ◮ FO: Use model (do splitting) ◮ FO: Do FO proving ⋆ Process refutation
Reger,G How to play with AVATAR 5 / 26
◮ FO: Process new clauses ⋆ split clauses into
◮ SAT: Construct model ◮ FO: Use model (do splitting) ◮ FO: Do FO proving ⋆ Process refutation
Reger,G How to play with AVATAR 5 / 26
◮ FO: Process new clauses ⋆ split clauses into
◮ SAT: Construct model ◮ FO: Use model (do splitting) ◮ FO: Do FO proving ⋆ Process refutation
Reger,G How to play with AVATAR 5 / 26
◮ FO: Process new clauses ⋆ split clauses into
◮ SAT: Construct model ◮ FO: Use model (do splitting) ◮ FO: Do FO proving ⋆ Process refutation
◮ From the SAT solver as we
Reger,G How to play with AVATAR 5 / 26
◮ assume that c2 is subsumed by c1 for clauses c1 | a1 and c2 | a2 ◮ If a1 ⊆ a2 ⋆ Then whenever c1 | a1 is backtracked, then c2 | a2 must be also, as an
⋆ Therefore, we can remove c2 | a2 ◮ otherwise (a1 ⊆ a2) ⋆ Later, if an assertion in a2/a1 is retracted then c1 | a1 would be
⋆ Therefore, we conditionally remove (freeze) c2 | a2 ⋆ Then, if c1 | a1 is later removed we must add (unfreeze) c2 | a2 Reger,G How to play with AVATAR 6 / 26
Reger,G How to play with AVATAR 8 / 26
◮ Just add it anyway - it might be useful later! ◮ Only add it as a component if it has assertions (dependencies) i.e. ⋆ If we derive q(x) ∨ p(x)|{2, 4} we would add ¬2 ∨ ¬4 ∨ 8 (for fresh 8) ⋆ Helps if 8 is derived again later ◮ Only add it as a component if it is a known component i.e. ⋆ We previously added 2 ∨ 4 for r(y) → 2 and q(x) ∨ p(x) → 4 ⋆ We then derive q(x) ∨ p(x) and add 4 ⋆ The SAT solver must always choose 4 - simplifying 2 ∨ 4 ◮ Don’t add it Reger,G How to play with AVATAR 9 / 26
Reger,G How to play with AVATAR 10 / 26
◮ How quickly a model can be constructed ◮ What model is constructed
◮ A native (two watched literals) solver ◮ lingeling (with relatively default options)
◮ it contains a fresh variable that can be made true, or ◮ it is already true in the model
Reger,G How to play with AVATAR 11 / 26
◮ Have to pay to minimise the model ◮ But, we potentially add fewer FO clauses and do less
◮ Total model ◮ Minimised model - a partial model that satisfies all added clauses ◮ Minimised model for split clauses - satisfy split clauses only
◮ eagerly remove it, or ◮ leave it there... it might be asserted again later Reger,G How to play with AVATAR 12 / 26
◮ ssplitting nonsplittable components ⋆ When to add a component that is not splittable ⋆ known, all, all dependent, none
◮ sat solver ⋆ Which sat solver is used to construct the model ⋆ lingeling or vampire, with buffering or not
◮ ssplitting model ⋆ We can minimise the model to reduce the number of components
⋆ total, min all, min sco ◮ ssplitting eager removal ⋆ When using a non-total model we can eagerly remove components no
⋆ on, off Reger,G How to play with AVATAR 13 / 26
Reger,G How to play with AVATAR 14 / 26
◮ That’s 144,000 millennia for the experiments here... ◮ To finish now we should have started at the end of the Jurassic period
Reger,G How to play with AVATAR 15 / 26
◮ Select subset of options ⋆ May miss the best strategies ◮ Select subset of problems ⋆ May miss the easy/hard problems ◮ Probably need to do both to have a reasonable search space
◮ This suffers from similar restrictions i.e. the results are not
◮ Additionally it is biased as the default values for all of these options
Reger,G How to play with AVATAR 16 / 26
Reger,G How to play with AVATAR 17 / 26
Reger,G How to play with AVATAR 18 / 26
◮ Use CASC13 problems ◮ Use default options
◮ Construct an experiment by randomly selecting ⋆ A problem ⋆ A set of options ⋆ An experimental option ◮ Vary the value for the experimental option ◮ However - currently keep other experimental options as default
◮ are not complete ◮ can only be generalised within a certain context ◮ are not very exciting Reger,G How to play with AVATAR 19 / 26
100 110 120 130 140 150 160 20 40 60 80 100 120 140 160 180 problems solved time (seconds) Out of 300 problems buf-vampire buf-lingeling vampire lingeling Reger,G How to play with AVATAR 20 / 26
100 200 300 400 500 600 700 800 20 40 60 80 100 120 140 160 problems solved time (seconds) Out of 1336 problems vampire lingeling buf-vampire buf-lingeling Reger,G How to play with AVATAR 20 / 26
200 220 240 260 280 300 320 20 40 60 80 100 120 140 160 180 problems solved time (seconds) Out of 1665 problems known none all-dependent all Reger,G How to play with AVATAR 21 / 26
20 40 60 80 100 120 140 160 180 200 20 40 60 80 100 120 140 160 180 200 none known Out of 1682 problems, cross of Time elapsed
Reger,G How to play with AVATAR 21 / 26
10 20 30 40 50 60 70 80 90 100 10 20 30 40 50 60 70 80 90 100 all known Out of 1670 problems, cross of SAT solver-percent
Reger,G How to play with AVATAR 21 / 26
100 105 110 115 120 125 130 135 140 145 150 20 40 60 80 100 120 140 160 180 problems solved time (seconds) Out of 300 problems vampire,total lingeling,total vampire,min-all lingeling,min-all vampire,min-sco lingeling,min-sco Reger,G How to play with AVATAR 22 / 26
200 220 240 260 280 300 320 340 360 20 40 60 80 100 120 140 160 180 problems solved time (seconds) Out of 1934 problems min-all min-sco total Reger,G How to play with AVATAR 22 / 26
140 160 180 200 220 240 260 280 300 20 40 60 80 100 120 140 160 180 problems solved time (seconds) Out of 1662 problems
Reger,G How to play with AVATAR 23 / 26
Reger,G How to play with AVATAR 24 / 26
◮ i.e. light, small clauses rather than heavy, long ones
◮ How constrained is the model (can we make any difference?) ◮ How does the constructed model interact with selection?
◮ Beyond phase saving and Vampire’s backtrack-to-last-valid-choice
◮ i.e. add a clause if one component subsumes another
◮ i.e. minimise them, collect multiple refutations in one FO run Reger,G How to play with AVATAR 25 / 26
Reger,G How to play with AVATAR 26 / 26