Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Automatically unfolding simple definitions

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Automatically unfolding simple definitions


chronological Thread 
  • From: Adam Chlipala <adamc AT hcoop.net>
  • To: Sean Wilson <sean.wilson AT ed.ac.uk>
  • Cc: Coq-Club <coq-club AT pauillac.inria.fr>
  • Subject: Re: [Coq-Club] Automatically unfolding simple definitions
  • Date: Thu, 10 Jul 2008 10:21:24 -0400
  • List-archive: <http://pauillac.inria.fr/pipermail/coq-club/>

Sean Wilson wrote:
As a simple example of what I need, given this definition:

Definition f x y := plus x y.

The following is true:

Goal forall x y, f x y = f y x.

My proof automation can prove this goal but only if "f" is unfolded first.

It seems dubious that you can even describe a general tactic for this kind of thing. [plus] is no more privileged as a "primitive definition" than your [f], as far as Coq is concerned. The heuristic you suggest for not unfolding recursive function definitions might work, but you might run up against a library function that you want to consider "primitive" that happens to be defined in terms of a recursive helper function, and then (if I understand you) the heuristic wouldn't do what you want.

I recommend parameterizing your automation on a simplification tactic, which could just be an [unfold] with a long list of identifiers.





Archive powered by MhonArc 2.6.16.

Top of Page