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证明的真实性。他们给予什么保证?我是一名开发人员,所以我对程序的证明特别感兴趣,因此对算术特别感兴趣。
答案 0 :(得分:2)
你是对的。可以用Peano算术证明的任何结果也可以用Coq证明(至少,如果我们允许我们使用排除的中间数);但是,有些Peano算法的句子无法在该系统中证明,但可以在Coq中证明。
Benjamin Werner showed认为,Coq和ZFC在表达能力上几乎是等效的:如果假设足够大的基数,则可以在ZFC中解释Coq,并且可以通过假设一些非-K来解释Coq中的ZFC。建设性公理。 (当然,计算机验证的Coq证明的状态更为复杂,因为Coq中实现的理论与该论文中所考虑的理论略有不同,并且Coq实现或计算机运行中可能存在错误。它。