226 research outputs found
Indexed induction and coinduction, fibrationally.
This paper extends the fibrational approach to induction and coinduction pioneered by Hermida and Jacobs, and developed by the current authors, in two key directions. First, we present a sound coinduction rule for any data type arising as the final coalgebra of a functor, thus relaxing Hermida and Jacobsâ restriction to polynomial data types. For this we introduce the notion of a quotient category with equality (QCE), which both abstracts the standard notion of a fibration of relations constructed from a given fibration, and plays a role in the theory of coinduction dual to that of a comprehension category with unit (CCU) in the theory of induction. Second, we show that indexed inductive and coinductive types also admit sound induction and coinduction rules. Indexed data types often arise as initial algebras and final coalgebras of functors on slice categories, so our key technical results give sufficent conditions under which we can construct, from a CCU (QCE) U : E -> B, a fibration with base B/I that models indexing by I and is also a CCU (QCE)
Using a generalisation critic to find bisimulations for coinductive proofs
Coinduction is a method of growing importance in reasoning about functional languages, due to the increasing prominence of lazy data structures. Through the use of bisimulations and proofs that observational equivalence is a congruence in various domains it can be used to proof the congruence of two processes. Several proof tools have been developed to aid coinductive proofs but all require user interaction. Crucially they require the user to supply an appropriate relation which the system can then prove to be a bisimulation. A method is proposed which uses the idea of proof plans to make a heuristic guess at a suitable relation. If the proof fails for that relation the reasons for failure are analysed using a proof critic and a new relation is proposed to allow the proof to go through
Coinduction up to in a fibrational setting
Bisimulation up-to enhances the coinductive proof method for bisimilarity,
providing efficient proof techniques for checking properties of different kinds
of systems. We prove the soundness of such techniques in a fibrational setting,
building on the seminal work of Hermida and Jacobs. This allows us to
systematically obtain up-to techniques not only for bisimilarity but for a
large class of coinductive predicates modelled as coalgebras. By tuning the
parameters of our framework, we obtain novel techniques for unary predicates
and nominal automata, a variant of the GSOS rule format for similarity, and a
new categorical treatment of weak bisimilarity
On conservativity of concurrent Haskell
The calculus CHF models Concurrent Haskell extended by concurrent, implicit futures. It is a process calculus with concurrent threads, monadic concurrent evaluation, and includes a pure functional lambda-calculus which comprises data constructors, case-expressions, letrec-expressions, and Haskellâs seq. Futures can be implemented in Concurrent Haskell using the primitive unsafeInterleaveIO, which is available in most implementations of Haskell. Our main result is conservativity of CHF, that is, all equivalences of pure functional expressions are also valid in CHF. This implies that compiler optimizations and transformations from pure Haskell remain valid in Concurrent Haskell even if it is extended by futures. We also show that this is no longer valid if Concurrent Haskell is extended by the arbitrary use of unsafeInterleaveIO
Bisimilarity of Open Terms in Stream GSOS
Stream GSOS is a specification format for operations and calculi on infinite
sequences. The notion of bisimilarity provides a canonical proof technique for
equivalence of closed terms in such specifications. In this paper, we focus on
open terms, which may contain variables, and which are equivalent whenever they
denote the same stream for every possible instantiation of the variables. Our
main contribution is to capture equivalence of open terms as bisimilarity on
certain Mealy machines, providing a concrete proof technique. Moreover, we
introduce an enhancement of this technique, called bisimulation up-to
substitutions, and show how to combine it with other up-to techniques to obtain
a powerful method for proving equivalence of open terms
- âŠ