coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Edsko de Vries <edskodevries AT gmail.com>
- To: coq-club AT inria.fr
- Subject: [Coq-Club] Rewrite and non-instantiated existential variables
- Date: Sat, 19 Jun 2010 17:47:10 +0100
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=RtxBHM4IouzXoc7F4fY5Bnt0gB5DQJANtcRRQy5iW48arbBL4mGefbveRgjFJEGbF3 5l5aO/YYu7t2VG3pf9Hkzn6rmb96VFQ4pTroxaF5H9PUathDvQOY+HhkU8MbPsxAC+62 S7UDryAUJws/PvTfPQ55xQEDqt9NKWMZbCTtQ=
Dear all,
I had sent a question about rewriting and non-existential variables to
coq-club but it doesn't seem to have appeared; no matter, I solved the
problem, but I thought the solution might be worth sharing. The proof
(an example lemma in a locally nameless formalization of the
pi-calculus) looked like
Example reds_ex1 : forall P Q (c d x : atom), lc P -> lc Q ->
d `notin` fn (inpx c x P) ->
reds (par (inpx c x P) (new d (out c d Q))) (new d (par ([x ~> d] P) Q)).
Proof.
intros.
rewrite (struct_extrude_new _ _).
rewrite (red_commx _ _).
Qed.
That doesn't work, however. The proof went through, but after the last
auto Coq complains about non-instantiated existential variables,
corresponding to the proofs at the underscores (which, by the way, can
be solved by auto). I couldn't figure out a way to make rewrite try
and find the proofs, but actually it's very simple:
Proof.
intros.
rewrite struct_extrude_new ; auto.
rewrite red_commx ; auto.
Qed.
Doh. Still, somebody else might have the same problem some day so I
thought I'd share (and perhaps the behaviour of rewrite in the first
proof wasn't entirely what one would expect?)
By the way, the use of support subrelations in setoids makes these
proofs really pretty!
Edsko
- [Coq-Club] Rewrite and non-instantiated existential variables, Edsko de Vries
Archive powered by MhonArc 2.6.16.