Semantics with applications: a formal introduction
Semantics with applications: a formal introduction
Inductive definitions, semantics and abstract interpretations
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Hardware Semantics Based on Temporal Intervals
Proceedings of the 10th Colloquium on Automata, Languages and Programming
Bi-inductive structural semantics
Information and Computation
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
A Proof Calculus for Natural Semantics Based on Greatest Fixed Point Semantics
Electronic Notes in Theoretical Computer Science (ENTCS)
Elimination of ghost variables in program logics
TGC'07 Proceedings of the 3rd conference on Trustworthy global computing
AMAST'06 Proceedings of the 11th international conference on Algebraic Methodology and Software Technology
Coinductive big-step operational semantics
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
Coinductive big-step operational semantics for type soundness of Java-like languages
Proceedings of the 13th Workshop on Formal Techniques for Java-Like Programs
Soundness of object-oriented languages with coinductive big-step semantics
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Hi-index | 0.00 |
In search for a foundational framework for reasoning about observable behavior of programs that may not terminate, we have previously devised a trace-based big-step semantics for While. In this semantics, both traces and evaluation (relating initial states of program runs to traces they produce) are defined coinductively. On terminating runs, it agrees with the standard inductive state-based semantics. Here we present a Hoare logic counterpart of our coinductive trace-based semantics and prove it sound and complete. Our logic subsumes both the partial correctness Hoare logic and the total correctness Hoare logic: they are embeddable. Since we work with a constructive underlying logic, the range of expressible program properties has a rich structure; in particular, we can distinguish between termination and nondivergence, e.g., unbounded total search fails to be terminating but is nonetheless nondivergent. Our metatheory is entirely constructive as well, and we have formalized it in Coq.