Implementation of Lambda-Free Higher-Order Superposition. Petar Vukmirović

Size: px
Start display at page:

Download "Implementation of Lambda-Free Higher-Order Superposition. Petar Vukmirović"

Transcription

1 Implementation of Lambda-Free Higher-Order Superposition Petar Vukmirović

2 Automatic theorem proving state of the art FOL HOL 2

3 Automatic theorem proving challenge HOL High-performance higher-order theorem prover that extends first-order theorem proving gracefully. 3

4 My approach FOL prover Add HO feature Optimize Fast HOL prover Test 4

5 Syntax Types: Terms: τ ::= a τ τ t ::= X f tt variable symbol application 5

6 Supported HO features Example: X (f a) f Applied variable Partial application Applied variables + Partial application = Lambda-Free Higher-Order Logic 6

7 LFHOL iteration E LFHOL Optimize hoe Test 7

8 Generalization of term representation Approach 1: Native representation Approach 2: Applicative encoding X (f a)), f) 8

9 Differences between the approaches Approach 1: Native representation Compact Approach 2: Applicative encoding Easy to implement Fast Works well with E heuristics 9

10 Unification problem Given the set of equations { s1 =? t1,, sn =? tn } find the substitution σ such that { σ(s1) = σ(t1),, σ(sn) = σ(tn) } 10

11 FOL unification algorithm Initial set of equations S Remove an equation s =? t S=Ø S is unifiable No failure is reported S Ø Transform S Failure is reported S is not unifiable 11

12 Transformation of the equation set Match s =? t f(s1,, sn) =? f(t1,, tn) f(s1,, sn) =? g(t1,, tm) f(s1,, sn) =? X X =? f(s1,, sn); X not in t X =? f(s1,, sn); X in t X =? X Add { s1 =? t1,, sn =? tn} Report failure Add { t =? s } Apply [X f(s1,, sn)] Report failure No changes decomposition collision reorientation application occurs-check identity 12

13 FOL algorithm fails on LFHOL terms X b =? f a b X f Report failure collision Yet, { X f a } is a unifier. 13

14 Example X2 (Z2 b c) d =? f a (Y1 c) d X fa prefix match Z b c =? Y c, d =? d orientation?? Y Zb Y c = Z b c, d = d c =? c, d =? d prefix match decomposition d =? d decomposition Unifier { X f a, Y Z b } 14

15 LFHOL equation set transformation Match s =? t s1 sn =? t1 tn Add { s1 =? t1,, sn =? tn} β is var, either is not or n > m s1 sn =? β t1 tm X =? f s1 sn; X not in t X =? f s1 sn; X in t X =? X Neither nor β vars is var, matches prefix of t decomposition Add { t =? s } reorientation Report failure collision Add { =? t[:p], s1=? tp+1,, sn=? tm} Apply [X f s1 sn] Report failure No changes prefix match application occurs-check identity 15

16 Standard FOL operations s t unifiable/matchable? 16

17 are performed on subterms recursively, f(t1, t2,, tn) s unifiable/matchable? 17

18 and there are twice as many subterms in HOL prefix subterms s f t1 t2 tn argument subterms unifiable/matchable? 18

19 Prefix optimization Traverse only argument subterms Use types & arity to determine the only unifiable/matchable prefix Report 1 argument trailing fxy fabc 19

20 Advantages of prefix optimization 2x fewer subterms No unnecessary prefixes created No changes to E term traversal 20

21 Indexing data structures Generalizations s =? σ(t) f(x,g(h(y),a)) Instances σ(s) =? t f(a,g( b,a)) Query term ) ) ) x,x f(x,y) ( f, (x h(g f(f(x Unifiable terms σ(s) =? σ(t) c a,x), f x (y,y) ) Set of terms 21

22 E s indexing data structures Discrimination trees Fingerprint indexing Feature vector indexing 22

23 Discrimination trees Factor out operations common for many terms Flatten the term and use it as a key Query term: Flattening: f(x, f(h(x), y)) fxfhxy 23

24 Example Query term: 24

25 Example Query term: 25

26 Example Query term: 26

27 Example Query term: Backtrack to where we can make choice No neighbour can generalize the term 27

28 Example Query term: Backtrack further Mismatch 28

29 Example Query term: 29

30 Example Query term: 30

31 Example Query term: 31

32 Example Query term: 32

33 LFHOL challenges 1. Applied variables 2. Terms prefixes of one another 3. Prefix optimization 33

34 LFHOL challenges Query term: g a b 1. Applied variables Variable can match a prefix 2. Terms prefixes of one another 3. Prefix optimization 34

35 LFHOL challenges Query term: g a b 1. Applied variables Variable can match a prefix 2. Terms prefixes of one another 3. Prefix optimization 35

36 LFHOL challenges Query term: g a b 1. Applied variables Variable can match a prefix 2. Terms prefixes of one another 3. Prefix optimization 36

37 LFHOL challenges 1. Applied variables 2. Terms prefixes of one another Terms can be stored in inner nodes 3. Prefix optimization 37

38 LFHOL challenges Query term: f a b 1. Applied variables 2. Terms prefixes of one another 3. Prefix optimization Prefix matches are allowed 38

39 Experimentation results HOL FOL Two compilation modes: hoe - support for LFHOL foe - support only for FOL 39

40 Gain on LFHOL problems hoe vs. original E E 995 (encoded) LFHOL TPTP problems hoe 40

41 Gain on LFHOL problems Both finished on 872/995 problems hoe: 8 unique, E: 11 unique Mean runtime: hoe E 0.010s 0.013s Total runtime: hoe 17.1s E 113.9s 41

42 Overhead on FOL problems hoe vs. E foe vs. E Minimize the overhead for existing E users Tested on 7789 FOL TPTP problems 42

43 foe vs. E Median runtime: foe E 1.4s 1.3s E Total runtime: foe s E s foe 43

44 hoe vs. E Median runtime: 1.5s hoe E 1.3s E Total runtime: hoe E s s hoe 44

45 Summary Engineering viewpoint New type module Native term representation Elegant algorithm extensions Prefix optimizations Theoretical viewpoint Graceful algorithm extension Graceful data structures extension 45

46 Future work Integration with official E New features First-class LFHOL booleans E Full HOL hoeprover λs Optimize Test 46

47 Implementation of Lambda-Free Higher-Order Superposition Petar Vukmirović

λ calculus is inconsistent

λ 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

More information

MAX-PLANCK-INSTITUT INFORMATIK

MAX-PLANCK-INSTITUT INFORMATIK MAX-PLANCK-INSTITUT FÜR INFMATIK Path Indexing for Term Retrieval Peter Graf MPI I 92 237 December 1992 I N F O R M A T I K Im Stadtwald W 6600 Saarbrücken Germany Author s Address Peter Graf (graf@mpi-sb.mpg.de)

More information

COMP 4161 NICTA Advanced Course. Advanced Topics in Software Verification. Toby Murray, June Andronick, Gerwin Klein

COMP 4161 NICTA Advanced Course. Advanced Topics in Software Verification. Toby Murray, June Andronick, Gerwin Klein COMP 4161 NICTA Advanced Course Advanced Topics in Software Verification Toby Murray, June Andronick, Gerwin Klein λ 1 Last time... λ calculus syntax free variables, substitution β reduction α and η conversion

More information

Lambda Calculus and Type Inference

Lambda Calculus and Type Inference Lambda Calculus and Type Inference Björn Lisper Dept. of Computer Science and Engineering Mälardalen University bjorn.lisper@mdh.se http://www.idt.mdh.se/ blr/ August 17, 2007 Lambda Calculus and Type

More information

If a program is well-typed, then a type can be inferred. For example, consider the program

If a program is well-typed, then a type can be inferred. For example, consider the program CS 6110 S18 Lecture 24 Type Inference and Unification 1 Type Inference Type inference refers to the process of determining the appropriate types for expressions based on how they are used. For example,

More information

9/23/2014. Why study? Lambda calculus. Church Rosser theorem Completeness of Lambda Calculus: Turing Complete

9/23/2014. Why study? Lambda calculus. Church Rosser theorem Completeness of Lambda Calculus: Turing Complete Dr A Sahu Dept of Computer Science & Engineering IIT Guwahati Why study? Lambda calculus Syntax Evaluation Relationship to programming languages Church Rosser theorem Completeness of Lambda Calculus: Turing

More information

Rewriting. Andreas Rümpel Faculty of Computer Science Technische Universität Dresden Dresden, Germany.

Rewriting. Andreas Rümpel Faculty of Computer Science Technische Universität Dresden Dresden, Germany. Rewriting Andreas Rümpel Faculty of Computer Science Technische Universität Dresden Dresden, Germany s9843882@inf.tu-dresden.de ABSTRACT This is an overview paper regarding the common technologies of rewriting.

More information

Progress Report: Term Dags Using Stobjs

Progress Report: Term Dags Using Stobjs Progress Report: Term Dags Using Stobjs J.-L. Ruiz-Reina, J.-A. Alonso, M.-J. Hidalgo and F.-J. Martín-Mateos http://www.cs.us.es/{~jruiz, ~jalonso, ~mjoseh, ~fmartin} Departamento de Ciencias de la Computación

More information

Higher-Order Intensional Type Analysis. Stephanie Weirich Cornell University

Higher-Order Intensional Type Analysis. Stephanie Weirich Cornell University Higher-Order Intensional Type Analysis Stephanie Weirich Cornell University Reflection A style of programming that supports the run-time discovery of program information. What does this code do? How is

More information

The Turing Machine. Unsolvable Problems. Undecidability. The Church-Turing Thesis (1936) Decision Problem. Decision Problems

The Turing Machine. Unsolvable Problems. Undecidability. The Church-Turing Thesis (1936) Decision Problem. Decision Problems The Turing Machine Unsolvable Problems Motivating idea Build a theoretical a human computer Likened to a human with a paper and pencil that can solve problems in an algorithmic way The theoretical machine

More information

CSC173 Lambda Calculus Lambda Calculus Evaluation (10 min) Evaluate this expression (β-reduce with normal-order evaluation):

CSC173 Lambda Calculus Lambda Calculus Evaluation (10 min) Evaluate this expression (β-reduce with normal-order evaluation): CSC173 Lambda Calculus 014 Please write your name on the bluebook. You may use two sides of handwritten notes. There are 90 possible points and 75 is a perfect score. Stay cool and please write neatly.

More information

Unification in Maude. Steven Eker

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

More information

Foundations of AI. 9. Predicate Logic. Syntax and Semantics, Normal Forms, Herbrand Expansion, Resolution

Foundations of AI. 9. Predicate Logic. Syntax and Semantics, Normal Forms, Herbrand Expansion, Resolution Foundations of AI 9. Predicate Logic Syntax and Semantics, Normal Forms, Herbrand Expansion, Resolution Wolfram Burgard, Andreas Karwath, Bernhard Nebel, and Martin Riedmiller 09/1 Contents Motivation

More information

Principles of Programming Languages Lecture 13: Paradigms: Logic Programming.

Principles of Programming Languages Lecture 13: Paradigms: Logic Programming. Principles of Programming Languages Lecture 13: Paradigms: Logic Programming. Andrei Arusoaie 1 1 Department of Computer Science January 16, 2018 Outline Paradigms Outline Paradigms Logic Programming Paradigms

More information

Semantics of programming languages

Semantics of programming languages Semantics of programming languages Informatics 2A: Lecture 27 John Longley School of Informatics University of Edinburgh jrl@inf.ed.ac.uk 21 November, 2011 1 / 19 1 2 3 4 2 / 19 Semantics for programming

More information

Lambda Calculus and Type Inference

Lambda Calculus and Type Inference Lambda Calculus and Type Inference Björn Lisper Dept. of Computer Science and Engineering Mälardalen University bjorn.lisper@mdh.se http://www.idt.mdh.se/ blr/ October 13, 2004 Lambda Calculus and Type

More information

Lost in translation. Leonardo de Moura Microsoft Research. how easy problems become hard due to bad encodings. Vampire Workshop 2015

Lost in translation. Leonardo de Moura Microsoft Research. how easy problems become hard due to bad encodings. Vampire Workshop 2015 Lost in translation how easy problems become hard due to bad encodings Vampire Workshop 2015 Leonardo de Moura Microsoft Research I wanted to give the following talk http://leanprover.github.io/ Automated

More information

COMP 382: Reasoning about algorithms

COMP 382: Reasoning about algorithms Spring 2015 Unit 2: Models of computation What is an algorithm? So far... An inductively defined function Limitation Doesn t capture mutation of data Imperative models of computation Computation = sequence

More information

Date: 16 July 2016, Saturday Time: 14:00-16:00 STUDENT NO:... Math 102 Calculus II Midterm Exam II Solutions TOTAL. Please Read Carefully:

Date: 16 July 2016, Saturday Time: 14:00-16:00 STUDENT NO:... Math 102 Calculus II Midterm Exam II Solutions TOTAL. Please Read Carefully: Date: 16 July 2016, Saturday Time: 14:00-16:00 NAME:... STUDENT NO:... YOUR DEPARTMENT:... Math 102 Calculus II Midterm Exam II Solutions 1 2 3 4 TOTAL 25 25 25 25 100 Please do not write anything inside

More information

Introduction to Co-Induction in Coq

Introduction to Co-Induction in Coq August 2005 Motivation Reason about infinite data-structures, Reason about lazy computation strategies, Reason about infinite processes, abstracting away from dates. Finite state automata, Temporal logic,

More information

The design of a programming language for provably correct programs: success and failure

The design of a programming language for provably correct programs: success and failure The design of a programming language for provably correct programs: success and failure Don Sannella Laboratory for Foundations of Computer Science School of Informatics, University of Edinburgh http://homepages.inf.ed.ac.uk/dts

More information

Lecture #23: Conversion and Type Inference

Lecture #23: Conversion and Type Inference Lecture #23: Conversion and Type Inference Administrivia. Due date for Project #2 moved to midnight tonight. Midterm mean 20, median 21 (my expectation: 17.5). Last modified: Fri Oct 20 10:46:40 2006 CS164:

More information

axiomatic semantics involving logical rules for deriving relations between preconditions and postconditions.

axiomatic semantics involving logical rules for deriving relations between preconditions and postconditions. CS 6110 S18 Lecture 18 Denotational Semantics 1 What is Denotational Semantics? So far we have looked at operational semantics involving rules for state transitions, definitional semantics involving translations

More information

CSCI B522 Lecture 11 Naming and Scope 8 Oct, 2009

CSCI B522 Lecture 11 Naming and Scope 8 Oct, 2009 CSCI B522 Lecture 11 Naming and Scope 8 Oct, 2009 Lecture notes for CS 6110 (Spring 09) taught by Andrew Myers at Cornell; edited by Amal Ahmed, Fall 09. 1 Static vs. dynamic scoping The scope of a variable

More information

Recursion, Structures, and Lists

Recursion, Structures, and Lists Recursion, Structures, and Lists Artificial Intelligence Programming in Prolog Lecturer: Tim Smith Lecture 4 04/10/04 30/09/04 AIPP Lecture 3: Recursion, Structures, and Lists 1 The central ideas of Prolog

More information

Conversion vs. Subtyping. Lecture #23: Conversion and Type Inference. Integer Conversions. Conversions: Implicit vs. Explicit. Object x = "Hello";

Conversion vs. Subtyping. Lecture #23: Conversion and Type Inference. Integer Conversions. Conversions: Implicit vs. Explicit. Object x = Hello; Lecture #23: Conversion and Type Inference Administrivia. Due date for Project #2 moved to midnight tonight. Midterm mean 20, median 21 (my expectation: 17.5). In Java, this is legal: Object x = "Hello";

More information

Principles of Programming Languages

Principles of Programming Languages Principles of Programming Languages Lesson 14 Type Checking Collaboration and Management Dana Fisman www.cs.bgu.ac.il/~ppl172 1 Type Checking We return to the issue of type safety we discussed informally,

More information

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

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

More information

Lecture Notes on Prolog

Lecture Notes on Prolog Lecture Notes on Prolog 15-317: Constructive Logic Frank Pfenning Lecture 15 October 24, 2017 1 Introduction Prolog is the first and still standard backward-chaining logic programming language. While it

More information

Lecture Note: Types. 1 Introduction 2. 2 Simple Types 3. 3 Type Soundness 6. 4 Recursive Types Subtyping 17

Lecture Note: Types. 1 Introduction 2. 2 Simple Types 3. 3 Type Soundness 6. 4 Recursive Types Subtyping 17 Jens Palsberg Sep 24, 1999 Contents Lecture Note: Types 1 Introduction 2 2 Simple Types 3 3 Type Soundness 6 4 Recursive Types 12 5 Subtyping 17 6 Decision Procedure for Subtyping 19 7 First-Order Unification

More information

J. Barkley Rosser, 81, a professor emeritus of mathematics and computer science at the University of Wisconsin who had served in government, died

J. Barkley Rosser, 81, a professor emeritus of mathematics and computer science at the University of Wisconsin who had served in government, died Church-Rosser J. Barkley Rosser, 81, a professor emeritus of mathematics and computer science at the University of Wisconsin who had served in government, died Sept. 5, 1989. Along with Alan Turing and

More information

arxiv: v1 [cs.sc] 2 May 2017

arxiv: v1 [cs.sc] 2 May 2017 arxiv:1705.00907v1 [cs.sc] 2 May 2017 Non-linear Associative-Commutative Many-to-One Pattern Matching with Sequence Variables Manuel Krebber April 24, 2017 RWTH Aachen University Aachen Institute for

More information

Foundations. Yu Zhang. Acknowledgement: modified from Stanford CS242

Foundations. Yu Zhang. Acknowledgement: modified from Stanford CS242 Spring 2013 Foundations Yu Zhang Acknowledgement: modified from Stanford CS242 https://courseware.stanford.edu/pg/courses/317431/ Course web site: http://staff.ustc.edu.cn/~yuzhang/fpl Reading Concepts

More information

System Description: iprover An Instantiation-Based Theorem Prover for First-Order Logic

System Description: iprover An Instantiation-Based Theorem Prover for First-Order Logic System Description: iprover An Instantiation-Based Theorem Prover for First-Order Logic Konstantin Korovin The University of Manchester School of Computer Science korovin@cs.man.ac.uk Abstract. iprover

More information

Introduction to OCaml

Introduction to OCaml Fall 2018 Introduction to OCaml Yu Zhang Course web site: http://staff.ustc.edu.cn/~yuzhang/tpl References Learn X in Y Minutes Ocaml Real World OCaml Cornell CS 3110 Spring 2018 Data Structures and Functional

More information

Equational Reasoning in THEOREMA

Equational Reasoning in THEOREMA Research Institute for Symbolic Computation Johannes Kepler University of Linz, Austria kutsia@risc.uni-linz.ac.at Workshop on Formal Gröbner Bases Theory. March 8, 2006. Linz, Austria Outline 1 2 Equational

More information

Overview. CS389L: Automated Logical Reasoning. Lecture 6: First Order Logic Syntax and Semantics. Constants in First-Order Logic.

Overview. CS389L: Automated Logical Reasoning. Lecture 6: First Order Logic Syntax and Semantics. Constants in First-Order Logic. Overview CS389L: Automated Logical Reasoning Lecture 6: First Order Logic Syntax and Semantics Işıl Dillig So far: Automated reasoning in propositional logic. Propositional logic is simple and easy to

More information

Automated Theorem Proving in a First-Order Logic with First Class Boolean Sort

Automated Theorem Proving in a First-Order Logic with First Class Boolean Sort Thesis for the Degree of Licentiate of Engineering Automated Theorem Proving in a First-Order Logic with First Class Boolean Sort Evgenii Kotelnikov Department of Computer Science and Engineering Chalmers

More information

Principles of Programming Languages

Principles of Programming Languages Principles of Programming Languages Slides by Dana Fisman based on book by Mira Balaban and lecuture notes by Michael Elhadad Lesson 15 Type Inference Collaboration and Management Dana Fisman www.cs.bgu.ac.il/~ppl172

More information

Case-Analysis for Rippling and Inductive Proof

Case-Analysis for Rippling and Inductive Proof Case-Analysis for Rippling and Inductive Proof Moa Johansson 1 Joint work with Lucas Dixon 2 and Alan Bundy 2 Dipartimento di Informatica, Università degli Studi di Verona, Italy. 1 School of Informatics,

More information

Implementação de Linguagens 2016/2017

Implementação de Linguagens 2016/2017 Implementação de Linguagens Ricardo Rocha DCC-FCUP, Universidade do Porto ricroc @ dcc.fc.up.pt Ricardo Rocha DCC-FCUP 1 Logic Programming Logic programming languages, together with functional programming

More information

First Class Rules and Generic Traversals for Program Transformation Languages

First Class Rules and Generic Traversals for Program Transformation Languages First Class Rules and Generic Traversals for Program Transformation Languages Eelco Dolstra edolstra@students.cs.uu.nl August 10, 2001 August 10, 2001 Introduction Goal: languages for writing program transformations

More information

Chapter 1. Fundamentals of Higher Order Programming

Chapter 1. Fundamentals of Higher Order Programming Chapter 1 Fundamentals of Higher Order Programming 1 The Elements of Programming Any powerful language features: so does Scheme primitive data procedures combinations abstraction We will see that Scheme

More information

Infinite Derivations as Failures

Infinite Derivations as Failures Infinite Derivations as Failures Andrea Corradi and Federico Frassetto DIBRIS, Università di Genova, Italy name.surname@dibris.unige.it Abstract. When operating on cyclic data, programmers have to take

More information

Overview. A Compact Introduction to Isabelle/HOL. Tobias Nipkow. System Architecture. Overview of Isabelle/HOL

Overview. A Compact Introduction to Isabelle/HOL. Tobias Nipkow. System Architecture. Overview of Isabelle/HOL Overview A Compact Introduction to Isabelle/HOL Tobias Nipkow TU München 1. Introduction 2. Datatypes 3. Logic 4. Sets p.1 p.2 System Architecture Overview of Isabelle/HOL ProofGeneral Isabelle/HOL Isabelle

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

Integration of SMT Solvers with ITPs There and Back Again

Integration of SMT Solvers with ITPs There and Back Again Integration of SMT Solvers with ITPs There and Back Again Sascha Böhme and University of Sheffield 7 May 2010 1 2 Features: SMT-LIB vs. Yices Translation Techniques Caveats 3 4 Motivation Motivation System

More information

Introduction to Functional Programming in Haskell 1 / 56

Introduction to Functional Programming in Haskell 1 / 56 Introduction to Functional Programming in Haskell 1 / 56 Outline Why learn functional programming? The essence of functional programming What is a function? Equational reasoning First-order vs. higher-order

More information

Urmas Tamm Tartu 2013

Urmas Tamm Tartu 2013 The implementation and optimization of functional languages Urmas Tamm Tartu 2013 Intro The implementation of functional programming languages, Simon L. Peyton Jones, 1987 Miranda fully lazy strict a predecessor

More information

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Exam in INF3110, December 12, 2013 Page 1 UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Exam in: INF3110 Programming Languages Day of exam: December 12, 2013 Exam hours: 14:30 18:30

More information

Specification and Verification in Higher Order Logic

Specification and Verification in Higher Order Logic Specification and Verification in Higher Order Logic Prof. Dr. K. Madlener 13. April 2011 Prof. Dr. K. Madlener: Specification and Verification in Higher Order Logic 1 Chapter 1 Functional Programming:

More information

Famous Equations. Rewrite Systems. Subject. Beautiful Results. Today. Tentative Course Outline. a 2 +b 2 = c 2 F = ma e iπ +1 = 0.

Famous Equations. Rewrite Systems. Subject. Beautiful Results. Today. Tentative Course Outline. a 2 +b 2 = c 2 F = ma e iπ +1 = 0. Famous Equations Rewrite Systems Autumn 2004 a 2 +b 2 = c 2 F = ma e iπ +1 = 0 xe = - B/ t E = mc 2 Rewrite Systems #1 2 Subject Equations Reasoning with equations solving equations proving identities

More information

Abstraction Elimination for Kappa Calculus

Abstraction Elimination for Kappa Calculus Abstraction Elimination for Kappa Calculus Adam Megacz megacz@cs.berkeley.edu 9.Nov.2011 1 Outline Overview: the problem and solution in broad strokes Detail: kappa calculus and abstraction elimination

More information

Embedding logics in Dedukti

Embedding logics in Dedukti 1 INRIA, 2 Ecole Polytechnique, 3 ENSIIE/Cedric Embedding logics in Dedukti Ali Assaf 12, Guillaume Burel 3 April 12, 2013 Ali Assaf, Guillaume Burel: Embedding logics in Dedukti, 1 Outline Introduction

More information

wolfram-mathematica #wolframmathematic

wolfram-mathematica #wolframmathematic wolfram-mathematica #wolframmathematic a Table of Contents About 1 Chapter 1: Getting started with wolfram-mathematica 2 Remarks 2 Examples 2 What is (Wolfram) Mathematica? 2 Chapter 2: Evaluation Order

More information

Functional Logic Programming. Kristjan Vedel

Functional Logic Programming. Kristjan Vedel Functional Logic Programming Kristjan Vedel Imperative vs Declarative Algorithm = Logic + Control Imperative How? Explicit Control Sequences of commands for the computer to execute Declarative What? Implicit

More information

CSE-321 Programming Languages 2012 Midterm

CSE-321 Programming Languages 2012 Midterm Name: Hemos ID: CSE-321 Programming Languages 2012 Midterm Prob 1 Prob 2 Prob 3 Prob 4 Prob 5 Prob 6 Total Score Max 14 15 29 20 7 15 100 There are six problems on 24 pages in this exam. The maximum score

More information

Inductive Programming

Inductive Programming Inductive Programming A Unifying Framework for Analysis and Evaluation of Inductive Programming Systems Hofmann, Kitzelmann, Schmid Cognitive Systems Group University of Bamberg AGI 2009 CogSys Group (Univ.

More information

Functional Programming

Functional Programming Functional Programming COMS W4115 Prof. Stephen A. Edwards Spring 2003 Columbia University Department of Computer Science Original version by Prof. Simon Parsons Functional vs. Imperative Imperative programming

More information

Graphical Untyped Lambda Calculus Interactive Interpreter

Graphical Untyped Lambda Calculus Interactive Interpreter Graphical Untyped Lambda Calculus Interactive Interpreter (GULCII) Claude Heiland-Allen https://mathr.co.uk mailto:claude@mathr.co.uk Edinburgh, 2017 Outline Lambda calculus encodings How to perform lambda

More information

Principles of Programming Languages, Spring 2016 Assignment 5 Logic Programming

Principles of Programming Languages, Spring 2016 Assignment 5 Logic Programming Principles of Programming Languages, Spring 2016 Assignment 5 Logic Programming Submission instructions: a. Submit an archive file named id1_id2.zip where id1 and id2 are the IDs of the students responsible

More information

An Implementation of the Language Lambda Prolog Organized around Higher-Order Pattern Unification

An Implementation of the Language Lambda Prolog Organized around Higher-Order Pattern Unification An Implementation of the Language Lambda Prolog Organized around Higher-Order Pattern Unification SUBMITTED TO THE FACULTY OF THE GRADUATE SCHOOL OF THE UNIVERSITY OF MINNESOTA BY Xiaochu Qi IN PARTIAL

More information

Types and Type Inference

Types and Type Inference Types and Type Inference Mooly Sagiv Slides by Kathleen Fisher and John Mitchell Reading: Concepts in Programming Languages, Revised Chapter 6 - handout on the course homepage Outline General discussion

More information

Self-applicable Partial Evaluation for Pure Lambda Calculus

Self-applicable Partial Evaluation for Pure Lambda Calculus Self-applicable Partial Evaluation for Pure Lambda Calculus Torben Æ. Mogensen DIKU, University of Copenhagen, Denmark Abstract Partial evaluation of an applied lambda calculus was done some years ago

More information

Shared Variables and Interference

Shared Variables and Interference Solved Shared Variables and Interference CS 536: Science of Programming, Fall 2018 A. Why Parallel programs can coordinate their work using shared variables, but it s important for threads to not interfere

More information

An introduction to C++ template programming

An introduction to C++ template programming An introduction to C++ template programming Hayo Thielecke University of Birmingham http://www.cs.bham.ac.uk/~hxt March 2015 Templates and parametric polymorphism Template parameters Member functions of

More information

Analysis of Basic Data Reordering Techniques

Analysis of Basic Data Reordering Techniques Analysis of Basic Data Reordering Techniques Tan Apaydin 1, Ali Şaman Tosun 2, and Hakan Ferhatosmanoglu 1 1 The Ohio State University, Computer Science and Engineering apaydin,hakan@cse.ohio-state.edu

More information

ELAN. A rule-based programming language. Hélène Kirchner and Pierre-Etienne Moreau LORIA CNRS INRIA Nancy, France

ELAN. A rule-based programming language. Hélène Kirchner and Pierre-Etienne Moreau LORIA CNRS INRIA Nancy, France ELAN A rule-based programming language Hélène Kirchner and Pierre-Etienne Moreau LORIA CNRS INRIA Nancy, France Introduction Overview General presentation ELAN: simple part (computation) ELAN: advanced

More information

arxiv:cs/ v1 [cs.lo] 9 Mar 2004

arxiv:cs/ v1 [cs.lo] 9 Mar 2004 In Theory and Practice of Logic Programming, 4(1), pp. 1 39, 2004 1 arxiv:cs/0403010v1 [cs.lo] 9 Mar 2004 Polymorphic Lemmas and Definitions in λprolog and Twelf ANDREW W. APPEL Department of Computer

More information

Types and Type Inference

Types and Type Inference CS 242 2012 Types and Type Inference Notes modified from John Mitchell and Kathleen Fisher Reading: Concepts in Programming Languages, Revised Chapter 6 - handout on Web!! Outline General discussion of

More information

LEO-II - A Cooperative Automatic Theorem Prover for Classical Higher-Order Logic (System Description)

LEO-II - A Cooperative Automatic Theorem Prover for Classical Higher-Order Logic (System Description) LEO-II - A Cooperative Automatic Theorem Prover for Classical Higher-Order Logic (System Description) Christoph Benzmüller, Lawrence C. Paulson, Frank Theiss, and Arnaud Fietzke 3 Dep. of Computer Science,

More information

First Order Logic in Practice 1 First Order Logic in Practice John Harrison University of Cambridge Background: int

First Order Logic in Practice 1 First Order Logic in Practice John Harrison University of Cambridge   Background: int First Order Logic in Practice 1 First Order Logic in Practice John Harrison University of Cambridge http://www.cl.cam.ac.uk/users/jrh/ Background: interaction and automation Why do we need rst order automation?

More information

Scheme. Functional Programming. Lambda Calculus. CSC 4101: Programming Languages 1. Textbook, Sections , 13.7

Scheme. Functional Programming. Lambda Calculus. CSC 4101: Programming Languages 1. Textbook, Sections , 13.7 Scheme Textbook, Sections 13.1 13.3, 13.7 1 Functional Programming Based on mathematical functions Take argument, return value Only function call, no assignment Functions are first-class values E.g., functions

More information

עקרונות שפות תכנות, סמסטר ב' 2016 תרגול 7: הסקת טיפוסים סטטית. Axiomatic Type Inference

עקרונות שפות תכנות, סמסטר ב' 2016 תרגול 7: הסקת טיפוסים סטטית. Axiomatic Type Inference עקרונות שפות תכנות, סמסטר ב' 2016 תרגול 7: הסקת טיפוסים סטטית 1. Axiomatic type inference 2. Type inference using type constraints נושאי התרגול: Axiomatic Type Inference Definition (seen in class): A Type-substitution

More information

Types, Type Inference and Unification

Types, Type Inference and Unification Types, Type Inference and Unification Mooly Sagiv Slides by Kathleen Fisher and John Mitchell Cornell CS 6110 Summary (Functional Programming) Lambda Calculus Basic ML Advanced ML: Modules, References,

More information

Introduction to Type Theory August 2007 Types Summer School Bertinoro, It. Herman Geuvers Nijmegen NL

Introduction to Type Theory August 2007 Types Summer School Bertinoro, It. Herman Geuvers Nijmegen NL Introduction to Type Theory August 2007 Types Summer School Bertinoro, It Herman Geuvers Nijmegen NL Lecture 2: Dependent Type Theory, Logical Framework 1 For λ : Direct representation (shallow embedding)

More information

Brief Introduction to Prolog

Brief Introduction to Prolog CSC384: Intro to Artificial Intelligence Brief Introduction to Prolog Prolog Programming for Artificial Intelligence by Ivan Bratko. Prolog is a language that is useful for doing symbolic and logic based

More information

AND-OR GRAPHS APPLIED TO RUE RESOLUTION

AND-OR GRAPHS APPLIED TO RUE RESOLUTION AND-OR GRAPHS APPLIED TO RUE RESOLUTION Vincent J. Digricoli Dept. of Computer Science Fordham University Bronx, New York 104-58 James J, Lu, V. S. Subrahmanian Dept. of Computer Science Syracuse University-

More information

Functional Logic Overloading

Functional Logic Overloading Functional Logic Overloading Matthias Neubauer Peter Thiemann Universität Freiburg {neubauer,thiemann}@informatik.uni-freiburg.de Martin Gasbichler Michael Sperber Universität Tübingen {gasbichl,sperber}@informatik.uni-tuebingen.de

More information

Functional Programming. Overview. Topics. Recall λ-terms. Examples

Functional Programming. Overview. Topics. Recall λ-terms. Examples Topics Functional Programming Christian Sternagel Harald Zankl Evgeny Zuenko Department of Computer Science University of Innsbruck WS 2017/2018 abstract data types, algebraic data types, binary search

More information

Continuation Passing Style. Continuation Passing Style

Continuation Passing Style. Continuation Passing Style 161 162 Agenda functional programming recap problem: regular expression matcher continuation passing style (CPS) movie regular expression matcher based on CPS correctness proof, verification change of

More information

A CSP Search Algorithm with Reduced Branching Factor

A CSP Search Algorithm with Reduced Branching Factor A CSP Search Algorithm with Reduced Branching Factor Igor Razgon and Amnon Meisels Department of Computer Science, Ben-Gurion University of the Negev, Beer-Sheva, 84-105, Israel {irazgon,am}@cs.bgu.ac.il

More information

Turing Machine Languages

Turing Machine Languages Turing Machine Languages Based on Chapters 23-24-25 of (Cohen 1997) Introduction A language L over alphabet is called recursively enumerable (r.e.) if there is a Turing Machine T that accepts every word

More information

Type Inference Systems. Type Judgments. Deriving a Type Judgment. Deriving a Judgment. Hypothetical Type Judgments CS412/CS413

Type Inference Systems. Type Judgments. Deriving a Type Judgment. Deriving a Judgment. Hypothetical Type Judgments CS412/CS413 Type Inference Systems CS412/CS413 Introduction to Compilers Tim Teitelbaum Type inference systems define types for all legal programs in a language Type inference systems are to type-checking: As regular

More information

1. true / false By a compiler we mean a program that translates to code that will run natively on some machine.

1. true / false By a compiler we mean a program that translates to code that will run natively on some machine. 1. true / false By a compiler we mean a program that translates to code that will run natively on some machine. 2. true / false ML can be compiled. 3. true / false FORTRAN can reasonably be considered

More information

Hw 4 Due Feb 22. D(fg) x y z (

Hw 4 Due Feb 22. D(fg) x y z ( Hw 4 Due Feb 22 2.2 Exercise 7,8,10,12,15,18,28,35,36,46 2.3 Exercise 3,11,39,40,47(b) 2.4 Exercise 6,7 Use both the direct method and product rule to calculate where f(x, y, z) = 3x, g(x, y, z) = ( 1

More information

Typed Lambda Calculus for Syntacticians

Typed Lambda Calculus for Syntacticians Department of Linguistics Ohio State University January 12, 2012 The Two Sides of Typed Lambda Calculus A typed lambda calculus (TLC) can be viewed in two complementary ways: model-theoretically, as a

More information

Storage and Retrieval of First Order Logic Terms in a Database

Storage and Retrieval of First Order Logic Terms in a Database Storage and Retrieval of First Order Logic Terms in a Database Peter Gurský Department of Computer Science, Faculty of Science P.J.Šafárik University Košice Jesenná 9, 040 01, Košice gursky@vk.science.upjs.sk

More information

HOL DEFINING HIGHER ORDER LOGIC LAST TIME ON HOL CONTENT. Slide 3. Slide 1. Slide 4. Slide 2 WHAT IS HIGHER ORDER LOGIC? 2 LAST TIME ON HOL 1

HOL DEFINING HIGHER ORDER LOGIC LAST TIME ON HOL CONTENT. Slide 3. Slide 1. Slide 4. Slide 2 WHAT IS HIGHER ORDER LOGIC? 2 LAST TIME ON HOL 1 LAST TIME ON HOL Proof rules for propositional and predicate logic Safe and unsafe rules NICTA Advanced Course Forward Proof Slide 1 Theorem Proving Principles, Techniques, Applications Slide 3 The Epsilon

More information

Programming Languages Prolog Programming Project Due Wednesday, December 5 th, 2001

Programming Languages Prolog Programming Project Due Wednesday, December 5 th, 2001 Programming Languages Prolog Programming Project Due Wednesday, December 5 th, 2001 How Prolog Works Although Prolog is a very powerful and expressive programming environment, it is surprisingly easy to

More information

Unification Algorithms

Unification Algorithms King s College London December 2007 Motivations Unification algorithms have become popular in recent years, due to their key role in the fields of logic programming and theorem proving. Logic Programming

More information

Formal Systems and their Applications

Formal Systems and their Applications Formal Systems and their Applications Dave Clarke (Dave.Clarke@cs.kuleuven.be) Acknowledgment: these slides are based in part on slides from Benjamin Pierce and Frank Piessens 1 Course Overview Introduction

More information

Finding parallel functional pearls: Automatic parallel recursion scheme detection in Haskell functions via anti-unification

Finding parallel functional pearls: Automatic parallel recursion scheme detection in Haskell functions via anti-unification Accepted Manuscript Finding parallel functional pearls: Automatic parallel recursion scheme detection in Haskell functions via anti-unification Adam D. Barwell, Christopher Brown, Kevin Hammond PII: S0167-739X(17)31520-0

More information

A CONSTRUCTIVE SEMANTICS FOR REWRITING LOGIC MICHAEL N. KAPLAN

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

More information

Merge Sort Roberto Hibbler Dept. of Computer Science Florida Institute of Technology Melbourne, FL

Merge Sort Roberto Hibbler Dept. of Computer Science Florida Institute of Technology Melbourne, FL Merge Sort Roberto Hibbler Dept. of Computer Science Florida Institute of Technology Melbourne, FL 32901 rhibbler@cs.fit.edu ABSTRACT Given an array of elements, we want to arrange those elements into

More information

Software Paradigms (Lesson 4) Functional Programming Paradigm

Software Paradigms (Lesson 4) Functional Programming Paradigm Software Paradigms (Lesson 4) Functional Programming Paradigm Table of Contents 1 Introduction... 2 2 Evaluation of Functions... 3 3 Compositional (Construct) Operators... 4 4 Some Implementation Issues...

More information

of our toolkit of data structures and algorithms for automated deduction in rst-order

of our toolkit of data structures and algorithms for automated deduction in rst-order The Barcelona Prover ROBERT NIEUWENHUIS, JOSE MIGUEL RIVERO and MIGUEL ANGEL VALLEJO Technical University of Catalonia Barcelona, Spain roberto@lsi.upc.es Abstract. Here we describe the equational theorem

More information

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

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

More information

SAT and Termination. Nao Hirokawa. Japan Advanced Institute of Science and Technology. SAT and Termination 1/41

SAT and Termination. Nao Hirokawa. Japan Advanced Institute of Science and Technology. SAT and Termination 1/41 SAT and Termination Nao Hirokawa Japan Advanced Institute of Science and Technology SAT and Termination 1/41 given 9 9-grid like Sudoku Puzzle 1 8 7 3 2 7 7 1 6 4 3 4 5 3 2 8 6 fill out numbers from 1

More information

Prolog-2 nd Lecture. Prolog Predicate - Box Model

Prolog-2 nd Lecture. Prolog Predicate - Box Model Prolog-2 nd Lecture Tracing in Prolog Procedural interpretation of execution Box model of Prolog predicate rule How to follow a Prolog trace? Trees in Prolog use nested terms Unification Informally Formal

More information