module A201605.AbelChapmanExtended2.RenamingLemmas.Convergence where

open import A201605.AbelChapmanExtended.Convergence

open import A201605.AbelChapmanExtended2.Syntax
open import A201605.AbelChapmanExtended2.OPE
open import A201605.AbelChapmanExtended2.Renaming
open import A201605.AbelChapmanExtended2.Normalization
open import A201605.AbelChapmanExtended2.RenamingLemmas.Normalization1
open import A201605.AbelChapmanExtended2.RenamingLemmas.Normalization2




⇓ren-readback-ne :  {Δ Δ′ a} (η : Δ′  Δ) (v : Ne Val Δ a) {v′ : Ne Nf Δ a} 
                   readback-ne v  v′  readback-ne (ren-nev η v)  ren-nen η v′
⇓ren-readback-ne η v ⇓v′ = ⇓≈subst (⇓map (ren-nen η) ⇓v′) (ren-readback-ne η v)


⇓ren-π₁-reduce :  {Δ Δ′ a b} (η : Δ′  Δ) (v : Val Δ (a  b)) {v′ : Val Δ a} 
                 π₁-reduce v  v′  π₁-reduce (ren-val η v)  ren-val η v′
⇓ren-π₁-reduce η v ⇓v′ = ⇓≈subst (⇓map (ren-val η) ⇓v′) (ren-π₁-reduce η v)


⇓ren-π₂-reduce :  {Δ Δ′ a b} (η : Δ′  Δ) (v : Val Δ (a  b)) {v′ : Val Δ b} 
                 π₂-reduce v  v′  π₂-reduce (ren-val η v)  ren-val η v′
⇓ren-π₂-reduce η v ⇓v′ = ⇓≈subst (⇓map (ren-val η) ⇓v′) (ren-π₂-reduce η v)