coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: "Andrew McCreight" <continuation AT gmail.com>
- To: Coq-Club <coq-club AT pauillac.inria.fr>
- Subject: [Coq-Club] rewrite and instantiation of existential variables
- Date: Thu, 31 Jul 2008 12:22:45 -0700
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type; b=U357+cPV8nKA+J6Y76JMQvIvfOuAVFDyFnuptV78dAS0zAF0+mfxKmfB+pR/F8wM5B 7I9gBxA7T33eXeKVd/ieyDkQZw9jPXFgaLv/DYmA9pPu3IPFG8OXMaWI8TzUqKZT40qv Ga/RCvVQGGn5P0UuGmYJgiYW81Jx1Bah+w8Wc=
- List-archive: <http://pauillac.inria.fr/pipermail/coq-club/>
Is there any way to affect the way rewrite instantiates existential variables?
I have a database of autorewrite rules for simplifying terms, that are along the lines of this:
Axiom Assoc : forall x y z, x + (y + z) = x + z + y.
Hint Rewrite Assoc : Simpl.
The problem is that rewrite aggressively instantiates existential variables.
Consider the following:
Goal exists x, x = 0.
econstructor.
In this case, doing "rewrite Assoc" changes the goal from
?1 = 0
to
?2 + ?3 + ?4 = 0
...and of course, "rewrite Assoc" can be done again on this goal.
The result of this is attempting to do "autorewrite with Simpl" on this goal causes an infinite loop.
Is there any better solution than manually instantiating all existential variables before autorewriting?
I'm also curious if there are cases where one might actually want to instantiate existential variables while doing rewriting.
Thanks,
Andrew McCreight
I have a database of autorewrite rules for simplifying terms, that are along the lines of this:
Axiom Assoc : forall x y z, x + (y + z) = x + z + y.
Hint Rewrite Assoc : Simpl.
The problem is that rewrite aggressively instantiates existential variables.
Consider the following:
Goal exists x, x = 0.
econstructor.
In this case, doing "rewrite Assoc" changes the goal from
?1 = 0
to
?2 + ?3 + ?4 = 0
...and of course, "rewrite Assoc" can be done again on this goal.
The result of this is attempting to do "autorewrite with Simpl" on this goal causes an infinite loop.
Is there any better solution than manually instantiating all existential variables before autorewriting?
I'm also curious if there are cases where one might actually want to instantiate existential variables while doing rewriting.
Thanks,
Andrew McCreight
- [Coq-Club] rewrite and instantiation of existential variables, Andrew McCreight
Archive powered by MhonArc 2.6.16.