src/HOL/Tools/Function/relation.ML
changeset 59159 9312710451f5
parent 47701 157e6108a342
child 59580 cbc38731d42f
equal deleted inserted replaced
59158:05cb83f083b9 59159:9312710451f5
    21       let val cert = Thm.cterm_of (Thm.theory_of_thm st);
    21       let val cert = Thm.cterm_of (Thm.theory_of_thm st);
    22       in PRIMITIVE (Thm.instantiate ([], [(cert (Var v), cert (inst T))])) st end
    22       in PRIMITIVE (Thm.instantiate ([], [(cert (Var v), cert (inst T))])) st end
    23   | _ => Seq.empty;
    23   | _ => Seq.empty;
    24 
    24 
    25 fun relation_tac ctxt rel i =
    25 fun relation_tac ctxt rel i =
    26   TRY (Function_Common.apply_termination_rule ctxt i)
    26   TRY (Function_Common.termination_rule_tac ctxt i)
    27   THEN inst_state_tac rel;
    27   THEN inst_state_tac rel;
    28 
    28 
    29 
    29 
    30 (* version with type inference *)
    30 (* version with type inference *)
    31 
    31 
    43         PRIMITIVE (Thm.instantiate ([], [(cert (Var v), rel')])) st
    43         PRIMITIVE (Thm.instantiate ([], [(cert (Var v), rel')])) st
    44       end
    44       end
    45   | _ => Seq.empty;
    45   | _ => Seq.empty;
    46 
    46 
    47 fun relation_infer_tac ctxt rel i =
    47 fun relation_infer_tac ctxt rel i =
    48   TRY (Function_Common.apply_termination_rule ctxt i)
    48   TRY (Function_Common.termination_rule_tac ctxt i)
    49   THEN inst_state_infer_tac ctxt rel;
    49   THEN inst_state_infer_tac ctxt rel;
    50 
    50 
    51 end
    51 end