equal
deleted
inserted
replaced
267 val name = Thm.def_binding_optional b a; |
267 val name = Thm.def_binding_optional b a; |
268 val ((lhs, (_, raw_th)), lthy2) = lthy |
268 val ((lhs, (_, raw_th)), lthy2) = lthy |
269 |> Local_Theory.define_internal ((b, mx), ((Binding.suffix_name "_raw" name, []), rhs)); |
269 |> Local_Theory.define_internal ((b, mx), ((Binding.suffix_name "_raw" name, []), rhs)); |
270 |
270 |
271 val th = prove lthy2 raw_th; |
271 val th = prove lthy2 raw_th; |
272 val lthy3 = lthy2 |> Spec_Rules.add b Spec_Rules.equational [lhs] [th]; |
272 val lthy3 = lthy2 |> Spec_Rules.add name Spec_Rules.equational [lhs] [th]; |
273 |
273 |
274 val ([(def_name, [th'])], lthy4) = lthy3 |
274 val ([(def_name, [th'])], lthy4) = lthy3 |
275 |> Local_Theory.notes [((name, atts), [([th], [])])]; |
275 |> Local_Theory.notes [((name, atts), [([th], [])])]; |
276 |
276 |
277 val lthy5 = lthy4 |
277 val lthy5 = lthy4 |