Theorem: NonUnitalAlgHom.coe_injective
File: Mathlib/Algebra/Algebra/NonUnitalHom.lean

tactic: rintro ⟨⟨⟨f, _⟩, _⟩, _⟩ ⟨⟨⟨g, _⟩, _⟩, _⟩ h
state_before: R : Type u
S : Type u₁
T : Type u_1
inst✝⁸ : Monoid R
inst✝⁷ : Monoid S
inst✝⁶ : Monoid T
φ : R →* S
A : Type v
B : Type w
C : Type w₁
inst✝⁵ : NonUnitalNonAssocSemiring A
inst✝⁴ : DistribMulAction R A
inst✝³ : NonUnitalNonAssocSemiring B
inst✝² : DistribMulAction S B
inst✝¹ : NonUnitalNonAssocSemiring C
inst✝ : DistribMulAction T C
⊢ Function.Injective DFunLike.coe
state_after: case mk.mk.mk.mk.mk.mk
R : Type u
S : Type u₁
T : Type u_1
inst✝⁸ : Monoid R
inst✝⁷ : Monoid S
inst✝⁶ : Monoid T
φ : R →* S
A : Type v
B : Type w
C : Type w₁
inst✝⁵ : NonUnitalNonAssocSemiring A
inst✝⁴ : DistribMulAction R A
inst✝³ : NonUnitalNonAssocSemiring B
inst✝² : DistribMulAction S B
inst✝¹ : NonUnitalNonAssocSemiring C
inst✝ : DistribMulAction T C
f : A → B
map_smul'✝¹ : ∀ (m : R) (x : A), f (m • x) = φ m • f x
map_zero'✝¹ : { toFun := f, map_smul' := map_smul'✝¹ }.toFun 0 = 0
map_add'✝¹ :
  ∀ (x y : A),
    { toFun := f, map_smul' := map_smul'✝¹ }.toFun (x + y) =
      { toFun := f, map_smul' := map_smul'✝¹ }.toFun x + { toFun := f, map_smul' := map_smul'✝¹ }.toFun y
map_mul'✝¹ :
  ∀ (x y : A),
    { toFun := f, map_smul' := map_smul'✝¹, map_zero' := map_zero'✝¹, map_add' := map_add'✝¹ }.toFun (x * y) =
      { toFun := f, map_smul' := map_smul'✝¹, map_zero' := map_zero'✝¹, map_add' := map_add'✝¹ }.toFun x *
        { toFun := f, map_smul' := map_smul'✝¹, map_zero' := map_zero'✝¹, map_add' := map_add'✝¹ }.toFun y
g : A → B
map_smul'✝ : ∀ (m : R) (x : A), g (m • x) = φ m • g x
map_zero'✝ : { toFun := g, map_smul' := map_smul'✝ }.toFun 0 = 0
map_add'✝ :
  ∀ (x y : A),
    { toFun := g, map_smul' := map_smul'✝ }.toFun (x + y) =
      { toFun := g, map_smul' := map_smul'✝ }.toFun x + { toFun := g, map_smul' := map_smul'✝ }.toFun y
map_mul'✝ :
  ∀ (x y : A),
    { toFun := g, map_smul' := map_smul'✝, map_zero' := map_zero'✝, map_add' := map_add'✝ }.toFun (x * y) =
      { toFun := g, map_smul' := map_smul'✝, map_zero' := map_zero'✝, map_add' := map_add'✝ }.toFun x *
        { toFun := g, map_smul' := map_smul'✝, map_zero' := map_zero'✝, map_add' := map_add'✝ }.toFun y
h :
  ⇑{ toFun := f, map_smul' := map_smul'✝¹, map_zero' := map_zero'✝¹, map_add' := map_add'✝¹, map_mul' := map_mul'✝¹ } =
    ⇑{ toFun := g, map_smul' := map_smul'✝, map_zero' := map_zero'✝, map_add' := map_add'✝, map_mul' := map_mul'✝ }
⊢ { toFun := f, map_smul' := map_smul'✝¹, map_zero' := map_zero'✝¹, map_add' := map_add'✝¹, map_mul' := map_mul'✝¹ } =
    { toFun := g, map_smul' := map_smul'✝, map_zero' := map_zero'✝, map_add' := map_add'✝, map_mul' := map_mul'✝ }

tactic: congr
state_before: case mk.mk.mk.mk.mk.mk
R : Type u
S : Type u₁
T : Type u_1
inst✝⁸ : Monoid R
inst✝⁷ : Monoid S
inst✝⁶ : Monoid T
φ : R →* S
A : Type v
B : Type w
C : Type w₁
inst✝⁵ : NonUnitalNonAssocSemiring A
inst✝⁴ : DistribMulAction R A
inst✝³ : NonUnitalNonAssocSemiring B
inst✝² : DistribMulAction S B
inst✝¹ : NonUnitalNonAssocSemiring C
inst✝ : DistribMulAction T C
f : A → B
map_smul'✝¹ : ∀ (m : R) (x : A), f (m • x) = φ m • f x
map_zero'✝¹ : { toFun := f, map_smul' := map_smul'✝¹ }.toFun 0 = 0
map_add'✝¹ :
  ∀ (x y : A),
    { toFun := f, map_smul' := map_smul'✝¹ }.toFun (x + y) =
      { toFun := f, map_smul' := map_smul'✝¹ }.toFun x + { toFun := f, map_smul' := map_smul'✝¹ }.toFun y
map_mul'✝¹ :
  ∀ (x y : A),
    { toFun := f, map_smul' := map_smul'✝¹, map_zero' := map_zero'✝¹, map_add' := map_add'✝¹ }.toFun (x * y) =
      { toFun := f, map_smul' := map_smul'✝¹, map_zero' := map_zero'✝¹, map_add' := map_add'✝¹ }.toFun x *
        { toFun := f, map_smul' := map_smul'✝¹, map_zero' := map_zero'✝¹, map_add' := map_add'✝¹ }.toFun y
g : A → B
map_smul'✝ : ∀ (m : R) (x : A), g (m • x) = φ m • g x
map_zero'✝ : { toFun := g, map_smul' := map_smul'✝ }.toFun 0 = 0
map_add'✝ :
  ∀ (x y : A),
    { toFun := g, map_smul' := map_smul'✝ }.toFun (x + y) =
      { toFun := g, map_smul' := map_smul'✝ }.toFun x + { toFun := g, map_smul' := map_smul'✝ }.toFun y
map_mul'✝ :
  ∀ (x y : A),
    { toFun := g, map_smul' := map_smul'✝, map_zero' := map_zero'✝, map_add' := map_add'✝ }.toFun (x * y) =
      { toFun := g, map_smul' := map_smul'✝, map_zero' := map_zero'✝, map_add' := map_add'✝ }.toFun x *
        { toFun := g, map_smul' := map_smul'✝, map_zero' := map_zero'✝, map_add' := map_add'✝ }.toFun y
h :
  ⇑{ toFun := f, map_smul' := map_smul'✝¹, map_zero' := map_zero'✝¹, map_add' := map_add'✝¹, map_mul' := map_mul'✝¹ } =
    ⇑{ toFun := g, map_smul' := map_smul'✝, map_zero' := map_zero'✝, map_add' := map_add'✝, map_mul' := map_mul'✝ }
⊢ { toFun := f, map_smul' := map_smul'✝¹, map_zero' := map_zero'✝¹, map_add' := map_add'✝¹, map_mul' := map_mul'✝¹ } =
    { toFun := g, map_smul' := map_smul'✝, map_zero' := map_zero'✝, map_add' := map_add'✝, map_mul' := map_mul'✝ }
state_after: no goals