我试图证明命题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
可以是可传递的,可判定的......
答案 0 :(得分:4)
这看起来很像well founded induction。如果您能证明您的lt
功能是有充分根据的,那么您的目标就变得微不足道了。您可以在自然here
答案 1 :(得分:3)
你还必须证明这种关系是有根据的。这是一个相关的standard library模块。在那里,您应该为well_founded A
类型证明A
,然后您可以使用well_founded_ind
来证明P
所有值。