theory scratch imports IFOL begin lemma disj_swap: "P \ Q \ Q \ P" apply (erule disjE) (* Compare with the less useful \rule disjE\ *) apply (rule disjI2) apply assumption apply (rule disjI1) apply assumption done lemma imp_uncurry: "P \ (Q \ R) \ P \ Q \ R" apply (rule impI) apply (erule conjE) apply (drule mp) apply assumption apply (drule mp) apply assumption apply assumption done end