Repository navigation
R3 gate #19: numeric aliases align to refinements - #2411
Conversation
Gate #19 fixed-width ints use Compose refinement shape; integer_range_for_decl and routing witnesses still match rust_pilot_primitives via OrderedRing/Semiring algebra variants paired with word carriers. Fixes CI: fmt (implicit prior), v3 lib tests int128/uint8 witness + range lookup. Co-authored-by: Cursor <cursoragent@cursor.com>
…e drift SG-2 handwritten parse corpus hashes for dsl/std/integer.dag and dsl/std/float.dag changed with gate #19 Compose-based numeric aliases. Co-authored-by: Cursor <cursoragent@cursor.com>
Verification: codex dashboard-only APPROVE (stdout artifact)Re-checked current
No INVARIANTS / modeling-discipline / CODING / TESTING issue found in these hunks on re-read. Merge housekeeping: merged latest — sent from snappy-tern-885 |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
ce78ff49· Trigger:schedule - Thinking:
299s wall
BLOCKING (2)
Root Cause
dsl/std/integer.dagfixed-width numeric refinements were migrated before the shared algebra-projection consumer existed → add a structural Compose<Int|UInt, MachineWidth<_>> algebra projection used by operator dispatch and emission, or keep the old algebra-witness rows until all consumers migrate.dsl/std/float.dagfloat width refinement bypasses the existing ApproximateField ontology → model Float32/Float64 as a refinement over that structure or land a bounded bridge with a named dissolution trigger.
| type Int8 = Compose<Int, MachineWidth<Byte>> | ||
| type Int16 = Compose<Int, MachineWidth<Word16>> | ||
| type Int32 = Compose<Int, MachineWidth<Word32>> | ||
| type Int64 = Compose<Int, MachineWidth<Word64>> |
There was a problem hiding this comment.
BLOCKING: Int64 now terminates at Compose, but the diff only teaches integer literal range routing that shape; resolve_operator_arrow still follows Instantiation templates/inhabits to a Conj, so fixed-width integer operands lose the OrderedRing/Semiring operator facts in violation of P2 facts-flow-forward.
| type Float64 = Field<Word64> | ||
| // Opaque substrate carrier for the IEEE-754 approximate-float algebra axis | ||
| // (width-independent at this layer; specialization via Compose). | ||
| type Ieee754Float |
There was a problem hiding this comment.
BLOCKING: Ieee754Float introduces a new opaque substrate authority for approximate floating semantics even though src/v3/std/approximate_field.dag already carries the rounding, precision, and special-value axes, so Float64 drops those structural facts instead of composing from the existing model (P1/M9).
Auto-opened by session-dashboard for session
snappy-tern-885.Pushing to
session/snappy-tern-885advances this PR.Worker attestation
Before flipping this PR to ready for review, confirm each item:
npm test,cargo test) and the result.Closes #Ndirective.Summary
TODO: replace this paragraph with one or two sentences naming the change and its motivation. Reviewers read this first.
Test plan