Semi-Continuous Sized Types and Termination

Some type-based 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 higher-kinded 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 semi-continuity of such functions is a sufficient semantic criterion for admissibility. To provide a syntactical criterion, a calculus for semi-continuous functions is developed.

[1]  Eduardo Giménez,et al.  Structural Recursive Definitions in Type Theory , 1998, ICALP.

[2]  Amr Sabry,et al.  Proving the correctness of reactive systems using sized types , 1996, POPL '96.

[3]  Benjamin Grégoire,et al.  CIC[^( )]: Type-Based Termination of Recursive Definitions in the Calculus of Inductive Constructions , 2006, LPAR.

[4]  Andreas Abel Polarized Subtyping for Sized Types , 2006, CSR.

[5]  Andreas Abel,et al.  Type-based termination: a polymorphic lambda-calculus with sized higher-order types , 2006 .

[6]  Ralf Hinze,et al.  Efficient Generalized Folds , 1999 .

[7]  Ralf Hinze,et al.  Generalizing generalized tries , 2000, Journal of Functional Programming.

[8]  Karl Crary,et al.  Flexible type analysis , 1999, ICFP '99.

[9]  Frédéric Blanqui A Type-Based Termination Criterion for Dependently-Typed Higher-Order Rewrite Systems , 2004, RTA.

[10]  Benjamin C. Pierce,et al.  Types and programming languages: the next generation , 2003, 18th Annual IEEE Symposium of Logic in Computer Science, 2003. Proceedings..

[11]  N. P. Mendler,et al.  Recursive Types and Type Constraints in Second-Order Lambda Calculus , 1987, LICS.

[12]  Frédéric Blanqui,et al.  Decidability of Type-Checking in the Calculus of Algebraic Constructions with Size Annotations , 2005, CSL.

[13]  Christine Paulin-Mohring,et al.  Inductive Definitions in the system Coq - Rules and Properties , 1993, TLCA.

[14]  Thorsten Altenkirch,et al.  Representations of First Order Function Types as Terminal Coalgebras , 2001, TLCA.

[15]  Luís Pinto,et al.  Type-based termination of recursive definitions , 2004, Mathematical Structures in Computer Science.

[16]  Lars Pareto Types for Crash Preventionn , 2000 .

[17]  Roberto M. Amadio,et al.  Analysis of a Guard Condition in Type Theory (Extended Abstract) , 1998, FoSSaCS.

[18]  Richard S. Bird,et al.  de Bruijn notation as a nested datatype , 1999, Journal of Functional Programming.

[19]  Adriana Compagnoni,et al.  Subtyping for Object Type Constructors , 2007 .

[20]  Benjamin Grégoire,et al.  Practical Inference for Type-Based Termination in a Polymorphic Setting , 2005, TLCA.

[21]  Ralph Matthes,et al.  Fixed Points of Type Constructors and Primitive Recursion , 2004, CSL.

[22]  Martin Steffen,et al.  Polarized higher-order subtyping , 1998 .

[23]  Hongwei Xi,et al.  Dependent Types for Program Termination Verification , 2001, Proceedings 16th Annual IEEE Symposium on Logic in Computer Science.

[24]  Andreas Abel Semi-continuous Sized Types and Termination , 2006, CSL.

[25]  Andreas Abel Termination checking with types , 2004, RAIRO Theor. Informatics Appl..

[26]  Thorsten Altenkirch,et al.  Monadic Presentations of Lambda Terms Using Generalized Inductive Types , 1999, CSL.

[27]  Jérôme Vouillon Subtyping Union Types , 2004, CSL.