Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refine's unification fails in a symmetric case #1214

Open
coqbot opened this issue Sep 6, 2006 · 5 comments
Open

Refine's unification fails in a symmetric case #1214

coqbot opened this issue Sep 6, 2006 · 5 comments
Labels
kind: enhancement Enhancement to an existing user-facing feature, tactic, etc. part: tactics

Comments

@coqbot
Copy link
Contributor

coqbot commented Sep 6, 2006

Note: the issue was created automatically with bugzilla2github tool

Original bug ID: BZ#1214
From: @roconnor
Reported version: trunk
CC: @pirbo

@coqbot
Copy link
Contributor Author

coqbot commented Sep 6, 2006

Full_Name: Russell O'Connor
Version: 8.0pl3
OS: Linux
Submission from: n138230.science.ru.nl (131.174.138.230)

(* Lemma A and Lemma B are very similar lemmas.  Only the order of parameters
for equality are switched *)

Lemma A : forall x:bool, x=(if x then true else false).
Proof.
destruct x; reflexivity.
Qed.

Lemma B : forall x:bool, (if x then true else false)=x.
Proof.
destruct x; reflexivity.
Qed.

(* true=true correctly unifies with A *)

Goal true=true.
refine (A _).
Qed.

(* However unification fails with B *)

Goal true=true.
refine (B _).
(* Error: The term "B ?417" has type "(if ?417 then true else false) = ?417"
 while it is expected to have type "true = true" *)

(* I would expect unification with B to work as well.  *)

(* Actually, I would like apply A and apply B to both work, but perhaps that is
a separate bug. *)

@coqbot
Copy link
Contributor Author

coqbot commented Jul 4, 2007

Le problème vient du fait que les Case sont considérés systématiquement
comme Rigid. Ainsi, dans le cas du refine (B _) il n'est pas possible de
d'attendre de résoudre ?x = true avant de résoudre if ?x then true else
false.

@ppedrot
Copy link
Member

ppedrot commented Dec 22, 2017

@herbelin Is this bug worth being kept open for such a long time?

@herbelin
Copy link
Member

Yes, please, as a wish.

@Zimmi48 Zimmi48 added the kind: enhancement Enhancement to an existing user-facing feature, tactic, etc. label Dec 30, 2017
@JasonGross JasonGross changed the title Refine's unification fails in a symetric case Refine's unification fails in a symmetric case Apr 19, 2018
@maximedenes
Copy link
Member

Yes, please, as a wish.

Who should I assign it to, then?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind: enhancement Enhancement to an existing user-facing feature, tactic, etc. part: tactics
Projects
None yet
Development

No branches or pull requests

5 participants