Results 11  20
of
69
Ats: A language that combines programming with theorem proving
 of Lecture Notes in Computer Science
, 2005
"... Abstract. ATS is a language with a highly expressive type system that supports a restricted form of dependent types in which programs are not allowed to appear in type expressions. The language is separated into two components: a proof language in which (inductive) proofs can be encoded as (total re ..."
Abstract

Cited by 13 (0 self)
 Add to MetaCart
Abstract. ATS is a language with a highly expressive type system that supports a restricted form of dependent types in which programs are not allowed to appear in type expressions. The language is separated into two components: a proof language in which (inductive) proofs can be encoded as (total recursive) functions that are erased before execution, and a programming language for constructing programs to be evaluated. This separation enables a paradigm that combines programming with theorem proving. In this paper, we illustrate by example how this programming paradigm is supported in ATS.
Programming With Types
 CORNELL UNIVERSITY
, 2002
"... Runtime type analysis is an increasingly important linguistic mechanism in modern programming languages. Language runtime systems use it to implement services such as accurate garbage collection, serialization, cloning and structural equality. Component frameworks rely on it to provide reflection m ..."
Abstract

Cited by 11 (1 self)
 Add to MetaCart
Runtime type analysis is an increasingly important linguistic mechanism in modern programming languages. Language runtime systems use it to implement services such as accurate garbage collection, serialization, cloning and structural equality. Component frameworks rely on it to provide reflection mechanisms so they may discover and interact with program interfaces dynamically. Runtime type analysis is also crucial for large, distributed systems that must be dynamically extended, because it allows those systems to check program invariants when new code and new forms of data are added. Finally, many generic userlevel algorithms for iteration, pattern matching, and unification can be defined through type analysis mechanisms. However, existing frameworks for runtime type analysis were designed for simple type systems. They do not scale well to the sophisticated type systems of modern and nextgeneration programming languages that include complex constructs such as firstclass abstract types, recursive types, objects, and type parameterization. In addition, facilities to support type analysis often require complicated
Monotone Inductive and Coinductive Constructors of Rank 2
 Proceedings of CSL 2001
, 2001
"... A generalization of positive inductive and coinductive types to monotone inductive and coinductive constructors of rank 1 and rank 2 is described. The motivation is taken from initial algebras and nal coalgebras in a functor category and the CurryHowardcorrespondence. The denition of the system as ..."
Abstract

Cited by 10 (4 self)
 Add to MetaCart
A generalization of positive inductive and coinductive types to monotone inductive and coinductive constructors of rank 1 and rank 2 is described. The motivation is taken from initial algebras and nal coalgebras in a functor category and the CurryHowardcorrespondence. The denition of the system as a calculus requires an appropriate denition of monotonicity to overcome subtle problems, most notably to ensure that the (co)inductive constructors introduced via monotonicity of the underlying constructor of rank 2 are also monotone as constructors of rank 1. The problem is solved, strong normalization shown, and the notion proven to be wide enough to cover even highly complex datatypes. 1
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.
New Notions of Reduction and NonSemantic Proofs of Strong βNormalization in Typed λCalculi
 PROCEEDINGS OF LOGIC IN COMPUTER SCIENCE
, 1995
"... Two notions of reduction for terms of the λcalculus are introduced and the question of whether a λterm is βstrongly normalizing is reduced to the question of whether a λterm is merely normalizing under one of the notions of reduction. This gives a method to prove strong βnormalization for typ ..."
Abstract

Cited by 9 (2 self)
 Add to MetaCart
Two notions of reduction for terms of the λcalculus are introduced and the question of whether a λterm is βstrongly normalizing is reduced to the question of whether a λterm is merely normalizing under one of the notions of reduction. This gives a method to prove strong βnormalization for typed λcalculi. Instead of the usual semantic proof style based on Tait's realizability or Girard's "candidats de réductibilité", termination can be proved using a decreasing metric over a wellfounded ordering. This proof method is applied to the simplytyped λcalculus and the system of intersection types, giving the first nonsemantic proof for a polymorphic extension of the λcalculus.
Inductive Data Types: Wellordering Types Revisited
 Logical Environments
, 1992
"... We consider MartinLof's wellordering type constructor in the context of an impredicative type theory. We show that the wellordering types can represent various inductive types faithfully in the presence of the fillingup equality rules or jrules. We also discuss various properties of the fill ..."
Abstract

Cited by 8 (1 self)
 Add to MetaCart
We consider MartinLof's wellordering type constructor in the context of an impredicative type theory. We show that the wellordering types can represent various inductive types faithfully in the presence of the fillingup equality rules or jrules. We also discuss various properties of the fillingup rules. 1 Introduction Type theory is on the edge of two disciplines, constructive logic and computer science. Logicians see type theory as interesting because it offers a foundation for constructive mathematics and its formalization. For computer scientists, type theory promises to provide a uniform framework for programs, proofs, specifications, and their development. From each perspective, incorporating a general mechanism for inductively defined data types into type theory is an important next step. Various typetheoretic approaches to inductive data types have been considered in the literature, both in MartinLof's predicative type theories (e.g., [ML84, Acz86, Dyb88, Dyb91, B...
MendlerStyle Inductive Types, Categorically
 NORDIC JOURNAL OF COMPUTING 6(1999), 343 361
, 1999
"... We present a basis for a categorytheoretic account of Mendlerstyle inductive types. The account is based on suitably defined concepts of Mendlerstyle algebra and algebra homomorphism; Mendlerstyle inductive types are identified with initial Mendlerstyle algebras. We use the identification to ob ..."
Abstract

Cited by 8 (4 self)
 Add to MetaCart
We present a basis for a categorytheoretic account of Mendlerstyle inductive types. The account is based on suitably defined concepts of Mendlerstyle algebra and algebra homomorphism; Mendlerstyle inductive types are identified with initial Mendlerstyle algebras. We use the identification to obtain a reduction of conventional inductive types to Mendlerstyle inductive types and a reduction in the presence of certain restricted existential types of Mendlerstyle inductive types to conventional inductive types.
Programming with inductive and coinductive types
, 1992
"... Abstract We look at programming with inductive and coinductive datatypes, which are inspired theoretically by initial algebras and final coalgebras, respectively. A predicative calculus which incorporates these datatypes as primitive constructs is presented. This calculus allows reduction sequence ..."
Abstract

Cited by 7 (0 self)
 Add to MetaCart
Abstract We look at programming with inductive and coinductive datatypes, which are inspired theoretically by initial algebras and final coalgebras, respectively. A predicative calculus which incorporates these datatypes as primitive constructs is presented. This calculus allows reduction sequences which are significantly more efficient for two dual classes of common programs than do previous calculi using similar primitives. Several techniques for programming in this calculus are illustrated with numerous examples. A short survey of related work is also included.
1996], Computation on abstract data types. The extensional approach, with an application to streams
 Annals of Pure and Applied Logic
"... In this paper we specialize the notion of abstract computational procedure previously introduced for intensionally presented structures to those which are extensionally given. This is provided by a form of generalized recursion theory which uses schemata for explicit definition, conditional definiti ..."
Abstract

Cited by 7 (2 self)
 Add to MetaCart
In this paper we specialize the notion of abstract computational procedure previously introduced for intensionally presented structures to those which are extensionally given. This is provided by a form of generalized recursion theory which uses schemata for explicit definition, conditional definition and least fixed point (LFP) recursion in functionals of type level ≤ 2 over any appropriate structure. It is applied here to the case of potentially infinite (and more general partial) streams as an abstract data type. 1
Facilitating Program Verification with Dependent Types
 In Proceedings of the International Conference on Software Engineering and Formal Methods
, 2003
"... The use of types in capturing program invariants is overwhelming in practical programming. The type systems in languages such as ML and Java scale convincingly to realistic programs but they are of relatively limited expressive power. In this paper, we show that the use of a restricted form of depen ..."
Abstract

Cited by 7 (1 self)
 Add to MetaCart
The use of types in capturing program invariants is overwhelming in practical programming. The type systems in languages such as ML and Java scale convincingly to realistic programs but they are of relatively limited expressive power. In this paper, we show that the use of a restricted form of dependent types can enable us to capture many more program invariants such as memory safety while retaining practical typechecking. The programmer can encode program invariants with type annotations and then verify these invariants through static typechecking. Also the type annotations can serve as informative program documentation, which are mechanically verified and can thus be fully trusted. We argue with realistic examples that this restricted form of dependent types can significantly facilitate program verification as well as program documentation.