strip_conj

boolSyntax.strip_conj : term -> term list

Recursively breaks apart conjunctions.

If M is of the form t1 /\ ... /\ tn, where no ti is a conjunction, then strip_conj M returns [t1,...,tn]. Any ti that is a conjunction is broken down by strip_conj, hence

   strip_conj(list_mk_conj [t1,...,tn])

will not return [t1,...,tn] if any ti is a conjunction.

Failure

Never fails.

Example

> strip_conj (Term `(a /\ b) /\ c /\ d`);
val it = [“a”, “b”, “c”, “d”]: term list

See also

boolSyntax.dest_conj, boolSyntax.mk_conj, boolSyntax.list_mk_conj