Game Semantics for Dependent Types

Size: px
Start display at page:

Download "Game Semantics for Dependent Types"

Transcription

1 Bath, 20 ctober, 2015

2 verview Game theoretic model of dependent type theory (DTT): refines model in domains and (total) continuous functions; call-by-name evaluation; faithful model of (total) DTT with Σ-, Π-, intensional Id-types and finite inductive type families; fully complete if Id-types limited;

3 verview Game theoretic model of dependent type theory (DTT): refines model in domains and (total) continuous functions; call-by-name evaluation; faithful model of (total) DTT with Σ-, Π-, intensional Id-types and finite inductive type families; fully complete if Id-types limited; Id-types more intensional than domain model: function extensionality fails; intensional in orthogonal way to HoTT (time vs space): UI holds.

4 Game Semantics? Interpolates between operational and denotational semantics: very intensional with structural clarity of categorical model; Unified framework for intensional, computational semantics: CF (H, N, AJM);

5 Game Semantics? Interpolates between operational and denotational semantics: very intensional with structural clarity of categorical model; Unified framework for intensional, computational semantics: CF (H, N, AJM); references, non-local control, dynamically generated local names, probability, non-determinism, concurrency...; various evaluation strategies; sums, recursive types, polymorphism; propositional logic, impredicative 2 nd order quantification, external 1 st order quantification;

6 Game Semantics? Interpolates between operational and denotational semantics: very intensional with structural clarity of categorical model; Unified framework for intensional, computational semantics: CF (H, N, AJM); references, non-local control, dynamically generated local names, probability, non-determinism, concurrency...; various evaluation strategies; sums, recursive types, polymorphism; propositional logic, impredicative 2 nd order quantification, external 1 st order quantification; internal 1 st order quantification / dependent types surprisingly absent (and surprisingly hard!);

7 Game Semantics? Interpolates between operational and denotational semantics: very intensional with structural clarity of categorical model; Unified framework for intensional, computational semantics: CF (H, N, AJM); references, non-local control, dynamically generated local names, probability, non-determinism, concurrency...; various evaluation strategies; sums, recursive types, polymorphism; propositional logic, impredicative 2 nd order quantification, external 1 st order quantification; internal 1 st order quantification / dependent types surprisingly absent (and surprisingly hard!); Tight correspondence with syntax (full abstraction, full faithful completeness): often unique semantics in this respect.

8 Computation / Logic data type / proposition computational process / argument program / proof environment / refutation variable declarations / axiom links substitution / cut termination / correctness pure sequential functional behaviour (no state, parallelism, control ops) /.. Games 2-player game (duality!) play: alternating seq. of moves layer () strategy pponent () strategy copycat strategies interaction winning history-freeness/innocence + determinism + well-bracketing of strategies

9 Computation / Logic data type / proposition computational process / argument program / proof environment / refutation variable declarations / axiom links substitution / cut termination / correctness pure sequential functional behaviour (no state, parallelism, control ops) /.. Games 2-player game (duality!) play: alternating seq. of moves layer () strategy pponent () strategy copycat strategies interaction winning history-freeness/innocence + determinism + well-bracketing of strategies

10 An example: layer: pponent: x : B, y : (B B) y(x) : B [tt/x, (λ z:b z)/y] B (B B ) B tt tt ff ff

11 An example: layer: pponent: x : B, y : (B B) y(x) : B [(λ z:b ff)/y] B (B B ) B ff ff

12 Games and winning strategies form a smcc Game: I: the game with one play of length 0; A B: playing A and B simultaneously through interleaving, where only pponent can switch games; A B: swap, (A) and B simultaneously, layer switches.

13 Games and winning strategies form a smcc Game: I: the game with one play of length 0; A B: playing A and B simultaneously through interleaving, where only pponent can switch games; A B: swap, (A) and B simultaneously, layer switches. Also model simple type theory (STT): have a ccc Game! : A B :=!A B;!A: playing ω equivalent copies of A simultaneously, where only pponent can switch games; roduct A&B: pponent chooses to play A or B (unit: I).

14 Games and winning strategies form a smcc Game: I: the game with one play of length 0; A B: playing A and B simultaneously through interleaving, where only pponent can switch games; A B: swap, (A) and B simultaneously, layer switches. Also model simple type theory (STT): have a ccc Game! : A B :=!A B;!A: playing ω equivalent copies of A simultaneously, where only pponent can switch games; roduct A&B: pponent chooses to play A or B (unit: I). Ground types (finite inductive types): for a set X, game X with one pponent move, followed by any of the layer moves x X.

15 An example: copycats (identity morphisms) layer: pponent: x : A x : A A A a a a. a.

16 An example: interaction (composition) layer: pponent: y : N 2y : N x : N x + 1 : N parallel composition... N N x x + 1 N N y 2y

17 An example: interaction (composition) layer: pponent: x : N x + 1 : N 2(x + 1) : N N N N x x + 1 2(x + 1)... plus hiding similarly in general

18 Use the term simple type theory (STT) to refer to a simple λ-calculus with binary products, function types and finite inductive types {a i 1 i n}, or a total finitary CF with binary products, with βη-rules and CF commutative conversions for case-constructs. Straightforward consequence of AJM: Theorem The interpretation of STT in Game! is fully and faithfully complete.

19 Dependent type theory (DTT)? What is it? Curry-Howard for predicate logic: types with free (term) variables, constructions Σ, Π, Id (cf.,, =) on types. Judgements like x : A B(x) type and x : A b(x) : B(x). rder in context matters! No clean separation syntax types and terms.

20 Dependent type theory (DTT)? What is it? Curry-Howard for predicate logic: types with free (term) variables, constructions Σ, Π, Id (cf.,, =) on types. Judgements like x : A B(x) type and x : A b(x) : B(x). rder in context matters! No clean separation syntax types and terms. Why care? Move towards richer type systems: e.g. GADTs in Haskell. Types allowed to refer to data: e.g. n : N List(n) type. Specification by typing: certification by type checking. rogramming logic as a proof assistant. Logical Frameworks.

21 Dependent types and their terms: n : N List(n) type n : N, x : List(n) reverse(x) : List(n) Π- and Σ-types (generalising and ): λ n λ x reverse(x) : Π n:n List(n) List(n) mult : Π k,l,m:n matrix(k, l) matrix(l, m) matrix(k, m) 9, [No, wise, fish, would, go, anywhere, without, a, porpoise] : Σ n:n List(n)

22 Dependent types and their terms: n : N List(n) type n : N, x : List(n) reverse(x) : List(n) Π- and Σ-types (generalising and ): λ n λ x reverse(x) : Π n:n List(n) List(n) mult : Π k,l,m:n matrix(k, l) matrix(l, m) matrix(k, m) 9, [No, wise, fish, would, go, anywhere, without, a, porpoise] : Σ n:n List(n) Id-type: refl : Id N (0, (λ x x)(0)) x, y : B case(x,case(y,refl,refl),case(y,refl,refl)) : Id B (lsor(x,y),rsor(x,y)) Finite inductive type families: x : months days(x) type 31 : days(ctober).

23 A Faithful Translation to Simple Type Theory (STT) Idea: DTT talks about same algorithms as STT but can assign them a more precise type/specification. Formally: have translation of DTT into STT. Let DTT inherit the equational theory of STT to make translation faithful.

24 A Faithful Translation to Simple Type Theory (STT) Idea: DTT talks about same algorithms as STT but can assign them a more precise type/specification. Formally: have translation of DTT into STT. Let DTT inherit the equational theory of STT to make translation faithful. x : A (a i i {b i,j j}) type {b i,j i, j} type x : A Σ y:b C type B T C T type x : A Π y:b C type B T C T type x : A, y : B, y : B Id B (y, y ) type B T type x : A B(a) type B(x) T type + translation on terms.

25 The idea of our interpretation [[ ]] will be to construct a category CtxtGame! of dependent context games with a functor ( ) to Game!, such that Syntax DTT ( ) T Syntax STT [[ ]] CtxtGame! ( ) [[ ]] Game!. Games model of DTT will therefore automatically be faithful.

26 Dependent Games and Strategies Game B with dependency on A consists of: game (B) (without dependency); continuous function str(a) B Sub( (B)) from strategies on A to subgames ( -closed subsets of plays) of (B). Alternatively: continuous function str(a) B Game.

27 Dependent Games and Strategies Game B with dependency on A consists of: game (B) (without dependency); continuous function str(a) B Sub( (B)) from strategies on A to subgames ( -closed subsets of plays) of (B). Alternatively: continuous function str(a) B Game. Can define I, & and on games with dependency and make into ccc with homset DGame! (A)(B, C) := wstr(π A (B C)). (Arises from model of LL.)

28 We define a game Π A B A (B) of dependent functions. Idea: the choice of a fibre B(a) for the output of a dependent function f : Π A B is entirely the responsibility of the context that provides the argument a.

29 We define a game Π A B A (B) of dependent functions. Idea: the choice of a fibre B(a) for the output of a dependent function f : Π A B is entirely the responsibility of the context that provides the argument a. pponent can determine fibre B(τ) of B: explicitly, revealing winning strategy τ on A, by playing in!a; implicitly, by playing in (B); layer has to stay within B(τ) for all τ consistent with pponent s behaviour.

30 We define a game Π A B A (B) of dependent functions. Idea: the choice of a fibre B(a) for the output of a dependent function f : Π A B is entirely the responsibility of the context that provides the argument a. pponent can determine fibre B(τ) of B: explicitly, revealing winning strategy τ on A, by playing in!a; implicitly, by playing in (B); layer has to stay within B(τ) for all τ consistent with pponent s behaviour. That is, as long as there is such a τ; otherwise, anything goes. Indeed, pponent is totally free and might not respect the type dependency, as ( ) should be faithful (to match ( ) T ).

31 Non-example of dependently typed algorithm: scheduling finance meetings layer/academic: pponent/education Finance Business Manager Manager: x : months 31 : days(x) Π( months, days ) 31 layer chooses fibre: e.g. February doesn t have a 31 st day. Mr Manager shouldn t allow that...

32 Example of dependently typed algorithm: Academic/layer: pponent/education Finance Business Manager Manager: x : months case days,months (x, {31, 1,..., 1, 31}) : days(x) [January/x] Π( months, days ) January 31

33 Example (fibre-wise identities): layer: pponent: x : A, y : B(x) y : B(x) choose your favourite Π( [[A]], [[B]] [[B]]) b b b. b

34 Theorem Have indexed ccc Game op! ob(dgame! (A)) := {continuous str(a) DGame CCCat of dependent games: B Sub( (B))} hom-sets DGame! (A)(B, C) := wstr(π A (B C)) fibrewise identities as in example; fibrewise comp. & change of base: usual AJM-composition.

35 Theorem Have indexed ccc Game op! ob(dgame! (A)) := {continuous str(a) DGame CCCat of dependent games: B Sub( (B))} hom-sets DGame! (A)(B, C) := wstr(π A (B C)) fibrewise identities as in example; fibrewise comp. & change of base: usual AJM-composition. As we don t have (additive) Σ-types, not a model of DTT! Well! I ve often seen a cat without a grin, thought Alice; but a grin without a cat! It s the most curious thing I ever saw in all my life.

36 Theorem Have indexed ccc Game op! ob(dgame! (A)) := {continuous str(a) DGame CCCat of dependent games: B Sub( (B))} hom-sets DGame! (A)(B, C) := wstr(π A (B C)) fibrewise identities as in example; fibrewise comp. & change of base: usual AJM-composition. As we don t have (additive) Σ-types, not a model of DTT! Well! I ve often seen a cat without a grin, thought Alice; but a grin without a cat! It s the most curious thing I ever saw in all my life. Theorem Formally add them: get model CtxtGame! of DTT with ΣΠ-types! bj: lists [X k ] k, where str( (X 1 )& & (X k 1 )) X k Sub( (X k )). Mor: lists of winning strategies on Π-games of more variables.

37 We can also interpret finite inductive type families x : A (a i i {b i,j j} type: [[a i ]] {b i,j j} {b i,j i, j} else {b i,j i, j} ; identity types x : A Id B (s, t) type: σ (σ; [[s]]) (σ; [[t]]) ([[B]]).

38 Non-Example: layer: x : B, y : B p : Id B (x, y) pponent : [tt/x, ff/y] Π( B, Π( B, Id B ) tt ff tt...as tt does not lie in intersection tt ff.

39 Example: layer: x : B refl x : Id B (x, x) pponent: Π( B, Id B {diag B }) x x...as x lies in x x.

40 lace in intensionality spectrum Id-types: Domains HoTT Games Failure of Equality Reflection Streicher Intensionality Criteria (I1) and (I2) Streicher Intensionality Criterion (I3) Failure of Function Extensionality (FunExt) Failure of Uniqueness of Identity roofs (UI). Discrete ground types (0-types), but function hierarchy generates (open) propositional identities: observational equivalences.

41 Completeness Results Summarising, we have Theorem (Soundness and Faithfulness) We have a faithful model of DTT with Σ-, Π-, intensional Id-types and finite inductive type families: faithful functor Syntax DTT [[ ]] CtxtGame!.

42 Completeness Results Summarising, we have Theorem (Soundness and Faithfulness) We have a faithful model of DTT with Σ-, Π-, intensional Id-types and finite inductive type families: faithful functor Syntax DTT [[ ]] CtxtGame!. Actually, the model has strong completeness properties. Theorem (Full Completeness) This interpretation is full when restricted to the types of the form A or Π A Id B (f, g) with A and B built without Id-types: Restricted Types SyntaxDTT [[ ]] CtxtGame! full.

43 Future Work Ultimate goal: intensional, computational analysis of HoTT. game semantics of higher inductive types / quotient types; examining function extensionality and univalence; universes and a more intensional notion of type family; infinite inductive type families and their definability results; examining completeness properties of the model for the complete type hierarchy, including Id-types; constructing models of DTT with effects.

44 In particular, for the first item: HtpyGame... Gpd Set Game Game A collapsing time-like identity, a.k.a. extensional collapse Gpd Set collapsing space-like identity, a.k.a. 0-truncation X X 0. wstr(a)/obs.equiv.

45 Bonus Example (Higher order dependent functions): approving holiday plans layer/hd Student: pponent/supervisor : w : years, x : Π(y : days(w), Π(z : holidays(w, y), B)) going on holidays? : B [2015/w, acceptable holidays/x] Π(years, Π( Π(days, Π(holidays, B ))), B ) International Talk Like a irate Day ff ff (ITLD happens every year, so don t need to ask about the year. Moreover, layer is also in charge of supplying the date, so we don t have to determine the date before specifying the holiday.)

46 Bonus Example (Higher order dependent functions): approving holiday plans layer/hd Student: pponent/supervisor : w : years, x : Π(y : days(w), Π(z : holidays(w, y), B)) going on holidays? : B [2015/w, acceptable holidays/x] disobedient student... Π(years, Π( Π(days, Π(holidays, B ))), B ) International Talk Like a irate Day ff tt

47 Bonus Example (Higher order dependent functions): approving holiday plans layer/hd Student: pponent/supervisor : w : years, x : Π(y : days(w), Π(z : holidays(w, y), B)) going on holidays? : B [2015/w, acceptable holidays/x] Π(years, Π( Π(days, Π(holidays, B ))), B ) Holi tt tt (Note that Holi happens every year with variable Gregorian date and that layer gets to choose the day so can even specify the holiday before the day.)

(Effectul) Game Semantics for Dependent Types

(Effectul) Game Semantics for Dependent Types Eindhoven, 3 April 2016 Overview Game theoretic models of dependent type theory (DTT): get faithful model of (total) DTT with Σ-, Π-, intensional Id-types and finite inductive type families; fully complete

More information

Negations in Refinement Type Systems

Negations in Refinement Type Systems Negations in Refinement Type Systems T. Tsukada (U. Tokyo) 14th March 2016 Shonan, JAPAN This Talk About refinement intersection type systems that refute judgements of other type systems. Background Refinement

More information

Univalent fibrations in type theory and topology

Univalent fibrations in type theory and topology Univalent fibrations in type theory and topology Dan Christensen University of Western Ontario Wayne State University, April 11, 2016 Outline: Background on type theory Equivalence and univalence A characterization

More information

a brief introduction to (dependent) type theory

a brief introduction to (dependent) type theory a brief introduction to (dependent) type theory Cory Knapp January 14, 2015 University of Birmingham what is type theory? What is type theory? formal language of terms with types x : A x has type A What

More information

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

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

More information

Introduction to Homotopy Type Theory

Introduction to Homotopy Type Theory Introduction to Homotopy Type Theory Lecture notes for a course at EWSCS 2017 Thorsten Altenkirch March 5, 2017 1 What is this course about? To explain what Homotopy Type Theory is, I will first talk about

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

Categorical models of type theory

Categorical models of type theory 1 / 59 Categorical models of type theory Michael Shulman February 28, 2012 2 / 59 Outline 1 Type theory and category theory 2 Categorical type constructors 3 Dependent types and display maps 4 Fibrations

More information

Typed Lambda Calculus

Typed Lambda Calculus Department of Linguistics Ohio State University Sept. 8, 2016 The Two Sides of A typed lambda calculus (TLC) can be viewed in two complementary ways: model-theoretically, as a system of notation for functions

More information

Lecture slides & distribution files:

Lecture slides & distribution files: Type Theory Lecture slides & distribution files: http://www.cs.rhul.ac.uk/home/zhaohui/ttlectures.html Zhaohui Luo Department of Computer Science Royal Holloway, University of London April 2011 2 Type

More information

The three faces of homotopy type theory. Type theory and category theory. Minicourse plan. Typing judgments. Michael Shulman.

The three faces of homotopy type theory. Type theory and category theory. Minicourse plan. Typing judgments. Michael Shulman. The three faces of homotopy type theory Type theory and category theory Michael Shulman 1 A programming language. 2 A foundation for mathematics based on homotopy theory. 3 A calculus for (, 1)-category

More information

Using Agda to Explore Path-Oriented Models of Type Theory

Using Agda to Explore Path-Oriented Models of Type Theory 1/22 Using Agda to Explore Path-Oriented Models of Type Theory Andrew Pitts joint work with Ian Orton Computer Laboratory Outline 2/22 The mathematical problem find new models of Homotopy Type Theory Why

More information

Arithmetic universes as generalized point-free spaces

Arithmetic universes as generalized point-free spaces Arithmetic universes as generalized point-free spaces Steve Vickers CS Theory Group Birmingham * Grothendieck: "A topos is a generalized topological space" *... it's represented by its category of sheaves

More information

The Next 700 Syntactic Models of Type Theory

The Next 700 Syntactic Models of Type Theory The Next 700 Syntactic Models of Type Theory Simon Boulier 1 Pierre-Marie Pédrot 2 Nicolas Tabareau 1 1 INRIA, 2 University of Ljubljana CPP 17th January 2017 Pédrot & al (INRIA & U Ljubljana) The Next

More information

Sheaves and Stacks. November 5, Sheaves and Stacks

Sheaves and Stacks. November 5, Sheaves and Stacks November 5, 2014 Grothendieck topologies Grothendieck topologies are an extra datum on a category. They allow us to make sense of something being locally defined. Give a formal framework for glueing problems

More information

Inductive Types for Free

Inductive Types for Free Inductive Types for Free Representing Nested Inductive Types using W-types Michael Abbott (U. Leicester) Thorsten Altenkirch (U. Nottingham) Neil Ghani (U. Leicester) Inductive Types for Free p.1/22 Ideology

More information

Part I Logic programming paradigm

Part I Logic programming paradigm Part I Logic programming paradigm 1 Logic programming and pure Prolog 1.1 Introduction 3 1.2 Syntax 4 1.3 The meaning of a program 7 1.4 Computing with equations 9 1.5 Prolog: the first steps 15 1.6 Two

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

Game Semantics: an Overview

Game Semantics: an Overview Game Semantics: an Overview Guy McCusker Game Semantics: an Overview p.1/45 What did he say? Qu est-ce ue c est la sémantiue des jeux? Or in English... Game Semantics: an Overview p.2/45 What did he say?

More information

Lecture 5 - Axiomatic semantics

Lecture 5 - Axiomatic semantics Program Verification March 2014 Lecture 5 - Axiomatic semantics Lecturer: Noam Rinetzky Scribes by: Nir Hemed 1.1 Axiomatic semantics The development of the theory is contributed to Robert Floyd, C.A.R

More information

Less naive type theory

Less naive type theory Institute of Informatics Warsaw University 26 May 2007 Plan 1 Syntax of lambda calculus Why typed lambda calculi? 2 3 Syntax of lambda calculus Why typed lambda calculi? origins in 1930s (Church, Curry)

More information

AXIOMS FOR THE INTEGERS

AXIOMS FOR THE INTEGERS AXIOMS FOR THE INTEGERS BRIAN OSSERMAN We describe the set of axioms for the integers which we will use in the class. The axioms are almost the same as what is presented in Appendix A of the textbook,

More information

COS 320. Compiling Techniques

COS 320. Compiling Techniques Topic 5: Types COS 320 Compiling Techniques Princeton University Spring 2016 Lennart Beringer 1 Types: potential benefits (I) 2 For programmers: help to eliminate common programming mistakes, particularly

More information

Harvard School of Engineering and Applied Sciences CS 152: Programming Languages

Harvard School of Engineering and Applied Sciences CS 152: Programming Languages Harvard School of Engineering and Applied Sciences CS 152: Programming Languages Lecture 19 Tuesday, April 3, 2018 1 Introduction to axiomatic semantics The idea in axiomatic semantics is to give specifications

More information

From natural numbers to the lambda calculus

From natural numbers to the lambda calculus From natural numbers to the lambda calculus Benedikt Ahrens joint work with Ralph Matthes and Anders Mörtberg Outline 1 About UniMath 2 Signatures and associated syntax Outline 1 About UniMath 2 Signatures

More information

Calculus of Inductive Constructions

Calculus of Inductive Constructions Calculus of Inductive Constructions Software Formal Verification Maria João Frade Departmento de Informática Universidade do Minho 2008/2009 Maria João Frade (DI-UM) Calculus of Inductive Constructions

More information

Topos Theory. Lectures 3-4: Categorical preliminaries II. Olivia Caramello. Topos Theory. Olivia Caramello. Basic categorical constructions

Topos Theory. Lectures 3-4: Categorical preliminaries II. Olivia Caramello. Topos Theory. Olivia Caramello. Basic categorical constructions Lectures 3-4: Categorical preliminaries II 2 / 17 Functor categories Definition Let C and D be two categories. The functor category [C,D] is the category having as objects the functors C D and as arrows

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

3.7 Denotational Semantics

3.7 Denotational Semantics 3.7 Denotational Semantics Denotational semantics, also known as fixed-point semantics, associates to each programming language construct a well-defined and rigorously understood mathematical object. These

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

Second-Order Type Systems

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

More information

Recent Work in Homotopy Type Theory

Recent Work in Homotopy Type Theory Recent Work in Homotopy Type Theory Steve Awodey Carnegie Mellon University AMS Baltimore January 2014 Introduction Homotopy Type Theory is a newly discovered connection between logic and topology, based

More information

An Introduction to Programming and Proving in Agda (incomplete draft)

An Introduction to Programming and Proving in Agda (incomplete draft) An Introduction to Programming and Proving in Agda (incomplete draft) Peter Dybjer January 29, 2018 1 A first Agda module Your first Agda-file is called BoolModule.agda. Its contents are module BoolModule

More information

5. Introduction to the Lambda Calculus. Oscar Nierstrasz

5. Introduction to the Lambda Calculus. Oscar Nierstrasz 5. Introduction to the Lambda Calculus Oscar Nierstrasz Roadmap > What is Computability? Church s Thesis > Lambda Calculus operational semantics > The Church-Rosser Property > Modelling basic programming

More information

Cubical sets as a classifying topos

Cubical sets as a classifying topos Chalmers CMU Now: Aarhus University Homotopy Type Theory The homotopical interpretation of type theory: types as spaces upto homotopy dependent types as fibrations (continuous families of spaces) identity

More information

THE DOLD-KAN CORRESPONDENCE

THE DOLD-KAN CORRESPONDENCE THE DOLD-KAN CORRESPONDENCE 1. Simplicial sets We shall now introduce the notion of a simplicial set, which will be a presheaf on a suitable category. It turns out that simplicial sets provide a (purely

More information

Logic as a framework for NL semantics. Outline. Syntax of FOL [1] Semantic Theory Type Theory

Logic as a framework for NL semantics. Outline. Syntax of FOL [1] Semantic Theory Type Theory Logic as a framework for NL semantics Semantic Theory Type Theory Manfred Pinkal Stefan Thater Summer 2007 Approximate NL meaning as truth conditions. Logic supports precise, consistent and controlled

More information

Programming in Omega Part 1. Tim Sheard Portland State University

Programming in Omega Part 1. Tim Sheard Portland State University Programming in Omega Part 1 Tim Sheard Portland State University Tim Sheard Computer Science Department Portland State University Portland, Oregon PSU PL Research at Portland State University The Programming

More information

Symmetry in Type Theory

Symmetry in Type Theory Google May 29th, 2012 What is Symmetry? Definition Symmetry: Two or more things that initially look distinct, may actually be instances of a more general underlying principle. Why do we care? Simplicity.

More information

Modelling environments in call-by-value programming languages

Modelling environments in call-by-value programming languages Modelling environments in call-by-value programming languages Paul Blain Levy University of Birmingham, Birmingham B15 2TT, UK pbl@cs.bham.ac.uk and John Power 1 University of Edinburgh, Edinburgh EH9

More information

Type Theory in Type Theory using Quotient Inductive Types

Type Theory in Type Theory using Quotient Inductive Types Type Theory in Type Theory using Quotient Inductive Types Thorsten Altenkirch University of Nottingham {txa,auk}@cs.nott.ac.uk Ambrus Kaposi Abstract We present an internal formalisation of dependent type

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

Towards a Logical Reconstruction of Relational Database Theory

Towards a Logical Reconstruction of Relational Database Theory Towards a Logical Reconstruction of Relational Database Theory On Conceptual Modelling, Lecture Notes in Computer Science. 1984 Raymond Reiter Summary by C. Rey November 27, 2008-1 / 63 Foreword DB: 2

More information

Distributed Systems Programming (F21DS1) Formal Verification

Distributed Systems Programming (F21DS1) Formal Verification Distributed Systems Programming (F21DS1) Formal Verification Andrew Ireland Department of Computer Science School of Mathematical and Computer Sciences Heriot-Watt University Edinburgh Overview Focus on

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

Recursively defined cpo algebras

Recursively defined cpo algebras Recursively defined cpo algebras Ohad Kammar and Paul Blain Levy July 13, 2018 Ohad Kammar and Paul Blain Levy Recursively defined cpo algebras July 13, 2018 1 / 16 Outline 1 Bilimit compact categories

More information

Types Summer School Gothenburg Sweden August Dogma oftype Theory. Everything has a type

Types Summer School Gothenburg Sweden August Dogma oftype Theory. Everything has a type Types Summer School Gothenburg Sweden August 2005 Formalising Mathematics in Type Theory Herman Geuvers Radboud University Nijmegen, NL Dogma oftype Theory Everything has a type M:A Types are a bit like

More information

Programming with Math and Logic

Programming with Math and Logic .. Programming with Math and Logic an invitation to functional programming Ed Morehouse Wesleyan University The Plan why fp? terms types interfaces The What and Why of Functional Programming Computing

More information

ABriefOverviewofAgda A Functional Language with Dependent Types

ABriefOverviewofAgda A Functional Language with Dependent Types ABriefOverviewofAgda A Functional Language with Dependent Types Ana Bove, Peter Dybjer, and Ulf Norell e-mail: {bove,peterd,ulfn}@chalmers.se Chalmers University of Technology, Gothenburg, Sweden Abstract.

More information

Safe Stratified Datalog With Integer Order Does not Have Syntax

Safe Stratified Datalog With Integer Order Does not Have Syntax Safe Stratified Datalog With Integer Order Does not Have Syntax Alexei P. Stolboushkin Department of Mathematics UCLA Los Angeles, CA 90024-1555 aps@math.ucla.edu Michael A. Taitslin Department of Computer

More information

Introduction to the Lambda Calculus. Chris Lomont

Introduction to the Lambda Calculus. Chris Lomont Introduction to the Lambda Calculus Chris Lomont 2010 2011 2012 www.lomont.org Leibniz (1646-1716) Create a universal language in which all possible problems can be stated Find a decision method to solve

More information

The Truth about Types. Bartosz Milewski

The Truth about Types. Bartosz Milewski The Truth about Types Bartosz Milewski Truth Truth Logic Types Categories Truth intro Unit type Terminal object true I () : () Proofs Logic Types Categories Proof of proposition A Type A is inhabited Morphism

More information

Program Calculus Calculational Programming

Program Calculus Calculational Programming Program Calculus Calculational Programming National Institute of Informatics June 21 / June 28 / July 5, 2010 Program Calculus Calculational Programming What we will learn? Discussing the mathematical

More information

On a few open problems of the Calculus of Inductive Constructions and on their practical consequences

On a few open problems of the Calculus of Inductive Constructions and on their practical consequences On a few open problems of the Calculus of Inductive Constructions and on their practical consequences Hugo Herbelin PPS, 24 September 2009 (updated May 2010) 1 Outline - From the Calculus of Constructions

More information

Goal. CS152: Programming Languages. Lecture 15 Parametric Polymorphism. What the Library Likes. What The Client Likes. Start simpler.

Goal. CS152: Programming Languages. Lecture 15 Parametric Polymorphism. What the Library Likes. What The Client Likes. Start simpler. Goal Understand what this interface means and why it matters: CS152: Programming Languages Lecture 15 Parametric Polymorphism Dan Grossman Spring 2011 type a mylist; val mt_list : a mylist val cons : a

More information

The Formal Semantics of Programming Languages An Introduction. Glynn Winskel. The MIT Press Cambridge, Massachusetts London, England

The Formal Semantics of Programming Languages An Introduction. Glynn Winskel. The MIT Press Cambridge, Massachusetts London, England The Formal Semantics of Programming Languages An Introduction Glynn Winskel The MIT Press Cambridge, Massachusetts London, England Series foreword Preface xiii xv 1 Basic set theory 1 1.1 Logical notation

More information

Lecture 3: Typed Lambda Calculus and Curry-Howard

Lecture 3: Typed Lambda Calculus and Curry-Howard Lecture 3: Typed Lambda Calculus and Curry-Howard H. Geuvers Radboud University Nijmegen, NL 21st Estonian Winter School in Computer Science Winter 2016 H. Geuvers - Radboud Univ. EWSCS 2016 Typed λ-calculus

More information

Introduction to the Lambda Calculus

Introduction to the Lambda Calculus Introduction to the Lambda Calculus Overview: What is Computability? Church s Thesis The Lambda Calculus Scope and lexical address The Church-Rosser Property Recursion References: Daniel P. Friedman et

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

CSCI.6962/4962 Software Verification Fundamental Proof Methods in Computer Science (Arkoudas and Musser) Chapter p. 1/27

CSCI.6962/4962 Software Verification Fundamental Proof Methods in Computer Science (Arkoudas and Musser) Chapter p. 1/27 CSCI.6962/4962 Software Verification Fundamental Proof Methods in Computer Science (Arkoudas and Musser) Chapter 2.1-2.7 p. 1/27 CSCI.6962/4962 Software Verification Fundamental Proof Methods in Computer

More information

THE FOUNDATIONS OF MATHEMATICS

THE FOUNDATIONS OF MATHEMATICS THE FOUNDATIONS OF MATHEMATICS By: Sterling McKay APRIL 21, 2014 LONE STAR - MONTGOMERY Mentor: William R. Brown, MBA Mckay 1 In mathematics, truth is arguably the most essential of its components. Suppose

More information

CSCC24 Functional Programming Scheme Part 2

CSCC24 Functional Programming Scheme Part 2 CSCC24 Functional Programming Scheme Part 2 Carolyn MacLeod 1 winter 2012 1 Based on slides from Anya Tafliovich, and with many thanks to Gerald Penn and Prabhakar Ragde. 1 The Spirit of Lisp-like Languages

More information

Mathematics for Computer Scientists 2 (G52MC2)

Mathematics for Computer Scientists 2 (G52MC2) Mathematics for Computer Scientists 2 (G52MC2) L07 : Operations on sets School of Computer Science University of Nottingham October 29, 2009 Enumerations We construct finite sets by enumerating a list

More information

Note that in this definition, n + m denotes the syntactic expression with three symbols n, +, and m, not to the number that is the sum of n and m.

Note that in this definition, n + m denotes the syntactic expression with three symbols n, +, and m, not to the number that is the sum of n and m. CS 6110 S18 Lecture 8 Structural Operational Semantics and IMP Today we introduce a very simple imperative language, IMP, along with two systems of rules for evaluation called small-step and big-step semantics.

More information

COMP80 Lambda Calculus Programming Languages Slides Courtesy of Prof. Sam Guyer Tufts University Computer Science History Big ideas Examples:

COMP80 Lambda Calculus Programming Languages Slides Courtesy of Prof. Sam Guyer Tufts University Computer Science History Big ideas Examples: COMP80 Programming Languages Slides Courtesy of Prof. Sam Guyer Lambda Calculus Formal system with three parts Notation for functions Proof system for equations Calculation rules called reduction Idea:

More information

TWO COORDINATIZATION THEOREMS FOR PROJECTIVE PLANES

TWO COORDINATIZATION THEOREMS FOR PROJECTIVE PLANES TWO COORDINATIZATION THEOREMS FOR PROJECTIVE PLANES HARRY ALTMAN A projective plane Π consists of a set of points Π p, a set of lines Π L, and a relation between them, denoted and read on, satisfying the

More information

Lecture 1: Overview

Lecture 1: Overview 15-150 Lecture 1: Overview Lecture by Stefan Muller May 21, 2018 Welcome to 15-150! Today s lecture was an overview that showed the highlights of everything you re learning this semester, which also meant

More information

An introduction to Category Theory for Software Engineers*

An introduction to Category Theory for Software Engineers* An introduction to Category Theory for Software Engineers* Dr Steve Easterbrook Associate Professor, Dept of Computer Science, University of Toronto sme@cs.toronto.edu *slides available at http://www.cs.toronto.edu/~sme/presentations/cat101.pdf

More information

Cubical Homotopy Type Theory

Cubical Homotopy Type Theory Cubical Homotopy Type Theory Steve Awodey Carnegie Mellon University Logic Colloquium and CLMPS August 2015 Outline I. Basic ideas of Homotopy Type Theory. II. The univalence axiom. III. Higher inductive

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

Dependent Types and Irrelevance

Dependent Types and Irrelevance Dependent Types and Irrelevance Christoph-Simon Senjak Technische Universität München Institut für Informatik Boltzmannstraße 3 85748 Garching PUMA Workshop September 2012 Dependent Types Dependent Types

More information

Databases = Categories

Databases = Categories Databases = Categories David I. Spivak dspivak@math.mit.edu Mathematics Department Massachusetts Institute of Technology Presented on 2010/09/16 David I. Spivak (MIT) Databases = Categories Presented on

More information

Foundations and Applications of Higher-Dimensional Directed Type Theory

Foundations and Applications of Higher-Dimensional Directed Type Theory 1 Overview Foundations and Applications of Higher-Dimensional Directed Type Theory Intuitionistic type theory [43] is an expressive formalism that unifies mathematics and computation. A central concept

More information

Lecture 3: Recursion; Structural Induction

Lecture 3: Recursion; Structural Induction 15-150 Lecture 3: Recursion; Structural Induction Lecture by Dan Licata January 24, 2012 Today, we are going to talk about one of the most important ideas in functional programming, structural recursion

More information

9/19/12. Why Study Discrete Math? What is discrete? Sets (Rosen, Chapter 2) can be described by discrete math TOPICS

9/19/12. Why Study Discrete Math? What is discrete? Sets (Rosen, Chapter 2) can be described by discrete math TOPICS What is discrete? Sets (Rosen, Chapter 2) TOPICS Discrete math Set Definition Set Operations Tuples Consisting of distinct or unconnected elements, not continuous (calculus) Helps us in Computer Science

More information

Category Theory & Functional Data Abstraction

Category Theory & Functional Data Abstraction Category Theory & Functional Data Abstraction Brandon Shapiro Math 100b 1. Introduction Throughout mathematics, particularly algebra, there are numerous commonalities between the studies of various objects

More information

Contents. Chapter 1 SPECIFYING SYNTAX 1

Contents. Chapter 1 SPECIFYING SYNTAX 1 Contents Chapter 1 SPECIFYING SYNTAX 1 1.1 GRAMMARS AND BNF 2 Context-Free Grammars 4 Context-Sensitive Grammars 8 Exercises 8 1.2 THE PROGRAMMING LANGUAGE WREN 10 Ambiguity 12 Context Constraints in Wren

More information

CSc 372. Comparative Programming Languages. 2 : Functional Programming. Department of Computer Science University of Arizona

CSc 372. Comparative Programming Languages. 2 : Functional Programming. Department of Computer Science University of Arizona 1/37 CSc 372 Comparative Programming Languages 2 : Functional Programming Department of Computer Science University of Arizona collberg@gmail.com Copyright c 2013 Christian Collberg 2/37 Programming Paradigms

More information

Knowledge Representation and Reasoning Logics for Artificial Intelligence

Knowledge Representation and Reasoning Logics for Artificial Intelligence Knowledge Representation and Reasoning Logics for Artificial Intelligence Stuart C. Shapiro Department of Computer Science and Engineering and Center for Cognitive Science University at Buffalo, The State

More information

3.4 Deduction and Evaluation: Tools Conditional-Equational Logic

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

More information

Z Notation. June 21, 2018

Z Notation. June 21, 2018 Z Notation June 21, 2018 1 Definitions There are many different ways to introduce an object in a Z specification: declarations, abbreviations, axiomatic definitions, and free types. Keep in mind that the

More information

Introduction to dependent types in Coq

Introduction to dependent types in Coq October 24, 2008 basic use of the Coq system In Coq, you can play with simple values and functions. The basic command is called Check, to verify if an expression is well-formed and learn what is its type.

More information

Fundamentals and lambda calculus. Deian Stefan (adopted from my & Edward Yang s CSE242 slides)

Fundamentals and lambda calculus. Deian Stefan (adopted from my & Edward Yang s CSE242 slides) Fundamentals and lambda calculus Deian Stefan (adopted from my & Edward Yang s CSE242 slides) Logistics Assignments: Programming assignment 1 is out Homework 1 will be released tomorrow night Podcasting:

More information

Dynamic Logic David Harel, The Weizmann Institute Dexter Kozen, Cornell University Jerzy Tiuryn, University of Warsaw The MIT Press, Cambridge, Massac

Dynamic Logic David Harel, The Weizmann Institute Dexter Kozen, Cornell University Jerzy Tiuryn, University of Warsaw The MIT Press, Cambridge, Massac Dynamic Logic David Harel, The Weizmann Institute Dexter Kozen, Cornell University Jerzy Tiuryn, University of Warsaw The MIT Press, Cambridge, Massachusetts, 2000 Among the many approaches to formal reasoning

More information

Knowledge Representation and Reasoning Logics for Artificial Intelligence

Knowledge Representation and Reasoning Logics for Artificial Intelligence Knowledge Representation and Reasoning Logics for Artificial Intelligence Stuart C. Shapiro Department of Computer Science and Engineering and Center for Cognitive Science University at Buffalo, The State

More information

ACLT: Algebra, Categories, Logic in Topology - Grothendieck's generalized topological spaces (toposes)

ACLT: Algebra, Categories, Logic in Topology - Grothendieck's generalized topological spaces (toposes) ACLT: Algebra, Categories, Logic in Topology - Grothendieck's generalized topological spaces (toposes) Steve Vickers CS Theory Group Birmingham 1. Sheaves "Sheaf = continuous set-valued map" TACL Tutorial

More information

Lecture Notes on Data Representation

Lecture Notes on Data Representation Lecture Notes on Data Representation 15-814: Types and Programming Languages Frank Pfenning Lecture 9 Tuesday, October 2, 2018 1 Introduction In this lecture we ll see our type system in action. In particular

More information

Notes on categories, the subspace topology and the product topology

Notes on categories, the subspace topology and the product topology Notes on categories, the subspace topology and the product topology John Terilla Fall 2014 Contents 1 Introduction 1 2 A little category theory 1 3 The subspace topology 3 3.1 First characterization of

More information

Textbook: Chapter 6! CS425 Fall 2013 Boris Glavic! Chapter 3: Formal Relational Query. Relational Algebra! Select Operation Example! Select Operation!

Textbook: Chapter 6! CS425 Fall 2013 Boris Glavic! Chapter 3: Formal Relational Query. Relational Algebra! Select Operation Example! Select Operation! Chapter 3: Formal Relational Query Languages CS425 Fall 2013 Boris Glavic Chapter 3: Formal Relational Query Languages Relational Algebra Tuple Relational Calculus Domain Relational Calculus Textbook:

More information

Programming Languages Third Edition

Programming Languages Third Edition Programming Languages Third Edition Chapter 12 Formal Semantics Objectives Become familiar with a sample small language for the purpose of semantic specification Understand operational semantics Understand

More information

Constructing the Propositional Truncation using Non-recursive HITs

Constructing the Propositional Truncation using Non-recursive HITs Constructing the Propositional Truncation using Non-recursive HITs Floris van Doorn Carnegie Mellon University January 19, 2016 Floris van Doorn (CMU) Constructing Propositional Truncation January 19,

More information

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

CMPS 277 Principles of Database Systems. https://courses.soe.ucsc.edu/courses/cmps277/fall11/01. Lecture #11 CMPS 277 Principles of Database Systems https://courses.soe.ucsc.edu/courses/cmps277/fall11/01 Lecture #11 1 Limitations of Relational Algebra & Relational Calculus Outline: Relational Algebra and Relational

More information

DATABASE THEORY. Lecture 11: Introduction to Datalog. TU Dresden, 12th June Markus Krötzsch Knowledge-Based Systems

DATABASE THEORY. Lecture 11: Introduction to Datalog. TU Dresden, 12th June Markus Krötzsch Knowledge-Based Systems DATABASE THEORY Lecture 11: Introduction to Datalog Markus Krötzsch Knowledge-Based Systems TU Dresden, 12th June 2018 Announcement All lectures and the exercise on 19 June 2018 will be in room APB 1004

More information

MLW. Henk Barendregt and Freek Wiedijk assisted by Andrew Polonsky. March 26, Radboud University Nijmegen

MLW. Henk Barendregt and Freek Wiedijk assisted by Andrew Polonsky. March 26, Radboud University Nijmegen 1 MLW Henk Barendregt and Freek Wiedijk assisted by Andrew Polonsky Radboud University Nijmegen March 26, 2012 inductive types 2 3 inductive types = types consisting of closed terms built from constructors

More information

Type Systems COMP 311 Rice University Houston, Texas

Type Systems COMP 311 Rice University Houston, Texas Rice University Houston, Texas 1 Type Systems for Programming Language were invented by mathematicians before electronic computers were invented. What is a type? A meaningful subset of the set of the domain

More information

Fundamentals and lambda calculus

Fundamentals and lambda calculus Fundamentals and lambda calculus Again: JavaScript functions JavaScript functions are first-class Syntax is a bit ugly/terse when you want to use functions as values; recall block scoping: (function ()

More information

MAT 3271: Selected Solutions to the Assignment 6

MAT 3271: Selected Solutions to the Assignment 6 Chapter 2: Major Exercises MAT 3271: Selected Solutions to the Assignment 6 1. Since a projective plan is a model of incidence geometry, Incidence Axioms 1-3 and Propositions 2.1-2.5 (which follow logically

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

A Model of Type Theory in Simplicial Sets

A Model of Type Theory in Simplicial Sets A Model of Type Theory in Simplicial Sets A brief introduction to Voevodsky s Homotopy Type Theory T. Streicher Fachbereich 4 Mathematik, TU Darmstadt Schlossgartenstr. 7, D-64289 Darmstadt streicher@mathematik.tu-darmstadt.de

More information

INTRODUCTION TO ALGEBRAIC GEOMETRY, CLASS 6

INTRODUCTION TO ALGEBRAIC GEOMETRY, CLASS 6 INTRODUCTION TO ALGEBRAIC GEOMETRY, CLASS 6 RAVI VAKIL Contents 1. Loose ends 1 2. Playing around with the structure sheaf of the plane 2 3. Defining affine varieties and prevarieties 3 At the end, I collected

More information