Module

ChoicePositions.lean

Nyll.ValuedFieldTheory.LocalField.Analytic.LogExpSeries.FormalCoreBase.ChoicePositions
17 declarations indexed from sourceView source ↗

Realizing formal-product choices by position sets

This module constructs a basic-factor choice from its mixed and left position sets and proves the resulting position-count formulas.

Declarations

LocalFieldTheory.DiscreteValuationField.MultiplicativeIntegerValuation.formalLogOnePlusProductArgumentBasicFactorLeft

The left basic exponent vector.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
attribute [local instance] Classical.propDecidable
namespace LocalFieldTheory.DiscreteValuationField
namespace MultiplicativeIntegerValuation
def formalLogOnePlusProductArgumentBasicFactorLeft :
    Fin 2 →₀ ℕ
LocalFieldTheory.DiscreteValuationField.MultiplicativeIntegerValuation.formalLogOnePlusProductArgumentBasicFactorRight

The right basic exponent vector.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
attribute [local instance] Classical.propDecidable
namespace LocalFieldTheory.DiscreteValuationField
namespace MultiplicativeIntegerValuation
def formalLogOnePlusProductArgumentBasicFactorRight :
    Fin 2 →₀ ℕ
LocalFieldTheory.DiscreteValuationField.MultiplicativeIntegerValuation.formalLogOnePlusProductArgumentBasicFactorMixed

The mixed basic exponent vector.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
attribute [local instance] Classical.propDecidable
namespace LocalFieldTheory.DiscreteValuationField
namespace MultiplicativeIntegerValuation
def formalLogOnePlusProductArgumentBasicFactorMixed :
    Fin 2 →₀ ℕ
LocalFieldTheory.DiscreteValuationField.MultiplicativeIntegerValuation.formalLogOnePlusProductArgumentBasicFactorLabel_eq_two_iff_of_basic

Characterizes formalLogOnePlusProductArgumentBasicFactorLabel m = (2 : Fin 3) by the equivalent condition m = formalLogOnePlusProductArgumentBasicFactorMixed.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
attribute [local instance] Classical.propDecidable
namespace LocalFieldTheory.DiscreteValuationField
namespace MultiplicativeIntegerValuation
theorem formalLogOnePlusProductArgumentBasicFactorLabel_eq_two_iff_of_basic
    {m : Fin 2 →₀ ℕ}
    (hm : formalLogOnePlusProductArgumentBasicFactor m) :
    formalLogOnePlusProductArgumentBasicFactorLabel m = (2 : Fin 3) ↔
      m = formalLogOnePlusProductArgumentBasicFactorMixed
LocalFieldTheory.DiscreteValuationField.MultiplicativeIntegerValuation.formalLogOnePlusProductArgumentChoiceFromMixedLeft

The basic-factor sequence with mixed positions M, left positions L, and right factors in every remaining position below q.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
attribute [local instance] Classical.propDecidable
namespace LocalFieldTheory.DiscreteValuationField
namespace MultiplicativeIntegerValuation
def formalLogOnePlusProductArgumentChoiceFromMixedLeft
    (q : ℕ) (M L : Finset ℕ) : ℕ →₀ (Fin 2 →₀ ℕ)
LocalFieldTheory.DiscreteValuationField.MultiplicativeIntegerValuation.formalLogOnePlusProductArgumentChoiceFromMixedLeft_apply_of_mem

Establishes the identity formalLogOnePlusProductArgumentChoiceFromMixedLeft q M L i = if i ∈ M then formalLogOnePlusProductArgumentBasicFactorMixed else if i ∈ L then formalLogOnePlusProductArgumentBasicFactorLeft else formalLogOnePlusProductArgumentBasicFactorRight.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
attribute [local instance] Classical.propDecidable
namespace LocalFieldTheory.DiscreteValuationField
namespace MultiplicativeIntegerValuation
theorem formalLogOnePlusProductArgumentChoiceFromMixedLeft_apply_of_mem
    {q : ℕ} {M L : Finset ℕ} {i : ℕ} (hi : i ∈ Finset.range q) :
    formalLogOnePlusProductArgumentChoiceFromMixedLeft q M L i =
      if i ∈ M then formalLogOnePlusProductArgumentBasicFactorMixed
      else if i ∈ L then formalLogOnePlusProductArgumentBasicFactorLeft
      else formalLogOnePlusProductArgumentBasicFactorRight := by
  have hlt : i < q := Finset.mem_range.mp hi
  simp [formalLogOnePlusProductArgumentChoiceFromMixedLeft, hlt]
LocalFieldTheory.DiscreteValuationField.MultiplicativeIntegerValuation.formalLogOnePlusProductArgumentChoiceFromMixedLeft_apply_of_not_mem

Establishes the identity formalLogOnePlusProductArgumentChoiceFromMixedLeft q M L i = 0.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
attribute [local instance] Classical.propDecidable
namespace LocalFieldTheory.DiscreteValuationField
namespace MultiplicativeIntegerValuation
theorem formalLogOnePlusProductArgumentChoiceFromMixedLeft_apply_of_not_mem
    {q : ℕ} {M L : Finset ℕ} {i : ℕ} (hi : i ∉ Finset.range q) :
    formalLogOnePlusProductArgumentChoiceFromMixedLeft q M L i = 0
LocalFieldTheory.DiscreteValuationField.MultiplicativeIntegerValuation.formalLogOnePlusProductArgumentMixedPositions

Positions below q at which l has the mixed-factor label.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
attribute [local instance] Classical.propDecidable
namespace LocalFieldTheory.DiscreteValuationField
namespace MultiplicativeIntegerValuation
def formalLogOnePlusProductArgumentMixedPositions
    (q : ℕ) (l : ℕ →₀ (Fin 2 →₀ ℕ)) : Finset ℕ
LocalFieldTheory.DiscreteValuationField.MultiplicativeIntegerValuation.formalLogOnePlusProductArgumentLeftPositions

Positions below q at which l has the left-factor label.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
attribute [local instance] Classical.propDecidable
namespace LocalFieldTheory.DiscreteValuationField
namespace MultiplicativeIntegerValuation
def formalLogOnePlusProductArgumentLeftPositions
    (q : ℕ) (l : ℕ →₀ (Fin 2 →₀ ℕ)) : Finset ℕ
LocalFieldTheory.DiscreteValuationField.MultiplicativeIntegerValuation.formalLogOnePlusProductArgumentRightPositions

Positions below q at which l has the right-factor label.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
attribute [local instance] Classical.propDecidable
namespace LocalFieldTheory.DiscreteValuationField
namespace MultiplicativeIntegerValuation
def formalLogOnePlusProductArgumentRightPositions
    (q : ℕ) (l : ℕ →₀ (Fin 2 →₀ ℕ)) : Finset ℕ
LocalFieldTheory.DiscreteValuationField.MultiplicativeIntegerValuation.formalLogOnePlusProductArgumentMixedPositions_card

Establishes the identity (formalLogOnePlusProductArgumentMixedPositions q l).card = formalLogOnePlusProductArgumentBasicFactorLabelCount q l 2.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
attribute [local instance] Classical.propDecidable
namespace LocalFieldTheory.DiscreteValuationField
namespace MultiplicativeIntegerValuation
theorem formalLogOnePlusProductArgumentMixedPositions_card
    (q : ℕ) (l : ℕ →₀ (Fin 2 →₀ ℕ)) :
    (formalLogOnePlusProductArgumentMixedPositions q l).card =
      formalLogOnePlusProductArgumentBasicFactorLabelCount q l 2
LocalFieldTheory.DiscreteValuationField.MultiplicativeIntegerValuation.formalLogOnePlusProductArgumentLeftPositions_card

Establishes the identity (formalLogOnePlusProductArgumentLeftPositions q l).card = formalLogOnePlusProductArgumentBasicFactorLabelCount q l 0.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
attribute [local instance] Classical.propDecidable
namespace LocalFieldTheory.DiscreteValuationField
namespace MultiplicativeIntegerValuation
theorem formalLogOnePlusProductArgumentLeftPositions_card
    (q : ℕ) (l : ℕ →₀ (Fin 2 →₀ ℕ)) :
    (formalLogOnePlusProductArgumentLeftPositions q l).card =
      formalLogOnePlusProductArgumentBasicFactorLabelCount q l 0
LocalFieldTheory.DiscreteValuationField.MultiplicativeIntegerValuation.formalLogOnePlusProductArgumentRightPositions_card

Establishes the identity (formalLogOnePlusProductArgumentRightPositions q l).card = formalLogOnePlusProductArgumentBasicFactorLabelCount q l 1.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
attribute [local instance] Classical.propDecidable
namespace LocalFieldTheory.DiscreteValuationField
namespace MultiplicativeIntegerValuation
theorem formalLogOnePlusProductArgumentRightPositions_card
    (q : ℕ) (l : ℕ →₀ (Fin 2 →₀ ℕ)) :
    (formalLogOnePlusProductArgumentRightPositions q l).card =
      formalLogOnePlusProductArgumentBasicFactorLabelCount q l 1
LocalFieldTheory.DiscreteValuationField.MultiplicativeIntegerValuation.formalLogOnePlusProductArgumentMixedPositions_choiceFromMixedLeft

Establishes the identity formalLogOnePlusProductArgumentMixedPositions q (formalLogOnePlusProductArgumentChoiceFromMixedLeft q M L) = M.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
attribute [local instance] Classical.propDecidable
namespace LocalFieldTheory.DiscreteValuationField
namespace MultiplicativeIntegerValuation
theorem formalLogOnePlusProductArgumentMixedPositions_choiceFromMixedLeft
    {q : ℕ} {M L : Finset ℕ} (hM : M ⊆ Finset.range q) :
    formalLogOnePlusProductArgumentMixedPositions q
        (formalLogOnePlusProductArgumentChoiceFromMixedLeft q M L) = M
LocalFieldTheory.DiscreteValuationField.MultiplicativeIntegerValuation.formalLogOnePlusProductArgumentLeftPositions_choiceFromMixedLeft

Establishes the identity formalLogOnePlusProductArgumentLeftPositions q (formalLogOnePlusProductArgumentChoiceFromMixedLeft q M L) = L.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
attribute [local instance] Classical.propDecidable
namespace LocalFieldTheory.DiscreteValuationField
namespace MultiplicativeIntegerValuation
theorem formalLogOnePlusProductArgumentLeftPositions_choiceFromMixedLeft
    {q : ℕ} {M L : Finset ℕ} (hL : L ⊆ Finset.range q \ M) :
    formalLogOnePlusProductArgumentLeftPositions q
        (formalLogOnePlusProductArgumentChoiceFromMixedLeft q M L) = L
LocalFieldTheory.DiscreteValuationField.MultiplicativeIntegerValuation.formalLogOnePlusProductArgumentRightPositions_choiceFromMixedLeft

Establishes the identity formalLogOnePlusProductArgumentRightPositions q (formalLogOnePlusProductArgumentChoiceFromMixedLeft q M L) = Finset.range q \ (M ∪ L).

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
attribute [local instance] Classical.propDecidable
namespace LocalFieldTheory.DiscreteValuationField
namespace MultiplicativeIntegerValuation
theorem formalLogOnePlusProductArgumentRightPositions_choiceFromMixedLeft
    {q : ℕ} {M L : Finset ℕ} (hL : L ⊆ Finset.range q \ M) :
    formalLogOnePlusProductArgumentRightPositions q
        (formalLogOnePlusProductArgumentChoiceFromMixedLeft q M L) =
      Finset.range q \ (M ∪ L)
LocalFieldTheory.DiscreteValuationField.MultiplicativeIntegerValuation.formalLogOnePlusProductArgumentRightPositions_choiceFromMixedLeft_card

Establishes the identity (formalLogOnePlusProductArgumentRightPositions q (formalLogOnePlusProductArgumentChoiceFromMixedLeft q M L)).card = q - a.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
attribute [local instance] Classical.propDecidable
namespace LocalFieldTheory.DiscreteValuationField
namespace MultiplicativeIntegerValuation
theorem formalLogOnePlusProductArgumentRightPositions_choiceFromMixedLeft_card
    {q a b : ℕ} {M L : Finset ℕ}
    (hMsub : M ⊆ Finset.range q) (hMcard : M.card = a + b - q)
    (hLsub : L ⊆ Finset.range q \ M) (hLcard : L.card = q - b)
    (hleft : a ≤ q) (hright : b ≤ q) (hsum : q ≤ a + b) :
    (formalLogOnePlusProductArgumentRightPositions q
      (formalLogOnePlusProductArgumentChoiceFromMixedLeft q M L)).card =
        q - a