348,085 research outputs found
Verification Conditions are Code
This paper presents a new theoretical result concerning Hoare Logic. It is shown here that the verification conditions which support a Hoare Logic program derivation are themselves sufficient to construct a correct implementation of the given pre-, post- condition specification. This property is mainly of theoretical interest, though it is possible that it may have some practical use, for example if predicative programming methodology is adopted. The result is shown to hold for both the original, partial correctness, Hoare logic, and also a variant for total correctness derivations
Quantum error-correcting codes associated with graphs
We present a construction scheme for quantum error correcting codes. The
basic ingredients are a graph and a finite abelian group, from which the code
can explicitly be obtained. We prove necessary and sufficient conditions for
the graph such that the resulting code corrects a certain number of errors.
This allows a simple verification of the 1-error correcting property of
fivefold codes in any dimension. As new examples we construct a large class of
codes saturating the singleton bound, as well as a tenfold code detecting 3
errors.Comment: 8 pages revtex, 5 figure
Boundary layer integral matrix procedure code modifications and verifications
A summary of modifications to Aerotherm's Boundary Layer Integral Matrix Procedure (BLIMP) code is presented. These modifications represent a preliminary effort to make BLIMP compatible with other JANNAF codes and to adjust the code for specific application to rocket nozzle flows. Results of the initial verification of the code for prediction of rocket nozzle type flows are discussed. For those cases in which measured free stream flow conditions were used as input to the code, the boundary layer predictions and measurements are in excellent agreement. In two cases, with free stream flow conditions calculated by another JANNAF code (TDK) for use as input to BLIMP, the predictions and the data were in fair agreement for one case and in poor agreement for the other case. The poor agreement is believed to result from failure of the turbulent model in BLIMP to account for laminarization of a turbulent flow. Recommendations for further code modifications and improvements are also presented
Provably correct Java implementations of Spi Calculus security protocols specifications
Spi Calculus is an untyped high level modeling language for security protocols, used for formal protocols specification and verification. In this paper, a type system for the Spi Calculus and a translation function are formally defined, in order to formalize the refinement of a Spi Calculus specification into a Java implementation. The Java implementation generated by the translation function uses a custom Java library. Formal conditions on such library are stated, so that, if the library implementation code satisfies such conditions, then the generated Java implementation correctly simulates the Spi Calculus specification. A verified implementation of part of the custom library is further presente
An Exercise in Invariant-based Programming with Interactive and Automatic Theorem Prover Support
Invariant-Based Programming (IBP) is a diagram-based correct-by-construction
programming methodology in which the program is structured around the
invariants, which are additionally formulated before the actual code. Socos is
a program construction and verification environment built specifically to
support IBP. The front-end to Socos is a graphical diagram editor, allowing the
programmer to construct invariant-based programs and check their correctness.
The back-end component of Socos, the program checker, computes the verification
conditions of the program and tries to prove them automatically. It uses the
theorem prover PVS and the SMT solver Yices to discharge as many of the
verification conditions as possible without user interaction. In this paper, we
first describe the Socos environment from a user and systems level perspective;
we then exemplify the IBP workflow by building a verified implementation of
heapsort in Socos. The case study highlights the role of both automatic and
interactive theorem proving in three sequential stages of the IBP workflow:
developing the background theory, formulating the program specification and
invariants, and proving the correctness of the final implementation.Comment: In Proceedings THedu'11, arXiv:1202.453
- ā¦