SIMPLE_DISJ_CASES : thm -> thm -> thm
A u {p} |- r B u {q} |- r
----------------------------------------- SIMPLE_DISJ_CASES
(A - {p}) u (B - {q}) u {p \/ q} |- r
{p} |- r {q} |- r
---------------------------- SIMPLE_DISJ_CASES
{p \/ q} |- r
# let [th1; th2] = map (UNDISCH o TAUT)
[`~p ==> p ==> q`; `q ==> p ==> q`];;
...
val th1 : thm = ~p |- p ==> q
val th2 : thm = q |- p ==> q
# SIMPLE_DISJ_CASES th1 th2;;
val it : thm = ~p \/ q |- p ==> q