Toward reliable modular programs
Toward reliable modular programs
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Reasoning about Java classes: preliminary report
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Ten Years of Hoare's Logic: A Survey—Part I
ACM Transactions on Programming Languages and Systems (TOPLAS)
Specification of the Javacard API in JML
Proceedings of the fourth working conference on smart card research and advanced applications on Smart card research and advanced applications
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 Programming Logic for Sequential Java
ESOP '99 Proceedings of the 8th European Symposium on Programming Languages and Systems
A Type-Theoretic Memory Model for Verification of Sequential Java Programs
WADT '99 Selected papers from the 14th International Workshop on Recent Trends in Algebraic Development Techniques
Inheritance in Higher Order Logic: Modeling and Reasoning
TPHOLs '00 Proceedings of the 13th International Conference on Theorem Proving in Higher Order Logics
FoSSaCS '99 Proceedings of the Second International Conference on Foundations of Software Science and Computation Structure, Held as Part of the European Joint Conferences on the Theory and Practice of Software, ETAPS'99
PVS: Combining Specification, Proof Checking, and Model Checking
CAV '96 Proceedings of the 8th International Conference on Computer Aided Verification
Designing an Object-Oriented Programming Language with Behavioural Subtyping
Proceedings of the REX School/Workshop on Foundations of Object-Oriented Languages
TPHOLs 2000: Supplemental Proceedings
TPHOLs 2000: Supplemental Proceedings
Formalizing the safety of Java, the Java virtual machine, and Java card
ACM Computing Surveys (CSUR)
Coalgebras and monads in the semantics of java
Theoretical Computer Science - Special issue: Algebraic methodology and software technology
Specifying and Verifying a Decimal Representation in Java for Smart Cards
AMAST '02 Proceedings of the 9th International Conference on Algebraic Methodology and Software Technology
A Simple and Practical Approach to Unit Testing: The JML and JUnit Way
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
TPHOLs '01 Proceedings of the 14th International Conference on Theorem Proving in Higher Order Logics
Hoare Logic for NanoJava: Auxiliary Variables, Side Effects, and Virtual Methods Revisited
FME '02 Proceedings of the International Symposium of Formal Methods Europe on Formal Methods - Getting IT Right
Verification of Java's AbstractCollection Class: A Case Study
MPC '02 Proceedings of the 6th International Conference on Mathematics of Program Construction
Extending JML Specifications with Temporal Logic
AMAST '02 Proceedings of the 9th International Conference on Algebraic Methodology and Software Technology
Building reliable, high-performance networks with the Nuprl proof development system
Journal of Functional Programming
Formal methods for smart cards: an experience report
Science of Computer Programming - Formal methods for components and objects pragmatic aspects and applications
How the design of JML accommodates both runtime assertion checking and formal verification
Science of Computer Programming - Formal methods for components and objects pragmatic aspects and applications
Denotational semantics for a program logic of objects
Mathematical Structures in Computer Science
Theoretical Computer Science
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
The Non-Interference Protection in BML
Electronic Notes in Theoretical Computer Science (ENTCS)
Verification of object-oriented software: The KeY approach
Verification of object-oriented software: The KeY approach
Separating ownership topology and encapsulation with generic universe types
ACM Transactions on Programming Languages and Systems (TOPLAS)
Boogie: a modular reusable verifier for object-oriented programs
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
Exceptions in java and eiffel: two extremes in exception design and application
Advanced Topics in Exception Handling Techniques
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
CALCO'05 Proceedings of the First international conference on Algebra and Coalgebra in Computer Science
A bytecode logic for JML and types
APLAS'06 Proceedings of the 4th Asian conference on Programming Languages and Systems
Verification conditions for source-level imperative programs
Computer Science Review
A Deductive Proof System for Multithreaded Java with Exceptions
Fundamenta Informaticae - Behavior of Composed Concurrent Systems: Logic and Reasoning
ICTAC'12 Proceedings of the 9th international conference on Theoretical Aspects of Computing
Hi-index | 0.00 |
This paper describes a specialised logic for proving specifications in the Java Modeling Language (JML). JML is an interface specification language for Java. It allows assertions like invariants, constraints, pre- and post-conditions, and modifiable clauses as annotations to Java classes, in a design-by-contract style. Within the LOOP project at the University of Nijmegen JML is used for specification and verification of Java programs. A special compiler has been developed which translates Java classes together with their JML annotations into logical theories for a theorem prover (PVS or Isabelle). The logic for JML that will be described here consists of tailor-made proof rules in the higher order logic of the back-end theorem prover for verifying translated JML specifications. The rules efficiently combine partial and total correctness (like in Hoare logic) for all possible termination modes in Java, in a single correctness formula.