Computational Higher Type Theory
|
|
- Bathsheba McDowell
- 5 years ago
- Views:
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
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 informationCubical 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 informationThe 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 informationA 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 informationIntroduction 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 informationCubical 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 informationUnivalent 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 informationUsing 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 informationA 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 informationa 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 informationFrom 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 informationCubical 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 informationProgramming 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 informationProgramming 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 informationRecent 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 informationResearch 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 informationType 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 informationFormalizing 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 informationAn 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 informationUnfolding 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 informationConstructing 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 informationRepresentability 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 informationA 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 informationDenotational 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 informationThe 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 informationSoftwaretechnik. 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 informationDesign 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 informationCLF: 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 informationThe 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
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 informationTopic 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 information3.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 informationTypes 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 informationCS3110 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 informationGame 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 informationHarvard 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 informationSubstitution 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 informationLecture 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 informationLecture 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 informationMeta-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 informationAn 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 informationCOS 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 informationCategorical 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 informationFoundations 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 information1 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 informationModule 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 informationAn 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 informationMartin-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 informationTowards 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 informationA 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 informationOn 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 informationSemantic 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 informationAutomata 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 informationCS3110 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 informationCS3110 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 informationSemantics 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 informationCS152: 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 informationSteps 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 information3.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 information1. 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 informationOn 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 informationLOGIC 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 informationCSCI.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 informationCS3110 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 informationType 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 informationA 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 informationCompositional 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 informationCS3110 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 informationGoals: 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 informationLeinster 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 informationMartin-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 informationDependent 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 informationFormal 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 informationSEQUENCES, 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 informationContents. 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 informationTHE 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 informationCMSC 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 informationLecture 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 informationCMSC 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 informationCom 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 informationFormal 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 informationIdentity 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 informationLast 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 informationLogic 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 informationA 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 informationTHE 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 informationRefinements 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 informationCS4215 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 informationProgram 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 informationInductive 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 informationPropositional 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 informationFrom 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 informationFunction 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 informationIntroduction 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 informationCONVENTIONAL 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 informationBeluga: 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 informationLecture 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 informationApplication: 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 informationHOL 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 informationCONVENTIONAL 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