Theorem: BilinForm.baseChangeSymm (AntLorentz/BaseChange.lean)

State before:
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : IsSymm F
⊢ IsSymm (baseChange A F)
Tactic:
simp [IsSymm] at *
State after:
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
⊢ ∀ (x y : A ⊗[R] M), bilin (baseChange A F) x y = bilin (baseChange A F) y x

State before:
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
⊢ ∀ (x y : A ⊗[R] M), bilin (baseChange A F) x y = bilin (baseChange A F) y x
Tactic:
intros x y
State after:
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
x y : A ⊗[R] M
⊢ bilin (baseChange A F) x y = bilin (baseChange A F) y x

State before:
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
x y : A ⊗[R] M
⊢ bilin (baseChange A F) x y = bilin (baseChange A F) y x
Tactic:
induction x using TensorProduct.induction_on generalizing y
State after:
case C0
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
y : A ⊗[R] M
⊢ bilin (baseChange A F) 0 y = bilin (baseChange A F) y 0

case C1
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
x✝ : A
y✝ : M
y : A ⊗[R] M
⊢ bilin (baseChange A F) (x✝ ⊗ₜ[R] y✝) y = bilin (baseChange A F) y (x✝ ⊗ₜ[R] y✝)

case Cp
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
x✝ y✝ : A ⊗[R] M
a✝¹ : ∀ (y : A ⊗[R] M), bilin (baseChange A F) x✝ y = bilin (baseChange A F) y x✝
a✝ : ∀ (y : A ⊗[R] M), bilin (baseChange A F) y✝ y = bilin (baseChange A F) y y✝
y : A ⊗[R] M
⊢ bilin (baseChange A F) (x✝ + y✝) y = bilin (baseChange A F) y (x✝ + y✝)

State before:
case C0
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
y : A ⊗[R] M
⊢ bilin (baseChange A F) 0 y = bilin (baseChange A F) y 0

case C1
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
x✝ : A
y✝ : M
y : A ⊗[R] M
⊢ bilin (baseChange A F) (x✝ ⊗ₜ[R] y✝) y = bilin (baseChange A F) y (x✝ ⊗ₜ[R] y✝)

case Cp
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
x✝ y✝ : A ⊗[R] M
a✝¹ : ∀ (y : A ⊗[R] M), bilin (baseChange A F) x✝ y = bilin (baseChange A F) y x✝
a✝ : ∀ (y : A ⊗[R] M), bilin (baseChange A F) y✝ y = bilin (baseChange A F) y y✝
y : A ⊗[R] M
⊢ bilin (baseChange A F) (x✝ + y✝) y = bilin (baseChange A F) y (x✝ + y✝)
Tactic:
. simp
State after:
case C1
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
x✝ : A
y✝ : M
y : A ⊗[R] M
⊢ bilin (baseChange A F) (x✝ ⊗ₜ[R] y✝) y = bilin (baseChange A F) y (x✝ ⊗ₜ[R] y✝)

case Cp
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
x✝ y✝ : A ⊗[R] M
a✝¹ : ∀ (y : A ⊗[R] M), bilin (baseChange A F) x✝ y = bilin (baseChange A F) y x✝
a✝ : ∀ (y : A ⊗[R] M), bilin (baseChange A F) y✝ y = bilin (baseChange A F) y y✝
y : A ⊗[R] M
⊢ bilin (baseChange A F) (x✝ + y✝) y = bilin (baseChange A F) y (x✝ + y✝)

State before:
case C1
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
x✝ : A
y✝ : M
y : A ⊗[R] M
⊢ bilin (baseChange A F) (x✝ ⊗ₜ[R] y✝) y = bilin (baseChange A F) y (x✝ ⊗ₜ[R] y✝)

case Cp
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
x✝ y✝ : A ⊗[R] M
a✝¹ : ∀ (y : A ⊗[R] M), bilin (baseChange A F) x✝ y = bilin (baseChange A F) y x✝
a✝ : ∀ (y : A ⊗[R] M), bilin (baseChange A F) y✝ y = bilin (baseChange A F) y y✝
y : A ⊗[R] M
⊢ bilin (baseChange A F) (x✝ + y✝) y = bilin (baseChange A F) y (x✝ + y✝)
Tactic:
. rename_i t z
  induction y using TensorProduct.induction_on
  . simp
  . rename_i e r
    simp [hF, mul_comm t]
  . rename_i e r he hr 
    simp [*]
State after:
case Cp
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
x✝ y✝ : A ⊗[R] M
a✝¹ : ∀ (y : A ⊗[R] M), bilin (baseChange A F) x✝ y = bilin (baseChange A F) y x✝
a✝ : ∀ (y : A ⊗[R] M), bilin (baseChange A F) y✝ y = bilin (baseChange A F) y y✝
y : A ⊗[R] M
⊢ bilin (baseChange A F) (x✝ + y✝) y = bilin (baseChange A F) y (x✝ + y✝)

State before:
case Cp
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
x✝ y✝ : A ⊗[R] M
a✝¹ : ∀ (y : A ⊗[R] M), bilin (baseChange A F) x✝ y = bilin (baseChange A F) y x✝
a✝ : ∀ (y : A ⊗[R] M), bilin (baseChange A F) y✝ y = bilin (baseChange A F) y y✝
y : A ⊗[R] M
⊢ bilin (baseChange A F) (x✝ + y✝) y = bilin (baseChange A F) y (x✝ + y✝)
Tactic:
. rename_i t z ht hz
  induction y using TensorProduct.induction_on
  . simp
  . rename_i e r
    simp [*]
  . rename_i e r _ _
    simp only [add_right, add_left, *]
    ac_rfl
State after:
no goals

State before:
case C0
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
y : A ⊗[R] M
⊢ bilin (baseChange A F) 0 y = bilin (baseChange A F) y 0
Tactic:
simp
State after:
no goals

State before:
case C1
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
x✝ : A
y✝ : M
y : A ⊗[R] M
⊢ bilin (baseChange A F) (x✝ ⊗ₜ[R] y✝) y = bilin (baseChange A F) y (x✝ ⊗ₜ[R] y✝)
Tactic:
rename_i t z
State after:
case C1
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t : A
z : M
y : A ⊗[R] M
⊢ bilin (baseChange A F) (t ⊗ₜ[R] z) y = bilin (baseChange A F) y (t ⊗ₜ[R] z)

State before:
case C1
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t : A
z : M
y : A ⊗[R] M
⊢ bilin (baseChange A F) (t ⊗ₜ[R] z) y = bilin (baseChange A F) y (t ⊗ₜ[R] z)
Tactic:
induction y using TensorProduct.induction_on
State after:
case C1.C0
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t : A
z : M
⊢ bilin (baseChange A F) (t ⊗ₜ[R] z) 0 = bilin (baseChange A F) 0 (t ⊗ₜ[R] z)

case C1.C1
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t : A
z : M
x✝ : A
y✝ : M
⊢ bilin (baseChange A F) (t ⊗ₜ[R] z) (x✝ ⊗ₜ[R] y✝) = bilin (baseChange A F) (x✝ ⊗ₜ[R] y✝) (t ⊗ₜ[R] z)

case C1.Cp
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t : A
z : M
x✝ y✝ : A ⊗[R] M
a✝¹ : bilin (baseChange A F) (t ⊗ₜ[R] z) x✝ = bilin (baseChange A F) x✝ (t ⊗ₜ[R] z)
a✝ : bilin (baseChange A F) (t ⊗ₜ[R] z) y✝ = bilin (baseChange A F) y✝ (t ⊗ₜ[R] z)
⊢ bilin (baseChange A F) (t ⊗ₜ[R] z) (x✝ + y✝) = bilin (baseChange A F) (x✝ + y✝) (t ⊗ₜ[R] z)

State before:
case C1.C0
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t : A
z : M
⊢ bilin (baseChange A F) (t ⊗ₜ[R] z) 0 = bilin (baseChange A F) 0 (t ⊗ₜ[R] z)

case C1.C1
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t : A
z : M
x✝ : A
y✝ : M
⊢ bilin (baseChange A F) (t ⊗ₜ[R] z) (x✝ ⊗ₜ[R] y✝) = bilin (baseChange A F) (x✝ ⊗ₜ[R] y✝) (t ⊗ₜ[R] z)

case C1.Cp
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t : A
z : M
x✝ y✝ : A ⊗[R] M
a✝¹ : bilin (baseChange A F) (t ⊗ₜ[R] z) x✝ = bilin (baseChange A F) x✝ (t ⊗ₜ[R] z)
a✝ : bilin (baseChange A F) (t ⊗ₜ[R] z) y✝ = bilin (baseChange A F) y✝ (t ⊗ₜ[R] z)
⊢ bilin (baseChange A F) (t ⊗ₜ[R] z) (x✝ + y✝) = bilin (baseChange A F) (x✝ + y✝) (t ⊗ₜ[R] z)
Tactic:
. simp
State after:
case C1.C1
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t : A
z : M
x✝ : A
y✝ : M
⊢ bilin (baseChange A F) (t ⊗ₜ[R] z) (x✝ ⊗ₜ[R] y✝) = bilin (baseChange A F) (x✝ ⊗ₜ[R] y✝) (t ⊗ₜ[R] z)

case C1.Cp
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t : A
z : M
x✝ y✝ : A ⊗[R] M
a✝¹ : bilin (baseChange A F) (t ⊗ₜ[R] z) x✝ = bilin (baseChange A F) x✝ (t ⊗ₜ[R] z)
a✝ : bilin (baseChange A F) (t ⊗ₜ[R] z) y✝ = bilin (baseChange A F) y✝ (t ⊗ₜ[R] z)
⊢ bilin (baseChange A F) (t ⊗ₜ[R] z) (x✝ + y✝) = bilin (baseChange A F) (x✝ + y✝) (t ⊗ₜ[R] z)

State before:
case C1.C1
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t : A
z : M
x✝ : A
y✝ : M
⊢ bilin (baseChange A F) (t ⊗ₜ[R] z) (x✝ ⊗ₜ[R] y✝) = bilin (baseChange A F) (x✝ ⊗ₜ[R] y✝) (t ⊗ₜ[R] z)

case C1.Cp
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t : A
z : M
x✝ y✝ : A ⊗[R] M
a✝¹ : bilin (baseChange A F) (t ⊗ₜ[R] z) x✝ = bilin (baseChange A F) x✝ (t ⊗ₜ[R] z)
a✝ : bilin (baseChange A F) (t ⊗ₜ[R] z) y✝ = bilin (baseChange A F) y✝ (t ⊗ₜ[R] z)
⊢ bilin (baseChange A F) (t ⊗ₜ[R] z) (x✝ + y✝) = bilin (baseChange A F) (x✝ + y✝) (t ⊗ₜ[R] z)
Tactic:
. rename_i e r
  simp [hF, mul_comm t]
State after:
case C1.Cp
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t : A
z : M
x✝ y✝ : A ⊗[R] M
a✝¹ : bilin (baseChange A F) (t ⊗ₜ[R] z) x✝ = bilin (baseChange A F) x✝ (t ⊗ₜ[R] z)
a✝ : bilin (baseChange A F) (t ⊗ₜ[R] z) y✝ = bilin (baseChange A F) y✝ (t ⊗ₜ[R] z)
⊢ bilin (baseChange A F) (t ⊗ₜ[R] z) (x✝ + y✝) = bilin (baseChange A F) (x✝ + y✝) (t ⊗ₜ[R] z)

State before:
case C1.Cp
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t : A
z : M
x✝ y✝ : A ⊗[R] M
a✝¹ : bilin (baseChange A F) (t ⊗ₜ[R] z) x✝ = bilin (baseChange A F) x✝ (t ⊗ₜ[R] z)
a✝ : bilin (baseChange A F) (t ⊗ₜ[R] z) y✝ = bilin (baseChange A F) y✝ (t ⊗ₜ[R] z)
⊢ bilin (baseChange A F) (t ⊗ₜ[R] z) (x✝ + y✝) = bilin (baseChange A F) (x✝ + y✝) (t ⊗ₜ[R] z)
Tactic:
. rename_i e r he hr 
  simp [*]
State after:
no goals

State before:
case C1.C0
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t : A
z : M
⊢ bilin (baseChange A F) (t ⊗ₜ[R] z) 0 = bilin (baseChange A F) 0 (t ⊗ₜ[R] z)
Tactic:
simp
State after:
no goals

State before:
case C1.C1
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t : A
z : M
x✝ : A
y✝ : M
⊢ bilin (baseChange A F) (t ⊗ₜ[R] z) (x✝ ⊗ₜ[R] y✝) = bilin (baseChange A F) (x✝ ⊗ₜ[R] y✝) (t ⊗ₜ[R] z)
Tactic:
rename_i e r
State after:
case C1.C1
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t : A
z : M
e : A
r : M
⊢ bilin (baseChange A F) (t ⊗ₜ[R] z) (e ⊗ₜ[R] r) = bilin (baseChange A F) (e ⊗ₜ[R] r) (t ⊗ₜ[R] z)

State before:
case C1.C1
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t : A
z : M
e : A
r : M
⊢ bilin (baseChange A F) (t ⊗ₜ[R] z) (e ⊗ₜ[R] r) = bilin (baseChange A F) (e ⊗ₜ[R] r) (t ⊗ₜ[R] z)
Tactic:
simp [hF, mul_comm t]
State after:
no goals

State before:
case C1.Cp
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t : A
z : M
x✝ y✝ : A ⊗[R] M
a✝¹ : bilin (baseChange A F) (t ⊗ₜ[R] z) x✝ = bilin (baseChange A F) x✝ (t ⊗ₜ[R] z)
a✝ : bilin (baseChange A F) (t ⊗ₜ[R] z) y✝ = bilin (baseChange A F) y✝ (t ⊗ₜ[R] z)
⊢ bilin (baseChange A F) (t ⊗ₜ[R] z) (x✝ + y✝) = bilin (baseChange A F) (x✝ + y✝) (t ⊗ₜ[R] z)
Tactic:
rename_i e r he hr
State after:
case C1.Cp
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t : A
z : M
e r : A ⊗[R] M
he : bilin (baseChange A F) (t ⊗ₜ[R] z) e = bilin (baseChange A F) e (t ⊗ₜ[R] z)
hr : bilin (baseChange A F) (t ⊗ₜ[R] z) r = bilin (baseChange A F) r (t ⊗ₜ[R] z)
⊢ bilin (baseChange A F) (t ⊗ₜ[R] z) (e + r) = bilin (baseChange A F) (e + r) (t ⊗ₜ[R] z)

State before:
case C1.Cp
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t : A
z : M
e r : A ⊗[R] M
he : bilin (baseChange A F) (t ⊗ₜ[R] z) e = bilin (baseChange A F) e (t ⊗ₜ[R] z)
hr : bilin (baseChange A F) (t ⊗ₜ[R] z) r = bilin (baseChange A F) r (t ⊗ₜ[R] z)
⊢ bilin (baseChange A F) (t ⊗ₜ[R] z) (e + r) = bilin (baseChange A F) (e + r) (t ⊗ₜ[R] z)
Tactic:
simp [*]
State after:
no goals

State before:
case Cp
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
x✝ y✝ : A ⊗[R] M
a✝¹ : ∀ (y : A ⊗[R] M), bilin (baseChange A F) x✝ y = bilin (baseChange A F) y x✝
a✝ : ∀ (y : A ⊗[R] M), bilin (baseChange A F) y✝ y = bilin (baseChange A F) y y✝
y : A ⊗[R] M
⊢ bilin (baseChange A F) (x✝ + y✝) y = bilin (baseChange A F) y (x✝ + y✝)
Tactic:
rename_i t z ht hz
State after:
case Cp
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t z : A ⊗[R] M
ht : ∀ (y : A ⊗[R] M), bilin (baseChange A F) t y = bilin (baseChange A F) y t
hz : ∀ (y : A ⊗[R] M), bilin (baseChange A F) z y = bilin (baseChange A F) y z
y : A ⊗[R] M
⊢ bilin (baseChange A F) (t + z) y = bilin (baseChange A F) y (t + z)

State before:
case Cp
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t z : A ⊗[R] M
ht : ∀ (y : A ⊗[R] M), bilin (baseChange A F) t y = bilin (baseChange A F) y t
hz : ∀ (y : A ⊗[R] M), bilin (baseChange A F) z y = bilin (baseChange A F) y z
y : A ⊗[R] M
⊢ bilin (baseChange A F) (t + z) y = bilin (baseChange A F) y (t + z)
Tactic:
induction y using TensorProduct.induction_on
State after:
case Cp.C0
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t z : A ⊗[R] M
ht : ∀ (y : A ⊗[R] M), bilin (baseChange A F) t y = bilin (baseChange A F) y t
hz : ∀ (y : A ⊗[R] M), bilin (baseChange A F) z y = bilin (baseChange A F) y z
⊢ bilin (baseChange A F) (t + z) 0 = bilin (baseChange A F) 0 (t + z)

case Cp.C1
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t z : A ⊗[R] M
ht : ∀ (y : A ⊗[R] M), bilin (baseChange A F) t y = bilin (baseChange A F) y t
hz : ∀ (y : A ⊗[R] M), bilin (baseChange A F) z y = bilin (baseChange A F) y z
x✝ : A
y✝ : M
⊢ bilin (baseChange A F) (t + z) (x✝ ⊗ₜ[R] y✝) = bilin (baseChange A F) (x✝ ⊗ₜ[R] y✝) (t + z)

case Cp.Cp
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t z : A ⊗[R] M
ht : ∀ (y : A ⊗[R] M), bilin (baseChange A F) t y = bilin (baseChange A F) y t
hz : ∀ (y : A ⊗[R] M), bilin (baseChange A F) z y = bilin (baseChange A F) y z
x✝ y✝ : A ⊗[R] M
a✝¹ : bilin (baseChange A F) (t + z) x✝ = bilin (baseChange A F) x✝ (t + z)
a✝ : bilin (baseChange A F) (t + z) y✝ = bilin (baseChange A F) y✝ (t + z)
⊢ bilin (baseChange A F) (t + z) (x✝ + y✝) = bilin (baseChange A F) (x✝ + y✝) (t + z)

State before:
case Cp.C0
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t z : A ⊗[R] M
ht : ∀ (y : A ⊗[R] M), bilin (baseChange A F) t y = bilin (baseChange A F) y t
hz : ∀ (y : A ⊗[R] M), bilin (baseChange A F) z y = bilin (baseChange A F) y z
⊢ bilin (baseChange A F) (t + z) 0 = bilin (baseChange A F) 0 (t + z)

case Cp.C1
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t z : A ⊗[R] M
ht : ∀ (y : A ⊗[R] M), bilin (baseChange A F) t y = bilin (baseChange A F) y t
hz : ∀ (y : A ⊗[R] M), bilin (baseChange A F) z y = bilin (baseChange A F) y z
x✝ : A
y✝ : M
⊢ bilin (baseChange A F) (t + z) (x✝ ⊗ₜ[R] y✝) = bilin (baseChange A F) (x✝ ⊗ₜ[R] y✝) (t + z)

case Cp.Cp
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t z : A ⊗[R] M
ht : ∀ (y : A ⊗[R] M), bilin (baseChange A F) t y = bilin (baseChange A F) y t
hz : ∀ (y : A ⊗[R] M), bilin (baseChange A F) z y = bilin (baseChange A F) y z
x✝ y✝ : A ⊗[R] M
a✝¹ : bilin (baseChange A F) (t + z) x✝ = bilin (baseChange A F) x✝ (t + z)
a✝ : bilin (baseChange A F) (t + z) y✝ = bilin (baseChange A F) y✝ (t + z)
⊢ bilin (baseChange A F) (t + z) (x✝ + y✝) = bilin (baseChange A F) (x✝ + y✝) (t + z)
Tactic:
. simp
State after:
case Cp.C1
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t z : A ⊗[R] M
ht : ∀ (y : A ⊗[R] M), bilin (baseChange A F) t y = bilin (baseChange A F) y t
hz : ∀ (y : A ⊗[R] M), bilin (baseChange A F) z y = bilin (baseChange A F) y z
x✝ : A
y✝ : M
⊢ bilin (baseChange A F) (t + z) (x✝ ⊗ₜ[R] y✝) = bilin (baseChange A F) (x✝ ⊗ₜ[R] y✝) (t + z)

case Cp.Cp
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t z : A ⊗[R] M
ht : ∀ (y : A ⊗[R] M), bilin (baseChange A F) t y = bilin (baseChange A F) y t
hz : ∀ (y : A ⊗[R] M), bilin (baseChange A F) z y = bilin (baseChange A F) y z
x✝ y✝ : A ⊗[R] M
a✝¹ : bilin (baseChange A F) (t + z) x✝ = bilin (baseChange A F) x✝ (t + z)
a✝ : bilin (baseChange A F) (t + z) y✝ = bilin (baseChange A F) y✝ (t + z)
⊢ bilin (baseChange A F) (t + z) (x✝ + y✝) = bilin (baseChange A F) (x✝ + y✝) (t + z)

State before:
case Cp.C1
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t z : A ⊗[R] M
ht : ∀ (y : A ⊗[R] M), bilin (baseChange A F) t y = bilin (baseChange A F) y t
hz : ∀ (y : A ⊗[R] M), bilin (baseChange A F) z y = bilin (baseChange A F) y z
x✝ : A
y✝ : M
⊢ bilin (baseChange A F) (t + z) (x✝ ⊗ₜ[R] y✝) = bilin (baseChange A F) (x✝ ⊗ₜ[R] y✝) (t + z)

case Cp.Cp
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t z : A ⊗[R] M
ht : ∀ (y : A ⊗[R] M), bilin (baseChange A F) t y = bilin (baseChange A F) y t
hz : ∀ (y : A ⊗[R] M), bilin (baseChange A F) z y = bilin (baseChange A F) y z
x✝ y✝ : A ⊗[R] M
a✝¹ : bilin (baseChange A F) (t + z) x✝ = bilin (baseChange A F) x✝ (t + z)
a✝ : bilin (baseChange A F) (t + z) y✝ = bilin (baseChange A F) y✝ (t + z)
⊢ bilin (baseChange A F) (t + z) (x✝ + y✝) = bilin (baseChange A F) (x✝ + y✝) (t + z)
Tactic:
. rename_i e r
  simp [*]
State after:
case Cp.Cp
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t z : A ⊗[R] M
ht : ∀ (y : A ⊗[R] M), bilin (baseChange A F) t y = bilin (baseChange A F) y t
hz : ∀ (y : A ⊗[R] M), bilin (baseChange A F) z y = bilin (baseChange A F) y z
x✝ y✝ : A ⊗[R] M
a✝¹ : bilin (baseChange A F) (t + z) x✝ = bilin (baseChange A F) x✝ (t + z)
a✝ : bilin (baseChange A F) (t + z) y✝ = bilin (baseChange A F) y✝ (t + z)
⊢ bilin (baseChange A F) (t + z) (x✝ + y✝) = bilin (baseChange A F) (x✝ + y✝) (t + z)

State before:
case Cp.Cp
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t z : A ⊗[R] M
ht : ∀ (y : A ⊗[R] M), bilin (baseChange A F) t y = bilin (baseChange A F) y t
hz : ∀ (y : A ⊗[R] M), bilin (baseChange A F) z y = bilin (baseChange A F) y z
x✝ y✝ : A ⊗[R] M
a✝¹ : bilin (baseChange A F) (t + z) x✝ = bilin (baseChange A F) x✝ (t + z)
a✝ : bilin (baseChange A F) (t + z) y✝ = bilin (baseChange A F) y✝ (t + z)
⊢ bilin (baseChange A F) (t + z) (x✝ + y✝) = bilin (baseChange A F) (x✝ + y✝) (t + z)
Tactic:
. rename_i e r _ _
  simp only [add_right, add_left, *]
  ac_rfl
State after:
no goals

State before:
case Cp.C0
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t z : A ⊗[R] M
ht : ∀ (y : A ⊗[R] M), bilin (baseChange A F) t y = bilin (baseChange A F) y t
hz : ∀ (y : A ⊗[R] M), bilin (baseChange A F) z y = bilin (baseChange A F) y z
⊢ bilin (baseChange A F) (t + z) 0 = bilin (baseChange A F) 0 (t + z)
Tactic:
simp
State after:
no goals

State before:
case Cp.C1
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t z : A ⊗[R] M
ht : ∀ (y : A ⊗[R] M), bilin (baseChange A F) t y = bilin (baseChange A F) y t
hz : ∀ (y : A ⊗[R] M), bilin (baseChange A F) z y = bilin (baseChange A F) y z
x✝ : A
y✝ : M
⊢ bilin (baseChange A F) (t + z) (x✝ ⊗ₜ[R] y✝) = bilin (baseChange A F) (x✝ ⊗ₜ[R] y✝) (t + z)
Tactic:
rename_i e r
State after:
case Cp.C1
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t z : A ⊗[R] M
ht : ∀ (y : A ⊗[R] M), bilin (baseChange A F) t y = bilin (baseChange A F) y t
hz : ∀ (y : A ⊗[R] M), bilin (baseChange A F) z y = bilin (baseChange A F) y z
e : A
r : M
⊢ bilin (baseChange A F) (t + z) (e ⊗ₜ[R] r) = bilin (baseChange A F) (e ⊗ₜ[R] r) (t + z)

State before:
case Cp.C1
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t z : A ⊗[R] M
ht : ∀ (y : A ⊗[R] M), bilin (baseChange A F) t y = bilin (baseChange A F) y t
hz : ∀ (y : A ⊗[R] M), bilin (baseChange A F) z y = bilin (baseChange A F) y z
e : A
r : M
⊢ bilin (baseChange A F) (t + z) (e ⊗ₜ[R] r) = bilin (baseChange A F) (e ⊗ₜ[R] r) (t + z)
Tactic:
simp [*]
State after:
no goals

State before:
case Cp.Cp
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t z : A ⊗[R] M
ht : ∀ (y : A ⊗[R] M), bilin (baseChange A F) t y = bilin (baseChange A F) y t
hz : ∀ (y : A ⊗[R] M), bilin (baseChange A F) z y = bilin (baseChange A F) y z
x✝ y✝ : A ⊗[R] M
a✝¹ : bilin (baseChange A F) (t + z) x✝ = bilin (baseChange A F) x✝ (t + z)
a✝ : bilin (baseChange A F) (t + z) y✝ = bilin (baseChange A F) y✝ (t + z)
⊢ bilin (baseChange A F) (t + z) (x✝ + y✝) = bilin (baseChange A F) (x✝ + y✝) (t + z)
Tactic:
rename_i e r _ _
State after:
case Cp.Cp
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t z : A ⊗[R] M
ht : ∀ (y : A ⊗[R] M), bilin (baseChange A F) t y = bilin (baseChange A F) y t
hz : ∀ (y : A ⊗[R] M), bilin (baseChange A F) z y = bilin (baseChange A F) y z
e r : A ⊗[R] M
a✝¹ : bilin (baseChange A F) (t + z) e = bilin (baseChange A F) e (t + z)
a✝ : bilin (baseChange A F) (t + z) r = bilin (baseChange A F) r (t + z)
⊢ bilin (baseChange A F) (t + z) (e + r) = bilin (baseChange A F) (e + r) (t + z)

State before:
case Cp.Cp
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t z : A ⊗[R] M
ht : ∀ (y : A ⊗[R] M), bilin (baseChange A F) t y = bilin (baseChange A F) y t
hz : ∀ (y : A ⊗[R] M), bilin (baseChange A F) z y = bilin (baseChange A F) y z
e r : A ⊗[R] M
a✝¹ : bilin (baseChange A F) (t + z) e = bilin (baseChange A F) e (t + z)
a✝ : bilin (baseChange A F) (t + z) r = bilin (baseChange A F) r (t + z)
⊢ bilin (baseChange A F) (t + z) (e + r) = bilin (baseChange A F) (e + r) (t + z)
Tactic:
simp only [add_right, add_left, *]
State after:
case Cp.Cp
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t z : A ⊗[R] M
ht : ∀ (y : A ⊗[R] M), bilin (baseChange A F) t y = bilin (baseChange A F) y t
hz : ∀ (y : A ⊗[R] M), bilin (baseChange A F) z y = bilin (baseChange A F) y z
e r : A ⊗[R] M
a✝¹ : bilin (baseChange A F) (t + z) e = bilin (baseChange A F) e (t + z)
a✝ : bilin (baseChange A F) (t + z) r = bilin (baseChange A F) r (t + z)
⊢ bilin (baseChange A F) e t + bilin (baseChange A F) e z + (bilin (baseChange A F) r t + bilin (baseChange A F) r z) =
    bilin (baseChange A F) e t + bilin (baseChange A F) r t + (bilin (baseChange A F) e z + bilin (baseChange A F) r z)

State before:
case Cp.Cp
R✝ : Type ?u.255543
M✝ : Type ?u.255546
A✝ : Type ?u.255770
inst✝¹⁶ : CommSemiring R✝
inst✝¹⁵ : AddCommMonoid M✝
inst✝¹⁴ : Module R✝ M✝
inst✝¹³ : CommSemiring A✝
inst✝¹² : Algebra R✝ A✝
inst✝¹¹ : Invertible 2
R A M N T : Type
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Algebra R A
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : AddCommGroup T
inst✝² : Module A T
inst✝¹ : Module R T
inst✝ : IsScalarTower R A T
F : BilinForm R M
hF : ∀ (x y : M), bilin F x y = bilin F y x
t z : A ⊗[R] M
ht : ∀ (y : A ⊗[R] M), bilin (baseChange A F) t y = bilin (baseChange A F) y t
hz : ∀ (y : A ⊗[R] M), bilin (baseChange A F) z y = bilin (baseChange A F) y z
e r : A ⊗[R] M
a✝¹ : bilin (baseChange A F) (t + z) e = bilin (baseChange A F) e (t + z)
a✝ : bilin (baseChange A F) (t + z) r = bilin (baseChange A F) r (t + z)
⊢ bilin (baseChange A F) e t + bilin (baseChange A F) e z + (bilin (baseChange A F) r t + bilin (baseChange A F) r z) =
    bilin (baseChange A F) e t + bilin (baseChange A F) r t + (bilin (baseChange A F) e z + bilin (baseChange A F) r z)
Tactic:
ac_rfl
State after:
no goals