Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Instantiating existential variables

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Instantiating existential variables


chronological Thread 
  • From: Arnaud Spiwack <Arnaud.Spiwack AT lix.polytechnique.fr>
  • To: "Samuel E. Moelius III" <moelius AT cis.udel.edu>
  • Cc: coq-club AT pauillac.inria.fr
  • Subject: Re: [Coq-Club] Instantiating existential variables
  • Date: Fri, 13 Mar 2009 01:45:20 +0100
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; b=wH3r+mtdeYRx3H3dQDC28VXgdxtme/AQgID3B52O956vlMdqd8OqWXdXY8czCYFk5A Bha8MrZGhl1pcu2pNqvypHvl7BxZCiaU1aw/zW6p3LotHg1NtpVmgfD7v2WmVjjZXZYA zfpGpLqxEiieAjEbNqxLziROvQcbToYpfeZos=
  • List-archive: <http://pauillac.inria.fr/pipermail/coq-club/>

Samuel E. Moelius III a écrit :
(I hope this isn't a stupid question...)

If I have an uninstantiated existential variable, is there a way to supply it interactively, as opposed to supplying it all-in-one-go via instantiate or Existential?

Also, just out of curiosity, why are instantiate and Existential two different tactics? Is this somehow easier to implement?

Sam
I'm currently work-in-progressing something along these lines for Coq. The main difficulty is that an interactive proof in Coq cannot represent "dependencies" between goals. More precisely, the proof of a goal cannot appear in another goal (as such, of course you can copy it, but I've known more robust solutions).
If you're only concerned with the evar being filled, then assert (H:T); [|instantiate (1:=T)] might work. But then again you fill it with an opaque constant.

Yves's proposal might lead to a more flexible solution : automatically generate another *proof* (not a subgoal) which you may end with "defined" and this way getting a interactive way of filling an evar with a transparent constant. It doesn't feel quite right, and lacks at least composability (as it is built in a command).

My solution is actually transforming the way Coq sees interactive proofs, so that we can represent dependencies between subgoal. It's a long work (not because the problem is intrinsiquely difficult, but because interfacing it with existent code is a bit tedious). I hope it'll be shipped in the next release of Coq, but I cannot promise such a thing.



Arnaud Spiwack





Archive powered by MhonArc 2.6.16.

Top of Page