src/ZF/QPair.ML
changeset 782 200a16083201
parent 760 f0200e91b272
child 790 4c10e8532d43
equal deleted inserted replaced
781:9ab8873bf9b3 782:200a16083201
    27 
    27 
    28 qed_goalw "QPair_iff" QPair.thy [QPair_def]
    28 qed_goalw "QPair_iff" QPair.thy [QPair_def]
    29     "<a;b> = <c;d> <-> a=c & b=d"
    29     "<a;b> = <c;d> <-> a=c & b=d"
    30  (fn _=> [rtac sum_equal_iff 1]);
    30  (fn _=> [rtac sum_equal_iff 1]);
    31 
    31 
    32 val QPair_inject = standard (QPair_iff RS iffD1 RS conjE);
    32 bind_thm ("QPair_inject", (QPair_iff RS iffD1 RS conjE));
    33 
    33 
    34 qed_goal "QPair_inject1" QPair.thy "<a;b> = <c;d> ==> a=c"
    34 qed_goal "QPair_inject1" QPair.thy "<a;b> = <c;d> ==> a=c"
    35  (fn [major]=>
    35  (fn [major]=>
    36   [ (rtac (major RS QPair_inject) 1), (assume_tac 1) ]);
    36   [ (rtac (major RS QPair_inject) 1), (assume_tac 1) ]);
    37 
    37 
   201 by (simp_tac (ZF_ss addsimps [QPair_iff, one_not_0]) 1);
   201 by (simp_tac (ZF_ss addsimps [QPair_iff, one_not_0]) 1);
   202 qed "QInr_QInl_iff";
   202 qed "QInr_QInl_iff";
   203 
   203 
   204 (*Injection and freeness rules*)
   204 (*Injection and freeness rules*)
   205 
   205 
   206 val QInl_inject = standard (QInl_iff RS iffD1);
   206 bind_thm ("QInl_inject", (QInl_iff RS iffD1));
   207 val QInr_inject = standard (QInr_iff RS iffD1);
   207 bind_thm ("QInr_inject", (QInr_iff RS iffD1));
   208 val QInl_neq_QInr = standard (QInl_QInr_iff RS iffD1 RS FalseE);
   208 bind_thm ("QInl_neq_QInr", (QInl_QInr_iff RS iffD1 RS FalseE));
   209 val QInr_neq_QInl = standard (QInr_QInl_iff RS iffD1 RS FalseE);
   209 bind_thm ("QInr_neq_QInl", (QInr_QInl_iff RS iffD1 RS FalseE));
   210 
   210 
   211 val qsum_cs = 
   211 val qsum_cs = 
   212     qpair_cs addSIs [PartI, QInlI, QInrI] 
   212     qpair_cs addSIs [PartI, QInlI, QInrI] 
   213              addSEs [PartE, qsumE, QInl_neq_QInr, QInr_neq_QInl]
   213              addSEs [PartE, qsumE, QInl_neq_QInr, QInr_neq_QInl]
   214              addSDs [QInl_inject, QInr_inject];
   214              addSDs [QInl_inject, QInr_inject];