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

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

Next tactic:
ext h