SET_INDUCT_TAC is an induction tacic for proving properties of finite
sets.  When applied to a goal of the form
SET_INDUCT_TAC reduces this goal to proving that the property
\s.P[s] holds of the empty set and is preserved by insertion of an element
into an arbitrary finite set.  Since every finite set can be built up from the
empty set {} by repeated insertion of values, these subgoals imply that
the property \s.P[s] holds of all finite sets.
The tactic specification of SET_INDUCT_TAC is:
                 A ?- !s. FINITE s ==> P
   ==========================================================  SET_INDUCT_TAC
     A |- P[{{}}/s]
     A u {FINITE s', P[s'/s], ~e IN s'} ?- P[e INSERT s'/s]