Nuprl also adapts tactics from LCF ([55]) into the proof tree setting to get a notion of tactic-tree proof ([4,7,57]). In this setting the justifications are called primitive refinement tactics. These can be combined using procedures called tacticalstactical. For example, if a refinement ro generates subgoals when applied to sequent Go, then the compound refinement tactic written executes ro, then applies ri to subgoal Gi generated by ro.
There are many tacticals (c.f. [65,28]); two basic ones are ORELSE and REPEAT. The ORELSE tactical relies on the idea that a refinement might fail to apply, as in trying to use on an implication. In , if ro fails to decompose the goal, then r1 is applied.
We will use tacticals to put together compound justifications when the notation seems clear enough.