Theorem: val_unitsCentralizerEquiv_symm_apply_coe
File: Mathlib/GroupTheory/GroupAction/ConjAct.lean

Proof steps:
state_before: α : Type u_1
M : Type u_2
G : Type u_3
G₀ : Type u_4
R : Type u_5
K : Type u_6
inst✝ : Monoid M
x : Mˣ
u : ↥(MulAction.stabilizer (ConjAct Mˣ) x)
⊢ ↑(ConjAct.ofConjAct ↑u) ∈ Submonoid.centralizer {↑x}
state_after: case refl
α : Type u_1
M : Type u_2
G : Type u_3
G₀ : Type u_4
R : Type u_5
K : Type u_6
inst✝ : Monoid M
x : Mˣ
u : ↥(MulAction.stabilizer (ConjAct Mˣ) x)
⊢ ↑x * ↑(ConjAct.ofConjAct ↑u) = ↑(ConjAct.ofConjAct ↑u) * ↑x
tactic: rintro x ⟨rfl⟩
state_before: case refl
α : Type u_1
M : Type u_2
G : Type u_3
G₀ : Type u_4
R : Type u_5
K : Type u_6
inst✝ : Monoid M
x : Mˣ
u : ↥(MulAction.stabilizer (ConjAct Mˣ) x)
⊢ ↑x * ↑(ConjAct.ofConjAct ↑u) = ↑(ConjAct.ofConjAct ↑u) * ↑x
state_after: case refl
α : Type u_1
M : Type u_2
G : Type u_3
G₀ : Type u_4
R : Type u_5
K : Type u_6
inst✝ : Monoid M
x : Mˣ
u : ↥(MulAction.stabilizer (ConjAct Mˣ) x)
this : ↑u • x = x
⊢ ↑x * ↑(ConjAct.ofConjAct ↑u) = ↑(ConjAct.ofConjAct ↑u) * ↑x
tactic: have : (u : ConjAct Mˣ) • x = x := u.2
state_before: case refl
α : Type u_1
M : Type u_2
G : Type u_3
G₀ : Type u_4
R : Type u_5
K : Type u_6
inst✝ : Monoid M
x : Mˣ
u : ↥(MulAction.stabilizer (ConjAct Mˣ) x)
this : ↑u • x = x
⊢ ↑x * ↑(ConjAct.ofConjAct ↑u) = ↑(ConjAct.ofConjAct ↑u) * ↑x
state_after: no goals
tactic: rwa [ConjAct.smul_def, mul_inv_eq_iff_eq_mul, Units.ext_iff, eq_comm] at this
state_before: α : Type u_1
M : Type u_2
G : Type u_3
G₀ : Type u_4
R : Type u_5
K : Type u_6
inst✝ : Monoid M
x : Mˣ
u : (↥(Submonoid.centralizer {↑x}))ˣ
⊢ ConjAct.toConjAct ((Units.map (Submonoid.centralizer {↑x}).subtype) u) ∈ MulAction.stabilizer (ConjAct Mˣ) x
state_after: α : Type u_1
M : Type u_2
G : Type u_3
G₀ : Type u_4
R : Type u_5
K : Type u_6
inst✝ : Monoid M
x : Mˣ
u : (↥(Submonoid.centralizer {↑x}))ˣ
⊢ ConjAct.toConjAct ((Units.map (Submonoid.centralizer {↑x}).subtype) u) • x = x
tactic: change _ • _ = _
state_before: α : Type u_1
M : Type u_2
G : Type u_3
G₀ : Type u_4
R : Type u_5
K : Type u_6
inst✝ : Monoid M
x : Mˣ
u : (↥(Submonoid.centralizer {↑x}))ˣ
⊢ ConjAct.toConjAct ((Units.map (Submonoid.centralizer {↑x}).subtype) u) • x = x
state_after: α : Type u_1
M : Type u_2
G : Type u_3
G₀ : Type u_4
R : Type u_5
K : Type u_6
inst✝ : Monoid M
x : Mˣ
u : (↥(Submonoid.centralizer {↑x}))ˣ
⊢ (Units.map (Submonoid.centralizer {↑x}).subtype) u * x = x * (Units.map (Submonoid.centralizer {↑x}).subtype) u
tactic: simp only [ConjAct.smul_def, ConjAct.ofConjAct_toConjAct, mul_inv_eq_iff_eq_mul]
state_before: α : Type u_1
M : Type u_2
G : Type u_3
G₀ : Type u_4
R : Type u_5
K : Type u_6
inst✝ : Monoid M
x : Mˣ
u : (↥(Submonoid.centralizer {↑x}))ˣ
⊢ (Units.map (Submonoid.centralizer {↑x}).subtype) u * x = x * (Units.map (Submonoid.centralizer {↑x}).subtype) u
state_after: no goals
tactic: exact Units.ext <| (u.1.2 x <| Set.mem_singleton _).symm
state_before: α : Type u_1
M : Type u_2
G : Type u_3
G₀ : Type u_4
R : Type u_5
K : Type u_6
inst✝ : Monoid M
x : Mˣ
x✝ : ↥(MulAction.stabilizer (ConjAct Mˣ) x)
⊢ (fun u => ⟨ConjAct.toConjAct ((Units.map (Submonoid.centralizer {↑x}).subtype) u), ⋯⟩)
      ({ toFun := fun u => ⟨↑(ConjAct.ofConjAct ↑u), ⋯⟩, map_one' := ?m.60866, map_mul' := ⋯ }.toHomUnits x✝) =
    x✝
state_after: case a
α : Type u_1
M : Type u_2
G : Type u_3
G₀ : Type u_4
R : Type u_5
K : Type u_6
inst✝ : Monoid M
x : Mˣ
x✝ : ↥(MulAction.stabilizer (ConjAct Mˣ) x)
⊢ ↑((fun u => ⟨ConjAct.toConjAct ((Units.map (Submonoid.centralizer {↑x}).subtype) u), ⋯⟩)
        ({ toFun := fun u => ⟨↑(ConjAct.ofConjAct ↑u), ⋯⟩, map_one' := ?m.60866, map_mul' := ⋯ }.toHomUnits x✝)) =
    ↑x✝
tactic: ext
state_before: case a
α : Type u_1
M : Type u_2
G : Type u_3
G₀ : Type u_4
R : Type u_5
K : Type u_6
inst✝ : Monoid M
x : Mˣ
x✝ : ↥(MulAction.stabilizer (ConjAct Mˣ) x)
⊢ ↑((fun u => ⟨ConjAct.toConjAct ((Units.map (Submonoid.centralizer {↑x}).subtype) u), ⋯⟩)
        ({ toFun := fun u => ⟨↑(ConjAct.ofConjAct ↑u), ⋯⟩, map_one' := ?m.60866, map_mul' := ⋯ }.toHomUnits x✝)) =
    ↑x✝
state_after: no goals
tactic: rfl
state_before: α : Type u_1
M : Type u_2
G : Type u_3
G₀ : Type u_4
R : Type u_5
K : Type u_6
inst✝ : Monoid M
x : Mˣ
x✝ : (↥(Submonoid.centralizer {↑x}))ˣ
⊢ { toFun := fun u => ⟨↑(ConjAct.ofConjAct ↑u), ⋯⟩, map_one' := ?m.60866, map_mul' := ⋯ }.toHomUnits
      ((fun u => ⟨ConjAct.toConjAct ((Units.map (Submonoid.centralizer {↑x}).subtype) u), ⋯⟩) x✝) =
    x✝
state_after: case a.a
α : Type u_1
M : Type u_2
G : Type u_3
G₀ : Type u_4
R : Type u_5
K : Type u_6
inst✝ : Monoid M
x : Mˣ
x✝ : (↥(Submonoid.centralizer {↑x}))ˣ
⊢ ↑↑({ toFun := fun u => ⟨↑(ConjAct.ofConjAct ↑u), ⋯⟩, map_one' := ?m.60866, map_mul' := ⋯ }.toHomUnits
          ((fun u => ⟨ConjAct.toConjAct ((Units.map (Submonoid.centralizer {↑x}).subtype) u), ⋯⟩) x✝)) =
    ↑↑x✝
tactic: ext
state_before: case a.a
α : Type u_1
M : Type u_2
G : Type u_3
G₀ : Type u_4
R : Type u_5
K : Type u_6
inst✝ : Monoid M
x : Mˣ
x✝ : (↥(Submonoid.centralizer {↑x}))ˣ
⊢ ↑↑({ toFun := fun u => ⟨↑(ConjAct.ofConjAct ↑u), ⋯⟩, map_one' := ?m.60866, map_mul' := ⋯ }.toHomUnits
          ((fun u => ⟨ConjAct.toConjAct ((Units.map (Submonoid.centralizer {↑x}).subtype) u), ⋯⟩) x✝)) =
    ↑↑x✝
state_after: no goals
tactic: rfl