Theorem: AddEquiv.toMultiplicative'_apply_symm_apply
File: Mathlib/Algebra/Group/Equiv/TypeTags.lean

Proof steps:
state_before: G : Type u_1
H : Type u_2
inst✝¹ : MulOneClass G
inst✝ : AddZeroClass H
x : Additive G ≃+ H
⊢ (fun f =>
        { toFun := ⇑(AddMonoidHom.toMultiplicative'.symm f.toMonoidHom),
          invFun := ⇑(AddMonoidHom.toMultiplicative''.symm f.symm.toMonoidHom), left_inv := ⋯, right_inv := ⋯,
          map_add' := ⋯ })
      ((fun f =>
          { toFun := ⇑(AddMonoidHom.toMultiplicative' f.toAddMonoidHom),
            invFun := ⇑(AddMonoidHom.toMultiplicative'' f.symm.toAddMonoidHom), left_inv := ⋯, right_inv := ⋯,
            map_mul' := ⋯ })
        x) =
    x
state_after: case h
G : Type u_1
H : Type u_2
inst✝¹ : MulOneClass G
inst✝ : AddZeroClass H
x : Additive G ≃+ H
x✝ : Additive G
⊢ ((fun f =>
          { toFun := ⇑(AddMonoidHom.toMultiplicative'.symm f.toMonoidHom),
            invFun := ⇑(AddMonoidHom.toMultiplicative''.symm f.symm.toMonoidHom), left_inv := ⋯, right_inv := ⋯,
            map_add' := ⋯ })
        ((fun f =>
            { toFun := ⇑(AddMonoidHom.toMultiplicative' f.toAddMonoidHom),
              invFun := ⇑(AddMonoidHom.toMultiplicative'' f.symm.toAddMonoidHom), left_inv := ⋯, right_inv := ⋯,
              map_mul' := ⋯ })
          x))
      x✝ =
    x x✝
tactic: ext
state_before: case h
G : Type u_1
H : Type u_2
inst✝¹ : MulOneClass G
inst✝ : AddZeroClass H
x : Additive G ≃+ H
x✝ : Additive G
⊢ ((fun f =>
          { toFun := ⇑(AddMonoidHom.toMultiplicative'.symm f.toMonoidHom),
            invFun := ⇑(AddMonoidHom.toMultiplicative''.symm f.symm.toMonoidHom), left_inv := ⋯, right_inv := ⋯,
            map_add' := ⋯ })
        ((fun f =>
            { toFun := ⇑(AddMonoidHom.toMultiplicative' f.toAddMonoidHom),
              invFun := ⇑(AddMonoidHom.toMultiplicative'' f.symm.toAddMonoidHom), left_inv := ⋯, right_inv := ⋯,
              map_mul' := ⋯ })
          x))
      x✝ =
    x x✝
state_after: no goals
tactic: rfl
state_before: G : Type u_1
H : Type u_2
inst✝¹ : MulOneClass G
inst✝ : AddZeroClass H
x : G ≃* Multiplicative H
⊢ (fun f =>
        { toFun := ⇑(AddMonoidHom.toMultiplicative' f.toAddMonoidHom),
          invFun := ⇑(AddMonoidHom.toMultiplicative'' f.symm.toAddMonoidHom), left_inv := ⋯, right_inv := ⋯,
          map_mul' := ⋯ })
      ((fun f =>
          { toFun := ⇑(AddMonoidHom.toMultiplicative'.symm f.toMonoidHom),
            invFun := ⇑(AddMonoidHom.toMultiplicative''.symm f.symm.toMonoidHom), left_inv := ⋯, right_inv := ⋯,
            map_add' := ⋯ })
        x) =
    x
state_after: case h
G : Type u_1
H : Type u_2
inst✝¹ : MulOneClass G
inst✝ : AddZeroClass H
x : G ≃* Multiplicative H
x✝ : G
⊢ ((fun f =>
          { toFun := ⇑(AddMonoidHom.toMultiplicative' f.toAddMonoidHom),
            invFun := ⇑(AddMonoidHom.toMultiplicative'' f.symm.toAddMonoidHom), left_inv := ⋯, right_inv := ⋯,
            map_mul' := ⋯ })
        ((fun f =>
            { toFun := ⇑(AddMonoidHom.toMultiplicative'.symm f.toMonoidHom),
              invFun := ⇑(AddMonoidHom.toMultiplicative''.symm f.symm.toMonoidHom), left_inv := ⋯, right_inv := ⋯,
              map_add' := ⋯ })
          x))
      x✝ =
    x x✝
tactic: ext
state_before: case h
G : Type u_1
H : Type u_2
inst✝¹ : MulOneClass G
inst✝ : AddZeroClass H
x : G ≃* Multiplicative H
x✝ : G
⊢ ((fun f =>
          { toFun := ⇑(AddMonoidHom.toMultiplicative' f.toAddMonoidHom),
            invFun := ⇑(AddMonoidHom.toMultiplicative'' f.symm.toAddMonoidHom), left_inv := ⋯, right_inv := ⋯,
            map_mul' := ⋯ })
        ((fun f =>
            { toFun := ⇑(AddMonoidHom.toMultiplicative'.symm f.toMonoidHom),
              invFun := ⇑(AddMonoidHom.toMultiplicative''.symm f.symm.toMonoidHom), left_inv := ⋯, right_inv := ⋯,
              map_add' := ⋯ })
          x))
      x✝ =
    x x✝
state_after: no goals
tactic: rfl