我可以安全地假设同构类型是相等的吗?

Can I safely assume that isomorphic types are equal?

ABTypef : A -> Bg : B -> A为反函数。换句话说 AB 是同构类型。

  1. 真的不能证明A <> B吗?
  2. 我可以安全地添加 A = B 的公理吗?
  3. 这个公理与 Coq 标准库的其他公理兼容吗?而且,如果是,为什么它不在标准库中?

这类问题是 homotopy type theory 的偏爱领域,但这里是对您的问题的初步综合回答。

在 CIC(± Coq 的理想理论)中,我们说两种类型 AB 等价的 如果有函数 f : A -> B 与左逆 g : B -> A(即 f o g = id_B)和右逆 h : B -> A(即 h o f = id_B)。 您可以使用从 A 到 B 的同构来证明它们是等价的。 同伦类型理论关注的是在 CIC(或更确切地说是 MLTT)中添加一个称为 univalence 的公理,它粗略地表明类型之间的等价性和相等性是一致的(更准确地说,有一个映射id_to_equiv : A = B -> equiv A B 并且单价表示这张地图本身就是一个等价物)。 单价与 CIC 兼容,因为存在验证该公理的 CIC 模型。

所以回答你的问题:

  1. 是的,无法在 CIC 中证明 A <> B,因为任何此类证明都会与单价相矛盾(因此不存在 CIC + 单价的模型)
  2. 您将无法证明 False,因为它是具有模型的单价的特例,但是 Coq 的计算内容将部分丢失(因为添加任何公理总是如此) ).
  3. Univalence 与 Coq 标准库的某些公理兼容(例如 excluded-middle),但与其他公理不兼容(身份证明的唯一性,a.k.a。UIP,univalence 指出有 2 个证明布尔 = 布尔)。关于标准库没有单价性,源于标准库在 Prop 中定义了相等性,这与身份的多个见证人的存在不相容。但是,您提到的公理可能会以与 UIP 兼容的方式表述(Bauer 和 Winterhalter 在所谓的类型论基数模型上做了一些工作)。必须检查它是否与标准库中的其他公理兼容。