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].
- [Coq-Club] Should eauto progress leaving non-instantiated existential variables?, Paolo Herms
- Re: [Coq-Club] Should eauto progress leaving non-instantiated existential variables?, Adam Chlipala
- Re: [Coq-Club] Should eauto progress leaving non-instantiated existential variables?, Pierre Courtieu
Archive powered by MhonArc 2.6.16.