(* Note: this requires ↑ on first n *)
(*** at_pxx_tls *)
lemma pr_pat_unit_succ_tls (n) (f):
- @❨𝟏,f❩ ≘ ↑n → @❨𝟏,⫰*[n]f❩ ≘ 𝟏.
+ @⧣❨𝟏,f❩ ≘ ↑n → @⧣❨𝟏,⫰*[n]f❩ ≘ 𝟏.
#n @(nat_ind_succ … n) -n //
#n #IH #f #Hf
elim (pr_pat_inv_unit_succ … Hf) -Hf [|*: // ] #g #Hg #H0 destruct
(* Note: this requires ↑ on third n2 *)
(*** at_tls *)
-lemma pr_pat_tls (n2) (f): ⫯⫰*[↑n2]f ≐ ⫰*[n2]f → ∃i1. @❨i1,f❩ ≘ ↑n2.
+lemma pr_pat_tls (n2) (f): ⫯⫰*[↑n2]f ≐ ⫰*[n2]f → ∃i1. @⧣❨i1,f❩ ≘ ↑n2.
#n2 @(nat_ind_succ … n2) -n2
[ /4 width=4 by pr_pat_eq_repl_back, pr_pat_refl, ex_intro/
| #n2 #IH #f <pr_tls_swap <pr_tls_swap in ⊢ (??%→?); #H
(* Note: this does not require ↑ on second and third p *)
(*** at_inv_nxx *)
lemma pr_pat_inv_succ_sn (p) (g) (i1) (j2):
- @❨↑i1,g❩ ≘ j2 → @❨𝟏,g❩ ≘ p →
- ∃∃i2. @❨i1,⫰*[p]g❩ ≘ i2 & p+i2 = j2.
+ @⧣❨↑i1,g❩ ≘ j2 → @⧣❨𝟏,g❩ ≘ p →
+ ∃∃i2. @⧣❨i1,⫰*[p]g❩ ≘ i2 & p+i2 = j2.
#p elim p -p
[ #g #i1 #j2 #Hg #H
elim (pr_pat_inv_unit_bi … H) -H [|*: // ] #f #H0
(* Note: this requires ↑ on first n2 *)
(*** at_inv_tls *)
lemma pr_pat_inv_succ_dx_tls (n2) (i1) (f):
- @❨i1,f❩ ≘ ↑n2 → ⫯⫰*[↑n2]f ≐ ⫰*[n2]f.
+ @⧣❨i1,f❩ ≘ ↑n2 → ⫯⫰*[↑n2]f ≐ ⫰*[n2]f.
#n2 @(nat_ind_succ … n2) -n2
[ #i1 #f #Hf elim (pr_pat_inv_unit_dx … Hf) -Hf // #g #H1 #H destruct
/2 width=1 by pr_eq_refl/