3

以标准方式,我对这样的列表进行归纳

  • 审批为lst
  • 证明x::lst

但我想要:

  • 审批为lst
  • 证明lst ++ x::nil

对我来说,x列表中的位置很重要。

我试图写这样的东西但没有成功。

4

1 回答 1

4

在这种情况下,您需要证明自己的归纳原理。但是在这里你很幸运,因为你需要的东西已经在 Coq 的标准库中了:

Require Import List.

Check rev_ind.
(*
rev_ind
     : forall (A : Type) (P : list A -> Prop),
       P nil ->
       (forall (x : A) (l : list A), P l -> P (l ++ x :: nil)) ->
       forall l : list A, P l
*)
于 2019-12-26T19:38:46.997 回答