src/Pure/thm.ML
changeset 28965 1de908189869
parent 28874 883ec8ee5e6e
child 28981 c9cf71e161b9
child 28991 694227dd3e8c
equal deleted inserted replaced
28963:f6d9e0e0b153 28965:1de908189869
  1730 val extern_oracles = map #1 o NameSpace.extern_table o Oracles.get;
  1730 val extern_oracles = map #1 o NameSpace.extern_table o Oracles.get;
  1731 
  1731 
  1732 fun add_oracle (bname, oracle) thy =
  1732 fun add_oracle (bname, oracle) thy =
  1733   let
  1733   let
  1734     val naming = Sign.naming_of thy;
  1734     val naming = Sign.naming_of thy;
  1735     val name = NameSpace.full naming bname;
  1735     val name = NameSpace.full_name naming (Binding.name bname);
  1736     val thy' = thy |> Oracles.map (fn (space, tab) =>
  1736     val thy' = thy |> Oracles.map (fn (space, tab) =>
  1737       (NameSpace.declare naming name space,
  1737       (NameSpace.declare_base naming name space,
  1738         Symtab.update_new (name, stamp ()) tab handle Symtab.DUP dup => err_dup_ora dup));
  1738         Symtab.update_new (name, stamp ()) tab handle Symtab.DUP dup => err_dup_ora dup));
  1739   in ((name, invoke_oracle (Theory.check_thy thy') name oracle), thy') end;
  1739   in ((name, invoke_oracle (Theory.check_thy thy') name oracle), thy') end;
  1740 
  1740 
  1741 end;
  1741 end;
  1742 
  1742