A decomposition rule for the Hoare logic (Q1097683): Difference between revisions
From MaRDI portal
Set OpenAlex properties. |
ReferenceBot (talk | contribs) Changed an Item |
||
Property / cites work | |||
Property / cites work: Q4174692 / rank | |||
Normal rank | |||
Property / cites work | |||
Property / cites work: An axiomatic basis for computer programming / rank | |||
Normal rank | |||
Property / cites work | |||
Property / cites work: Automatic program verification. I: A logical basis and its implementation / rank | |||
Normal rank | |||
Property / cites work | |||
Property / cites work: Logical analysis of programs / rank | |||
Normal rank |
Latest revision as of 14:41, 18 June 2024
scientific article
Language | Label | Description | Also known as |
---|---|---|---|
English | A decomposition rule for the Hoare logic |
scientific article |
Statements
A decomposition rule for the Hoare logic (English)
0 references
1987
0 references
The complexity of program verification by the Hoare logic grows rapidly as the length of the program to be proved increases. This paper presents a mechanism, called a decomposition rule, which reduces the complexity of theorem proving in the program verification. The rule is simple and easy to use when the precondition for the program can be decomposed into several conditions. The meaning of the Hoare triple \(\{\) \(P\}\) \(S\{\) \(Q\}\) is that if P is true before program S, then Q is true after S is executed provided that S terminates. We can derive the following shift rule, provided that Q is not affected by executing S, \[ \frac{\{P\wedge Q\}S\{R\}}{\{P\}S\{Q\supset R\}}. \] From this rule, we can derive the decomposition rule, \[ \frac{\{P\wedge P_ 1\}S\{Q_ 1\},\quad \{P\wedge P_ 2\}S\{Q_ 2\}}{\{P\}S\{(P_ 1\supset Q_ 1)\wedge (P_ 2\supset Q_ 2)\}} \] provided that neither of \(P_ 1\) and \(P_ 2\) is affected by S. The meaning of this rule is that by decomposing the verification into two parts of \(\{P\wedge P_ 1\}S\{Q_ 1\}\) and \(\{P\wedge P_ 2\}S\{Q_ 2\}\), we can have a rather complicated postcondition \((P_ 1\supset Q_ 1)\wedge (P_ 2\supset Q_ 2)\). An illustrative example of program by this rule is given.
0 references
program verification
0 references
Hoare logic
0 references
decomposition rule
0 references
complexity of theorem proving
0 references