在Coq中定义函数

时间:2015-03-08 15:14:18

标签: function coq

让我们假设:

Axiom inverse1: forall a:G, exists b:G, P a b.
Axiom only_one: forall a b1 b2:G, P a b1 /\ P a b2 -> b1 = b2.

这两个公理定义了地图G - > G.我想将此映射定义为Coq函数。

1 个答案:

答案 0 :(得分:2)

您无法在Coq中定义此功能,而无需依赖额外的信息或公理。问题是exists量词生活在排序Prop中(即,它是一个命题),而Coq的逻辑阻止人们使用命题或公理的证明来构建术语大多数情况下的计算性质(即类型存在于TypeSet中的事物,在您的示例中可能是G)。有关详细信息,请查看reference manual(第4.5.4节)。 Coq中的理论倾向于只假设一个函数的存在,而不是假设你给出的公理:

Axiom f : G -> G.
Axiom f_in_P : forall x : G, P x (f x).
相关问题