我有一个幼稚的问题:
我们为什么不将此公理添加到Coq:
Axiom type_extensionality : forall (A B:Type) (f:A->B) (invf:B->A) (H1: forall b, (f (invf b)) = b) (H2: forall a, (invf (f a)) = a), A = B.
好吧,它允许诸如(nat-> Prop)=(nat-> bool)和(A \ / B)->(A + B)等非构造定理(证明为here) 。 但是Coq的标准库已经有很多非构造公理。
会导致矛盾吗?(如果是这样,我在哪里可以阅读证明?) 还是尚未证明公理不会导致矛盾?也许只是没用?
也许这就是HoTT库在https://github.com/HoTT/HoTT/blob/master/theories/Basics/Overture.v中重新定义路径类型的原因。 这种“类型扩展性”公理不如单性公理强。 如果没有ProofIrelevance,PropositionExtensionality,则最后一个失败。 (布尔以两种不同的方式等效于自身,而布尔=布尔类型仅包含一个元素)。