Conversation
|
Hi @ibbem , One thing I wonder is, what the following is used for and what it actually does. It seems to do some Agda compiler magic? Why is it necessary? open import Relation.Binary.PropositionalEquality.WithK using (≡-irrelevant) |
There is no magic in this module whatsoever. The K axiom (aka. uniqueness of identity proofs, short UIP) is just the following: ≡-irrelevant : ∀ {ℓ} {A : Set ℓ} → {a b : A} → (p q : a ≡ b) → p ≡ q
≡-irrelevant refl refl = reflIndeed, this is the (simplified) proof implemented in The point of the separation into By importing this module, similar to importing See Pattern Matching Without K if you want to learn more about how pattern matching implies the K axiom and how to avoid that. |
|
Ah ok, thanks for the explanation! When I looked up the definition Explicitly documenting the dependency on axiom K via this dependency is a good idea. 👍 I would be great if you could document why we need the axiom. |
|
Also, I will have a look at that paper. Thanks for the link. :) |
|
Ah, I was accidentally looking at primitive primEraseEquality : ∀ {a} {A : Set a} {x y : A} → x ≡ y → x ≡ yand was left confused. So it was a "misclick". 😓 |
|
I recommend proceeding this line of research in a fork? What do you think? (We should only fork once we settled for a name of this library.) |
I'm not quite sure if
LeftAdditiveandRightAdditiveare particular good names. Do you have any ideas for naming them?