Zulip Chat Archive

Stream: maths

Topic: nat.mod_mul_mod


Kevin Buzzard (Mar 05 2020 at 19:42):

example (a b c : ℕ) : ((a % c) * (b % c)) % c = (a * b) % c := sorry :-/ I can't find this in the library. Is it called mod_mul_cast or something?

Kevin Buzzard (Mar 05 2020 at 21:22):

theorem mod_mul_mod_mod_eq_mul_mod (a b c : ) : ((a % c) * (b % c)) % c = (a * b) % c :=
nat.modeq.modeq_mul (nat.modeq.mod_modeq a c) (nat.modeq.mod_modeq b c)

Now all it needs is a sensible name :-)

Patrick Stevens (Mar 06 2020 at 07:42):

Kevin Buzzard said:

theorem mod_mul_mod_mod_eq_mul_mod (a b c : ) : ((a % c) * (b % c)) % c = (a * b) % c :=
nat.modeq.modeq_mul (nat.modeq.mod_modeq a c) (nat.modeq.mod_modeq b c)

Now all it needs is a sensible name :-)

It's basically "* is a semiring homomorpism from N to Z_n", right?

Kevin Buzzard (Mar 06 2020 at 07:47):

In some form. One could argue that that was what modeq_mul was

Johan Commelin (Mar 06 2020 at 07:48):

It's basically "% c is a monoid hom from N to Z_c".

Kevin Buzzard (Mar 06 2020 at 08:59):

In some form. It's just one of those situations where there is more than one way of saying something and I needed a way which wasn't in the library


Last updated: Dec 20 2023 at 11:08 UTC