Coq中的Peano算术

时间:2018-07-26 19:44:39

标签: coq

Coq的standard library说,这种归纳类型给出了Peano自然数:

    [BsonSerializer(typeof(DictionarySerializer<
        Dictionary<FeatureToggleTypeEnum, LicenseFeatureStateEnum>, 
        EnumStringSerializer<FeatureToggleTypeEnum>,
        EnumStringSerializer<LicenseFeatureStateEnum>>))]
    public Dictionary<FeatureToggleTypeEnum, LicenseFeatureStateEnum> FeatureSettings { get; set; }

这听起来不错,因为我们可以在Coq中证明 Inductive nat := | O : nat | S : nat -> nat. 上所有Peano的公理,包括​​归纳原理,该归纳原理由Coq给出为nat

但是此repo声称其Coq证明为Goodstein's theorem。而且我们知道,该定理不能仅用Peano的公理来证明。因此,似乎Coq的nat_ind比Peano的公理更强大,它更像是它们的模型,其中Goodstein定理是正确的。这是正确的吗?

Coq能否在nat上证明与ZFC集合论在标准自然数上所做的算术定理相同?如果我们在Coq中添加经典逻辑,则会出现同样的问题:

nat

其背后的根本问题是Coq证明的真实性。他们给予什么保证?我是一名开发人员,所以我对程序的证明特别感兴趣,因此对算术特别感兴趣。

1 个答案:

答案 0 :(得分:2)

你是对的。可以用Peano算术证明的任何结果也可以用Coq证明(至少,如果我们允许我们使用排除的中间数);但是,有些Peano算法的句子无法在该系统中证明,但可以在Coq中证明。

Benjamin Werner showed认为,Coq和ZFC在表达能力上几乎是等效的:如果假设足够大的基数,则可以在ZFC中解释Coq,并且可以通过假设一些非-K来解释Coq中的ZFC。建设性公理。 (当然,计算机验证的Coq证明的状态更为复杂,因为Coq中实现的理论与该论文中所考虑的理论略有不同,并且Coq实现或计算机运行中可能存在错误。它。