equal
deleted
inserted
replaced
16 Goalw [Part_def] |
16 Goalw [Part_def] |
17 "[| a : A; a=h(b) |] ==> a : Part(A,h)"; |
17 "[| a : A; a=h(b) |] ==> a : Part(A,h)"; |
18 by (Blast_tac 1); |
18 by (Blast_tac 1); |
19 qed "Part_eqI"; |
19 qed "Part_eqI"; |
20 |
20 |
21 val PartI = refl RSN (2,Part_eqI); |
21 bind_thm ("PartI", refl RSN (2,Part_eqI)); |
22 |
22 |
23 val major::prems = Goalw [Part_def] |
23 val major::prems = Goalw [Part_def] |
24 "[| a : Part(A,h); !!z. [| a : A; a=h(z) |] ==> P \ |
24 "[| a : Part(A,h); !!z. [| a : A; a=h(z) |] ==> P \ |
25 \ |] ==> P"; |
25 \ |] ==> P"; |
26 by (rtac (major RS CollectE) 1); |
26 by (rtac (major RS CollectE) 1); |
36 qed "Part_subset"; |
36 qed "Part_subset"; |
37 |
37 |
38 |
38 |
39 (*** Rules for Disjoint Sums ***) |
39 (*** Rules for Disjoint Sums ***) |
40 |
40 |
41 val sum_defs = [sum_def,Inl_def,Inr_def,case_def]; |
41 bind_thms ("sum_defs", [sum_def,Inl_def,Inr_def,case_def]); |
42 |
42 |
43 Goalw (bool_def::sum_defs) "Sigma(bool,C) = C(0) + C(1)"; |
43 Goalw (bool_def::sum_defs) "Sigma(bool,C) = C(0) + C(1)"; |
44 by (Blast_tac 1); |
44 by (Blast_tac 1); |
45 qed "Sigma_bool"; |
45 qed "Sigma_bool"; |
46 |
46 |