separate struct O_Model and I_Model, part 1
authorWalther Neuper <walther.neuper@jku.at>
Mon, 04 May 2020 17:08:32 +0200
changeset 599397ad15af2297c
parent 59938 46b6479cefa7
child 59940 acfad421e656
separate struct O_Model and I_Model, part 1
src/Tools/isac/BridgeLibisabelle/datatypes.sml
src/Tools/isac/Interpret/li-tool.sml
src/Tools/isac/MathEngine/mathengine-stateless.sml
src/Tools/isac/Specify/calchead.sml
src/Tools/isac/Specify/generate.sml
src/Tools/isac/Specify/i-model.sml
src/Tools/isac/Specify/mstools.sml
src/Tools/isac/Specify/o-model.sml
src/Tools/isac/Specify/ptyps.sml
src/Tools/isac/TODO.thy
     1.1 --- a/src/Tools/isac/BridgeLibisabelle/datatypes.sml	Mon May 04 16:47:32 2020 +0200
     1.2 +++ b/src/Tools/isac/BridgeLibisabelle/datatypes.sml	Mon May 04 17:08:32 2020 +0200
     1.3 @@ -22,7 +22,7 @@
     1.4        string
     1.5      val keref2xml : int -> Specify.ketype -> Specify.kestoreID -> xml
     1.6      val model2xml :
     1.7 -       int -> Model.itm list -> (bool * Term.term) list -> xml
     1.8 +       int -> I_Model.T -> (bool * Term.term) list -> xml
     1.9      val modspec2xml : int -> Ctree.ocalhd -> xml
    1.10      val pattern2xml :
    1.11         int ->
     2.1 --- a/src/Tools/isac/Interpret/li-tool.sml	Mon May 04 16:47:32 2020 +0200
     2.2 +++ b/src/Tools/isac/Interpret/li-tool.sml	Mon May 04 17:08:32 2020 +0200
     2.3 @@ -13,7 +13,7 @@
     2.4    | Not_Associated;
     2.5    val associate: Ctree.ctree -> Proof.context -> (Tactic.T * term (*..Prog_Tac*)) -> ass
     2.6    
     2.7 -  val init_pstate: Rule_Set.T -> Proof.context -> Model.itm list -> Method.id ->
     2.8 +  val init_pstate: Rule_Set.T -> Proof.context -> I_Model.T -> Method.id ->
     2.9      Istate.T * Proof.context * Program.T
    2.10    val resume_prog: ThyC.id (*..for lookup in Know_Store*) -> Pos.pos' -> Ctree.ctree -> 
    2.11      (Istate.T * Proof.context) * Program.T
    2.12 @@ -30,7 +30,7 @@
    2.13  (* ---- for tests only: shifted from below to remove the Warning "unused" at fun.def. --------- *)
    2.14    (*NONE*)
    2.15  (*/-------------------------------------------------------- ! aktivate for Test_Isac BEGIN ---\* )
    2.16 -  val arguments_from_model : Method.id -> Model.itm list -> term list
    2.17 +  val arguments_from_model : Method.id -> I_Model.T -> term list
    2.18  ( *\--- ! aktivate for Test_Isac END ----------------------------------------------------------/*)
    2.19  end 
    2.20  
     3.1 --- a/src/Tools/isac/MathEngine/mathengine-stateless.sml	Mon May 04 16:47:32 2020 +0200
     3.2 +++ b/src/Tools/isac/MathEngine/mathengine-stateless.sml	Mon May 04 17:08:32 2020 +0200
     3.3 @@ -10,14 +10,14 @@
     3.4    val autocalc : Pos.pos' list -> Pos.pos' -> Calc.T * State_Steps.T ->
     3.5      Solve.auto -> string * Pos.pos' list * Calc.T
     3.6  
     3.7 -  val initcontext_met : Ctree.ctree -> Pos.pos' -> bool * string list * Program.T * Model.itm list * (bool * term) list
     3.8 -  val initcontext_pbl : Ctree.ctree -> Pos.pos' -> bool * string list * term * Model.itm list * (bool * term) list
     3.9 -  val context_met : Method.id -> Ctree.ctree -> Pos.pos -> bool * Method.id * Program.T * Model.itm list * (bool * term) list
    3.10 -  val context_pbl : Problem.id -> Ctree.ctree -> Pos.pos -> bool * Problem.id * term * Model.itm list * (bool * term) list
    3.11 +  val initcontext_met : Ctree.ctree -> Pos.pos' -> bool * string list * Program.T * I_Model.T * (bool * term) list
    3.12 +  val initcontext_pbl : Ctree.ctree -> Pos.pos' -> bool * string list * term * I_Model.T * (bool * term) list
    3.13 +  val context_met : Method.id -> Ctree.ctree -> Pos.pos -> bool * Method.id * Program.T * I_Model.T * (bool * term) list
    3.14 +  val context_pbl : Problem.id -> Ctree.ctree -> Pos.pos -> bool * Problem.id * term * I_Model.T * (bool * term) list
    3.15    val set_method : Method.id -> Calc.T -> Ctree.ctree * Ctree.ocalhd
    3.16    val set_problem : Problem.id -> Calc.T -> Ctree.ctree * Ctree.ocalhd
    3.17    val set_theory : ThyC.id -> Calc.T -> Ctree.ctree * Ctree.ocalhd
    3.18 -  val tryrefine : Problem.id -> Ctree.ctree -> Pos.pos' -> bool * Problem.id * term * Model.itm list * (bool * term) list
    3.19 +  val tryrefine : Problem.id -> Ctree.ctree -> Pos.pos' -> bool * Problem.id * term * I_Model.T * (bool * term) list
    3.20  (* ---- for tests only: shifted from below to remove the Warning "unused" at fun.def. --------- *)
    3.21    (*NONE*)
    3.22  (*/-------------------------------------------------------- ! aktivate for Test_Isac BEGIN ---\* )
     4.1 --- a/src/Tools/isac/Specify/calchead.sml	Mon May 04 16:47:32 2020 +0200
     4.2 +++ b/src/Tools/isac/Specify/calchead.sml	Mon May 04 17:08:32 2020 +0200
     4.3 @@ -69,16 +69,16 @@
     4.4    type calcstate
     4.5    type calcstate'
     4.6  
     4.7 -  val nxt_spec : Pos.pos_ -> bool -> Model.ori list -> Spec.T -> Model.itm list * Model.itm list ->
     4.8 +  val nxt_spec : Pos.pos_ -> bool -> O_Model.T -> Spec.T -> I_Model.T * I_Model.T ->
     4.9      (string * (term * 'a)) list * (string * (term * 'b)) list -> Spec.T -> Pos.pos_ * Tactic.input
    4.10  
    4.11    val reset_calchead : Calc.T -> Calc.T
    4.12    val get_ocalhd : Calc.T -> Ctree.ocalhd
    4.13 -  val ocalhd_complete : Model.itm list -> (bool * term) list -> ThyC.id * Problem.id * Method.id -> bool
    4.14 +  val ocalhd_complete : I_Model.T -> (bool * term) list -> ThyC.id * Problem.id * Method.id -> bool
    4.15    val all_modspec : Calc.T -> Calc.T 
    4.16  
    4.17 -  val complete_metitms : Model.ori list -> Model.itm list -> Model.itm list -> Celem4.pat list -> Model.itm list
    4.18 -  val insert_ppc' : Model.itm -> Model.itm list -> Model.itm list
    4.19 +  val complete_metitms : O_Model.T -> I_Model.T -> I_Model.T -> Celem4.pat list -> I_Model.T
    4.20 +  val insert_ppc' : I_Model.single -> I_Model.T -> I_Model.T
    4.21  
    4.22    val complete_mod : Calc.T -> Calc.T
    4.23    val is_complete_mod : Calc.T -> bool
    4.24 @@ -91,21 +91,21 @@
    4.25    val pt_extract : Calc.T -> Ctree.ptform * Tactic.input option * term list 
    4.26    val get_interval : Pos.pos' -> Pos.pos' -> int -> Ctree.ctree -> (Pos.pos' * term * Tactic.input option) list
    4.27  
    4.28 -  val match_ags : theory -> Celem4.pat list -> term list -> Model.ori list
    4.29 +  val match_ags : theory -> Celem4.pat list -> term list -> O_Model.T
    4.30    val match_ags_msg : Problem.id -> term -> term list -> unit
    4.31 -  val oris2fmz_vals : Model.ori list -> string list * term list
    4.32 +  val oris2fmz_vals : O_Model.T -> string list * term list
    4.33    val vars_of_pbl_' : ('a * ('b * term)) list -> term list
    4.34 -  val is_known : Proof.context -> string -> Model.ori list -> term -> string * Model.ori * term list
    4.35 -  val is_notyet_input : Proof.context -> Model.itm list -> term list -> Model.ori -> ('a * (term * term)) list
    4.36 -    -> string * Model.itm
    4.37 +  val is_known : Proof.context -> string -> O_Model.T -> term -> string * O_Model.single * term list
    4.38 +  val is_notyet_input : Proof.context -> I_Model.T -> term list -> O_Model.single -> ('a * (term * term)) list
    4.39 +    -> string * I_Model.single
    4.40    val ppc2list : 'a Model.ppc -> 'a list
    4.41    val mk_delete: theory -> string -> Model.itm_ -> Tactic.input
    4.42    val mk_additem: string -> TermC.as_string -> Tactic.input
    4.43 -  val nxt_add: theory -> Model.ori list -> (string * (term * 'a)) list -> (int * Model.vats * bool * string * Model.itm_) list -> (string * string) option
    4.44 +  val nxt_add: theory -> O_Model.T -> (string * (term * 'a)) list -> (int * Model.vats * bool * string * Model.itm_) list -> (string * string) option
    4.45    val is_error: Model.itm_ -> bool
    4.46 -  val complete_mod_: (int * int list * string * term * term list) list * ('a * (term * term)) list * ('b * (term * term)) list * Model.itm list -> Model.itm list * Model.itm list
    4.47 +  val complete_mod_: (int * int list * string * term * term list) list * ('a * (term * term)) list * ('b * (term * term)) list * I_Model.T -> I_Model.T * I_Model.T
    4.48    val nxt_specif_additem: string -> TermC.as_string -> Calc.T -> calcstate'
    4.49 -  val vals_of_oris : Model.ori list -> term list
    4.50 +  val vals_of_oris : O_Model.T -> term list
    4.51    val specify_additem: string -> TermC.as_string -> Calc.T -> string * calcstate'
    4.52  (* ---- for tests only: shifted from below to remove the Warning "unused" at fun.def. --------- *)
    4.53    val e_calcstate : Calc.T * State_Steps.T
    4.54 @@ -117,19 +117,19 @@
    4.55    val is_copy_named_generating_idstr : string -> bool
    4.56    val is_copy_named_generating : 'a * ('b * term) -> bool
    4.57    val is_copy_named : 'a * ('b * term) -> bool
    4.58 -  val ori2Coritm : Celem4.pat list -> Model.ori -> Model.itm
    4.59 +  val ori2Coritm : Celem4.pat list -> O_Model.single -> I_Model.single
    4.60    val matc : theory -> (string * (term * term)) list -> term list -> Model.preori list -> Model.preori list
    4.61    val mtc : theory -> Celem4.pat -> term -> Model.preori option
    4.62    val cpy_nam : Celem4.pat list -> Model.preori list -> Celem4.pat -> Model.preori
    4.63 -  datatype additm = Add of Model.itm | Err of string
    4.64 -  val appl_add: Proof.context -> string -> Model.ori list ->
    4.65 -    Model.itm list -> (string * (term * term)) list -> TermC.as_string -> additm
    4.66 +  datatype additm = Add of I_Model.single | Err of string
    4.67 +  val appl_add: Proof.context -> string -> O_Model.T ->
    4.68 +    I_Model.T -> (string * (term * term)) list -> TermC.as_string -> additm
    4.69    val seek_oridts: Proof.context -> ''a -> term * term list -> (int * 'b list * ''a * term * term list) list -> string * (int * 'b list * ''a * term * term list) * term list
    4.70  ( *\--- ! aktivate for Test_Isac END ----------------------------------------------------------/*)
    4.71  
    4.72  (*----- kept as hints to initial design ideas; NOT in src/, NOT in test ------------------------*)
    4.73    val variants_in : term list -> int
    4.74 -  val is_untouched : Model.itm -> bool
    4.75 +  val is_untouched : I_Model.single -> bool
    4.76    val is_list_type : typ -> bool
    4.77    val parse_ok : Model.itm_ list -> bool
    4.78    val all_dsc_in : Model.itm_ list -> term list
    4.79 @@ -183,7 +183,7 @@
    4.80  
    4.81  (* is the calchead complete ? *)
    4.82  fun ocalhd_complete its pre (dI, pI, mI) = 
    4.83 -  foldl and_ (true, map #3 (its: Model.itm list)) andalso 
    4.84 +  foldl and_ (true, map #3 (its: I_Model.T)) andalso 
    4.85    foldl and_ (true, map #1 (pre: (bool * term) list)) andalso 
    4.86    dI <> ThyC.id_empty andalso pI <> Problem.id_empty andalso mI <> Method.id_empty
    4.87  
    4.88 @@ -230,7 +230,7 @@
    4.89  
    4.90  (* find_first item with #1 equal to id *)
    4.91  fun seek_ppc _ [] = NONE
    4.92 -  | seek_ppc id (p :: ppc) = if id = #1 (p: Model.itm) then SOME p else seek_ppc id ppc
    4.93 +  | seek_ppc id (p :: ppc) = if id = #1 (p: I_Model.single) then SOME p else seek_ppc id ppc
    4.94  
    4.95  fun ppc2list {Given = gis, Where = whs, Find = fis, With = wis, Relate = res} =
    4.96    gis @ whs @ fis @ wis @ res
    4.97 @@ -311,11 +311,11 @@
    4.98      end
    4.99    | nxt_add thy oris _ itms =
   4.100      let
   4.101 -      fun testr_vt v ori = member op= (#2 (ori : Model.ori)) v andalso (#3 ori) <> "#undef"
   4.102 -      fun testi_vt v itm = member op= (#2 (itm : Model.itm)) v
   4.103 -      fun test_id ids r = member op= ids (#1 (r : Model.ori))
   4.104 +      fun testr_vt v ori = member op= (#2 (ori : O_Model.single)) v andalso (#3 ori) <> "#undef"
   4.105 +      fun testi_vt v itm = member op= (#2 (itm : I_Model.single)) v
   4.106 +      fun test_id ids r = member op= ids (#1 (r : O_Model.single))
   4.107        fun test_subset itm (_, _, _, d, ts) = 
   4.108 -        (Model.d_in (#5 (itm: Model.itm))) = d andalso subset op = (Model.ts_in (#5 itm), ts)
   4.109 +        (Model.d_in (#5 (itm: I_Model.single))) = d andalso subset op = (Model.ts_in (#5 itm), ts)
   4.110        fun false_and_not_Sup (_, _, false, _, Model.Sup _) = false
   4.111          | false_and_not_Sup (_, _, false, _, _) = true
   4.112          | false_and_not_Sup _ = false
   4.113 @@ -491,7 +491,7 @@
   4.114  
   4.115  
   4.116  datatype additm =
   4.117 -	Add of Model.itm   (* return-value of appl_add *)
   4.118 +	Add of I_Model.single   (* return-value of appl_add *)
   4.119  | Err of string       (* error-message            *)
   4.120  
   4.121  (* add an item to the model; check wrt. oris and pbt.
   4.122 @@ -878,7 +878,7 @@
   4.123     if mI = Method.id_empty then omI else mI)
   4.124  
   4.125  (* get the values from oris; handle the term list w.r.t. penv *)
   4.126 -fun vals_of_oris (oris: Model.ori list) =
   4.127 +fun vals_of_oris (oris: O_Model.T) =
   4.128    ((map (Model.mkval' o (#5))) o 
   4.129      (filter ((member_swap op= 1) o (#2)))) oris
   4.130  
     5.1 --- a/src/Tools/isac/Specify/generate.sml	Mon May 04 16:47:32 2020 +0200
     5.2 +++ b/src/Tools/isac/Specify/generate.sml	Mon May 04 17:08:32 2020 +0200
     5.3 @@ -11,12 +11,12 @@
     5.4    | Error' of string
     5.5    | FormKF of TermC.as_string
     5.6    | PpcKF of pblmet * Model.item Model.ppc
     5.7 -  | RefinedKF of Problem.id * (Model.itm list * (bool * term) list)
     5.8 +  | RefinedKF of Problem.id * (I_Model.T * (bool * term) list)
     5.9  
    5.10    type test_out = Pos.pos' * Pos.pos' list * mout * Ctree.ctree
    5.11  
    5.12 -  val init_pbl: (string * (term * 'a)) list -> Model.itm list
    5.13 -  val init_pbl': (string * (term * term)) list -> Model.itm list
    5.14 +  val init_pbl: (string * (term * 'a)) list -> I_Model.T
    5.15 +  val init_pbl': (string * (term * term)) list -> I_Model.T
    5.16    val generate_inconsistent_rew: Subst.input option * ThmC.T -> term -> Istate_Def.T * Proof.context ->
    5.17      Pos.pos' -> Ctree.ctree -> Calc.T
    5.18  (* ---- for tests only: shifted from below to remove the Warning "unused" at fun.def. --------- *)
    5.19 @@ -69,7 +69,7 @@
    5.20  | FormKF of cellID * edit * indent * nest * TermC.as_string                   (*<--*)
    5.21  | PpcKF of cellID * edit * indent * nest * (pblmet * Model.item Model.ppc) (*<--*)
    5.22  | RefineKF of Stool.match list                                             (*<--*)
    5.23 -| RefinedKF of (Problem.id * ((Model.itm list) * ((bool * term) list)))   (*<--*)
    5.24 +| RefinedKF of (Problem.id * ((I_Model.T) * ((bool * term) list)))   (*<--*)
    5.25  
    5.26  (* 
    5.27    datatype mout = EmptyMout | Error' of inout | Form' of inout | Problems of inout
    5.28 @@ -77,7 +77,7 @@
    5.29  datatype mout =
    5.30    FormKF of TermC.as_string
    5.31  | PpcKF of (pblmet * Model.item Model.ppc) 
    5.32 -| RefinedKF of Problem.id * (Model.itm list * (bool * term) list)
    5.33 +| RefinedKF of Problem.id * (I_Model.T * (bool * term) list)
    5.34  | Error' of string
    5.35  | EmptyMout
    5.36  
     6.1 --- a/src/Tools/isac/Specify/i-model.sml	Mon May 04 16:47:32 2020 +0200
     6.2 +++ b/src/Tools/isac/Specify/i-model.sml	Mon May 04 17:08:32 2020 +0200
     6.3 @@ -14,6 +14,9 @@
     6.4    val e_itm : itm 
     6.5  (*\------- to I_Model from Model -------/*)
     6.6  
     6.7 +  type T
     6.8 +  type single
     6.9 +
    6.10  (* ---- for tests only: shifted from below to remove the Warning "unused" at fun.def. --------- *)
    6.11  (*/-------------------------------------------------------- ! aktivate for Test_Isac BEGIN ---\* )
    6.12    (* NONE *)
    6.13 @@ -45,5 +48,7 @@
    6.14  val e_itm = (0, [], false, "e_itm", Syn "e_itm");
    6.15  (*\------- to I_Model from Model -------/*)
    6.16  
    6.17 +type T = Model_Def.itm list;
    6.18 +type single = Model_Def.itm;
    6.19  
    6.20  (**)end(**);
    6.21 \ No newline at end of file
     7.1 --- a/src/Tools/isac/Specify/mstools.sml	Mon May 04 16:47:32 2020 +0200
     7.2 +++ b/src/Tools/isac/Specify/mstools.sml	Mon May 04 17:08:32 2020 +0200
     7.3 @@ -9,10 +9,10 @@
     7.4  
     7.5  signature SPECIFY_TOOL =
     7.6  sig
     7.7 -  val check_preconds : 'a -> Rule_Set.T -> term list -> Model.itm list -> (bool * term) list
     7.8 -  val check_preconds' : Rule_Set.T -> term list -> Model.itm list -> 'a -> (bool * term) list
     7.9 +  val check_preconds : 'a -> Rule_Set.T -> term list -> I_Model.T -> (bool * term) list
    7.10 +  val check_preconds' : Rule_Set.T -> term list -> I_Model.T -> 'a -> (bool * term) list
    7.11  
    7.12 -  datatype match_ = Match_ of Problem.id * (Model.itm list * (bool * term) list) | NoMatch_
    7.13 +  datatype match_ = Match_ of Problem.id * (I_Model.T * (bool * term) list) | NoMatch_
    7.14    val refined_ : match_ list -> match_ option
    7.15    datatype match = Matches of Problem.id * Model.item Model.ppc | NoMatch of Problem.id * Model.item Model.ppc
    7.16    val matchs2str : match list -> string
    7.17 @@ -43,7 +43,7 @@
    7.18  
    7.19  (* 10.03 for Refine_Problem *)
    7.20  datatype match_ = 
    7.21 -  Match_ of Problem.id * (( Model.itm list) * ((bool * term) list))
    7.22 +  Match_ of Problem.id * (( I_Model.T) * ((bool * term) list))
    7.23  | NoMatch_;
    7.24  
    7.25  (* the refined pbt is the last_element Matches in the list *)
     8.1 --- a/src/Tools/isac/Specify/o-model.sml	Mon May 04 16:47:32 2020 +0200
     8.2 +++ b/src/Tools/isac/Specify/o-model.sml	Mon May 04 17:08:32 2020 +0200
     8.3 @@ -14,6 +14,9 @@
     8.4    val e_ori: ori
     8.5  (*\------- to O_Model from Model -------/*)
     8.6  
     8.7 +  type T
     8.8 +  type single
     8.9 +
    8.10  (* ---- for tests only: shifted from below to remove the Warning "unused" at fun.def. --------- *)
    8.11  (*/-------------------------------------------------------- ! aktivate for Test_Isac BEGIN ---\* )
    8.12    (* NONE *)
    8.13 @@ -34,5 +37,7 @@
    8.14  val oris2str = Model_Def.oris2str;
    8.15  (*\------- to O_Model from Model -------/*)
    8.16  
    8.17 +type T = Model_Def.ori list;
    8.18 +type single = Model_Def.ori
    8.19  
    8.20  (**)end(**);
    8.21 \ No newline at end of file
     9.1 --- a/src/Tools/isac/Specify/ptyps.sml	Mon May 04 16:47:32 2020 +0200
     9.2 +++ b/src/Tools/isac/Specify/ptyps.sml	Mon May 04 17:08:32 2020 +0200
     9.3 @@ -5,25 +5,25 @@
     9.4  
     9.5  signature MODEL_SPECIFY =
     9.6  sig
     9.7 -  val hack_until_review_Specify_1: Method.id -> Model.itm list -> Model.itm list
     9.8 -  val hack_until_review_Specify_2: Method.id -> Model.itm list -> Model.itm list
     9.9 +  val hack_until_review_Specify_1: Method.id -> I_Model.T -> I_Model.T
    9.10 +  val hack_until_review_Specify_2: Method.id -> I_Model.T -> I_Model.T
    9.11    
    9.12    val get_fun_ids : theory -> (string * typ) list
    9.13    type field
    9.14    (* for calchead.sml, if below at left margin *)
    9.15 -  val prep_ori : Celem.fmz_ -> theory -> field list -> Model.ori list * Proof.context
    9.16 +  val prep_ori : Celem.fmz_ -> theory -> field list -> O_Model.T * Proof.context
    9.17    val add_id : 'a list -> (int * 'a) list
    9.18 -  val add_field' : theory -> field list -> Model.ori list -> Model.ori list
    9.19 -  val match_itms_oris : theory -> Model.itm list -> field list * term list * Rule_Set.T ->
    9.20 -    Model.ori list -> bool * (Model.itm list * (bool * term) list)
    9.21 -  val refine_ori : Model.ori list -> Problem.id -> Problem.id option
    9.22 -  val refine_ori' : Model.ori list -> Problem.id -> Problem.id
    9.23 -  val refine_pbl : theory -> Problem.id -> Model.itm list ->
    9.24 -    (Problem.id * (Model.itm list * (bool * term) list)) option
    9.25 +  val add_field' : theory -> field list -> O_Model.T -> O_Model.T
    9.26 +  val match_itms_oris : theory -> I_Model.T -> field list * term list * Rule_Set.T ->
    9.27 +    O_Model.T -> bool * (I_Model.T * (bool * term) list)
    9.28 +  val refine_ori : O_Model.T -> Problem.id -> Problem.id option
    9.29 +  val refine_ori' : O_Model.T -> Problem.id -> Problem.id
    9.30 +  val refine_pbl : theory -> Problem.id -> I_Model.T ->
    9.31 +    (Problem.id * (I_Model.T * (bool * term) list)) option
    9.32  
    9.33    val appc : ('a list -> 'b list) -> 'a Model.ppc -> 'b Model.ppc
    9.34    val mappc : ('a -> 'b) -> 'a Model.ppc -> 'b Model.ppc
    9.35 -  val itms2itemppc : theory -> Model.itm list -> (bool * term) list -> Model.item Model.ppc   (* for generate.sml *)
    9.36 +  val itms2itemppc : theory -> I_Model.T -> (bool * term) list -> Model.item Model.ppc   (* for generate.sml *)
    9.37  
    9.38    val get_pbt : Problem.id -> Problem.T
    9.39    val get_met : Method.id -> Method.T                                    (* for generate.sml *)
    9.40 @@ -78,7 +78,7 @@
    9.41  (*----- unused code, kept as hints to design ideas ---------------------------------------------*)
    9.42    val e_fillpat : string * term * string
    9.43    val coll_vats : ''a list * ('b * ''a list * 'c * 'd * 'e) -> ''a list
    9.44 -  val filter_vat : Model.ori list -> int -> Model.ori list
    9.45 +  val filter_vat : O_Model.T -> int -> O_Model.T
    9.46    val show_metguhs : unit -> unit
    9.47    val sort_metguhs : unit -> unit
    9.48  end
    9.49 @@ -442,7 +442,7 @@
    9.50  (* transform oris *)
    9.51  
    9.52  fun coll_vats (vats, (_, vs, _, _, _)) = union op = vats vs;
    9.53 -fun filter_vat oris i = filter ((member_swap op = i) o (#2 : Model.ori -> int list)) oris;
    9.54 +fun filter_vat oris i = filter ((member_swap op = i) o (#2 : O_Model.single -> int list)) oris;
    9.55  
    9.56  (** check a problem (ie. itm list) for matching a problemtype **)
    9.57  
    10.1 --- a/src/Tools/isac/TODO.thy	Mon May 04 16:47:32 2020 +0200
    10.2 +++ b/src/Tools/isac/TODO.thy	Mon May 04 17:08:32 2020 +0200
    10.3 @@ -27,6 +27,8 @@
    10.4  (*\------- to  from -------/*)
    10.5    \begin{itemize}
    10.6    \item xxx
    10.7 +  \item push nes identifiers back from O/I_Model to Model_Def
    10.8 +  \item xxx
    10.9    \item rename Tactic.Calculate -> Tactic.Evaluate
   10.10    \item xxx
   10.11    \item xxx