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
的第二个参数是空的。