src/Pure/Isar/specification.ML
changeset 71217 2dee5cd42fde
parent 71214 5727bcc3c47c
child 71674 48ff625687f5
equal deleted inserted replaced
71216:e64c249d3d98 71217:2dee5cd42fde
   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