src/HOLCF/Sprod0.ML
changeset 1675 36ba4da350c3
parent 1461 6bcb44e4d6e5
child 2033 639de962ded4
equal deleted inserted replaced
1674:33aff4d854e4 1675:36ba4da350c3
    48 
    48 
    49 qed_goalw "defined_Spair_Rep_rev" Sprod0.thy [Spair_Rep_def]
    49 qed_goalw "defined_Spair_Rep_rev" Sprod0.thy [Spair_Rep_def]
    50  "(Spair_Rep a b) = (Spair_Rep UU UU) ==> (a=UU | b=UU)"
    50  "(Spair_Rep a b) = (Spair_Rep UU UU) ==> (a=UU | b=UU)"
    51  (fn prems =>
    51  (fn prems =>
    52         [
    52         [
    53         (res_inst_tac [("Q","a=UU|b=UU")] classical2 1),
    53         (case_tac "a=UU|b=UU" 1),
    54         (atac 1),
    54         (atac 1),
    55         (rtac disjI1 1),
    55         (rtac disjI1 1),
    56         (rtac ((hd prems) RS fun_cong RS fun_cong RS iffD2 RS mp RS 
    56         (rtac ((hd prems) RS fun_cong RS fun_cong RS iffD2 RS mp RS 
    57         conjunct1 RS sym) 1),
    57         conjunct1 RS sym) 1),
    58         (fast_tac HOL_cs 1),
    58         (fast_tac HOL_cs 1),
   122 qed_goal "strict_Ispair_rev" Sprod0.thy 
   122 qed_goal "strict_Ispair_rev" Sprod0.thy 
   123         "~Ispair x y = Ispair UU UU ==> ~x=UU & ~y=UU"
   123         "~Ispair x y = Ispair UU UU ==> ~x=UU & ~y=UU"
   124 (fn prems =>
   124 (fn prems =>
   125         [
   125         [
   126         (cut_facts_tac prems 1),
   126         (cut_facts_tac prems 1),
   127         (rtac (de_morgan1 RS ssubst) 1),
   127         (rtac (de_Morgan_disj RS subst) 1),
   128         (etac contrapos 1),
   128         (etac contrapos 1),
   129         (etac strict_Ispair 1)
   129         (etac strict_Ispair 1)
   130         ]);
   130         ]);
   131 
   131 
   132 qed_goalw "defined_Ispair_rev" Sprod0.thy [Ispair_def]
   132 qed_goalw "defined_Ispair_rev" Sprod0.thy [Ispair_def]
   146 (fn prems =>
   146 (fn prems =>
   147         [
   147         [
   148         (cut_facts_tac prems 1),
   148         (cut_facts_tac prems 1),
   149         (rtac contrapos 1),
   149         (rtac contrapos 1),
   150         (etac defined_Ispair_rev 2),
   150         (etac defined_Ispair_rev 2),
   151         (rtac (de_morgan1 RS iffD1) 1),
   151         (rtac (de_Morgan_disj RS iffD2) 1),
   152         (etac conjI 1),
   152         (etac conjI 1),
   153         (atac 1)
   153         (atac 1)
   154         ]);
   154         ]);
   155 
   155 
   156 
   156 
   170         (rtac exI 1),
   170         (rtac exI 1),
   171         (rtac exI 1),
   171         (rtac exI 1),
   172         (rtac conjI 1),
   172         (rtac conjI 1),
   173         (rtac (Rep_Sprod_inverse RS sym RS trans) 1),
   173         (rtac (Rep_Sprod_inverse RS sym RS trans) 1),
   174         (etac arg_cong 1),
   174         (etac arg_cong 1),
   175         (rtac (de_morgan1 RS ssubst) 1),
   175         (rtac (de_Morgan_disj RS subst) 1),
   176         (atac 1),
   176         (atac 1),
   177         (rtac disjI1 1),
   177         (rtac disjI1 1),
   178         (rtac (Rep_Sprod_inverse RS sym RS trans) 1),
   178         (rtac (Rep_Sprod_inverse RS sym RS trans) 1),
   179         (res_inst_tac [("f","Abs_Sprod")] arg_cong 1),
   179         (res_inst_tac [("f","Abs_Sprod")] arg_cong 1),
   180         (etac trans 1),
   180         (etac trans 1),