Tags:Deductive verification, Functional programming, Java, JML, OpenJML, program verification and program verification tool
Abstract:
We describe new capabilities added to the Java Modeling Language and the OpenJML deductive program verification tool to support functional programming features introduced in Java 8. We also report on the application of the extensions to a secure streaming protocol library developed by Amazon Web Services and used as a foundation by services it provides. We found that the application under study used a small set of functional programming idioms; methods using these idioms could be verified by techniques that used only first-order logic and did not need all the features that might be required for full generality of functional programming.
Practical Methods for Reasoning about Java 8's Functional Programming Features