intros H_Sk. destruct (test_u n).
- intros. exists n.
rewrite H_rec, H0; eauto. split. solveeq. eauto.
- destruct (H_Sk) as (k & ?). exists k.
rewrite H_rec, H0; eauto. split. eapply evaluates_equiv. split; value.
transitivity (H (Succ (enc n)) u). solveeq.
rewrite Succ_correct. now eapply evaluates_equiv. firstorder.
Qed.

Lemma C_sound : eva (C u) -> exists n, satis u n.
Proof with eauto.