equal
  deleted
  inserted
  replaced
  
    
    
|    149 fun curry_n arity = funpow (arity - 1) mk_curry; |    149 fun curry_n arity = funpow (arity - 1) mk_curry; | 
|    150 fun uncurry_n arity = funpow (arity - 1) HOLogic.mk_case_prod; |    150 fun uncurry_n arity = funpow (arity - 1) HOLogic.mk_case_prod; | 
|    151  |    151  | 
|    152 val curry_uncurry_ss = |    152 val curry_uncurry_ss = | 
|    153   simpset_of (put_simpset HOL_basic_ss \<^context> |    153   simpset_of (put_simpset HOL_basic_ss \<^context> | 
|    154     addsimps [@{thm Product_Type.curry_case_prod}, @{thm Product_Type.case_prod_curry}]) |    154     |> Simplifier.add_simps [@{thm Product_Type.curry_case_prod}, @{thm Product_Type.case_prod_curry}]) | 
|    155  |    155  | 
|    156 val split_conv_ss = |    156 val split_conv_ss = | 
|    157   simpset_of (put_simpset HOL_basic_ss \<^context> |    157   simpset_of (put_simpset HOL_basic_ss \<^context> | 
|    158     addsimps [@{thm Product_Type.split_conv}]); |    158     |> Simplifier.add_simps [@{thm Product_Type.split_conv}]); | 
|    159  |    159  | 
|    160 val curry_K_ss = |    160 val curry_K_ss = | 
|    161   simpset_of (put_simpset HOL_basic_ss \<^context> |    161   simpset_of (put_simpset HOL_basic_ss \<^context> | 
|    162     addsimps [@{thm Product_Type.curry_K}]); |    162     |> Simplifier.add_simps [@{thm Product_Type.curry_K}]); | 
|    163  |    163  | 
|    164 (* instantiate generic fixpoint induction and eliminate the canonical assumptions; |    164 (* instantiate generic fixpoint induction and eliminate the canonical assumptions; | 
|    165   curry induction predicate *) |    165   curry induction predicate *) | 
|    166 fun specialize_fixp_induct ctxt fT fT_uc curry uncurry mono_thm f_def rule = |    166 fun specialize_fixp_induct ctxt fT fT_uc curry uncurry mono_thm f_def rule = | 
|    167   let |    167   let |