SET_RULEbossLib.SET_RULE : term -> thm
Automatically prove a set-theoretic theorem by reduction to FOL.
An application DECIDE M, where M is a
set-theoretic term, attempts to automatically prove M by
reducing basic set-theoretic operators (IN,
SUBSET, PSUBSET, INTER,
UNION, INSERT, DELETE,
REST, DISJOINT, BIGINTER,
BIGUNION, IMAGE, SING and
GSPEC) in M to their definitions in
first-order logic. With SET_RULE, many simple set-theoretic
results can be directly proved without finding needed lemmas in
pred_setTheory.
- SET_RULE ``!s t c. DISJOINT s t ==> DISJOINT (s INTER c) (t INTER c)``;
<<HOL message: inventing new type variable names: 'a>>
metis: r[+0+5]+0+0+0+0+1#
> val it = |- !s t c. DISJOINT s t ==> DISJOINT (s INTER c) (t INTER c): thm
Fails if the underlying resolution machinery used by
METIS_TAC cannot prove the goal, e.g. when there are other
set operators in the term.
SET_RULE calls SET_TAC without extra
lemmas.