internlm/Lean-Github huggingface dataset:
Theorem: Units.coe_val_inv
Proof state before:
case a
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
S : Type u_6
inst✝² : DivisionMonoid M
inst✝¹ : SetLike S M
inst✝ : SubmonoidClass S M
s : S
v : (↥s)ˣ
⊢ ↑↑(v * v⁻¹) = 1
Tactic:
rw [mul_inv_self]
Proof state after:
case a
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
S : Type u_6
inst✝² : DivisionMonoid M
inst✝¹ : SetLike S M
inst✝ : SubmonoidClass S M
s : S
v : (↥s)ˣ
⊢ ↑↑1 = 1
Theorem: Units.coe_val_inv
Proof state before:
case a
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
S : Type u_6
inst✝² : DivisionMonoid M
inst✝¹ : SetLike S M
inst✝ : SubmonoidClass S M
s : S
v : (↥s)ˣ
⊢ ↑↑1 = 1
Tactic:
rfl
Proof state after:
no goals
Theorem: norm_eq_prod_pow_gen
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 σ✝
inst✝² : Algebra k K
inst✝¹ : IsGalois k K
inst✝ : FiniteDimensional k K
σ : K ≃ₐ[k] K
hσ : ∀ (x : K ≃ₐ[k] K), x ∈ Subgroup.zpowers σ
η : K
⊢ (algebraMap k K) ((Algebra.norm k) η) = ∏ i ∈ range (orderOf σ), (σ ^ i) η
Tactic:
rw [Algebra.norm_eq_prod_automorphisms, ← Fin.prod_univ_eq_prod_range,
  ← (finEquivZPowers σ <| isOfFinOrder_of_finite _).symm.prod_comp]
Proof state after:
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 σ✝
inst✝² : Algebra k K
inst✝¹ : IsGalois k K
inst✝ : FiniteDimensional k K
σ : K ≃ₐ[k] K
hσ : ∀ (x : K ≃ₐ[k] K), x ∈ Subgroup.zpowers σ
η : K
⊢ ∏ σ : K ≃ₐ[k] K, σ η = ∏ i : ↑↑(Subgroup.zpowers σ), (σ ^ ↑((finEquivZPowers σ ⋯).symm i)) η
Theorem: norm_eq_prod_pow_gen
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 σ✝
inst✝² : Algebra k K
inst✝¹ : IsGalois k K
inst✝ : FiniteDimensional k K
σ : K ≃ₐ[k] K
hσ : ∀ (x : K ≃ₐ[k] K), x ∈ Subgroup.zpowers σ
η : K
⊢ ∏ σ : K ≃ₐ[k] K, σ η = ∏ i : ↑↑(Subgroup.zpowers σ), (σ ^ ↑((finEquivZPowers σ ⋯).symm i)) η
Tactic:
simp only [pow_finEquivZPowers_symm_apply]
Proof state after:
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 σ✝
inst✝² : Algebra k K
inst✝¹ : IsGalois k K
inst✝ : FiniteDimensional k K
σ : K ≃ₐ[k] K
hσ : ∀ (x : K ≃ₐ[k] K), x ∈ Subgroup.zpowers σ
η : K
⊢ ∏ σ : K ≃ₐ[k] K, σ η = ∏ x : ↑↑(Subgroup.zpowers σ), ↑x η
Theorem: norm_eq_prod_pow_gen
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 σ✝
inst✝² : Algebra k K
inst✝¹ : IsGalois k K
inst✝ : FiniteDimensional k K
σ : K ≃ₐ[k] K
hσ : ∀ (x : K ≃ₐ[k] K), x ∈ Subgroup.zpowers σ
η : K
⊢ ∏ σ : K ≃ₐ[k] K, σ η = ∏ x : ↑↑(Subgroup.zpowers σ), ↑x η
Tactic:
rw [Finset.prod_set_coe (α := K ≃ₐ[k] K) (β := K) (f := fun i ↦ i η) (Subgroup.zpowers σ)]
Proof state after:
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 σ✝
inst✝² : Algebra k K
inst✝¹ : IsGalois k K
inst✝ : FiniteDimensional k K
σ : K ≃ₐ[k] K
hσ : ∀ (x : K ≃ₐ[k] K), x ∈ Subgroup.zpowers σ
η : K
⊢ ∏ σ : K ≃ₐ[k] K, σ η = ∏ i ∈ (↑(Subgroup.zpowers σ)).toFinset, i η
Theorem: norm_eq_prod_pow_gen
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 σ✝
inst✝² : Algebra k K
inst✝¹ : IsGalois k K
inst✝ : FiniteDimensional k K
σ : K ≃ₐ[k] K
hσ : ∀ (x : K ≃ₐ[k] K), x ∈ Subgroup.zpowers σ
η : K
⊢ ∏ σ : K ≃ₐ[k] K, σ η = ∏ i ∈ (↑(Subgroup.zpowers σ)).toFinset, i η
Tactic:
congr
Proof state after:
case e_s
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 σ✝
inst✝² : Algebra k K
inst✝¹ : IsGalois k K
inst✝ : FiniteDimensional k K
σ : K ≃ₐ[k] K
hσ : ∀ (x : K ≃ₐ[k] K), x ∈ Subgroup.zpowers σ
η : K
⊢ univ = (↑(Subgroup.zpowers σ)).toFinset
Theorem: norm_eq_prod_pow_gen
Proof state before:
case e_s
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 σ✝
inst✝² : Algebra k K
inst✝¹ : IsGalois k K
inst✝ : FiniteDimensional k K
σ : K ≃ₐ[k] K
hσ : ∀ (x : K ≃ₐ[k] K), x ∈ Subgroup.zpowers σ
η : K
⊢ univ = (↑(Subgroup.zpowers σ)).toFinset
Tactic:
ext
Proof state after:
case e_s.a
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 σ✝
inst✝² : Algebra k K
inst✝¹ : IsGalois k K
inst✝ : FiniteDimensional k K
σ : K ≃ₐ[k] K
hσ : ∀ (x : K ≃ₐ[k] K), x ∈ Subgroup.zpowers σ
η : K
a✝ : K ≃ₐ[k] K
⊢ a✝ ∈ univ ↔ a✝ ∈ (↑(Subgroup.zpowers σ)).toFinset
Theorem: norm_eq_prod_pow_gen
Proof state before:
case e_s.a
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 σ✝
inst✝² : Algebra k K
inst✝¹ : IsGalois k K
inst✝ : FiniteDimensional k K
σ : K ≃ₐ[k] K
hσ : ∀ (x : K ≃ₐ[k] K), x ∈ Subgroup.zpowers σ
η : K
a✝ : K ≃ₐ[k] K
⊢ a✝ ∈ univ ↔ a✝ ∈ (↑(Subgroup.zpowers σ)).toFinset
Tactic:
simp [hσ]
Proof state after:
no goals
Theorem: Hilbert92ish_aux0
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 σ
h : ℕ
ζ : (𝓞 k)ˣ
hζ : IsPrimitiveRoot ((algebraMap (𝓞 k) k) ↑ζ) (↑p ^ h)
H :
  ∀ (ε : (𝓞 K)ˣ),
    (algebraMap k K) ((algebraMap (𝓞 k) k) ↑ζ) ^ ↑p ^ (h - 1) ≠ (algebraMap (𝓞 K) K) ↑ε / σ ((algebraMap (𝓞 K) K) ↑ε)
⊢ ∃ η,
    (Algebra.norm k) ((algebraMap (𝓞 K) K) ↑η) = 1 ∧
      ∀ (ε : (𝓞 K)ˣ), (algebraMap (𝓞 K) K) ↑η ≠ (algebraMap (𝓞 K) K) ↑ε / σ ((algebraMap (𝓞 K) K) ↑ε)
Tactic:
let η := (Units.map (algebraMap (𝓞 k) (𝓞 K)) ζ : (𝓞 K)ˣ)
Proof state after:
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 σ
h : ℕ
ζ : (𝓞 k)ˣ
hζ : IsPrimitiveRoot ((algebraMap (𝓞 k) k) ↑ζ) (↑p ^ h)
H :
  ∀ (ε : (𝓞 K)ˣ),
    (algebraMap k K) ((algebraMap (𝓞 k) k) ↑ζ) ^ ↑p ^ (h - 1) ≠ (algebraMap (𝓞 K) K) ↑ε / σ ((algebraMap (𝓞 K) K) ↑ε)
η : (𝓞 K)ˣ := (Units.map ↑(algebraMap (𝓞 k) (𝓞 K))) ζ
⊢ ∃ η,
    (Algebra.norm k) ((algebraMap (𝓞 K) K) ↑η) = 1 ∧
      ∀ (ε : (𝓞 K)ˣ), (algebraMap (𝓞 K) K) ↑η ≠ (algebraMap (𝓞 K) K) ↑ε / σ ((algebraMap (𝓞 K) K) ↑ε)
Theorem: Hilbert92ish_aux0
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 σ
h : ℕ
ζ : (𝓞 k)ˣ
hζ : IsPrimitiveRoot ((algebraMap (𝓞 k) k) ↑ζ) (↑p ^ h)
H :
  ∀ (ε : (𝓞 K)ˣ),
    (algebraMap k K) ((algebraMap (𝓞 k) k) ↑ζ) ^ ↑p ^ (h - 1) ≠ (algebraMap (𝓞 K) K) ↑ε / σ ((algebraMap (𝓞 K) K) ↑ε)
η : (𝓞 K)ˣ := (Units.map ↑(algebraMap (𝓞 k) (𝓞 K))) ζ
⊢ ∃ η,
    (Algebra.norm k) ((algebraMap (𝓞 K) K) ↑η) = 1 ∧
      ∀ (ε : (𝓞 K)ˣ), (algebraMap (𝓞 K) K) ↑η ≠ (algebraMap (𝓞 K) K) ↑ε / σ ((algebraMap (𝓞 K) K) ↑ε)
Tactic:
use η ^ ((p : ℕ) ^ (h - 1))
Proof state after:
case h
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 σ
h : ℕ
ζ : (𝓞 k)ˣ
hζ : IsPrimitiveRoot ((algebraMap (𝓞 k) k) ↑ζ) (↑p ^ h)
H :
  ∀ (ε : (𝓞 K)ˣ),
    (algebraMap k K) ((algebraMap (𝓞 k) k) ↑ζ) ^ ↑p ^ (h - 1) ≠ (algebraMap (𝓞 K) K) ↑ε / σ ((algebraMap (𝓞 K) K) ↑ε)
η : (𝓞 K)ˣ := (Units.map ↑(algebraMap (𝓞 k) (𝓞 K))) ζ
⊢ (Algebra.norm k) ((algebraMap (𝓞 K) K) ↑(η ^ ↑p ^ (h - 1))) = 1 ∧
    ∀ (ε : (𝓞 K)ˣ), (algebraMap (𝓞 K) K) ↑(η ^ ↑p ^ (h - 1)) ≠ (algebraMap (𝓞 K) K) ↑ε / σ ((algebraMap (𝓞 K) K) ↑ε)
Theorem: Hilbert92ish_aux0
Proof state before:
case h
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 σ
h : ℕ
ζ : (𝓞 k)ˣ
hζ : IsPrimitiveRoot ((algebraMap (𝓞 k) k) ↑ζ) (↑p ^ h)
H :
  ∀ (ε : (𝓞 K)ˣ),
    (algebraMap k K) ((algebraMap (𝓞 k) k) ↑ζ) ^ ↑p ^ (h - 1) ≠ (algebraMap (𝓞 K) K) ↑ε / σ ((algebraMap (𝓞 K) K) ↑ε)
η : (𝓞 K)ˣ := (Units.map ↑(algebraMap (𝓞 k) (𝓞 K))) ζ
⊢ (Algebra.norm k) ((algebraMap (𝓞 K) K) ↑(η ^ ↑p ^ (h - 1))) = 1 ∧
    ∀ (ε : (𝓞 K)ˣ), (algebraMap (𝓞 K) K) ↑(η ^ ↑p ^ (h - 1)) ≠ (algebraMap (𝓞 K) K) ↑ε / σ ((algebraMap (𝓞 K) K) ↑ε)
Tactic:
constructor
Proof state after:
case h.left
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 σ
h : ℕ
ζ : (𝓞 k)ˣ
hζ : IsPrimitiveRoot ((algebraMap (𝓞 k) k) ↑ζ) (↑p ^ h)
H :
  ∀ (ε : (𝓞 K)ˣ),
    (algebraMap k K) ((algebraMap (𝓞 k) k) ↑ζ) ^ ↑p ^ (h - 1) ≠ (algebraMap (𝓞 K) K) ↑ε / σ ((algebraMap (𝓞 K) K) ↑ε)
η : (𝓞 K)ˣ := (Units.map ↑(algebraMap (𝓞 k) (𝓞 K))) ζ
⊢ (Algebra.norm k) ((algebraMap (𝓞 K) K) ↑(η ^ ↑p ^ (h - 1))) = 1

case h.right
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 σ
h : ℕ
ζ : (𝓞 k)ˣ
hζ : IsPrimitiveRoot ((algebraMap (𝓞 k) k) ↑ζ) (↑p ^ h)
H :
  ∀ (ε : (𝓞 K)ˣ),
    (algebraMap k K) ((algebraMap (𝓞 k) k) ↑ζ) ^ ↑p ^ (h - 1) ≠ (algebraMap (𝓞 K) K) ↑ε / σ ((algebraMap (𝓞 K) K) ↑ε)
η : (𝓞 K)ˣ := (Units.map ↑(algebraMap (𝓞 k) (𝓞 K))) ζ
⊢ ∀ (ε : (𝓞 K)ˣ), (algebraMap (𝓞 K) K) ↑(η ^ ↑p ^ (h - 1)) ≠ (algebraMap (𝓞 K) K) ↑ε / σ ((algebraMap (𝓞 K) K) ↑ε)
Theorem: Hilbert92ish_aux0
Proof state before:
case h.left
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 σ
h : ℕ
ζ : (𝓞 k)ˣ
hζ : IsPrimitiveRoot ((algebraMap (𝓞 k) k) ↑ζ) (↑p ^ h)
H :
  ∀ (ε : (𝓞 K)ˣ),
    (algebraMap k K) ((algebraMap (𝓞 k) k) ↑ζ) ^ ↑p ^ (h - 1) ≠ (algebraMap (𝓞 K) K) ↑ε / σ ((algebraMap (𝓞 K) K) ↑ε)
η : (𝓞 K)ˣ := (Units.map ↑(algebraMap (𝓞 k) (𝓞 K))) ζ
⊢ (Algebra.norm k) ((algebraMap (𝓞 K) K) ↑(η ^ ↑p ^ (h - 1))) = 1
Tactic:
simp only [ge_iff_le, Units.val_pow_eq_pow_val, Units.coe_map,
  MonoidHom.coe_coe, SubmonoidClass.coe_pow, map_pow]
Proof state after:
case h.left
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 σ
h : ℕ
ζ : (𝓞 k)ˣ
hζ : IsPrimitiveRoot ((algebraMap (𝓞 k) k) ↑ζ) (↑p ^ h)
H :
  ∀ (ε : (𝓞 K)ˣ),
    (algebraMap k K) ((algebraMap (𝓞 k) k) ↑ζ) ^ ↑p ^ (h - 1) ≠ (algebraMap (𝓞 K) K) ↑ε / σ ((algebraMap (𝓞 K) K) ↑ε)
η : (𝓞 K)ˣ := (Units.map ↑(algebraMap (𝓞 k) (𝓞 K))) ζ
⊢ (Algebra.norm k) ((algebraMap (𝓞 K) K) ↑η) ^ ↑p ^ (h - 1) = 1
Theorem: Hilbert92ish_aux0
Proof state before:
case h.left
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 σ
h : ℕ
ζ : (𝓞 k)ˣ
hζ : IsPrimitiveRoot ((algebraMap (𝓞 k) k) ↑ζ) (↑p ^ h)
H :
  ∀ (ε : (𝓞 K)ˣ),
    (algebraMap k K) ((algebraMap (𝓞 k) k) ↑ζ) ^ ↑p ^ (h - 1) ≠ (algebraMap (𝓞 K) K) ↑ε / σ ((algebraMap (𝓞 K) K) ↑ε)
η : (𝓞 K)ˣ := (Units.map ↑(algebraMap (𝓞 k) (𝓞 K))) ζ
⊢ (Algebra.norm k) ((algebraMap (𝓞 K) K) ↑η) ^ ↑p ^ (h - 1) = 1
Tactic:
show (Algebra.norm k) ((algebraMap k K) _) ^ _ = 1
Proof state after:
case h.left
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 σ
h : ℕ
ζ : (𝓞 k)ˣ
hζ : IsPrimitiveRoot ((algebraMap (𝓞 k) k) ↑ζ) (↑p ^ h)
H :
  ∀ (ε : (𝓞 K)ˣ),
    (algebraMap k K) ((algebraMap (𝓞 k) k) ↑ζ) ^ ↑p ^ (h - 1) ≠ (algebraMap (𝓞 K) K) ↑ε / σ ((algebraMap (𝓞 K) K) ↑ε)
η : (𝓞 K)ˣ := (Units.map ↑(algebraMap (𝓞 k) (𝓞 K))) ζ
⊢ (Algebra.norm k) ((algebraMap k K) ((algebraMap (𝓞 k) k) ↑ζ)) ^ ↑p ^ (h - 1) = 1