FenchelNielsenZomorrodian.Discrete.Arithmetic.FamilyLcm

5 Theorem | 8 Definition | 1 Abbreviation

This module studies family lcm for fenchel nielsen zomorrodian. The least common multiple of the periods other than the distinguished one. The product of the periods other than the distinguished one.

import
  • Mathlib.Algebra.GCDMonoid.Finset
  • Mathlib.Algebra.GCDMonoid.Nat
  • Mathlib.Algebra.Order.BigOperators.Ring.Finset
Imported by

Declarations

def otherPeriodsLcmFamily {ι : Type*} [Fintype ι] [DecidableEq ι]
    (periods : ι → ℕ) (i : ι) : ℕ :=
  (Finset.univ.erase i).lcm periods

The least common multiple of the periods other than the distinguished one.

def otherPeriodsProductFamily {ι : Type*} [Fintype ι] [DecidableEq ι]
    (periods : ι → ℕ) (i : ι) : ℕ :=
  (Finset.univ.erase i).prod periods

The product of the periods other than the distinguished one.

def finZeroOfTwoLe {n : ℕ} (hn : 2 ≤ n) : Fin n :=
  ⟨0, lt_of_lt_of_le (by decide : 0 < 2) hn⟩

This arithmetic lemma packages the LCM or equal-partner condition for the family of elliptic periods.

def finOneOfTwoLe {n : ℕ} (hn : 2 ≤ n) : Fin n :=
  ⟨1, lt_of_lt_of_le (by decide : 1 < 2) hn⟩

This arithmetic lemma packages the LCM or equal-partner condition for the family of elliptic periods.

def finPartner {n : ℕ} (hn : 2 ≤ n) (i : Fin n) : Fin n :=
  if _ : i = finZeroOfTwoLe hn then
    finOneOfTwoLe hn
  else
    finZeroOfTwoLe hn

This arithmetic lemma packages the LCM or equal-partner condition for the family of elliptic periods.

theorem finPartner_ne {n : ℕ} (hn : 2 ≤ n) (i : Fin n) :
    finPartner hn i ≠ i

This arithmetic lemma packages the LCM or equal-partner condition for the family of elliptic periods.

Show proof
def LCMConditionFamily {ι : Type*} [Fintype ι] [DecidableEq ι]
    (periods : ι → ℕ) : Prop :=
  ∀ i, periods i ∣ otherPeriodsLcmFamily periods i

This arithmetic lemma packages the LCM or equal-partner condition for the family of elliptic periods.

theorem LCMConditionFamily.reindex_iff
    {α β : Type*} [Fintype α] [DecidableEq α] [Fintype β] [DecidableEq β]
    (e : α ≃ β) {periods : α → ℕ} :
    LCMConditionFamily (fun b : β => periods (e.symm b)) ↔
      LCMConditionFamily periods

The reindexed period condition is equivalent to the original period condition after transporting indices.

Show proof
def HasEqualPartnerFamily {ι : Type*}
    (periods : ι → ℕ) : Prop :=
  ∀ i, ∃ j, j ≠ i ∧ periods j = periods i

This arithmetic lemma packages the LCM or equal-partner condition for the family of elliptic periods.

theorem lcmConditionFamily_of_hasEqualPartnerFamily
    {ι : Type*} [Fintype ι] [DecidableEq ι] {periods : ι → ℕ}
    (hperiods : HasEqualPartnerFamily periods) : LCMConditionFamily periods

This arithmetic lemma packages the LCM or equal-partner condition for the family of elliptic periods.

Show proof
theorem otherPeriodsLcmFamily_pos
    {ι : Type*} [Fintype ι] [DecidableEq ι] {periods : ι → ℕ}
    (hpos : ∀ i, 0 < periods i) (i : ι) :
    0 < otherPeriodsLcmFamily periods i

The lcm of the other period family is positive.

Show proof
abbrev NonOneSubfamilyIndex {ι : Type*} (periods : ι → ℕ) :=
  {i : ι // periods i ≠ 1}

This arithmetic lemma packages the LCM or equal-partner condition for the family of elliptic periods.

def nonOneSubfamilyPeriods {ι : Type*} (periods : ι → ℕ)
    (i : NonOneSubfamilyIndex periods) : ℕ :=
  periods i.1

The non-one subfamily periods form the finite family of periods used in the Fenchel--Nielsen--Zomorrodian period reduction.

theorem nonOneSubfamilyPeriods_ge_two
    {ι : Type*} (periods : ι → ℕ) (hpos : ∀ i, 0 < periods i) :
    ∀ i : NonOneSubfamilyIndex periods, 2 ≤ nonOneSubfamilyPeriods periods i

Every nontrivial period in the selected subfamily is at least \(2\).

Show proof