Theorem: QuadraticForm.anisotropic_of_prod
File: Mathlib/LinearAlgebra/QuadraticForm/Prod.lean

tactic: simp_rw [Anisotropic, prod_apply, Prod.forall, Prod.mk_eq_zero] at h
state_before: ι : Type ?u.37629
R✝ : Type ?u.37632
M₁ : Type u_2
M₂ : Type u_3
N₁ : Type ?u.37641
N₂ : Type ?u.37644
Mᵢ : ι → Type ?u.37649
Nᵢ : ι → Type ?u.37654
inst✝¹⁵ : Semiring R✝
inst✝¹⁴ : AddCommMonoid M₁
inst✝¹³ : AddCommMonoid M₂
inst✝¹² : AddCommMonoid N₁
inst✝¹¹ : AddCommMonoid N₂
inst✝¹⁰ : Module R✝ M₁
inst✝⁹ : Module R✝ M₂
inst✝⁸ : Module R✝ N₁
inst✝⁷ : Module R✝ N₂
inst✝⁶ : (i : ι) → AddCommMonoid (Mᵢ i)
inst✝⁵ : (i : ι) → AddCommMonoid (Nᵢ i)
inst✝⁴ : (i : ι) → Module R✝ (Mᵢ i)
inst✝³ : (i : ι) → Module R✝ (Nᵢ i)
R : Type u_1
inst✝² : OrderedRing R
inst✝¹ : Module R M₁
inst✝ : Module R M₂
Q₁ : QuadraticForm R M₁
Q₂ : QuadraticForm R M₂
h : Anisotropic (prod Q₁ Q₂)
⊢ Anisotropic Q₁ ∧ Anisotropic Q₂

tactic: constructor
state_before: ι : Type ?u.37629
R✝ : Type ?u.37632
M₁ : Type u_2
M₂ : Type u_3
N₁ : Type ?u.37641
N₂ : Type ?u.37644
Mᵢ : ι → Type ?u.37649
Nᵢ : ι → Type ?u.37654
inst✝¹⁵ : Semiring R✝
inst✝¹⁴ : AddCommMonoid M₁
inst✝¹³ : AddCommMonoid M₂
inst✝¹² : AddCommMonoid N₁
inst✝¹¹ : AddCommMonoid N₂
inst✝¹⁰ : Module R✝ M₁
inst✝⁹ : Module R✝ M₂
inst✝⁸ : Module R✝ N₁
inst✝⁷ : Module R✝ N₂
inst✝⁶ : (i : ι) → AddCommMonoid (Mᵢ i)
inst✝⁵ : (i : ι) → AddCommMonoid (Nᵢ i)
inst✝⁴ : (i : ι) → Module R✝ (Mᵢ i)
inst✝³ : (i : ι) → Module R✝ (Nᵢ i)
R : Type u_1
inst✝² : OrderedRing R
inst✝¹ : Module R M₁
inst✝ : Module R M₂
Q₁ : QuadraticForm R M₁
Q₂ : QuadraticForm R M₂
h : ∀ (a : M₁) (b : M₂), ↑Q₁ a + ↑Q₂ b = 0 → a = 0 ∧ b = 0
⊢ Anisotropic Q₁ ∧ Anisotropic Q₂

tactic: intro x hx
state_before: case left
ι : Type ?u.37629
R✝ : Type ?u.37632
M₁ : Type u_2
M₂ : Type u_3
N₁ : Type ?u.37641
N₂ : Type ?u.37644
Mᵢ : ι → Type ?u.37649
Nᵢ : ι → Type ?u.37654
inst✝¹⁵ : Semiring R✝
inst✝¹⁴ : AddCommMonoid M₁
inst✝¹³ : AddCommMonoid M₂
inst✝¹² : AddCommMonoid N₁
inst✝¹¹ : AddCommMonoid N₂
inst✝¹⁰ : Module R✝ M₁
inst✝⁹ : Module R✝ M₂
inst✝⁸ : Module R✝ N₁
inst✝⁷ : Module R✝ N₂
inst✝⁶ : (i : ι) → AddCommMonoid (Mᵢ i)
inst✝⁵ : (i : ι) → AddCommMonoid (Nᵢ i)
inst✝⁴ : (i : ι) → Module R✝ (Mᵢ i)
inst✝³ : (i : ι) → Module R✝ (Nᵢ i)
R : Type u_1
inst✝² : OrderedRing R
inst✝¹ : Module R M₁
inst✝ : Module R M₂
Q₁ : QuadraticForm R M₁
Q₂ : QuadraticForm R M₂
h : ∀ (a : M₁) (b : M₂), ↑Q₁ a + ↑Q₂ b = 0 → a = 0 ∧ b = 0
⊢ Anisotropic Q₁

tactic: refine' (h x 0 _).1
state_before: case left
ι : Type ?u.37629
R✝ : Type ?u.37632
M₁ : Type u_2
M₂ : Type u_3
N₁ : Type ?u.37641
N₂ : Type ?u.37644
Mᵢ : ι → Type ?u.37649
Nᵢ : ι → Type ?u.37654
inst✝¹⁵ : Semiring R✝
inst✝¹⁴ : AddCommMonoid M₁
inst✝¹³ : AddCommMonoid M₂
inst✝¹² : AddCommMonoid N₁
inst✝¹¹ : AddCommMonoid N₂
inst✝¹⁰ : Module R✝ M₁
inst✝⁹ : Module R✝ M₂
inst✝⁸ : Module R✝ N₁
inst✝⁷ : Module R✝ N₂
inst✝⁶ : (i : ι) → AddCommMonoid (Mᵢ i)
inst✝⁵ : (i : ι) → AddCommMonoid (Nᵢ i)
inst✝⁴ : (i : ι) → Module R✝ (Mᵢ i)
inst✝³ : (i : ι) → Module R✝ (Nᵢ i)
R : Type u_1
inst✝² : OrderedRing R
inst✝¹ : Module R M₁
inst✝ : Module R M₂
Q₁ : QuadraticForm R M₁
Q₂ : QuadraticForm R M₂
h : ∀ (a : M₁) (b : M₂), ↑Q₁ a + ↑Q₂ b = 0 → a = 0 ∧ b = 0
x : M₁
hx : ↑Q₁ x = 0
⊢ x = 0

tactic: rw [hx, zero_add, map_zero]
state_before: case left
ι : Type ?u.37629
R✝ : Type ?u.37632
M₁ : Type u_2
M₂ : Type u_3
N₁ : Type ?u.37641
N₂ : Type ?u.37644
Mᵢ : ι → Type ?u.37649
Nᵢ : ι → Type ?u.37654
inst✝¹⁵ : Semiring R✝
inst✝¹⁴ : AddCommMonoid M₁
inst✝¹³ : AddCommMonoid M₂
inst✝¹² : AddCommMonoid N₁
inst✝¹¹ : AddCommMonoid N₂
inst✝¹⁰ : Module R✝ M₁
inst✝⁹ : Module R✝ M₂
inst✝⁸ : Module R✝ N₁
inst✝⁷ : Module R✝ N₂
inst✝⁶ : (i : ι) → AddCommMonoid (Mᵢ i)
inst✝⁵ : (i : ι) → AddCommMonoid (Nᵢ i)
inst✝⁴ : (i : ι) → Module R✝ (Mᵢ i)
inst✝³ : (i : ι) → Module R✝ (Nᵢ i)
R : Type u_1
inst✝² : OrderedRing R
inst✝¹ : Module R M₁
inst✝ : Module R M₂
Q₁ : QuadraticForm R M₁
Q₂ : QuadraticForm R M₂
h : ∀ (a : M₁) (b : M₂), ↑Q₁ a + ↑Q₂ b = 0 → a = 0 ∧ b = 0
x : M₁
hx : ↑Q₁ x = 0
⊢ ↑Q₁ x + ↑Q₂ 0 = 0

tactic: intro x hx
state_before: case right
ι : Type ?u.37629
R✝ : Type ?u.37632
M₁ : Type u_2
M₂ : Type u_3
N₁ : Type ?u.37641
N₂ : Type ?u.37644
Mᵢ : ι → Type ?u.37649
Nᵢ : ι → Type ?u.37654
inst✝¹⁵ : Semiring R✝
inst✝¹⁴ : AddCommMonoid M₁
inst✝¹³ : AddCommMonoid M₂
inst✝¹² : AddCommMonoid N₁
inst✝¹¹ : AddCommMonoid N₂
inst✝¹⁰ : Module R✝ M₁
inst✝⁹ : Module R✝ M₂
inst✝⁸ : Module R✝ N₁
inst✝⁷ : Module R✝ N₂
inst✝⁶ : (i : ι) → AddCommMonoid (Mᵢ i)
inst✝⁵ : (i : ι) → AddCommMonoid (Nᵢ i)
inst✝⁴ : (i : ι) → Module R✝ (Mᵢ i)
inst✝³ : (i : ι) → Module R✝ (Nᵢ i)
R : Type u_1
inst✝² : OrderedRing R
inst✝¹ : Module R M₁
inst✝ : Module R M₂
Q₁ : QuadraticForm R M₁
Q₂ : QuadraticForm R M₂
h : ∀ (a : M₁) (b : M₂), ↑Q₁ a + ↑Q₂ b = 0 → a = 0 ∧ b = 0
⊢ Anisotropic Q₂

tactic: refine' (h 0 x _).2
state_before: case right
ι : Type ?u.37629
R✝ : Type ?u.37632
M₁ : Type u_2
M₂ : Type u_3
N₁ : Type ?u.37641
N₂ : Type ?u.37644
Mᵢ : ι → Type ?u.37649
Nᵢ : ι → Type ?u.37654
inst✝¹⁵ : Semiring R✝
inst✝¹⁴ : AddCommMonoid M₁
inst✝¹³ : AddCommMonoid M₂
inst✝¹² : AddCommMonoid N₁
inst✝¹¹ : AddCommMonoid N₂
inst✝¹⁰ : Module R✝ M₁
inst✝⁹ : Module R✝ M₂
inst✝⁸ : Module R✝ N₁
inst✝⁷ : Module R✝ N₂
inst✝⁶ : (i : ι) → AddCommMonoid (Mᵢ i)
inst✝⁵ : (i : ι) → AddCommMonoid (Nᵢ i)
inst✝⁴ : (i : ι) → Module R✝ (Mᵢ i)
inst✝³ : (i : ι) → Module R✝ (Nᵢ i)
R : Type u_1
inst✝² : OrderedRing R
inst✝¹ : Module R M₁
inst✝ : Module R M₂
Q₁ : QuadraticForm R M₁
Q₂ : QuadraticForm R M₂
h : ∀ (a : M₁) (b : M₂), ↑Q₁ a + ↑Q₂ b = 0 → a = 0 ∧ b = 0
x : M₂
hx : ↑Q₂ x = 0
⊢ x = 0

tactic: rw [hx, add_zero, map_zero]
state_before: case right
ι : Type ?u.37629
R✝ : Type ?u.37632
M₁ : Type u_2
M₂ : Type u_3
N₁ : Type ?u.37641
N₂ : Type ?u.37644
Mᵢ : ι → Type ?u.37649
Nᵢ : ι → Type ?u.37654
inst✝¹⁵ : Semiring R✝
inst✝¹⁴ : AddCommMonoid M₁
inst✝¹³ : AddCommMonoid M₂
inst✝¹² : AddCommMonoid N₁
inst✝¹¹ : AddCommMonoid N₂
inst✝¹⁰ : Module R✝ M₁
inst✝⁹ : Module R✝ M₂
inst✝⁸ : Module R✝ N₁
inst✝⁷ : Module R✝ N₂
inst✝⁶ : (i : ι) → AddCommMonoid (Mᵢ i)
inst✝⁵ : (i : ι) → AddCommMonoid (Nᵢ i)
inst✝⁴ : (i : ι) → Module R✝ (Mᵢ i)
inst✝³ : (i : ι) → Module R✝ (Nᵢ i)
R : Type u_1
inst✝² : OrderedRing R
inst✝¹ : Module R M₁
inst✝ : Module R M₂
Q₁ : QuadraticForm R M₁
Q₂ : QuadraticForm R M₂
h : ∀ (a : M₁) (b : M₂), ↑Q₁ a + ↑Q₂ b = 0 → a = 0 ∧ b = 0
x : M₂
hx : ↑Q₂ x = 0
⊢ ↑Q₁ 0 + ↑Q₂ x = 0