left

Lemma Application

right
AProVE Help SystemTechniquesTheorem ProverLemma Application

Lemma Application

You can choose between different modes:

OLD

This mode has been the first implementation of the lemma application.

Here lemmas being implications or equivalences are not applied. Only equational lemmas are considered. But they are only applied from left to right. Moreover they are only applicable on term level. This means they are not applied on whole equations. (This is not a real restriction since after applying them a symbolic evaluation is performed which will lead to that result.) Furthermore lemmas are not applied on variables. To avoid possible infinite often lemma application steps a lemma is maximally applied once in the whole proof. Variables in the lemma are not renamed before trying to apply the lemma. By this the user can give the theorem proover implicitely some hints where to apply the lemma.

The first lemma found to be applicable is used. However, it may happen that several lemmas are applied in one step but at different positions in the formula to proove.

This mode proved to be a good heuristic.

MAX

Here lemmas being implications or equivalences are not applied. Only equational lemmas are considered to be applied on term level. This means they are not applied on equations. (This is not a real restriction since after applying them a symbolic evaluation is performed which will lead to that result.) Furthermore lemmas are not applied on variables. Variables in the lemma are not renamed before trying to apply the lemma. By this the user can give the theorem proover implicitely some hints where to apply the lemma.

The first lemma found to be applicable is used. However, it may happen that several lemmas are applied in one step but at different positions in the formula to proove. Here you can give the maximal amount of lemma application steps in the option Maximal application sequence length. Here the value 0 stands for infinite.

To avoid possible infinite often lemma application steps a lemma is maximally applied once in the whole proof, unless you do not activate the option Direct lemmas.

Having enabled the option Direct lemmas:
Not only equational lemmas will be tried to be applicated in any direction but also unconditional program rules will be considered to be appliey from left ot right. If there is a lemma or a rule potentially applicable from side 1 to side 2, it is checked if it can be directed from side 1 to side 2. This is possible if side 1 is greater than side 2 regarding the selected order. If this is possible it is applied in this direction. By this the lemma can stay applicable in that direction for the rest of proof without the risk of infinite long proofs.
Generally, there are more than one order for which a lemma or rule can be directed. The orders will be described only by the necessary properties. (Thus a set of necessary properties represent a class of orders.) By directing more and more lemmas or rules the properties get more refined. However, there may still be lot of suitable orders with different properties. Always trying to find the remaining suitable order in a refining step slows down the proof. Therefore you can limit the amount of classes or orders which will be tried to be refined in the possible next step. The orders with the least restrictions will be taken because they promise to be most general. This is done by the option Minimal heuristic. Here the value 0 stands for infinite. Note: It is definitely not recommended to use this value.
As Order you can select LPO, LPOS, RPO and QRPOS. By pressing the button Configure it is possible to make the selected order a quasi order.

ALL

Here every lemma application step using exactly one lemma is done. This results in a branching where it is sufficient to proove only one branch.