如何证明给定一个相等的条件,即字符串是其反向,它的尾部也是其反向?

时间:2019-05-10 09:40:18

标签: coq

Theorem rev_cons :
  forall X x (l : list X),
  x :: l = rev (x :: l) -> l = rev l.

对我而言,这是如此直观,以至于使我震惊,以至于我无法取得任何进展。我从对l的归纳开始,使用自反性解决基本情况,然后立即陷入困境。

我在这里到底想念什么?

1 个答案:

答案 0 :(得分:2)

我认为这不是真的。例子:

Require Import List.

Axiom rev_cons :
  forall X x (l : list X),
  x :: l = rev (x :: l) -> l = rev l.

Theorem argh : False.
assert (H := rev_cons _ 1 (2 :: 1 :: nil) eq_refl).
inversion H.
Qed.