Definition init_ptd :=
  match full_pt in parse_tree head full_word full_sem return
    pt_zipper head full_word full_sem ->
    match head return Type with | T _ => unit | NT _ => pt_dot end
  with
    | Terminal_pt _ _ => fun _ => ()
    | Non_terminal_pt ptl =>
      fun top => build_pt_dot ptl (Non_terminal_pt_ptlz top)
  end Top_ptz.

(* Specifications: *)
Lemma init_ptd_cost: S (ptd_cost init_ptd) = pt_size full_pt.
Lemma init_ptd_buffer: ptd_buffer init_ptd = full_word ++ buffer_end.
Theorem parse_complete n_steps: match parse init (full_word ++ buffer_end) n_steps with | OK (Parsed_pr sem_res buffer_end_res) => sem_res = full_sem /\ buffer_end_res = buffer_end /\ pt_size full_pt <= n_steps | OK Fail_pr => False | OK Timeout_pr => n_steps < pt_size full_pt | Err => True end.