-
Notifications
You must be signed in to change notification settings - Fork 72
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Computational identity types #1015
Conversation
Turns out I could also make the concatenation operation on the judgmentally involutive identity types judgmentally left unital by being a little meticulous with definitions. 😄 |
Note that we are both editing |
Oh, apologies. Thanks for reminding me! |
It's ok. I can work your changes into mine if you finish before me. If I finish before you then you'll have to do it :) |
…pes defined by the judgmentally right unital concatenation operation on identifications
…ally involutive identity types
This pull request is going to be an amazing addition to the library, and you should also think about writing up a preprint with this stuff. This is real progress. |
src/foundation/judgmentally-compositional-identity-types.lagda.md
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is an impressive pull request. It is very well written and well-documented. I went into more detail than usual with my feedback, because you specifically mentioned that you were shooting for perfection. Otherwise I would not have gone into such annoying detail.
My biggest complaint is that you use the words "definitional", "judgmental", and "strict" interchangeably. Note that the words "definitional" and "judgmental" are not considered synonymous. "Definitional equality" is equality that holds by definition, and judgmental equality is a notion of equality that encompasses judgmental equality, but also includes other strict equalities such as rewrite rules.
I would drop your extensive use of "definitionally unital" and or "judgmentally unital", which is used inconsistently, in favor of "strictly unital", which is also in line with your use of "strictly associative". You had some concerns about the word strict, but it is widely understood what is meant by "strict" in this setting, while your use of "definitional" in some places is widely understood to be inaccurate.
Other than that, I applaud you for finding these excellent definitions, and I am very grateful that you are adding them to the library. This is very awesome work!
Note that if my feedback is "too much" then I'm happy to be more lenient, because I am actually very happy with this pull request. It's just that you asked for the text to be "perfect" so I gave it a thorough read-through. |
I don't find your review too meticulous at all! Thanks for the added attention. It's much appreciated :) |
I've addressed all of your comments to the best of my ability now. |
Summary
Adds
inv (inv p) ≐ p
inv refl ≐ refl
refl ∙ p ≐ p
orp ∙ refl ≐ p
ind-Id B f refl ≐ f refl
(p ∙ q) ∙ r ≐ p ∙ (q ∙ r)
refl ∙ p ≐ p
p ∙ refl ≐ p
inv refl ≐ refl
rec-Id f refl ≐ f refl
inv (inv p) ≐ p
inv refl ≐ refl
refl ∙ p ≐ p
orp ∙ refl ≐ p
(p ∙ q) ∙ r ≐ p ∙ (q ∙ r)
rec-Id f refl ≐ f refl
References