我们如何证明以下内容?:
Lemma forfun: forall (A B : nat->nat), (forall x:nat, A x = B x) ->
(fun x => A x) = (fun x => B x).
Proof.
答案 0 :(得分:3)
您想要的原则称为功能扩展性;以最一般的形式,它说
Axiom fun_ext : forall (A B : Type) (f g : A -> B),
(forall x : A, f x = g x) -> f = g.
不幸的是,尽管有用,但这个原则是Coq基本逻辑的独立,这意味着无法证明它或反驳它。然而,Coq的逻辑被设计成可以安全地将这个原则假设为理论中的公理,Coq's standard library已经定义了这个原则,以便你可以使用它。