EVERY_DISJ_CONV : conv -> conv

SYNOPSIS
Applies a conversion to every top-level disjunct in a term.

DESCRIBE
The term EVERY_DISJ_CONV c t takes the conversion c and applies this to every top-level disjunct within term t. A top-level disjunct is a sub-term that can be reached from the root of the term by breaking apart only disjunctions. The terms affected by c are those that would be returned by a call to strip_disj c. In particular, if the term as a whole is not a disjunction, then the conversion will be applied to the whole term.

FAILURE
Fails if the conversion argument fails when applied to any of the top-level disjuncts in the term.

EXAMPLE
- EVERY_DISJ_CONV BETA_CONV
    (Term`(\x. x /\ p) q \/ (\x. x) r \/ (\y. s /\ y) u`);
> val it =
    |- (\x. x /\ p) q \/ (\x. x) r \/ (\y. s /\ y) u = q /\ p \/ r \/ s /\ u
    : thm

USES
Useful for applying a conversion to all of the ``significant'' sub-terms within a term without having to worry about the exact structure of its disjunctive skeleton.

SEEALSO  EVERY_CONJ_CONV,   RATOR_CONV,   RAND_CONV,   LAND_CONV

HOL  Kananaskis 0