Skip to Content.
Sympa Menu

coq-club - [Coq-Club] problems with functionnal inductive types

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

[Coq-Club] problems with functionnal inductive types


chronological Thread 
  • From: Cedric.Auger AT lri.fr
  • To: coq-club AT pauillac.inria.fr
  • Subject: [Coq-Club] problems with functionnal inductive types
  • Date: Fri, 1 Aug 2008 12:36:22 +0200 (CEST)
  • Importance: Normal
  • List-archive: <http://pauillac.inria.fr/pipermail/coq-club/>

I want to make very simple enumerated types,
so I did:

Inductive enums : nat -> Set :=
| New : forall n, enums n
| Old : forall n, enums n -> enums (S n).
Implicit Arguments New [n].
Implicit Arguments Old [n].

Set Printing All.

Lemma e : forall (e : enums 0), e = New.
intros.
(*
Now I want to destruct e
*)
induction e.
(*
all occurences of O have been replaced by n,
so it "generalize" instead of instantiate,
and our proof cannot succeed this way
*)

is there anyway to prove this lemma, or to implement
enumerated types without using Fsets & co, and without using
like enums m = {n | m < n}?





Archive powered by MhonArc 2.6.16.

Top of Page