Cartesian calculus of substitutions

Substitution extension by a type

Given Δ 𝛾 :Γ and Γ 𝐴, we can define the extension 𝛾.𝐴 of 𝛾 by 𝐴 as

Δ.𝐴[𝛾]𝛾.𝐴=(𝛾𝐩).𝐪:Γ.𝐴.

with the derivation

Δ𝛾:ΓΔ𝛾:ΓΓ𝐴Δ𝐴[𝛾]Δ.𝐴[𝛾]𝐩Γ,𝐴[𝛾]:ΔΔ.𝐴[𝛾]𝛾𝐩Γ,𝐴[𝛾]:ΓΓ𝐴Δ𝛾:ΓΓ𝐴Δ𝐴[𝛾]Δ.𝐴[𝛾]𝐪Γ,𝐴[𝛾]:𝐴[𝛾𝐩](V)Δ.𝐴[𝛾](𝛾𝐩Γ,𝐴[𝛾]).𝐪Γ,𝐴[𝛾]:Γ.𝐴(E)

Properties

The following are derivable:

  1. Ξ𝛿:ΔΔ𝛾:ΓΞ𝑎:𝐴[𝛾𝛿]Ξ𝛾.𝐴𝛿.𝑎=(𝛾𝛿).𝑎:Γ.𝐴()
  2. Ξ𝛿:ΔΔ𝛾:ΓΓ𝐴Ξ.𝐴[𝛾𝛿]𝛾.𝐴𝛿.𝐴[𝛾]=(𝛾𝛿).𝐴:Γ.𝐴()
  3. Γ𝐴Γ.𝐴𝐢𝐝.𝐴=𝐢𝐝:Γ.𝐴()
Proof of 1–3

For ^P1, expanding definitions and using ^P2 gives

𝛾.𝐴𝛿.𝑎=(𝛾𝐩).𝐪𝛿.𝑎=(𝛾𝐩𝛿.𝑎).𝐪[𝛿.𝑎]=(𝛾𝛿).𝑎

completing the proof of ^P1.

Applying this result to ^P2 gives

𝛾.𝐴𝛿.𝐴[𝛾]=𝛾.𝐴(𝛿𝐩).𝐪=(𝛾𝛿𝐩).𝐪=(𝛾𝛿).𝐴

proving ^P2.

For ^P3 we have 𝐢𝐝.𝐴 =(𝐢𝐝 𝐩).𝐪 =𝐩.𝐪 =(𝐩 𝐢𝐝).𝐪[𝐢𝐝] =𝐢𝐝 by 𝜂𝐩𝐪.


#state/tidy | #lang/en | #SemBr