Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] "existS" in Coq

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] "existS" in Coq


chronological Thread 
  • From: Benjamin Werner <benjamin.werner AT inria.fr>
  • To: Li-Yang Tan <lytan AT artsci.wustl.edu>
  • Cc: coq-club AT pauillac.inria.fr
  • Subject: Re: [Coq-Club] "existS" in Coq
  • Date: Sun, 23 Oct 2005 20:59:04 +0200
  • List-archive: <http://pauillac.inria.fr/pipermail/coq-club/>

Hi,

...

a : q0_type
A : Trm (Fun x1 x0)
H8 : a = Fun x1 x0
H10 : Fun x1 x0 = s
H12 : existS (fun x : q0_type => Trm x) (Fun x1 x0) A =
       existS (fun x : q0_type => Trm x) (Fun x1 x0) (Lambda x2 x3)
H13 : Fun x1 x0 = s
H14 : existS (fun x : q0_type => Trm x) (Fun x1 x0) A =
       existS (fun x : q0_type => Trm x) (Fun x1 x0) (Apply M N)
------------------------------------------------------------------- (1/2)
Logic.False

I am currently clueless as to how to proceed from here. In particular, it would be helpful if I knew what the "existS" construct means and how I can make use of the hypotheses invoving it. I have looked in Coq'Art but cannot seem to find a answer to this question.


Just do "Print existS". Actually it is the single constructor of SigS which is a pair of two objects of kind Set, but where the type of the second component depends upon the value of the first. There used to be some concrete syntax like {x:A|P} for it, but for some reason it seems switched off.

Anyway, since existS is a constructor, the first equality implies that A=Apply M N, which, I imagine is false.
So inversion H14 should make it.

Cheers,


Benjamin





Archive powered by MhonArc 2.6.16.

Top of Page