let count_tree_nodes root = 
  Message.msg_string Message.Normal "Counting tree nodes";
  let update_counter n = 
    (* let us just count how many covered nodes there are *)
    if ((List.length (get_children n ) = 0)) then stats_nb_proof_tree_covered_nodes := !stats_nb_proof_tree_covered_nodes + 1;
    stats_nb_proof_tree_nodes := !stats_nb_proof_tree_nodes + 1; ()
  in
  let leaf_check_fn n = (get_children n) = [] in
    stats_nb_proof_tree_nodes := Tree.count_nodes_descendants  root;
    stats_nb_proof_tree_covered_nodes := Tree.count_f_descendants leaf_check_fn root