Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] rewriting in an equality without eq_ind_r / transport

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] rewriting in an equality without eq_ind_r / transport


Chronological Thread 
  • From: Dan Christensen <jdc AT uwo.ca>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] rewriting in an equality without eq_ind_r / transport
  • Date: Fri, 15 Nov 2019 10:46:58 -0500
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=Neutral smtp.pra=jdc AT uwo.ca; spf=None smtp.mailfrom=gsmlcc-coq-club AT m.gmane.org; spf=None smtp.helo=postmaster AT blaine.gmane.org
  • Cancel-lock: sha1:re2BMMEFuDXALOtERx5iIqHbHpA=
  • Ironport-phdr: 9a23:7qYVnRaUZMdq+xbPL/O0nKT/LSx+4OfEezUN459isYplN5qZoM+6bnLW6fgltlLVR4KTs6sC17ON9fm7BCdQuN6oizMrSNR0TRgLiMEbzUQLIfWuLgnFFsPsdDEwB89YVVVorDmROElRH9viNRWJ+iXhpTEdFQ/iOgVrO+/7BpDdj9it1+C15pbffxhEiCCybL9vIhi6txjdu8cWjIdtKas91wbCr2dVdehR2W5mP0+YkQzm5se38p5j8iBQtOwk+sVdT6j0fLk2QKJBAjg+PG87+MPktR/YTQuS/XQcSXkZkgBJAwfe8h73WIr6vzbguep83CmaOtD2TawxVD+/4apnVAPkhSEaPDM/7WrZiNF/jLhDrRy/pxJx3oDaboKbNPVxYqzSc8gXRXZdUstLSyBNHpmxY5cJAuEcPehYtY79p14WoBWwHwasAv7kxyFIhn/s3K06yPghHh/A3Aw7Ad0OtmnfodL3NKgPTe+417TIzDvEb/9MxTjy8pHFfxY8qv+CWrJwdNDeyUgpFw7dgVWQqJDlPzOI1usWqWSU8+1gVeephmU6qA9xuiCiytooh4TJnI4Z11DJ+CFjzIooJ9C1SVR3bcC6HJZRsSyRKpF4Tdk4Q25yvSY30r0GtoC/fCgN0Jko3BrfZOaGc4iO/B3vTumRITJii3JjZr2znRGy8VKvyuHkV8m01khFrjZdn9XRsn0A1wbf5tWHR/Z55EutxDSC2gHJ5u1aP0w5lLLXK5s7zb4xkpoTv17DHijzmEjug6+WbUAk+uy05Ov7e7npupicN5Zthg7iNqQuh9ewDP89MgQUUGib/P6z1Lv98kHjR7VKlPI2nrHDsJ/GPcQburK5AwhN34k/7Ba/Fi6q38gcnXkaN11IYwmHjojsO1HWOv/0F/a/g1K2kDdq3f/KJLPhAo+eZkTExbzmZPN271NW4As119FWoZxOWZ8bJ/emdkb3/PfYFB4iLwGy2OvhQIF/2og2RH2IRKSQZvCB+WSU7/4idrHfLLQevyzwfqB8u6zeyEQhkFpYRpGHmIMNYSDqA+thZU6QMyC134UxVFwStw97d9TEzV2PVTkKNyS4W6s94Dx9B4evC4qFQZqi0uTYjXWLW6ZOb2UDMWiiVHLhdoGKQfAJMXnAJ4lulzUCWP6mUYBzjRw=
  • Mail-copies-to: never

It's constr_eq that is failing on the two terms that only differ in the
name of a bound variable. If I use the change tactic to rename the
bound variable x to anything else, everything works. I'll work on
trying to find a simpler reproducible example.

So, except for this probable bug in Coq, the syntactic_unify approach is
working very well for my use cases.

Dan

On Nov 14, 2019, Dan Christensen
<jdc AT uwo.ca>
wrote:

> On Nov 14, 2019, Dan Christensen
> <jdc AT uwo.ca>
> wrote:
>
>> On Nov 13, 2019, Samuel Gruetter
>> <gruetter AT mit.edu>
>> wrote:
>>
>>> https://github.com/mit-plv/coqutil/blob/master/src/coqutil/Tactics/syntactic_unify.v
>>
>> I tried the syntactic_unify tactic from there, and it worked better
>> than the set method in some simple situations. But unfortunately
>> syntactic_unify failed to unify some terms that look easy to unify.
>
> I adding some idtac printing to _syntactic_unify, add see that in a
> recursive call it gets passed the two terms
>
> (fun x : X => @smin X Y (x, @point Y (ispointed_type Y)))
> (fun a : X => @smin X Y (a, @point Y (ispointed_type Y)))
>
> and fails to unify them in the last clause. But I can't reproduce this
> in isolation. Whenever I try to trim things down, the problem goes away.
>
> Here they are with universes:
>
> (fun x : X => @smin@{smash.10422 smash.10423} X Y (x, @point@{smash.10423}
> Y (ispointed_type@{smash.10423} Y)))
> (fun a : X => @smin@{smash.10422 smash.10423} X Y (a, @point@{smash.10423}
> Y (ispointed_type@{smash.10423} Y)))
>
> Is there some information idtac wouldn't show that could still prevent
> unification?
>
> On Nov 14, 2019, Jason Gross
> <jasongross9 AT gmail.com>
> wrote:
>
>> If the built-in unify fails on those terms, that sounds like a bug in
>> Coq worth reporting. If you want to extract a stand-alone example, you
>> can use my bug minimizer:
>> https://github.com/JasonGross/coq-tools/blob/master/README.md#coq-bug-minimizer
>
> That is a really amazing program! But it still left a pretty
> complicated development, so I think I'll need to experiment more before
> filing a bug report.
>
> Dan




Archive powered by MHonArc 2.6.18.

Top of Page