Finish the var base case

This commit is contained in:
Yiyun Liu 2025-02-14 19:08:41 -05:00
parent 8fd6919538
commit 186f2138e6
2 changed files with 55 additions and 1 deletions

View file

@ -1686,6 +1686,14 @@ Module REReds.
hauto lq:on rew:off ctrs:rtc inv:RERed.R.
Qed.
Lemma var_inv n (i : fin n) C :
rtc RERed.R (VarPTm i) C ->
C = VarPTm i.
Proof.
move E : (VarPTm i) => u hu.
move : i E. elim : u C /hu; hauto lq:on rew:off inv:RERed.R.
Qed.
Lemma substing n m (a b : PTm n) (ρ : fin n -> PTm m) :
rtc RERed.R a b -> rtc RERed.R (subst_PTm ρ a) (subst_PTm ρ b).
Proof.
@ -2188,6 +2196,10 @@ Module DJoin.
hauto lq:on rew:off use:REReds.bind_inv.
Qed.
Lemma var_inj n (i j : fin n) :
R (VarPTm i) (VarPTm j) -> i = j.
Proof. sauto lq:on rew:off use:REReds.var_inv unfold:R. Qed.
Lemma univ_inj n i j :
@R n (PUniv i) (PUniv j) -> i = j.
Proof.