Mctt.Core.Soundness.FundamentalTheorem
From Mctt Require Import LibTactics.
From Mctt.Core Require Import Base.
From Mctt.Core.Soundness Require Import
ContextCases
FunctionCases
PairCases
NatCases
SubstitutionCases
SubtypingCases
TermStructureCases
UniverseCases
EqualityCases.
From Mctt.Core.Soundness Require Export LogicalRelation.
Import Domain_Notations.
Section soundness_fundamental.
Theorem soundness_fundamental :
(forall Γ, {{ ⊢ Γ }} -> {{ ⊩ Γ }}) /\
(forall Γ A M, {{ Γ ⊢ M : A }} -> {{ Γ ⊩ M : A }}) /\
(forall Γ Δ σ, {{ Γ ⊢s σ : Δ }} -> {{ Γ ⊩s σ : Δ }}).
Proof.
apply syntactic_wf_mut_ind'; mauto 3.
Qed.
#[local]
Ltac solve_it := pose proof soundness_fundamental; firstorder.
Theorem soundness_fundamental_ctx : forall Γ, {{ ⊢ Γ }} -> {{ ⊩ Γ }}.
Proof. solve_it. Qed.
Theorem soundness_fundamental_exp : forall Γ M A, {{ Γ ⊢ M : A }} -> {{ Γ ⊩ M : A }}.
Proof. solve_it. Qed.
Theorem soundness_fundamental_sub : forall Γ σ Δ, {{ Γ ⊢s σ : Δ }} -> {{ Γ ⊩s σ : Δ }}.
Proof. solve_it. Qed.
End soundness_fundamental.
From Mctt.Core Require Import Base.
From Mctt.Core.Soundness Require Import
ContextCases
FunctionCases
PairCases
NatCases
SubstitutionCases
SubtypingCases
TermStructureCases
UniverseCases
EqualityCases.
From Mctt.Core.Soundness Require Export LogicalRelation.
Import Domain_Notations.
Section soundness_fundamental.
Theorem soundness_fundamental :
(forall Γ, {{ ⊢ Γ }} -> {{ ⊩ Γ }}) /\
(forall Γ A M, {{ Γ ⊢ M : A }} -> {{ Γ ⊩ M : A }}) /\
(forall Γ Δ σ, {{ Γ ⊢s σ : Δ }} -> {{ Γ ⊩s σ : Δ }}).
Proof.
apply syntactic_wf_mut_ind'; mauto 3.
Qed.
#[local]
Ltac solve_it := pose proof soundness_fundamental; firstorder.
Theorem soundness_fundamental_ctx : forall Γ, {{ ⊢ Γ }} -> {{ ⊩ Γ }}.
Proof. solve_it. Qed.
Theorem soundness_fundamental_exp : forall Γ M A, {{ Γ ⊢ M : A }} -> {{ Γ ⊩ M : A }}.
Proof. solve_it. Qed.
Theorem soundness_fundamental_sub : forall Γ σ Δ, {{ Γ ⊢s σ : Δ }} -> {{ Γ ⊩s σ : Δ }}.
Proof. solve_it. Qed.
End soundness_fundamental.