Skip to Content.
Sympa Menu

coq-club - [Coq-Club] Function command

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

[Coq-Club] Function command


chronological Thread 
  • From: Randy Pollack <rpollack AT seas.harvard.edu>
  • To: coq-club <coq-club AT inria.fr>
  • Subject: [Coq-Club] Function command
  • Date: Sun, 24 Apr 2011 12:10:01 -0400
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:date:x-google-sender-auth:message-id:subject :from:to:content-type; b=bgC1SktoK7B3ighV+JHFjCRlnvJBc/qTSG85xtvSOJeu0T6qKu162F/KrQl6oyc6kj mXVIfTyQVpa5z/nG6KM/Z1niryC9UvKSe6E9rLiKvtnG5EwP+6gNLtuz/eyhB0wCdwAH 7TI2dK87TG+cAcv6IvjiTRMrHMvRV+pD8RTdM=

I tried the "Function" command for the first time, with a simple
nat-valued measure.

Function psub (P:bbS) (X:PP) (M:bbS) {measure bbS_size M} : bbS :=
  match M with
    | par Y => (if PPeq Y X then P else M)
    | var _ => M
    | app Q N => app (psub P X Q) (psub P X N)
    | lam n N => lam n (psub P X (rename n X N))
  end.

(The point is that [bbS_size (rename n X N)] is the same as [bbS_size N].)

I proved the generated goals without any problem (using "omega").

I want psub to evaluate by computation as if I had defined it by
Fixpoint, but this doesn't seem to work; blocked by "psub_terminate".
By playing around, I found that "psub_F psub" evaluates, but how can I
use this?

I guess there are also propositional equations proved somewhere; is
that how the defined function psub is intended to be used?

Thanks for any help. (I can provide all details, but I don't think
that is central to my question.)

Randy



Archive powered by MhonArc 2.6.16.

Top of Page