AND_EL_CONVlistLib.AND_EL_CONV : conv
Computes by inference the result of taking the conjunction of the elements of a boolean list.
For any object language list of the form
“[x1;x2;...;xn]”, where x1, x2,
…, xn are boolean expressions, the result of evaluating
AND_EL_CONV “AND_EL [x1;x2;...;xn]”
is the theorem
|- AND_EL [x1;x2;...;xn] = b
where b is either the boolean constant that denotes the
conjunction of the elements of the list, or a conjunction of those
xi that are not boolean constants.
> listLib.AND_EL_CONV “AND_EL [T;F;F;T]”;
val it = ⊢ AND_EL [T; F; F; T] ⇔ F: thm
> listLib.AND_EL_CONV “AND_EL [T;T;T]”;
val it = ⊢ AND_EL [T; T; T] ⇔ T: thm
> listLib.AND_EL_CONV “AND_EL [T;x;y]”;
val it = ⊢ AND_EL [T; x; y] ⇔ x ∧ y: thm
> listLib.AND_EL_CONV “AND_EL [x;F;y]”;
val it = ⊢ AND_EL [x; F; y] ⇔ F: thm
AND_EL_CONV tm fails if tm is not of the
form described above.