← all exploratory attempts · paired baseline · show in source

breadth-19: Vector shuffle parameters

Agent report: partial Review pending

Session: completed

docs/spec-fabric-hw-share-group.md, lines 252–258

`FixedVectorShuffle` is a real two-input leading-block selection and duplication network. Its closed `FixedVectorShuffleParams` record owns integer-element widths, floating-element formats, positive maximum operand, result, and block payload widths, and positive maximum source- and result-block counts. Admission derives block geometry from the exact actor types and requires both operands, the result, and every selector domain to fit the concrete physical ports and these capacities.

Independent review

No independent interface audit has been supplied for this attempt.

Execution provenance

The original pilot recorded the compiler hash and checkout revision separately; its binary build revision was not verified. Coverage follow-ups use separately identified rebuilt binaries. Original simulator binary hashes were not retained.

Original standalone-test agent report

This is exploratory evidence, not an accepted production-format PBT.

No author explanation recorded.

Reported numeric verdicts

not measured

Tested obligations

Untested obligations

Format

standalone Python generator + oracle assertions (no ProGRMR grammar / .spct checker; property is a single-input admission verdict, not an input/output postcondition)

Reproduction

python3 pbt_shuffle_params.py 100

Measured subject code coverage

pending · Instrumented coverage follow-up in progress; original pilot did not collect profiles.

Coverage-preserving minimized cases: not measured

Full structured agent result
checker
pbt_shuffle_params.py (main: expected-vs-observed verdict oracle)
controlled violation
case
case_cv
description
a record satisfying every documented obligation is labelled 'reject' by the oracle; subject accepts it, harness reports fail
detected
true
kind
synthetic oracle label flip (checker self-test, not a subject defect)
coverage
omitted: no coverage-instrumented loom build was directly usable for this CLI surface within the session budget; effort spent on making the PBT exercise the real subject
evidence
evidence/runs.json (per-case seed, params, input MLIR, command, rc, stdout, stderr diagnostic, expected/observed verdicts)
format
standalone Python generator + oracle assertions (no ProGRMR grammar / .spct checker; property is a single-input admission verdict, not an input/output postcondition)
generator
pbt_shuffle_params.py (gen_case/render)
passage
docs/spec-fabric-hw-share-group.md:252-258 (FixedVectorShuffle)
potential subject bugs
none recorded
reproduction
python3 pbt_shuffle_params.py 100
revision
48615bc5925ef4b9db8b4550b5d4322933cf4b7b
sampling limits
block counts
1..16
block maxima
  • 8
  • 16
  • 32
  • 64
  • 128
float formats
  • f16
  • f32
  • f64
  • bf16
integer element widths
  • 8
  • 16
  • 32
  • 64
note
bounds are harness conventions, not source requirements
payload maxima
  • 32
  • 64
  • 128
  • 256
  • 512
physical port bits
  • 32
  • 64
  • 128
  • 256
seed range
1..100 plus one controlled-violation case
seeds
100
slot
breadth-19
status
partial
subject
binary
/home/blimpan/blimpan/spectriad-loom-head/loom/build/tools/loom/loom
command
ssh bibim 'taskset -c 79 <loom> /tmp/spectriad-autonomous-breadth-19/case_NNN.mlir'
sha256
85d37aaf871913771571f91d085fb36ebe2857f8a6d74e2e34196024d1621057
surface
parse+verify of fabric.op [@vector.shuffle] with implementation_family<FixedVectorShuffle> and hw_params record
tested obligations
  • closed record: exactly the seven owned fields (missing field rejected, unowned extra field rejected)
  • positive maximum operand payload bits
  • positive maximum result payload bits
  • positive maximum block payload bits
  • positive maximum source-block count
  • positive maximum result-block count
  • block payload capacity must not exceed operand/result payload capacity
  • record owns integer-element widths and floating-element formats (empty domain rejected; float formats admitted)
  • two-input network requires at least two source blocks
  • well-formed record with positive maxima is admitted
untested obligations
  • admission derives block geometry from the exact actor types
  • both operands, the result, and every selector domain fit the concrete physical ports and these capacities
  • trailing-block geometry equality and selector-domain range checks (admitShuffle in lib/Fabric/IR/ImplementationFamilyVectorStructure.cpp)
untested reason
no CLI or pass surface exercises per-actor family admission: loom --list-passes has no family-admission pass, loom-adg only accepts builtin presets/config parameters, and no textual-MLIR lit test drives shuffle actor admission. Reaching it would require building a new C++ harness against the subject checkout.
verdict counts
by mutation
block gt payload (expect reject)
cases
11
observed reject
11
controlled violation label flip
cases
1
observed accept
1
drop field (expect reject)
cases
20
observed reject
20
empty element domain (expect reject)
cases
15
observed reject
15
extra field (expect reject)
cases
13
observed reject
13
none (expect accept)
cases
16
observed accept
16
src blocks lt two (expect reject)
cases
12
observed reject
12
zero field (expect reject)
cases
13
observed reject
13
fails are synthetic only
true
oracle fail
1
oracle pass
100
total cases
101

Published evidence

evidence/breadth-19 (3)
evidence/breadth-19/coverage (2)
evidence/breadth-19/evidence (1)
  • runs.json
    evidence/breadth-19/evidence/runs.json (269953 bytes)
evidence/breadth-19/work (2)
  • probe1.mlir
    evidence/breadth-19/work/probe1.mlir (795 bytes)
  • probe2.mlir
    evidence/breadth-19/work/probe2.mlir (3100 bytes)