\DOC CONJ_SET_CONV \SYNOPSIS

advertisement
\DOC CONJ_SET_CONV
\TYPE {CONJ_SET_CONV : (term list -> term list -> thm)}
\SYNOPSIS
Proves the equivalence of the conjunctions of two equal sets of terms.
\KEYWORDS
conversion, conjunction.
\DESCRIBE
The arguments to {CONJ_SET_CONV} are two ML lists of terms {[t1,...,tn]}
and
{[u1,...,um]}. If these are equal when considered as sets, that is
if the sets
{
{t1,...,tn} and {u1,...,um}
}
are equal, then {CONJ_SET_CONV} returns the theorem:
{
|- (t1 /\ ... /\ tn) = (u1 /\ ... /\ um)
}
Otherwise {CONJ_SET_CONV} fails.
\FAILURE
{CONJ_SET_CONV [t1,...,tn] [u1,...,um]} fails if {[t1,...,tn]} and
{[u1,...,um]}, regarded as sets of terms, are not equal. Also fails
if any {ti} or {ui} does not have type {bool}.
\USES
Used to order conjuncts. First sort a list of conjuncts {l1} into the
desired order to get a new list {l2}, then call {CONJ_SET_CONV l1 l2}.
\COMMENTS
This is not a true conversion, so perhaps it ought to be called something
else.
\SEEALSO
Drule.CONJUNCTS_CONV.
\ENDDOC
Download