Results 1  10
of
11
Semicontinuous sized types and termination
 In Zoltán Ésik, editor, Computer Science Logic, 20th International Workshop, CSL 2006, 15th Annual Conference of the EACSL
"... Abstract. Some typebased approaches to termination use sized types: an ordinal bound for the size of a data structure is stored in its type. A recursive function over a sized type is accepted if it is visible in the type system that recursive calls occur just at a smaller size. This approach is onl ..."
Abstract

Cited by 10 (5 self)
 Add to MetaCart
Abstract. Some typebased approaches to termination use sized types: an ordinal bound for the size of a data structure is stored in its type. A recursive function over a sized type is accepted if it is visible in the type system that recursive calls occur just at a smaller size. This approach is only sound if the type of the recursive function is admissible, i.e., depends on the size index in a certain way. To explore the space of admissible functions in the presence of higherkinded data types and impredicative polymorphism, a semantics is developed where sized types are interpreted as functions from ordinals into sets of strongly normalizing terms. It is shown that upper semicontinuity of such functions is a sufficient semantic criterion for admissibility. To provide a syntactical criterion, a calculus for semicontinuous functions is developed. 1.
Mixed Inductive/Coinductive Types and Strong Normalization
"... Abstract. We introduce the concept of guarded saturated sets, saturated sets of strongly normalizing terms closed under folding of corecursive functions. Using this tool, we can model equiinductive and equicoinductive types with terminating recursion and corecursion principles. Two type systems are ..."
Abstract

Cited by 8 (2 self)
 Add to MetaCart
Abstract. We introduce the concept of guarded saturated sets, saturated sets of strongly normalizing terms closed under folding of corecursive functions. Using this tool, we can model equiinductive and equicoinductive types with terminating recursion and corecursion principles. Two type systems are presented: Mendler (co)iteration and sized types. As an application we show that we can directly represent the mixed inductive/coinductive type of stream processors with associated recursive operations. 1
Implementing a normalizer using sized heterogeneous types
 In Workshop on Mathematically Structured Functional Programming, MSFP
, 2006
"... In the simplytyped lambdacalculus, a hereditary substitution replaces a free variable in a normal form r by another normal form s of type a, removing freshly created redexes on the fly. It can be defined by lexicographic induction on a and r, thus, giving rise to a structurally recursive normalize ..."
Abstract

Cited by 7 (1 self)
 Add to MetaCart
In the simplytyped lambdacalculus, a hereditary substitution replaces a free variable in a normal form r by another normal form s of type a, removing freshly created redexes on the fly. It can be defined by lexicographic induction on a and r, thus, giving rise to a structurally recursive normalizer for the simplytyped lambdacalculus. We generalize this scheme to simultaneous substitutions, preserving its simple termination argument. We further implement hereditary simultaneous substitutions in a functional programming language with sized heterogeneous inductive types, Fωb, arriving at an interpreter whose termination can be tracked by the type system of its host programming language.
Wellfounded Recursion with Copatterns A Unified Approach to Termination and Productivity
, 2013
"... In this paper, we study strong normalization of a core language based on System Fomega which supports programming with finite and infinite structures. Building on our prior work, finite data such as finite lists and trees are defined via constructors and manipulated via pattern matching, while infi ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
In this paper, we study strong normalization of a core language based on System Fomega which supports programming with finite and infinite structures. Building on our prior work, finite data such as finite lists and trees are defined via constructors and manipulated via pattern matching, while infinite data such as streams and infinite trees is defined by observations and synthesized via copattern matching. In this work, we take a typebased approach to strong normalization by tracking size information about finite and infinite data in the type. This guarantees compositionality. More importantly, the duality of pattern and copatterns provide a unifying semantic concept which allows us for the first time to elegantly and uniformly support both wellfounded induction and coinduction by mere rewriting. The strong normalization proof is structured around Girard’s reducibility candidates. As such our system allows for nondeterminism and does not rely on coverage. Since System Fomega is general enough that it can be the target of compilation for the Calculus of Constructions, this work is a significant step towards representing observationcentric infinite data in proof assistants such as Coq and Agda.
Strong normalization and equi(co)inductive types
 Proc. of the 8th Int. Conf. on Typed Lambda Calculi and Applications, TLCA 2007, volume 4583 of Lect. Notes in Comput. Sci. SpringerVerlag (2007), 8–22
"... Abstract. A type system for the lambdacalculus enriched with recursive and corecursive functions over equiinductive andcoinductive types is presented in which all welltyped programs are strongly normalizing. The choice of equiinductive types, instead of the more common isoinductive types, in ue ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
Abstract. A type system for the lambdacalculus enriched with recursive and corecursive functions over equiinductive andcoinductive types is presented in which all welltyped programs are strongly normalizing. The choice of equiinductive types, instead of the more common isoinductive types, in uences both reduction rules and the strong normalization proof. By embedding iso into equitypes, the latter ones are recognized as more fundamental. A model based on orthogonality is constructed where a semantical type corresponds to a set of observations, and soundness of the type system is proven. 1
GADTs meet subtyping
 in "ACM SIGPLAN Workshop on ML", 2012, http://www. lexifi.com/ml2012/full14.pdf. Research Reports
"... While generalized abstract datatypes are now considered wellunderstood, adding them to a language with a notion of subtyping comes with a few surprises. What does it mean for a GADT parameter to be covariant? The answer turns out to be quite subtle and involves new semantic properties of types that ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
While generalized abstract datatypes are now considered wellunderstood, adding them to a language with a notion of subtyping comes with a few surprises. What does it mean for a GADT parameter to be covariant? The answer turns out to be quite subtle and involves new semantic properties of types that raise interesting design questions. We allow variance annotations in GADT definitions, present a sound and effective algorithm to check such declarations, and describe its application in a realworld language. Consider the following example of GADT definition: type α expr =  Val: α → α expr
Mixed Inductive/Coinductive Types and Strong
"... Abstract. We introduce the concept of guarded saturated sets, saturated sets of strongly normalizing terms closed under folding of corecursive functions. Using this tool, we can model equiinductive and equicoinductive types with terminating recursion and corecursion principles. Two type systems are ..."
Abstract
 Add to MetaCart
Abstract. We introduce the concept of guarded saturated sets, saturated sets of strongly normalizing terms closed under folding of corecursive functions. Using this tool, we can model equiinductive and equicoinductive types with terminating recursion and corecursion principles. Two type systems are presented: Mendler (co)iteration and sized types. As an application we show that we can directly represent the mixed inductive/coinductive type of stream processors with associated recursive operations.
Strong Normalization and Equi(co)inductive Types
"... Abstract. A type system for the lambdacalculus enriched with recursive and corecursive functions over equiinductive andcoinductive types is presented in which all welltyped programs are strongly normalizing. The choice of equiinductive types, instead of the more common isoinductive types, influ ..."
Abstract
 Add to MetaCart
Abstract. A type system for the lambdacalculus enriched with recursive and corecursive functions over equiinductive andcoinductive types is presented in which all welltyped programs are strongly normalizing. The choice of equiinductive types, instead of the more common isoinductive types, influences both reduction rules and the strong normalization proof. By embedding iso into equitypes, the latter ones are recognized as more fundamental. A model based on orthogonality is constructed where a semantical type corresponds to a set of observations, and soundness of the type system is proven.
ii Acknowledgement
"... Hiermit versichere ich, dass ich die vorliegende Diplomarbeit selbständig verfasst und keine ..."
Abstract
 Add to MetaCart
Hiermit versichere ich, dass ich die vorliegende Diplomarbeit selbständig verfasst und keine
Programming with Binders and . . .
, 2012
"... We show how to combine a general purpose type system for an existing language with support for programming with binders and contexts by refining the type system of ML with a restricted form of dependent types where index objects are drawn from contextual LF. This allows the user to specify formal sy ..."
Abstract
 Add to MetaCart
We show how to combine a general purpose type system for an existing language with support for programming with binders and contexts by refining the type system of ML with a restricted form of dependent types where index objects are drawn from contextual LF. This allows the user to specify formal systems within the logical framework LF and index ML types with contextual LF objects. Our language design keeps the index language generic only requiring decidability of equality of the index language providing a modular design. To illustrate the elegance and effectiveness of our language, we give programs for closure conversion and normalization by evaluation. Our three key technical contribution are: 1) a bidirectional type system for our core language which is centered around refinement substitutions instead of constraint solving. As a consequence, type checking is decidable and easy to trust, although constraint solving may be undecidable. 2) a bigstep environment based operational semantics with environments which lends itself to efficient implementation. 3) We prove our language to be type safe and have mechanized our theoretical development in the proof assistant Coq using the fresh approach to binding.