The Idris Tutorial Version 0.9.18us look at each constructor in turn. We use a nameless representation for variables — they are de Bruijn indexed. Variables are represented by a proof of their membership in the context, HasType i G T, Var : HasType i G t -> Expr G t So, in an expression \x,\y. x y, the variable x would have a de Bruijn index of 1, represented as Pop Stop, and y 0, represented as Stop. We find these by counting the language, any variable is translated to the Var constructor, using Pop and Stop to construct the de Bruijn index (i.e., to count how many bindings since the variable itself was bound); and any lambda is translated0 码力 | 69 页 | 316.20 KB | 1 年前3
The Idris Tutorial Version 0.11us look at each constructor in turn. We use a nameless representation for variables — they are de Bruijn indexed. Variables are represented by a proof of their membership in the context, HasType i G T, Var : HasType i G t -> Expr G t So, in an expression \x,\y. x y, the variable x would have a de Bruijn index of 1, represented as Pop Stop, and y 0, represented as Stop. We find these by counting the language, any variable is translated to the Var constructor, using Pop and Stop to construct the de Bruijn index (i.e., to count how many bindings since the variable itself was bound); and any lambda is translated0 码力 | 71 页 | 314.20 KB | 1 年前3
The Idris Tutorial Version 0.9.20.1us look at each constructor in turn. We use a nameless representation for variables — they are de Bruijn indexed. Variables are represented by a proof of their membership in the context, HasType i G T, Var : HasType i G t -> Expr G t So, in an expression \x,\y. x y, the variable x would have a de Bruijn index of 1, represented as Pop Stop, and y 0, represented as Stop. We find these by counting the language, any variable is translated to the Var constructor, using Pop and Stop to construct the de Bruijn index (i.e., to count how many bindings since the variable itself was bound); and any lambda is translated0 码力 | 71 页 | 316.18 KB | 1 年前3
Agda User Manual v2.6.2AGDAPATTERN and AGDACLAUSE built-ins respectively. Types are simply terms. Terms and patterns use de Bruijn indices to represent variables. data Term : Set data Sort : Set data Pattern : Set data Clause : Pattern proj : (f : Name) → Pattern absurd : (x : Nat) → Pattern -- Absurd patterns have de Bruijn indices data Clause where clause : (tel : Telescope) (ps : List (Arg Pattern)) (t : correct-by-construction type checker for simply typed λ-calculus. First we define the raw terms, using de Bruijn indices for variables and explicit type annotations on the lambda: infixr 6 _=>_ data Type : Set0 码力 | 348 页 | 414.11 KB | 1 年前3
Agda User Manual v2.6.2.2AGDAPATTERN and AGDACLAUSE built-ins respectively. Types are simply terms. Terms and patterns use de Bruijn indices to represent variables. data Term : Set data Sort : Set data Pattern : Set data Clause : Pattern proj : (f : Name) → Pattern absurd : (x : Nat) → Pattern -- Absurd patterns have de Bruijn indices data Clause where clause : (tel : Telescope) (ps : List (Arg Pattern)) (t : correct-by-construction type checker for simply typed λ-calculus. First we define the raw terms, using de Bruijn indices for variables and explicit type annotations on the lambda: infixr 6 _=>_ data Type : Set0 码力 | 354 页 | 433.60 KB | 1 年前3
Agda User Manual v2.6.2.1AGDAPATTERN and AGDACLAUSE built-ins respectively. Types are simply terms. Terms and patterns use de Bruijn indices to represent variables. data Term : Set data Sort : Set data Pattern : Set data Clause : Pattern proj : (f : Name) → Pattern absurd : (x : Nat) → Pattern -- Absurd patterns have de Bruijn indices data Clause where clause : (tel : Telescope) (ps : List (Arg Pattern)) (t : correct-by-construction type checker for simply typed λ-calculus. First we define the raw terms, using de Bruijn indices for variables and explicit type annotations on the lambda: infixr 6 _=>_ data Type : Set0 码力 | 350 页 | 416.80 KB | 1 年前3
Lean 4languages (DSLs) • Software verification • Formalized Mathematics • Dependent Type Theory • de Bruijn’s principle: small trusted kernel, external proof/type checkers Programming Language Resources0 码力 | 20 页 | 1.78 MB | 1 年前3
Lean in Leanlanguages (DSLs) • Software verification • Formalized Mathematics • Dependent Type Theory • de Bruijn’s principle: small trusted kernel, external proof/type checkers Programming Language Lean Timeline0 码力 | 54 页 | 4.78 MB | 1 年前3
Agda User Manual v2.6.2AGDAPATTERN and AGDACLAUSE built-ins respectively. Types are simply terms. Terms and patterns use de Bruijn 138 Chapter 3. Language Reference Agda User Manual, Release 2.6.2 indices to represent variables Literal) → Pattern proj : (f : Name) → Pattern absurd : (x : Nat) → Pattern -- Absurd patterns have de Bruijn indices data Clause where clause : (tel : Telescope) (ps : List (Arg Pattern)) (t : Term) → Clause correct-by-construction type checker for simply typed ?-calculus. First we define the raw terms, using de Bruijn indices for variables and explicit type annotations on the lambda: 3.38. Syntactic Sugar 161 Agda0 码力 | 255 页 | 1.13 MB | 1 年前3
Agda User Manual v2.6.2.2AGDAPATTERN and AGDACLAUSE built-ins respectively. Types are simply terms. Terms and patterns use de Bruijn indices to represent variables. data Term : Set data Sort : Set data Pattern : Set data Clause : Literal) → Pattern proj : (f : Name) → Pattern absurd : (x : Nat) → Pattern -- Absurd patterns have de Bruijn indices data Clause where clause : (tel : Telescope) (ps : List (Arg Pattern)) (t : Term) → Clause correct-by-construction type checker for simply typed ?-calculus. First we define the raw terms, using de Bruijn indices for variables and explicit type annotations on the lambda: infixr 6 _=>_ data Type : Set0 码力 | 257 页 | 1.16 MB | 1 年前3
共 79 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8













