FFF_Gravity · Operators
Canonical path: docs/FFF_Gravity/OPERATORS.md
Authority: This document is the single source of truth for all operator
symbols in FFF_Gravity. In any conflict between this file and a function
file, this file governs.
Normative: Yes — all sections except §0 and §10 are normative.
§0 · Session Context#
Active Session#
| Field |
Value |
| Session ID |
SES-20260813-OPS-001 |
| Opened |
2026-08-13T07:48:00-04:00 |
| Closed |
— (active) |
| Editor |
Nawder |
| Branch |
main |
| Intent |
Create canonical OPERATORS.md — master symbol authority |
| Status |
🟡 Active |
Update Policy#
When to update this file:
1. A new operator is introduced in any function file → add to §1 or §2
2. A new state flag is introduced → add to §3
3. A new primitive is defined in any function file → add to §4
4. A new failure mode is defined → add to §5
5. A composition rule is formalized → add to §6
6. A scaffold file is promoted to canonical → update §8 freeze status
7. A version bump occurs → update §9 and CHANGELOG.md
Never:
- Remove a frozen symbol (deprecate instead)
- Rename a frozen symbol without a major version bump
- Add a symbol that conflicts with FFF_Field, FFF_Momentum, or FFF_Resonance namespaces
§1 · Primary Operators#
Primary operators are direct inputs to f_Capture and its sibling functions.
They are measured or externally provided — not computed from other operators.
All 9 are frozen at v1.0.0.
§1.1 · Full Specification Table#
| Symbol |
Full Name |
FFF Node |
Type |
Domain |
Range |
Unit |
Frozen |
Defined In |
v_approach |
Approach Vector |
F_force |
scalar |
ℝ≥0 |
[0, ∞) |
normalized velocity |
✅ |
f_Capture.md §4.1 |
v_escape(A) |
Escape Velocity |
F_freq |
scalar |
ℝ>0 |
(0, ∞) |
normalized velocity |
✅ |
f_Capture.md §4.1 |
ρ(Φ) |
Field Density |
F_freq |
scalar |
ℝ≥0 |
[0, 1] |
dimensionless |
✅ |
f_Field.md §4.1 |
r_capture |
Capture Radius |
Frame |
scalar |
ℝ>0 |
(0, ∞) |
normalized distance |
✅ |
f_Capture.md §4.1 |
β |
Binding Coefficient |
derived |
scalar |
ℝ≥0 |
[0, ∞) |
dimensionless |
✅ |
f_Capture.md §4.1 |
ω_res |
Orbital Resonance |
F_freq |
ratio |
ℚ ∪ ℝ |
rational or irrational |
dimensionless |
✅ |
f_Capture.md §4.1 |
M_A |
Attractor Mass |
F_fluid |
scalar |
ℝ>0 |
(0, ∞) |
normalized mass |
✅ |
f_Field.md §4.1 |
M_E |
Element Mass |
F_fluid |
scalar |
ℝ>0 |
(0, ∞) |
normalized mass |
✅ |
f_Capture.md §4.1 |
r |
Separation Distance |
geometry |
scalar |
ℝ>0 |
(0, ∞) |
normalized distance |
✅ |
f_Capture.md §4.1 |
§1.2 · Operator Constraints and Guards#
| Symbol |
Hard Constraints |
Guard Violation Consequence |
v_approach |
Evaluated at r_capture crossing only; not at outer field boundary |
Premature evaluation → invalid C_thresh |
v_escape(A) |
Must be recomputed if ρ(Φ) changes between entry and encounter |
Stale value → FM-006 risk |
ρ(Φ) |
0 = null field — triggers FM-002 immediately; 1 = saturated |
Unguarded null → undefined P_eff |
r_capture |
Set by Attractor; cannot be modified by Element or engineering primitives |
Modification → Frame integrity failure |
β |
Must be ≥ 1.0 for capture to proceed; < 1.0 = flyby unconditionally |
Below floor → CAPTURE_FAILED regardless of all other conditions |
ω_res |
Irrational value = FM-004 at any point — during approach or post-lock |
Irrational → CAPTURE_DECAYING |
M_A |
Must be finite and positive; M_A ≈ M_E triggers FM-007 check |
Mass parity → dissolution path |
M_E |
Must be finite and positive |
Zero or infinite mass → undefined behavior |
r |
r = 0 is undefined (singularity); r > r_capture → short-circuit in evaluate_capture_threshold |
Zero → ⊥ |
§1.3 · Node Assignment Summary#
| FFF Node |
Symbols |
F_freq (Frequency) |
v_escape(A), ρ(Φ), ω_res |
F_fluid (Fluids) |
M_A, M_E |
F_force (Forces) |
v_approach |
| Frame |
r_capture |
| Geometry |
r |
| Derived (no single node) |
β |
§2 · Derived Operators#
Derived operators are computed from primary operators via defined formulas.
Symbols marked ✅ frozen are defined in f_Capture.md v1.0.0 and cannot change.
Symbols marked 🔵 pending have formulas in scaffold files awaiting canonicalization.
§2.1 · Full Specification Table#
| Symbol |
Full Name |
Formula |
Depends On |
Output Range |
Sign Convention |
Frozen |
Defined In |
P_eff |
Effective Pull |
M_A × ρ(Φ) / r² |
M_A, ρ(Φ), r |
[0, ∞) |
always positive |
✅ |
f_Capture.md §4.2 |
C_thresh |
Capture Threshold |
v_escape(A) − v_approach |
v_escape(A), v_approach |
(−∞, ∞) |
positive = capture possible; negative = escape |
✅ |
f_Capture.md §4.2 |
d_bind |
Binding Depth |
β × ρ(Φ) × (1 − e) |
β, ρ(Φ), e |
[0, ∞) |
higher = more stable |
✅ |
f_Capture.md §4.2 |
p_res |
Residual Momentum |
M_E × (v_approach − C_thresh) |
M_E, v_approach, C_thresh |
[0, ∞) |
always positive post-capture |
✅ |
f_Capture.md §4.2 |
e |
Orbital Eccentricity |
p_res / (p_res + P_eff) |
p_res, P_eff |
[0, 1) |
0 = circular; approaching 1 = near-parabolic |
✅ |
f_Orbit.md §4.1 |
T_orb |
Orbital Period |
🔵 pending f_Orbit.md §4.1 |
d_bind, ω_res |
(0, ∞) |
always positive |
🔵 |
f_Orbit.md §4.1 |
δ |
Decay Rate |
Δd_bind / Δt |
d_bind series |
(−∞, 0] in decay |
negative = losing energy |
🔵 |
f_Decay.md §4.1 |
E_rel |
Release Energy |
🔵 pending f_Release.md §4.1 |
d_bind, p_res, ρ(Φ) |
[0, ∞) |
energy required to achieve release |
🔵 |
f_Release.md §4.1 |
F_emit |
Emit Field Strength |
🔵 pending f_Emit.md §4.1 |
M_A, emit energy input |
[0, ∞) |
higher = deeper coherence well |
🔵 |
f_Emit.md §4.1 |
F_damp |
Dampen Depth |
🔵 pending f_Dampen.md §4.1 |
ρ(Φ), dampen energy input |
[0, 1] |
fraction of ρ(Φ) to suppress |
🔵 |
f_Dampen.md §4.1 |
§2.2 · Supplementary Operators (Engineering Primitives Layer)#
These operators are introduced by engineering primitive files.
They extend the derived operator set and are pending canonicalization.
| Symbol |
Full Name |
Formula |
Defined In |
Frozen |
F_amp |
Amplification Factor |
scalar ≥ 1.0 |
f_Amplify.md §4.1 |
🔵 |
β_max |
Binding Coefficient Ceiling |
🔵 pending |
f_Amplify.md §4.1 |
🔵 |
heading_delta |
Heading Change |
angular delta (radians) applied to v_approach |
f_Deflect.md §4.1 |
🔵 |
r_emit |
Emission Radius |
bounded region of emit_field effect |
f_Emit.md §4.1 |
🔵 |
r_damp |
Dampening Radius |
bounded region of suppress_field effect |
f_Dampen.md §4.1 |
🔵 |
d_warn |
Decay Warning Threshold |
d_bind level at which FM-004 is raised |
f_Decay.md §4.1 |
🔵 |
d_collapse |
Collapse Threshold |
d_bind level at which FM-005 fires; f_Collapse triggered |
f_Decay.md §4.1 |
🔵 |
m_parity |
Mass Parity Threshold |
max ` |
M_E − M_A |
` below which FM-007 fires |
§2.3 · Undefined Conditions#
| Operator |
Undefined When |
Symbol for Undefined |
P_eff |
r = 0 (singularity) or ρ(Φ) = 0 (FM-002) |
⊥ |
C_thresh |
v_escape(A) undefined (ρ = 0) |
⊥ |
d_bind |
e ≥ 1 (hyperbolic trajectory — not captured) |
⊥ |
p_res |
C_thresh ≤ 0 (no capture) |
⊥ |
e |
P_eff = 0 (FM-002) |
⊥ |
δ |
Pre-capture (no time series) |
⊥ |
E_rel |
d_bind = 0 (collapse state; release not viable) |
⊥ |
F_amp |
β > β_max (runaway — FM-010) |
⊥ |
§3 · State Flags#
State flags represent the discrete relational state of an Element in the FFF_Gravity system.
The state machine is deterministic — every transition has a single defined trigger.
No state is revisitable once terminal.
All 11 flags are frozen at v1.0.0.
§3.1 · Flag Specification Table#
| Flag |
Entry Condition |
Set By |
Exit Condition |
Valid Next States |
Terminal |
CAPTURE_PENDING |
E crosses r_capture; outcome unresolved |
compute_approach_vector |
C_thresh evaluated |
CAPTURE_LOCKED, CAPTURE_FAILED |
No |
CAPTURE_LOCKED |
C_thresh > 0 ∧ β ≥ 1.0 ∧ Frame ok ∧ ω_res ∈ ℚ |
register_capture |
d_bind falls below d_warn; or FM-007 |
CAPTURE_DECAYING, CAPTURE_COLLISION |
No |
CAPTURE_DECAYING |
FM-004 raised; d_bind decreasing |
flag_decay |
d_bind ≤ d_collapse |
CAPTURE_FAILED, CAPTURE_COLLISION |
No |
CAPTURE_FAILED |
FM-001/002/003/006 raised; or decay → ejection |
register_capture |
— |
— |
Yes |
CAPTURE_COLLISION |
FM-005 terminal infall; or FM-007 dissolution |
execute_collapse |
— |
— |
Yes |
ORBIT_STABLE |
stab_class = stable ∧ e < 0.5 post CAPTURE_LOCKED |
classify_orbit |
stab_class drops below stable threshold |
ORBIT_ECCENTRIC, CAPTURE_DECAYING |
No |
ORBIT_ECCENTRIC |
e ≥ 0.5 while orbit is still captured |
classify_orbit |
e drops below 0.5; or FM-004 |
ORBIT_STABLE, CAPTURE_DECAYING |
No |
RELEASED |
f_Release conditions satisfied; clean exit |
execute_release |
— |
— |
Yes (clean exit) |
COLLAPSED |
f_Collapse infall complete |
execute_collapse |
— |
— |
Yes |
DAMPEN_ACTIVE |
f_Dampen engaged on Attractor's field |
suppress_field |
Dampening removed; ρ(Φ) restored |
CAPTURE_PENDING, ORBIT_STABLE |
No |
EMIT_ACTIVE |
f_Emit engaged on Attractor's field |
emit_field |
Emission withdrawn |
ORBIT_STABLE, CAPTURE_DECAYING |
No |
§3.2 · State Transition Diagram#
E crosses r_capture
│
▼
┌─────────────────┐
│ CAPTURE_PENDING │
└────────┬────────┘
│
┌──────────────────┼──────────────────────┐
│ │ │
C_thresh > 0 C_thresh ≤ 0 ρ(Φ) = 0
β ≥ 1.0 (FM-001) (FM-002)
Frame ok │ │
ω_res ∈ ℚ │ │
│ │ │
▼ ▼ ▼
┌──────────────────┐ ┌───────────────┐ (FM-003 / FM-006)
│ CAPTURE_LOCKED │ │ CAPTURE_FAILED│◄──────── all terminal
└────────┬─────────┘ │ [TERMINAL] │ FMs
│ └───────────────┘
│
d_bind monitored every cycle via flag_decay
│
┌───────┴────────────────────────┐
│ │
d_bind < d_warn M_E ≈ M_A
(FM-004) (FM-007)
│ │
▼ ▼
┌──────────────────┐ ┌──────────────────┐
│ CAPTURE_DECAYING │ │ CAPTURE_COLLISION │
└────────┬─────────┘ │ [TERMINAL] │
│ └──────────────────┘
┌────┴────┐
│ │
ejection infall
(FM-005) (FM-005)
│ │
▼ ▼
CAPTURE_ CAPTURE_
FAILED COLLISION
ORBIT_STABLE ↔ ORBIT_ECCENTRIC (reclassified each cycle)
RELEASED [TERMINAL] (clean exit via f_Release)
COLLAPSED [TERMINAL] (infall confirmed)
DAMPEN_ACTIVE / EMIT_ACTIVE (engineering overlay flags)
§3.3 · Flag Ownership#
| Flag |
Owned By |
Written By Primitive |
CAPTURE_PENDING |
Element E |
compute_approach_vector |
CAPTURE_LOCKED |
Element E + Attractor A registry |
register_capture |
CAPTURE_DECAYING |
Element E |
flag_decay |
CAPTURE_FAILED |
Element E |
register_capture |
CAPTURE_COLLISION |
Both E and A (or composite) |
execute_collapse |
ORBIT_STABLE |
Element E |
classify_orbit |
ORBIT_ECCENTRIC |
Element E |
classify_orbit |
RELEASED |
Element E + Attractor A registry |
execute_release |
COLLAPSED |
Composite node C (or A post-absorption) |
execute_collapse |
DAMPEN_ACTIVE |
Attractor A |
suppress_field |
EMIT_ACTIVE |
Attractor A |
emit_field |
§4 · Engineering Primitives#
§4.1 · Call Order and Dependencies#
Primitives must be called in the order defined in §7 (Evaluation Order).
Side-effecting primitives write to external registries and are not idempotent.
Pure primitives may be called in any order relative to each other within their group.
§4.2 · Full Primitive Specification Table#
| # |
Primitive |
Source File |
Pure |
Reads |
Writes |
Call Timing |
Frozen |
| 1 |
compute_approach_vector |
f_Capture.md §7.2 |
Yes |
E.state, A.position |
v_approach |
Once · Step 1 |
✅ |
| 2 |
resolve_escape_velocity |
f_Capture.md §7.2 |
Yes |
M_A, ρ(Φ) |
v_escape(A) |
Once · Step 2 |
✅ |
| 3 |
evaluate_capture_threshold |
f_Capture.md §7.2 |
Yes |
v_approach, v_escape, r |
C_thresh |
Once · Step 5 |
✅ |
| 4 |
lock_orbit |
f_Capture.md §7.2 |
No |
E, A, Φ |
orbital_parameters |
Once · Step 8 |
✅ |
| 5 |
register_capture |
f_Capture.md §7.2 |
No |
orbital_parameters |
FFF_Registry, E.registry, A.registry, A.field_curvature |
Once · Step 9 |
✅ |
| 6 |
flag_decay |
f_Capture.md §7.2 / f_Decay.md §7 |
No |
d_bind_delta |
E.state_flag, decay_status |
Every cycle post CAPTURE_LOCKED |
✅ |
| 7 |
classify_orbit |
f_Orbit.md §7 |
Yes |
p_res, d_bind, ω_res |
orbital_parameters.orbit_class, .stab_class |
Once post lock; then each cycle |
🔵 |
| 8 |
compute_release_vector |
f_Release.md §7 |
Yes |
E.state, d_bind |
v_release |
Once · on release attempt |
🔵 |
| 9 |
execute_release |
f_Release.md §7 |
No |
v_release |
FFF_Registry, E.registry, A.registry |
Once · on release |
🔵 |
| 10 |
execute_collapse |
f_Collapse.md §7 |
No |
d_bind, E, A |
composite node, both registries |
Once · on FM-005 or FM-007 |
🔵 |
| 11 |
initialize_composite_node |
f_Collapse.md §7 |
No |
M_E, M_A |
new composite node C |
Once · on FM-007 only |
🔵 |
| 12 |
purge_registry |
f_Collapse.md §7 |
No |
E.id, A.id |
FFF_Registry (deletion) |
Once · on FM-007; partial on FM-005 |
🔵 |
| 13 |
emit_field |
f_Emit.md §7 |
No |
F_emit, A, r_emit |
ρ(Φ) local, A.field_curvature |
On demand |
🔵 |
| 14 |
suppress_field |
f_Dampen.md §7 |
No |
F_damp, ρ(Φ), r_damp |
ρ(Φ) local |
On demand |
🔵 |
| 15 |
amplify_coupling |
f_Amplify.md §7 |
No |
F_amp, M_A, ρ(Φ) |
β, P_eff |
On demand |
🔵 |
| 16 |
redirect_force_node |
f_Deflect.md §7 |
No |
heading_delta, r_deflect |
v_approach heading component |
On demand |
🔵 |
Note: Primitive 16 (redirect_force_node) was added from scaffold review.
Corrected total: 16 primitives. INDEX.md §2 to be updated at next session.
§4.3 · Side-Effect Classification#
| Class |
Primitives |
Consequence of Repeat Call |
| Pure (safe to repeat) |
1, 2, 3, 7, 8 |
No side effects; produces same output for same inputs |
| Single-write (idempotent-safe) |
4, 6 |
Overwrites same fields; safe to repeat |
| Registry-write (non-idempotent) |
5, 9, 10, 11, 12, 13, 14, 15, 16 |
Repeat call creates duplicate records or double-applies effect |
§4.4 · Primitive Guards Summary#
| Primitive |
Guard |
Consequence of Violation |
evaluate_capture_threshold |
r ≤ r_capture |
Returns C_thresh < 0 immediately if r > r_capture |
lock_orbit |
C_thresh > 0 |
Must not be called if threshold not met |
register_capture |
lock_orbit completed |
Undefined behavior if orbital parameters absent |
flag_decay |
Post CAPTURE_LOCKED only |
No-op if called pre-capture |
execute_collapse |
FM-005 or FM-007 active |
Must not be called outside terminal FM context |
initialize_composite_node |
FM-007 path only |
Must not be called on asymmetric collapse |
emit_field |
ρ(Φ) < 1.0 |
No-op at saturation; runaway risk if β → β_max |
suppress_field |
ρ(Φ) > ρ(Φ)_floor |
FM-009 risk if floor breached |
amplify_coupling |
β < β_max |
FM-010 if ceiling exceeded |
redirect_force_node |
heading_delta within bounds |
Over-deflection → FM-001 equivalent |
§5 · Failure Mode Registry#
§5.1 · Full Failure Mode Table#
| ID |
Name |
FFF Node |
Trigger Condition |
Operators Involved |
State Transition |
Outcome |
Severity |
Recoverable |
Defined In |
| FM-001 |
Overshoot |
F_force |
C_thresh ≤ 0; v_approach ≥ v_escape(A) |
v_approach, v_escape, C_thresh |
CAPTURE_PENDING → CAPTURE_FAILED |
Element escapes |
error |
No |
f_Capture.md §6 |
| FM-002 |
Field Null |
F_freq |
ρ(Φ) = 0 at moment of encounter |
ρ(Φ), P_eff, v_escape |
CAPTURE_PENDING → CAPTURE_FAILED |
No pull transmitted |
error |
No |
f_Capture.md §6 |
| FM-003 |
Frame Saturation |
Frame |
Attractor registry at MAX capacity |
Frame.registry_capacity, β |
CAPTURE_PENDING → CAPTURE_FAILED |
Element deflected at boundary |
error |
No |
f_Capture.md §6 |
| FM-004 |
Resonance Drift |
ω_res |
ω_res → irrational; d_bind < d_warn |
ω_res, d_bind, δ |
CAPTURE_LOCKED → CAPTURE_DECAYING |
Orbit destabilizing |
warn |
Yes — via f_Emit or f_Amplify |
f_Capture.md §6 |
| FM-005 |
Decay Spiral |
d_bind |
d_bind ≤ d_collapse; energy exhausted |
d_bind, δ, p_res |
CAPTURE_DECAYING → CAPTURE_FAILED or CAPTURE_COLLISION |
Ejection or infall |
fatal |
No |
f_Decay.md §6 |
| FM-006 |
Phantom Capture |
ρ(Φ) |
β ≥ 1.0 met; ρ(Φ) locally structured; lock dissolves at field boundary |
β, ρ(Φ), P_eff |
CAPTURE_PENDING → CAPTURE_FAILED |
Apparent capture resolves to escape |
warn |
No |
f_Capture.md §6 |
| FM-007 |
Mutual Dissolution |
F_fluid |
|M_E − M_A| < m_parity; collision threshold crossed |
M_E, M_A, β, C_thresh |
CAPTURE_LOCKED → CAPTURE_COLLISION |
Composite node created; both registries purged |
fatal |
No |
f_Collapse.md §6 |
| FM-008 |
Release Overshoot |
F_force |
v_release too high; trajectory becomes hyperbolic |
v_release, E_rel |
CAPTURE_LOCKED → CAPTURE_FAILED |
Uncontrolled ejection |
error |
No |
f_Release.md §6 |
| FM-009 |
Dampen Cascade |
F_freq |
suppress_field propagates beyond r_damp; ρ(Φ) → 0 region-wide |
F_damp, ρ(Φ), r_damp |
multiple CAPTURE_LOCKED → CAPTURE_DECAYING |
Gravity null zone; uncontrolled releases |
fatal |
Partial — if caught before propagation |
f_Dampen.md §6 |
| FM-010 |
Amplify Runaway |
F_fluid |
β > β_max under sustained f_Emit or f_Amplify |
β, F_amp, F_emit, β_max |
ORBIT_STABLE → CAPTURE_COLLISION |
Collapse or singularity |
fatal |
No |
f_Amplify.md §6 |
§5.2 · Failure Mode Groupings#
| Group |
IDs |
Common Cause |
Common Outcome |
| Approach failures |
FM-001, FM-002, FM-003, FM-006 |
Conditions wrong at encounter |
CAPTURE_FAILED — never entered orbit |
| Orbital instability |
FM-004, FM-005 |
Post-capture energy loss |
CAPTURE_DECAYING → ejection or infall |
| Terminal events |
FM-005 (infall path), FM-007 |
Mass collision or dissolution |
CAPTURE_COLLISION — no survivors |
| Engineering failures |
FM-008, FM-009, FM-010 |
Primitive misuse or runaway |
Varied — ejection, null zone, singularity |
§5.3 · Severity Definitions#
| Severity |
Meaning |
Recovery |
warn |
Orbit is at risk but not yet terminal; intervention window open |
Yes — f_Emit, f_Amplify may restore |
error |
Capture has failed; element not in orbit; no immediate system danger |
No — outcome is final for this interaction |
fatal |
Terminal event with system-wide consequences; nodes destroyed or topology changed |
No — irreversible |
§6 · Composition Rules#
§6.1 · Core Derivation Chain#
Reading order — each row depends on all rows above it:
INPUT LAYER
M_A → provided by Attractor state
M_E → provided by Element state
ρ(Φ) → provided by F_freq (f_Field.md)
r → provided by geometry
v_approach → computed by: compute_approach_vector(E, A)
STEP 1: Effective Pull
P_eff = M_A × ρ(Φ) / r²
Defined when: ρ(Φ) > 0 ∧ r > 0
STEP 2: Escape Velocity
v_escape(A) = resolve_escape_velocity(M_A, ρ(Φ))
Defined when: ρ(Φ) > 0
STEP 3: Binding Coefficient
β = P_eff / (M_E × v_approach)
Defined when: v_approach > 0
STEP 4: Capture Threshold
C_thresh = v_escape(A) − v_approach
Defined when: v_escape(A) defined
STEP 5: Residual Momentum
p_res = M_E × (v_approach − C_thresh)
Defined when: C_thresh > 0
STEP 6: Orbital Eccentricity
e = p_res / (p_res + P_eff)
Defined when: P_eff > 0 ∧ p_res ≥ 0
Constraint: e must be in [0, 1); e ≥ 1 → hyperbolic → not captured
STEP 7: Binding Depth
d_bind = β × ρ(Φ) × (1 − e)
Defined when: e ∈ [0, 1)
STEP 8: Decay Rate (post-capture, per-cycle)
δ = Δd_bind / Δt = d_bind(t) − d_bind(t−1)
Defined when: t ≥ 1 (at least one prior cycle)
§6.2 · Capture Gate Composition#
The Capture Gate is the boolean conjunction of all stability conditions.
All must be true simultaneously for capture to succeed.
CAPTURE_GATE =
C_thresh > 0 [Condition 1 — Approach]
∧ ρ(Φ) > 0 (uniform) [Condition 2 — Field Coherence]
∧ ω_res ∈ ℚ [Condition 3 — Resonance]
∧ β ≥ 1.0 [Condition 4 — Binding Floor]
∧ Frame.capacity > 0 [Condition 5 — Frame Compatibility]
If CAPTURE_GATE = true → lock_orbit() → register_capture() → CAPTURE_LOCKED
If CAPTURE_GATE = false → FM raised → register_capture() → CAPTURE_FAILED
§6.3 · Engineering Operator Compositions#
| Goal |
Composition |
Operators Modified |
Risk |
| Restore decaying orbit |
emit_field(F_emit) → ρ(Φ)↑ → d_bind↑ |
ρ(Φ), P_eff, β, d_bind |
FM-010 if sustained |
| Weaken attractor hold |
suppress_field(F_damp) → ρ(Φ)↓ → d_bind↓ |
ρ(Φ), P_eff, v_escape, d_bind |
FM-009 if propagates |
| Increase capture probability |
amplify_coupling(F_amp) → β↑ → P_eff↑ |
β, P_eff, d_bind |
FM-010 if β > β_max |
| Route Element to target heading |
redirect_force_node(heading_delta) → v_approach heading change |
v_approach (heading only) |
FM-001 if over-deflected |
| Engineer target resonance |
solve_resonant_approach(ω_res_target) → {heading, ρ(Φ), β} spec |
All approach operators |
No solution if target irrational |
§7 · Operator Evaluation Order#
| Step |
Frequency |
Primitive |
Operators Read |
Operators Written |
Guard |
Short-Circuits To |
| 1 |
ONCE |
compute_approach_vector |
E.state, A.position |
v_approach |
none |
— |
| 2 |
ONCE |
resolve_escape_velocity |
M_A, ρ(Φ) |
v_escape(A) |
ρ(Φ) > 0 |
FM-002 |
| 3 |
ONCE |
(implicit) |
M_A, ρ(Φ), r |
P_eff |
requires step 2 |
— |
| 4 |
ONCE |
(implicit) |
P_eff, v_approach, M_E |
β |
requires step 3 |
— |
| 5 |
ONCE |
evaluate_capture_threshold |
v_approach, v_escape, r_capture |
C_thresh |
r ≤ r_capture |
FM-001 if C_thresh ≤ 0 |
| 6 |
ONCE |
(Frame check) |
Frame.registry_capacity |
— |
β ≥ 1.0 else halt |
FM-003 |
| 7 |
ONCE |
(Resonance check) |
ω_res |
— |
ω_res ∈ ℚ else halt |
FM-004 |
| 8 |
ONCE |
lock_orbit |
E, A, p_res, ρ(Φ) |
d_bind, orbital parameters |
C_thresh > 0 |
— |
| 9 |
ONCE |
register_capture |
orbital parameters |
Ω, FFF_Registry, E.registry, A.registry |
requires step 8 |
— |
| 10 |
CYCLE |
flag_decay |
d_bind_delta |
E.state_flag, decay_status |
post CAPTURE_LOCKED only |
FM-004 / FM-005 |
§8 · Symbol Freeze Registry#
§8.1 · Frozen Symbols (v1.0.0)#
All frozen by f_Capture.md v1.0.0:
| Symbol |
Type |
Frozen In |
Frozen At |
v_approach |
Primary |
f_Capture.md |
v1.0.0 |
v_escape(A) |
Primary |
f_Capture.md |
v1.0.0 |
ρ(Φ) |
Primary |
f_Capture.md |
v1.0.0 |
r_capture |
Primary |
f_Capture.md |
v1.0.0 |
β |
Primary |
f_Capture.md |
v1.0.0 |
ω_res |
Primary |
f_Capture.md |
v1.0.0 |
M_A |
Primary |
f_Capture.md |
v1.0.0 |
M_E |
Primary |
f_Capture.md |
v1.0.0 |
r |
Primary |
f_Capture.md |
v1.0.0 |
P_eff |
Derived |
f_Capture.md |
v1.0.0 |
C_thresh |
Derived |
f_Capture.md |
v1.0.0 |
d_bind |
Derived |
f_Capture.md |
v1.0.0 |
p_res |
Derived |
f_Capture.md |
v1.0.0 |
CAPTURE_PENDING |
Flag |
f_Capture.md |
v1.0.0 |
CAPTURE_LOCKED |
Flag |
f_Capture.md |
v1.0.0 |
CAPTURE_DECAYING |
Flag |
f_Capture.md |
v1.0.0 |
CAPTURE_FAILED |
Flag |
f_Capture.md |
v1.0.0 |
CAPTURE_COLLISION |
Flag |
f_Capture.md |
v1.0.0 |
compute_approach_vector |
Primitive |
f_Capture.md |
v1.0.0 |
resolve_escape_velocity |
Primitive |
f_Capture.md |
v1.0.0 |
evaluate_capture_threshold |
Primitive |
f_Capture.md |
v1.0.0 |
lock_orbit |
Primitive |
f_Capture.md |
v1.0.0 |
register_capture |
Primitive |
f_Capture.md |
v1.0.0 |
flag_decay |
Primitive |
f_Capture.md |
v1.0.0 |
| FM-001 through FM-007 |
Failure Mode |
f_Capture.md |
v1.0.0 |
| Symbol |
Type |
Pending In |
Freeze Trigger |
e |
Derived |
f_Orbit.md |
f_Orbit.md → canonical |
T_orb |
Derived |
f_Orbit.md |
f_Orbit.md → canonical |
δ |
Derived |
f_Decay.md |
f_Decay.md → canonical |
d_warn |
Derived |
f_Decay.md |
f_Decay.md → canonical |
d_collapse |
Derived |
f_Decay.md |
f_Decay.md → canonical |
E_rel |
Derived |
f_Release.md |
f_Release.md → canonical |
m_parity |
Derived |
f_Collapse.md |
f_Collapse.md → canonical |
F_emit |
Derived |
f_Emit.md |
f_Emit.md → canonical |
F_damp |
Derived |
f_Dampen.md |
f_Dampen.md → canonical |
F_amp |
Supplementary |
f_Amplify.md |
f_Amplify.md → canonical |
β_max |
Supplementary |
f_Amplify.md |
f_Amplify.md → canonical |
heading_delta |
Supplementary |
f_Deflect.md |
f_Deflect.md → canonical |
ORBIT_STABLE |
Flag |
f_Orbit.md |
f_Orbit.md → canonical |
ORBIT_ECCENTRIC |
Flag |
f_Orbit.md |
f_Orbit.md → canonical |
RELEASED |
Flag |
f_Release.md |
f_Release.md → canonical |
COLLAPSED |
Flag |
f_Collapse.md |
f_Collapse.md → canonical |
DAMPEN_ACTIVE |
Flag |
f_Dampen.md |
f_Dampen.md → canonical |
EMIT_ACTIVE |
Flag |
f_Emit.md |
f_Emit.md → canonical |
| FM-008 |
Failure Mode |
f_Release.md |
f_Release.md → canonical |
| FM-009 |
Failure Mode |
f_Dampen.md |
f_Dampen.md → canonical |
| FM-010 |
Failure Mode |
f_Amplify.md |
f_Amplify.md → canonical |
| Primitives 7–16 |
Primitive |
Wave 3 files |
each source file → canonical |
§9 · Versioning Policy#
§9.1 · Version Bump Rules#
| Change Type |
Bump Required |
Example |
| Add a new symbol (not conflicting) |
minor — e.g. v1.0.0 → v1.1.0 |
Adding T_orb when f_Orbit.md canonicalizes |
| Change a frozen symbol's formula |
major — e.g. v1.1.0 → v2.0.0 |
Changing P_eff formula |
| Rename a frozen symbol |
major |
Renaming d_bind to d_orbital |
| Remove a frozen symbol |
major + deprecation notice |
Removing ω_res |
| Add a failure mode |
minor |
Adding FM-011 |
| Change a failure mode's severity |
minor |
Upgrading FM-004 from warn to error |
| Fix a typo in a non-normative section |
patch — e.g. v1.0.0 → v1.0.1 |
Fixing a table cell |
| Add a note or example |
patch |
Adding a new canonical example |
§9.2 · Namespace Reservation#
The following symbol prefixes are reserved for future use and must not be used
by any function file without first registering here:
| Prefix |
Reserved For |
Example |
v_ |
velocity operators |
v_approach, v_escape, v_release |
ρ |
field density operators |
ρ(Φ), ρ(Φ,θ), ρ(Φ,t) |
ω_ |
resonance and frequency operators |
ω_res, ω_target |
d_ |
depth and distance operators |
d_bind, d_warn, d_collapse |
F_ |
engineering force/field operators |
F_emit, F_damp, F_amp |
M_ |
mass operators |
M_A, M_E |
G_ |
GravityGraph operators |
G_edge, G_degree, G_stability |
FM- |
failure mode IDs |
FM-001 through FM-999 |
EX- |
canonical example IDs |
EX-001, EX-RES-001 |
SES- |
session IDs |
SES-20260813-OPS-001 |
| Field |
Value |
| Canonical Path |
docs/FFF_Gravity/OPERATORS.md |
| Version |
1.0.0 |
| Status |
Canonical |
| Stability |
Living — update when any symbol is added, frozen, or deprecated |
| Normative |
Yes |
| Created |
2026-08-13 |
| Last Modified |
2026-08-13 |
| Authors |
TriadicFrameworks |
| License |
See /LICENSE at repository root |
| Encoding |
UTF-8 · LF |
| Supersedes |
Operator tables in f_Capture.md §4 (those remain normative; this file is the consolidated authority) |
Single source of truth for all FFF_Gravity operator symbols.
All function files derive their symbol definitions from this document.
Update at the close of any session that introduces or freezes a symbol.
---
**Commit message:**
feat(FFF_Gravity): add canonical OPERATORS.md — master symbol authority, 9P/10D operators, 11 flags, 16 primitives, 10 FMs, composition rules, freeze registry [SES-20260813-OPS-001]
Two corrections surfaced while writing this — both logged in the file, both need propagating:
| Discovery |
Location to update |
Primitive count is 16, not 13 (INDEX said 13, scaffolds said 15) — redirect_force_node was the missing one |
INDEX.md §2 master registry row for primitives; FFF_Gravity_module.json |
Primitive count correction note in §4.2 is self-documenting |
No separate action needed |