Symbolic Programming Declarative Programming

Size: px
Start display at page:

Download "Symbolic Programming Declarative Programming"

Transcription

1 CS370 Symbolic Programming Declarative Programming LECTURE 2: Introduction to Prolog Computer Science Department Korea Advanced Institute of Science and Technology

2 Overview Primer Introduction to Prolog 2 Symbolic Programming

3 Primer Symbolic Programming cf. numeric computation There are well-known examples of symbolic computation whose implementation in other standard languages took tens of pages of indigestible code. When the same algorithms were implemented in Prolog, the result was a crystal-clear program easily fitting on one page. 3 Symbolic Programming

4 Primer Declarative Programming cf. procedural programming Many believe that every student of computer science should learn something about Prolog at some point because Prolog enforces a different problem-solving paradigm complementary to other programming languages. 4 Symbolic Programming

5 Primer Logic Programming cf. functional programming Prolog stands for programming in logic, emerging from the idea of using logic as a programming language. But Prolog is a general programming language and any algorithm can be programmed in it. 5 Symbolic Programming

6 Primer Prerequisites none No particular programming experience is required. In fact, plentiful experience and devotion to procedural programming - for example in C or Pascal - might even be an impediment to the fresh way of thinking Prolog requires. 6 Symbolic Programming

7 Introduction to Prolog Defining relations by facts Defining relations by rules Recursive rules How Prolog answers questions Declarative and procedural meaning of programs 7 Symbolic Programming

8 Defining relations by facts Example Sentence Tom is a parent of Bob. Example Representation parent(tom,bob). Are there any other ways? tom-is-a-parent-of-bob. parent-of-bob(tom). relation(parent,tom,bob). relation(parent,2,tom,bob). What are the pros and cons? generality, extensibility, indexibility 8 Symbolic Programming

9 Defining relations by facts Questions Who is Tom a parent of??- parent(tom,x). X = bob yes Who else is Tom a parent of? parent(tom,bob). parent(tom,liz).?- parent(tom,x). X = bob; X = liz; no 9 Symbolic Programming

10 Defining relations by facts Question Who is a grandparent of Jim? parent(tom,bob). parent(tom,liz). parent(bob,jim).?- parent(x,y), parent(y,jim). X = tom, Y = bob yes Any other possibilities? 10 Symbolic Programming

11 Defining relations by rules Encoding gender information female(liz). Are there any other ways? gender(liz,feminine). person(liz,female,21,...). female([liz,sue,mary]). X is a male if it is not a female. What are the pros and cons? issues? 11 Symbolic Programming

12 Defining relations by rules Other relations the offspring relation Method 1: offspring(liz,tom). Method 2: offspring(y,x) :- parent(x,y). the mother relation mother(x,y) :- parent(x,y), female(x). the grandparent relation grandparent(x,z) :- parent(x,y), parent(y,z). Are there any other ways? 12 Symbolic Programming

13 Defining relations by rules Defining the sister relation sister(x,y) :- parent(z,x), parent(z,y), female(x). Any problems? Liz is a sister of herself? One possible solution sister(x,y) :- parent(z,x), parent(z,y), female(x), different(x,y). 13 Symbolic Programming

14 Recursive rules What is recursion? definition Why do we need recursion? reason Example: the predecessor relation predecessor(x,z) :- parent(x,z). predecessor(x,z) :- parent(x,y), predecessor(y,z). 14 Symbolic Programming

15 How Prolog answers questions Terminologies predicate, argument, clause, procedure fact, rule, head and body, goal, question Sample Interaction Axioms fallible(x) :- man(x). % All men are fallible. man(socrates). % Socrates is a man. Is this a theorem??- fallible(socrates). % Is Socrates fallible? yes 15 Symbolic Programming

16 How Prolog answers questions Another sample interaction?- predecessor(tom,pat). backtracking parent(pam,bob). parent(tom,bob). parent(tom,liz). parent(bob,ann). parent(bob,pat). parent(pat,jim). female(pam). male(tom). male(bob). female(liz). female(ann). female(pat). male(jim). offspring(y,x) :- parent(x,y). mother(x,y) :-.... sister(x,y) :-.... grandparent(x,z) :- parent(x,y), parent(y,z). predecessor(x,z) :- parent(x,z). predecessor(x,z) :- parent(x,y), predecessor(y,z). 16 Symbolic Programming

17 Meaning of programs Declarative meaning concerned with the relations defined by the program determines what will be the output of the program Procedural meaning determines how this output is obtained (or, how the relations are actually evaluated by the Prolog system) 17 Symbolic Programming

18 Summary Prolog programming consists of defining relations and querying about relations. A program consists of clauses. These are of three types: facts, rules and questions. A relation can be specified by facts, or by stating rules about the relation. A procedure is a set of clauses about the same relation. 18 Symbolic Programming

Logic Programming. fac(n-1,m) fac(n,n m) fac(1,1) ex) factorial program query. cf) in procedural programming. ?- fac(5,120). yes?- fac(5,x).

Logic Programming. fac(n-1,m) fac(n,n m) fac(1,1) ex) factorial program query. cf) in procedural programming. ?- fac(5,120). yes?- fac(5,x). Logic Programming Logic Programming = ex) factorial program query fac(1,1) fac(n-1,m) fac(n,n m)?- fac(5,120). yes?- fac(5,x). X=120 cf) in procedural programming x=1; for (i=1;i

More information

Logic as a Programming Language

Logic as a Programming Language Logic as a Programming Language! Logic can be considered the oldest programming language! Aristotle invented propositional logic over 2000 years ago in order to prove properties of formal arguments! Propositions

More information

First-Order Logic (FOL)

First-Order Logic (FOL) First-Order Logic (FOL) FOL consists of the following parts: Objects/terms Quantified variables Predicates Logical connectives Implication Objects/Terms FOL is a formal system that allows us to reason

More information

Chapter 16. Logic Programming. Topics. Logic Programming. Logic Programming Paradigm

Chapter 16. Logic Programming. Topics. Logic Programming. Logic Programming Paradigm Topics Chapter 16 Logic Programming Introduction Predicate Calculus Propositions Clausal Form Horn Clauses 2 Logic Programming Paradigm AKA Declarative Paradigm The programmer Declares the goal of the

More information

First-Order Logic. Cholwich Nattee. Sirindhorn International Institute of Technology Thammasat University. Lecture 9: First-Order Logic 1/60

First-Order Logic. Cholwich Nattee. Sirindhorn International Institute of Technology Thammasat University. Lecture 9: First-Order Logic 1/60 First-Order Logic Cholwich Nattee Sirindhorn International Institute of Technology Thammasat University Lecture 9: First-Order Logic 1/60 Pros and Cons of Propositional Logic Propositional logic is declarative.

More information

Syntax and Meaning of Prolog Programs

Syntax and Meaning of Prolog Programs Chapter 2 Syntax and Meaning of Prolog Programs Data Objects Matching Declarative meaning of Prolog programs Procedural meaning Example : monkey and banana Order of clauses and goals The relation between

More information

Introduction to predicate calculus

Introduction to predicate calculus Logic Programming Languages Logic programming systems allow the programmer to state a collection of axioms from which theorems can be proven. Express programs in a form of symbolic logic Use a logical

More information

Chapter 16. Logic Programming. Topics. Predicate Calculus and Proving Theorems. Resolution. Resolution: example. Unification and Instantiation

Chapter 16. Logic Programming. Topics. Predicate Calculus and Proving Theorems. Resolution. Resolution: example. Unification and Instantiation Topics Chapter 16 Logic Programming Proving Theorems Resolution Instantiation and Unification Prolog Terms Clauses Inference Process Backtracking 2 Predicate Calculus and Proving Theorems A use of propositions

More information

COMP219: Artificial Intelligence. Lecture 6: Recursion in Prolog

COMP219: Artificial Intelligence. Lecture 6: Recursion in Prolog COMP219: Artificial Intelligence Lecture 6: Recursion in Prolog 1 Overview Last time Introduction to Prolog: facts, rules, queries; family tree program Today: Recursive rules in Prolog; writing and evaluating

More information

Chapter 16. Logic Programming. Topics. Unification. Resolution. Prolog s Search Strategy. Prolog s Search Strategy

Chapter 16. Logic Programming. Topics. Unification. Resolution. Prolog s Search Strategy. Prolog s Search Strategy Topics Chapter 16 Logic Programming Summary (resolution, unification, Prolog search strategy ) Disjoint goals The cut operator Negative goals Predicate fail Debugger / tracer Lists 2 Resolution Resolution

More information

CS 321 Programming Languages and Compilers. Prolog

CS 321 Programming Languages and Compilers. Prolog CS 321 Programming Languages and Compilers Prolog Prolog PROgramming LOGic Algorithm = Logic + Control Logic programming deals with computing relations rather than functions. To understand Prolog one must

More information

Last Week COMP219: Artificial Intelligence Lecture 8 Prolog Lecture 2 Recursive Definitions Recursion The Ancestor Relation

Last Week COMP219: Artificial Intelligence Lecture 8 Prolog Lecture 2 Recursive Definitions Recursion The Ancestor Relation COMP219: Artificial Intelligence Lecture 8 Prolog Lecture 2 Recursive Definitions Dr. Annabel Latham Ashton Building Room 2.05 http://www.csc.liv.ac.uk/~alatham/comp219.html Last Week Prolog programs comprised

More information

Programming Language Concepts (20013) Preparation for the Final Exam

Programming Language Concepts (20013) Preparation for the Final Exam Programming Language Concepts (20013 Preparation for the Final Exam This is a collection of 12 questions which are close to what is to be expected within the final exams for PLC. Attached are sample solutions.

More information

Prolog. Reading: Sethi, Chapter 11. Overview. Predicate Calculus. Substitution and Unication. Introduction to Prolog. Prolog Inference Rules

Prolog. Reading: Sethi, Chapter 11. Overview. Predicate Calculus. Substitution and Unication. Introduction to Prolog. Prolog Inference Rules Prolog Reading: Sethi, Chapter 11. Overview Predicate Calculus Substitution and Unication Introduction to Prolog Prolog Inference Rules Programming in Prolog - Recursion - List Processing - Arithmetic

More information

The current topic: Prolog. Announcements. Meaning of a Prolog rule. Prolog syntax. Reminder: The deadline for Lab 2 re-mark requests is Friday.

The current topic: Prolog. Announcements. Meaning of a Prolog rule. Prolog syntax. Reminder: The deadline for Lab 2 re-mark requests is Friday. The current topic: Prolog! Introduction! Object-oriented programming: Python! Functional programming: Scheme! Python GUI programming (Tkinter)! Types and values Logic programming: Prolog! Introduction

More information

CS 360: Programming Language Concepts Lecture 15 Logic Programming

CS 360: Programming Language Concepts Lecture 15 Logic Programming Reference: Ch. 12.1-12.5 CS 360: Programming Language Concepts Lecture 15 Logic Programming I. Logic Programming (Generally) What is logic programming? A logic program is a collection of declarations,

More information

PROLOG. First simple Prolog Program. Basic elements of Prolog. Clause. NSSICT/CH/Nov., 2012.

PROLOG. First simple Prolog Program. Basic elements of Prolog. Clause. NSSICT/CH/Nov., 2012. PROLOG Prolog is a programming language for symbolic, n-numeric computations. It is specially well suited for solving problems that involve objects and relation between objects. First simple Prolog Program

More information

Resolution (14A) Young W. Lim 6/14/14

Resolution (14A) Young W. Lim 6/14/14 Copyright (c) 2013-2014. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free

More information

Prolog. Prolog: Programmation en Logique R.A. Kowalski: Predicate logic as a programming language, Proc IFIP 1974, pp.

Prolog. Prolog: Programmation en Logique R.A. Kowalski: Predicate logic as a programming language, Proc IFIP 1974, pp. Prolog Prolog: Programmation en Logique 1974 - R.A. Kowalski: Predicate logic as a programming language, Proc IFIP 1974, pp. 569-574: First-order predicate logic for the specification of data and relationships

More information

will take you everywhere.

will take you everywhere. Prolog COMP360 Logic will get you from A to B. Imagination will take you everywhere. Albert Einstein Prolog Assignment A programming assignment in Prolog has been posted on Blackboard Upload your.pl file

More information

Advanced Logic and Functional Programming

Advanced Logic and Functional Programming Advanced Logic and Functional Programming Lecture 1: Programming paradigms. Declarative programming. From first-order logic to Logic Programming. Programming paradigms Programming paradigm (software engineering)

More information

CS 360: Programming Languages Lecture 10: Logic Programming with Prolog

CS 360: Programming Languages Lecture 10: Logic Programming with Prolog CS 360: Programming Languages Lecture 10: Logic Programming with Prolog Geoffrey Mainland Drexel University Section 1 Administrivia Midterm Tuesday Midterm is Tuesday, February 14! Study guide is on the

More information

CSC4504/Prolog. : Formal Languages & Applications. J Paul Gibson, D311. An Introduction To Prolog

CSC4504/Prolog. : Formal Languages & Applications. J Paul Gibson, D311. An Introduction To Prolog CSC4504/Prolog. : Formal Languages & Applications J Paul Gibson, D311 paul.gibson@telecom-sudparis.eu http://www-public.telecom-sudparis.eu/~gibson/teaching/csc4504/ An Introduction To Prolog /~gibson/teaching/csc4504/problem8-prolog.pdf

More information

For Wednesday. No reading Chapter 9, exercise 9. Must be proper Horn clauses

For Wednesday. No reading Chapter 9, exercise 9. Must be proper Horn clauses For Wednesday No reading Chapter 9, exercise 9 Must be proper Horn clauses Same Variable Exact variable names used in sentences in the KB should not matter. But if Likes(x,FOPC) is a formula in the KB,

More information

Chapter 16. Logic Programming Languages ISBN

Chapter 16. Logic Programming Languages ISBN Chapter 16 Logic Programming Languages ISBN 0-321-49362-1 Chapter 16 Topics Introduction A Brief Introduction to Predicate Calculus Predicate Calculus and Proving Theorems An Overview of Logic Programming

More information

Programming Language Concepts (20013) Preparation for the Final Exam

Programming Language Concepts (20013) Preparation for the Final Exam Programming Language Concepts (20013) Preparation for the Final Exam This is a collection of 12 questions which are close to what is to be expected within the final exams for PLC. Sample answers to the

More information

PROgramming in LOGic. Part II. By Forrest Pepper 12/7/07

PROgramming in LOGic. Part II. By Forrest Pepper 12/7/07 PROgramming in LOGic Part II By Forrest Pepper 12/7/07 Anatomy of a Program We discussed the three main constructs of a Prolog program Facts contain a property or state a relationship between two or more

More information

Programming in Prolog. CSE 505 Computing with Logic Stony Brook University

Programming in Prolog. CSE 505 Computing with Logic Stony Brook University Programming in Prolog CSE 505 Computing with Logic Stony Brook University http://www.cs.stonybrook.edu/~cse505 1 Relations/Predicates Predicates are building-blocks in predicate calculus: p(a 1,a 2,...,a

More information

Lecture 4: January 12, 2015

Lecture 4: January 12, 2015 32002: AI (First Order Predicate Logic, Interpretation and Inferences) Spring 2015 Lecturer: K.R. Chowdhary Lecture 4: January 12, 2015 : Professor of CS (VF) Disclaimer: These notes have not been subjected

More information

Programming Paradigms

Programming Paradigms PP 2017/18 Unit 6 Prolog Basics 1/42 Programming Paradigms Unit 6 Prolog Basics J. Gamper Free University of Bozen-Bolzano Faculty of Computer Science IDSE PP 2017/18 Unit 6 Prolog Basics 2/42 Outline

More information

An introduction to Prolog. P. Cabalar ( Department Prolog of Computer Science University of Corunna, FebruarySPAIN 8, 2016)

An introduction to Prolog. P. Cabalar ( Department Prolog of Computer Science University of Corunna, FebruarySPAIN 8, 2016) An introduction to Prolog Pedro Cabalar Department of Computer Science University of Corunna, SPAIN February 8, 2016 P. Cabalar ( Department Prolog of Computer Science University of Corunna, FebruarySPAIN

More information

6. Inference and resolution

6. Inference and resolution Computer Science and Software Engineering University of Wisconsin - Platteville 6. Inference and resolution CS 3030 Lecture Notes Yan Shi UW-Platteville Read: Textbook Chapter 8 Part of the slides are

More information

Sec Negative Goals ( Not ) 21

Sec Negative Goals ( Not ) 21 Sec. 1.11. Negative Goals ( Not ) 21?- non_parent(elmo,cathy). yes? non_parent(sharon,cathy). yes?- non_parent(charles,cathy). yes and non_parent fails if its arguments are in fact a parent and his or

More information

ACSC300: Logic Programming

ACSC300: Logic Programming ACSC300: Logic Programming Lecture 1: Introduction to Logic Programming and Prolog Harris Papadopoulos Course Aims This course aims to help you to: Understand a radically different programming paradigm:

More information

Prolog. Logic Programming vs Prolog

Prolog. Logic Programming vs Prolog Language constructs Prolog Facts, rules, queries through examples Horn clauses Goal-oriented semantics Procedural semantics How computation is performed? Comparison to logic programming 1 Logic Programming

More information

THE PREDICATE CALCULUS

THE PREDICATE CALCULUS 2 THE PREDICATE CALCULUS Slide 2.1 2.0 Introduction 2.1 The Propositional Calculus 2.2 The Predicate Calculus 2.3 Using Inference Rules to Produce Predicate Calculus Expressions 2.4 Application: A Logic-Based

More information

Logic Languages. CSE 307 Principles of Programming Languages Stony Brook University

Logic Languages. CSE 307 Principles of Programming Languages Stony Brook University Logic Languages CSE 307 Principles of Programming Languages Stony Brook University http://www.cs.stonybrook.edu/~cse307 1 Languages Paradigms of Programming Languages: Imperative = Turing machines Functional

More information

ITS336 Lecture 7 Prolog

ITS336 Lecture 7 Prolog Lecture 7 Prolog Prolog is a language for logic programming. Its concept is based on the First Order Logic. 7.1 Prolog Syntax Constant Symbols a word starting with a lowercase letter, or numbers e.g. john,

More information

Notes for Chapter 12 Logic Programming. The AI War Basic Concepts of Logic Programming Prolog Review questions

Notes for Chapter 12 Logic Programming. The AI War Basic Concepts of Logic Programming Prolog Review questions Notes for Chapter 12 Logic Programming The AI War Basic Concepts of Logic Programming Prolog Review questions The AI War How machines should learn: inductive or deductive? Deductive: Expert => rules =>

More information

CPS 506 Comparative Programming Languages. Programming Language Paradigm

CPS 506 Comparative Programming Languages. Programming Language Paradigm CPS 506 Comparative Programming Languages Logic Programming Language Paradigm Topics Introduction A Brief Introduction to Predicate Calculus Predicate Calculus and Proving Theorems An Overview of Logic

More information

Programming Language Concepts Logic Programming Prolog. Janyl Jumadinova 14 March, 2017

Programming Language Concepts Logic Programming Prolog. Janyl Jumadinova 14 March, 2017 Programming Language Concepts Logic Programming Prolog Janyl Jumadinova 14 March, 2017 Background Japan s Fifth Generation project 1982: (https: //en.wikipedia.org/wiki/fifth_generation_computer) These

More information

CS 4700: Artificial Intelligence

CS 4700: Artificial Intelligence CS 4700: Foundations of Artificial Intelligence Fall 2017 Instructor: Prof. Haym Hirsh Lecture 16 Cornell Cinema Thursday, April 13 7:00pm Friday, April 14 7:00pm Sunday, April 16 4:30pm Cornell Cinema

More information

Symbolic AI. Andre Freitas. Photo by Vasilyev Alexandr

Symbolic AI. Andre Freitas. Photo by Vasilyev Alexandr Symbolic AI Andre Freitas Photo by Vasilyev Alexandr Acknowledgements These slides were based on the slides of: Peter A. Flach, Rule induction tutorial, IDA Spring School 2001. Anoop & Hector, Inductive

More information

Chapter 16. Logic Programming Languages ISBN

Chapter 16. Logic Programming Languages ISBN Chapter 16 Logic Programming Languages ISBN 0-321-49362-1 Chapter 16 Topics Introduction A Brief Introduction to Predicate Calculus Predicate Calculus and Proving Theorems An Overview of Logic Programming

More information

Chapter 2 Preview. Preview. History of Programming Languages. History of Programming Languages. History of Programming Languages

Chapter 2 Preview. Preview. History of Programming Languages. History of Programming Languages. History of Programming Languages Chapter 2 Preview Evolution of the Major Programming Languages The Beginnings of Data Abstraction: SIMULA 67 Orthogonal Design: ALGOL 68 Some Early Descendants of the ALGOLs Programming Based on Logic:

More information

2 Spatial Representation of Rule Bases A Horn clause rulebase consists of a set of clauses. Each clause comprising an antecedent and a consequent such

2 Spatial Representation of Rule Bases A Horn clause rulebase consists of a set of clauses. Each clause comprising an antecedent and a consequent such Rulebase Checking Using a Spatial Representation Frans Coenen Department of Computer Science, The University of Liverpool, Chadwick Building, P.O. Box 147, Liverpool L69 3BX, England. frans@csc.liv.ac.uk,

More information

Logic Programming Languages

Logic Programming Languages Logic Programming Languages Introduction Logic programming languages, sometimes called declarative programming languages Express programs in a form of symbolic logic Use a logical inferencing process to

More information

Week 7 Prolog overview

Week 7 Prolog overview Week 7 Prolog overview A language designed for A.I. Logic programming paradigm Programmer specifies relationships among possible data values. User poses queries. What data value(s) will make this predicate

More information

An introduction to logic programming with Prolog

An introduction to logic programming with Prolog An introduction to logic programming with Prolog Dr. Constantinos Constantinides Department of Computer Science and Software Engineering Concordia University A running example: A family genealogy tree

More information

Artificial Intelligence

Artificial Intelligence CS344: Introduction to Artificial Intelligence Pushpak Bhattacharyya CSE Dept., IIT Bombay Lecture 11 Prolog Introduction PROgramming in LOGic Emphasis on what rather than how Problem in Declarative Form

More information

Lecture 7: January 15, 2014

Lecture 7: January 15, 2014 32002: AI (First order Predicate Logic, Syntax and Semantics) Spring 2014 Lecturer: K.R. Chowdhary Lecture 7: January 15, 2014 : Professor of CS (GF) Disclaimer: These notes have not been subjected to

More information

Chapter 16. Logic Programming Languages

Chapter 16. Logic Programming Languages Chapter 16 Logic Programming Languages Chapter 16 Topics Introduction A Brief Introduction to Predicate Calculus Predicate Calculus and Proving Theorems An Overview of Logic Programming The Origins of

More information

Logic (or Declarative) Programming Foundations: Prolog. Overview [1]

Logic (or Declarative) Programming Foundations: Prolog. Overview [1] Logic (or Declarative) Programming Foundations: Prolog In Text: Chapter 12 Formal logic Logic programming Prolog Overview [1] N. Meng, S. Arthur 2 1 Logic Programming To express programs in a form of symbolic

More information

Principles of Programming Languages Topic: Logic Programming Professor Lou Steinberg

Principles of Programming Languages Topic: Logic Programming Professor Lou Steinberg Principles of Programming Languages Topic: Logic Programming Professor Lou Steinberg 1 Logic Programming True facts: If I was born in year B, then in year Y on my birthday I turned Y-B years old I turned

More information

IF/Prolog V5.3. User s Guide. Siemens AG Austria

IF/Prolog V5.3. User s Guide. Siemens AG Austria IF/Prolog V5.3 User s Guide Siemens AG Austria Is there anything you would like to tell us about this manual? Please send us your comments. Siemens AG Austria PSE KB B3 Gudrunstrasse 11 A-1100 Vienna Austria

More information

Visual Prolog Tutorial

Visual Prolog Tutorial Visual Prolog Tutorial Jim Mims April 2008 (with modification by Danjie Zhu) Preface What is Prolog? Programming in Logic. Edinburgh syntax is the basis of ISO standard. High-level interactive language.

More information

PROLOG PROgramming in LOGic

PROLOG PROgramming in LOGic PROLOG PROgramming in LOGic 1 Knowledge Based Information Systems (Relational) database systems are very efficient in the handling of data. Information is data together with a suitable interpretation.

More information

Using Prolog as a CAS

Using Prolog as a CAS Using Prolog as a CAS Kharkiv Pedagogical University A. Stolyarevska July 2002 References 1) Robinson J.A. A machine-oriented logic based on the resolution principle. J. ACM, 12, 23-41. 2) Colmerauer A.

More information

Last Week. Today. Prolog: recursion examples. Recursion in Prolog. CSC326 Programming Languages (Week 12,Friday)

Last Week. Today. Prolog: recursion examples. Recursion in Prolog. CSC326 Programming Languages (Week 12,Friday) Last Week CSC326 Programming Languages (Week 12,Friday) Yilan Gu guyilan@ecf.toronto.edu http://www.cs.toronto.edu/~yilan/326f09/ More on Prolog reasoning mechanism Operators Lists Today Recursion in Prolog

More information

First-Order Predicate Logic. Introduction to Intelligent Systems

First-Order Predicate Logic. Introduction to Intelligent Systems First-Order Predicate Logic Introduction to Intelligent Systems First-Order (Predicate) Logic Propositional logic assumes the world contains facts Predicate logic (like natural language) assumes the world

More information

1.2 Commercial Products of AI Robotics device. Vision systems that recognize shapes & objects.

1.2 Commercial Products of AI Robotics device. Vision systems that recognize shapes & objects. Introduction to Artificial Intelligent 1.1 Artificial Intelligent (AI) Is the study of how to make computers do things which at the moment, people do better. or in specific definition AI is a branch of

More information

Quick n Dirty Prolog Tutorial

Quick n Dirty Prolog Tutorial CSc 245 Introduction to Discrete Structures Quick n Dirty Prolog Tutorial (McCann) Last Revised: February 2014 Background: Prolog, whose name is from the phrase PROgramming in LOGic, is a special purpose

More information

/99/$ IEEE

/99/$ IEEE A Multiparadigm Language Approach to Teaching Principles of Programming Languages D. Suzanne Westbrook Computer Science and Electrical Engineering Northern Arizona University Flagstaff, AZ 86011 Abstract

More information

CSEN403 Concepts of Programming Languages. Topics: Logic Programming Paradigm: PROLOG Search Tree Recursion Arithmetic

CSEN403 Concepts of Programming Languages. Topics: Logic Programming Paradigm: PROLOG Search Tree Recursion Arithmetic CSEN403 Concepts of Programming Languages Topics: Logic Programming Paradigm: PROLOG Search Tree Recursion Arithmetic Prof. Dr. Slim Abdennadher 8.2.2015 c S. Abdennadher 1 Logic Programming versus Prolog

More information

CSC384: Intro to Artificial Intelligence Prolog Tutorials 3&4. Hojjat Ghaderi, Fall 2006, University of Toronto

CSC384: Intro to Artificial Intelligence Prolog Tutorials 3&4. Hojjat Ghaderi, Fall 2006, University of Toronto CSC384: Intro to Artificial Intelligence Prolog Tutorials 3&4 1 Debugging Programs in Prolog We talked about the graphical debugger under Windows. Now, the text-based debugger: You can put a breakpoint

More information

Database Theory VU , SS Introduction to Datalog. Reinhard Pichler. Institute of Logic and Computation DBAI Group TU Wien

Database Theory VU , SS Introduction to Datalog. Reinhard Pichler. Institute of Logic and Computation DBAI Group TU Wien Database Theory Database Theory VU 181.140, SS 2018 2. Introduction to Datalog Reinhard Pichler Institute of Logic and Computation DBAI Group TU Wien 13 March, 2018 Pichler 13 March, 2018 Page 1 Database

More information

PROgramming in LOGic PROLOG Recursion, Lists & Predicates

PROgramming in LOGic PROLOG Recursion, Lists & Predicates PROgramming in LOGic PROLOG Recursion, Lists & Predicates CSC9Y4 1 Recursion Recursion in Prolog means placing in the body of a rule a call to the predicate which occurs in the head of the rule. Here is

More information

Automated Reasoning Systems

Automated Reasoning Systems Automated Reasoning Systems Resolution Theorem Proving: Prover9 Temur Kutsia RISC, Johannes Kepler University of Linz, Austria kutsia@risc.uni-linz.ac.at May 11, 2011 Prover9 Automated theorem prover from

More information

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Exam in INF3110/INF4110, 4. December 2007 Page 1 UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Exam in: INF3110/4110 Programming Languages Day of exam: 4. December 2007 Exam hours: 14:30

More information

Logic Languages. Hwansoo Han

Logic Languages. Hwansoo Han Logic Languages Hwansoo Han Logic Programming Based on first-order predicate calculus Operators Conjunction, disjunction, negation, implication Universal and existential quantifiers E A x for all x...

More information

to read: Chapter 10, Russel & Norvig

to read: Chapter 10, Russel & Norvig to read: Chapter 10, Russel & Norvig What will be discussed Inference machines Logic programming (Prolog) and theorem provers Next Production systems Semantic networks and Frames 2 3 Necessary to implement

More information

Lecture Overview Prolog 1. Introduction Interaction Terms 2. Clauses and predicates Clauses Predicates Variables 3.

Lecture Overview Prolog 1. Introduction Interaction Terms 2. Clauses and predicates Clauses Predicates Variables 3. 1 Lecture Overview Prolog 1. Introduction Interaction Terms 2. Clauses and predicates Clauses Predicates Variables 3. Satisfying goals 2 Prolog A standard free Prolog can be downloaded from http://www.swi-prolog.org

More information

Operators (2A) Young Won Lim 10/2/13

Operators (2A) Young Won Lim 10/2/13 Operators (2A) Copyright (c) 2013 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version

More information

CSE 452: Programming Languages. Prolog Statements. Loading the Knowledge Base. Logical Programming Languages Part 2

CSE 452: Programming Languages. Prolog Statements. Loading the Knowledge Base. Logical Programming Languages Part 2 CSE 452: Programming Languages Logical Programming Languages Part 2 Prolog Statements Prolog statements consist of facts, rules, and queries. Example of facts (written as headless Horn clauses) male(tony).

More information

Lecture 6: Inductive Logic Programming

Lecture 6: Inductive Logic Programming Lecture 6: Inductive Logic Programming Cognitive Systems - Machine Learning Part II: Special Aspects of Concept Learning FOIL, Inverted Resolution, Sequential Covering last change November 15, 2010 Ute

More information

Multi-agent and Semantic Web Systems: Representation

Multi-agent and Semantic Web Systems: Representation Multi-agent and Semantic Web Systems: Representation Fiona McNeill School of Informatics 21st January 2013 21st January 2013 0/22 What kind of representation? There are many different kinds of representations

More information

Prolog. GNU Prolog ( SWI-Prolog (

Prolog. GNU Prolog (  SWI-Prolog ( Logic programming Most computations are directed, progressing from an input to an output. In functional programming, this is made very explicit, as the input is the argument of a function and the output

More information

CS Introduction to Artificial Intelligence

CS Introduction to Artificial Intelligence CS 540-1 -- Introduction to Articial Intelligence Exam 2 - November 4, 1992 CLOSED BOOK 90 minutes Write your answers on these pages and show your work. If you feel that a question is not fully specied,

More information

COMP219: Artificial Intelligence. Lecture 14: Knowledge Representation

COMP219: Artificial Intelligence. Lecture 14: Knowledge Representation COMP219: Artificial Intelligence Lecture 14: Knowledge Representation 1 Overview Last time Game playing Minimax decisions Alpha-beta pruning Today Introduce the need for explicit knowledge representation

More information

Mathematical Logic Prof. Arindama Singh Department of Mathematics Indian Institute of Technology, Madras. Lecture - 9 Normal Forms

Mathematical Logic Prof. Arindama Singh Department of Mathematics Indian Institute of Technology, Madras. Lecture - 9 Normal Forms Mathematical Logic Prof. Arindama Singh Department of Mathematics Indian Institute of Technology, Madras Lecture - 9 Normal Forms In the last class we have seen some consequences and some equivalences,

More information

Cost Models. Chapter Twenty-One Modern Programming Languages, 2nd ed. 1

Cost Models. Chapter Twenty-One Modern Programming Languages, 2nd ed. 1 Cost Models Chapter Twenty-One Modern Programming Languages, 2nd ed. 1 Which Is Faster? Y=[1 X] append(x,[1],y) Every experienced programmer has a cost model of the language: a mental model of the relative

More information

Research in the Logic Group

Research in the Logic Group Research in the Logic Group Michael Genesereth Logic Group Stanford University 1 Computational Logic on(red,yellow) above(yellow,blue) on(yellow,blue) x. y.(on(x,y) above(x,y)) on(green,yellow) on(green,blue)

More information

Introduction (1A) Young Won Lim 9/12/13

Introduction (1A) Young Won Lim 9/12/13 Introduction (1A) Copyright (c) 2013 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later

More information

Deferred operations. Continuations Structure and Interpretation of Computer Programs. Tail recursion in action.

Deferred operations. Continuations Structure and Interpretation of Computer Programs. Tail recursion in action. Deferred operations Continuations 6.037 - Structure and Interpretation of Computer Programs Mike Phillips (define the-cons (cons 1 #f)) (set-cdr! the-cons the-cons) (define (run-in-circles l) (+

More information

Structured Knowledge Representation

Structured Knowledge Representation Intelligent Systems: Reasoning and Recognition James L. Crowley ENSIMAG 2 / MoSIG M1 Second Semester 2015/2016 Lesson 17 15 April 2016 Structured Knowledge Representation Object Oriented Programming...2

More information

UNIT 2 A. I. LANGUAGES-2: PROLOG

UNIT 2 A. I. LANGUAGES-2: PROLOG UNIT 2 A. I. LANGUAGES-2: Structure Page Nos. 2.0 Introduction 42 2.1 Objectives 43 2.2 Foundations of Prolog 43 2.3 Notations in Prolog for Building Blocks 46 2.4 How Prolog System Solves Problems 50

More information

Part I CHR tutorial. Cambridge University Press Constraint Handling Rules Thom Fruhwirth Excerpt More information

Part I CHR tutorial. Cambridge University Press Constraint Handling Rules Thom Fruhwirth Excerpt More information Part I CHR tutorial We present the essentials of the Constraint Handling Rules (CHR) programming language by the use of examples in this Tutorial part. The first chapter Getting started is a step-by-step

More information

This lecture covers: Prolog s execution strategy explained more precisely. Revision of the elementary Prolog data types

This lecture covers: Prolog s execution strategy explained more precisely. Revision of the elementary Prolog data types This lecture covers: Prolog s execution strategy explained more precisely The execution strategy has been presented as simply placing all matching clauses onto the stack. In fact, Prolog is slightly more

More information

Using Prolog as a CAS

Using Prolog as a CAS Using Prolog as a CAS Alla L. Stolyarevska, Kharkiv State Pedagogical University, Ukraine Affiliations: Computer Science & Mathematics Address: Bluchera street, 2, Kharkiv, Ukraine, 310168 phone/fax: (+380)

More information

Com S 541. Programming Languages I

Com S 541. Programming Languages I Programming Languages I Lecturer: TA: Markus Lumpe Department of Computer Science 113 Atanasoff Hall http://www.cs.iastate.edu/~lumpe/coms541.html TR 12:40-2, W 5 Pramod Bhanu Rama Rao Office hours: TR

More information

Software Paradigms (Lesson 6) Logic Programming

Software Paradigms (Lesson 6) Logic Programming Software Paradigms (Lesson 6) Logic Programming Table of Contents 1 Introduction... 2 2 Facts... 3 3 Predicates (Structured Terms)... 4 3.1 General Structures... 4 3.2 Predicates (Syntax)... 4 3.3 Simple

More information

(Refer Slide Time: 05:25)

(Refer Slide Time: 05:25) Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering IIT Delhi Lecture 30 Applications of DFS in Directed Graphs Today we are going to look at more applications

More information

Declarative Programming Prolog CS360

Declarative Programming Prolog CS360 Declaratie Programming Prolog CS360 Terms Numerical literals String literals Ø By default, any string that starts is all lowercase Ø Use single quotes for anything else Atoms Ø Essentially, strings Ø Also,

More information

Amalgamating Multiple Programming Paradigms in Prolog. Yoshiyuki Koseki

Amalgamating Multiple Programming Paradigms in Prolog. Yoshiyuki Koseki Amalgamating Multiple Programming Paradigms in Prolog Yoshiyuki Koseki C&C Systems Research Laboratories NEC CORPORATION 4-1-1 Miyazaki, Miyamae-ku Kawasaki, 213 JAPAN ABSTRACT This paper discusses the

More information

has to choose. Important questions are: which relations should be dened intensionally,

has to choose. Important questions are: which relations should be dened intensionally, Automated Design of Deductive Databases (Extended abstract) Hendrik Blockeel and Luc De Raedt Department of Computer Science, Katholieke Universiteit Leuven Celestijnenlaan 200A B-3001 Heverlee, Belgium

More information

Chapter 1. An introduction to Prolog

Chapter 1. An introduction to Prolog Chapter 1. An introduction to Prolog Pedro Cabalar Dept. Computación University of Corunna, SPAIN February 7, 2011 P. Cabalar ( Dept. Ch1. Computación Prolog University of Corunna, SPAIN February ) 7,

More information

The Logic Paradigm. Joseph Spring. 7COM1023 Programming Paradigms

The Logic Paradigm. Joseph Spring. 7COM1023 Programming Paradigms The Logic Paradigm Joseph Spring 7COM1023 Programming Paradigms 1 Discussion The Logic Paradigm Propositional and Predicate Logic See also notes and slides on PP website Horn Clauses Definition, Examples

More information

Scalable Data Exchange with Functional Dependencies

Scalable Data Exchange with Functional Dependencies Scalable Data Exchange with Functional Dependencies Bruno Marnette 1, 2 Giansalvatore Mecca 3 Paolo Papotti 4 1: Oxford University Computing Laboratory Oxford, UK 2: INRIA Saclay, Webdam Orsay, France

More information

Logical reasoning systems

Logical reasoning systems Logical reasoning systems Theorem provers and logic programming languages Production systems Frame systems and semantic networks Description logic systems CS 561, Session 19 1 Logical reasoning systems

More information

Coding Categorical Variables in Regression: Indicator or Dummy Variables. Professor George S. Easton

Coding Categorical Variables in Regression: Indicator or Dummy Variables. Professor George S. Easton Coding Categorical Variables in Regression: Indicator or Dummy Variables Professor George S. Easton DataScienceSource.com This video is embedded on the following web page at DataScienceSource.com: DataScienceSource.com/DummyVariables

More information