对列表的强烈归纳

时间:2016-02-01 03:30:58

标签: coq theorem-proving

我试图证明命题P适用于A类型的每个元素。不幸的是,如果我能够访问P所有a:A小于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可以是可传递的,可判定的......

2 个答案:

答案 0 :(得分:4)

这看起来很像well founded induction。如果您能证明您的lt功能是有充分根据的,那么您的目标就变得微不足道了。您可以在自然here

上找到此类证明的示例

答案 1 :(得分:3)

你还必须证明这种关系是有根据的。这是一个相关的standard library模块。在那里,您应该为well_founded A类型证明A,然后您可以使用well_founded_ind来证明P所有值。