Zulip Chat Archive
Stream: maths
Topic: (a * b) * c * d = (d * (b * c)) * a
Johan Commelin (Feb 11 2019 at 17:54):
What is the fastest way to prove such a statement in an arbitrary structure with associative and commutative multiplication? I am currently in a with_zero G
where G
is a comm_group. That prevents me from using abel
or such.
Johan Commelin (Feb 11 2019 at 17:55):
I guess there is room for a perm
tactic that takes a assoc comm operator, and proves that two permutations are equal.
Chris Hughes (Feb 11 2019 at 18:02):
simp [mul_comm, mul_assoc, mul_left_comm]
is fairly reliable.
Kevin Buzzard (Feb 11 2019 at 18:05):
When Kenny and I were faced with stuff like this we were doing cases on it; if a = 0 then both sides are 0 and if not then a = some a; now case on b and kill the zero case; etc. When all zero cases are killed, change
to some ((a * b) * c * d) = ...
, apply injectivity of some
and then use abel
. But if Chris' technique works that would be great. I guess your monoid isn't even cancellative though.
Johan Commelin (Feb 11 2019 at 18:18):
Thanks @Chris Hughes! That works like a charm!
Last updated: Dec 20 2023 at 11:08 UTC