@@ -15,16 +15,18 @@ type result_info =
1515 | Not_Proved of
1616 Gnat_expl .extra_info *
1717 (Model_parser .model * Check_ce .rac_result option ) list *
18- (string * string ) option
18+ (string * string ) option *
19+ Gnat_expl .unproved_status
1920
2021type msg =
21- { result : bool ;
22- stats : stats option ;
23- stats_checker : int ;
24- check_tree : Json_base .json ;
25- extra_info : Gnat_expl .extra_info ;
26- cntexmp_models : (Model_parser .model * Check_ce .rac_result option ) list ;
27- manual_proof : (string * string ) option
22+ { result : bool ;
23+ stats : stats option ;
24+ stats_checker : int ;
25+ check_tree : Json_base .json ;
26+ extra_info : Gnat_expl .extra_info ;
27+ cntexmp_models : (Model_parser .model * Check_ce .rac_result option ) list ;
28+ manual_proof : (string * string ) option ;
29+ unproved_status : Gnat_expl .unproved_status
2830 }
2931
3032let msg_set : msg Gnat_expl.HCheck.t = Gnat_expl.HCheck. create 17
@@ -55,16 +57,17 @@ let adapt_stats statsopt =
5557 Some newstats
5658
5759let register check check_tree result =
58- let valid, extra_info, stats, models, manual =
60+ let valid, extra_info, stats, models, manual, unproved_status =
5961 match result with
6062 | Proved (stats , stats_checker ) ->
6163 true ,
6264 {Gnat_expl. pretty_node = None ; inlined = None },
6365 Some (stats, stats_checker),
6466 [] ,
65- None
66- | Not_Proved (extra_info , models , manual ) ->
67- false , extra_info, None , models, manual
67+ None ,
68+ Gnat_expl. Unknown
69+ | Not_Proved (extra_info , models , manual , unproved_status ) ->
70+ false , extra_info, None , models, manual, unproved_status
6871 in
6972 if (Gnat_expl.HCheck. mem msg_set check) then assert false
7073 else begin
@@ -77,11 +80,12 @@ let register check check_tree result =
7780 stats_checker = Option. value ~default: 0 stats_checker;
7881 check_tree = check_tree;
7982 cntexmp_models = models;
80- manual_proof = manual } in
83+ manual_proof = manual;
84+ unproved_status = unproved_status } in
8185 Gnat_expl.HCheck. add msg_set check msg
8286 end
8387
84- let get_cntexmp_models =
88+ let get_cntexmp_models =
8589 List. map (function
8690 (m , r ) ->
8791 let json_result_state (state , _log ) =
@@ -161,14 +165,32 @@ let get_extra_info i =
161165 " inline" , Int (opt_int inline)
162166 ]
163167
168+ let get_unproved_status status =
169+ let status, time, steps, memory =
170+ match status with
171+ | Gnat_expl. Unknown ->
172+ " unknown" , false , false , false
173+ | Gnat_expl. Gave_up ->
174+ " gave_up" , false , false , false
175+ | Gnat_expl. Limit { timeout; step; memory } ->
176+ " limit" , timeout, step, memory
177+ in
178+ Record [
179+ " status" , String status;
180+ " time" , Bool time;
181+ " steps" , Bool steps;
182+ " memory" , Bool memory
183+ ]
184+
164185let get_msg (check , m ) =
165186 Record (
166187 List. concat [
167188 [ " id" , Int check.Gnat_expl. id ;
168189 " check_kind" , String (Gnat_expl. check_kind_to_ada check.Gnat_expl. check_kind) ;
169190 " result" , Bool m.result ;
170191 " check_tree" , m.check_tree ;
171- " extra_info" , get_extra_info m.extra_info
192+ " extra_info" , get_extra_info m.extra_info ;
193+ " unproved_status" , get_unproved_status m.unproved_status
172194 ] ;
173195 get_stats (m.stats, m.stats_checker);
174196 [" cntexmps" , List (get_cntexmp_models m.cntexmp_models)];
0 commit comments