equal
deleted
inserted
replaced
134 by (EVERY1[stac fst_conv, stac snd_conv]); |
134 by (EVERY1[stac fst_conv, stac snd_conv]); |
135 by (rtac refl 1); |
135 by (rtac refl 1); |
136 qed "split"; |
136 qed "split"; |
137 |
137 |
138 val split_select = prove_goalw Prod.thy [split_def] |
138 val split_select = prove_goalw Prod.thy [split_def] |
139 "(®(x,y). P x y) = (®xy. P (fst xy) (snd xy))" (K [rtac refl 1]); |
139 "(@(x,y). P x y) = (@xy. P (fst xy) (snd xy))" (K [rtac refl 1]); |
140 |
140 |
141 Addsimps [fst_conv, snd_conv, split]; |
141 Addsimps [fst_conv, snd_conv, split]; |
142 |
142 |
143 goal Prod.thy "(s=t) = (fst(s)=fst(t) & snd(s)=snd(t))"; |
143 goal Prod.thy "(s=t) = (fst(s)=fst(t) & snd(s)=snd(t))"; |
144 by (res_inst_tac[("p","s")] PairE 1); |
144 by (res_inst_tac[("p","s")] PairE 1); |