Call of mono lemma prover
ml
ml(t)
ml(rp.n)
ml(rp.n|t)
ml(rp(f))
ml(rp(f)|t)
ml(ff(l))
ml(ff(l)|t)
ml(ff(l)|rp.n)
ml(ff(l)|rp.n|t)
ml(ff(l)|rp(f))
ml(ff(l)|rp(f)|t)
with:
This command enables to use the mono lemma prover on the current goal. The mono lemma prover works just like the automatic prover except that it processes hypotheses differently.
This function can be used in the three following modes:
In the three modes, the mono lemma prover is invoked with a time-out. If this time-out is not specified by the user, it is set to 60 seconds.
When proof is replayed in automatic mode, calls to the mono lemma prover are done with a time-out specified by the Time_Out resource given in the resource file of Atelier B (300 seconds by default).
To finish with, we can configure the proof force with the ff(l) argument. Proof will be attempted with successively each of the listed forces until proof succeeds or the list is exhausted.
The mono lemma prover can be applied to the whole proof obligation (we suppose that the current force is 0):
PRI> ml Starting Mono Lemma Prover Call Proved by the Mono Lemma Prover with force 0
|
or to the reduced proof obligation. This option is used when the proof obligation has many hypotheses:
PRI> ml(rp.1 | 5) Starting Mono Lemma Prover Call Proved by the Mono Lemma Prover with force 0
|
Proof may be attempted with more selected hypotheses, but it may not succeed anymore.
PRI> ml(rp.5 | 10) Starting Mono Lemma Prover Call The Mono Lemma Prover failed to prove the current goal
|
The mono lemma prover can be used to prove a given proof obligation or a sub-goal. So it can be involved in a proof strategy by using it in the te (see chapter 4.54 page §) command body.
Below it is used on reduced proof oblligations (1 iteration) with a time-out of 10 seconds.
PRI> te(ml(rp.1 | 10), Replace.Gen.All)
|
The prover may be used also with a list of forces to attempt. We go through the list of forces until one of them enables to achieve the proof. Here goal is discharged by force 1, we thus do not try force 3.
PRI> ml(ff(0;1;3) | rp.0 | 50) Starting Mono Lemma Prover Call Proved by the Mono Lemma Prover with force 1
|