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

Slides:



Advertisements
Similar presentations
Assertion Checking over Combined Abstraction of Linear Arithmetic and Uninterpreted Functions Sumit Gulwani Microsoft Research, Redmond Ashish Tiwari SRI.
Advertisements

Combining Abstract Interpreters Sumit Gulwani Microsoft Research Redmond, Group Ashish Tiwari SRI RADRAD.
Logical Abstract Interpretation Sumit Gulwani Microsoft Research, Redmond.
Programmed Strategies for Program Verification Richard B. Kieburtz OHSU/OGI School of Science and Engineering and Portland State University.
The Model Evolution Calculus with Built-in Theories Peter Baumgartner MPI Informatik, Saarbrücken
Automated Verification with HIP and SLEEK Asankhaya Sharma.
Programming Example: tax computation. Introduction In this webpage, we will study a programming example using the conditional statements (if and if-else)
UIUC CS 497: Section EA Lecture #2 Reasoning in Artificial Intelligence Professor: Eyal Amir Spring Semester 2004.
Propositional and First Order Reasoning. Terminology Propositional variable: boolean variable (p) Literal: propositional variable or its negation p 
Proofs from SAT Solvers Yeting Ge ACSys NYU Nov
CPSC 422, Lecture 21Slide 1 Intelligent Systems (AI-2) Computer Science cpsc422, Lecture 21 Mar, 4, 2015 Slide credit: some slides adapted from Stuart.
Recursively Defined Functions
CS 355 – Programming Languages
SAT and Model Checking. Bounded Model Checking (BMC) A.I. Planning problems: can we reach a desired state in k steps? Verification of safety properties:
Plan for today Proof-system search ( ` ) Interpretation search ( ² ) Quantifiers Equality Decision procedures Induction Cross-cutting aspectsMain search.
Constraint Logic Programming Ryan Kinworthy. Overview Introduction Logic Programming LP as a constraint programming language Constraint Logic Programming.
Binary Decision Diagrams1 BINARY DECISION DIAGRAMS.
1 Boolean Satisfiability in Electronic Design Automation (EDA ) By Kunal P. Ganeshpure.
Katz Formal Specifications Larch 1 Algebraic Specification and Larch Formal Specifications of Complex Systems Shmuel Katz The Technion.
Search in the semantic domain. Some definitions atomic formula: smallest formula possible (no sub- formulas) literal: atomic formula or negation of an.
Administrative stuff On Thursday, we will start class at 11:10, and finish at 11:55 This means that each project will get a 10 minute presentation + 5.
Last time Proof-system search ( ` ) Interpretation search ( ² ) Quantifiers Equality Decision procedures Induction Cross-cutting aspectsMain search strategy.
Semantics with Applications Mooly Sagiv Schrirber html:// Textbooks:Winskel The.
Daniel Kroening and Ofer Strichman 1 Decision Procedures in First Order Logic Decision Procedures for Equality Logic.
Daniel Kroening and Ofer Strichman Decision Procedure
1 First order theories. 2 Satisfiability The classic SAT problem: given a propositional formula , is  satisfiable ? Example:  Let x 1,x 2 be propositional.
Propositional Calculus CS 680: Formal Methods in Verification Computer Systems Jeremy Johnson.
SAT Solver Math Foundations of Computer Science. 2 Boolean Expressions  A Boolean expression is a Boolean function  Any Boolean function can be written.
Deciding a Combination of Theories - Decision Procedure - Changki pswlab Combination of Theories Daniel Kroening, Ofer Strichman Presented by Changki.
Themes of Presentations Rule-based systems/expert systems (Catie) Software Engineering (Khansiri) Fuzzy Logic (Mark) Configuration Systems (Sudhan) *
Copyright © Curt Hill Truth Tables A way to show Boolean Operations.
Binary Decision Diagrams (BDDs)
Proof Systems KB |- Q iff there is a sequence of wffs D1,..., Dn such that Dn is Q and for each Di in the sequence: a) either Di is in KB or b) Di can.
Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto.
CMU, Oct 4 DPLL-based Checkers for Satisfiability Modulo Theories Cesare Tinelli Department of Computer Science The University of Iowa Joint work with.
SAT and SMT solvers Ayrat Khalimov (based on Georg Hofferek‘s slides) AKDV 2014.
INTRODUCTION TO ARTIFICIAL INTELLIGENCE COS302 MICHAEL L. LITTMAN FALL 2001 Satisfiability.
Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View BDDs.
 Solve and algebraic equation and provide a justification for each step.  Identify which property of equality or congruence is being used.
CS Introduction to AI Tutorial 8 Resolution Tutorial 8 Resolution.
LDK R Logics for Data and Knowledge Representation Propositional Logic: Reasoning First version by Alessandro Agostini and Fausto Giunchiglia Second version.
CS6133 Software Specification and Verification
Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View BDDs.
CPSC 422, Lecture 21Slide 1 Intelligent Systems (AI-2) Computer Science cpsc422, Lecture 21 Oct, 30, 2015 Slide credit: some slides adapted from Stuart.
Automated tactics for separation logic VeriML Reconstruct Z3 Proof Safe incremental type checker Certifying code transformation Proof carrying hardware.
© Copyright 2008 STI INNSBRUCK Intelligent Systems Propositional Logic.
Nikolaj Bjørner Microsoft Research DTU Winter course January 2 nd 2012 Organized by Flemming Nielson & Hanne Riis Nielson.
1 First order theories (Chapter 1, Sections 1.4 – 1.5) From the slides for the book “Decision procedures” by D.Kroening and O.Strichman.
AN INTERPOLATING THEOREM PROVER K.L. McMillan Cadence Berkley Labs.
1 Lecture 5 PVS commands. 2 Last week Logical formalisms, first-order logic (syntax, semantics). Introduction to PVS. Language of PVS. Proving sequents.
Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View Basic Concepts and Background.
1 A framework for eager encoding Daniel Kroening ETH, Switzerland Ofer Strichman Technion, Israel (Executive summary) (submitted to: Formal Aspects of.
Knowledge Repn. & Reasoning Lecture #9: Propositional Logic UIUC CS 498: Section EA Professor: Eyal Amir Fall Semester 2005.
In this lecture What is Programming? A useful definition Object Orientation (and it’s counterparts) Thinking OO Programming Blocks – Variables – Logic.
Certifying and Synthesizing Membership Equational Proofs Patrick Lincoln (SRI) joint work with Steven Eker (SRI), Jose Meseguer (Urbana) and Grigore Rosu.
Satisfiability Modulo Theories and DPLL(T) Andrew Reynolds March 18, 2015.
CS.462 Artificial Intelligence SOMCHAI THANGSATHITYANGKUL Lecture 04 : Logic.
Cooperative Integration of an Interactive Proof Assistant and an Automated Prover Adam Chlipala and George C. Necula University of California, Berkeley.
Thoughts on Programming with Proof Assistants Adam Chlipala University of California, Berkeley PLPV Workshop.
Lecture 11: Proof by Reflection
Decision Procedures in First Order Logic
Gábor Kusper University of Linz RISC Austria
ARTIFICIAL INTELLIGENCE
NP-Completeness Proofs
Binary Decision Diagrams
Defining A Formal Semantics For The Rosetta Specification Language
PROPOSITIONAL LOGIC - SYNTAX-
Search techniques.
6.001 SICP Interpretation Parts of an interpreter
CSE 589 Applied Algorithms Spring 1999
Presentation transcript:

DPLL in Coq Zhuang Zhong

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

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)))))

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.

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.

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

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

Example  A /\ (C \/ ~B /\ (~D -> ~A)) -> B /\ ~A -> D /\ D /\ ~ A.  E -> F /\ (A -> A) \/ ~B \/ ~C /\ D -> C \/ ~C /\ ~(B \/ F) -> D \/ ~E.

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