Now that we know how to glue types and contexts together, we can
annotate a PTS judgement into a PTS{atr} one.
Lemma FromPTS_to_PTSATR : (forall Γ M A , PTS.typ Γ M A -> exists Γ', exists M', exists A', strip_env Γ' = Γ /\
strip M' = M /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A') /\
(forall Γ , PTS.wf Γ -> exists Γ', strip_env Γ' = Γ /\ wf Γ').1 subgoals, subgoal 1 (ID 13)
============================
(forall (Γ : UEM.Env) (M A : UTM.Term),
Γ ⊢ M : A ->
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A') /\
(forall Γ : UEM.Env, (Γ ⊣)%UT -> exists Γ' : Env, strip_env Γ' = Γ /\ Γ' ⊣)
(dependent evars:)
apply PTS.typ_induc; intros.8 subgoals, subgoal 1 (ID 27)
Γ : UEM.Env
s : Sorts
t : Sorts
a : Ax s t
w : (Γ ⊣)%UT
H : exists Γ' : Env, strip_env Γ' = Γ /\ Γ' ⊣
============================
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = !s%UT /\ strip A' = !t%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 2 (ID 33) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 8 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
destruct H as (Γ' & ? & ?). 8 subgoals, subgoal 1 (ID 90)
Γ : UEM.Env
s : Sorts
t : Sorts
a : Ax s t
w : (Γ ⊣)%UT
Γ' : Env
H : strip_env Γ' = Γ
H0 : Γ' ⊣
============================
exists (Γ'0 : Env) (M' A' : Term),
strip_env Γ'0 = Γ /\
strip M' = !s%UT /\ strip A' = !t%UT /\ Γ'0 ⊢ M' ▹ M' : A'
subgoal 2 (ID 33) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 8 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
exists Γ'; exists !s; exists !t; intuition.7 subgoals, subgoal 1 (ID 33)
Γ : UEM.Env
A : UTM.Term
v : nat
w : (Γ ⊣)%UT
H : exists Γ' : Env, strip_env Γ' = Γ /\ Γ' ⊣
i : (A ↓ v ⊂ Γ)%UT
============================
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 2 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 7 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
destruct H as (ΓΓ & ? & ?). 7 subgoals, subgoal 1 (ID 130)
Γ : UEM.Env
A : UTM.Term
v : nat
w : (Γ ⊣)%UT
ΓΓ : Env
H : strip_env ΓΓ = Γ
H0 : ΓΓ ⊣
i : (A ↓ v ⊂ Γ)%UT
============================
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 2 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 7 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
assert (exists AA, AA ↓ v ⊂ ΓΓ /\ A = strip AA).8 subgoals, subgoal 1 (ID 133)
Γ : UEM.Env
A : UTM.Term
v : nat
w : (Γ ⊣)%UT
ΓΓ : Env
H : strip_env ΓΓ = Γ
H0 : ΓΓ ⊣
i : (A ↓ v ⊂ Γ)%UT
============================
exists AA : Term, (AA ↓ v ⊂ ΓΓ) /\ A = strip AA
subgoal 2 (ID 134) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 8 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
clear w H0. 8 subgoals, subgoal 1 (ID 135)
Γ : UEM.Env
A : UTM.Term
v : nat
ΓΓ : Env
H : strip_env ΓΓ = Γ
i : (A ↓ v ⊂ Γ)%UT
============================
exists AA : Term, (AA ↓ v ⊂ ΓΓ) /\ A = strip AA
subgoal 2 (ID 134) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 8 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
revert ΓΓ A v H i. 8 subgoals, subgoal 1 (ID 137)
Γ : UEM.Env
============================
forall (ΓΓ : Env) (A : UTM.Term) (v : nat),
strip_env ΓΓ = Γ ->
(A ↓ v ⊂ Γ)%UT -> exists AA : Term, (AA ↓ v ⊂ ΓΓ) /\ A = strip AA
subgoal 2 (ID 134) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 8 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
induction Γ; intros. 9 subgoals, subgoal 1 (ID 149)
ΓΓ : Env
A : UTM.Term
v : nat
H : strip_env ΓΓ = nil
i : (A ↓ v ⊂ nil)%UT
============================
exists AA : Term, (AA ↓ v ⊂ ΓΓ) /\ A = strip AA
subgoal 2 (ID 154) is:
exists AA : Term, (AA ↓ v ⊂ ΓΓ) /\ A = strip AA
subgoal 3 (ID 134) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 8 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 9 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
destruct i as ( a & ? &?).9 subgoals, subgoal 1 (ID 162)
ΓΓ : Env
A : UTM.Term
v : nat
H : strip_env ΓΓ = nil
a : UTM.Term
H0 : A = (a ↑ (S v))%UT
H1 : (a ↓ v ∈ nil)%UT
============================
exists AA : Term, (AA ↓ v ⊂ ΓΓ) /\ A = strip AA
subgoal 2 (ID 154) is:
exists AA : Term, (AA ↓ v ⊂ ΓΓ) /\ A = strip AA
subgoal 3 (ID 134) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 8 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 9 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
inversion H1. 8 subgoals, subgoal 1 (ID 154)
a : UTM.Term
Γ : list UTM.Term
IHΓ : forall (ΓΓ : Env) (A : UTM.Term) (v : nat),
strip_env ΓΓ = Γ ->
(A ↓ v ⊂ Γ)%UT -> exists AA : Term, (AA ↓ v ⊂ ΓΓ) /\ A = strip AA
ΓΓ : Env
A : UTM.Term
v : nat
H : strip_env ΓΓ = a :: Γ
i : (A ↓ v ⊂ a :: Γ)%UT
============================
exists AA : Term, (AA ↓ v ⊂ ΓΓ) /\ A = strip AA
subgoal 2 (ID 134) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 8 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
destruct ΓΓ; simpl in H. 9 subgoals, subgoal 1 (ID 212)
a : UTM.Term
Γ : list UTM.Term
IHΓ : forall (ΓΓ : Env) (A : UTM.Term) (v : nat),
strip_env ΓΓ = Γ ->
(A ↓ v ⊂ Γ)%UT -> exists AA : Term, (AA ↓ v ⊂ ΓΓ) /\ A = strip AA
A : UTM.Term
v : nat
H : nil = a :: Γ
i : (A ↓ v ⊂ a :: Γ)%UT
============================
exists AA : Term, (AA ↓ v ⊂ nil) /\ A = strip AA
subgoal 2 (ID 213) is:
exists AA : Term, (AA ↓ v ⊂ t :: ΓΓ) /\ A = strip AA
subgoal 3 (ID 134) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 8 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 9 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
discriminate. 8 subgoals, subgoal 1 (ID 213)
a : UTM.Term
Γ : list UTM.Term
IHΓ : forall (ΓΓ : Env) (A : UTM.Term) (v : nat),
strip_env ΓΓ = Γ ->
(A ↓ v ⊂ Γ)%UT -> exists AA : Term, (AA ↓ v ⊂ ΓΓ) /\ A = strip AA
t : Term
ΓΓ : list Term
A : UTM.Term
v : nat
H : strip t :: strip_env ΓΓ = a :: Γ
i : (A ↓ v ⊂ a :: Γ)%UT
============================
exists AA : Term, (AA ↓ v ⊂ t :: ΓΓ) /\ A = strip AA
subgoal 2 (ID 134) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 8 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
injection H; intros; subst; clear H.8 subgoals, subgoal 1 (ID 242)
t : Term
ΓΓ : list Term
A : UTM.Term
v : nat
IHΓ : forall (ΓΓ0 : Env) (A : UTM.Term) (v : nat),
strip_env ΓΓ0 = strip_env ΓΓ ->
(A ↓ v ⊂ strip_env ΓΓ)%UT ->
exists AA : Term, (AA ↓ v ⊂ ΓΓ0) /\ A = strip AA
i : (A ↓ v ⊂ strip t :: strip_env ΓΓ)%UT
============================
exists AA : Term, (AA ↓ v ⊂ t :: ΓΓ) /\ A = strip AA
subgoal 2 (ID 134) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 8 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
destruct i as (a &? & ?). 8 subgoals, subgoal 1 (ID 250)
t : Term
ΓΓ : list Term
A : UTM.Term
v : nat
IHΓ : forall (ΓΓ0 : Env) (A : UTM.Term) (v : nat),
strip_env ΓΓ0 = strip_env ΓΓ ->
(A ↓ v ⊂ strip_env ΓΓ)%UT ->
exists AA : Term, (AA ↓ v ⊂ ΓΓ0) /\ A = strip AA
a : UTM.Term
H : A = (a ↑ (S v))%UT
H0 : (a ↓ v ∈ strip t :: strip_env ΓΓ)%UT
============================
exists AA : Term, (AA ↓ v ⊂ t :: ΓΓ) /\ A = strip AA
subgoal 2 (ID 134) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 8 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
inversion H0; subst; clear H0. 9 subgoals, subgoal 1 (ID 339)
t : Term
ΓΓ : list Term
IHΓ : forall (ΓΓ0 : Env) (A : UTM.Term) (v : nat),
strip_env ΓΓ0 = strip_env ΓΓ ->
(A ↓ v ⊂ strip_env ΓΓ)%UT ->
exists AA : Term, (AA ↓ v ⊂ ΓΓ0) /\ A = strip AA
============================
exists AA : Term, (AA ↓ 0 ⊂ t :: ΓΓ) /\ ((strip t) ↑ 1)%UT = strip AA
subgoal 2 (ID 340) is:
exists AA : Term, (AA ↓ S n ⊂ t :: ΓΓ) /\ (a ↑ (S (S n)))%UT = strip AA
subgoal 3 (ID 134) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 8 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 9 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
exists (lift_rec 1 0 t).9 subgoals, subgoal 1 (ID 342)
t : Term
ΓΓ : list Term
IHΓ : forall (ΓΓ0 : Env) (A : UTM.Term) (v : nat),
strip_env ΓΓ0 = strip_env ΓΓ ->
(A ↓ v ⊂ strip_env ΓΓ)%UT ->
exists AA : Term, (AA ↓ v ⊂ ΓΓ0) /\ A = strip AA
============================
(t ↑ 1 ↓ 0 ⊂ t :: ΓΓ) /\ ((strip t) ↑ 1)%UT = strip t ↑ 1
subgoal 2 (ID 340) is:
exists AA : Term, (AA ↓ S n ⊂ t :: ΓΓ) /\ (a ↑ (S (S n)))%UT = strip AA
subgoal 3 (ID 134) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 8 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 9 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
split. 10 subgoals, subgoal 1 (ID 344)
t : Term
ΓΓ : list Term
IHΓ : forall (ΓΓ0 : Env) (A : UTM.Term) (v : nat),
strip_env ΓΓ0 = strip_env ΓΓ ->
(A ↓ v ⊂ strip_env ΓΓ)%UT ->
exists AA : Term, (AA ↓ v ⊂ ΓΓ0) /\ A = strip AA
============================
t ↑ 1 ↓ 0 ⊂ t :: ΓΓ
subgoal 2 (ID 345) is:
((strip t) ↑ 1)%UT = strip t ↑ 1
subgoal 3 (ID 340) is:
exists AA : Term, (AA ↓ S n ⊂ t :: ΓΓ) /\ (a ↑ (S (S n)))%UT = strip AA
subgoal 4 (ID 134) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 8 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 9 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 10 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
exists t. 10 subgoals, subgoal 1 (ID 347)
t : Term
ΓΓ : list Term
IHΓ : forall (ΓΓ0 : Env) (A : UTM.Term) (v : nat),
strip_env ΓΓ0 = strip_env ΓΓ ->
(A ↓ v ⊂ strip_env ΓΓ)%UT ->
exists AA : Term, (AA ↓ v ⊂ ΓΓ0) /\ A = strip AA
============================
t ↑ 1 = t ↑ 1 /\ t ↓ 0 ∈ t :: ΓΓ
subgoal 2 (ID 345) is:
((strip t) ↑ 1)%UT = strip t ↑ 1
subgoal 3 (ID 340) is:
exists AA : Term, (AA ↓ S n ⊂ t :: ΓΓ) /\ (a ↑ (S (S n)))%UT = strip AA
subgoal 4 (ID 134) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 8 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 9 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 10 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
intuition. 9 subgoals, subgoal 1 (ID 345)
t : Term
ΓΓ : list Term
IHΓ : forall (ΓΓ0 : Env) (A : UTM.Term) (v : nat),
strip_env ΓΓ0 = strip_env ΓΓ ->
(A ↓ v ⊂ strip_env ΓΓ)%UT ->
exists AA : Term, (AA ↓ v ⊂ ΓΓ0) /\ A = strip AA
============================
((strip t) ↑ 1)%UT = strip t ↑ 1
subgoal 2 (ID 340) is:
exists AA : Term, (AA ↓ S n ⊂ t :: ΓΓ) /\ (a ↑ (S (S n)))%UT = strip AA
subgoal 3 (ID 134) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 8 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 9 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
rewrite strip_lift; trivial.8 subgoals, subgoal 1 (ID 340)
t : Term
ΓΓ : list Term
IHΓ : forall (ΓΓ0 : Env) (A : UTM.Term) (v : nat),
strip_env ΓΓ0 = strip_env ΓΓ ->
(A ↓ v ⊂ strip_env ΓΓ)%UT ->
exists AA : Term, (AA ↓ v ⊂ ΓΓ0) /\ A = strip AA
a : UTM.Term
n : nat
H4 : (a ↓ n ∈ strip_env ΓΓ)%UT
============================
exists AA : Term, (AA ↓ S n ⊂ t :: ΓΓ) /\ (a ↑ (S (S n)))%UT = strip AA
subgoal 2 (ID 134) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 8 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
destruct (IHΓ ΓΓ (UTM.lift_rec (S n) 0 a) n) as (B & ?& ?). 10 subgoals, subgoal 1 (ID 363)
t : Term
ΓΓ : list Term
IHΓ : forall (ΓΓ0 : Env) (A : UTM.Term) (v : nat),
strip_env ΓΓ0 = strip_env ΓΓ ->
(A ↓ v ⊂ strip_env ΓΓ)%UT ->
exists AA : Term, (AA ↓ v ⊂ ΓΓ0) /\ A = strip AA
a : UTM.Term
n : nat
H4 : (a ↓ n ∈ strip_env ΓΓ)%UT
============================
strip_env ΓΓ = strip_env ΓΓ
subgoal 2 (ID 365) is:
(a ↑ (S n) ↓ n ⊂ strip_env ΓΓ)%UT
subgoal 3 (ID 373) is:
exists AA : Term, (AA ↓ S n ⊂ t :: ΓΓ) /\ (a ↑ (S (S n)))%UT = strip AA
subgoal 4 (ID 134) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 8 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 9 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 10 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
trivial.9 subgoals, subgoal 1 (ID 365)
t : Term
ΓΓ : list Term
IHΓ : forall (ΓΓ0 : Env) (A : UTM.Term) (v : nat),
strip_env ΓΓ0 = strip_env ΓΓ ->
(A ↓ v ⊂ strip_env ΓΓ)%UT ->
exists AA : Term, (AA ↓ v ⊂ ΓΓ0) /\ A = strip AA
a : UTM.Term
n : nat
H4 : (a ↓ n ∈ strip_env ΓΓ)%UT
============================
(a ↑ (S n) ↓ n ⊂ strip_env ΓΓ)%UT
subgoal 2 (ID 373) is:
exists AA : Term, (AA ↓ S n ⊂ t :: ΓΓ) /\ (a ↑ (S (S n)))%UT = strip AA
subgoal 3 (ID 134) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 8 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 9 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
exists a; intuition. 8 subgoals, subgoal 1 (ID 373)
t : Term
ΓΓ : list Term
IHΓ : forall (ΓΓ0 : Env) (A : UTM.Term) (v : nat),
strip_env ΓΓ0 = strip_env ΓΓ ->
(A ↓ v ⊂ strip_env ΓΓ)%UT ->
exists AA : Term, (AA ↓ v ⊂ ΓΓ0) /\ A = strip AA
a : UTM.Term
n : nat
H4 : (a ↓ n ∈ strip_env ΓΓ)%UT
B : Term
H : B ↓ n ⊂ ΓΓ
H0 : (a ↑ (S n))%UT = strip B
============================
exists AA : Term, (AA ↓ S n ⊂ t :: ΓΓ) /\ (a ↑ (S (S n)))%UT = strip AA
subgoal 2 (ID 134) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 8 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
exists (lift_rec 1 0 B). 8 subgoals, subgoal 1 (ID 381)
t : Term
ΓΓ : list Term
IHΓ : forall (ΓΓ0 : Env) (A : UTM.Term) (v : nat),
strip_env ΓΓ0 = strip_env ΓΓ ->
(A ↓ v ⊂ strip_env ΓΓ)%UT ->
exists AA : Term, (AA ↓ v ⊂ ΓΓ0) /\ A = strip AA
a : UTM.Term
n : nat
H4 : (a ↓ n ∈ strip_env ΓΓ)%UT
B : Term
H : B ↓ n ⊂ ΓΓ
H0 : (a ↑ (S n))%UT = strip B
============================
(B ↑ 1 ↓ S n ⊂ t :: ΓΓ) /\ (a ↑ (S (S n)))%UT = strip B ↑ 1
subgoal 2 (ID 134) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 8 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
split. 9 subgoals, subgoal 1 (ID 383)
t : Term
ΓΓ : list Term
IHΓ : forall (ΓΓ0 : Env) (A : UTM.Term) (v : nat),
strip_env ΓΓ0 = strip_env ΓΓ ->
(A ↓ v ⊂ strip_env ΓΓ)%UT ->
exists AA : Term, (AA ↓ v ⊂ ΓΓ0) /\ A = strip AA
a : UTM.Term
n : nat
H4 : (a ↓ n ∈ strip_env ΓΓ)%UT
B : Term
H : B ↓ n ⊂ ΓΓ
H0 : (a ↑ (S n))%UT = strip B
============================
B ↑ 1 ↓ S n ⊂ t :: ΓΓ
subgoal 2 (ID 384) is:
(a ↑ (S (S n)))%UT = strip B ↑ 1
subgoal 3 (ID 134) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 8 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 9 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
destruct H as (b & ?& ?).9 subgoals, subgoal 1 (ID 395)
t : Term
ΓΓ : list Term
IHΓ : forall (ΓΓ0 : Env) (A : UTM.Term) (v : nat),
strip_env ΓΓ0 = strip_env ΓΓ ->
(A ↓ v ⊂ strip_env ΓΓ)%UT ->
exists AA : Term, (AA ↓ v ⊂ ΓΓ0) /\ A = strip AA
a : UTM.Term
n : nat
H4 : (a ↓ n ∈ strip_env ΓΓ)%UT
B : Term
b : Term
H : B = b ↑ (S n)
H1 : b ↓ n ∈ ΓΓ
H0 : (a ↑ (S n))%UT = strip B
============================
B ↑ 1 ↓ S n ⊂ t :: ΓΓ
subgoal 2 (ID 384) is:
(a ↑ (S (S n)))%UT = strip B ↑ 1
subgoal 3 (ID 134) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 8 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 9 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
exists b. 9 subgoals, subgoal 1 (ID 397)
t : Term
ΓΓ : list Term
IHΓ : forall (ΓΓ0 : Env) (A : UTM.Term) (v : nat),
strip_env ΓΓ0 = strip_env ΓΓ ->
(A ↓ v ⊂ strip_env ΓΓ)%UT ->
exists AA : Term, (AA ↓ v ⊂ ΓΓ0) /\ A = strip AA
a : UTM.Term
n : nat
H4 : (a ↓ n ∈ strip_env ΓΓ)%UT
B : Term
b : Term
H : B = b ↑ (S n)
H1 : b ↓ n ∈ ΓΓ
H0 : (a ↑ (S n))%UT = strip B
============================
B ↑ 1 = b ↑ (S (S n)) /\ b ↓ S n ∈ t :: ΓΓ
subgoal 2 (ID 384) is:
(a ↑ (S (S n)))%UT = strip B ↑ 1
subgoal 3 (ID 134) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 8 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 9 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
subst. 9 subgoals, subgoal 1 (ID 402)
t : Term
ΓΓ : list Term
IHΓ : forall (ΓΓ0 : Env) (A : UTM.Term) (v : nat),
strip_env ΓΓ0 = strip_env ΓΓ ->
(A ↓ v ⊂ strip_env ΓΓ)%UT ->
exists AA : Term, (AA ↓ v ⊂ ΓΓ0) /\ A = strip AA
a : UTM.Term
n : nat
H4 : (a ↓ n ∈ strip_env ΓΓ)%UT
b : Term
H1 : b ↓ n ∈ ΓΓ
H0 : (a ↑ (S n))%UT = strip b ↑ (S n)
============================
b ↑ (S n) ↑ 1 = b ↑ (S (S n)) /\ b ↓ S n ∈ t :: ΓΓ
subgoal 2 (ID 384) is:
(a ↑ (S (S n)))%UT = strip B ↑ 1
subgoal 3 (ID 134) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 8 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 9 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
rewrite lift_lift; intuition. 8 subgoals, subgoal 1 (ID 384)
t : Term
ΓΓ : list Term
IHΓ : forall (ΓΓ0 : Env) (A : UTM.Term) (v : nat),
strip_env ΓΓ0 = strip_env ΓΓ ->
(A ↓ v ⊂ strip_env ΓΓ)%UT ->
exists AA : Term, (AA ↓ v ⊂ ΓΓ0) /\ A = strip AA
a : UTM.Term
n : nat
H4 : (a ↓ n ∈ strip_env ΓΓ)%UT
B : Term
H : B ↓ n ⊂ ΓΓ
H0 : (a ↑ (S n))%UT = strip B
============================
(a ↑ (S (S n)))%UT = strip B ↑ 1
subgoal 2 (ID 134) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 8 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
rewrite strip_lift. 8 subgoals, subgoal 1 (ID 419)
t : Term
ΓΓ : list Term
IHΓ : forall (ΓΓ0 : Env) (A : UTM.Term) (v : nat),
strip_env ΓΓ0 = strip_env ΓΓ ->
(A ↓ v ⊂ strip_env ΓΓ)%UT ->
exists AA : Term, (AA ↓ v ⊂ ΓΓ0) /\ A = strip AA
a : UTM.Term
n : nat
H4 : (a ↓ n ∈ strip_env ΓΓ)%UT
B : Term
H : B ↓ n ⊂ ΓΓ
H0 : (a ↑ (S n))%UT = strip B
============================
(a ↑ (S (S n)))%UT = ((strip B) ↑ 1)%UT
subgoal 2 (ID 134) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 8 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
rewrite <- H0.8 subgoals, subgoal 1 (ID 420)
t : Term
ΓΓ : list Term
IHΓ : forall (ΓΓ0 : Env) (A : UTM.Term) (v : nat),
strip_env ΓΓ0 = strip_env ΓΓ ->
(A ↓ v ⊂ strip_env ΓΓ)%UT ->
exists AA : Term, (AA ↓ v ⊂ ΓΓ0) /\ A = strip AA
a : UTM.Term
n : nat
H4 : (a ↓ n ∈ strip_env ΓΓ)%UT
B : Term
H : B ↓ n ⊂ ΓΓ
H0 : (a ↑ (S n))%UT = strip B
============================
(a ↑ (S (S n)))%UT = (a ↑ (S n) ↑ 1)%UT
subgoal 2 (ID 134) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 8 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
rewrite UTM.lift_lift. 8 subgoals, subgoal 1 (ID 421)
t : Term
ΓΓ : list Term
IHΓ : forall (ΓΓ0 : Env) (A : UTM.Term) (v : nat),
strip_env ΓΓ0 = strip_env ΓΓ ->
(A ↓ v ⊂ strip_env ΓΓ)%UT ->
exists AA : Term, (AA ↓ v ⊂ ΓΓ0) /\ A = strip AA
a : UTM.Term
n : nat
H4 : (a ↓ n ∈ strip_env ΓΓ)%UT
B : Term
H : B ↓ n ⊂ ΓΓ
H0 : (a ↑ (S n))%UT = strip B
============================
(a ↑ (S (S n)))%UT = (a ↑ (1 + S n))%UT
subgoal 2 (ID 134) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 8 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
trivial.7 subgoals, subgoal 1 (ID 134)
Γ : UEM.Env
A : UTM.Term
v : nat
w : (Γ ⊣)%UT
ΓΓ : Env
H : strip_env ΓΓ = Γ
H0 : ΓΓ ⊣
i : (A ↓ v ⊂ Γ)%UT
H1 : exists AA : Term, (AA ↓ v ⊂ ΓΓ) /\ A = strip AA
============================
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 2 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 7 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
destruct H1 as (B &? & ?). 7 subgoals, subgoal 1 (ID 429)
Γ : UEM.Env
A : UTM.Term
v : nat
w : (Γ ⊣)%UT
ΓΓ : Env
H : strip_env ΓΓ = Γ
H0 : ΓΓ ⊣
i : (A ↓ v ⊂ Γ)%UT
B : Term
H1 : B ↓ v ⊂ ΓΓ
H2 : A = strip B
============================
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = #v%UT /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
subgoal 2 (ID 44) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 7 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
exists ΓΓ; exists #v; exists B; simpl; intuition.6 subgoals, subgoal 1 (ID 44)
Γ : UEM.Env
A : UTM.Term
B : UTM.Term
s : Sorts
t : Sorts
u : Sorts
r : Rel s t u
t0 : Γ ⊢ A : !s%UT
H : exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = A /\ strip A' = !s%UT /\ Γ' ⊢ M' ▹ M' : A'
t1 : A :: Γ ⊢ B : !t%UT
H0 : exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = A :: Γ /\
strip M' = B /\ strip A' = !t%UT /\ Γ' ⊢ M' ▹ M' : A'
============================
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A' = !u%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 2 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
destruct H as (Γa & A' & ? & ? & ? & ? & ?). 6 subgoals, subgoal 1 (ID 506)
Γ : UEM.Env
A : UTM.Term
B : UTM.Term
s : Sorts
t : Sorts
u : Sorts
r : Rel s t u
t0 : Γ ⊢ A : !s%UT
Γa : Env
A' : Term
x : Term
H : strip_env Γa = Γ
H1 : strip A' = A
H2 : strip x = !s%UT
H3 : Γa ⊢ A' ▹ A' : x
t1 : A :: Γ ⊢ B : !t%UT
H0 : exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = A :: Γ /\
strip M' = B /\ strip A' = !t%UT /\ Γ' ⊢ M' ▹ M' : A'
============================
exists (Γ' : Env) (M' A'0 : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A'0 = !u%UT /\ Γ' ⊢ M' ▹ M' : A'0
subgoal 2 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
destruct x; simpl in H2; try discriminate.6 subgoals, subgoal 1 (ID 560)
Γ : UEM.Env
A : UTM.Term
B : UTM.Term
s : Sorts
t : Sorts
u : Sorts
r : Rel s t u
t0 : Γ ⊢ A : !s%UT
Γa : Env
A' : Term
s0 : Sorts
H : strip_env Γa = Γ
H1 : strip A' = A
H2 : !s0%UT = !s%UT
H3 : Γa ⊢ A' ▹ A' : !s0
t1 : A :: Γ ⊢ B : !t%UT
H0 : exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = A :: Γ /\
strip M' = B /\ strip A' = !t%UT /\ Γ' ⊢ M' ▹ M' : A'
============================
exists (Γ' : Env) (M' A'0 : Term),
strip_env Γ' = Γ /\
strip M' = (Π (A), B)%UT /\ strip A'0 = !u%UT /\ Γ' ⊢ M' ▹ M' : A'0
subgoal 2 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
injection H2; intros; subst; clear H2.6 subgoals, subgoal 1 (ID 609)
B : UTM.Term
s : Sorts
t : Sorts
u : Sorts
r : Rel s t u
Γa : Env
A' : Term
H3 : Γa ⊢ A' ▹ A' : !s
t0 : strip_env Γa ⊢ strip A' : !s%UT
t1 : strip A' :: strip_env Γa ⊢ B : !t%UT
H0 : exists (Γ' : Env) (M' A'0 : Term),
strip_env Γ' = strip A' :: strip_env Γa /\
strip M' = B /\ strip A'0 = !t%UT /\ Γ' ⊢ M' ▹ M' : A'0
============================
exists (Γ' : Env) (M' A'0 : Term),
strip_env Γ' = strip_env Γa /\
strip M' = (Π (strip A'), B)%UT /\
strip A'0 = !u%UT /\ Γ' ⊢ M' ▹ M' : A'0
subgoal 2 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
destruct H0 as (Γb & B' & ? & ? & ? & ? & ?). 6 subgoals, subgoal 1 (ID 633)
B : UTM.Term
s : Sorts
t : Sorts
u : Sorts
r : Rel s t u
Γa : Env
A' : Term
H3 : Γa ⊢ A' ▹ A' : !s
t0 : strip_env Γa ⊢ strip A' : !s%UT
t1 : strip A' :: strip_env Γa ⊢ B : !t%UT
Γb : Env
B' : Term
x : Term
H : strip_env Γb = strip A' :: strip_env Γa
H0 : strip B' = B
H1 : strip x = !t%UT
H2 : Γb ⊢ B' ▹ B' : x
============================
exists (Γ' : Env) (M' A'0 : Term),
strip_env Γ' = strip_env Γa /\
strip M' = (Π (strip A'), B)%UT /\
strip A'0 = !u%UT /\ Γ' ⊢ M' ▹ M' : A'0
subgoal 2 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
destruct x; simpl in H1; try discriminate.6 subgoals, subgoal 1 (ID 677)
B : UTM.Term
s : Sorts
t : Sorts
u : Sorts
r : Rel s t u
Γa : Env
A' : Term
H3 : Γa ⊢ A' ▹ A' : !s
t0 : strip_env Γa ⊢ strip A' : !s%UT
t1 : strip A' :: strip_env Γa ⊢ B : !t%UT
Γb : Env
B' : Term
s0 : Sorts
H : strip_env Γb = strip A' :: strip_env Γa
H0 : strip B' = B
H1 : !s0%UT = !t%UT
H2 : Γb ⊢ B' ▹ B' : !s0
============================
exists (Γ' : Env) (M' A'0 : Term),
strip_env Γ' = strip_env Γa /\
strip M' = (Π (strip A'), B)%UT /\
strip A'0 = !u%UT /\ Γ' ⊢ M' ▹ M' : A'0
subgoal 2 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
injection H1; intros; subst; clear H1.6 subgoals, subgoal 1 (ID 717)
s : Sorts
t : Sorts
u : Sorts
r : Rel s t u
Γa : Env
A' : Term
H3 : Γa ⊢ A' ▹ A' : !s
t0 : strip_env Γa ⊢ strip A' : !s%UT
Γb : Env
B' : Term
H : strip_env Γb = strip A' :: strip_env Γa
H2 : Γb ⊢ B' ▹ B' : !t
t1 : strip A' :: strip_env Γa ⊢ strip B' : !t%UT
============================
exists (Γ' : Env) (M' A'0 : Term),
strip_env Γ' = strip_env Γa /\
strip M' = (Π (strip A'), strip B')%UT /\
strip A'0 = !u%UT /\ Γ' ⊢ M' ▹ M' : A'0
subgoal 2 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
exists Γa ; exists (Pi A' B'); exists !u; simpl; intuition. 6 subgoals, subgoal 1 (ID 733)
s : Sorts
t : Sorts
u : Sorts
r : Rel s t u
Γa : Env
A' : Term
H3 : Γa ⊢ A' ▹ A' : !s
t0 : strip_env Γa ⊢ strip A' : !s%UT
Γb : Env
B' : Term
H : strip_env Γb = strip A' :: strip_env Γa
H2 : Γb ⊢ B' ▹ B' : !t
t1 : strip A' :: strip_env Γa ⊢ strip B' : !t%UT
============================
Γa ⊢ Π (A'), B' ▹ Π (A'), B' : !u
subgoal 2 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars:)
econstructor.8 subgoals, subgoal 1 (ID 756)
s : Sorts
t : Sorts
u : Sorts
r : Rel s t u
Γa : Env
A' : Term
H3 : Γa ⊢ A' ▹ A' : !s
t0 : strip_env Γa ⊢ strip A' : !s%UT
Γb : Env
B' : Term
H : strip_env Γb = strip A' :: strip_env Γa
H2 : Γb ⊢ B' ▹ B' : !t
t1 : strip A' :: strip_env Γa ⊢ strip B' : !t%UT
============================
Rel ?754 ?755 u
subgoal 2 (ID 757) is:
Γa ⊢ A' ▹ A' : !?754
subgoal 3 (ID 758) is:
A' :: Γa ⊢ B' ▹ B' : !?755
subgoal 4 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 8 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 open, ?755 open,)
apply r. 7 subgoals, subgoal 1 (ID 757)
s : Sorts
t : Sorts
u : Sorts
r : Rel s t u
Γa : Env
A' : Term
H3 : Γa ⊢ A' ▹ A' : !s
t0 : strip_env Γa ⊢ strip A' : !s%UT
Γb : Env
B' : Term
H : strip_env Γb = strip A' :: strip_env Γa
H2 : Γb ⊢ B' ▹ B' : !t
t1 : strip A' :: strip_env Γa ⊢ strip B' : !t%UT
============================
Γa ⊢ A' ▹ A' : !s
subgoal 2 (ID 758) is:
A' :: Γa ⊢ B' ▹ B' : !t
subgoal 3 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 7 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using ,)
trivial. 6 subgoals, subgoal 1 (ID 758)
s : Sorts
t : Sorts
u : Sorts
r : Rel s t u
Γa : Env
A' : Term
H3 : Γa ⊢ A' ▹ A' : !s
t0 : strip_env Γa ⊢ strip A' : !s%UT
Γb : Env
B' : Term
H : strip_env Γb = strip A' :: strip_env Γa
H2 : Γb ⊢ B' ▹ B' : !t
t1 : strip A' :: strip_env Γa ⊢ strip B' : !t%UT
============================
A' :: Γa ⊢ B' ▹ B' : !t
subgoal 2 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using ,)
eapply ErasedContextSwitch. 8 subgoals, subgoal 1 (ID 772)
s : Sorts
t : Sorts
u : Sorts
r : Rel s t u
Γa : Env
A' : Term
H3 : Γa ⊢ A' ▹ A' : !s
t0 : strip_env Γa ⊢ strip A' : !s%UT
Γb : Env
B' : Term
H : strip_env Γb = strip A' :: strip_env Γa
H2 : Γb ⊢ B' ▹ B' : !t
t1 : strip A' :: strip_env Γa ⊢ strip B' : !t%UT
============================
?771 ⊢ B' ▹ B' : !t
subgoal 2 (ID 773) is:
A' :: Γa ⊣
subgoal 3 (ID 774) is:
strip_env ?771 = strip_env (A' :: Γa)
subgoal 4 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 8 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 open,)
apply H2. 7 subgoals, subgoal 1 (ID 773)
s : Sorts
t : Sorts
u : Sorts
r : Rel s t u
Γa : Env
A' : Term
H3 : Γa ⊢ A' ▹ A' : !s
t0 : strip_env Γa ⊢ strip A' : !s%UT
Γb : Env
B' : Term
H : strip_env Γb = strip A' :: strip_env Γa
H2 : Γb ⊢ B' ▹ B' : !t
t1 : strip A' :: strip_env Γa ⊢ strip B' : !t%UT
============================
A' :: Γa ⊣
subgoal 2 (ID 774) is:
strip_env Γb = strip_env (A' :: Γa)
subgoal 3 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 7 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using ,)
econstructor. 7 subgoals, subgoal 1 (ID 779)
s : Sorts
t : Sorts
u : Sorts
r : Rel s t u
Γa : Env
A' : Term
H3 : Γa ⊢ A' ▹ A' : !s
t0 : strip_env Γa ⊢ strip A' : !s%UT
Γb : Env
B' : Term
H : strip_env Γb = strip A' :: strip_env Γa
H2 : Γb ⊢ B' ▹ B' : !t
t1 : strip A' :: strip_env Γa ⊢ strip B' : !t%UT
============================
Γa ⊢ A' ▹ ?777 : !?778
subgoal 2 (ID 774) is:
strip_env Γb = strip_env (A' :: Γa)
subgoal 3 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 7 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 open, ?778 open,)
eapply H3. 6 subgoals, subgoal 1 (ID 774)
s : Sorts
t : Sorts
u : Sorts
r : Rel s t u
Γa : Env
A' : Term
H3 : Γa ⊢ A' ▹ A' : !s
t0 : strip_env Γa ⊢ strip A' : !s%UT
Γb : Env
B' : Term
H : strip_env Γb = strip A' :: strip_env Γa
H2 : Γb ⊢ B' ▹ B' : !t
t1 : strip A' :: strip_env Γa ⊢ strip B' : !t%UT
============================
strip_env Γb = strip_env (A' :: Γa)
subgoal 2 (ID 58) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using ,)
simpl; trivial.5 subgoals, subgoal 1 (ID 58)
Γ : UEM.Env
A : UTM.Term
B : UTM.Term
M : UTM.Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A : !s1%UT
H : exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = A /\ strip A' = !s1%UT /\ Γ' ⊢ M' ▹ M' : A'
t0 : A :: Γ ⊢ B : !s2%UT
H0 : exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = A :: Γ /\
strip M' = B /\ strip A' = !s2%UT /\ Γ' ⊢ M' ▹ M' : A'
t1 : A :: Γ ⊢ M : B
H1 : exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = A :: Γ /\
strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
============================
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\
strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 2 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using ,)
destruct H as (Γa & Ma & ? & ? & ?& ? & ?). 5 subgoals, subgoal 1 (ID 811)
Γ : UEM.Env
A : UTM.Term
B : UTM.Term
M : UTM.Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A : !s1%UT
Γa : Env
Ma : Term
x : Term
H : strip_env Γa = Γ
H2 : strip Ma = A
H3 : strip x = !s1%UT
H4 : Γa ⊢ Ma ▹ Ma : x
t0 : A :: Γ ⊢ B : !s2%UT
H0 : exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = A :: Γ /\
strip M' = B /\ strip A' = !s2%UT /\ Γ' ⊢ M' ▹ M' : A'
t1 : A :: Γ ⊢ M : B
H1 : exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = A :: Γ /\
strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
============================
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\
strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 2 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using ,)
destruct x; simpl in H3; try discriminate.5 subgoals, subgoal 1 (ID 865)
Γ : UEM.Env
A : UTM.Term
B : UTM.Term
M : UTM.Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A : !s1%UT
Γa : Env
Ma : Term
s : Sorts
H : strip_env Γa = Γ
H2 : strip Ma = A
H3 : !s%UT = !s1%UT
H4 : Γa ⊢ Ma ▹ Ma : !s
t0 : A :: Γ ⊢ B : !s2%UT
H0 : exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = A :: Γ /\
strip M' = B /\ strip A' = !s2%UT /\ Γ' ⊢ M' ▹ M' : A'
t1 : A :: Γ ⊢ M : B
H1 : exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = A :: Γ /\
strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
============================
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = (λ [A], M)%UT /\
strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 2 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using ,)
injection H3; intros; subst; clear H3. 5 subgoals, subgoal 1 (ID 918)
B : UTM.Term
M : UTM.Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t0 : strip Ma :: strip_env Γa ⊢ B : !s2%UT
H0 : exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = strip Ma :: strip_env Γa /\
strip M' = B /\ strip A' = !s2%UT /\ Γ' ⊢ M' ▹ M' : A'
t1 : strip Ma :: strip_env Γa ⊢ M : B
H1 : exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = strip Ma :: strip_env Γa /\
strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
============================
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = strip_env Γa /\
strip M' = (λ [strip Ma], M)%UT /\
strip A' = (Π (strip Ma), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 2 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using ,)
destruct H0 as (Γb & Mb & ? & ? & ? & ? & ?).5 subgoals, subgoal 1 (ID 949)
B : UTM.Term
M : UTM.Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t0 : strip Ma :: strip_env Γa ⊢ B : !s2%UT
Γb : Env
Mb : Term
x : Term
H : strip_env Γb = strip Ma :: strip_env Γa
H0 : strip Mb = B
H2 : strip x = !s2%UT
H3 : Γb ⊢ Mb ▹ Mb : x
t1 : strip Ma :: strip_env Γa ⊢ M : B
H1 : exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = strip Ma :: strip_env Γa /\
strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
============================
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = strip_env Γa /\
strip M' = (λ [strip Ma], M)%UT /\
strip A' = (Π (strip Ma), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 2 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using ,)
destruct x; simpl in H2; try discriminate. 5 subgoals, subgoal 1 (ID 1003)
B : UTM.Term
M : UTM.Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t0 : strip Ma :: strip_env Γa ⊢ B : !s2%UT
Γb : Env
Mb : Term
s : Sorts
H : strip_env Γb = strip Ma :: strip_env Γa
H0 : strip Mb = B
H2 : !s%UT = !s2%UT
H3 : Γb ⊢ Mb ▹ Mb : !s
t1 : strip Ma :: strip_env Γa ⊢ M : B
H1 : exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = strip Ma :: strip_env Γa /\
strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
============================
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = strip_env Γa /\
strip M' = (λ [strip Ma], M)%UT /\
strip A' = (Π (strip Ma), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 2 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using ,)
injection H2; intros; subst; clear H2.5 subgoals, subgoal 1 (ID 1045)
M : UTM.Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
Γb : Env
Mb : Term
H : strip_env Γb = strip Ma :: strip_env Γa
H3 : Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t1 : strip Ma :: strip_env Γa ⊢ M : strip Mb
H1 : exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = strip Ma :: strip_env Γa /\
strip M' = M /\ strip A' = strip Mb /\ Γ' ⊢ M' ▹ M' : A'
============================
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = strip_env Γa /\
strip M' = (λ [strip Ma], M)%UT /\
strip A' = (Π (strip Ma), strip Mb)%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 2 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using ,)
destruct H1 as (Γm & M' & B' & ? & ?& ? &?). 5 subgoals, subgoal 1 (ID 1069)
M : UTM.Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
Γb : Env
Mb : Term
H : strip_env Γb = strip Ma :: strip_env Γa
H3 : Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t1 : strip Ma :: strip_env Γa ⊢ M : strip Mb
Γm : Env
M' : Term
B' : Term
H0 : strip_env Γm = strip Ma :: strip_env Γa
H1 : strip M' = M
H2 : strip B' = strip Mb
H5 : Γm ⊢ M' ▹ M' : B'
============================
exists (Γ' : Env) (M'0 A' : Term),
strip_env Γ' = strip_env Γa /\
strip M'0 = (λ [strip Ma], M)%UT /\
strip A' = (Π (strip Ma), strip Mb)%UT /\ Γ' ⊢ M'0 ▹ M'0 : A'
subgoal 2 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using ,)
destruct Γb; simpl in H. 6 subgoals, subgoal 1 (ID 1088)
M : UTM.Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
Mb : Term
H : nil = strip Ma :: strip_env Γa
H3 : nil ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t1 : strip Ma :: strip_env Γa ⊢ M : strip Mb
Γm : Env
M' : Term
B' : Term
H0 : strip_env Γm = strip Ma :: strip_env Γa
H1 : strip M' = M
H2 : strip B' = strip Mb
H5 : Γm ⊢ M' ▹ M' : B'
============================
exists (Γ' : Env) (M'0 A' : Term),
strip_env Γ' = strip_env Γa /\
strip M'0 = (λ [strip Ma], M)%UT /\
strip A' = (Π (strip Ma), strip Mb)%UT /\ Γ' ⊢ M'0 ▹ M'0 : A'
subgoal 2 (ID 1089) is:
exists (Γ' : Env) (M'0 A' : Term),
strip_env Γ' = strip_env Γa /\
strip M'0 = (λ [strip Ma], M)%UT /\
strip A' = (Π (strip Ma), strip Mb)%UT /\ Γ' ⊢ M'0 ▹ M'0 : A'
subgoal 3 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using ,)
discriminate.5 subgoals, subgoal 1 (ID 1089)
M : UTM.Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H : strip t2 :: strip_env Γb = strip Ma :: strip_env Γa
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t1 : strip Ma :: strip_env Γa ⊢ M : strip Mb
Γm : Env
M' : Term
B' : Term
H0 : strip_env Γm = strip Ma :: strip_env Γa
H1 : strip M' = M
H2 : strip B' = strip Mb
H5 : Γm ⊢ M' ▹ M' : B'
============================
exists (Γ' : Env) (M'0 A' : Term),
strip_env Γ' = strip_env Γa /\
strip M'0 = (λ [strip Ma], M)%UT /\
strip A' = (Π (strip Ma), strip Mb)%UT /\ Γ' ⊢ M'0 ▹ M'0 : A'
subgoal 2 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using ,)
injection H; intros; subst; clear H. 5 subgoals, subgoal 1 (ID 1110)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
Γm : Env
M' : Term
B' : Term
H0 : strip_env Γm = strip Ma :: strip_env Γa
H2 : strip B' = strip Mb
H5 : Γm ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
============================
exists (Γ' : Env) (M'0 A' : Term),
strip_env Γ' = strip_env Γa /\
strip M'0 = (λ [strip Ma], strip M')%UT /\
strip A' = (Π (strip Ma), strip Mb)%UT /\ Γ' ⊢ M'0 ▹ M'0 : A'
subgoal 2 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using ,)
destruct Γm; simpl in H0. 6 subgoals, subgoal 1 (ID 1129)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
M' : Term
B' : Term
H0 : nil = strip Ma :: strip_env Γa
H2 : strip B' = strip Mb
H5 : nil ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
============================
exists (Γ' : Env) (M'0 A' : Term),
strip_env Γ' = strip_env Γa /\
strip M'0 = (λ [strip Ma], strip M')%UT /\
strip A' = (Π (strip Ma), strip Mb)%UT /\ Γ' ⊢ M'0 ▹ M'0 : A'
subgoal 2 (ID 1130) is:
exists (Γ' : Env) (M'0 A' : Term),
strip_env Γ' = strip_env Γa /\
strip M'0 = (λ [strip Ma], strip M')%UT /\
strip A' = (Π (strip Ma), strip Mb)%UT /\ Γ' ⊢ M'0 ▹ M'0 : A'
subgoal 3 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using ,)
discriminate.5 subgoals, subgoal 1 (ID 1130)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t3 : Term
Γm : list Term
M' : Term
B' : Term
H0 : strip t3 :: strip_env Γm = strip Ma :: strip_env Γa
H2 : strip B' = strip Mb
H5 : t3 :: Γm ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
============================
exists (Γ' : Env) (M'0 A' : Term),
strip_env Γ' = strip_env Γa /\
strip M'0 = (λ [strip Ma], strip M')%UT /\
strip A' = (Π (strip Ma), strip Mb)%UT /\ Γ' ⊢ M'0 ▹ M'0 : A'
subgoal 2 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using ,)
injection H0; intros; subst; clear H0.5 subgoals, subgoal 1 (ID 1146)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t3 : Term
Γm : list Term
M' : Term
B' : Term
H2 : strip B' = strip Mb
H5 : t3 :: Γm ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
============================
exists (Γ' : Env) (M'0 A' : Term),
strip_env Γ' = strip_env Γa /\
strip M'0 = (λ [strip Ma], strip M')%UT /\
strip A' = (Π (strip Ma), strip Mb)%UT /\ Γ' ⊢ M'0 ▹ M'0 : A'
subgoal 2 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using ,)
exists Γa; exists (La Ma M'); exists (Pi Ma Mb); simpl; intuition. 5 subgoals, subgoal 1 (ID 1162)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t3 : Term
Γm : list Term
M' : Term
B' : Term
H2 : strip B' = strip Mb
H5 : t3 :: Γm ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
============================
Γa ⊢ λ [Ma], M' ▹ λ [Ma], M' : Π (Ma), Mb
subgoal 2 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using ,)
econstructor.8 subgoals, subgoal 1 (ID 1198)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t3 : Term
Γm : list Term
M' : Term
B' : Term
H2 : strip B' = strip Mb
H5 : t3 :: Γm ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
============================
Rel ?1195 ?1196 ?1197
subgoal 2 (ID 1199) is:
Γa ⊢ Ma ▹ Ma : !?1195
subgoal 3 (ID 1200) is:
Ma :: Γa ⊢ Mb ▹ Mb : !?1196
subgoal 4 (ID 1201) is:
Ma :: Γa ⊢ M' ▹ M' : Mb
subgoal 5 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 8 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 open, ?1196 open, ?1197 open,)
apply r. 7 subgoals, subgoal 1 (ID 1199)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t3 : Term
Γm : list Term
M' : Term
B' : Term
H2 : strip B' = strip Mb
H5 : t3 :: Γm ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
============================
Γa ⊢ Ma ▹ Ma : !s1
subgoal 2 (ID 1200) is:
Ma :: Γa ⊢ Mb ▹ Mb : !s2
subgoal 3 (ID 1201) is:
Ma :: Γa ⊢ M' ▹ M' : Mb
subgoal 4 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 7 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using ,)
trivial. 6 subgoals, subgoal 1 (ID 1200)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t3 : Term
Γm : list Term
M' : Term
B' : Term
H2 : strip B' = strip Mb
H5 : t3 :: Γm ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
============================
Ma :: Γa ⊢ Mb ▹ Mb : !s2
subgoal 2 (ID 1201) is:
Ma :: Γa ⊢ M' ▹ M' : Mb
subgoal 3 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using ,)
eapply ErasedContextSwitch. 8 subgoals, subgoal 1 (ID 1215)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t3 : Term
Γm : list Term
M' : Term
B' : Term
H2 : strip B' = strip Mb
H5 : t3 :: Γm ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
============================
?1214 ⊢ Mb ▹ Mb : !s2
subgoal 2 (ID 1216) is:
Ma :: Γa ⊣
subgoal 3 (ID 1217) is:
strip_env ?1214 = strip_env (Ma :: Γa)
subgoal 4 (ID 1201) is:
Ma :: Γa ⊢ M' ▹ M' : Mb
subgoal 5 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 8 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 open,)
apply H3. 7 subgoals, subgoal 1 (ID 1216)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t3 : Term
Γm : list Term
M' : Term
B' : Term
H2 : strip B' = strip Mb
H5 : t3 :: Γm ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
============================
Ma :: Γa ⊣
subgoal 2 (ID 1217) is:
strip_env (t2 :: Γb) = strip_env (Ma :: Γa)
subgoal 3 (ID 1201) is:
Ma :: Γa ⊢ M' ▹ M' : Mb
subgoal 4 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 7 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using ,)
econstructor. 7 subgoals, subgoal 1 (ID 1222)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t3 : Term
Γm : list Term
M' : Term
B' : Term
H2 : strip B' = strip Mb
H5 : t3 :: Γm ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
============================
Γa ⊢ Ma ▹ ?1220 : !?1221
subgoal 2 (ID 1217) is:
strip_env (t2 :: Γb) = strip_env (Ma :: Γa)
subgoal 3 (ID 1201) is:
Ma :: Γa ⊢ M' ▹ M' : Mb
subgoal 4 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 7 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 open, ?1221 open,)
apply H4. 6 subgoals, subgoal 1 (ID 1217)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t3 : Term
Γm : list Term
M' : Term
B' : Term
H2 : strip B' = strip Mb
H5 : t3 :: Γm ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
============================
strip_env (t2 :: Γb) = strip_env (Ma :: Γa)
subgoal 2 (ID 1201) is:
Ma :: Γa ⊢ M' ▹ M' : Mb
subgoal 3 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using ,)
simpl. 6 subgoals, subgoal 1 (ID 1223)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t3 : Term
Γm : list Term
M' : Term
B' : Term
H2 : strip B' = strip Mb
H5 : t3 :: Γm ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
============================
strip t2 :: strip_env Γb = strip Ma :: strip_env Γa
subgoal 2 (ID 1201) is:
Ma :: Γa ⊢ M' ▹ M' : Mb
subgoal 3 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using ,)
rewrite H6. 6 subgoals, subgoal 1 (ID 1224)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t3 : Term
Γm : list Term
M' : Term
B' : Term
H2 : strip B' = strip Mb
H5 : t3 :: Γm ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
============================
strip t2 :: strip_env Γa = strip Ma :: strip_env Γa
subgoal 2 (ID 1201) is:
Ma :: Γa ⊢ M' ▹ M' : Mb
subgoal 3 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using ,)
rewrite H7. 6 subgoals, subgoal 1 (ID 1225)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t3 : Term
Γm : list Term
M' : Term
B' : Term
H2 : strip B' = strip Mb
H5 : t3 :: Γm ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
============================
strip Ma :: strip_env Γa = strip Ma :: strip_env Γa
subgoal 2 (ID 1201) is:
Ma :: Γa ⊢ M' ▹ M' : Mb
subgoal 3 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using ,)
trivial.5 subgoals, subgoal 1 (ID 1201)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t3 : Term
Γm : list Term
M' : Term
B' : Term
H2 : strip B' = strip Mb
H5 : t3 :: Γm ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
============================
Ma :: Γa ⊢ M' ▹ M' : Mb
subgoal 2 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using ,)
destruct (typ_wf (t3 :: Γm) M' M' B' H5). 6 subgoals, subgoal 1 (ID 1235)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t3 : Term
Γm : list Term
M' : Term
B' : Term
H2 : strip B' = strip Mb
H5 : t3 :: Γm ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
H0 : exists s : Sorts, B' = !s
============================
Ma :: Γa ⊢ M' ▹ M' : Mb
subgoal 2 (ID 1236) is:
Ma :: Γa ⊢ M' ▹ M' : Mb
subgoal 3 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using ,)
destruct H0; subst. 6 subgoals, subgoal 1 (ID 1246)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t3 : Term
Γm : list Term
M' : Term
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
x : Sorts
H2 : strip !x = strip Mb
H5 : t3 :: Γm ⊢ M' ▹ M' : !x
============================
Ma :: Γa ⊢ M' ▹ M' : Mb
subgoal 2 (ID 1236) is:
Ma :: Γa ⊢ M' ▹ M' : Mb
subgoal 3 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using ,)
simpl in H2; destruct Mb; try discriminate.6 subgoals, subgoal 1 (ID 1279)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
s : Sorts
H3 : t2 :: Γb ⊢ !s ▹ !s : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip !s : !s2%UT
t3 : Term
Γm : list Term
M' : Term
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip !s
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
x : Sorts
H2 : !x%UT = strip !s
H5 : t3 :: Γm ⊢ M' ▹ M' : !x
============================
Ma :: Γa ⊢ M' ▹ M' : !s
subgoal 2 (ID 1236) is:
Ma :: Γa ⊢ M' ▹ M' : Mb
subgoal 3 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using ,)
simpl in H2. 6 subgoals, subgoal 1 (ID 1340)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
s : Sorts
H3 : t2 :: Γb ⊢ !s ▹ !s : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip !s : !s2%UT
t3 : Term
Γm : list Term
M' : Term
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip !s
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
x : Sorts
H2 : !x%UT = !s%UT
H5 : t3 :: Γm ⊢ M' ▹ M' : !x
============================
Ma :: Γa ⊢ M' ▹ M' : !s
subgoal 2 (ID 1236) is:
Ma :: Γa ⊢ M' ▹ M' : Mb
subgoal 3 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using ,)
injection H2; intros; subst; clear H2. 6 subgoals, subgoal 1 (ID 1352)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
s : Sorts
H3 : t2 :: Γb ⊢ !s ▹ !s : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip !s : !s2%UT
t3 : Term
Γm : list Term
M' : Term
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip !s
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
H5 : t3 :: Γm ⊢ M' ▹ M' : !s
============================
Ma :: Γa ⊢ M' ▹ M' : !s
subgoal 2 (ID 1236) is:
Ma :: Γa ⊢ M' ▹ M' : Mb
subgoal 3 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using ,)
eapply ErasedContextSwitch. 8 subgoals, subgoal 1 (ID 1366)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
s : Sorts
H3 : t2 :: Γb ⊢ !s ▹ !s : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip !s : !s2%UT
t3 : Term
Γm : list Term
M' : Term
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip !s
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
H5 : t3 :: Γm ⊢ M' ▹ M' : !s
============================
?1365 ⊢ M' ▹ M' : !s
subgoal 2 (ID 1367) is:
Ma :: Γa ⊣
subgoal 3 (ID 1368) is:
strip_env ?1365 = strip_env (Ma :: Γa)
subgoal 4 (ID 1236) is:
Ma :: Γa ⊢ M' ▹ M' : Mb
subgoal 5 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 8 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 open,)
apply H5. 7 subgoals, subgoal 1 (ID 1367)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
s : Sorts
H3 : t2 :: Γb ⊢ !s ▹ !s : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip !s : !s2%UT
t3 : Term
Γm : list Term
M' : Term
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip !s
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
H5 : t3 :: Γm ⊢ M' ▹ M' : !s
============================
Ma :: Γa ⊣
subgoal 2 (ID 1368) is:
strip_env (t3 :: Γm) = strip_env (Ma :: Γa)
subgoal 3 (ID 1236) is:
Ma :: Γa ⊢ M' ▹ M' : Mb
subgoal 4 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 7 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using ,)
econstructor. 7 subgoals, subgoal 1 (ID 1373)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
s : Sorts
H3 : t2 :: Γb ⊢ !s ▹ !s : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip !s : !s2%UT
t3 : Term
Γm : list Term
M' : Term
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip !s
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
H5 : t3 :: Γm ⊢ M' ▹ M' : !s
============================
Γa ⊢ Ma ▹ ?1371 : !?1372
subgoal 2 (ID 1368) is:
strip_env (t3 :: Γm) = strip_env (Ma :: Γa)
subgoal 3 (ID 1236) is:
Ma :: Γa ⊢ M' ▹ M' : Mb
subgoal 4 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 7 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 open, ?1372 open,)
apply H4.6 subgoals, subgoal 1 (ID 1368)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
s : Sorts
H3 : t2 :: Γb ⊢ !s ▹ !s : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip !s : !s2%UT
t3 : Term
Γm : list Term
M' : Term
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip !s
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
H5 : t3 :: Γm ⊢ M' ▹ M' : !s
============================
strip_env (t3 :: Γm) = strip_env (Ma :: Γa)
subgoal 2 (ID 1236) is:
Ma :: Γa ⊢ M' ▹ M' : Mb
subgoal 3 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using ,)
simpl. 6 subgoals, subgoal 1 (ID 1374)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
s : Sorts
H3 : t2 :: Γb ⊢ !s ▹ !s : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip !s : !s2%UT
t3 : Term
Γm : list Term
M' : Term
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip !s
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
H5 : t3 :: Γm ⊢ M' ▹ M' : !s
============================
strip t3 :: strip_env Γm = strip Ma :: strip_env Γa
subgoal 2 (ID 1236) is:
Ma :: Γa ⊢ M' ▹ M' : Mb
subgoal 3 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using ,)
rewrite H1; rewrite H; trivial. 5 subgoals, subgoal 1 (ID 1236)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t3 : Term
Γm : list Term
M' : Term
B' : Term
H2 : strip B' = strip Mb
H5 : t3 :: Γm ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
H0 : exists s : Sorts, t3 :: Γm ⊢ B' ▹ B' : !s
============================
Ma :: Γa ⊢ M' ▹ M' : Mb
subgoal 2 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using ,)
destruct H0 as ( x & ?).5 subgoals, subgoal 1 (ID 1380)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t3 : Term
Γm : list Term
M' : Term
B' : Term
H2 : strip B' = strip Mb
H5 : t3 :: Γm ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
x : Sorts
H0 : t3 :: Γm ⊢ B' ▹ B' : !x
============================
Ma :: Γa ⊢ M' ▹ M' : Mb
subgoal 2 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using ,)
eapply ErasedContextSwitch. 7 subgoals, subgoal 1 (ID 1394)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t3 : Term
Γm : list Term
M' : Term
B' : Term
H2 : strip B' = strip Mb
H5 : t3 :: Γm ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
x : Sorts
H0 : t3 :: Γm ⊢ B' ▹ B' : !x
============================
?1393 ⊢ M' ▹ M' : Mb
subgoal 2 (ID 1395) is:
Ma :: Γa ⊣
subgoal 3 (ID 1396) is:
strip_env ?1393 = strip_env (Ma :: Γa)
subgoal 4 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 7 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 open,)
apply typ_pcompat with B'. 8 subgoals, subgoal 1 (ID 1397)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t3 : Term
Γm : list Term
M' : Term
B' : Term
H2 : strip B' = strip Mb
H5 : t3 :: Γm ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
x : Sorts
H0 : t3 :: Γm ⊢ B' ▹ B' : !x
============================
?1393 ⊢ M' ▹ M' : B'
subgoal 2 (ID 1398) is:
?1393 ⊢ B' ≡' Mb
subgoal 3 (ID 1395) is:
Ma :: Γa ⊣
subgoal 4 (ID 1396) is:
strip_env ?1393 = strip_env (Ma :: Γa)
subgoal 5 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 8 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 open,)
apply H5. 7 subgoals, subgoal 1 (ID 1398)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t3 : Term
Γm : list Term
M' : Term
B' : Term
H2 : strip B' = strip Mb
H5 : t3 :: Γm ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
x : Sorts
H0 : t3 :: Γm ⊢ B' ▹ B' : !x
============================
t3 :: Γm ⊢ B' ≡' Mb
subgoal 2 (ID 1395) is:
Ma :: Γa ⊣
subgoal 3 (ID 1396) is:
strip_env (t3 :: Γm) = strip_env (Ma :: Γa)
subgoal 4 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 7 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using ,)
eapply ErasedTypeConversion. 9 subgoals, subgoal 1 (ID 1401)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t3 : Term
Γm : list Term
M' : Term
B' : Term
H2 : strip B' = strip Mb
H5 : t3 :: Γm ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
x : Sorts
H0 : t3 :: Γm ⊢ B' ▹ B' : !x
============================
strip B' = strip Mb
subgoal 2 (ID 1402) is:
t3 :: Γm ⊢ B' ▹ B' : !?1399
subgoal 3 (ID 1403) is:
t3 :: Γm ⊢ Mb ▹ Mb : !?1400
subgoal 4 (ID 1395) is:
Ma :: Γa ⊣
subgoal 5 (ID 1396) is:
strip_env (t3 :: Γm) = strip_env (Ma :: Γa)
subgoal 6 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 8 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 9 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 open, ?1400 open,)
trivial. 8 subgoals, subgoal 1 (ID 1402)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t3 : Term
Γm : list Term
M' : Term
B' : Term
H2 : strip B' = strip Mb
H5 : t3 :: Γm ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
x : Sorts
H0 : t3 :: Γm ⊢ B' ▹ B' : !x
============================
t3 :: Γm ⊢ B' ▹ B' : !?1399
subgoal 2 (ID 1403) is:
t3 :: Γm ⊢ Mb ▹ Mb : !?1400
subgoal 3 (ID 1395) is:
Ma :: Γa ⊣
subgoal 4 (ID 1396) is:
strip_env (t3 :: Γm) = strip_env (Ma :: Γa)
subgoal 5 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 8 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 open, ?1400 open,)
apply H0.7 subgoals, subgoal 1 (ID 1403)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t3 : Term
Γm : list Term
M' : Term
B' : Term
H2 : strip B' = strip Mb
H5 : t3 :: Γm ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
x : Sorts
H0 : t3 :: Γm ⊢ B' ▹ B' : !x
============================
t3 :: Γm ⊢ Mb ▹ Mb : !?1400
subgoal 2 (ID 1395) is:
Ma :: Γa ⊣
subgoal 3 (ID 1396) is:
strip_env (t3 :: Γm) = strip_env (Ma :: Γa)
subgoal 4 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 7 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 open,)
eapply ErasedContextSwitch. 9 subgoals, subgoal 1 (ID 1417)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t3 : Term
Γm : list Term
M' : Term
B' : Term
H2 : strip B' = strip Mb
H5 : t3 :: Γm ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
x : Sorts
H0 : t3 :: Γm ⊢ B' ▹ B' : !x
============================
?1416 ⊢ Mb ▹ Mb : !?1400
subgoal 2 (ID 1418) is:
t3 :: Γm ⊣
subgoal 3 (ID 1419) is:
strip_env ?1416 = strip_env (t3 :: Γm)
subgoal 4 (ID 1395) is:
Ma :: Γa ⊣
subgoal 5 (ID 1396) is:
strip_env (t3 :: Γm) = strip_env (Ma :: Γa)
subgoal 6 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 8 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 9 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 open, ?1412 using ?1416 , ?1416 open,)
apply H3. 8 subgoals, subgoal 1 (ID 1418)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t3 : Term
Γm : list Term
M' : Term
B' : Term
H2 : strip B' = strip Mb
H5 : t3 :: Γm ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
x : Sorts
H0 : t3 :: Γm ⊢ B' ▹ B' : !x
============================
t3 :: Γm ⊣
subgoal 2 (ID 1419) is:
strip_env (t2 :: Γb) = strip_env (t3 :: Γm)
subgoal 3 (ID 1395) is:
Ma :: Γa ⊣
subgoal 4 (ID 1396) is:
strip_env (t3 :: Γm) = strip_env (Ma :: Γa)
subgoal 5 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 8 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using ,)
apply wf_from_typ in H0; trivial. 7 subgoals, subgoal 1 (ID 1419)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t3 : Term
Γm : list Term
M' : Term
B' : Term
H2 : strip B' = strip Mb
H5 : t3 :: Γm ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
x : Sorts
H0 : t3 :: Γm ⊢ B' ▹ B' : !x
============================
strip_env (t2 :: Γb) = strip_env (t3 :: Γm)
subgoal 2 (ID 1395) is:
Ma :: Γa ⊣
subgoal 3 (ID 1396) is:
strip_env (t3 :: Γm) = strip_env (Ma :: Γa)
subgoal 4 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 7 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using ,)
simpl. 7 subgoals, subgoal 1 (ID 1422)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t3 : Term
Γm : list Term
M' : Term
B' : Term
H2 : strip B' = strip Mb
H5 : t3 :: Γm ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
x : Sorts
H0 : t3 :: Γm ⊢ B' ▹ B' : !x
============================
strip t2 :: strip_env Γb = strip t3 :: strip_env Γm
subgoal 2 (ID 1395) is:
Ma :: Γa ⊣
subgoal 3 (ID 1396) is:
strip_env (t3 :: Γm) = strip_env (Ma :: Γa)
subgoal 4 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 7 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using ,)
rewrite H7; rewrite H1; rewrite H6; rewrite H; trivial.6 subgoals, subgoal 1 (ID 1395)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t3 : Term
Γm : list Term
M' : Term
B' : Term
H2 : strip B' = strip Mb
H5 : t3 :: Γm ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
x : Sorts
H0 : t3 :: Γm ⊢ B' ▹ B' : !x
============================
Ma :: Γa ⊣
subgoal 2 (ID 1396) is:
strip_env (t3 :: Γm) = strip_env (Ma :: Γa)
subgoal 3 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using ,)
econstructor. 6 subgoals, subgoal 1 (ID 1431)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t3 : Term
Γm : list Term
M' : Term
B' : Term
H2 : strip B' = strip Mb
H5 : t3 :: Γm ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
x : Sorts
H0 : t3 :: Γm ⊢ B' ▹ B' : !x
============================
Γa ⊢ Ma ▹ ?1429 : !?1430
subgoal 2 (ID 1396) is:
strip_env (t3 :: Γm) = strip_env (Ma :: Γa)
subgoal 3 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 open, ?1430 open,)
apply H4. 5 subgoals, subgoal 1 (ID 1396)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t3 : Term
Γm : list Term
M' : Term
B' : Term
H2 : strip B' = strip Mb
H5 : t3 :: Γm ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
x : Sorts
H0 : t3 :: Γm ⊢ B' ▹ B' : !x
============================
strip_env (t3 :: Γm) = strip_env (Ma :: Γa)
subgoal 2 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using ,)
simpl. 5 subgoals, subgoal 1 (ID 1432)
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
Γa : Env
Ma : Term
H4 : Γa ⊢ Ma ▹ Ma : !s1
t : strip_env Γa ⊢ strip Ma : !s1%UT
t2 : Term
Γb : list Term
Mb : Term
H3 : t2 :: Γb ⊢ Mb ▹ Mb : !s2
t0 : strip Ma :: strip_env Γa ⊢ strip Mb : !s2%UT
t3 : Term
Γm : list Term
M' : Term
B' : Term
H2 : strip B' = strip Mb
H5 : t3 :: Γm ⊢ M' ▹ M' : B'
H6 : strip_env Γb = strip_env Γa
H7 : strip t2 = strip Ma
t1 : strip Ma :: strip_env Γa ⊢ strip M' : strip Mb
H : strip_env Γm = strip_env Γa
H1 : strip t3 = strip Ma
x : Sorts
H0 : t3 :: Γm ⊢ B' ▹ B' : !x
============================
strip t3 :: strip_env Γm = strip Ma :: strip_env Γa
subgoal 2 (ID 67) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using ,)
rewrite H1; rewrite H; trivial.4 subgoals, subgoal 1 (ID 67)
Γ : UEM.Env
M : UTM.Term
N : UTM.Term
A : UTM.Term
B : UTM.Term
t : Γ ⊢ M : (Π (A), B)%UT
H : exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M /\ strip A' = (Π (A), B)%UT /\ Γ' ⊢ M' ▹ M' : A'
t0 : Γ ⊢ N : A
H0 : exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = N /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
============================
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 2 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using ,)
destruct H as (Γm & Mm & Tm & ? & ? & ? &?). 4 subgoals, subgoal 1 (ID 1465)
Γ : UEM.Env
M : UTM.Term
N : UTM.Term
A : UTM.Term
B : UTM.Term
t : Γ ⊢ M : (Π (A), B)%UT
Γm : Env
Mm : Term
Tm : Term
H : strip_env Γm = Γ
H1 : strip Mm = M
H2 : strip Tm = (Π (A), B)%UT
H3 : Γm ⊢ Mm ▹ Mm : Tm
t0 : Γ ⊢ N : A
H0 : exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = N /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
============================
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 2 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using ,)
destruct Tm; simpl in *; try discriminate.4 subgoals, subgoal 1 (ID 1585)
Γ : UEM.Env
M : UTM.Term
N : UTM.Term
A : UTM.Term
B : UTM.Term
t : Γ ⊢ M : (Π (A), B)%UT
Γm : Env
Mm : Term
Tm1 : Term
Tm2 : Term
H : strip_env Γm = Γ
H1 : strip Mm = M
H2 : (Π (strip Tm1), strip Tm2)%UT = (Π (A), B)%UT
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1), Tm2
t0 : Γ ⊢ N : A
H0 : exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = N /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
============================
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = M · N /\ strip A' = (B [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 2 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using ,)
injection H2; intros; subst; clear H2. 4 subgoals, subgoal 1 (ID 1659)
N : UTM.Term
Γm : Env
Mm : Term
Tm1 : Term
Tm2 : Term
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1), Tm2
t0 : strip_env Γm ⊢ N : strip Tm1
H0 : exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = strip_env Γm /\
strip M' = N /\ strip A' = strip Tm1 /\ Γ' ⊢ M' ▹ M' : A'
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1), strip Tm2)%UT
============================
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = strip_env Γm /\
strip M' = strip Mm · N /\
strip A' = ((strip Tm2) [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 2 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using ,)
destruct H0 as (Γn & Mn & Tn &? & ? & ?& ?).4 subgoals, subgoal 1 (ID 1690)
N : UTM.Term
Γm : Env
Mm : Term
Tm1 : Term
Tm2 : Term
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1), Tm2
t0 : strip_env Γm ⊢ N : strip Tm1
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
H0 : strip Mn = N
H1 : strip Tn = strip Tm1
H2 : Γn ⊢ Mn ▹ Mn : Tn
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1), strip Tm2)%UT
============================
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = strip_env Γm /\
strip M' = strip Mm · N /\
strip A' = ((strip Tm2) [ ← N])%UT /\ Γ' ⊢ M' ▹ M' : A'
subgoal 2 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using ,)
exists Γm; exists (App Mm Tm1 Tm2 Mn); exists (Tm2 [ ← Mn]); intuition.6 subgoals, subgoal 1 (ID 1701)
N : UTM.Term
Γm : Env
Mm : Term
Tm1 : Term
Tm2 : Term
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1), Tm2
t0 : strip_env Γm ⊢ N : strip Tm1
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
H0 : strip Mn = N
H1 : strip Tn = strip Tm1
H2 : Γn ⊢ Mn ▹ Mn : Tn
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1), strip Tm2)%UT
============================
strip (Mm ·( Tm1, Tm2)Mn) = strip Mm · N
subgoal 2 (ID 1704) is:
strip Tm2 [ ← Mn] = ((strip Tm2) [ ← N])%UT
subgoal 3 (ID 1705) is:
Γm ⊢ Mm ·( Tm1, Tm2)Mn ▹ Mm ·( Tm1, Tm2)Mn : Tm2 [ ← Mn]
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using ,)
subst. 6 subgoals, subgoal 1 (ID 1765)
Γm : Env
Mm : Term
Tm1 : Term
Tm2 : Term
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1), Tm2
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
H1 : strip Tn = strip Tm1
H2 : Γn ⊢ Mn ▹ Mn : Tn
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1), strip Tm2)%UT
t0 : strip_env Γm ⊢ strip Mn : strip Tm1
============================
strip (Mm ·( Tm1, Tm2)Mn) = strip Mm · strip Mn
subgoal 2 (ID 1704) is:
strip Tm2 [ ← Mn] = ((strip Tm2) [ ← N])%UT
subgoal 3 (ID 1705) is:
Γm ⊢ Mm ·( Tm1, Tm2)Mn ▹ Mm ·( Tm1, Tm2)Mn : Tm2 [ ← Mn]
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using ,)
simpl. 6 subgoals, subgoal 1 (ID 1766)
Γm : Env
Mm : Term
Tm1 : Term
Tm2 : Term
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1), Tm2
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
H1 : strip Tn = strip Tm1
H2 : Γn ⊢ Mn ▹ Mn : Tn
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1), strip Tm2)%UT
t0 : strip_env Γm ⊢ strip Mn : strip Tm1
============================
strip Mm · strip Mn = strip Mm · strip Mn
subgoal 2 (ID 1704) is:
strip Tm2 [ ← Mn] = ((strip Tm2) [ ← N])%UT
subgoal 3 (ID 1705) is:
Γm ⊢ Mm ·( Tm1, Tm2)Mn ▹ Mm ·( Tm1, Tm2)Mn : Tm2 [ ← Mn]
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using ,)
trivial. 5 subgoals, subgoal 1 (ID 1704)
N : UTM.Term
Γm : Env
Mm : Term
Tm1 : Term
Tm2 : Term
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1), Tm2
t0 : strip_env Γm ⊢ N : strip Tm1
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
H0 : strip Mn = N
H1 : strip Tn = strip Tm1
H2 : Γn ⊢ Mn ▹ Mn : Tn
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1), strip Tm2)%UT
============================
strip Tm2 [ ← Mn] = ((strip Tm2) [ ← N])%UT
subgoal 2 (ID 1705) is:
Γm ⊢ Mm ·( Tm1, Tm2)Mn ▹ Mm ·( Tm1, Tm2)Mn : Tm2 [ ← Mn]
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using ,)
rewrite strip_subst. 5 subgoals, subgoal 1 (ID 1767)
N : UTM.Term
Γm : Env
Mm : Term
Tm1 : Term
Tm2 : Term
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1), Tm2
t0 : strip_env Γm ⊢ N : strip Tm1
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
H0 : strip Mn = N
H1 : strip Tn = strip Tm1
H2 : Γn ⊢ Mn ▹ Mn : Tn
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1), strip Tm2)%UT
============================
((strip Tm2) [ ← strip Mn])%UT = ((strip Tm2) [ ← N])%UT
subgoal 2 (ID 1705) is:
Γm ⊢ Mm ·( Tm1, Tm2)Mn ▹ Mm ·( Tm1, Tm2)Mn : Tm2 [ ← Mn]
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using ,)
subst. 5 subgoals, subgoal 1 (ID 1772)
Γm : Env
Mm : Term
Tm1 : Term
Tm2 : Term
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1), Tm2
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
H1 : strip Tn = strip Tm1
H2 : Γn ⊢ Mn ▹ Mn : Tn
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1), strip Tm2)%UT
t0 : strip_env Γm ⊢ strip Mn : strip Tm1
============================
((strip Tm2) [ ← strip Mn])%UT = ((strip Tm2) [ ← strip Mn])%UT
subgoal 2 (ID 1705) is:
Γm ⊢ Mm ·( Tm1, Tm2)Mn ▹ Mm ·( Tm1, Tm2)Mn : Tm2 [ ← Mn]
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using ,)
trivial.4 subgoals, subgoal 1 (ID 1705)
N : UTM.Term
Γm : Env
Mm : Term
Tm1 : Term
Tm2 : Term
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1), Tm2
t0 : strip_env Γm ⊢ N : strip Tm1
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
H0 : strip Mn = N
H1 : strip Tn = strip Tm1
H2 : Γn ⊢ Mn ▹ Mn : Tn
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1), strip Tm2)%UT
============================
Γm ⊢ Mm ·( Tm1, Tm2)Mn ▹ Mm ·( Tm1, Tm2)Mn : Tm2 [ ← Mn]
subgoal 2 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using ,)
assert (exists u, Γm ⊢ Π (Tm1),Tm2 ▹ Π(Tm1),Tm2 : !u). 5 subgoals, subgoal 1 (ID 1774)
N : UTM.Term
Γm : Env
Mm : Term
Tm1 : Term
Tm2 : Term
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1), Tm2
t0 : strip_env Γm ⊢ N : strip Tm1
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
H0 : strip Mn = N
H1 : strip Tn = strip Tm1
H2 : Γn ⊢ Mn ▹ Mn : Tn
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1), strip Tm2)%UT
============================
exists u : Sorts, Γm ⊢ Π (Tm1), Tm2 ▹ Π (Tm1), Tm2 : !u
subgoal 2 (ID 1775) is:
Γm ⊢ Mm ·( Tm1, Tm2)Mn ▹ Mm ·( Tm1, Tm2)Mn : Tm2 [ ← Mn]
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using ,)
apply typ_wf in H3.5 subgoals, subgoal 1 (ID 1777)
N : UTM.Term
Γm : Env
Mm : Term
Tm1 : Term
Tm2 : Term
H3 : (exists s : Sorts, Π (Tm1), Tm2 = !s) \/
(exists s : Sorts, Γm ⊢ Π (Tm1), Tm2 ▹ Π (Tm1), Tm2 : !s)
t0 : strip_env Γm ⊢ N : strip Tm1
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
H0 : strip Mn = N
H1 : strip Tn = strip Tm1
H2 : Γn ⊢ Mn ▹ Mn : Tn
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1), strip Tm2)%UT
============================
exists u : Sorts, Γm ⊢ Π (Tm1), Tm2 ▹ Π (Tm1), Tm2 : !u
subgoal 2 (ID 1775) is:
Γm ⊢ Mm ·( Tm1, Tm2)Mn ▹ Mm ·( Tm1, Tm2)Mn : Tm2 [ ← Mn]
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using ,)
destruct H3. 6 subgoals, subgoal 1 (ID 1783)
N : UTM.Term
Γm : Env
Mm : Term
Tm1 : Term
Tm2 : Term
H3 : exists s : Sorts, Π (Tm1), Tm2 = !s
t0 : strip_env Γm ⊢ N : strip Tm1
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
H0 : strip Mn = N
H1 : strip Tn = strip Tm1
H2 : Γn ⊢ Mn ▹ Mn : Tn
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1), strip Tm2)%UT
============================
exists u : Sorts, Γm ⊢ Π (Tm1), Tm2 ▹ Π (Tm1), Tm2 : !u
subgoal 2 (ID 1785) is:
exists u : Sorts, Γm ⊢ Π (Tm1), Tm2 ▹ Π (Tm1), Tm2 : !u
subgoal 3 (ID 1775) is:
Γm ⊢ Mm ·( Tm1, Tm2)Mn ▹ Mm ·( Tm1, Tm2)Mn : Tm2 [ ← Mn]
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using ,)
destruct H3 ; discriminate. 5 subgoals, subgoal 1 (ID 1785)
N : UTM.Term
Γm : Env
Mm : Term
Tm1 : Term
Tm2 : Term
H3 : exists s : Sorts, Γm ⊢ Π (Tm1), Tm2 ▹ Π (Tm1), Tm2 : !s
t0 : strip_env Γm ⊢ N : strip Tm1
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
H0 : strip Mn = N
H1 : strip Tn = strip Tm1
H2 : Γn ⊢ Mn ▹ Mn : Tn
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1), strip Tm2)%UT
============================
exists u : Sorts, Γm ⊢ Π (Tm1), Tm2 ▹ Π (Tm1), Tm2 : !u
subgoal 2 (ID 1775) is:
Γm ⊢ Mm ·( Tm1, Tm2)Mn ▹ Mm ·( Tm1, Tm2)Mn : Tm2 [ ← Mn]
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using ,)
trivial. 4 subgoals, subgoal 1 (ID 1775)
N : UTM.Term
Γm : Env
Mm : Term
Tm1 : Term
Tm2 : Term
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1), Tm2
t0 : strip_env Γm ⊢ N : strip Tm1
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
H0 : strip Mn = N
H1 : strip Tn = strip Tm1
H2 : Γn ⊢ Mn ▹ Mn : Tn
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1), strip Tm2)%UT
H4 : exists u : Sorts, Γm ⊢ Π (Tm1), Tm2 ▹ Π (Tm1), Tm2 : !u
============================
Γm ⊢ Mm ·( Tm1, Tm2)Mn ▹ Mm ·( Tm1, Tm2)Mn : Tm2 [ ← Mn]
subgoal 2 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using ,)
destruct H4 as (u& ?).4 subgoals, subgoal 1 (ID 1800)
N : UTM.Term
Γm : Env
Mm : Term
Tm1 : Term
Tm2 : Term
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1), Tm2
t0 : strip_env Γm ⊢ N : strip Tm1
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
H0 : strip Mn = N
H1 : strip Tn = strip Tm1
H2 : Γn ⊢ Mn ▹ Mn : Tn
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1), strip Tm2)%UT
u : Sorts
H4 : Γm ⊢ Π (Tm1), Tm2 ▹ Π (Tm1), Tm2 : !u
============================
Γm ⊢ Mm ·( Tm1, Tm2)Mn ▹ Mm ·( Tm1, Tm2)Mn : Tm2 [ ← Mn]
subgoal 2 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using ,)
apply pgen_pi in H4 as (Tm1' & Tm2' & s1 & s2 & s3 & h); decompose [and] h; clear h.4 subgoals, subgoal 1 (ID 1844)
N : UTM.Term
Γm : Env
Mm : Term
Tm1 : Term
Tm2 : Term
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1), Tm2
t0 : strip_env Γm ⊢ N : strip Tm1
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
H0 : strip Mn = N
H1 : strip Tn = strip Tm1
H2 : Γn ⊢ Mn ▹ Mn : Tn
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1), strip Tm2)%UT
u : Sorts
Tm1' : Term
Tm2' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
H4 : Rel s1 s2 s3
H6 : Γm ⊢ Tm1 ▹ Tm1' : !s1
H5 : Tm1 :: Γm ⊢ Tm2 ▹ Tm2' : !s2
H7 : Π (Tm1), Tm2 = Π (Tm1'), Tm2'
H9 : !u = !s3 \/ Γm ⊢ !u ≡' !s3
============================
Γm ⊢ Mm ·( Tm1, Tm2)Mn ▹ Mm ·( Tm1, Tm2)Mn : Tm2 [ ← Mn]
subgoal 2 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using ,)
injection H7; intros; subst; clear H7.4 subgoals, subgoal 1 (ID 1879)
Γm : Env
Mm : Term
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
H2 : Γn ⊢ Mn ▹ Mn : Tn
u : Sorts
Tm1' : Term
Tm2' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
H4 : Rel s1 s2 s3
H9 : !u = !s3 \/ Γm ⊢ !u ≡' !s3
H1 : strip Tn = strip Tm1'
H6 : Γm ⊢ Tm1' ▹ Tm1' : !s1
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1'), Tm2'
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1'), strip Tm2')%UT
H5 : Tm1' :: Γm ⊢ Tm2' ▹ Tm2' : !s2
t0 : strip_env Γm ⊢ strip Mn : strip Tm1'
============================
Γm ⊢ Mm ·( Tm1', Tm2')Mn ▹ Mm ·( Tm1', Tm2')Mn : Tm2' [ ← Mn]
subgoal 2 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using ,)
econstructor. 8 subgoals, subgoal 1 (ID 1888)
Γm : Env
Mm : Term
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
H2 : Γn ⊢ Mn ▹ Mn : Tn
u : Sorts
Tm1' : Term
Tm2' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
H4 : Rel s1 s2 s3
H9 : !u = !s3 \/ Γm ⊢ !u ≡' !s3
H1 : strip Tn = strip Tm1'
H6 : Γm ⊢ Tm1' ▹ Tm1' : !s1
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1'), Tm2'
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1'), strip Tm2')%UT
H5 : Tm1' :: Γm ⊢ Tm2' ▹ Tm2' : !s2
t0 : strip_env Γm ⊢ strip Mn : strip Tm1'
============================
Rel ?1885 ?1886 ?1887
subgoal 2 (ID 1889) is:
Γm ⊢ Tm1' ▹ Tm1' : !?1885
subgoal 3 (ID 1890) is:
Tm1' :: Γm ⊢ Tm2' ▹ Tm2' : !?1886
subgoal 4 (ID 1891) is:
Γm ⊢ Mm ▹ Mm : Π (Tm1'), Tm2'
subgoal 5 (ID 1892) is:
Γm ⊢ Mn ▹ Mn : Tm1'
subgoal 6 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 7 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 8 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 open, ?1886 open, ?1887 open,)
apply H4. 7 subgoals, subgoal 1 (ID 1889)
Γm : Env
Mm : Term
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
H2 : Γn ⊢ Mn ▹ Mn : Tn
u : Sorts
Tm1' : Term
Tm2' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
H4 : Rel s1 s2 s3
H9 : !u = !s3 \/ Γm ⊢ !u ≡' !s3
H1 : strip Tn = strip Tm1'
H6 : Γm ⊢ Tm1' ▹ Tm1' : !s1
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1'), Tm2'
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1'), strip Tm2')%UT
H5 : Tm1' :: Γm ⊢ Tm2' ▹ Tm2' : !s2
t0 : strip_env Γm ⊢ strip Mn : strip Tm1'
============================
Γm ⊢ Tm1' ▹ Tm1' : !s1
subgoal 2 (ID 1890) is:
Tm1' :: Γm ⊢ Tm2' ▹ Tm2' : !s2
subgoal 3 (ID 1891) is:
Γm ⊢ Mm ▹ Mm : Π (Tm1'), Tm2'
subgoal 4 (ID 1892) is:
Γm ⊢ Mn ▹ Mn : Tm1'
subgoal 5 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 7 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using ,)
apply H6. 6 subgoals, subgoal 1 (ID 1890)
Γm : Env
Mm : Term
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
H2 : Γn ⊢ Mn ▹ Mn : Tn
u : Sorts
Tm1' : Term
Tm2' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
H4 : Rel s1 s2 s3
H9 : !u = !s3 \/ Γm ⊢ !u ≡' !s3
H1 : strip Tn = strip Tm1'
H6 : Γm ⊢ Tm1' ▹ Tm1' : !s1
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1'), Tm2'
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1'), strip Tm2')%UT
H5 : Tm1' :: Γm ⊢ Tm2' ▹ Tm2' : !s2
t0 : strip_env Γm ⊢ strip Mn : strip Tm1'
============================
Tm1' :: Γm ⊢ Tm2' ▹ Tm2' : !s2
subgoal 2 (ID 1891) is:
Γm ⊢ Mm ▹ Mm : Π (Tm1'), Tm2'
subgoal 3 (ID 1892) is:
Γm ⊢ Mn ▹ Mn : Tm1'
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using ,)
trivial. 5 subgoals, subgoal 1 (ID 1891)
Γm : Env
Mm : Term
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
H2 : Γn ⊢ Mn ▹ Mn : Tn
u : Sorts
Tm1' : Term
Tm2' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
H4 : Rel s1 s2 s3
H9 : !u = !s3 \/ Γm ⊢ !u ≡' !s3
H1 : strip Tn = strip Tm1'
H6 : Γm ⊢ Tm1' ▹ Tm1' : !s1
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1'), Tm2'
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1'), strip Tm2')%UT
H5 : Tm1' :: Γm ⊢ Tm2' ▹ Tm2' : !s2
t0 : strip_env Γm ⊢ strip Mn : strip Tm1'
============================
Γm ⊢ Mm ▹ Mm : Π (Tm1'), Tm2'
subgoal 2 (ID 1892) is:
Γm ⊢ Mn ▹ Mn : Tm1'
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using ,)
trivial. 4 subgoals, subgoal 1 (ID 1892)
Γm : Env
Mm : Term
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
H2 : Γn ⊢ Mn ▹ Mn : Tn
u : Sorts
Tm1' : Term
Tm2' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
H4 : Rel s1 s2 s3
H9 : !u = !s3 \/ Γm ⊢ !u ≡' !s3
H1 : strip Tn = strip Tm1'
H6 : Γm ⊢ Tm1' ▹ Tm1' : !s1
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1'), Tm2'
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1'), strip Tm2')%UT
H5 : Tm1' :: Γm ⊢ Tm2' ▹ Tm2' : !s2
t0 : strip_env Γm ⊢ strip Mn : strip Tm1'
============================
Γm ⊢ Mn ▹ Mn : Tm1'
subgoal 2 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using ,)
apply typ_pcompat with Tn. 5 subgoals, subgoal 1 (ID 1893)
Γm : Env
Mm : Term
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
H2 : Γn ⊢ Mn ▹ Mn : Tn
u : Sorts
Tm1' : Term
Tm2' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
H4 : Rel s1 s2 s3
H9 : !u = !s3 \/ Γm ⊢ !u ≡' !s3
H1 : strip Tn = strip Tm1'
H6 : Γm ⊢ Tm1' ▹ Tm1' : !s1
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1'), Tm2'
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1'), strip Tm2')%UT
H5 : Tm1' :: Γm ⊢ Tm2' ▹ Tm2' : !s2
t0 : strip_env Γm ⊢ strip Mn : strip Tm1'
============================
Γm ⊢ Mn ▹ Mn : Tn
subgoal 2 (ID 1894) is:
Γm ⊢ Tn ≡' Tm1'
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using ,)
eapply ErasedContextSwitch.7 subgoals, subgoal 1 (ID 1908)
Γm : Env
Mm : Term
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
H2 : Γn ⊢ Mn ▹ Mn : Tn
u : Sorts
Tm1' : Term
Tm2' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
H4 : Rel s1 s2 s3
H9 : !u = !s3 \/ Γm ⊢ !u ≡' !s3
H1 : strip Tn = strip Tm1'
H6 : Γm ⊢ Tm1' ▹ Tm1' : !s1
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1'), Tm2'
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1'), strip Tm2')%UT
H5 : Tm1' :: Γm ⊢ Tm2' ▹ Tm2' : !s2
t0 : strip_env Γm ⊢ strip Mn : strip Tm1'
============================
?1907 ⊢ Mn ▹ Mn : Tn
subgoal 2 (ID 1909) is:
Γm ⊣
subgoal 3 (ID 1910) is:
strip_env ?1907 = strip_env Γm
subgoal 4 (ID 1894) is:
Γm ⊢ Tn ≡' Tm1'
subgoal 5 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 7 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 open,)
apply H2. 6 subgoals, subgoal 1 (ID 1909)
Γm : Env
Mm : Term
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
H2 : Γn ⊢ Mn ▹ Mn : Tn
u : Sorts
Tm1' : Term
Tm2' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
H4 : Rel s1 s2 s3
H9 : !u = !s3 \/ Γm ⊢ !u ≡' !s3
H1 : strip Tn = strip Tm1'
H6 : Γm ⊢ Tm1' ▹ Tm1' : !s1
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1'), Tm2'
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1'), strip Tm2')%UT
H5 : Tm1' :: Γm ⊢ Tm2' ▹ Tm2' : !s2
t0 : strip_env Γm ⊢ strip Mn : strip Tm1'
============================
Γm ⊣
subgoal 2 (ID 1910) is:
strip_env Γn = strip_env Γm
subgoal 3 (ID 1894) is:
Γm ⊢ Tn ≡' Tm1'
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using ,)
apply wf_from_typ in H6; trivial. 5 subgoals, subgoal 1 (ID 1910)
Γm : Env
Mm : Term
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
H2 : Γn ⊢ Mn ▹ Mn : Tn
u : Sorts
Tm1' : Term
Tm2' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
H4 : Rel s1 s2 s3
H9 : !u = !s3 \/ Γm ⊢ !u ≡' !s3
H1 : strip Tn = strip Tm1'
H6 : Γm ⊢ Tm1' ▹ Tm1' : !s1
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1'), Tm2'
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1'), strip Tm2')%UT
H5 : Tm1' :: Γm ⊢ Tm2' ▹ Tm2' : !s2
t0 : strip_env Γm ⊢ strip Mn : strip Tm1'
============================
strip_env Γn = strip_env Γm
subgoal 2 (ID 1894) is:
Γm ⊢ Tn ≡' Tm1'
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using ,)
trivial. 4 subgoals, subgoal 1 (ID 1894)
Γm : Env
Mm : Term
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
H2 : Γn ⊢ Mn ▹ Mn : Tn
u : Sorts
Tm1' : Term
Tm2' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
H4 : Rel s1 s2 s3
H9 : !u = !s3 \/ Γm ⊢ !u ≡' !s3
H1 : strip Tn = strip Tm1'
H6 : Γm ⊢ Tm1' ▹ Tm1' : !s1
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1'), Tm2'
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1'), strip Tm2')%UT
H5 : Tm1' :: Γm ⊢ Tm2' ▹ Tm2' : !s2
t0 : strip_env Γm ⊢ strip Mn : strip Tm1'
============================
Γm ⊢ Tn ≡' Tm1'
subgoal 2 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using ,)
apply typ_wf in H2. 4 subgoals, subgoal 1 (ID 1914)
Γm : Env
Mm : Term
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
H2 : (exists s : Sorts, Tn = !s) \/ (exists s : Sorts, Γn ⊢ Tn ▹ Tn : !s)
u : Sorts
Tm1' : Term
Tm2' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
H4 : Rel s1 s2 s3
H9 : !u = !s3 \/ Γm ⊢ !u ≡' !s3
H1 : strip Tn = strip Tm1'
H6 : Γm ⊢ Tm1' ▹ Tm1' : !s1
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1'), Tm2'
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1'), strip Tm2')%UT
H5 : Tm1' :: Γm ⊢ Tm2' ▹ Tm2' : !s2
t0 : strip_env Γm ⊢ strip Mn : strip Tm1'
============================
Γm ⊢ Tn ≡' Tm1'
subgoal 2 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using ,)
destruct H2 as [ [ s ?] | [s ?] ].5 subgoals, subgoal 1 (ID 1925)
Γm : Env
Mm : Term
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
s : Sorts
H0 : Tn = !s
u : Sorts
Tm1' : Term
Tm2' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
H4 : Rel s1 s2 s3
H9 : !u = !s3 \/ Γm ⊢ !u ≡' !s3
H1 : strip Tn = strip Tm1'
H6 : Γm ⊢ Tm1' ▹ Tm1' : !s1
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1'), Tm2'
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1'), strip Tm2')%UT
H5 : Tm1' :: Γm ⊢ Tm2' ▹ Tm2' : !s2
t0 : strip_env Γm ⊢ strip Mn : strip Tm1'
============================
Γm ⊢ Tn ≡' Tm1'
subgoal 2 (ID 1932) is:
Γm ⊢ Tn ≡' Tm1'
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using ,)
subst. 5 subgoals, subgoal 1 (ID 1937)
Γm : Env
Mm : Term
Γn : Env
Mn : Term
H : strip_env Γn = strip_env Γm
s : Sorts
u : Sorts
Tm1' : Term
Tm2' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
H4 : Rel s1 s2 s3
H9 : !u = !s3 \/ Γm ⊢ !u ≡' !s3
H6 : Γm ⊢ Tm1' ▹ Tm1' : !s1
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1'), Tm2'
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1'), strip Tm2')%UT
H5 : Tm1' :: Γm ⊢ Tm2' ▹ Tm2' : !s2
t0 : strip_env Γm ⊢ strip Mn : strip Tm1'
H1 : strip !s = strip Tm1'
============================
Γm ⊢ !s ≡' Tm1'
subgoal 2 (ID 1932) is:
Γm ⊢ Tn ≡' Tm1'
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using ,)
destruct Tm1'; simpl in H1; try discriminate. 5 subgoals, subgoal 1 (ID 2001)
Γm : Env
Mm : Term
Γn : Env
Mn : Term
H : strip_env Γn = strip_env Γm
s : Sorts
u : Sorts
s0 : Sorts
Tm2' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
H4 : Rel s1 s2 s3
H9 : !u = !s3 \/ Γm ⊢ !u ≡' !s3
H6 : Γm ⊢ !s0 ▹ !s0 : !s1
H3 : Γm ⊢ Mm ▹ Mm : Π (!s0), Tm2'
t : strip_env Γm ⊢ strip Mm : (Π (strip !s0%Typ), strip Tm2')%UT
H5 : !s0 :: Γm ⊢ Tm2' ▹ Tm2' : !s2
t0 : strip_env Γm ⊢ strip Mn : strip !s0
H1 : !s%UT = !s0%UT
============================
Γm ⊢ !s ≡' !s0
subgoal 2 (ID 1932) is:
Γm ⊢ Tn ≡' Tm1'
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using ,)
injection H1; intros; subst; clear H1.5 subgoals, subgoal 1 (ID 2035)
Γm : Env
Mm : Term
Γn : Env
Mn : Term
H : strip_env Γn = strip_env Γm
u : Sorts
s0 : Sorts
Tm2' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
H4 : Rel s1 s2 s3
H9 : !u = !s3 \/ Γm ⊢ !u ≡' !s3
H6 : Γm ⊢ !s0 ▹ !s0 : !s1
H3 : Γm ⊢ Mm ▹ Mm : Π (!s0), Tm2'
t : strip_env Γm ⊢ strip Mm : (Π (strip !s0%Typ), strip Tm2')%UT
H5 : !s0 :: Γm ⊢ Tm2' ▹ Tm2' : !s2
t0 : strip_env Γm ⊢ strip Mn : strip !s0
============================
Γm ⊢ !s0 ≡' !s0
subgoal 2 (ID 1932) is:
Γm ⊢ Tn ≡' Tm1'
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using ,)
econstructor. 5 subgoals, subgoal 1 (ID 2038)
Γm : Env
Mm : Term
Γn : Env
Mn : Term
H : strip_env Γn = strip_env Γm
u : Sorts
s0 : Sorts
Tm2' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
H4 : Rel s1 s2 s3
H9 : !u = !s3 \/ Γm ⊢ !u ≡' !s3
H6 : Γm ⊢ !s0 ▹ !s0 : !s1
H3 : Γm ⊢ Mm ▹ Mm : Π (!s0), Tm2'
t : strip_env Γm ⊢ strip Mm : (Π (strip !s0%Typ), strip Tm2')%UT
H5 : !s0 :: Γm ⊢ Tm2' ▹ Tm2' : !s2
t0 : strip_env Γm ⊢ strip Mn : strip !s0
============================
Γm ⊢ !s0 ▹ !s0 : !?2037
subgoal 2 (ID 1932) is:
Γm ⊢ Tn ≡' Tm1'
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 open,)
apply H6. 4 subgoals, subgoal 1 (ID 1932)
Γm : Env
Mm : Term
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
s : Sorts
H0 : Γn ⊢ Tn ▹ Tn : !s
u : Sorts
Tm1' : Term
Tm2' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
H4 : Rel s1 s2 s3
H9 : !u = !s3 \/ Γm ⊢ !u ≡' !s3
H1 : strip Tn = strip Tm1'
H6 : Γm ⊢ Tm1' ▹ Tm1' : !s1
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1'), Tm2'
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1'), strip Tm2')%UT
H5 : Tm1' :: Γm ⊢ Tm2' ▹ Tm2' : !s2
t0 : strip_env Γm ⊢ strip Mn : strip Tm1'
============================
Γm ⊢ Tn ≡' Tm1'
subgoal 2 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using ,)
eapply ErasedTypeConversion. 6 subgoals, subgoal 1 (ID 2041)
Γm : Env
Mm : Term
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
s : Sorts
H0 : Γn ⊢ Tn ▹ Tn : !s
u : Sorts
Tm1' : Term
Tm2' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
H4 : Rel s1 s2 s3
H9 : !u = !s3 \/ Γm ⊢ !u ≡' !s3
H1 : strip Tn = strip Tm1'
H6 : Γm ⊢ Tm1' ▹ Tm1' : !s1
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1'), Tm2'
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1'), strip Tm2')%UT
H5 : Tm1' :: Γm ⊢ Tm2' ▹ Tm2' : !s2
t0 : strip_env Γm ⊢ strip Mn : strip Tm1'
============================
strip Tn = strip Tm1'
subgoal 2 (ID 2042) is:
Γm ⊢ Tn ▹ Tn : !?2039
subgoal 3 (ID 2043) is:
Γm ⊢ Tm1' ▹ Tm1' : !?2040
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 open, ?2040 open,)
trivial. 5 subgoals, subgoal 1 (ID 2042)
Γm : Env
Mm : Term
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
s : Sorts
H0 : Γn ⊢ Tn ▹ Tn : !s
u : Sorts
Tm1' : Term
Tm2' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
H4 : Rel s1 s2 s3
H9 : !u = !s3 \/ Γm ⊢ !u ≡' !s3
H1 : strip Tn = strip Tm1'
H6 : Γm ⊢ Tm1' ▹ Tm1' : !s1
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1'), Tm2'
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1'), strip Tm2')%UT
H5 : Tm1' :: Γm ⊢ Tm2' ▹ Tm2' : !s2
t0 : strip_env Γm ⊢ strip Mn : strip Tm1'
============================
Γm ⊢ Tn ▹ Tn : !?2039
subgoal 2 (ID 2043) is:
Γm ⊢ Tm1' ▹ Tm1' : !?2040
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 open, ?2040 open,)
eapply ErasedContextSwitch. 7 subgoals, subgoal 1 (ID 2057)
Γm : Env
Mm : Term
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
s : Sorts
H0 : Γn ⊢ Tn ▹ Tn : !s
u : Sorts
Tm1' : Term
Tm2' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
H4 : Rel s1 s2 s3
H9 : !u = !s3 \/ Γm ⊢ !u ≡' !s3
H1 : strip Tn = strip Tm1'
H6 : Γm ⊢ Tm1' ▹ Tm1' : !s1
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1'), Tm2'
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1'), strip Tm2')%UT
H5 : Tm1' :: Γm ⊢ Tm2' ▹ Tm2' : !s2
t0 : strip_env Γm ⊢ strip Mn : strip Tm1'
============================
?2056 ⊢ Tn ▹ Tn : !?2039
subgoal 2 (ID 2058) is:
Γm ⊣
subgoal 3 (ID 2059) is:
strip_env ?2056 = strip_env Γm
subgoal 4 (ID 2043) is:
Γm ⊢ Tm1' ▹ Tm1' : !?2040
subgoal 5 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 6 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 7 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 open, ?2040 open, ?2052 using ?2056 , ?2056 open,)
apply H0. 6 subgoals, subgoal 1 (ID 2058)
Γm : Env
Mm : Term
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
s : Sorts
H0 : Γn ⊢ Tn ▹ Tn : !s
u : Sorts
Tm1' : Term
Tm2' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
H4 : Rel s1 s2 s3
H9 : !u = !s3 \/ Γm ⊢ !u ≡' !s3
H1 : strip Tn = strip Tm1'
H6 : Γm ⊢ Tm1' ▹ Tm1' : !s1
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1'), Tm2'
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1'), strip Tm2')%UT
H5 : Tm1' :: Γm ⊢ Tm2' ▹ Tm2' : !s2
t0 : strip_env Γm ⊢ strip Mn : strip Tm1'
============================
Γm ⊣
subgoal 2 (ID 2059) is:
strip_env Γn = strip_env Γm
subgoal 3 (ID 2043) is:
Γm ⊢ Tm1' ▹ Tm1' : !?2040
subgoal 4 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 open, ?2052 using ?2056 , ?2056 using ,)
apply wf_from_typ in H6; trivial.5 subgoals, subgoal 1 (ID 2059)
Γm : Env
Mm : Term
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
s : Sorts
H0 : Γn ⊢ Tn ▹ Tn : !s
u : Sorts
Tm1' : Term
Tm2' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
H4 : Rel s1 s2 s3
H9 : !u = !s3 \/ Γm ⊢ !u ≡' !s3
H1 : strip Tn = strip Tm1'
H6 : Γm ⊢ Tm1' ▹ Tm1' : !s1
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1'), Tm2'
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1'), strip Tm2')%UT
H5 : Tm1' :: Γm ⊢ Tm2' ▹ Tm2' : !s2
t0 : strip_env Γm ⊢ strip Mn : strip Tm1'
============================
strip_env Γn = strip_env Γm
subgoal 2 (ID 2043) is:
Γm ⊢ Tm1' ▹ Tm1' : !?2040
subgoal 3 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 open, ?2052 using ?2056 , ?2056 using ,)
trivial. 4 subgoals, subgoal 1 (ID 2043)
Γm : Env
Mm : Term
Γn : Env
Mn : Term
Tn : Term
H : strip_env Γn = strip_env Γm
s : Sorts
H0 : Γn ⊢ Tn ▹ Tn : !s
u : Sorts
Tm1' : Term
Tm2' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
H4 : Rel s1 s2 s3
H9 : !u = !s3 \/ Γm ⊢ !u ≡' !s3
H1 : strip Tn = strip Tm1'
H6 : Γm ⊢ Tm1' ▹ Tm1' : !s1
H3 : Γm ⊢ Mm ▹ Mm : Π (Tm1'), Tm2'
t : strip_env Γm ⊢ strip Mm : (Π (strip Tm1'), strip Tm2')%UT
H5 : Tm1' :: Γm ⊢ Tm2' ▹ Tm2' : !s2
t0 : strip_env Γm ⊢ strip Mn : strip Tm1'
============================
Γm ⊢ Tm1' ▹ Tm1' : !?2040
subgoal 2 (ID 77) is:
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 open, ?2052 using ?2056 , ?2056 using ,)
apply H6.3 subgoals, subgoal 1 (ID 77)
Γ : UEM.Env
M : UTM.Term
A : UTM.Term
B : UTM.Term
s : Sorts
b : A ≡ B
t : Γ ⊢ M : A
H : exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = A /\ Γ' ⊢ M' ▹ M' : A'
t0 : Γ ⊢ B : !s%UT
H0 : exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = B /\ strip A' = !s%UT /\ Γ' ⊢ M' ▹ M' : A'
============================
exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\ strip M' = M /\ strip A' = B /\ Γ' ⊢ M' ▹ M' : A'
subgoal 2 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 3 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using ,)
destruct H as (Γ' & M' & A' & ? & ? & ? & ?). 3 subgoals, subgoal 1 (ID 2092)
Γ : UEM.Env
M : UTM.Term
A : UTM.Term
B : UTM.Term
s : Sorts
b : A ≡ B
t : Γ ⊢ M : A
Γ' : Env
M' : Term
A' : Term
H : strip_env Γ' = Γ
H1 : strip M' = M
H2 : strip A' = A
H3 : Γ' ⊢ M' ▹ M' : A'
t0 : Γ ⊢ B : !s%UT
H0 : exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = B /\ strip A' = !s%UT /\ Γ' ⊢ M' ▹ M' : A'
============================
exists (Γ'0 : Env) (M'0 A'0 : Term),
strip_env Γ'0 = Γ /\
strip M'0 = M /\ strip A'0 = B /\ Γ'0 ⊢ M'0 ▹ M'0 : A'0
subgoal 2 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 3 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using ,)
destruct H0 as (Γ2 & B' & Tb & ? & ?& ?& ?).3 subgoals, subgoal 1 (ID 2116)
Γ : UEM.Env
M : UTM.Term
A : UTM.Term
B : UTM.Term
s : Sorts
b : A ≡ B
t : Γ ⊢ M : A
Γ' : Env
M' : Term
A' : Term
H : strip_env Γ' = Γ
H1 : strip M' = M
H2 : strip A' = A
H3 : Γ' ⊢ M' ▹ M' : A'
t0 : Γ ⊢ B : !s%UT
Γ2 : Env
B' : Term
Tb : Term
H0 : strip_env Γ2 = Γ
H4 : strip B' = B
H5 : strip Tb = !s%UT
H6 : Γ2 ⊢ B' ▹ B' : Tb
============================
exists (Γ'0 : Env) (M'0 A'0 : Term),
strip_env Γ'0 = Γ /\
strip M'0 = M /\ strip A'0 = B /\ Γ'0 ⊢ M'0 ▹ M'0 : A'0
subgoal 2 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 3 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using ,)
destruct Tb; simpl in H5; try discriminate. 3 subgoals, subgoal 1 (ID 2160)
Γ : UEM.Env
M : UTM.Term
A : UTM.Term
B : UTM.Term
s : Sorts
b : A ≡ B
t : Γ ⊢ M : A
Γ' : Env
M' : Term
A' : Term
H : strip_env Γ' = Γ
H1 : strip M' = M
H2 : strip A' = A
H3 : Γ' ⊢ M' ▹ M' : A'
t0 : Γ ⊢ B : !s%UT
Γ2 : Env
B' : Term
s0 : Sorts
H0 : strip_env Γ2 = Γ
H4 : strip B' = B
H5 : !s0%UT = !s%UT
H6 : Γ2 ⊢ B' ▹ B' : !s0
============================
exists (Γ'0 : Env) (M'0 A'0 : Term),
strip_env Γ'0 = Γ /\
strip M'0 = M /\ strip A'0 = B /\ Γ'0 ⊢ M'0 ▹ M'0 : A'0
subgoal 2 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 3 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using ,)
injection H5; intros; subst; clear H5.3 subgoals, subgoal 1 (ID 2219)
s : Sorts
Γ' : Env
M' : Term
A' : Term
H3 : Γ' ⊢ M' ▹ M' : A'
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
b : strip A' ≡ strip B'
t : strip_env Γ' ⊢ strip M' : strip A'
============================
exists (Γ'0 : Env) (M'0 A'0 : Term),
strip_env Γ'0 = strip_env Γ' /\
strip M'0 = strip M' /\ strip A'0 = strip B' /\ Γ'0 ⊢ M'0 ▹ M'0 : A'0
subgoal 2 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 3 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using ,)
destruct (typ_wf Γ' M' M' A' H3). 4 subgoals, subgoal 1 (ID 2228)
s : Sorts
Γ' : Env
M' : Term
A' : Term
H3 : Γ' ⊢ M' ▹ M' : A'
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
b : strip A' ≡ strip B'
t : strip_env Γ' ⊢ strip M' : strip A'
H : exists s : Sorts, A' = !s
============================
exists (Γ'0 : Env) (M'0 A'0 : Term),
strip_env Γ'0 = strip_env Γ' /\
strip M'0 = strip M' /\ strip A'0 = strip B' /\ Γ'0 ⊢ M'0 ▹ M'0 : A'0
subgoal 2 (ID 2229) is:
exists (Γ'0 : Env) (M'0 A'0 : Term),
strip_env Γ'0 = strip_env Γ' /\
strip M'0 = strip M' /\ strip A'0 = strip B' /\ Γ'0 ⊢ M'0 ▹ M'0 : A'0
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using ,)
destruct H as (a & ?). 4 subgoals, subgoal 1 (ID 2233)
s : Sorts
Γ' : Env
M' : Term
A' : Term
H3 : Γ' ⊢ M' ▹ M' : A'
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
b : strip A' ≡ strip B'
t : strip_env Γ' ⊢ strip M' : strip A'
a : Sorts
H : A' = !a
============================
exists (Γ'0 : Env) (M'0 A'0 : Term),
strip_env Γ'0 = strip_env Γ' /\
strip M'0 = strip M' /\ strip A'0 = strip B' /\ Γ'0 ⊢ M'0 ▹ M'0 : A'0
subgoal 2 (ID 2229) is:
exists (Γ'0 : Env) (M'0 A'0 : Term),
strip_env Γ'0 = strip_env Γ' /\
strip M'0 = strip M' /\ strip A'0 = strip B' /\ Γ'0 ⊢ M'0 ▹ M'0 : A'0
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using ,)
subst; simpl in b.4 subgoals, subgoal 1 (ID 2241)
s : Sorts
Γ' : Env
M' : Term
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
a : Sorts
H3 : Γ' ⊢ M' ▹ M' : !a
b : !a%UT ≡ strip B'
t : strip_env Γ' ⊢ strip M' : strip !a
============================
exists (Γ'0 : Env) (M'0 A' : Term),
strip_env Γ'0 = strip_env Γ' /\
strip M'0 = strip M' /\ strip A' = strip B' /\ Γ'0 ⊢ M'0 ▹ M'0 : A'
subgoal 2 (ID 2229) is:
exists (Γ'0 : Env) (M'0 A'0 : Term),
strip_env Γ'0 = strip_env Γ' /\
strip M'0 = strip M' /\ strip A'0 = strip B' /\ Γ'0 ⊢ M'0 ▹ M'0 : A'0
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using ,)
apply URM.conv_to_sort in b.4 subgoals, subgoal 1 (ID 2243)
s : Sorts
Γ' : Env
M' : Term
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
a : Sorts
H3 : Γ' ⊢ M' ▹ M' : !a
b : (strip B' →→ !a)%UT
t : strip_env Γ' ⊢ strip M' : strip !a
============================
exists (Γ'0 : Env) (M'0 A' : Term),
strip_env Γ'0 = strip_env Γ' /\
strip M'0 = strip M' /\ strip A' = strip B' /\ Γ'0 ⊢ M'0 ▹ M'0 : A'
subgoal 2 (ID 2229) is:
exists (Γ'0 : Env) (M'0 A'0 : Term),
strip_env Γ'0 = strip_env Γ' /\
strip M'0 = strip M' /\ strip A'0 = strip B' /\ Γ'0 ⊢ M'0 ▹ M'0 : A'0
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using ,)
apply L33' in b. 4 subgoals, subgoal 1 (ID 2245)
s : Sorts
Γ' : Env
M' : Term
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
a : Sorts
H3 : Γ' ⊢ M' ▹ M' : !a
b : exists N : Term, strip N = !a%UT /\ B' →→ N
t : strip_env Γ' ⊢ strip M' : strip !a
============================
exists (Γ'0 : Env) (M'0 A' : Term),
strip_env Γ'0 = strip_env Γ' /\
strip M'0 = strip M' /\ strip A' = strip B' /\ Γ'0 ⊢ M'0 ▹ M'0 : A'
subgoal 2 (ID 2229) is:
exists (Γ'0 : Env) (M'0 A'0 : Term),
strip_env Γ'0 = strip_env Γ' /\
strip M'0 = strip M' /\ strip A'0 = strip B' /\ Γ'0 ⊢ M'0 ▹ M'0 : A'0
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using ,)
destruct b as ( n & ? & ?). 4 subgoals, subgoal 1 (ID 2256)
s : Sorts
Γ' : Env
M' : Term
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
a : Sorts
H3 : Γ' ⊢ M' ▹ M' : !a
n : Term
H : strip n = !a%UT
H1 : B' →→ n
t : strip_env Γ' ⊢ strip M' : strip !a
============================
exists (Γ'0 : Env) (M'0 A' : Term),
strip_env Γ'0 = strip_env Γ' /\
strip M'0 = strip M' /\ strip A' = strip B' /\ Γ'0 ⊢ M'0 ▹ M'0 : A'
subgoal 2 (ID 2229) is:
exists (Γ'0 : Env) (M'0 A'0 : Term),
strip_env Γ'0 = strip_env Γ' /\
strip M'0 = strip M' /\ strip A'0 = strip B' /\ Γ'0 ⊢ M'0 ▹ M'0 : A'0
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using ,)
destruct n; simpl in H; try discriminate.4 subgoals, subgoal 1 (ID 2310)
s : Sorts
Γ' : Env
M' : Term
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
a : Sorts
H3 : Γ' ⊢ M' ▹ M' : !a
s0 : Sorts
H : !s0%UT = !a%UT
H1 : B' →→ !s0
t : strip_env Γ' ⊢ strip M' : strip !a
============================
exists (Γ'0 : Env) (M'0 A' : Term),
strip_env Γ'0 = strip_env Γ' /\
strip M'0 = strip M' /\ strip A' = strip B' /\ Γ'0 ⊢ M'0 ▹ M'0 : A'
subgoal 2 (ID 2229) is:
exists (Γ'0 : Env) (M'0 A'0 : Term),
strip_env Γ'0 = strip_env Γ' /\
strip M'0 = strip M' /\ strip A'0 = strip B' /\ Γ'0 ⊢ M'0 ▹ M'0 : A'0
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using ,)
injection H; intros; subst; clear H.4 subgoals, subgoal 1 (ID 2345)
s : Sorts
Γ' : Env
M' : Term
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
a : Sorts
H3 : Γ' ⊢ M' ▹ M' : !a
t : strip_env Γ' ⊢ strip M' : strip !a
H1 : B' →→ !a
============================
exists (Γ'0 : Env) (M'0 A' : Term),
strip_env Γ'0 = strip_env Γ' /\
strip M'0 = strip M' /\ strip A' = strip B' /\ Γ'0 ⊢ M'0 ▹ M'0 : A'
subgoal 2 (ID 2229) is:
exists (Γ'0 : Env) (M'0 A'0 : Term),
strip_env Γ'0 = strip_env Γ' /\
strip M'0 = strip M' /\ strip A'0 = strip B' /\ Γ'0 ⊢ M'0 ▹ M'0 : A'0
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using ,)
exists Γ'; exists M' ; exists B'; intuition. 4 subgoals, subgoal 1 (ID 2360)
s : Sorts
Γ' : Env
M' : Term
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
a : Sorts
H3 : Γ' ⊢ M' ▹ M' : !a
t : strip_env Γ' ⊢ strip M' : strip !a
H1 : B' →→ !a
============================
Γ' ⊢ M' ▹ M' : B'
subgoal 2 (ID 2229) is:
exists (Γ'0 : Env) (M'0 A'0 : Term),
strip_env Γ'0 = strip_env Γ' /\
strip M'0 = strip M' /\ strip A'0 = strip B' /\ Γ'0 ⊢ M'0 ▹ M'0 : A'0
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using ,)
apply typ_pcompat with !a.5 subgoals, subgoal 1 (ID 2377)
s : Sorts
Γ' : Env
M' : Term
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
a : Sorts
H3 : Γ' ⊢ M' ▹ M' : !a
t : strip_env Γ' ⊢ strip M' : strip !a
H1 : B' →→ !a
============================
Γ' ⊢ M' ▹ M' : !a
subgoal 2 (ID 2378) is:
Γ' ⊢ !a ≡' B'
subgoal 3 (ID 2229) is:
exists (Γ'0 : Env) (M'0 A'0 : Term),
strip_env Γ'0 = strip_env Γ' /\
strip M'0 = strip M' /\ strip A'0 = strip B' /\ Γ'0 ⊢ M'0 ▹ M'0 : A'0
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using ,)
trivial. 4 subgoals, subgoal 1 (ID 2378)
s : Sorts
Γ' : Env
M' : Term
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
a : Sorts
H3 : Γ' ⊢ M' ▹ M' : !a
t : strip_env Γ' ⊢ strip M' : strip !a
H1 : B' →→ !a
============================
Γ' ⊢ !a ≡' B'
subgoal 2 (ID 2229) is:
exists (Γ'0 : Env) (M'0 A'0 : Term),
strip_env Γ'0 = strip_env Γ' /\
strip M'0 = strip M' /\ strip A'0 = strip B' /\ Γ'0 ⊢ M'0 ▹ M'0 : A'0
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using ,)
apply typ_peq_sym. 4 subgoals, subgoal 1 (ID 2379)
s : Sorts
Γ' : Env
M' : Term
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
a : Sorts
H3 : Γ' ⊢ M' ▹ M' : !a
t : strip_env Γ' ⊢ strip M' : strip !a
H1 : B' →→ !a
============================
Γ' ⊢ B' ≡' !a
subgoal 2 (ID 2229) is:
exists (Γ'0 : Env) (M'0 A'0 : Term),
strip_env Γ'0 = strip_env Γ' /\
strip M'0 = strip M' /\ strip A'0 = strip B' /\ Γ'0 ⊢ M'0 ▹ M'0 : A'0
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using ,)
apply reds_to_conv with s.4 subgoals, subgoal 1 (ID 2380)
s : Sorts
Γ' : Env
M' : Term
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
a : Sorts
H3 : Γ' ⊢ M' ▹ M' : !a
t : strip_env Γ' ⊢ strip M' : strip !a
H1 : B' →→ !a
============================
Γ' ⊢ B' ▹▹ !a : !s
subgoal 2 (ID 2229) is:
exists (Γ'0 : Env) (M'0 A'0 : Term),
strip_env Γ'0 = strip_env Γ' /\
strip M'0 = strip M' /\ strip A'0 = strip B' /\ Γ'0 ⊢ M'0 ▹ M'0 : A'0
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using ,)
apply SR_trans'; trivial. 4 subgoals, subgoal 1 (ID 2382)
s : Sorts
Γ' : Env
M' : Term
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
a : Sorts
H3 : Γ' ⊢ M' ▹ M' : !a
t : strip_env Γ' ⊢ strip M' : strip !a
H1 : B' →→ !a
============================
Γ' ⊢ B' ▹ B' : !s
subgoal 2 (ID 2229) is:
exists (Γ'0 : Env) (M'0 A'0 : Term),
strip_env Γ'0 = strip_env Γ' /\
strip M'0 = strip M' /\ strip A'0 = strip B' /\ Γ'0 ⊢ M'0 ▹ M'0 : A'0
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using ,)
eapply ErasedContextSwitch. 6 subgoals, subgoal 1 (ID 2396)
s : Sorts
Γ' : Env
M' : Term
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
a : Sorts
H3 : Γ' ⊢ M' ▹ M' : !a
t : strip_env Γ' ⊢ strip M' : strip !a
H1 : B' →→ !a
============================
?2395 ⊢ B' ▹ B' : !s
subgoal 2 (ID 2397) is:
Γ' ⊣
subgoal 3 (ID 2398) is:
strip_env ?2395 = strip_env Γ'
subgoal 4 (ID 2229) is:
exists (Γ'0 : Env) (M'0 A'0 : Term),
strip_env Γ'0 = strip_env Γ' /\
strip M'0 = strip M' /\ strip A'0 = strip B' /\ Γ'0 ⊢ M'0 ▹ M'0 : A'0
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 open,)
apply H6.5 subgoals, subgoal 1 (ID 2397)
s : Sorts
Γ' : Env
M' : Term
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
a : Sorts
H3 : Γ' ⊢ M' ▹ M' : !a
t : strip_env Γ' ⊢ strip M' : strip !a
H1 : B' →→ !a
============================
Γ' ⊣
subgoal 2 (ID 2398) is:
strip_env Γ2 = strip_env Γ'
subgoal 3 (ID 2229) is:
exists (Γ'0 : Env) (M'0 A'0 : Term),
strip_env Γ'0 = strip_env Γ' /\
strip M'0 = strip M' /\ strip A'0 = strip B' /\ Γ'0 ⊢ M'0 ▹ M'0 : A'0
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using ,)
apply wf_from_typ in H3; trivial. 4 subgoals, subgoal 1 (ID 2398)
s : Sorts
Γ' : Env
M' : Term
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
a : Sorts
H3 : Γ' ⊢ M' ▹ M' : !a
t : strip_env Γ' ⊢ strip M' : strip !a
H1 : B' →→ !a
============================
strip_env Γ2 = strip_env Γ'
subgoal 2 (ID 2229) is:
exists (Γ'0 : Env) (M'0 A'0 : Term),
strip_env Γ'0 = strip_env Γ' /\
strip M'0 = strip M' /\ strip A'0 = strip B' /\ Γ'0 ⊢ M'0 ▹ M'0 : A'0
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using ,)
trivial.3 subgoals, subgoal 1 (ID 2229)
s : Sorts
Γ' : Env
M' : Term
A' : Term
H3 : Γ' ⊢ M' ▹ M' : A'
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
b : strip A' ≡ strip B'
t : strip_env Γ' ⊢ strip M' : strip A'
H : exists s : Sorts, Γ' ⊢ A' ▹ A' : !s
============================
exists (Γ'0 : Env) (M'0 A'0 : Term),
strip_env Γ'0 = strip_env Γ' /\
strip M'0 = strip M' /\ strip A'0 = strip B' /\ Γ'0 ⊢ M'0 ▹ M'0 : A'0
subgoal 2 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 3 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using ,)
destruct H as (sA' & ?). 3 subgoals, subgoal 1 (ID 2404)
s : Sorts
Γ' : Env
M' : Term
A' : Term
H3 : Γ' ⊢ M' ▹ M' : A'
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
b : strip A' ≡ strip B'
t : strip_env Γ' ⊢ strip M' : strip A'
sA' : Sorts
H : Γ' ⊢ A' ▹ A' : !sA'
============================
exists (Γ'0 : Env) (M'0 A'0 : Term),
strip_env Γ'0 = strip_env Γ' /\
strip M'0 = strip M' /\ strip A'0 = strip B' /\ Γ'0 ⊢ M'0 ▹ M'0 : A'0
subgoal 2 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 3 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using ,)
apply URM.Betac_confl in b as (C & ?& ?).3 subgoals, subgoal 1 (ID 2414)
s : Sorts
Γ' : Env
M' : Term
A' : Term
H3 : Γ' ⊢ M' ▹ M' : A'
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
t : strip_env Γ' ⊢ strip M' : strip A'
sA' : Sorts
H : Γ' ⊢ A' ▹ A' : !sA'
C : UTM.Term
H1 : (strip A' →→ C)%UT
H2 : (strip B' →→ C)%UT
============================
exists (Γ'0 : Env) (M'0 A'0 : Term),
strip_env Γ'0 = strip_env Γ' /\
strip M'0 = strip M' /\ strip A'0 = strip B' /\ Γ'0 ⊢ M'0 ▹ M'0 : A'0
subgoal 2 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 3 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using ,)
apply L33' in H1 as (C0 & ? & ?). 3 subgoals, subgoal 1 (ID 2424)
s : Sorts
Γ' : Env
M' : Term
A' : Term
H3 : Γ' ⊢ M' ▹ M' : A'
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
t : strip_env Γ' ⊢ strip M' : strip A'
sA' : Sorts
H : Γ' ⊢ A' ▹ A' : !sA'
C : UTM.Term
H2 : (strip B' →→ C)%UT
C0 : Term
H1 : strip C0 = C
H4 : A' →→ C0
============================
exists (Γ'0 : Env) (M'0 A'0 : Term),
strip_env Γ'0 = strip_env Γ' /\
strip M'0 = strip M' /\ strip A'0 = strip B' /\ Γ'0 ⊢ M'0 ▹ M'0 : A'0
subgoal 2 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 3 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using ,)
apply L33' in H2 as (C1 & ? & ?).3 subgoals, subgoal 1 (ID 2434)
s : Sorts
Γ' : Env
M' : Term
A' : Term
H3 : Γ' ⊢ M' ▹ M' : A'
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
t : strip_env Γ' ⊢ strip M' : strip A'
sA' : Sorts
H : Γ' ⊢ A' ▹ A' : !sA'
C : UTM.Term
C0 : Term
H1 : strip C0 = C
H4 : A' →→ C0
C1 : Term
H2 : strip C1 = C
H5 : B' →→ C1
============================
exists (Γ'0 : Env) (M'0 A'0 : Term),
strip_env Γ'0 = strip_env Γ' /\
strip M'0 = strip M' /\ strip A'0 = strip B' /\ Γ'0 ⊢ M'0 ▹ M'0 : A'0
subgoal 2 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 3 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using ,)
exists Γ'; exists M'; exists B'; intuition. 3 subgoals, subgoal 1 (ID 2449)
s : Sorts
Γ' : Env
M' : Term
A' : Term
H3 : Γ' ⊢ M' ▹ M' : A'
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
t : strip_env Γ' ⊢ strip M' : strip A'
sA' : Sorts
H : Γ' ⊢ A' ▹ A' : !sA'
C : UTM.Term
C0 : Term
H1 : strip C0 = C
H4 : A' →→ C0
C1 : Term
H2 : strip C1 = C
H5 : B' →→ C1
============================
Γ' ⊢ M' ▹ M' : B'
subgoal 2 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 3 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using ,)
eapply typ_pcompat with A'.4 subgoals, subgoal 1 (ID 2474)
s : Sorts
Γ' : Env
M' : Term
A' : Term
H3 : Γ' ⊢ M' ▹ M' : A'
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
t : strip_env Γ' ⊢ strip M' : strip A'
sA' : Sorts
H : Γ' ⊢ A' ▹ A' : !sA'
C : UTM.Term
C0 : Term
H1 : strip C0 = C
H4 : A' →→ C0
C1 : Term
H2 : strip C1 = C
H5 : B' →→ C1
============================
Γ' ⊢ M' ▹ M' : A'
subgoal 2 (ID 2475) is:
Γ' ⊢ A' ≡' B'
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using ,)
trivial. 3 subgoals, subgoal 1 (ID 2475)
s : Sorts
Γ' : Env
M' : Term
A' : Term
H3 : Γ' ⊢ M' ▹ M' : A'
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
t : strip_env Γ' ⊢ strip M' : strip A'
sA' : Sorts
H : Γ' ⊢ A' ▹ A' : !sA'
C : UTM.Term
C0 : Term
H1 : strip C0 = C
H4 : A' →→ C0
C1 : Term
H2 : strip C1 = C
H5 : B' →→ C1
============================
Γ' ⊢ A' ≡' B'
subgoal 2 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 3 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using ,)
assert (Γ' ⊢ A' ▹▹ C0 : !sA'). 4 subgoals, subgoal 1 (ID 2476)
s : Sorts
Γ' : Env
M' : Term
A' : Term
H3 : Γ' ⊢ M' ▹ M' : A'
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
t : strip_env Γ' ⊢ strip M' : strip A'
sA' : Sorts
H : Γ' ⊢ A' ▹ A' : !sA'
C : UTM.Term
C0 : Term
H1 : strip C0 = C
H4 : A' →→ C0
C1 : Term
H2 : strip C1 = C
H5 : B' →→ C1
============================
Γ' ⊢ A' ▹▹ C0 : !sA'
subgoal 2 (ID 2477) is:
Γ' ⊢ A' ≡' B'
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using ,)
apply SR_trans'. 5 subgoals, subgoal 1 (ID 2478)
s : Sorts
Γ' : Env
M' : Term
A' : Term
H3 : Γ' ⊢ M' ▹ M' : A'
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
t : strip_env Γ' ⊢ strip M' : strip A'
sA' : Sorts
H : Γ' ⊢ A' ▹ A' : !sA'
C : UTM.Term
C0 : Term
H1 : strip C0 = C
H4 : A' →→ C0
C1 : Term
H2 : strip C1 = C
H5 : B' →→ C1
============================
A' →→ C0
subgoal 2 (ID 2479) is:
Γ' ⊢ A' ▹ A' : !sA'
subgoal 3 (ID 2477) is:
Γ' ⊢ A' ≡' B'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using ,)
trivial. 4 subgoals, subgoal 1 (ID 2479)
s : Sorts
Γ' : Env
M' : Term
A' : Term
H3 : Γ' ⊢ M' ▹ M' : A'
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
t : strip_env Γ' ⊢ strip M' : strip A'
sA' : Sorts
H : Γ' ⊢ A' ▹ A' : !sA'
C : UTM.Term
C0 : Term
H1 : strip C0 = C
H4 : A' →→ C0
C1 : Term
H2 : strip C1 = C
H5 : B' →→ C1
============================
Γ' ⊢ A' ▹ A' : !sA'
subgoal 2 (ID 2477) is:
Γ' ⊢ A' ≡' B'
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using ,)
trivial.3 subgoals, subgoal 1 (ID 2477)
s : Sorts
Γ' : Env
M' : Term
A' : Term
H3 : Γ' ⊢ M' ▹ M' : A'
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
t : strip_env Γ' ⊢ strip M' : strip A'
sA' : Sorts
H : Γ' ⊢ A' ▹ A' : !sA'
C : UTM.Term
C0 : Term
H1 : strip C0 = C
H4 : A' →→ C0
C1 : Term
H2 : strip C1 = C
H5 : B' →→ C1
H7 : Γ' ⊢ A' ▹▹ C0 : !sA'
============================
Γ' ⊢ A' ≡' B'
subgoal 2 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 3 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using ,)
assert (Γ' ⊢ B' ▹▹ C1 : !s). 4 subgoals, subgoal 1 (ID 2480)
s : Sorts
Γ' : Env
M' : Term
A' : Term
H3 : Γ' ⊢ M' ▹ M' : A'
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
t : strip_env Γ' ⊢ strip M' : strip A'
sA' : Sorts
H : Γ' ⊢ A' ▹ A' : !sA'
C : UTM.Term
C0 : Term
H1 : strip C0 = C
H4 : A' →→ C0
C1 : Term
H2 : strip C1 = C
H5 : B' →→ C1
H7 : Γ' ⊢ A' ▹▹ C0 : !sA'
============================
Γ' ⊢ B' ▹▹ C1 : !s
subgoal 2 (ID 2481) is:
Γ' ⊢ A' ≡' B'
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using ,)
apply SR_trans'. 5 subgoals, subgoal 1 (ID 2482)
s : Sorts
Γ' : Env
M' : Term
A' : Term
H3 : Γ' ⊢ M' ▹ M' : A'
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
t : strip_env Γ' ⊢ strip M' : strip A'
sA' : Sorts
H : Γ' ⊢ A' ▹ A' : !sA'
C : UTM.Term
C0 : Term
H1 : strip C0 = C
H4 : A' →→ C0
C1 : Term
H2 : strip C1 = C
H5 : B' →→ C1
H7 : Γ' ⊢ A' ▹▹ C0 : !sA'
============================
B' →→ C1
subgoal 2 (ID 2483) is:
Γ' ⊢ B' ▹ B' : !s
subgoal 3 (ID 2481) is:
Γ' ⊢ A' ≡' B'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using ,)
trivial. 4 subgoals, subgoal 1 (ID 2483)
s : Sorts
Γ' : Env
M' : Term
A' : Term
H3 : Γ' ⊢ M' ▹ M' : A'
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
t : strip_env Γ' ⊢ strip M' : strip A'
sA' : Sorts
H : Γ' ⊢ A' ▹ A' : !sA'
C : UTM.Term
C0 : Term
H1 : strip C0 = C
H4 : A' →→ C0
C1 : Term
H2 : strip C1 = C
H5 : B' →→ C1
H7 : Γ' ⊢ A' ▹▹ C0 : !sA'
============================
Γ' ⊢ B' ▹ B' : !s
subgoal 2 (ID 2481) is:
Γ' ⊢ A' ≡' B'
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using ,)
eapply ErasedContextSwitch.6 subgoals, subgoal 1 (ID 2497)
s : Sorts
Γ' : Env
M' : Term
A' : Term
H3 : Γ' ⊢ M' ▹ M' : A'
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
t : strip_env Γ' ⊢ strip M' : strip A'
sA' : Sorts
H : Γ' ⊢ A' ▹ A' : !sA'
C : UTM.Term
C0 : Term
H1 : strip C0 = C
H4 : A' →→ C0
C1 : Term
H2 : strip C1 = C
H5 : B' →→ C1
H7 : Γ' ⊢ A' ▹▹ C0 : !sA'
============================
?2496 ⊢ B' ▹ B' : !s
subgoal 2 (ID 2498) is:
Γ' ⊣
subgoal 3 (ID 2499) is:
strip_env ?2496 = strip_env Γ'
subgoal 4 (ID 2481) is:
Γ' ⊢ A' ≡' B'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using , ?2492 using ?2496 , ?2496 open,)
apply H6. 5 subgoals, subgoal 1 (ID 2498)
s : Sorts
Γ' : Env
M' : Term
A' : Term
H3 : Γ' ⊢ M' ▹ M' : A'
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
t : strip_env Γ' ⊢ strip M' : strip A'
sA' : Sorts
H : Γ' ⊢ A' ▹ A' : !sA'
C : UTM.Term
C0 : Term
H1 : strip C0 = C
H4 : A' →→ C0
C1 : Term
H2 : strip C1 = C
H5 : B' →→ C1
H7 : Γ' ⊢ A' ▹▹ C0 : !sA'
============================
Γ' ⊣
subgoal 2 (ID 2499) is:
strip_env Γ2 = strip_env Γ'
subgoal 3 (ID 2481) is:
Γ' ⊢ A' ≡' B'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using , ?2492 using ?2496 , ?2496 using ,)
apply wf_from_typ in H3; trivial. 4 subgoals, subgoal 1 (ID 2499)
s : Sorts
Γ' : Env
M' : Term
A' : Term
H3 : Γ' ⊢ M' ▹ M' : A'
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
t : strip_env Γ' ⊢ strip M' : strip A'
sA' : Sorts
H : Γ' ⊢ A' ▹ A' : !sA'
C : UTM.Term
C0 : Term
H1 : strip C0 = C
H4 : A' →→ C0
C1 : Term
H2 : strip C1 = C
H5 : B' →→ C1
H7 : Γ' ⊢ A' ▹▹ C0 : !sA'
============================
strip_env Γ2 = strip_env Γ'
subgoal 2 (ID 2481) is:
Γ' ⊢ A' ≡' B'
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using , ?2492 using ?2496 , ?2496 using ,)
trivial. 3 subgoals, subgoal 1 (ID 2481)
s : Sorts
Γ' : Env
M' : Term
A' : Term
H3 : Γ' ⊢ M' ▹ M' : A'
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
t : strip_env Γ' ⊢ strip M' : strip A'
sA' : Sorts
H : Γ' ⊢ A' ▹ A' : !sA'
C : UTM.Term
C0 : Term
H1 : strip C0 = C
H4 : A' →→ C0
C1 : Term
H2 : strip C1 = C
H5 : B' →→ C1
H7 : Γ' ⊢ A' ▹▹ C0 : !sA'
H8 : Γ' ⊢ B' ▹▹ C1 : !s
============================
Γ' ⊢ A' ≡' B'
subgoal 2 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 3 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using , ?2492 using ?2496 , ?2496 using ,)
apply typ_peq_trans with C0.4 subgoals, subgoal 1 (ID 2502)
s : Sorts
Γ' : Env
M' : Term
A' : Term
H3 : Γ' ⊢ M' ▹ M' : A'
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
t : strip_env Γ' ⊢ strip M' : strip A'
sA' : Sorts
H : Γ' ⊢ A' ▹ A' : !sA'
C : UTM.Term
C0 : Term
H1 : strip C0 = C
H4 : A' →→ C0
C1 : Term
H2 : strip C1 = C
H5 : B' →→ C1
H7 : Γ' ⊢ A' ▹▹ C0 : !sA'
H8 : Γ' ⊢ B' ▹▹ C1 : !s
============================
Γ' ⊢ A' ≡' C0
subgoal 2 (ID 2503) is:
Γ' ⊢ C0 ≡' B'
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using , ?2492 using ?2496 , ?2496 using ,)
apply reds_to_conv with sA'; trivial. 3 subgoals, subgoal 1 (ID 2503)
s : Sorts
Γ' : Env
M' : Term
A' : Term
H3 : Γ' ⊢ M' ▹ M' : A'
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
t : strip_env Γ' ⊢ strip M' : strip A'
sA' : Sorts
H : Γ' ⊢ A' ▹ A' : !sA'
C : UTM.Term
C0 : Term
H1 : strip C0 = C
H4 : A' →→ C0
C1 : Term
H2 : strip C1 = C
H5 : B' →→ C1
H7 : Γ' ⊢ A' ▹▹ C0 : !sA'
H8 : Γ' ⊢ B' ▹▹ C1 : !s
============================
Γ' ⊢ C0 ≡' B'
subgoal 2 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 3 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using , ?2492 using ?2496 , ?2496 using ,)
apply typ_peq_trans with C1.4 subgoals, subgoal 1 (ID 2505)
s : Sorts
Γ' : Env
M' : Term
A' : Term
H3 : Γ' ⊢ M' ▹ M' : A'
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
t : strip_env Γ' ⊢ strip M' : strip A'
sA' : Sorts
H : Γ' ⊢ A' ▹ A' : !sA'
C : UTM.Term
C0 : Term
H1 : strip C0 = C
H4 : A' →→ C0
C1 : Term
H2 : strip C1 = C
H5 : B' →→ C1
H7 : Γ' ⊢ A' ▹▹ C0 : !sA'
H8 : Γ' ⊢ B' ▹▹ C1 : !s
============================
Γ' ⊢ C0 ≡' C1
subgoal 2 (ID 2506) is:
Γ' ⊢ C1 ≡' B'
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using , ?2492 using ?2496 , ?2496 using ,)
eapply ErasedTypeConversion. 6 subgoals, subgoal 1 (ID 2509)
s : Sorts
Γ' : Env
M' : Term
A' : Term
H3 : Γ' ⊢ M' ▹ M' : A'
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
t : strip_env Γ' ⊢ strip M' : strip A'
sA' : Sorts
H : Γ' ⊢ A' ▹ A' : !sA'
C : UTM.Term
C0 : Term
H1 : strip C0 = C
H4 : A' →→ C0
C1 : Term
H2 : strip C1 = C
H5 : B' →→ C1
H7 : Γ' ⊢ A' ▹▹ C0 : !sA'
H8 : Γ' ⊢ B' ▹▹ C1 : !s
============================
strip C0 = strip C1
subgoal 2 (ID 2510) is:
Γ' ⊢ C0 ▹ C0 : !?2507
subgoal 3 (ID 2511) is:
Γ' ⊢ C1 ▹ C1 : !?2508
subgoal 4 (ID 2506) is:
Γ' ⊢ C1 ≡' B'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using , ?2492 using ?2496 , ?2496 using , ?2507 open, ?2508 open,)
rewrite H1. 6 subgoals, subgoal 1 (ID 2512)
s : Sorts
Γ' : Env
M' : Term
A' : Term
H3 : Γ' ⊢ M' ▹ M' : A'
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
t : strip_env Γ' ⊢ strip M' : strip A'
sA' : Sorts
H : Γ' ⊢ A' ▹ A' : !sA'
C : UTM.Term
C0 : Term
H1 : strip C0 = C
H4 : A' →→ C0
C1 : Term
H2 : strip C1 = C
H5 : B' →→ C1
H7 : Γ' ⊢ A' ▹▹ C0 : !sA'
H8 : Γ' ⊢ B' ▹▹ C1 : !s
============================
C = strip C1
subgoal 2 (ID 2510) is:
Γ' ⊢ C0 ▹ C0 : !?2507
subgoal 3 (ID 2511) is:
Γ' ⊢ C1 ▹ C1 : !?2508
subgoal 4 (ID 2506) is:
Γ' ⊢ C1 ≡' B'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using , ?2492 using ?2496 , ?2496 using , ?2507 open, ?2508 open,)
rewrite H2. 6 subgoals, subgoal 1 (ID 2513)
s : Sorts
Γ' : Env
M' : Term
A' : Term
H3 : Γ' ⊢ M' ▹ M' : A'
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
t : strip_env Γ' ⊢ strip M' : strip A'
sA' : Sorts
H : Γ' ⊢ A' ▹ A' : !sA'
C : UTM.Term
C0 : Term
H1 : strip C0 = C
H4 : A' →→ C0
C1 : Term
H2 : strip C1 = C
H5 : B' →→ C1
H7 : Γ' ⊢ A' ▹▹ C0 : !sA'
H8 : Γ' ⊢ B' ▹▹ C1 : !s
============================
C = C
subgoal 2 (ID 2510) is:
Γ' ⊢ C0 ▹ C0 : !?2507
subgoal 3 (ID 2511) is:
Γ' ⊢ C1 ▹ C1 : !?2508
subgoal 4 (ID 2506) is:
Γ' ⊢ C1 ≡' B'
subgoal 5 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 6 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using , ?2492 using ?2496 , ?2496 using , ?2507 open, ?2508 open,)
trivial. 5 subgoals, subgoal 1 (ID 2510)
s : Sorts
Γ' : Env
M' : Term
A' : Term
H3 : Γ' ⊢ M' ▹ M' : A'
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
t : strip_env Γ' ⊢ strip M' : strip A'
sA' : Sorts
H : Γ' ⊢ A' ▹ A' : !sA'
C : UTM.Term
C0 : Term
H1 : strip C0 = C
H4 : A' →→ C0
C1 : Term
H2 : strip C1 = C
H5 : B' →→ C1
H7 : Γ' ⊢ A' ▹▹ C0 : !sA'
H8 : Γ' ⊢ B' ▹▹ C1 : !s
============================
Γ' ⊢ C0 ▹ C0 : !?2507
subgoal 2 (ID 2511) is:
Γ' ⊢ C1 ▹ C1 : !?2508
subgoal 3 (ID 2506) is:
Γ' ⊢ C1 ≡' B'
subgoal 4 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 5 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using , ?2492 using ?2496 , ?2496 using , ?2507 open, ?2508 open,)
apply reds_refl_rt in H7; apply H7.4 subgoals, subgoal 1 (ID 2511)
s : Sorts
Γ' : Env
M' : Term
A' : Term
H3 : Γ' ⊢ M' ▹ M' : A'
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
t : strip_env Γ' ⊢ strip M' : strip A'
sA' : Sorts
H : Γ' ⊢ A' ▹ A' : !sA'
C : UTM.Term
C0 : Term
H1 : strip C0 = C
H4 : A' →→ C0
C1 : Term
H2 : strip C1 = C
H5 : B' →→ C1
H7 : Γ' ⊢ A' ▹▹ C0 : !sA'
H8 : Γ' ⊢ B' ▹▹ C1 : !s
============================
Γ' ⊢ C1 ▹ C1 : !?2508
subgoal 2 (ID 2506) is:
Γ' ⊢ C1 ≡' B'
subgoal 3 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 4 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using , ?2492 using ?2496 , ?2496 using , ?2507 using ?2515 , ?2508 open, ?2515 using ,)
apply reds_refl_rt in H8; apply H8. 3 subgoals, subgoal 1 (ID 2506)
s : Sorts
Γ' : Env
M' : Term
A' : Term
H3 : Γ' ⊢ M' ▹ M' : A'
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
t : strip_env Γ' ⊢ strip M' : strip A'
sA' : Sorts
H : Γ' ⊢ A' ▹ A' : !sA'
C : UTM.Term
C0 : Term
H1 : strip C0 = C
H4 : A' →→ C0
C1 : Term
H2 : strip C1 = C
H5 : B' →→ C1
H7 : Γ' ⊢ A' ▹▹ C0 : !sA'
H8 : Γ' ⊢ B' ▹▹ C1 : !s
============================
Γ' ⊢ C1 ≡' B'
subgoal 2 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 3 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using , ?2492 using ?2496 , ?2496 using , ?2507 using ?2515 , ?2508 using ?2518 , ?2515 using , ?2518 using ,)
apply typ_peq_sym.3 subgoals, subgoal 1 (ID 2520)
s : Sorts
Γ' : Env
M' : Term
A' : Term
H3 : Γ' ⊢ M' ▹ M' : A'
Γ2 : Env
B' : Term
H6 : Γ2 ⊢ B' ▹ B' : !s
H0 : strip_env Γ2 = strip_env Γ'
t0 : strip_env Γ' ⊢ strip B' : !s%UT
t : strip_env Γ' ⊢ strip M' : strip A'
sA' : Sorts
H : Γ' ⊢ A' ▹ A' : !sA'
C : UTM.Term
C0 : Term
H1 : strip C0 = C
H4 : A' →→ C0
C1 : Term
H2 : strip C1 = C
H5 : B' →→ C1
H7 : Γ' ⊢ A' ▹▹ C0 : !sA'
H8 : Γ' ⊢ B' ▹▹ C1 : !s
============================
Γ' ⊢ B' ≡' C1
subgoal 2 (ID 20) is:
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 3 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using , ?2492 using ?2496 , ?2496 using , ?2507 using ?2515 , ?2508 using ?2518 , ?2515 using , ?2518 using ,)
apply reds_to_conv with s; trivial.2 subgoals, subgoal 1 (ID 20)
============================
exists Γ' : Env, strip_env Γ' = nil /\ Γ' ⊣
subgoal 2 (ID 82) is:
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using , ?2492 using ?2496 , ?2496 using , ?2507 using ?2515 , ?2508 using ?2518 , ?2515 using , ?2518 using ,)
exists nil; simpl; intuition.1 subgoals, subgoal 1 (ID 82)
Γ : UEM.Env
A : UTM.Term
s : Sorts
t : Γ ⊢ A : !s%UT
H : exists (Γ' : Env) (M' A' : Term),
strip_env Γ' = Γ /\
strip M' = A /\ strip A' = !s%UT /\ Γ' ⊢ M' ▹ M' : A'
============================
exists Γ' : Env, strip_env Γ' = A :: Γ /\ Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using , ?2492 using ?2496 , ?2496 using , ?2507 using ?2515 , ?2508 using ?2518 , ?2515 using , ?2518 using ,)
destruct H as (Γ' & M' & A' & ? & ? & ? & ?).1 subgoals, subgoal 1 (ID 2554)
Γ : UEM.Env
A : UTM.Term
s : Sorts
t : Γ ⊢ A : !s%UT
Γ' : Env
M' : Term
A' : Term
H : strip_env Γ' = Γ
H0 : strip M' = A
H1 : strip A' = !s%UT
H2 : Γ' ⊢ M' ▹ M' : A'
============================
exists Γ'0 : Env, strip_env Γ'0 = A :: Γ /\ Γ'0 ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using , ?2492 using ?2496 , ?2496 using , ?2507 using ?2515 , ?2508 using ?2518 , ?2515 using , ?2518 using ,)
destruct A'; simpl in H1; try discriminate. 1 subgoals, subgoal 1 (ID 2598)
Γ : UEM.Env
A : UTM.Term
s : Sorts
t : Γ ⊢ A : !s%UT
Γ' : Env
M' : Term
s0 : Sorts
H : strip_env Γ' = Γ
H0 : strip M' = A
H1 : !s0%UT = !s%UT
H2 : Γ' ⊢ M' ▹ M' : !s0
============================
exists Γ'0 : Env, strip_env Γ'0 = A :: Γ /\ Γ'0 ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using , ?2492 using ?2496 , ?2496 using , ?2507 using ?2515 , ?2508 using ?2518 , ?2515 using , ?2518 using ,)
injection H1; intros; subst; clear H1.1 subgoals, subgoal 1 (ID 2643)
s : Sorts
Γ' : Env
M' : Term
H2 : Γ' ⊢ M' ▹ M' : !s
t : strip_env Γ' ⊢ strip M' : !s%UT
============================
exists Γ'0 : Env, strip_env Γ'0 = strip M' :: strip_env Γ' /\ Γ'0 ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using , ?2492 using ?2496 , ?2496 using , ?2507 using ?2515 , ?2508 using ?2518 , ?2515 using , ?2518 using ,)
exists (M'::Γ'); simpl; intuition. 1 subgoals, subgoal 1 (ID 2650)
s : Sorts
Γ' : Env
M' : Term
H2 : Γ' ⊢ M' ▹ M' : !s
t : strip_env Γ' ⊢ strip M' : !s%UT
============================
M' :: Γ' ⊣
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using , ?2492 using ?2496 , ?2496 using , ?2507 using ?2515 , ?2508 using ?2518 , ?2515 using , ?2518 using ,)
econstructor. 1 subgoals, subgoal 1 (ID 2662)
s : Sorts
Γ' : Env
M' : Term
H2 : Γ' ⊢ M' ▹ M' : !s
t : strip_env Γ' ⊢ strip M' : !s%UT
============================
Γ' ⊢ M' ▹ ?2660 : !?2661
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using , ?2492 using ?2496 , ?2496 using , ?2507 using ?2515 , ?2508 using ?2518 , ?2515 using , ?2518 using , ?2660 open, ?2661 open,)
apply H2.No more subgoals.
(dependent evars: ?754 using , ?755 using , ?767 using ?771 , ?771 using , ?777 using , ?778 using , ?1195 using , ?1196 using , ?1197 using , ?1210 using ?1214 , ?1214 using , ?1220 using , ?1221 using , ?1361 using ?1365 , ?1365 using , ?1371 using , ?1372 using , ?1389 using ?1393 , ?1393 using , ?1399 using , ?1400 using , ?1412 using ?1416 , ?1416 using , ?1429 using , ?1430 using , ?1885 using , ?1886 using , ?1887 using , ?1903 using ?1907 , ?1907 using , ?2037 using , ?2039 using , ?2040 using , ?2052 using ?2056 , ?2056 using , ?2391 using ?2395 , ?2395 using , ?2492 using ?2496 , ?2496 using , ?2507 using ?2515 , ?2508 using ?2518 , ?2515 using , ?2518 using , ?2660 using , ?2661 using ,)
Qed.FromPTS_to_PTSATR is defined
Lemma strip_var_ : forall Γ x A, A↓ x ∈ Γ -> ((strip A)↓ x ∈ (strip_env Γ))%UT.1 subgoals, subgoal 1 (ID 2670)
============================
forall (Γ : list Term) (x : nat) (A : Term),
A ↓ x ∈ Γ -> (strip A ↓ x ∈ strip_env Γ)%UT
(dependent evars:)
induction Γ; intros.2 subgoals, subgoal 1 (ID 2681)
x : nat
A : Term
H : A ↓ x ∈ nil
============================
(strip A ↓ x ∈ strip_env nil)%UT
subgoal 2 (ID 2684) is:
(strip A ↓ x ∈ strip_env (a :: Γ))%UT
(dependent evars:)
inversion H.1 subgoals, subgoal 1 (ID 2684)
a : Term
Γ : list Term
IHΓ : forall (x : nat) (A : Term),
A ↓ x ∈ Γ -> (strip A ↓ x ∈ strip_env Γ)%UT
x : nat
A : Term
H : A ↓ x ∈ a :: Γ
============================
(strip A ↓ x ∈ strip_env (a :: Γ))%UT
(dependent evars:)
inversion H; intros; subst.2 subgoals, subgoal 1 (ID 2795)
a : Term
Γ : list Term
IHΓ : forall (x : nat) (A : Term),
A ↓ x ∈ Γ -> (strip A ↓ x ∈ strip_env Γ)%UT
H : a ↓ 0 ∈ a :: Γ
============================
(strip a ↓ 0 ∈ strip_env (a :: Γ))%UT
subgoal 2 (ID 2802) is:
(strip A ↓ S n ∈ strip_env (a :: Γ))%UT
(dependent evars:)
simpl; constructor.1 subgoals, subgoal 1 (ID 2802)
a : Term
Γ : list Term
IHΓ : forall (x : nat) (A : Term),
A ↓ x ∈ Γ -> (strip A ↓ x ∈ strip_env Γ)%UT
A : Term
n : nat
H3 : A ↓ n ∈ Γ
H : A ↓ S n ∈ a :: Γ
============================
(strip A ↓ S n ∈ strip_env (a :: Γ))%UT
(dependent evars:)
simpl. 1 subgoals, subgoal 1 (ID 2805)
a : Term
Γ : list Term
IHΓ : forall (x : nat) (A : Term),
A ↓ x ∈ Γ -> (strip A ↓ x ∈ strip_env Γ)%UT
A : Term
n : nat
H3 : A ↓ n ∈ Γ
H : A ↓ S n ∈ a :: Γ
============================
(strip A ↓ S n ∈ strip a :: strip_env Γ)%UT
(dependent evars:)
intuition.No more subgoals.
(dependent evars:)
Qed.
Lemma strip_var : forall Γ x A, A ↓ x ⊂ Γ -> ((strip A) ↓ x ⊂ (strip_env Γ))%UT.1 subgoals, subgoal 1 (ID 2824)
============================
forall (Γ : Env) (x : nat) (A : Term),
A ↓ x ⊂ Γ -> (strip A ↓ x ⊂ strip_env Γ)%UT
(dependent evars:)
intros. 1 subgoals, subgoal 1 (ID 2828)
Γ : Env
x : nat
A : Term
H : A ↓ x ⊂ Γ
============================
(strip A ↓ x ⊂ strip_env Γ)%UT
(dependent evars:)
destruct H as (a & ? & ?).1 subgoals, subgoal 1 (ID 2836)
Γ : Env
x : nat
A : Term
a : Term
H : A = a ↑ (S x)
H0 : a ↓ x ∈ Γ
============================
(strip A ↓ x ⊂ strip_env Γ)%UT
(dependent evars:)
apply strip_var_ in H0. 1 subgoals, subgoal 1 (ID 2838)
Γ : Env
x : nat
A : Term
a : Term
H : A = a ↑ (S x)
H0 : (strip a ↓ x ∈ strip_env Γ)%UT
============================
(strip A ↓ x ⊂ strip_env Γ)%UT
(dependent evars:)
exists (strip a); intuition.1 subgoals, subgoal 1 (ID 2842)
Γ : Env
x : nat
A : Term
a : Term
H : A = a ↑ (S x)
H0 : (strip a ↓ x ∈ strip_env Γ)%UT
============================
strip A = ((strip a) ↑ (S x))%UT
(dependent evars:)
rewrite <- strip_lift. 1 subgoals, subgoal 1 (ID 2854)
Γ : Env
x : nat
A : Term
a : Term
H : A = a ↑ (S x)
H0 : (strip a ↓ x ∈ strip_env Γ)%UT
============================
strip A = strip a ↑ (S x)
(dependent evars:)
rewrite H. 1 subgoals, subgoal 1 (ID 2855)
Γ : Env
x : nat
A : Term
a : Term
H : A = a ↑ (S x)
H0 : (strip a ↓ x ∈ strip_env Γ)%UT
============================
strip a ↑ (S x) = strip a ↑ (S x)
(dependent evars:)
trivial.No more subgoals.
(dependent evars:)
Qed.
Lemma FromPTSATR_to_PTS : (forall Γ M N T, Γ ⊢ M ▹ N : T -> (strip_env Γ) ⊢ (strip M) : (strip T) /\
(strip_env Γ) ⊢ (strip N) : (strip T) /\ (strip M) ≡ (strip N)) /\
(forall Γ M N T, Γ ⊢ M ▹▹ N : T -> (strip_env Γ) ⊢ (strip M) : (strip T) /\
(strip_env Γ) ⊢ (strip N) : (strip T) /\ (strip M) ≡ (strip N)) /\
(forall Γ, Γ ⊣ -> ((strip_env Γ) ⊣)%UT).1 subgoals, subgoal 1 (ID 2870)
============================
(forall (Γ : Env) (M N T : Term),
Γ ⊢ M ▹ N : T ->
(strip_env Γ ⊢ strip M : strip T) /\
(strip_env Γ ⊢ strip N : strip T) /\ strip M ≡ strip N) /\
(forall (Γ : Env) (M N T : Term),
Γ ⊢ M ▹▹ N : T ->
(strip_env Γ ⊢ strip M : strip T) /\
(strip_env Γ ⊢ strip N : strip T) /\ strip M ≡ strip N) /\
(forall Γ : Env, Γ ⊣ -> (strip_env Γ ⊣)%UT)
(dependent evars:)
apply typ_induc; intros; simpl in *.12 subgoals, subgoal 1 (ID 3019)
Γ : Env
x : nat
A : Term
w : Γ ⊣
H : (strip_env Γ ⊣)%UT
i : A ↓ x ⊂ Γ
============================
(strip_env Γ ⊢ #x%UT : strip A) /\
(strip_env Γ ⊢ #x%UT : strip A) /\ #x%UT ≡ #x%UT
subgoal 2 (ID 3026) is:
(strip_env Γ ⊢ !s1%UT : !s2%UT) /\
(strip_env Γ ⊢ !s1%UT : !s2%UT) /\ !s1%UT ≡ !s1%UT
subgoal 3 (ID 3040) is:
(strip_env Γ ⊢ (Π (strip A), strip B)%UT : !s3%UT) /\
(strip_env Γ ⊢ (Π (strip A'), strip B')%UT : !s3%UT) /\
(Π (strip A), strip B)%UT ≡ (Π (strip A'), strip B')%UT
subgoal 4 (ID 3057) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT : (Π (strip A), strip B)%UT) /\
(strip_env Γ ⊢ (λ [strip A'], strip M')%UT : (Π (strip A), strip B)%UT) /\
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 5 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 6 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 7 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 8 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 9 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 10 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 11 (ID 3147) is:
(nil ⊣)%UT
subgoal 12 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars:)
split. 13 subgoals, subgoal 1 (ID 3156)
Γ : Env
x : nat
A : Term
w : Γ ⊣
H : (strip_env Γ ⊣)%UT
i : A ↓ x ⊂ Γ
============================
strip_env Γ ⊢ #x%UT : strip A
subgoal 2 (ID 3157) is:
(strip_env Γ ⊢ #x%UT : strip A) /\ #x%UT ≡ #x%UT
subgoal 3 (ID 3026) is:
(strip_env Γ ⊢ !s1%UT : !s2%UT) /\
(strip_env Γ ⊢ !s1%UT : !s2%UT) /\ !s1%UT ≡ !s1%UT
subgoal 4 (ID 3040) is:
(strip_env Γ ⊢ (Π (strip A), strip B)%UT : !s3%UT) /\
(strip_env Γ ⊢ (Π (strip A'), strip B')%UT : !s3%UT) /\
(Π (strip A), strip B)%UT ≡ (Π (strip A'), strip B')%UT
subgoal 5 (ID 3057) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT : (Π (strip A), strip B)%UT) /\
(strip_env Γ ⊢ (λ [strip A'], strip M')%UT : (Π (strip A), strip B)%UT) /\
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 6 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 7 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 8 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 9 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 10 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 11 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 12 (ID 3147) is:
(nil ⊣)%UT
subgoal 13 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars:)
apply strip_var in i. 13 subgoals, subgoal 1 (ID 3159)
Γ : Env
x : nat
A : Term
w : Γ ⊣
H : (strip_env Γ ⊣)%UT
i : (strip A ↓ x ⊂ strip_env Γ)%UT
============================
strip_env Γ ⊢ #x%UT : strip A
subgoal 2 (ID 3157) is:
(strip_env Γ ⊢ #x%UT : strip A) /\ #x%UT ≡ #x%UT
subgoal 3 (ID 3026) is:
(strip_env Γ ⊢ !s1%UT : !s2%UT) /\
(strip_env Γ ⊢ !s1%UT : !s2%UT) /\ !s1%UT ≡ !s1%UT
subgoal 4 (ID 3040) is:
(strip_env Γ ⊢ (Π (strip A), strip B)%UT : !s3%UT) /\
(strip_env Γ ⊢ (Π (strip A'), strip B')%UT : !s3%UT) /\
(Π (strip A), strip B)%UT ≡ (Π (strip A'), strip B')%UT
subgoal 5 (ID 3057) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT : (Π (strip A), strip B)%UT) /\
(strip_env Γ ⊢ (λ [strip A'], strip M')%UT : (Π (strip A), strip B)%UT) /\
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 6 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 7 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 8 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 9 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 10 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 11 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 12 (ID 3147) is:
(nil ⊣)%UT
subgoal 13 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars:)
intuition.12 subgoals, subgoal 1 (ID 3157)
Γ : Env
x : nat
A : Term
w : Γ ⊣
H : (strip_env Γ ⊣)%UT
i : A ↓ x ⊂ Γ
============================
(strip_env Γ ⊢ #x%UT : strip A) /\ #x%UT ≡ #x%UT
subgoal 2 (ID 3026) is:
(strip_env Γ ⊢ !s1%UT : !s2%UT) /\
(strip_env Γ ⊢ !s1%UT : !s2%UT) /\ !s1%UT ≡ !s1%UT
subgoal 3 (ID 3040) is:
(strip_env Γ ⊢ (Π (strip A), strip B)%UT : !s3%UT) /\
(strip_env Γ ⊢ (Π (strip A'), strip B')%UT : !s3%UT) /\
(Π (strip A), strip B)%UT ≡ (Π (strip A'), strip B')%UT
subgoal 4 (ID 3057) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT : (Π (strip A), strip B)%UT) /\
(strip_env Γ ⊢ (λ [strip A'], strip M')%UT : (Π (strip A), strip B)%UT) /\
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 5 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 6 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 7 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 8 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 9 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 10 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 11 (ID 3147) is:
(nil ⊣)%UT
subgoal 12 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars:)
split. 13 subgoals, subgoal 1 (ID 3170)
Γ : Env
x : nat
A : Term
w : Γ ⊣
H : (strip_env Γ ⊣)%UT
i : A ↓ x ⊂ Γ
============================
strip_env Γ ⊢ #x%UT : strip A
subgoal 2 (ID 3171) is:
#x%UT ≡ #x%UT
subgoal 3 (ID 3026) is:
(strip_env Γ ⊢ !s1%UT : !s2%UT) /\
(strip_env Γ ⊢ !s1%UT : !s2%UT) /\ !s1%UT ≡ !s1%UT
subgoal 4 (ID 3040) is:
(strip_env Γ ⊢ (Π (strip A), strip B)%UT : !s3%UT) /\
(strip_env Γ ⊢ (Π (strip A'), strip B')%UT : !s3%UT) /\
(Π (strip A), strip B)%UT ≡ (Π (strip A'), strip B')%UT
subgoal 5 (ID 3057) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT : (Π (strip A), strip B)%UT) /\
(strip_env Γ ⊢ (λ [strip A'], strip M')%UT : (Π (strip A), strip B)%UT) /\
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 6 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 7 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 8 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 9 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 10 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 11 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 12 (ID 3147) is:
(nil ⊣)%UT
subgoal 13 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars:)
apply strip_var in i. 13 subgoals, subgoal 1 (ID 3173)
Γ : Env
x : nat
A : Term
w : Γ ⊣
H : (strip_env Γ ⊣)%UT
i : (strip A ↓ x ⊂ strip_env Γ)%UT
============================
strip_env Γ ⊢ #x%UT : strip A
subgoal 2 (ID 3171) is:
#x%UT ≡ #x%UT
subgoal 3 (ID 3026) is:
(strip_env Γ ⊢ !s1%UT : !s2%UT) /\
(strip_env Γ ⊢ !s1%UT : !s2%UT) /\ !s1%UT ≡ !s1%UT
subgoal 4 (ID 3040) is:
(strip_env Γ ⊢ (Π (strip A), strip B)%UT : !s3%UT) /\
(strip_env Γ ⊢ (Π (strip A'), strip B')%UT : !s3%UT) /\
(Π (strip A), strip B)%UT ≡ (Π (strip A'), strip B')%UT
subgoal 5 (ID 3057) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT : (Π (strip A), strip B)%UT) /\
(strip_env Γ ⊢ (λ [strip A'], strip M')%UT : (Π (strip A), strip B)%UT) /\
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 6 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 7 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 8 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 9 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 10 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 11 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 12 (ID 3147) is:
(nil ⊣)%UT
subgoal 13 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars:)
intuition.12 subgoals, subgoal 1 (ID 3171)
Γ : Env
x : nat
A : Term
w : Γ ⊣
H : (strip_env Γ ⊣)%UT
i : A ↓ x ⊂ Γ
============================
#x%UT ≡ #x%UT
subgoal 2 (ID 3026) is:
(strip_env Γ ⊢ !s1%UT : !s2%UT) /\
(strip_env Γ ⊢ !s1%UT : !s2%UT) /\ !s1%UT ≡ !s1%UT
subgoal 3 (ID 3040) is:
(strip_env Γ ⊢ (Π (strip A), strip B)%UT : !s3%UT) /\
(strip_env Γ ⊢ (Π (strip A'), strip B')%UT : !s3%UT) /\
(Π (strip A), strip B)%UT ≡ (Π (strip A'), strip B')%UT
subgoal 4 (ID 3057) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT : (Π (strip A), strip B)%UT) /\
(strip_env Γ ⊢ (λ [strip A'], strip M')%UT : (Π (strip A), strip B)%UT) /\
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 5 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 6 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 7 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 8 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 9 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 10 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 11 (ID 3147) is:
(nil ⊣)%UT
subgoal 12 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars:)
trivial.11 subgoals, subgoal 1 (ID 3026)
Γ : Env
s1 : Sorts
s2 : Sorts
a : Ax s1 s2
w : Γ ⊣
H : (strip_env Γ ⊣)%UT
============================
(strip_env Γ ⊢ !s1%UT : !s2%UT) /\
(strip_env Γ ⊢ !s1%UT : !s2%UT) /\ !s1%UT ≡ !s1%UT
subgoal 2 (ID 3040) is:
(strip_env Γ ⊢ (Π (strip A), strip B)%UT : !s3%UT) /\
(strip_env Γ ⊢ (Π (strip A'), strip B')%UT : !s3%UT) /\
(Π (strip A), strip B)%UT ≡ (Π (strip A'), strip B')%UT
subgoal 3 (ID 3057) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT : (Π (strip A), strip B)%UT) /\
(strip_env Γ ⊢ (λ [strip A'], strip M')%UT : (Π (strip A), strip B)%UT) /\
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 4 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 5 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 6 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 7 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 8 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 9 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 10 (ID 3147) is:
(nil ⊣)%UT
subgoal 11 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars:)
intuition.10 subgoals, subgoal 1 (ID 3040)
Γ : Env
s1 : Sorts
s2 : Sorts
s3 : Sorts
A : Term
A' : Term
B : Term
B' : Term
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : (strip_env Γ ⊢ strip A : !s1%UT) /\
(strip_env Γ ⊢ strip A' : !s1%UT) /\ strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : (strip A :: strip_env Γ ⊢ strip B : !s2%UT) /\
(strip A :: strip_env Γ ⊢ strip B' : !s2%UT) /\ strip B ≡ strip B'
============================
(strip_env Γ ⊢ (Π (strip A), strip B)%UT : !s3%UT) /\
(strip_env Γ ⊢ (Π (strip A'), strip B')%UT : !s3%UT) /\
(Π (strip A), strip B)%UT ≡ (Π (strip A'), strip B')%UT
subgoal 2 (ID 3057) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT : (Π (strip A), strip B)%UT) /\
(strip_env Γ ⊢ (λ [strip A'], strip M')%UT : (Π (strip A), strip B)%UT) /\
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 3 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 4 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 5 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 6 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 7 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 8 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 9 (ID 3147) is:
(nil ⊣)%UT
subgoal 10 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars:)
destruct H as (? & ?& ?), H0 as (? & ? & ?).10 subgoals, subgoal 1 (ID 3232)
Γ : Env
s1 : Sorts
s2 : Sorts
s3 : Sorts
A : Term
A' : Term
B : Term
B' : Term
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H1 : strip_env Γ ⊢ strip A' : !s1%UT
H2 : strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H3 : strip A :: strip_env Γ ⊢ strip B' : !s2%UT
H4 : strip B ≡ strip B'
============================
(strip_env Γ ⊢ (Π (strip A), strip B)%UT : !s3%UT) /\
(strip_env Γ ⊢ (Π (strip A'), strip B')%UT : !s3%UT) /\
(Π (strip A), strip B)%UT ≡ (Π (strip A'), strip B')%UT
subgoal 2 (ID 3057) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT : (Π (strip A), strip B)%UT) /\
(strip_env Γ ⊢ (λ [strip A'], strip M')%UT : (Π (strip A), strip B)%UT) /\
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 3 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 4 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 5 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 6 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 7 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 8 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 9 (ID 3147) is:
(nil ⊣)%UT
subgoal 10 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars:)
split. 11 subgoals, subgoal 1 (ID 3234)
Γ : Env
s1 : Sorts
s2 : Sorts
s3 : Sorts
A : Term
A' : Term
B : Term
B' : Term
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H1 : strip_env Γ ⊢ strip A' : !s1%UT
H2 : strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H3 : strip A :: strip_env Γ ⊢ strip B' : !s2%UT
H4 : strip B ≡ strip B'
============================
strip_env Γ ⊢ (Π (strip A), strip B)%UT : !s3%UT
subgoal 2 (ID 3235) is:
(strip_env Γ ⊢ (Π (strip A'), strip B')%UT : !s3%UT) /\
(Π (strip A), strip B)%UT ≡ (Π (strip A'), strip B')%UT
subgoal 3 (ID 3057) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT : (Π (strip A), strip B)%UT) /\
(strip_env Γ ⊢ (λ [strip A'], strip M')%UT : (Π (strip A), strip B)%UT) /\
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 4 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 5 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 6 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 7 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 8 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 9 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 10 (ID 3147) is:
(nil ⊣)%UT
subgoal 11 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars:)
apply PTS.cPi with s1 s2; trivial.10 subgoals, subgoal 1 (ID 3235)
Γ : Env
s1 : Sorts
s2 : Sorts
s3 : Sorts
A : Term
A' : Term
B : Term
B' : Term
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H1 : strip_env Γ ⊢ strip A' : !s1%UT
H2 : strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H3 : strip A :: strip_env Γ ⊢ strip B' : !s2%UT
H4 : strip B ≡ strip B'
============================
(strip_env Γ ⊢ (Π (strip A'), strip B')%UT : !s3%UT) /\
(Π (strip A), strip B)%UT ≡ (Π (strip A'), strip B')%UT
subgoal 2 (ID 3057) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT : (Π (strip A), strip B)%UT) /\
(strip_env Γ ⊢ (λ [strip A'], strip M')%UT : (Π (strip A), strip B)%UT) /\
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 3 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 4 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 5 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 6 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 7 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 8 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 9 (ID 3147) is:
(nil ⊣)%UT
subgoal 10 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars:)
split. 11 subgoals, subgoal 1 (ID 3240)
Γ : Env
s1 : Sorts
s2 : Sorts
s3 : Sorts
A : Term
A' : Term
B : Term
B' : Term
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H1 : strip_env Γ ⊢ strip A' : !s1%UT
H2 : strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H3 : strip A :: strip_env Γ ⊢ strip B' : !s2%UT
H4 : strip B ≡ strip B'
============================
strip_env Γ ⊢ (Π (strip A'), strip B')%UT : !s3%UT
subgoal 2 (ID 3241) is:
(Π (strip A), strip B)%UT ≡ (Π (strip A'), strip B')%UT
subgoal 3 (ID 3057) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT : (Π (strip A), strip B)%UT) /\
(strip_env Γ ⊢ (λ [strip A'], strip M')%UT : (Π (strip A), strip B)%UT) /\
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 4 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 5 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 6 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 7 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 8 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 9 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 10 (ID 3147) is:
(nil ⊣)%UT
subgoal 11 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars:)
apply PTS.cPi with s1 s2; trivial.11 subgoals, subgoal 1 (ID 3244)
Γ : Env
s1 : Sorts
s2 : Sorts
s3 : Sorts
A : Term
A' : Term
B : Term
B' : Term
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H1 : strip_env Γ ⊢ strip A' : !s1%UT
H2 : strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H3 : strip A :: strip_env Γ ⊢ strip B' : !s2%UT
H4 : strip B ≡ strip B'
============================
strip A' :: strip_env Γ ⊢ strip B' : !s2%UT
subgoal 2 (ID 3241) is:
(Π (strip A), strip B)%UT ≡ (Π (strip A'), strip B')%UT
subgoal 3 (ID 3057) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT : (Π (strip A), strip B)%UT) /\
(strip_env Γ ⊢ (λ [strip A'], strip M')%UT : (Π (strip A), strip B)%UT) /\
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 4 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 5 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 6 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 7 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 8 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 9 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 10 (ID 3147) is:
(nil ⊣)%UT
subgoal 11 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars:)
apply Betac_confl in H2 as (Z & ?& ?). 11 subgoals, subgoal 1 (ID 3254)
Γ : Env
s1 : Sorts
s2 : Sorts
s3 : Sorts
A : Term
A' : Term
B : Term
B' : Term
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H1 : strip_env Γ ⊢ strip A' : !s1%UT
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H3 : strip A :: strip_env Γ ⊢ strip B' : !s2%UT
H4 : strip B ≡ strip B'
Z : UTM.Term
H2 : (strip A →→ Z)%UT
H5 : (strip A' →→ Z)%UT
============================
strip A' :: strip_env Γ ⊢ strip B' : !s2%UT
subgoal 2 (ID 3241) is:
(Π (strip A), strip B)%UT ≡ (Π (strip A'), strip B')%UT
subgoal 3 (ID 3057) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT : (Π (strip A), strip B)%UT) /\
(strip_env Γ ⊢ (λ [strip A'], strip M')%UT : (Π (strip A), strip B)%UT) /\
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 4 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 5 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 6 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 7 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 8 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 9 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 10 (ID 3147) is:
(nil ⊣)%UT
subgoal 11 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars:)
apply Betas_env_sound_up with (Z::(strip_env Γ)).13 subgoals, subgoal 1 (ID 3256)
Γ : Env
s1 : Sorts
s2 : Sorts
s3 : Sorts
A : Term
A' : Term
B : Term
B' : Term
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H1 : strip_env Γ ⊢ strip A' : !s1%UT
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H3 : strip A :: strip_env Γ ⊢ strip B' : !s2%UT
H4 : strip B ≡ strip B'
Z : UTM.Term
H2 : (strip A →→ Z)%UT
H5 : (strip A' →→ Z)%UT
============================
Z :: strip_env Γ ⊢ strip B' : !s2%UT
subgoal 2 (ID 3257) is:
(strip A' :: strip_env Γ ⊣)%UT
subgoal 3 (ID 3258) is:
(strip A' :: strip_env Γ) →→e (Z :: strip_env Γ)
subgoal 4 (ID 3241) is:
(Π (strip A), strip B)%UT ≡ (Π (strip A'), strip B')%UT
subgoal 5 (ID 3057) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT : (Π (strip A), strip B)%UT) /\
(strip_env Γ ⊢ (λ [strip A'], strip M')%UT : (Π (strip A), strip B)%UT) /\
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 6 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 7 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 8 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 9 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 10 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 11 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 12 (ID 3147) is:
(nil ⊣)%UT
subgoal 13 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars:)
apply Betas_env_sound with ((strip A)::(strip_env Γ)). 14 subgoals, subgoal 1 (ID 3260)
Γ : Env
s1 : Sorts
s2 : Sorts
s3 : Sorts
A : Term
A' : Term
B : Term
B' : Term
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H1 : strip_env Γ ⊢ strip A' : !s1%UT
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H3 : strip A :: strip_env Γ ⊢ strip B' : !s2%UT
H4 : strip B ≡ strip B'
Z : UTM.Term
H2 : (strip A →→ Z)%UT
H5 : (strip A' →→ Z)%UT
============================
strip A :: strip_env Γ ⊢ strip B' : !s2%UT
subgoal 2 (ID 3261) is:
(strip A :: strip_env Γ) →→e (Z :: strip_env Γ)
subgoal 3 (ID 3257) is:
(strip A' :: strip_env Γ ⊣)%UT
subgoal 4 (ID 3258) is:
(strip A' :: strip_env Γ) →→e (Z :: strip_env Γ)
subgoal 5 (ID 3241) is:
(Π (strip A), strip B)%UT ≡ (Π (strip A'), strip B')%UT
subgoal 6 (ID 3057) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT : (Π (strip A), strip B)%UT) /\
(strip_env Γ ⊢ (λ [strip A'], strip M')%UT : (Π (strip A), strip B)%UT) /\
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 7 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 8 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 9 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 10 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 11 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 12 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 13 (ID 3147) is:
(nil ⊣)%UT
subgoal 14 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars:)
trivial. 13 subgoals, subgoal 1 (ID 3261)
Γ : Env
s1 : Sorts
s2 : Sorts
s3 : Sorts
A : Term
A' : Term
B : Term
B' : Term
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H1 : strip_env Γ ⊢ strip A' : !s1%UT
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H3 : strip A :: strip_env Γ ⊢ strip B' : !s2%UT
H4 : strip B ≡ strip B'
Z : UTM.Term
H2 : (strip A →→ Z)%UT
H5 : (strip A' →→ Z)%UT
============================
(strip A :: strip_env Γ) →→e (Z :: strip_env Γ)
subgoal 2 (ID 3257) is:
(strip A' :: strip_env Γ ⊣)%UT
subgoal 3 (ID 3258) is:
(strip A' :: strip_env Γ) →→e (Z :: strip_env Γ)
subgoal 4 (ID 3241) is:
(Π (strip A), strip B)%UT ≡ (Π (strip A'), strip B')%UT
subgoal 5 (ID 3057) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT : (Π (strip A), strip B)%UT) /\
(strip_env Γ ⊢ (λ [strip A'], strip M')%UT : (Π (strip A), strip B)%UT) /\
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 6 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 7 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 8 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 9 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 10 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 11 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 12 (ID 3147) is:
(nil ⊣)%UT
subgoal 13 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars:)
apply Betas_env_hd; trivial.12 subgoals, subgoal 1 (ID 3257)
Γ : Env
s1 : Sorts
s2 : Sorts
s3 : Sorts
A : Term
A' : Term
B : Term
B' : Term
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H1 : strip_env Γ ⊢ strip A' : !s1%UT
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H3 : strip A :: strip_env Γ ⊢ strip B' : !s2%UT
H4 : strip B ≡ strip B'
Z : UTM.Term
H2 : (strip A →→ Z)%UT
H5 : (strip A' →→ Z)%UT
============================
(strip A' :: strip_env Γ ⊣)%UT
subgoal 2 (ID 3258) is:
(strip A' :: strip_env Γ) →→e (Z :: strip_env Γ)
subgoal 3 (ID 3241) is:
(Π (strip A), strip B)%UT ≡ (Π (strip A'), strip B')%UT
subgoal 4 (ID 3057) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT : (Π (strip A), strip B)%UT) /\
(strip_env Γ ⊢ (λ [strip A'], strip M')%UT : (Π (strip A), strip B)%UT) /\
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 5 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 6 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 7 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 8 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 9 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 10 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 11 (ID 3147) is:
(nil ⊣)%UT
subgoal 12 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars:)
eauto. 11 subgoals, subgoal 1 (ID 3258)
Γ : Env
s1 : Sorts
s2 : Sorts
s3 : Sorts
A : Term
A' : Term
B : Term
B' : Term
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H1 : strip_env Γ ⊢ strip A' : !s1%UT
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H3 : strip A :: strip_env Γ ⊢ strip B' : !s2%UT
H4 : strip B ≡ strip B'
Z : UTM.Term
H2 : (strip A →→ Z)%UT
H5 : (strip A' →→ Z)%UT
============================
(strip A' :: strip_env Γ) →→e (Z :: strip_env Γ)
subgoal 2 (ID 3241) is:
(Π (strip A), strip B)%UT ≡ (Π (strip A'), strip B')%UT
subgoal 3 (ID 3057) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT : (Π (strip A), strip B)%UT) /\
(strip_env Γ ⊢ (λ [strip A'], strip M')%UT : (Π (strip A), strip B)%UT) /\
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 4 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 5 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 6 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 7 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 8 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 9 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 10 (ID 3147) is:
(nil ⊣)%UT
subgoal 11 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using ,)
apply Betas_env_hd; trivial. 10 subgoals, subgoal 1 (ID 3241)
Γ : Env
s1 : Sorts
s2 : Sorts
s3 : Sorts
A : Term
A' : Term
B : Term
B' : Term
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H1 : strip_env Γ ⊢ strip A' : !s1%UT
H2 : strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H3 : strip A :: strip_env Γ ⊢ strip B' : !s2%UT
H4 : strip B ≡ strip B'
============================
(Π (strip A), strip B)%UT ≡ (Π (strip A'), strip B')%UT
subgoal 2 (ID 3057) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT : (Π (strip A), strip B)%UT) /\
(strip_env Γ ⊢ (λ [strip A'], strip M')%UT : (Π (strip A), strip B)%UT) /\
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 3 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 4 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 5 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 6 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 7 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 8 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 9 (ID 3147) is:
(nil ⊣)%UT
subgoal 10 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using ,)
intuition.9 subgoals, subgoal 1 (ID 3057)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : (strip_env Γ ⊢ strip A : !s1%UT) /\
(strip_env Γ ⊢ strip A' : !s1%UT) /\ strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : (strip A :: strip_env Γ ⊢ strip B : !s2%UT) /\
(strip A :: strip_env Γ ⊢ strip B : !s2%UT) /\ strip B ≡ strip B
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : (strip A :: strip_env Γ ⊢ strip M : strip B) /\
(strip A :: strip_env Γ ⊢ strip M' : strip B) /\ strip M ≡ strip M'
============================
(strip_env Γ ⊢ (λ [strip A], strip M)%UT : (Π (strip A), strip B)%UT) /\
(strip_env Γ ⊢ (λ [strip A'], strip M')%UT : (Π (strip A), strip B)%UT) /\
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 2 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 3 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 4 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 5 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 6 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 7 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 8 (ID 3147) is:
(nil ⊣)%UT
subgoal 9 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using ,)
destruct H as (? & ?& ?), H0 as (? & ?& ?), H1 as (? & ? & ?).9 subgoals, subgoal 1 (ID 3348)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H2 : strip_env Γ ⊢ strip A' : !s1%UT
H3 : strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H4 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip B ≡ strip B
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : strip A :: strip_env Γ ⊢ strip M : strip B
H6 : strip A :: strip_env Γ ⊢ strip M' : strip B
H7 : strip M ≡ strip M'
============================
(strip_env Γ ⊢ (λ [strip A], strip M)%UT : (Π (strip A), strip B)%UT) /\
(strip_env Γ ⊢ (λ [strip A'], strip M')%UT : (Π (strip A), strip B)%UT) /\
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 2 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 3 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 4 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 5 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 6 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 7 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 8 (ID 3147) is:
(nil ⊣)%UT
subgoal 9 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using ,)
split. 10 subgoals, subgoal 1 (ID 3350)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H2 : strip_env Γ ⊢ strip A' : !s1%UT
H3 : strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H4 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip B ≡ strip B
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : strip A :: strip_env Γ ⊢ strip M : strip B
H6 : strip A :: strip_env Γ ⊢ strip M' : strip B
H7 : strip M ≡ strip M'
============================
strip_env Γ ⊢ (λ [strip A], strip M)%UT : (Π (strip A), strip B)%UT
subgoal 2 (ID 3351) is:
(strip_env Γ ⊢ (λ [strip A'], strip M')%UT : (Π (strip A), strip B)%UT) /\
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 3 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 4 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 5 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 6 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 7 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 8 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 9 (ID 3147) is:
(nil ⊣)%UT
subgoal 10 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using ,)
apply PTS.cLa with s1 s2 s3; trivial. 9 subgoals, subgoal 1 (ID 3351)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H2 : strip_env Γ ⊢ strip A' : !s1%UT
H3 : strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H4 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip B ≡ strip B
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : strip A :: strip_env Γ ⊢ strip M : strip B
H6 : strip A :: strip_env Γ ⊢ strip M' : strip B
H7 : strip M ≡ strip M'
============================
(strip_env Γ ⊢ (λ [strip A'], strip M')%UT : (Π (strip A), strip B)%UT) /\
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 2 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 3 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 4 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 5 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 6 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 7 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 8 (ID 3147) is:
(nil ⊣)%UT
subgoal 9 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using ,)
split. 10 subgoals, subgoal 1 (ID 3357)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H2 : strip_env Γ ⊢ strip A' : !s1%UT
H3 : strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H4 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip B ≡ strip B
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : strip A :: strip_env Γ ⊢ strip M : strip B
H6 : strip A :: strip_env Γ ⊢ strip M' : strip B
H7 : strip M ≡ strip M'
============================
strip_env Γ ⊢ (λ [strip A'], strip M')%UT : (Π (strip A), strip B)%UT
subgoal 2 (ID 3358) is:
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 3 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 4 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 5 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 6 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 7 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 8 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 9 (ID 3147) is:
(nil ⊣)%UT
subgoal 10 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using ,)
apply PTS.Cnv with (Π(strip A'),strip B)%UT s3.12 subgoals, subgoal 1 (ID 3359)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H2 : strip_env Γ ⊢ strip A' : !s1%UT
H3 : strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H4 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip B ≡ strip B
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : strip A :: strip_env Γ ⊢ strip M : strip B
H6 : strip A :: strip_env Γ ⊢ strip M' : strip B
H7 : strip M ≡ strip M'
============================
(Π (strip A'), strip B)%UT ≡ (Π (strip A), strip B)%UT
subgoal 2 (ID 3360) is:
strip_env Γ ⊢ (λ [strip A'], strip M')%UT : (Π (strip A'), strip B)%UT
subgoal 3 (ID 3361) is:
strip_env Γ ⊢ (Π (strip A), strip B)%UT : !s3%UT
subgoal 4 (ID 3358) is:
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 5 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 6 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 7 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 8 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 9 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 10 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 11 (ID 3147) is:
(nil ⊣)%UT
subgoal 12 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using ,)
intuition. 11 subgoals, subgoal 1 (ID 3360)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H2 : strip_env Γ ⊢ strip A' : !s1%UT
H3 : strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H4 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip B ≡ strip B
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : strip A :: strip_env Γ ⊢ strip M : strip B
H6 : strip A :: strip_env Γ ⊢ strip M' : strip B
H7 : strip M ≡ strip M'
============================
strip_env Γ ⊢ (λ [strip A'], strip M')%UT : (Π (strip A'), strip B)%UT
subgoal 2 (ID 3361) is:
strip_env Γ ⊢ (Π (strip A), strip B)%UT : !s3%UT
subgoal 3 (ID 3358) is:
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 4 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 5 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 6 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 7 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 8 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 9 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 10 (ID 3147) is:
(nil ⊣)%UT
subgoal 11 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using ,)
apply PTS.cLa with s1 s2 s3; trivial. 12 subgoals, subgoal 1 (ID 3401)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H2 : strip_env Γ ⊢ strip A' : !s1%UT
H3 : strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H4 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip B ≡ strip B
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : strip A :: strip_env Γ ⊢ strip M : strip B
H6 : strip A :: strip_env Γ ⊢ strip M' : strip B
H7 : strip M ≡ strip M'
============================
strip A' :: strip_env Γ ⊢ strip B : !s2%UT
subgoal 2 (ID 3402) is:
strip A' :: strip_env Γ ⊢ strip M' : strip B
subgoal 3 (ID 3361) is:
strip_env Γ ⊢ (Π (strip A), strip B)%UT : !s3%UT
subgoal 4 (ID 3358) is:
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 5 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 6 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 7 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 8 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 9 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 10 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 11 (ID 3147) is:
(nil ⊣)%UT
subgoal 12 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using ,)
apply Betac_confl in H3 as (Z & ?& ?). 12 subgoals, subgoal 1 (ID 3412)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H2 : strip_env Γ ⊢ strip A' : !s1%UT
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H4 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip B ≡ strip B
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : strip A :: strip_env Γ ⊢ strip M : strip B
H6 : strip A :: strip_env Γ ⊢ strip M' : strip B
H7 : strip M ≡ strip M'
Z : UTM.Term
H3 : (strip A →→ Z)%UT
H8 : (strip A' →→ Z)%UT
============================
strip A' :: strip_env Γ ⊢ strip B : !s2%UT
subgoal 2 (ID 3402) is:
strip A' :: strip_env Γ ⊢ strip M' : strip B
subgoal 3 (ID 3361) is:
strip_env Γ ⊢ (Π (strip A), strip B)%UT : !s3%UT
subgoal 4 (ID 3358) is:
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 5 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 6 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 7 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 8 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 9 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 10 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 11 (ID 3147) is:
(nil ⊣)%UT
subgoal 12 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using ,)
apply Betas_env_sound_up with (Z::(strip_env Γ)).14 subgoals, subgoal 1 (ID 3414)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H2 : strip_env Γ ⊢ strip A' : !s1%UT
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H4 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip B ≡ strip B
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : strip A :: strip_env Γ ⊢ strip M : strip B
H6 : strip A :: strip_env Γ ⊢ strip M' : strip B
H7 : strip M ≡ strip M'
Z : UTM.Term
H3 : (strip A →→ Z)%UT
H8 : (strip A' →→ Z)%UT
============================
Z :: strip_env Γ ⊢ strip B : !s2%UT
subgoal 2 (ID 3415) is:
(strip A' :: strip_env Γ ⊣)%UT
subgoal 3 (ID 3416) is:
(strip A' :: strip_env Γ) →→e (Z :: strip_env Γ)
subgoal 4 (ID 3402) is:
strip A' :: strip_env Γ ⊢ strip M' : strip B
subgoal 5 (ID 3361) is:
strip_env Γ ⊢ (Π (strip A), strip B)%UT : !s3%UT
subgoal 6 (ID 3358) is:
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 7 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 8 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 9 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 10 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 11 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 12 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 13 (ID 3147) is:
(nil ⊣)%UT
subgoal 14 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using ,)
apply Betas_env_sound with ((strip A)::(strip_env Γ)). 15 subgoals, subgoal 1 (ID 3418)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H2 : strip_env Γ ⊢ strip A' : !s1%UT
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H4 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip B ≡ strip B
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : strip A :: strip_env Γ ⊢ strip M : strip B
H6 : strip A :: strip_env Γ ⊢ strip M' : strip B
H7 : strip M ≡ strip M'
Z : UTM.Term
H3 : (strip A →→ Z)%UT
H8 : (strip A' →→ Z)%UT
============================
strip A :: strip_env Γ ⊢ strip B : !s2%UT
subgoal 2 (ID 3419) is:
(strip A :: strip_env Γ) →→e (Z :: strip_env Γ)
subgoal 3 (ID 3415) is:
(strip A' :: strip_env Γ ⊣)%UT
subgoal 4 (ID 3416) is:
(strip A' :: strip_env Γ) →→e (Z :: strip_env Γ)
subgoal 5 (ID 3402) is:
strip A' :: strip_env Γ ⊢ strip M' : strip B
subgoal 6 (ID 3361) is:
strip_env Γ ⊢ (Π (strip A), strip B)%UT : !s3%UT
subgoal 7 (ID 3358) is:
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 8 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 9 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 10 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 11 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 12 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 13 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 14 (ID 3147) is:
(nil ⊣)%UT
subgoal 15 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using ,)
trivial. 14 subgoals, subgoal 1 (ID 3419)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H2 : strip_env Γ ⊢ strip A' : !s1%UT
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H4 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip B ≡ strip B
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : strip A :: strip_env Γ ⊢ strip M : strip B
H6 : strip A :: strip_env Γ ⊢ strip M' : strip B
H7 : strip M ≡ strip M'
Z : UTM.Term
H3 : (strip A →→ Z)%UT
H8 : (strip A' →→ Z)%UT
============================
(strip A :: strip_env Γ) →→e (Z :: strip_env Γ)
subgoal 2 (ID 3415) is:
(strip A' :: strip_env Γ ⊣)%UT
subgoal 3 (ID 3416) is:
(strip A' :: strip_env Γ) →→e (Z :: strip_env Γ)
subgoal 4 (ID 3402) is:
strip A' :: strip_env Γ ⊢ strip M' : strip B
subgoal 5 (ID 3361) is:
strip_env Γ ⊢ (Π (strip A), strip B)%UT : !s3%UT
subgoal 6 (ID 3358) is:
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 7 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 8 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 9 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 10 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 11 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 12 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 13 (ID 3147) is:
(nil ⊣)%UT
subgoal 14 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using ,)
apply Betas_env_hd; trivial.13 subgoals, subgoal 1 (ID 3415)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H2 : strip_env Γ ⊢ strip A' : !s1%UT
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H4 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip B ≡ strip B
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : strip A :: strip_env Γ ⊢ strip M : strip B
H6 : strip A :: strip_env Γ ⊢ strip M' : strip B
H7 : strip M ≡ strip M'
Z : UTM.Term
H3 : (strip A →→ Z)%UT
H8 : (strip A' →→ Z)%UT
============================
(strip A' :: strip_env Γ ⊣)%UT
subgoal 2 (ID 3416) is:
(strip A' :: strip_env Γ) →→e (Z :: strip_env Γ)
subgoal 3 (ID 3402) is:
strip A' :: strip_env Γ ⊢ strip M' : strip B
subgoal 4 (ID 3361) is:
strip_env Γ ⊢ (Π (strip A), strip B)%UT : !s3%UT
subgoal 5 (ID 3358) is:
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 6 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 7 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 8 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 9 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 10 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 11 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 12 (ID 3147) is:
(nil ⊣)%UT
subgoal 13 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using ,)
eauto. 12 subgoals, subgoal 1 (ID 3416)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H2 : strip_env Γ ⊢ strip A' : !s1%UT
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H4 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip B ≡ strip B
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : strip A :: strip_env Γ ⊢ strip M : strip B
H6 : strip A :: strip_env Γ ⊢ strip M' : strip B
H7 : strip M ≡ strip M'
Z : UTM.Term
H3 : (strip A →→ Z)%UT
H8 : (strip A' →→ Z)%UT
============================
(strip A' :: strip_env Γ) →→e (Z :: strip_env Γ)
subgoal 2 (ID 3402) is:
strip A' :: strip_env Γ ⊢ strip M' : strip B
subgoal 3 (ID 3361) is:
strip_env Γ ⊢ (Π (strip A), strip B)%UT : !s3%UT
subgoal 4 (ID 3358) is:
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 5 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 6 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 7 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 8 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 9 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 10 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 11 (ID 3147) is:
(nil ⊣)%UT
subgoal 12 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using ,)
apply Betas_env_hd; trivial. 11 subgoals, subgoal 1 (ID 3402)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H2 : strip_env Γ ⊢ strip A' : !s1%UT
H3 : strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H4 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip B ≡ strip B
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : strip A :: strip_env Γ ⊢ strip M : strip B
H6 : strip A :: strip_env Γ ⊢ strip M' : strip B
H7 : strip M ≡ strip M'
============================
strip A' :: strip_env Γ ⊢ strip M' : strip B
subgoal 2 (ID 3361) is:
strip_env Γ ⊢ (Π (strip A), strip B)%UT : !s3%UT
subgoal 3 (ID 3358) is:
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 4 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 5 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 6 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 7 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 8 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 9 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 10 (ID 3147) is:
(nil ⊣)%UT
subgoal 11 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using ,)
apply Betac_confl in H3 as (Z & ?& ?). 11 subgoals, subgoal 1 (ID 3441)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H2 : strip_env Γ ⊢ strip A' : !s1%UT
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H4 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip B ≡ strip B
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : strip A :: strip_env Γ ⊢ strip M : strip B
H6 : strip A :: strip_env Γ ⊢ strip M' : strip B
H7 : strip M ≡ strip M'
Z : UTM.Term
H3 : (strip A →→ Z)%UT
H8 : (strip A' →→ Z)%UT
============================
strip A' :: strip_env Γ ⊢ strip M' : strip B
subgoal 2 (ID 3361) is:
strip_env Γ ⊢ (Π (strip A), strip B)%UT : !s3%UT
subgoal 3 (ID 3358) is:
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 4 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 5 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 6 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 7 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 8 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 9 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 10 (ID 3147) is:
(nil ⊣)%UT
subgoal 11 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using ,)
apply Betas_env_sound_up with (Z::(strip_env Γ)).13 subgoals, subgoal 1 (ID 3443)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H2 : strip_env Γ ⊢ strip A' : !s1%UT
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H4 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip B ≡ strip B
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : strip A :: strip_env Γ ⊢ strip M : strip B
H6 : strip A :: strip_env Γ ⊢ strip M' : strip B
H7 : strip M ≡ strip M'
Z : UTM.Term
H3 : (strip A →→ Z)%UT
H8 : (strip A' →→ Z)%UT
============================
Z :: strip_env Γ ⊢ strip M' : strip B
subgoal 2 (ID 3444) is:
(strip A' :: strip_env Γ ⊣)%UT
subgoal 3 (ID 3445) is:
(strip A' :: strip_env Γ) →→e (Z :: strip_env Γ)
subgoal 4 (ID 3361) is:
strip_env Γ ⊢ (Π (strip A), strip B)%UT : !s3%UT
subgoal 5 (ID 3358) is:
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 6 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 7 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 8 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 9 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 10 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 11 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 12 (ID 3147) is:
(nil ⊣)%UT
subgoal 13 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using ,)
apply Betas_env_sound with ((strip A)::(strip_env Γ)). 14 subgoals, subgoal 1 (ID 3447)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H2 : strip_env Γ ⊢ strip A' : !s1%UT
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H4 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip B ≡ strip B
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : strip A :: strip_env Γ ⊢ strip M : strip B
H6 : strip A :: strip_env Γ ⊢ strip M' : strip B
H7 : strip M ≡ strip M'
Z : UTM.Term
H3 : (strip A →→ Z)%UT
H8 : (strip A' →→ Z)%UT
============================
strip A :: strip_env Γ ⊢ strip M' : strip B
subgoal 2 (ID 3448) is:
(strip A :: strip_env Γ) →→e (Z :: strip_env Γ)
subgoal 3 (ID 3444) is:
(strip A' :: strip_env Γ ⊣)%UT
subgoal 4 (ID 3445) is:
(strip A' :: strip_env Γ) →→e (Z :: strip_env Γ)
subgoal 5 (ID 3361) is:
strip_env Γ ⊢ (Π (strip A), strip B)%UT : !s3%UT
subgoal 6 (ID 3358) is:
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 7 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 8 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 9 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 10 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 11 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 12 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 13 (ID 3147) is:
(nil ⊣)%UT
subgoal 14 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using ,)
trivial. 13 subgoals, subgoal 1 (ID 3448)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H2 : strip_env Γ ⊢ strip A' : !s1%UT
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H4 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip B ≡ strip B
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : strip A :: strip_env Γ ⊢ strip M : strip B
H6 : strip A :: strip_env Γ ⊢ strip M' : strip B
H7 : strip M ≡ strip M'
Z : UTM.Term
H3 : (strip A →→ Z)%UT
H8 : (strip A' →→ Z)%UT
============================
(strip A :: strip_env Γ) →→e (Z :: strip_env Γ)
subgoal 2 (ID 3444) is:
(strip A' :: strip_env Γ ⊣)%UT
subgoal 3 (ID 3445) is:
(strip A' :: strip_env Γ) →→e (Z :: strip_env Γ)
subgoal 4 (ID 3361) is:
strip_env Γ ⊢ (Π (strip A), strip B)%UT : !s3%UT
subgoal 5 (ID 3358) is:
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 6 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 7 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 8 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 9 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 10 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 11 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 12 (ID 3147) is:
(nil ⊣)%UT
subgoal 13 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using ,)
apply Betas_env_hd; trivial.12 subgoals, subgoal 1 (ID 3444)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H2 : strip_env Γ ⊢ strip A' : !s1%UT
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H4 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip B ≡ strip B
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : strip A :: strip_env Γ ⊢ strip M : strip B
H6 : strip A :: strip_env Γ ⊢ strip M' : strip B
H7 : strip M ≡ strip M'
Z : UTM.Term
H3 : (strip A →→ Z)%UT
H8 : (strip A' →→ Z)%UT
============================
(strip A' :: strip_env Γ ⊣)%UT
subgoal 2 (ID 3445) is:
(strip A' :: strip_env Γ) →→e (Z :: strip_env Γ)
subgoal 3 (ID 3361) is:
strip_env Γ ⊢ (Π (strip A), strip B)%UT : !s3%UT
subgoal 4 (ID 3358) is:
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 5 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 6 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 7 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 8 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 9 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 10 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 11 (ID 3147) is:
(nil ⊣)%UT
subgoal 12 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using ,)
eauto. 11 subgoals, subgoal 1 (ID 3445)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H2 : strip_env Γ ⊢ strip A' : !s1%UT
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H4 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip B ≡ strip B
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : strip A :: strip_env Γ ⊢ strip M : strip B
H6 : strip A :: strip_env Γ ⊢ strip M' : strip B
H7 : strip M ≡ strip M'
Z : UTM.Term
H3 : (strip A →→ Z)%UT
H8 : (strip A' →→ Z)%UT
============================
(strip A' :: strip_env Γ) →→e (Z :: strip_env Γ)
subgoal 2 (ID 3361) is:
strip_env Γ ⊢ (Π (strip A), strip B)%UT : !s3%UT
subgoal 3 (ID 3358) is:
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 4 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 5 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 6 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 7 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 8 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 9 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 10 (ID 3147) is:
(nil ⊣)%UT
subgoal 11 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using ,)
apply Betas_env_hd; trivial. 10 subgoals, subgoal 1 (ID 3361)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H2 : strip_env Γ ⊢ strip A' : !s1%UT
H3 : strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H4 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip B ≡ strip B
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : strip A :: strip_env Γ ⊢ strip M : strip B
H6 : strip A :: strip_env Γ ⊢ strip M' : strip B
H7 : strip M ≡ strip M'
============================
strip_env Γ ⊢ (Π (strip A), strip B)%UT : !s3%UT
subgoal 2 (ID 3358) is:
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 3 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 4 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 5 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 6 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 7 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 8 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 9 (ID 3147) is:
(nil ⊣)%UT
subgoal 10 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using ,)
apply PTS.cPi with s1 s2; trivial. 9 subgoals, subgoal 1 (ID 3358)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H2 : strip_env Γ ⊢ strip A' : !s1%UT
H3 : strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H4 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip B ≡ strip B
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : strip A :: strip_env Γ ⊢ strip M : strip B
H6 : strip A :: strip_env Γ ⊢ strip M' : strip B
H7 : strip M ≡ strip M'
============================
(λ [strip A], strip M)%UT ≡ (λ [strip A'], strip M')%UT
subgoal 2 (ID 3079) is:
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 3 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 4 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 5 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 6 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 7 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 8 (ID 3147) is:
(nil ⊣)%UT
subgoal 9 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using ,)
intuition.8 subgoals, subgoal 1 (ID 3079)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
B : Term
B' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : (strip_env Γ ⊢ strip A : !s1%UT) /\
(strip_env Γ ⊢ strip A' : !s1%UT) /\ strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : (strip A :: strip_env Γ ⊢ strip B : !s2%UT) /\
(strip A :: strip_env Γ ⊢ strip B' : !s2%UT) /\ strip B ≡ strip B'
t1 : Γ ⊢ M ▹ M' : Π (A), B
H1 : (strip_env Γ ⊢ strip M : (Π (strip A), strip B)%UT) /\
(strip_env Γ ⊢ strip M' : (Π (strip A), strip B)%UT) /\
strip M ≡ strip M'
t2 : Γ ⊢ N ▹ N' : A
H2 : (strip_env Γ ⊢ strip N : strip A) /\
(strip_env Γ ⊢ strip N' : strip A) /\ strip N ≡ strip N'
============================
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 2 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 3 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 4 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 5 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 6 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 7 (ID 3147) is:
(nil ⊣)%UT
subgoal 8 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using ,)
destruct H as (? & ?& ?), H0 as (? & ?& ?), H1 as (? & ? & ?), H2 as (? & ?& ?).8 subgoals, subgoal 1 (ID 3554)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
B : Term
B' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H3 : strip_env Γ ⊢ strip A' : !s1%UT
H4 : strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip A :: strip_env Γ ⊢ strip B' : !s2%UT
H6 : strip B ≡ strip B'
t1 : Γ ⊢ M ▹ M' : Π (A), B
H1 : strip_env Γ ⊢ strip M : (Π (strip A), strip B)%UT
H7 : strip_env Γ ⊢ strip M' : (Π (strip A), strip B)%UT
H8 : strip M ≡ strip M'
t2 : Γ ⊢ N ▹ N' : A
H2 : strip_env Γ ⊢ strip N : strip A
H9 : strip_env Γ ⊢ strip N' : strip A
H10 : strip N ≡ strip N'
============================
(strip_env Γ ⊢ strip M · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 2 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 3 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 4 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 5 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 6 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 7 (ID 3147) is:
(nil ⊣)%UT
subgoal 8 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using ,)
split. 9 subgoals, subgoal 1 (ID 3556)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
B : Term
B' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H3 : strip_env Γ ⊢ strip A' : !s1%UT
H4 : strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip A :: strip_env Γ ⊢ strip B' : !s2%UT
H6 : strip B ≡ strip B'
t1 : Γ ⊢ M ▹ M' : Π (A), B
H1 : strip_env Γ ⊢ strip M : (Π (strip A), strip B)%UT
H7 : strip_env Γ ⊢ strip M' : (Π (strip A), strip B)%UT
H8 : strip M ≡ strip M'
t2 : Γ ⊢ N ▹ N' : A
H2 : strip_env Γ ⊢ strip N : strip A
H9 : strip_env Γ ⊢ strip N' : strip A
H10 : strip N ≡ strip N'
============================
strip_env Γ ⊢ strip M · strip N : strip B [ ← N]
subgoal 2 (ID 3557) is:
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 3 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 4 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 5 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 6 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 7 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 8 (ID 3147) is:
(nil ⊣)%UT
subgoal 9 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using ,)
rewrite strip_subst. 9 subgoals, subgoal 1 (ID 3558)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
B : Term
B' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H3 : strip_env Γ ⊢ strip A' : !s1%UT
H4 : strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip A :: strip_env Γ ⊢ strip B' : !s2%UT
H6 : strip B ≡ strip B'
t1 : Γ ⊢ M ▹ M' : Π (A), B
H1 : strip_env Γ ⊢ strip M : (Π (strip A), strip B)%UT
H7 : strip_env Γ ⊢ strip M' : (Π (strip A), strip B)%UT
H8 : strip M ≡ strip M'
t2 : Γ ⊢ N ▹ N' : A
H2 : strip_env Γ ⊢ strip N : strip A
H9 : strip_env Γ ⊢ strip N' : strip A
H10 : strip N ≡ strip N'
============================
strip_env Γ ⊢ strip M · strip N : ((strip B) [ ← strip N])%UT
subgoal 2 (ID 3557) is:
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 3 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 4 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 5 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 6 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 7 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 8 (ID 3147) is:
(nil ⊣)%UT
subgoal 9 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using ,)
apply PTS.cApp with (strip A); trivial. 8 subgoals, subgoal 1 (ID 3557)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
B : Term
B' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H3 : strip_env Γ ⊢ strip A' : !s1%UT
H4 : strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip A :: strip_env Γ ⊢ strip B' : !s2%UT
H6 : strip B ≡ strip B'
t1 : Γ ⊢ M ▹ M' : Π (A), B
H1 : strip_env Γ ⊢ strip M : (Π (strip A), strip B)%UT
H7 : strip_env Γ ⊢ strip M' : (Π (strip A), strip B)%UT
H8 : strip M ≡ strip M'
t2 : Γ ⊢ N ▹ N' : A
H2 : strip_env Γ ⊢ strip N : strip A
H9 : strip_env Γ ⊢ strip N' : strip A
H10 : strip N ≡ strip N'
============================
(strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]) /\
strip M · strip N ≡ strip M' · strip N'
subgoal 2 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 3 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 4 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 5 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 6 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 7 (ID 3147) is:
(nil ⊣)%UT
subgoal 8 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using ,)
split. 9 subgoals, subgoal 1 (ID 3562)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
B : Term
B' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H3 : strip_env Γ ⊢ strip A' : !s1%UT
H4 : strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip A :: strip_env Γ ⊢ strip B' : !s2%UT
H6 : strip B ≡ strip B'
t1 : Γ ⊢ M ▹ M' : Π (A), B
H1 : strip_env Γ ⊢ strip M : (Π (strip A), strip B)%UT
H7 : strip_env Γ ⊢ strip M' : (Π (strip A), strip B)%UT
H8 : strip M ≡ strip M'
t2 : Γ ⊢ N ▹ N' : A
H2 : strip_env Γ ⊢ strip N : strip A
H9 : strip_env Γ ⊢ strip N' : strip A
H10 : strip N ≡ strip N'
============================
strip_env Γ ⊢ strip M' · strip N' : strip B [ ← N]
subgoal 2 (ID 3563) is:
strip M · strip N ≡ strip M' · strip N'
subgoal 3 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 4 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 5 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 6 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 7 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 8 (ID 3147) is:
(nil ⊣)%UT
subgoal 9 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using ,)
rewrite strip_subst.9 subgoals, subgoal 1 (ID 3564)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
B : Term
B' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H3 : strip_env Γ ⊢ strip A' : !s1%UT
H4 : strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip A :: strip_env Γ ⊢ strip B' : !s2%UT
H6 : strip B ≡ strip B'
t1 : Γ ⊢ M ▹ M' : Π (A), B
H1 : strip_env Γ ⊢ strip M : (Π (strip A), strip B)%UT
H7 : strip_env Γ ⊢ strip M' : (Π (strip A), strip B)%UT
H8 : strip M ≡ strip M'
t2 : Γ ⊢ N ▹ N' : A
H2 : strip_env Γ ⊢ strip N : strip A
H9 : strip_env Γ ⊢ strip N' : strip A
H10 : strip N ≡ strip N'
============================
strip_env Γ ⊢ strip M' · strip N' : ((strip B) [ ← strip N])%UT
subgoal 2 (ID 3563) is:
strip M · strip N ≡ strip M' · strip N'
subgoal 3 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 4 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 5 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 6 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 7 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 8 (ID 3147) is:
(nil ⊣)%UT
subgoal 9 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using ,)
apply PTS.Cnv with ((strip B)[← strip N'])%UT s2. 11 subgoals, subgoal 1 (ID 3565)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
B : Term
B' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H3 : strip_env Γ ⊢ strip A' : !s1%UT
H4 : strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip A :: strip_env Γ ⊢ strip B' : !s2%UT
H6 : strip B ≡ strip B'
t1 : Γ ⊢ M ▹ M' : Π (A), B
H1 : strip_env Γ ⊢ strip M : (Π (strip A), strip B)%UT
H7 : strip_env Γ ⊢ strip M' : (Π (strip A), strip B)%UT
H8 : strip M ≡ strip M'
t2 : Γ ⊢ N ▹ N' : A
H2 : strip_env Γ ⊢ strip N : strip A
H9 : strip_env Γ ⊢ strip N' : strip A
H10 : strip N ≡ strip N'
============================
((strip B) [ ← strip N'])%UT ≡ ((strip B) [ ← strip N])%UT
subgoal 2 (ID 3566) is:
strip_env Γ ⊢ strip M' · strip N' : ((strip B) [ ← strip N'])%UT
subgoal 3 (ID 3567) is:
strip_env Γ ⊢ ((strip B) [ ← strip N])%UT : !s2%UT
subgoal 4 (ID 3563) is:
strip M · strip N ≡ strip M' · strip N'
subgoal 5 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 6 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 7 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 8 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 9 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 10 (ID 3147) is:
(nil ⊣)%UT
subgoal 11 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using ,)
intuition. 10 subgoals, subgoal 1 (ID 3566)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
B : Term
B' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H3 : strip_env Γ ⊢ strip A' : !s1%UT
H4 : strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip A :: strip_env Γ ⊢ strip B' : !s2%UT
H6 : strip B ≡ strip B'
t1 : Γ ⊢ M ▹ M' : Π (A), B
H1 : strip_env Γ ⊢ strip M : (Π (strip A), strip B)%UT
H7 : strip_env Γ ⊢ strip M' : (Π (strip A), strip B)%UT
H8 : strip M ≡ strip M'
t2 : Γ ⊢ N ▹ N' : A
H2 : strip_env Γ ⊢ strip N : strip A
H9 : strip_env Γ ⊢ strip N' : strip A
H10 : strip N ≡ strip N'
============================
strip_env Γ ⊢ strip M' · strip N' : ((strip B) [ ← strip N'])%UT
subgoal 2 (ID 3567) is:
strip_env Γ ⊢ ((strip B) [ ← strip N])%UT : !s2%UT
subgoal 3 (ID 3563) is:
strip M · strip N ≡ strip M' · strip N'
subgoal 4 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 5 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 6 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 7 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 8 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 9 (ID 3147) is:
(nil ⊣)%UT
subgoal 10 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using ,)
apply PTS.cApp with (strip A); trivial.9 subgoals, subgoal 1 (ID 3567)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
B : Term
B' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H3 : strip_env Γ ⊢ strip A' : !s1%UT
H4 : strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip A :: strip_env Γ ⊢ strip B' : !s2%UT
H6 : strip B ≡ strip B'
t1 : Γ ⊢ M ▹ M' : Π (A), B
H1 : strip_env Γ ⊢ strip M : (Π (strip A), strip B)%UT
H7 : strip_env Γ ⊢ strip M' : (Π (strip A), strip B)%UT
H8 : strip M ≡ strip M'
t2 : Γ ⊢ N ▹ N' : A
H2 : strip_env Γ ⊢ strip N : strip A
H9 : strip_env Γ ⊢ strip N' : strip A
H10 : strip N ≡ strip N'
============================
strip_env Γ ⊢ ((strip B) [ ← strip N])%UT : !s2%UT
subgoal 2 (ID 3563) is:
strip M · strip N ≡ strip M' · strip N'
subgoal 3 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 4 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 5 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 6 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 7 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 8 (ID 3147) is:
(nil ⊣)%UT
subgoal 9 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using ,)
change (!s2)%UT with (!s2[← strip N])%UT. 9 subgoals, subgoal 1 (ID 3603)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
B : Term
B' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H3 : strip_env Γ ⊢ strip A' : !s1%UT
H4 : strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip A :: strip_env Γ ⊢ strip B' : !s2%UT
H6 : strip B ≡ strip B'
t1 : Γ ⊢ M ▹ M' : Π (A), B
H1 : strip_env Γ ⊢ strip M : (Π (strip A), strip B)%UT
H7 : strip_env Γ ⊢ strip M' : (Π (strip A), strip B)%UT
H8 : strip M ≡ strip M'
t2 : Γ ⊢ N ▹ N' : A
H2 : strip_env Γ ⊢ strip N : strip A
H9 : strip_env Γ ⊢ strip N' : strip A
H10 : strip N ≡ strip N'
============================
strip_env Γ ⊢ ((strip B) [ ← strip N])%UT : (!s2 [ ← strip N])%UT
subgoal 2 (ID 3563) is:
strip M · strip N ≡ strip M' · strip N'
subgoal 3 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 4 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 5 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 6 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 7 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 8 (ID 3147) is:
(nil ⊣)%UT
subgoal 9 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using ,)
eapply PTS.substitution. 12 subgoals, subgoal 1 (ID 3616)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
B : Term
B' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H3 : strip_env Γ ⊢ strip A' : !s1%UT
H4 : strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip A :: strip_env Γ ⊢ strip B' : !s2%UT
H6 : strip B ≡ strip B'
t1 : Γ ⊢ M ▹ M' : Π (A), B
H1 : strip_env Γ ⊢ strip M : (Π (strip A), strip B)%UT
H7 : strip_env Γ ⊢ strip M' : (Π (strip A), strip B)%UT
H8 : strip M ≡ strip M'
t2 : Γ ⊢ N ▹ N' : A
H2 : strip_env Γ ⊢ strip N : strip A
H9 : strip_env Γ ⊢ strip N' : strip A
H10 : strip N ≡ strip N'
============================
?3615 ⊢ strip B : !s2%UT
subgoal 2 (ID 3619) is:
?3617 ⊢ strip N : ?3618
subgoal 3 (ID 3620) is:
UEM.sub_in_env ?3617 (strip N) ?3618 0 ?3615 (strip_env Γ)
subgoal 4 (ID 3621) is:
(?3615 ⊣)%UT
subgoal 5 (ID 3563) is:
strip M · strip N ≡ strip M' · strip N'
subgoal 6 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 7 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 8 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 9 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 10 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 11 (ID 3147) is:
(nil ⊣)%UT
subgoal 12 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 open, ?3617 open, ?3618 open,)
apply H0. 11 subgoals, subgoal 1 (ID 3619)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
B : Term
B' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H3 : strip_env Γ ⊢ strip A' : !s1%UT
H4 : strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip A :: strip_env Γ ⊢ strip B' : !s2%UT
H6 : strip B ≡ strip B'
t1 : Γ ⊢ M ▹ M' : Π (A), B
H1 : strip_env Γ ⊢ strip M : (Π (strip A), strip B)%UT
H7 : strip_env Γ ⊢ strip M' : (Π (strip A), strip B)%UT
H8 : strip M ≡ strip M'
t2 : Γ ⊢ N ▹ N' : A
H2 : strip_env Γ ⊢ strip N : strip A
H9 : strip_env Γ ⊢ strip N' : strip A
H10 : strip N ≡ strip N'
============================
?3617 ⊢ strip N : ?3618
subgoal 2 (ID 3620) is:
UEM.sub_in_env ?3617 (strip N) ?3618 0 (strip A :: strip_env Γ)
(strip_env Γ)
subgoal 3 (ID 3621) is:
(strip A :: strip_env Γ ⊣)%UT
subgoal 4 (ID 3563) is:
strip M · strip N ≡ strip M' · strip N'
subgoal 5 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 6 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 7 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 8 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 9 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 10 (ID 3147) is:
(nil ⊣)%UT
subgoal 11 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 open, ?3618 open,)
apply H2. 10 subgoals, subgoal 1 (ID 3620)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
B : Term
B' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H3 : strip_env Γ ⊢ strip A' : !s1%UT
H4 : strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip A :: strip_env Γ ⊢ strip B' : !s2%UT
H6 : strip B ≡ strip B'
t1 : Γ ⊢ M ▹ M' : Π (A), B
H1 : strip_env Γ ⊢ strip M : (Π (strip A), strip B)%UT
H7 : strip_env Γ ⊢ strip M' : (Π (strip A), strip B)%UT
H8 : strip M ≡ strip M'
t2 : Γ ⊢ N ▹ N' : A
H2 : strip_env Γ ⊢ strip N : strip A
H9 : strip_env Γ ⊢ strip N' : strip A
H10 : strip N ≡ strip N'
============================
UEM.sub_in_env (strip_env Γ) (strip N) (strip A) 0
(strip A :: strip_env Γ) (strip_env Γ)
subgoal 2 (ID 3621) is:
(strip A :: strip_env Γ ⊣)%UT
subgoal 3 (ID 3563) is:
strip M · strip N ≡ strip M' · strip N'
subgoal 4 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 5 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 6 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 7 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 8 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 9 (ID 3147) is:
(nil ⊣)%UT
subgoal 10 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using ,)
constructor. 9 subgoals, subgoal 1 (ID 3621)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
B : Term
B' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H3 : strip_env Γ ⊢ strip A' : !s1%UT
H4 : strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip A :: strip_env Γ ⊢ strip B' : !s2%UT
H6 : strip B ≡ strip B'
t1 : Γ ⊢ M ▹ M' : Π (A), B
H1 : strip_env Γ ⊢ strip M : (Π (strip A), strip B)%UT
H7 : strip_env Γ ⊢ strip M' : (Π (strip A), strip B)%UT
H8 : strip M ≡ strip M'
t2 : Γ ⊢ N ▹ N' : A
H2 : strip_env Γ ⊢ strip N : strip A
H9 : strip_env Γ ⊢ strip N' : strip A
H10 : strip N ≡ strip N'
============================
(strip A :: strip_env Γ ⊣)%UT
subgoal 2 (ID 3563) is:
strip M · strip N ≡ strip M' · strip N'
subgoal 3 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 4 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 5 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 6 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 7 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 8 (ID 3147) is:
(nil ⊣)%UT
subgoal 9 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using ,)
eauto.8 subgoals, subgoal 1 (ID 3563)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
B : Term
B' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H3 : strip_env Γ ⊢ strip A' : !s1%UT
H4 : strip A ≡ strip A'
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H5 : strip A :: strip_env Γ ⊢ strip B' : !s2%UT
H6 : strip B ≡ strip B'
t1 : Γ ⊢ M ▹ M' : Π (A), B
H1 : strip_env Γ ⊢ strip M : (Π (strip A), strip B)%UT
H7 : strip_env Γ ⊢ strip M' : (Π (strip A), strip B)%UT
H8 : strip M ≡ strip M'
t2 : Γ ⊢ N ▹ N' : A
H2 : strip_env Γ ⊢ strip N : strip A
H9 : strip_env Γ ⊢ strip N' : strip A
H10 : strip N ≡ strip N'
============================
strip M · strip N ≡ strip M' · strip N'
subgoal 2 (ID 3107) is:
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 3 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 4 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 5 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 6 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 7 (ID 3147) is:
(nil ⊣)%UT
subgoal 8 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using ,)
intuition.7 subgoals, subgoal 1 (ID 3107)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : (strip_env Γ ⊢ strip A : !s1%UT) /\
(strip_env Γ ⊢ strip A : !s1%UT) /\ strip A ≡ strip A
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : (strip_env Γ ⊢ strip A' : !s1%UT) /\
(strip_env Γ ⊢ strip A' : !s1%UT) /\ strip A' ≡ strip A'
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : (strip_env Γ ⊢ strip A0 : !s1%UT) /\
(strip_env Γ ⊢ strip A : !s1%UT) /\ strip A0 ≡ strip A
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : (strip_env Γ ⊢ strip A0 : !s1%UT) /\
(strip_env Γ ⊢ strip A' : !s1%UT) /\ strip A0 ≡ strip A'
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : (strip A :: strip_env Γ ⊢ strip B : !s2%UT) /\
(strip A :: strip_env Γ ⊢ strip B : !s2%UT) /\ strip B ≡ strip B
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : (strip A :: strip_env Γ ⊢ strip M : strip B) /\
(strip A :: strip_env Γ ⊢ strip M' : strip B) /\ strip M ≡ strip M'
t5 : Γ ⊢ N ▹ N' : A
H5 : (strip_env Γ ⊢ strip N : strip A) /\
(strip_env Γ ⊢ strip N' : strip A) /\ strip N ≡ strip N'
============================
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 2 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 3 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 4 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 5 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 6 (ID 3147) is:
(nil ⊣)%UT
subgoal 7 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using ,)
destruct H as (? & ?& ?), H0 as (? & ?& ?), H1 as (? & ? & ?), H2 as (? & ?& ?), H3 as (? & ?& ?),
H4 as (? & ?& ?), H5 as (? & ?& ?).7 subgoals, subgoal 1 (ID 3763)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H6 : strip_env Γ ⊢ strip A : !s1%UT
H7 : strip A ≡ strip A
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢ strip A' : !s1%UT
H8 : strip_env Γ ⊢ strip A' : !s1%UT
H9 : strip A' ≡ strip A'
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢ strip A0 : !s1%UT
H10 : strip_env Γ ⊢ strip A : !s1%UT
H11 : strip A0 ≡ strip A
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢ strip A0 : !s1%UT
H12 : strip_env Γ ⊢ strip A' : !s1%UT
H13 : strip A0 ≡ strip A'
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H14 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H15 : strip B ≡ strip B
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢ strip M : strip B
H16 : strip A :: strip_env Γ ⊢ strip M' : strip B
H17 : strip M ≡ strip M'
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢ strip N : strip A
H18 : strip_env Γ ⊢ strip N' : strip A
H19 : strip N ≡ strip N'
============================
(strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]) /\
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 2 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 3 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 4 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 5 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 6 (ID 3147) is:
(nil ⊣)%UT
subgoal 7 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using ,)
split. 8 subgoals, subgoal 1 (ID 3765)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H6 : strip_env Γ ⊢ strip A : !s1%UT
H7 : strip A ≡ strip A
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢ strip A' : !s1%UT
H8 : strip_env Γ ⊢ strip A' : !s1%UT
H9 : strip A' ≡ strip A'
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢ strip A0 : !s1%UT
H10 : strip_env Γ ⊢ strip A : !s1%UT
H11 : strip A0 ≡ strip A
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢ strip A0 : !s1%UT
H12 : strip_env Γ ⊢ strip A' : !s1%UT
H13 : strip A0 ≡ strip A'
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H14 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H15 : strip B ≡ strip B
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢ strip M : strip B
H16 : strip A :: strip_env Γ ⊢ strip M' : strip B
H17 : strip M ≡ strip M'
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢ strip N : strip A
H18 : strip_env Γ ⊢ strip N' : strip A
H19 : strip N ≡ strip N'
============================
strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N : strip B [ ← N]
subgoal 2 (ID 3766) is:
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 3 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 4 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 5 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 6 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 7 (ID 3147) is:
(nil ⊣)%UT
subgoal 8 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using ,)
rewrite strip_subst. 8 subgoals, subgoal 1 (ID 3767)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H6 : strip_env Γ ⊢ strip A : !s1%UT
H7 : strip A ≡ strip A
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢ strip A' : !s1%UT
H8 : strip_env Γ ⊢ strip A' : !s1%UT
H9 : strip A' ≡ strip A'
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢ strip A0 : !s1%UT
H10 : strip_env Γ ⊢ strip A : !s1%UT
H11 : strip A0 ≡ strip A
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢ strip A0 : !s1%UT
H12 : strip_env Γ ⊢ strip A' : !s1%UT
H13 : strip A0 ≡ strip A'
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H14 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H15 : strip B ≡ strip B
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢ strip M : strip B
H16 : strip A :: strip_env Γ ⊢ strip M' : strip B
H17 : strip M ≡ strip M'
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢ strip N : strip A
H18 : strip_env Γ ⊢ strip N' : strip A
H19 : strip N ≡ strip N'
============================
strip_env Γ ⊢ (λ [strip A], strip M)%UT · strip N
: ((strip B) [ ← strip N])%UT
subgoal 2 (ID 3766) is:
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 3 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 4 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 5 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 6 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 7 (ID 3147) is:
(nil ⊣)%UT
subgoal 8 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using ,)
apply PTS.cApp with (strip A). 9 subgoals, subgoal 1 (ID 3768)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H6 : strip_env Γ ⊢ strip A : !s1%UT
H7 : strip A ≡ strip A
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢ strip A' : !s1%UT
H8 : strip_env Γ ⊢ strip A' : !s1%UT
H9 : strip A' ≡ strip A'
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢ strip A0 : !s1%UT
H10 : strip_env Γ ⊢ strip A : !s1%UT
H11 : strip A0 ≡ strip A
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢ strip A0 : !s1%UT
H12 : strip_env Γ ⊢ strip A' : !s1%UT
H13 : strip A0 ≡ strip A'
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H14 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H15 : strip B ≡ strip B
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢ strip M : strip B
H16 : strip A :: strip_env Γ ⊢ strip M' : strip B
H17 : strip M ≡ strip M'
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢ strip N : strip A
H18 : strip_env Γ ⊢ strip N' : strip A
H19 : strip N ≡ strip N'
============================
strip_env Γ ⊢ (λ [strip A], strip M)%UT : (Π (strip A), strip B)%UT
subgoal 2 (ID 3769) is:
strip_env Γ ⊢ strip N : strip A
subgoal 3 (ID 3766) is:
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 4 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 5 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 6 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 7 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 8 (ID 3147) is:
(nil ⊣)%UT
subgoal 9 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using ,)
apply PTS.cLa with s1 s2 s3; trivial. 8 subgoals, subgoal 1 (ID 3769)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H6 : strip_env Γ ⊢ strip A : !s1%UT
H7 : strip A ≡ strip A
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢ strip A' : !s1%UT
H8 : strip_env Γ ⊢ strip A' : !s1%UT
H9 : strip A' ≡ strip A'
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢ strip A0 : !s1%UT
H10 : strip_env Γ ⊢ strip A : !s1%UT
H11 : strip A0 ≡ strip A
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢ strip A0 : !s1%UT
H12 : strip_env Γ ⊢ strip A' : !s1%UT
H13 : strip A0 ≡ strip A'
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H14 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H15 : strip B ≡ strip B
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢ strip M : strip B
H16 : strip A :: strip_env Γ ⊢ strip M' : strip B
H17 : strip M ≡ strip M'
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢ strip N : strip A
H18 : strip_env Γ ⊢ strip N' : strip A
H19 : strip N ≡ strip N'
============================
strip_env Γ ⊢ strip N : strip A
subgoal 2 (ID 3766) is:
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 3 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 4 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 5 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 6 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 7 (ID 3147) is:
(nil ⊣)%UT
subgoal 8 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using ,)
trivial.7 subgoals, subgoal 1 (ID 3766)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H6 : strip_env Γ ⊢ strip A : !s1%UT
H7 : strip A ≡ strip A
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢ strip A' : !s1%UT
H8 : strip_env Γ ⊢ strip A' : !s1%UT
H9 : strip A' ≡ strip A'
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢ strip A0 : !s1%UT
H10 : strip_env Γ ⊢ strip A : !s1%UT
H11 : strip A0 ≡ strip A
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢ strip A0 : !s1%UT
H12 : strip_env Γ ⊢ strip A' : !s1%UT
H13 : strip A0 ≡ strip A'
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H14 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H15 : strip B ≡ strip B
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢ strip M : strip B
H16 : strip A :: strip_env Γ ⊢ strip M' : strip B
H17 : strip M ≡ strip M'
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢ strip N : strip A
H18 : strip_env Γ ⊢ strip N' : strip A
H19 : strip N ≡ strip N'
============================
(strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]) /\
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 2 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 3 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 4 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 5 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 6 (ID 3147) is:
(nil ⊣)%UT
subgoal 7 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using ,)
split. 8 subgoals, subgoal 1 (ID 3775)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H6 : strip_env Γ ⊢ strip A : !s1%UT
H7 : strip A ≡ strip A
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢ strip A' : !s1%UT
H8 : strip_env Γ ⊢ strip A' : !s1%UT
H9 : strip A' ≡ strip A'
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢ strip A0 : !s1%UT
H10 : strip_env Γ ⊢ strip A : !s1%UT
H11 : strip A0 ≡ strip A
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢ strip A0 : !s1%UT
H12 : strip_env Γ ⊢ strip A' : !s1%UT
H13 : strip A0 ≡ strip A'
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H14 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H15 : strip B ≡ strip B
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢ strip M : strip B
H16 : strip A :: strip_env Γ ⊢ strip M' : strip B
H17 : strip M ≡ strip M'
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢ strip N : strip A
H18 : strip_env Γ ⊢ strip N' : strip A
H19 : strip N ≡ strip N'
============================
strip_env Γ ⊢ strip M' [ ← N'] : strip B [ ← N]
subgoal 2 (ID 3776) is:
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 3 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 4 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 5 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 6 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 7 (ID 3147) is:
(nil ⊣)%UT
subgoal 8 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using ,)
rewrite 2! strip_subst. 8 subgoals, subgoal 1 (ID 3778)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H6 : strip_env Γ ⊢ strip A : !s1%UT
H7 : strip A ≡ strip A
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢ strip A' : !s1%UT
H8 : strip_env Γ ⊢ strip A' : !s1%UT
H9 : strip A' ≡ strip A'
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢ strip A0 : !s1%UT
H10 : strip_env Γ ⊢ strip A : !s1%UT
H11 : strip A0 ≡ strip A
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢ strip A0 : !s1%UT
H12 : strip_env Γ ⊢ strip A' : !s1%UT
H13 : strip A0 ≡ strip A'
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H14 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H15 : strip B ≡ strip B
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢ strip M : strip B
H16 : strip A :: strip_env Γ ⊢ strip M' : strip B
H17 : strip M ≡ strip M'
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢ strip N : strip A
H18 : strip_env Γ ⊢ strip N' : strip A
H19 : strip N ≡ strip N'
============================
strip_env Γ ⊢ ((strip M') [ ← strip N'])%UT : ((strip B) [ ← strip N])%UT
subgoal 2 (ID 3776) is:
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 3 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 4 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 5 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 6 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 7 (ID 3147) is:
(nil ⊣)%UT
subgoal 8 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using ,)
apply PTS.Cnv with ((strip B)[← strip N'])%UT s2. 10 subgoals, subgoal 1 (ID 3779)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H6 : strip_env Γ ⊢ strip A : !s1%UT
H7 : strip A ≡ strip A
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢ strip A' : !s1%UT
H8 : strip_env Γ ⊢ strip A' : !s1%UT
H9 : strip A' ≡ strip A'
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢ strip A0 : !s1%UT
H10 : strip_env Γ ⊢ strip A : !s1%UT
H11 : strip A0 ≡ strip A
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢ strip A0 : !s1%UT
H12 : strip_env Γ ⊢ strip A' : !s1%UT
H13 : strip A0 ≡ strip A'
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H14 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H15 : strip B ≡ strip B
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢ strip M : strip B
H16 : strip A :: strip_env Γ ⊢ strip M' : strip B
H17 : strip M ≡ strip M'
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢ strip N : strip A
H18 : strip_env Γ ⊢ strip N' : strip A
H19 : strip N ≡ strip N'
============================
((strip B) [ ← strip N'])%UT ≡ ((strip B) [ ← strip N])%UT
subgoal 2 (ID 3780) is:
strip_env Γ ⊢ ((strip M') [ ← strip N'])%UT : ((strip B) [ ← strip N'])%UT
subgoal 3 (ID 3781) is:
strip_env Γ ⊢ ((strip B) [ ← strip N])%UT : !s2%UT
subgoal 4 (ID 3776) is:
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 5 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 6 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 7 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 8 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 9 (ID 3147) is:
(nil ⊣)%UT
subgoal 10 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using ,)
intuition. 9 subgoals, subgoal 1 (ID 3780)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H6 : strip_env Γ ⊢ strip A : !s1%UT
H7 : strip A ≡ strip A
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢ strip A' : !s1%UT
H8 : strip_env Γ ⊢ strip A' : !s1%UT
H9 : strip A' ≡ strip A'
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢ strip A0 : !s1%UT
H10 : strip_env Γ ⊢ strip A : !s1%UT
H11 : strip A0 ≡ strip A
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢ strip A0 : !s1%UT
H12 : strip_env Γ ⊢ strip A' : !s1%UT
H13 : strip A0 ≡ strip A'
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H14 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H15 : strip B ≡ strip B
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢ strip M : strip B
H16 : strip A :: strip_env Γ ⊢ strip M' : strip B
H17 : strip M ≡ strip M'
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢ strip N : strip A
H18 : strip_env Γ ⊢ strip N' : strip A
H19 : strip N ≡ strip N'
============================
strip_env Γ ⊢ ((strip M') [ ← strip N'])%UT : ((strip B) [ ← strip N'])%UT
subgoal 2 (ID 3781) is:
strip_env Γ ⊢ ((strip B) [ ← strip N])%UT : !s2%UT
subgoal 3 (ID 3776) is:
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 4 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 5 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 6 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 7 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 8 (ID 3147) is:
(nil ⊣)%UT
subgoal 9 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using ,)
eapply PTS.substitution.12 subgoals, subgoal 1 (ID 3838)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H6 : strip_env Γ ⊢ strip A : !s1%UT
H7 : strip A ≡ strip A
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢ strip A' : !s1%UT
H8 : strip_env Γ ⊢ strip A' : !s1%UT
H9 : strip A' ≡ strip A'
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢ strip A0 : !s1%UT
H10 : strip_env Γ ⊢ strip A : !s1%UT
H11 : strip A0 ≡ strip A
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢ strip A0 : !s1%UT
H12 : strip_env Γ ⊢ strip A' : !s1%UT
H13 : strip A0 ≡ strip A'
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H14 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H15 : strip B ≡ strip B
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢ strip M : strip B
H16 : strip A :: strip_env Γ ⊢ strip M' : strip B
H17 : strip M ≡ strip M'
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢ strip N : strip A
H18 : strip_env Γ ⊢ strip N' : strip A
H19 : strip N ≡ strip N'
============================
?3837 ⊢ strip M' : strip B
subgoal 2 (ID 3841) is:
?3839 ⊢ strip N' : ?3840
subgoal 3 (ID 3842) is:
UEM.sub_in_env ?3839 (strip N') ?3840 0 ?3837 (strip_env Γ)
subgoal 4 (ID 3843) is:
(?3837 ⊣)%UT
subgoal 5 (ID 3781) is:
strip_env Γ ⊢ ((strip B) [ ← strip N])%UT : !s2%UT
subgoal 6 (ID 3776) is:
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 7 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 8 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 9 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 10 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 11 (ID 3147) is:
(nil ⊣)%UT
subgoal 12 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 open, ?3839 open, ?3840 open,)
apply H16. 11 subgoals, subgoal 1 (ID 3841)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H6 : strip_env Γ ⊢ strip A : !s1%UT
H7 : strip A ≡ strip A
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢ strip A' : !s1%UT
H8 : strip_env Γ ⊢ strip A' : !s1%UT
H9 : strip A' ≡ strip A'
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢ strip A0 : !s1%UT
H10 : strip_env Γ ⊢ strip A : !s1%UT
H11 : strip A0 ≡ strip A
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢ strip A0 : !s1%UT
H12 : strip_env Γ ⊢ strip A' : !s1%UT
H13 : strip A0 ≡ strip A'
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H14 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H15 : strip B ≡ strip B
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢ strip M : strip B
H16 : strip A :: strip_env Γ ⊢ strip M' : strip B
H17 : strip M ≡ strip M'
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢ strip N : strip A
H18 : strip_env Γ ⊢ strip N' : strip A
H19 : strip N ≡ strip N'
============================
?3839 ⊢ strip N' : ?3840
subgoal 2 (ID 3842) is:
UEM.sub_in_env ?3839 (strip N') ?3840 0 (strip A :: strip_env Γ)
(strip_env Γ)
subgoal 3 (ID 3843) is:
(strip A :: strip_env Γ ⊣)%UT
subgoal 4 (ID 3781) is:
strip_env Γ ⊢ ((strip B) [ ← strip N])%UT : !s2%UT
subgoal 5 (ID 3776) is:
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 6 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 7 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 8 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 9 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 10 (ID 3147) is:
(nil ⊣)%UT
subgoal 11 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 open, ?3840 open,)
apply H18. 10 subgoals, subgoal 1 (ID 3842)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H6 : strip_env Γ ⊢ strip A : !s1%UT
H7 : strip A ≡ strip A
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢ strip A' : !s1%UT
H8 : strip_env Γ ⊢ strip A' : !s1%UT
H9 : strip A' ≡ strip A'
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢ strip A0 : !s1%UT
H10 : strip_env Γ ⊢ strip A : !s1%UT
H11 : strip A0 ≡ strip A
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢ strip A0 : !s1%UT
H12 : strip_env Γ ⊢ strip A' : !s1%UT
H13 : strip A0 ≡ strip A'
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H14 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H15 : strip B ≡ strip B
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢ strip M : strip B
H16 : strip A :: strip_env Γ ⊢ strip M' : strip B
H17 : strip M ≡ strip M'
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢ strip N : strip A
H18 : strip_env Γ ⊢ strip N' : strip A
H19 : strip N ≡ strip N'
============================
UEM.sub_in_env (strip_env Γ) (strip N') (strip A) 0
(strip A :: strip_env Γ) (strip_env Γ)
subgoal 2 (ID 3843) is:
(strip A :: strip_env Γ ⊣)%UT
subgoal 3 (ID 3781) is:
strip_env Γ ⊢ ((strip B) [ ← strip N])%UT : !s2%UT
subgoal 4 (ID 3776) is:
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 5 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 6 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 7 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 8 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 9 (ID 3147) is:
(nil ⊣)%UT
subgoal 10 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 using , ?3840 using ,)
constructor. 9 subgoals, subgoal 1 (ID 3843)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H6 : strip_env Γ ⊢ strip A : !s1%UT
H7 : strip A ≡ strip A
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢ strip A' : !s1%UT
H8 : strip_env Γ ⊢ strip A' : !s1%UT
H9 : strip A' ≡ strip A'
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢ strip A0 : !s1%UT
H10 : strip_env Γ ⊢ strip A : !s1%UT
H11 : strip A0 ≡ strip A
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢ strip A0 : !s1%UT
H12 : strip_env Γ ⊢ strip A' : !s1%UT
H13 : strip A0 ≡ strip A'
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H14 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H15 : strip B ≡ strip B
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢ strip M : strip B
H16 : strip A :: strip_env Γ ⊢ strip M' : strip B
H17 : strip M ≡ strip M'
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢ strip N : strip A
H18 : strip_env Γ ⊢ strip N' : strip A
H19 : strip N ≡ strip N'
============================
(strip A :: strip_env Γ ⊣)%UT
subgoal 2 (ID 3781) is:
strip_env Γ ⊢ ((strip B) [ ← strip N])%UT : !s2%UT
subgoal 3 (ID 3776) is:
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 4 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 5 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 6 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 7 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 8 (ID 3147) is:
(nil ⊣)%UT
subgoal 9 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 using , ?3840 using ,)
eauto. 8 subgoals, subgoal 1 (ID 3781)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H6 : strip_env Γ ⊢ strip A : !s1%UT
H7 : strip A ≡ strip A
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢ strip A' : !s1%UT
H8 : strip_env Γ ⊢ strip A' : !s1%UT
H9 : strip A' ≡ strip A'
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢ strip A0 : !s1%UT
H10 : strip_env Γ ⊢ strip A : !s1%UT
H11 : strip A0 ≡ strip A
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢ strip A0 : !s1%UT
H12 : strip_env Γ ⊢ strip A' : !s1%UT
H13 : strip A0 ≡ strip A'
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H14 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H15 : strip B ≡ strip B
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢ strip M : strip B
H16 : strip A :: strip_env Γ ⊢ strip M' : strip B
H17 : strip M ≡ strip M'
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢ strip N : strip A
H18 : strip_env Γ ⊢ strip N' : strip A
H19 : strip N ≡ strip N'
============================
strip_env Γ ⊢ ((strip B) [ ← strip N])%UT : !s2%UT
subgoal 2 (ID 3776) is:
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 3 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 4 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 5 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 6 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 7 (ID 3147) is:
(nil ⊣)%UT
subgoal 8 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 using , ?3840 using , ?3845 using ,)
change (!s2)%UT with (!s2[← strip N])%UT. 8 subgoals, subgoal 1 (ID 3856)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H6 : strip_env Γ ⊢ strip A : !s1%UT
H7 : strip A ≡ strip A
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢ strip A' : !s1%UT
H8 : strip_env Γ ⊢ strip A' : !s1%UT
H9 : strip A' ≡ strip A'
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢ strip A0 : !s1%UT
H10 : strip_env Γ ⊢ strip A : !s1%UT
H11 : strip A0 ≡ strip A
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢ strip A0 : !s1%UT
H12 : strip_env Γ ⊢ strip A' : !s1%UT
H13 : strip A0 ≡ strip A'
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H14 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H15 : strip B ≡ strip B
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢ strip M : strip B
H16 : strip A :: strip_env Γ ⊢ strip M' : strip B
H17 : strip M ≡ strip M'
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢ strip N : strip A
H18 : strip_env Γ ⊢ strip N' : strip A
H19 : strip N ≡ strip N'
============================
strip_env Γ ⊢ ((strip B) [ ← strip N])%UT : (!s2 [ ← strip N])%UT
subgoal 2 (ID 3776) is:
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 3 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 4 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 5 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 6 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 7 (ID 3147) is:
(nil ⊣)%UT
subgoal 8 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 using , ?3840 using , ?3845 using ,)
eapply PTS.substitution. 11 subgoals, subgoal 1 (ID 3869)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H6 : strip_env Γ ⊢ strip A : !s1%UT
H7 : strip A ≡ strip A
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢ strip A' : !s1%UT
H8 : strip_env Γ ⊢ strip A' : !s1%UT
H9 : strip A' ≡ strip A'
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢ strip A0 : !s1%UT
H10 : strip_env Γ ⊢ strip A : !s1%UT
H11 : strip A0 ≡ strip A
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢ strip A0 : !s1%UT
H12 : strip_env Γ ⊢ strip A' : !s1%UT
H13 : strip A0 ≡ strip A'
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H14 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H15 : strip B ≡ strip B
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢ strip M : strip B
H16 : strip A :: strip_env Γ ⊢ strip M' : strip B
H17 : strip M ≡ strip M'
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢ strip N : strip A
H18 : strip_env Γ ⊢ strip N' : strip A
H19 : strip N ≡ strip N'
============================
?3868 ⊢ strip B : !s2%UT
subgoal 2 (ID 3872) is:
?3870 ⊢ strip N : ?3871
subgoal 3 (ID 3873) is:
UEM.sub_in_env ?3870 (strip N) ?3871 0 ?3868 (strip_env Γ)
subgoal 4 (ID 3874) is:
(?3868 ⊣)%UT
subgoal 5 (ID 3776) is:
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 6 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 7 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 8 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 9 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 10 (ID 3147) is:
(nil ⊣)%UT
subgoal 11 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 using , ?3840 using , ?3845 using , ?3861 using ?3868 , ?3862 using ?3870 , ?3863 using ?3871 , ?3868 open, ?3870 open, ?3871 open,)
apply H3. 10 subgoals, subgoal 1 (ID 3872)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H6 : strip_env Γ ⊢ strip A : !s1%UT
H7 : strip A ≡ strip A
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢ strip A' : !s1%UT
H8 : strip_env Γ ⊢ strip A' : !s1%UT
H9 : strip A' ≡ strip A'
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢ strip A0 : !s1%UT
H10 : strip_env Γ ⊢ strip A : !s1%UT
H11 : strip A0 ≡ strip A
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢ strip A0 : !s1%UT
H12 : strip_env Γ ⊢ strip A' : !s1%UT
H13 : strip A0 ≡ strip A'
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H14 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H15 : strip B ≡ strip B
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢ strip M : strip B
H16 : strip A :: strip_env Γ ⊢ strip M' : strip B
H17 : strip M ≡ strip M'
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢ strip N : strip A
H18 : strip_env Γ ⊢ strip N' : strip A
H19 : strip N ≡ strip N'
============================
?3870 ⊢ strip N : ?3871
subgoal 2 (ID 3873) is:
UEM.sub_in_env ?3870 (strip N) ?3871 0 (strip A :: strip_env Γ)
(strip_env Γ)
subgoal 3 (ID 3874) is:
(strip A :: strip_env Γ ⊣)%UT
subgoal 4 (ID 3776) is:
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 5 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 6 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 7 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 8 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 9 (ID 3147) is:
(nil ⊣)%UT
subgoal 10 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 using , ?3840 using , ?3845 using , ?3861 using ?3868 , ?3862 using ?3870 , ?3863 using ?3871 , ?3868 using , ?3870 open, ?3871 open,)
apply H5. 9 subgoals, subgoal 1 (ID 3873)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H6 : strip_env Γ ⊢ strip A : !s1%UT
H7 : strip A ≡ strip A
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢ strip A' : !s1%UT
H8 : strip_env Γ ⊢ strip A' : !s1%UT
H9 : strip A' ≡ strip A'
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢ strip A0 : !s1%UT
H10 : strip_env Γ ⊢ strip A : !s1%UT
H11 : strip A0 ≡ strip A
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢ strip A0 : !s1%UT
H12 : strip_env Γ ⊢ strip A' : !s1%UT
H13 : strip A0 ≡ strip A'
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H14 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H15 : strip B ≡ strip B
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢ strip M : strip B
H16 : strip A :: strip_env Γ ⊢ strip M' : strip B
H17 : strip M ≡ strip M'
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢ strip N : strip A
H18 : strip_env Γ ⊢ strip N' : strip A
H19 : strip N ≡ strip N'
============================
UEM.sub_in_env (strip_env Γ) (strip N) (strip A) 0
(strip A :: strip_env Γ) (strip_env Γ)
subgoal 2 (ID 3874) is:
(strip A :: strip_env Γ ⊣)%UT
subgoal 3 (ID 3776) is:
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 4 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 5 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 6 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 7 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 8 (ID 3147) is:
(nil ⊣)%UT
subgoal 9 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 using , ?3840 using , ?3845 using , ?3861 using ?3868 , ?3862 using ?3870 , ?3863 using ?3871 , ?3868 using , ?3870 using , ?3871 using ,)
constructor. 8 subgoals, subgoal 1 (ID 3874)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H6 : strip_env Γ ⊢ strip A : !s1%UT
H7 : strip A ≡ strip A
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢ strip A' : !s1%UT
H8 : strip_env Γ ⊢ strip A' : !s1%UT
H9 : strip A' ≡ strip A'
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢ strip A0 : !s1%UT
H10 : strip_env Γ ⊢ strip A : !s1%UT
H11 : strip A0 ≡ strip A
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢ strip A0 : !s1%UT
H12 : strip_env Γ ⊢ strip A' : !s1%UT
H13 : strip A0 ≡ strip A'
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H14 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H15 : strip B ≡ strip B
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢ strip M : strip B
H16 : strip A :: strip_env Γ ⊢ strip M' : strip B
H17 : strip M ≡ strip M'
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢ strip N : strip A
H18 : strip_env Γ ⊢ strip N' : strip A
H19 : strip N ≡ strip N'
============================
(strip A :: strip_env Γ ⊣)%UT
subgoal 2 (ID 3776) is:
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 3 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 4 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 5 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 6 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 7 (ID 3147) is:
(nil ⊣)%UT
subgoal 8 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 using , ?3840 using , ?3845 using , ?3861 using ?3868 , ?3862 using ?3870 , ?3863 using ?3871 , ?3868 using , ?3870 using , ?3871 using ,)
eauto.7 subgoals, subgoal 1 (ID 3776)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H6 : strip_env Γ ⊢ strip A : !s1%UT
H7 : strip A ≡ strip A
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢ strip A' : !s1%UT
H8 : strip_env Γ ⊢ strip A' : !s1%UT
H9 : strip A' ≡ strip A'
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢ strip A0 : !s1%UT
H10 : strip_env Γ ⊢ strip A : !s1%UT
H11 : strip A0 ≡ strip A
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢ strip A0 : !s1%UT
H12 : strip_env Γ ⊢ strip A' : !s1%UT
H13 : strip A0 ≡ strip A'
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H14 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H15 : strip B ≡ strip B
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢ strip M : strip B
H16 : strip A :: strip_env Γ ⊢ strip M' : strip B
H17 : strip M ≡ strip M'
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢ strip N : strip A
H18 : strip_env Γ ⊢ strip N' : strip A
H19 : strip N ≡ strip N'
============================
(λ [strip A], strip M)%UT · strip N ≡ strip M' [ ← N']
subgoal 2 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 3 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 4 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 5 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 6 (ID 3147) is:
(nil ⊣)%UT
subgoal 7 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 using , ?3840 using , ?3845 using , ?3861 using ?3868 , ?3862 using ?3870 , ?3863 using ?3871 , ?3868 using , ?3870 using , ?3871 using , ?3876 using ,)
rewrite strip_subst. 7 subgoals, subgoal 1 (ID 3886)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H6 : strip_env Γ ⊢ strip A : !s1%UT
H7 : strip A ≡ strip A
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢ strip A' : !s1%UT
H8 : strip_env Γ ⊢ strip A' : !s1%UT
H9 : strip A' ≡ strip A'
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢ strip A0 : !s1%UT
H10 : strip_env Γ ⊢ strip A : !s1%UT
H11 : strip A0 ≡ strip A
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢ strip A0 : !s1%UT
H12 : strip_env Γ ⊢ strip A' : !s1%UT
H13 : strip A0 ≡ strip A'
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H14 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H15 : strip B ≡ strip B
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢ strip M : strip B
H16 : strip A :: strip_env Γ ⊢ strip M' : strip B
H17 : strip M ≡ strip M'
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢ strip N : strip A
H18 : strip_env Γ ⊢ strip N' : strip A
H19 : strip N ≡ strip N'
============================
(λ [strip A], strip M)%UT · strip N ≡ ((strip M') [ ← strip N'])%UT
subgoal 2 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 3 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 4 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 5 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 6 (ID 3147) is:
(nil ⊣)%UT
subgoal 7 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 using , ?3840 using , ?3845 using , ?3861 using ?3868 , ?3862 using ?3870 , ?3863 using ?3871 , ?3868 using , ?3870 using , ?3871 using , ?3876 using ,)
apply Betac_trans with ((strip M)[← strip N])%UT. 8 subgoals, subgoal 1 (ID 3887)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H6 : strip_env Γ ⊢ strip A : !s1%UT
H7 : strip A ≡ strip A
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢ strip A' : !s1%UT
H8 : strip_env Γ ⊢ strip A' : !s1%UT
H9 : strip A' ≡ strip A'
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢ strip A0 : !s1%UT
H10 : strip_env Γ ⊢ strip A : !s1%UT
H11 : strip A0 ≡ strip A
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢ strip A0 : !s1%UT
H12 : strip_env Γ ⊢ strip A' : !s1%UT
H13 : strip A0 ≡ strip A'
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H14 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H15 : strip B ≡ strip B
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢ strip M : strip B
H16 : strip A :: strip_env Γ ⊢ strip M' : strip B
H17 : strip M ≡ strip M'
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢ strip N : strip A
H18 : strip_env Γ ⊢ strip N' : strip A
H19 : strip N ≡ strip N'
============================
(λ [strip A], strip M)%UT · strip N ≡ ((strip M) [ ← strip N])%UT
subgoal 2 (ID 3888) is:
((strip M) [ ← strip N])%UT ≡ ((strip M') [ ← strip N'])%UT
subgoal 3 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 4 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 5 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 6 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 7 (ID 3147) is:
(nil ⊣)%UT
subgoal 8 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 using , ?3840 using , ?3845 using , ?3861 using ?3868 , ?3862 using ?3870 , ?3863 using ?3871 , ?3868 using , ?3870 using , ?3871 using , ?3876 using ,)
intuition.7 subgoals, subgoal 1 (ID 3888)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H6 : strip_env Γ ⊢ strip A : !s1%UT
H7 : strip A ≡ strip A
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢ strip A' : !s1%UT
H8 : strip_env Γ ⊢ strip A' : !s1%UT
H9 : strip A' ≡ strip A'
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢ strip A0 : !s1%UT
H10 : strip_env Γ ⊢ strip A : !s1%UT
H11 : strip A0 ≡ strip A
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢ strip A0 : !s1%UT
H12 : strip_env Γ ⊢ strip A' : !s1%UT
H13 : strip A0 ≡ strip A'
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H14 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H15 : strip B ≡ strip B
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢ strip M : strip B
H16 : strip A :: strip_env Γ ⊢ strip M' : strip B
H17 : strip M ≡ strip M'
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢ strip N : strip A
H18 : strip_env Γ ⊢ strip N' : strip A
H19 : strip N ≡ strip N'
============================
((strip M) [ ← strip N])%UT ≡ ((strip M') [ ← strip N'])%UT
subgoal 2 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 3 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 4 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 5 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 6 (ID 3147) is:
(nil ⊣)%UT
subgoal 7 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 using , ?3840 using , ?3845 using , ?3861 using ?3868 , ?3862 using ?3870 , ?3863 using ?3871 , ?3868 using , ?3870 using , ?3871 using , ?3876 using ,)
apply Betac_trans with ((strip M)[← strip N'])%UT. 8 subgoals, subgoal 1 (ID 3941)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H6 : strip_env Γ ⊢ strip A : !s1%UT
H7 : strip A ≡ strip A
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢ strip A' : !s1%UT
H8 : strip_env Γ ⊢ strip A' : !s1%UT
H9 : strip A' ≡ strip A'
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢ strip A0 : !s1%UT
H10 : strip_env Γ ⊢ strip A : !s1%UT
H11 : strip A0 ≡ strip A
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢ strip A0 : !s1%UT
H12 : strip_env Γ ⊢ strip A' : !s1%UT
H13 : strip A0 ≡ strip A'
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H14 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H15 : strip B ≡ strip B
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢ strip M : strip B
H16 : strip A :: strip_env Γ ⊢ strip M' : strip B
H17 : strip M ≡ strip M'
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢ strip N : strip A
H18 : strip_env Γ ⊢ strip N' : strip A
H19 : strip N ≡ strip N'
============================
((strip M) [ ← strip N])%UT ≡ ((strip M) [ ← strip N'])%UT
subgoal 2 (ID 3942) is:
((strip M) [ ← strip N'])%UT ≡ ((strip M') [ ← strip N'])%UT
subgoal 3 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 4 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 5 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 6 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 7 (ID 3147) is:
(nil ⊣)%UT
subgoal 8 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 using , ?3840 using , ?3845 using , ?3861 using ?3868 , ?3862 using ?3870 , ?3863 using ?3871 , ?3868 using , ?3870 using , ?3871 using , ?3876 using ,)
intuition. 7 subgoals, subgoal 1 (ID 3942)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢ strip A : !s1%UT
H6 : strip_env Γ ⊢ strip A : !s1%UT
H7 : strip A ≡ strip A
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢ strip A' : !s1%UT
H8 : strip_env Γ ⊢ strip A' : !s1%UT
H9 : strip A' ≡ strip A'
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢ strip A0 : !s1%UT
H10 : strip_env Γ ⊢ strip A : !s1%UT
H11 : strip A0 ≡ strip A
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢ strip A0 : !s1%UT
H12 : strip_env Γ ⊢ strip A' : !s1%UT
H13 : strip A0 ≡ strip A'
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H14 : strip A :: strip_env Γ ⊢ strip B : !s2%UT
H15 : strip B ≡ strip B
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢ strip M : strip B
H16 : strip A :: strip_env Γ ⊢ strip M' : strip B
H17 : strip M ≡ strip M'
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢ strip N : strip A
H18 : strip_env Γ ⊢ strip N' : strip A
H19 : strip N ≡ strip N'
============================
((strip M) [ ← strip N'])%UT ≡ ((strip M') [ ← strip N'])%UT
subgoal 2 (ID 3118) is:
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 3 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 4 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 5 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 6 (ID 3147) is:
(nil ⊣)%UT
subgoal 7 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 using , ?3840 using , ?3845 using , ?3861 using ?3868 , ?3862 using ?3870 , ?3863 using ?3871 , ?3868 using , ?3870 using , ?3871 using , ?3876 using ,)
intuition.6 subgoals, subgoal 1 (ID 3118)
Γ : Env
M : Term
N : Term
A : Term
B : Term
s : Sorts
t : Γ ⊢ M ▹ N : A
H : (strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
t0 : Γ ⊢ A ▹ B : !s
H0 : (strip_env Γ ⊢ strip A : !s%UT) /\
(strip_env Γ ⊢ strip B : !s%UT) /\ strip A ≡ strip B
============================
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 2 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 3 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 4 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 5 (ID 3147) is:
(nil ⊣)%UT
subgoal 6 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 using , ?3840 using , ?3845 using , ?3861 using ?3868 , ?3862 using ?3870 , ?3863 using ?3871 , ?3868 using , ?3870 using , ?3871 using , ?3876 using ,)
destruct H as (? & ? & ?), H0 as (? & ?& ?).6 subgoals, subgoal 1 (ID 4047)
Γ : Env
M : Term
N : Term
A : Term
B : Term
s : Sorts
t : Γ ⊢ M ▹ N : A
H : strip_env Γ ⊢ strip M : strip A
H1 : strip_env Γ ⊢ strip N : strip A
H2 : strip M ≡ strip N
t0 : Γ ⊢ A ▹ B : !s
H0 : strip_env Γ ⊢ strip A : !s%UT
H3 : strip_env Γ ⊢ strip B : !s%UT
H4 : strip A ≡ strip B
============================
(strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 2 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 3 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 4 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 5 (ID 3147) is:
(nil ⊣)%UT
subgoal 6 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 using , ?3840 using , ?3845 using , ?3861 using ?3868 , ?3862 using ?3870 , ?3863 using ?3871 , ?3868 using , ?3870 using , ?3871 using , ?3876 using ,)
split. 7 subgoals, subgoal 1 (ID 4049)
Γ : Env
M : Term
N : Term
A : Term
B : Term
s : Sorts
t : Γ ⊢ M ▹ N : A
H : strip_env Γ ⊢ strip M : strip A
H1 : strip_env Γ ⊢ strip N : strip A
H2 : strip M ≡ strip N
t0 : Γ ⊢ A ▹ B : !s
H0 : strip_env Γ ⊢ strip A : !s%UT
H3 : strip_env Γ ⊢ strip B : !s%UT
H4 : strip A ≡ strip B
============================
strip_env Γ ⊢ strip M : strip B
subgoal 2 (ID 4050) is:
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 3 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 4 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 5 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 6 (ID 3147) is:
(nil ⊣)%UT
subgoal 7 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 using , ?3840 using , ?3845 using , ?3861 using ?3868 , ?3862 using ?3870 , ?3863 using ?3871 , ?3868 using , ?3870 using , ?3871 using , ?3876 using ,)
apply PTS.Cnv with (strip A) s; trivial. 6 subgoals, subgoal 1 (ID 4050)
Γ : Env
M : Term
N : Term
A : Term
B : Term
s : Sorts
t : Γ ⊢ M ▹ N : A
H : strip_env Γ ⊢ strip M : strip A
H1 : strip_env Γ ⊢ strip N : strip A
H2 : strip M ≡ strip N
t0 : Γ ⊢ A ▹ B : !s
H0 : strip_env Γ ⊢ strip A : !s%UT
H3 : strip_env Γ ⊢ strip B : !s%UT
H4 : strip A ≡ strip B
============================
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
subgoal 2 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 3 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 4 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 5 (ID 3147) is:
(nil ⊣)%UT
subgoal 6 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 using , ?3840 using , ?3845 using , ?3861 using ?3868 , ?3862 using ?3870 , ?3863 using ?3871 , ?3868 using , ?3870 using , ?3871 using , ?3876 using ,)
split. 7 subgoals, subgoal 1 (ID 4055)
Γ : Env
M : Term
N : Term
A : Term
B : Term
s : Sorts
t : Γ ⊢ M ▹ N : A
H : strip_env Γ ⊢ strip M : strip A
H1 : strip_env Γ ⊢ strip N : strip A
H2 : strip M ≡ strip N
t0 : Γ ⊢ A ▹ B : !s
H0 : strip_env Γ ⊢ strip A : !s%UT
H3 : strip_env Γ ⊢ strip B : !s%UT
H4 : strip A ≡ strip B
============================
strip_env Γ ⊢ strip N : strip B
subgoal 2 (ID 4056) is:
strip M ≡ strip N
subgoal 3 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 4 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 5 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 6 (ID 3147) is:
(nil ⊣)%UT
subgoal 7 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 using , ?3840 using , ?3845 using , ?3861 using ?3868 , ?3862 using ?3870 , ?3863 using ?3871 , ?3868 using , ?3870 using , ?3871 using , ?3876 using ,)
apply PTS.Cnv with (strip A) s; trivial. 6 subgoals, subgoal 1 (ID 4056)
Γ : Env
M : Term
N : Term
A : Term
B : Term
s : Sorts
t : Γ ⊢ M ▹ N : A
H : strip_env Γ ⊢ strip M : strip A
H1 : strip_env Γ ⊢ strip N : strip A
H2 : strip M ≡ strip N
t0 : Γ ⊢ A ▹ B : !s
H0 : strip_env Γ ⊢ strip A : !s%UT
H3 : strip_env Γ ⊢ strip B : !s%UT
H4 : strip A ≡ strip B
============================
strip M ≡ strip N
subgoal 2 (ID 3129) is:
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 3 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 4 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 5 (ID 3147) is:
(nil ⊣)%UT
subgoal 6 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 using , ?3840 using , ?3845 using , ?3861 using ?3868 , ?3862 using ?3870 , ?3863 using ?3871 , ?3868 using , ?3870 using , ?3871 using , ?3876 using ,)
trivial.5 subgoals, subgoal 1 (ID 3129)
Γ : Env
M : Term
N : Term
A : Term
B : Term
s : Sorts
t : Γ ⊢ M ▹ N : B
H : (strip_env Γ ⊢ strip M : strip B) /\
(strip_env Γ ⊢ strip N : strip B) /\ strip M ≡ strip N
t0 : Γ ⊢ A ▹ B : !s
H0 : (strip_env Γ ⊢ strip A : !s%UT) /\
(strip_env Γ ⊢ strip B : !s%UT) /\ strip A ≡ strip B
============================
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 2 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 3 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 4 (ID 3147) is:
(nil ⊣)%UT
subgoal 5 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 using , ?3840 using , ?3845 using , ?3861 using ?3868 , ?3862 using ?3870 , ?3863 using ?3871 , ?3868 using , ?3870 using , ?3871 using , ?3876 using ,)
destruct H as (? & ? & ?), H0 as (? & ?& ?).5 subgoals, subgoal 1 (ID 4078)
Γ : Env
M : Term
N : Term
A : Term
B : Term
s : Sorts
t : Γ ⊢ M ▹ N : B
H : strip_env Γ ⊢ strip M : strip B
H1 : strip_env Γ ⊢ strip N : strip B
H2 : strip M ≡ strip N
t0 : Γ ⊢ A ▹ B : !s
H0 : strip_env Γ ⊢ strip A : !s%UT
H3 : strip_env Γ ⊢ strip B : !s%UT
H4 : strip A ≡ strip B
============================
(strip_env Γ ⊢ strip M : strip A) /\
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 2 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 3 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 4 (ID 3147) is:
(nil ⊣)%UT
subgoal 5 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 using , ?3840 using , ?3845 using , ?3861 using ?3868 , ?3862 using ?3870 , ?3863 using ?3871 , ?3868 using , ?3870 using , ?3871 using , ?3876 using ,)
split. 6 subgoals, subgoal 1 (ID 4080)
Γ : Env
M : Term
N : Term
A : Term
B : Term
s : Sorts
t : Γ ⊢ M ▹ N : B
H : strip_env Γ ⊢ strip M : strip B
H1 : strip_env Γ ⊢ strip N : strip B
H2 : strip M ≡ strip N
t0 : Γ ⊢ A ▹ B : !s
H0 : strip_env Γ ⊢ strip A : !s%UT
H3 : strip_env Γ ⊢ strip B : !s%UT
H4 : strip A ≡ strip B
============================
strip_env Γ ⊢ strip M : strip A
subgoal 2 (ID 4081) is:
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 3 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 4 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 5 (ID 3147) is:
(nil ⊣)%UT
subgoal 6 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 using , ?3840 using , ?3845 using , ?3861 using ?3868 , ?3862 using ?3870 , ?3863 using ?3871 , ?3868 using , ?3870 using , ?3871 using , ?3876 using ,)
apply PTS.Cnv with (strip B) s; intuition. 5 subgoals, subgoal 1 (ID 4081)
Γ : Env
M : Term
N : Term
A : Term
B : Term
s : Sorts
t : Γ ⊢ M ▹ N : B
H : strip_env Γ ⊢ strip M : strip B
H1 : strip_env Γ ⊢ strip N : strip B
H2 : strip M ≡ strip N
t0 : Γ ⊢ A ▹ B : !s
H0 : strip_env Γ ⊢ strip A : !s%UT
H3 : strip_env Γ ⊢ strip B : !s%UT
H4 : strip A ≡ strip B
============================
(strip_env Γ ⊢ strip N : strip A) /\ strip M ≡ strip N
subgoal 2 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 3 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 4 (ID 3147) is:
(nil ⊣)%UT
subgoal 5 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 using , ?3840 using , ?3845 using , ?3861 using ?3868 , ?3862 using ?3870 , ?3863 using ?3871 , ?3868 using , ?3870 using , ?3871 using , ?3876 using ,)
split. 6 subgoals, subgoal 1 (ID 4102)
Γ : Env
M : Term
N : Term
A : Term
B : Term
s : Sorts
t : Γ ⊢ M ▹ N : B
H : strip_env Γ ⊢ strip M : strip B
H1 : strip_env Γ ⊢ strip N : strip B
H2 : strip M ≡ strip N
t0 : Γ ⊢ A ▹ B : !s
H0 : strip_env Γ ⊢ strip A : !s%UT
H3 : strip_env Γ ⊢ strip B : !s%UT
H4 : strip A ≡ strip B
============================
strip_env Γ ⊢ strip N : strip A
subgoal 2 (ID 4103) is:
strip M ≡ strip N
subgoal 3 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 4 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 5 (ID 3147) is:
(nil ⊣)%UT
subgoal 6 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 using , ?3840 using , ?3845 using , ?3861 using ?3868 , ?3862 using ?3870 , ?3863 using ?3871 , ?3868 using , ?3870 using , ?3871 using , ?3876 using ,)
apply PTS.Cnv with (strip B) s; intuition. 5 subgoals, subgoal 1 (ID 4103)
Γ : Env
M : Term
N : Term
A : Term
B : Term
s : Sorts
t : Γ ⊢ M ▹ N : B
H : strip_env Γ ⊢ strip M : strip B
H1 : strip_env Γ ⊢ strip N : strip B
H2 : strip M ≡ strip N
t0 : Γ ⊢ A ▹ B : !s
H0 : strip_env Γ ⊢ strip A : !s%UT
H3 : strip_env Γ ⊢ strip B : !s%UT
H4 : strip A ≡ strip B
============================
strip M ≡ strip N
subgoal 2 (ID 3136) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 3 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 4 (ID 3147) is:
(nil ⊣)%UT
subgoal 5 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 using , ?3840 using , ?3845 using , ?3861 using ?3868 , ?3862 using ?3870 , ?3863 using ?3871 , ?3868 using , ?3870 using , ?3871 using , ?3876 using ,)
trivial.4 subgoals, subgoal 1 (ID 3136)
Γ : Env
s : Term
t : Term
T : Term
t0 : Γ ⊢ s ▹ t : T
H : (strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
============================
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
subgoal 2 (ID 3146) is:
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 3 (ID 3147) is:
(nil ⊣)%UT
subgoal 4 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 using , ?3840 using , ?3845 using , ?3861 using ?3868 , ?3862 using ?3870 , ?3863 using ?3871 , ?3868 using , ?3870 using , ?3871 using , ?3876 using ,)
eauto.3 subgoals, subgoal 1 (ID 3146)
Γ : Env
s : Term
t : Term
u : Term
T : Term
t0 : Γ ⊢ s ▹▹ t : T
H : (strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip t : strip T) /\ strip s ≡ strip t
t1 : Γ ⊢ t ▹▹ u : T
H0 : (strip_env Γ ⊢ strip t : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip t ≡ strip u
============================
(strip_env Γ ⊢ strip s : strip T) /\
(strip_env Γ ⊢ strip u : strip T) /\ strip s ≡ strip u
subgoal 2 (ID 3147) is:
(nil ⊣)%UT
subgoal 3 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 using , ?3840 using , ?3845 using , ?3861 using ?3868 , ?3862 using ?3870 , ?3863 using ?3871 , ?3868 using , ?3870 using , ?3871 using , ?3876 using ,)
destruct H as (? & ? & ?), H0 as ( ? & ?& ?); eauto.2 subgoals, subgoal 1 (ID 3147)
============================
(nil ⊣)%UT
subgoal 2 (ID 3154) is:
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 using , ?3840 using , ?3845 using , ?3861 using ?3868 , ?3862 using ?3870 , ?3863 using ?3871 , ?3868 using , ?3870 using , ?3871 using , ?3876 using , ?4160 using ,)
trivial.1 subgoals, subgoal 1 (ID 3154)
Γ : Env
A : Term
A' : Term
s : Sorts
t : Γ ⊢ A ▹ A' : !s
H : (strip_env Γ ⊢ strip A : !s%UT) /\
(strip_env Γ ⊢ strip A' : !s%UT) /\ strip A ≡ strip A'
============================
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 using , ?3840 using , ?3845 using , ?3861 using ?3868 , ?3862 using ?3870 , ?3863 using ?3871 , ?3868 using , ?3870 using , ?3871 using , ?3876 using , ?4160 using ,)
destruct H as (? & ?& ?). 1 subgoals, subgoal 1 (ID 4216)
Γ : Env
A : Term
A' : Term
s : Sorts
t : Γ ⊢ A ▹ A' : !s
H : strip_env Γ ⊢ strip A : !s%UT
H0 : strip_env Γ ⊢ strip A' : !s%UT
H1 : strip A ≡ strip A'
============================
(strip A :: strip_env Γ ⊣)%UT
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 using , ?3840 using , ?3845 using , ?3861 using ?3868 , ?3862 using ?3870 , ?3863 using ?3871 , ?3868 using , ?3870 using , ?3871 using , ?3876 using , ?4160 using ,)
eauto.No more subgoals.
(dependent evars: ?3263 using , ?3421 using , ?3450 using , ?3608 using ?3615 , ?3609 using ?3617 , ?3610 using ?3618 , ?3615 using , ?3617 using , ?3618 using , ?3623 using , ?3830 using ?3837 , ?3831 using ?3839 , ?3832 using ?3840 , ?3837 using , ?3839 using , ?3840 using , ?3845 using , ?3861 using ?3868 , ?3862 using ?3870 , ?3863 using ?3871 , ?3868 using , ?3870 using , ?3871 using , ?3876 using , ?4160 using , ?4217 using ,)
Qed.FromPTSATR_to_PTS is defined
Lemma FromPTSATR_to_PTSe : (forall Γ M N T, Γ ⊢ M ▹ N : T -> (strip_env Γ) ⊢e (strip M) = (strip N) : (strip T)) /\
(forall Γ M N T, Γ ⊢ M ▹▹ N : T -> (strip_env Γ) ⊢e (strip M) = (strip N) : (strip T)) /\
(forall Γ, (PTS_ATR.wf Γ) -> ((strip_env Γ) ⊣e)%UT).1 subgoals, subgoal 1 (ID 4237)
============================
(forall (Γ : Env) (M N T : Term),
Γ ⊢ M ▹ N : T -> strip_env Γ ⊢e strip M = strip N : strip T) /\
(forall (Γ : Env) (M N T : Term),
Γ ⊢ M ▹▹ N : T -> strip_env Γ ⊢e strip M = strip N : strip T) /\
(forall Γ : Env, Γ ⊣ -> strip_env Γ ⊣e)
(dependent evars:)
apply PTS_ATR.typ_induc; intros; simpl in *.12 subgoals, subgoal 1 (ID 4386)
Γ : Env
x : nat
A : Term
w : Γ ⊣
H : strip_env Γ ⊣e
i : A ↓ x ⊂ Γ
============================
strip_env Γ ⊢e #x%UT = #x%UT : strip A
subgoal 2 (ID 4393) is:
strip_env Γ ⊢e !s1%UT = !s1%UT : !s2%UT
subgoal 3 (ID 4407) is:
strip_env Γ ⊢e (Π (strip A), strip B)%UT = (Π (strip A'), strip B')%UT
: !s3%UT
subgoal 4 (ID 4424) is:
strip_env Γ ⊢e (λ [strip A], strip M)%UT = (λ [strip A'], strip M')%UT
: (Π (strip A), strip B)%UT
subgoal 5 (ID 4446) is:
strip_env Γ ⊢e strip M · strip N = strip M' · strip N' : strip B [ ← N]
subgoal 6 (ID 4474) is:
strip_env Γ ⊢e (λ [strip A], strip M)%UT · strip N =
strip M' [ ← N'] : strip B [ ← N]
subgoal 7 (ID 4485) is:
strip_env Γ ⊢e strip M = strip N : strip B
subgoal 8 (ID 4496) is:
strip_env Γ ⊢e strip M = strip N : strip A
subgoal 9 (ID 4503) is:
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 10 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 11 (ID 4514) is:
nil ⊣e
subgoal 12 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars:)
apply strip_var in i. 12 subgoals, subgoal 1 (ID 4523)
Γ : Env
x : nat
A : Term
w : Γ ⊣
H : strip_env Γ ⊣e
i : (strip A ↓ x ⊂ strip_env Γ)%UT
============================
strip_env Γ ⊢e #x%UT = #x%UT : strip A
subgoal 2 (ID 4393) is:
strip_env Γ ⊢e !s1%UT = !s1%UT : !s2%UT
subgoal 3 (ID 4407) is:
strip_env Γ ⊢e (Π (strip A), strip B)%UT = (Π (strip A'), strip B')%UT
: !s3%UT
subgoal 4 (ID 4424) is:
strip_env Γ ⊢e (λ [strip A], strip M)%UT = (λ [strip A'], strip M')%UT
: (Π (strip A), strip B)%UT
subgoal 5 (ID 4446) is:
strip_env Γ ⊢e strip M · strip N = strip M' · strip N' : strip B [ ← N]
subgoal 6 (ID 4474) is:
strip_env Γ ⊢e (λ [strip A], strip M)%UT · strip N =
strip M' [ ← N'] : strip B [ ← N]
subgoal 7 (ID 4485) is:
strip_env Γ ⊢e strip M = strip N : strip B
subgoal 8 (ID 4496) is:
strip_env Γ ⊢e strip M = strip N : strip A
subgoal 9 (ID 4503) is:
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 10 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 11 (ID 4514) is:
nil ⊣e
subgoal 12 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars:)
intuition.11 subgoals, subgoal 1 (ID 4393)
Γ : Env
s1 : Sorts
s2 : Sorts
a : Ax s1 s2
w : Γ ⊣
H : strip_env Γ ⊣e
============================
strip_env Γ ⊢e !s1%UT = !s1%UT : !s2%UT
subgoal 2 (ID 4407) is:
strip_env Γ ⊢e (Π (strip A), strip B)%UT = (Π (strip A'), strip B')%UT
: !s3%UT
subgoal 3 (ID 4424) is:
strip_env Γ ⊢e (λ [strip A], strip M)%UT = (λ [strip A'], strip M')%UT
: (Π (strip A), strip B)%UT
subgoal 4 (ID 4446) is:
strip_env Γ ⊢e strip M · strip N = strip M' · strip N' : strip B [ ← N]
subgoal 5 (ID 4474) is:
strip_env Γ ⊢e (λ [strip A], strip M)%UT · strip N =
strip M' [ ← N'] : strip B [ ← N]
subgoal 6 (ID 4485) is:
strip_env Γ ⊢e strip M = strip N : strip B
subgoal 7 (ID 4496) is:
strip_env Γ ⊢e strip M = strip N : strip A
subgoal 8 (ID 4503) is:
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 9 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 10 (ID 4514) is:
nil ⊣e
subgoal 11 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars:)
intuition.10 subgoals, subgoal 1 (ID 4407)
Γ : Env
s1 : Sorts
s2 : Sorts
s3 : Sorts
A : Term
A' : Term
B : Term
B' : Term
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢e strip A = strip A' : !s1%UT
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : strip A :: strip_env Γ ⊢e strip B = strip B' : !s2%UT
============================
strip_env Γ ⊢e (Π (strip A), strip B)%UT = (Π (strip A'), strip B')%UT
: !s3%UT
subgoal 2 (ID 4424) is:
strip_env Γ ⊢e (λ [strip A], strip M)%UT = (λ [strip A'], strip M')%UT
: (Π (strip A), strip B)%UT
subgoal 3 (ID 4446) is:
strip_env Γ ⊢e strip M · strip N = strip M' · strip N' : strip B [ ← N]
subgoal 4 (ID 4474) is:
strip_env Γ ⊢e (λ [strip A], strip M)%UT · strip N =
strip M' [ ← N'] : strip B [ ← N]
subgoal 5 (ID 4485) is:
strip_env Γ ⊢e strip M = strip N : strip B
subgoal 6 (ID 4496) is:
strip_env Γ ⊢e strip M = strip N : strip A
subgoal 7 (ID 4503) is:
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 8 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 9 (ID 4514) is:
nil ⊣e
subgoal 10 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars:)
apply cPi_eq with s1 s2; trivial.9 subgoals, subgoal 1 (ID 4424)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢e strip A = strip A' : !s1%UT
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : strip A :: strip_env Γ ⊢e strip B = strip B : !s2%UT
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : strip A :: strip_env Γ ⊢e strip M = strip M' : strip B
============================
strip_env Γ ⊢e (λ [strip A], strip M)%UT = (λ [strip A'], strip M')%UT
: (Π (strip A), strip B)%UT
subgoal 2 (ID 4446) is:
strip_env Γ ⊢e strip M · strip N = strip M' · strip N' : strip B [ ← N]
subgoal 3 (ID 4474) is:
strip_env Γ ⊢e (λ [strip A], strip M)%UT · strip N =
strip M' [ ← N'] : strip B [ ← N]
subgoal 4 (ID 4485) is:
strip_env Γ ⊢e strip M = strip N : strip B
subgoal 5 (ID 4496) is:
strip_env Γ ⊢e strip M = strip N : strip A
subgoal 6 (ID 4503) is:
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 7 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 8 (ID 4514) is:
nil ⊣e
subgoal 9 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars:)
apply cLa_eq with s1 s2 s3; trivial.9 subgoals, subgoal 1 (ID 4562)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢e strip A = strip A' : !s1%UT
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : strip A :: strip_env Γ ⊢e strip B = strip B : !s2%UT
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : strip A :: strip_env Γ ⊢e strip M = strip M' : strip B
============================
strip A :: strip_env Γ ⊢e strip B : !s2%UT
subgoal 2 (ID 4446) is:
strip_env Γ ⊢e strip M · strip N = strip M' · strip N' : strip B [ ← N]
subgoal 3 (ID 4474) is:
strip_env Γ ⊢e (λ [strip A], strip M)%UT · strip N =
strip M' [ ← N'] : strip B [ ← N]
subgoal 4 (ID 4485) is:
strip_env Γ ⊢e strip M = strip N : strip B
subgoal 5 (ID 4496) is:
strip_env Γ ⊢e strip M = strip N : strip A
subgoal 6 (ID 4503) is:
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 7 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 8 (ID 4514) is:
nil ⊣e
subgoal 9 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars:)
change (strip A::strip_env Γ) with( nil++strip A::strip_env Γ).9 subgoals, subgoal 1 (ID 4568)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢e strip A = strip A' : !s1%UT
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : strip A :: strip_env Γ ⊢e strip B = strip B : !s2%UT
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : strip A :: strip_env Γ ⊢e strip M = strip M' : strip B
============================
nil ++ strip A :: strip_env Γ ⊢e strip B : !s2%UT
subgoal 2 (ID 4446) is:
strip_env Γ ⊢e strip M · strip N = strip M' · strip N' : strip B [ ← N]
subgoal 3 (ID 4474) is:
strip_env Γ ⊢e (λ [strip A], strip M)%UT · strip N =
strip M' [ ← N'] : strip B [ ← N]
subgoal 4 (ID 4485) is:
strip_env Γ ⊢e strip M = strip N : strip B
subgoal 5 (ID 4496) is:
strip_env Γ ⊢e strip M = strip N : strip A
subgoal 6 (ID 4503) is:
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 7 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 8 (ID 4514) is:
nil ⊣e
subgoal 9 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars:)
eapply PTSe.conv_in_env. 12 subgoals, subgoal 1 (ID 4585)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢e strip A = strip A' : !s1%UT
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : strip A :: strip_env Γ ⊢e strip B = strip B : !s2%UT
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : strip A :: strip_env Γ ⊢e strip M = strip M' : strip B
============================
?4584 ⊢e strip B : !s2%UT
subgoal 2 (ID 4587) is:
?4584 = nil ++ ?4586 :: strip_env Γ
subgoal 3 (ID 4589) is:
strip_env Γ ⊢e ?4586 = strip A : !?4588%UT
subgoal 4 (ID 4590) is:
strip_env Γ ⊢e strip A : !?4588%UT
subgoal 5 (ID 4446) is:
strip_env Γ ⊢e strip M · strip N = strip M' · strip N' : strip B [ ← N]
subgoal 6 (ID 4474) is:
strip_env Γ ⊢e (λ [strip A], strip M)%UT · strip N =
strip M' [ ← N'] : strip B [ ← N]
subgoal 7 (ID 4485) is:
strip_env Γ ⊢e strip M = strip N : strip B
subgoal 8 (ID 4496) is:
strip_env Γ ⊢e strip M = strip N : strip A
subgoal 9 (ID 4503) is:
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 10 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 11 (ID 4514) is:
nil ⊣e
subgoal 12 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars: ?4577 using ?4584 , ?4578 using ?4586 , ?4579 using ?4588 , ?4584 open, ?4586 open, ?4588 open,)
apply left_reflexivity in H0. 12 subgoals, subgoal 1 (ID 4593)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢e strip A = strip A' : !s1%UT
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : strip A :: strip_env Γ ⊢e strip B : !s2%UT
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : strip A :: strip_env Γ ⊢e strip M = strip M' : strip B
============================
?4592 ⊢e strip B : !s2%UT
subgoal 2 (ID 4587) is:
?4592 = nil ++ ?4586 :: strip_env Γ
subgoal 3 (ID 4589) is:
strip_env Γ ⊢e ?4586 = strip A : !?4588%UT
subgoal 4 (ID 4590) is:
strip_env Γ ⊢e strip A : !?4588%UT
subgoal 5 (ID 4446) is:
strip_env Γ ⊢e strip M · strip N = strip M' · strip N' : strip B [ ← N]
subgoal 6 (ID 4474) is:
strip_env Γ ⊢e (λ [strip A], strip M)%UT · strip N =
strip M' [ ← N'] : strip B [ ← N]
subgoal 7 (ID 4485) is:
strip_env Γ ⊢e strip M = strip N : strip B
subgoal 8 (ID 4496) is:
strip_env Γ ⊢e strip M = strip N : strip A
subgoal 9 (ID 4503) is:
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 10 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 11 (ID 4514) is:
nil ⊣e
subgoal 12 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars: ?4577 using ?4584 , ?4578 using ?4586 , ?4579 using ?4588 , ?4584 using ?4592 , ?4586 open, ?4588 open, ?4592 open,)
apply H0.11 subgoals, subgoal 1 (ID 4587)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢e strip A = strip A' : !s1%UT
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : strip A :: strip_env Γ ⊢e strip B = strip B : !s2%UT
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : strip A :: strip_env Γ ⊢e strip M = strip M' : strip B
============================
strip A :: strip_env Γ = nil ++ ?4586 :: strip_env Γ
subgoal 2 (ID 4589) is:
strip_env Γ ⊢e ?4586 = strip A : !?4588%UT
subgoal 3 (ID 4590) is:
strip_env Γ ⊢e strip A : !?4588%UT
subgoal 4 (ID 4446) is:
strip_env Γ ⊢e strip M · strip N = strip M' · strip N' : strip B [ ← N]
subgoal 5 (ID 4474) is:
strip_env Γ ⊢e (λ [strip A], strip M)%UT · strip N =
strip M' [ ← N'] : strip B [ ← N]
subgoal 6 (ID 4485) is:
strip_env Γ ⊢e strip M = strip N : strip B
subgoal 7 (ID 4496) is:
strip_env Γ ⊢e strip M = strip N : strip A
subgoal 8 (ID 4503) is:
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 9 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 10 (ID 4514) is:
nil ⊣e
subgoal 11 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars: ?4577 using ?4584 , ?4578 using ?4586 , ?4579 using ?4588 , ?4584 using ?4592 , ?4586 open, ?4588 open, ?4592 using ,)
simpl; reflexivity. 10 subgoals, subgoal 1 (ID 4589)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢e strip A = strip A' : !s1%UT
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : strip A :: strip_env Γ ⊢e strip B = strip B : !s2%UT
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : strip A :: strip_env Γ ⊢e strip M = strip M' : strip B
============================
strip_env Γ ⊢e strip A = strip A : !?4588%UT
subgoal 2 (ID 4590) is:
strip_env Γ ⊢e strip A : !?4588%UT
subgoal 3 (ID 4446) is:
strip_env Γ ⊢e strip M · strip N = strip M' · strip N' : strip B [ ← N]
subgoal 4 (ID 4474) is:
strip_env Γ ⊢e (λ [strip A], strip M)%UT · strip N =
strip M' [ ← N'] : strip B [ ← N]
subgoal 5 (ID 4485) is:
strip_env Γ ⊢e strip M = strip N : strip B
subgoal 6 (ID 4496) is:
strip_env Γ ⊢e strip M = strip N : strip A
subgoal 7 (ID 4503) is:
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 8 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 9 (ID 4514) is:
nil ⊣e
subgoal 10 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars: ?4577 using ?4584 , ?4578 using ?4586 , ?4579 using ?4588 , ?4584 using ?4592 , ?4586 using , ?4588 open, ?4592 using ,)
apply cRefl.10 subgoals, subgoal 1 (ID 4596)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢e strip A = strip A' : !s1%UT
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : strip A :: strip_env Γ ⊢e strip B = strip B : !s2%UT
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : strip A :: strip_env Γ ⊢e strip M = strip M' : strip B
============================
strip_env Γ ⊢e strip A : !?4588%UT
subgoal 2 (ID 4590) is:
strip_env Γ ⊢e strip A : !?4588%UT
subgoal 3 (ID 4446) is:
strip_env Γ ⊢e strip M · strip N = strip M' · strip N' : strip B [ ← N]
subgoal 4 (ID 4474) is:
strip_env Γ ⊢e (λ [strip A], strip M)%UT · strip N =
strip M' [ ← N'] : strip B [ ← N]
subgoal 5 (ID 4485) is:
strip_env Γ ⊢e strip M = strip N : strip B
subgoal 6 (ID 4496) is:
strip_env Γ ⊢e strip M = strip N : strip A
subgoal 7 (ID 4503) is:
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 8 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 9 (ID 4514) is:
nil ⊣e
subgoal 10 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars: ?4577 using ?4584 , ?4578 using ?4586 , ?4579 using ?4588 , ?4584 using ?4592 , ?4586 using , ?4588 open, ?4592 using ,)
apply left_reflexivity in H. 10 subgoals, subgoal 1 (ID 4599)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢e strip A : !s1%UT
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : strip A :: strip_env Γ ⊢e strip B = strip B : !s2%UT
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : strip A :: strip_env Γ ⊢e strip M = strip M' : strip B
============================
strip_env Γ ⊢e strip A : !?4598%UT
subgoal 2 (ID 4590) is:
strip_env Γ ⊢e strip A : !?4598%UT
subgoal 3 (ID 4446) is:
strip_env Γ ⊢e strip M · strip N = strip M' · strip N' : strip B [ ← N]
subgoal 4 (ID 4474) is:
strip_env Γ ⊢e (λ [strip A], strip M)%UT · strip N =
strip M' [ ← N'] : strip B [ ← N]
subgoal 5 (ID 4485) is:
strip_env Γ ⊢e strip M = strip N : strip B
subgoal 6 (ID 4496) is:
strip_env Γ ⊢e strip M = strip N : strip A
subgoal 7 (ID 4503) is:
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 8 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 9 (ID 4514) is:
nil ⊣e
subgoal 10 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars: ?4577 using ?4584 , ?4578 using ?4586 , ?4579 using ?4588 , ?4584 using ?4592 , ?4586 using , ?4588 using ?4598 , ?4592 using , ?4598 open,)
apply H.9 subgoals, subgoal 1 (ID 4590)
Γ : Env
A : Term
A' : Term
B : Term
M : Term
M' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢e strip A = strip A' : !s1%UT
t0 : A :: Γ ⊢ B ▹ B : !s2
H0 : strip A :: strip_env Γ ⊢e strip B = strip B : !s2%UT
t1 : A :: Γ ⊢ M ▹ M' : B
H1 : strip A :: strip_env Γ ⊢e strip M = strip M' : strip B
============================
strip_env Γ ⊢e strip A : !s1%UT
subgoal 2 (ID 4446) is:
strip_env Γ ⊢e strip M · strip N = strip M' · strip N' : strip B [ ← N]
subgoal 3 (ID 4474) is:
strip_env Γ ⊢e (λ [strip A], strip M)%UT · strip N =
strip M' [ ← N'] : strip B [ ← N]
subgoal 4 (ID 4485) is:
strip_env Γ ⊢e strip M = strip N : strip B
subgoal 5 (ID 4496) is:
strip_env Γ ⊢e strip M = strip N : strip A
subgoal 6 (ID 4503) is:
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 7 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 8 (ID 4514) is:
nil ⊣e
subgoal 9 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars: ?4577 using ?4584 , ?4578 using ?4586 , ?4579 using ?4588 , ?4584 using ?4592 , ?4586 using , ?4588 using ?4598 , ?4592 using , ?4598 using ,)
apply left_reflexivity with (strip A'); trivial.8 subgoals, subgoal 1 (ID 4446)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
B : Term
B' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢e strip A = strip A' : !s1%UT
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : strip A :: strip_env Γ ⊢e strip B = strip B' : !s2%UT
t1 : Γ ⊢ M ▹ M' : Π (A), B
H1 : strip_env Γ ⊢e strip M = strip M' : (Π (strip A), strip B)%UT
t2 : Γ ⊢ N ▹ N' : A
H2 : strip_env Γ ⊢e strip N = strip N' : strip A
============================
strip_env Γ ⊢e strip M · strip N = strip M' · strip N' : strip B [ ← N]
subgoal 2 (ID 4474) is:
strip_env Γ ⊢e (λ [strip A], strip M)%UT · strip N =
strip M' [ ← N'] : strip B [ ← N]
subgoal 3 (ID 4485) is:
strip_env Γ ⊢e strip M = strip N : strip B
subgoal 4 (ID 4496) is:
strip_env Γ ⊢e strip M = strip N : strip A
subgoal 5 (ID 4503) is:
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 6 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 7 (ID 4514) is:
nil ⊣e
subgoal 8 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars: ?4577 using ?4584 , ?4578 using ?4586 , ?4579 using ?4588 , ?4584 using ?4592 , ?4586 using , ?4588 using ?4598 , ?4592 using , ?4598 using ,)
rewrite strip_subst. 8 subgoals, subgoal 1 (ID 4601)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
B : Term
B' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢e strip A = strip A' : !s1%UT
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : strip A :: strip_env Γ ⊢e strip B = strip B' : !s2%UT
t1 : Γ ⊢ M ▹ M' : Π (A), B
H1 : strip_env Γ ⊢e strip M = strip M' : (Π (strip A), strip B)%UT
t2 : Γ ⊢ N ▹ N' : A
H2 : strip_env Γ ⊢e strip N = strip N' : strip A
============================
strip_env Γ ⊢e strip M · strip N = strip M' · strip N'
: ((strip B) [ ← strip N])%UT
subgoal 2 (ID 4474) is:
strip_env Γ ⊢e (λ [strip A], strip M)%UT · strip N =
strip M' [ ← N'] : strip B [ ← N]
subgoal 3 (ID 4485) is:
strip_env Γ ⊢e strip M = strip N : strip B
subgoal 4 (ID 4496) is:
strip_env Γ ⊢e strip M = strip N : strip A
subgoal 5 (ID 4503) is:
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 6 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 7 (ID 4514) is:
nil ⊣e
subgoal 8 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars: ?4577 using ?4584 , ?4578 using ?4586 , ?4579 using ?4588 , ?4584 using ?4592 , ?4586 using , ?4588 using ?4598 , ?4592 using , ?4598 using ,)
apply cApp_eq with (strip A). 9 subgoals, subgoal 1 (ID 4602)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
B : Term
B' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢e strip A = strip A' : !s1%UT
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : strip A :: strip_env Γ ⊢e strip B = strip B' : !s2%UT
t1 : Γ ⊢ M ▹ M' : Π (A), B
H1 : strip_env Γ ⊢e strip M = strip M' : (Π (strip A), strip B)%UT
t2 : Γ ⊢ N ▹ N' : A
H2 : strip_env Γ ⊢e strip N = strip N' : strip A
============================
strip_env Γ ⊢e strip M = strip M' : (Π (strip A), strip B)%UT
subgoal 2 (ID 4603) is:
strip_env Γ ⊢e strip N = strip N' : strip A
subgoal 3 (ID 4474) is:
strip_env Γ ⊢e (λ [strip A], strip M)%UT · strip N =
strip M' [ ← N'] : strip B [ ← N]
subgoal 4 (ID 4485) is:
strip_env Γ ⊢e strip M = strip N : strip B
subgoal 5 (ID 4496) is:
strip_env Γ ⊢e strip M = strip N : strip A
subgoal 6 (ID 4503) is:
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 7 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 8 (ID 4514) is:
nil ⊣e
subgoal 9 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars: ?4577 using ?4584 , ?4578 using ?4586 , ?4579 using ?4588 , ?4584 using ?4592 , ?4586 using , ?4588 using ?4598 , ?4592 using , ?4598 using ,)
trivial. 8 subgoals, subgoal 1 (ID 4603)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
B : Term
B' : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A' : !s1
H : strip_env Γ ⊢e strip A = strip A' : !s1%UT
t0 : A :: Γ ⊢ B ▹ B' : !s2
H0 : strip A :: strip_env Γ ⊢e strip B = strip B' : !s2%UT
t1 : Γ ⊢ M ▹ M' : Π (A), B
H1 : strip_env Γ ⊢e strip M = strip M' : (Π (strip A), strip B)%UT
t2 : Γ ⊢ N ▹ N' : A
H2 : strip_env Γ ⊢e strip N = strip N' : strip A
============================
strip_env Γ ⊢e strip N = strip N' : strip A
subgoal 2 (ID 4474) is:
strip_env Γ ⊢e (λ [strip A], strip M)%UT · strip N =
strip M' [ ← N'] : strip B [ ← N]
subgoal 3 (ID 4485) is:
strip_env Γ ⊢e strip M = strip N : strip B
subgoal 4 (ID 4496) is:
strip_env Γ ⊢e strip M = strip N : strip A
subgoal 5 (ID 4503) is:
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 6 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 7 (ID 4514) is:
nil ⊣e
subgoal 8 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars: ?4577 using ?4584 , ?4578 using ?4586 , ?4579 using ?4588 , ?4584 using ?4592 , ?4586 using , ?4588 using ?4598 , ?4592 using , ?4598 using ,)
trivial.7 subgoals, subgoal 1 (ID 4474)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢e strip A = strip A : !s1%UT
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢e strip A' = strip A' : !s1%UT
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢e strip A0 = strip A : !s1%UT
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢e strip A0 = strip A' : !s1%UT
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢e strip B = strip B : !s2%UT
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢e strip M = strip M' : strip B
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢e strip N = strip N' : strip A
============================
strip_env Γ ⊢e (λ [strip A], strip M)%UT · strip N =
strip M' [ ← N'] : strip B [ ← N]
subgoal 2 (ID 4485) is:
strip_env Γ ⊢e strip M = strip N : strip B
subgoal 3 (ID 4496) is:
strip_env Γ ⊢e strip M = strip N : strip A
subgoal 4 (ID 4503) is:
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 5 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 6 (ID 4514) is:
nil ⊣e
subgoal 7 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars: ?4577 using ?4584 , ?4578 using ?4586 , ?4579 using ?4588 , ?4584 using ?4592 , ?4586 using , ?4588 using ?4598 , ?4592 using , ?4598 using ,)
apply cTrans with ((strip M)[← strip N])%UT. 8 subgoals, subgoal 1 (ID 4604)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢e strip A = strip A : !s1%UT
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢e strip A' = strip A' : !s1%UT
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢e strip A0 = strip A : !s1%UT
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢e strip A0 = strip A' : !s1%UT
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢e strip B = strip B : !s2%UT
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢e strip M = strip M' : strip B
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢e strip N = strip N' : strip A
============================
strip_env Γ ⊢e (λ [strip A], strip M)%UT · strip N =
((strip M) [ ← strip N])%UT : strip B [ ← N]
subgoal 2 (ID 4605) is:
strip_env Γ ⊢e ((strip M) [ ← strip N])%UT = strip M' [ ← N']
: strip B [ ← N]
subgoal 3 (ID 4485) is:
strip_env Γ ⊢e strip M = strip N : strip B
subgoal 4 (ID 4496) is:
strip_env Γ ⊢e strip M = strip N : strip A
subgoal 5 (ID 4503) is:
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 6 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 7 (ID 4514) is:
nil ⊣e
subgoal 8 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars: ?4577 using ?4584 , ?4578 using ?4586 , ?4579 using ?4588 , ?4584 using ?4592 , ?4586 using , ?4588 using ?4598 , ?4592 using , ?4598 using ,)
rewrite !strip_subst.8 subgoals, subgoal 1 (ID 4606)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢e strip A = strip A : !s1%UT
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢e strip A' = strip A' : !s1%UT
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢e strip A0 = strip A : !s1%UT
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢e strip A0 = strip A' : !s1%UT
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢e strip B = strip B : !s2%UT
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢e strip M = strip M' : strip B
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢e strip N = strip N' : strip A
============================
strip_env Γ ⊢e (λ [strip A], strip M)%UT · strip N =
((strip M) [ ← strip N])%UT : ((strip B) [ ← strip N])%UT
subgoal 2 (ID 4605) is:
strip_env Γ ⊢e ((strip M) [ ← strip N])%UT = strip M' [ ← N']
: strip B [ ← N]
subgoal 3 (ID 4485) is:
strip_env Γ ⊢e strip M = strip N : strip B
subgoal 4 (ID 4496) is:
strip_env Γ ⊢e strip M = strip N : strip A
subgoal 5 (ID 4503) is:
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 6 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 7 (ID 4514) is:
nil ⊣e
subgoal 8 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars: ?4577 using ?4584 , ?4578 using ?4586 , ?4579 using ?4588 , ?4584 using ?4592 , ?4586 using , ?4588 using ?4598 , ?4592 using , ?4598 using ,)
apply cBeta with s1 s2 s3; trivial.11 subgoals, subgoal 1 (ID 4608)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢e strip A = strip A : !s1%UT
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢e strip A' = strip A' : !s1%UT
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢e strip A0 = strip A : !s1%UT
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢e strip A0 = strip A' : !s1%UT
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢e strip B = strip B : !s2%UT
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢e strip M = strip M' : strip B
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢e strip N = strip N' : strip A
============================
strip_env Γ ⊢e strip A : !s1%UT
subgoal 2 (ID 4609) is:
strip A :: strip_env Γ ⊢e strip B : !s2%UT
subgoal 3 (ID 4610) is:
strip A :: strip_env Γ ⊢e strip M : strip B
subgoal 4 (ID 4611) is:
strip_env Γ ⊢e strip N : strip A
subgoal 5 (ID 4605) is:
strip_env Γ ⊢e ((strip M) [ ← strip N])%UT = strip M' [ ← N']
: strip B [ ← N]
subgoal 6 (ID 4485) is:
strip_env Γ ⊢e strip M = strip N : strip B
subgoal 7 (ID 4496) is:
strip_env Γ ⊢e strip M = strip N : strip A
subgoal 8 (ID 4503) is:
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 9 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 10 (ID 4514) is:
nil ⊣e
subgoal 11 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars: ?4577 using ?4584 , ?4578 using ?4586 , ?4579 using ?4588 , ?4584 using ?4592 , ?4586 using , ?4588 using ?4598 , ?4592 using , ?4598 using ,)
apply left_reflexivity with (strip A); trivial.10 subgoals, subgoal 1 (ID 4609)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢e strip A = strip A : !s1%UT
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢e strip A' = strip A' : !s1%UT
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢e strip A0 = strip A : !s1%UT
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢e strip A0 = strip A' : !s1%UT
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢e strip B = strip B : !s2%UT
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢e strip M = strip M' : strip B
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢e strip N = strip N' : strip A
============================
strip A :: strip_env Γ ⊢e strip B : !s2%UT
subgoal 2 (ID 4610) is:
strip A :: strip_env Γ ⊢e strip M : strip B
subgoal 3 (ID 4611) is:
strip_env Γ ⊢e strip N : strip A
subgoal 4 (ID 4605) is:
strip_env Γ ⊢e ((strip M) [ ← strip N])%UT = strip M' [ ← N']
: strip B [ ← N]
subgoal 5 (ID 4485) is:
strip_env Γ ⊢e strip M = strip N : strip B
subgoal 6 (ID 4496) is:
strip_env Γ ⊢e strip M = strip N : strip A
subgoal 7 (ID 4503) is:
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 8 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 9 (ID 4514) is:
nil ⊣e
subgoal 10 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars: ?4577 using ?4584 , ?4578 using ?4586 , ?4579 using ?4588 , ?4584 using ?4592 , ?4586 using , ?4588 using ?4598 , ?4592 using , ?4598 using ,)
apply left_reflexivity with (strip B); trivial.9 subgoals, subgoal 1 (ID 4610)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢e strip A = strip A : !s1%UT
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢e strip A' = strip A' : !s1%UT
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢e strip A0 = strip A : !s1%UT
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢e strip A0 = strip A' : !s1%UT
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢e strip B = strip B : !s2%UT
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢e strip M = strip M' : strip B
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢e strip N = strip N' : strip A
============================
strip A :: strip_env Γ ⊢e strip M : strip B
subgoal 2 (ID 4611) is:
strip_env Γ ⊢e strip N : strip A
subgoal 3 (ID 4605) is:
strip_env Γ ⊢e ((strip M) [ ← strip N])%UT = strip M' [ ← N']
: strip B [ ← N]
subgoal 4 (ID 4485) is:
strip_env Γ ⊢e strip M = strip N : strip B
subgoal 5 (ID 4496) is:
strip_env Γ ⊢e strip M = strip N : strip A
subgoal 6 (ID 4503) is:
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 7 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 8 (ID 4514) is:
nil ⊣e
subgoal 9 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars: ?4577 using ?4584 , ?4578 using ?4586 , ?4579 using ?4588 , ?4584 using ?4592 , ?4586 using , ?4588 using ?4598 , ?4592 using , ?4598 using ,)
apply left_reflexivity with (strip M'); trivial.8 subgoals, subgoal 1 (ID 4611)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢e strip A = strip A : !s1%UT
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢e strip A' = strip A' : !s1%UT
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢e strip A0 = strip A : !s1%UT
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢e strip A0 = strip A' : !s1%UT
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢e strip B = strip B : !s2%UT
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢e strip M = strip M' : strip B
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢e strip N = strip N' : strip A
============================
strip_env Γ ⊢e strip N : strip A
subgoal 2 (ID 4605) is:
strip_env Γ ⊢e ((strip M) [ ← strip N])%UT = strip M' [ ← N']
: strip B [ ← N]
subgoal 3 (ID 4485) is:
strip_env Γ ⊢e strip M = strip N : strip B
subgoal 4 (ID 4496) is:
strip_env Γ ⊢e strip M = strip N : strip A
subgoal 5 (ID 4503) is:
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 6 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 7 (ID 4514) is:
nil ⊣e
subgoal 8 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars: ?4577 using ?4584 , ?4578 using ?4586 , ?4579 using ?4588 , ?4584 using ?4592 , ?4586 using , ?4588 using ?4598 , ?4592 using , ?4598 using ,)
apply left_reflexivity with (strip N'); trivial.7 subgoals, subgoal 1 (ID 4605)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢e strip A = strip A : !s1%UT
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢e strip A' = strip A' : !s1%UT
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢e strip A0 = strip A : !s1%UT
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢e strip A0 = strip A' : !s1%UT
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢e strip B = strip B : !s2%UT
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢e strip M = strip M' : strip B
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢e strip N = strip N' : strip A
============================
strip_env Γ ⊢e ((strip M) [ ← strip N])%UT = strip M' [ ← N']
: strip B [ ← N]
subgoal 2 (ID 4485) is:
strip_env Γ ⊢e strip M = strip N : strip B
subgoal 3 (ID 4496) is:
strip_env Γ ⊢e strip M = strip N : strip A
subgoal 4 (ID 4503) is:
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 5 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 6 (ID 4514) is:
nil ⊣e
subgoal 7 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars: ?4577 using ?4584 , ?4578 using ?4586 , ?4579 using ?4588 , ?4584 using ?4592 , ?4586 using , ?4588 using ?4598 , ?4592 using , ?4598 using ,)
rewrite !strip_subst.7 subgoals, subgoal 1 (ID 4617)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢e strip A = strip A : !s1%UT
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢e strip A' = strip A' : !s1%UT
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢e strip A0 = strip A : !s1%UT
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢e strip A0 = strip A' : !s1%UT
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢e strip B = strip B : !s2%UT
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢e strip M = strip M' : strip B
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢e strip N = strip N' : strip A
============================
strip_env Γ ⊢e ((strip M) [ ← strip N])%UT = ((strip M') [ ← strip N'])%UT
: ((strip B) [ ← strip N])%UT
subgoal 2 (ID 4485) is:
strip_env Γ ⊢e strip M = strip N : strip B
subgoal 3 (ID 4496) is:
strip_env Γ ⊢e strip M = strip N : strip A
subgoal 4 (ID 4503) is:
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 5 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 6 (ID 4514) is:
nil ⊣e
subgoal 7 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars: ?4577 using ?4584 , ?4578 using ?4586 , ?4579 using ?4588 , ?4584 using ?4592 , ?4586 using , ?4588 using ?4598 , ?4592 using , ?4598 using ,)
eapply parallel_subst.9 subgoals, subgoal 1 (ID 4621)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢e strip A = strip A : !s1%UT
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢e strip A' = strip A' : !s1%UT
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢e strip A0 = strip A : !s1%UT
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢e strip A0 = strip A' : !s1%UT
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢e strip B = strip B : !s2%UT
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢e strip M = strip M' : strip B
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢e strip N = strip N' : strip A
============================
?4618 ⊢e strip M = strip M' : strip B
subgoal 2 (ID 4622) is:
?4619 ⊢e strip N = strip N' : ?4620
subgoal 3 (ID 4623) is:
UEM.sub_in_env ?4619 (strip N) ?4620 0 ?4618 (strip_env Γ)
subgoal 4 (ID 4485) is:
strip_env Γ ⊢e strip M = strip N : strip B
subgoal 5 (ID 4496) is:
strip_env Γ ⊢e strip M = strip N : strip A
subgoal 6 (ID 4503) is:
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 7 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 8 (ID 4514) is:
nil ⊣e
subgoal 9 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars: ?4577 using ?4584 , ?4578 using ?4586 , ?4579 using ?4588 , ?4584 using ?4592 , ?4586 using , ?4588 using ?4598 , ?4592 using , ?4598 using , ?4618 open, ?4619 open, ?4620 open,)
apply H4. 8 subgoals, subgoal 1 (ID 4622)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢e strip A = strip A : !s1%UT
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢e strip A' = strip A' : !s1%UT
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢e strip A0 = strip A : !s1%UT
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢e strip A0 = strip A' : !s1%UT
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢e strip B = strip B : !s2%UT
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢e strip M = strip M' : strip B
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢e strip N = strip N' : strip A
============================
?4619 ⊢e strip N = strip N' : ?4620
subgoal 2 (ID 4623) is:
UEM.sub_in_env ?4619 (strip N) ?4620 0 (strip A :: strip_env Γ)
(strip_env Γ)
subgoal 3 (ID 4485) is:
strip_env Γ ⊢e strip M = strip N : strip B
subgoal 4 (ID 4496) is:
strip_env Γ ⊢e strip M = strip N : strip A
subgoal 5 (ID 4503) is:
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 6 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 7 (ID 4514) is:
nil ⊣e
subgoal 8 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars: ?4577 using ?4584 , ?4578 using ?4586 , ?4579 using ?4588 , ?4584 using ?4592 , ?4586 using , ?4588 using ?4598 , ?4592 using , ?4598 using , ?4618 using , ?4619 open, ?4620 open,)
apply H5.7 subgoals, subgoal 1 (ID 4623)
Γ : Env
M : Term
M' : Term
N : Term
N' : Term
A : Term
A' : Term
A0 : Term
B : Term
s1 : Sorts
s2 : Sorts
s3 : Sorts
r : Rel s1 s2 s3
t : Γ ⊢ A ▹ A : !s1
H : strip_env Γ ⊢e strip A = strip A : !s1%UT
t0 : Γ ⊢ A' ▹ A' : !s1
H0 : strip_env Γ ⊢e strip A' = strip A' : !s1%UT
t1 : Γ ⊢ A0 ▹▹ A : !s1
H1 : strip_env Γ ⊢e strip A0 = strip A : !s1%UT
t2 : Γ ⊢ A0 ▹▹ A' : !s1
H2 : strip_env Γ ⊢e strip A0 = strip A' : !s1%UT
t3 : A :: Γ ⊢ B ▹ B : !s2
H3 : strip A :: strip_env Γ ⊢e strip B = strip B : !s2%UT
t4 : A :: Γ ⊢ M ▹ M' : B
H4 : strip A :: strip_env Γ ⊢e strip M = strip M' : strip B
t5 : Γ ⊢ N ▹ N' : A
H5 : strip_env Γ ⊢e strip N = strip N' : strip A
============================
UEM.sub_in_env (strip_env Γ) (strip N) (strip A) 0
(strip A :: strip_env Γ) (strip_env Γ)
subgoal 2 (ID 4485) is:
strip_env Γ ⊢e strip M = strip N : strip B
subgoal 3 (ID 4496) is:
strip_env Γ ⊢e strip M = strip N : strip A
subgoal 4 (ID 4503) is:
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 5 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 6 (ID 4514) is:
nil ⊣e
subgoal 7 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars: ?4577 using ?4584 , ?4578 using ?4586 , ?4579 using ?4588 , ?4584 using ?4592 , ?4586 using , ?4588 using ?4598 , ?4592 using , ?4598 using , ?4618 using , ?4619 using , ?4620 using ,)
constructor.6 subgoals, subgoal 1 (ID 4485)
Γ : Env
M : Term
N : Term
A : Term
B : Term
s : Sorts
t : Γ ⊢ M ▹ N : A
H : strip_env Γ ⊢e strip M = strip N : strip A
t0 : Γ ⊢ A ▹ B : !s
H0 : strip_env Γ ⊢e strip A = strip B : !s%UT
============================
strip_env Γ ⊢e strip M = strip N : strip B
subgoal 2 (ID 4496) is:
strip_env Γ ⊢e strip M = strip N : strip A
subgoal 3 (ID 4503) is:
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 4 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 5 (ID 4514) is:
nil ⊣e
subgoal 6 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars: ?4577 using ?4584 , ?4578 using ?4586 , ?4579 using ?4588 , ?4584 using ?4592 , ?4586 using , ?4588 using ?4598 , ?4592 using , ?4598 using , ?4618 using , ?4619 using , ?4620 using ,)
apply Cnv_eq with (strip A) s; trivial.5 subgoals, subgoal 1 (ID 4496)
Γ : Env
M : Term
N : Term
A : Term
B : Term
s : Sorts
t : Γ ⊢ M ▹ N : B
H : strip_env Γ ⊢e strip M = strip N : strip B
t0 : Γ ⊢ A ▹ B : !s
H0 : strip_env Γ ⊢e strip A = strip B : !s%UT
============================
strip_env Γ ⊢e strip M = strip N : strip A
subgoal 2 (ID 4503) is:
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 3 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 4 (ID 4514) is:
nil ⊣e
subgoal 5 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars: ?4577 using ?4584 , ?4578 using ?4586 , ?4579 using ?4588 , ?4584 using ?4592 , ?4586 using , ?4588 using ?4598 , ?4592 using , ?4598 using , ?4618 using , ?4619 using , ?4620 using ,)
apply Cnv_eq with (strip B) s; intuition.4 subgoals, subgoal 1 (ID 4503)
Γ : Env
s : Term
t : Term
T : Term
t0 : Γ ⊢ s ▹ t : T
H : strip_env Γ ⊢e strip s = strip t : strip T
============================
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 2 (ID 4513) is:
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 3 (ID 4514) is:
nil ⊣e
subgoal 4 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars: ?4577 using ?4584 , ?4578 using ?4586 , ?4579 using ?4588 , ?4584 using ?4592 , ?4586 using , ?4588 using ?4598 , ?4592 using , ?4598 using , ?4618 using , ?4619 using , ?4620 using ,)
eauto.3 subgoals, subgoal 1 (ID 4513)
Γ : Env
s : Term
t : Term
u : Term
T : Term
t0 : Γ ⊢ s ▹▹ t : T
H : strip_env Γ ⊢e strip s = strip t : strip T
t1 : Γ ⊢ t ▹▹ u : T
H0 : strip_env Γ ⊢e strip t = strip u : strip T
============================
strip_env Γ ⊢e strip s = strip u : strip T
subgoal 2 (ID 4514) is:
nil ⊣e
subgoal 3 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars: ?4577 using ?4584 , ?4578 using ?4586 , ?4579 using ?4588 , ?4584 using ?4592 , ?4586 using , ?4588 using ?4598 , ?4592 using , ?4598 using , ?4618 using , ?4619 using , ?4620 using ,)
eauto.2 subgoals, subgoal 1 (ID 4514)
============================
nil ⊣e
subgoal 2 (ID 4521) is:
strip A :: strip_env Γ ⊣e
(dependent evars: ?4577 using ?4584 , ?4578 using ?4586 , ?4579 using ?4588 , ?4584 using ?4592 , ?4586 using , ?4588 using ?4598 , ?4592 using , ?4598 using , ?4618 using , ?4619 using , ?4620 using , ?4666 using ,)
trivial.1 subgoals, subgoal 1 (ID 4521)
Γ : Env
A : Term
A' : Term
s : Sorts
t : Γ ⊢ A ▹ A' : !s
H : strip_env Γ ⊢e strip A = strip A' : !s%UT
============================
strip A :: strip_env Γ ⊣e
(dependent evars: ?4577 using ?4584 , ?4578 using ?4586 , ?4579 using ?4588 , ?4584 using ?4592 , ?4586 using , ?4588 using ?4598 , ?4592 using , ?4598 using , ?4618 using , ?4619 using , ?4620 using , ?4666 using ,)
econstructor. 1 subgoals, subgoal 1 (ID 4724)
Γ : Env
A : Term
A' : Term
s : Sorts
t : Γ ⊢ A ▹ A' : !s
H : strip_env Γ ⊢e strip A = strip A' : !s%UT
============================
strip_env Γ ⊢e strip A : !?4723%UT
(dependent evars: ?4577 using ?4584 , ?4578 using ?4586 , ?4579 using ?4588 , ?4584 using ?4592 , ?4586 using , ?4588 using ?4598 , ?4592 using , ?4598 using , ?4618 using , ?4619 using , ?4620 using , ?4666 using , ?4723 open,)
apply left_reflexivity in H. 1 subgoals, subgoal 1 (ID 4727)
Γ : Env
A : Term
A' : Term
s : Sorts
t : Γ ⊢ A ▹ A' : !s
H : strip_env Γ ⊢e strip A : !s%UT
============================
strip_env Γ ⊢e strip A : !?4726%UT
(dependent evars: ?4577 using ?4584 , ?4578 using ?4586 , ?4579 using ?4588 , ?4584 using ?4592 , ?4586 using , ?4588 using ?4598 , ?4592 using , ?4598 using , ?4618 using , ?4619 using , ?4620 using , ?4666 using , ?4723 using ?4726 , ?4726 open,)
apply H.No more subgoals.
(dependent evars: ?4577 using ?4584 , ?4578 using ?4586 , ?4579 using ?4588 , ?4584 using ?4592 , ?4586 using , ?4588 using ?4598 , ?4592 using , ?4598 using , ?4618 using , ?4619 using , ?4620 using , ?4666 using , ?4723 using ?4726 , ?4726 using ,)
Qed.FromPTSATR_to_PTSe is defined
Lemma FromPTSATR_to_PTSe_trans : forall Γ M N T, Γ ⊢ M ▹▹ N : T -> (strip_env Γ) ⊢e (strip M) = (strip N) : (strip T).1 subgoals, subgoal 1 (ID 4733)
============================
forall (Γ : Env) (M N T : Term),
Γ ⊢ M ▹▹ N : T -> strip_env Γ ⊢e strip M = strip N : strip T
(dependent evars:)
induction 1. 2 subgoals, subgoal 1 (ID 4755)
Γ : Env
s : Term
t : Term
T : Term
H : Γ ⊢ s ▹ t : T
============================
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 2 (ID 4765) is:
strip_env Γ ⊢e strip s = strip u : strip T
(dependent evars:)
apply FromPTSATR_to_PTSe in H. 2 subgoals, subgoal 1 (ID 4776)
Γ : Env
s : Term
t : Term
T : Term
H : strip_env Γ ⊢e strip s = strip t : strip T
============================
strip_env Γ ⊢e strip s = strip t : strip T
subgoal 2 (ID 4765) is:
strip_env Γ ⊢e strip s = strip u : strip T
(dependent evars:)
trivial.1 subgoals, subgoal 1 (ID 4765)
Γ : Env
s : Term
t : Term
u : Term
T : Term
H : Γ ⊢ s ▹▹ t : T
H0 : Γ ⊢ t ▹▹ u : T
IHtyp_reds1 : strip_env Γ ⊢e strip s = strip t : strip T
IHtyp_reds2 : strip_env Γ ⊢e strip t = strip u : strip T
============================
strip_env Γ ⊢e strip s = strip u : strip T
(dependent evars:)
eauto.No more subgoals.
(dependent evars: ?4794 using ,)
Qed.FromPTSATR_to_PTSe_trans is defined