src/Tools/isac/BaseDefinitions/method-def.sml
author wneuper <Walther.Neuper@jku.at>
Thu, 04 Aug 2022 15:38:42 +0200
changeset 60514 19bd2f740479
parent 60509 2e0b7ca391dc
child 60537 f0305aeb010b
permissions -rw-r--r--
cleanup
     1 (* Title:  BaseDefinitions/method-def.sml
     2    Author: Walther Neuper
     3    (c) due to copyright terms
     4 
     5 Here is a minimum of code required for Know_Store.thy.
     6 For main code see structure MethodC.
     7 *)
     8 signature METHOD_DEFINITION =
     9 sig
    10   type id = References_Def.id;
    11   val id_empty: id
    12   val id_to_string: id -> string
    13 
    14   type T
    15   val empty: T
    16 
    17   type store
    18   val empty_store: T Store.node
    19 
    20   val check_unique: Check_Unique.id -> T Store.T -> unit
    21 end
    22 
    23 (**)
    24 structure Meth_Def(**): METHOD_DEFINITION(**) =
    25 struct
    26 (**)
    27 
    28 type id = References_Def.id;
    29 val id_empty = References_Def.empty_meth_id;
    30 val id_to_string = References_Def.id_to_string;
    31 
    32 (* data for methods stored in 'methods'-database *)
    33 type T =                          (* TODO WN200620: review ---------------------vvvvv         *)
    34   {guh       : Check_Unique.id,   (* unique within Isac_Knowledge, for html-presentation      *)
    35   mathauthors: string list,       (* copyright                                                *)
    36   init       : References_Def.id, (* DEL: WN060721 pblID introduced mistakenly                *)
    37   rew_ord'   : Rewrite_Ord.id,    (* for ordered rewriting by Tactic.Rewrite                  *)
    38   erls       : Rule_Set.T,        (* for conditions in rewriting by Tactic.Rewrite            *)
    39   srls       : Rule_Set.T,        (* for evaluating Prog_Expr                                 *)
    40   crls       : Rule_Set.T,        (* DEL: for check_elementwise                               *)
    41   nrls       : Rule_Set.T,        (* for rewriting by Tactic.Rewrite                          *)
    42   errpats    : Error_Pattern_Def.T list, (* error patterns expected in this method            *)
    43   calc       : Rule_Def.calc list,(* ?DEL                                                     *)
    44   scr        : Rule.program,      (* filled in MethodC.prep_input                             *)
    45   prls       : Rule_Set.T,        (* for evaluation of preconditions in "#Where" on "#Given"  *)
    46   ppc        : Model_Pattern.T,   (* contains "#Given", "#Where", "#Find", "#Relate"
    47                                      for constraints on identifiers see "O_Model.copy_name"   *)
    48   pre        : term list          (* ? DEL, as soon as they are input interactively ?         *)
    49 	};
    50 val empty = {guh = "met_empty", mathauthors = [], init = id_empty, rew_ord' = Rewrite_Ord.id_empty,
    51 	erls = Rule_Set.empty, srls = Rule_Set.empty, prls = Rule_Set.empty, calc = [], crls = Rule_Set.empty,
    52 	errpats = [], nrls = Rule_Set.empty, ppc = [], pre = [], scr = Rule.Empty_Prog};
    53 val empty_store = Store.Node ("empty_meth_id", [empty],[]);
    54 
    55 type store = (T Store.node) list;
    56 
    57 val check_unique =
    58   Check_Unique.message (Check_Unique.collect (#guh: T -> Check_Unique.id));
    59 
    60 (**)end(**)