Proving total correctness of recursive procedures
Information and Computation
Ten Years of Hoare's Logic: A Survey—Part I
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)
Java Program Verification via a Hoare Logic with Abrupt Termination
FASE '00 Proceedings of the Third Internationsl Conference on Fundamental Approaches to Software Engineering: Held as Part of the European Joint Conferences on the Theory and Practice of Software, ETAPS 2000
A Logic for the Java Modeling Language JML
FASE '01 Proceedings of the 4th International Conference on Fundamental Approaches to Software Engineering
A Programming Logic for Sequential Java
ESOP '99 Proceedings of the 8th European Symposium on Programming Languages and Systems
A Logic of Object-Oriented Programs
TAPSOFT '97 Proceedings of the 7th International Joint Conference CAAP/FASE on Theory and Practice of Software Development
Winskel is (Almost) Right: Towards a Mechanized Semantics Textbook
Proceedings of the 16th Conference on Foundations of Software Technology and Theoretical Computer Science
Hoare Logic for Mutual Recursion and Local Variables
Proceedings of the 19th Conference on Foundations of Software Technology and Theoretical Computer Science
Isabelle/HOL: a proof assistant for higher-order logic
Isabelle/HOL: a proof assistant for higher-order logic
HOL-OCL: Experiences, Consequences and Design Choices
UML '02 Proceedings of the 5th International Conference on The Unified Modeling Language
Transition predicate abstraction and fair termination
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An assertion-based proof system for multithreaded Java
Theoretical Computer Science - Formal methods for components and objects
Reasoning about safety properties in a JVM-like environment
Science of Computer Programming
A Deductive Proof System for Multithreaded Java with Exceptions
Fundamenta Informaticae - Behavior of Composed Concurrent Systems: Logic and Reasoning
FM '08 Proceedings of the 15th international symposium on Formal Methods
Extensible Universes for Object-Oriented Data Models
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
TPHOLs '08 Proceedings of the 21st International Conference on Theorem Proving in Higher Order Logics
Verifying distributed systems: the operational approach
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An Extensible Encoding of Object-oriented Data Models in hol
Journal of Automated Reasoning
Electronic Notes in Theoretical Computer Science (ENTCS)
Inductive Proof Outlines for Exceptions in Multithreaded Java
Electronic Notes in Theoretical Computer Science (ENTCS)
A monad-based modeling and verification toolbox with application to security protocols
TPHOLs'07 Proceedings of the 20th international conference on Theorem proving in higher order logics
Verification of object-oriented software: The KeY approach
Verification of object-oriented software: The KeY approach
A typed, compositional logic for a stack-based abstract machine
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
Dynamic logic with non-rigid functions: a basis for object-oriented program verification
IJCAR'06 Proceedings of the Third international joint conference on Automated Reasoning
A Deductive Proof System for Multithreaded Java with Exceptions
Fundamenta Informaticae - Behavior of Composed Concurrent Systems: Logic and Reasoning
Local Reasoning for Global Invariants, Part II: Dynamic Boundaries
Journal of the ACM (JACM)
Graph-based object-oriented hoare logic
Theories of Programming and Formal Methods
Hi-index | 0.00 |
We define NanoJava, a kernel of Java tailored to the investigation of Hoare logics. We then introduce a Hoare logic for this language featuringan elegant approach for expressing auxiliary variables: by universal quantification on the outer logical level. Furthermore, we give simple means of handling side-effecting expressions and dynamic binding within method calls. The logic is proved sound and (relatively) complete using Isabelle/HOL.