Equational Reasoning with Applicative Functors. Institute of Information Security

Size: px
Start display at page:

Download "Equational Reasoning with Applicative Functors. Institute of Information Security"

Transcription

1 Equational Reasoning with Applicative Functors Andreas Lochbihler Joshua Schneider Institute of Information Security

2 Equational Reasoning with Applicative Functors Andreas Lochbihler Joshua Schneider Institute of Information Security model effects state probabilities error non-determinism streams

3 Equational Reasoning with Applicative Functors Andreas Lochbihler Joshua Schneider Institute of Information Security f (g ) h (k ) k g h f model effects state probabilities error non-determinism streams

4 Equational Reasoning with Applicative Functors Andreas Lochbihler Joshua Schneider Institute of Information Security pure f (g ) pure h (k ) k g h f model effects state probabilities error non-determinism streams

5 Equational Reasoning with Applicative Functors Andreas Lochbihler Joshua Schneider Institute of Information Security pure f (g ) pure h (k ) g k f h don t care model effects state probabilities error non-determinism streams

6 Contributions Isabelle/HOL package for reasoning about applicative effects x functor registration x proof tactic classify effects Meta theory formalised and algorithms verified Used in several examples and case studies A. Lochbihler (ETH Zurich) ITP / 35

7 Task: Label a binary tree with distinct numbers! c b q a d datatype α tree L α N (α tree) (α tree) Example suggested by G. Hutton, D. Fulger: Reasoning about effects: seeing the wood through the trees. TFP 2008 A. Lochbihler (ETH Zurich) ITP / 35

8 Task: Label a binary tree with distinct numbers! c b q a d datatype α tree L α N (α tree) (α tree) :: α tree nat tree Example suggested by G. Hutton, D. Fulger: Reasoning about effects: seeing the wood through the trees. TFP 2008 A. Lochbihler (ETH Zurich) ITP / 35

9 Task: Label a binary tree with distinct numbers! c b q a d datatype α tree L α N (α tree) (α tree) state :: α tree nat tree state where α state nat α nat monadic α M α state return :: α α M ( >) :: α M (α β M) β M (L ) fresh > λx. return (L x ) (N l r) l > λl. r > λr. return (N l r ) Example suggested by G. Hutton, D. Fulger: Reasoning about effects: seeing the wood through the trees. TFP 2008 A. Lochbihler (ETH Zurich) ITP / 35

10 Task: Label a binary tree with distinct numbers! c b q a d datatype α tree L α N (α tree) (α tree) state :: α tree nat tree state where α state nat α nat monadic α M α state applicative α F α state return :: α α M pure :: α α F ( >) :: α M (α β M) β M ( ) :: (α β) F α F β F (L ) fresh > λx. return (L x ) (N l r) l > λl. r > λr. return (N l r ) (L ) pure L fresh (N l r) pure N l r Example suggested by G. Hutton, D. Fulger: Reasoning about effects: seeing the wood through the trees. TFP 2008 A. Lochbihler (ETH Zurich) ITP / 35

11 Labelling trees and lists c a q leaves :: α tree α list leaves (L x) x [ ] leaves (N l r) leaves l ++ leaves r leaves pure leaves [c, a, q] [0, 1, 2] :: α list nat list state [ ] pure [ ] ( xs) pure ( ) fresh xs A. Lochbihler (ETH Zurich) ITP / 35

12 Labelling trees and lists c a q leaves :: α tree α list leaves (L x) x [ ] leaves (N l r) leaves l ++ leaves r leaves pure leaves [c, a, q] [0, 1, 2] :: α list nat list state [ ] pure [ ] ( xs) pure ( ) fresh xs Lemma: pure leaves t (leaves t) Proof by induction on t. Case L x: pure leaves (L x) (leaves (L x))

13 Labelling trees and lists c a q leaves :: α tree α list leaves (L x) x [ ] leaves (N l r) leaves l ++ leaves r leaves pure leaves [c, a, q] [0, 1, 2] :: α list nat list state [ ] pure [ ] ( xs) pure ( ) fresh xs Lemma: pure leaves t (leaves t) Proof by induction on t. Case L x: pure leaves (L x) (leaves (L x)) pure leaves (pure L fresh) pure ( ) fresh pure [ ] x. leaves ( L x ) ( ) x [ ] A. Lochbihler (ETH Zurich) ITP / 35

14 Labelling trees and lists c a q leaves :: α tree α list leaves (L x) x [ ] leaves (N l r) leaves l ++ leaves r leaves pure leaves [c, a, q] [0, 1, 2] :: α list nat list state [ ] pure [ ] ( xs) pure ( ) fresh xs Lemma: pure leaves t (leaves t) Proof by induction on t. Case L x: pure leaves (L x) (leaves (L x)) pure leaves (pure L fresh) pure ( ) fresh pure [ ] holds by the applicative laws x. leaves ( L x ) ( ) x [ ] A. Lochbihler (ETH Zurich) ITP / 35

15 Labelling trees and lists c a q leaves :: α tree α list leaves (L x) x [ ] leaves (N l r) leaves l ++ leaves r leaves pure leaves [c, a, q] [0, 1, 2] :: α list nat list state [ ] pure [ ] ( xs) pure ( ) fresh xs Lemma: pure leaves t (leaves t) Proof by induction on t. Case L x: pure leaves (L x) (leaves (L x)) pure leaves (pure L fresh) pure ( ) fresh pure [ ] holds by the applicative laws x. leaves ( L x ) ( ) x [ ] apply applicative lifting A. Lochbihler (ETH Zurich) ITP / 35

16 Lifting equations over applicative functors [Hinze 2010] pure leaves (pure L fresh) pure ( ) fresh pure [ ] x. leaves (L x) x [ ] A. Lochbihler (ETH Zurich) ITP / 35

17 Lifting equations over applicative functors [Hinze 2010] pure leaves (pure L fresh) pure ( ) fresh pure [ ] λ β Isabelle kernel α ML syntactic formalisation λ β Isabelle HOL α follows x. leaves (L x) x [ ] A. Lochbihler (ETH Zurich) ITP / 35

18 Lifting equations over applicative functors [Hinze 2010] pure leaves (pure L fresh) pure ( ) fresh pure [ ] 1. Convert to canonical form pure (λx. leaves (L x)) fresh pure (λx. x [ ]) fresh x. leaves (L x) x [ ] A. Lochbihler (ETH Zurich) ITP / 35

19 Lifting equations over applicative functors Canonical form applicative expression pure f x 1 x 2... x n [Hinze 2010] [McBride, Paterson] pure leaves (pure L fresh) pure ( ) fresh pure [ ] 1. Convert to canonical form pure (λx. leaves (L x)) fresh pure (λx. x [ ]) fresh x. leaves (L x) x [ ] A. Lochbihler (ETH Zurich) ITP / 35

20 Lifting equations over applicative functors pure function opaque arguments Canonical form applicative expression pure f x 1 x 2... x n [Hinze 2010] [McBride, Paterson] pure leaves (pure L fresh) pure ( ) fresh pure [ ] 1. Convert to canonical form pure (λx. leaves (L x)) fresh pure (λx. x [ ]) fresh x. leaves (L x) x [ ] A. Lochbihler (ETH Zurich) ITP / 35

21 Lifting equations over applicative functors pure function opaque arguments Canonical form applicative expression pure f x 1 x 2... x n [Hinze 2010] [McBride, Paterson] pure leaves (pure L fresh) pure ( ) fresh pure [ ] 1. Convert to canonical form pure (λx. leaves (L x)) fresh 2. Generalise opaque arguments X. pure (λx. leaves (L x)) X pure (λx. x [ ]) fresh pure (λx. x [ ]) X x. leaves (L x) x [ ] A. Lochbihler (ETH Zurich) ITP / 35

22 Lifting equations over applicative functors pure function opaque arguments Canonical form applicative expression pure f x 1 x 2... x n [Hinze 2010] [McBride, Paterson] pure leaves (pure L fresh) pure ( ) fresh pure [ ] 1. Convert to canonical form pure (λx. leaves (L x)) fresh 2. Generalise opaque arguments X. pure (λx. leaves (L x)) X 3. Equality is a congruence X. pure (λx. leaves (L x)) X pure (λx. x [ ]) fresh pure (λx. x [ ]) X pure (λx. x [ ]) X x. leaves (L x) x [ ] A. Lochbihler (ETH Zurich) ITP / 35

23 Lifting equations over applicative functors pure function opaque arguments Canonical form applicative expression pure f x 1 x 2... x n [Hinze 2010] [McBride, Paterson] pure leaves (pure L fresh) pure ( ) fresh pure [ ] pure (λx. leaves (L x)) fresh 2. Generalise opaque arguments X. pure (λx. leaves (L x)) X 3. Equality is a congruence X. pure (λx. leaves (L x)) X 4. Use extensionality 1. Convert to canonical form pure (λx. x [ ]) fresh pure (λx. x [ ]) X pure (λx. x [ ]) X x. leaves (L x) x [ ] A. Lochbihler (ETH Zurich) ITP / 35

24 Lifting equations over applicative functors pure function opaque arguments Canonical form applicative expression pure f x 1 x 2... x n [Hinze 2010] [McBride, Paterson] pure leaves (pure L fresh) pure ( ) fresh pure [ ] pure (λx. leaves (L x)) fresh 2. Generalise opaque arguments X. pure (λx. leaves (L x)) X 3. Equality is a congruence X. pure (λx. leaves (L x)) X 4. Use extensionality 1. Convert to canonical form pure (λx. x [ ]) fresh pure (λx. x [ ]) X pure (λx. x [ ]) X x. leaves (L x) x [ ] Same opaque args. on both sides! A. Lochbihler (ETH Zurich) ITP / 35

25 Tree mirroring c a q mirror :: α tree α tree mirror (L x) L x mirror (N l r) N (mirror r) (mirror l) mirror? pure mirror q a c :: α tree nat tree state (L ) pure L fresh (N l r) pure N l r Lemma: Proof by induction on t. Case N l r: (mirror t) pure mirror t? pure (λr l. N (mirror r ) (mirror l )) r l pure (λl r. mirror (N l r )) l r A. Lochbihler (ETH Zurich) ITP / 35

26 Tree mirroring c a q mirror :: α tree α tree mirror (L x) L x mirror (N l r) N (mirror r) (mirror l) mirror pure mirror q a c :: α tree nat tree state (L ) pure L fresh (N l r) pure N l r Lemma: Proof by induction on t. Case N l r: (mirror t) pure mirror t? pure (λr l. N (mirror r ) (mirror l )) r l pure (λl r. mirror (N l r )) l r A. Lochbihler (ETH Zurich) ITP / 35

27 Tree mirroring and random labels c a q mirror :: α tree α tree mirror (L x) L x mirror (N l r) N (mirror r) (mirror l) mirror pure mirror q a c :: α tree nat tree probability (L ) pure L fresh (N l r) pure N l r Lemma: (mirror t) pure mirror t if effects commute Proof by induction on t. Case N l r: pure (λr l. N (mirror r ) (mirror l )) r l pure (λl r. mirror (N l r )) l r A. Lochbihler (ETH Zurich) ITP / 35

28 Tree mirroring and random labels c a q mirror :: α tree α tree mirror (L x) L x mirror (N l r) N (mirror r) (mirror l) mirror pure mirror q a c Criterion for commutative effects: :: α tree nat tree probability pure (λf (L x y. ) f y x) pure f L x fresh y f y x (N Cl r) puref N x y l f r y x Lemma: (mirror t) pure mirror t if effects commute Proof by induction on t. Case N l r: pure (λr l. N (mirror r ) (mirror l )) r l pure (λl r. mirror (N l r )) l r A. Lochbihler (ETH Zurich) ITP / 35

29 Subtrees c a q mirror pure mirror q a c Lemma: (right t) pure right t Proof by case analysis on t. right pure right Case N l r: pure (λr. r ) r? pure (λ r. r ) l r a c A. Lochbihler (ETH Zurich) ITP / 35

30 Subtrees c a q Criterion for omissible effects: pure (λx y. x) x y x mirror pure mirror K x y x q a c Lemma: if effects are omissible (right t) pure right t Proof by case analysis on t. right pure right Case N l r: pure (λr. r ) r pure (λ r. r ) l r a c A. Lochbihler (ETH Zurich) ITP / 35

31 Combinatorial basis BCKW B K omissible W idempotent commutative Declarative characterisation of liftable equations Modular implementation via bracket abstraction C A. Lochbihler (ETH Zurich) ITP / 35

32 Combinatorial basis BCKW B K omissible state exception probability reader W idempotent commutative C Declarative characterisation of liftable equations Modular implementation via bracket abstraction User declares and proves combinator properties at registration A. Lochbihler (ETH Zurich) ITP / 35

33 Combinatorial basis BCKW B ordered non-determinism K omissible nondeterminism probability non-standard numbers reader stream zip list state exception idempotent monoid monoid W idempotent parser non-determinism with failure subprobability commutative commutative monoid C maybe list Declarative characterisation of liftable equations Modular implementation via bracket abstraction User declares and proves combinator properties at registration A. Lochbihler (ETH Zurich) ITP / 35

34 Summary Lifting.shtml x B K functor registration x proof tactic C W classify effects guides formalisation of the meta theory A. Lochbihler (ETH Zurich) ITP / 35

35 Summary Lifting.shtml x B K W x C functor registration proof tactic classify effects monads? generate? guides beyond equality? formalisation of the meta theory A. Lochbihler (ETH Zurich) ITP / 35

Towards abstract and executable multivariate polynomials in Isabelle

Towards abstract and executable multivariate polynomials in Isabelle Towards abstract and executable multivariate polynomials in Isabelle Florian Haftmann Andreas Lochbihler Wolfgang Schreiner Institute for Informatics Institute of Information Security RISC TU Munich ETH

More information

The Lifting Lemma. Ralf Hinze

The Lifting Lemma. Ralf Hinze The Lifting Lemma Ralf Hinze Computing Laboratory, University of Oxford Wolfson Building, Parks Road, Oxford, OX1 3QD, England ralf.hinze@comlab.ox.ac.uk http://www.comlab.ox.ac.uk/ralf.hinze/ June 2009

More information

Understanding Idiomatic Traversals Backwards and Forwards

Understanding Idiomatic Traversals Backwards and Forwards Understanding Idiomatic Traversals Backwards and Forwards Richard Bird Jeremy Gibbons Department of Computer Science, University of Oxford, Wolfson Building, Parks Rd, Oxford OX1 3QD, UK {bird,jg}@cs.ox.ac.uk

More information

Universal Algebra for Termination of Higher-Order Rewriting. Makoto Hamana

Universal Algebra for Termination of Higher-Order Rewriting. Makoto Hamana Universal Algebra for Termination of Higher-Order Rewriting Makoto Hamana Department of Computer Science, Gunma University, Japan RTA 05 2005, April 1 Intro: First-Order Term Rewriting System (TRS) Terms

More information

Inductive Theorem Proving

Inductive Theorem Proving Introduction Inductive Proofs Automation Conclusion Automated Reasoning P.Papapanagiotou@sms.ed.ac.uk 11 October 2012 Introduction Inductive Proofs Automation Conclusion General Induction Theorem Proving

More information

Automated Reasoning Lecture 17: Inductive Proof (in Isabelle)

Automated Reasoning Lecture 17: Inductive Proof (in Isabelle) Automated Reasoning Lecture 17: Inductive Proof (in Isabelle) Jacques Fleuriot jdf@inf.ed.ac.uk Recap Previously: Unification and Rewriting This time: Proof by Induction (in Isabelle) Proof by Mathematical

More information

Lattices and Orders in Isabelle/HOL

Lattices and Orders in Isabelle/HOL Lattices and Orders in Isabelle/HOL Markus Wenzel TU München October 8, 2017 Abstract We consider abstract structures of orders and lattices. Many fundamental concepts of lattice theory are developed,

More information

Reasoning about Codata

Reasoning about Codata Reasoning about Codata Ralf Hinze Computing Laboratory, University of Oxford Wolfson Building, Parks Road, Oxford, OX1 3QD, England ralf.hinze@comlab.ox.ac.uk http://www.comlab.ox.ac.uk/ralf.hinze/ Abstract.

More information

A Calculus of Definitions

A Calculus of Definitions A Calculus of Definitions June 13, 2017 1 Type theory We describe how to implement a core type theory. This is very close to a functional programming language with λ abstraction and data types defined

More information

A Categorical Characterization of Untyped Lambda Calculus

A Categorical Characterization of Untyped Lambda Calculus A Categorical Characterization of Untyped Lambda Calculus Master s Thesis Daniel Schmitter March 1, 2013 Advisor: Prof. Dr. Damien Calaque Department of Mathematics, ETH Zurich Abstract The purpose of

More information

Why walk when you can take the tube?

Why walk when you can take the tube? Under consideration for publication in J. Functional Programming 1 F U N C T I O N A L P E A R L Why walk when you can take the tube? LUCAS DIXON University of Edinburgh PETER HANCOCK and CONOR MCBRIDE

More information

1 Problem 1. (20 pts)

1 Problem 1. (20 pts) CS 336 Programming Languages Homework Solution 4 Winter 2005 Due 2/24/05 1 Problem 1. (20 pts) Do Exercise 18.6.2. We define a meta-operation + on types as follows: If R is a record type with labels given

More information

Red-black Trees of smlnj Studienarbeit. Angelika Kimmig

Red-black Trees of smlnj Studienarbeit. Angelika Kimmig Red-black Trees of smlnj Studienarbeit Angelika Kimmig January 26, 2004 Contents 1 Introduction 1 2 Development of the Isabelle/HOL Theory RBT 2 2.1 Translation of Datatypes and Functions into HOL......

More information

A New Look At Generalized Rewriting in Type Theory

A New Look At Generalized Rewriting in Type Theory A New Look At Generalized Rewriting in Type Theory Matthieu Sozeau Harvard University TYPES 09 May 13th 2009 Aussois, France Generalized Rewriting Equational reasoning x = y - x + 1 ==> y + 1 Logical reasoning

More information

The Under-Performing Unfold

The Under-Performing Unfold The Under-Performing Unfold A new approach to optimising corecursive programs Jennifer Hackett Graham Hutton University of Nottingham {jph,gmh}@cs.nott.ac.uk Mauro Jaskelioff Universidad Nacional de Rosario,

More information

Concrete Stream Calculus

Concrete Stream Calculus Under consideration for publication in J. Functional Programming 1 Concrete Stream Calculus An extended study RALF HINZE Computing Laboratory, University of Oxford, Wolfson Building, Parks Road, Oxford,

More information

Functional Data Structures

Functional Data Structures Functional Data Structures with Isabelle/HOL Tobias Nipkow Fakultät für Informatik Technische Universität München 2017-2-3 1 Part II Functional Data Structures 2 Chapter 1 Binary Trees 3 1 Binary Trees

More information

Code Generation for a Simple First-Order Prover

Code Generation for a Simple First-Order Prover Code Generation for a Simple First-Order Prover Jørgen Villadsen, Anders Schlichtkrull, and Andreas Halkjær From DTU Compute, Technical University of Denmark, 2800 Kongens Lyngby, Denmark Abstract. We

More information

A few bridges between operational and denotational semantics of programming languages

A few bridges between operational and denotational semantics of programming languages A few bridges between operational and denotational semantics of programming languages Soutenance d habilitation à diriger les recherches Tom Hirschowitz November 17, 2017 Hirschowitz Bridges between operational

More information

Interactive Theorem Provers

Interactive Theorem Provers Interactive Theorem Provers from the perspective of Isabelle/Isar Makarius Wenzel Univ. Paris-Sud, LRI July 2014 = Isabelle λ β Isar α 1 Introduction Notable ITP systems LISP based: ACL2 http://www.cs.utexas.edu/users/moore/acl2

More information

On the Semantics of Parsing Actions

On the Semantics of Parsing Actions On the Semantics of Parsing Actions Hayo Thielecke School of Computer Science University of Birmingham Birmingham B15 2TT, United Kingdom Abstract Parsers, whether constructed by hand or automatically

More information

Free Groups. Joachim Breitner. April 17, 2016

Free Groups. Joachim Breitner. April 17, 2016 Free Groups Joachim Breitner April 17, 2016 Abstract Free Groups are, in a sense, the most generic kind of group. They are defined over a set of generators with no additional relations in between them.

More information

Automated Reasoning Lecture 2: Propositional Logic and Natural Deduction

Automated Reasoning Lecture 2: Propositional Logic and Natural Deduction Automated Reasoning Lecture 2: Propositional Logic and Natural Deduction Jacques Fleuriot jdf@inf.ed.ac.uk Logic Puzzles 1. Tomorrow will be sunny or rainy. Tomorrow will not be sunny. What will the weather

More information

Mathematical Synthesis of Equational Deduction Systems. Marcelo Fiore. Computer Laboratory University of Cambridge

Mathematical Synthesis of Equational Deduction Systems. Marcelo Fiore. Computer Laboratory University of Cambridge Mathematical Synthesis of Equational Deduction Systems Marcelo Fiore Computer Laboratory University of Cambridge TLCA 2009 3.VII.2009 Context concrete theories meta-theories Context concrete theories meta-theories

More information

Logic for Computational Effects: work in progress

Logic for Computational Effects: work in progress 1 Logic for Computational Effects: work in progress Gordon Plotkin and John Power School of Informatics University of Edinburgh King s Buildings Mayfield Road Edinburgh EH9 3JZ Scotland gdp@inf.ed.ac.uk,

More information

F U N C T I O N A L P E A R L S The Bird tree

F U N C T I O N A L P E A R L S The Bird tree Under consideration for publication in J. Functional Programming 1 F U N C T I O N A L P E A R L S The Bird tree RALF HINZE Computing Laboratory, University of Oxford Wolfson Building, Parks Road, Oxford,

More information

Higher Order Containers

Higher Order Containers Higher Order Containers Thorsten Altenkirch 1, Paul Levy 2, and Sam Staton 3 1 University of Nottingham 2 University of Birmingham 3 University of Cambridge Abstract. Containers are a semantic way to talk

More information

The Reflection Theorem

The Reflection Theorem The Reflection Theorem Formalizing Meta-Theoretic Reasoning Lawrence C. Paulson Computer Laboratory Lecture Overview Motivation for the Reflection Theorem Proving the Theorem in Isabelle Applying the Reflection

More information

EDA045F: Program Analysis LECTURE 10: TYPES 1. Christoph Reichenbach

EDA045F: Program Analysis LECTURE 10: TYPES 1. Christoph Reichenbach EDA045F: Program Analysis LECTURE 10: TYPES 1 Christoph Reichenbach In the last lecture... Performance Counters Challenges in Dynamic Performance Analysis Taint Analysis Binary Instrumentation 2 / 44 Types

More information

Isomorphism of Finitary Inductive Types

Isomorphism of Finitary Inductive Types Isomorphism of Finitary Inductive Types Christian Sattler joint work (in progress) with Nicolai Kraus University of Nottingham May 2014 Motivating Example Generic data may be represented in a multitude

More information

NICTA Advanced Course. Theorem Proving Principles, Techniques, Applications. Gerwin Klein Formal Methods

NICTA Advanced Course. Theorem Proving Principles, Techniques, Applications. Gerwin Klein Formal Methods NICTA Advanced Course Theorem Proving Principles, Techniques, Applications Gerwin Klein Formal Methods 1 ORGANISATORIALS When Mon 14:00 15:30 Wed 10:30 12:00 7 weeks ends Mon, 20.9.2004 Exceptions Mon

More information

Semantics for algebraic operations

Semantics for algebraic operations MFPS 17 Preliminary Version Semantics for algebraic operations Gordon Plotkin and John Power 1 Laboratory for the Foundations of Computer Science University of Edinburgh King s Buildings, Edinburgh EH9

More information

Uncountable computable model theory

Uncountable computable model theory Uncountable computable model theory Noam Greenberg Victoria University of Wellington 30 th June 2013 Mathematical structures Model theory provides an abstract formalisation of the notion of a mathematical

More information

From parametric polymorphism to models of polymorphic FPC

From parametric polymorphism to models of polymorphic FPC Under consideration for publication in Math. Struct. in Comp. Science From parametric polymorphism to models of polymorphic FPC Rasmus Ejlers Møgelberg IT University of Copenhagen Rued Langgaards Vej 7

More information

A Recursion Combinator for Nominal Datatypes Implemented in Isabelle/HOL

A Recursion Combinator for Nominal Datatypes Implemented in Isabelle/HOL A Recursion Combinator for Nominal Datatypes Implemented in Isabelle/HOL Christian Urban and Stefan Berghofer Technische Universität München {urbanc,berghofe}@in.tum.de Abstract. The nominal datatype package

More information

Abstract Convexity: Results and Speculations

Abstract Convexity: Results and Speculations Abstract Convexity: Results and Speculations Tobias Fritz Max Planck Institut für Mathematik, Bonn Mathematical Colloquium Hagen, 26 Nov 29 Overview. Introducing convex spaces 2. A Hahn-Banach theorem

More information

Completeness of Star-Continuity

Completeness of Star-Continuity Introduction to Kleene Algebra Lecture 5 CS786 Spring 2004 February 9, 2004 Completeness of Star-Continuity We argued in the previous lecture that the equational theory of each of the following classes

More information

Type inference in context

Type inference in context Type inference in context Adam Gundry University of Strathclyde Microsoft Research PhD Scholar Conor McBride University of Strathclyde James McKinna Radboud University Nijmegen MSFP 25 September 2010 Two

More information

Types and Programming Languages (15-814), Fall 2018 Assignment 4: Data Representation (Sample Solutions)

Types and Programming Languages (15-814), Fall 2018 Assignment 4: Data Representation (Sample Solutions) Types and Programming Languages (15-814), Fall 2018 Assignment 4: Data Representation (Sample Solutions) Contact: 15-814 Course Staff Due Tuesday, October 16, 2018, 10:30am This assignment is due by 10:30am

More information

FORMALISING THE π-calculus USING NOMINAL LOGIC

FORMALISING THE π-calculus USING NOMINAL LOGIC Logical Methods in Computer Science Vol. 5 (2:16) 2009, pp. 1 36 www.lmcs-online.org Submitted Mar. 24, 2009 Published Jun. 30, 2009 FORMALISING THE π-calculus USING NOMINAL LOGIC JESPER BENGTSON AND JOACHIM

More information

Semantic Labelling for Proving Termination of Combinatory Reduction Systems. Makoto Hamana

Semantic Labelling for Proving Termination of Combinatory Reduction Systems. Makoto Hamana Semantic Labelling for Proving Termination of Combinatory Reduction Systems Makoto Hamana Department of Computer Science, Gunma University, Japan WFLP 09 June, 2009. 1 2 Intro: Termination Proof by RPO

More information

Implementation of the stable revivals model in CSP-Prover

Implementation of the stable revivals model in CSP-Prover in CSP-Prover in CSP-Prover April 4, 2007 The stable Supported by EPSRC grant EP/D037212/1 in CSP-Prover Csp-Prover Motivation and The stable in CSP-Prover Csp is a language to describe processes in concurrent

More information

A Foundation for GADTs and Inductive Families. Makoto Hamana Gunma University, Japan

A Foundation for GADTs and Inductive Families. Makoto Hamana Gunma University, Japan 1 A Foundation for GADTs and Inductive Families Dependent Polynomial Functor Approach Makoto Hamana Gunma University, Japan Joint work with Marcelo Fiore, University of Cambridge WGP 11, 18 September,

More information

CERTIFIED CONTEXT-FREE PARSING: A FORMALISATION OF VALIANT S ALGORITHM IN AGDA

CERTIFIED CONTEXT-FREE PARSING: A FORMALISATION OF VALIANT S ALGORITHM IN AGDA Logical Methods in Computer Science Vol. 12(2:6)2016, pp. 1 28 www.lmcs-online.org Submitted Jul. 3, 2014 Published Jun. 13, 2016 CERTIFIED CONTEXT-FREE PARSING: A FORMALISATION OF VALIANT S ALGORITHM

More information

Reckhow s Theorem. Yuval Filmus. November 2010

Reckhow s Theorem. Yuval Filmus. November 2010 Reckhow s Theorem Yuval Filmus November 2010 1 Introduction In 5.3.1 of his thesis [2], Reckhow showed that any two Frege systems p-simulate each other. One of the difficulties involves translation of

More information

Nunchaku: Flexible Model Finding for Higher-Order Logic

Nunchaku: Flexible Model Finding for Higher-Order Logic Nunchaku: Flexible Model Finding for Higher-Order Logic Simon Cruanes, Jasmin Blanchette, Andrew Reynolds Veridis, Inria Nancy https://cedeela.fr/~simon/ April 7th, 2016 1 / 21 Summary Introduction Nunchaku

More information

LCF + Logical Frameworks = Isabelle (25 Years Later)

LCF + Logical Frameworks = Isabelle (25 Years Later) LCF + Logical Frameworks = Isabelle (25 Years Later) Lawrence C. Paulson, Computer Laboratory, University of Cambridge 16 April 2012 Milner Symposium, Edinburgh 1979 Edinburgh LCF: From the Preface the

More information

Second-Order Algebraic Theories

Second-Order Algebraic Theories Second-Order Algebraic Theories (Extended Abstract) Marcelo Fiore and Ola Mahmoud University of Cambridge, Computer Laboratory Abstract. Fiore and Hur [10] recently introduced a conservative extension

More information

Interpreting the Second-Order Lambda Calculus using Qualitative Domains

Interpreting the Second-Order Lambda Calculus using Qualitative Domains Department of Mathematics Bachelor Thesis Interpreting the Second-Order Lambda Calculus using Qualitative Domains Author: Anton Golov Supervisor: Dr. Jaap van Oosten September 2014-July 2015 Contents 1

More information

M a s t e r r e s e a rc h I n t e r n s h i p. Formalisation of Ground Inference Systems in a Proof Assistant

M a s t e r r e s e a rc h I n t e r n s h i p. Formalisation of Ground Inference Systems in a Proof Assistant M a s t e r r e s e a rc h I n t e r n s h i p Master Thesis Formalisation of Ground Inference Systems in a Proof Assistant Domain: Data Structures and Algorithms - Logic in Computer Science Author: Mathias

More information

Minimally Strict Polymorphic Functions

Minimally Strict Polymorphic Functions Minimally Strict Polymorphic Functions Jan Christiansen Christian-Albrechts-Universität Kiel Institut für Informatik 24098 Kiel, Germany jac@informatik.uni-kiel.de Daniel Seidel Rheinische Friedrich-Wilhelms-Universität

More information

Lecture 7. Logic. Section1: Statement Logic.

Lecture 7. Logic. Section1: Statement Logic. Ling 726: Mathematical Linguistics, Logic, Section : Statement Logic V. Borschev and B. Partee, October 5, 26 p. Lecture 7. Logic. Section: Statement Logic.. Statement Logic..... Goals..... Syntax of Statement

More information

Programming with Dependent Types in Coq

Programming with Dependent Types in Coq Programming with Dependent Types in Coq Matthieu Sozeau LRI, Univ. Paris-Sud - Démons Team & INRIA Saclay - ProVal Project PPS Seminar February 26th 2009 Paris, France Coq A higher-order, polymorphic logic:

More information

Notions of Computation Determine Monads

Notions of Computation Determine Monads Notions of Computation Determine Monads Gordon Plotkin and John Power Division of Informatics, University of Edinburgh, King s Buildings, Edinburgh EH9 3JZ, Scotland Abstract. We model notions of computation

More information

Beyond First-Order Logic

Beyond First-Order Logic Beyond First-Order Logic Software Formal Verification Maria João Frade Departmento de Informática Universidade do Minho 2008/2009 Maria João Frade (DI-UM) Beyond First-Order Logic MFES 2008/09 1 / 37 FOL

More information

Normalization by Evaluation

Normalization by Evaluation Normalization by Evaluation Andreas Abel Department of Computer Science and Engineering Chalmers and Gothenburg University PhD Seminar in Mathematical Engineering EAFIT University, Medellin, Colombia 9

More information

HOL: Well-founded and Primitive Recursion

HOL: Well-founded and Primitive Recursion Dipl.-Inf. Achim D. Brucker Dr. Burkhart Wolff Computer-supported Modeling and Reasoning http://www.infsec.ethz.ch/ education/permanent/csmr/ (rev. 16814) Submission date: HOL: Well-founded and Primitive

More information

Generic Fibrational Induction

Generic Fibrational Induction Archived version from NCDOCKS Institutional Repository http://libres.uncg.edu/ir/asu/ Generic Fibrational Induction By: Ghani, Neil; Johann, Patricia; and Fumex, Clement Abstract This paper provides an

More information

A Differential Model Theory for Resource Lambda Calculi - Part II

A Differential Model Theory for Resource Lambda Calculi - Part II A Differential Model Theory for Resource Lambda Calculi - Part II Giulio Manzonetto (joint work with Bucciarelli, Ehrhard, Laird, McCusker) g.manzonetto@cs.ru.nl Intelligent Systems Radboud University

More information

Introduction to lambda calculus Part 6

Introduction to lambda calculus Part 6 Introduction to lambda calculus Part 6 Antti-Juhani Kaijanaho 2017-02-16 1 Untyped lambda calculus 2 Typed lambda calculi 2.1 Dynamically typed lambda calculus with integers 2.2 A model of Lisp 2.3 Simply

More information

Equational Logic. Chapter Syntax Terms and Term Algebras

Equational Logic. Chapter Syntax Terms and Term Algebras Chapter 2 Equational Logic 2.1 Syntax 2.1.1 Terms and Term Algebras The natural logic of algebra is equational logic, whose propositions are universally quantified identities between terms built up from

More information

NOTES ON POLYNOMIAL REPRESENTATIONS OF GENERAL LINEAR GROUPS

NOTES ON POLYNOMIAL REPRESENTATIONS OF GENERAL LINEAR GROUPS NOTES ON POLYNOMIAL REPRESENTATIONS OF GENERAL LINEAR GROUPS MARK WILDON Contents 1. Definition of polynomial representations 1 2. Weight spaces 3 3. Definition of the Schur functor 7 4. Appendix: some

More information

Dynamic Rippling, Middle-Out Reasoning and Lemma Discovery

Dynamic Rippling, Middle-Out Reasoning and Lemma Discovery Dynamic Rippling, Middle-Out Reasoning and Lemma Discovery Moa Johansson 1, Lucas Dixon 2, and Alan Bundy 2 1 Dipartimento di Informatica, Università degli Studi di Verona 2 School of Informatics, University

More information

A Canonical 1 Local Representation of Binding. α -equivalence is identity. Randy Pollack. Masahiko Sato. LFCS, University of Edinburgh

A Canonical 1 Local Representation of Binding. α -equivalence is identity. Randy Pollack. Masahiko Sato. LFCS, University of Edinburgh A Canonical 1 Local Representation of Binding Randy Pollack LFCS, University of Edinburgh Masahiko Sato Graduate School of Informatics, Kyoto University Version of May 12, 2009 1 α -equivalence is identity

More information

Foundations of Programming Languages and Software Engineering

Foundations of Programming Languages and Software Engineering Foundations of Programming Languages and Software Engineering Jan-Georg Smaus (Peter Thiemann) Universität Freiburg July 2011 Abstract Data Types Foundations of Programming Languages and Software Engineering

More information

Theoretical Computer Science. Representing model theory in a type-theoretical logical framework

Theoretical Computer Science. Representing model theory in a type-theoretical logical framework Theoretical Computer Science 412 (2011) 4919 4945 Contents lists available at ScienceDirect Theoretical Computer Science journal homepage: www.elsevier.com/locate/tcs Representing model theory in a type-theoretical

More information

Local Representations of Binding

Local Representations of Binding Local Representations of Binding Randy Pollack LFCS, University of Edinburgh Joint work with James McKinna, Christian Urban, Arthur Charguéraud, Brian Aydemir, Benjamin Pierce, Stephanie Weirich Version

More information

CSCE 222 Discrete Structures for Computing. Propositional Logic. Dr. Hyunyoung Lee. !!!!!! Based on slides by Andreas Klappenecker

CSCE 222 Discrete Structures for Computing. Propositional Logic. Dr. Hyunyoung Lee. !!!!!! Based on slides by Andreas Klappenecker CSCE 222 Discrete Structures for Computing Propositional Logic Dr. Hyunyoung Lee Based on slides by Andreas Klappenecker 1 Propositions A proposition is a declarative sentence that is either true or false

More information

A Verified ODE solver and Smale s 14th Problem

A Verified ODE solver and Smale s 14th Problem A Verified ODE solver and Smale s 14th Problem Fabian Immler Big Proof @ Isaac Newton Institute Jul 6, 2017 = Isabelle λ β α Smale s 14th Problem A computer-assisted proof involving ODEs. Motivation for

More information

Element x is R-minimal in X if y X. R(y, x).

Element x is R-minimal in X if y X. R(y, x). CMSC 22100/32100: Programming Languages Final Exam M. Blume December 11, 2008 1. (Well-founded sets and induction principles) (a) State the mathematical induction principle and justify it informally. 1

More information

A NEW FOUNDATION OF A COMPLETE BOOLEAN EQUATIONAL LOGIC

A NEW FOUNDATION OF A COMPLETE BOOLEAN EQUATIONAL LOGIC Bulletin of the Section of Logic Volume 38:1/2 (2009), pp. 13 28 George Tourlakis A NEW FOUNDATION OF A COMPLETE BOOLEAN EQUATIONAL LOGIC Abstract We redefine the equational-proofs formalism of [2], [3],

More information

A New Look at Generalized Rewriting in Type Theory

A New Look at Generalized Rewriting in Type Theory A New Look at Generalized Rewriting in Type Theory Matthieu Sozeau Harvard University 1st Coq Workshop August 21th 2009 Munich, Germany Generalized Rewriting Equational reasoning x = y - x + 1 ==> y +

More information

Structure. Background. them to their higher order equivalents. functionals in Standard ML source code and converts

Structure. Background. them to their higher order equivalents. functionals in Standard ML source code and converts Introduction 3 Background functionals factor out common behaviour map applies a function to every element of a list fun map [ ] = [ ] map f ( x : : xs ) = f x : : map f xs filter keeps only those elements

More information

Proofs Regarding Specification of Spark Aggregation

Proofs Regarding Specification of Spark Aggregation Proofs Regarding Specification of Spark Aggregation Yu-Fang Chen 1, Chih-Duo Hong 1, Ondřej Lengál 1,2, Shin-Cheng Mu 1, Nishant Sinha 3, and Bow-Yaw Wang 1 1 Academia Sinica, Taiwan 2 Brno University

More information

Lecture Notes on Inductive Definitions

Lecture Notes on Inductive Definitions Lecture Notes on Inductive Definitions 15-312: Foundations of Programming Languages Frank Pfenning Lecture 2 August 28, 2003 These supplementary notes review the notion of an inductive definition and give

More information

1. The Method of Coalgebra

1. The Method of Coalgebra 1. The Method of Coalgebra Jan Rutten CWI Amsterdam & Radboud University Nijmegen IMS, Singapore - 15 September 2016 Overview of Lecture one 1. Category theory (where coalgebra comes from) 2. Algebras

More information

OMEGA-CATEGORIES AND CHAIN COMPLEXES. 1. Introduction. Homology, Homotopy and Applications, vol.6(1), 2004, pp RICHARD STEINER

OMEGA-CATEGORIES AND CHAIN COMPLEXES. 1. Introduction. Homology, Homotopy and Applications, vol.6(1), 2004, pp RICHARD STEINER Homology, Homotopy and Applications, vol.6(1), 2004, pp.175 200 OMEGA-CATEGORIES AND CHAIN COMPLEXES RICHARD STEINER (communicated by Ronald Brown) Abstract There are several ways to construct omega-categories

More information

arxiv: v1 [math.lo] 30 Aug 2018

arxiv: v1 [math.lo] 30 Aug 2018 arxiv:1808.10324v1 [math.lo] 30 Aug 2018 Real coextensions as a tool for constructing triangular norms Thomas Vetterlein Department of Knowledge-Based Mathematical Systems Johannes Kepler University Linz

More information

Formalising the π-calculus in Isabelle

Formalising the π-calculus in Isabelle Formalising the π-calculus in Isabelle Jesper Bengtson Department of Computer Systems University of Uppsala, Sweden 30th May 2006 Overview This talk will cover the following Motivation Why are we doing

More information

Indexed Containers. Thorsten Altenkirch Peter Morris University of Nottingham Abstract. 1 Introduction

Indexed Containers. Thorsten Altenkirch Peter Morris University of Nottingham Abstract. 1 Introduction Indexed Containers Thorsten Altenkirch Peter Morris University of Nottingham {txa,pwm}@cs.nott.ac.uk Abstract We show that the syntactically rich notion of inductive families can be reduced to a core type

More information

Modular Architecture for Proof Advice AITP Components

Modular Architecture for Proof Advice AITP Components Modular Architecture for Proof Advice AITP Components Cezary Kaliszyk 03 April 2016 University of Innsbruck, Austria Talk Overview AI over formal mathematics Premise selection overview The methods tried

More information

Permutation Groups and Transformation Semigroups Lecture 2: Semigroups

Permutation Groups and Transformation Semigroups Lecture 2: Semigroups Permutation Groups and Transformation Semigroups Lecture 2: Semigroups Peter J. Cameron Permutation Groups summer school, Marienheide 18 22 September 2017 I am assuming that you know what a group is, but

More information

Naturality, but not as you know it

Naturality, but not as you know it Naturality, but not as you know it Prologue WG2.8 #31, Aussois, October 2013 Naturality, but not as you know it Ralf Hinze Department of Computer Science, University of Oxford Wolfson Building, Parks Road,

More information

Inductive Predicates

Inductive Predicates Inductive Predicates Gert Smolka, Saarland University June 12, 2017 We introduce inductive predicates as they are accommodated in Coq s type theory. Our prime example is the ordering predicate for numbers,

More information

Relational Algebra by Way of Adjunctions. Jeremy Gibbons (joint work with Fritz Henglein, Ralf Hinze, Nicolas Wu) DBPL, October 2015

Relational Algebra by Way of Adjunctions. Jeremy Gibbons (joint work with Fritz Henglein, Ralf Hinze, Nicolas Wu) DBPL, October 2015 Relational Algebra by Way of Adjunctions Jeremy Gibbons (joint work with Fritz Henglein, Ralf Hinze, Nicolas Wu) DBPL, October 2015 Relational Algebra by Way of Adjunctions 2 1. Summary bulk types (sets,

More information

Categories and Functors (Lecture Notes for Midlands Graduate School, 2013) Uday S. Reddy The University of Birmingham

Categories and Functors (Lecture Notes for Midlands Graduate School, 2013) Uday S. Reddy The University of Birmingham Categories and Functors (Lecture Notes for Midlands Graduate School, 2013) Uday S. Reddy The University of Birmingham April 7, 2013 2 Contents 1 Categories 5 1.1 Categories with and without elements.......................

More information

Church and Curry: Combining Intrinsic and Extrinsic Typing

Church and Curry: Combining Intrinsic and Extrinsic Typing Church and Curry: Combining Intrinsic and Extrinsic Typing Frank Pfenning Dedicated to Peter Andrews on the occasion of his retirement Department of Computer Science Carnegie Mellon University April 5,

More information

Algebras for Combinatorial Search

Algebras for Combinatorial Search Michael Spivey Oxford University Computing Laboratory Wolfson Building, Parks Road, Oxford OX1 3QD, UK mike@comlab.ox.ac.uk Abstract We show how combinatorial search strategies including depth-first, breadth-first

More information

A Formalised Proof of Craig s Interpolation Theorem in Nominal Isabelle

A Formalised Proof of Craig s Interpolation Theorem in Nominal Isabelle A Formalised Proof of Craig s Interpolation Theorem in Nominal Isabelle Overview We intend to: give a reminder of Craig s theorem, and the salient points of the proof introduce the proof assistant Isabelle,

More information

Witnessing (Co)datatypes

Witnessing (Co)datatypes Witnessing (Co)datatypes Jasmin Christian Blanchette 1,2, Andrei Popescu 3, and Dmitriy Traytel 4 1 Inria Nancy & LORIA, Villers-lès-Nancy, France 2 Max-Planck-Institut für Informatik, Saarbrücken, Germany

More information

Intensionality, Extensionality, and Proof Irrelevance in Modal Type Theory

Intensionality, Extensionality, and Proof Irrelevance in Modal Type Theory Intensionality, Extensionality, and Proof Irrelevance in Modal Type Theory Frank Pfenning LICS 01 Boston, Massachusetts June 17, 2001 Acknowledgments: Alberto Momigliano,... 1 Outline 1. Introduction 2.

More information

BiLog: Spatial Logics for Bigraphs 1

BiLog: Spatial Logics for Bigraphs 1 BiLog: Spatial Logics for Bigraphs 1 Giovanni Conforti a Damiano Macedonio b Vladimiro Sassone b a University of Dortmund b University of Sussex Abstract Bigraphs are emerging as a (meta-)model for concurrent

More information

What are Iteration Theories?

What are Iteration Theories? What are Iteration Theories? Jiří Adámek and Stefan Milius Institute of Theoretical Computer Science Technical University of Braunschweig Germany adamek,milius @iti.cs.tu-bs.de Jiří Velebil Department

More information

Science of Computer Programming

Science of Computer Programming Science of Computer Programming 78 (2013) 2108 2159 Contents lists available at ScienceDirect Science of Computer Programming journal homepage: www.elsevier.com/locate/scico Adjoint folds and unfolds An

More information

1. Prove: A full m- ary tree with i internal vertices contains n = mi + 1 vertices.

1. Prove: A full m- ary tree with i internal vertices contains n = mi + 1 vertices. 1. Prove: A full m- ary tree with i internal vertices contains n = mi + 1 vertices. Proof: Every vertex, except the root, is the child of an internal vertex. Since there are i internal vertices, each of

More information

Write your own Theorem Prover

Write your own Theorem Prover Write your own Theorem Prover Phil Scott 27 October 2016 Phil Scott Write your own Theorem Prover 27 October 2016 1 / 31 Introduction We ll work through a toy LCF style theorem prover for classical propositional

More information

CIS 500: Software Foundations

CIS 500: Software Foundations CIS 500: Software Foundations Midterm I October 3, 2017 Directions: This exam booklet contains both the standard and advanced track questions. Questions with no annotation are for both tracks. Other questions

More information

ACTING FREELY GABRIEL GASTER

ACTING FREELY GABRIEL GASTER ACTING FREELY GABRIEL GASTER 1. Preface This article is intended to present a combinatorial proof of Schreier s Theorem, that subgroups of free groups are free. While a one line proof exists using the

More information

An Introduction to Proof Assistants

An Introduction to Proof Assistants An Introduction to Proof Assistants Patrick Schnider Student Seminar in Combinatorics: Mathematical Software, ETH Zürich 1 Motivation The development of proof assistants was motivated by the use of computers

More information