Sunday, March 30, 2025

Dual Group Structures in Diophantine Approximations


This page describes a general algorithm that extracts continued-fraction convergents of an irrational parameter by observing return events in a dynamical system. Rather than computing the function value ( log, roots, or sin) and/or explicitly expanding its continued fraction, the method tracks a normalized orbit and an integer cocycle, detecting convergents via gap-structure collapse as described by the Three Gap Theorem. The approach applies uniformly to different functions, revealing a shared group-theoretic structure underlying these computations.

The idea is using the "gap restructuring" itself as a computational driver (specifically for transcendental functions) The algorithm consecutively jumps to the next convergent by only looking at the current gap state.

if the function has a diophantine target such that its "near-equality" condition can be linearized into a rotation on a torus, (or a group manifold). you dont need a different algorithm but knowing on which circle the points are rotating on.

a single dynamical template for different coordinate systems, implicitly, lattice / torus dynamics.

for example in logarithms, the return is multiplicative: \(a^q \times b^{-p} \approx 1\). (a rotation on the group (R _>0 ,×). taking the log linearizes it q log(a)- p log(b) \approx 0.)

in roots, the return is polynomial p^n -q^n a \approx 0, the rotation is in the space of n-th powers. p,q is the lattice point that sits closes to the curve y=x^n a (shifting from an exponential map to a power map, but keeping the same "return event" logic.)

since the the stepping of the algorithm only cares bout the tgt  ordering of the points on a 1-manifold. and, if the target can be reduced to a mapping  x↦x+α(mod 1), the geometry of the gaps must simplify when you hit a convergent. this topological event is the convergence


The core object is a rotation on a 1-torus, everything reduces to \(x \mapsto x+\alpha \pmod 1 \) for irrational \(\alpha\) : (Logs: \(\alpha = \log_b a\), angles: \(\alpha = \theta / 2\pi\),). (The MLA is rotation dynamics written multiplicatively.)
At a convergent \(p/q\): \(q\alpha \approx p\), the orbit nearly closes, the circle is partitioned into exactly two gap lengths. Thats the Three Gap Theorem at a convergent, this is why the ordering stabilizes, the gap structure simplifies, and discrete group actions suddenly appear. (The “dual cyclic groups”, at a convergent \(p/q\))

Object              |   Group    |   Generator
sorted indices   |   \(\mathbb{Z}/q\mathbb{Z}\)    |   \(p^{-1} \bmod q\)
overflow terms |   \(\mathbb{Z}/p\mathbb{Z}\)   |   \(q^{-1} \bmod p\)

That symmetry is forced by \(p q' - q p' = \pm 1\) ,  the "engine" of  CFs. but also the source of two simultaneous group actions tied to each function parameters and convergents: horizontal (the spatial ordering of points on the circle) and vertical (the count of modular overflows). A lattice/tprus.

The “overflow” sequence is key, from the inequalities: \(\left|\alpha - \frac pq\right| < \frac{1}{q^2}\), MLA tracks modular advancement (floor terms, wrap counts) so that turns Diophantine approximation into explicit dynamics, group actions generated by irrational flow.


Horizontal action (Z/qZ) (p^−1 mod q): This is the permutation group it describes how the q points shuffle around the circle, what gives the "Three-Gap" structure.. When the gap structure collapses, it means the permutation has reached a state of maximal symmetry.

Vertical Action (Z/pZ) (q^−1 mod p): This is the Winding Number. the climbing speed at the cylinder (or the multiplicative lattice)., it tracks the "lifting" of the circle to its Universal Cover. every time it overflows, it moves to a new sheet of the cover.

When these two align at a convergent, the torus "locks" into a grid, detecting the geometric phase shift (rather than just measuring a distance).

so the same algorithm encodes a zero knowledge method to best approximations of different functions.

Trig case is the same object, replace multiplication with addition, \(\mathbb{R}^+/\langle b\rangle\) with \(S^1\) since \(a^q \approx b^p \quad \leftrightarrow \quad q\theta \approx 2\pi\). (different for each function see later)
All these computations are the same algorithm acting on different groups, with convergence limited by Diophantine structure.

simple flow:

1 Feeding a generator into a group action.
2 Tracking the orbit's failure to close (the cocycle).
3 Waiting for the moment of Topological Simplicity (the gap collapse).
4 Extracting the symmetry parameters (p,q) of the finite group that best mimics the infinite flow.


the algorithm is not necesarilly efficient as it is, but the optimizations actually make the logic more clear:

track only the active gaps rather than a full history( O(N) space to O(1) )!, so it only cares about the current state and the boundary conditions.

avoiding the BigInt explosion: by working with the reduced value (the "leftovers" in the group action) rather than ie a raw power 2^1000000 , it essentially perfors modular exponentiation in the continuous domain, tracking the phase of the rotation separate from the number of laps. (the order of the points dosnt change)

-Python implementation for the logarithm case, simple version dosnt handle arguments in the 0–1 range, provides the list of consecutive convergents found, excluding the first one if integer.


def mla(a, b, max_q):
    if b <= 1 or a < 1:
        return []
    if a == 1:
        return ["0/1"]  # log_b(1) = 0
    if a == b:
        return ["1/1"]  # log_b(b) = 1

 for p in results]
    results = []
    link, lower, upper = a, 1, b
    p, q = 1, 1
    while q < max_q:
        while link < 1:
            link *= b; p += 1
        while link > b:
            link /= b; p += 1
        if q == 1:
            H = b / link; p += p - 1
        q += 1
        if link == b:
            results.append(f"{p-1}/1"); break
        if lower < link < upper:
            commas = [link/lower, upper/link]
            if (max(commas) - 1) / (min(commas) - 1) <= 2:
                results.append(f"{p}/{q}")
            lower, upper = (link, upper) if link < H else (lower, link)
        link *= a
    return results


(Dual cyclic structure at convergents)

Let \(\alpha \in \mathbb{R}\setminus \mathbb{Q}\) with continued fraction convergent \(p/q\). Consider the rotation sequence \(r_x = \{x\alpha\}\in [0,1),\quad x=1,\dots,q\),

and let \(\sigma\) be the permutation that sorts \(r_x\) in increasing order: \(r_{\sigma(1)} < r_{\sigma(2)} < \cdots < r_{\sigma(q)}\).

Then:

(Index cycle) \(\sigma\) is an arithmetic progression modulo \(q\): \(\sigma(k) \equiv k\cdot p^{-1} \pmod q\),

where \(p^{-1}\) is the multiplicative inverse of \(p\) modulo \(q\).


(Overflow cycle / floor terms) Writing \(x\alpha = y_x + r_x\) with \(y_x=\lfloor x\alpha\rfloor\), the sequence \(y_{\sigma(k)}\) (as \(k=1,\dots,q\)) takes exactly two adjacent values that differ by 1 and forms \(q\) samples from a cycle in \(\mathbb{Z}/p\mathbb{Z}\) whose step is \(q^{-1}\pmod p\).


(Gap control) The consecutive differences \(r_{\sigma(k+1)}-r_{\sigma(k)}\) take two values (the “short” and “long” gaps) determined by \(p/q\); this is the Three Gap Theorem specialized at a convergent, where only two gaps appear across the first \(q\) points.

 
Proof sketch

Because \(p/q\) is a convergent, \(\|q\alpha-p\|\) is minimal in its range. The return map of the rotation by \(\alpha\) to the set of \(q\) points partitions the circle into two gap lengths. (TGT gives gap sizes.)


The order of the points is governed by the congruence \(x\alpha \approx x\frac{p}{q}\) modulo \(1\), so sorting by \(x\alpha\) matches sorting by \(xp/q\) modulo \(1\). The residues \(xp \bmod q\) run through \(\mathbb{Z}/q\mathbb{Z}\) in steps of \(p\), hence the sorting permutation is
\(\sigma(k)\equiv k\cdot p^{-1}\ (\bmod q)\). (This gives gap order.)


The floor/overflow terms satisfy \(y_{\sigma(k+1)}-y_{\sigma(k)} \in \{\lfloor p/q\rfloor, \lceil p/q\rceil\}\),

and, tracked modulo \(p\), they advance by \(q^{-1}\) because
\(q\alpha\approx p\) forces \(p\) steps in \(\alpha\)-space to coincide with \(q\) wraps. This yields the dual \(\mathbb{Z}/p\mathbb{Z}\) cycle.
 
(Logarithmic case via an isomorphism)

Let \(a,b>1\) and set \(\beta=\log_b{a}\). Define the multiplicative sequence \(R_x \;=\; a^x\, b^{-y_x} \in [1,b),\qquad y_x=\big\lfloor x\beta\big\rfloor\).

Then \(R_x = b^{\{x\beta\}}\). Hence ordering the \(R_x\) is the same as ordering \(\{x\beta\}\), and all claims of the Theorem transfer with \(\alpha=\beta\):

Sorting indices are \(\sigma(k)\equiv k\cdot p^{-1}\ (\bmod q)\) for any convergent \(p/q\) of \(\beta\).

The overflow exponents \(y_{\sigma(k)}\) form \(q\) samples from a \(\mathbb{Z}/p\mathbb{Z}\) cycle with step \(q^{-1}\ (\bmod p)\).

The MLA(mesopotamian logarithm algorithm) is just rotation on the circle in log-coordinates, so its consecutive outputs are convergents whenever you use windows aligned with denominators \(q\).


Every Diophantine approximation problem generates a dual pair of cyclic group structures, one indexed by the convergent’s denominator, one by its numerator. a lattice of relationships between \((p,q)\) and their inverses modulo each other. It's not just about inequalities, but about explicit dynamical group actions tied to each irrational. For irrational \(\alpha\), from the overflow sequence of its natural dynamical action produces exactly the convergents of its continued fraction.


----

The version for computing roots then just swaps the rotation template, the "shadow" equation.
Instead of \(a^q \approx b^p\) as in logs; for \(p/q \approx a^{1/n}\)  the orbit and cocycle become \( p^n  \approx q^n a\)

----

for trig functions theres no mapping needed, (its the reason of why the other ones work at all), working directly with points on the unit interval as the angle, then you extract the quadrant and thats it, the specific function sin, cos, is recovered

----draft


Logarithm Case Recap:

Irrational: \(\alpha = \log_b(a)\)

Convergent: \(p/q \approx \log_b(a) \Rightarrow q \times log_b(a) \approx p \Rightarrow a^q \approx b^p\)

Sequence: \(r_x = a^x \times b^{y_x}\) reduced to \([1, b)\). This is like looking at \(a^x\) "modulo \(b\)" multiplicatively. \(y_x\) tracks the 'overflow' exponent of \(b\). (This highlights the absence of a standard shorthand notation for multiplicative modulus; see link)

Sorted Sequence: Sorting \(r_x\) for \(x=1\ldots q\) gives indices \(x_k\).

Structure: \(x_k\) forms \(\mathbb{Z}/q\mathbb{Z}\) (gen \(p^{-1} \mod q\)), \(y_{x_k}\) forms \(q\) terms of \(\mathbb{Z}/p\mathbb{Z}\) (gen \(q^{-1} \mod p\)).






Trigonometric Case (Angle)

Irrational: We need an irrational quantity related to the angle. Let's use \(\alpha = \theta / (2\pi)\). (assuming \(\theta\) is not a rational multiple of \(2\pi\)).

Convergent: \(p/q \approx \theta / (2\pi) \Rightarrow q \times \theta / (2\pi) \approx p \Rightarrow q\theta ≈ 2\pi p\). This means \(q\) rotations by \(\theta\) is close to \(p\) full \(2\pi\) rotations.

Sequence: What's the equivalent of \(a^x \mod 1:b\)? The natural analogue for angles is \(x\theta \mod 2\pi\). Let \(r_x = (x\theta) \pmod{2\pi}\). This sequence lives in \([0, 2\pi)\).

What is \(y_x\) ? It's the number of full rotations removed: \(xθ = y_x \times 2\pi + r_x\). So, \(y_x = \lfloor x\theta / (2\pi)\rfloor\).

Sorted Sequence: Sort \(r_x\) for \(x=1\ldots q\) to get indices \(x_k\).

Structure: \(x_k\) forms \(\mathbb{Z}/q\mathbb{Z}\) (gen \(p^{-1} \mod q\)), \(y_{x_k}\) forms \(q\) terms of \(\mathbb{Z}/p\mathbb{Z}\) (gen \(q^{-1} \mod p\)).




This directly mimics the log case by replacing the multiplicative group \((\mathbb{R}^+, \cdot)\) modulo \(b\) with the additive group \(\mathbb{R} \mod 2\pi\) (the circle group \(S^1\)). The relationship \(q\theta \approx 2\pi p\) is the direct analogue of \(a^q \approx b^p\). The Three Gap Theorem describes the structure of the sorted \(r_x\) values (the points \(x\theta \mod 2\pi\) on the circle), and their ordering is intimately linked to the continued fraction convergents \(p/q\). The generators likely arise from the relationship \(q(p'/q') - p(q'/q') = \pm \)1 between consecutive convergents.


(Need to test which inverse/element works. The structure \(p_{n-1} q_n - p_n q_{n-1} = (-1)^n\) from continued fractions is key here, likely determining the specific generators.)


TGT Details:
The three gap theorem says that for any irrational number \(\alpha\) and any positive integer \(n\), the set of fractional parts \(\{k\alpha\}\) (that is, \(k\alpha \bmod 1\)) for \(k = 1, 2, ..., n\), when arranged on the unit interval \([0,1)\), divides it into at most three distinct gap sizes. It also connects \(\alpha\) and the k values where gap changes relates to its continued fraction expansion. This algorithm uses a logarithmic isomorphism instead of \(k\alpha \bmod 1\); for instance, with \(\log_b(a)\), it looks at the modular remainders of exponential sequences \(a^x \cdot b^{y_x} \in (1, b]\), effectively rotating the \(a^x\) sequence within a modular space of \(b^{y_x}\). It detects when gaps change, marking that a convergent of the continued fraction expansion has been found. As the location of the change narrows, it focuses on comparing only the most recent gaps in that area.

This live demo calculates a few example convergents and renders one of the earlier ones. By default, it’s set to log2(3), showing a list of 10 convergents up to 1054/665, with the graphic displaying the fractional part of 19/12. (7/12)




No comments:

Post a Comment

Spectral Congruence & Pitch Cyclicity

Pitch cyclicity (including octave equivalence) can be understood as an emergent property of spectral self‑similarity under frequency scaling...