src/HOL/Tools/refute.ML
changeset 33522 737589bb9bb8
parent 33339 d41f77196338
child 33955 fff6f11b1f09
equal deleted inserted replaced
33521:a4c54218be62 33522:737589bb9bb8
   199       bounds    : interpretation list,
   199       bounds    : interpretation list,
   200       wellformed: prop_formula
   200       wellformed: prop_formula
   201     };
   201     };
   202 
   202 
   203 
   203 
   204   structure RefuteData = TheoryDataFun
   204   structure RefuteData = Theory_Data
   205   (
   205   (
   206     type T =
   206     type T =
   207       {interpreters: (string * (theory -> model -> arguments -> term ->
   207       {interpreters: (string * (theory -> model -> arguments -> term ->
   208         (interpretation * model * arguments) option)) list,
   208         (interpretation * model * arguments) option)) list,
   209        printers: (string * (theory -> model -> typ -> interpretation ->
   209        printers: (string * (theory -> model -> typ -> interpretation ->
   210         (int -> bool) -> term option)) list,
   210         (int -> bool) -> term option)) list,
   211        parameters: string Symtab.table};
   211        parameters: string Symtab.table};
   212     val empty = {interpreters = [], printers = [], parameters = Symtab.empty};
   212     val empty = {interpreters = [], printers = [], parameters = Symtab.empty};
   213     val copy = I;
       
   214     val extend = I;
   213     val extend = I;
   215     fun merge _
   214     fun merge
   216       ({interpreters = in1, printers = pr1, parameters = pa1},
   215       ({interpreters = in1, printers = pr1, parameters = pa1},
   217        {interpreters = in2, printers = pr2, parameters = pa2}) =
   216        {interpreters = in2, printers = pr2, parameters = pa2}) : T =
   218       {interpreters = AList.merge (op =) (K true) (in1, in2),
   217       {interpreters = AList.merge (op =) (K true) (in1, in2),
   219        printers = AList.merge (op =) (K true) (pr1, pr2),
   218        printers = AList.merge (op =) (K true) (pr1, pr2),
   220        parameters = Symtab.merge (op=) (pa1, pa2)};
   219        parameters = Symtab.merge (op=) (pa1, pa2)};
   221   );
   220   );
   222 
   221