strip_disjboolSyntax.strip_disj : term -> term list
Recursively breaks apart disjunctions.
If M is of the form t1 \/ ... \/ tn, where
no ti is a disjunction, then strip_disj M
returns [t1,...,tn]. Any ti that is a
disjunction is broken down by strip_disj, hence
strip_disj(list_mk_disj [t1,...,tn])
will not return [t1,...,tn] if any ti is a
disjunction.
Never fails.
- strip_disj (Term `(a \/ b) \/ c \/ d`);
> val it = [`a`, `b`, `c`, `d`] : term list
boolSyntax.dest_disj,
boolSyntax.mk_disj,
boolSyntax.list_mk_disj