Zulip Chat Archive

Stream: general

Topic: abelian failure


Johan Commelin (Feb 15 2019 at 10:48):

import tactic.abel

universe u

lemma foo (α : Type u) [comm_group α] (b d a c : α) : a * d = d * (b * (a * b⁻¹)) :=
by abel -- abel failed to simplify

lemma bar (α : Type u) [comm_group α] (b d a c : α) : a * d = d * (b * (a * b⁻¹)) :=
begin
  rw mul_comm,
  congr' 1,
  rw mul_left_comm,
  simp,
end

Johan Commelin (Feb 15 2019 at 11:43):

@Mario Carneiro Do you know what I'm doing wrong here?

Mario Carneiro (Feb 15 2019 at 11:47):

I think abel was never implemented on multiplicative groups

Kenny Lau (Feb 15 2019 at 11:49):

aren't they the same as additive groups? [insert mathematician's rant]

Johan Commelin (Feb 15 2019 at 11:50):

transfer to_additive; abel

Mario Carneiro (Feb 15 2019 at 11:50):

I think the intent was to use additive to do the translation, and I never got around to it

Mario Carneiro (Feb 15 2019 at 11:51):

But that better not actually be inverse in a field or I will be annoyed

Kevin Kappelmann (Sep 09 2019 at 12:29):

Any idea why abel fails for the second example here?

variables {α : Type*} {a : α}
open_locale add_monoid
example [add_comm_monoid α] : 1a + a = a + a := by abel -- works
example [add_comm_group α] : 1a + a = a + a := by abel -- fails

Keeley Hoek (Sep 09 2019 at 12:50):

Note that changing the second abel to repeat { abel } (i.e { abel, abel }) does work

Kevin Kappelmann (Sep 09 2019 at 13:03):

Interesting. How about this:

example [add_comm_group α] : 2a - (1a) = a := by abel -- fails

Last updated: Dec 20 2023 at 11:08 UTC