src/HOL/Tools/Lifting/lifting_def.ML
changeset 59498 50b60f501b05
parent 59458 9de8ac92cafa
child 59580 cbc38731d42f
equal deleted inserted replaced
59497:0c5cd369a643 59498:50b60f501b05
    31 fun mono_eq_prover ctxt prop =
    31 fun mono_eq_prover ctxt prop =
    32   let
    32   let
    33     val refl_rules = Lifting_Info.get_reflexivity_rules ctxt
    33     val refl_rules = Lifting_Info.get_reflexivity_rules ctxt
    34     val transfer_rules = Transfer.get_transfer_raw ctxt
    34     val transfer_rules = Transfer.get_transfer_raw ctxt
    35     
    35     
    36     fun main_tac i = (REPEAT_ALL_NEW (DETERM o resolve_tac refl_rules) THEN_ALL_NEW 
    36     fun main_tac i = (REPEAT_ALL_NEW (DETERM o resolve_tac ctxt refl_rules) THEN_ALL_NEW 
    37       (REPEAT_ALL_NEW (DETERM o resolve_tac transfer_rules))) i
    37       (REPEAT_ALL_NEW (DETERM o resolve_tac ctxt transfer_rules))) i
    38   in
    38   in
    39     SOME (Goal.prove ctxt [] [] prop (K (main_tac 1)))
    39     SOME (Goal.prove ctxt [] [] prop (K (main_tac 1)))
    40       handle ERROR _ => NONE
    40       handle ERROR _ => NONE
    41   end
    41   end
    42 
    42 
   543             @{thm rel_fun_eq_rel[THEN eq_reflection]}, 
   543             @{thm rel_fun_eq_rel[THEN eq_reflection]}, 
   544             @{thm rel_fun_def[THEN eq_reflection]}]
   544             @{thm rel_fun_def[THEN eq_reflection]}]
   545         fun binop_conv2 cv1 cv2 = Conv.combination_conv (Conv.arg_conv cv1) cv2
   545         fun binop_conv2 cv1 cv2 = Conv.combination_conv (Conv.arg_conv cv1) cv2
   546         val eq_onp_assms_tac_rules = @{thm left_unique_OO} :: 
   546         val eq_onp_assms_tac_rules = @{thm left_unique_OO} :: 
   547             eq_onp_assms_tac_fixed_rules @ (Transfer.get_transfer_raw lthy)
   547             eq_onp_assms_tac_fixed_rules @ (Transfer.get_transfer_raw lthy)
   548         val eq_onp_assms_tac = (TRY o REPEAT_ALL_NEW (resolve_tac eq_onp_assms_tac_rules) 
   548         val eq_onp_assms_tac = (TRY o REPEAT_ALL_NEW (resolve_tac lthy eq_onp_assms_tac_rules) 
   549           THEN_ALL_NEW (DETERM o Transfer.eq_tac lthy)) 1
   549           THEN_ALL_NEW (DETERM o Transfer.eq_tac lthy)) 1
   550         val relator_eq_onp_conv = Conv.bottom_conv
   550         val relator_eq_onp_conv = Conv.bottom_conv
   551           (K (Conv.try_conv (assms_rewrs_conv eq_onp_assms_tac
   551           (K (Conv.try_conv (assms_rewrs_conv eq_onp_assms_tac
   552             (Lifting_Info.get_relator_eq_onp_rules lthy)))) lthy
   552             (Lifting_Info.get_relator_eq_onp_rules lthy)))) lthy
   553         val relator_eq_conv = Conv.bottom_conv
   553         val relator_eq_conv = Conv.bottom_conv