FORALL_OR_CONV
Conv.FORALL_OR_CONV : conv
Moves a universal quantification inwards through a disjunction.
When applied to a term of the form !x. P \/ Q
, where
x
is not free in both P
and Q
,
FORALL_OR_CONV
returns a theorem of one of three forms,
depending on occurrences of the variable x
in
P
and Q
. If x
is free in
P
but not in Q
, then the theorem:
|- (!x. P \/ Q) = (!x.P) \/ Q
is returned. If x
is free in Q
but not in
P
, then the result is:
|- (!x. P \/ Q) = P \/ (!x.Q)
And if x
is free in neither P
nor
Q
, then the result is:
|- (!x. P \/ Q) = (!x.P) \/ (!x.Q)
FORALL_OR_CONV
fails if it is applied to a term not of
the form !x. P \/ Q
, or if it is applied to a term
!x. P \/ Q
in which the variable x
is free in
both P
and Q
.
Conv.OR_FORALL_CONV
, Conv.LEFT_OR_FORALL_CONV
,
Conv.RIGHT_OR_FORALL_CONV