Turing-Completeness Totally Free

@inproceedings{McBride2015TuringCompletenessTF,
  title={Turing-Completeness Totally Free},
  author={Conor McBride},
  booktitle={MPC},
  year={2015}
}
In this paper, I show that general recursive definitions can be represented in the free monad which supports the ‘effect’ of making a recursive call, without saying how these calls should be executed. Diverse semantics can be given within a total framework by suitable monad morphisms. The Bove-Capretta construction of the domain of a general recursive function can be presented datatype-generically as an instance of this technique. The paper is literate Agda, but its key ideas are more broadly… Expand
Fixing non-determinism
TLDR
This paper provides an implementation based on algebraic effect handlers to compute such least fixed points in a finite amount of time, thereby allowing non-determinism and recursion to meaningfully co-occur in a single program. Expand
A big step from finite to infinite computations
TLDR
A construction that, given a big-step semantics describing finite computations and their observations, extends it to include infinite computations as well, and proves that the finite behaviour uniquely determines the infinite behaviour once observations and their composition operators are fixed. Expand
Dijkstra monads for all
This paper proposes a general semantic framework for verifying programs with arbitrary monadic side-effects using Dijkstra monads, which we define as monad-like structures indexed by a specificationExpand
Combining predicate transformer semantics for effects: a case study in parsing regular languages
TLDR
This paper describes how to verify a parser for regular expressions in a functional programming language using predicate transformer semantics for a variety of effects: non-determinism, general recursion and mutable state. Expand
Principles of Program Verification for Arbitrary Monadic Effects. (Principes de la Vérification de Programmes à Effets Monadiques Arbitraires)
TLDR
The goal of this thesis is to devise a principled semantic framework for verifying programs with arbitrary monadic effects in a generic way with respect to rich specifications, for properties such as program equivalence. Expand
Dijkstra monads forever: termination-sensitive specifications for interaction trees
TLDR
The Dijkstra monad framework is extended, designed for writing specifications over effectful programs using monadic effects, to handle termination sensitive specifications over interactive programs, by introducing base specification monads for non-terminating programs with uninterpreted events. Expand
Interaction trees: representing recursive and impure programs in Coq
TLDR
The termination-sensitive correctness of a compiler from a simple imperative source language to an assembly-like target whose meanings are given in an ITree-based denotational semantics is proved. Expand
A predicate transformer semantics for effects (functional pearl)
TLDR
This paper presents a predicate transformer semantics for a variety of effects, including exceptions, state, non-determinism, and general recursion that gives rise to a refinement relation that can be used to relate a program to its specification, or even calculate effectful programs that are correct by construction. Expand
Effectful Programming in Declarative Languages with an Emphasis on Non-Determinism: Applications and Formal Reasoning
TLDR
This thesis implements a model for the non-determinism of Curry: non-strict non-Determinism with call-time choice, and presents an idea to apply formal reasoning on effectful declarative programming languages. Expand
A predicate transformer semantics for effects
Reasoning about programs that use effects can be much harder than reasoning about their pure counterparts. This paper presents a predicate transformer semantics for a variety of effects, includingExpand
...
1
2
3
...

References

SHOWING 1-10 OF 25 REFERENCES
Notions of Computation and Monads
  • E. Moggi
  • Computer Science, Mathematics
  • Inf. Comput.
  • 1991
TLDR
Calculi are introduced, based on a categorical semantics for computations, that provide a correct basis for proving equivalence of programs for a wide range of notions of computation. Expand
Monadic Presentations of Lambda Terms Using Generalized Inductive Types
TLDR
A definition of untyped λ-terms using a heterogeneous datatype is presented, i.e. an inductively defined operator can be extended to a Kleisli triple, which is a concise way to verify the substitution laws forλ-calculus. Expand
General recursion via coinductive types
TLDR
This work shows how a simple device is sufficient to formalize all recursive functions between two given types, and allows the definition of fixed points of finitary, that is, continuous, operators. Expand
Computational lambda-calculus and monads
  • E. Moggi
  • Mathematics, Computer Science
  • [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science
  • 1989
TLDR
The author gives a calculus based on a categorical semantics for computations, which provides a correct basis for proving equivalence of programs, independent from any specific computational model. Expand
Codifying Guarded Definitions with Recursive Schemes
TLDR
An extension of the Calculus of Constructions with inductive and coinductive types which allows a more direct description of recursive definitions and develops a general method to codify a fix point definition satisfying them using well-known recursive schemes, like primitive recursion and co-recursion. Expand
Monads need not be endofunctors
TLDR
A generalization of monads is introduced, called relative monads, allowing for underlying functors between different categories, and it is shown that the Kleisli and Eilenberg-Moore constructions carry over to relative monad and are related to relative adjunctions. Expand
A Finite Axiomatization of Inductive-Recursive Definitions
TLDR
A finite axiomatization of inductive-recursive definitions is given and consistency is proved by constructing a set-theoretic model which makes use of one Mahlo cardinal. Expand
Normalization by Evaluation in the Delay Monad: A Case Study for Coinduction via Copatterns and Sized Types
TLDR
The successful formalization of a normalizer for simply-typed lambda terms serves as a proof-of-concept for coinductive programming and reasoning using sized types and copatterns, a new and presently experimental feature of Agda. Expand
Nested General Recursion and Partiality in Type Theory
We extend Bove's technique for formalising simple general recursive algorithms in constructive type theory to nested recursive algorithms. The method consists in defining an inductive special-purposeExpand
Split-2 bisimilarity has a finite axiomatization over CCS with Hennessy's merge
TLDR
This note shows that split-2 bisimulation equivalence affords a finite equational axiomatization over the process algebra obtained by adding an auxiliary operation proposed by Hennessy in 1981 to the recursion, re- labelling and restriction free fragment of Milner's Calculus of Communicating Systems. Expand
...
1
2
3
...