File PartComp.ML
goal PartComp.thy "dom(f o; g) = {x. x:dom(f) & (the (f x)):dom g}";
by (simp_tac (simpset() addsimps [dom_def,partcomp_def]) 1);
by (blast_tac (claset() addIs [] addEs []) 1);
qed "dom_partcomp";
fun Rewrite_subgoal_tac thms i =
SELECT_GOAL (rewrite_goals_tac (map mk_meta_eq thms)) i
handle _ => SELECT_GOAL (rewrite_goals_tac thms) i;
goal PartComp.thy "dom(f o; g) <= dom(f)";
by (Rewrite_subgoal_tac [dom_partcomp] 1);
by (blast_tac (claset() addIs [] addEs []) 1);
qed "dom_partcomp_subs";