equal
deleted
inserted
replaced
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), |