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

(** Auxiliary lemma for first_correct.  *)
Lemma first_word_set_app t word1 word2 :
TerminalSet.In t (first_word_set (word1 ++ word2)) <->
TerminalSet.In t (first_word_set word1) \/
TerminalSet.In t (first_word_set word2) /\ nullable_word (rev word1) = true.