equal
deleted
inserted
replaced
162 end |
162 end |
163 end |
163 end |
164 handle Pattern.MATCH => NONE |
164 handle Pattern.MATCH => NONE |
165 fun rewrite_subterm prems ct (Abs (x, _, _)) = |
165 fun rewrite_subterm prems ct (Abs (x, _, _)) = |
166 let |
166 let |
167 val (u, ctxt') = yield_singleton Variable.variant_fixes x ctxt; |
167 val ((v, ct'), ctxt') = Variable.dest_abs_cterm ct ctxt; |
168 val (v, ct') = Thm.dest_abs_name u ct; |
|
169 val (thm, prems) = rewrite' ctxt' prems (x :: bounds) thms ct' |
168 val (thm, prems) = rewrite' ctxt' prems (x :: bounds) thms ct' |
170 in |
169 in |
171 if Thm.is_reflexive thm then |
170 if Thm.is_reflexive thm then |
172 (Thm.reflexive ct, prems) |
171 (Thm.reflexive ct, prems) |
173 else |
172 else |