Prime-marked integer paths for a signed correction bank
Definitionerdos390_marked_bank_pathsLet be a finite set of natural numbers, with a budget at each coordinate. There are slots of each sign at . For every slot choose a finite core path
positive integer scales , and prime markers . All markers are distinct, and there is a common bound such that
The two endpoint factors of edge are and . A downward state contains one endpoint from each edge. Negative slots keep this orientation, while positive slots reverse it; state zero is always the state charged in the initial bank.
This is a finite arithmetic interface for the source's paths. The common scale accommodates its terminal move with actual cofactors and while the core path goes from to . Neither a valuation-change identity nor disjointness of factor states is a field. Interval placement, guards, and asymptotic existence are separate obligations.
import Definitions.Def_erdos390_signed_bank
open scoped BigOperators
namespace Erdos390.WholePaper
noncomputable section
/-- Arithmetic data for prime-to-one paths with globally distinct prime markers.
The scale allows the last core move `2 → 1` to use actual cofactors `4 → 2`. -/
structure MarkedBankPaths (P : Finset ℕ) (β : ↑P → ℕ) where
steps : SignedBankSlot β → ℕ
core : SignedBankSlot β → ℕ → ℕ
scale : (g : SignedBankSlot β) → Fin (steps g) → ℕ
marker : (Σ g : SignedBankSlot β, Fin (steps g)) → ℕ
height : ℕ
core_start : ∀ g, core g 0 = g.1.1
core_finish : ∀ g, core g (steps g) = 1
core_pos : ∀ g i, i ≤ steps g → 0 < core g i
scale_pos : ∀ g i, 0 < scale g i
marker_prime : ∀ r, (marker r).Prime
marker_injective : Function.Injective marker
marker_large : ∀ r, height < marker r
source_small : ∀ g i, scale g i * core g i.1 ≤ height
target_small : ∀ g i, scale g i * core g (i.1 + 1) ≤ height
namespace MarkedBankPaths
def endpoint {P : Finset ℕ} {β : ↑P → ℕ} (R : MarkedBankPaths P β)
(g : SignedBankSlot β) (b : Bool) (i : Fin (R.steps g)) : ℕ :=
R.marker ⟨g, i⟩ * (R.scale g i * R.core g (if b then i.1 + 1 else i.1))
def downwardState {P : Finset ℕ} {β : ↑P → ℕ} (R : MarkedBankPaths P β)
(g : SignedBankSlot β) (b : Bool) : Finset ℕ := by
classical
exact Finset.univ.image (R.endpoint g b)
/-- Positive slots reverse the downward path; negative slots keep its orientation.
In both cases `false` denotes the charged initial state. -/
def signedState {P : Finset ℕ} {β : ↑P → ℕ} (R : MarkedBankPaths P β)
(g : SignedBankSlot β) (b : Bool) : Finset ℕ :=
match g.2 with
| .inl _ => R.downwardState g (!b)
| .inr _ => R.downwardState g b
end MarkedBankPaths
end
end Erdos390.WholePaper