Theorem: Algebra.lift_rank_eq_of_equiv_equiv
File: Mathlib/LinearAlgebra/Dimension/Basic.lean

Proof steps:
state_before: R✝ : Type u
R'✝ : Type u'
M M₁ : Type v
M' : Type v'
inst✝¹⁵ : Ring R✝
inst✝¹⁴ : Ring R'✝
inst✝¹³ : AddCommGroup M
inst✝¹² : AddCommGroup M'
inst✝¹¹ : AddCommGroup M₁
inst✝¹⁰ : Module R✝ M
inst✝⁹ : Module R✝ M'
inst✝⁸ : Module R✝ M₁
inst✝⁷ : Module R'✝ M'
inst✝⁶ : Module R'✝ M₁
R : Type w
S : Type v
inst✝⁵ : CommRing R
inst✝⁴ : Ring S
inst✝³ : Algebra R S
R' : Type w'
S' : Type v'
inst✝² : CommRing R'
inst✝¹ : Ring S'
inst✝ : Algebra R' S'
i : R ≃+* R'
j : S ≃+* S'
hc : (algebraMap R' S').comp i.toRingHom = j.toRingHom.comp (algebraMap R S)
⊢ lift.{v', v} (Module.rank R S) = lift.{v, v'} (Module.rank R' S')
state_after: R✝ : Type u
R'✝ : Type u'
M M₁ : Type v
M' : Type v'
inst✝¹⁵ : Ring R✝
inst✝¹⁴ : Ring R'✝
inst✝¹³ : AddCommGroup M
inst✝¹² : AddCommGroup M'
inst✝¹¹ : AddCommGroup M₁
inst✝¹⁰ : Module R✝ M
inst✝⁹ : Module R✝ M'
inst✝⁸ : Module R✝ M₁
inst✝⁷ : Module R'✝ M'
inst✝⁶ : Module R'✝ M₁
R : Type w
S : Type v
inst✝⁵ : CommRing R
inst✝⁴ : Ring S
inst✝³ : Algebra R S
R' : Type w'
S' : Type v'
inst✝² : CommRing R'
inst✝¹ : Ring S'
inst✝ : Algebra R' S'
i : R ≃+* R'
j : S ≃+* S'
hc : (algebraMap R' S').comp i.toRingHom = j.toRingHom.comp (algebraMap R S)
r : R
x✝ : S
⊢ ↑j (r • x✝) = ↑i r • ↑j x✝
tactic: refine _root_.lift_rank_eq_of_equiv_equiv i j i.bijective fun r _ ↦ ?_
state_before: R✝ : Type u
R'✝ : Type u'
M M₁ : Type v
M' : Type v'
inst✝¹⁵ : Ring R✝
inst✝¹⁴ : Ring R'✝
inst✝¹³ : AddCommGroup M
inst✝¹² : AddCommGroup M'
inst✝¹¹ : AddCommGroup M₁
inst✝¹⁰ : Module R✝ M
inst✝⁹ : Module R✝ M'
inst✝⁸ : Module R✝ M₁
inst✝⁷ : Module R'✝ M'
inst✝⁶ : Module R'✝ M₁
R : Type w
S : Type v
inst✝⁵ : CommRing R
inst✝⁴ : Ring S
inst✝³ : Algebra R S
R' : Type w'
S' : Type v'
inst✝² : CommRing R'
inst✝¹ : Ring S'
inst✝ : Algebra R' S'
i : R ≃+* R'
j : S ≃+* S'
hc : (algebraMap R' S').comp i.toRingHom = j.toRingHom.comp (algebraMap R S)
r : R
x✝ : S
⊢ ↑j (r • x✝) = ↑i r • ↑j x✝
state_after: R✝ : Type u
R'✝ : Type u'
M M₁ : Type v
M' : Type v'
inst✝¹⁵ : Ring R✝
inst✝¹⁴ : Ring R'✝
inst✝¹³ : AddCommGroup M
inst✝¹² : AddCommGroup M'
inst✝¹¹ : AddCommGroup M₁
inst✝¹⁰ : Module R✝ M
inst✝⁹ : Module R✝ M'
inst✝⁸ : Module R✝ M₁
inst✝⁷ : Module R'✝ M'
inst✝⁶ : Module R'✝ M₁
R : Type w
S : Type v
inst✝⁵ : CommRing R
inst✝⁴ : Ring S
inst✝³ : Algebra R S
R' : Type w'
S' : Type v'
inst✝² : CommRing R'
inst✝¹ : Ring S'
inst✝ : Algebra R' S'
i : R ≃+* R'
j : S ≃+* S'
hc : (algebraMap R' S').comp i.toRingHom = j.toRingHom.comp (algebraMap R S)
r : R
x✝ : S
this : ((algebraMap R' S').comp i.toRingHom) r = (j.toRingHom.comp (algebraMap R S)) r
⊢ ↑j (r • x✝) = ↑i r • ↑j x✝
tactic: have := congr($hc r)
state_before: R✝ : Type u
R'✝ : Type u'
M M₁ : Type v
M' : Type v'
inst✝¹⁵ : Ring R✝
inst✝¹⁴ : Ring R'✝
inst✝¹³ : AddCommGroup M
inst✝¹² : AddCommGroup M'
inst✝¹¹ : AddCommGroup M₁
inst✝¹⁰ : Module R✝ M
inst✝⁹ : Module R✝ M'
inst✝⁸ : Module R✝ M₁
inst✝⁷ : Module R'✝ M'
inst✝⁶ : Module R'✝ M₁
R : Type w
S : Type v
inst✝⁵ : CommRing R
inst✝⁴ : Ring S
inst✝³ : Algebra R S
R' : Type w'
S' : Type v'
inst✝² : CommRing R'
inst✝¹ : Ring S'
inst✝ : Algebra R' S'
i : R ≃+* R'
j : S ≃+* S'
hc : (algebraMap R' S').comp i.toRingHom = j.toRingHom.comp (algebraMap R S)
r : R
x✝ : S
this : ((algebraMap R' S').comp i.toRingHom) r = (j.toRingHom.comp (algebraMap R S)) r
⊢ ↑j (r • x✝) = ↑i r • ↑j x✝
state_after: R✝ : Type u
R'✝ : Type u'
M M₁ : Type v
M' : Type v'
inst✝¹⁵ : Ring R✝
inst✝¹⁴ : Ring R'✝
inst✝¹³ : AddCommGroup M
inst✝¹² : AddCommGroup M'
inst✝¹¹ : AddCommGroup M₁
inst✝¹⁰ : Module R✝ M
inst✝⁹ : Module R✝ M'
inst✝⁸ : Module R✝ M₁
inst✝⁷ : Module R'✝ M'
inst✝⁶ : Module R'✝ M₁
R : Type w
S : Type v
inst✝⁵ : CommRing R
inst✝⁴ : Ring S
inst✝³ : Algebra R S
R' : Type w'
S' : Type v'
inst✝² : CommRing R'
inst✝¹ : Ring S'
inst✝ : Algebra R' S'
i : R ≃+* R'
j : S ≃+* S'
hc : (algebraMap R' S').comp i.toRingHom = j.toRingHom.comp (algebraMap R S)
r : R
x✝ : S
this : (algebraMap R' S') (i r) = j ((algebraMap R S) r)
⊢ ↑j (r • x✝) = ↑i r • ↑j x✝
tactic: simp only [RingEquiv.toRingHom_eq_coe, RingHom.coe_comp, RingHom.coe_coe, comp_apply] at this
state_before: R✝ : Type u
R'✝ : Type u'
M M₁ : Type v
M' : Type v'
inst✝¹⁵ : Ring R✝
inst✝¹⁴ : Ring R'✝
inst✝¹³ : AddCommGroup M
inst✝¹² : AddCommGroup M'
inst✝¹¹ : AddCommGroup M₁
inst✝¹⁰ : Module R✝ M
inst✝⁹ : Module R✝ M'
inst✝⁸ : Module R✝ M₁
inst✝⁷ : Module R'✝ M'
inst✝⁶ : Module R'✝ M₁
R : Type w
S : Type v
inst✝⁵ : CommRing R
inst✝⁴ : Ring S
inst✝³ : Algebra R S
R' : Type w'
S' : Type v'
inst✝² : CommRing R'
inst✝¹ : Ring S'
inst✝ : Algebra R' S'
i : R ≃+* R'
j : S ≃+* S'
hc : (algebraMap R' S').comp i.toRingHom = j.toRingHom.comp (algebraMap R S)
r : R
x✝ : S
this : (algebraMap R' S') (i r) = j ((algebraMap R S) r)
⊢ ↑j (r • x✝) = ↑i r • ↑j x✝
state_after: no goals
tactic: simp only [smul_def, RingEquiv.coe_toAddEquiv, map_mul, ZeroHom.coe_coe, this]