foundry-j / spec /J_API.md
SNAPKITTYWEST's picture
October 2026 main drop: mirror from GitHub
fadf040 verified
|
Raw History Blame Contribute Delete
6.88 kB

Foundry F1 — Pure-J Core API Surface

Mapping of the C++ mathematical surface to J Core verbs/nouns. No implementation. Names, ranks, and domains only. Preferred license for derivative pure-J work: AGPL-3.0.

Convention: J ranks — 0 atom, 1 list/vector, 2 table/matrix, 3 rank-3. Domains name the mathematical carrier.


Nouns (data carriers)

Noun Rank Domain Maps from
Fp 0 atom u64 with (0 \le v < p) Goldilocks::Elem
FpVec 1 list of Fp batch Elem arrays
Signature 1 length-2 integer list (delta_source; delta_target) pmc::Signature
PMatEntry 1 boxed/record: sign (±1), Signature, row, col pmc::PMatEntry
PMat 1–2 sparse list of PMatEntry plus shape (rows; cols) pmc::PMat
Jacobian 2 real matrix ( n\times n ) vector<vector<double>> spectral input
State 1 real vector ( x_t ) recurrence state
Weights 1 length-2 (or dim) real list for Ξ / Λ schedule row xi_schedule_[t], lambda_schedule_[t]
StepInfo 0–1 record: step, q, epsilon, n_xi, n_lam, projected, residual pmc::StepInfo
SpectralResult 0–1 record: spectral_radius, contractive, gershgorin_bound, power_iter_bound, used_power_iteration SpectralGovernor::Result
AceCert 0–1 record: lipschitz_upper, safety_margin, tail_bound, certified pmc::AceCertificate
Tier 0 enum atom T1..T4 pmc::Tier
GatePolicy 0 enum: PassThrough / Suppress / Hold / Attenuate pmc::GatePolicy
P64 1 length-64 list of first primes pmc::P_64
PrimeMask 0 u64 bitmask over P64 indices pmc::PrimeMask
ResonanceWord 0 u64 packed class∥payload pmc::ResonanceWord

Named constant nouns (must match PROPERTIES.md)

Noun Rank Value source
GOLDILOCKS_PRIME / p 0 0xFFFFFFFF00000001 = 18446744069414584321
EPSILON_FOLD 0 0xFFFFFFFF = (2^{32}-1) (fold; README name EPSILON)
K_MAX 0 133144
MAX_DRIFT 0 300000000000000000
PIRTM_MAGIC 0 0x7F504952
PHI 0 1.618033988749895
tier_epsilon 0←0 T1:0.10 T2:0.05 T3:0.02 T4:0.01

Verbs — Goldilocks field

Verb Rank Domain → range Meaning
fp_reduce 0→0 u64 → Fp conditional ( x-p ) if ( x\ge p )
fp_add 0 0→0 Fp×Fp → Fp ( (a+b)\bmod p )
fp_sub 0 0→0 Fp×Fp → Fp ( (a-b)\bmod p )
fp_mul 0 0→0 Fp×Fp → Fp mulmod via reduction identity
fp_mulmod 0 0→0 u64×u64 → u64 128-bit product + fold ( \mathrm{lo}+\mathrm{hi_lo}\cdot\varepsilon-\mathrm{hi_hi} )
fp_pow 0 0→0 Fp×u64 → Fp square-and-multiply
fp_inv 0→0 Fp → Fp ( a^{p-2} ) (Fermat)
fp_add_batch 1 1→1 FpVec×FpVec → FpVec elementwise add
fp_mul_batch 1 1→1 FpVec×FpVec → FpVec elementwise mul

Verbs — PMAT

Verb Rank Domain → range Meaning
pmat_new 0 0→1 (rows;cols) → empty PMat allocate shape
pmat_insert 1 0 0 0 1→1 PMat,row,col,sign,Signature → PMat|fail domain checks ±1 and bounds
pmat_validate_grading 1→0 PMat → boolean global grading (stated identity)
pmat_conservation 1→1 PMat → Signature Σ monomials
pmat_compose 1 1→1 PMat×PMat → PMat sign multiply + monomial accumulate
pmat_frobenius 1→0 PMat → real ( \sqrt{#entries} )

Verbs — Spectral governor

Verb Rank Domain → range Meaning
gershgorin_bound 2→0 Jacobian → real max disk (
gershgorin_check 2 0→1 Jacobian,ε → SpectralResult contractive iff bound ( <1-\varepsilon )
power_iteration 2 0 0→0 Jacobian,max_iters,tol → real dominant |eigenvalue|
power_iteration_check 2 0 0→1 Jacobian,ε,max_iters → SpectralResult same contractive predicate
spectral_analyze 2 0→1 Jacobian,ε → SpectralResult Gershgorin then optional power iter

Verbs — Banach recurrence

Verb Rank Domain → range Meaning
tier_eps 0→0 Tier → real margin ε
synth_weights 0 0 1→2 max_steps,Tier,profile,[primes] → (Ξ schedule; Λ schedule) Uniform/Harmonic/LogDecay; 0.7/0.3 of ( q^\star )
soft_project 1 1 0 0→1 1 Ξ,Λ,q,ε → scaled Ξ,Λ scale by ( (1-\varepsilon)/q ) if ( q>1-\varepsilon )
rec_step 1 1 1 1→1 1 x, Ξ, Λ, g ; T ; p_op → (x_next; StepInfo) ( x'=\Xi x+\Lambda T(x)+g ) then project
rec_run 1 0→2 x0, config, T, p_op → StepInfo history until residual < tol or max_steps
residual_l2 1 1→0 x_next, x_t → real ( |x'-x|_2 )
q_estimate 1 1 1 1→0 Ξ,Λ,x,Tx → real ( |\Xi|_\infty+|\Lambda|_\infty\cdot|T| ) (coded max-abs form)

Transform T and projector p_op are rank-1→1 function nouns (hooks), not fixed verbs.


Verbs — Emission / CSL / certify (math-adjacent)

Verb Rank Domain → range Meaning
emit_apply 1 1 0 0→1 out,prev,q,policy×ε → out' PassThrough/Suppress/Hold/Attenuate
csl_neutrality 1 1 0→0 x,Tx,ε → verdict pairwise Lip-style bound
csl_beneficence 1 1 0 0→0 x,Tx,residual,ε → verdict norm & residual growth
csl_commutation 1 0→0 x; T; filter; ε → verdict filter∘T ≈ T∘filter
ace_safety_margin 0 0→0 max_q,ε → real ( (1-\varepsilon)-\max_q )
ace_tail_bound 0 0→0 tail_norm,max_q → real ( \mathrm{tail}/(1-\max_q) ) or ∞
ace_certify 1 0→1 StepInfo list, delta → AceCert margin ≥ delta

Coverage map (C++ → J)

C++ module J surface
goldilocks.h/cpp fp_* verbs + Fp / FpVec
pmat.h/cpp pmat_* + Signature / PMat
spectral.h/cpp gershgorin_* / power_* / spectral_analyze
recurrence.h/cpp rec_* / synth_weights / soft_project / q_estimate
types.h constants constant nouns + tier_eps
gate.h/cpp (math) emit_apply / csl_*
certify.h/cpp ace_*

Non-math orchestration (SHA-256 WORM bytes, linker PIRTM, audit JSON) is out of this pure-J math Core inventory except where PROPERTIES.md cites seal-chain / consensus narrative for completeness.