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

Proof steps:
state_before: A : Type u_1
B : Type u_2
C : Type u_3
inst✝² : CommRing A
inst✝¹ : CommRing B
inst✝ : CommRing C
f : A →+* B
g : B →+* C
h : (g.comp f).FiniteType
⊢ g.FiniteType
state_after: A : Type u_1
B : Type u_2
C : Type u_3
inst✝² : CommRing A
inst✝¹ : CommRing B
inst✝ : CommRing C
f : A →+* B
g : B →+* C
h : (g.comp f).FiniteType
x✝ : Algebra A B := f.toAlgebra
⊢ g.FiniteType
tactic: let _ := 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
f : A →+* B
g : B →+* C
h : (g.comp f).FiniteType
x✝ : Algebra A B := f.toAlgebra
⊢ g.FiniteType
state_after: A : Type u_1
B : Type u_2
C : Type u_3
inst✝² : CommRing A
inst✝¹ : CommRing B
inst✝ : CommRing C
f : A →+* B
g : B →+* C
h : (g.comp f).FiniteType
x✝¹ : Algebra A B := f.toAlgebra
x✝ : Algebra B C := g.toAlgebra
⊢ g.FiniteType
tactic: let _ := 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
f : A →+* B
g : B →+* C
h : (g.comp f).FiniteType
x✝¹ : Algebra A B := f.toAlgebra
x✝ : Algebra B C := g.toAlgebra
⊢ g.FiniteType
state_after: A : Type u_1
B : Type u_2
C : Type u_3
inst✝² : CommRing A
inst✝¹ : CommRing B
inst✝ : CommRing C
f : A →+* B
g : B →+* C
h : (g.comp f).FiniteType
x✝² : Algebra A B := f.toAlgebra
x✝¹ : Algebra B C := g.toAlgebra
x✝ : Algebra A C := (g.comp f).toAlgebra
⊢ g.FiniteType
tactic: let _ := (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
f : A →+* B
g : B →+* C
h : (g.comp f).FiniteType
x✝² : Algebra A B := f.toAlgebra
x✝¹ : Algebra B C := g.toAlgebra
x✝ : Algebra A C := (g.comp f).toAlgebra
⊢ g.FiniteType
state_after: A : Type u_1
B : Type u_2
C : Type u_3
inst✝² : CommRing A
inst✝¹ : CommRing B
inst✝ : CommRing C
f : A →+* B
g : B →+* C
h : (g.comp f).FiniteType
x✝³ : Algebra A B := f.toAlgebra
x✝² : Algebra B C := g.toAlgebra
x✝¹ : Algebra A C := (g.comp f).toAlgebra
x✝ : IsScalarTower A B C := RestrictScalars.isScalarTower A B C
⊢ g.FiniteType
tactic: let _ : IsScalarTower A B C := RestrictScalars.isScalarTower 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
f : A →+* B
g : B →+* C
h : (g.comp f).FiniteType
x✝³ : Algebra A B := f.toAlgebra
x✝² : Algebra B C := g.toAlgebra
x✝¹ : Algebra A C := (g.comp f).toAlgebra
x✝ : IsScalarTower A B C := RestrictScalars.isScalarTower A B C
⊢ g.FiniteType
state_after: A : Type u_1
B : Type u_2
C : Type u_3
inst✝² : CommRing A
inst✝¹ : CommRing B
inst✝ : CommRing C
f : A →+* B
g : B →+* C
h : (g.comp f).FiniteType
x✝⁴ : Algebra A B := f.toAlgebra
x✝³ : Algebra B C := g.toAlgebra
x✝² : Algebra A C := (g.comp f).toAlgebra
x✝¹ : IsScalarTower A B C := RestrictScalars.isScalarTower A B C
x✝ : Algebra.FiniteType A C := h
⊢ g.FiniteType
tactic: let _ : Algebra.FiniteType A C := h
state_before: A : Type u_1
B : Type u_2
C : Type u_3
inst✝² : CommRing A
inst✝¹ : CommRing B
inst✝ : CommRing C
f : A →+* B
g : B →+* C
h : (g.comp f).FiniteType
x✝⁴ : Algebra A B := f.toAlgebra
x✝³ : Algebra B C := g.toAlgebra
x✝² : Algebra A C := (g.comp f).toAlgebra
x✝¹ : IsScalarTower A B C := RestrictScalars.isScalarTower A B C
x✝ : Algebra.FiniteType A C := h
⊢ g.FiniteType
state_after: no goals
tactic: exact Algebra.FiniteType.of_restrictScalars_finiteType A B C