14
1-1 An Introduction to Logical Programming Sept. 2008

1-1 An Introduction to Logical Programming Sept. 2008

Embed Size (px)

DESCRIPTION

1-3 Predicate Calculus One form of symbolic logic that is used for logic programming is called first-order predicate calculus (predicate calculus for short). A brief look at predicate calculus follows: Propositions Are logical statements that may or may not be true. There are two types of propositions; 1.Atomic Propositions: consists of two parts: a functor or relation and an ordered list of parameters. Examples: man (ahmed)1-tuple predicate likes (ahmed, steak)2-tuple predicate

Citation preview

Page 1: 1-1 An Introduction to Logical Programming Sept. 2008

1-1

An Introduction toLogical Programming

Sept. 2008

Page 2: 1-1 An Introduction to Logical Programming Sept. 2008

1-2

Predicate Calculus

• Logic programming is based on formal logic.

• Formal logic was developed to provide a method for describing propositions.

• Propositions are logical statements that may or may not be true.

• Symbolic logic can be used for the three basic needs of formal logic:

• To express propositions• To express the relationship between propositions• To describe how new propositions can be inferred from other

propositions that are assumed to be true.

Page 3: 1-1 An Introduction to Logical Programming Sept. 2008

1-3

Predicate Calculus

• One form of symbolic logic that is used for logic programming is called first-order predicate calculus (predicate calculus for short).

• A brief look at predicate calculus follows:

• Propositions Are logical statements that may or may not be true. There are two types of propositions;1. Atomic Propositions: consists of two parts: a functor or

relation and an ordered list of parameters.

Examples:man (ahmed) 1-tuple predicate likes (ahmed, steak) 2-tuple predicate

Page 4: 1-1 An Introduction to Logical Programming Sept. 2008

1-4

Predicate Calculus

2. Compound Proposition: have two or more atomic propositions, which are connected by Logical Connectors.

Logical Connectors are operators that connects simple predicates to produce complex ones. A list of these connectors is:

Page 5: 1-1 An Introduction to Logical Programming Sept. 2008

1-5

Examples• The following are examples of Compound Propositions:

• The precedence of the operators is:

• The second example is equivalent to:

dbacba

dba ))((

Page 6: 1-1 An Introduction to Logical Programming Sept. 2008

1-6

Predicate Calculus (Contd.)

Quantifiers

• We can introduce variables into propositions using Quantifiers.

• There are two quantifiers:1. Universal quantifier (reads for all), and2. Existential quantifier (reads there exists).

• For example:

X.(man(X) human (X))

X.(mother (mary, X) ∩ male(X))

Page 7: 1-1 An Introduction to Logical Programming Sept. 2008

1-7

Clausal Form

In predicate calculus we can represent the same proposition with more than one way.

This will represent a problem if we want to use this technique with computers.

Therefore, we must use a standard form to represent proposition called the clausal form.

All propositions can be expressed in clausal form.

Predicate Calculus (Contd.)

Page 8: 1-1 An Introduction to Logical Programming Sept. 2008

1-8

• A proposition in “Clausal Form” has the following general syntax:

B1 B2 …. Bn A1 A2 …. Am

• The meaning of this proposition is as follows:• If all the As are true, then at least one B is true.

• The characteristics of the clausal form proposition are:1. Existential quantifiers are not required.2. Universal quantifiers are implicit3. No operators other than conjunction and disjunction are

required4. Disjunctions appear on the left side and conjunctions on

the right side.5. All predicate calculus propositions can be converted to

clausal form.

Predicate Calculus (Contd.)

Page 9: 1-1 An Introduction to Logical Programming Sept. 2008

1-9

• The right side of clausal form is called the “antecedent” or the “head” and the left side is the “consequence” or the “tail”.

• Examples of Clausal forms are:likes(ahmed, hamour) likes(ahmed, fish) fish(hamour)

father( louis, al ) father( louis, violet ) father( al, bob ) mother( violet, bob )

grandfather( louis, bob )

Page 10: 1-1 An Introduction to Logical Programming Sept. 2008

1-10

Resolution is an inference rule that is used to infer propositions from given propositions. The concept of resolution is the following: From (P Q) and (R P) infer (R Q) Example

From older(ahmed, ali) father(ahmed, ali) and

wiser(ahmed, ali) older(ahmed, ali) Then infer

wiser(ahmed, ali) father(ahmed, ali)

PC and Theorem Proving

Page 11: 1-1 An Introduction to Logical Programming Sept. 2008

1-11

Resolution The mechanics of this resolution construction are as

follows: The left sides of the two propositions are

ANDed together to make the left side of the new proposition.

Same thing is done to get the right side. Any term that appears on both sides of the new

propositions is removed from both sides.

Page 12: 1-1 An Introduction to Logical Programming Sept. 2008

1-12

Unification

• The presence of variables in propositions requires resolution to find values for those variables that allow the matching process to succeed.

• This process of determining useful values for variables is called unification.

• The temporary assigning of values to variables to allow unification is called instantiation

• Example– What if we have wiser(X,Y) older(X,Y) – Then we need to do unification (instantiation)

{X/ahmed and Y/ali }

• This will be discussed in the context of Prolog.

Page 13: 1-1 An Introduction to Logical Programming Sept. 2008

1-13

• When prepositions are used for resolution, only a restricted kind of clausal form called Horn clauses can be used.

A Horn clause is a clause that has one of two forms:

A single atomic proposition on the left side, or

An empty left side.

This mean that a Horn clause will contain one predicate head, in this case we call it headed Horn clause, or it has an empty head and we call it headless Horn clause.

Horn Clauses

Page 14: 1-1 An Introduction to Logical Programming Sept. 2008

1-14

Horn Clauses• Headed Horn clauses are used to state relationships,

such as:likes(ahmed, hamour) likes(ahmed, fish)

fish(hamour)

• Headedless Horn clauses are used to state facts, such as father(khaled, hasan)

• Most but not all, propositions can be stated in Horn clauses.