(* Basic inversion lemmas ***************************************************)
lemma twhnf_inv_thom: ∀T. 𝕎ℍℕ[T] → T ≈ T.
(* Basic inversion lemmas ***************************************************)
lemma twhnf_inv_thom: ∀T. 𝕎ℍℕ[T] → T ≈ T.
qed-.
(* Basic properties *********************************************************)
lemma tpr_thom: ∀T1,T2. T1 ⇒ T2 → T1 ≈ T1 → T1 ≈ T2.
qed-.
(* Basic properties *********************************************************)
lemma tpr_thom: ∀T1,T2. T1 ⇒ T2 → T1 ≈ T1 → T1 ≈ T2.
- elim (thom_inv_flat1 … H) -H #W2 #U2 #HT1U2 #HT1 #_ #H1 #H2 destruct -I T1 V1;
- lapply (IHT12 HT1U2) -IHT12 HT1U2 #HUT2
+ elim (thom_inv_flat1 … H) -H #W2 #U2 #HT1U2 #HT1 #_ #H1 #H2 destruct
+ lapply (IHT12 HT1U2) -IHT12 -HT1U2 #HUT2
lapply (simple_thom_repl_dx … HUT2 HT1) /2 width=1/
| #V1 #V2 #W #T1 #T2 #_ #_ #_ #_ #H
elim (thom_inv_flat1 … H) -H #W2 #U2 #_ #H
elim (simple_inv_bind … H)
| #I #V1 #V2 #T1 #T #T2 #_ #_ #_ #_ #_ #H
lapply (simple_thom_repl_dx … HUT2 HT1) /2 width=1/
| #V1 #V2 #W #T1 #T2 #_ #_ #_ #_ #H
elim (thom_inv_flat1 … H) -H #W2 #U2 #_ #H
elim (simple_inv_bind … H)
| #I #V1 #V2 #T1 #T #T2 #_ #_ #_ #_ #_ #H
| #V2 #V1 #V #W1 #W2 #T1 #T2 #_ #_ #_ #_ #_ #_ #_ #H
elim (thom_inv_flat1 … H) -H #U1 #U2 #_ #H
elim (simple_inv_bind … H)
| #V2 #V1 #V #W1 #W2 #T1 #T2 #_ #_ #_ #_ #_ #_ #_ #H
elim (thom_inv_flat1 … H) -H #U1 #U2 #_ #H
elim (simple_inv_bind … H)