# Automated Reasoning. Natural Deduction in First-Order Logic

Save this PDF as:

Size: px
Start display at page:

Download "Automated Reasoning. Natural Deduction in First-Order Logic"

## Transcription

1 Automated Reasoning Natural Deduction in First-Order Logic Jacques Fleuriot Automated Reasoning Lecture 4, page 1

2 Problem Consider the following problem: Every person has a heart. George Bush is a person. Does George Bush have a heart? Is Propositional logic rich enough to formally represent and reason about this problem? The finer logical structure of this problem would not be captured by the constructs we have so far encountered. We need a richer language! Automated Reasoning Lecture 4, page 2

3 A Richer Language First order logic () extends propositional logic: Reasons about individuals in a universe of discourse and their properties Have predicates and functions to denote properties A variable stands for an element of the universe Variables range over individuals but not over functions and predicates Propositional connectives used to build up statements Quantifiers (for all) and (there exists) used also known as Predicate logic Automated Reasoning Lecture 4, page 3

4 First order language is characterized by giving a finite collection of functions F and predicates P as well as a set of variables. Often call (F, P ) a signature 2 syntactic categories: terms and formulae terms stand for individuals while formulae stand for truth values Automated Reasoning Lecture 4, page 4

5 Terms of Terms of a first-order language are defined as: Any variable is a term If c F is a nullary function (i.e. a constant), then c is a term If t 1,..., t n are terms and function f F has arity n > 0, then f(t 1,..., t n ) is a term Nothing else is a term Automated Reasoning Lecture 4, page 5

6 Formulae of A well-formed formula in is defined as: If P P is a predicate symbol of arity n 0, and if t 1,..., t n are terms over F, then P(t 1,..., t n ) is a formula. If is a formula, then so is ( ). If and are formulas, then so are ( ), ( ), ( ) and ( ). If is a formula and x is a variable, then ( x. ) and ( x. ) are formulas. Nothing else is a formula. Automated Reasoning Lecture 4, page 6

7 Example: Problem Revisited We can now formally represent our problem in : Every person has a heart: x. person(x) hasheart(x) George Bush is a person: person(bush) To answer the question Does George Bush have a heart? we need to prove: (( x. person(x) hasheart(x)) person(bush)) hasheart(bush) How do we prove if this is a valid statement? - more on this later Automated Reasoning Lecture 4, page 7

8 Variables In, variables can be in one of two states: bound: x. x=x or x. x=x, etc... free: x=x For example, in the proposition: x. y. x * y = z x and y are bound variables and z is a free variable. Automated Reasoning Lecture 4, page 8

9 Substitution Rule If P is a formula, s is a term, and x is a free variable, then P [s/x] is the formula obtained by substituting s for x throughout P. Such a substitution rule can be defined as: s=t P [s/ x ] P [t / x ] subst Example: x. P(x,y) [3/y] = x. P(x,3) x. P(x,y) [2/x] = x. P(x,y) Automated Reasoning Lecture 4, page 9

10 Semantics of Formulae Informal view: An interpretation of a formula maps its function symbols, including constants, to actual functions, and its predicate symbols to actual relations. The interpretation also specifies some domain D (a non-empty set or universe) on which the functions and relations are defined. Automated Reasoning Lecture 4, page 10

11 Definition of Interpretation An interpretation for a wff consists of a nonempty set D, called the domain of the interpretation, together with an assignment of meanings to the symbols of the wff. 1. Each predicate symbol is assigned to a relation over D. A nullary predicate is assigned a truth value. 2. Each function symbol is assigned to a function over D. Each nullary function (constant) is assigned to a value in D. 3. Each free variable is assigned to a value in D. All free occurrences of a free variable x are assigned to the same value in D. Automated Reasoning Lecture 4, page 11

12 Example of Interpretation Consider the formula P(a) x. Q(a,x) (*) formula does not mean anything on its own A possible interpretation is: Domain is the set of natural numbers (e.g. 0, 1, 2, 3,...) Assign 2 to a, assign the property of being even to P, and the relation of being greater than to Q, i.e Q(x,y) means x is greater than y Under this interpretation: (*) affirms that 2 is even and there exists a natural number that 2 is greater than. Is (*) satisfied under this interpretation? -Yes Such a satisfying interpretation is known as a model Automated Reasoning Lecture 4, page 12

13 Semantics of Formulae The semantics (meaning) of a wff in with respect to an interpretation with domain D is the truth value obtained by applying the following rules: 1. If the wff has no quantifiers then its meaning is the truth value of the proposition obtained by applying the interpretation to the wff. 2. If the wff contains x. W then x. W is true if W [d/x] is true for every d D. Otherwise, x. W is false. 3. If the wff contains x. W then x. W is true if W [d/x] is true for some d D. Otherwise, x. W is false. Automated Reasoning Lecture 4, page 13

14 More Introduction Rules Our natural deduction rules for Propositional logic need to be extended to deal with. Quantifiers, need substitution and notion of arbitrary variable: x 0 is an arbitrary free variable i.e. we make no assumptions about it P x 0 x. P x alli provided x 0 is fresh P a x. P x exi Automated Reasoning Lecture 4, page 14

15 Existential Elimination The proviso is part of the rule definition and cannot be omitted u.p u Q [P x ] Q exe Provided x does not occur in P u or Q or any other premise other than P x on which derivation of Q from P x depends Automated Reasoning Lecture 4, page 15

16 Universal Elimination specialization rule u. P u P x spec An alternative universal elimination rule is alle: u. P u R [P x] R alle Note: This rule is mostly useful when doing a mechanical proof Automated Reasoning Lecture 4, page 16

17 Example proof Prove that y. P y is true, given that x. P x holds. x. P x assum P a y. P y spec exi Automated Reasoning Lecture 4, page 17

18 Example proof (II) Prove that x. Q x is true, given that x. P x and ( x. P x Q x) both hold. red assumptions hold x. P x Q x assum alle introduces (1) [P a Q a] alle introduces (2) [P a] x.p x assum Q a x.q x P a Q a by1 P a by2 Q a by3 Q a Q a (3) [Q a] impe alle alle alli impe introduces (3) [Q a] Exercise: Redo this proof using spec instead of alle Automated Reasoning Lecture 4, page 18

19 Problem (III) Prove that hasheart(bush) given that x. person(x) hasheart(x) and person(bush) hold. red assumptions hold alle introduces assumption (1) [per(b) heart(b)] impe introduces (2)[heart(b)] x. per x heart x assum per b heart b heart b by1 per b assum heart b by 2 heart b impe alle abbrevs: heart(x) for hasheart(x) and per(x) for person(x) Exercise: Redo this proof using spec instead of alle Automated Reasoning Lecture 4, page 19

20 in Coq In Coq, is a typed logic with types such as nat (for natural numbers), bool (for boolean values) and list (for lists) type constructors such as O and S for constructing nat terms: e.g. O represents zero, S O represents one and S (S O))represents two. function types written using, e.g. nat nat nat is the type of a function that takes two nat term arguments and returns a nat term. parameterized types that allow us to define types parameterized by other types e.g. nat list for lists of nat terms and bool list for lists of bool terms. Automated Reasoning Lecture 4, page 20

21 in Coq (II) Consider the mathematical predicate mod. In Coq, we could formalize this as: Definition mod (a:nat) (b:nat) (c:nat) : Prop := exists k, a = b * k + c. We can use this definition to write propositions like: forall (a b c d:nat), a = d > mod d b c = mod a b c. Coq performs type inference. The definition above could have been written as: Definition mod a b c := exists k, a = b * k + c. The proposition could have been written as: forall a b c d, a = d > mod d b c = mod a b c. Automated Reasoning Lecture 4, page 21

22 Coq Demo Can be found on course webpage... Automated Reasoning Lecture 4, page 22

23 Summary Introduction to Syntax and Semantics Substitution Intro and elim rules for quantifiers Coq Declaring predicates Brief look at types Next time: matters of representation Automated Reasoning Lecture 4, page 23

### First Order Predicate Logic CIS 32

First Order Predicate Logic CIS 32 Functionalia Demos? HW 3 is out on the web-page. Today: Predicate Logic Constructing the Logical Agent Predicate Logic First-order predicate logic More expressive than

### Goals: Define the syntax of a simple imperative language Define a semantics using natural deduction 1

Natural Semantics Goals: Define the syntax of a simple imperative language Define a semantics using natural deduction 1 1 Natural deduction is an instance of first-order logic; that is, it is the formal

### Introduction to Axiomatic Semantics

Introduction to Axiomatic Semantics Meeting 10, CSCI 5535, Spring 2009 Announcements Homework 3 due tonight Homework 2 is graded 13 (mean), 14 (median), out of 21 total, but Graduate class: final project

### Introductory logic and sets for Computer scientists

Introductory logic and sets for Computer scientists Nimal Nissanke University of Reading ADDISON WESLEY LONGMAN Harlow, England II Reading, Massachusetts Menlo Park, California New York Don Mills, Ontario

### 3.4 Deduction and Evaluation: Tools Conditional-Equational Logic

3.4 Deduction and Evaluation: Tools 3.4.1 Conditional-Equational Logic The general definition of a formal specification from above was based on the existence of a precisely defined semantics for the syntax

### Propositional Logic Formal Syntax and Semantics. Computability and Logic

Propositional Logic Formal Syntax and Semantics Computability and Logic Syntax and Semantics Syntax: The study of how expressions are structured (think: grammar) Semantics: The study of the relationship

### Infinite Objects and Proofs 1

Infinite Objects and Proofs 1 Pierre Castéran Beijing, August 2009 1 This lecture corresponds to the chapter 13 : Infinite Objects and Proofs of the book. In this lecture, we shall see how to represent

### Introduction to Logic Programming

Introduction to Logic Programming York University CSE 3401 Vida Movahedi York University CSE 3401 V. Movahedi 1 Overview Programming Language Paradigms Logic Programming Functional Programming Brief review

### Chapter 3: Propositional Languages

Chapter 3: Propositional Languages We define here a general notion of a propositional language. We show how to obtain, as specific cases, various languages for propositional classical logic and some non-classical

### Review. CS152: Programming Languages. Lecture 11 STLC Extensions and Related Topics. Let bindings (CBV) Adding Stuff. Booleans and Conditionals

Review CS152: Programming Languages Lecture 11 STLC Extensions and Related Topics e ::= λx. e x ee c v ::= λx. e c (λx. e) v e[v/x] e 1 e 2 e 1 e 2 τ ::= int τ τ Γ ::= Γ,x : τ e 2 e 2 ve 2 ve 2 e[e /x]:

### The Eisbach User Manual

= Isabelle λ β Eisbach α The Eisbach User Manual Daniel Matichuk Makarius Wenzel Toby Murray 8 October 2017 Preface Eisbach is a collection of tools which form the basis for defining new proof methods

### The Metalanguage λprolog and Its Implementation

The Metalanguage λprolog and Its Implementation Gopalan Nadathur Computer Science Department University of Minnesota (currently visiting INRIA and LIX) 1 The Role of Metalanguages Many computational tasks

### The Coq Proof Assistant A Tutorial

The Coq Proof Assistant A Tutorial December 18, 2017 Version 8.7.1 1 Gérard Huet, Gilles Kahn and Christine Paulin-Mohring πr 2 Project (formerly LogiCal, then TypiCal) 1 This research was partly supported

### Introduction & Review

Introduction & Review York University Department of Computer Science and Engineering 1 Why this course? Overview Programming Language Paradigms Brief review of Logic Propositional logic Predicate logic

### Module 6. Knowledge Representation and Logic (First Order Logic) Version 2 CSE IIT, Kharagpur

Module 6 Knowledge Representation and Logic (First Order Logic) 6.1 Instructional Objective Students should understand the advantages of first order logic as a knowledge representation language Students

### Polymorphic lambda calculus Princ. of Progr. Languages (and Extended ) The University of Birmingham. c Uday Reddy

06-02552 Princ. of Progr. Languages (and Extended ) The University of Birmingham Spring Semester 2016-17 School of Computer Science c Uday Reddy2016-17 Handout 6: Polymorphic Type Systems 1. Polymorphic

### Deduction using the ProofWeb system

Deduction using the ProofWeb system Cezary Kaliszyk Femke van Raamsdonk Freek Wiedijk Hanno Wupper Maxim Hendriks Roel de Vrijer Abstract This is the manual of the ProofWeb system that was implemented

### Exercises on Semantics of Programming Languages

Technische Universität Wien SS 2014 Fakultät für Informatik Repetition sheet Assist. Prof. Florian Zuleger Tuesday, 8 April 2014 Assist. Prof. Georg Weissenbacher Univ. Prof. Agata Ciabattoni Moritz Sinn,

### Section 2.4: Arguments with Quantified Statements

Section 2.4: Arguments with Quantified Statements In this section, we shall generalize the ideas we developed in Section 1.3 to arguments which involve quantified statements. Most of the concepts we shall

### Bliksem 1.10 User Manual

Bliksem 1.10 User Manual H. de Nivelle January 2, 2003 Abstract Bliksem is a theorem prover that uses resolution with paramodulation. It is written in portable C. The purpose of Bliksem was to develope

### Formal Predicate Calculus. Michael Meyling

Formal Predicate Calculus Michael Meyling May 24, 2013 2 The source for this document can be found here: http://www.qedeq.org/0_04_07/doc/math/qedeq_formal_logic_v1.xml Copyright by the authors. All rights

### Notes. Notes. Introduction. Notes. Propositional Functions. Slides by Christopher M. Bourke Instructor: Berthe Y. Choueiry.

Slides by Christopher M. Bourke Instructor: Berthe Y. Choueiry Spring 2006 1 / 1 Computer Science & Engineering 235 Introduction to Discrete Mathematics Sections 1.3 1.4 of Rosen cse235@cse.unl.edu Introduction

### Introduction to System F. Lecture 18 CS 565 4/20/09

Introduction to System F Lecture 18 CS 565 4/20/09 The Limitations of F 1 (simply-typed λ- calculus) In F 1 each function works exactly for one type Example: the identity function id = λx:τ. x : τ τ We

### CMPS 277 Principles of Database Systems. https://courses.soe.ucsc.edu/courses/cmps277/fall11/01. Lecture #3

CMPS 277 Principles of Database Systems https://courses.soe.ucsc.edu/courses/cmps277/fall11/01 Lecture #3 1 Summary of Lectures #1 and #2 Codd s Relational Model based on the concept of a relation (table)

### Topic 3: Propositions as types

Topic 3: Propositions as types May 18, 2014 Propositions as types We have seen that the main mathematical objects in a type theory are types. But remember that in conventional foundations, as based on

### Lambda Calculus. Type Systems, Lectures 3. Jevgeni Kabanov Tartu,

Lambda Calculus Type Systems, Lectures 3 Jevgeni Kabanov Tartu, 13.02.2006 PREVIOUSLY ON TYPE SYSTEMS Arithmetical expressions and Booleans Evaluation semantics Normal forms & Values Getting stuck Safety

### Natural deduction environment for Matita

Natural deduction environment for Matita Claudio Sacerdoti Coen and Enrico Tassi Department of Computer Science, University of Bologna Mura Anteo Zamboni, 7 40127 Bologna, ITALY {sacerdot,tassi}@cs.unibo.it

### The Typed λ Calculus and Type Inferencing in ML

Notes on Types S. Arun-Kumar Department of Computer Science and Engineering Indian Institute of Technology New Delhi, 110016 email: sak@cse.iitd.ernet.in April 14, 2002 2 Chapter 1 The Typed λ Calculus

### A NEW PROOF-ASSISTANT THAT REVISITS HOMOTOPY TYPE THEORY THE THEORETICAL FOUNDATIONS OF COQ USING NICOLAS TABAREAU

COQHOTT A NEW PROOF-ASSISTANT THAT REVISITS THE THEORETICAL FOUNDATIONS OF COQ USING HOMOTOPY TYPE THEORY NICOLAS TABAREAU The CoqHoTT project Design and implement a brand-new proof assistant by revisiting

### Introduction to Logic Programming

Introduction to Logic Programming Foundations, First-Order Language Temur Kutsia RISC, Johannes Kepler University Linz, Austria kutsia@risc.jku.at What is a Logic Program Logic program is a set of certain

### Fundamental Concepts. Chapter 1

Chapter 1 Fundamental Concepts This book is about the mathematical foundations of programming, with a special attention on computing with infinite objects. How can mathematics help in programming? There

### Unification in Maude. Steven Eker

Unification in Maude Steven Eker 1 Unification Unification is essentially solving equations in an abstract setting. Given a signature Σ, variables X and terms t 1, t 2 T (Σ) we want to find substitutions

### Logik für Informatiker Logic for computer scientists

Logik für Informatiker for computer scientists WiSe 2011/12 Overview Motivation Why is logic needed in computer science? The LPL book and software Scheinkriterien Why is logic needed in computer science?

### Polymorphism. Lecture 19 CS 565 4/17/08

Polymorphism Lecture 19 CS 565 4/17/08 The Limitations of F 1 (simply-typed λ- calculus) In F 1 each function works exactly for one type Example: the identity function id = λx:τ. x : τ τ We need to write

### Lecture 3: Constructing the Natural Numbers

Math/CS 120: Intro. to Math Professor: Padraic Bartlett Lecture 3: Constructing the Natural Numbers Weeks 3-4 UCSB 2014 When we defined what a proof was in our first set of lectures, we mentioned that

### Fondamenti della Programmazione: Metodi Evoluti. Lezione 5: Invariants and Logic

Fondamenti della Programmazione: Metodi Evoluti Prof. Enrico Nardelli Lezione 5: Invariants and Logic versione originale: http://touch.ethz.ch Reminder: contracts Associated with an individual feature:

### Mathematical Logic Prof. Arindama Singh Department of Mathematics Indian Institute of Technology, Madras. Lecture - 37 Resolution Rules

Mathematical Logic Prof. Arindama Singh Department of Mathematics Indian Institute of Technology, Madras Lecture - 37 Resolution Rules If some literals can be unified, the same algorithm should be able

### Type Checking. Outline. General properties of type systems. Types in programming languages. Notation for type rules.

Outline Type Checking General properties of type systems Types in programming languages Notation for type rules Logical rules of inference Common type rules 2 Static Checking Refers to the compile-time

### CONVENTIONAL EXECUTABLE SEMANTICS. Grigore Rosu CS422 Programming Language Semantics

CONVENTIONAL EXECUTABLE SEMANTICS Grigore Rosu CS422 Programming Language Semantics Conventional Semantic Approaches A language designer should understand the existing design approaches, techniques and

### Lecture Outline. COOL operational semantics. Operational Semantics of Cool. Motivation. Lecture 13. Notation. The rules. Evaluation Rules So Far

Lecture Outline Operational Semantics of Cool Lecture 13 COOL operational semantics Motivation Notation The rules Prof. Aiken CS 143 Lecture 13 1 Prof. Aiken CS 143 Lecture 13 2 Motivation We must specify

### Outline. General properties of type systems. Types in programming languages. Notation for type rules. Common type rules. Logical rules of inference

Type Checking Outline General properties of type systems Types in programming languages Notation for type rules Logical rules of inference Common type rules 2 Static Checking Refers to the compile-time

### λ calculus is inconsistent

Content Rough timeline COMP 4161 NICTA Advanced Course Advanced Topics in Software Verification Gerwin Klein, June Andronick, Toby Murray λ Intro & motivation, getting started [1] Foundations & Principles

### Part II. Hoare Logic and Program Verification. Why specify programs? Specification and Verification. Code Verification. Why verify programs?

Part II. Hoare Logic and Program Verification Part II. Hoare Logic and Program Verification Dilian Gurov Props: Models: Specs: Method: Tool: safety of data manipulation source code logic assertions Hoare

### Schema Mappings and Data Exchange

Schema Mappings and Data Exchange Lecture #2 EASSLC 2012 Southwest University August 2012 1 The Relational Data Model (E.F. Codd 1970) The Relational Data Model uses the mathematical concept of a relation

### Section 2.2: Introduction to the Logic of Quantified Statements

Section 2.2: Introduction to the Logic of Quantified Statements In this section, we shall continue to examine some of the fundamentals of predicate calculus. Specifically, we shall look at the negations

### SC/MATH Boolean Formulae. Ref: G. Tourlakis, Mathematical Logic, John Wiley & Sons, York University

SC/MATH 1090 1- Boolean Formulae Ref: G. Tourlakis, Mathematical Logic, John Wiley & Sons, 2008. York University Department of Computer Science and Engineering York University- MATH 1090 01-Boolean 1 Overview

### Dependent types and program equivalence. Stephanie Weirich, University of Pennsylvania with Limin Jia, Jianzhou Zhao, and Vilhelm Sjöberg

Dependent types and program equivalence Stephanie Weirich, University of Pennsylvania with Limin Jia, Jianzhou Zhao, and Vilhelm Sjöberg What are dependent types? Types that depend on values of other types

### Language to Specify Syntax-Guided Synthesis Problems

Language to Specify Syntax-Guided Synthesis Problems Mukund Raghothaman Abhishek Udupa Saturday 25 th January, 2014 1 Introduction We present a language to specify syntax guided synthesis (SyGuS) problems.

### Specification, Verification, and Interactive Proof

Specification, Verification, and Interactive Proof SRI International May 23, 2016 PVS PVS - Prototype Verification System PVS is a verification system combining language expressiveness with automated tools.

### Intro to semantics; Small-step semantics Lecture 1 Tuesday, January 29, 2013

Harvard School of Engineering and Applied Sciences CS 152: Programming Languages Lecture 1 Tuesday, January 29, 2013 1 Intro to semantics What is the meaning of a program? When we write a program, we use

### Fuzzy Reasoning. Linguistic Variables

Fuzzy Reasoning Linguistic Variables Linguistic variable is an important concept in fuzzy logic and plays a key role in its applications, especially in the fuzzy expert system Linguistic variable is a

### Programming with (co-)inductive types in Coq

Programming with (co-)inductive types in Coq Matthieu Sozeau February 3rd 2014 Programming with (co-)inductive types in Coq Matthieu Sozeau February 3rd 2014 Last time 1. Record Types 2. Mathematical Structures

### Computing Fundamentals 2 Introduction to CafeOBJ

Computing Fundamentals 2 Introduction to CafeOBJ Lecturer: Patrick Browne Lecture Room: K408 Lab Room: A308 Based on work by: Nakamura Masaki, João Pascoal Faria, Prof. Heinrich Hußmann. See notes on slides

### Formalizing inference systems in Coq by means of type systems for Curry

Formalizing inference systems in Coq by means of type systems for Curry Niels Bunkenburg Bachelor s Thesis Programming Languages and Compiler Construction Department of Computer Science Christian-Albrechts-University

### Abstractions in Logic Programs

University of Pennsylvania ScholarlyCommons Technical Reports (CIS) Department of Computer & Information Science May 1989 Abstractions in Logic Programs Dale Miller University of Pennsylvania Follow this

### Coq in a Hurry. Yves Bertot. October 2008

Coq in a Hurry Yves Bertot October 2008 arxiv:cs/0603118v3 [cs.lo] 7 Nov 2008 These notes provide a quick introduction to the Coq system and show how it can be used to define logical concepts and functions

### Automated Theorem Proving and Proof Checking

Automated Theorem Proving and Proof Checking #1 #2 Cunning Theorem-Proving Plan There are full-semester courses on automated deduction; we will elide details. Logic Syntax Theories Satisfiability Procedures

### Range Restriction for General Formulas

Range Restriction for General Formulas 1 Range Restriction for General Formulas Stefan Brass Martin-Luther-Universität Halle-Wittenberg Germany Range Restriction for General Formulas 2 Motivation Deductive

### Abstract Interpretation

Abstract Interpretation Ranjit Jhala, UC San Diego April 22, 2013 Fundamental Challenge of Program Analysis How to infer (loop) invariants? Fundamental Challenge of Program Analysis Key issue for any analysis

### Query formalisms for relational model relational calculus

lecture 7: Query formalisms for relational model relational calculus course: Database Systems (NDBI025) doc. RNDr. Tomáš Skopal, Ph.D. SS2011/12 Department of Software Engineering, Faculty of Mathematics

### 15 212: Principles of Programming. Some Notes on Continuations

15 212: Principles of Programming Some Notes on Continuations Michael Erdmann Spring 2011 These notes provide a brief introduction to continuations as a programming technique. Continuations have a rich

### CMSC 22100/32100: Programming Languages Lecture Notes M. Blume December 5, 2008

CMSC 22100/32100: Programming Languages Lecture Notes M. Blume December 5, 2008 1 Introduction What are programming languages? Languages: formal languages, i.e., sets of strings Programming: languages

### The Java Modeling Language JML

The Java Modeling Language JML Néstor Cataño ncatano@puj.edu.co Faculty of Engineering Pontificia Universidad Javeriana The Java Modelling Language JML p.1/47 Lecture Plan 1. An Introduction to JML 2.

### Predicate Logic CHAPTER What This Chapter Is About

CHAPTER 14 Predicate Logic We now turn our attention to a generalization of propositional logic, called predicate, or first-order, logic. Predicates are functions of zero or more variables that return

### 2 Introduction to operational semantics

2 Introduction to operational semantics This chapter presents the syntax of a programming language, IMP, a small language of while programs. IMP is called an "imperative" language because program execution

### Computational Logic Introduction to Logic Programming

Computational Logic Introduction to Logic Programming 1 Overview 1. Syntax: data 2. Manipulating data: Unification 3. Syntax: code 4. Semantics: meaning of programs 5. Executing logic programs 2 Syntax:

### A CONSTRUCTIVE SEMANTICS FOR REWRITING LOGIC MICHAEL N. KAPLAN

A CONSTRUCTIVE SEMANTICS FOR REWRITING LOGIC BY MICHAEL N. KAPLAN A DISSERTATION SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF DOCTOR OF PHILOSOPHY IN COMPUTER SCIENCE UNIVERSITY

### Inf2D 12: Resolution-Based Inference

School of Informatics, University of Edinburgh 09/02/18 Slide Credits: Jacques Fleuriot, Michael Rovatsos, Michael Herrmann Last time Unification: Given α and β, find θ such that αθ = βθ Most general unifier

### CSC312 Principles of Programming Languages : Functional Programming Language. Copyright 2006 The McGraw-Hill Companies, Inc.

CSC312 Principles of Programming Languages : Functional Programming Language Overview of Functional Languages They emerged in the 1960 s with Lisp Functional programming mirrors mathematical functions:

### Coq Summer School. Yves Bertot

Coq Summer School Yves Bertot Introduction Welcome! Coq from the practical side But Theory has practical benets, too. Start from what we expect you know: programming Need to learn a new programming language!

### CSCI 3155: Principles of Programming Languages Exam preparation #1 2007

CSCI 3155: Principles of Programming Languages Exam preparation #1 2007 Exercise 1. Consider the if-then-else construct of Pascal, as in the following example: IF 1 = 2 THEN PRINT X ELSE PRINT Y (a) Assume

### Verification and Validation

Cycle Ingénieur 2 ème année Département Informatique Verification and Validation Part IV : Proof-based Verification (I) Burkhart Wolff Département Informatique Université Paris-Sud / Orsay 2013-2014 What

### Type Theory. Lecture 2: Dependent Types. Andreas Abel. Department of Computer Science and Engineering Chalmers and Gothenburg University

Type Theory Lecture 2: Dependent Types Andreas Abel Department of Computer Science and Engineering Chalmers and Gothenburg University Type Theory Course CM0859 (2017-1) Universidad EAFIT, Medellin, Colombia

### Second-Order Type Systems

#1 Second-Order Type Systems Homework 5 Summary Student : 37.9704 Student : 44.4466 ORIGINAL : 50.2442 Student : 50.8275 Student : 50.8633 Student : 50.9181 Student : 52.1347 Student : 52.1633 Student

### Hoare Logic: Proving Programs Correct

Hoare Logic: Proving Programs Correct 17-654/17-765 Analysis of Software Artifacts Jonathan Aldrich Reading: C.A.R. Hoare, An Axiomatic Basis for Computer Programming Some presentation ideas from a lecture

### COM2001 Advanced Programming Techniques. Mike Stannett Department of Computer Science The University of Sheffield

COM2001 Advanced Programming Techniques Mike Stannett (m.stannett@dcs.shef.ac.uk) Department of Computer Science The University of Sheffield Spring Semester ABSTRACT DATA TYPES, PROGRAM COMPLEXITY, AND

### CIS 500 Software Foundations Midterm I

CIS 500 Software Foundations Midterm I October 11, 2006 Name: Student ID: Email: Status: Section: registered for the course not registered: sitting in to improve a previous grade not registered: just taking

### Lambda calculus. Chapter 2

Chapter 2 Lambda calculus The lambda calculus serves as the basis of most functional programming languages. More accurately, we might say that functional programming languages are based on the lambda calculi

### Lecture 4. First order logic is a formal notation for mathematics which involves:

0368.4435 Automatic Software Verification April 14, 2015 Lecture 4 Lecturer: Mooly Sagiv Scribe: Nimrod Busany, Yotam Frank Lesson Plan 1. First order logic recap. 2. The SMT decision problem. 3. Basic

### A Brief Introduction to Scheme (II)

A Brief Introduction to Scheme (II) Philip W. L. Fong pwlfong@cs.uregina.ca Department of Computer Science University of Regina Regina, Saskatchewan, Canada Lists Scheme II p.1/29 Lists Aggregate data

### Types. Type checking. Why Do We Need Type Systems? Types and Operations. What is a type? Consensus

Types Type checking What is a type? The notion varies from language to language Consensus A set of values A set of operations on those values Classes are one instantiation of the modern notion of type

### A Verifying Compiler for a Multi-threaded Object-Oriented Language

K. R. M. Leino and W. Schulte / A Verifying Compiler 1 A Verifying Compiler for a Multi-threaded Object-Oriented Language K. Rustan M. Leino and Wolfram Schulte Microsoft Research,Redmond, WA, USA e-mail:

### Combining Programming with Theorem Proving

Combining Programming with Theorem Proving Chiyan Chen and Hongwei Xi Boston University Programming with Theorem Proving p.1/27 Motivation for the Research To support advanced type systems for practical

### The Proposition. Roger Bishop Jones. Abstract. A place to play formally with the concept of proposition. Created 2009/11/22

The Proposition Roger Bishop Jones Abstract A place to play formally with the concept of proposition. Created 2009/11/22 Last Change Date: 2010-08-05 12:04:21 http://www.rbjones.com/rbjpub/pp/doc/t033.pdf

### This section is primarily based on Principles of Type Refinement, Noam Zeilberger,

1 Refinement Types This section is primarily based on Principles of Type Refinement, Noam Zeilberger, OPLSS 2016 The concept of refinement types is quite general. So general, in fact, that it is not immediately

### Propositional Calculus: Boolean Algebra and Simplification. CS 270: Mathematical Foundations of Computer Science Jeremy Johnson

Propositional Calculus: Boolean Algebra and Simplification CS 270: Mathematical Foundations of Computer Science Jeremy Johnson Propositional Calculus Topics Motivation: Simplifying Conditional Expressions

### Hagstrom, Chapter 5 A semantics for single questions and indefinites Presented by Yağmur Sağ

Hagstrom, 1998- Chapter 5 A semantics for single questions and indefinites Presented by Yağmur Sağ I. Introduction Aim of the paper To assign a consistent semantic contribution to the -ka morpheme which

### CS Bootcamp Boolean Logic Autumn 2015 A B A B T T T T F F F T F F F F T T T T F T F T T F F F

1 Logical Operations 1.1 And The and operator is a binary operator, denoted as, &,, or sometimes by just concatenating symbols, is true only if both parameters are true. A B A B F T F F F F The expression

### A Survey of Mathematics with Applications 8 th Edition, 2009

A Correlation of A Survey of Mathematics with Applications 8 th Edition, 2009 South Carolina Discrete Mathematics Sample Course Outline including Alternate Topics and Related Objectives INTRODUCTION This

### Workbook Unit 13: Natural Deduction Proofs (IV)

Workbook Unit 13: Natural Deduction Proofs (IV) Overview 1 1. The Biconditional Introduction Rule ( Int) 2 2. The Disjunction Elimination Rule ( Elim) 7 3. Reductio ad absurdum arguments: ~Int and ~Elim

### 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

### Boolean Logic. Lecture Notes. Gert Smolka Saarland University November 22, 2016

Boolean Logic Lecture Notes Gert Smolka Saarland University November 22, 2016 Abstract. We study satisfiability and equivalence of boolean expressions. We show that prime trees (reduced and ordered decision

### Soundness and principality of type inference for structural polymorphism

Soundness and principality of type inference for structural polymorphism TPP 08 2008.11.26 Jacques Garrigue Nagoya University http://www.math.nagoya-u.ac.jp/~garrigue/papers/ Jacques Garrigue Type inference

### Structural Characterizations of Schema-Mapping Languages

Structural Characterizations of Schema-Mapping Languages Balder ten Cate University of Amsterdam and UC Santa Cruz balder.tencate@uva.nl Phokion G. Kolaitis UC Santa Cruz and IBM Almaden kolaitis@cs.ucsc.edu

### 3. Logical Values. Our Goal. Boolean Values in Mathematics. The Type bool in C++

Our Goal 3. Logical Values Boolean Functions; the Type bool; logical and relational operators; shortcut evaluation int a; std::cin >> a; if (a % 2 == 0) std::cout

### Foundations, Reasoning About Algorithms, and Design By Contract CMPSC 122

Foundations, Reasoning About Algorithms, and Design By Contract CMPSC 122 I. Logic 101 In logic, a statement or proposition is a sentence that can either be true or false. A predicate is a sentence in

### Deductive Program Verification with Why3, Past and Future

Deductive Program Verification with Why3, Past and Future Claude Marché ProofInUse Kick-Off Day February 2nd, 2015 A bit of history 1999: Jean-Christophe Filliâtre s PhD Thesis Proof of imperative programs,

### The Untyped Lambda Calculus

Resources: The slides of this lecture were derived from [Järvi], with permission of the original author, by copy & x = 1 let x = 1 in... paste or by selection, annotation, or rewording. [Järvi] is in turn