Theorem: _private.Mathlib.NumberTheory.NumberField.House.0.NumberField.house.ξ_ne_0
File: Mathlib/NumberTheory/NumberField/House.lean

Proof steps:
state_before: K : Type u_1
inst✝⁴ : Field K
inst✝³ : NumberField K
inst✝² : DecidableEq (K →+* ℂ)
α : Type u_2
β : Type u_3
inst✝¹ : Fintype α
inst✝ : Fintype β
a : Matrix α β (𝓞 K)
ha : a ≠ 0
p q : ℕ
cardα : Fintype.card α = p
cardβ : Fintype.card β = q
h0p : 0 < p
hpq : p < q
x : β × (K →+* ℂ) → ℤ
hxl : x ≠ 0
hmulvec0 : NumberField.house.asiegel K a *ᵥ x = 0
hxbound : ‖x‖ ≤ (↑q * ↑(finrank ℚ K) * ‖NumberField.house.asiegel K a‖) ^ (↑p / (↑q - ↑p))
⊢ NumberField.house.ξ K x ≠ 0
state_after: K : Type u_1
inst✝⁴ : Field K
inst✝³ : NumberField K
inst✝² : DecidableEq (K →+* ℂ)
α : Type u_2
β : Type u_3
inst✝¹ : Fintype α
inst✝ : Fintype β
a : Matrix α β (𝓞 K)
ha : a ≠ 0
p q : ℕ
cardα : Fintype.card α = p
cardβ : Fintype.card β = q
h0p : 0 < p
hpq : p < q
x : β × (K →+* ℂ) → ℤ
hxl : x ≠ 0
hmulvec0 : NumberField.house.asiegel K a *ᵥ x = 0
hxbound : ‖x‖ ≤ (↑q * ↑(finrank ℚ K) * ‖NumberField.house.asiegel K a‖) ^ (↑p / (↑q - ↑p))
H : NumberField.house.ξ K x = 0
⊢ False
tactic: intro H
state_before: K : Type u_1
inst✝⁴ : Field K
inst✝³ : NumberField K
inst✝² : DecidableEq (K →+* ℂ)
α : Type u_2
β : Type u_3
inst✝¹ : Fintype α
inst✝ : Fintype β
a : Matrix α β (𝓞 K)
ha : a ≠ 0
p q : ℕ
cardα : Fintype.card α = p
cardβ : Fintype.card β = q
h0p : 0 < p
hpq : p < q
x : β × (K →+* ℂ) → ℤ
hxl : x ≠ 0
hmulvec0 : NumberField.house.asiegel K a *ᵥ x = 0
hxbound : ‖x‖ ≤ (↑q * ↑(finrank ℚ K) * ‖NumberField.house.asiegel K a‖) ^ (↑p / (↑q - ↑p))
H : NumberField.house.ξ K x = 0
⊢ False
state_after: K : Type u_1
inst✝⁴ : Field K
inst✝³ : NumberField K
inst✝² : DecidableEq (K →+* ℂ)
α : Type u_2
β : Type u_3
inst✝¹ : Fintype α
inst✝ : Fintype β
a : Matrix α β (𝓞 K)
ha : a ≠ 0
p q : ℕ
cardα : Fintype.card α = p
cardβ : Fintype.card β = q
h0p : 0 < p
hpq : p < q
x : β × (K →+* ℂ) → ℤ
hxl : x ≠ 0
hmulvec0 : NumberField.house.asiegel K a *ᵥ x = 0
hxbound : ‖x‖ ≤ (↑q * ↑(finrank ℚ K) * ‖NumberField.house.asiegel K a‖) ^ (↑p / (↑q - ↑p))
H : NumberField.house.ξ K x = 0
⊢ x = 0
tactic: apply hxl
state_before: K : Type u_1
inst✝⁴ : Field K
inst✝³ : NumberField K
inst✝² : DecidableEq (K →+* ℂ)
α : Type u_2
β : Type u_3
inst✝¹ : Fintype α
inst✝ : Fintype β
a : Matrix α β (𝓞 K)
ha : a ≠ 0
p q : ℕ
cardα : Fintype.card α = p
cardβ : Fintype.card β = q
h0p : 0 < p
hpq : p < q
x : β × (K →+* ℂ) → ℤ
hxl : x ≠ 0
hmulvec0 : NumberField.house.asiegel K a *ᵥ x = 0
hxbound : ‖x‖ ≤ (↑q * ↑(finrank ℚ K) * ‖NumberField.house.asiegel K a‖) ^ (↑p / (↑q - ↑p))
H : NumberField.house.ξ K x = 0
⊢ x = 0
state_after: case h.mk
K : Type u_1
inst✝⁴ : Field K
inst✝³ : NumberField K
inst✝² : DecidableEq (K →+* ℂ)
α : Type u_2
β : Type u_3
inst✝¹ : Fintype α
inst✝ : Fintype β
a : Matrix α β (𝓞 K)
ha : a ≠ 0
p q : ℕ
cardα : Fintype.card α = p
cardβ : Fintype.card β = q
h0p : 0 < p
hpq : p < q
x : β × (K →+* ℂ) → ℤ
hxl : x ≠ 0
hmulvec0 : NumberField.house.asiegel K a *ᵥ x = 0
hxbound : ‖x‖ ≤ (↑q * ↑(finrank ℚ K) * ‖NumberField.house.asiegel K a‖) ^ (↑p / (↑q - ↑p))
H : NumberField.house.ξ K x = 0
l : β
r : K →+* ℂ
⊢ x (l, r) = 0 (l, r)
tactic: ext ⟨l, r⟩
state_before: case h.mk
K : Type u_1
inst✝⁴ : Field K
inst✝³ : NumberField K
inst✝² : DecidableEq (K →+* ℂ)
α : Type u_2
β : Type u_3
inst✝¹ : Fintype α
inst✝ : Fintype β
a : Matrix α β (𝓞 K)
ha : a ≠ 0
p q : ℕ
cardα : Fintype.card α = p
cardβ : Fintype.card β = q
h0p : 0 < p
hpq : p < q
x : β × (K →+* ℂ) → ℤ
hxl : x ≠ 0
hmulvec0 : NumberField.house.asiegel K a *ᵥ x = 0
hxbound : ‖x‖ ≤ (↑q * ↑(finrank ℚ K) * ‖NumberField.house.asiegel K a‖) ^ (↑p / (↑q - ↑p))
H : NumberField.house.ξ K x = 0
l : β
r : K →+* ℂ
⊢ x (l, r) = 0 (l, r)
state_after: case h.mk
K : Type u_1
inst✝⁴ : Field K
inst✝³ : NumberField K
inst✝² : DecidableEq (K →+* ℂ)
α : Type u_2
β : Type u_3
inst✝¹ : Fintype α
inst✝ : Fintype β
a : Matrix α β (𝓞 K)
ha : a ≠ 0
p q : ℕ
cardα : Fintype.card α = p
cardβ : Fintype.card β = q
h0p : 0 < p
hpq : p < q
x : β × (K →+* ℂ) → ℤ
hxl : x ≠ 0
hmulvec0 : NumberField.house.asiegel K a *ᵥ x = 0
hxbound : ‖x‖ ≤ (↑q * ↑(finrank ℚ K) * ‖NumberField.house.asiegel K a‖) ^ (↑p / (↑q - ↑p))
H : ∀ (a : β), NumberField.house.ξ K x a = 0 a
l : β
r : K →+* ℂ
⊢ x (l, r) = 0 (l, r)
tactic: rw [Function.funext_iff] at H
state_before: case h.mk
K : Type u_1
inst✝⁴ : Field K
inst✝³ : NumberField K
inst✝² : DecidableEq (K →+* ℂ)
α : Type u_2
β : Type u_3
inst✝¹ : Fintype α
inst✝ : Fintype β
a : Matrix α β (𝓞 K)
ha : a ≠ 0
p q : ℕ
cardα : Fintype.card α = p
cardβ : Fintype.card β = q
h0p : 0 < p
hpq : p < q
x : β × (K →+* ℂ) → ℤ
hxl : x ≠ 0
hmulvec0 : NumberField.house.asiegel K a *ᵥ x = 0
hxbound : ‖x‖ ≤ (↑q * ↑(finrank ℚ K) * ‖NumberField.house.asiegel K a‖) ^ (↑p / (↑q - ↑p))
H : ∀ (a : β), NumberField.house.ξ K x a = 0 a
l : β
r : K →+* ℂ
⊢ x (l, r) = 0 (l, r)
state_after: case h.mk
K : Type u_1
inst✝⁴ : Field K
inst✝³ : NumberField K
inst✝² : DecidableEq (K →+* ℂ)
α : Type u_2
β : Type u_3
inst✝¹ : Fintype α
inst✝ : Fintype β
a : Matrix α β (𝓞 K)
ha : a ≠ 0
p q : ℕ
cardα : Fintype.card α = p
cardβ : Fintype.card β = q
h0p : 0 < p
hpq : p < q
x : β × (K →+* ℂ) → ℤ
hxl : x ≠ 0
hmulvec0 : NumberField.house.asiegel K a *ᵥ x = 0
hxbound : ‖x‖ ≤ (↑q * ↑(finrank ℚ K) * ‖NumberField.house.asiegel K a‖) ^ (↑p / (↑q - ↑p))
H : ∀ (a : β), NumberField.house.ξ K x a = 0 a
l : β
r : K →+* ℂ
hblin : LinearIndependent ℤ ⇑(NumberField.house.newBasis K)
⊢ x (l, r) = 0 (l, r)
tactic: have hblin := Basis.linearIndependent (newBasis K)
state_before: case h.mk
K : Type u_1
inst✝⁴ : Field K
inst✝³ : NumberField K
inst✝² : DecidableEq (K →+* ℂ)
α : Type u_2
β : Type u_3
inst✝¹ : Fintype α
inst✝ : Fintype β
a : Matrix α β (𝓞 K)
ha : a ≠ 0
p q : ℕ
cardα : Fintype.card α = p
cardβ : Fintype.card β = q
h0p : 0 < p
hpq : p < q
x : β × (K →+* ℂ) → ℤ
hxl : x ≠ 0
hmulvec0 : NumberField.house.asiegel K a *ᵥ x = 0
hxbound : ‖x‖ ≤ (↑q * ↑(finrank ℚ K) * ‖NumberField.house.asiegel K a‖) ^ (↑p / (↑q - ↑p))
H : ∀ (a : β), NumberField.house.ξ K x a = 0 a
l : β
r : K →+* ℂ
hblin : LinearIndependent ℤ ⇑(NumberField.house.newBasis K)
⊢ x (l, r) = 0 (l, r)
state_after: case h.mk
K : Type u_1
inst✝⁴ : Field K
inst✝³ : NumberField K
inst✝² : DecidableEq (K →+* ℂ)
α : Type u_2
β : Type u_3
inst✝¹ : Fintype α
inst✝ : Fintype β
a : Matrix α β (𝓞 K)
ha : a ≠ 0
p q : ℕ
cardα : Fintype.card α = p
cardβ : Fintype.card β = q
h0p : 0 < p
hpq : p < q
x : β × (K →+* ℂ) → ℤ
hxl : x ≠ 0
hmulvec0 : NumberField.house.asiegel K a *ᵥ x = 0
hxbound : ‖x‖ ≤ (↑q * ↑(finrank ℚ K) * ‖NumberField.house.asiegel K a‖) ^ (↑p / (↑q - ↑p))
H : ∀ (a : β), NumberField.house.ξ K x a = 0 a
l : β
r : K →+* ℂ
hblin : ∀ (g : (K →+* ℂ) → ℤ), ∑ x : K →+* ℂ, ↑(g x) * (NumberField.house.newBasis K) x = 0 → ∀ (i : K →+* ℂ), g i = 0
⊢ x (l, r) = 0 (l, r)
tactic: simp only [zsmul_eq_mul, Fintype.linearIndependent_iff] at hblin
state_before: case h.mk
K : Type u_1
inst✝⁴ : Field K
inst✝³ : NumberField K
inst✝² : DecidableEq (K →+* ℂ)
α : Type u_2
β : Type u_3
inst✝¹ : Fintype α
inst✝ : Fintype β
a : Matrix α β (𝓞 K)
ha : a ≠ 0
p q : ℕ
cardα : Fintype.card α = p
cardβ : Fintype.card β = q
h0p : 0 < p
hpq : p < q
x : β × (K →+* ℂ) → ℤ
hxl : x ≠ 0
hmulvec0 : NumberField.house.asiegel K a *ᵥ x = 0
hxbound : ‖x‖ ≤ (↑q * ↑(finrank ℚ K) * ‖NumberField.house.asiegel K a‖) ^ (↑p / (↑q - ↑p))
H : ∀ (a : β), NumberField.house.ξ K x a = 0 a
l : β
r : K →+* ℂ
hblin : ∀ (g : (K →+* ℂ) → ℤ), ∑ x : K →+* ℂ, ↑(g x) * (NumberField.house.newBasis K) x = 0 → ∀ (i : K →+* ℂ), g i = 0
⊢ x (l, r) = 0 (l, r)
state_after: no goals
tactic: exact hblin (fun r ↦ x (l,r)) (H _) r