97 research outputs found
General Recursion via Coinductive Types
A fertile field of research in theoretical computer science investigates the
representation of general recursive functions in intensional type theories.
Among the most successful approaches are: the use of wellfounded relations,
implementation of operational semantics, formalization of domain theory, and
inductive definition of domain predicates. Here, a different solution is
proposed: exploiting coinductive types to model infinite computations. To every
type A we associate a type of partial elements Partial(A), coinductively
generated by two constructors: the first, return(a) just returns an element
a:A; the second, step(x), adds a computation step to a recursive element
x:Partial(A). We show how this simple device is sufficient to formalize all
recursive functions between two given types. It allows the definition of fixed
points of finitary, that is, continuous, operators. We will compare this
approach to different ones from the literature. Finally, we mention that the
formalization, with appropriate structural maps, defines a strong monad.Comment: 28 page
Type-Based Termination, Inflationary Fixed-Points, and Mixed Inductive-Coinductive Types
Type systems certify program properties in a compositional way. From a bigger
program one can abstract out a part and certify the properties of the resulting
abstract program by just using the type of the part that was abstracted away.
Termination and productivity are non-trivial yet desired program properties,
and several type systems have been put forward that guarantee termination,
compositionally. These type systems are intimately connected to the definition
of least and greatest fixed-points by ordinal iteration. While most type
systems use conventional iteration, we consider inflationary iteration in this
article. We demonstrate how this leads to a more principled type system, with
recursion based on well-founded induction. The type system has a prototypical
implementation, MiniAgda, and we show in particular how it certifies
productivity of corecursive and mixed recursive-corecursive functions.Comment: In Proceedings FICS 2012, arXiv:1202.317
On the Rationality of Escalation
Escalation is a typical feature of infinite games. Therefore tools conceived
for studying infinite mathematical structures, namely those deriving from
coinduction are essential. Here we use coinduction, or backward coinduction (to
show its connection with the same concept for finite games) to study carefully
and formally the infinite games especially those called dollar auctions, which
are considered as the paradigm of escalation. Unlike what is commonly admitted,
we show that, provided one assumes that the other agent will always stop,
bidding is rational, because it results in a subgame perfect equilibrium. We
show that this is not the only rational strategy profile (the only subgame
perfect equilibrium). Indeed if an agent stops and will stop at every step, we
claim that he is rational as well, if one admits that his opponent will never
stop, because this corresponds to a subgame perfect equilibrium. Amazingly, in
the infinite dollar auction game, the behavior in which both agents stop at
each step is not a Nash equilibrium, hence is not a subgame perfect
equilibrium, hence is not rational.Comment: 19 p. This paper is a duplicate of arXiv:1004.525
Normalization by Evaluation in the Delay Monad: A Case Study for Coinduction via Copatterns and Sized Types
In this paper, we present an Agda formalization of a normalizer for
simply-typed lambda terms. The normalizer consists of two coinductively defined
functions in the delay monad: One is a standard evaluator of lambda terms to
closures, the other a type-directed reifier from values to eta-long beta-normal
forms. Their composition, normalization-by-evaluation, is shown to be a total
function a posteriori, using a standard logical-relations argument.
The successful formalization serves as a proof-of-concept for coinductive
programming and reasoning using sized types and copatterns, a new and presently
experimental feature of Agda.Comment: In Proceedings MSFP 2014, arXiv:1406.153
Step-Indexed Normalization for a Language with General Recursion
The Trellys project has produced several designs for practical dependently
typed languages. These languages are broken into two
fragments-a_logical_fragment where every term normalizes and which is
consistent when interpreted as a logic, and a_programmatic_fragment with
general recursion and other convenient but unsound features. In this paper, we
present a small example language in this style. Our design allows the
programmer to explicitly mention and pass information between the two
fragments. We show that this feature substantially complicates the metatheory
and present a new technique, combining the traditional Girard-Tait method with
step-indexed logical relations, which we use to show normalization for the
logical fragment.Comment: In Proceedings MSFP 2012, arXiv:1202.240
Coinductive Formal Reasoning in Exact Real Arithmetic
In this article we present a method for formally proving the correctness of
the lazy algorithms for computing homographic and quadratic transformations --
of which field operations are special cases-- on a representation of real
numbers by coinductive streams. The algorithms work on coinductive stream of
M\"{o}bius maps and form the basis of the Edalat--Potts exact real arithmetic.
We use the machinery of the Coq proof assistant for the coinductive types to
present the formalisation. The formalised algorithms are only partially
productive, i.e., they do not output provably infinite streams for all possible
inputs. We show how to deal with this partiality in the presence of syntactic
restrictions posed by the constructive type theory of Coq. Furthermore we show
that the type theoretic techniques that we develop are compatible with the
semantics of the algorithms as continuous maps on real numbers. The resulting
Coq formalisation is available for public download.Comment: 40 page
Terminal semantics for codata types in intensional Martin-L\"of type theory
In this work, we study the notions of relative comonad and comodule over a
relative comonad, and use these notions to give a terminal coalgebra semantics
for the coinductive type families of streams and of infinite triangular
matrices, respectively, in intensional Martin-L\"of type theory. Our results
are mechanized in the proof assistant Coq.Comment: 14 pages, ancillary files contain formalized proof in the proof
assistant Coq; v2: 20 pages, title and abstract changed, give a terminal
semantics for streams as well as for matrices, Coq proof files updated
accordingl
Sequent Calculus in the Topos of Trees
Nakano's "later" modality, inspired by G\"{o}del-L\"{o}b provability logic,
has been applied in type systems and program logics to capture guarded
recursion. Birkedal et al modelled this modality via the internal logic of the
topos of trees. We show that the semantics of the propositional fragment of
this logic can be given by linear converse-well-founded intuitionistic Kripke
frames, so this logic is a marriage of the intuitionistic modal logic KM and
the intermediate logic LC. We therefore call this logic
. We give a sound and cut-free complete sequent
calculus for via a strategy that decomposes
implication into its static and irreflexive components. Our calculus provides
deterministic and terminating backward proof-search, yields decidability of the
logic and the coNP-completeness of its validity problem. Our calculus and
decision procedure can be restricted to drop linearity and hence capture KM.Comment: Extended version, with full proof details, of a paper accepted to
FoSSaCS 2015 (this version edited to fix some minor typos
Proof Relevant Corecursive Resolution
Resolution lies at the foundation of both logic programming and type class
context reduction in functional languages. Terminating derivations by
resolution have well-defined inductive meaning, whereas some non-terminating
derivations can be understood coinductively. Cycle detection is a popular
method to capture a small subset of such derivations. We show that in fact
cycle detection is a restricted form of coinductive proof, in which the atomic
formula forming the cycle plays the role of coinductive hypothesis.
This paper introduces a heuristic method for obtaining richer coinductive
hypotheses in the form of Horn formulas. Our approach subsumes cycle detection
and gives coinductive meaning to a larger class of derivations. For this
purpose we extend resolution with Horn formula resolvents and corecursive
evidence generation. We illustrate our method on non-terminating type class
resolution problems.Comment: 23 pages, with appendices in FLOPS 201
- …