src/ZF/Sum.ML
changeset 9907 473a6604da94
parent 8201 a81d18b0a9b1
equal deleted inserted replaced
9906:5c027cca6262 9907:473a6604da94
    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