Logic Programming (PLP 11) Predicate Calculus, Horn Clauses, Clocksin-Mellish Procedure

Similar documents
Logic Programming (PLP 11) Predicate Calculus Clocksin-Mellish Procedure Horn Clauses

An Early (1971) Conversation. Logic Programming (PLP 11.3) Horn Clauses Introduction to Prolog: Resolution, Unification.

Chapter 16. Logic Programming. Topics. Logic Programming. Logic Programming Paradigm

Logic. Stephen G. Ware CSCI 4525 / 5525


Propositional Logic Language

cse 311: foundations of computing Fall 2015 Lecture 6: Predicate Logic, Logical Inference

COMP9414: Artificial Intelligence Propositional Logic: Automated Reasoning

CS1021. Why logic? Logic about inference or argument. Start from assumptions or axioms. Make deductions according to rules of reasoning.

3. The Logic of Quantified Statements Summary. Aaron Tan August 2017

Advanced Topics in LP and FP

CS 4700: Artificial Intelligence

Description Logics. Foundations of Propositional Logic. franconi. Enrico Franconi

Propositional natural deduction

Inference in Propositional Logic

CSC Discrete Math I, Spring Propositional Logic

2. The Logic of Compound Statements Summary. Aaron Tan August 2017

Propositional Logic: Review

Logic: Propositional Logic (Part I)

Discrete Mathematical Structures. Chapter 1 The Foundation: Logic

Mat 243 Exam 1 Review

Compound Propositions

Logic. Knowledge Representation & Reasoning Mechanisms. Logic. Propositional Logic Predicate Logic (predicate Calculus) Automated Reasoning

1.1 Language and Logic

CS 730/730W/830: Intro AI

Part 1: Propositional Logic

Learning Goals of CS245 Logic and Computation

Introduction to Sets and Logic (MATH 1190)

Propositional Logic Not Enough

Lecture 2. Logic Compound Statements Conditional Statements Valid & Invalid Arguments Digital Logic Circuits. Reading (Epp s textbook)

n logical not (negation) n logical or (disjunction) n logical and (conjunction) n logical exclusive or n logical implication (conditional)

Math 10850, fall 2017, University of Notre Dame

Logic - recap. So far, we have seen that: Logic is a language which can be used to describe:

Logic Overview, I. and T T T T F F F T F F F F

2.2: Logical Equivalence: The Laws of Logic

Conjunction: p q is true if both p, q are true, and false if at least one of p, q is false. The truth table for conjunction is as follows.

Today. Proof using contrapositive. Compound Propositions. Manipulating Propositions. Tautology

Propositional Logic and Semantics

Propositional Resolution Introduction

Review. Propositional Logic. Propositions atomic and compound. Operators: negation, and, or, xor, implies, biconditional.

Logic and Resolution Representation and Reasoning

Propositional Logic Part 1

Language of Propositional Logic

COMP9414: Artificial Intelligence First-Order Logic

Discrete Mathematics & Mathematical Reasoning Predicates, Quantifiers and Proof Techniques

CHAPTER 10. Gentzen Style Proof Systems for Classical Logic

CSC384: Intro to Artificial Intelligence Knowledge Representation II. Required Readings: 9.1, 9.2, and 9.5 Announcements:

Inference Methods In Propositional Logic

Part Two: The Basic Components of the SOFL Specification Language

Propositional Logic: Models and Proofs

Foundations of Artificial Intelligence

Chapter 4: Classical Propositional Semantics

Foundations of Artificial Intelligence

Logic (3A) Young W. Lim 11/2/13

Logic (3A) Young W. Lim 10/31/13

Predicate Calculus - Syntax

7. Propositional Logic. Wolfram Burgard and Bernhard Nebel

Chapter 11: Automated Proof Systems

02 Propositional Logic

Intelligent Agents. First Order Logic. Ute Schmid. Cognitive Systems, Applied Computer Science, Bamberg University. last change: 19.

It rains now. (true) The followings are not propositions.

Logic and Proofs. (A brief summary)

Knowledge representation DATA INFORMATION KNOWLEDGE WISDOM. Figure Relation ship between data, information knowledge and wisdom.

CS 730/830: Intro AI. 3 handouts: slides, asst 6, asst 7. Wheeler Ruml (UNH) Lecture 12, CS / 16. Reasoning.

Inference Methods In Propositional Logic

Propositional Logic. Jason Filippou UMCP. ason Filippou UMCP) Propositional Logic / 38

MAI0203 Lecture 7: Inference and Predicate Calculus

Propositional Logic. Logic. Propositional Logic Syntax. Propositional Logic

Logic: First Order Logic

COMP219: Artificial Intelligence. Lecture 20: Propositional Reasoning

software design & management Gachon University Chulyun Kim

Supplementary exercises in propositional logic

Discrete Mathematics and Its Applications

Propositional Calculus: Formula Simplification, Essential Laws, Normal Forms

1.1 Language and Logic

How to determine if a statement is true or false. Fuzzy logic deal with statements that are somewhat vague, such as: this paint is grey.

Knowledge Representation and Reasoning

THE LOGIC OF QUANTIFIED STATEMENTS

Knowledge base (KB) = set of sentences in a formal language Declarative approach to building an agent (or other system):

α-formulas β-formulas

Sec$on Summary. Tautologies, Contradictions, and Contingencies. Logical Equivalence. Normal Forms (optional, covered in exercises in text)

Comp487/587 - Boolean Formulas

Section Summary. Predicate logic Quantifiers. Negating Quantifiers. Translating English to Logic. Universal Quantifier Existential Quantifier

Tautologies, Contradictions, and Contingencies

Artificial Intelligence Knowledge Representation I

A. Propositional Logic

Propositional logic (revision) & semantic entailment. p. 1/34

Predicate Calculus lecture 1

3 The Semantics of the Propositional Calculus

CSE 20: Discrete Mathematics

Logic (3A) Young W. Lim 10/29/13

Introduction to Artificial Intelligence. Logical Agents

Logic and Proof. Aiichiro Nakano

Natural Deduction for Propositional Logic

Strong AI vs. Weak AI Automated Reasoning

Logic and Discrete Mathematics. Section 3.5 Propositional logical equivalence Negation of propositional formulae

DISCRETE STRUCTURES WEEK5 LECTURE1

Convert to clause form:

Description Logics. Deduction in Propositional Logic. franconi. Enrico Franconi

Foundations of Logic Programming

Transcription:

Logic Programming (PLP 11) Predicate Calculus, Horn Clauses, Clocksin-Mellish Procedure Carlos Varela Rennselaer Polytechnic Institute November 7, 2016 C. Varela 1

An Early (1971) Conversation USER: Cats kill mice. Tom is a cat who does not like mice who eat cheese. Jerry is a mouse who eats cheese. Max is not a mouse. What does Tom do? COMPUTER: Tom does not like mice who eat cheese. Tom kills mice. USER: Who is a cat? COMPUTER: Tom. USER: What does Jerry eat? COMPUTER: USER: Cheese. Who does not like mice who eat cheese? COMPUTER: Tom. USER: What does Tom eat? COMPUTER: What cats who do not like mice who eat cheese eat. C. Varela 2

Another Conversation USER: Every psychiatrist is a person. Every person he analyzes is sick. Jacques is a psychiatrist in Marseille. Is Jacques a person? Where is Jacques? Is Jacques sick? COMPUTER: Yes. In Marseille. I don t know. C. Varela 3

Logic programming A program is a collection of axioms, from which theorems can be proven. A goal states the theorem to be proved. A logic programming language implementation attempts to satisfy the goal given the axioms and built-in inference mechanism. C. Varela 4

Propositional Logic Assigning truth values to logical propositions. Formula syntax: f ::= v symbol f f and f f or f f if and only if f f implies f not C. Varela 5

Truth Values To assign a truth values to a propositional formula, we have to assign truth values to each of its atoms (symbols). Formula semantics: a b a b a b a b a b a False False F F T T T False True F T F T T True False F T F F F True True T T T T F C. Varela 6

Tautologies A tautology is a formula, true for all possible assignments. For example: p p The contrapositive law: (p q) ( q p) De Morgan s law: (p q) ( p q) C. Varela 7

First Order Predicate Calculus Adds variables, terms, and (first-order) quantification of variables. Predicate syntax: a ::= p(v 1, v 2,,v n ) predicate f ::= a atom v = p(v 1, v 2,,v n ) equality v 1 = v 2 f f f f f f f f f v.f universal quantifier v.f existential quantifier C. Varela 8

Predicate Calculus In mathematical logic, a predicate is a function that maps constants or variables to true and false. Predicate calculus enables reasoning about propositions. For example: C [rainy(c) cold(c) snowy(c)] Quantifier (, ) Operators (,,,, ) C. Varela 9

Quantifiers Universal ( ) quantifier indicates that the proposition is true for all variable values. Existential ( ) quantifier indicates that the proposition is true for at least one value of the variable. For example: A B [( C [ takes(a,c) takes(b,c)]) classmates(a,b) ] C. Varela 10

Structural Congruence Laws P 1 P 2 P 1 P 2 X [P(X)] X [ P(X)] X [P(X)] X [ P(X)] (P 1 P 2 ) P 1 P 2 (P 1 P 2 ) P 1 P 2 P P (P 1 P 2 ) (P 1 P 2 ) (P 2 P 1 ) P 1 (P 2 P 3 ) (P 1 P 2 ) (P 1 P 3 ) P 1 (P 2 P 3 ) (P 1 P 2 ) (P 1 P 3 ) P 1 P 2 P 2 P 1 C. Varela 11

Clausal Form Looking for a minimal kernel appropriate for theorem proving. Propositions are transformed into normal form by using structural congruence relationship. One popular normal form candidate is clausal form. Clocksin and Melish (1994) introduce a 5-step procedure to convert first-order logic propositions into clausal form. C. Varela 12

Clocksin and Melish Procedure 1. Eliminate implication ( ) and equivalence ( ). 2. Move negation ( ) inwards to individual terms. 3. Skolemization: eliminate existential quantifiers ( ). 4. Move universal quantifiers ( ) to top-level and make implicit, i.e., all variables are universally quantified. 5. Use distributive, associative and commutative rules of,, and, to move into conjuctive normal form, i.e., a conjuction of disjunctions (or clauses.) C. Varela 13

Example A [ student(a) ( dorm_resident(a) B [takes(a,b) class(b)])] 1. Eliminate implication ( ) and equivalence ( ). A [student(a) ( dorm_resident(a) B [takes(a,b) class(b)])] 2. Move negation ( ) inwards to individual terms. A [student(a) ( dorm_resident(a) B [ (takes(a,b) class(b))])] A [student(a) ( dorm_resident(a) B [ takes(a,b) class(b)])] C. Varela 14

Example Continued A [student(a) ( dorm_resident(a) B [ takes(a,b) class(b)])] 3. Skolemization: eliminate existential quantifiers ( ). 4. Move universal quantifiers ( ) to top-level and make implicit, i.e., all variables are universally quantified. student(a) ( dorm_resident(a) ( takes(a,b) class(b))) 5. Use distributive, associative and commutative rules of,, and, to move into conjuctive normal form, i.e., a conjuction of disjunctions (or clauses.) (student(a) dorm_resident(a)) (student(a) takes(a,b) class(b)) C. Varela 15

Horn clauses A standard form for writing axioms, e.g.: father(x,y) parent(x,y), male(x). The Horn clause consists of: A head or consequent term H, and A body consisting of terms B i H B 0, B 1,, B n The semantics is: «If B 0, B 1,, and B n, then H» C. Varela 16

Clausal Form to Prolog (student(a) dorm_resident(a)) (student(a) takes(a,b) class(b)) 6. Use commutativity of to move negated terms to the right of each clause. 7. Use P 1 P 2 P 2 P 1 P 1 P 2 (student(a) dorm_resident(a)) (student(a) ( takes(a,b) class(b))) 8. Move Horn clauses to Prolog: student(a) :- dorm_resident(a). student(a) :- takes(a,b),class(b). C. Varela 17

Skolemization X [takes(x,cs101) class_year(x,2)] introduce a Skolem constant to get rid of existential quantifier ( ): takes(x,cs101) class_year(x,2) X [ dorm_resident(x) A [campus_address_of(x,a)]] introduce a Skolem function to get rid of existential quantifier ( ): X [ dorm_resident(x) campus_address_of(x,f(x)] C. Varela 18

Limitations If more than one non-negated (positive) term in a clause, then it cannot be moved to a Horn clause (which restricts clauses to only one head term). If zero non-negated (positive) terms, the same problem arises (Prolog s inability to prove logical negations). For example: «every living thing is an animal or a plant» animal(x) plant(x) living(x) animal(x) plant(x) living(x) C. Varela 19

Exercises 72. What is the logical meaning of the second Skolemization example if we do not introduce a Skolem function? 73. Convert the following predicates into Conjunctive Normal Form, and if possible, into Horn clauses: a) C [rainy(c) cold(c) snowy(c)] b) C [ snowy(c)] c) C [snowy(c)] 74. PLP Exercise 11.5 (pg 571). 75. PLP Exercise 11.6 (pg 571). C. Varela 20