internlm/Lean-Github huggingface dataset:
Theorem: lh_pow_free'
Proof state before:
case neg.intro.intro
p : ℕ+
K : Type u_1
inst✝¹⁵ : Field K
inst✝¹⁴ : NumberField K
k : Type u_2
inst✝¹³ : Field k
inst✝¹² : NumberField k
hp : (↑p).Prime
G : Type u_3
H : Type u_4
inst✝¹¹ : AddCommGroup G
inst✝¹⁰ : CommGroup H
inst✝⁹ : Fintype H
hCard : Fintype.card H = ↑p
σ✝ : H
hσ✝ : Subgroup.zpowers σ✝ = ⊤
r✝ : ℕ
inst✝⁸ : DistribMulAction H G
inst✝⁷ : Module.Free ℤ G
inst✝⁶ : Module.Finite ℤ G
hf : finrank ℤ G = r✝ * (↑p - 1)
inst✝⁵ : Algebra k K
inst✝⁴ : IsGalois k K
inst✝³ : FiniteDimensional k K
inst✝² : IsUnramifiedAtInfinitePlaces k K
hKL : finrank k K = ↑p
σ : K ≃ₐ[k] K
hσ : ∀ (x : K ≃ₐ[k] K), x ∈ Subgroup.zpowers σ
M : Type u_5
inst✝¹ : CommGroup M
inst✝ : Module.Finite ℤ (Additive M)
ζ : M
hk : ∀ (ε : M) (n : ℕ), ε ^ ↑p ^ n = 1 → ∃ i, ζ ^ i = ε
r : ℕ
η : Fin (r + 1) → Additive M
hr : finrank ℤ (Additive M) < r
a₁ : ℤ
ι₁ : Fin r → ℤ
i₁ : Fin r
e₁ : ∑ i : Fin r, ι₁ i • (η ∘ Fin.castSucc) i = a₁ • Additive.ofMul ζ
hi₁ : ¬↑↑p ∣ ι₁ i₁
a₂ : ℤ
ι₂ : Fin r → ℤ
i₂ : Fin r
e₂ : ∑ i : Fin r, ι₂ i • (η ∘ i₁.castSucc.succAbove) i = a₂ • Additive.ofMul ζ
hi₂ : ¬↑↑p ∣ ι₂ i₂
hζ' : ¬ζ = 1
ha₁ : ¬↑↑p ∣ a₁
ha₂ : ¬↑↑p ∣ a₂
α₁ β₁ : ℤ
h₁ : α₁ * ↑↑p + β₁ * a₁ = 1
⊢ ∃ a ι i, ∑ i : Fin (r + 1), ι i • η i = (a * ↑↑p) • Additive.ofMul ζ ∧ ¬↑↑p ∣ ι i ∧ (ζ = 1 → ↑i ≠ r + 1 - 1)
Tactic:
obtain ⟨α₂, β₂, h₂⟩ := (Nat.prime_iff_prime_int.mp hp).coprime_iff_not_dvd.mpr ha₂
Proof state after:
case neg.intro.intro.intro.intro
p : ℕ+
K : Type u_1
inst✝¹⁵ : Field K
inst✝¹⁴ : NumberField K
k : Type u_2
inst✝¹³ : Field k
inst✝¹² : NumberField k
hp : (↑p).Prime
G : Type u_3
H : Type u_4
inst✝¹¹ : AddCommGroup G
inst✝¹⁰ : CommGroup H
inst✝⁹ : Fintype H
hCard : Fintype.card H = ↑p
σ✝ : H
hσ✝ : Subgroup.zpowers σ✝ = ⊤
r✝ : ℕ
inst✝⁸ : DistribMulAction H G
inst✝⁷ : Module.Free ℤ G
inst✝⁶ : Module.Finite ℤ G
hf : finrank ℤ G = r✝ * (↑p - 1)
inst✝⁵ : Algebra k K
inst✝⁴ : IsGalois k K
inst✝³ : FiniteDimensional k K
inst✝² : IsUnramifiedAtInfinitePlaces k K
hKL : finrank k K = ↑p
σ : K ≃ₐ[k] K
hσ : ∀ (x : K ≃ₐ[k] K), x ∈ Subgroup.zpowers σ
M : Type u_5
inst✝¹ : CommGroup M
inst✝ : Module.Finite ℤ (Additive M)
ζ : M
hk : ∀ (ε : M) (n : ℕ), ε ^ ↑p ^ n = 1 → ∃ i, ζ ^ i = ε
r : ℕ
η : Fin (r + 1) → Additive M
hr : finrank ℤ (Additive M) < r
a₁ : ℤ
ι₁ : Fin r → ℤ
i₁ : Fin r
e₁ : ∑ i : Fin r, ι₁ i • (η ∘ Fin.castSucc) i = a₁ • Additive.ofMul ζ
hi₁ : ¬↑↑p ∣ ι₁ i₁
a₂ : ℤ
ι₂ : Fin r → ℤ
i₂ : Fin r
e₂ : ∑ i : Fin r, ι₂ i • (η ∘ i₁.castSucc.succAbove) i = a₂ • Additive.ofMul ζ
hi₂ : ¬↑↑p ∣ ι₂ i₂
hζ' : ¬ζ = 1
ha₁ : ¬↑↑p ∣ a₁
ha₂ : ¬↑↑p ∣ a₂
α₁ β₁ : ℤ
h₁ : α₁ * ↑↑p + β₁ * a₁ = 1
α₂ β₂ : ℤ
h₂ : α₂ * ↑↑p + β₂ * a₂ = 1
⊢ ∃ a ι i, ∑ i : Fin (r + 1), ι i • η i = (a * ↑↑p) • Additive.ofMul ζ ∧ ¬↑↑p ∣ ι i ∧ (ζ = 1 → ↑i ≠ r + 1 - 1)
Theorem: lh_pow_free'
Proof state before:
case zero
p : ℕ+
K : Type u_1
inst✝¹⁵ : Field K
inst✝¹⁴ : NumberField K
k : Type u_2
inst✝¹³ : Field k
inst✝¹² : NumberField k
hp : (↑p).Prime
G : Type u_3
H : Type u_4
inst✝¹¹ : AddCommGroup G
inst✝¹⁰ : CommGroup H
inst✝⁹ : Fintype H
hCard : Fintype.card H = ↑p
σ✝ : H
hσ✝ : Subgroup.zpowers σ✝ = ⊤
r : ℕ
inst✝⁸ : DistribMulAction H G
inst✝⁷ : Module.Free ℤ G
inst✝⁶ : Module.Finite ℤ G
hf : finrank ℤ G = r * (↑p - 1)
inst✝⁵ : Algebra k K
inst✝⁴ : IsGalois k K
inst✝³ : FiniteDimensional k K
inst✝² : IsUnramifiedAtInfinitePlaces k K
hKL : finrank k K = ↑p
σ : K ≃ₐ[k] K
hσ : ∀ (x : K ≃ₐ[k] K), x ∈ Subgroup.zpowers σ
M : Type u_5
inst✝¹ : CommGroup M
inst✝ : Module.Finite ℤ (Additive M)
ζ : M
hk : ∀ (ε : M) (n : ℕ), ε ^ ↑p ^ n = 1 → ∃ i, ζ ^ i = ε
hr : finrank ℤ (Additive M) + 1 < 0
η : Fin 0 → Additive M
⊢ ∃ a ι i, ∑ i : Fin 0, ι i • η i = (a * ↑↑p) • Additive.ofMul ζ ∧ ¬↑↑p ∣ ι i ∧ (ζ = 1 → ↑i ≠ 0 - 1)
Tactic:
exact (not_lt_zero' hr).elim
Proof state after:
no goals
Theorem: lh_pow_free'
Proof state before:
p : ℕ+
K : Type u_1
inst✝¹⁵ : Field K
inst✝¹⁴ : NumberField K
k : Type u_2
inst✝¹³ : Field k
inst✝¹² : NumberField k
hp : (↑p).Prime
G : Type u_3
H : Type u_4
inst✝¹¹ : AddCommGroup G
inst✝¹⁰ : CommGroup H
inst✝⁹ : Fintype H
hCard : Fintype.card H = ↑p
σ✝ : H
hσ✝ : Subgroup.zpowers σ✝ = ⊤
r✝ : ℕ
inst✝⁸ : DistribMulAction H G
inst✝⁷ : Module.Free ℤ G
inst✝⁶ : Module.Finite ℤ G
hf : finrank ℤ G = r✝ * (↑p - 1)
inst✝⁵ : Algebra k K
inst✝⁴ : IsGalois k K
inst✝³ : FiniteDimensional k K
inst✝² : IsUnramifiedAtInfinitePlaces k K
hKL : finrank k K = ↑p
σ : K ≃ₐ[k] K
hσ : ∀ (x : K ≃ₐ[k] K), x ∈ Subgroup.zpowers σ
M : Type u_5
inst✝¹ : CommGroup M
inst✝ : Module.Finite ℤ (Additive M)
ζ : M
hk : ∀ (ε : M) (n : ℕ), ε ^ ↑p ^ n = 1 → ∃ i, ζ ^ i = ε
r : ℕ
η : Fin (r + 1) → Additive M
hr : finrank ℤ (Additive M) < r
a₁ : ℤ
ι₁ : Fin r → ℤ
i₁ : Fin r
e₁ : ∑ i : Fin r, ι₁ i • (η ∘ Fin.castSucc) i = a₁ • Additive.ofMul ζ
hi₁ : ¬↑↑p ∣ ι₁ i₁
a₂ : ℤ
ι₂ : Fin r → ℤ
i₂ : Fin r
e₂ : ∑ i : Fin r, ι₂ i • (η ∘ i₁.castSucc.succAbove) i = a₂ • Additive.ofMul ζ
hi₂ : ¬↑↑p ∣ ι₂ i₂
hζ' : ζ = 1
⊢ ¬↑↑p ∣ Function.extend Fin.castSucc ι₁ 0 i₁.castSucc
Tactic:
rwa [(Fin.castSucc_injective r).extend_apply]
Proof state after:
no goals
Theorem: lh_pow_free'
Proof state before:
case pos.refine_1
p : ℕ+
K : Type u_1
inst✝¹⁵ : Field K
inst✝¹⁴ : NumberField K
k : Type u_2
inst✝¹³ : Field k
inst✝¹² : NumberField k
hp : (↑p).Prime
G : Type u_3
H : Type u_4
inst✝¹¹ : AddCommGroup G
inst✝¹⁰ : CommGroup H
inst✝⁹ : Fintype H
hCard : Fintype.card H = ↑p
σ✝ : H
hσ✝ : Subgroup.zpowers σ✝ = ⊤
r✝ : ℕ
inst✝⁸ : DistribMulAction H G
inst✝⁷ : Module.Free ℤ G
inst✝⁶ : Module.Finite ℤ G
hf : finrank ℤ G = r✝ * (↑p - 1)
inst✝⁵ : Algebra k K
inst✝⁴ : IsGalois k K
inst✝³ : FiniteDimensional k K
inst✝² : IsUnramifiedAtInfinitePlaces k K
hKL : finrank k K = ↑p
σ : K ≃ₐ[k] K
hσ : ∀ (x : K ≃ₐ[k] K), x ∈ Subgroup.zpowers σ
M : Type u_5
inst✝¹ : CommGroup M
inst✝ : Module.Finite ℤ (Additive M)
ζ : M
hk : ∀ (ε : M) (n : ℕ), ε ^ ↑p ^ n = 1 → ∃ i, ζ ^ i = ε
r : ℕ
η : Fin (r + 1) → Additive M
hr : finrank ℤ (Additive M) < r
a₁ : ℤ
ι₁ : Fin r → ℤ
i₁ : Fin r
e₁ : ∑ i : Fin r, ι₁ i • (η ∘ Fin.castSucc) i = a₁ • Additive.ofMul ζ
hi₁ : ¬↑↑p ∣ ι₁ i₁
a₂ : ℤ
ι₂ : Fin r → ℤ
i₂ : Fin r
e₂ : ∑ i : Fin r, ι₂ i • (η ∘ i₁.castSucc.succAbove) i = a₂ • Additive.ofMul ζ
hi₂ : ¬↑↑p ∣ ι₂ i₂
hζ' : ζ = 1
⊢ ∑ i : Fin (r + 1), Function.extend Fin.castSucc ι₁ 0 i • η i = (1 * ↑↑p) • Additive.ofMul ζ
Tactic:
subst hζ'
Proof state after:
case pos.refine_1
p : ℕ+
K : Type u_1
inst✝¹⁵ : Field K
inst✝¹⁴ : NumberField K
k : Type u_2
inst✝¹³ : Field k
inst✝¹² : NumberField k
hp : (↑p).Prime
G : Type u_3
H : Type u_4
inst✝¹¹ : AddCommGroup G
inst✝¹⁰ : CommGroup H
inst✝⁹ : Fintype H
hCard : Fintype.card H = ↑p
σ✝ : H
hσ✝ : Subgroup.zpowers σ✝ = ⊤
r✝ : ℕ
inst✝⁸ : DistribMulAction H G
inst✝⁷ : Module.Free ℤ G
inst✝⁶ : Module.Finite ℤ G
hf : finrank ℤ G = r✝ * (↑p - 1)
inst✝⁵ : Algebra k K
inst✝⁴ : IsGalois k K
inst✝³ : FiniteDimensional k K
inst✝² : IsUnramifiedAtInfinitePlaces k K
hKL : finrank k K = ↑p
σ : K ≃ₐ[k] K
hσ : ∀ (x : K ≃ₐ[k] K), x ∈ Subgroup.zpowers σ
M : Type u_5
inst✝¹ : CommGroup M
inst✝ : Module.Finite ℤ (Additive M)
r : ℕ
η : Fin (r + 1) → Additive M
hr : finrank ℤ (Additive M) < r
a₁ : ℤ
ι₁ : Fin r → ℤ
i₁ : Fin r
hi₁ : ¬↑↑p ∣ ι₁ i₁
a₂ : ℤ
ι₂ : Fin r → ℤ
i₂ : Fin r
hi₂ : ¬↑↑p ∣ ι₂ i₂
hk : ∀ (ε : M) (n : ℕ), ε ^ ↑p ^ n = 1 → ∃ i, 1 ^ i = ε
e₁ : ∑ i : Fin r, ι₁ i • (η ∘ Fin.castSucc) i = a₁ • Additive.ofMul 1
e₂ : ∑ i : Fin r, ι₂ i • (η ∘ i₁.castSucc.succAbove) i = a₂ • Additive.ofMul 1
⊢ ∑ i : Fin (r + 1), Function.extend Fin.castSucc ι₁ 0 i • η i = (1 * ↑↑p) • Additive.ofMul 1
Theorem: lh_pow_free'
Proof state before:
case pos.refine_1
p : ℕ+
K : Type u_1
inst✝¹⁵ : Field K
inst✝¹⁴ : NumberField K
k : Type u_2
inst✝¹³ : Field k
inst✝¹² : NumberField k
hp : (↑p).Prime
G : Type u_3
H : Type u_4
inst✝¹¹ : AddCommGroup G
inst✝¹⁰ : CommGroup H
inst✝⁹ : Fintype H
hCard : Fintype.card H = ↑p
σ✝ : H
hσ✝ : Subgroup.zpowers σ✝ = ⊤
r✝ : ℕ
inst✝⁸ : DistribMulAction H G
inst✝⁷ : Module.Free ℤ G
inst✝⁶ : Module.Finite ℤ G
hf : finrank ℤ G = r✝ * (↑p - 1)
inst✝⁵ : Algebra k K
inst✝⁴ : IsGalois k K
inst✝³ : FiniteDimensional k K
inst✝² : IsUnramifiedAtInfinitePlaces k K
hKL : finrank k K = ↑p
σ : K ≃ₐ[k] K
hσ : ∀ (x : K ≃ₐ[k] K), x ∈ Subgroup.zpowers σ
M : Type u_5
inst✝¹ : CommGroup M
inst✝ : Module.Finite ℤ (Additive M)
r : ℕ
η : Fin (r + 1) → Additive M
hr : finrank ℤ (Additive M) < r
a₁ : ℤ
ι₁ : Fin r → ℤ
i₁ : Fin r
hi₁ : ¬↑↑p ∣ ι₁ i₁
a₂ : ℤ
ι₂ : Fin r → ℤ
i₂ : Fin r
hi₂ : ¬↑↑p ∣ ι₂ i₂
hk : ∀ (ε : M) (n : ℕ), ε ^ ↑p ^ n = 1 → ∃ i, 1 ^ i = ε
e₁ : ∑ i : Fin r, ι₁ i • (η ∘ Fin.castSucc) i = a₁ • Additive.ofMul 1
e₂ : ∑ i : Fin r, ι₂ i • (η ∘ i₁.castSucc.succAbove) i = a₂ • Additive.ofMul 1
⊢ ∑ i : Fin (r + 1), Function.extend Fin.castSucc ι₁ 0 i • η i = (1 * ↑↑p) • Additive.ofMul 1
Tactic:
simp only [Function.comp_apply, ofMul_one, smul_zero] at e₁ ⊢
Proof state after:
case pos.refine_1
p : ℕ+
K : Type u_1
inst✝¹⁵ : Field K
inst✝¹⁴ : NumberField K
k : Type u_2
inst✝¹³ : Field k
inst✝¹² : NumberField k
hp : (↑p).Prime
G : Type u_3
H : Type u_4
inst✝¹¹ : AddCommGroup G
inst✝¹⁰ : CommGroup H
inst✝⁹ : Fintype H
hCard : Fintype.card H = ↑p
σ✝ : H
hσ✝ : Subgroup.zpowers σ✝ = ⊤
r✝ : ℕ
inst✝⁸ : DistribMulAction H G
inst✝⁷ : Module.Free ℤ G
inst✝⁶ : Module.Finite ℤ G
hf : finrank ℤ G = r✝ * (↑p - 1)
inst✝⁵ : Algebra k K
inst✝⁴ : IsGalois k K
inst✝³ : FiniteDimensional k K
inst✝² : IsUnramifiedAtInfinitePlaces k K
hKL : finrank k K = ↑p
σ : K ≃ₐ[k] K
hσ : ∀ (x : K ≃ₐ[k] K), x ∈ Subgroup.zpowers σ
M : Type u_5
inst✝¹ : CommGroup M
inst✝ : Module.Finite ℤ (Additive M)
r : ℕ
η : Fin (r + 1) → Additive M
hr : finrank ℤ (Additive M) < r
a₁ : ℤ
ι₁ : Fin r → ℤ
i₁ : Fin r
hi₁ : ¬↑↑p ∣ ι₁ i₁
a₂ : ℤ
ι₂ : Fin r → ℤ
i₂ : Fin r
hi₂ : ¬↑↑p ∣ ι₂ i₂
hk : ∀ (ε : M) (n : ℕ), ε ^ ↑p ^ n = 1 → ∃ i, 1 ^ i = ε
e₂ : ∑ i : Fin r, ι₂ i • (η ∘ i₁.castSucc.succAbove) i = a₂ • Additive.ofMul 1
e₁ : ∑ x : Fin r, ι₁ x • η x.castSucc = 0
⊢ ∑ i : Fin (r + 1), Function.extend Fin.castSucc ι₁ 0 i • η i = 0
Theorem: lh_pow_free'
Proof state before:
case pos.refine_1
p : ℕ+
K : Type u_1
inst✝¹⁵ : Field K
inst✝¹⁴ : NumberField K
k : Type u_2
inst✝¹³ : Field k
inst✝¹² : NumberField k
hp : (↑p).Prime
G : Type u_3
H : Type u_4
inst✝¹¹ : AddCommGroup G
inst✝¹⁰ : CommGroup H
inst✝⁹ : Fintype H
hCard : Fintype.card H = ↑p
σ✝ : H
hσ✝ : Subgroup.zpowers σ✝ = ⊤
r✝ : ℕ
inst✝⁸ : DistribMulAction H G
inst✝⁷ : Module.Free ℤ G
inst✝⁶ : Module.Finite ℤ G
hf : finrank ℤ G = r✝ * (↑p - 1)
inst✝⁵ : Algebra k K
inst✝⁴ : IsGalois k K
inst✝³ : FiniteDimensional k K
inst✝² : IsUnramifiedAtInfinitePlaces k K
hKL : finrank k K = ↑p
σ : K ≃ₐ[k] K
hσ : ∀ (x : K ≃ₐ[k] K), x ∈ Subgroup.zpowers σ
M : Type u_5
inst✝¹ : CommGroup M
inst✝ : Module.Finite ℤ (Additive M)
r : ℕ
η : Fin (r + 1) → Additive M
hr : finrank ℤ (Additive M) < r
a₁ : ℤ
ι₁ : Fin r → ℤ
i₁ : Fin r
hi₁ : ¬↑↑p ∣ ι₁ i₁
a₂ : ℤ
ι₂ : Fin r → ℤ
i₂ : Fin r
hi₂ : ¬↑↑p ∣ ι₂ i₂
hk : ∀ (ε : M) (n : ℕ), ε ^ ↑p ^ n = 1 → ∃ i, 1 ^ i = ε
e₂ : ∑ i : Fin r, ι₂ i • (η ∘ i₁.castSucc.succAbove) i = a₂ • Additive.ofMul 1
e₁ : ∑ x : Fin r, ι₁ x • η x.castSucc = 0
⊢ ∑ i : Fin (r + 1), Function.extend Fin.castSucc ι₁ 0 i • η i = 0
Tactic:
rw [← e₁]
Proof state after:
case pos.refine_1
p : ℕ+
K : Type u_1
inst✝¹⁵ : Field K
inst✝¹⁴ : NumberField K
k : Type u_2
inst✝¹³ : Field k
inst✝¹² : NumberField k
hp : (↑p).Prime
G : Type u_3
H : Type u_4
inst✝¹¹ : AddCommGroup G
inst✝¹⁰ : CommGroup H
inst✝⁹ : Fintype H
hCard : Fintype.card H = ↑p
σ✝ : H
hσ✝ : Subgroup.zpowers σ✝ = ⊤
r✝ : ℕ
inst✝⁸ : DistribMulAction H G
inst✝⁷ : Module.Free ℤ G
inst✝⁶ : Module.Finite ℤ G
hf : finrank ℤ G = r✝ * (↑p - 1)
inst✝⁵ : Algebra k K
inst✝⁴ : IsGalois k K
inst✝³ : FiniteDimensional k K
inst✝² : IsUnramifiedAtInfinitePlaces k K
hKL : finrank k K = ↑p
σ : K ≃ₐ[k] K
hσ : ∀ (x : K ≃ₐ[k] K), x ∈ Subgroup.zpowers σ
M : Type u_5
inst✝¹ : CommGroup M
inst✝ : Module.Finite ℤ (Additive M)
r : ℕ
η : Fin (r + 1) → Additive M
hr : finrank ℤ (Additive M) < r
a₁ : ℤ
ι₁ : Fin r → ℤ
i₁ : Fin r
hi₁ : ¬↑↑p ∣ ι₁ i₁
a₂ : ℤ
ι₂ : Fin r → ℤ
i₂ : Fin r
hi₂ : ¬↑↑p ∣ ι₂ i₂
hk : ∀ (ε : M) (n : ℕ), ε ^ ↑p ^ n = 1 → ∃ i, 1 ^ i = ε
e₂ : ∑ i : Fin r, ι₂ i • (η ∘ i₁.castSucc.succAbove) i = a₂ • Additive.ofMul 1
e₁ : ∑ x : Fin r, ι₁ x • η x.castSucc = 0
⊢ ∑ i : Fin (r + 1), Function.extend Fin.castSucc ι₁ 0 i • η i = ∑ x : Fin r, ι₁ x • η x.castSucc
Theorem: lh_pow_free'
Proof state before:
case pos.refine_1
p : ℕ+
K : Type u_1
inst✝¹⁵ : Field K
inst✝¹⁴ : NumberField K
k : Type u_2
inst✝¹³ : Field k
inst✝¹² : NumberField k
hp : (↑p).Prime
G : Type u_3
H : Type u_4
inst✝¹¹ : AddCommGroup G
inst✝¹⁰ : CommGroup H
inst✝⁹ : Fintype H
hCard : Fintype.card H = ↑p
σ✝ : H
hσ✝ : Subgroup.zpowers σ✝ = ⊤
r✝ : ℕ
inst✝⁸ : DistribMulAction H G
inst✝⁷ : Module.Free ℤ G
inst✝⁶ : Module.Finite ℤ G
hf : finrank ℤ G = r✝ * (↑p - 1)
inst✝⁵ : Algebra k K
inst✝⁴ : IsGalois k K
inst✝³ : FiniteDimensional k K
inst✝² : IsUnramifiedAtInfinitePlaces k K
hKL : finrank k K = ↑p
σ : K ≃ₐ[k] K
hσ : ∀ (x : K ≃ₐ[k] K), x ∈ Subgroup.zpowers σ
M : Type u_5
inst✝¹ : CommGroup M
inst✝ : Module.Finite ℤ (Additive M)
r : ℕ
η : Fin (r + 1) → Additive M
hr : finrank ℤ (Additive M) < r
a₁ : ℤ
ι₁ : Fin r → ℤ
i₁ : Fin r
hi₁ : ¬↑↑p ∣ ι₁ i₁
a₂ : ℤ
ι₂ : Fin r → ℤ
i₂ : Fin r
hi₂ : ¬↑↑p ∣ ι₂ i₂
hk : ∀ (ε : M) (n : ℕ), ε ^ ↑p ^ n = 1 → ∃ i, 1 ^ i = ε
e₂ : ∑ i : Fin r, ι₂ i • (η ∘ i₁.castSucc.succAbove) i = a₂ • Additive.ofMul 1
e₁ : ∑ x : Fin r, ι₁ x • η x.castSucc = 0
⊢ ∑ i : Fin (r + 1), Function.extend Fin.castSucc ι₁ 0 i • η i = ∑ x : Fin r, ι₁ x • η x.castSucc
Tactic:
simp [Fin.sum_univ_castSucc, (Fin.castSucc_injective r).extend_apply,
  (Fin.castSucc_lt_last _).ne]
Proof state after:
no goals
Theorem: lh_pow_free'
Proof state before:
case pos.refine_2
p : ℕ+
K : Type u_1
inst✝¹⁵ : Field K
inst✝¹⁴ : NumberField K
k : Type u_2
inst✝¹³ : Field k
inst✝¹² : NumberField k
hp : (↑p).Prime
G : Type u_3
H : Type u_4
inst✝¹¹ : AddCommGroup G
inst✝¹⁰ : CommGroup H
inst✝⁹ : Fintype H
hCard : Fintype.card H = ↑p
σ✝ : H
hσ✝ : Subgroup.zpowers σ✝ = ⊤
r✝ : ℕ
inst✝⁸ : DistribMulAction H G
inst✝⁷ : Module.Free ℤ G
inst✝⁶ : Module.Finite ℤ G
hf : finrank ℤ G = r✝ * (↑p - 1)
inst✝⁵ : Algebra k K
inst✝⁴ : IsGalois k K
inst✝³ : FiniteDimensional k K
inst✝² : IsUnramifiedAtInfinitePlaces k K
hKL : finrank k K = ↑p
σ : K ≃ₐ[k] K
hσ : ∀ (x : K ≃ₐ[k] K), x ∈ Subgroup.zpowers σ
M : Type u_5
inst✝¹ : CommGroup M
inst✝ : Module.Finite ℤ (Additive M)
ζ : M
hk : ∀ (ε : M) (n : ℕ), ε ^ ↑p ^ n = 1 → ∃ i, ζ ^ i = ε
r : ℕ
η : Fin (r + 1) → Additive M
hr : finrank ℤ (Additive M) < r
a₁ : ℤ
ι₁ : Fin r → ℤ
i₁ : Fin r
e₁ : ∑ i : Fin r, ι₁ i • (η ∘ Fin.castSucc) i = a₁ • Additive.ofMul ζ
hi₁ : ¬↑↑p ∣ ι₁ i₁
a₂ : ℤ
ι₂ : Fin r → ℤ
i₂ : Fin r
e₂ : ∑ i : Fin r, ι₂ i • (η ∘ i₁.castSucc.succAbove) i = a₂ • Additive.ofMul ζ
hi₂ : ¬↑↑p ∣ ι₂ i₂
hζ' : ζ = 1
⊢ ζ = 1 → ↑i₁.castSucc ≠ r + 1 - 1
Tactic:
rintro -
Proof state after:
case pos.refine_2
p : ℕ+
K : Type u_1
inst✝¹⁵ : Field K
inst✝¹⁴ : NumberField K
k : Type u_2
inst✝¹³ : Field k
inst✝¹² : NumberField k
hp : (↑p).Prime
G : Type u_3
H : Type u_4
inst✝¹¹ : AddCommGroup G
inst✝¹⁰ : CommGroup H
inst✝⁹ : Fintype H
hCard : Fintype.card H = ↑p
σ✝ : H
hσ✝ : Subgroup.zpowers σ✝ = ⊤
r✝ : ℕ
inst✝⁸ : DistribMulAction H G
inst✝⁷ : Module.Free ℤ G
inst✝⁶ : Module.Finite ℤ G
hf : finrank ℤ G = r✝ * (↑p - 1)
inst✝⁵ : Algebra k K
inst✝⁴ : IsGalois k K
inst✝³ : FiniteDimensional k K
inst✝² : IsUnramifiedAtInfinitePlaces k K
hKL : finrank k K = ↑p
σ : K ≃ₐ[k] K
hσ : ∀ (x : K ≃ₐ[k] K), x ∈ Subgroup.zpowers σ
M : Type u_5
inst✝¹ : CommGroup M
inst✝ : Module.Finite ℤ (Additive M)
ζ : M
hk : ∀ (ε : M) (n : ℕ), ε ^ ↑p ^ n = 1 → ∃ i, ζ ^ i = ε
r : ℕ
η : Fin (r + 1) → Additive M
hr : finrank ℤ (Additive M) < r
a₁ : ℤ
ι₁ : Fin r → ℤ
i₁ : Fin r
e₁ : ∑ i : Fin r, ι₁ i • (η ∘ Fin.castSucc) i = a₁ • Additive.ofMul ζ
hi₁ : ¬↑↑p ∣ ι₁ i₁
a₂ : ℤ
ι₂ : Fin r → ℤ
i₂ : Fin r
e₂ : ∑ i : Fin r, ι₂ i • (η ∘ i₁.castSucc.succAbove) i = a₂ • Additive.ofMul ζ
hi₂ : ¬↑↑p ∣ ι₂ i₂
hζ' : ζ = 1
⊢ ↑i₁.castSucc ≠ r + 1 - 1
Theorem: lh_pow_free'
Proof state before:
case pos.refine_2
p : ℕ+
K : Type u_1
inst✝¹⁵ : Field K
inst✝¹⁴ : NumberField K
k : Type u_2
inst✝¹³ : Field k
inst✝¹² : NumberField k
hp : (↑p).Prime
G : Type u_3
H : Type u_4
inst✝¹¹ : AddCommGroup G
inst✝¹⁰ : CommGroup H
inst✝⁹ : Fintype H
hCard : Fintype.card H = ↑p
σ✝ : H
hσ✝ : Subgroup.zpowers σ✝ = ⊤
r✝ : ℕ
inst✝⁸ : DistribMulAction H G
inst✝⁷ : Module.Free ℤ G
inst✝⁶ : Module.Finite ℤ G
hf : finrank ℤ G = r✝ * (↑p - 1)
inst✝⁵ : Algebra k K
inst✝⁴ : IsGalois k K
inst✝³ : FiniteDimensional k K
inst✝² : IsUnramifiedAtInfinitePlaces k K
hKL : finrank k K = ↑p
σ : K ≃ₐ[k] K
hσ : ∀ (x : K ≃ₐ[k] K), x ∈ Subgroup.zpowers σ
M : Type u_5
inst✝¹ : CommGroup M
inst✝ : Module.Finite ℤ (Additive M)
ζ : M
hk : ∀ (ε : M) (n : ℕ), ε ^ ↑p ^ n = 1 → ∃ i, ζ ^ i = ε
r : ℕ
η : Fin (r + 1) → Additive M
hr : finrank ℤ (Additive M) < r
a₁ : ℤ
ι₁ : Fin r → ℤ
i₁ : Fin r
e₁ : ∑ i : Fin r, ι₁ i • (η ∘ Fin.castSucc) i = a₁ • Additive.ofMul ζ
hi₁ : ¬↑↑p ∣ ι₁ i₁
a₂ : ℤ
ι₂ : Fin r → ℤ
i₂ : Fin r
e₂ : ∑ i : Fin r, ι₂ i • (η ∘ i₁.castSucc.succAbove) i = a₂ • Additive.ofMul ζ
hi₂ : ¬↑↑p ∣ ι₂ i₂
hζ' : ζ = 1
⊢ ↑i₁.castSucc ≠ r + 1 - 1
Tactic:
simp [(Fin.is_lt _).ne]
Proof state after:
no goals
Theorem: lh_pow_free'
Proof state before:
case pos
p : ℕ+
K : Type u_1
inst✝¹⁵ : Field K
inst✝¹⁴ : NumberField K
k : Type u_2
inst✝¹³ : Field k
inst✝¹² : NumberField k
hp : (↑p).Prime
G : Type u_3
H : Type u_4
inst✝¹¹ : AddCommGroup G
inst✝¹⁰ : CommGroup H
inst✝⁹ : Fintype H
hCard : Fintype.card H = ↑p
σ✝ : H
hσ✝ : Subgroup.zpowers σ✝ = ⊤
r✝ : ℕ
inst✝⁸ : DistribMulAction H G
inst✝⁷ : Module.Free ℤ G
inst✝⁶ : Module.Finite ℤ G
hf : finrank ℤ G = r✝ * (↑p - 1)
inst✝⁵ : Algebra k K
inst✝⁴ : IsGalois k K
inst✝³ : FiniteDimensional k K
inst✝² : IsUnramifiedAtInfinitePlaces k K
hKL : finrank k K = ↑p
σ : K ≃ₐ[k] K
hσ : ∀ (x : K ≃ₐ[k] K), x ∈ Subgroup.zpowers σ
M : Type u_5
inst✝¹ : CommGroup M
inst✝ : Module.Finite ℤ (Additive M)
ζ : M
hk : ∀ (ε : M) (n : ℕ), ε ^ ↑p ^ n = 1 → ∃ i, ζ ^ i = ε
r : ℕ
η : Fin (r + 1) → Additive M
hr : finrank ℤ (Additive M) < r
a₁ : ℤ
ι₁ : Fin r → ℤ
i₁ : Fin r
e₁ : ∑ i : Fin r, ι₁ i • (η ∘ Fin.castSucc) i = a₁ • Additive.ofMul ζ
hi₁ : ¬↑↑p ∣ ι₁ i₁
a₂ : ℤ
ι₂ : Fin r → ℤ
i₂ : Fin r
e₂ : ∑ i : Fin r, ι₂ i • (η ∘ i₁.castSucc.succAbove) i = a₂ • Additive.ofMul ζ
hi₂ : ¬↑↑p ∣ ι₂ i₂
hζ' : ¬ζ = 1
ha₁ : ↑↑p ∣ a₁
⊢ ∃ a ι i, ∑ i : Fin (r + 1), ι i • η i = (a * ↑↑p) • Additive.ofMul ζ ∧ ¬↑↑p ∣ ι i ∧ (ζ = 1 → ↑i ≠ r + 1 - 1)
Tactic:
obtain ⟨b, hb⟩ := ha₁
Proof state after:
case pos.intro
p : ℕ+
K : Type u_1
inst✝¹⁵ : Field K
inst✝¹⁴ : NumberField K
k : Type u_2
inst✝¹³ : Field k
inst✝¹² : NumberField k
hp : (↑p).Prime
G : Type u_3
H : Type u_4
inst✝¹¹ : AddCommGroup G
inst✝¹⁰ : CommGroup H
inst✝⁹ : Fintype H
hCard : Fintype.card H = ↑p
σ✝ : H
hσ✝ : Subgroup.zpowers σ✝ = ⊤
r✝ : ℕ
inst✝⁸ : DistribMulAction H G
inst✝⁷ : Module.Free ℤ G
inst✝⁶ : Module.Finite ℤ G
hf : finrank ℤ G = r✝ * (↑p - 1)
inst✝⁵ : Algebra k K
inst✝⁴ : IsGalois k K
inst✝³ : FiniteDimensional k K
inst✝² : IsUnramifiedAtInfinitePlaces k K
hKL : finrank k K = ↑p
σ : K ≃ₐ[k] K
hσ : ∀ (x : K ≃ₐ[k] K), x ∈ Subgroup.zpowers σ
M : Type u_5
inst✝¹ : CommGroup M
inst✝ : Module.Finite ℤ (Additive M)
ζ : M
hk : ∀ (ε : M) (n : ℕ), ε ^ ↑p ^ n = 1 → ∃ i, ζ ^ i = ε
r : ℕ
η : Fin (r + 1) → Additive M
hr : finrank ℤ (Additive M) < r
a₁ : ℤ
ι₁ : Fin r → ℤ
i₁ : Fin r
e₁ : ∑ i : Fin r, ι₁ i • (η ∘ Fin.castSucc) i = a₁ • Additive.ofMul ζ
hi₁ : ¬↑↑p ∣ ι₁ i₁
a₂ : ℤ
ι₂ : Fin r → ℤ
i₂ : Fin r
e₂ : ∑ i : Fin r, ι₂ i • (η ∘ i₁.castSucc.succAbove) i = a₂ • Additive.ofMul ζ
hi₂ : ¬↑↑p ∣ ι₂ i₂
hζ' : ¬ζ = 1
b : ℤ
hb : a₁ = ↑↑p * b
⊢ ∃ a ι i, ∑ i : Fin (r + 1), ι i • η i = (a * ↑↑p) • Additive.ofMul ζ ∧ ¬↑↑p ∣ ι i ∧ (ζ = 1 → ↑i ≠ r + 1 - 1)
Theorem: lh_pow_free'
Proof state before:
case pos.intro
p : ℕ+
K : Type u_1
inst✝¹⁵ : Field K
inst✝¹⁴ : NumberField K
k : Type u_2
inst✝¹³ : Field k
inst✝¹² : NumberField k
hp : (↑p).Prime
G : Type u_3
H : Type u_4
inst✝¹¹ : AddCommGroup G
inst✝¹⁰ : CommGroup H
inst✝⁹ : Fintype H
hCard : Fintype.card H = ↑p
σ✝ : H
hσ✝ : Subgroup.zpowers σ✝ = ⊤
r✝ : ℕ
inst✝⁸ : DistribMulAction H G
inst✝⁷ : Module.Free ℤ G
inst✝⁶ : Module.Finite ℤ G
hf : finrank ℤ G = r✝ * (↑p - 1)
inst✝⁵ : Algebra k K
inst✝⁴ : IsGalois k K
inst✝³ : FiniteDimensional k K
inst✝² : IsUnramifiedAtInfinitePlaces k K
hKL : finrank k K = ↑p
σ : K ≃ₐ[k] K
hσ : ∀ (x : K ≃ₐ[k] K), x ∈ Subgroup.zpowers σ
M : Type u_5
inst✝¹ : CommGroup M
inst✝ : Module.Finite ℤ (Additive M)
ζ : M
hk : ∀ (ε : M) (n : ℕ), ε ^ ↑p ^ n = 1 → ∃ i, ζ ^ i = ε
r : ℕ
η : Fin (r + 1) → Additive M
hr : finrank ℤ (Additive M) < r
a₁ : ℤ
ι₁ : Fin r → ℤ
i₁ : Fin r
e₁ : ∑ i : Fin r, ι₁ i • (η ∘ Fin.castSucc) i = a₁ • Additive.ofMul ζ
hi₁ : ¬↑↑p ∣ ι₁ i₁
a₂ : ℤ
ι₂ : Fin r → ℤ
i₂ : Fin r
e₂ : ∑ i : Fin r, ι₂ i • (η ∘ i₁.castSucc.succAbove) i = a₂ • Additive.ofMul ζ
hi₂ : ¬↑↑p ∣ ι₂ i₂
hζ' : ¬ζ = 1
b : ℤ
hb : a₁ = ↑↑p * b
⊢ ∃ a ι i, ∑ i : Fin (r + 1), ι i • η i = (a * ↑↑p) • Additive.ofMul ζ ∧ ¬↑↑p ∣ ι i ∧ (ζ = 1 → ↑i ≠ r + 1 - 1)
Tactic:
refine ⟨b, Function.extend Fin.castSucc ι₁ 0, Fin.castSucc i₁, ?_,
  by rwa [(Fin.castSucc_injective r).extend_apply], fun H ↦ (hζ' H).elim⟩
Proof state after:
case pos.intro
p : ℕ+
K : Type u_1
inst✝¹⁵ : Field K
inst✝¹⁴ : NumberField K
k : Type u_2
inst✝¹³ : Field k
inst✝¹² : NumberField k
hp : (↑p).Prime
G : Type u_3
H : Type u_4
inst✝¹¹ : AddCommGroup G
inst✝¹⁰ : CommGroup H
inst✝⁹ : Fintype H
hCard : Fintype.card H = ↑p
σ✝ : H
hσ✝ : Subgroup.zpowers σ✝ = ⊤
r✝ : ℕ
inst✝⁸ : DistribMulAction H G
inst✝⁷ : Module.Free ℤ G
inst✝⁶ : Module.Finite ℤ G
hf : finrank ℤ G = r✝ * (↑p - 1)
inst✝⁵ : Algebra k K
inst✝⁴ : IsGalois k K
inst✝³ : FiniteDimensional k K
inst✝² : IsUnramifiedAtInfinitePlaces k K
hKL : finrank k K = ↑p
σ : K ≃ₐ[k] K
hσ : ∀ (x : K ≃ₐ[k] K), x ∈ Subgroup.zpowers σ
M : Type u_5
inst✝¹ : CommGroup M
inst✝ : Module.Finite ℤ (Additive M)
ζ : M
hk : ∀ (ε : M) (n : ℕ), ε ^ ↑p ^ n = 1 → ∃ i, ζ ^ i = ε
r : ℕ
η : Fin (r + 1) → Additive M
hr : finrank ℤ (Additive M) < r
a₁ : ℤ
ι₁ : Fin r → ℤ
i₁ : Fin r
e₁ : ∑ i : Fin r, ι₁ i • (η ∘ Fin.castSucc) i = a₁ • Additive.ofMul ζ
hi₁ : ¬↑↑p ∣ ι₁ i₁
a₂ : ℤ
ι₂ : Fin r → ℤ
i₂ : Fin r
e₂ : ∑ i : Fin r, ι₂ i • (η ∘ i₁.castSucc.succAbove) i = a₂ • Additive.ofMul ζ
hi₂ : ¬↑↑p ∣ ι₂ i₂
hζ' : ¬ζ = 1
b : ℤ
hb : a₁ = ↑↑p * b
⊢ ∑ i : Fin (r + 1), Function.extend Fin.castSucc ι₁ 0 i • η i = (b * ↑↑p) • Additive.ofMul ζ