Theorem: RingHom.FiniteType.comp
File: Mathlib/RingTheory/FiniteType.lean

tactic: let _ : Algebra A B := f.toAlgebra
state_before: A : Type u_1
B : Type u_2
C : Type u_3
inst✝² : CommRing A
inst✝¹ : CommRing B
inst✝ : CommRing C
g : B →+* C
f : A →+* B
hg : g.FiniteType
hf : f.FiniteType
⊢ (g.comp f).FiniteType
state_after: A : Type u_1
B : Type u_2
C : Type u_3
inst✝² : CommRing A
inst✝¹ : CommRing B
inst✝ : CommRing C
g : B →+* C
f : A →+* B
hg : g.FiniteType
hf : f.FiniteType
x✝ : Algebra A B := f.toAlgebra
⊢ (g.comp f).FiniteType

tactic: let _ : Algebra A C := (g.comp f).toAlgebra
state_before: A : Type u_1
B : Type u_2
C : Type u_3
inst✝² : CommRing A
inst✝¹ : CommRing B
inst✝ : CommRing C
g : B →+* C
f : A →+* B
hg : g.FiniteType
hf : f.FiniteType
x✝ : Algebra A B := f.toAlgebra
⊢ (g.comp f).FiniteType
state_after: A : Type u_1
B : Type u_2
C : Type u_3
inst✝² : CommRing A
inst✝¹ : CommRing B
inst✝ : CommRing C
g : B →+* C
f : A →+* B
hg : g.FiniteType
hf : f.FiniteType
x✝¹ : Algebra A B := f.toAlgebra
x✝ : Algebra A C := (g.comp f).toAlgebra
⊢ (g.comp f).FiniteType

tactic: let _ : Algebra B C := g.toAlgebra
state_before: A : Type u_1
B : Type u_2
C : Type u_3
inst✝² : CommRing A
inst✝¹ : CommRing B
inst✝ : CommRing C
g : B →+* C
f : A →+* B
hg : g.FiniteType
hf : f.FiniteType
x✝¹ : Algebra A B := f.toAlgebra
x✝ : Algebra A C := (g.comp f).toAlgebra
⊢ (g.comp f).FiniteType
state_after: A : Type u_1
B : Type u_2
C : Type u_3
inst✝² : CommRing A
inst✝¹ : CommRing B
inst✝ : CommRing C
g : B →+* C
f : A →+* B
hg : g.FiniteType
hf : f.FiniteType
x✝² : Algebra A B := f.toAlgebra
x✝¹ : Algebra A C := (g.comp f).toAlgebra
x✝ : Algebra B C := g.toAlgebra
⊢ (g.comp f).FiniteType

tactic: exact @Algebra.FiniteType.trans A B C _ _ _ f.toAlgebra (g.comp f).toAlgebra g.toAlgebra
  ⟨by
    intro a b c
    simp [Algebra.smul_def, RingHom.map_mul, mul_assoc]
    rfl⟩
  hf hg
state_before: A : Type u_1
B : Type u_2
C : Type u_3
inst✝² : CommRing A
inst✝¹ : CommRing B
inst✝ : CommRing C
g : B →+* C
f : A →+* B
hg : g.FiniteType
hf : f.FiniteType
x✝² : Algebra A B := f.toAlgebra
x✝¹ : Algebra A C := (g.comp f).toAlgebra
x✝ : Algebra B C := g.toAlgebra
⊢ (g.comp f).FiniteType
state_after: no goals

tactic: intro a b c
state_before: A : Type u_1
B : Type u_2
C : Type u_3
inst✝² : CommRing A
inst✝¹ : CommRing B
inst✝ : CommRing C
g : B →+* C
f : A →+* B
hg : g.FiniteType
hf : f.FiniteType
x✝² : Algebra A B := f.toAlgebra
x✝¹ : Algebra A C := (g.comp f).toAlgebra
x✝ : Algebra B C := g.toAlgebra
⊢ ∀ (x : A) (y : B) (z : C), (x • y) • z = x • y • z
state_after: A : Type u_1
B : Type u_2
C : Type u_3
inst✝² : CommRing A
inst✝¹ : CommRing B
inst✝ : CommRing C
g : B →+* C
f : A →+* B
hg : g.FiniteType
hf : f.FiniteType
x✝² : Algebra A B := f.toAlgebra
x✝¹ : Algebra A C := (g.comp f).toAlgebra
x✝ : Algebra B C := g.toAlgebra
a : A
b : B
c : C
⊢ (a • b) • c = a • b • c

tactic: simp [Algebra.smul_def, RingHom.map_mul, mul_assoc]
state_before: A : Type u_1
B : Type u_2
C : Type u_3
inst✝² : CommRing A
inst✝¹ : CommRing B
inst✝ : CommRing C
g : B →+* C
f : A →+* B
hg : g.FiniteType
hf : f.FiniteType
x✝² : Algebra A B := f.toAlgebra
x✝¹ : Algebra A C := (g.comp f).toAlgebra
x✝ : Algebra B C := g.toAlgebra
a : A
b : B
c : C
⊢ (a • b) • c = a • b • c
state_after: A : Type u_1
B : Type u_2
C : Type u_3
inst✝² : CommRing A
inst✝¹ : CommRing B
inst✝ : CommRing C
g : B →+* C
f : A →+* B
hg : g.FiniteType
hf : f.FiniteType
x✝² : Algebra A B := f.toAlgebra
x✝¹ : Algebra A C := (g.comp f).toAlgebra
x✝ : Algebra B C := g.toAlgebra
a : A
b : B
c : C
⊢ (algebraMap B C) ((algebraMap A B) a) * ((algebraMap B C) b * c) = (algebraMap A C) a * ((algebraMap B C) b * c)

tactic: rfl
state_before: A : Type u_1
B : Type u_2
C : Type u_3
inst✝² : CommRing A
inst✝¹ : CommRing B
inst✝ : CommRing C
g : B →+* C
f : A →+* B
hg : g.FiniteType
hf : f.FiniteType
x✝² : Algebra A B := f.toAlgebra
x✝¹ : Algebra A C := (g.comp f).toAlgebra
x✝ : Algebra B C := g.toAlgebra
a : A
b : B
c : C
⊢ (algebraMap B C) ((algebraMap A B) a) * ((algebraMap B C) b * c) = (algebraMap A C) a * ((algebraMap B C) b * c)
state_after: no goals