simplicity hides complexity

Size: px
Start display at page:

Download "simplicity hides complexity"

Transcription

1 flow of control backtracking reasoning in logic and in Prolog 1 simplicity hides complexity simple and/or connections of goals conceal very complex control patterns Prolog programs are not easily represented by traditional flowcharts this is the way it should be: flowcharts immerse the programmer in unproductive complexity we want: access to useful complexity presented simply 2

2 and & or as in Lisp, the logic operations (,, ;) are not pure logic programmer has to take into account the order of computation 3 avoid generating unbounded values (p. 197) example of tricky 'and' ordering sublist(s, L) :- append(s, _, L1), append(_, L1, L). sublist(s, [a, b, c, d]) produces infinite sequence of S = []. Why? let + = instantiated, - = not completely instantiated sublist(-, +) :- append(-,-, -), append(-, -, +) * sublist([c, b], [a, b, c, d]). works fine in SWI Prolog. 4

3 OR as a 'factoring' tool (Ch. 24) (p. 173) minmax5(cmin, Cmax, [], Cmin, Cmax). minmax5(min, Max, [X L], Cmin, Cmax) :- order(x, Cmin), minmax5(min, Max, L, X, Cmax). minmax5(min, Max, [X L], Cmin, Cmax) :- order(cmax, X), minmax5(min, Max, L, Cmin, X). minmax5(min, Max, [X L], Cmin, Cmax) :- minmax5(min, Max, L, Cmin, Cmax). minmax5(min, Max, [X L], Cmin, Cmax) :- order(x, Cmin), minmax5(min, Max, L, X, Cmax) ; order(cmax, X), minmax5(min, Max, L, Cmin, X) ; minmax5(min, Max, L, Cmin, Cmax). 5 guarding the "else" can't rely on implicit negation in predicates which can be "redone" predicates with alternatives should be logically valid; unless never called preceding a subgoal that can fail (never "backed-into") safest: negate explicitly 6

4 negation p. 204 example: set intersection intersect([], _, []). intersect([x L ], Y, [X I]) :- member(x, Y), intersect(l, Y, I). intersect([x L], Y, I) :- \+ member(x, Y), intersect(l, Y, I). use \+ for precision \+ = not provable \+ P = ~P only if P is instantiated. 7 negation by failure \+ works correctly if its argument is instantiated so intersect([x L], Y, I) :- \+ member(x, Y), intersect(l, Y, I). requires that X, Y be instantiated. 8

5 instantiate before negating p. 205: assume animal(cat). vegetable(turnip).?- not(animal(x)), vegetable(x). fails to find X=turnip. Why? Why does?-vegetable(x), not(animal(x)). work? 9 don't rely on a faulty premise why not just intersect([], _, []). intersect([x L ], Y, [X I]) :- member(x, Y), intersect(l, Y, I). intersect([_ L], Y, I) :- intersect(l, Y, I).?-intersect([a,b,c, d], [a, c], []) succeeds! why? because premise that X is not in Y fails. 2nd rule fails because 3rd arg = []. A guard on the "fall-through" rule avoids this. 10

6 control predicates true (really "success") Goal :- condition1 ; condition2; true. fail (opposite of true) repeat (always succeeds, infinite number of choice points.) loopuntilnomore :- repeat, dostuff, checknomore. (tail-recursion is 'cleaner' - it has a clear denotation.) loop :- dostuff, (checknomore ; loop). 11 forcing all solutions test :- member(x, [1,2,3]), nl, print(x), fail. % no alternative solutions for print(x) or for nl % but member has alternative solutions?- test no 12

7 backtracking example text, p. 209 multiple_elements(e, L) :- append(_, [E M], L), append(_, [E _], M). 13 trace?- trace, multiple_elements(e, [a, b, c, b]). Call: (8) multiple_elements(_g325, [a, b, c, b])? creep Call: (9) lists:append(_l255, [_G325 _G400], [a, b, c, b])? creep Exit: (9) lists:append([], [a, b, c, b], [a, b, c, b])? creep Call: (9) lists:append(_l273, [a _G403], [b, c, b])? creep Fail: (9) lists:append(_l273, [a _G403], [b, c, b])? creep Redo: (9) lists:append(_l255, [_G325 _G400], [a, b, c, b])? creep Exit: (9) lists:append([a], [b, c, b], [a, b, c, b])? creep Call: (9) lists:append(_l294, [b _G406], [c, b])? creep Exit: (9) lists:append([c], [b], [c, b])? creep Exit: (8) multiple_elements(b, [a, b, c, b])? creep E = b 14

8 entering and leaving trace steps are labelled: Call: enter the procedure Exit: exit successfully with bindings for variables Fail: exit unsuccessfully Redo: look for an alternate solution 15 4 port model Call Fail goal Exit (success) Redo (backtrack) 16

9 conjoined goals Call Exit Fail goal 1 goal 2 Redo goal 1, goal 2 17 disjoined goals Call goal 1 Exit (if untried alternatives in goal 1 ) Fail goal 2 Redo (if no untried alternatives in goal 1 ) goal 1 ; goal 2 18

10 negation Call goal Exit Fail Redo \+ goal 19 reasoning in logic and in Prolog 20

11 facts & rules how different are facts and rules? rule: goal :- body. goal if body body implies goal (not body) or goal fact: goal. goal if true. (not true) or goal. 21 queries what does?- goals. mean in logic? verbose form of :- goals. looks like a rule with no head. P implies Q = (not P) or Q if no Q, we get not P :- goals. = not (goals) a query = an assertion that the goal is false! the interpreter attempts a refutation. 22

12 yes means no answering a query?- goals. means refuting the assertion that the goals can't be satisfied, by unifying the goals with "truths". The answer "Yes" means "no, the assertion :- goals. is false." 23 proving propositions we can use the refutation strategy to construct a simple "theorem prover" in Prolog for the propositional calculus. it can tell us whether a propositional formula such as (P implies ~P) or P is a logical truth (tautology) or not. tautology = Boolean function with constant value true 24

13 implementation strategy try to show that a formula can be made false using facts and rules involving the logical operators false(proposition) succeeds if there is an assignment of truth-values to the logical variables in the Proposition which makes it false essentially the truth-table method 25 testing for tautology formulae :- read(t), (T==end_of_file, halt ; theorem(t), formulae). theorem(t) :- nl, nl, write(t), nl, (false(t), write('* Not valid.'), ; nl, write('* Counter-example: '), write(t) write('* Valid.') ), nl. 26

14 the refutation rules false('false'). false(not 'true') :-!. false( P iff Q) :- false( (P implies Q) and (Q implies P)). false( P implies Q) :- false( not P or Q). false( P or Q ) :- false(p), false(q). false( P and Q) :- false(p) ; false(q). false(p xor Q) :- false(not(p iff Q)). false( not not P) :- false(p). false( not(p iff Q)) :- false( not(p implies Q) or not(q implies P)). false( not(p implies Q)) :- false( not( not P or Q)). false( not(p or Q)) :- false( not P and not Q). false( not(p and Q)) :- false( not P or not Q). false( not(p xor Q)) :- false(p iff Q). 27

Debugging Prolog Programs. Contents The basic Prolog debugger Tracing program execution Spying on problem predicates

Debugging Prolog Programs. Contents The basic Prolog debugger Tracing program execution Spying on problem predicates Debugging Prolog Programs Prof. Geraint A. Wiggins Centre for Cognition, Computation and Culture Goldsmiths College, University of London Contents The basic Prolog debugger Tracing program execution Spying

More information

Algorithmic Software Verification

Algorithmic Software Verification Algorithmic Software Verification (LTL Model Checking) Azadeh Farzan What is Verification Anyway? Proving (in a formal way) that program satisfies a specification written in a logical language. Formal

More information

CHAPTER 7 GENERAL PROOF SYSTEMS

CHAPTER 7 GENERAL PROOF SYSTEMS CHAPTER 7 GENERAL PROOF SYSTEMS 1 Introduction Proof systems are built to prove statements. They can be thought as an inference machine with special statements, called provable statements, or sometimes

More information

Propositional Logic. A proposition is a declarative sentence (a sentence that declares a fact) that is either true or false, but not both.

Propositional Logic. A proposition is a declarative sentence (a sentence that declares a fact) that is either true or false, but not both. irst Order Logic Propositional Logic A proposition is a declarative sentence (a sentence that declares a fact) that is either true or false, but not both. Are the following sentences propositions? oronto

More information

CSL105: Discrete Mathematical Structures. Ragesh Jaiswal, CSE, IIT Delhi

CSL105: Discrete Mathematical Structures. Ragesh Jaiswal, CSE, IIT Delhi Propositional Logic: logical operators Negation ( ) Conjunction ( ) Disjunction ( ). Exclusive or ( ) Conditional statement ( ) Bi-conditional statement ( ): Let p and q be propositions. The biconditional

More information

MAT-71506 Program Verication: Exercises

MAT-71506 Program Verication: Exercises MAT-71506 Program Verication: Exercises Antero Kangas Tampere University of Technology Department of Mathematics September 11, 2014 Accomplishment Exercises are obligatory and probably the grades will

More information

Mathematical Induction

Mathematical Induction Mathematical Induction In logic, we often want to prove that every member of an infinite set has some feature. E.g., we would like to show: N 1 : is a number 1 : has the feature Φ ( x)(n 1 x! 1 x) How

More information

Predicate Logic Review

Predicate Logic Review Predicate Logic Review UC Berkeley, Philosophy 142, Spring 2016 John MacFarlane 1 Grammar A term is an individual constant or a variable. An individual constant is a lowercase letter from the beginning

More information

CS510 Software Engineering

CS510 Software Engineering CS510 Software Engineering Propositional Logic Asst. Prof. Mathias Payer Department of Computer Science Purdue University TA: Scott A. Carr Slides inspired by Xiangyu Zhang http://nebelwelt.net/teaching/15-cs510-se

More information

Automated Theorem Proving - summary of lecture 1

Automated Theorem Proving - summary of lecture 1 Automated Theorem Proving - summary of lecture 1 1 Introduction Automated Theorem Proving (ATP) deals with the development of computer programs that show that some statement is a logical consequence of

More information

Beyond Propositional Logic Lukasiewicz s System

Beyond Propositional Logic Lukasiewicz s System Beyond Propositional Logic Lukasiewicz s System Consider the following set of truth tables: 1 0 0 1 # # 1 0 # 1 1 0 # 0 0 0 0 # # 0 # 1 0 # 1 1 1 1 0 1 0 # # 1 # # 1 0 # 1 1 0 # 0 1 1 1 # 1 # 1 Brandon

More information

Today s Agenda. Automata and Logic. Quiz 4 Temporal Logic. Introduction Buchi Automata Linear Time Logic Summary

Today s Agenda. Automata and Logic. Quiz 4 Temporal Logic. Introduction Buchi Automata Linear Time Logic Summary Today s Agenda Quiz 4 Temporal Logic Formal Methods in Software Engineering 1 Automata and Logic Introduction Buchi Automata Linear Time Logic Summary Formal Methods in Software Engineering 2 1 Buchi Automata

More information

3 Abstract Data Types and Search

3 Abstract Data Types and Search 3 Abstract Data Types and Search Chapter Objectives Chapter Contents Prolog s graph search representations were described and built: Lists A recursive tree-walk algorithm The cut predicate,!, for Prolog

More information

Testing LTL Formula Translation into Büchi Automata

Testing LTL Formula Translation into Büchi Automata Testing LTL Formula Translation into Büchi Automata Heikki Tauriainen and Keijo Heljanko Helsinki University of Technology, Laboratory for Theoretical Computer Science, P. O. Box 5400, FIN-02015 HUT, Finland

More information

Rigorous Software Development CSCI-GA 3033-009

Rigorous Software Development CSCI-GA 3033-009 Rigorous Software Development CSCI-GA 3033-009 Instructor: Thomas Wies Spring 2013 Lecture 11 Semantics of Programming Languages Denotational Semantics Meaning of a program is defined as the mathematical

More information

T Tutorial D - A Short Summary

T Tutorial D - A Short Summary A n d N o w f o r S o m e t h i n g C o m p l e t e l y C o m p u t a t i o n a l by C. J. Date July 17th, 2006 Myself when young did eagerly frequent Doctor and Saint, and heard great Argument About it

More information

Handout #1: Mathematical Reasoning

Handout #1: Mathematical Reasoning Math 101 Rumbos Spring 2010 1 Handout #1: Mathematical Reasoning 1 Propositional Logic A proposition is a mathematical statement that it is either true or false; that is, a statement whose certainty or

More information

Resolution. Informatics 1 School of Informatics, University of Edinburgh

Resolution. Informatics 1 School of Informatics, University of Edinburgh Resolution In this lecture you will see how to convert the natural proof system of previous lectures into one with fewer operators and only one proof rule. You will see how this proof system can be used

More information

[Refer Slide Time: 05:10]

[Refer Slide Time: 05:10] Principles of Programming Languages Prof: S. Arun Kumar Department of Computer Science and Engineering Indian Institute of Technology Delhi Lecture no 7 Lecture Title: Syntactic Classes Welcome to lecture

More information

Predicate Logic. Example: All men are mortal. Socrates is a man. Socrates is mortal.

Predicate Logic. Example: All men are mortal. Socrates is a man. Socrates is mortal. Predicate Logic Example: All men are mortal. Socrates is a man. Socrates is mortal. Note: We need logic laws that work for statements involving quantities like some and all. In English, the predicate is

More information

How To Understand The Theory Of Hyperreals

How To Understand The Theory Of Hyperreals Ultraproducts and Applications I Brent Cody Virginia Commonwealth University September 2, 2013 Outline Background of the Hyperreals Filters and Ultrafilters Construction of the Hyperreals The Transfer

More information

Trust but Verify: Authorization for Web Services. The University of Vermont

Trust but Verify: Authorization for Web Services. The University of Vermont Trust but Verify: Authorization for Web Services Christian Skalka X. Sean Wang The University of Vermont Trust but Verify (TbV) Reliable, practical authorization for web service invocation. Securing complex

More information

Cosmological Arguments for the Existence of God S. Clarke

Cosmological Arguments for the Existence of God S. Clarke Cosmological Arguments for the Existence of God S. Clarke [Modified Fall 2009] 1. Large class of arguments. Sometimes they get very complex, as in Clarke s argument, but the basic idea is simple. Lets

More information

Correspondence analysis for strong three-valued logic

Correspondence analysis for strong three-valued logic Correspondence analysis for strong three-valued logic A. Tamminga abstract. I apply Kooi and Tamminga s (2012) idea of correspondence analysis for many-valued logics to strong three-valued logic (K 3 ).

More information

Last time we had arrived at the following provisional interpretation of Aquinas second way:

Last time we had arrived at the following provisional interpretation of Aquinas second way: Aquinas Third Way Last time we had arrived at the following provisional interpretation of Aquinas second way: 1. 2. 3. 4. At least one thing has an efficient cause. Every causal chain must either be circular,

More information

Verication by Finitary Abstraction Weizmann Institute of Sciences and Universite Joseph Fourier, Grenoble Fourth International Spin Workshop (SPIN'98) Paris 2.11.98 Joint work with: Y. Kesten Ben Gurion

More information

http://aejm.ca Journal of Mathematics http://rema.ca Volume 1, Number 1, Summer 2006 pp. 69 86

http://aejm.ca Journal of Mathematics http://rema.ca Volume 1, Number 1, Summer 2006 pp. 69 86 Atlantic Electronic http://aejm.ca Journal of Mathematics http://rema.ca Volume 1, Number 1, Summer 2006 pp. 69 86 AUTOMATED RECOGNITION OF STUTTER INVARIANCE OF LTL FORMULAS Jeffrey Dallien 1 and Wendy

More information

Mathematics for Computer Science/Software Engineering. Notes for the course MSM1F3 Dr. R. A. Wilson

Mathematics for Computer Science/Software Engineering. Notes for the course MSM1F3 Dr. R. A. Wilson Mathematics for Computer Science/Software Engineering Notes for the course MSM1F3 Dr. R. A. Wilson October 1996 Chapter 1 Logic Lecture no. 1. We introduce the concept of a proposition, which is a statement

More information

The Classes P and NP

The Classes P and NP The Classes P and NP We now shift gears slightly and restrict our attention to the examination of two families of problems which are very important to computer scientists. These families constitute the

More information

Logic in Computer Science: Logic Gates

Logic in Computer Science: Logic Gates Logic in Computer Science: Logic Gates Lila Kari The University of Western Ontario Logic in Computer Science: Logic Gates CS2209, Applied Logic for Computer Science 1 / 49 Logic and bit operations Computers

More information

Test Case Generation for Ultimately Periodic Paths Joint work with Saddek Bensalem Hongyang Qu Stavros Tripakis Lenore Zuck Accepted to HVC 2007 How to find the condition to execute a path? (weakest precondition

More information

Programming Languages in Artificial Intelligence

Programming Languages in Artificial Intelligence Programming Languages in Artificial Intelligence Günter Neumann, German Research Center for Artificial Intelligence (LT Lab, DFKI) I. AI programming languages II. Functional programming III. Functional

More information

Software safety - DEF-STAN 00-55

Software safety - DEF-STAN 00-55 Software safety - DEF-STAN 00-55 Where safety is dependent on the safety related software (SRS) fully meeting its requirements, demonstrating safety is equivalent to demonstrating correctness with respect

More information

Object Oriented Software Design

Object Oriented Software Design Object Oriented Software Design Introduction to Java - II Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa October 28, 2010 G. Lipari (Scuola Superiore Sant Anna) Introduction

More information

Likewise, we have contradictions: formulas that can only be false, e.g. (p p).

Likewise, we have contradictions: formulas that can only be false, e.g. (p p). CHAPTER 4. STATEMENT LOGIC 59 The rightmost column of this truth table contains instances of T and instances of F. Notice that there are no degrees of contingency. If both values are possible, the formula

More information

Object Oriented Software Design

Object Oriented Software Design Object Oriented Software Design Introduction to Java - II Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa September 14, 2011 G. Lipari (Scuola Superiore Sant Anna) Introduction

More information

Some Prolog Examples

Some Prolog Examples 1 Family Relationships Some Prolog Examples Here are some selected family relationships assuming a database of facts for the predicates parent/2, male/1 and female/1 mother(x,y) :- parent(x,y), female(x).

More information

Satisfiability Checking

Satisfiability Checking Satisfiability Checking SAT-Solving Prof. Dr. Erika Ábrahám Theory of Hybrid Systems Informatik 2 WS 10/11 Prof. Dr. Erika Ábrahám - Satisfiability Checking 1 / 40 A basic SAT algorithm Assume the CNF

More information

Formal Verification and Linear-time Model Checking

Formal Verification and Linear-time Model Checking Formal Verification and Linear-time Model Checking Paul Jackson University of Edinburgh Automated Reasoning 21st and 24th October 2013 Why Automated Reasoning? Intellectually stimulating and challenging

More information

FProlog: A language to Integrate Logic and Functional Programming

FProlog: A language to Integrate Logic and Functional Programming FProlog: A language to Integrate Logic and Functional Programming for Automated Assembly S. A. Hutchinson and A. C. Kak Robot Vision Laboratory School of Electrical Engineering Purdue University West Lafayette,

More information

Boolean Algebra Part 1

Boolean Algebra Part 1 Boolean Algebra Part 1 Page 1 Boolean Algebra Objectives Understand Basic Boolean Algebra Relate Boolean Algebra to Logic Networks Prove Laws using Truth Tables Understand and Use First Basic Theorems

More information

Constructing Contracts: Making Discrete Mathematics Relevant to Beginning Programmers

Constructing Contracts: Making Discrete Mathematics Relevant to Beginning Programmers Constructing Contracts: Making Discrete Mathematics Relevant to Beginning Programmers TIMOTHY S. GEGG-HARRISON Winona State University Although computer scientists understand the importance of discrete

More information

High-Level Programming Languages. Nell Dale & John Lewis (adaptation by Michael Goldwasser)

High-Level Programming Languages. Nell Dale & John Lewis (adaptation by Michael Goldwasser) High-Level Programming Languages Nell Dale & John Lewis (adaptation by Michael Goldwasser) Low-Level Languages What are disadvantages of low-level languages? (e.g., machine code or assembly code) Programming

More information

KLMLean 2.0: A Theorem Prover for KLM Logics of Nonmonotonic Reasoning

KLMLean 2.0: A Theorem Prover for KLM Logics of Nonmonotonic Reasoning KLMLean 2.0: A Theorem Prover for KLM Logics of Nonmonotonic Reasoning Laura Giordano 1, Valentina Gliozzi 2, and Gian Luca Pozzato 2 1 Dipartimento di Informatica - Università del Piemonte Orientale A.

More information

Model Checking: An Introduction

Model Checking: An Introduction Announcements Model Checking: An Introduction Meeting 2 Office hours M 1:30pm-2:30pm W 5:30pm-6:30pm (after class) and by appointment ECOT 621 Moodle problems? Fundamentals of Programming Languages CSCI

More information

Applied Logic in Engineering

Applied Logic in Engineering Applied Logic in Engineering Logic Programming Technische Universität München Institut für Informatik Software & Systems Engineering Dr. Maria Spichkova M. Spichkova WS 2012/13: Applied Logic in Engineering

More information

ON FUNCTIONAL SYMBOL-FREE LOGIC PROGRAMS

ON FUNCTIONAL SYMBOL-FREE LOGIC PROGRAMS PROCEEDINGS OF THE YEREVAN STATE UNIVERSITY Physical and Mathematical Sciences 2012 1 p. 43 48 ON FUNCTIONAL SYMBOL-FREE LOGIC PROGRAMS I nf or m at i cs L. A. HAYKAZYAN * Chair of Programming and Information

More information

Predicate logic Proofs Artificial intelligence. Predicate logic. SET07106 Mathematics for Software Engineering

Predicate logic Proofs Artificial intelligence. Predicate logic. SET07106 Mathematics for Software Engineering Predicate logic SET07106 Mathematics for Software Engineering School of Computing Edinburgh Napier University Module Leader: Uta Priss 2010 Copyright Edinburgh Napier University Predicate logic Slide 1/24

More information

How to Build a Highly Available System Using Consensus

How to Build a Highly Available System Using Consensus How to Build a Highly Available System Using Consensus Butler W. Lampson 1 Microsoft 180 Lake View Av., Cambridge, MA 02138 Abstract. Lamport showed that a replicated deterministic state machine is a general

More information

COMPUTER SCIENCE TRIPOS

COMPUTER SCIENCE TRIPOS CST.98.5.1 COMPUTER SCIENCE TRIPOS Part IB Wednesday 3 June 1998 1.30 to 4.30 Paper 5 Answer five questions. No more than two questions from any one section are to be answered. Submit the answers in five

More information

Specification and Analysis of Contracts Lecture 1 Introduction

Specification and Analysis of Contracts Lecture 1 Introduction Specification and Analysis of Contracts Lecture 1 Introduction Gerardo Schneider gerardo@ifi.uio.no http://folk.uio.no/gerardo/ Department of Informatics, University of Oslo SEFM School, Oct. 27 - Nov.

More information

Foundational Proof Certificates

Foundational Proof Certificates An application of proof theory to computer science INRIA-Saclay & LIX, École Polytechnique CUSO Winter School, Proof and Computation 30 January 2013 Can we standardize, communicate, and trust formal proofs?

More information

ML for the Working Programmer

ML for the Working Programmer ML for the Working Programmer 2nd edition Lawrence C. Paulson University of Cambridge CAMBRIDGE UNIVERSITY PRESS CONTENTS Preface to the Second Edition Preface xiii xv 1 Standard ML 1 Functional Programming

More information

Static Program Transformations for Efficient Software Model Checking

Static Program Transformations for Efficient Software Model Checking Static Program Transformations for Efficient Software Model Checking Shobha Vasudevan Jacob Abraham The University of Texas at Austin Dependable Systems Large and complex systems Software faults are major

More information

Appendix... B. The Object Constraint

Appendix... B. The Object Constraint UML 2.0 in a Nutshell Appendix B. The Object Constraint Pub Date: June 2005 Language The Object Constraint Language 2.0 (OCL) is an addition to the UML 2.0 specification that provides you with a way to

More information

Basic instructions. Move. Move n steps forward. adelante(n) Move n steps backward. atras(n) Turn left over 90 degrees. izquierda()

Basic instructions. Move. Move n steps forward. adelante(n) Move n steps backward. atras(n) Turn left over 90 degrees. izquierda() Basic instructions In each domain there are a fixed number of basic instructions you may use to write a program. You're only allowed to use this instructions directly when writing the script. For our robot

More information

P1. All of the students will understand validity P2. You are one of the students -------------------- C. You will understand validity

P1. All of the students will understand validity P2. You are one of the students -------------------- C. You will understand validity Validity Philosophy 130 O Rourke I. The Data A. Here are examples of arguments that are valid: P1. If I am in my office, my lights are on P2. I am in my office C. My lights are on P1. He is either in class

More information

Introduction to Python

Introduction to Python Caltech/LEAD Summer 2012 Computer Science Lecture 2: July 10, 2012 Introduction to Python The Python shell Outline Python as a calculator Arithmetic expressions Operator precedence Variables and assignment

More information

Chapter 15 Functional Programming Languages

Chapter 15 Functional Programming Languages Chapter 15 Functional Programming Languages Introduction - The design of the imperative languages is based directly on the von Neumann architecture Efficiency (at least at first) is the primary concern,

More information

1 Propositions. mcs-ftl 2010/9/8 0:40 page 5 #11. Definition. A proposition is a statement that is either true or false.

1 Propositions. mcs-ftl 2010/9/8 0:40 page 5 #11. Definition. A proposition is a statement that is either true or false. mcs-ftl 2010/9/8 0:40 page 5 #11 1 Propositions Definition. A proposition is a statement that is either true or false. For example, both of the following statements are propositions. The first is true

More information

Relations: their uses in programming and computational specifications

Relations: their uses in programming and computational specifications PEPS Relations, 15 December 2008 1/27 Relations: their uses in programming and computational specifications Dale Miller INRIA - Saclay & LIX, Ecole Polytechnique 1. Logic and computation Outline 2. Comparing

More information

Functional Programming

Functional Programming FP 2005 1.1 3 Functional Programming WOLFRAM KAHL kahl@mcmaster.ca Department of Computing and Software McMaster University FP 2005 1.2 4 What Kinds of Programming Languages are There? Imperative telling

More information

6.080/6.089 GITCS Feb 12, 2008. Lecture 3

6.080/6.089 GITCS Feb 12, 2008. Lecture 3 6.8/6.89 GITCS Feb 2, 28 Lecturer: Scott Aaronson Lecture 3 Scribe: Adam Rogal Administrivia. Scribe notes The purpose of scribe notes is to transcribe our lectures. Although I have formal notes of my

More information

Ian Stewart on Minesweeper

Ian Stewart on Minesweeper Ian Stewart on Minesweeper It's not often you can win a million dollars by analysing a computer game, but by a curious conjunction of fate, there's a chance that you might. However, you'll only pick up

More information

p: I am elected q: I will lower the taxes

p: I am elected q: I will lower the taxes Implication Conditional Statement p q (p implies q) (if p then q) is the proposition that is false when p is true and q is false and true otherwise. Equivalent to not p or q Ex. If I am elected then I

More information

DISCRETE MATH: LECTURE 3

DISCRETE MATH: LECTURE 3 DISCRETE MATH: LECTURE 3 DR. DANIEL FREEMAN 1. Chapter 2.2 Conditional Statements If p and q are statement variables, the conditional of q by p is If p then q or p implies q and is denoted p q. It is false

More information

Elementary Number Theory and Methods of Proof. CSE 215, Foundations of Computer Science Stony Brook University http://www.cs.stonybrook.

Elementary Number Theory and Methods of Proof. CSE 215, Foundations of Computer Science Stony Brook University http://www.cs.stonybrook. Elementary Number Theory and Methods of Proof CSE 215, Foundations of Computer Science Stony Brook University http://www.cs.stonybrook.edu/~cse215 1 Number theory Properties: 2 Properties of integers (whole

More information

On the Use of Logical Abduction in Software Engineering

On the Use of Logical Abduction in Software Engineering On the Use of Logical Abduction in Software Engineering ALESSANDRA RUSSO and BASHAR NUSEIBEH Department of Computing, Imperial College of Science, Technology and Medicine London SW7 2BZ, U.K. E-mail:{ar3,

More information

Grade 7/8 Math Circles Sequences and Series

Grade 7/8 Math Circles Sequences and Series Faculty of Mathematics Waterloo, Ontario N2L 3G1 Centre for Education in Mathematics and Computing Grade 7/8 Math Circles Sequences and Series November 30, 2012 What are sequences? A sequence is an ordered

More information

A Propositional Dynamic Logic for CCS Programs

A Propositional Dynamic Logic for CCS Programs A Propositional Dynamic Logic for CCS Programs Mario R. F. Benevides and L. Menasché Schechter {mario,luis}@cos.ufrj.br Abstract This work presents a Propositional Dynamic Logic in which the programs are

More information

2 SYSTEM DESCRIPTION TECHNIQUES

2 SYSTEM DESCRIPTION TECHNIQUES 2 SYSTEM DESCRIPTION TECHNIQUES 2.1 INTRODUCTION Graphical representation of any process is always better and more meaningful than its representation in words. Moreover, it is very difficult to arrange

More information

Formal Verification Coverage: Computing the Coverage Gap between Temporal Specifications

Formal Verification Coverage: Computing the Coverage Gap between Temporal Specifications Formal Verification Coverage: Computing the Coverage Gap between Temporal Specifications Sayantan Das Prasenjit Basu Ansuman Banerjee Pallab Dasgupta P.P. Chakrabarti Department of Computer Science & Engineering

More information

Model checking test models. Author: Kevin de Berk Supervisors: Prof. dr. Wan Fokkink, dr. ir. Machiel van der Bijl

Model checking test models. Author: Kevin de Berk Supervisors: Prof. dr. Wan Fokkink, dr. ir. Machiel van der Bijl Model checking test models Author: Kevin de Berk Supervisors: Prof. dr. Wan Fokkink, dr. ir. Machiel van der Bijl February 14, 2014 Abstract This thesis is about model checking testing models. These testing

More information

Towards Reasoning in the presence of code of unknown provenance

Towards Reasoning in the presence of code of unknown provenance Towards Reasoning in the presence of code of unknown provenance - or, trust and risk in an open world - Sophia Drossopoulou (Imperial), James Noble (Victoria University Wellington), Toby Murray (NICTA),

More information

Formal Verification of Software

Formal Verification of Software Formal Verification of Software Sabine Broda Department of Computer Science/FCUP 12 de Novembro de 2014 Sabine Broda (DCC-FCUP) Formal Verification of Software 12 de Novembro de 2014 1 / 26 Formal Verification

More information

2. The Language of First-order Logic

2. The Language of First-order Logic 2. The Language of First-order Logic KR & R Brachman & Levesque 2005 17 Declarative language Before building system before there can be learning, reasoning, planning, explanation... need to be able to

More information

HECTOR a software model checker with cooperating analysis plugins. Nathaniel Charlton and Michael Huth Imperial College London

HECTOR a software model checker with cooperating analysis plugins. Nathaniel Charlton and Michael Huth Imperial College London HECTOR a software model checker with cooperating analysis plugins Nathaniel Charlton and Michael Huth Imperial College London Introduction HECTOR targets imperative heap-manipulating programs uses abstraction

More information

Concepts of Concurrent Computation

Concepts of Concurrent Computation Chair of Software Engineering Concepts of Concurrent Computation Bertrand Meyer Sebastian Nanz Lecture 3: Synchronization Algorithms Today's lecture In this lecture you will learn about: the mutual exclusion

More information

The Modal Logic Programming System MProlog

The Modal Logic Programming System MProlog The Modal Logic Programming System MProlog Linh Anh Nguyen Institute of Informatics, University of Warsaw ul. Banacha 2, 02-097 Warsaw, Poland nguyen@mimuw.edu.pl Abstract. We present the design of our

More information

Ensuring Consistency in Long Running Transactions

Ensuring Consistency in Long Running Transactions Ensuring Consistency in Long Running Transactions UCLA Computer Science Dept. Technical Report TR-070011 Jeffrey Fischer Rupak Majumdar Department of Computer Science, University of California, Los Angeles

More information

Logic in general. Inference rules and theorem proving

Logic in general. Inference rules and theorem proving Logical Agents Knowledge-based agents Logic in general Propositional logic Inference rules and theorem proving First order logic Knowledge-based agents Inference engine Knowledge base Domain-independent

More information

The ConTract Model. Helmut Wächter, Andreas Reuter. November 9, 1999

The ConTract Model. Helmut Wächter, Andreas Reuter. November 9, 1999 The ConTract Model Helmut Wächter, Andreas Reuter November 9, 1999 Overview In Ahmed K. Elmagarmid: Database Transaction Models for Advanced Applications First in Andreas Reuter: ConTracts: A Means for

More information

This chapter is all about cardinality of sets. At first this looks like a

This chapter is all about cardinality of sets. At first this looks like a CHAPTER Cardinality of Sets This chapter is all about cardinality of sets At first this looks like a very simple concept To find the cardinality of a set, just count its elements If A = { a, b, c, d },

More information

Condensed Representation of Database Repairs for Consistent Query Answering. Jef Wijsen Université de Mons-Hainaut (UMH), Belgium

Condensed Representation of Database Repairs for Consistent Query Answering. Jef Wijsen Université de Mons-Hainaut (UMH), Belgium Condensed Representation of Database Repairs for Consistent Query Answering Jef Wijsen Université de Mons-Hainaut (UMH), Belgium Dagstuhl Seminar 03241 1 Motivation SAMPLES SNum Sampled Food Analyzed Lab

More information

Prolog A Tutorial Introduction James Lu Jerud J. Mead

Prolog A Tutorial Introduction James Lu Jerud J. Mead Prolog A Tutorial Introduction James Lu Jerud J. Mead Computer Science Department Bucknell University Lewisburg, PA 17387 1 Contents 1 Introduction 1 2 Easing into Prolog 2 2.1 Logic Programming.........................................

More information

Notes V General Equilibrium: Positive Theory. 1 Walrasian Equilibrium and Excess Demand

Notes V General Equilibrium: Positive Theory. 1 Walrasian Equilibrium and Excess Demand Notes V General Equilibrium: Positive Theory In this lecture we go on considering a general equilibrium model of a private ownership economy. In contrast to the Notes IV, we focus on positive issues such

More information

136 CHAPTER 4. INDUCTION, GRAPHS AND TREES

136 CHAPTER 4. INDUCTION, GRAPHS AND TREES 136 TER 4. INDUCTION, GRHS ND TREES 4.3 Graphs In this chapter we introduce a fundamental structural idea of discrete mathematics, that of a graph. Many situations in the applications of discrete mathematics

More information

We would like to state the following system of natural deduction rules preserving falsity:

We would like to state the following system of natural deduction rules preserving falsity: A Natural Deduction System Preserving Falsity 1 Wagner de Campos Sanz Dept. of Philosophy/UFG/Brazil sanz@fchf.ufg.br Abstract This paper presents a natural deduction system preserving falsity. This new

More information

VISUAL GUIDE to. RX Scripting. for Roulette Xtreme - System Designer 2.0

VISUAL GUIDE to. RX Scripting. for Roulette Xtreme - System Designer 2.0 VISUAL GUIDE to RX Scripting for Roulette Xtreme - System Designer 2.0 UX Software - 2009 TABLE OF CONTENTS INTRODUCTION... ii What is this book about?... iii How to use this book... iii Time to start...

More information

Answer Key for California State Standards: Algebra I

Answer Key for California State Standards: Algebra I Algebra I: Symbolic reasoning and calculations with symbols are central in algebra. Through the study of algebra, a student develops an understanding of the symbolic language of mathematics and the sciences.

More information

Some Minesweeper Configurations

Some Minesweeper Configurations Some Minesweeper Configurations Richard Kaye School of Mathematics The University of Birmingham Birmingham B15 2TT RWKaye@bhamacuk http://webmatbhamacuk/rwkaye/ 31st May 2007 Contents 1 Introduction 2

More information

Pretty-big-step semantics

Pretty-big-step semantics Pretty-big-step semantics Arthur Charguéraud INRIA October 2012 1 / 34 Motivation Formalization of JavaScript with Sergio Maeis, Daniele Filaretti, Alan Schmitt, Martin Bodin. Previous work: Semi-formal

More information

Simple Loop Patterns and Rich Loop Invariants

Simple Loop Patterns and Rich Loop Invariants Simple Loop Patterns and Rich Loop Invariants Marc Sango AdaCore CNAM 05-10-2011 Marc Sango (AdaCore CNAM) Simple Loop Patterns and Rich Loop Invariants 05-10-2011 1 / 17 Contents 1 Motivation 2 Principle

More information

Iterated Dynamic Belief Revision. Sonja Smets, University of Groningen. website: http://www.vub.ac.be/clwf/ss

Iterated Dynamic Belief Revision. Sonja Smets, University of Groningen. website: http://www.vub.ac.be/clwf/ss LSE-Groningen Workshop I 1 Iterated Dynamic Belief Revision Sonja Smets, University of Groningen website: http://www.vub.ac.be/clwf/ss Joint work with Alexandru Baltag, COMLAB, Oxford University LSE-Groningen

More information

Integrating Cognitive Models Based on Different Computational Methods

Integrating Cognitive Models Based on Different Computational Methods Integrating Cognitive Models Based on Different Computational Methods Nicholas L. Cassimatis (cassin@rpi.edu) Rensselaer Polytechnic Institute Department of Cognitive Science 110 8 th Street Troy, NY 12180

More information

INCIDENCE-BETWEENNESS GEOMETRY

INCIDENCE-BETWEENNESS GEOMETRY INCIDENCE-BETWEENNESS GEOMETRY MATH 410, CSUSM. SPRING 2008. PROFESSOR AITKEN This document covers the geometry that can be developed with just the axioms related to incidence and betweenness. The full

More information

Remarks on Non-Fregean Logic

Remarks on Non-Fregean Logic STUDIES IN LOGIC, GRAMMAR AND RHETORIC 10 (23) 2007 Remarks on Non-Fregean Logic Mieczys law Omy la Institute of Philosophy University of Warsaw Poland m.omyla@uw.edu.pl 1 Introduction In 1966 famous Polish

More information

Monitoring Metric First-order Temporal Properties

Monitoring Metric First-order Temporal Properties Monitoring Metric First-order Temporal Properties DAVID BASIN, FELIX KLAEDTKE, SAMUEL MÜLLER, and EUGEN ZĂLINESCU, ETH Zurich Runtime monitoring is a general approach to verifying system properties at

More information

How To Program In Scheme (Prolog)

How To Program In Scheme (Prolog) The current topic: Scheme! Introduction! Object-oriented programming: Python Functional programming: Scheme! Introduction Next up: Numeric operators, REPL, quotes, functions, conditionals Types and values

More information

Examination paper for MA0301 Elementær diskret matematikk

Examination paper for MA0301 Elementær diskret matematikk Department of Mathematical Sciences Examination paper for MA0301 Elementær diskret matematikk Academic contact during examination: Iris Marjan Smit a, Sverre Olaf Smalø b Phone: a 9285 0781, b 7359 1750

More information