Type 产品的注入性有意义吗?

Does injectivity of Type product make sense?

如何在 Coq 中证明以下内容?

Goal forall (A B : Type), (A*A = B*B)%type -> A = B.

如果不可证明,是否可以安全地添加为公理?

编辑:以下答案假设的陈述比问题中的陈述更强:forall (A B C D : Type), (A*B = C*D)%type -> A = C。所以答案实际上并没有回答问题。

您的目标无法证明,因为它与独立于 Coq 的 univalence 相矛盾。矛盾的产生是因为 A * False 同构于任何 AFalse。然后单价意味着 A * False = False 并且您的目标让我们得出 A = B 任何 AB。特别是 True = False,它通过传输产生 False 的证明。所以,如果你的目标是可证明的,Coq 将是反单价的。

不知道你的没有单价性的目标是不是也自相矛盾

肯定与单价不符,e.g. 2x3 = 1 x 6 但 1 /= 2 和 3 /= 6。奇怪的想法想要这个。

是的,我的评论是针对更强的声明。平方应该是单射的,但我不确定你是否可以在 HoT 中证明这一点。