Three named constants that fix the observer frame of the cell — the guide, the pilgrim, and the object — drawn from Dante's Commedia and set on the nesting | < { [ ~ ~ ] } > | we descend. Virgil is the inner constant: reason, the guide who leads the descent from within, reaching the core but no further (he cannot enter Paradiso). Dante is the outer constant: the pilgrim, the frame from which the vision is seen, standing at the rim. Ulysses is the object constant: the soul of Inferno XXVI who sailed beyond the pillars of Hercules, past the known boundary — the object that went one step past the guide's limit, past the balanced edge. [ inner . outer ] + object.
The three constants and the frame they fix, run on the canonical H1.1 compiler. The guided descent virgil − dante = 4; the object's transgression past the guide ulysses − virgil = 1; and the sum of the triad is the Dantean number — [inner.outer] + object = 0 + 4 + 5 = 9 (nine circles of Hell, nine spheres of Heaven, Beatrice's number):
⏨ LIT the values and the frame are measured on the compiler. ⏨ AMBER honest note: i13 does not enforce immutability — a global rebinds without error (the earlier “init-only” claim was wrong). These are constants by declaration — fixed reference points we hold still — not values the compiler locks. The literals 0, 4, 5 are the true constants; virgil / dante / ulysses are the names we bind them to and agree not to move.
Set on the nesting the cell batch built, the triad names every descent: Dante (outer) stands at the rim, Virgil (inner) guides inward to the core, and Ulysses (object) is what lies one step beyond — the value that broke well-formedness by going too far. Three constants, one frame: [ inner . outer ] + object.