Types 有没有办法证明假elim的唯一性

Types 有没有办法证明假elim的唯一性,types,agda,Types,Agda,我不记得我是否在什么地方读过这篇文章,但我很容易假设⊥ 是一个初始对象。但是,必须有可能根据这个问题的唯一性来构造证明⊥-以利姆箭 像这样: false-elim : forall {A : Set} -> False -> A false-elim () false-iso : forall {A B : Set} -> (g : A -> False) -> (f : A -> B) ->

我不记得我是否在什么地方读过这篇文章,但我很容易假设⊥ 是一个初始对象。但是,必须有可能根据这个问题的唯一性来构造证明⊥-以利姆箭

像这样:

false-elim : forall {A : Set} -> False -> A
false-elim ()

false-iso : forall {A B : Set} -> (g : A -> False)
                               -> (f : A -> B) -> f == (f o false-elim o g)
也就是说,如果有一个箭头从一个方向射入⊥, 那么A同构于⊥. 好的,如果假设(A->⊥) 是一个同构是错误的,至少要有可能表现出同构的唯一性⊥-伊琳:

false-elim-uniq : forall {A B : Set} -> (f : A -> B)
                                     -> false-elim == (f o false-elim)
但这也不明显,事实也是如此⊥-elim在直觉主义类型理论(Agda的基础)中是独一无二的吗

如果可以构造A的元素,则可以构造证明:

false-iso : forall {A B : Set} -> (g : A -> False)
                               -> (f : A -> B) -> A -> f == (f o false-elim o g)
但这不是完全相同的陈述,它说我可以证明所述函数的同伦性(并显示一个≅ ⊥).



考虑一下,我想我可以把我的问题缩小到:如果我能展示的只是一个同伦
f~(f-o-false-elim-o-g)
false-elim
的通用属性是什么样子的?

你可能需要函数的可扩展性。@gallais-hm,是的,但我想知道如果没有可扩展性,它是如何工作的-这是否意味着
false-elim
不是唯一的?那么它怎么是一个通用态射?好的,涉及到同伦,我可以展示同伦
f~(f o假elim o g)
,但是现在还不太清楚
false-elim
的普适性是什么样子。我不认为没有函数扩展性就可以证明唯一性。这并不意味着
false-elim
不是唯一的。@gallais谢谢你。是的,函数扩展性仍然需要一个同伦。我想我希望有更多内置的同伦
false elim的序列
——不仅仅是“没有主体的函数”的特殊符号,也不仅仅是“此函数在其返回类型中是多态的”。哦,好吧。