Zulip Chat Archive

Stream: Is there code for X?

Topic: getting `ring` to work on non-rings?


Alex Kontorovich (Feb 13 2024 at 16:54):

Is there such a thing as ring?? It would be quite useful, e.g., in situations like this:

import Mathlib

example {E : Type*} [NormedAddCommGroup E] [NormedSpace  E] (intVIII intVII intV intIV : E) :
    intVIII - (-intVII + intV + intIV) = intVII - intV + intVIII - intIV := by
  sorry -- ring fails

Here is some annoying trivial identity, but ring fails because E is not assumed to be a ring. But if we replace the type of intIV : E etc by , then ring works. Could ring? say what it did to prove the identity in the case of , so I can try the same series of moves in the more general setting...?

Johan Commelin (Feb 13 2024 at 16:57):

The way ring works means that a ring? doesn't really make sense, unfortunately.

Johan Commelin (Feb 13 2024 at 16:57):

I guess that in principle, one could try to reconstruct a sequence of rws from the term that ring produces (if it produces one). But that seems nontrivial.

Johan Commelin (Feb 13 2024 at 16:58):

But there is ring1, right? Doesn't that try to put expressions in "normal form"?

Jireh Loreaux (Feb 13 2024 at 17:00):

No, that's ring_nf

Eric Rodriguez (Feb 13 2024 at 17:00):

does abel work here?

Alex Kontorovich (Feb 13 2024 at 17:01):

Yes!! Thank you!

Kevin Buzzard (Feb 13 2024 at 17:49):

It's not a ring but it is an abelian group:-)

Alex Kontorovich (Feb 13 2024 at 19:59):

Yep, I didn't know abel existed. Learn something new every day!...

Patrick Massot (Feb 13 2024 at 20:08):

Maybe you could benefit from rereading Chapter 8 of #mil then.

Patrick Massot (Feb 13 2024 at 20:08):

(this is where abel is mentioned in #mil)

Alex Kontorovich (Feb 13 2024 at 20:10):

I'm sure I'd benefit a lot from reading Chapters 1 - 11!... (Just need a few more hours in a day...)


Last updated: May 02 2025 at 03:31 UTC