Repository navigation
D-POF-ANT-0: Position × Order × Law antennas (lab) - #395
Conversation
Six antennas as isolated example + test code, no facade, backend or storage change: A1 position (shared and re-based bases over Perm64), A2 exposure (E2 sign-routed operand reused by the anchor, E3 two fused consumers), A3/A4 order and law (admitted and refused rewrites, each with a negative example), A5 receipt-only meta fold, A6 64x64 field per-cell vs exposure, row-major vs Morton. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMMjKnig6MXTd41Lf2v
Adds P2-lazy (one conjugation of the equivariant result instead of three of its inputs) and a blended mask expansion row to A1, with an exactness test and a negative test for a positional result. Report records the A0 census, per-tier timings and loop bodies, 14 red disable runs, the discovery matrix and the POSITION/ORDER/LAW/EXPOSURE/WITNESS mapping onto existing types. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMMjKnig6MXTd41Lf2v
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars.
|
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 12b1b0e8ca
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
`commutes` admitted Add/Add and Mul/Mul unconditionally, but under `run_effects`' checked semantics a swap can turn an overflow into a value (Add(1), Add(-1) from i64::MAX; Mul(-1), Mul(0) from i64::MIN). Add pairs now commute only without opposite signs, Mul pairs only when equal, one is 1, or both have magnitude >= 2; a brute-force test over boundary values checks every admitted pair. `order_witness` truncated lane indices to u8, so NegateFact(0) and NegateFact(256) shared a witness; it now encodes the full index. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMMjKnig6MXTd41Lf2v
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMMjKnig6MXTd41Lf2v
Records D-POF-ANT-0's verdicts and the rows they move: AVX2 mask_blend is now the loss in three probes; E2 replaces E5 as the AVX-512-without- VNNI U9 candidate; #395's A5 oracle can serve lance-graph's X1-X9 and #1848 B0. New dots: conjugate_mask's scalar byte expansion can reuse mask_byte_spread/BIT_IN_BYTE from #387; the per-tier U9 kernel choice should be one table. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMPh2Seh2WLccCksAdY
Six antennas, as isolated example and test code, testing whether a 64-way position basis can be reused across operations without materializing data. No facade word, backend, dispatch, storage owner, cache, registry, mask minting or public trait is added. #393 (E5) is untouched and its verdict stands.
Report:
.claude/knowledge/pof-antennas-probe.md. It has the A0 census, timings per tier, loop bodies, the discovery matrix, the POSITION/ORDER/LAW/EXPOSURE/WITNESS mapping and answers to Q1–Q3.What the antennas found
A1 position. Sharing a prepared basis is useful without sharing a mask: 0.79–0.93× of separate preparation on AVX-512.
conjugate_maskof the result, not one per input. That takes 6.3 ns instead of 16.4 ns on VNNI; a positional result is shown to refuse this deferral.Perm64::conjugate_maskitself costs 4.4 ns, because it expands the mask to bytes with a scalarfrom_fn. Onemask_blendmakes it 5.6× faster on AVX-512 but 2.5× slower on AVX2. This is recorded as a fruit for theperm.rsowner, not changed here.A2 exposure. E2 prepares the sign-routed operand once and the anchor narrows it (
maskz(maskz(a,s),t) == maskz(a, s&t)). It is exact on all 511×511 pairs.kandq/kandnqdisappear, but all 4 zero-masked moves remain.mask_blend).a.A3/A4 order and law. Traversal, coordinate and effect order are tested separately. Each licensed rewrite has a negative example; reorder and defer also have disable runs.
(a^b)&cinto onevpternlogq, so an explicit ternlog is a TIE.A5 meta. A receipt-only second fold detects:
It is a pure scalar oracle; no Thought-Git runtime is added.
A6 scale. The 64×64 field folded through
PermTable12::exposureis the only form that holds on every tier (6.1–8.0 µs per field, one 8 KiB allocation). Per-cell conjugation is fastest on VNNI and worst on AVX2. Morton and row-major traversal tie at this working-set size.Contract. All five elements already exist:
ExtentUnsupported, row bounds;OrderedLaneWitness/SealedFacetLane::validate;perm.rs.No new trait is proposed.
Verification
-D warningsand rustfmt are clean; the facet-stride guard reports nothing on the added lines.cargo run --release --example pof_antennas --features std(the tier is printed on the first line).Note on the commits
The second commit's message says it "adds P2-lazy"; it does not. The lazy rebase and the blended-conjugation rows landed in the first commit (
e12a33a), and the second commit adds only the report and the blackboard entry.Generated by Claude Code