Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Non strictly positive occurence in inductive definition.

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Non strictly positive occurence in inductive definition.


chronological Thread 
  • From: Pierre Letouzey <Pierre.Letouzey AT lri.fr>
  • To: Roland Zumkeller <Roland.Zumkeller AT polytechnique.fr>
  • Cc: Coq Club <coq-club AT pauillac.inria.fr>
  • Subject: Re: [Coq-Club] Non strictly positive occurence in inductive definition.
  • Date: Wed, 11 May 2005 18:54:57 +0200 (CEST)
  • List-archive: <http://pauillac.inria.fr/pipermail/coq-club/>


On Wed, 11 May 2005, Roland Zumkeller wrote:

> Another question: Is there any damage apart from this? Would it be
> consistent?
>

I think so. If Term would be accepted, then we could use it in a Fixpoint
for proving False:
-----------------------------------------------------------------------
Inductive Term : Set :=
   Lambda : (Term -> Term) -> Term.

Definition anyTerm : Term := Lambda (fun t=>t).

Fixpoint toFalse (t:Term) : False := match t with
  | Lambda f => toFalse (f anyTerm)
 end.

Definition oouch : False := toFalse anyTerm.
----------------------------------------------------------------------
Of course, I cannot test my Fixpoint in Coq, but it ought to be valid. In
particular, the recursive call (f anyTerm) is indeed structurally smaller
than t, since f is structurally smaller than t.

In fact, I've tested a legal variant that works great. It's even a good
way to prove that the following inductive type is _not_ inhabited:
----------------------------------------------------------------------
Inductive Term : Set :=
   Lambda : (nat -> Term) -> Term.

Fixpoint toFalse (t:Term) : False := match t with
  | Lambda f => toFalse (f 0)
 end.
----------------------------------------------------------------------

Best,

Pierre





Archive powered by MhonArc 2.6.16.

Top of Page