-
-
Save andrcmdr/7121c3d9eb83f06785d8055a5c3604a3 to your computer and use it in GitHub Desktop.
Revisions
-
andrcmdr revised this gist
Feb 12, 2020 . 1 changed file with 53 additions and 22 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,6 +1,6 @@ ### System λ The untyped Lambda Calculus ``` e ::= terms: @@ -11,9 +11,9 @@ e ::= terms: ### System λ→ The first-order simply typed Lambda Calculus (Propositional Calculus/Logic) - Terms depending on terms (allows terms to depend on terms, i.e. terms that can bind terms) ``` k :: = kinds: @@ -41,8 +41,10 @@ idInt = λ x : int . x ### System λΠ The first-order dependently typed Lambda Calculus (Predicate Calculus/Logic) - Terms depending on terms (allows terms to depend on terms, i.e. terms that can bind terms) - Types depending on terms (allows types to depend on terms, i.e. types that can bind terms) ``` t ::= types: @@ -54,14 +56,16 @@ e ::= terms: x variable e e application λ x : t . e abstraction ``` ### System λ2 The second-order polymorphic typed Lambda Calculus (Propositional Calculus/Logic) - Terms depending on terms (allows terms to depend on terms, i.e. terms that can bind terms) - Terms depending on types (allows terms to depend on types, i.e. terms that can bind types) ``` k :: = kinds: * type of types @@ -79,8 +83,10 @@ e ::= terms: ### System λω_ The (weakly) higher-order (higher-kinded) typed Lambda Calculus (Propositional Calculus/Logic), Type Constructors - Terms depending on terms (allows terms to depend on terms, i.e. terms that can bind terms) - Types depending on types (allows types to depend on types, i.e. types that can bind types) ``` k :: = kinds: @@ -99,16 +105,37 @@ e ::= terms: λ x : t . e abstraction ``` ### System λΠ2 (λP2) The second-order dependently typed polymorphic Lambda Calculus (Predicate Calculus/Logic) λΠ + λ2 - Terms depending on terms (allows terms to depend on terms, i.e. terms that can bind terms) - Types depending on terms (allows types to depend on terms, i.e. types that can bind terms) - Terms depending on types (allows terms to depend on types, i.e. terms that can bind types) ### System λΠω_ (λPω_) The (weakly) higher-order (higher-kinded) dependently typed Lambda Calculus (Predicate Calculus/Logic) λΠ + λω_ - Terms depending on terms (allows terms to depend on terms, i.e. terms that can bind terms) - Types depending on terms (allows types to depend on terms, i.e. types that can bind terms) - Types depending on types (allows types to depend on types, i.e. types that can bind types) ### System λω The higher-order (higher-kinded) typed polymorphic Lambda Calculus (Propositional Calculus/Logic) Standard ML, OCaml, F#, Nemerle, Haskell, Scala 2 λ2 + λω_ - Terms depending on terms (allows terms to depend on terms, i.e. terms that can bind terms) - Terms depending on types (allows terms to depend on types, i.e. terms that can bind types) - Types depending on types (allows types to depend on types, i.e. types that can bind types) ``` k :: = kinds: @@ -134,14 +161,18 @@ id : ∀ a : * . a → a id = Λ a : * . λ x : a . x ``` ### System λΠω (λPω, λC) The higher-order (higher-kinded) dependently typed polymorphic Lambda Calculus (CoC - Calculus of Constructions) Dependent ML, ATS, F*, Coq/Gallina, Matita, ALF, Cayenne, Epigram, Lean, LEGO, Agda, Idris, Ur/Web, Scala 3 (DOTty - Dependent Object Types) λΠ + λ2 + λω_ - Terms depending on terms (allows terms to depend on terms, i.e. terms that can bind terms) - Types depending on terms (allows types to depend on terms, i.e. types that can bind terms) - Terms depending on types (allows terms to depend on types, i.e. terms that can bind types) - Types depending on types (allows types to depend on types, i.e. types that can bind types) ``` e ::= -
andrcmdr revised this gist
Aug 15, 2017 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -101,7 +101,7 @@ e ::= terms: ### System λω Haskell, Standard ML, OCaml, F#, Scala 2 λ2 + λω_ -
andrcmdr revised this gist
Jul 8, 2017 . 1 changed file with 2 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -136,7 +136,7 @@ id = Λ a : * . λ x : a . x ### System λΠω (Calculus of Constructions) Dependent ML, ALF, Cayenne, Epigram, LEGO, Agda, Idris, Lean, F*, Coq, Matita, Scala 3 (Dotty), Ur/Web - Terms depending on terms - Terms depending on types @@ -150,4 +150,4 @@ e ::= e e application ∀ x : e . e quantification (∀ + Π) λ x : e . e abstraction (λ + Λ) ``` -
andrcmdr revised this gist
Jul 7, 2017 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -136,7 +136,7 @@ id = Λ a : * . λ x : a . x ### System λΠω (Calculus of Constructions) Dependent ML, ALF, Cayenne, Epigram, LEGO, Agda, Idris, Lean, Coq, F*, Matita, Scala 3 (Dotty), Ur/Web - Terms depending on terms - Terms depending on types -
andrcmdr revised this gist
Jul 7, 2017 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -136,7 +136,7 @@ id = Λ a : * . λ x : a . x ### System λΠω (Calculus of Constructions) Idris, Agda, Lean, Coq, F*, Matita, Scala 3 (Dotty), Ur/Web - Terms depending on terms - Terms depending on types -
andrcmdr revised this gist
Jun 30, 2017 . 1 changed file with 2 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -101,7 +101,7 @@ e ::= terms: ### System λω Haskell, Elm, Standard ML, OCaml, F#, Scala 2 λ2 + λω_ @@ -136,7 +136,7 @@ id = Λ a : * . λ x : a . x ### System λΠω (Calculus of Constructions) Idris, Agda, Lean, Coq, F*, Scala 3 (Dotty), Ur/Web - Terms depending on terms - Terms depending on types -
andrcmdr revised this gist
Jun 30, 2017 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -136,7 +136,7 @@ id = Λ a : * . λ x : a . x ### System λΠω (Calculus of Constructions) Idris, Agda, Lean, Coq, Scala 3 (Dotty), Ur/Web - Terms depending on terms - Terms depending on types -
brendanzab revised this gist
Oct 25, 2016 . 1 changed file with 29 additions and 7 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -11,11 +11,14 @@ e ::= terms: ### System λ→ The simply Typed Lambda Calculus - Terms depending on terms ``` k :: = kinds: * type of types t ::= types: a variable t → t arrow type @@ -26,6 +29,16 @@ e ::= terms: λ x : t . e abstraction ``` Where `bool : *` and `int : *` ``` idBool : bool → bool idBool = λ x : bool . x idInt : int → int idInt = λ x : int . x ``` ### System λΠ - Terms depending on terms @@ -43,7 +56,7 @@ e ::= terms: λ x : t . e abstraction ```` ### System λ2 - Terms depending on terms - Terms depending on types @@ -64,7 +77,7 @@ e ::= terms: Λ a : k . e type abstraction ``` ### System λω_ - Terms depending on terms - Types depending on types @@ -86,7 +99,9 @@ e ::= terms: λ x : t . e abstraction ``` ### System λω Haskell, SML, Ocaml, Elm λ2 + λω_ @@ -114,8 +129,15 @@ e ::= terms: Λ a : k . e type abstraction ``` ``` id : ∀ a : * . a → a id = Λ a : * . λ x : a . x ``` ### System λΠω (Calculus of Constructions) Idris, Agda, Lean, Coq - Terms depending on terms - Terms depending on types - Types depending on types @@ -126,6 +148,6 @@ e ::= x variables * type of types e e application ∀ x : e . e quantification (∀ + Π) λ x : e . e abstraction (λ + Λ) ```` -
brendanzab revised this gist
Oct 25, 2016 . 1 changed file with 83 additions and 76 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -3,111 +3,118 @@ The untyped lambda calculus ``` e ::= terms: x variable e e application λ x . e abstraction ``` ### System λ→ The simply Typed Lambda Calculus) - Terms depending on terms ``` t ::= types: a variable t → t arrow type e ::= terms: x variable e e application λ x : t . e abstraction ``` ### System λΠ - Terms depending on terms - Types depending on terms ``` t ::= types: a variable t → t arrow type Π x : t . e abstraction e ::= terms: x variable e e application λ x : t . e abstraction ```` ### System λ2 (System F) - Terms depending on terms - Terms depending on types ```diff k :: = kinds: * type of types t ::= types: a variable t → t arrow type e ::= terms: x variable e e application λ x : t . e abstraction e t type application Λ a : k . e type abstraction ``` ### System λω_ (System Fω_) - Terms depending on terms - Types depending on types ``` k :: = kinds: * type of types k → k arrow kind t ::= types: a variable t → t arrow type t t application ∀ a : k . t universal quantification e ::= terms: x variable e e application λ x : t . e abstraction ``` ### System λω (System Fω) λ2 + λω_ - Terms depending on terms - Terms depending on types - Types depending on types ``` k :: = kinds: * type of types k → k arrow kind t ::= types: a variable t → t arrow type t t application ∀ a : k . t universal quantification e ::= terms: x variable e e application λ x : t . e abstraction e t type application Λ a : k . e type abstraction ``` ### System λΠω (Calculus of Constructions) - Terms depending on terms - Terms depending on types @@ -116,9 +123,9 @@ e ::= ``` e ::= x variables * type of types e e application ∀ x : e . e quantification (∀ and Π) λ x : e . e abstraction (λ and Λ) ```` -
brendanzab revised this gist
Oct 25, 2016 . 1 changed file with 81 additions and 5 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,4 +1,6 @@ ### System λ The untyped lambda calculus ``` e ::= @@ -7,20 +9,75 @@ e ::= λ x. e ``` ### System λ→ - Terms depending on terms ``` t ::= x t → t e ::= x e e λ x : t . e ``` ### System λ2 - Terms depending on terms - Terms depending on types ``` k :: = * t ::= x t → t ∀ a . t e ::= x e e λ x : t . e Λ a : k . e ``` ``` id : ∀ a . a → a id = Λ a : * . λ x : a . x ``` ### System λω_ - Terms depending on terms - Types depending on types ``` k :: = * k → k t ::= x t → t ∀ a : k . t e ::= x e e λ x : t . e Λ a : k . e ``` ### System λω - Terms depending on terms - Terms depending on types - Types depending on types ``` k ::= * @@ -36,7 +93,26 @@ e ::= Λ a : k . e ``` ### System λΠ - Terms depending on terms - Types depending on terms ``` e ::= x * e e ∀ x : e . e λ x : e . e ```` ### System λΠω - Terms depending on terms - Terms depending on types - Types depending on types - Types depending on terms ``` e ::= @@ -45,4 +121,4 @@ e ::= e e ∀ x : e . e λ x : e . e ```` -
brendanzab revised this gist
Oct 24, 2016 . 1 changed file with 10 additions and 3 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,13 +1,18 @@ System λ ``` e ::= x e e λ x. e ``` System λ→ ``` t ::= x t → t e ::= x @@ -20,7 +25,9 @@ System λω ``` k ::= * t ::= a ∀ a : k . t e ::= x -
brendanzab revised this gist
Oct 24, 2016 . 1 changed file with 8 additions and 6 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,9 +1,13 @@ System λ ``` e ::= x | e e | λ x. e ``` System λ→ ``` t ::= x | t → t e ::= x @@ -16,9 +20,7 @@ System λω ``` k ::= * t ::= a | ∀ a : k . t e ::= x -
brendanzab created this gist
Oct 24, 2016 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,39 @@ System λ→ ``` t ::= x t → t e ::= x e e λ x : t . e ``` System λω ``` k ::= * t ::= a ∀ a : k . t e ::= x e e λ x : t . e Λ a : k . e ``` System λPω ``` e ::= x * e e ∀ x : e . e λ x : e . e ```