Zulip Chat Archive

Stream: general

Topic: Stubborn unify


Keeley Hoek (Sep 21 2018 at 11:35):

I've been experimenting with some of the tactic.* namespace, which I'm admittedly pretty scared of since some of it seems like magic. In trying to accomplish my nefarious goals, I'm running into quite a wall with unify and friends. It's seeming more and more like unify is more stubborn (an idiot?) than I first thought; for example, the following happens when I try to unify two metavar-containing types (which I think is sensible?)

unify tactic failed, failed to unify
  ?m_1 ⥤ ?m_3 : Type (max ? ? ? ?)
and
  D ⥤ C : Type (max (?+1) ? (?+1))

(There are hypotheses D and C with type Type (?+1) .)

Why is unify not compelled to assign the values of ?m_1 and ?m_3 in this situation?

Simon Hudon (Sep 21 2018 at 17:06):

Unifying complex universe terms is often a mess. If you can manage to avoid max and imax in your universe terms, I would go for that. Otherwise, you may need to specifying universes explicitly when resolving constants.

Scott Morrison (Sep 22 2018 at 00:33):

Yeah, get rid of all your ?s in exchange for explicit named universes, and you'll probably see what the obstruction is.


Last updated: Dec 20 2023 at 11:08 UTC