src/Pure/sign.ML
changeset 865 b38c67991122
parent 763 d5a626aacdd3
child 879 27675591cc50
equal deleted inserted replaced
864:d63b111b917a 865:b38c67991122
   426 
   426 
   427 fun ext_trfuns (syn, tsig, ctab) trfuns =
   427 fun ext_trfuns (syn, tsig, ctab) trfuns =
   428   (Syntax.extend_trfuns syn trfuns, tsig, ctab);
   428   (Syntax.extend_trfuns syn trfuns, tsig, ctab);
   429 
   429 
   430 fun ext_trrules (syn, tsig, ctab) xrules =
   430 fun ext_trrules (syn, tsig, ctab) xrules =
   431   (Syntax.extend_trrules syn
   431   (Syntax.extend_trrules syn xrules, tsig, ctab);
   432   (infer_types (Sg {tsig = tsig, const_tab = ctab, syn = syn, 
       
   433                    stamps = [ref "#"]}) (K None) (K None)) xrules, tsig, ctab);
       
   434 
   432 
   435 
   433 
   436 (* build signature *)
   434 (* build signature *)
   437 
   435 
   438 fun ext_stamps stamps name =
   436 fun ext_stamps stamps name =
   528   |> add_trfuns Syntax.pure_trfuns
   526   |> add_trfuns Syntax.pure_trfuns
   529   |> add_consts
   527   |> add_consts
   530    [("==", "['a::{}, 'a] => prop", Mixfix ("(_ ==/ _)", [3, 2], 2)),
   528    [("==", "['a::{}, 'a] => prop", Mixfix ("(_ ==/ _)", [3, 2], 2)),
   531     ("=?=", "['a::{}, 'a] => prop", Mixfix ("(_ =?=/ _)", [3, 2], 2)),
   529     ("=?=", "['a::{}, 'a] => prop", Mixfix ("(_ =?=/ _)", [3, 2], 2)),
   532     ("==>", "[prop, prop] => prop", Mixfix ("(_ ==>/ _)", [2, 1], 1)),
   530     ("==>", "[prop, prop] => prop", Mixfix ("(_ ==>/ _)", [2, 1], 1)),
   533     ("all", "('a => prop) => prop", Binder ("!!", 0)),
   531     ("all", "('a => prop) => prop", Binder ("!!", 0, 0)),
   534     ("TYPE", "'a itself", NoSyn)]
   532     ("TYPE", "'a itself", NoSyn)]
   535   |> add_name "Pure";
   533   |> add_name "Pure";
   536 
   534 
   537 
   535 
   538 end;
   536 end;