Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] How to talk about a restricted set of an inductive?

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] How to talk about a restricted set of an inductive?


Chronological Thread 
  • From: Jonas Oberhauser <s9joober AT gmail.com>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] How to talk about a restricted set of an inductive?
  • Date: Fri, 04 Oct 2013 04:00:49 +0200

Am 03.10.2013 14:35, schrieb Cedric Auger:
A n (l : list A) (x y : NList_ n l), x = y.

Jup. There might be a simpler proof, but here is one:

Lemma NList_Unique {A} (l : list A) n (y : NList_ n l): match n return NList_ n l -> Prop with
| 0 => fun y => Base l = y
| S n' =>
match l with
| nil => fun y => False
| cons a l' => fun y => exists x : NList_ n' l', Cons n' l' a x = y
end
end y.
induction y ; auto.
exists y ; auto.
Qed.

Goal forall A n (l : list A) (x y : NList_ n l), x = y.
induction x.
apply (NList_Unique l).

intros y.
destruct (NList_Unique (a :: l) (S n) y) as [x' P].
now rewrite IHx with x'.
Qed.



Archive powered by MHonArc 2.6.18.

Top of Page