PFORALL_OR_CONV
PairRules.PFORALL_OR_CONV : conv
Moves a paired universal quantification inwards through a disjunction.
When applied to a term of the form !p. t \/ u
, where no
variable in p
is free in both t
and
u
, PFORALL_OR_CONV
returns a theorem of one of
three forms, depending on occurrences of the variables from
p
in t
and u
. If variables from
p
are free in t
but not in u
,
then the theorem:
|- (!p. t \/ u) = (!p. t) \/ u
is returned. If variables from p
are free in
u
but none are free in t
, then the result
is:
|- (!p. t \/ u) = t \/ (!t. u)
And if no variable from p
is free in either
t
nor u
, then the result is:
|- (!p. t \/ u) = (!p. t) \/ (!p. u)
PFORALL_OR_CONV
fails if it is applied to a term not of
the form !p. t \/ u
, or if it is applied to a term
!p. t \/ u
in which variables from p
are free
in both t
and u
.
Conv.FORALL_OR_CONV
, PairRules.OR_PFORALL_CONV
,
PairRules.LEFT_OR_PFORALL_CONV
,
PairRules.RIGHT_OR_PFORALL_CONV