Results 1  10
of
11
Using structural recursion for corecursion
 In Types for Proofs and Programs, International Conference, TYPES 2008, volume 5497 of LNCS
, 2009
"... Abstract. We propose a (limited) solution to the problem of constructing stream values defined by recursive equations that do not respect the guardedness condition. The guardedness condition is imposed on definitions of corecursive functions in Coq, AGDA, and other higherorder proof assistants. In ..."
Abstract

Cited by 6 (1 self)
 Add to MetaCart
(Show Context)
Abstract. We propose a (limited) solution to the problem of constructing stream values defined by recursive equations that do not respect the guardedness condition. The guardedness condition is imposed on definitions of corecursive functions in Coq, AGDA, and other higherorder proof assistants. In this paper, we concentrate in particular on those nonguarded equations where recursive calls appear under functions. We use a correspondence between streams and functions over natural numbers to show that some classes of nonguarded definitions can be modelled through the encoding as structural recursive functions. In practice, this work extends the class of stream values that can be defined in a constructive type theorybased theorem prover with inductive and coinductive types, structural recursion and guarded corecursion.
Formal Polytypic Programs and Proofs
 UNDER CONSIDERATION FOR PUBLICATION IN J. FUNCTIONAL PROGRAMMING
, 2010
"... The aim of our work is to be able to do fully formal, machine verified proofs over Generic Haskellstyle polytypic programs. In order to achieve this goal, we embed polytypic programming in the proof assistant Coq and provide an infrastructure for polytypic proofs. Polytypic functions are reified wi ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
The aim of our work is to be able to do fully formal, machine verified proofs over Generic Haskellstyle polytypic programs. In order to achieve this goal, we embed polytypic programming in the proof assistant Coq and provide an infrastructure for polytypic proofs. Polytypic functions are reified within Coq as a datatype and they can then be specialized by applying a dependently typed term specialization function. Polytypic functions are thus first class citizens and can be passed as arguments or returned as results. Likewise, we reify polytypic proofs as a datatype, and provide a lemma that a polytypic proof can be specialized to any datatype in the universe. The correspondence between polytypic functions and their polytypic proofs is very clear: programmers need to give proofs for, and only for, the same cases that they need to give instances for when they define the polytypic function itself. Finally, we discuss how to write (co)recursive functions and do (co)recursive proofs in a similar way that recursion is handled in Generic Haskell.
Cuts for circular proofs: semantics and cutelimination
"... One of the authors introduced in [16] a calculus of circular proofs for studying the computability arising from the following categorical operations: finite products, finite coproducts, initial algebras, final coalgebras. The calculus presented [16] is cutfree; even if sound and complete for provab ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
One of the authors introduced in [16] a calculus of circular proofs for studying the computability arising from the following categorical operations: finite products, finite coproducts, initial algebras, final coalgebras. The calculus presented [16] is cutfree; even if sound and complete for provability, it lacked an important property for the semantics of proofs, namely fullness w.r.t. the class of intended categorical models (called µbicomplete categories in [18]). In this paper we fix this problem by adding the cut rule to the calculus and by modifying accordingly the syntactical constraint ensuring soundness of proofs. The enhanced proof system fully represents arrows of the canonical model (a free µbicomplete category). We also describe a cutelimination procedure as a a model of computation arising from the above mentioned categorical operations. The procedure constructs a cutfree prooftree with possibly infinite branches out of a finite circular proof with cuts.
Development of the Productive Forces
"... Abstract. Proofs involving infinite structures can use corecursive functions as inhabitants of a corecursive type. Admissibility of such functions in theorem provers such as Coq or Agda, requires that these functions are productive. Typically this is proved by showing satisfaction of a guardedness c ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract. Proofs involving infinite structures can use corecursive functions as inhabitants of a corecursive type. Admissibility of such functions in theorem provers such as Coq or Agda, requires that these functions are productive. Typically this is proved by showing satisfaction of a guardedness condition. The guardedness condition however is extremely restrictive and many programs which are in fact productive and therefore will not compromise soundness are nonetheless rejected. Supercompilation is a family of program transformations which retain program equivalence. Using supercompilation we can take programs whose productivity is suspected and transform them into programs for which guardedness is syntactically apparent. 1
Automated Proof Pattern Recognition: the Manual
"... This Documents is a Manual supporting the project Machinelearning coalgebraic automated proofs. Several experiments on patternrecognition of proofpatterns are given here. We provide a method to convert automatically produced prooftrees into ..."
Abstract
 Add to MetaCart
(Show Context)
This Documents is a Manual supporting the project Machinelearning coalgebraic automated proofs. Several experiments on patternrecognition of proofpatterns are given here. We provide a method to convert automatically produced prooftrees into
5. New Results.............................................................................. 3
"... c t i v it y e p o r t 2007 Table of contents ..."
A Typetheoretic Approach to Resolution?
"... Abstract. We propose a new typetheoretic approach to SLDresolution and Hornclause logic programming. It views Horn formulas as types, and derivations for a given query as a construction of the inhabitant (a proofterm) for the type given by the query. We propose a method of program transformation ..."
Abstract
 Add to MetaCart
Abstract. We propose a new typetheoretic approach to SLDresolution and Hornclause logic programming. It views Horn formulas as types, and derivations for a given query as a construction of the inhabitant (a proofterm) for the type given by the query. We propose a method of program transformation that allows to transform logic programs in such a way that proof evidence is computed alongside SLDderivations. We discuss two applications of this approach: in recently proposed productivity theory of structural resolution, and in type class inference.
Abstract
"... It is possible to provide a proof for a coinductive type using a corecursive function coupled with aguardedness condition. The guardedness condition, however, is quiterestrictive and many programs which are in fact productive and do not compromise soundness will be rejected. We present a system of c ..."
Abstract
 Add to MetaCart
(Show Context)
It is possible to provide a proof for a coinductive type using a corecursive function coupled with aguardedness condition. The guardedness condition, however, is quiterestrictive and many programs which are in fact productive and do not compromise soundness will be rejected. We present a system of cyclic proof for an extension of System F extended with sums, products and (co)inductive types. Using program transformation techniques we are able to take some programs whose productivity is suspected and transform them, using a suitable theory of equivalence, into programs for which guardedness is syntactically apparent. The equivalence of the proof prior and subsequent to transformation is given by a bisimulation relation. 1
Cyclic Proofs and Coinductive Principles
"... It is possible to provide a proof for a coinductive type using a corecursive function coupled with aguardedness condition. The guardedness condition, however, is quiterestrictive and many programs which are in fact productive and do not compromise soundness will be rejected. We present a system of c ..."
Abstract
 Add to MetaCart
(Show Context)
It is possible to provide a proof for a coinductive type using a corecursive function coupled with aguardedness condition. The guardedness condition, however, is quiterestrictive and many programs which are in fact productive and do not compromise soundness will be rejected. We present a system of cyclic proof for an extension of System F extended with sums, products and (co)inductive types. Using program transformation techniques we are able to take some programs whose productivity is suspected and transform them, using a suitable theory of equivalence, into programs for which guardedness is syntactically apparent. The equivalence of the proof prior and subsequent to transformation is given by a bisimulation relation. 1