我可以安全地假设同构类型是相等的吗?
Can I safely assume that isomorphic types are equal?
设A
与B
为Type
,f : A -> B
与g : B -> A
为反函数。换句话说 A
和 B
是同构类型。
- 真的不能证明
A <> B
吗?
- 我可以安全地添加
A = B
的公理吗?
- 这个公理与 Coq 标准库的其他公理兼容吗?而且,如果是,为什么它不在标准库中?
这类问题是 homotopy type theory 的偏爱领域,但这里是对您的问题的初步综合回答。
在 CIC(± Coq 的理想理论)中,我们说两种类型 A
和 B
是 等价的 如果有函数 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 模型。
所以回答你的问题:
- 是的,无法在 CIC 中证明
A <> B
,因为任何此类证明都会与单价相矛盾(因此不存在 CIC + 单价的模型)
- 您将无法证明 False,因为它是具有模型的单价的特例,但是 Coq 的计算内容将部分丢失(因为添加任何公理总是如此) ).
- Univalence 与 Coq 标准库的某些公理兼容(例如 excluded-middle),但与其他公理不兼容(身份证明的唯一性,a.k.a。UIP,univalence 指出有 2 个证明布尔 = 布尔)。关于标准库没有单价性,源于标准库在 Prop 中定义了相等性,这与身份的多个见证人的存在不相容。但是,您提到的公理可能会以与 UIP 兼容的方式表述(Bauer 和 Winterhalter 在所谓的类型论基数模型上做了一些工作)。必须检查它是否与标准库中的其他公理兼容。
设A
与B
为Type
,f : A -> B
与g : B -> A
为反函数。换句话说 A
和 B
是同构类型。
- 真的不能证明
A <> B
吗? - 我可以安全地添加
A = B
的公理吗? - 这个公理与 Coq 标准库的其他公理兼容吗?而且,如果是,为什么它不在标准库中?
这类问题是 homotopy type theory 的偏爱领域,但这里是对您的问题的初步综合回答。
在 CIC(± Coq 的理想理论)中,我们说两种类型 A
和 B
是 等价的 如果有函数 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 模型。
所以回答你的问题:
- 是的,无法在 CIC 中证明
A <> B
,因为任何此类证明都会与单价相矛盾(因此不存在 CIC + 单价的模型) - 您将无法证明 False,因为它是具有模型的单价的特例,但是 Coq 的计算内容将部分丢失(因为添加任何公理总是如此) ).
- Univalence 与 Coq 标准库的某些公理兼容(例如 excluded-middle),但与其他公理不兼容(身份证明的唯一性,a.k.a。UIP,univalence 指出有 2 个证明布尔 = 布尔)。关于标准库没有单价性,源于标准库在 Prop 中定义了相等性,这与身份的多个见证人的存在不相容。但是,您提到的公理可能会以与 UIP 兼容的方式表述(Bauer 和 Winterhalter 在所谓的类型论基数模型上做了一些工作)。必须检查它是否与标准库中的其他公理兼容。