Logic Programming Formal Logics Recap Formulas wout quantifiers

  • Slides: 16
Download presentation
Logic Programming

Logic Programming

Formal Logics- Recap • Formulas – w/out quantifiers • Free Variables • Bound Variables

Formal Logics- Recap • Formulas – w/out quantifiers • Free Variables • Bound Variables • Assignments and satisfaction • Validity and satisfiability

Formal Logics- Proofs • Satisfaction of a formula should be proved – Based on

Formal Logics- Proofs • Satisfaction of a formula should be proved – Based on facts (assertions, assumptions, axioms) and inference rules • We are led to a notion of Proof Trees – Why trees? • Proofs are informative! – E. g. assignment to an existential variable

Logic and Programming • Can we automate the process of proving logical statements? •

Logic and Programming • Can we automate the process of proving logical statements? • First we need a syntax for defining assertions, rules, . . • Then we need an automated proof system

Logic and Programming • Can we automate the process of proving logical statements? •

Logic and Programming • Can we automate the process of proving logical statements? • First we need a syntax for defining facts, rules, statements to-be-proved • Then we need an automated proof system • Note that in principle we may need to use a fact multiple times so no a-priori bound on the proof size

Applications • Theory behind database query languages is based on logic – Querying a

Applications • Theory behind database query languages is based on logic – Querying a database = looking for a satisfying assignment to a query, based on the database facts • Automated Verification – Describe (e. g. Java) program as logical rules, constraints on behavior as query • Automated Theorem Proving

Is it even feasible? • Hilbert’s first decision problem: given a first order logic

Is it even feasible? • Hilbert’s first decision problem: given a first order logic formula, decide whether it is satisfiable • Undecidable!

Tradeoff • Classic tradeoff between expressive power of languages and complexity of evaluation •

Tradeoff • Classic tradeoff between expressive power of languages and complexity of evaluation • There are decidable fragments of First Order Logic which are still quite expressive • SQL, Datalog, Description Logic, Prolog, …

Sub-cases • We start with Relational Logic Programming – Facts are relations between elements,

Sub-cases • We start with Relational Logic Programming – Facts are relations between elements, relatively simple rules allow to infer new relations • Then move on to Full Logic Programming – Allow function symbols etc.

Syntax • We consider the Prolog syntax for describing facts and rules • Very

Syntax • We consider the Prolog syntax for describing facts and rules • Very similar to the Datalog syntax • Other LP languages use different syntax, but similar ideas

Facts • • % Signature: parent(Parent, Child)/2 % Purpose: Parent is a parent of

Facts • • % Signature: parent(Parent, Child)/2 % Purpose: Parent is a parent of Child parent(rina, moshe). parent(rina, rachel). parent(rachel, yossi). parent(reuven, moshe). % Signature: male(Person)/1 • • % Purpose: Person is a male(moshe). male(yossi). male(reuven). % Signature: female(Person)/1 % Purpose: Person is a female(rina). female(rachel).

Variables and constants • Variables begin with an upper-case, constants with lower-case • Variables

Variables and constants • Variables begin with an upper-case, constants with lower-case • Variables in facts are universally quantified

Rules • father(Dad, Child) : parent(Dad, Child), male(Dad). • ancestor (Anc, Child) : parent(Anc,

Rules • father(Dad, Child) : parent(Dad, Child), male(Dad). • ancestor (Anc, Child) : parent(Anc, X), ancestor(X, Child).

Queries • ? - father(D, C). – D = reuven, – C = moshe.

Queries • ? - father(D, C). – D = reuven, – C = moshe. • ? - father(reuven, moshe). – true. • ? - mother(M, C). – – – – M = rina, C = moshe ; M = rina, C = rachel ; M = rachel, C = yossi ; fail.

Variables • Variables in facts are universally quantified – In queries they are existentially

Variables • Variables in facts are universally quantified – In queries they are existentially quantified • father(X, Ron). • ? - father(Y, Ron). true

Proofs

Proofs