143 val {sel_rews, ...} = result; |
143 val {sel_rews, ...} = result; |
144 val when_rews = #cases result; |
144 val when_rews = #cases result; |
145 val when_strict = hd when_rews; |
145 val when_strict = hd when_rews; |
146 val dis_rews = #dis_rews result; |
146 val dis_rews = #dis_rews result; |
147 val mat_rews = #match_rews result; |
147 val mat_rews = #match_rews result; |
148 val pat_rews = #pat_rews result; |
|
149 |
148 |
150 (* ----- theorems concerning the isomorphism -------------------------------- *) |
149 (* ----- theorems concerning the isomorphism -------------------------------- *) |
151 |
150 |
152 val pg = pg' thy; |
151 val pg = pg' thy; |
153 |
152 |
209 ((qualified "when_rews" , when_rews ), [simp]), |
208 ((qualified "when_rews" , when_rews ), [simp]), |
210 ((qualified "compacts" , compacts ), [simp]), |
209 ((qualified "compacts" , compacts ), [simp]), |
211 ((qualified "con_rews" , con_rews ), [simp]), |
210 ((qualified "con_rews" , con_rews ), [simp]), |
212 ((qualified "sel_rews" , sel_rews ), [simp]), |
211 ((qualified "sel_rews" , sel_rews ), [simp]), |
213 ((qualified "dis_rews" , dis_rews ), [simp]), |
212 ((qualified "dis_rews" , dis_rews ), [simp]), |
214 ((qualified "pat_rews" , pat_rews ), [simp]), |
|
215 ((qualified "dist_les" , dist_les ), [simp]), |
213 ((qualified "dist_les" , dist_les ), [simp]), |
216 ((qualified "dist_eqs" , dist_eqs ), [simp]), |
214 ((qualified "dist_eqs" , dist_eqs ), [simp]), |
217 ((qualified "inverts" , inverts ), [simp]), |
215 ((qualified "inverts" , inverts ), [simp]), |
218 ((qualified "injects" , injects ), [simp]), |
216 ((qualified "injects" , injects ), [simp]), |
219 ((qualified "take_rews" , take_rews ), [simp]), |
217 ((qualified "take_rews" , take_rews ), [simp]), |
220 ((qualified "match_rews", mat_rews ), [simp])] |
218 ((qualified "match_rews", mat_rews ), [simp])] |
221 |> snd |
219 |> snd |
222 |> pair (iso_rews @ when_rews @ con_rews @ sel_rews @ dis_rews @ |
220 |> pair (iso_rews @ when_rews @ con_rews @ sel_rews @ dis_rews @ |
223 pat_rews @ dist_les @ dist_eqs) |
221 dist_les @ dist_eqs) |
224 end; (* let *) |
222 end; (* let *) |
225 |
223 |
226 (******************************************************************************) |
224 (******************************************************************************) |
227 (****************************** induction rules *******************************) |
225 (****************************** induction rules *******************************) |
228 (******************************************************************************) |
226 (******************************************************************************) |