| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
|
Thank you for the quick reply! I read the build error message, but it seems like that the error is irrelevant to change made in this PR. (#1129 also fails check with same error) Error: cabal: Failed to build shoggoth-0.1.0.0 (which is required by exe:builder from plfa-22.8). See the build log above for details. |
Sorry, something went wrong.
|
Thank you @damhiya for this PR. I like your generalization. |
Sorry, something went wrong.
|
@jsiek Thank you, I recovered the original theorem as your suggestion! |
Sorry, something went wrong.
There was a problem hiding this comment.
Please change the uses of the lemma back to the old one. Thank you!
Sorry, something went wrong.
There was a problem hiding this comment.
Looks great, thanks again!
Sorry, something went wrong.
added definition: `Commute` added lemma: `Commute-S`, `Commute-ext`, `Commute-subst-rename`
| Back | FazBrowse Home | New Git URL |
Hello! I generalized the statement of commute-subst-rename and added some definitions and lemmas in the Substitution appendix.
Here is the previous statement of commute-subst-rename:
And suggested revision:
Old statement is an instance of the new one, where σ₁ = exts σ and σ₂ = σ.
The motivation for this change is two folded. First, it is simply more general, so it has more applications in theory. Second and more importantly, the new proof can be naturally adapted to typed setting, while the older one is not. Consider the previous proof of commute-subst-rename for the ƛ_ case.
commute-subst-rename {Γ}{Δ}{ƛ N}{σ}{ρ₁}{ρ₂} H = cong ƛ_ (commute-subst-rename{Γ , ★}{Δ , ★}{N} {exts σ}{ext ρ₁}{ext ρ₂} (λ {x} → H′ {x})) where H′ : {x : Γ , ★ ∋ ★} → exts (exts σ) (ext ρ₁ x) ≡ rename (ext ρ₂) (exts σ x) H′ = ...In the type of H′, exts σ on the LHS and exts σ on the RHS may seem equal, but each occurrence of exts operations are responsible for different variables. If we annotate ext/exts operations with relatedness, the type would be something like the following:
However the use of H′ in commute-subst-rename{Γ , ★}{Δ , ★}{N}{exts σ}{ext ρ₁}{ext ρ₂} (λ {x} → H′ {x}) requires exts₁ σ and exts₂ σ to be judgementally equal. This is the case in our untyped setting, but it could be false in general, for instance in intrinsically typed setting. The generalized version does not have this problem.
I also fixed text according to changed proof structure.