Zulip Chat Archive

Stream: mathlib4

Topic: three dedekind domains


Aaron Liu (Feb 18 2026 at 15:25):

We have a typeclass that expresses the fact that a commutative ring is a dedekind domain, docs#IsDedekindDomain.
We also have another typeclass that does the same thing, but does not bundle the IsDomain hypothesis, docs#IsDedekindDomainDvr.
And we also have docs#IsDedekindDomainInv, which is the same as IsDedekindDomainDvr, except it's not a typeclass.

They are all equivalent, witnessed by docs#IsDedekindDomain.isDedekindDomainDvr, docs#IsDedekindDomainDvr.isDedekindDomain, docs#isDedkindDomain_iff_isDedekindDomainInv. It seems to me that docs#IsDedekindDomain is the "canonical" one. Should we do something about the other two? I don't think we want three of the same thing in mathlib.

Yaël Dillies (Feb 18 2026 at 15:26):

IsDe...Inv is an auxiliary typeclass. If you manage to make it private, please open a PR and I'll approve it

Yaël Dillies (Feb 18 2026 at 15:27):

I don't know about IsDe...Dvr

María Inés de Frutos Fernández (Feb 18 2026 at 15:35):

@Anne Baanen, @Sander Dahmen, @Ashvni Narayanan, @Filippo A. E. Nuccio

Anne Baanen (Feb 18 2026 at 15:56):

Both are auxiliary typeclasses, and refactors turning them into (non-public ∨ non-classes) are welcome. (Although, please make sure it's still easy to go between the statement using FractionRing and an arbitrary K that satisfies IsFractionRing.)

Filippo A. E. Nuccio (Feb 18 2026 at 15:58):

Why also "non-classes" ? Wouldn't "non-public" suffice?

Anne Baanen (Feb 18 2026 at 15:59):

Ah sorry, I meant to put an or in between :)

Filippo A. E. Nuccio (Feb 18 2026 at 16:00):

Ah, then I certainly agree with your point!


Last updated: Feb 28 2026 at 14:05 UTC