src/HOL/Tools/Nitpick/nitpick_model.ML
changeset 36390 eee4ee6a5cbe
parent 36389 8228b3a4a2ba
child 36391 8f81c060cf12
equal deleted inserted replaced
36389:8228b3a4a2ba 36390:eee4ee6a5cbe
    10   type styp = Nitpick_Util.styp
    10   type styp = Nitpick_Util.styp
    11   type scope = Nitpick_Scope.scope
    11   type scope = Nitpick_Scope.scope
    12   type rep = Nitpick_Rep.rep
    12   type rep = Nitpick_Rep.rep
    13   type nut = Nitpick_Nut.nut
    13   type nut = Nitpick_Nut.nut
    14 
    14 
    15   type params = {
    15   type params =
    16     show_skolems: bool,
    16     {show_datatypes: bool,
    17     show_datatypes: bool,
    17      show_consts: bool}
    18     show_consts: bool}
    18 
    19   type term_postprocessor =
    19   type term_postprocessor =
    20     Proof.context -> string -> (typ -> term list) -> typ -> term -> term
    20     Proof.context -> string -> (typ -> term list) -> typ -> term -> term
    21 
    21 
    22   structure NameTable : TABLE
    22   structure NameTable : TABLE
    23 
    23 
    49 open Nitpick_Rep
    49 open Nitpick_Rep
    50 open Nitpick_Nut
    50 open Nitpick_Nut
    51 
    51 
    52 structure KK = Kodkod
    52 structure KK = Kodkod
    53 
    53 
    54 type params = {
    54 type params =
    55   show_skolems: bool,
    55   {show_datatypes: bool,
    56   show_datatypes: bool,
    56    show_consts: bool}
    57   show_consts: bool}
       
    58 
    57 
    59 type term_postprocessor =
    58 type term_postprocessor =
    60   Proof.context -> string -> (typ -> term list) -> typ -> term -> term
    59   Proof.context -> string -> (typ -> term list) -> typ -> term -> term
    61 
    60 
    62 structure Data = Theory_Data(
    61 structure Data = Theory_Data(
   838         end
   837         end
   839       else
   838       else
   840         t1 = t2
   839         t1 = t2
   841     end
   840     end
   842 
   841 
   843 fun reconstruct_hol_model {show_skolems, show_datatypes, show_consts}
   842 fun reconstruct_hol_model {show_datatypes, show_consts}
   844         ({hol_ctxt = {thy, ctxt, max_bisim_depth, boxes, stds, wfs, user_axioms,
   843         ({hol_ctxt = {thy, ctxt, max_bisim_depth, boxes, stds, wfs, user_axioms,
   845                       debug, binary_ints, destroy_constrs, specialize,
   844                       debug, binary_ints, destroy_constrs, specialize,
   846                       star_linear_preds, fast_descrs, tac_timeout, evals,
   845                       star_linear_preds, fast_descrs, tac_timeout, evals,
   847                       case_names, def_table, nondef_table, user_nondefs,
   846                       case_names, def_table, nondef_table, user_nondefs,
   848                       simp_table, psimp_table, choice_spec_table, intro_table,
   847                       simp_table, psimp_table, choice_spec_table, intro_table,
   978                 [name] => name
   977                 [name] => name
   979               | [] => FreeName (s, T, Any)
   978               | [] => FreeName (s, T, Any)
   980               | _ => raise TERM ("Nitpick_Model.reconstruct_hol_model",
   979               | _ => raise TERM ("Nitpick_Model.reconstruct_hol_model",
   981                                  [Const x])) all_frees
   980                                  [Const x])) all_frees
   982     val chunks = block_of_names true "Free variable" free_names @
   981     val chunks = block_of_names true "Free variable" free_names @
   983                  block_of_names show_skolems "Skolem constant" skolem_names @
   982                  block_of_names true "Skolem constant" skolem_names @
   984                  block_of_names true "Evaluated term" eval_names @
   983                  block_of_names true "Evaluated term" eval_names @
   985                  block_of_datatypes @ block_of_codatatypes @
   984                  block_of_datatypes @ block_of_codatatypes @
   986                  block_of_names show_consts "Constant"
   985                  block_of_names show_consts "Constant"
   987                                 noneval_nonskolem_nonsel_names
   986                                 noneval_nonskolem_nonsel_names
   988   in
   987   in