Presentation is loading. Please wait.

Presentation is loading. Please wait.

DPLL in Coq Zhuang Zhong 11-05-2008. Overview  Previous work  Stålmarck algorithm and Binary Decision Diagram  Produce traces of proof  Reconstruct.

Similar presentations


Presentation on theme: "DPLL in Coq Zhuang Zhong 11-05-2008. Overview  Previous work  Stålmarck algorithm and Binary Decision Diagram  Produce traces of proof  Reconstruct."— Presentation transcript:

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


Download ppt "DPLL in Coq Zhuang Zhong 11-05-2008. Overview  Previous work  Stålmarck algorithm and Binary Decision Diagram  Produce traces of proof  Reconstruct."

Similar presentations


Ads by Google