logic verification hoare-calculus
Definition
Hoare Triple
A Hoare triple is a construct used in Hoare calculus to describe how the execution of a piece of code changes the state of the computation. It is written as:
where:
- is the precondition: an assertion that must hold before the execution of .
- is the command or program fragment.
- is the postcondition: an assertion that must hold after terminates.
Semantics
The meaning of a Hoare triple depends on whether we consider partial or total correctness.
Partial Correctness
Partial Correctness
The triple holds under partial correctness if, whenever starts in a state satisfying and if it terminates, then the resulting state satisfies .
This is often denoted as:
Total Correctness
Total Correctness
The triple (or sometimes with explicit termination) holds under total correctness if, whenever starts in a state satisfying , it must terminate, and the resulting state satisfies .
Formal Verification
In program verification, Hoare triples are used as the building blocks for proofs. The goal is to show that a program is partially correct or totally correct with respect to its specification given by the precondition and postcondition.