序列表的等价性

时间:2013-01-14 02:41:30

标签: coq

Color的库中等价(lequiv)的定义: http://color.inria.fr/doc/CoLoR.Util.List.ListUtil.html

Require Import List.
Variable A : Type.
Definition lequiv (l1 l2: list A) : Prop := l1 [= l2 /\ l2 [= l1.
Infix "[=]" := lequiv (at level 70).

我想证明下面的引理。这是我的证据:

Lemma equiv_app_equiv: forall l1 l2 l3 : list A, l1 ++ l2 [=] l3 -> 
l1 [=] l3 /\ l2 [=] l3.
Proof.
unfold lequiv in |- *; simpl in |- *. intuition.
apply incl_appr_incl in H0. apply H0.

  A : Type
  l1 : list A
  l2 : list A
  l3 : list A
  H0 : l1 ++ l2 [=l3
  H1 : l3 [=l1 ++ l2
  ============================
   l3 [=l1

在这个目标,我不知道如何进一步,我想知道假设H1: l3 [= l1 ++ l2它可以重写为:l3 [= l1 /\ l3 [= l2?我在Coq的库中找不到关于这个案例的任何证据(List)

你能帮帮我吗?我的引理中缺少什么东西?它可以证明吗?非常感谢你。

1 个答案:

答案 0 :(得分:0)

我收集的内容In类似,[=类似,[=]类似于=++类似。

A ∪ B = C → A = C ∧ B = C

并非如此