IMP_CANON : (thm -> thm list)
A |- t1 /\ t2 A |- !x. t A |- (t1 /\ t2) ==> t
------------------- ------------ ------------------------
A |- t1 A |- t2 A |- t A |- t1 ==> (t2 ==> t)
A |- (t1 \/ t2) ==> t A |- (?x. t1) ==> t2
------------------------------- ----------------------
A |- t1 ==> t A |- t2 ==> t A |- t1[x'/x] ==> t2