/-- 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
    

Proof state:
A : Type u_1
M : Type u_2
G : Type u_3
inst✝¹ : Add A
inst✝ : AddGroup G
g₁ g₂ : 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₁ + 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₁ +
      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₂

Next tactic:
apply Additive.toMul.injective