(* Realizer [t:term] Cases t of (Srt s) => Cases (pa_infer_axiom the_algos s) of (inleft _) => (inright sort) | _          => (inleft ? s) end | _        => (inright sort) end. *)
simple destruct t; intros; try (right; intros s' eqs'; discriminate eqs').
case (pa_infer_axiom the_algos s); intros.
right; intros.
injection H; intros; subst s1.
inversion_clear s0.
exists x; case H0; trivial.
left; exists s; trivial.
red in |- *; intros.
inversion_clear H.
elim n with x; trivial.
Qed.
Section Fixpoint_Body.
(* Useful for the mutual recursion  type inference <-> type checking *)
Hypothesis
fix_inference : forall (t : term) (e : env), wf e -> infer_ppal_type e t.

Theorem fix_chk_wk :
forall (e : env) (t T : term), wf e -> wf_type e T -> check_dec e t T.