Skip to content

Commit 9af0897

Browse files
committed
test(evidence): record the cp4b.1 mutation campaign — 33/33 caught
Re-run on the clean tree after the three blind spots were closed. Every mutation is caught, and every one is caught by the layer the definition names: the lattice, the definite/maybe split, the leaf order, the exit rules, the branch join, the loop's two-phase emission, the evidence hop and the sort key through the fact-parity replay; the shared grammar's scope, tracked-flag and narrowing rules through both the replay and the own-ir unit controls. Two mutations attack the control rather than the port — they corrupt the frozen oracle and require the replay to fail, because a replay that survives a drifting oracle is comparing against nothing. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WbgYFv2UW3iRJ3L33naVC3
1 parent c783613 commit 9af0897

1 file changed

Lines changed: 41 additions & 33 deletions

File tree

‎docs/evidence/p022-cp4b-1.result.json‎

Lines changed: 41 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
"comment": "Recorded mutation-campaign run (scripts/mutate_campaign.py --run). Raw facts only: outcomes, catchers, provenance. Counts are derived by scripts/render_checkpoint_status.py; regenerate this file by re-running the campaign, never by hand.",
44
"campaign": "p022-cp4b-1",
55
"definition": "docs/evidence/p022-cp4b-1.json",
6-
"definition_sha256": "b1c8e50119fd6ab4ac67bd459cffe331f2b3bfeaa55042b5bd96dd93feb13786",
7-
"source_commit": "3e5c433e325012641ee511e5be56cef306b33ee8",
6+
"definition_sha256": "ca44ead1682214048b738ec0c42ccb0cf844c302eb351b050a4c503ae55270f9",
7+
"source_commit": "c7836138bd2fe3b9cfea458a040ac5dda05e890e",
88
"dirty": false,
9-
"recorded_at": "2026-09-06T20:26:26Z",
9+
"recorded_at": "2026-09-06T20:30:43Z",
1010
"packages": [
1111
"own-analysis",
1212
"own-bridge",
@@ -22,7 +22,7 @@
2222
"id": "M00",
2323
"outcome": "survived",
2424
"catchers": [],
25-
"elapsed_seconds": 7.0
25+
"elapsed_seconds": 3.5
2626
},
2727
"mutations": [
2828
{
@@ -31,15 +31,15 @@
3131
"catchers": [
3232
"own-analysis/tests/obligation_parity.rs::obligation_fact_parity"
3333
],
34-
"elapsed_seconds": 5.5
34+
"elapsed_seconds": 3.8
3535
},
3636
{
3737
"id": "M02",
3838
"outcome": "caught",
3939
"catchers": [
4040
"own-analysis/tests/obligation_parity.rs::obligation_fact_parity"
4141
],
42-
"elapsed_seconds": 5.3
42+
"elapsed_seconds": 4.6
4343
},
4444
{
4545
"id": "M03",
@@ -48,7 +48,7 @@
4848
"own-analysis/src/lib.rs::obligation::tests::an_opaque_write_may_discharge_but_never_opens",
4949
"own-analysis/tests/obligation_parity.rs::obligation_fact_parity"
5050
],
51-
"elapsed_seconds": 5.1
51+
"elapsed_seconds": 4.6
5252
},
5353
{
5454
"id": "M04",
@@ -57,7 +57,7 @@
5757
"own-analysis/src/lib.rs::obligation::tests::an_opaque_write_may_discharge_but_never_opens",
5858
"own-analysis/tests/obligation_parity.rs::obligation_fact_parity"
5959
],
60-
"elapsed_seconds": 4.4
60+
"elapsed_seconds": 4.3
6161
},
6262
{
6363
"id": "M05",
@@ -69,8 +69,10 @@
6969
},
7070
{
7171
"id": "M06",
72-
"outcome": "survived",
73-
"catchers": [],
72+
"outcome": "caught",
73+
"catchers": [
74+
"own-analysis/tests/obligation_parity.rs::obligation_fact_parity"
75+
],
7476
"elapsed_seconds": 4.8
7577
},
7678
{
@@ -80,21 +82,23 @@
8082
"own-analysis/src/lib.rs::obligation::tests::an_opaque_write_may_discharge_but_never_opens",
8183
"own-analysis/tests/obligation_parity.rs::obligation_fact_parity"
8284
],
83-
"elapsed_seconds": 4.6
85+
"elapsed_seconds": 4.4
8486
},
8587
{
8688
"id": "M08",
8789
"outcome": "caught",
8890
"catchers": [
8991
"own-analysis/tests/obligation_parity.rs::obligation_fact_parity"
9092
],
91-
"elapsed_seconds": 4.4
93+
"elapsed_seconds": 4.5
9294
},
9395
{
9496
"id": "M09",
95-
"outcome": "survived",
96-
"catchers": [],
97-
"elapsed_seconds": 4.1
97+
"outcome": "caught",
98+
"catchers": [
99+
"own-analysis/tests/obligation_parity.rs::obligation_fact_parity"
100+
],
101+
"elapsed_seconds": 4.5
98102
},
99103
{
100104
"id": "M10",
@@ -127,7 +131,7 @@
127131
"catchers": [
128132
"own-analysis/tests/obligation_parity.rs::obligation_fact_parity"
129133
],
130-
"elapsed_seconds": 4.4
134+
"elapsed_seconds": 4.6
131135
},
132136
{
133137
"id": "M14",
@@ -144,21 +148,24 @@
144148
"own-analysis/src/lib.rs::obligation::tests::a_barrier_in_a_loop_reports_exactly_once",
145149
"own-analysis/tests/obligation_parity.rs::obligation_fact_parity"
146150
],
147-
"elapsed_seconds": 4.3
151+
"elapsed_seconds": 4.4
148152
},
149153
{
150154
"id": "M16",
151-
"outcome": "survived",
152-
"catchers": [],
153-
"elapsed_seconds": 4.1
155+
"outcome": "caught",
156+
"catchers": [
157+
"own-analysis/src/lib.rs::obligation::tests::a_barrier_in_a_loop_reports_exactly_once",
158+
"own-analysis/tests/obligation_parity.rs::obligation_fact_parity"
159+
],
160+
"elapsed_seconds": 4.4
154161
},
155162
{
156163
"id": "M17",
157164
"outcome": "caught",
158165
"catchers": [
159166
"own-analysis/tests/obligation_parity.rs::obligation_fact_parity"
160167
],
161-
"elapsed_seconds": 4.5
168+
"elapsed_seconds": 4.4
162169
},
163170
{
164171
"id": "M18",
@@ -176,7 +183,7 @@
176183
"own-analysis/src/lib.rs::obligation::tests::open_barrier_close_is_one_definite_crossing",
177184
"own-analysis/tests/obligation_parity.rs::obligation_fact_parity"
178185
],
179-
"elapsed_seconds": 4.7
186+
"elapsed_seconds": 4.8
180187
},
181188
{
182189
"id": "M20",
@@ -192,15 +199,15 @@
192199
"catchers": [
193200
"own-analysis/tests/obligation_parity.rs::obligation_fact_parity"
194201
],
195-
"elapsed_seconds": 4.6
202+
"elapsed_seconds": 4.5
196203
},
197204
{
198205
"id": "M22",
199206
"outcome": "caught",
200207
"catchers": [
201208
"own-analysis/tests/obligation_parity.rs::obligation_fact_parity"
202209
],
203-
"elapsed_seconds": 4.3
210+
"elapsed_seconds": 4.4
204211
},
205212
{
206213
"id": "M23",
@@ -209,7 +216,7 @@
209216
"own-analysis/src/lib.rs::obligation::tests::a_dead_scope_is_reported_and_an_unscoped_protocol_is_not",
210217
"own-analysis/tests/obligation_parity.rs::obligation_fact_parity"
211218
],
212-
"elapsed_seconds": 4.5
219+
"elapsed_seconds": 4.6
213220
},
214221
{
215222
"id": "M24",
@@ -218,7 +225,7 @@
218225
"own-analysis/tests/obligation_parity.rs::obligation_fact_parity",
219226
"own-ir/src/lib.rs::protocol::tests::a_protocol_record_becomes_its_typed_value"
220227
],
221-
"elapsed_seconds": 6.0
228+
"elapsed_seconds": 5.8
222229
},
223230
{
224231
"id": "M25",
@@ -232,7 +239,7 @@
232239
"own-analysis/tests/obligation_parity.rs::obligation_fact_parity",
233240
"own-ir/src/lib.rs::protocol::tests::a_protocol_record_becomes_its_typed_value"
234241
],
235-
"elapsed_seconds": 5.8
242+
"elapsed_seconds": 6.2
236243
},
237244
{
238245
"id": "M26",
@@ -247,9 +254,10 @@
247254
"id": "M27",
248255
"outcome": "caught",
249256
"catchers": [
257+
"own-analysis/tests/obligation_parity.rs::obligation_fact_parity",
250258
"own-ir/src/lib.rs::protocol::tests::a_narrowed_call_matcher_never_matches_an_unknown_argument"
251259
],
252-
"elapsed_seconds": 4.5
260+
"elapsed_seconds": 4.6
253261
},
254262
{
255263
"id": "M28",
@@ -262,7 +270,7 @@
262270
"own-analysis/src/lib.rs::obligation::tests::open_barrier_close_is_one_definite_crossing",
263271
"own-analysis/tests/obligation_parity.rs::obligation_fact_parity"
264272
],
265-
"elapsed_seconds": 4.6
273+
"elapsed_seconds": 4.3
266274
},
267275
{
268276
"id": "M29",
@@ -274,7 +282,7 @@
274282
"own-ir/src/lib.rs::protocol::tests::a_protocol_record_becomes_its_typed_value",
275283
"own-ir/tests/validation_replay.rs::the_two_loaders_accept_the_same_language"
276284
],
277-
"elapsed_seconds": 4.6
285+
"elapsed_seconds": 4.4
278286
},
279287
{
280288
"id": "M30",
@@ -284,23 +292,23 @@
284292
"own-analysis/tests/obligation_parity.rs::obligation_fact_parity",
285293
"own-ir/src/lib.rs::protocol::tests::a_protocol_record_becomes_its_typed_value"
286294
],
287-
"elapsed_seconds": 4.9
295+
"elapsed_seconds": 4.7
288296
},
289297
{
290298
"id": "M31",
291299
"outcome": "caught",
292300
"catchers": [
293301
"own-ir/src/lib.rs::protocol::tests::a_method_record_becomes_its_event_tree"
294302
],
295-
"elapsed_seconds": 4.5
303+
"elapsed_seconds": 4.6
296304
},
297305
{
298306
"id": "M32",
299307
"outcome": "caught",
300308
"catchers": [
301309
"own-analysis/tests/obligation_parity.rs::obligation_fact_parity"
302310
],
303-
"elapsed_seconds": 4.4
311+
"elapsed_seconds": 4.7
304312
},
305313
{
306314
"id": "M33",

0 commit comments

Comments
 (0)