Research source · python

check_metric_group.py

publications/metric-group-regularity/audit/check_metric_group.py

181 lines. Source is displayed for inspection; it is not executed by this page.

File fingerprint

SHA-256: 71effd379389fda1c3251b56b5f1309d2f6cf0694a660004a9536f2c5a80fcc5

#!/usr/bin/env python3
"""Exact finite regression audit for the metric-group publication.

The program checks finite rational instances of the identities used by the
proof. It deliberately does not claim to prove any infinite theorem.
"""

from __future__ import annotations

from fractions import Fraction
from itertools import product


def h(c: Fraction, x: Fraction) -> Fraction:
    return x / (c + x)


def h_inv(c: Fraction, x: Fraction) -> Fraction:
    if not 0 <= x < 1:
        raise ValueError(f"inverse input outside [0,1): {x}")
    return c * x / (1 - x) if x else Fraction(0)


def encode(c: Fraction, digits: tuple[int, ...] | list[int]) -> Fraction:
    value = Fraction(0)
    for digit in reversed(digits):
        value = Fraction(digit) + h(c, value)
    return value


def decode_finite(c: Fraction, value: Fraction, limit: int = 128) -> list[int]:
    digits: list[int] = []
    residual = value
    for _ in range(limit):
        digit = residual.numerator // residual.denominator
        digits.append(digit)
        fractional = residual - digit
        if fractional == 0:
            return digits
        residual = h_inv(c, fractional)
    raise AssertionError(f"decoder did not terminate: c={c}, value={value}")


def omega(c: Fraction, n: int) -> Fraction:
    value = Fraction(1)
    for _ in range(n):
        value = h(c, value)
    return value


def pad(values: list[int], length: int) -> list[int]:
    return values + [0] * (length - len(values))


def star_rational(c: Fraction, x: Fraction, y: Fraction) -> Fraction:
    dx = decode_finite(c, x)
    dy = decode_finite(c, y)
    length = max(len(dx), len(dy))
    return encode(c, tuple(a ^ b for a, b in zip(pad(dx, length), pad(dy, length))))


def expected_left_limit(a: list[int], q: list[int]) -> Fraction:
    k = max(i for i, digit in enumerate(a) if digit)
    prefix = [a[i] ^ q[i] for i in range(k)]
    boundary = ((a[k] - 1) ^ q[k]) + 1
    return encode(Fraction(2), tuple(prefix + [boundary]))


def observed_left_probe(a: list[int], q: list[int], large: int) -> Fraction:
    k = max(i for i, digit in enumerate(a) if digit)
    left = list(a)
    left[k] -= 1
    left[k + 1] = large
    for i in range(k + 2, len(left)):
        left[i] = 0
    return encode(Fraction(2), tuple(x ^ y for x, y in zip(left, q)))


def main() -> None:
    iterate_checks = 0
    for c in (Fraction(1), Fraction(2), Fraction(3)):
        for n in range(9):
            got = omega(c, n)
            if c == 1:
                want = Fraction(1, n + 1)
            else:
                want = (c - 1) / (c ** (n + 1) - 1)
            assert got == want, (c, n, got, want)
            iterate_checks += 1

    subadditivity_checks = 0
    words = list(product(range(4), repeat=3))
    for c in (Fraction(1, 2), Fraction(1), Fraction(2), Fraction(3)):
        for left in words:
            for right in words:
                joined = tuple(a ^ b for a, b in zip(left, right))
                assert encode(c, joined) <= encode(c, left) + encode(c, right)
                subadditivity_checks += 1

    rational_roundtrips = 0
    for c in (Fraction(1), Fraction(2), Fraction(3)):
        for denominator in range(1, 25):
            for numerator in range(3 * denominator + 1):
                value = Fraction(numerator, denominator)
                digits = decode_finite(c, value)
                assert encode(c, tuple(digits)) == value, (c, value, digits)
                rational_roundtrips += 1

    sample_identities = {
        "half_star_one": star_rational(Fraction(2), Fraction(1, 2), Fraction(1)),
        "one_star_four_thirds": star_rational(
            Fraction(2), Fraction(1), Fraction(4, 3)
        ),
        "star1_separator": star_rational(
            Fraction(1), Fraction(2, 5), Fraction(1, 3)
        ),
        "star2_separator": star_rational(
            Fraction(2), Fraction(2, 5), Fraction(1, 3)
        ),
    }
    assert sample_identities == {
        "half_star_one": Fraction(3, 2),
        "one_star_four_thirds": Fraction(1, 3),
        "star1_separator": Fraction(3, 7),
        "star2_separator": Fraction(1, 7),
    }

    c_half = Fraction(1, 2)
    gap_checks = 0
    for position in range(12):
        label = encode(c_half, tuple([0] * position + [1]))
        assert label > Fraction(1, 2)
        gap_checks += 1
    assert h(c_half, Fraction(1, 2)) == Fraction(1, 2)

    boundary_probes = 0
    boundary_failures = 0
    finite_points = [
        [a0, a1, a2, 0, 0]
        for a0 in range(5)
        for a1 in range(5)
        for a2 in range(5)
        if any((a0, a1, a2))
    ]
    translators = [
        [q0, q1, q2, 0, 0]
        for q0 in range(5)
        for q1 in range(5)
        for q2 in range(5)
    ]
    for point in finite_points:
        k = max(i for i, digit in enumerate(point) if digit)
        for translator in translators:
            boundary_probes += 1
            predicted = expected_left_limit(point, translator)
            observed = observed_left_probe(point, translator, 10**8)
            if abs(observed - predicted) >= Fraction(1, 10**6):
                boundary_failures += 1
            direct = encode(
                Fraction(2), tuple(x ^ y for x, y in zip(point, translator))
            )
            tail_zero = all(digit == 0 for digit in translator[k + 1 :])
            m = point[k]
            cancellation = tail_zero and (
                (m ^ translator[k]) == (((m - 1) ^ translator[k]) + 1)
            )
            if cancellation != (predicted == direct):
                boundary_failures += 1
    assert boundary_failures == 0

    print(f"iterate identities: {iterate_checks}")
    print(f"finite XOR-subadditivity pairs: {subadditivity_checks}")
    print(f"integer-parameter rational roundtrips: {rational_roundtrips}")
    print(f"sharp-threshold gap probes: {gap_checks}")
    print(f"translation-boundary probes: {boundary_probes}")
    print(f"translation-boundary failures: {boundary_failures}")
    print("metric-group finite audit: PASS")


if __name__ == "__main__":
    main()