Coq 如何证明函数相等,知道它们的身体是相等的?

Coq 如何证明函数相等,知道它们的身体是相等的?,coq,proof,Coq,Proof,我们如何证明以下内容 Lemma forfun: forall (A B : nat->nat), (forall x:nat, A x = B x) -> (fun x => A x) = (fun x => B x). Proof. 你想要的原则就是所谓的功能扩展性;它以最普遍的形式说 Axiom fun_ext : forall (A B : Type) (f g : A -> B

我们如何证明以下内容

Lemma forfun: forall (A B : nat->nat), (forall x:nat, A x = B x) ->
                                       (fun x => A x) = (fun x => B x).
Proof.

你想要的原则就是所谓的功能扩展性;它以最普遍的形式说

Axiom fun_ext : forall (A B : Type) (f g : A -> B),
  (forall x : A, f x = g x) -> f = g.

不幸的是,尽管这一原则很有用,但它独立于Coq的基本逻辑,这意味着不可能证明或反驳它。然而,Coq的逻辑设计是为了能够安全地将这一原则作为理论中的公理,并且已经定义了这一原则,以便您可以使用它。

@HoboSapiens这是一个关于Coq证明助手中编程的合法问题,参见Coq标签上的其他相关问题。@HoboSapiens:Coq是一种自动定理证明程序,也是一种编程语言。(将鼠标悬停在
coq
标签上:186个关注者和410个问题,依此类推。)这个问题是关于如何使用coq语言,而不是如何证明一个一般的数学事实。也就是说,我不认为这在Math.SE上不合适。