1 / 9

Logic Programming and Prolog

Logic Programming and Prolog. Presenter: John Xu Date: Nov 09, 2004. 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

joey
Download Presentation

Logic Programming and Prolog

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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? CAS 701, McMaster

  3. 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 CAS 701, McMaster

  4. 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 CAS 701, McMaster

  5. /* 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). CAS 701, McMaster

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

  7. 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 <) is a finite or infinite sequence of goals: g0->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 CAS 701, McMaster

  8. Logic Programming – Implementation • Soundness of SLD-resolution • Completeness of SLD-resolution • Cut: Pruning the SLD-tree CAS 701, McMaster

  9. 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/ CAS 701, McMaster

More Related