Zulip Chat Archive
Stream: Is there code for X?
Topic: primes associated of dvd
Julien Marquet (Feb 09 2021 at 14:46):
I'm searching for a lemma with like this :
lemma associated_of_dvd {α} [comm_monoid_with_zero α] {p q: α}
(p_prime: prime p) (q_prime: prime q) (dvd: p ∣ q): associated p q := sorry
I did not find it in mathlib, and I was wondering what was the best way to prove it
(maybe using associated_of_dvd_dvd
and the definition of primes ?
Kevin Buzzard (Feb 09 2021 at 15:16):
associated_of_dvd_dvd
needs something stronger than a comm_monoid_with_zero, it needs some cancellation property. I have no immediate feeling for whether what you're asking is true in the generality in which it can be stated :-)
Kevin Buzzard (Feb 09 2021 at 15:19):
I have these vague nightmare memories from undergraduate times about p dividing q and q dividing p but p and q not being associated because the cofactors weren't units...
Kevin Buzzard (Feb 09 2021 at 15:25):
Let X be the free comm monoid with 0 generated by four variables p q a b, subject to the relations p * a = q and q * b = p. Is this a counterexample?
Kevin Buzzard (Feb 09 2021 at 15:29):
My memory from UG is that one can even do this with commutative rings. Consider . This is not an integral domain so nobody in their right mind would be trying to factor stuff, but it might be the case that p and pa are both prime. I might be wrong though, I'm just talking from a vague memory.
Kevin Buzzard (Feb 09 2021 at 15:31):
One thing is for sure though -- Lean keeps you honest :-)
Julien Marquet (Feb 09 2021 at 15:31):
I just stated the lemma in the largest class of structure that could hold the statement :sweat_smile:
Actually I only need it in a principal ideal domain
Kevin Buzzard (Feb 09 2021 at 15:37):
lol :-) It's true for comm_cancel_monoid_with_zero
, which is "integral domain but without the addition".
Kevin Buzzard (Feb 09 2021 at 15:37):
You should prove it and make a PR! Do you have a github userid?
Kevin Buzzard (Feb 09 2021 at 15:38):
And you should construct a counterexample without the hypothesis of cancellation and add to the evidence that we should have a dictionary of counterexamples in mathlib (this came up in the ordered semiring fiasco).
Kevin Buzzard (Feb 09 2021 at 15:38):
because my vague undergrad memory won't be around forever.
Julien Marquet (Feb 09 2021 at 15:39):
Kevin Buzzard said:
You should prove it and make a PR! Do you have a github userid?
Yes, I got one :)
I was just wondering what was the most elegant way to prove this, I'll figure out something :)
Julien Marquet (Feb 09 2021 at 15:40):
Kevin Buzzard said:
And you should construct a counterexample without the hypothesis of cancellation and add to the evidence that we should have a dictionary of counterexamples in mathlib (this came up in the ordered semiring fiasco).
I'm searching for a counterexample :)
Riccardo Brasca (Feb 09 2021 at 15:50):
Note that there is exists_associated_mem_of_dvd_prod
that is a small generalization of what you want.
Kevin Buzzard (Feb 09 2021 at 16:15):
docs#exists_associated_mem_of_dvd_prod
Kevin Buzzard (Feb 09 2021 at 16:17):
I still think that there's an argument for putting in this special case, it's still a slight kerfuffle to get it from that
Julien Marquet (Feb 09 2021 at 16:34):
Kevin Buzzard said:
Let X be the free comm monoid with 0 generated by four variables p q a b, subject to the relations p * a = q and q * b = p. Is this a counterexample?
I thing have a counterexample but in the non-commutative case -- I might be mistaken, I do not know monoids very well.
Let's consider finite and "left-infinite" words : a; b and p = ...ababab; q = ...bababa
To compute u * v : if v is finite, then we just concatenate, else we say that u * v = v.
We get then get a monoid where pa = q and qb = p, but p and w aren't associated (the only unit being the empty word).
Kevin Buzzard (Feb 09 2021 at 16:46):
Who knows -- you'll have to check the axioms. It might well work though!
Julien Marquet (Feb 10 2021 at 14:42):
Done.
I took inspiration from exists_associated_mem_of_dvd_prod
.
import algebra.associated
lemma associated_of_dvd {α} [comm_cancel_monoid_with_zero α] {p q: α}
(p_prime: prime p) (q_prime: prime q) (dvd: p ∣ q): associated p q :=
begin
cases dvd with c hc,
cases ((irreducible_of_prime q_prime).is_unit_or_is_unit hc)
.resolve_left p_prime.not_unit with u hu,
exact ⟨ u, by rw [hu, hc] ⟩,
end
I'll PR this to mathlib :)
Kevin Buzzard (Feb 10 2021 at 19:33):
Nice proof! It's about half the length of the one I knocked up the other day. Yes definitely PR!
Last updated: Dec 20 2023 at 11:08 UTC