Superposition with Lambdas Alexander Bentkamp Jasmin Blanchette Sophie Tourret Petar Vukmirovi ć Uwe Waldmann � 1
Motivation: Sledgehammer Proof goal from Isabelle Fact selection Translation to FOL A complete HO LEO-II/III Satallax superposition prover Superposition provers SMT provers Proof reconstruction Proof text in Isabelle � 2
Milestones towards HOL HOL Boolean-free HOL boolean formulas nested in terms λ -free HOL / applicative FOL λ -expressions / comprehension axioms FOL partial application & applied variables � 3
Challenges #1 Higher-order unification #2 Superposition below applied variables #3 No ground-total simplification order � 4
Higher-Order Unification #1 Undecidability & no most general unifier Our approach: dovetailing Flex-flex pairs Huet’s preunification algorithm requires constrained clauses Our approach: Jensen & Pietrzykowski’s algorithm Future work: More efficient unification algorithms (complete or incomplete) � 5
Applied Variables #2 f a = c h ( X a) ( X b) ≠ h (g c) (g (f b)) Superposition “half below” a variable? Unsatisfiable because: X ↦ λ u . g (f u ) yields h (g (f a)) (g (f b)) ≠ h (g c) (g (f b)) = c � 6
#2 Applied Variables f a = c h ( X a) ( X b) ≠ h (g c) (g (f b)) add artificial context superpose Y (f a) = Y c Unifier of Y (f a) and X a : Y ↦ λ u . Z a u u X ↦ λ v . Z v (f v ) (f a) h ( Z a c c) ( Z b (f b) (f a)) ≠ h (g c) (g (f b)) This is a new inference rule: FluidSup � 7
#3 No Ground-Total Simplification Order ( λ x . x ) > ( λ x . b) Then, by compatibility with contexts: or a = ( λ x . x ) a > ( λ x . b) a = b ( λ x . x ) < ( λ x . b) Then, by compatibility with contexts: c = ( λ x . x ) c < ( λ x . b) c = b ? � 8
No Ground-Total #3 Simplification Order Our solution: Compatibility only with green contexts not below applied variables no prefix subterms not below λ s f (g a) ( Y b) ( λ x . h c (g x )) Superposition only at green subterms ArgCong, FluidSup, and the extensionality axiom access other subterms � 9
Our Calculus D ∨ t = t’ C ∨ [¬] s[u] = s’ C ∨ s’ = t’ ∨ s = t Sup EqFact (C ∨ t ≠ t’ ∨ s = t’) σ (D ∨ C ∨ [¬] s[t’] = s’) σ σ ∈ CSU(t,u) σ ∈ CSU(s,s’) D ∨ t = t’ C ∨ [¬] s[u] = s’ C ∨ s ≠ t FluidSup EqRes C σ (D ∨ C ∨ [¬] s[ Z t’] = s’) σ σ ∈ CSU(s,t) σ ∈ CSU( Z t,u) C ∨ s = t ArgCong C ∨ (s σ ) X ̅ = (t σ ) X ̅ Ext X (di ff X Y ) ≠ Y (di ff X Y ) ∨ X = Y All clauses are kept in β -normal η -short form. � 10
Number of solved problems 175 350 525 700 Evaluation in Zipperposition 0 Comparison with λ -free Superposition λ free-Zip λ -free TPTP λ Zip-full λ Zip-pragmatic Sledgehammer (256 facts) Sledgehammer (16 facts) λ free-Zip ( λ -lifted) λ Zip-full λ Zip-pragmatic λ free-Zip ( λ -lifted) λ Zip-full λ Zip-pragmatic � 11
Number of solved problems 175 350 525 700 Evaluation in Zipperposition 0 Comparison with other higher-order provers Leo-III Boolean-free TPTP Leo-III-meta Satallax Satallax-meta λ Zip-full λ Zip-pragmatic Sledgehammer (256 facts) Sledgehammer (16 facts) Leo-III Leo-III-meta Satallax Satallax-meta λ Zip-full λ Zip-pragmatic Leo-III Leo-III-meta Satallax Satallax-meta λ Zip-full λ Zip-pragmatic � 12
Summary Complete superposition calculus for Boolean-free HOL Promising experimental results for an incomplete variant of this calculus Many remaining challenges: First-class Boolean type More efficient unification More efficient treatment of extensionality More efficient alternatives to FluidSup Implementation in E � 13
Recommend
More recommend