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: Thu, 14 Nov 2019 11:03:05 -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:A379q4jttBI43OeQG0L0zvr5Mdw=
  • Ironport-phdr: 9a23:UJZNHBOr/5zisIUsx9Il6mtUPXoX/o7sNwtQ0KIMzox0Lf/7rarrMEGX3/hxlliBBdydt6sfzbON6OuwAyQp2tWoiDg6aptCVhsI2409vjcLJ4q7M3D9N+PgdCcgHc5PBxdP9nC/NlVJSo6lPwWB6nK94iQPFRrhKAF7Ovr6GpLIj8Swyuu+54Dfbx9HiTagb75+Ngi6oAvfu8UZgoZuNLs6xwfUrHdPZ+lY335jK0iJnxb76Mew/Zpj/DpVtvk86cNOUrj0crohQ7BAAzsoL2465MvwtRneVgSP/WcTUn8XkhVTHQfI6gzxU4rrvSv7sup93zSaPdHzQLspVzmu87tnRRn1gyoBKjU38nzYitZogaxFoByvuhJxzY3aYI6aKPVxcLjQfc8GSWdbQspdSzZMDp+6YoASD+QBJ+FYr4zlqlUAtxS+AxSnCf3vyj9Sh3/2xrE63PonEQHdwgMgGc8FvXPWrNroKKgfSv21zafPzTnZc/xZwy7w5Y7VeR4vpvGMWKh/ccvXyUQ3GAPFj0mQqYz4PzyOzOgCr2+b7+9mWOmyiGAnsxl8riWry8oskIXFm4IYx1Te+Slkwos4JMe0RFBlbdOlFpZbqjuUOJFsQsw4RmFloCY6xaMCuZ68ZCUF05AnyATea/yBbYeE+B3jVOOLLjd+mn1pYrW/hwy98US4y+38UNe70EpSoyZYltTBtmoB2wHT58WDUPdx40Ws1DeV2wzN9O1JIFg4la/BJJ4gxr4wmIATsUPGHiLul0X2l6qWdkE49ee08ujofrLmpoaFO4BojgH+L78hl9e6AegiPQgOWnKU+eKi27H5+k35WrpKguUskqbFqJDaOdgbpqmhDgBJ1YYj8g+zACui0NQFhnYKN0lFeRKCj4jxIV7COvH4DfGlg1Stijhn3f7GPqeySqnKe3PEifLqeat3w09a0gs6i95FtLxODbRUDPv1EmTxrt3DEhI/KAGyi7LlBN5Vy5wZH2mGVPzKeJjOuEOFs7p8a9KHY5UY7W6kd6oVosX2hHp8omczOLGz1MtFdW+/WP9vcR/AMCjcx+wZGGJPhTIQCenjiVmMSzlWPi3gWuQz4zg9BcShF4iRHtnw0ozE5z+yG9htXk4DCl2IFi64JY+AUvYKZWSdJ8Znn3oDT7fzE4I=
  • Mail-copies-to: never

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.
(See below.) And the original tactic I posted in the first message of
this thread is able to handle those. So the current situation is

my original tactic > syntactic unify method > set method

I'll post a separate message later asking for help with my original
tactic.

Here's how I tried to use syntactic_unify:

let lemH := fresh "lem" in
pose lem as lemH;
insterU lemH; (* put evars in for all arguments *)
let src := source lemH in
lazymatch goal with
| |- ?lhs = _ =>
match lhs with
| context[?trm] =>
syntactic_unify trm src;
...

I can't easily give a reproducible example of where it fails, since it
involves a large development using the HoTT library, but here are the
terms:

src:

(@ap ?A (smash ?A ?B)
(fun a : ?A => @smin ?A ?B (a, @point ?B (ispointed_type ?B)))
?x
?y
?q0)

a sub-term of lhs:

(@ap X (smash X Y)
(fun x : X => @smin X Y (x, @point Y (ispointed_type Y)))
(f (@point A (ispointed_type A)))
(@point X (ispointed_type X))
(@point_eq A X f))

(The @ at the start of the last line is like eq_trans.)

Both rewrite and my original tactic unify src with the sub-term
(probably using more ambient information), but both syntactic_unify and
the built-in unify fail. If I help the latter two by doing some partial
unification, they succeed, so the terms are unifiable.

Any ideas?

Thanks again!

Dan




Archive powered by MHonArc 2.6.18.

Top of Page