Addition of a hypothesis
ah(P)
with:
This command enables to add the P predicate in the hypotheses stack.
In the current hypotheses, the P predicate must:
If
the
current
proof
was
prove
G
under
the
hypotheses
h1,
…,
hn
the
prover
will
try
successively
to
prove
P
under
the
hypotheses
h1,
…,
hn
then
to prove G under the hypotheses h1, …, hn, P
These proofs are carried out with the current proof force.
Once the command ah(P) is executed, the current goal becomes P. If after the command pr (see chapter 4.38 page §), the current goal is still P, the hypothesis P has not been proved.
When the hypothesis P has been proved, the goal becomes P ⇒ G. The user can then, either add the hypothesis P directly (command dd (see chapter 4.14 page §)), or activate the automatic prover which will add the hypothesis P’, obtained after operations on P.
If P cannot be proved with the current force, we can try a higher force. The whole command line will then be executed again with the new force.
As this command is not protected against ill-typing and ill-definedness, the user has to check that the added hypothesis is well-typed and well-defined.
This can be checked, with hindsight, using tool mdelta (refer to its User manual version 1.0).
Given the following situation:
Hypothesis xx: 1..10 & yy: 1..10 & zz: 1..100 Goal xx+yy-1: 1..100
|
The user wishes to add the hypothesis xx + yy : 2..20. He executes the command ah:
PRI> ah(xx+yy: 2..20) Starting Add Hypothesis
|
The new goal becomes:
Goal xx+yy: 2..20
|
This hypothesis must be proved in order to be able to continue. The user starts the automatic prover:
PRI> pr Starting Prover Call
|
The hypothesis xx+yy : 2..20 has been proved: the goal becomes xx+yy : 2..20 => current goal.
Goal xx+yy: 2..20 => xx+yy-1: 1..100
|
By using the command pr (see chapter 4.38 page §) or dd (see chapter 4.14 page §), the proof can then go on with the new hypothesis.