- floorDiv returns int64 instead of int32 to match avmClamp signature
- instr.Arg wrapped in int64() for avmClamp/avmQ0Clamp calls
- Test expected value cast to int32
fix(julia): add Q16_SCALE export to Q16_16 module
AVM CI now tests: Python, Go, Rust, C, C++, Julia, R (7 languages)
Wolfram verify script extended to attempt all available language ports
and report status for each.
All ports verified against the same arithmetic spec:
- INT32_MAX, Q16 scale, negation involution, floor division
- .github/workflows/avm-ci.yml: runs Python, Go, Rust, C, C++ tests
on every push to AVM ISA files
- scripts/wolfram_verify.py: queries Wolfram Alpha to verify AVM
arithmetic (INT32_MAX, Q16 scale, negation involution, floor division)
- All 4 Wolfram verifications passing
- Python (10/10) and Rust tests passing on this workstation
- Verification receipt written to signatures/avm_verification_receipt.json
Test harnesses added for all remaining AVM ISA ports:
- C (9 tests): arithmetic, saturation, comparison, overflow, control flow, locals
- C++ (9 tests): same test suite with std::optional-based error handling
- Scala (9 tests): functional style with Option return
- Fortran (4 tests): add, div, saturation, control flow (minimal Fortran test)
- Octave/MATLAB (4 tests): basic operations test
Milestone: 10/12 ports have test harnesses. Coq still pending.
Python port rewritten to match spec:
- Added Q0_16, PUSH_Q0, PUSH_BOOL as separate opcodes
- Added V6 comparison (lt_q16_v6)
- Added floor division (Lean Int.ediv)
- Added stack depth limit (AVM_MAX_STACK = 1024)
- Added type checking in exec_prim
- All 10 tests passing
Go AVM port: added test_avm_test.go with 8 test cases
Milestone: Python → ✅, Go → 🔄
Julia port:
- Extended type tracking from Bool (is_q16) to Int8 tri-state (TYPE_BOOL/Q16/Q0)
- Added ADD_SAT_Q0 / SUB_SAT_Q0 primitive handling
- Added avm_q0_clamp for symmetric Q0_16 range [-32767, 32767]
R port:
- Added PRIM_ADD_Q0 / PRIM_SUB_Q0 primitives
- Added push_q0 instruction, make_q0 / is_q0 helpers
- Added avm_q0_clamp for symmetric Q0_16 range
- Fixed LOAD to preserve type tag on restore
All three ports now support the full AVM ISA type universe (Q0_16, Q16_16, Bool).
Fixes applied to Rust, Julia, and R AVM ISA ports:
1. Division rounding: use floor division (matching Lean Int.ediv)
2. Clamp range: symmetric [-2147483647, 2147483647] for Q16_16,
[-32767, 32767] for Q0_16 (preserves negation involution)
3. V6 sign-decomposition comparison for ltQ16
4. Stack depth limit: maxStackDepth = 1024 with StackOverflow error
5. Added AVM-specific constants and helpers to each port
All three ports now match the Lean reference specification.
- neon-startup.py: pre-creates one_time_tokens table to work around
GoTrue migration ordering bug
- Postgres podman lock contention resolved via system reset
- Infrastructure recovery documented
- neon-startup.sh: bash script for post-reboot recovery
- neon-startup.py: Python version with GoTrue migration fix
- Handles dependency order: Postgres → Redis → DB setup → GoTrue → AppFloyo → other
- Known issue: GoTrue migration ordering bug requires pre-running migrations
from the Docker image with template expansion before starting the container
New problems from outside the project:
- Catalan-Mihailescu: 3^2-2^3=1 only consecutive powers λ=6.18
- Fermat-Wiles: x^n+y^n=z^n no solutions n>2 λ=7.02
- Ramanujan taxicab: 1729=1^3+12^3=9^3+10^3 λ=4.85
All 21 deterministic, 21/21 signal detected
- HachimojiN8: n8_is_minimum had inverted truth (claimed allOk=true for N<8
but the theorem proves allOk=false for all N<8). Fixed statement.
- Tests: 9/9 Lean module tests passing (FeasibleSet, RRC Emit, Q16_16Manifold,
FixedPoint, SidonSets, InteractionGraphSidon, GoormaghtighEnumeration, HachimojiN8)
- Entry gate now checks GoormaghtighEnumeration (2 known Goormaghtigh collisions:
31 and 8191) as a cached-artifact check (heavy decide ~480K quadruples)
- SidonSets added to entry gate (Erdos bounds on Sidon sets)
SSO is handled by Authentik outpost on racknerd Caddy at
auth.researchstack.info. Homarr sits behind this outpost and
only sees already-authenticated traffic from the public URL.
Direct access via tailnet port 7575 uses credentials.