When it is applied to a theorem of the form:
th = A' |- ?y11...y1m. (x=t1) /\ (B11 /\ ... /\ B1k) \/ ... \/
?yn1...ynp. (x=tn) /\ (Bn1 /\ ... /\ Bnp)
in which there may be no existential quantifiers where a ‘vector’ of
them is shown above, STRUCT_CASES_TAC th splits a goal A ?- s into n
subgoals as follows:
A ?- s
===============================================================
A u {B11,...,B1k} ?- s[t1/x] ... A u {Bn1,...,Bnp} ?- s[tn/x]
that is, performs a case split over the possible constructions (the
ti) of a term, providing as assumptions the given constraints, having
split conjoined constraints into separate assumptions. Note that unless A'
is a subset of A, this is an invalid tactic.