fbpx
Wikipedia

Lambda cube

In mathematical logic and type theory, the λ-cube (also written lambda cube) is a framework introduced by Henk Barendregt[1] to investigate the different dimensions in which the calculus of constructions is a generalization of the simply typed λ-calculus. Each dimension of the cube corresponds to a new kind of dependency between terms and types. Here, "dependency" refers to the capacity of a term or type to bind a term or type. The respective dimensions of the λ-cube correspond to:

  • x-axis (): types that can bind terms, corresponding to dependent types.
  • y-axis (): terms that can bind types, corresponding to polymorphism.
  • z-axis (): types that can bind types, corresponding to (binding) type operators.
The lambda cube. Direction of each arrow is direction of inclusion.

The different ways to combine these three dimensions yield the 8 vertices of the cube, each corresponding to a different kind of typed system. The λ-cube can be generalized into the concept of a pure type system.

Examples of Systems

(λ→) Simply typed lambda calculus

The simplest system found in the λ-cube is the simply typed lambda calculus, also called λ→. In this system, the only way to construct an abstraction is by making a term depend on a term, with the typing rule

 

(λ2) System F

In System F (also named λ2 for the "second-order typed lambda calculus")[2] there is another type of abstraction, written with a  , that allows terms to depend on types, with the following rule:

 

The terms beginning with a   are called polymorphic, as they can be applied to different types to get different functions, similarly to polymorphic functions in ML-like languages. For instance, the polymorphic identity

fun x -> x 

of OCaml has type

'a -> 'a 

meaning it can take an argument of any type 'a and return an element of that type. This type corresponds in λ2 to the type  .

ω) System Fω

In System F  a construction is introduced to supply types that depend on other types. This is called a type constructor and provides a way to build "a function with a type as a value".[3] An example of such a type constructor is  , where " " informally means "  is a type". This is a function that takes a type parameter   as an argument and returns the type of  s of values of type  . In concrete programming, this feature corresponds to the ability to define type constructors inside the language, rather than considering them as primitives. The previous type constructor roughly corresponds to the following definition of a tree with labeled leaves in OCaml:

type 'a tree = | Leaf of 'a | Node of 'a tree * 'a tree 

This type constructor can be applied to other types to obtain new types. E.g., to obtain type of trees of integers:

type int_tree = int tree 

System F  is generally not used on its own, but is useful to isolate the independent feature of type constructors.[4]

(λP) Lambda-P

In the λP system, also named ΛΠ, and closely related to the LF Logical Framework, one has so called dependent types. These are types that are allowed to depend on terms. The crucial introduction rule of the system is

 

where   represents valid types. The new type constructor   corresponds via the Curry-Howard isomorphism to a universal quantifier, and the system λP as a whole corresponds to first-order logic with implication as only connective. An example of these dependent types in concrete programming is the type of vectors on a certain length: the length is a term, on which the type depends.

(Fω) System Fω

System Fω combines both the   constructor of System F and the type constructors from System F . Thus System Fω provides both terms that depend on types and types that depend on types.

(λC) Calculus of constructions

In the calculus of constructions, denoted as λC in the cube or as λPω,[1]: 130  these four features cohabit, so that both types and terms can depend on types and terms. The clear border that exists in λ→ between terms and types is somewhat abolished, as all types except the universal   are themselves terms with a type.

Formal definition

As for all systems based upon the simply typed lambda calculus, all systems in the cube are given in two steps: first, raw terms, together with a notion of β-reduction, and then typing rules that allow to type those terms.

The set of sorts is defined as  , sorts are represented with the letter  . There is also a set   of variables, represented by the letters  . The raw terms of the eight systems of the cube are given by the following syntax:

 

and   denoting   when   does not occur free in  .

The environment, as is usual in typed systems, are given by  

The notion of β-reduction is common to all systems in the cube. It is written   and given by the rules

 
 
 
 
 
Its reflexive, transitive closure is written  .

The following typing rules are also common to all systems in the cube:

 
 
 
 
 
The difference between the systems is in the pairs of sorts   that are allowed in the following two typing rules:
 
 

The correspondence between the systems and the pairs   allowed in the rules is the following:

         
λ→        
λP        
λ2        
λω        
λP2        
λPω        
λω        
λC        

Each direction of the cube corresponds to one pair (excluding the pair   shared by all systems), and in turn each pair corresponds to one possibility of dependency between terms and types:

  •   allows terms to depend on terms.
  •   allows types to depend on terms.
  •   allows terms to depend on types.
  •   allows types to depend on types.

Comparison between the systems

λ→

A typical derivation that can be obtained is

 
or with the arrow shortcut
 
closely resembling the identity (of type  ) of the usual λ→. Note that all types used must appear in the context, because the only derivation that can be done in an empty context is  .

The computing power is quite weak, it corresponds to the extended polynomials (polynomials together with a conditional operator).[5]

λ2

In λ2, such terms can be obtained as

 
with  . If one reads   as a universal quantification, via the Curry-Howard isomorphism, this can be seen as a proof of the principle of explosion. In general, λ2 adds the possibility to have impredicative types such as  , that is terms quantifying over all types including themselves.
The polymorphism also allows the construction of functions that were not constructible in λ→. More precisely, the functions definable in λ2 are those provably total in second-order Peano arithmetic.[6] In particular, all primitive recursive functions are definable.

λP

In λP, the ability to have types depending on terms means one can express logical predicates. For instance, the following is derivable:

 
which corresponds, via the Curry-Howard isomorphism, to a proof of  .
From the computational point of view, however, having dependent types does not enhance computational power, only the possibility to express more precise type properties.[7]

The conversion rule is strongly needed when dealing with dependent types, because it allows to perform computation on the terms in the type. For instance, if you have   and  , you need to apply the conversion rule to obtain   to be able to type  .

λω

In λω, the following operator

 
is definable, that is  . The derivation
 
can be obtained already in λ2, however the polymorphic   can only be defined if the rule   is also present.

From a computing point of view, λω is extremely strong, and has been considered as a basis for programming languages.[8]

λC

The calculus of constructions has both the predicate expressiveness of λP and the computational power of λω, hence why λC is also called λPω,[1]: 130  so it is very powerful, both on the logical side and on the computational side.

Relation to other systems

The system Automath is similar to λ2 from a logical point of view. The ML-like languages, from a typing point of view, lie somewhere between λ→ and λ2, as they admit a restricted kind of polymorphic types, that is the types in prenex normal form. However, because they feature some recursion operators, their computing power is greater than that of λ2.[7] The Coq system is based on an extension of λC with a linear hierarchy of universes, rather than only one untypable  , and the ability to construct inductive types.

Pure type systems can be seen as a generalization of the cube, with an arbitrary set of sorts, axiom, product and abstraction rules. Conversely, the systems of the lambda cube can be expressed as pure type systems with two sorts  , the only axiom  , and a set of rules   such that  .[1]

Via the Curry-Howard isomorphism, there is a one-to-one correspondence between the systems in the lambda cube and logical systems,[1] namely:

System of the cube Logical System
λ→ (First-order) Propositional Calculus
λ2 Second-order Propositional Calculus
λω Weakly Higher Order Propositional Calculus
λω Higher Order Propositional Calculus
λP (First order) Predicate Logic
λP2 Second-order Predicate Calculus
λPω Weak Higher Order Predicate Calculus
λC Calculus of Constructions

All the logics are implicative (i.e. the only connectives are   and  ), however one can define other connectives such as   or   in an impredicative way in second and higher order logics. In the weak higher order logics, there are variables for higher order predicates, but no quantification on those can be done.

Common properties

All systems in the cube enjoy

  • the Church-Rosser property: if   and   then there exists   such that   and  ;
  • the subject reduction property: if   and   then  ;
  • the uniqueness of types: if   and   then  .

All of these can be proven on generic pure type systems.[9]

Any term well-typed in a system of the cube is strongly normalizing,[1] although this property is not common to all pure type systems. No system in the cube is Turing complete.[7]

Subtyping

Subtyping however is not represented in the cube, even though systems like  , known as higher-order bounded quantification, which combines subtyping and polymorphism are of practical interest, and can be further generalized to bounded type operators. Further extensions to   allow the definition of purely functional objects; these systems were generally developed after the lambda cube paper was published.[10]

The idea of the cube is due to the mathematician Henk Barendregt (1991). The framework of pure type systems generalizes the lambda cube in the sense that all corners of the cube, as well as many other systems can be represented as instances of this general framework.[11] This framework predates the lambda cube by a couple of years. In his 1991 paper, Barendregt also defines the corners of the cube in this framework.

See also

  • In his Habilitation à diriger les recherches,[12] Olivier Ridoux gives a cut-out template of the lambda cube and also a dual representation of the cube as an octahedron, where the 8 vertices are replaced by faces, as well as a dual representation as a dodecahedron, where the 12 edges are replaced by faces.
  • Homotopy type theory

Notes

  1. ^ a b c d e f Barendregt, Henk (1991). "Introduction to generalized type systems". Journal of Functional Programming. 1 (2): 125–154. doi:10.1017/s0956796800020025. hdl:2066/17240. ISSN 0956-7968.
  2. ^ Nederpelt, Rob; Geuvers, Herman (2014). Type Theory and Formal Proof. Cambridge University Press. p. 69. ISBN 9781107036505.
  3. ^ Nederpelt & Geuvers 2014, p. 85
  4. ^ Nederpelt & Geuvers 2014, p. 100
  5. ^ Schwichtenberg, Helmut (1975). "Definierbare Funktionen imλ-Kalkül mit Typen". Archiv für Mathematische Logik und Grundlagenforschung (in German). 17 (3–4): 113–114. doi:10.1007/bf02276799. ISSN 0933-5846.
  6. ^ Girard, Jean-Yves; Lafont, Yves; Taylor, Paul (1989). Proofs and Types. Cambridge Tracts in Theoretical Computer Science. Vol. 7. Cambridge University Press. ISBN 9780521371810.
  7. ^ a b c Ridoux, Olivier (1998). Lambda-Prolog de A à Z ... ou presque (PDF). [s.n.] OCLC 494473554.
  8. ^ Pierce, Benjamin; Dietzen, Scott; Michaylov, Spiro (1989). Programming in higher-order typed lambda-calculi. Computer Science Department, Carnegie Mellon University. OCLC 20442222. CMU-CS-89-111 ERGO-89-075.
  9. ^ Sørensen, Morten Heine; Urzyczyin, Pawel (2006). "Pure type systems and the λ-cube". Lectures on the Curry-Howard Isomorphism. Elsevier. pp. 343–359. doi:10.1016/s0049-237x(06)80015-7. ISBN 9780444520777.
  10. ^ Pierce, Benjamin (2002). Types and programming languages. MIT Press. pp. 467–490. ISBN 978-0262162098. OCLC 300712077.
  11. ^ Pierce 2002, p. 466
  12. ^ Ridoux 1998, p. 70

Further reading

  • Peyton Jones, Simon; Meijer, Erik (1997). "Henk: A Typed Intermediate Language" (PDF). Henk is based directly on the lambda cube, an expressive family of typed lambda calculi.

External links

lambda, cube, this, article, need, rewritten, comply, with, wikipedia, quality, standards, article, uses, pervasively, inconsistent, confusing, misleading, terminology, basic, concepts, fundamental, understanding, article, subject, help, talk, page, contain, s. This article may need to be rewritten to comply with Wikipedia s quality standards as article uses pervasively inconsistent confusing and misleading terminology for basic concepts fundamental to the understanding of the article s subject You can help The talk page may contain suggestions September 2020 In mathematical logic and type theory the l cube also written lambda cube is a framework introduced by Henk Barendregt 1 to investigate the different dimensions in which the calculus of constructions is a generalization of the simply typed l calculus Each dimension of the cube corresponds to a new kind of dependency between terms and types Here dependency refers to the capacity of a term or type to bind a term or type The respective dimensions of the l cube correspond to x axis displaystyle rightarrow types that can bind terms corresponding to dependent types y axis displaystyle uparrow terms that can bind types corresponding to polymorphism z axis displaystyle nearrow types that can bind types corresponding to binding type operators The lambda cube Direction of each arrow is direction of inclusion The different ways to combine these three dimensions yield the 8 vertices of the cube each corresponding to a different kind of typed system The l cube can be generalized into the concept of a pure type system Contents 1 Examples of Systems 1 1 l Simply typed lambda calculus 1 2 l2 System F 1 3 lw System Fw 1 4 lP Lambda P 1 5 Fw System Fw 1 6 lC Calculus of constructions 2 Formal definition 3 Comparison between the systems 3 1 l 3 2 l2 3 3 lP 3 4 lw 3 5 lC 4 Relation to other systems 5 Common properties 6 Subtyping 7 See also 8 Notes 9 Further reading 10 External linksExamples of Systems Edit l Simply typed lambda calculus Edit The simplest system found in the l cube is the simply typed lambda calculus also called l In this system the only way to construct an abstraction is by making a term depend on a term with the typing ruleG x s t t G l x t s t displaystyle frac Gamma x sigma vdash t tau Gamma vdash lambda x t sigma to tau l2 System F Edit In System F also named l2 for the second order typed lambda calculus 2 there is another type of abstraction written with a L displaystyle Lambda that allows terms to depend on types with the following rule G t s G L a t P a s if a does not occur free in G displaystyle frac Gamma vdash t sigma Gamma vdash Lambda alpha t Pi alpha sigma text if alpha text does not occur free in Gamma The terms beginning with a L displaystyle Lambda are called polymorphic as they can be applied to different types to get different functions similarly to polymorphic functions in ML like languages For instance the polymorphic identityfun x gt xof OCaml has type a gt ameaning it can take an argument of any type a and return an element of that type This type corresponds in l2 to the type P a a a displaystyle Pi alpha alpha to alpha lw System Fw EditIn System Fw displaystyle underline omega a construction is introduced to supply types that depend on other types This is called a type constructor and provides a way to build a function with a type as a value 3 An example of such a type constructor is T R E E l A P B A B B B B B displaystyle mathsf TREE lambda A Pi B A to B to B to B to B to B where A displaystyle A informally means A displaystyle A is a type This is a function that takes a type parameter A displaystyle A as an argument and returns the type of T R E E displaystyle mathsf TREE s of values of type A displaystyle A In concrete programming this feature corresponds to the ability to define type constructors inside the language rather than considering them as primitives The previous type constructor roughly corresponds to the following definition of a tree with labeled leaves in OCaml type a tree Leaf of a Node of a tree a treeThis type constructor can be applied to other types to obtain new types E g to obtain type of trees of integers type int tree int tree System Fw displaystyle underline omega is generally not used on its own but is useful to isolate the independent feature of type constructors 4 lP Lambda P Edit In the lP system also named LP and closely related to the LF Logical Framework one has so called dependent types These are types that are allowed to depend on terms The crucial introduction rule of the system isG x A B G P x A B displaystyle frac Gamma x A vdash B Gamma vdash Pi x A B where displaystyle represents valid types The new type constructor P displaystyle Pi corresponds via the Curry Howard isomorphism to a universal quantifier and the system lP as a whole corresponds to first order logic with implication as only connective An example of these dependent types in concrete programming is the type of vectors on a certain length the length is a term on which the type depends Fw System Fw Edit System Fw combines both the L displaystyle Lambda constructor of System F and the type constructors from System Fw displaystyle underline omega Thus System Fw provides both terms that depend on types and types that depend on types lC Calculus of constructions Edit In the calculus of constructions denoted as lC in the cube or as lPw 1 130 these four features cohabit so that both types and terms can depend on types and terms The clear border that exists in l between terms and types is somewhat abolished as all types except the universal displaystyle square are themselves terms with a type Formal definition EditAs for all systems based upon the simply typed lambda calculus all systems in the cube are given in two steps first raw terms together with a notion of b reduction and then typing rules that allow to type those terms The set of sorts is defined as S displaystyle S square sorts are represented with the letter s displaystyle s There is also a set V displaystyle V of variables represented by the letters x y displaystyle x y dots The raw terms of the eight systems of the cube are given by the following syntax A x s A A l x A A P x A A displaystyle A x mid s mid A A mid lambda x A A mid Pi x A A and A B displaystyle A to B denoting P x A B displaystyle Pi x A B when x displaystyle x does not occur free in B displaystyle B The environment as is usual in typed systems are given by G G x T displaystyle Gamma emptyset mid Gamma x T The notion of b reduction is common to all systems in the cube It is written b displaystyle to beta and given by the rules l x A B C b B C x displaystyle frac lambda x A B C to beta B C x B b B l x A B b l x A B displaystyle frac B to beta B lambda x A B to beta lambda x A B A b A l x A B b l x A B displaystyle frac A to beta A lambda x A B to beta lambda x A B B b B P x A B b P x A B displaystyle frac B to beta B Pi x A B to beta Pi x A B A b A P x A B b P x A B displaystyle frac A to beta A Pi x A B to beta Pi x A B Its reflexive transitive closure is written b displaystyle beta The following typing rules are also common to all systems in the cube Axiom displaystyle frac vdash square quad text Axiom G A s x does not occur in G G x A x A Start displaystyle frac Gamma vdash A s quad x text does not occur in Gamma Gamma x A vdash x A quad text Start G A B G C s G x C A B Weakening displaystyle frac Gamma vdash A B quad Gamma vdash C s Gamma x C vdash A B quad text Weakening G C P x A B G a A G C a B a x Application displaystyle frac Gamma vdash C Pi x A B quad Gamma vdash a A Gamma vdash Ca B a x quad text Application G A B B b B G B s G A B Conversion displaystyle frac Gamma vdash A B quad B beta B quad Gamma vdash B s Gamma vdash A B quad text Conversion The difference between the systems is in the pairs of sorts s 1 s 2 textstyle s 1 s 2 that are allowed in the following two typing rules G A s 1 G x A B s 2 G P x A B s 2 Product displaystyle frac Gamma vdash A s 1 quad Gamma x A vdash B s 2 Gamma vdash Pi x A B s 2 quad text Product G A s 1 G x A b B G x A B s 2 G l x A b P x A B Abstraction displaystyle frac Gamma vdash A s 1 quad Gamma x A vdash b B quad Gamma x A vdash B s 2 Gamma vdash lambda x A b Pi x A B quad text Abstraction The correspondence between the systems and the pairs s 1 s 2 textstyle s 1 s 2 allowed in the rules is the following s 1 s 2 displaystyle s 1 s 2 displaystyle displaystyle square displaystyle square displaystyle square square l lP l2 lw lP2 lPw lw lC Each direction of the cube corresponds to one pair excluding the pair textstyle shared by all systems and in turn each pair corresponds to one possibility of dependency between terms and types textstyle allows terms to depend on terms textstyle square allows types to depend on terms textstyle square allows terms to depend on types textstyle square square allows types to depend on types Comparison between the systems Editl Edit A typical derivation that can be obtained isa l x a x P x a a displaystyle alpha vdash lambda x alpha x Pi x alpha alpha or with the arrow shortcuta l x a x a a displaystyle alpha vdash lambda x alpha x alpha to alpha closely resembling the identity of type a textstyle alpha of the usual l Note that all types used must appear in the context because the only derivation that can be done in an empty context is textstyle vdash square The computing power is quite weak it corresponds to the extended polynomials polynomials together with a conditional operator 5 l2 Edit In l2 such terms can be obtained as l b l x x b P b b displaystyle vdash lambda beta lambda x bot x beta Pi beta bot to beta with P a a textstyle bot Pi alpha alpha If one reads P textstyle Pi as a universal quantification via the Curry Howard isomorphism this can be seen as a proof of the principle of explosion In general l2 adds the possibility to have impredicative types such as textstyle bot that is terms quantifying over all types including themselves The polymorphism also allows the construction of functions that were not constructible in l More precisely the functions definable in l2 are those provably total in second order Peano arithmetic 6 In particular all primitive recursive functions are definable lP Edit In lP the ability to have types depending on terms means one can express logical predicates For instance the following is derivable a a 0 a p a q l z P x a p x q l y P x a p x z a 0 y a 0 P x a p x q P x a p x q displaystyle alpha a 0 alpha p alpha to q vdash lambda z Pi x alpha px to q lambda y Pi x alpha px za 0 ya 0 Pi x alpha px to q to Pi x alpha px to q which corresponds via the Curry Howard isomorphism to a proof of x A P x Q x A P x Q displaystyle forall x A Px to Q to forall x A Px to Q From the computational point of view however having dependent types does not enhance computational power only the possibility to express more precise type properties 7 The conversion rule is strongly needed when dealing with dependent types because it allows to perform computation on the terms in the type For instance if you have G A P l x x y displaystyle Gamma vdash A P lambda x x y and G B P x P y C displaystyle Gamma vdash B Pi x P y C you need to apply the conversion rule to obtain G A P y displaystyle Gamma vdash A P y to be able to type G B A C displaystyle Gamma vdash BA C lw Edit In lw the following operatorA N D l a l b P g a b g g displaystyle AND lambda alpha lambda beta Pi gamma alpha to beta to gamma to gamma is definable that is A N D displaystyle vdash AND to to The derivationa b P g a b g g displaystyle alpha beta vdash Pi gamma alpha to beta to gamma to gamma can be obtained already in l2 however the polymorphic A N D textstyle AND can only be defined if the rule textstyle square is also present From a computing point of view lw is extremely strong and has been considered as a basis for programming languages 8 lC Edit The calculus of constructions has both the predicate expressiveness of lP and the computational power of lw hence why lC is also called lPw 1 130 so it is very powerful both on the logical side and on the computational side Relation to other systems EditThe system Automath is similar to l2 from a logical point of view The ML like languages from a typing point of view lie somewhere between l and l2 as they admit a restricted kind of polymorphic types that is the types in prenex normal form However because they feature some recursion operators their computing power is greater than that of l2 7 The Coq system is based on an extension of lC with a linear hierarchy of universes rather than only one untypable textstyle square and the ability to construct inductive types Pure type systems can be seen as a generalization of the cube with an arbitrary set of sorts axiom product and abstraction rules Conversely the systems of the lambda cube can be expressed as pure type systems with two sorts displaystyle square the only axiom textstyle square and a set of rules R textstyle R such that R displaystyle subseteq R subseteq square square square square square square 1 Via the Curry Howard isomorphism there is a one to one correspondence between the systems in the lambda cube and logical systems 1 namely System of the cube Logical Systeml First order Propositional Calculusl2 Second order Propositional Calculuslw Weakly Higher Order Propositional Calculuslw Higher Order Propositional CalculuslP First order Predicate LogiclP2 Second order Predicate CalculuslPw Weak Higher Order Predicate CalculuslC Calculus of ConstructionsAll the logics are implicative i e the only connectives are textstyle to and textstyle forall however one can define other connectives such as displaystyle wedge or displaystyle neg in an impredicative way in second and higher order logics In the weak higher order logics there are variables for higher order predicates but no quantification on those can be done Common properties EditAll systems in the cube enjoy the Church Rosser property if M b N displaystyle M to beta N and M b N displaystyle M to beta N then there exists N displaystyle N such that N b N displaystyle N to beta N and N b N displaystyle N to beta N the subject reduction property if G M T displaystyle Gamma vdash M T and M b M displaystyle M to beta M then G M T displaystyle Gamma vdash M T the uniqueness of types if G A B displaystyle Gamma vdash A B and G A B displaystyle Gamma vdash A B then B b B displaystyle B beta B All of these can be proven on generic pure type systems 9 Any term well typed in a system of the cube is strongly normalizing 1 although this property is not common to all pure type systems No system in the cube is Turing complete 7 Subtyping EditSubtyping however is not represented in the cube even though systems like F lt w displaystyle F lt omega known as higher order bounded quantification which combines subtyping and polymorphism are of practical interest and can be further generalized to bounded type operators Further extensions to F lt w displaystyle F lt omega allow the definition of purely functional objects these systems were generally developed after the lambda cube paper was published 10 The idea of the cube is due to the mathematician Henk Barendregt 1991 The framework of pure type systems generalizes the lambda cube in the sense that all corners of the cube as well as many other systems can be represented as instances of this general framework 11 This framework predates the lambda cube by a couple of years In his 1991 paper Barendregt also defines the corners of the cube in this framework See also EditIn his Habilitation a diriger les recherches 12 Olivier Ridoux gives a cut out template of the lambda cube and also a dual representation of the cube as an octahedron where the 8 vertices are replaced by faces as well as a dual representation as a dodecahedron where the 12 edges are replaced by faces Homotopy type theoryNotes Edit a b c d e f Barendregt Henk 1991 Introduction to generalized type systems Journal of Functional Programming 1 2 125 154 doi 10 1017 s0956796800020025 hdl 2066 17240 ISSN 0956 7968 Nederpelt Rob Geuvers Herman 2014 Type Theory and Formal Proof Cambridge University Press p 69 ISBN 9781107036505 Nederpelt amp Geuvers 2014 p 85 Nederpelt amp Geuvers 2014 p 100 Schwichtenberg Helmut 1975 Definierbare Funktionen iml Kalkul mit Typen Archiv fur Mathematische Logik und Grundlagenforschung in German 17 3 4 113 114 doi 10 1007 bf02276799 ISSN 0933 5846 Girard Jean Yves Lafont Yves Taylor Paul 1989 Proofs and Types Cambridge Tracts in Theoretical Computer Science Vol 7 Cambridge University Press ISBN 9780521371810 a b c Ridoux Olivier 1998 Lambda Prolog de A a Z ou presque PDF s n OCLC 494473554 Pierce Benjamin Dietzen Scott Michaylov Spiro 1989 Programming in higher order typed lambda calculi Computer Science Department Carnegie Mellon University OCLC 20442222 CMU CS 89 111 ERGO 89 075 Sorensen Morten Heine Urzyczyin Pawel 2006 Pure type systems and the l cube Lectures on the Curry Howard Isomorphism Elsevier pp 343 359 doi 10 1016 s0049 237x 06 80015 7 ISBN 9780444520777 Pierce Benjamin 2002 Types and programming languages MIT Press pp 467 490 ISBN 978 0262162098 OCLC 300712077 Pierce 2002 p 466 Ridoux 1998 p 70Further reading EditPeyton Jones Simon Meijer Erik 1997 Henk A Typed Intermediate Language PDF Henk is based directly on the lambda cube an expressive family of typed lambda calculi External links EditBarendregt s Lambda Cube in the context of pure type systems by Roger Bishop Jones Retrieved from https en wikipedia org w index php title Lambda cube amp oldid 1070547606, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.