Calling the Arithmetical Prover
ap
ap(n)
with:
The arithmetical prover is a mechanism whose aim is to search for a contradiction in a set of inequations. This contradiction is sought by creating new inequations by linear combination. The number of inequations is limited so as to avoid a loop in the mechanism.
The ap command permits the calling of the mechanism on the current proof obligation. The mechanism will work on the inequations contained in the hypotheses stack. If the current goal is an inequation of the form a ≤ b, then the inequation a > b is added to the list of inequations on which the mechanism is going to work.
Given the following proof obligation:
Hypothesis xx: INTEGER & 0<=xx & xx<=10 & yy: INTEGER & 0 = 1+yy-xx & xx-1 = yy & btrue & 0<=9 & 9: INTEGER Goal xx-1<=9
|
Given the form of the goal and the number of inequations in hypotheses, the use of the ap command is advised.
PRI> ap Begin Arithmetic Proof
|
The current proof is therefore discharged.
This example shows the behaviour of the command when the mechanism fails in its work. Given the following proof obligation:
Hypothesis xx: INTEGER & 0<=xx & xx<=10 & btrue & 0<=9 & 9: INTEGER Goal xx<=9
|
The proof obligation being false, the command doesn’t discharge the goal.
PRI> ap Begin Arithmetic Proof This Command gives nothing new
|
The ap command is not saved, the current goal is not modified.