@@ -234,16 +234,16 @@ variable
234
234
(hKL : finrank k K = p) (σ : K ≃ₐ[k] K) (hσ : ∀ x, x ∈ Subgroup.zpowers σ)
235
235
236
236
def RelativeUnits (k K : Type *) [Field k] [Field K] [Algebra k K] :=
237
- ((𝓞 K)ˣ ⧸ (MonoidHom.range <| Units.map (algebraMap ↥ (𝓞 k) ↥ (𝓞 K) : ↥ (𝓞 k) →* ↥ (𝓞 K))))
237
+ ((𝓞 K)ˣ ⧸ (MonoidHom.range <| Units.map (algebraMap (𝓞 k) (𝓞 K) : (𝓞 k) →* (𝓞 K))))
238
238
239
239
instance : CommGroup (RelativeUnits k K) := by delta RelativeUnits; infer_instance
240
240
241
241
attribute [local instance] IsCyclic.commGroup
242
242
243
243
attribute [local instance 2000] inst_ringOfIntegersAlgebra Algebra.toSMul Algebra.toModule
244
244
245
- instance : IsScalarTower ↥ (𝓞 k) ↥ (𝓞 K) K := IsScalarTower.of_algebraMap_eq (fun _ ↦ rfl)
246
- instance : IsIntegralClosure ↥ (𝓞 K) ↥ (𝓞 k) K := IsIntegralClosure.of_isIntegrallyClosed _ _ _
245
+ instance : IsScalarTower (𝓞 k) (𝓞 K) K := IsScalarTower.of_algebraMap_eq (fun _ ↦ rfl)
246
+ instance : IsIntegralClosure (𝓞 K) (𝓞 k) K := IsIntegralClosure.of_isIntegrallyClosed _ _ _
247
247
(fun x ↦ IsIntegral.tower_top (IsIntegralClosure.isIntegral ℤ K x))
248
248
249
249
lemma coe_galRestrictHom_apply (σ : K →ₐ[k] K) (x) :
@@ -328,7 +328,7 @@ lemma isTors' : Module.IsTorsionBySet ℤ[X]
328
328
Subalgebra.coe_toSubsemiring, Algebra.norm_eq_prod_automorphisms]
329
329
rw [← hKL, ← IsGalois.card_aut_eq_finrank, ← orderOf_eq_card_of_forall_mem_zpowers hσ,
330
330
← Fin.prod_univ_eq_prod_range, ← (finEquivZPowers σ <| isOfFinOrder_of_finite _).symm.prod_comp]
331
- simp only [pow_finEquivZPowers_symm_apply, coe_galRestrictHom_apply, AlgHom.coe_coe]
331
+ simp only [pow_finEquivZPowers_symm_apply, coe_galRestrictHom_apply, AlgHom.coe_coe, map_prod ]
332
332
rw [Finset.prod_set_coe (α := K ≃ₐ[k] K) (β := K) (f := fun i ↦ i ↑x) (Subgroup.zpowers σ)]
333
333
congr
334
334
ext x
@@ -406,7 +406,7 @@ lemma NumberField.Units.finrank_eq : finrank ℤ (Additive (𝓞 k)ˣ) = NumberF
406
406
local instance : Module.Finite ℤ (Additive <| RelativeUnits k K) := by
407
407
delta RelativeUnits
408
408
show Module.Finite ℤ (Additive (𝓞 K)ˣ ⧸ AddSubgroup.toIntSubmodule (Subgroup.toAddSubgroup
409
- (MonoidHom.range <| Units.map (algebraMap ↥ (𝓞 k) ↥ (𝓞 K) : ↥ (𝓞 k) →* ↥ (𝓞 K)))))
409
+ (MonoidHom.range <| Units.map (algebraMap (𝓞 k) (𝓞 K) : (𝓞 k) →* (𝓞 K)))))
410
410
infer_instance
411
411
412
412
local instance : Module.Finite ℤ (Additive <| relativeUnitsWithGenerator p hp hKL σ hσ) := by
@@ -432,10 +432,10 @@ lemma finrank_G : finrank ℤ G = (Units.rank k + 1) * (↑p - 1) := by
432
432
rw [← Submodule.torsion_int]
433
433
refine (FiniteDimensional.finrank_quotient_of_le_torsion _ le_rfl).trans ?_
434
434
show finrank ℤ (Additive (𝓞 K)ˣ ⧸ AddSubgroup.toIntSubmodule (Subgroup.toAddSubgroup
435
- (MonoidHom.range <| Units.map (algebraMap ↥ (𝓞 k) ↥ (𝓞 K) : ↥ (𝓞 k) →* ↥ (𝓞 K))))) = _
435
+ (MonoidHom.range <| Units.map (algebraMap (𝓞 k) (𝓞 K) : (𝓞 k) →* (𝓞 K))))) = _
436
436
rw [FiniteDimensional.finrank_quotient]
437
437
show _ - finrank ℤ (LinearMap.range <| AddMonoidHom.toIntLinearMap <|
438
- MonoidHom.toAdditive <| Units.map (algebraMap ↥ (𝓞 k) ↥ (𝓞 K) : ↥ (𝓞 k) →* ↥ (𝓞 K))) = _
438
+ MonoidHom.toAdditive <| Units.map (algebraMap (𝓞 k) (𝓞 K) : (𝓞 k) →* (𝓞 K))) = _
439
439
rw [LinearMap.finrank_range_of_inj, NumberField.Units.finrank_eq, NumberField.Units.finrank_eq,
440
440
NumberField.Units.rank_of_isUnramified (k := k), add_mul, one_mul, mul_tsub, mul_one, mul_comm,
441
441
add_tsub_assoc_of_le, tsub_add_eq_add_tsub, hKL]
@@ -470,16 +470,13 @@ lemma unitlifts_spec (S : systemOfUnits p G (NumberField.Units.rank k + 1)) (i)
470
470
simp only [toMul_ofMul, Quotient.out_eq', ofMul_toMul]
471
471
exact Quotient.out_eq' _
472
472
473
- set_option synthInstance.maxHeartbeats 80000 in
474
473
lemma u_lemma2 (u v : (𝓞 K)ˣ) (hu : u = v / (σ v : K)) : (mkG u) = (1 - zeta p : A) • (mkG v) := by
475
474
rw [sub_smul, one_smul, relativeUnitsModule_zeta_smul, ← unit_to_U_div]
476
475
congr
477
476
rw [eq_div_iff_mul_eq']
478
477
ext
479
- simp only [Units.val_mul, Units.coe_map, MonoidHom.coe_coe, Submonoid.coe_mul,
480
- Subsemiring.coe_toSubmonoid, Subalgebra.coe_toSubsemiring, coe_galRestrictHom_apply, hu]
481
- refine div_mul_cancel₀ _ ?_
482
- simp only [ne_eq, map_eq_zero, ZeroMemClass.coe_eq_zero, Units.ne_zero, not_false_eq_true]
478
+ simp only [Units.val_mul, Units.coe_map, MonoidHom.coe_coe, map_mul, coe_galRestrictHom_apply, hu]
479
+ exact div_mul_cancel₀ _ (by simp)
483
480
484
481
open multiplicity in
485
482
theorem padicValNat_dvd_iff_le' {p : ℕ} (hp : p ≠ 1 ) {a n : ℕ} (ha : a ≠ 0 ) :
@@ -701,11 +698,9 @@ lemma Hilbert92ish_aux1 (n : ℕ) (H : Fin n → Additive (𝓞 K)ˣ) (ζ : (
701
698
letI J : (𝓞 K)ˣ := (Additive.toMul (∑ i : Fin n, ι i • H i)) *
702
699
(Units.map (algebraMap (𝓞 k) (𝓞 K)).toMonoidHom ζ) ^ (-a)
703
700
Algebra.norm k (S := K) ((J : (𝓞 K)ˣ) : K) = 1 := by
704
- simp only [toMul_sum, toMul_zsmul, RingHom.toMonoidHom_eq_coe, zpow_neg, Units.val_mul,
705
- Units.coe_prod, Submonoid.coe_mul, Subsemiring.coe_toSubmonoid, Subalgebra.coe_toSubsemiring,
706
- Submonoid.coe_finset_prod, Units.coe_zpow, map_mul, map_prod, ← Units.coe_val_inv,
707
- norm_map_inv, norm_map_zpow, hKL, Units.coe_map, MonoidHom.coe_coe,
708
- RingOfInteger.coe_algebraMap_apply, Algebra.norm_algebraMap]
701
+ simp only [toMul_sum, toMul_zsmul, zpow_neg, Units.val_mul, Units.coe_prod, map_mul, map_prod,
702
+ Units.coe_zpow, map_mul, map_prod, ← Units.coe_val_inv, norm_map_inv, norm_map_zpow, hKL,
703
+ Units.coe_map, RingOfInteger.coe_algebraMap_apply, Algebra.norm_algebraMap]
709
704
apply_fun Additive.toMul at ha
710
705
apply_fun ((↑) : (𝓞 k)ˣ → k) at ha
711
706
simp only [toMul_sum, toMul_zsmul, Units.coe_prod, Submonoid.coe_finset_prod, hη,
@@ -768,7 +763,7 @@ lemma unit_to_U_neg (x) : mkG (-x) = mkG x := by
768
763
simp only [Units.val_neg, Units.val_one, OneMemClass.coe_one,
769
764
Units.coe_map, MonoidHom.coe_coe, map_neg, map_one]
770
765
771
- instance : CommGroup (↥ (𝓞 k))ˣ := inferInstance
766
+ instance : CommGroup ((𝓞 k))ˣ := inferInstance
772
767
773
768
lemma IsPrimitiveRoot.one_left_iff {M} [CommMonoid M] {n : ℕ} :
774
769
IsPrimitiveRoot (1 : M) n ↔ n = 1 :=
0 commit comments