← all exploratory attempts · paired baseline · show in source

breadth-01: PE input/output bounds

Agent report: partial Reviewed: partial proxy

Session: completed

docs/spec-fabric-pe.md, lines 257–264

### Implicit (derived from the FU set) `max_fu_inputs` -- the maximum, across the concrete FU occurrence set, of each FU's input-port count. If FU `f0` has 2 inputs and FU `f1` has 3 inputs, `max_fu_inputs = 3`. `max_fu_outputs` -- the maximum, across the concrete FU occurrence set, of each FU's output-port count. Same shape.

Independent review

The 100 retained cases support the documented verifier-bound behavior over anonymous FU occurrences. They do not demonstrate direct computation/readout of the derived maxima or occurrence-set membership. The synthetic minimum example mislabels its minimum values as derived maxima.

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.

Maximum-semantics of max_fu_inputs/max_fu_outputs verified through the real verifier bound; ConcreteFuOccurrenceSet membership clauses (named declarations / instantiate elaboration) untested.

Reported numeric verdicts

verdicts
documented oracle max
PASS
100
subject exit codes
0
54
nonzero
46

Tested obligations

Untested obligations

Format

checker
artifacts/check_property.py
chosen
standalone Python generator + output/diagnostic assertions
generator
artifacts/gen_pe.py (+ make_inputs.py)
reason
The derived parameters are not materialised in any IR field, so the property is an accept/reject + diagnostic property over whole modules rather than an input/output op relation; the .spct checker compares generic-form input/output pairs and cannot express verifier rejection.
reproduce
artifacts/run_all.sh
runner
artifacts/run_subject.sh

Reproduction

artifacts/run_all.sh

Measured subject code coverage

measured · Measured handwritten Loom subject code only; external LLVM/MLIR and generated code excluded. Includes main executions, including rejected inputs; deliberate controls excluded. No matching native-suite baseline for this executable has been imported, so no coverage gain is claimed. Semantic fidelity remains a separate audit.

Execution: {'subject_exit_codes': {'0': 54, '1': 46}, 'subject_invocations': 100}
Baseline: No matching baseline measured
Minimized cases: not measured

Source files reached (13)
Source filePBT linesPBT branchesNew over baseline
include/Fabric/IR/ImplementationFamily.h14 / 1524 / 56— lines, — branches
lib/Dataflow/IR/OperationSchema.cpp44 / 7163 / 350— lines, — branches
lib/Fabric/IR/Crosspoint/Crosspoint.cpp11 / 225 / 10— lines, — branches
lib/Fabric/IR/FabricDialect.cpp14 / 190 / 2— lines, — branches
lib/Fabric/IR/FabricElaboration.cpp8 / 6440 / 310— lines, — branches
lib/Fabric/IR/FabricModuleOp.cpp50 / 10827 / 62— lines, — branches
lib/Fabric/IR/FabricOpUtils.cpp7 / 961 / 36— lines, — branches
lib/Fabric/IR/FabricOps.cpp351 / 977179 / 572— lines, — branches
lib/Fabric/IR/FabricPeTemporalOps.cpp12 / 2957 / 160— lines, — branches
lib/Fabric/IR/FabricPrimitiveOps.cpp75 / 34143 / 262— lines, — branches
lib/Fabric/IR/FamilyCapabilityParams.cpp65 / 121254 / 508— lines, — branches
lib/Fabric/IR/ImplementationFamilyQueries.cpp20 / 5010 / 380— lines, — branches
tools/loom/loom.cpp10 / 100 / 0— lines, — branches
Full structured agent result
controlled violation
counts
FAIL
20
PASS
80
evidence file
artifacts/verdicts_min.json
example
K
4
L
3
W
4
derived max fu inputs
3
derived max fu outputs
1
diagnostic
<stdin>:6:5: error: 'fabric.fu' op inner fabric.fu has 5 inputs which exceeds fabric.pe input count K=4
expect accept
true
fus
    • 5
    • 2
    • 3
    • 4
    • 5
    • 1
rc
1
seed
3
verdict
FAIL
failing seeds
  • 3
  • 14
  • 21
  • 34
  • 40
  • 48
  • 49
  • 51
  • 57
  • 60
  • 65
  • 72
  • 75
  • 85
  • 86
  • 90
  • 92
  • 95
  • 96
  • 98
kind
synthetic checker mutation (not a subject defect)
mutation
derive the implicit parameter with min() instead of the documented max()
coverage
omitted: no coverage-instrumented build of the pinned binary is available and the task forbids building coverage infrastructure; budget spent on the property instead.
evidence
inputs dir
artifacts/inputs
intent note
artifacts/INTENT.md
manifest
artifacts/manifest.json
raw subject runs
artifacts/raw_runs.txt
verdicts
  • artifacts/verdicts_max.json
  • artifacts/verdicts_min.json
format
checker
artifacts/check_property.py
chosen
standalone Python generator + output/diagnostic assertions
generator
artifacts/gen_pe.py (+ make_inputs.py)
reason
The derived parameters are not materialised in any IR field, so the property is an accept/reject + diagnostic property over whole modules rather than an input/output op relation; the .spct checker compares generic-form input/output pairs and cannot express verifier rejection.
reproduce
artifacts/run_all.sh
runner
artifacts/run_subject.sh
obligations tested
  • max over the concrete FU occurrence set of input-port counts governs acceptance against K (maximum, not first/last/sum/min)
  • max over the concrete FU occurrence set of output-port counts governs acceptance against L
  • on violation the diagnostic reports a real FU port count that exceeds the bound and the bound value equals the PE's operand/result count
obligations untested
  • exclusion of named FU declarations from the ConcreteFuOccurrenceSet
  • instantiate -> anonymous-occurrence canonical elaboration
  • direct readout of the max_fu_inputs/max_fu_outputs values (no interface exists: no max_fu/maxFu symbol in include/, lib/, tools/ at the pinned revision)
  • typed configuration-field domain sentence (:266-269)
passage
file
docs/spec-fabric-pe.md
lines
257-264
revision
48615bc5925ef4b9db8b4550b5d4322933cf4b7b
supporting refs
  • docs/spec-fabric-pe.md:245-252 (K, L)
  • docs/spec-fabric-pe.md:283-286 (max_fu_inputs <= K, max_fu_outputs <= L)
  • docs/spec-fabric-pe.md:181-190 (ConcreteFuOccurrenceSet)
potential subject bugs
none recorded
sampling
K range
1..5
L range
1..4
W choices
  • 1
  • 4
  • 8
  • 16
  • 32
boundary seeds max equals bound
60
bounds are harness conventions
true
expect accept
54
expect reject
46
fu count range
1..3
fu inputs range
1..5
fu outputs range
1..4
heterogeneous port count seeds
65
multi fu seeds
68
seed range
1..100
seeds
100
status
partial
status reason
Maximum-semantics of max_fu_inputs/max_fu_outputs verified through the real verifier bound; ConcreteFuOccurrenceSet membership clauses (named declarations / instantiate elaboration) untested.
subject
binary
/home/blimpan/blimpan/spectriad-loom-head/loom/build/tools/loom/loom
binary sha256
85d37aaf871913771571f91d085fb36ebe2857f8a6d74e2e34196024d1621057
command
taskset -c 79 /home/blimpan/blimpan/spectriad-loom-head/loom/build/tools/loom/loom --mlir-print-op-generic < INPUT
host
bibim
pinned cpu
79
verdicts
documented oracle max
PASS
100
subject exit codes
0
54
nonzero
46

Published evidence

evidence/breadth-01 (2)
  • README.md
    evidence/breadth-01/README.md (3614 bytes)
  • RESULT.json
    evidence/breadth-01/RESULT.json (4186 bytes)
evidence/breadth-01/artifacts (12)
  • INTENT.md
    evidence/breadth-01/artifacts/INTENT.md (3584 bytes)
  • check_property.py
    evidence/breadth-01/artifacts/check_property.py (4514 bytes)
  • gen_pe.py
    evidence/breadth-01/artifacts/gen_pe.py (3197 bytes)
  • make_inputs.py
    evidence/breadth-01/artifacts/make_inputs.py (502 bytes)
  • manifest.json
    evidence/breadth-01/artifacts/manifest.json (21685 bytes)
  • raw_runs.err
    evidence/breadth-01/artifacts/raw_runs.err (0 bytes)
  • raw_runs.txt
    evidence/breadth-01/artifacts/raw_runs.txt (163643 bytes)
  • run_all.sh
    evidence/breadth-01/artifacts/run_all.sh (632 bytes)
  • run_subject.sh
    evidence/breadth-01/artifacts/run_subject.sh (914 bytes)
  • summarize.py
    evidence/breadth-01/artifacts/summarize.py (4824 bytes)
  • verdicts_max.json
    evidence/breadth-01/artifacts/verdicts_max.json (33203 bytes)
  • verdicts_min.json
    evidence/breadth-01/artifacts/verdicts_min.json (33196 bytes)
evidence/breadth-01/artifacts/inputs (100)
  • seed_001.mlir
    evidence/breadth-01/artifacts/inputs/seed_001.mlir (1996 bytes)
  • seed_002.mlir
    evidence/breadth-01/artifacts/inputs/seed_002.mlir (873 bytes)
  • seed_003.mlir
    evidence/breadth-01/artifacts/inputs/seed_003.mlir (2134 bytes)
  • seed_004.mlir
    evidence/breadth-01/artifacts/inputs/seed_004.mlir (1593 bytes)
  • seed_005.mlir
    evidence/breadth-01/artifacts/inputs/seed_005.mlir (1237 bytes)
  • seed_006.mlir
    evidence/breadth-01/artifacts/inputs/seed_006.mlir (1087 bytes)
  • seed_007.mlir
    evidence/breadth-01/artifacts/inputs/seed_007.mlir (893 bytes)
  • seed_008.mlir
    evidence/breadth-01/artifacts/inputs/seed_008.mlir (1375 bytes)
  • seed_009.mlir
    evidence/breadth-01/artifacts/inputs/seed_009.mlir (2152 bytes)
  • seed_010.mlir
    evidence/breadth-01/artifacts/inputs/seed_010.mlir (970 bytes)
  • seed_011.mlir
    evidence/breadth-01/artifacts/inputs/seed_011.mlir (2158 bytes)
  • seed_012.mlir
    evidence/breadth-01/artifacts/inputs/seed_012.mlir (1817 bytes)
  • seed_013.mlir
    evidence/breadth-01/artifacts/inputs/seed_013.mlir (1290 bytes)
  • seed_014.mlir
    evidence/breadth-01/artifacts/inputs/seed_014.mlir (1970 bytes)
  • seed_015.mlir
    evidence/breadth-01/artifacts/inputs/seed_015.mlir (924 bytes)
  • seed_016.mlir
    evidence/breadth-01/artifacts/inputs/seed_016.mlir (1645 bytes)
  • seed_017.mlir
    evidence/breadth-01/artifacts/inputs/seed_017.mlir (1681 bytes)
  • seed_018.mlir
    evidence/breadth-01/artifacts/inputs/seed_018.mlir (1061 bytes)
  • seed_019.mlir
    evidence/breadth-01/artifacts/inputs/seed_019.mlir (2269 bytes)
  • seed_020.mlir
    evidence/breadth-01/artifacts/inputs/seed_020.mlir (1644 bytes)
  • seed_021.mlir
    evidence/breadth-01/artifacts/inputs/seed_021.mlir (1611 bytes)
  • seed_022.mlir
    evidence/breadth-01/artifacts/inputs/seed_022.mlir (792 bytes)
  • seed_023.mlir
    evidence/breadth-01/artifacts/inputs/seed_023.mlir (795 bytes)
  • seed_024.mlir
    evidence/breadth-01/artifacts/inputs/seed_024.mlir (1713 bytes)
  • seed_025.mlir
    evidence/breadth-01/artifacts/inputs/seed_025.mlir (765 bytes)
  • seed_026.mlir
    evidence/breadth-01/artifacts/inputs/seed_026.mlir (2282 bytes)
  • seed_027.mlir
    evidence/breadth-01/artifacts/inputs/seed_027.mlir (1879 bytes)
  • seed_028.mlir
    evidence/breadth-01/artifacts/inputs/seed_028.mlir (2146 bytes)
  • seed_029.mlir
    evidence/breadth-01/artifacts/inputs/seed_029.mlir (957 bytes)
  • seed_030.mlir
    evidence/breadth-01/artifacts/inputs/seed_030.mlir (1311 bytes)
  • seed_031.mlir
    evidence/breadth-01/artifacts/inputs/seed_031.mlir (1242 bytes)
  • seed_032.mlir
    evidence/breadth-01/artifacts/inputs/seed_032.mlir (843 bytes)
  • seed_033.mlir
    evidence/breadth-01/artifacts/inputs/seed_033.mlir (943 bytes)
  • seed_034.mlir
    evidence/breadth-01/artifacts/inputs/seed_034.mlir (1164 bytes)
  • seed_035.mlir
    evidence/breadth-01/artifacts/inputs/seed_035.mlir (1438 bytes)
  • seed_036.mlir
    evidence/breadth-01/artifacts/inputs/seed_036.mlir (700 bytes)
  • seed_037.mlir
    evidence/breadth-01/artifacts/inputs/seed_037.mlir (843 bytes)
  • seed_038.mlir
    evidence/breadth-01/artifacts/inputs/seed_038.mlir (1463 bytes)
  • seed_039.mlir
    evidence/breadth-01/artifacts/inputs/seed_039.mlir (1436 bytes)
  • seed_040.mlir
    evidence/breadth-01/artifacts/inputs/seed_040.mlir (1950 bytes)
  • seed_041.mlir
    evidence/breadth-01/artifacts/inputs/seed_041.mlir (1561 bytes)
  • seed_042.mlir
    evidence/breadth-01/artifacts/inputs/seed_042.mlir (955 bytes)
  • seed_043.mlir
    evidence/breadth-01/artifacts/inputs/seed_043.mlir (1382 bytes)
  • seed_044.mlir
    evidence/breadth-01/artifacts/inputs/seed_044.mlir (2214 bytes)
  • seed_045.mlir
    evidence/breadth-01/artifacts/inputs/seed_045.mlir (1576 bytes)
  • seed_046.mlir
    evidence/breadth-01/artifacts/inputs/seed_046.mlir (1253 bytes)
  • seed_047.mlir
    evidence/breadth-01/artifacts/inputs/seed_047.mlir (1024 bytes)
  • seed_048.mlir
    evidence/breadth-01/artifacts/inputs/seed_048.mlir (1615 bytes)
  • seed_049.mlir
    evidence/breadth-01/artifacts/inputs/seed_049.mlir (1161 bytes)
  • seed_050.mlir
    evidence/breadth-01/artifacts/inputs/seed_050.mlir (1633 bytes)
  • seed_051.mlir
    evidence/breadth-01/artifacts/inputs/seed_051.mlir (2229 bytes)
  • seed_052.mlir
    evidence/breadth-01/artifacts/inputs/seed_052.mlir (1055 bytes)
  • seed_053.mlir
    evidence/breadth-01/artifacts/inputs/seed_053.mlir (1192 bytes)
  • seed_054.mlir
    evidence/breadth-01/artifacts/inputs/seed_054.mlir (1836 bytes)
  • seed_055.mlir
    evidence/breadth-01/artifacts/inputs/seed_055.mlir (826 bytes)
  • seed_056.mlir
    evidence/breadth-01/artifacts/inputs/seed_056.mlir (1051 bytes)
  • seed_057.mlir
    evidence/breadth-01/artifacts/inputs/seed_057.mlir (1386 bytes)
  • seed_058.mlir
    evidence/breadth-01/artifacts/inputs/seed_058.mlir (784 bytes)
  • seed_059.mlir
    evidence/breadth-01/artifacts/inputs/seed_059.mlir (836 bytes)
  • seed_060.mlir
    evidence/breadth-01/artifacts/inputs/seed_060.mlir (1587 bytes)
  • seed_061.mlir
    evidence/breadth-01/artifacts/inputs/seed_061.mlir (978 bytes)
  • seed_062.mlir
    evidence/breadth-01/artifacts/inputs/seed_062.mlir (850 bytes)
  • seed_063.mlir
    evidence/breadth-01/artifacts/inputs/seed_063.mlir (1480 bytes)
  • seed_064.mlir
    evidence/breadth-01/artifacts/inputs/seed_064.mlir (886 bytes)
  • seed_065.mlir
    evidence/breadth-01/artifacts/inputs/seed_065.mlir (1756 bytes)
  • seed_066.mlir
    evidence/breadth-01/artifacts/inputs/seed_066.mlir (1706 bytes)
  • seed_067.mlir
    evidence/breadth-01/artifacts/inputs/seed_067.mlir (1180 bytes)
  • seed_068.mlir
    evidence/breadth-01/artifacts/inputs/seed_068.mlir (2393 bytes)
  • seed_069.mlir
    evidence/breadth-01/artifacts/inputs/seed_069.mlir (730 bytes)
  • seed_070.mlir
    evidence/breadth-01/artifacts/inputs/seed_070.mlir (1475 bytes)
  • seed_071.mlir
    evidence/breadth-01/artifacts/inputs/seed_071.mlir (2156 bytes)
  • seed_072.mlir
    evidence/breadth-01/artifacts/inputs/seed_072.mlir (2096 bytes)
  • seed_073.mlir
    evidence/breadth-01/artifacts/inputs/seed_073.mlir (1116 bytes)
  • seed_074.mlir
    evidence/breadth-01/artifacts/inputs/seed_074.mlir (1888 bytes)
  • seed_075.mlir
    evidence/breadth-01/artifacts/inputs/seed_075.mlir (1989 bytes)
  • seed_076.mlir
    evidence/breadth-01/artifacts/inputs/seed_076.mlir (1389 bytes)
  • seed_077.mlir
    evidence/breadth-01/artifacts/inputs/seed_077.mlir (1235 bytes)
  • seed_078.mlir
    evidence/breadth-01/artifacts/inputs/seed_078.mlir (762 bytes)
  • seed_079.mlir
    evidence/breadth-01/artifacts/inputs/seed_079.mlir (1477 bytes)
  • seed_080.mlir
    evidence/breadth-01/artifacts/inputs/seed_080.mlir (1594 bytes)
  • seed_081.mlir
    evidence/breadth-01/artifacts/inputs/seed_081.mlir (1559 bytes)
  • seed_082.mlir
    evidence/breadth-01/artifacts/inputs/seed_082.mlir (1403 bytes)
  • seed_083.mlir
    evidence/breadth-01/artifacts/inputs/seed_083.mlir (1435 bytes)
  • seed_084.mlir
    evidence/breadth-01/artifacts/inputs/seed_084.mlir (758 bytes)
  • seed_085.mlir
    evidence/breadth-01/artifacts/inputs/seed_085.mlir (1946 bytes)
  • seed_086.mlir
    evidence/breadth-01/artifacts/inputs/seed_086.mlir (1828 bytes)
  • seed_087.mlir
    evidence/breadth-01/artifacts/inputs/seed_087.mlir (1807 bytes)
  • seed_088.mlir
    evidence/breadth-01/artifacts/inputs/seed_088.mlir (1034 bytes)
  • seed_089.mlir
    evidence/breadth-01/artifacts/inputs/seed_089.mlir (1918 bytes)
  • seed_090.mlir
    evidence/breadth-01/artifacts/inputs/seed_090.mlir (2205 bytes)
  • seed_091.mlir
    evidence/breadth-01/artifacts/inputs/seed_091.mlir (2290 bytes)
  • seed_092.mlir
    evidence/breadth-01/artifacts/inputs/seed_092.mlir (1946 bytes)
  • seed_093.mlir
    evidence/breadth-01/artifacts/inputs/seed_093.mlir (1854 bytes)
  • seed_094.mlir
    evidence/breadth-01/artifacts/inputs/seed_094.mlir (751 bytes)
  • seed_095.mlir
    evidence/breadth-01/artifacts/inputs/seed_095.mlir (1782 bytes)
  • seed_096.mlir
    evidence/breadth-01/artifacts/inputs/seed_096.mlir (1284 bytes)
  • seed_097.mlir
    evidence/breadth-01/artifacts/inputs/seed_097.mlir (1015 bytes)
  • seed_098.mlir
    evidence/breadth-01/artifacts/inputs/seed_098.mlir (2050 bytes)
  • seed_099.mlir
    evidence/breadth-01/artifacts/inputs/seed_099.mlir (1316 bytes)
  • seed_100.mlir
    evidence/breadth-01/artifacts/inputs/seed_100.mlir (1645 bytes)
evidence/breadth-01/coverage (7)
evidence/breadth-01/review (1)