4th Annual Symposium on Theoretical Aspects of Computer Sciences on STACS 87
The categorical abstract machine
Science of Computer Programming
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
A co-induction principle for recursively defined domains
Theoretical Computer Science
A syntactic approach to type soundness
Information and Computation
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
NSL '94 Proceedings of the first workshop on Non-standard logics and logical aspects of computer science
Infinite &lgr;-calculus and types
Theoretical Computer Science - Special issue: Gentzen
Trace-Based Abstract Interpretation of Operational Semantics
Lisp and Symbolic Computation
Codifying Guarded Definitions with Recursive Schemes
TYPES '94 Selected papers from the International Workshop on Types for Proofs and Programs
Journal of Functional Programming
Functional runtime systems within the lambda-sigma calculus
Journal of Functional Programming
Interactive Theorem Proving and Program Development
Interactive Theorem Proving and Program Development
Formal certification of a compiler back-end or: programming a compiler with a proof assistant
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A machine-checked model for a Java-like language, virtual machine, and compiler
ACM Transactions on Programming Languages and Systems (TOPLAS)
Making a fast curry: push/enter vs. eval/apply for higher-order languages
Journal of Functional Programming
Bi-inductive Structural Semantics
Electronic Notes in Theoretical Computer Science (ENTCS)
Coinductive big-step operational semantics
Information and Computation
ICLP'06 Proceedings of the 22nd international conference on Logic Programming
Filters on coinductive streams, an application to eratosthenes' sieve
TLCA'05 Proceedings of the 7th international conference on Typed Lambda Calculi and Applications
Coinductive big-step operational semantics
Information and Computation
Biorthogonality, step-indexing and compiler correctness
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Trace-Based Coinductive Operational Semantics for While
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
A Formally Verified Compiler Back-end
Journal of Automated Reasoning
A verified compiler for an impure functional language
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Subtyping, declaratively: an exercise in mixed induction and coinduction
MPC'10 Proceedings of the 10th international conference on Mathematics of program construction
Coinductive big-step operational semantics for type soundness of Java-like languages
Proceedings of the 13th Workshop on Formal Techniques for Java-Like Programs
Programming with binders and indexed data-types
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A hoare logic for the coinductive trace-based big-step semantics of while
ESOP'10 Proceedings of the 19th European conference on Programming Languages and Systems
Coinductive big-step operational semantics
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
A certified multi-prover verification condition generator
VSTTE'12 Proceedings of the 4th international conference on Verified Software: theories, tools, experiments
Proceedings of the 27th Annual ACM Symposium on Applied Computing
Towards a unified theory of operational and axiomatic semantics
ICALP'12 Proceedings of the 39th international colloquium conference on Automata, Languages, and Programming - Volume Part II
A supposedly fun thing i may have to do again: a HOAS encoding of Howe's method
Proceedings of the seventh international workshop on Logical frameworks and meta-languages, theory and practice
Proof-producing synthesis of ML from higher-order logic
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Operational semantics using the partiality monad
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Soundness of object-oriented languages with coinductive big-step semantics
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
A static cost analysis for a higher-order language
PLPV '13 Proceedings of the 7th workshop on Programming languages meets program verification
Mechanized semantics for compiler verification
CPP'12 Proceedings of the Second international conference on Certified Programs and Proofs
Producing certified functional code from inductive specifications
CPP'12 Proceedings of the Second international conference on Certified Programs and Proofs
Shall we juggle, coinductively?
CPP'12 Proceedings of the Second international conference on Certified Programs and Proofs
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
A logical correspondence between natural semantics and abstract machines
Proceedings of the 15th Symposium on Principles and Practice of Declarative Programming
CakeML: a verified implementation of ML
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Computer Languages, Systems and Structures
LICS '13 Proceedings of the 2013 28th Annual ACM/IEEE Symposium on Logic in Computer Science
Hi-index | 0.00 |
Using a call-by-value functional language as an example, this article illustrates the use of coinductive definitions and proofs in big-step operational semantics, enabling it to describe diverging evaluations in addition to terminating evaluations. We formalize the connections between the coinductive big-step semantics and the standard small-step semantics, proving that both semantics are equivalent. We then study the use of coinductive big-step semantics in proofs of type soundness and proofs of semantic preservation for compilers. A methodological originality of this paper is that all results have been proved using the Coq proof assistant. We explain the proof-theoretic presentation of coinductive definitions and proofs offered by Coq, and show that it facilitates the discovery and the presentation of the results.