Coq 列表上的强归纳
我试图证明命题Coq 列表上的强归纳,coq,theorem-proving,Coq,Theorem Proving,我试图证明命题p适用于类型a的每个元素。不幸的是,我只知道如何证明一个给定的a:a的P,如果我有权获得P的证明,证明所有a'小于a 这应该通过归纳包含a所有元素的列表来证明,从a中最小的元素开始,然后逐步证明p适用于所有其他元素,但我就是无法让它起作用 从形式上讲,问题如下: Parameter A : Type. Parameter lt : A -> A -> Prop. Notation "a < b" := (lt a b). Parameter P : A ->
p
适用于类型a
的每个元素。不幸的是,我只知道如何证明一个给定的a:a
的P
,如果我有权获得P
的证明,证明所有a'
小于a
这应该通过归纳包含a
所有元素的列表来证明,从a
中最小的元素开始,然后逐步证明p
适用于所有其他元素,但我就是无法让它起作用
从形式上讲,问题如下:
Parameter A : Type.
Parameter lt : A -> A -> Prop.
Notation "a < b" := (lt a b).
Parameter P : A -> Prop.
Parameter lma : forall a, (forall a', a' < a -> P a') -> P a.
Goal forall a, P a.
参数A:类型。
参数lt:A->A->Prop。
符号“aProp。
参数lma:forall a,(forall a',a'pa')->pa。
a组和P组各进一球。
我可能把这个问题形式化了。请随意假设对输入的合理约束,例如,
A
可以假设为可枚举,lt
可以是可传递的、可判定的……您还必须证明该关系是有根据的。有一个相关的模块。从这里开始,您应该为您的A
类型证明A
成立良好,然后您可以使用ind
为所有值证明P
你还必须证明这种关系是有根据的。有一个相关的模块。从这里开始,您应该为您的A
类型证明A
成立良好,然后您可以使用ind
为所有值证明P
这看起来很像。如果你能证明你的lt
函数是有根据的,那么你的目标就变得微不足道了。你可以在自然中找到这样的证明例子,这看起来很像。如果你能证明你的lt
函数是有根据的,那么你的目标就变得微不足道了。您可以在naturals上找到此类证明的示例对于一个归纳证明,您需要基本情况。你的公式中有它吗?基本情况PA
,对于小于所有其他a'
的a
,可以很容易地从lma
中证明,因为lma
的第二个参数是空的。要得到一个归纳证明,你需要基本情况。你的公式中有它吗?对于小于所有其他a'
的a
,基本情况pa
,可以很容易地从lma
证明,因为lma
的第二个参数是空的。