Download presentation
Presentation is loading. Please wait.
Published byIsis Spanton Modified over 10 years ago
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/
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.