CADiZ

Reference manual / Z-related commands / Proof rule commands / cut apart


The cut apart command introduces a new lemma into a proof, representing that lemma as a separate sub-goal, and thus causing branching in the proof tree. The lemma can be either keyed-in by the user into a dialogue box using the same mark-up as used in the specification, or if a predicate with identical textual appearance is in the same window, that predicate can be crossed. The cut apart command is applicable to a whole goal, and also to any predicate in a goal.

When applied to a whole goal, the second sub-goal has the lemma as a new first antecedent.

\vdash? p    | p \vdash?
\vdash?

When applied to a predicate within a goal, the second sub-goal has the lemma as an implicand to the inspected predicate.

\vdash? p    \vdash? p1(p \implies p2)
\vdash? p1(p2)

\vdash? p    | p1(p \implies p2) \vdash?
| p1(p2) \vdash?

The new predicate p may refer to the generic parameters and outermost declarations of the goal, but not to declarations introduced within p1. In the dialogue box case, any previous response will still be there and can be reused or revised.

See also the lemma and cut conjoined and cut disjoined commands.

Tactic example

"cut apart" "p" p2

This example applies the cut apart command to the predicate p2 to introduce the predicate given by the string ``p''. If the string argument is omitted from the tactic, it will be prompted for using a dialogue box.


IT 27-Sep-1999