Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Should eauto progress leaving non-instantiated existential variables?

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Should eauto progress leaving non-instantiated existential variables?


chronological Thread 
  • From: Adam Chlipala <adamc AT csail.mit.edu>
  • To: Paolo Herms <paolo.herms AT inria.fr>
  • Cc: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] Should eauto progress leaving non-instantiated existential variables?
  • Date: Wed, 30 Nov 2011 09:23:47 -0500

Paolo Herms wrote:
Definition True2  := True.
Definition def (u:unit) (P: Prop) := P.
Lemma lem u: def u True ->  True2.
   auto.
Save.
Hint Unfold def.
Hint Resolve lem.
Goal True2.
   eauto.
Fail Save.

I think the call to eauto shouldn't do anything here, as it cannot completely
solve the goal. Or are there situations where you want this behaviour?

But it _does_ solve the goal! By asking [Hint Unfold def], you enable [eauto] to solve any [def _ True] goal by [constructor]. The proof is complete with any value filled in for the unknown [unit]. Undetermined unification variables never block [eauto], so you would probably have a hard time explaining a heuristic that would stop this case but keep the accepted behavior of [eauto].



Archive powered by MhonArc 2.6.16.

Top of Page