proposition: Lemma semantic_soundness Gamma s A: Gamma ⊢ s : A -> Gamma ⊨ s : A.
proof: Proof. induction 1. - intros ??; cbn; eapply compat_var; eauto. - intros ??; cbn; eapply compat_const. - intros ??; cbn; eapply compat_lambda; eauto using G_up. intros; eapply closure_under_reduction. cbn; dostep; now asimpl. eapply IHtyping, G_cons; eauto. replace (gamma >> _) with (gamma >> ren delta) by now asimpl. eapply ren_closed_G; eauto. - intros ??; cbn; eapply compat_app; eauto. Qed.
imports: Morphisms Lia Undecidability.HOU(std.std) Undecidability.HOU.calculus(prelim terms syntax semantics confluence typing order)