let print_proof_tree (root: proof_tree_node) =
let print_pt_id n1 = print_int (Tree.get_node_label n1).pt_id;print_string " ; "
in
let print_pt_children_ids n1 =
print_string "Children of ";
print_pt_id n1;print_string ": \n";
print_string "[";
List.iter print_pt_id (Tree.get_children n1);
print_string "]\n"
in
let print_pt_edge pt_e =
match pt_e with
(op,i) ->
begin
print_string "op: ";
Message.msg_printer Message.Debug Operation.print op ;
print_string "\n proof: "
end
in
let print_pt_node_data n_data =
print_int n_data.pt_id;print_string "\n";
Abstraction.print_proof_region n_data.pt_region;
match n_data.covering_nodes with
None -> print_string "Not covered \n"
| Some(i,l) -> print_string "Covered \n"
in
let rec print_pt_node n =
let _ =
match (Tree.get_parent_edge n) with
None -> print_string "ROOT NODE Id: ";
| Some(e) ->
let par = Tree.get_source e in
begin
print_string "----par: ";print_pt_id par;print_string "\n";
print_pt_edge (Tree.get_edge_label e);
print_string "---->\n";
print_string "INT NODE Id: "
end
in
print_pt_node_data (Tree.get_node_label n);
print_pt_children_ids n;
List.iter print_pt_node (Tree.get_children n)
in
print_pt_node root