let print () =
begin
let hmap = Hip.create 131 in
let forest = Consolidation_tree.get_all () in
let globals = ref [] in
let reports = ref Kernel_function.Map.empty in
Self.feedback "Computing properties status..." ;
List.iter
(fun t ->
let ip = t.Consolidation_tree.property in
let proofs = get_proofs hmap ip in
if (if OnlyValid.get () then proofs <> [] else true) then
match Property.get_kf ip with
| None -> globals := ip :: !globals
| Some kf ->
let ipfs =
try Kernel_function.Map.find kf !reports with Not_found -> []
in
reports := Kernel_function.Map.add kf (ip::ipfs) !reports)
forest;
Log.print_on_output "%t"
(fun fmt ->
if !globals = [] && Kernel_function.Map.is_empty !reports then
Format.fprintf fmt "No properties status@." ;
let partials = ref 0 in
let completes = ref 0 in
let untried = ref 0 in
report ~partials ~completes ~untried hmap fmt "Global Properties" !globals ;
Kernel_function.Map.iter
(fun kf ips ->
let title =
Printf.sprintf "Properties for Function '%s'"
(Kernel_function.get_name kf)
in report ~partials ~completes ~untried hmap fmt title ips
) !reports ;
let s = !untried + !partials + !completes in
Format.fprintf fmt "%s@\n" bar ;
Format.fprintf fmt " No proofs : %4d@\n" !untried ;
Format.fprintf fmt " Partial proofs : %4d@\n" !partials ;
Format.fprintf fmt " Complete proofs : %4d@\n" !completes ;
Format.fprintf fmt " Total : %4d@\n" s ;
Format.fprintf fmt "%s@." bar ;
) ;
end