Results 1  10
of
14
A Calculus with Polymorphic and Polyvariant Flow Types
"... We present # CIL , a typed #calculus which serves as the foundation for a typed intermediate language for optimizing compilers for higherorder polymorphic programming languages. The key innovation of # CIL is a novel formulation of intersection and union types and flow labels on both terms and ..."
Abstract

Cited by 28 (11 self)
 Add to MetaCart
We present # CIL , a typed #calculus which serves as the foundation for a typed intermediate language for optimizing compilers for higherorder polymorphic programming languages. The key innovation of # CIL is a novel formulation of intersection and union types and flow labels on both terms and types. These flow types can encode polyvariant control and data flow information within a polymorphically typed program representation. Flow types can guide a compiler in generating customized data representations in a strongly typed setting. Since # CIL enjoys confluence, standardization, and subject reduction properties, it is a valuable tool for reasoning about programs and program transformations.
Expansion: the Crucial Mechanism for Type Inference with Intersection Types: Survey and Explanation
 In: (ITRS ’04
, 2005
"... The operation of expansion on typings was introduced at the end of the 1970s by Coppo, Dezani, and Venneri for reasoning about the possible typings of a term when using intersection types. Until recently, it has remained somewhat mysterious and unfamiliar, even though it is essential for carrying ..."
Abstract

Cited by 17 (7 self)
 Add to MetaCart
The operation of expansion on typings was introduced at the end of the 1970s by Coppo, Dezani, and Venneri for reasoning about the possible typings of a term when using intersection types. Until recently, it has remained somewhat mysterious and unfamiliar, even though it is essential for carrying out compositional type inference. The fundamental idea of expansion is to be able to calculate the effect on the final judgement of a typing derivation of inserting a use of the intersectionintroduction typing rule at some (possibly deeply nested) position, without actually needing to build the new derivation.
A Bargain for Intersection Types: A Simple Strong Normalization Proof
"... This pearl gives a discount proof of the folklore theorem that every strongly #normalizing #term is typable with an intersection type. (We consider typings that do not use the empty intersection # which can type any term.) The proof uses the perpetual reduction strategy which finds a longest path. ..."
Abstract
 Add to MetaCart
This pearl gives a discount proof of the folklore theorem that every strongly #normalizing #term is typable with an intersection type. (We consider typings that do not use the empty intersection # which can type any term.) The proof uses the perpetual reduction strategy which finds a longest path. This is a simplification over existing proofs that consider any longest reduction path. The choice of reduction strategy avoids the need for weakening or strengthening of type derivations. The proof becomes a bargain because it works for more intersection type systems, while being simpler than existing proofs.
(Typed) λCalculus and Formalising Mathematics à la de Bruijn In honour of De Bruijn’s 90th anniversary
, 2008
"... • In 1967, an internationally renowned mathematician called N.G. de Bruijn wanted to do something never done before: use the computer to formally check the correctness of mathematical books. • Such a task needs a good formalisation of mathematics, a good competence in implementation, and extreme att ..."
Abstract
 Add to MetaCart
• In 1967, an internationally renowned mathematician called N.G. de Bruijn wanted to do something never done before: use the computer to formally check the correctness of mathematical books. • Such a task needs a good formalisation of mathematics, a good competence in implementation, and extreme attention to all the details so that nothing is left informal. • No earlier formalisation of mathematics (Frege, Russell, Whitehead, Hilbert, Ramsey, etc.) had ever achieved such attention to details. • Implementing extensive formal systems on the computer was never done before. • De Bruijn, an extremely original mathematician, did every step his own way, quickly replacing existing ideas with his own original genious way of thinking, shaping the road ahead for everyone else to follow.
CS792 Notes Arranged by Alexandra Stefan based on a lecture by Hongwei Xi
, 2005
"... We have seen previously that there are three ways of generating new redexes by reduction. Out of the three forms, one may argue that one of them is not a new redex, but a residual of a redex in the initial term: (λx.(λy.M))N1N2 We can define a new reduction which reduces this ’hidden redexes’. This ..."
Abstract
 Add to MetaCart
We have seen previously that there are three ways of generating new redexes by reduction. Out of the three forms, one may argue that one of them is not a new redex, but a residual of a redex in the initial term: (λx.(λy.M))N1N2 We can define a new reduction which reduces this ’hidden redexes’. This reduction is called generalized βreduction and is denoted by → g β. Given a term with hidden redexes, one step of →g β allows the reduction of any of the existing redexes (no matter how deeply hidden they are): (... (λx1....λxn.M)N1)...Np) → g
Redexes in Item Notation Classical Notation Item Notation
, 2009
"... • I(λx.B) = [x]I(B) and I(AB) = (I(B))I(A) • I((λx.(λy.xy))z) ≡ (z)[x][y](y)x. The items are (z), [x], [y] and (y). • applicator wagon (z) and abstractor wagon [x] occur NEXT to each other. • A term is a wagon followed by a term. • (β) ..."
Abstract
 Add to MetaCart
• I(λx.B) = [x]I(B) and I(AB) = (I(B))I(A) • I((λx.(λy.xy))z) ≡ (z)[x][y](y)x. The items are (z), [x], [y] and (y). • applicator wagon (z) and abstractor wagon [x] occur NEXT to each other. • A term is a wagon followed by a term. • (β)
Themes in the λCalculus and Type Theory
, 2009
"... Functions (see book [Kamareddine et al.]) • General definition of function is key to Frege’s formalisation of logic (1879). • Selfapplication of functions was at the heart of Russell’s paradox (1902). • To avoid paradoxes, Russell controlled function application via type theory. • Russell (1908) gi ..."
Abstract
 Add to MetaCart
Functions (see book [Kamareddine et al.]) • General definition of function is key to Frege’s formalisation of logic (1879). • Selfapplication of functions was at the heart of Russell’s paradox (1902). • To avoid paradoxes, Russell controlled function application via type theory. • Russell (1908) gives the first type theory: the Ramified Type Theory (rtt). • rtt is used in Russell and Whitehead’s Principia Mathematica (1910–1912). • Simple theory of types (stt): Ramsey (1926), Hilbert and Ackermann (1928). • Frege’s functions ̸ = Principia’s functions ̸ = λcalculus functions (1932). ISR 2009, Brasiliá 1 • Church’s simply typed λcalculus λ → = λcalculus + stt (1940). • Both rtt and stt are unsatisfactory. Hence, birth of different type systems, each with different functional power. All based on Church’s λcalculus. • Eight influential typed λcalculi 1940–1988 unified in Barendregt’s cube. • Not all functions need to be fully abstracted as in the λcalculus. For some functions, their values are enough. • Nonfirstclass functions allow us to stay at a lower order (keeping decidability, typability, etc.) without losing the flexibility of the higherorder aspects. • We extend the cube of the eight influential type systems with nonfirstclass functions showing that this allows placing the type systems of ML, LF and Automath more accurately in the hierarchy of types.
(Typed) λCalculus and Formalising Mathematics à la de Bruijn
, 2008
"... • In 1967, an internationally renowned mathematician called N.G. de Bruijn wanted to do something never done before: use the computer to formally check the correctness of mathematical books. • Such a task needs a good formalisation of mathematics, a good competence in implementation, and extreme att ..."
Abstract
 Add to MetaCart
• In 1967, an internationally renowned mathematician called N.G. de Bruijn wanted to do something never done before: use the computer to formally check the correctness of mathematical books. • Such a task needs a good formalisation of mathematics, a good competence in implementation, and extreme attention to all the details so that nothing is left informal. • No earlier formalisation of mathematics (Frege, Russell, Whitehead, Hilbert, Ramsey, etc.) had ever achieved such attention to details. • Implementing extensive formal systems on the computer was never done before. • De Bruijn, an extremely original mathematician, did every step his own way, quickly replacing existing ideas with his own original genious way of thinking, shaping the road ahead for everyone else to follow. Eindhoven, September 2008 1De Bruijn in 1967 • When de Bruijn announced his new project Automath at the start of January 1967, there was mixed reactions:
(Typed) λCalculi à la de Bruijn
, 2012
"... Lambda2012 The two previous speakers discussing the origin of λ in Church’s writing Lambda2012 1De Bruijn’s typed λcalculi started with his Automath • In 1967, an internationally renowned mathematician called N.G. de Bruijn wanted to do something never done before: use the computer to formally chec ..."
Abstract
 Add to MetaCart
Lambda2012 The two previous speakers discussing the origin of λ in Church’s writing Lambda2012 1De Bruijn’s typed λcalculi started with his Automath • In 1967, an internationally renowned mathematician called N.G. de Bruijn wanted to do something never done before: use the computer to formally check the correctness of mathematical books. • Such a task needs a good formalisation of mathematics, a good competence in implementation, and extreme attention to all the details so that nothing is left informal. • Implementing extensive formal systems on the computer was never done before. • De Bruijn, an extremely original mathematician, did every step his own way. • He proudly announced at the ceremony of the publications of the collected Automath work: I did it my way. • Dirk van Dalen said at the ceremony: The Germans have their 3 B’s, but we Dutch too have our 3 B’s: Beth, Brouwer and de Bruijn.