FORALL_OR_CONVConv.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