Zulip Chat Archive
Stream: general
Topic: unique factorization
Paul van Wamelen (Oct 11 2020 at 21:36):
In lean-3.19.0 we had
theorem associates.eq_of_prod_eq_prod : ∀ {α : Type u_1} [_inst_1 : integral_domain α] [_inst_2 : unique_factorization_domain α]
{a b : associates.factor_set α}, a.prod = b.prod → a = b
but now we have:
theorem associates.eq_of_prod_eq_prod : ∀ {α : Type u_1} [_inst_1 : comm_cancel_monoid_with_zero α] [_inst_2 : unique_factorization_monoid α]
[_inst_3 : nontrivial α] [_inst_4 : normalization_monoid α] {a b : associates.factor_set α},
a.prod = b.prod → a = b
This seems a lot weaker because of that normalization_monoid
requirement. Should this be fixed?
Aaron Anderson (Oct 11 2020 at 21:44):
The only thing that the entire factor_set
section is used for in thhe entirety of mathlib
is establishing the gcd_monoid
instance, which needs normalization_monoid
anyway.
Paul van Wamelen (Oct 11 2020 at 23:04):
Thanks Aaron! I wanted to show that in a PID the ideal generated by x
and y
is the ideal generated by gcd x y
. I was thinking of stating this as follows:
theorem span_gcd (x y : R) :
associates.mk (submodule.is_principal.generator (ideal.span ({x, y} : set R)))
= (associates.mk x) ⊓ (associates.mk y) :=
begin
But ⊓
now requires normalization
monoid. Any suggestions on how to proceed?
Aaron Anderson (Oct 12 2020 at 20:11):
If you want to prove that statement, then I can see how you want a versatile associates.factor_set
.
Aaron Anderson (Oct 12 2020 at 20:12):
(deleted)
Aaron Anderson (Oct 12 2020 at 20:15):
associates
always has a normalization_monoid
instance, so you should probably be able to refactor factor_set
to just use that
Aaron Anderson (Oct 12 2020 at 20:15):
In the meantime, I don't think the name of your theorem matches its statement.
Aaron Anderson (Oct 12 2020 at 20:19):
Wouldn't you just want
theorem span_gcd (x y : R) :
ideal.span ({x, y} : set R)
= ideal.span( gcd_monoid.gcd x y) :=
begin
?
Paul van Wamelen (Oct 13 2020 at 02:25):
Technically not every PID is a gcd_monoid
. Is refactoring gcd_monoid
to not require normalization, and only have all of the equations be true up to associated, still an option? I wouldn't mind giving that a go...
Last updated: Dec 20 2023 at 11:08 UTC