equal
deleted
inserted
replaced
155 hyp :: hyps => exists (fn t => t aconv hyp) hyps |
155 hyp :: hyps => exists (fn t => t aconv hyp) hyps |
156 | _ => false); |
156 | _ => false); |
157 val rule'' = |
157 val rule'' = |
158 rule' |> ALLGOALS (SUBGOAL (fn (goal, i) => |
158 rule' |> ALLGOALS (SUBGOAL (fn (goal, i) => |
159 if i = 1 orelse redundant_hyp goal |
159 if i = 1 orelse redundant_hyp goal |
160 then eresolve0_tac [thin_rl] i |
160 then eresolve_tac ctxt [thin_rl] i |
161 else all_tac)) |
161 else all_tac)) |
162 |> Seq.hd |
162 |> Seq.hd |
163 |> Drule.zero_var_indexes; |
163 |> Drule.zero_var_indexes; |
164 in if Thm.equiv_thm (rule, rule'') then rule else rule'' end |
164 in if Thm.equiv_thm (rule, rule'') then rule else rule'' end |
165 else rule; |
165 else rule; |