Computational Higher Type Theory

Size: px
Start display at page:

Download "Computational Higher Type Theory"

Transcription

1 Computational Higher Type Theory Robert Harper Computer Science Department Carnegie Mellon University HoTT Workshop 2016 Leeds, UK

2 Thanks Joint work with Carlo Angiuli (CMU) and Todd Wilson (CSUF). Thanks to Dan Licata for many conversations. Thanks to HoTT Organizers for the invitation! Supported by AFOSR MURI FA

3 Two Kinds of Type Theory Two traditions in type theory, both embodied by Martin-Löf: Formal, or axiomatic, as in ITT and HoTT. Computational, or semantic, as in CMCP.

4 Two Kinds of Type Theory Two traditions in type theory, both embodied by Martin-Löf: Formal, or axiomatic, as in ITT and HoTT. Computational, or semantic, as in CMCP. Most work in HoTT has taken place in the formal setting. Univalence Axiom, subsuming Function Extensionality. Higher Inductive Types, supporting truncation, etc.

5 Formal Type Theory Martin-Löf; Coquand; HoTT Formal type theory is inductively defined by rules: Formation: Γ A type, Γ M : A. Definitional equivalence: Γ A B, Γ M N : A.

6 Formal Type Theory Martin-Löf; Coquand; HoTT Formal type theory is inductively defined by rules: Formation: Γ A type, Γ M : A. Definitional equivalence: Γ A B, Γ M N : A. Axioms and rules are chosen to ensure: Not non-constructive, eg no unrestricted LEM. Formal correspondence to logics, eg HA, IHOL. Decidability of all assertions.

7 Formal Type Theory Martin-Löf; Coquand; HoTT Formal type theory is inductively defined by rules: Formation: Γ A type, Γ M : A. Definitional equivalence: Γ A B, Γ M N : A. Axioms and rules are chosen to ensure: Not non-constructive, eg no unrestricted LEM. Formal correspondence to logics, eg HA, IHOL. Decidability of all assertions. Choice of rules can be delicate, eg what is definitional equivalence?

8 Formal Type Theory Emphasis is on formal proof. Γ M : A encodes proof checking. Tactics and decision procedures find proofs.

9 Formal Type Theory Emphasis is on formal proof. Γ M : A encodes proof checking. Tactics and decision procedures find proofs. Inductive definition yields a mapping out property: Assign meaning to types and terms. Associate invariants with types, eg normalization.

10 Formal Type Theory Emphasis is on formal proof. Γ M : A encodes proof checking. Tactics and decision procedures find proofs. Inductive definition yields a mapping out property: Assign meaning to types and terms. Associate invariants with types, eg normalization. Adding axioms disrupts these properties!

11 Semantic Type Theory Martin-Löf; Constable, et al Meaning explanations define types and elements semantically: Computational: as programs with deterministic dynamics. Mathematical: using inchoate concepts of set and function.

12 Semantic Type Theory Martin-Löf; Constable, et al Meaning explanations define types and elements semantically: Computational: as programs with deterministic dynamics. Mathematical: using inchoate concepts of set and function. Computational meaning explanation: type theory as a prog lang. Types are behavioral specifications. Types and objects are programs that execute.

13 Semantic Type Theory Martin-Löf; Constable, et al Meaning explanations define types and elements semantically: Computational: as programs with deterministic dynamics. Mathematical: using inchoate concepts of set and function. Computational meaning explanation: type theory as a prog lang. Types are behavioral specifications. Types and objects are programs that execute. Inverts conceptual order compared to formal type theory: Type theory as a theory of truth. Proof theory accesses the truth.

14 Computational Meaning Explanation Martin-Löf: Constr. Math. and Comp. Prog. Start with computation on closed expressions (types and terms): Transition: M M, one step of execution. Termination: M val is canonical/complete.

15 Computational Meaning Explanation Martin-Löf: Constr. Math. and Comp. Prog. Start with computation on closed expressions (types and terms): Transition: M M, one step of execution. Termination: M val is canonical/complete. Define exact equality of closed types and terms: Type equality: A =. B type [Ψ]. Term equality in a type: M =. N A [Ψ].

16 Computational Meaning Explanation Martin-Löf: Constr. Math. and Comp. Prog. Start with computation on closed expressions (types and terms): Transition: M M, one step of execution. Termination: M val is canonical/complete. Define exact equality of closed types and terms: Type equality: A =. B type [Ψ]. Term equality in a type: M =. N A [Ψ]. Extend to open forms by functionality aka extensionality: Types: a 1 :A 1,..., a n :A n A =. B type [Ψ]. Terms: a 1 :A 1,..., a n :A n M =. N A [Ψ].

17 Computational Meaning Explanation Judgments are not intended to be decidable. Quantifier complexity is arbitrarily high, not merely r.e. Specifies execution behavior, not syntactic formation.

18 Computational Meaning Explanation Judgments are not intended to be decidable. Quantifier complexity is arbitrarily high, not merely r.e. Specifies execution behavior, not syntactic formation. Two essential moves for higher-dimensionality: Judgmental account of identifications. Exact equality of types and elements at all dimensions.

19 Cubical Programming Language Licata, Brunerie; Coquand, et al. Syntax is organized cubically: Points correspond to ordinary terms and types. Lines represent identifications. Squares represent homotopies, etc.

20 Cubical Programming Language Licata, Brunerie; Coquand, et al. Syntax is organized cubically: Points correspond to ordinary terms and types. Lines represent identifications. Squares represent homotopies, etc. Cartesian cubes are specified by a dimension context, Ψ: Finite set of dimension variables x, y, z,....

21 Cubical Programming Language Licata, Brunerie; Coquand, et al. Syntax is organized cubically: Points correspond to ordinary terms and types. Lines represent identifications. Squares represent homotopies, etc. Cartesian cubes are specified by a dimension context, Ψ: Finite set of dimension variables x, y, z,.... Substitutions ψ : Ψ Ψ send x Ψ to ψ(x) = 0/1/x Ψ.

22 Cubical Programming Language Substitutions define the aspects of a cube E: Faces: E 0/x, E 1/x. Diagonals: E x, x /x, y. Degeneracy: silent/implicit. y x E 0/x 0/y E 0/y E 1/x 0/y E 0/x E E 1/x E 0/x 1/y E 1/y E 1/x 1/y

23 Cubical Programming Language Conventional functional programming constructs: Booleans, pairs, functions. Lazy dynamics (weak head reduction)

24 Cubical Programming Language Conventional functional programming constructs: Booleans, pairs, functions. Lazy dynamics (weak head reduction) Unconventional functional programming constructs: Circle: S 1, base, loop x, S 1 -elim a.a (M; M b, x.m l ). Negation: not x, a type line, and glueing, notel x (M). Kan operations: coe, hcom.

25 Cubical Programming Language Conventional functional programming constructs: Booleans, pairs, functions. Lazy dynamics (weak head reduction) Unconventional functional programming constructs: Circle: S 1, base, loop x, S 1 -elim a.a (M; M b, x.m l ). Negation: not x, a type line, and glueing, notel x (M). Kan operations: coe, hcom. The Kan operations are computational content of the Kan condition (cf, LB14, CCHM16).

26 Kan Operations Coercion along a type line: coe r r x.a (M). Heterogeneous along line x.a. Evaluates A to effect coercion from A r/x to A r /x. Composition: hcom r i A (r r, M; y.n ε i ).

27 Kan Operations Coercion along a type line: coe r r x.a (M). Heterogeneous along line x.a. Evaluates A to effect coercion from A r/x to A r /x. Composition: hcom r i A (r r, M; y.ni ε). Homogeneous: within type, not line, A.

28 Kan Operations Coercion along a type line: coe r r x.a (M). Heterogeneous along line x.a. Evaluates A to effect coercion from A r/x to A r /x. Composition: hcom r i A (r r, M; y.ni ε). Homogeneous: within type, not line, A. The start r and end r dimensions.

29 Kan Operations Coercion along a type line: coe r r x.a (M). Heterogeneous along line x.a. Evaluates A to effect coercion from A r/x to A r /x. Composition: hcom r i A (r r, M; y.ni ε). Homogeneous: within type, not line, A. The start r and end r dimensions. The cap M is the starting cube.

30 Kan Operations Coercion along a type line: coe r r x.a (M). Heterogeneous along line x.a. Evaluates A to effect coercion from A r/x to A r /x. Composition: hcom r i A (r r, M; y.ni ε). Homogeneous: within type, not line, A. The start r and end r dimensions. The cap M is the starting cube. The tubes y.n ε i with extent r i in dimension y i.

31 Kan Operations Coercion along a type line: coe r r x.a (M). Heterogeneous along line x.a. Evaluates A to effect coercion from A r/x to A r /x. Composition: hcom r i A (r r, M; y.ni ε). Homogeneous: within type, not line, A. The start r and end r dimensions. The cap M is the starting cube. The tubes y.n ε i with extent r i in dimension y i. Evaluates A to define composite, which may or may not be the hcom itself.

32 Two-Dimensional Compositions y x M hcom x A(0 0, M; y.n 0, y.n 1 ) N 0 N 1 N 0 1/y N 1 1/y

33 Two-Dimensional Compositions y x M N 0 N 1 N 0 1/y N 1 1/y hcom x A(0 1, M; y.n 0, y.n 1 )

34 Two-Dimensional Compositions y x z M N 0 N 1 hcom x A(0 z, M; y.n 0, y.n 1 ) N 0 1/y N 1 1/y

35 Cubical Meaning Explanation Explanation proceeds in stages: Define the canonical types and their elements at each dimension Ψ. Define pre-types to be cubical, ie with coherent aspects. Define types to be Kan pre-types.

36 Cubical Meaning Explanation Explanation proceeds in stages: Define the canonical types and their elements at each dimension Ψ. Define pre-types to be cubical, ie with coherent aspects. Define types to be Kan pre-types. The main criteria for a higher type system: All aspects of a type or element must be types or elements. Taking aspects must commute with evaluation. Equal types must have the same element equality. Equal types must be equally Kan.

37 Cubical Type Systems A cubical type system consists of a family of per s:

38 Cubical Type Systems A cubical type system consists of a family of per s: Canonical types: A 0 Ψ B 0.

39 Cubical Type Systems A cubical type system consists of a family of per s: Canonical types: A 0 Ψ B 0. Canonical elements of a canonical type: M 0 Ψ A 0 N 0.

40 Cubical Type Systems A cubical type system consists of a family of per s: Canonical types: A 0 Ψ B 0. Canonical elements of a canonical type: M 0 Ψ A 0 N 0. Type equality: If A 0 Ψ B 0, then Ψ A 0 is Ψ B 0.

41 Cubical Type Systems A cubical type system consists of a family of per s: Canonical types: A 0 Ψ B 0. Canonical elements of a canonical type: M 0 Ψ A 0 N 0. Type equality: If A 0 Ψ B 0, then Ψ A 0 is Ψ B 0. Extend to general closed expressions by evaluation:

42 Cubical Type Systems A cubical type system consists of a family of per s: Canonical types: A 0 Ψ B 0. Canonical elements of a canonical type: M 0 Ψ A 0 N 0. Type equality: If A 0 Ψ B 0, then Ψ A 0 is Ψ B 0. Extend to general closed expressions by evaluation: A Ψ B iff A A 0 and B B 0 and A 0 Ψ B 0.

43 Cubical Type Systems A cubical type system consists of a family of per s: Canonical types: A 0 Ψ B 0. Canonical elements of a canonical type: M 0 Ψ A 0 N 0. Type equality: If A 0 Ψ B 0, then Ψ A 0 is Ψ B 0. Extend to general closed expressions by evaluation: A Ψ B iff A A 0 and B B 0 and A 0 Ψ B 0. M Ψ A N iff M M 0, N N 0, A A 0, and M 0 Ψ A 0 N 0.

44 Pre-Types: Coherent Aspects Pre-types A pretype [Ψ] must have coherent aspects:

45 Pre-Types: Coherent Aspects Pre-types A pretype [Ψ] must have coherent aspects: Let ψ 1 : Ψ 1 Ψ and ψ 2 : Ψ 2 Ψ 1.

46 Pre-Types: Coherent Aspects Pre-types A pretype [Ψ] must have coherent aspects: Let ψ 1 : Ψ 1 Ψ and ψ 2 : Ψ 2 Ψ 1. Let Aψ 1 A 1 val, and A 1 ψ 2 A 2 val, and Aψ 2 ψ 1 A 12 val.

47 Pre-Types: Coherent Aspects Pre-types A pretype [Ψ] must have coherent aspects: Let ψ 1 : Ψ 1 Ψ and ψ 2 : Ψ 2 Ψ 1. Let Aψ 1 A 1 val, and A 1 ψ 2 A 2 val, and Aψ 2 ψ 1 A 12 val. Require: ψ 1 A A 1 ψ 1ψ 2 ψ 2 A 12 Ψ2 A 2

48 Pre-Types: Coherent Aspects Pre-types A pretype [Ψ] must have coherent aspects: Let ψ 1 : Ψ 1 Ψ and ψ 2 : Ψ 2 Ψ 1. Let Aψ 1 A 1 val, and A 1 ψ 2 A 2 val, and Aψ 2 ψ 1 A 12 val. Require: ψ 1 A A 1 ψ 1ψ 2 ψ 2 A 12 Ψ2 A 2 Similarly for exact equality of types and of elements: substitute-then-evaluate is functorial.

49 Pre-Types and Types A pretype [Ψ] is cubical: its values have coherent aspects: If ψ : Ψ Ψ and M Ψ Aψ N, then M. = N Aψ [Ψ ].

50 Pre-Types and Types A pretype [Ψ] is cubical: its values have coherent aspects: If ψ : Ψ Ψ and M Ψ Aψ N, then M. = N Aψ [Ψ ]. A type is a Kan pre-type:

51 Pre-Types and Types A pretype [Ψ] is cubical: its values have coherent aspects: If ψ : Ψ Ψ and M Ψ Aψ N, then M. = N Aψ [Ψ ]. A type is a Kan pre-type: Supports coercion and composition.

52 Pre-Types and Types A pretype [Ψ] is cubical: its values have coherent aspects: If ψ : Ψ Ψ and M Ψ Aψ N, then M. = N Aψ [Ψ ]. A type is a Kan pre-type: Supports coercion and composition. Certain equational requirements are met.

53 Kan Conditions for Coercion For any ψ : (Ψ, x) Ψ, if M Aψ r/x [Ψ ], then coe r r x.aψ (M) Aψ r /x [Ψ ].

54 Kan Conditions for Coercion For any ψ : (Ψ, x) Ψ, if M Aψ r/x [Ψ ], then coe r r x.aψ (M) Aψ r /x [Ψ ]. For any ψ : (Ψ, x) Ψ, if M Aψ r/x [Ψ ], then coe r r x.aψ (M). = M Aψ r/x [Ψ ].

55 Kan Conditions for Composition For any ψ : Ψ Ψ, if M Aψ [Ψ ],

56 Kan Conditions for Composition For any ψ : Ψ Ψ, if M Aψ [Ψ ], Ni ε. = Nj ε Aψ [Ψ, y r i = ε, r j = ε ] (all i, j, ε, and ε )

57 Kan Conditions for Composition For any ψ : Ψ Ψ, if M Aψ [Ψ ], Ni ε. = Nj ε Aψ [Ψ, y r i = ε, r j = ε ] (all i, j, ε, and ε ) Ni ε r/y =. M Aψ [Ψ r i = ε] (all i and ε)

58 Kan Conditions for Composition For any ψ : Ψ Ψ, if M Aψ [Ψ ], Ni ε. = Nj ε Aψ [Ψ, y r i = ε, r j = ε ] (all i, j, ε, and ε ) Ni ε r/y =. M Aψ [Ψ r i = ε] (all i and ε) then

59 Kan Conditions for Composition For any ψ : Ψ Ψ, if M Aψ [Ψ ], Ni ε. = Nj ε Aψ [Ψ, y r i = ε, r j = ε ] (all i, j, ε, and ε ) Ni ε r/y =. M Aψ [Ψ r i = ε] (all i and ε) then hcom r i Aψ (r r, M; y.n ε i ) Aψ [Ψ ].

60 Kan Conditions for Composition For any ψ : Ψ Ψ, if M Aψ [Ψ ], Ni ε. = Nj ε Aψ [Ψ, y r i = ε, r j = ε ] (all i, j, ε, and ε ) Ni ε r/y =. M Aψ [Ψ r i = ε] (all i and ε) then hcom r i Aψ (r r, M; y.ni ε) Aψ [Ψ ]. hcom r i Aψ (r r, M; y.ni ε) =. M Aψ [Ψ ].

61 Kan Conditions for Composition For any ψ : Ψ Ψ, if M Aψ [Ψ ], Ni ε. = Nj ε Aψ [Ψ, y r i = ε, r j = ε ] (all i, j, ε, and ε ) Ni ε r/y =. M Aψ [Ψ r i = ε] (all i and ε) then hcom r i Aψ (r r, M; y.ni ε) Aψ [Ψ ]. hcom r i Aψ (r r, M; y.ni ε) =. M Aψ [Ψ ]. hcom r i Aψ (r r, M; y.ni ε) =. Ni ε r /y Aψ [Ψ ] if r i = ε.

62 Kan Conditions for Composition For any ψ : Ψ Ψ, if M Aψ [Ψ ], Ni ε. = Nj ε Aψ [Ψ, y r i = ε, r j = ε ] (all i, j, ε, and ε ) Ni ε r/y =. M Aψ [Ψ r i = ε] (all i and ε) then hcom r i Aψ (r r, M; y.ni ε) Aψ [Ψ ]. hcom r i Aψ (r r, M; y.ni ε) =. M Aψ [Ψ ]. hcom r i Aψ (r r, M; y.ni ε) =. Ni ε r /y Aψ [Ψ ] if r i = ε. Constraints limit applicable substitutions; conditions can be vacuous.

63 Defining Booleans The Booleans are defined as a higher inductive type.

64 Defining Booleans The Booleans are defined as a higher inductive type. Innocent of its status as a set.

65 Defining Booleans The Booleans are defined as a higher inductive type. Innocent of its status as a set. Certain hcom s are values.

66 Defining Booleans The Booleans are defined as a higher inductive type. Innocent of its status as a set. Certain hcom s are values. Could also define a strict variant.

67 Defining Booleans The Booleans are defined as a higher inductive type. Innocent of its status as a set. Certain hcom s are values. Could also define a strict variant. The dynamics of the conditional accounts for true and false, as usual. hcom s that are values.

68 Boolean Dynamics bool val ri = x 1,..., x i 1, ε, r i+1,..., r n hcom r i bool (r r, M; y.ni ε) Nε i r /y hcom x 1,...,x n bool r = r (r r, M; y.ni ε ) M true val false val r r hcom x 1,...,x n bool (r r, M; y.ni ε) val

69 Boolean Dynamics M M if a.a (M; T, F ) if a.a (M ; T, F ) if a.a (true; T, F ) T r r if a.a (false; T, F ) F H = hcom x 1,...,x n bool (r z, M; y.ni ε) if a.a (hcom x 1,...,x n bool (r r, M; y.n ε i ); T, F ) com x 1,...,x n z.a[h/a] (r r, if a.a (M; T, F ); y.if a.a (N ε i ; T, F )) coe r r x.bool (M) M

70 Canonical Booleans A CTS has booleans if bool Ψ bool and Ψ bool is least s.t.

71 Canonical Booleans A CTS has booleans if bool Ψ bool and Ψ bool true Ψ bool true, is least s.t.

72 Canonical Booleans A CTS has booleans if bool Ψ bool and Ψ bool true Ψ bool true, false Ψ bool false, and is least s.t.

73 Canonical Booleans A CTS has booleans if bool Ψ bool and Ψ bool is least s.t. true Ψ bool true, false Ψ bool false, and hcom x i bool (r r, M; y.ni ε) Ψ,x bool hcom x i bool (r r, O; y.pi ε) when

74 Canonical Booleans A CTS has booleans if bool Ψ bool and Ψ bool true Ψ bool true, is least s.t. false Ψ bool false, and hcom x i bool (r r, M; y.ni ε) Ψ,x bool hcom x i bool (r r, O; y.pi ε) when r r,

75 Canonical Booleans A CTS has booleans if bool Ψ bool and Ψ bool true Ψ bool true, is least s.t. false Ψ bool false, and hcom x i bool (r r, M; y.ni ε) Ψ,x bool hcom x i bool (r r, O; y.pi ε) when r r, M =. O bool [Ψ],

76 Canonical Booleans A CTS has booleans if bool Ψ bool and Ψ bool true Ψ bool true, is least s.t. false Ψ bool false, and hcom x i bool (r r, M; y.ni ε) Ψ,x bool hcom x i bool (r r, O; y.pi ε) when r r, M =. O bool [Ψ], Ni ε. = Nj ε bool [Ψ, y x i = ε, x j = ε ] for all i, j, ε, ε,

77 Canonical Booleans A CTS has booleans if bool Ψ bool and Ψ bool true Ψ bool true, is least s.t. false Ψ bool false, and hcom x i bool (r r, M; y.ni ε) Ψ,x bool hcom x i bool (r r, O; y.pi ε) when r r, M =. O bool [Ψ], Ni ε. = Nj ε bool [Ψ, y x i = ε, x j = ε ] for all i, j, ε, ε, Ni ε. = Pi ε bool [Ψ, y x i = ε] for all i, ε, and

78 Canonical Booleans A CTS has booleans if bool Ψ bool and Ψ bool true Ψ bool true, is least s.t. false Ψ bool false, and hcom x i bool (r r, M; y.ni ε) Ψ,x bool hcom x i bool (r r, O; y.pi ε) when r r, M =. O bool [Ψ], Ni ε. = Nj ε bool [Ψ, y x i = ε, x j = ε ] for all i, j, ε, ε, Ni ε. = Pi ε bool [Ψ, y x i = ε] for all i, ε, and Ni ε r/y =. M bool [Ψ x i = ε] for all i, ε.

79 Canonical Booleans A CTS has booleans if bool Ψ bool and Ψ bool true Ψ bool true, is least s.t. false Ψ bool false, and hcom x i bool (r r, M; y.ni ε) Ψ,x bool hcom x i bool (r r, O; y.pi ε) when r r, M =. O bool [Ψ], Ni ε. = Nj ε bool [Ψ, y x i = ε, x j = ε ] for all i, j, ε, ε, Ni ε. = Pi ε bool [Ψ, y x i = ε] for all i, ε, and Ni ε r/y =. M bool [Ψ x i = ε] for all i, ε. Guarantees canonicity for closed points in bool: all evaluate to either true or false.

80 Not as a Type Line Define not x as a type line between bool and bool.

81 Not as a Type Line Define not x as a type line between bool and bool. Given by negation (swapping) as a (strict) equivalence.

82 Not as a Type Line Define not x as a type line between bool and bool. Given by negation (swapping) as a (strict) equivalence. Example of univalence principle.

83 Not as a Type Line Define not x as a type line between bool and bool. Given by negation (swapping) as a (strict) equivalence. Example of univalence principle. The term notel x (M) not x [Ψ, x] is a use of gluing [CCHM16]: y x bool not( ) id bool not x bool

84 Other Types Considered Identification type Id x.a (M, N) is dimension shift.

85 Other Types Considered Identification type Id x.a (M, N) is dimension shift. Same as LB14 and CCHM16, but not HoTT.

86 Other Types Considered Identification type Id x.a (M, N) is dimension shift. Same as LB14 and CCHM16, but not HoTT. Requires multiple tubes in hcom.

87 Other Types Considered Identification type Id x.a (M, N) is dimension shift. Same as LB14 and CCHM16, but not HoTT. Requires multiple tubes in hcom. Should be possible to define based path type, etc.

88 Other Types Considered Identification type Id x.a (M, N) is dimension shift. Same as LB14 and CCHM16, but not HoTT. Requires multiple tubes in hcom. Should be possible to define based path type, etc. The circle S 1 is straightforward (no worse than bool).

89 Other Types Considered Identification type Id x.a (M, N) is dimension shift. Same as LB14 and CCHM16, but not HoTT. Requires multiple tubes in hcom. Should be possible to define based path type, etc. The circle S 1 is straightforward (no worse than bool). Dependent function and product types (Pi s and Sigma s) with full universal properties.

90 Whither Proof Theory? Validates expected formal rules. NuPRL rules for given constructs are valid. LB14 rules for Kan cubical type theories are valid.

91 Whither Proof Theory? Validates expected formal rules. NuPRL rules for given constructs are valid. LB14 rules for Kan cubical type theories are valid. May be seen as cubical extensional realizability interpretation. Elicits computational content of proofs. Entails canonicity: Boolean points evaluate to true or false. Cubical intensional realizability via open terms?

92 Whither Proof Theory? Validates expected formal rules. NuPRL rules for given constructs are valid. LB14 rules for Kan cubical type theories are valid. May be seen as cubical extensional realizability interpretation. Elicits computational content of proofs. Entails canonicity: Boolean points evaluate to true or false. Cubical intensional realizability via open terms? But why limit attention to these formal theories?

93 Whither Proof Theory? There is more to type theory than just known formal logics. Richer notions of computation: partiality, non-determinism, recursive types, exceptions, state,.... [Constable, et al.]

94 Whither Proof Theory? There is more to type theory than just known formal logics. Richer notions of computation: partiality, non-determinism, recursive types, exceptions, state,.... [Constable, et al.] Internalize exact equality by handling pre-types as well as types, a la VV s HTS.

95 Whither Proof Theory? There is more to type theory than just known formal logics. Richer notions of computation: partiality, non-determinism, recursive types, exceptions, state,.... [Constable, et al.] Internalize exact equality by handling pre-types as well as types, a la VV s HTS. Computational higher type theory as a programming language?

96 Whither Proof Theory? There is more to type theory than just known formal logics. Richer notions of computation: partiality, non-determinism, recursive types, exceptions, state,.... [Constable, et al.] Internalize exact equality by handling pre-types as well as types, a la VV s HTS. Computational higher type theory as a programming language? Agda syntax and checking, but with a dynamics.

97 Whither Proof Theory? There is more to type theory than just known formal logics. Richer notions of computation: partiality, non-determinism, recursive types, exceptions, state,.... [Constable, et al.] Internalize exact equality by handling pre-types as well as types, a la VV s HTS. Computational higher type theory as a programming language? Agda syntax and checking, but with a dynamics. Idris for verified programming.

98 Whither Proof Theory? There is more to type theory than just known formal logics. Richer notions of computation: partiality, non-determinism, recursive types, exceptions, state,.... [Constable, et al.] Internalize exact equality by handling pre-types as well as types, a la VV s HTS. Computational higher type theory as a programming language? Agda syntax and checking, but with a dynamics. Idris for verified programming. Computation model induces dynamics of explicitly typed languages.

99 Full account of univalence for all types. Ongoing and Future Work

100 Ongoing and Future Work Full account of univalence for all types. Not tied to a universe (which are only for size issues). Currently exploring glueing [CCHM]. Are cartesian cubes workable? (So far, so good.)

101 Ongoing and Future Work Full account of univalence for all types. Not tied to a universe (which are only for size issues). Currently exploring glueing [CCHM]. Are cartesian cubes workable? (So far, so good.) Implementation in Sterling s RedPRL (redprl.org). NuPRL-like refinement rules. Richer notion of tactics. Name generation is primitive (cf continuity principle).

102 References Stuart F Allen, Mark Bickford, Robert L Constable, Richard Eaton, Christoph Kreitz, Lori Lorigo, and Evan Moran. Innovations in computational type theory using Nuprl. Journal of Applied Logic, 4(4): , Carlo Angiuli and Robert Harper. Computational higher type theory II: Dependent cubical realizability. Preprint, June Carlo Angiuli, Robert Harper, and Todd Wilson. Computational higher type theory I: Abstract cubical realizability. Preprint, April Marc Bezem, Thierry Coquand, and Simon Huber. A model of type theory in cubical sets. In 19th International Conference on Types for Proofs and Programs (TYPES 2013), volume 26, pages , Cyril Cohen, Thierry Coquand, Simon Huber, and Anders Mörtberg. Cubical type theory: a constructive interpretation of the univalence axiom. (To appear), January Daniel R. Licata and Guillaume Brunerie. A cubical type theory, November Talk at Oxford Homotopy Type Theory Workshop.

Computational Higher-Dimensional Type Theory

Computational Higher-Dimensional Type Theory 1 Computational Higher-Dimensional Type Theory Carlo Angiuli 1 Robert Harper 1 Todd Wilson 2 1 Carnegie Mellon University 2 California State University, Fresno January 20, 2017 Homotopy Type Theory (HoTT)

More information

Cubical Computational Type Theory & RedPRL

Cubical Computational Type Theory & RedPRL 2018.02.07 Cornell Cubical Computational Type Theory & RedPRL >> redprl.org >> Carlo Angiuli Evan Cavallo (*) Favonia Bob Harper Dan Licata Jon Sterling Todd Wilson 1 Vladimir Voevodsky 1966-2017 2 Cubical

More information

The RedPRL Proof Assistant (Invited Paper)

The RedPRL Proof Assistant (Invited Paper) The RedPRL Proof Assistant (Invited Paper) Carlo Angiuli Carnegie Mellon University cangiuli@cs.cmu.edu Evan Cavallo Carnegie Mellon University ecavallo@cs.cmu.edu Kuen-Bang Hou (Favonia) Institute for

More information

A Pronominal Account of Binding and Computation

A Pronominal Account of Binding and Computation A Pronominal Account of Binding and Computation Robert Harper Carnegie Mellon University TAASN March 2009 Thanks Thanks to Daniel R. Licata and Noam Zeilberger, my collaborators on this work. Thanks to

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

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

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

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

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

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

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

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

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

Programming and Proving with Higher Inductive Types

Programming and Proving with Higher Inductive Types Programming and Proving with Higher Inductive Types Dan Licata Wesleyan University Department of Mathematics and Computer Science Constructive Type Theory Three senses of constructivity: [Martin-Löf] 2

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

Research Statement. Daniel R. Licata

Research Statement. Daniel R. Licata Research Statement Daniel R. Licata I study programming languages, with a focus on applications of type theory and logic. I have published papers in major conferences in my area (POPL 2012, MFPS 2011,

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

Formalizing the Halting Problem in a Constructive Type Theory

Formalizing the Halting Problem in a Constructive Type Theory Formalizing the Halting Problem in a Constructive Type Theory Kristofer Johannisson Department of Computing Science, Chalmers University of Technology, SE-412 96 Göteborg, Sweden. krijo@cs.chalmers.se

More information

An Annotated Language

An Annotated Language Hoare Logic An Annotated Language State and Semantics Expressions are interpreted as functions from states to the corresponding domain of interpretation Operators have the obvious interpretation Free of

More information

Unfolding FOLDS. Matthew Weaver and Dimitris Tsementzis. HoTT/UF Workshop. Sept. 9, 2017

Unfolding FOLDS. Matthew Weaver and Dimitris Tsementzis. HoTT/UF Workshop. Sept. 9, 2017 Unfolding FOLDS HoTT/UF Workshop Sept. 9, 2017 Matthew Weaver and Dimitris Tsementzis Princeton Rutgers The Syntax of Syntax Type theory has a rich syntax which is why we love it! and is also what makes

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

Representability of Homotopy Groups in Type Theory

Representability of Homotopy Groups in Type Theory Representability of Homotopy Groups in Type Theory Brandon Shapiro Constructive Type Theory The emerging field of homotopy type theory is built around the idea that in intensive type theory types can be

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

Denotational Semantics. Domain Theory

Denotational Semantics. Domain Theory Denotational Semantics and Domain Theory 1 / 51 Outline Denotational Semantics Basic Domain Theory Introduction and history Primitive and lifted domains Sum and product domains Function domains Meaning

More information

The semantics of a programming language is concerned with the meaning of programs, that is, how programs behave when executed on computers.

The semantics of a programming language is concerned with the meaning of programs, that is, how programs behave when executed on computers. Semantics The semantics of a programming language is concerned with the meaning of programs, that is, how programs behave when executed on computers. The semantics of a programming language assigns a precise

More information

Softwaretechnik. Lecture 03: Types and Type Soundness. Peter Thiemann. University of Freiburg, Germany SS 2008

Softwaretechnik. Lecture 03: Types and Type Soundness. Peter Thiemann. University of Freiburg, Germany SS 2008 Softwaretechnik Lecture 03: Types and Type Soundness Peter Thiemann University of Freiburg, Germany SS 2008 Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 1 / 35 Table of Contents Types and Type correctness

More information

Design of an Interactive Digital Library of Formal Algorithmic Knowledge

Design of an Interactive Digital Library of Formal Algorithmic Knowledge OFFICE OF NAVAL RESEARCH (ONR) CORNELL UNIVERSITY DEPARTMENT OF COMPUTER SCIENCE Design of an Interactive Digital Library of Formal Algorithmic Knowledge December 12, 2002 / Stanford University Stuart

More information

CLF: A logical framework for concurrent systems

CLF: A logical framework for concurrent systems CLF: A logical framework for concurrent systems Thesis Proposal Kevin Watkins Carnegie Mellon University Committee: Frank Pfenning, CMU (Chair) Stephen Brookes, CMU Robert Harper, CMU Gordon Plotkin, University

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

(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

Topic 1: What is HoTT and why?

Topic 1: What is HoTT and why? Topic 1: What is HoTT and why? May 5, 2014 Introduction Homotopy type theory (HoTT) is a newly emerging field of mathematics which is currently being developed as a foundation of mathematics which is in

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

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

CS3110 Spring 2016 Lecture 5 Modules for Rational Numbers

CS3110 Spring 2016 Lecture 5 Modules for Rational Numbers CS3110 Spring 2016 Lecture 5 Modules for Rational Numbers Mark Bickford and R. Constable Abstract This lecture begins our discussion of modules in OCaml and module interfaces. These language constructs

More information

Game Semantics for Dependent Types

Game Semantics for Dependent Types Bath, 20 ctober, 2015 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

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

Substitution in Structural Operational Semantics and value-passing process calculi

Substitution in Structural Operational Semantics and value-passing process calculi Substitution in Structural Operational Semantics and value-passing process calculi Sam Staton Computer Laboratory University of Cambridge Abstract Consider a process calculus that allows agents to communicate

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

Lecture Notes on Program Equivalence

Lecture Notes on Program Equivalence Lecture Notes on Program Equivalence 15-312: Foundations of Programming Languages Frank Pfenning Lecture 24 November 30, 2004 When are two programs equal? Without much reflection one might say that two

More information

Meta-programming with Names and Necessity p.1

Meta-programming with Names and Necessity p.1 Meta-programming with Names and Necessity Aleksandar Nanevski Carnegie Mellon University ICFP, Pittsburgh, 05 October 2002 Meta-programming with Names and Necessity p.1 Meta-programming Manipulation of

More information

An introduction to Homotopy Type Theory

An introduction to Homotopy Type Theory An introduction to Homotopy Type Theory Nicola Gambino University of Palermo Leicester, March 15th, 2013 Outline of the talk Part I: Type theory Part II: Homotopy type theory Part III: Voevodsky s Univalent

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

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

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

1 Introduction. 3 Syntax

1 Introduction. 3 Syntax CS 6110 S18 Lecture 19 Typed λ-calculus 1 Introduction Type checking is a lightweight technique for proving simple properties of programs. Unlike theorem-proving techniques based on axiomatic semantics,

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

An Evolution of Mathematical Tools

An Evolution of Mathematical Tools An Evolution of Mathematical Tools From Conceptualization to Formalization Here's what we do when we build a formal model (or do a computation): 0. Identify a collection of objects/events in the real world.

More information

Martin-Löf s Type Theory

Martin-Löf s Type Theory Martin-Löf s Type Theory B. Nordström, K. Petersson and J. M. Smith 1 Contents 1 Introduction.............................. 1 1.1 Different formulations of type theory............. 3 1.2 Implementations........................

More information

Towards the syntax and semantics of higher dimensional type theory

Towards the syntax and semantics of higher dimensional type theory Towards the syntax and semantics of higher dimensional type theory Thorsten Altenkirch Nicolai Kraus Oxford, HoTT/UF 18, 8 July [picture by Andrej Bauer, (CC BY-SA 2.5 SI)] The goal: type theory in type

More information

A Graph Theoretic Perspective on CPM(Rel)

A Graph Theoretic Perspective on CPM(Rel) A Graph Theoretic Perspective on CPM(Rel) Dan Marsden Friday 17 th July, 2015 Selinger s CPM Construction Category C a -compact closed monoidal category. Positive Morphism Endomorphism f : A A is positive

More information

On Agda JAIST/AIST WS CVS/AIST Yoshiki Kinoshita, Yoriyuki Yamagata. Agenda

On Agda JAIST/AIST WS CVS/AIST Yoshiki Kinoshita, Yoriyuki Yamagata. Agenda On Agda 2009.3.12 JAIST/AIST WS CVS/AIST Yoshiki Kinoshita, Yoriyuki Yamagata Agenda On Agda Agda as a programming language Agda as a proof system Further information. 2 1 Agenda On Agda Agda as a programming

More information

Semantic Subtyping with an SMT Solver

Semantic Subtyping with an SMT Solver Semantic Subtyping with an SMT Solver Cătălin Hrițcu, Saarland University, Saarbrücken, Germany Joint work with Andy Gordon, Gavin Bierman, and Dave Langworthy (all from Microsoft) Refinement Types + Type-test

More information

Automata and Formal Languages - CM0081 Introduction to Agda

Automata and Formal Languages - CM0081 Introduction to Agda Automata and Formal Languages - CM0081 Introduction to Agda Andrés Sicard-Ramírez Universidad EAFIT Semester 2018-2 Introduction Curry-Howard correspondence Dependent types Constructivism Martin-Löf s

More information

CS3110 Spring 2017 Lecture 6 Building on Problem Set 1

CS3110 Spring 2017 Lecture 6 Building on Problem Set 1 CS3110 Spring 2017 Lecture 6 Building on Problem Set 1 Robert Constable 1 Lecture Plan 1. Repeating schedule of remaining five problem sets and prelim. 2. Expressing PS1 related concepts in type theory.

More information

CS3110 Spring 2017 Lecture 10 a Module for Rational Numbers

CS3110 Spring 2017 Lecture 10 a Module for Rational Numbers CS3110 Spring 2017 Lecture 10 a Module for Rational Numbers Robert Constable Abstract The notes and lecture start with a brief summary of the relationship between OCaml types, Coq types and logic that

More information

Semantics via Syntax. f (4) = if define f (x) =2 x + 55.

Semantics via Syntax. f (4) = if define f (x) =2 x + 55. 1 Semantics via Syntax The specification of a programming language starts with its syntax. As every programmer knows, the syntax of a language comes in the shape of a variant of a BNF (Backus-Naur Form)

More information

CS152: Programming Languages. Lecture 11 STLC Extensions and Related Topics. Dan Grossman Spring 2011

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

More information

Steps towards a directed homotopy hypothesis. (, 1)-categories, directed spaces and perhaps rewriting

Steps towards a directed homotopy hypothesis. (, 1)-categories, directed spaces and perhaps rewriting Steps towards a directed homotopy hypothesis. (, 1)-categories, directed spaces and perhaps rewriting Timothy Porter Emeritus Professor, University of Wales, Bangor June 12, 2015 1 Introduction. Some history

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

1. Abstract syntax: deep structure and binding. 2. Static semantics: typing rules. 3. Dynamic semantics: execution rules.

1. Abstract syntax: deep structure and binding. 2. Static semantics: typing rules. 3. Dynamic semantics: execution rules. Introduction Formal definitions of programming languages have three parts: CMPSCI 630: Programming Languages Static and Dynamic Semantics Spring 2009 (with thanks to Robert Harper) 1. Abstract syntax:

More information

On the Logical Foundations of Staged Computation

On the Logical Foundations of Staged Computation On the Logical Foundations of Staged Computation Frank Pfenning PEPM 00, Boston, MA January 22, 2000 1. Introduction 2. Judgments and Propositions 3. Intensional Types 4. Run-Time Code Generation 5. The

More information

LOGIC AND DISCRETE MATHEMATICS

LOGIC AND DISCRETE MATHEMATICS LOGIC AND DISCRETE MATHEMATICS A Computer Science Perspective WINFRIED KARL GRASSMANN Department of Computer Science University of Saskatchewan JEAN-PAUL TREMBLAY Department of Computer Science University

More information

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

CSCI.6962/4962 Software Verification Fundamental Proof Methods in Computer Science (Arkoudas and Musser) Sections p. CSCI.6962/4962 Software Verification Fundamental Proof Methods in Computer Science (Arkoudas and Musser) Sections 10.1-10.3 p. 1/106 CSCI.6962/4962 Software Verification Fundamental Proof Methods in Computer

More information

CS3110 Spring 2017 Lecture 7 Specifications using types continued

CS3110 Spring 2017 Lecture 7 Specifications using types continued CS3110 Spring 2017 Lecture 7 Specifications using types continued Robert Constable 1 Lecture Plan 1. Repeating schedule of remaining five problem sets and prelim. 2. Fixing OCaml specification and code

More information

Type Safety. Java and ML are type safe, or strongly typed, languages. C and C++ are often described as weakly typed languages.

Type Safety. Java and ML are type safe, or strongly typed, languages. C and C++ are often described as weakly typed languages. Java and ML are type safe, or strongly typed, languages. CMPSCI 630: Programming Languages Spring 2009 (with thanks to Robert Harper) C and C++ are often described as weakly typed languages. What does

More information

A Revisionist History of Denotational Semantics

A Revisionist History of Denotational Semantics A Revisionist History of Denotational Semantics Stephen Brookes Carnegie Mellon University Domains XIII July 2018 1 / 23 Denotational Semantics Compositionality Principle The meaning of a complex expression

More information

Compositional Software Model Checking

Compositional Software Model Checking Compositional Software Model Checking Dan R. Ghica Oxford University Computing Laboratory October 18, 2002 Outline of talk program verification issues the semantic challenge programming languages the logical

More information

CS3110 Spring 2017 Lecture 9 Inductive proofs of specifications

CS3110 Spring 2017 Lecture 9 Inductive proofs of specifications CS3110 Spring 2017 Lecture 9 Inductive proofs of specifications Robert Constable 1 Lecture Plan 1. Repeating schedule of remaining five problem sets and prelim. 2. Comments on tautologies and the Coq logic.

More information

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

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

More information

Leinster s globular theory of weak -categories

Leinster s globular theory of weak -categories Leinster s globular theory of weak -categories Ed Morehouse April 16, 2014 (last updated August 8, 2014) These are my notes for a series of lectures that I gave at the Homotopy Type Theory seminar at Carnegie

More information

Martin-L f's Type Theory. B. Nordstr m, K. Petersson and J. M. Smith. Contents. 5.4 The set of functions (Cartesian product of a family of sets) 24

Martin-L f's Type Theory. B. Nordstr m, K. Petersson and J. M. Smith. Contents. 5.4 The set of functions (Cartesian product of a family of sets) 24 Martin-L f's Type Theory B. Nordstr m, K. Petersson and J. M. Smith Contents 1 Introduction : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1 1.1 Dierent formulations of type theory : : : :

More information

Dependent Intersection: A New Way of Defining Records in Type Theory

Dependent Intersection: A New Way of Defining Records in Type Theory Dependent Intersection: A New Way of Defining Records in Type Theory Alexei Kopylov Department of Computer Science Cornell University Ithaca, NY 14853, USA Abstract Records and dependent records are a

More information

Formal Semantics of Programming Languages

Formal Semantics of Programming Languages Formal Semantics of Programming Languages Mooly Sagiv Reference: Semantics with Applications Chapter 2 H. Nielson and F. Nielson http://www.daimi.au.dk/~bra8130/wiley_book/wiley.html Benefits of formal

More information

SEQUENCES, MATHEMATICAL INDUCTION, AND RECURSION

SEQUENCES, MATHEMATICAL INDUCTION, AND RECURSION CHAPTER 5 SEQUENCES, MATHEMATICAL INDUCTION, AND RECURSION Alessandro Artale UniBZ - http://www.inf.unibz.it/ artale/ SECTION 5.5 Application: Correctness of Algorithms Copyright Cengage Learning. All

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

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

CMSC 330: Organization of Programming Languages

CMSC 330: Organization of Programming Languages CMSC 330: Organization of Programming Languages Operational Semantics CMSC 330 Summer 2018 1 Formal Semantics of a Prog. Lang. Mathematical description of the meaning of programs written in that language

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

CMSC 330: Organization of Programming Languages. Formal Semantics of a Prog. Lang. Specifying Syntax, Semantics

CMSC 330: Organization of Programming Languages. Formal Semantics of a Prog. Lang. Specifying Syntax, Semantics Recall Architecture of Compilers, Interpreters CMSC 330: Organization of Programming Languages Source Scanner Parser Static Analyzer Operational Semantics Intermediate Representation Front End Back End

More information

Com S 541. Programming Languages I

Com S 541. Programming Languages I Programming Languages I Lecturer: TA: Markus Lumpe Department of Computer Science 113 Atanasoff Hall http://www.cs.iastate.edu/~lumpe/coms541.html TR 12:40-2, W 5 Pramod Bhanu Rama Rao Office hours: TR

More information

Formal Semantics of Programming Languages

Formal Semantics of Programming Languages Formal Semantics of Programming Languages Mooly Sagiv Reference: Semantics with Applications Chapter 2 H. Nielson and F. Nielson http://www.daimi.au.dk/~bra8130/wiley_book/wiley.html Benefits of formal

More information

Identity in Homotopy Type Theory, Part I: The Justification of Path Induction

Identity in Homotopy Type Theory, Part I: The Justification of Path Induction Identity in Homotopy Type Theory, Part I: The Justification of Path Induction Friday 24 th October, 2014 Abstract Homotopy type theory (HoTT) is a new branch of mathematics that connects algebraic topology

More information

Last lecture CMSC330. This lecture. Finite Automata: States. Finite Automata. Implementing Regular Expressions. Languages. Regular expressions

Last lecture CMSC330. This lecture. Finite Automata: States. Finite Automata. Implementing Regular Expressions. Languages. Regular expressions Last lecture CMSC330 Finite Automata Languages Sets of strings Operations on languages Regular expressions Constants Operators Precedence 1 2 Finite automata States Transitions Examples Types This lecture

More information

Logic and Computation

Logic and Computation Logic and Computation From Conceptualization to Formalization Here's what we do when we build a formal model (or do a computation): 0. Identify a collection of objects/events in the real world. This is

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

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

Refinements for free! 1

Refinements for free! 1 Refinements for free! Refinements for free! 1 Cyril Cohen joint work with Maxime Dénès and Anders Mörtberg University of Gothenburg and Inria Sophia-Antipolis May 8, 2014 1 This work has been funded by

More information

CS4215 Programming Language Implementation. Martin Henz

CS4215 Programming Language Implementation. Martin Henz CS4215 Programming Language Implementation Martin Henz Thursday 26 January, 2012 2 Chapter 4 The Language simpl In this chapter, we are exting the language epl in order to provide a more powerful programming

More information

Program Analysis: Lecture 02 Page 1 of 32

Program Analysis: Lecture 02 Page 1 of 32 Program Analysis: Lecture 02 Page 1 of 32 Program Analysis/ Mooly Sagiv Lecture 1, 31/10/2012 Operational Semantics Notes by: Kalev Alpernas As background to the subject of Program Analysis, we will first

More information

Inductive Definitions, continued

Inductive Definitions, continued 1 / 27 Inductive Definitions, continued Assia Mahboubi Jan 7th, 2016 2 / 27 Last lecture Introduction to Coq s inductive types: Introduction, elimination and computation rules; Twofold implementation :

More information

Propositional Logic Formal Syntax and Semantics. Computability and Logic

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

More information

From OCL to Propositional and First-order Logic: Part I

From OCL to Propositional and First-order Logic: Part I 22c181: Formal Methods in Software Engineering The University of Iowa Spring 2008 From OCL to Propositional and First-order Logic: Part I Copyright 2007-8 Reiner Hähnle and Cesare Tinelli. Notes originally

More information

Function compose, Type cut, And the Algebra of logic

Function compose, Type cut, And the Algebra of logic Function compose, Type cut, And the Algebra of logic XIE Yuheng SZDIY community xyheme@gmail.com Abstract In this paper, I demonstrate the Curry-Howard correspondence of Gentzen s sequent calculus, and

More information

Introduction to Denotational Semantics. Class Likes/Dislikes Survey. Dueling Semantics. Denotational Semantics Learning Goals. You re On Jeopardy!

Introduction to Denotational Semantics. Class Likes/Dislikes Survey. Dueling Semantics. Denotational Semantics Learning Goals. You re On Jeopardy! Introduction to Denotational Semantics Class Likes/Dislikes Survey would change [the bijection question] to be one that still tested students' recollection of set theory but that didn't take as much time

More information

CONVENTIONAL EXECUTABLE SEMANTICS. Grigore Rosu CS522 Programming Language Semantics

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

More information

Beluga: A Framework for Programming and Reasoning with Deductive Systems (System Description)

Beluga: A Framework for Programming and Reasoning with Deductive Systems (System Description) Beluga: A Framework for Programming and Reasoning with Deductive Systems (System Description) Brigitte Pientka and Joshua Dunfield McGill University, Montréal, Canada {bpientka,joshua}@cs.mcgill.ca Abstract.

More information

Lecture 009 (November 25, 2009) Suppose that I is a small category, and let s(r Mod) I be the category of I-diagrams in simplicial modules.

Lecture 009 (November 25, 2009) Suppose that I is a small category, and let s(r Mod) I be the category of I-diagrams in simplicial modules. Lecture 009 (November 25, 2009) 20 Homotopy colimits Suppose that I is a small category, and let s(r Mod) I be the category of I-diagrams in simplicial modules. The objects of this category are the functors

More information

Application: Programming Language Semantics

Application: Programming Language Semantics Chapter 8 Application: Programming Language Semantics Prof. Dr. K. Madlener: Specification and Verification in Higher Order Logic 527 Introduction to Programming Language Semantics Programming Language

More information

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

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

More information

CONVENTIONAL EXECUTABLE SEMANTICS. Grigore Rosu CS422 Programming Language Semantics

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

More information