Download presentation
Presentation is loading. Please wait.
Published byIra Newton Modified over 9 years ago
1
DPLL in Coq Zhuang Zhong 11-05-2008
2
Overview Previous work Stålmarck algorithm and Binary Decision Diagram Produce traces of proof Reconstruct proof term This work Formalization of DPLL algorithm Good use of module type Proof by reflexivity
3
Decision Procedure 1. Make a conjunction F of all the Hypotheses 2. Convert F to CNF form 3. Convert F to f with respect to abstract model (reify) (FClause (COr (CLit (Left_idx (Left_idx End_idx), true)) (COr (CLit (Right_idx End_idx, false)) (CLit (Left_idx End_idx, false))))) (FClause (COr (CLit (Left_idx (Left_idx End_idx), true)) (COr (CLit (Right_idx End_idx, false)) (CLit (Left_idx End_idx, false)))))
4
Decision Procedure cont. 4. Measure possible steps about the formula 5. Compute proof_search( |- (make f))= Unsat 6. If equal, then proof complete 7. Else, it will print the counter model 8. The whole procedure is wrap by a tactic unsat.
5
Model Semantics of the abstract formula Definition model := {M : F.L.t -> Prop | wf_model M}. Definition sat_clause (M : model) (C : F.LSet.t) := exists l, M l /\ F.LSet.In l C. Definition sat_goal (M : model) (D : F.CSet.t) := forall C, F.CSet.In C D -> sat_clause M C. Definition submodel (G : F.LSet.t) (M : model) := forall l, F.LSet.In l G -> (M l /\ ~F.LSet.In (F.L.mk_not l) G). Definition incompatible (G : F.LSet.t) (D : F.CSet.t) := forall (M : model), submodel G M -> ~sat_goal M D.
6
Interpretation Variable Use varmap (Require Import Quote) Varmap is quite like a binary tree index*bool -> lookup index varmap Formula Inductive type formula reify_formula Formula varmap Generate sequent
7
Modularity Module Type & Module Module Type is a signature Module can be parameterized with other module and instantiated to match a certain module type In this work Module Types LITERAL, CNF Module LProp, CNFProp… Advantage High level abstraction Eg. Different prop, different pick method
8
Example A /\ (C \/ ~B /\ (~D -> ~A)) -> B /\ ~A -> D /\ D /\ ~ A. E -> F /\ (A -> A) \/ ~B \/ ~C /\ D -> C \/ ~C /\ ~(B \/ F) -> D \/ ~E.
9
Conclusion Develop a tactic in Coq like omega, ring… What can be done: Optimization Combine with other decision procedure Congruence, linear arithmetic… Next week Decision procedures above Read more about this work
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.