Theorem: LinearMap.separatingLeft_congr_iff
File: Mathlib/LinearAlgebra/SesquilinearForm.lean

tactic: convert h.congr e₁.symm e₂.symm
state_before: R : Type u_1
R₁ : Type ?u.510521
R₂ : Type ?u.510524
R₃ : Type ?u.510527
M : Type ?u.510530
M₁ : Type ?u.510533
M₂ : Type ?u.510536
Mₗ₁ : Type u_4
Mₗ₁' : Type u_2
Mₗ₂ : Type u_5
Mₗ₂' : Type u_3
K : Type ?u.510551
K₁ : Type ?u.510554
K₂ : Type ?u.510557
V : Type ?u.510560
V₁ : Type ?u.510563
V₂ : Type ?u.510566
n : Type ?u.510569
inst✝¹⁴ : CommSemiring R
inst✝¹³ : CommSemiring R₁
inst✝¹² : AddCommMonoid M₁
inst✝¹¹ : Module R₁ M₁
inst✝¹⁰ : CommSemiring R₂
inst✝⁹ : AddCommMonoid M₂
inst✝⁸ : Module R₂ M₂
I₁ : R₁ →+* R
I₂ : R₂ →+* R
I₁' : R₁ →+* R
inst✝⁷ : AddCommMonoid Mₗ₁
inst✝⁶ : AddCommMonoid Mₗ₂
inst✝⁵ : AddCommMonoid Mₗ₁'
inst✝⁴ : AddCommMonoid Mₗ₂'
inst✝³ : Module R Mₗ₁
inst✝² : Module R Mₗ₂
inst✝¹ : Module R Mₗ₁'
inst✝ : Module R Mₗ₂'
B : Mₗ₁ →ₗ[R] Mₗ₂ →ₗ[R] R
e₁ : Mₗ₁ ≃ₗ[R] Mₗ₁'
e₂ : Mₗ₂ ≃ₗ[R] Mₗ₂'
h : SeparatingLeft (↑(LinearEquiv.arrowCongr e₁ (LinearEquiv.arrowCongr e₂ (LinearEquiv.refl R R))) B)
⊢ SeparatingLeft B

tactic: ext (x y)
state_before: case h.e'_15
R : Type u_1
R₁ : Type ?u.510521
R₂ : Type ?u.510524
R₃ : Type ?u.510527
M : Type ?u.510530
M₁ : Type ?u.510533
M₂ : Type ?u.510536
Mₗ₁ : Type u_4
Mₗ₁' : Type u_2
Mₗ₂ : Type u_5
Mₗ₂' : Type u_3
K : Type ?u.510551
K₁ : Type ?u.510554
K₂ : Type ?u.510557
V : Type ?u.510560
V₁ : Type ?u.510563
V₂ : Type ?u.510566
n : Type ?u.510569
inst✝¹⁴ : CommSemiring R
inst✝¹³ : CommSemiring R₁
inst✝¹² : AddCommMonoid M₁
inst✝¹¹ : Module R₁ M₁
inst✝¹⁰ : CommSemiring R₂
inst✝⁹ : AddCommMonoid M₂
inst✝⁸ : Module R₂ M₂
I₁ : R₁ →+* R
I₂ : R₂ →+* R
I₁' : R₁ →+* R
inst✝⁷ : AddCommMonoid Mₗ₁
inst✝⁶ : AddCommMonoid Mₗ₂
inst✝⁵ : AddCommMonoid Mₗ₁'
inst✝⁴ : AddCommMonoid Mₗ₂'
inst✝³ : Module R Mₗ₁
inst✝² : Module R Mₗ₂
inst✝¹ : Module R Mₗ₁'
inst✝ : Module R Mₗ₂'
B : Mₗ₁ →ₗ[R] Mₗ₂ →ₗ[R] R
e₁ : Mₗ₁ ≃ₗ[R] Mₗ₁'
e₂ : Mₗ₂ ≃ₗ[R] Mₗ₂'
h : SeparatingLeft (↑(LinearEquiv.arrowCongr e₁ (LinearEquiv.arrowCongr e₂ (LinearEquiv.refl R R))) B)
⊢ B =
    ↑(LinearEquiv.arrowCongr (LinearEquiv.symm e₁)
          (LinearEquiv.arrowCongr (LinearEquiv.symm e₂) (LinearEquiv.refl R R)))
      (↑(LinearEquiv.arrowCongr e₁ (LinearEquiv.arrowCongr e₂ (LinearEquiv.refl R R))) B)

tactic: simp
state_before: case h.e'_15.h.h
R : Type u_1
R₁ : Type ?u.510521
R₂ : Type ?u.510524
R₃ : Type ?u.510527
M : Type ?u.510530
M₁ : Type ?u.510533
M₂ : Type ?u.510536
Mₗ₁ : Type u_4
Mₗ₁' : Type u_2
Mₗ₂ : Type u_5
Mₗ₂' : Type u_3
K : Type ?u.510551
K₁ : Type ?u.510554
K₂ : Type ?u.510557
V : Type ?u.510560
V₁ : Type ?u.510563
V₂ : Type ?u.510566
n : Type ?u.510569
inst✝¹⁴ : CommSemiring R
inst✝¹³ : CommSemiring R₁
inst✝¹² : AddCommMonoid M₁
inst✝¹¹ : Module R₁ M₁
inst✝¹⁰ : CommSemiring R₂
inst✝⁹ : AddCommMonoid M₂
inst✝⁸ : Module R₂ M₂
I₁ : R₁ →+* R
I₂ : R₂ →+* R
I₁' : R₁ →+* R
inst✝⁷ : AddCommMonoid Mₗ₁
inst✝⁶ : AddCommMonoid Mₗ₂
inst✝⁵ : AddCommMonoid Mₗ₁'
inst✝⁴ : AddCommMonoid Mₗ₂'
inst✝³ : Module R Mₗ₁
inst✝² : Module R Mₗ₂
inst✝¹ : Module R Mₗ₁'
inst✝ : Module R Mₗ₂'
B : Mₗ₁ →ₗ[R] Mₗ₂ →ₗ[R] R
e₁ : Mₗ₁ ≃ₗ[R] Mₗ₁'
e₂ : Mₗ₂ ≃ₗ[R] Mₗ₂'
h : SeparatingLeft (↑(LinearEquiv.arrowCongr e₁ (LinearEquiv.arrowCongr e₂ (LinearEquiv.refl R R))) B)
x : Mₗ₁
y : Mₗ₂
⊢ ↑(↑B x) y =
    ↑(↑(↑(LinearEquiv.arrowCongr (LinearEquiv.symm e₁)
                  (LinearEquiv.arrowCongr (LinearEquiv.symm e₂) (LinearEquiv.refl R R)))
              (↑(LinearEquiv.arrowCongr e₁ (LinearEquiv.arrowCongr e₂ (LinearEquiv.refl R R))) B))
          x)
      y