/-- Additive group conjugation, `AddAut.conj g h = g + h - g`, as an additive monoid
homomorphism mapping addition in `G` into multiplication in the automorphism group `AddAut G`
(written additively in order to define the map). -/
def conj [AddGroup G] : G →+ Additive (AddAut G) where
  toFun g :=
    @Additive.ofMul (AddAut G)
      { toFun := fun h => g + h + -g
        -- this definition is chosen to match `MulAut.conj`
        invFun := fun h => -g + h + g
        left_inv := fun _ => by simp only [add_assoc, neg_add_cancel_left, add_left_neg, add_zero]
        right_inv := fun _ => by simp only [add_assoc, add_neg_cancel_left, add_right_neg, add_zero]
        map_add' := by simp only [add_assoc, neg_add_cancel_left, forall_const] }
  map_add' g₁ g₂ := by
    apply Additive.toMul.injective; ext h
    

Proof state:
case a.h
A : Type u_1
M : Type u_2
G : Type u_3
inst✝¹ : Add A
inst✝ : AddGroup G
g₁ g₂ h : G
⊢ (Additive.toMul
        (ZeroHom.toFun
          {
            toFun := fun g =>
              Additive.ofMul
                {
                  toEquiv :=
                    { toFun := fun h => g + h + -g, invFun := fun h => -g + h + g,
                      left_inv := (_ : ∀ (x : G), -g + (g + x + -g) + g = x),
                      right_inv := (_ : ∀ (x : G), g + (-g + x + g) + -g = x) },
                  map_add' := (_ : ∀ (a a_1 : G), g + (a + a_1) + -g = g + a + -g + (g + a_1 + -g)) },
            map_zero' :=
              (_ :
                (fun g =>
                      Additive.ofMul
                        {
                          toEquiv :=
                            { toFun := fun h => g + h + -g, invFun := fun h => -g + h + g,
                              left_inv := (_ : ∀ (x : G), -g + (g + x + -g) + g = x),
                              right_inv := (_ : ∀ (x : G), g + (-g + x + g) + -g = x) },
                          map_add' := (_ : ∀ (a a_1 : G), g + (a + a_1) + -g = g + a + -g + (g + a_1 + -g)) })
                    0 =
                  0) }
          (g₁ + g₂)))
      h =
    (Additive.toMul
        (ZeroHom.toFun
            {
              toFun := fun g =>
                Additive.ofMul
                  {
                    toEquiv :=
                      { toFun := fun h => g + h + -g, invFun := fun h => -g + h + g,
                        left_inv := (_ : ∀ (x : G), -g + (g + x + -g) + g = x),
                        right_inv := (_ : ∀ (x : G), g + (-g + x + g) + -g = x) },
                    map_add' := (_ : ∀ (a a_1 : G), g + (a + a_1) + -g = g + a + -g + (g + a_1 + -g)) },
              map_zero' :=
                (_ :
                  (fun g =>
                        Additive.ofMul
                          {
                            toEquiv :=
                              { toFun := fun h => g + h + -g, invFun := fun h => -g + h + g,
                                left_inv := (_ : ∀ (x : G), -g + (g + x + -g) + g = x),
                                right_inv := (_ : ∀ (x : G), g + (-g + x + g) + -g = x) },
                            map_add' := (_ : ∀ (a a_1 : G), g + (a + a_1) + -g = g + a + -g + (g + a_1 + -g)) })
                      0 =
                    0) }
            g₁ +
          ZeroHom.toFun
            {
              toFun := fun g =>
                Additive.ofMul
                  {
                    toEquiv :=
                      { toFun := fun h => g + h + -g, invFun := fun h => -g + h + g,
                        left_inv := (_ : ∀ (x : G), -g + (g + x + -g) + g = x),
                        right_inv := (_ : ∀ (x : G), g + (-g + x + g) + -g = x) },
                    map_add' := (_ : ∀ (a a_1 : G), g + (a + a_1) + -g = g + a + -g + (g + a_1 + -g)) },
              map_zero' :=
                (_ :
                  (fun g =>
                        Additive.ofMul
                          {
                            toEquiv :=
                              { toFun := fun h => g + h + -g, invFun := fun h => -g + h + g,
                                left_inv := (_ : ∀ (x : G), -g + (g + x + -g) + g = x),
                                right_inv := (_ : ∀ (x : G), g + (-g + x + g) + -g = x) },
                            map_add' := (_ : ∀ (a a_1 : G), g + (a + a_1) + -g = g + a + -g + (g + a_1 + -g)) })
                      0 =
                    0) }
            g₂))
      h

Next tactic:
show g₁ + g₂ + h + -(g₁ + g₂) = g₁ + (g₂ + h + -g₂) + -g₁