Codex audit · phase 2 · 10_codex_audit_phase2.md

Codex Audit Phase 2

Scope: second-phase PUM toolkit audit after notes/08_codex_audit.md. Read-only audit except for this note.

1. New-symbol verification

Checked pum_core/symbols.py against exact Fraction recomputation.

Result: the formulas for the newly appended symbols evaluate as encoded, but the count/citation metadata needs cleanup.

Symbol Encoded value Independent check Status
SUN_OCTAVE 1,728,000 SUN * 2 = 864000 * 2; also AETHER * 12 OK value; citation issue
LIGHT_DIAMETER 288,000 AETHER * 2 OK
LIGHT_TIMES_11 1,600,000 144000 * 100/9 OK
MATTER_HALF 1,728,000 MATTER / 2; also SUN * 2 OK
AETHER_NINTH_FIFTHS 64,800 AETHER * 9/20; also GREAT_YEAR * 5/2 OK
MATTER_DIV_AETHER_TO_MATTER_TENTH 38,880 MATTER * 9/800; also 432000 / (100/9) OK
RFEU_DIV_3 43,200 129600 / 3 OK
LIGHT_DAY 1,440 144 * 10; minutes/day OK
PUM_PI_TIMES_4 628318530717959/250000000000000 encoded decimal approximation times 4 OK as approximation
PUM_KHEOPS_HYPOT 51.84 5184/100 = 1296/25 OK; duplicates PYRAMID_ANGLE_KHEOPS value
PUM_135_DEG 135 literal OK
LIGHT_PER_MATTER 1/24 AETHER / MATTER OK
MUSIC_DIV_11 24 (800/3) / (100/9) OK

Findings:

2. Code-correctness spot checks

Seeds:

Element algorithm:

Parser checks in pum_core/verify.py:

Claim Status
AETHER / 5.555.. = GREAT_YEAR OK
SUN / 11.111.. = 77760 OK
144000 * 11.111.. = LIGHT_TIMES_11 OK
MUSIC_C / 11.111.. = 24 OK
SUN * 2 = SUN_OCTAVE OK

Parser note: repeating decimals require explicit ... Bare 11.111 is treated as finite 11111/1000, by design.

Audit CSV:

3. Delta-map recomputation

Recomputed every pum_delta/delta.csv row as:

delta_pct = (pum_value - measured_value) / measured_value * 100

Result: all 24 rows match the stored percentage to 4 decimal places. No incorrect computed deltas found.

Notes:

4. Tuning-system sanity

Checked pum_tuning/scales_manifest.json.

Dimension scale:

16-EDO:

5. Identities-CSV spot check

Sampled 20 random rows from notes/09_part17_identities.csv with deterministic seed 1729. Arithmetic was recomputed with Fraction; repeated 3-digit same-digit decimals such as 11.111 were treated as repeating for this CSV check.

Source line Equation Result
1475 7.5 / 846 = 0.00886524822695 ROUND OK
9009 13.0826552178265 x 17.95735129684264871 = 234.92983564197325961 ROUND OK
10388 9.25925925 / 11.111 = 0.8333 ROUND OK
9648 594 / 9 = 66 OK
5035 123456789 x 4 = 493,827,156 OK
1920 60 / 60 = 36,361.026083215205926 BAD; computes 1
5195 888,888.888 / 16 = 55,555.555 OK under repeating-decimal interpretation
7344 129,680 / 5.555 = 23,342.4 OK under repeating-decimal interpretation
11331 864,000/24 = 36,000 OK
8208 1.111 x 1.111 = 1.2345679012345432099 ROUND OK
6903 64,800 / 11.111 = 5,832 OK under repeating-decimal interpretation
5606 60,000/8=7,500 OK
4804 1,440,000 x 50 = 72,000,000 OK
11921 0.1949/60 = 0.0032488 ROUND OK
10360 360,000,000 / 32 = 270,000,000 BAD; computes 11,250,000
536 6.48 /16 = 4.05 BAD; computes 0.405
9643 297 / 9 = 33 OK
8321 1.3717421124828120713 x 360 = 493.82716049381234568 ROUND OK
8692 1.111 x 1.111 = 1.8816764231588078451 BAD; computes 100/81 approx 1.234567901
8088 16 / 22.5 = 0.7111 ROUND OK

Spot-check result: 16/20 are exact or acceptable rounded decimal matches; 4/20 are arithmetic failures in the mined CSV. This looks like source/OCR/table-fragment extraction noise, not a Fraction arithmetic issue.

6. Anything to flag for follow-up

  1. Fix symbol-count expectations: the live catalogue has 58 symbols, not 57. If 57 is intended, decide whether PUM_KHEOPS_HYPOT should merge with PYRAMID_ANGLE_KHEOPS, since both encode 51.84.
  2. Fix the SUN_OCTAVE citation from line 453 to a supporting line such as 444, 574, or 5010-5012.
  3. Fix the LIGHT_TIMES_11 citation from line 480-484 to line 469 plus line 474.
  4. Reconcile AETHER_NINTH_FIFTHS mention count. I get 143 literal 64,800 occurrences in the CSV, not 140.
  5. Add a validation/triage column to notes/09_part17_identities.csv or a derived QA artifact. The sample found obvious bad rows, so downstream consumers should not treat all mined identities as verified.
  6. Consider adding tests for verify.py covering explicit .. notation, because the distinction between finite 11.111 and repeating 11.111.. is critical.