Presentation is loading. Please wait.

Presentation is loading. Please wait.

Page 1 Nov 09, 2004CAS 701, McMaster Logic Programming and Prolog Presenter: John Xu Date: Nov 09, 2004.

Similar presentations


Presentation on theme: "Page 1 Nov 09, 2004CAS 701, McMaster Logic Programming and Prolog Presenter: John Xu Date: Nov 09, 2004."— Presentation transcript:

1 Page 1 Nov 09, 2004CAS 701, McMaster Logic Programming and Prolog Presenter: John Xu Date: Nov 09, 2004

2 Page 2 Nov 09, 2004CAS 701, McMaster Logic Programming – Example Suppose we have the following sentences 1) A graduate student of CAS must take the core course CAS 701 2) A student can not obtain a degree without passing the required core course I am a graduate student of CAS and want to obtain a degree, should I pass CAS 701?

3 Page 3 Nov 09, 2004CAS 701, McMaster Logic Programming – Example Structured solution: S: Being a graduate student of CAS T: Taking core course CAS 701 O: Obtaining a degree P: Passing required core course Σ: S => T, ¬P => ¬O, S Λ O Logic consequence: T Λ P

4 Page 4 Nov 09, 2004CAS 701, McMaster Logic Programming – Definition Logic programming is a declarative approach of writing computer programs based on Logic Prolog, which stands for PROgramming in LOGic, is the most widely available logic programming language

5 Page 5 Nov 09, 2004CAS 701, McMaster /* Filename: ancestor.pro This program creates a small set of facts and rules on who is the ancestor of whom. The user types the desired goal interactively when the program is run.*/ /* ancestor(A, B) means A is an ancestor of B */ ancestor(bob, susan). ancestor(A, X) :- parent(A, X). ancestor(A, X) :- parent(A, C), ancestor(C, X). /* parent(P, C) means P is a parent of C */ parent(fred, sally). parent(tina, sally). parent(sally, diane). parent(sam, bill).

6 Page 6 Nov 09, 2004CAS 701, McMaster Logic Programming – Prolog Query Queries: ancestor(fred, sally). Yes ancestor(fred, diane). Yes ancestor(fred, bill). No

7 Page 7 Nov 09, 2004CAS 701, McMaster Logic Programming – Implementation SLD-Resolution (inference mechanism) Unification: a procedure that takes two atomic formulas as input, and either shows how they can be instantiated to identical atoms or, reports a failure An SLD-derivation of G0 (using P and g1->g2…->gn … SLD-refutation: a finite derivation of the goal g0 Failed derivation: a derivation of the goal g0 with the last element that is not empty and cannot be resolved by any clause of the program

8 Page 8 Nov 09, 2004CAS 701, McMaster Logic Programming – Implementation Soundness of SLD-resolution Completeness of SLD-resolution Cut: Pruning the SLD-tree

9 Page 9 Nov 09, 2004CAS 701, McMaster Logic Programming – Reference Book: Ralph P. Grimaldi, DISCRETE AND COMBINATORIAL MATHEMATICS, 5TH ED, Pearson Education, 2004 Ulf Nilsson and Jan Ma luszy_nski, LOGIC, PROGRAMMING AND PROLOG, 2ND ED, Ulf Nilsson and Jan Ma luszy_nski, 2000 Web: http://cis.stvincent.edu/carlsond/prolog.html http://ktiml.mff.cuni.cz/~bartak/prolog/index.html http://www.cs.auckland.ac.nz/~j-hamer/07.363/prolog-for-se.html http://www.swi-prolog.org/


Download ppt "Page 1 Nov 09, 2004CAS 701, McMaster Logic Programming and Prolog Presenter: John Xu Date: Nov 09, 2004."

Similar presentations


Ads by Google