Operational and algebraic semantics of concurrent processes
Handbook of theoretical computer science (vol. B)
Co-induction in relational semantics
Theoretical Computer Science
Inductive definitions, semantics and abstract interpretations
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
Infinite objects in type theory
TYPES '93 Proceedings of the international workshop on Types for proofs and programs
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Coinductive axiomatization of recursive type equality and subtyping
Fundamenta Informaticae - Special issue: typed lambda-calculi and applications, selected papers
Bisimilarity as a theory of functional programming
Theoretical Computer Science - Special issue on mathematical foundations of programming semantics
The Problem of ``Weak Bisimulation up to''
CONCUR '92 Proceedings of the Third International Conference on Concurrency Theory
On the Semantics of Fair Parallelism
Proceedings of the Abstract Software Specifications, 1979 Copenhagen Winter School
Proof Principles for Datatypes with Iterated Recursion
CTCS '97 Proceedings of the 7th International Conference on Category Theory and Computer Science
Inductive definition in type theory
Inductive definition in type theory
A categorical programming language
A categorical programming language
Type-based termination of recursive definitions
Mathematical Structures in Computer Science
Journal of Functional Programming
A predicative analysis of structural recursion
Journal of Functional Programming
Journal of Functional Programming
Proof Methods for Corecursive Programs
Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 1
Coinductive big-step operational semantics
Information and Computation
Trace-Based Coinductive Operational Semantics for While
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
Mixed inductive/coinductive types and strong normalization
APLAS'07 Proceedings of the 5th Asian conference on Programming languages and systems
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Towards a formal semantics for a structurally dynamic noncausal modelling language
TLDI '12 Proceedings of the 8th ACM SIGPLAN workshop on Types in language design and implementation
APLAS'11 Proceedings of the 9th Asian conference on Programming Languages and Systems
Subtyping by folding an inductive relation into a coinductive one
TFP'11 Proceedings of the 12th international conference on Trends in Functional Programming
Operational semantics using the partiality monad
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Copatterns: programming infinite structures by observations
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Contractive signatures with recursive types, type parameters, and abstract types
ICALP'13 Proceedings of the 40th international conference on Automata, Languages, and Programming - Volume Part II
Hi-index | 0.00 |
It is natural to present subtyping for recursive types coinductively. However, Gapeyev, Levin and Pierce have noted that there is a problem with coinductive definitions of non-trivial transitive inference systems: they cannot be "declarative" -- as opposed to "algorithmic" or syntax-directed -- because coinductive inference systems with an explicit rule of transitivity are trivial. We propose a solution to this problem. By using mixed induction and coinduction we define an inference system for subtyping which combines the advantages of coinduction with the convenience of an explicit rule of transitivity. The definition uses coinduction for the structural rules, and induction for the rule of transitivity. We also discuss under what conditions this technique can be used when defining other inference systems The developments presented in the paper have been mechanised using Agda, a dependently typed programming language and proof assistant.