Co-induction in relational semantics
Theoretical Computer Science
ACM Transactions on Programming Languages and Systems (TOPLAS)
Featherweight Java: a minimal core calculus for Java and GJ
ACM Transactions on Programming Languages and Systems (TOPLAS)
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Coinductive big-step operational semantics
Information and Computation
Coinductive Type Systems for Object-Oriented Languages
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Trace-Based Coinductive Operational Semantics for While
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
Big-step Operational Semantics Revisited
Fundamenta Informaticae - From Mathematical Beauty to the Truth of Nature: to Jerzy Tiuryn on his 60th Birthday
FoVeOOS'10 Proceedings of the 2010 international conference on Formal verification of object-oriented software
Coinductive big-step operational semantics for type soundness of Java-like languages
Proceedings of the 13th Workshop on Formal Techniques for Java-Like Programs
ICLP'06 Proceedings of the 22nd international conference on Logic Programming
From natural semantics to abstract machines
LOPSTR'04 Proceedings of the 14th international conference on Logic Based Program Synthesis and Transformation
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
Corecursive Featherweight Java
Proceedings of the 14th Workshop on Formal Techniques for Java-like Programs
Proceedings of the 15th Workshop on Formal Techniques for Java-like Programs
Hi-index | 0.00 |
It is well known that big-step operational semantics are not suitable for proving soundness of type systems, because of their inability to distinguish stuck from non-terminating computations. We show how this problem can be solved by interpreting coinductively the rules for the standard big-step operational semantics of a Java-like language, thus making the claim of soundness more intuitive: whenever a program is well-typed, its coinductive operational semantics returns a value. Indeed, coinduction allows non-terminating computations to return values; this is proved by showing that the set of proof trees defining the semantic judgment forms a complete metric space when equipped with a proper distance function. In this way, we are able to prove soundness of a nominal type system w.r.t. the coinductive semantics. Since the coinductive semantics is sound w.r.t. the usual small-step operational semantics, the standard claim of soundness can be easily deduced.