src/HOL/Tools/Nitpick/nitpick.ML
changeset 47752 0814fc93ab89
parent 47716 dc9c8ce4aac5
child 47759 af40c7e90c1e
equal deleted inserted replaced
47751:f98bbb445c06 47752:0814fc93ab89
   665 
   665 
   666     fun print_and_check_model genuine bounds
   666     fun print_and_check_model genuine bounds
   667             ({free_names, sel_names, nonsel_names, rel_table, scope, ...}
   667             ({free_names, sel_names, nonsel_names, rel_table, scope, ...}
   668              : problem_extension) =
   668              : problem_extension) =
   669       let
   669       let
       
   670         val _ =
       
   671           print_t (fn () =>
       
   672                "% SZS status " ^
       
   673                (if genuine then
       
   674                   if falsify then "CounterSatisfiable" else "Satisfiable"
       
   675                 else
       
   676                   "Unknown") ^ "\n" ^
       
   677                "% SZS output start FiniteModel")
   670         val (reconstructed_model, codatatypes_ok) =
   678         val (reconstructed_model, codatatypes_ok) =
   671           reconstruct_hol_model
   679           reconstruct_hol_model
   672               {show_datatypes = show_datatypes, show_skolems = show_skolems,
   680               {show_datatypes = show_datatypes, show_skolems = show_skolems,
   673                show_consts = show_consts}
   681                show_consts = show_consts}
   674               scope formats atomss real_frees pseudo_frees free_names sel_names
   682               scope formats atomss real_frees pseudo_frees free_names sel_names
   678           sound_finitizes andalso total_consts <> SOME true andalso
   686           sound_finitizes andalso total_consts <> SOME true andalso
   679           codatatypes_ok
   687           codatatypes_ok
   680         fun assms_prop () =
   688         fun assms_prop () =
   681           Logic.mk_conjunction_list (neg_t :: def_assm_ts @ nondef_assm_ts)
   689           Logic.mk_conjunction_list (neg_t :: def_assm_ts @ nondef_assm_ts)
   682       in
   690       in
   683         (print_t (fn () =>
   691         (pprint_a (Pretty.chunks
   684              "% SZS status " ^
       
   685              (if genuine then
       
   686                 if falsify then "CounterSatisfiable" else "Satisfiable"
       
   687               else
       
   688                 "Unknown") ^ "\n" ^
       
   689              "% SZS output start FiniteModel");
       
   690          pprint_a (Pretty.chunks
       
   691              [Pretty.blk (0,
   692              [Pretty.blk (0,
   692                   (pstrs ((if mode = Auto_Try then "Auto " else "") ^
   693                   (pstrs ((if mode = Auto_Try then "Auto " else "") ^
   693                           "Nitpick found a" ^
   694                           "Nitpick found a" ^
   694                           (if not genuine then " potentially spurious "
   695                           (if not genuine then " potentially spurious "
   695                            else if genuine_means_genuine then " "
   696                            else if genuine_means_genuine then " "