326 (if rsp_fold f then if IN a x then FOLD f g z x else f (g a) (FOLD f g z x) else z)"} *} |
326 (if rsp_fold f then if IN a x then FOLD f g z x else f (g a) (FOLD f g z x) else z)"} *} |
327 |
327 |
328 ML {* lift_thm_fset @{context} @{thm append_assoc} *} |
328 ML {* lift_thm_fset @{context} @{thm append_assoc} *} |
329 ML {* lift_thm_g_fset @{context} @{thm append_assoc} @{term "FUNION (FUNION x xa) xb = FUNION x (FUNION xa xb)"} *} |
329 ML {* lift_thm_g_fset @{context} @{thm append_assoc} @{term "FUNION (FUNION x xa) xb = FUNION x (FUNION xa xb)"} *} |
330 ML {* lift_thm_fset @{context} @{thm map_append} *} |
330 ML {* lift_thm_fset @{context} @{thm map_append} *} |
331 ML {* lift_thm_g_fset @{context} @{thm map_append} @{term "fmap f (FUNION x xa) = FUNION (fmap f x) (fmap f xa)"} *} |
331 ML {* val gl = @{term "fmap f (FUNION (x::'b fset) (xa::'b fset)) = FUNION (fmap f x) (fmap f xa)"} *} |
332 |
|
333 ML {* lift_thm_fset @{context} @{thm list.induct} *} |
|
334 ML {* lift_thm_g_fset @{context} @{thm list.induct} @{term "\<lbrakk>P EMPTY; \<And>a x. P x \<Longrightarrow> P (INSERT a x)\<rbrakk> \<Longrightarrow> P l"} *} |
|
335 |
|
336 |
332 |
337 ML {* val (rty, rel, rel_refl, rel_eqv) = lookup_quot_data @{context} qty *} |
333 ML {* val (rty, rel, rel_refl, rel_eqv) = lookup_quot_data @{context} qty *} |
338 ML {* val rtrm = prop_of (atomize_thm @{thm append_assoc}) *} |
334 ML {* val rtrm = prop_of (atomize_thm @{thm map_append}) *} |
339 ML {* val qtrm = goal_a *} |
335 ML {* val qtrm = atomize_goal @{theory} gl *} |
340 ML {* val a = (REGULARIZE_trm @{context} rtrm qtrm) *} |
336 ML {* val a = (REGULARIZE_trm @{context} rtrm qtrm) *} |
341 ML {* val a = Syntax.check_term @{context} a *} |
337 ML {* val a = Syntax.check_term @{context} a *} |
342 ML {* val t_r = regularize_goal @{context} (atomize_thm @{thm append_assoc}) rel_eqv rel_refl goal_a *} |
338 ML {* val t_r = regularize_goal @{context} (atomize_thm @{thm append_assoc}) rel_eqv rel_refl goal_a *} |
343 |
339 |
344 ML {* lift_thm_g_fset @{context} @{thm append_assoc} gl *} |
340 ML {* lift_thm_g_fset @{context} @{thm map_append} gl *} |
|
341 |
|
342 |
|
343 ML {* lift_thm_fset @{context} @{thm list.induct} *} |
|
344 ML {* lift_thm_g_fset @{context} @{thm list.induct} @{term "\<lbrakk>P EMPTY; \<And>a x. P x \<Longrightarrow> P (INSERT a x)\<rbrakk> \<Longrightarrow> P l"} *} |
|
345 |
345 |
346 |
346 |
347 |
347 |
348 |
348 (*ML {* lift_thm_fset @{context} @{thm neq_Nil_conv} *}*) |
349 (*ML {* lift_thm_fset @{context} @{thm neq_Nil_conv} *}*) |
349 |
350 |