OAI/NumberTheory/Ostmann/Construction/FullAtomTransferWeight.lean
7 declarations, 0 contain sorry, 0 declared as axioms
The complete grouped weight as a single supported recursive weight
- def
OAI.Ostmann.fullAtomWeightGuardline 11 - def
OAI.Ostmann.fullAtomTransferWeightline 19 - def
OAI.Ostmann.fullAtomRootGuardline 28 - theorem
OAI.Ostmann.fullAtomWeightGuard_nodeline 34 - theorem
OAI.Ostmann.guarded_productline 48 - theorem
OAI.Ostmann.fullAtomTransferWeight_nodeline 55Source documentation
The full weight has exactly the inherited left/right factors, with all new top tests in the root guard. There is no loss of boundary or unit tests.
theorem fullAtomTransferWeight_node {I : Type*} [Fintype I] (role : I → CopyScheduleRole) (childBound pivotBound : ℕ → ℕ) (ranges : (j : ℕ) → List (ScheduleAtomRange role j)) (leaf : ScheduleAtomState role → ℤ → ℂ) (n : ℕ) (x : CopyScheduleAtoms role (n + 1) → ℕ) (t : FrequencyTree ℤ (n + 1)) (P : ℕ) (hP : ValidTransferNode (scheduleAtomSystem role childBound pivotBound) ⟨n + 1, x⟩ t.1 (frequencyRoot n t.2.1) (frequencyRoot n t.2.2) P) : fullAtomTransferWeight role childBound pivotBound ranges leaf (n + 1) x t = if fullAtomRootGuard role ranges n x P t.1 then fullAtomTransferWeight role childBound pivotBound ranges leaf n (reverseCopyLabelMap role n true P x) t.2.1 * conj (fullAtomTransferWeight role childBound pivotBound ranges leaf n …Mentions: OAI.Ostmann.CopyScheduleRole, OAI.Ostmann.ScheduleAtomRange, OAI.Ostmann.ScheduleAtomState, OAI.Ostmann.CopyScheduleAtoms, OAI.Ostmann.FrequencyTree, OAI.Ostmann.ValidTransferNode, OAI.Ostmann.scheduleAtomSystem, OAI.Ostmann.frequencyRoot, OAI.Ostmann.fullAtomTransferWeight, OAI.Ostmann.fullAtomRootGuard, OAI.Ostmann.reverseCopyLabelMap
- theorem
OAI.Ostmann.groupedFullCoprimeFourierWeight_atomline 75Source documentation
Evaluation at arbitrary words is just evaluation at their atom products.
theorem groupedFullCoprimeFourierWeight_atom {I V : Type*} [Fintype I] (role : I → CopyScheduleRole) (n : ℕ) (words : CopyScheduleAtoms role n → List V) (childBound pivotBound : ℕ → ℕ) (ranges : (j : ℕ) → List (ScheduleAtomRange role j)) (ψ : 𝓢(ℝ, ℂ)) (X lo hi : ℝ) (t : FrequencyTree ℤ n) (q : V → ℕ) : groupedFullCoprimeFourierWeight role n words childBound pivotBound ranges ψ X lo hi t q = fullAtomTransferWeight role childBound pivotBound ranges (fun τ v => (if (scheduleAtomTotal role τ : ℝ) / X ∈ Set.Icc lo hi then (1 : ℂ) else 0) * normalizedFourierProfile (𝓕 ψ : 𝓢(ℝ, ℂ)) v ((scheduleAtomTotal role τ : ℝ) / X)) n (fun i => ((words i).map q).prod) t := by …Mentions: OAI.Ostmann.CopyScheduleRole, OAI.Ostmann.CopyScheduleAtoms, OAI.Ostmann.ScheduleAtomRange, OAI.Ostmann.FrequencyTree, OAI.Ostmann.groupedFullCoprimeFourierWeight, OAI.Ostmann.fullAtomTransferWeight, OAI.Ostmann.scheduleAtomTotal, OAI.Ostmann.normalizedFourierProfile