Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
其中是谓词axiom Coq的可扩展性_Coq - Fatal编程技术网

其中是谓词axiom Coq的可扩展性

其中是谓词axiom Coq的可扩展性,coq,Coq,这句话的意思是: Extensionality of predicates: ∀ P Q:A→ Prop, (∀ x, P(x) ↔ Q(x)) → P=Q 与Coq一致。这是在哪个库中断言的?正如本节所暗示的那样,它既不在逻辑中,也不在经典中。我认为公理没有在当前的标准库中声明;它是一个非常强大的函数(正如您在ClassicalFacts.v中所看到的),因此您需要自己声明它。您的具体情况如下所示,我认为它+函数扩展性: Require Import ClassicalFacts. Requ

这句话的意思是:

Extensionality of predicates: ∀ P Q:A→ Prop, (∀ x, P(x) ↔ Q(x)) → P=Q

与Coq一致。这是在哪个库中断言的?正如本节所暗示的那样,它既不在逻辑中,也不在经典中。

我认为公理没有在当前的标准库中声明;它是一个非常强大的函数(正如您在
ClassicalFacts.v
中所看到的),因此您需要自己声明它。您的具体情况如下所示,我认为它+函数扩展性:

Require Import ClassicalFacts.
Require Import FunctionalExtensionality.

Axiom pe : prop_extensionality.

Lemma pred_extensionality A (P Q : A -> Prop) :
  (forall x, P x <-> Q x) -> P = Q.
Proof. now intros H; apply functional_extensionality; intros x; apply pe. Qed.
需要导入ClassicalFacts。
需要导入函数张力。
公理pe:prop_可拓性。
引理pred_可拓性A(pq:A->Prop):
(对于所有x,pxqx)->P=Q。
证明。现在介绍H;应用函数扩展性;简介x;应用pe。Qed。

来自
集成库的扩展性集成与您发布的axiom等效。

好的,谢谢!最后我做了类似的事情,但我想知道是否有一个图书馆我可以import@k_g请注意:在中,我们定义了
PredicateExtensionality
公理,但是对于
bool->Prop
predicates.BTW,我想问一个更有趣的问题是,对于这个非常强大的公理,您心目中的用例是什么?@ejgallego我试图证明等价类是不相交的。我很确定有一种建设性的方法可以做到这一点,但我更感兴趣的是在标准逻辑中证明事物,而不是试图将证明强制转化为建设性逻辑。坦白地说,虽然我理解公理的最小性,但我认为对于实际的定理证明,排除中间、函数可扩展性,甚至谓词的可扩展性通常非常有用。@ejgallego有点像在Haskell中使用ST。通常,稍微偏离语言的原则是使它实用的原因。谢谢你的评论!然而,我必须对“脱离语言的原则才是它的实用性”有一点不同,我认为Coq证明中使用公理的好处很少(而且往往麻烦多于收获);通常,公理可以纠正症状,而不是证明本身效率低下的根本原因(表现形式的错误选择是一个常见的陷阱,没有公理可以自行解决)。@ejgallego可能是这样的,但我认为对于那些想快速将简单的书面证明形式化的人来说,例如,
destruct(经典P)
非常有用。主要是因为这种案例分析证明是任何高中或本科逻辑入门的一部分。我个人认为,当我试图证明某些事情时,没有理由让自己的生活更艰难,只要我不引入矛盾。