Section Completeness_Proof.
Hypothesis safe: Inter.ValidSafe.safe.
Hypothesis complete: complete.

(** If the first predicate has been validated, then it is correct. **)
Lemma first_correct head word t q :
word = t::q ->
parse_tree head word ->
TerminalSet.In (token_term t) (first_symb_set head)
with first_correct_list heads word t q :
word = t::q ->
parse_tree_list heads word ->
TerminalSet.In (token_term t) (first_word_set (rev' heads)).