diff --git a/compiler/README.md b/compiler/README.md index 0472347..07c91a3 100644 --- a/compiler/README.md +++ b/compiler/README.md @@ -46,40 +46,48 @@ input-only `draft_unfrozen` packet, binds the conditional suite and accepted S3a baseline by SHA-256, preserves the 5-candidate by 5-case matrix, 14 required relationships, 10 hard gates, and 26 mutations named explicitly by the suite, binds a closed catalog with five positive and 26 named-mutation subjects plus -39 unreviewed domain-level structural proposals and their corresponding -candidate-neutral byte-materialized subjects, and prepares one deterministic -balanced 25-slot identity plan: +42 unreviewed domain-level structural proposals and their corresponding +candidate-neutral byte-materialized subjects, authenticates five unreviewed +structural candidate graph proposals and 70 unresolved SR mapping rows, and +prepares one deterministic balanced 25-slot identity plan: ```sh cargo test --manifest-path compiler/Cargo.toml -p orange-compiler \ --test d004_decision_suite --locked --offline ``` -The proposal manifest names 14 missing-edge, 10 identity-substitution, and five +The proposal manifest names 14 missing-edge, 13 identity-substitution, and five each of ambiguity, unsupported-behavior, and domain-exhaustion proposals. The -cross-cutting and case-subject catalogs byte-materialize exactly 70 suite-only -subjects under `draft_unreviewed_input_only`. Closed parsers authenticate the -ordered proposal and named-mutation joins, case baselines, and per-subject -identities, then bounded structural integrity oracles check the fixed models in -memory. Those checks are not candidate executions and create no candidate -observation, result, evidence, verdict, or capability credit. All five class -sufficiency reviews and freeze blockers remain unresolved. Candidate-adapter +three added identity targets bind the model, dependency manifest, and positive +subject. The cross-cutting and case-subject catalogs byte-materialize exactly +73 suite-only subjects under `draft_unreviewed_input_only`. Closed parsers +authenticate the ordered proposal and named-mutation joins, case baselines, and +per-subject identities, then bounded structural integrity oracles check the +fixed models in memory. Those checks are not candidate executions and create no +candidate observation, result, evidence, verdict, or capability credit. All +five class sufficiency reviews and freeze blockers remain unresolved. Candidate-adapter failure cannot satisfy an unsupported subject, domain exhaustion verifies no -replay ceiling, and replay repetitions remain unassigned. The laboratory -also checks a closed, in-memory future-schema descriptor that enumerates -all 31 top-level future case-record fields, their nested shapes, and their -cross-field invariants. It binds both authenticated subject catalogs into an -exact 70-row observation oracle, so a future result cannot supply or broaden -its own allowed outcomes. The descriptor defines a 10-field scheduled-slot -preimage contract and fail-closed verdict conditions, including checked -resource bounds and SR dependency joins. The 25-slot identity plan exists, but -no concrete slot preimage or digest is available until the epoch, packet -identity, and replay-plan identity are frozen. +replay ceiling, and replay repetitions remain unassigned. The separate +`d004-v0.5-candidate-mappings.json` catalog uses schema +`d004-candidate-mapping-catalog-v0.1`; its five graphs and 70 SR rows are +authenticated input-only hypotheses, not reviewed mapping conformance. The +laboratory also checks a closed, in-memory future-schema descriptor that +enumerates all 31 top-level future case-record fields, their nested shapes, and +their cross-field invariants. It binds both authenticated subject catalogs into +an exact 73-row observation oracle and the candidate-mapping catalog into five +exact graph/map identity rows, so a future result cannot supply or broaden its +own allowed outcomes or substitute another mapping. The descriptor defines a +10-field scheduled-slot preimage contract and fail-closed verdict conditions, +including checked resource bounds and SR dependency joins. The 25-slot identity +plan exists, but no concrete slot preimage or digest is available until the +epoch, packet identity, and replay-plan identity are frozen. This synthetic contract accepts no populated records, launches no process or adapter, and persists nothing. It approves no schema, assigns no replay -cardinality, and supplies no candidate mapping or adapter. The epoch remains -null and unfrozen, owner protocol review remains `none`, execution remains 0/25 -with evidence `none`, and selection and conclusion remain null. D-003 +cardinality, and neither ratifies the separate mapping proposals nor supplies +an adapter. The epoch remains null and unfrozen, owner protocol review remains +`none`, execution remains 0/25 with evidence `none`, and selection and +conclusion remain null. No adapter, execution, evidence, review, freeze, +selection, or readiness credit follows from mapping authentication. D-003 acceptance does not accept D-004, alter compiler behavior, authorize S3b, or grant roadmap or version 1.0.0 readiness credit; both `roadmap_gate_credit` and `readiness_credit` remain `none`. diff --git a/compiler/crates/orange-compiler/tests/d004_decision_suite.rs b/compiler/crates/orange-compiler/tests/d004_decision_suite.rs index 35bcaab..fc14e0b 100644 --- a/compiler/crates/orange-compiler/tests/d004_decision_suite.rs +++ b/compiler/crates/orange-compiler/tests/d004_decision_suite.rs @@ -4,6 +4,8 @@ //! slots. They execute no candidate adapter, freeze no epoch, select no //! semantic architecture, and create no D-004 result or product evidence. +#[path = "d004_support/candidate_mappings.rs"] +mod candidate_mappings; #[path = "d004_support/case_subjects.rs"] mod case_subjects; #[path = "d004_support/cases.rs"] @@ -27,6 +29,13 @@ use std::collections::{BTreeMap, BTreeSet}; use std::fs; use std::path::Path; +use candidate_mappings::{ + CANDIDATE_MAPPING_CATALOG_CANONICAL_SHA256, CANDIDATE_MAPPING_CATALOG_PATH, + CANDIDATE_MAPPING_CATALOG_RAW_SHA256, CANDIDATE_MAPPING_CATALOG_SUBJECT_SHA256, + CANDIDATE_MAPPING_COUNT, CANDIDATE_MAPPING_NONCLAIMS, CANDIDATE_MAPPING_RELATIONSHIP_COUNT, + CANDIDATE_MAPPING_ROW_COUNT, CandidateMappingCatalog, CandidateMappingErrorKind, + parse_candidate_mapping_catalog, +}; use case_subjects::{ CASE_SUBJECT_CATALOG_CANONICAL_SHA256, CASE_SUBJECT_CATALOG_PATH, CASE_SUBJECT_CATALOG_RAW_SHA256, CASE_SUBJECT_NONCLAIMS, CaseSubjectCatalog, @@ -46,7 +55,8 @@ use fixtures::{ FIXTURE_NONCLAIMS, FixtureCatalog, FixtureErrorKind, FixtureState, parse_fixture_catalog, }; use packet::{ - CASE_SUBJECT_CATALOG_SHA256, CROSS_CUTTING_EXECUTABLE_FIXTURE_CATALOG_SHA256, + CANDIDATE_MAPPING_CATALOG_SHA256, CASE_SUBJECT_CATALOG_SHA256, + CROSS_CUTTING_EXECUTABLE_FIXTURE_CATALOG_SHA256, CROSS_CUTTING_FIXTURE_PROPOSAL_MANIFEST_SHA256, MUTATION_MANIFEST_SHA256, PacketErrorKind, canonical_cross_cutting_fixture_proposal_manifest_bytes, canonical_cross_cutting_fixture_proposal_manifest_file_bytes, canonical_draft_packet_bytes, @@ -56,8 +66,8 @@ use packet::{ parse_draft_packet, parse_mutation_manifest, }; use result_contract::{ - ADAPTER_STATUS_STATES, DERIVATION_RULES, DIGEST_JOIN_FIELDS, EXECUTION_STATE_KINDS, - OBSERVATION_COMPARISONS, OBSERVED_INVALIDATION_STATES, ORDERING_RULES, + ADAPTER_STATUS_STATES, CANDIDATE_MAPPING_IDENTITY_FIELDS, DERIVATION_RULES, DIGEST_JOIN_FIELDS, + EXECUTION_STATE_KINDS, OBSERVATION_COMPARISONS, OBSERVED_INVALIDATION_STATES, ORDERING_RULES, REPLAY_NON_SUCCESS_STATES, REQUIRED_CASE_RECORD_FIELDS, REQUIRED_GRAPH_EDGE_FIELDS, REQUIRED_IDENTITY_FIELDS, REQUIRED_MUTATION_SUBJECT_BINDING_FIELDS, REQUIRED_OBSERVATION_FIELDS, REQUIRED_OWNER_LABEL_FIELDS, @@ -70,7 +80,7 @@ use runner::{ReplayError, ReplayInputs}; use strict_json::{JsonErrorKind, JsonValue}; const CHECKED_IN_PACKET: &[u8] = - include_bytes!("../../../../research/decisions/D-004/d004-v0.4-draft-packet.json"); + include_bytes!("../../../../research/decisions/D-004/d004-v0.5-draft-packet.json"); const NAMED_MUTATIONS: &[u8] = include_bytes!("../../../../research/decisions/D-004/d004-v0.2-named-mutations.json"); const CROSS_CUTTING_FIXTURE_PROPOSALS: &[u8] = include_bytes!( @@ -81,6 +91,8 @@ const CROSS_CUTTING_EXECUTABLE_FIXTURES: &[u8] = include_bytes!( ); const CASE_SUBJECTS: &[u8] = include_bytes!("../../../../research/decisions/D-004/d004-v0.4-case-subjects.json"); +const CANDIDATE_MAPPINGS: &[u8] = + include_bytes!("../../../../research/decisions/D-004/d004-v0.5-candidate-mappings.json"); const DECISION_SUITE: &[u8] = include_bytes!("../../../../docs/SEMANTIC_STRATA_DECISION_SUITE.md"); const PRODUCT_FORM_DECISION_PACKET: &[u8] = include_bytes!("../../../../docs/PRODUCT_FORM_DECISION_PACKET.md"); @@ -107,7 +119,7 @@ const VALID_INT_RADICES: &[u8] = include_bytes!("../../../fixtures/s3a/valid-int const VALID_WORD8_BOUNDARIES: &[u8] = include_bytes!("../../../fixtures/s3a/valid-word8-boundaries.or"); const RESULT_CONTRACT_DESCRIPTOR_SHA256: &str = - "e3afc61c7127ca0b59dd010e90ae03a92c3354e3eee490c0667482c9218e8789"; + "58773e8ce29e8726a8a85203ff7e2a4b1a03f8c02bfbcd7f6056f34fe53a2f29"; fn checked_in_replay_inputs() -> ReplayInputs<'static> { ReplayInputs::new([ @@ -133,10 +145,11 @@ fn checked_in_replay_inputs() -> ReplayInputs<'static> { CROSS_CUTTING_FIXTURE_PROPOSALS, CROSS_CUTTING_EXECUTABLE_FIXTURES, CASE_SUBJECTS, + CANDIDATE_MAPPINGS, ]) } -fn checked_in_subject_catalogs() -> (CaseSubjectCatalog, FixtureCatalog) { +fn checked_in_catalogs() -> (CaseSubjectCatalog, FixtureCatalog, CandidateMappingCatalog) { let mutation_manifest = parse_mutation_manifest(NAMED_MUTATIONS).expect("checked-in mutation manifest"); let case_subject_catalog = parse_case_subject_catalog(CASE_SUBJECTS, &mutation_manifest) @@ -156,7 +169,17 @@ fn checked_in_subject_catalogs() -> (CaseSubjectCatalog, FixtureCatalog) { fixture_catalog.digest_hex(), FIXTURE_CATALOG_CANONICAL_SHA256 ); - (case_subject_catalog, fixture_catalog) + let candidate_mapping_catalog = + parse_candidate_mapping_catalog(CANDIDATE_MAPPINGS).expect("checked-in candidate mappings"); + assert_eq!( + candidate_mapping_catalog.digest_hex(), + CANDIDATE_MAPPING_CATALOG_CANONICAL_SHA256 + ); + ( + case_subject_catalog, + fixture_catalog, + candidate_mapping_catalog, + ) } fn canonical_json_file_bytes(value: &JsonValue) -> Vec { @@ -238,12 +261,19 @@ type DescriptorMutation = Box; #[test] fn future_result_contract_descriptor_is_exact_closed_and_zero_state() { - let (case_subject_catalog, fixture_catalog) = checked_in_subject_catalogs(); - let bytes = - canonical_draft_result_contract_descriptor_bytes(&case_subject_catalog, &fixture_catalog); - let descriptor = - parse_draft_result_contract_descriptor(&bytes, &case_subject_catalog, &fixture_catalog) - .expect("exact descriptor"); + let (case_subject_catalog, fixture_catalog, candidate_mapping_catalog) = checked_in_catalogs(); + let bytes = canonical_draft_result_contract_descriptor_bytes( + &case_subject_catalog, + &fixture_catalog, + &candidate_mapping_catalog, + ); + let descriptor = parse_draft_result_contract_descriptor( + &bytes, + &case_subject_catalog, + &fixture_catalog, + &candidate_mapping_catalog, + ) + .expect("exact descriptor"); let descriptor_value = strict_json::parse(&bytes).expect("generated descriptor parses"); assert_eq!(descriptor.epoch(), None); @@ -414,7 +444,7 @@ fn future_result_contract_descriptor_is_exact_closed_and_zero_state() { ); assert_eq!(ORDERING_RULES.len(), 6); assert_eq!(OBSERVATION_COMPARISONS, ["matched", "mismatched"]); - assert_eq!(DERIVATION_RULES.len(), 30); + assert_eq!(DERIVATION_RULES.len(), 31); assert_eq!(RESULT_CONTRACT_NONCLAIMS.len(), 12); let expected_mutations = JsonValue::Array( @@ -469,12 +499,62 @@ fn future_result_contract_descriptor_is_exact_closed_and_zero_state() { .and_then(JsonValue::as_str), Some(FIXTURE_CATALOG_CANONICAL_SHA256) ); + let mapping_binding = json_object( + catalog_bindings + .get("candidate_mapping_catalog") + .expect("candidate-mapping catalog binding"), + ); + assert_eq!( + mapping_binding + .get("canonical_sha256") + .and_then(JsonValue::as_str), + Some(CANDIDATE_MAPPING_CATALOG_CANONICAL_SHA256) + ); + + let mapping_identities = json_array( + root.get("candidate_mapping_identity_inventory") + .expect("candidate-mapping identity inventory"), + ); + assert_eq!(mapping_identities.len(), CANDIDATE_MAPPING_COUNT); + for (record, expected) in mapping_identities + .iter() + .zip(candidate_mapping_catalog.identities()) + { + let record = json_object(record); + assert_eq!( + record.keys().map(String::as_str).collect::>(), + CANDIDATE_MAPPING_IDENTITY_FIELDS.into_iter().collect() + ); + assert_eq!( + record.get("candidate").and_then(JsonValue::as_str), + Some(expected.candidate.as_str()) + ); + assert_eq!( + record.get("graph_sha256").and_then(JsonValue::as_str), + Some(expected.graph_sha256.as_str()) + ); + assert_eq!( + record.get("sr_map_sha256").and_then(JsonValue::as_str), + Some(expected.sr_map_sha256.as_str()) + ); + assert_eq!( + record.get("mapping_sha256"), + Some(&JsonValue::Array( + expected + .mapping_sha256 + .iter() + .cloned() + .map(JsonValue::String) + .collect() + )) + ); + } let oracle_inventory = json_array( root.get("subject_oracle_inventory") .expect("subject oracle inventory"), ); - assert_eq!(oracle_inventory.len(), 70); + assert_eq!(oracle_inventory.len(), 73); let expected_subjects = case_subject_catalog .preflights() .iter() @@ -502,7 +582,7 @@ fn future_result_contract_descriptor_is_exact_closed_and_zero_state() { ); assert!(subject_ids.insert(expected_id)); } - assert_eq!(subject_ids.len(), 70); + assert_eq!(subject_ids.len(), 73); let slot_identity = json_object( root.get("scheduled_slot_identity_contract") @@ -566,15 +646,23 @@ fn future_result_contract_descriptor_is_exact_closed_and_zero_state() { #[test] fn future_result_contract_descriptor_fails_closed_on_state_or_schema_drift() { - let (case_subject_catalog, fixture_catalog) = checked_in_subject_catalogs(); - let bytes = - canonical_draft_result_contract_descriptor_bytes(&case_subject_catalog, &fixture_catalog); + let (case_subject_catalog, fixture_catalog, candidate_mapping_catalog) = checked_in_catalogs(); + let bytes = canonical_draft_result_contract_descriptor_bytes( + &case_subject_catalog, + &fixture_catalog, + &candidate_mapping_catalog, + ); let parsed = strict_json::parse(&bytes).expect("generated descriptor parses"); let parse_descriptor = |source: &[u8]| { - parse_draft_result_contract_descriptor(source, &case_subject_catalog, &fixture_catalog) + parse_draft_result_contract_descriptor( + source, + &case_subject_catalog, + &fixture_catalog, + &candidate_mapping_catalog, + ) }; - let mutations: [DescriptorMutation; 17] = [ + let mutations: [DescriptorMutation; 18] = [ Box::new(|value| { json_object_mut(value).insert("unknown".to_owned(), JsonValue::Bool(true)); }), @@ -693,6 +781,17 @@ fn future_result_contract_descriptor_fails_closed_on_state_or_schema_drift() { JsonValue::String("0".repeat(64)), ); }), + Box::new(|value| { + let identities = json_array_mut( + json_object_mut(value) + .get_mut("candidate_mapping_identity_inventory") + .expect("candidate-mapping identity inventory"), + ); + json_object_mut(&mut identities[0]).insert( + "sr_map_sha256".to_owned(), + JsonValue::String("0".repeat(64)), + ); + }), Box::new(|value| { let identity = json_object_mut( json_object_mut(value) @@ -945,6 +1044,7 @@ fn d004_pre_epoch_contract_preserves_every_freeze_blocker_and_budget() { "identity-substitution fixture sufficiency review unresolved", "unsupported fixture sufficiency review unresolved", "resource-exhaustion fixture sufficiency review unresolved", + "candidate graph and SR mapping review unresolved", "replay repetition count unresolved", ] ); @@ -1050,11 +1150,11 @@ fn cross_cutting_fixture_proposals_are_closed_canonical_and_candidate_neutral() ); assert_eq!( CROSS_CUTTING_FIXTURE_PROPOSAL_MANIFEST_SHA256, - "457c14e7d41f677b21af254af45e331b24e6c685a7d7aa8eae556ced5bd7be65" + "85407a4a43b5a6bf450ea905fe858482f2f79abb4cbe8ee8690bddc1753d0912" ); assert_eq!( sha256::hex(&sha256::digest(CROSS_CUTTING_FIXTURE_PROPOSALS)), - "171c7b88d54fe2bd7ddb4c220adb63f006e07c35391018b914482ace17cf7e93" + "d3d58cbeb0d2a90987680cd00bc70caf53518be730a71d0d55ba2a7b50544481" ); let root = value.as_object().expect("proposal root"); @@ -1309,12 +1409,52 @@ fn cross_cutting_fixture_proposals_are_closed_canonical_and_candidate_neutral() class_counts, BTreeMap::from([ ("ambiguity", 5), - ("identity-substitution", 10), + ("identity-substitution", 13), ("missing-edge", 14), ("resource-exhaustion", 5), ("unsupported", 5), ]) ); + assert_eq!( + IDENTITY_SUBSTITUTION_PROPOSALS + .iter() + .map(|proposal| (proposal.id, proposal.target)) + .collect::>(), + vec![ + ("D004-XF-ID-PACKET", "packet_identity"), + ("D004-XF-ID-REPLAY-PLAN", "replay_plan_identity"), + ("D004-XF-ID-SCHEDULED-SLOT", "scheduled_slot_identity"), + ("D004-XF-ID-INPUT-MANIFEST", "input_manifest_identity"), + ("D004-XF-ID-CANDIDATE-GRAPH", "candidate_graph_identity"), + ("D004-XF-ID-SR-MAP", "sr_map_identity"), + ("D004-XF-ID-SEMANTIC-ENDPOINT", "semantic_endpoint_identity"), + ("D004-XF-ID-PARAMETER-MODEL", "parameter_model_identity"), + ("D004-XF-ID-TOOL", "tool_identity"), + ("D004-XF-ID-ENVIRONMENT", "environment_identity"), + ("D004-XF-ID-MODEL", "model_identity"), + ( + "D004-XF-ID-DEPENDENCY-MANIFEST", + "dependency_manifest_identity", + ), + ("D004-XF-ID-POSITIVE-SUBJECT", "positive_subject_identity",), + ] + ); + let mandatory_digest_targets = DIGEST_JOIN_FIELDS + .iter() + .map(|field| { + format!( + "{}_identity", + field + .strip_suffix("_sha256") + .expect("mandatory digest join field suffix") + ) + }) + .collect::>(); + let identity_substitution_targets = IDENTITY_SUBSTITUTION_PROPOSALS + .iter() + .map(|proposal| proposal.target.to_owned()) + .collect::>(); + assert_eq!(identity_substitution_targets, mandatory_digest_targets); let canonical = String::from_utf8(canonical_cross_cutting_fixture_proposal_manifest_bytes()) .expect("UTF-8"); @@ -1404,7 +1544,7 @@ fn cross_cutting_executable_fixture_catalog_is_exact_addressed_and_input_only() FIXTURE_CATALOG_PATH, "research/decisions/D-004/d004-v0.3-cross-cutting-executable-fixtures.json" ); - assert_eq!(CROSS_CUTTING_EXECUTABLE_FIXTURES.len(), 67_329); + assert_eq!(CROSS_CUTTING_EXECUTABLE_FIXTURES.len(), 87_189); assert_eq!( catalog.canonical_bytes(), &CROSS_CUTTING_EXECUTABLE_FIXTURES[..CROSS_CUTTING_EXECUTABLE_FIXTURES.len() - 1] @@ -1412,7 +1552,7 @@ fn cross_cutting_executable_fixture_catalog_is_exact_addressed_and_input_only() assert_eq!(catalog.digest_hex(), FIXTURE_CATALOG_CANONICAL_SHA256); assert_eq!( catalog.digest_hex(), - "ca08308161244e9541803aa8008dd1624a2101f77da8b656cf0c5deff8a60703" + "0516a84260bcc4d8ebb64e0cd3416deb5c43a86b7f5cd882ca757c924e575767" ); assert_eq!( sha256::hex(&sha256::digest(CROSS_CUTTING_EXECUTABLE_FIXTURES)), @@ -1420,7 +1560,7 @@ fn cross_cutting_executable_fixture_catalog_is_exact_addressed_and_input_only() ); assert_eq!( FIXTURE_CATALOG_RAW_SHA256, - "268b4065028f1af9c9ec912ae8884c150094189f5d782963f42ed6ed4cca6ce0" + "5fea65960c47818243d41076dd96a6cab2dbd6d4038fd354a3f5ba30a12622ae" ); assert_eq!(catalog.preflights().len(), CROSS_CUTTING_PROPOSAL_COUNT); @@ -1443,7 +1583,7 @@ fn cross_cutting_executable_fixture_catalog_is_exact_addressed_and_input_only() .iter() .filter(|preflight| preflight.observed_state == FixtureState::Rejected) .count(), - 29 + 32 ); assert_eq!( catalog @@ -1577,39 +1717,43 @@ fn cross_cutting_executable_fixture_loader_fails_closed_before_any_observation() FixtureErrorKind::StructuralMismatch ); - let mut identity = baseline.clone(); - { - let subject = json_object_mut( - fixture_record_mut(&mut identity, 14) - .get_mut("fixture_subject") - .expect("subject"), - ); - let model = json_object_mut(subject.get_mut("model").expect("model")); - let baseline_bindings = json_array_mut( - model - .get_mut("baseline_bindings") - .expect("baseline bindings"), - ); - let original = json_object_mut(&mut baseline_bindings[0]) + for (identity_index, proposal) in IDENTITY_SUBSTITUTION_PROPOSALS.iter().enumerate() { + let fixture_index = RELATIONSHIPS.len() + identity_index; + let mut identity = baseline.clone(); + { + let subject = json_object_mut( + fixture_record_mut(&mut identity, fixture_index) + .get_mut("fixture_subject") + .expect("subject"), + ); + let model = json_object_mut(subject.get_mut("model").expect("model")); + let original = json_object( + &json_array(model.get("baseline_bindings").expect("baseline bindings")) + [identity_index], + ) .get("identity_sha256") .expect("original identity") .clone(); - let mutated_bindings = - json_array_mut(model.get_mut("mutated_bindings").expect("mutated bindings")); - json_object_mut(&mut mutated_bindings[0]).insert("identity_sha256".to_owned(), original); + let mutated_bindings = + json_array_mut(model.get_mut("mutated_bindings").expect("mutated bindings")); + json_object_mut(&mut mutated_bindings[identity_index]) + .insert("identity_sha256".to_owned(), original); + } + rehash_fixture_subject(&mut identity, fixture_index); + assert_eq!( + parse_fixture_catalog(&canonical_json_file_bytes(&identity), &proposals) + .expect_err("identity fixture must contain exactly one substitution") + .kind, + FixtureErrorKind::StructuralMismatch, + "{}", + proposal.id + ); } - rehash_fixture_subject(&mut identity, 14); - assert_eq!( - parse_fixture_catalog(&canonical_json_file_bytes(&identity), &proposals) - .expect_err("identity fixture must contain exactly one substitution") - .kind, - FixtureErrorKind::StructuralMismatch - ); let mut ambiguity = baseline.clone(); { let subject = json_object_mut( - fixture_record_mut(&mut ambiguity, 24) + fixture_record_mut(&mut ambiguity, 27) .get_mut("fixture_subject") .expect("subject"), ); @@ -1622,7 +1766,7 @@ fn cross_cutting_executable_fixture_loader_fails_closed_before_any_observation() .clone(); json_object_mut(&mut interpretations[1]).insert("value".to_owned(), first); } - rehash_fixture_subject(&mut ambiguity, 24); + rehash_fixture_subject(&mut ambiguity, 27); assert_eq!( parse_fixture_catalog(&canonical_json_file_bytes(&ambiguity), &proposals) .expect_err("ambiguity fixture requires distinct interpretations") @@ -1633,7 +1777,7 @@ fn cross_cutting_executable_fixture_loader_fails_closed_before_any_observation() let mut unsupported = baseline.clone(); { let subject = json_object_mut( - fixture_record_mut(&mut unsupported, 29) + fixture_record_mut(&mut unsupported, 32) .get_mut("fixture_subject") .expect("subject"), ); @@ -1646,7 +1790,7 @@ fn cross_cutting_executable_fixture_loader_fails_closed_before_any_observation() ) .clear(); } - rehash_fixture_subject(&mut unsupported, 29); + rehash_fixture_subject(&mut unsupported, 32); assert_eq!( parse_fixture_catalog(&canonical_json_file_bytes(&unsupported), &proposals) .expect_err("absence is not an explicit unsupported observation") @@ -1657,7 +1801,7 @@ fn cross_cutting_executable_fixture_loader_fails_closed_before_any_observation() let mut resource = baseline.clone(); { let subject = json_object_mut( - fixture_record_mut(&mut resource, 34) + fixture_record_mut(&mut resource, 37) .get_mut("fixture_subject") .expect("subject"), ); @@ -1665,7 +1809,7 @@ fn cross_cutting_executable_fixture_loader_fails_closed_before_any_observation() let request = json_object_mut(model.get_mut("request").expect("request")); json_array_mut(request.get_mut("work_items").expect("work items")).pop(); } - rehash_fixture_subject(&mut resource, 34); + rehash_fixture_subject(&mut resource, 37); assert_eq!( parse_fixture_catalog(&canonical_json_file_bytes(&resource), &proposals) .expect_err("domain exhaustion must remain deterministic and explicit") @@ -1701,7 +1845,7 @@ fn case_subject_catalog_is_exact_addressed_complete_and_input_only() { CASE_SUBJECT_CATALOG_PATH, "research/decisions/D-004/d004-v0.4-case-subjects.json" ); - assert_eq!(CASE_SUBJECTS.len(), 35_099); + assert_eq!(CASE_SUBJECTS.len(), 35_154); assert_eq!( catalog.canonical_bytes(), &CASE_SUBJECTS[..CASE_SUBJECTS.len() - 1] @@ -1709,7 +1853,7 @@ fn case_subject_catalog_is_exact_addressed_complete_and_input_only() { assert_eq!(catalog.digest_hex(), CASE_SUBJECT_CATALOG_CANONICAL_SHA256); assert_eq!( catalog.digest_hex(), - "b3a8bcf4f0f084740e92cbff6fd57273df0a078af9c6b974f68d95ba333c6dc1" + "5b9e734b6bad7913072e87adb29c58547d67bdcb46af942eb6bbc79d0e68166e" ); assert_eq!( sha256::hex(&sha256::digest(CASE_SUBJECTS)), @@ -1717,7 +1861,7 @@ fn case_subject_catalog_is_exact_addressed_complete_and_input_only() { ); assert_eq!( CASE_SUBJECT_CATALOG_RAW_SHA256, - "c94100598aaf39954fe683a44f6a4d34837304eb361a1b478ca26884892d8ed6" + "6266b8e38ad1a83fb777278fc0369844749b2915eabb40ba1ddfc9efa7c985f2" ); let preflights = catalog.preflights(); @@ -2081,6 +2225,225 @@ fn case_subject_catalog_loader_fails_closed_before_candidate_execution() { ); } +#[test] +fn candidate_mapping_catalog_is_exact_complete_and_input_only() { + let catalog = parse_candidate_mapping_catalog(CANDIDATE_MAPPINGS) + .expect("checked-in candidate-mapping catalog"); + assert_eq!( + CANDIDATE_MAPPINGS, + canonical_json_file_bytes(catalog.value()) + ); + assert_eq!( + catalog.canonical_bytes(), + &CANDIDATE_MAPPINGS[..CANDIDATE_MAPPINGS.len() - 1] + ); + assert_eq!( + catalog.digest_hex(), + CANDIDATE_MAPPING_CATALOG_CANONICAL_SHA256 + ); + assert_eq!( + catalog.subject_digest_hex(), + CANDIDATE_MAPPING_CATALOG_SUBJECT_SHA256 + ); + assert_eq!( + sha256::hex(&sha256::digest(CANDIDATE_MAPPINGS)), + CANDIDATE_MAPPING_CATALOG_RAW_SHA256 + ); + assert_eq!(CANDIDATE_MAPPING_CATALOG_PATH, INPUT_BINDINGS[22].path); + assert_eq!(CANDIDATE_MAPPING_COUNT, CANDIDATES.len()); + assert_eq!(CANDIDATE_MAPPING_RELATIONSHIP_COUNT, RELATIONSHIPS.len()); + assert_eq!(CANDIDATE_MAPPING_ROW_COUNT, 70); + assert_eq!(catalog.identities().len(), CANDIDATE_MAPPING_COUNT); + for (identity, candidate) in catalog.identities().iter().zip(CANDIDATES) { + assert_eq!(identity.candidate, candidate.as_str()); + assert_eq!(identity.graph_sha256.len(), 64); + assert_eq!(identity.sr_map_sha256.len(), 64); + assert_ne!(identity.sr_map_sha256, identity.graph_sha256); + assert_eq!( + identity.mapping_sha256.len(), + CANDIDATE_MAPPING_RELATIONSHIP_COUNT + ); + } + + let root = json_object(catalog.value()); + assert_eq!( + root.get("status").and_then(JsonValue::as_str), + Some("draft_unreviewed_input_only") + ); + assert_eq!(root.get("epoch"), Some(&JsonValue::Null)); + assert_eq!(root.get("frozen"), Some(&JsonValue::Bool(false))); + assert_eq!( + root.get("owner_protocol_review") + .and_then(JsonValue::as_str), + Some("none") + ); + assert_eq!( + root.get("evidence_status").and_then(JsonValue::as_str), + Some("none") + ); + assert_eq!( + root.get("nonclaims"), + Some(&strict_json::strings(CANDIDATE_MAPPING_NONCLAIMS)) + ); +} + +#[test] +fn candidate_mapping_catalog_rejects_structural_and_identity_substitution() { + let baseline = strict_json::parse(CANDIDATE_MAPPINGS).expect("candidate mappings JSON"); + + let mut selected_decision = baseline.clone(); + let open_decisions = json_array_mut( + json_object_mut(&mut selected_decision) + .get_mut("open_decisions") + .expect("open decisions"), + ); + json_object_mut(&mut open_decisions[0]).insert( + "status".to_owned(), + JsonValue::String("selected".to_owned()), + ); + assert_eq!( + parse_candidate_mapping_catalog(&canonical_json_file_bytes(&selected_decision)) + .expect_err("selected open decision") + .kind, + CandidateMappingErrorKind::InvalidValue + ); + + let mut requirement_substitution = baseline.clone(); + let graphs = json_array_mut( + json_object_mut( + json_object_mut(&mut requirement_substitution) + .get_mut("catalog_subject") + .expect("catalog subject"), + ) + .get_mut("candidate_graphs") + .expect("candidate graphs"), + ); + let rows = json_array_mut( + json_object_mut( + json_object_mut(&mut graphs[0]) + .get_mut("graph") + .expect("candidate graph"), + ) + .get_mut("sr_rows") + .expect("SR rows"), + ); + json_object_mut( + json_object_mut(&mut rows[0]) + .get_mut("mapping") + .expect("mapping row"), + ) + .insert( + "required_relationship_sha256".to_owned(), + JsonValue::String("0".repeat(64)), + ); + assert_eq!( + parse_candidate_mapping_catalog(&canonical_json_file_bytes(&requirement_substitution)) + .expect_err("requirement identity substitution") + .kind, + CandidateMappingErrorKind::InvalidValue + ); + + for generic_slot in [ + "delegation_selector", + "host_identity", + "host_non_success_policy", + ] { + let mut generic_local_slot = baseline.clone(); + let graphs = json_array_mut( + json_object_mut( + json_object_mut(&mut generic_local_slot) + .get_mut("catalog_subject") + .expect("catalog subject"), + ) + .get_mut("candidate_graphs") + .expect("candidate graphs"), + ); + let edges = json_array_mut( + json_object_mut( + json_object_mut(&mut graphs[4]) + .get_mut("graph") + .expect("candidate graph"), + ) + .get_mut("edges") + .expect("native edges"), + ); + let subject = json_object_mut( + json_object_mut(&mut edges[2]) + .get_mut("edge_subject") + .expect("edge subject"), + ); + json_array_mut(subject.get_mut("parameter_slots").expect("parameter slots")) + .push(JsonValue::String(generic_slot.to_owned())); + assert_eq!( + parse_candidate_mapping_catalog(&canonical_json_file_bytes(&generic_local_slot)) + .expect_err("ST-HOST SR-03 generic delegation slot") + .kind, + CandidateMappingErrorKind::StructuralMismatch, + "{generic_slot}" + ); + } + + let mut edge_swap = baseline; + let graphs = json_array_mut( + json_object_mut( + json_object_mut(&mut edge_swap) + .get_mut("catalog_subject") + .expect("catalog subject"), + ) + .get_mut("candidate_graphs") + .expect("candidate graphs"), + ); + let rows = json_array_mut( + json_object_mut( + json_object_mut(&mut graphs[0]) + .get_mut("graph") + .expect("candidate graph"), + ) + .get_mut("sr_rows") + .expect("SR rows"), + ); + let first_edge = json_array( + json_object(json_object(&rows[0]).get("mapping").expect("first mapping")) + .get("native_edges") + .expect("first native edges"), + )[0] + .clone(); + let second_edge = json_array( + json_object( + json_object(&rows[1]) + .get("mapping") + .expect("second mapping"), + ) + .get("native_edges") + .expect("second native edges"), + )[0] + .clone(); + json_array_mut( + json_object_mut( + json_object_mut(&mut rows[0]) + .get_mut("mapping") + .expect("first mapping"), + ) + .get_mut("native_edges") + .expect("first native edges"), + )[0] = second_edge; + json_array_mut( + json_object_mut( + json_object_mut(&mut rows[1]) + .get_mut("mapping") + .expect("second mapping"), + ) + .get_mut("native_edges") + .expect("second native edges"), + )[0] = first_edge; + assert_eq!( + parse_candidate_mapping_catalog(&canonical_json_file_bytes(&edge_swap)) + .expect_err("SR-native edge swap") + .kind, + CandidateMappingErrorKind::UnresolvedEdge + ); +} + #[test] fn draft_packet_has_exact_canonical_bytes_digest_and_zero_baseline() { assert_eq!(CHECKED_IN_PACKET, canonical_draft_packet_file_bytes()); @@ -2089,11 +2452,11 @@ fn draft_packet_has_exact_canonical_bytes_digest_and_zero_baseline() { assert_eq!(packet.digest(), &sha256::digest(packet.canonical_bytes())); assert_eq!( packet.digest_hex(), - "b298cbf0d1c6af2ca9a4af7bb6b020595ffd00c1ab6896d5f097b3ebff13127d" + "b6df1a38f8a1eb6a80a8864324c21a81cb292d4c48e1981b4547bad41933b340" ); assert_eq!( sha256::hex(&sha256::digest(CHECKED_IN_PACKET)), - "0da96c89f62125f915152fb0ab30f41e608502bbe3a571a928c91e9d3812bc7a" + "ec3a0a593d1dab7a6ace874dae4fd03c1ae0656cf301897ccabf51cb109c4009" ); assert_eq!( parse_draft_packet(packet.canonical_bytes()) @@ -2125,13 +2488,18 @@ fn draft_packet_has_exact_canonical_bytes_digest_and_zero_baseline() { ); assert_eq!( root.get("schema_version").and_then(JsonValue::as_str), - Some("d004-pre-epoch-packet-v0.4") + Some("d004-pre-epoch-packet-v0.5") ); assert_eq!( root.get("case_subject_catalog_sha256") .and_then(JsonValue::as_str), Some(CASE_SUBJECT_CATALOG_SHA256) ); + assert_eq!( + root.get("candidate_mapping_catalog_sha256") + .and_then(JsonValue::as_str), + Some(CANDIDATE_MAPPING_CATALOG_SHA256) + ); assert_eq!( root.get("cross_cutting_fixture_proposal_manifest_sha256") .and_then(JsonValue::as_str), @@ -2145,7 +2513,7 @@ fn draft_packet_has_exact_canonical_bytes_digest_and_zero_baseline() { assert_eq!( root.get("fixture_inventory_status") .and_then(JsonValue::as_str), - Some("case_and_cross_cutting_materialized_unreviewed_freeze_blocker") + Some("case_cross_cutting_and_candidate_mapping_materialized_unreviewed_freeze_blocker") ); } @@ -2213,7 +2581,7 @@ fn draft_packet_rejects_unknown_missing_or_weakened_fields() { canonical.replace("\"conclusion\":null", "\"conclusion\":\"recommend_st_rel\""), canonical.replace(",\"replay repetition count unresolved\"", ""), canonical.replace( - "\"fixture_inventory_status\":\"case_and_cross_cutting_materialized_unreviewed_freeze_blocker\"", + "\"fixture_inventory_status\":\"case_cross_cutting_and_candidate_mapping_materialized_unreviewed_freeze_blocker\"", "\"fixture_inventory_status\":\"complete\"", ), canonical.replace(",\"resource-exhaustion\"", ""), @@ -2233,6 +2601,7 @@ fn draft_packet_rejects_unknown_missing_or_weakened_fields() { &"0".repeat(64), ), canonical.replace(CASE_SUBJECT_CATALOG_SHA256, &"0".repeat(64)), + canonical.replace(CANDIDATE_MAPPING_CATALOG_SHA256, &"0".repeat(64)), canonical.replace("\"case_wall_seconds\":900", "\"case_wall_seconds\":901"), ]; for mutation in mutations { @@ -2249,7 +2618,7 @@ fn draft_packet_rejects_unknown_missing_or_weakened_fields() { fn replay_refuses_every_raw_input_drift_before_scheduling() { let packet = parse_draft_packet(CHECKED_IN_PACKET).expect("checked-in packet"); let inputs = checked_in_replay_inputs(); - assert_eq!(INPUT_BINDINGS.len(), 22); + assert_eq!(INPUT_BINDINGS.len(), 23); for binding in INPUT_BINDINGS { let bytes = inputs.get(binding.id); assert_eq!(sha256::hex(&sha256::digest(bytes)), binding.sha256); @@ -2386,7 +2755,7 @@ fn replay_schedule_is_balanced_latin_deterministic_and_still_zero_of_25() { } #[test] -fn d004_research_tree_is_exactly_six_input_only_files() { +fn d004_research_tree_is_exactly_seven_input_only_files() { let root = Path::new(env!("CARGO_MANIFEST_DIR")).join("../../../research/decisions/D-004"); let observed = fs::read_dir(&root) .expect("D-004 research directory") @@ -2407,7 +2776,8 @@ fn d004_research_tree_is_exactly_six_input_only_files() { "d004-v0.2-named-mutations.json".to_owned(), "d004-v0.3-cross-cutting-executable-fixtures.json".to_owned(), "d004-v0.4-case-subjects.json".to_owned(), - "d004-v0.4-draft-packet.json".to_owned(), + "d004-v0.5-draft-packet.json".to_owned(), + "d004-v0.5-candidate-mappings.json".to_owned(), ]) ); for forbidden in [ diff --git a/compiler/crates/orange-compiler/tests/d004_support/candidate_mappings.rs b/compiler/crates/orange-compiler/tests/d004_support/candidate_mappings.rs new file mode 100644 index 0000000..8380fd4 --- /dev/null +++ b/compiler/crates/orange-compiler/tests/d004_support/candidate_mappings.rs @@ -0,0 +1,1559 @@ +use std::collections::{BTreeMap, BTreeSet}; + +use super::domain::{CANDIDATES, RELATIONSHIPS}; +use super::sha256; +use super::strict_json::{self, JsonErrorKind, JsonValue}; + +pub(crate) const CANDIDATE_MAPPING_CATALOG_PATH: &str = + "research/decisions/D-004/d004-v0.5-candidate-mappings.json"; +pub(crate) const CANDIDATE_MAPPING_CATALOG_CANONICAL_SHA256: &str = + "c967d7db8ea5049da054129367ec61cd80d729b8ce8cd34c95a76e42c67c97b8"; +pub(crate) const CANDIDATE_MAPPING_CATALOG_RAW_SHA256: &str = + "70765c64936bbb8aafd6e101fbf20c85396eb722d70e55bb9311d14bfbb15156"; +pub(crate) const CANDIDATE_MAPPING_CATALOG_SUBJECT_SHA256: &str = + "e3b790857ee21a0c651995919aaadb9bf59b05367a8dce99bab6afb6e7d2543f"; + +pub(crate) const CANDIDATE_MAPPING_COUNT: usize = 5; +pub(crate) const CANDIDATE_MAPPING_RELATIONSHIP_COUNT: usize = 14; +pub(crate) const CANDIDATE_MAPPING_ROW_COUNT: usize = 70; + +const DECISION_SUITE_RAW_SHA256: &str = + "64abe8290955f889e28f8bb9ce7653a26ef71a624286aef900d4dbfc3b7eb117"; + +const ROOT_FIELDS: [&str; 14] = [ + "schema_version", + "suite_version", + "status", + "epoch", + "frozen", + "owner_protocol_review", + "canonicalization", + "source_bindings", + "open_decisions", + "catalog_subject", + "catalog_subject_sha256", + "execution_boundary", + "evidence_status", + "nonclaims", +]; +const SOURCE_BINDING_FIELDS: [&str; 1] = ["suite"]; +const SUITE_BINDING_FIELDS: [&str; 2] = ["path", "raw_sha256"]; +const OPEN_DECISION_FIELDS: [&str; 3] = ["id", "scope", "status"]; +const CATALOG_SUBJECT_FIELDS: [&str; 5] = [ + "candidate_count", + "relationship_count", + "mapping_row_count", + "required_relationships", + "candidate_graphs", +]; +const RELATIONSHIP_FIELDS: [&str; 12] = [ + "id", + "crossing", + "direction", + "domain", + "codomain", + "definedness", + "obligations", + "identity_inputs", + "trust_role", + "failure_behavior", + "prohibited_reverse_inferences", + "observation", +]; +const CANDIDATE_GRAPH_RECORD_FIELDS: [&str; 3] = ["candidate", "graph", "graph_sha256"]; +const GRAPH_FIELDS: [&str; 5] = ["architecture", "candidate", "nodes", "edges", "sr_rows"]; +const NODE_FIELDS: [&str; 6] = ["id", "role", "member_kind", "authority", "parent", "facets"]; +const EDGE_RECORD_FIELDS: [&str; 2] = ["edge_subject", "edge_sha256"]; +const EDGE_SUBJECT_FIELDS: [&str; 16] = [ + "id", + "relationship", + "draft_status", + "conformance_status", + "direction", + "domain_endpoint", + "codomain_endpoints", + "definedness", + "obligations", + "identity_inputs", + "trust_role", + "failure_behavior", + "prohibited_reverse_inferences", + "observation_requirement", + "parameter_slots", + "delegation_boundary", +]; +const ENDPOINT_FIELDS: [&str; 2] = ["node", "facet"]; +const DELEGATION_FIELDS: [&str; 3] = [ + "selector_parameter", + "host_identity_parameter", + "non_success_behavior", +]; +const ROW_FIELDS: [&str; 2] = ["mapping", "mapping_sha256"]; +const MAPPING_FIELDS: [&str; 8] = [ + "candidate", + "relationship", + "required_relationship_sha256", + "fused_authority", + "native_edges", + "mapping_form", + "inspectability", + "draft_hypothesis", +]; +const EXECUTION_BOUNDARY_FIELDS: [&str; 5] = [ + "adapter", + "command", + "network", + "output_persistence", + "process", +]; + +pub(crate) const CANDIDATE_MAPPING_NONCLAIMS: [&str; 10] = [ + "candidate mappings are draft hypotheses and are not accepted Orange semantics", + "no candidate adapter executable command or process exists", + "no candidate mapping was executed", + "no observed state comparison result or verdict was produced", + "no candidate capability or capability absence was established", + "mapping authentication is not D-004 execution evidence", + "no D-004 evidence epoch is frozen", + "no semantic-strata candidate is selected", + "no D-004 disposition is inferred", + "no S3b implementation roadmap gate closure or release-readiness movement is authorized", +]; + +const MAPPING_FORMS: [&str; 4] = ["direct", "fused", "split", "delegated"]; +const NODE_MEMBER_KINDS: [&str; 9] = [ + "source_declaration", + "semantic_domain", + "semantic_view", + "shared_subset", + "evidence_interface", + "claim_boundary", + "judgment_boundary", + "host_delegated_domain", + "reference_set", +]; +const NODE_AUTHORITIES: [&str; 5] = [ + "input_only", + "candidate_local", + "later_decision_boundary", + "unresolved_checker_boundary", + "host_delegated", +]; +const HOST_LOCAL_RELATIONSHIP_INDICES: [usize; 8] = [0, 1, 2, 5, 6, 8, 9, 13]; + +const OPEN_DECISIONS: [(&str, &str); 8] = [ + ("D-005", "claim model"), + ("D-006", "proof foundation"), + ("D-007", "proof format and checker"), + ("D-009", "solver trust policy"), + ("D-010", "compiler-pass strategy"), + ("D-011", "host target ISA and object-format envelope"), + ("D-012", "leakage observations and declassification policy"), + ("D-013", "ABI"), +]; + +const FORBIDDEN_PERSISTED_FIELDS: [&str; 18] = [ + "adapter_argv", + "adapter_output", + "adapter_path", + "candidate_execution", + "candidate_observation", + "capability_credit", + "case_result", + "case_verdict", + "environment", + "evidence", + "execution_result", + "loader_status", + "matched", + "observed_invalidation", + "observed_state", + "readiness_credit", + "result", + "verdict", +]; + +#[derive(Clone, Debug, Eq, PartialEq)] +pub(crate) struct CandidateMappingIdentity { + pub(crate) candidate: String, + pub(crate) graph_sha256: String, + pub(crate) sr_map_sha256: String, + pub(crate) mapping_sha256: Vec, +} + +#[derive(Clone, Debug, Eq, PartialEq)] +struct NodeTopology { + facets: BTreeSet, + parent: Option, + member_kind: String, + authority: String, +} + +#[derive(Clone, Debug, Eq, PartialEq)] +struct NativeEdgeIdentity { + relationship: String, + edge_sha256: String, + endpoint_nodes: BTreeSet, +} + +struct NativeEdgeValidationContext<'a> { + candidate: &'a str, + mapping_form: &'a str, + expected_relationship: &'a str, + mapping_path: &'a str, + available_edges: &'a BTreeMap, + nodes: &'a BTreeMap, + used_edges: &'a mut BTreeSet, +} + +#[derive(Clone, Debug, Eq, PartialEq)] +pub(crate) enum CandidateMappingErrorKind { + Json(JsonErrorKind), + MissingField, + UnknownField, + InvalidValue, + NonCanonicalEncoding, + RawDigest, + CatalogDigest, + CatalogSubjectDigest, + GraphDigest, + EdgeDigest, + MappingDigest, + SourceBinding, + DuplicateIdentity, + UnresolvedEdge, + StructuralMismatch, + PersistedResult, +} + +#[derive(Clone, Debug, Eq, PartialEq)] +pub(crate) struct CandidateMappingError { + pub(crate) kind: CandidateMappingErrorKind, + pub(crate) path: String, +} + +impl CandidateMappingError { + fn new(kind: CandidateMappingErrorKind, path: impl Into) -> Self { + Self { + kind, + path: path.into(), + } + } +} + +#[derive(Clone, Debug, Eq, PartialEq)] +pub(crate) struct CandidateMappingCatalog { + value: JsonValue, + canonical: Vec, + digest: [u8; 32], + subject_digest: [u8; 32], + identities: Vec, +} + +impl CandidateMappingCatalog { + pub(crate) fn value(&self) -> &JsonValue { + &self.value + } + + pub(crate) fn canonical_bytes(&self) -> &[u8] { + &self.canonical + } + + pub(crate) fn digest_hex(&self) -> String { + sha256::hex(&self.digest) + } + + pub(crate) fn subject_digest_hex(&self) -> String { + sha256::hex(&self.subject_digest) + } + + pub(crate) fn identities(&self) -> &[CandidateMappingIdentity] { + &self.identities + } +} + +pub(crate) fn parse_candidate_mapping_catalog( + input: &[u8], +) -> Result { + let value = strict_json::parse(input).map_err(|error| { + CandidateMappingError::new( + CandidateMappingErrorKind::Json(error.kind), + format!("$@{}", error.offset), + ) + })?; + let canonical = strict_json::canonical_bytes(&value); + if input != canonical_file_bytes(canonical.clone()) { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::NonCanonicalEncoding, + "$", + )); + } + reject_persisted_fields(&value, "$")?; + let (subject_digest, identities) = validate_catalog(&value)?; + + let digest = sha256::digest(&canonical); + if sha256::hex(&digest) != CANDIDATE_MAPPING_CATALOG_CANONICAL_SHA256 { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::CatalogDigest, + "$", + )); + } + if sha256::hex(&sha256::digest(input)) != CANDIDATE_MAPPING_CATALOG_RAW_SHA256 { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::RawDigest, + "$", + )); + } + + Ok(CandidateMappingCatalog { + value, + canonical, + digest, + subject_digest, + identities, + }) +} + +fn validate_catalog( + value: &JsonValue, +) -> Result<([u8; 32], Vec), CandidateMappingError> { + let root = require_object(value, "$")?; + exact_fields(root, &ROOT_FIELDS, "$")?; + require_exact_string( + root, + "schema_version", + "d004-candidate-mapping-catalog-v0.1", + "$", + )?; + require_exact_string(root, "suite_version", "d004-v0.5-draft", "$")?; + require_exact_string(root, "status", "draft_unreviewed_input_only", "$")?; + require_null(root, "epoch", "$")?; + require_exact_bool(root, "frozen", false, "$")?; + require_exact_string(root, "owner_protocol_review", "none", "$")?; + require_exact_string( + root, + "canonicalization", + "RFC8785_ASCII_INTEGER_SUBSET", + "$", + )?; + require_exact_string(root, "evidence_status", "none", "$")?; + require_exact_strings(root, "nonclaims", &CANDIDATE_MAPPING_NONCLAIMS, "$")?; + validate_source_bindings(root)?; + validate_open_decisions(root)?; + validate_execution_boundary(root)?; + + let subject_path = "$/catalog_subject"; + let subject_value = require_field(root, "catalog_subject", "$")?; + let subject = require_object(subject_value, subject_path)?; + exact_fields(subject, &CATALOG_SUBJECT_FIELDS, subject_path)?; + require_exact_usize( + subject, + "candidate_count", + CANDIDATE_MAPPING_COUNT, + subject_path, + )?; + require_exact_usize( + subject, + "relationship_count", + CANDIDATE_MAPPING_RELATIONSHIP_COUNT, + subject_path, + )?; + require_exact_usize( + subject, + "mapping_row_count", + CANDIDATE_MAPPING_ROW_COUNT, + subject_path, + )?; + + let relationships = require_array(subject, "required_relationships", "$/catalog_subject")?; + let relationship_digests = validate_required_relationships(relationships)?; + let identities = validate_candidate_graphs(subject, relationships, &relationship_digests)?; + + let subject_digest = sha256::digest(&strict_json::canonical_bytes(subject_value)); + let observed_subject_digest = require_string(root, "catalog_subject_sha256", "$")?; + if observed_subject_digest != sha256::hex(&subject_digest) + || observed_subject_digest != CANDIDATE_MAPPING_CATALOG_SUBJECT_SHA256 + { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::CatalogSubjectDigest, + "$/catalog_subject_sha256", + )); + } + Ok((subject_digest, identities)) +} + +fn validate_source_bindings( + root: &BTreeMap, +) -> Result<(), CandidateMappingError> { + let path = "$/source_bindings"; + let bindings = require_object(require_field(root, "source_bindings", "$")?, path)?; + exact_fields(bindings, &SOURCE_BINDING_FIELDS, path)?; + let suite_path = "$/source_bindings/suite"; + let suite = require_object(require_field(bindings, "suite", path)?, suite_path)?; + exact_fields(suite, &SUITE_BINDING_FIELDS, suite_path)?; + require_exact_string( + suite, + "path", + "docs/SEMANTIC_STRATA_DECISION_SUITE.md", + suite_path, + ) + .map_err(|_| { + CandidateMappingError::new( + CandidateMappingErrorKind::SourceBinding, + "$/source_bindings/suite/path", + ) + })?; + require_exact_string(suite, "raw_sha256", DECISION_SUITE_RAW_SHA256, suite_path).map_err(|_| { + CandidateMappingError::new( + CandidateMappingErrorKind::SourceBinding, + "$/source_bindings/suite/raw_sha256", + ) + }) +} + +fn validate_execution_boundary( + root: &BTreeMap, +) -> Result<(), CandidateMappingError> { + let path = "$/execution_boundary"; + let boundary = require_object(require_field(root, "execution_boundary", "$")?, path)?; + exact_fields(boundary, &EXECUTION_BOUNDARY_FIELDS, path)?; + for (field, expected) in [ + ("adapter", "absent"), + ("command", "absent"), + ("network", "not_used"), + ("output_persistence", "none"), + ("process", "not_invoked"), + ] { + require_exact_string(boundary, field, expected, path)?; + } + Ok(()) +} + +fn validate_open_decisions( + root: &BTreeMap, +) -> Result<(), CandidateMappingError> { + let path = "$/open_decisions"; + let decisions = require_array(root, "open_decisions", "$")?; + if decisions.len() != OPEN_DECISIONS.len() { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::StructuralMismatch, + path, + )); + } + for (index, (value, (id, scope))) in decisions.iter().zip(OPEN_DECISIONS).enumerate() { + let record_path = format!("{path}/{index}"); + let record = require_object(value, &record_path)?; + exact_fields(record, &OPEN_DECISION_FIELDS, &record_path)?; + require_exact_string(record, "id", id, &record_path)?; + require_exact_string(record, "scope", scope, &record_path)?; + require_exact_string(record, "status", "unselected", &record_path)?; + } + Ok(()) +} + +fn validate_required_relationships( + relationships: &[JsonValue], +) -> Result, CandidateMappingError> { + let path = "$/catalog_subject/required_relationships"; + if relationships.len() != RELATIONSHIPS.len() { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::StructuralMismatch, + path, + )); + } + let mut ids = BTreeSet::new(); + let mut digests = Vec::with_capacity(CANDIDATE_MAPPING_RELATIONSHIP_COUNT); + for (index, (value, expected_id)) in relationships.iter().zip(RELATIONSHIPS).enumerate() { + let record_path = format!("{path}/{index}"); + let record = require_object(value, &record_path)?; + exact_fields(record, &RELATIONSHIP_FIELDS, &record_path)?; + require_exact_string(record, "id", expected_id, &record_path)?; + insert_unique(&mut ids, expected_id, &format!("{record_path}/id"))?; + for field in RELATIONSHIP_FIELDS + .into_iter() + .filter(|field| *field != "id") + { + require_nonempty_string(record, field, &record_path)?; + } + digests.push(sha256::hex(&sha256::digest(&strict_json::canonical_bytes( + value, + )))); + } + Ok(digests) +} + +fn validate_candidate_graphs( + subject: &BTreeMap, + relationships: &[JsonValue], + relationship_digests: &[String], +) -> Result, CandidateMappingError> { + let path = "$/catalog_subject/candidate_graphs"; + let graphs = require_array(subject, "candidate_graphs", "$/catalog_subject")?; + if graphs.len() != CANDIDATES.len() { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::StructuralMismatch, + path, + )); + } + let mut candidates = BTreeSet::new(); + let mut graph_digests = BTreeSet::new(); + let mut mapping_digests = BTreeSet::new(); + let mut identities = Vec::with_capacity(CANDIDATE_MAPPING_COUNT); + + for (index, (value, expected_candidate)) in graphs.iter().zip(CANDIDATES).enumerate() { + let record_path = format!("{path}/{index}"); + let record = require_object(value, &record_path)?; + exact_fields(record, &CANDIDATE_GRAPH_RECORD_FIELDS, &record_path)?; + let candidate = expected_candidate.as_str(); + require_exact_string(record, "candidate", candidate, &record_path)?; + insert_unique( + &mut candidates, + candidate, + &format!("{record_path}/candidate"), + )?; + + let graph_path = format!("{record_path}/graph"); + let graph_value = require_field(record, "graph", &record_path)?; + let graph = require_object(graph_value, &graph_path)?; + exact_fields(graph, &GRAPH_FIELDS, &graph_path)?; + require_exact_string(graph, "candidate", candidate, &graph_path)?; + require_nonempty_string(graph, "architecture", &graph_path)?; + let nodes = validate_nodes(graph, candidate, &graph_path)?; + let available_edges = validate_edges(graph, candidate, &graph_path, &nodes, relationships)?; + let (row_digests, used_edges) = validate_mapping_rows( + graph, + candidate, + &graph_path, + relationship_digests, + &available_edges, + &nodes, + &mut mapping_digests, + )?; + let available_edge_ids = available_edges.keys().cloned().collect::>(); + if available_edge_ids != used_edges { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::UnresolvedEdge, + format!("{graph_path}/edges"), + )); + } + + let graph_digest = sha256::hex(&sha256::digest(&strict_json::canonical_bytes(graph_value))); + let sr_map_sha256 = candidate_sr_map_digest_hex(graph_value, &graph_path)?; + if require_string(record, "graph_sha256", &record_path)? != graph_digest { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::GraphDigest, + format!("{record_path}/graph_sha256"), + )); + } + insert_unique( + &mut graph_digests, + &graph_digest, + &format!("{record_path}/graph_sha256"), + )?; + identities.push(CandidateMappingIdentity { + candidate: candidate.to_owned(), + graph_sha256: graph_digest, + sr_map_sha256, + mapping_sha256: row_digests, + }); + } + if mapping_digests.len() != CANDIDATE_MAPPING_ROW_COUNT { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::StructuralMismatch, + "$/catalog_subject/mapping_row_count", + )); + } + Ok(identities) +} + +fn candidate_sr_map_digest_hex( + graph_value: &JsonValue, + graph_path: &str, +) -> Result { + let graph = require_object(graph_value, graph_path)?; + let rows = require_field(graph, "sr_rows", graph_path)?; + if rows.as_array().is_none() { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::InvalidValue, + format!("{graph_path}/sr_rows"), + )); + } + Ok(sha256::hex(&sha256::digest(&strict_json::canonical_bytes( + rows, + )))) +} + +fn validate_nodes( + graph: &BTreeMap, + candidate: &str, + graph_path: &str, +) -> Result, CandidateMappingError> { + let path = format!("{graph_path}/nodes"); + let nodes = require_array(graph, "nodes", graph_path)?; + if nodes.is_empty() { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::InvalidValue, + path, + )); + } + let expected_prefix = candidate + .strip_prefix("ST-") + .unwrap_or(candidate) + .to_ascii_lowercase(); + let mut topology = BTreeMap::new(); + for (index, value) in nodes.iter().enumerate() { + let node_path = format!("{path}/{index}"); + let node = require_object(value, &node_path)?; + exact_fields(node, &NODE_FIELDS, &node_path)?; + let id = require_nonempty_string(node, "id", &node_path)?; + require_nonempty_string(node, "role", &node_path)?; + if !id.starts_with(&format!("{expected_prefix}-")) { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::StructuralMismatch, + format!("{node_path}/id"), + )); + } + let member_kind = require_string(node, "member_kind", &node_path)?; + if !NODE_MEMBER_KINDS.contains(&member_kind) { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::InvalidValue, + format!("{node_path}/member_kind"), + )); + } + let authority = require_string(node, "authority", &node_path)?; + if !NODE_AUTHORITIES.contains(&authority) { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::InvalidValue, + format!("{node_path}/authority"), + )); + } + let facets = nonempty_unique_strings(node, "facets", &node_path)?; + let parent = match require_field(node, "parent", &node_path)? { + JsonValue::Null => None, + JsonValue::String(parent) if !parent.is_empty() => Some(parent.clone()), + _ => { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::InvalidValue, + format!("{node_path}/parent"), + )); + } + }; + if topology + .insert( + id.to_owned(), + NodeTopology { + facets, + parent, + member_kind: member_kind.to_owned(), + authority: authority.to_owned(), + }, + ) + .is_some() + { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::DuplicateIdentity, + format!("{node_path}/id"), + )); + } + } + for (id, node) in &topology { + if let Some(parent) = &node.parent + && (parent == id || !topology.contains_key(parent)) + { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::UnresolvedEdge, + format!("{path}/{id}/parent"), + )); + } + } + validate_candidate_topology(candidate, &topology, &path)?; + Ok(topology) +} + +fn validate_candidate_topology( + candidate: &str, + topology: &BTreeMap, + path: &str, +) -> Result<(), CandidateMappingError> { + let required_parents: &[(&str, &str)] = match candidate { + "ST-REL" => &[("rel-shared-pure", "rel-spec-core")], + "ST-UNI" => &[ + ("uni-pure-view", "uni-calculus"), + ("uni-impl-view", "uni-calculus"), + ("uni-game-view", "uni-calculus"), + ("uni-machine-view", "uni-calculus"), + ("uni-proof-interface", "uni-calculus"), + ], + "ST-DUAL" => &[ + ("dual-game-view", "dual-effect-core"), + ("dual-ct-view", "dual-effect-core"), + ("dual-machine-view", "dual-effect-core"), + ("dual-proof-interface", "dual-effect-core"), + ], + "ST-MIRROR" => &[("mirror-shared-pure", "mirror-spec-core")], + "ST-HOST" => &[("host-judgment", "host-proof-domain")], + _ => &[], + }; + for (node, parent) in required_parents { + if topology.get(*node).and_then(|node| node.parent.as_deref()) != Some(*parent) { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::StructuralMismatch, + format!("{path}/{node}/parent"), + )); + } + } + if candidate == "ST-MIRROR" + && topology + .get("mirror-proof-core") + .map(|node| node.member_kind.as_str()) + != Some("semantic_domain") + { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::StructuralMismatch, + format!("{path}/mirror-proof-core/member_kind"), + )); + } + Ok(()) +} + +fn validate_edges( + graph: &BTreeMap, + candidate: &str, + graph_path: &str, + nodes: &BTreeMap, + relationships: &[JsonValue], +) -> Result, CandidateMappingError> { + let path = format!("{graph_path}/edges"); + let edges = require_array(graph, "edges", graph_path)?; + if edges.len() != RELATIONSHIPS.len() { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::StructuralMismatch, + path, + )); + } + let expected_prefix = candidate + .strip_prefix("ST-") + .unwrap_or(candidate) + .to_ascii_lowercase(); + let mut identities = BTreeMap::new(); + let mut digests = BTreeSet::new(); + let mut referenced_nodes = BTreeSet::new(); + + for (index, ((value, expected_relationship), relationship_value)) in edges + .iter() + .zip(RELATIONSHIPS) + .zip(relationships) + .enumerate() + { + let record_path = format!("{path}/{index}"); + let record = require_object(value, &record_path)?; + exact_fields(record, &EDGE_RECORD_FIELDS, &record_path)?; + let subject_path = format!("{record_path}/edge_subject"); + let subject_value = require_field(record, "edge_subject", &record_path)?; + let subject = require_object(subject_value, &subject_path)?; + exact_fields(subject, &EDGE_SUBJECT_FIELDS, &subject_path)?; + let id = require_nonempty_string(subject, "id", &subject_path)?; + if !id.starts_with(&format!("{expected_prefix}-")) { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::UnresolvedEdge, + format!("{subject_path}/id"), + )); + } + if identities.contains_key(id) { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::DuplicateIdentity, + format!("{subject_path}/id"), + )); + } + require_exact_string( + subject, + "relationship", + expected_relationship, + &subject_path, + )?; + require_exact_string( + subject, + "draft_status", + "draft_unreviewed_unfrozen_hypothesis", + &subject_path, + )?; + require_exact_string(subject, "conformance_status", "unresolved", &subject_path)?; + + let relationship = require_object( + relationship_value, + &format!("$/catalog_subject/required_relationships/{index}"), + )?; + for (edge_field, relationship_field) in [ + ("direction", "direction"), + ("definedness", "definedness"), + ("obligations", "obligations"), + ("identity_inputs", "identity_inputs"), + ("trust_role", "trust_role"), + ("failure_behavior", "failure_behavior"), + ( + "prohibited_reverse_inferences", + "prohibited_reverse_inferences", + ), + ("observation_requirement", "observation"), + ] { + if require_field(subject, edge_field, &subject_path)? + != require_field(relationship, relationship_field, "$required_relationship")? + { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::StructuralMismatch, + format!("{subject_path}/{edge_field}"), + )); + } + } + + let mut edge_endpoint_nodes = BTreeSet::new(); + validate_endpoint( + require_field(subject, "domain_endpoint", &subject_path)?, + nodes, + &format!("{subject_path}/domain_endpoint"), + &mut edge_endpoint_nodes, + )?; + let codomain_path = format!("{subject_path}/codomain_endpoints"); + let codomains = require_array(subject, "codomain_endpoints", &subject_path)?; + if codomains.is_empty() { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::InvalidValue, + codomain_path, + )); + } + for (endpoint_index, endpoint) in codomains.iter().enumerate() { + validate_endpoint( + endpoint, + nodes, + &format!("{codomain_path}/{endpoint_index}"), + &mut edge_endpoint_nodes, + )?; + } + if index == 13 { + let expected_node = format!("{expected_prefix}-eligible-reference-set"); + if codomains.len() != 1 { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::StructuralMismatch, + &codomain_path, + )); + } + let endpoint = require_object(&codomains[0], &codomain_path)?; + require_exact_string(endpoint, "node", &expected_node, &codomain_path)?; + require_exact_string( + endpoint, + "facet", + "candidate_wide_subject_or_evidence_reference", + &codomain_path, + )?; + } + referenced_nodes.extend(edge_endpoint_nodes.iter().cloned()); + validate_nonempty_unique_string_array(subject, "parameter_slots", &subject_path)?; + validate_delegation_boundary(subject, candidate, index, &subject_path)?; + + let digest = sha256::hex(&sha256::digest(&strict_json::canonical_bytes( + subject_value, + ))); + if require_string(record, "edge_sha256", &record_path)? != digest { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::EdgeDigest, + format!("{record_path}/edge_sha256"), + )); + } + insert_unique(&mut digests, &digest, &format!("{record_path}/edge_sha256"))?; + identities.insert( + id.to_owned(), + NativeEdgeIdentity { + relationship: expected_relationship.to_owned(), + edge_sha256: digest, + endpoint_nodes: edge_endpoint_nodes, + }, + ); + } + let parent_nodes = nodes + .values() + .filter_map(|node| node.parent.as_ref()) + .cloned() + .collect::>(); + if let Some(orphan) = nodes + .keys() + .find(|id| !referenced_nodes.contains(*id) && !parent_nodes.contains(*id)) + { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::UnresolvedEdge, + format!("{graph_path}/nodes/{orphan}"), + )); + } + Ok(identities) +} + +fn validate_endpoint( + value: &JsonValue, + nodes: &BTreeMap, + path: &str, + referenced_nodes: &mut BTreeSet, +) -> Result<(), CandidateMappingError> { + let endpoint = require_object(value, path)?; + exact_fields(endpoint, &ENDPOINT_FIELDS, path)?; + let node = require_nonempty_string(endpoint, "node", path)?; + let topology = nodes.get(node).ok_or_else(|| { + CandidateMappingError::new( + CandidateMappingErrorKind::UnresolvedEdge, + format!("{path}/node"), + ) + })?; + let facet = require_nonempty_string(endpoint, "facet", path)?; + if !topology.facets.contains(facet) { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::UnresolvedEdge, + format!("{path}/facet"), + )); + } + referenced_nodes.insert(node.to_owned()); + Ok(()) +} + +fn validate_delegation_boundary( + subject: &BTreeMap, + candidate: &str, + relationship_index: usize, + subject_path: &str, +) -> Result<(), CandidateMappingError> { + let path = format!("{subject_path}/delegation_boundary"); + let value = require_field(subject, "delegation_boundary", subject_path)?; + if candidate == "ST-HOST" && relationship_index == 2 { + let slots = require_array(subject, "parameter_slots", subject_path)?; + for forbidden in [ + "delegation_selector", + "host_identity", + "host_non_success_policy", + ] { + if slots.iter().any(|slot| slot.as_str() == Some(forbidden)) { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::StructuralMismatch, + format!("{subject_path}/parameter_slots"), + )); + } + } + } + let delegation_domain = if candidate == "ST-HOST" { + host_delegation_domain(relationship_index) + } else { + None + }; + let delegated = delegation_domain.is_some(); + if !delegated { + if !matches!(value, JsonValue::Null) { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::InvalidValue, + path, + )); + } + return Ok(()); + } + + let boundary = require_object(value, &path)?; + exact_fields(boundary, &DELEGATION_FIELDS, &path)?; + let domain = delegation_domain.expect("delegated branch"); + let selector = format!("{domain}_delegation_selector"); + let identity = format!("{domain}_host_identity"); + let policy = format!("{domain}_non_success_policy"); + for (field, expected) in [ + ("selector_parameter", selector.as_str()), + ("host_identity_parameter", identity.as_str()), + ( + "non_success_behavior", + "reject_or_unsupported_without_fallback_claim", + ), + ] { + require_exact_string(boundary, field, expected, &path)?; + } + let slots = require_array(subject, "parameter_slots", subject_path)?; + for required in [selector.as_str(), identity.as_str(), policy.as_str()] { + if !slots.iter().any(|slot| slot.as_str() == Some(required)) { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::StructuralMismatch, + format!("{subject_path}/parameter_slots"), + )); + } + } + Ok(()) +} + +fn host_delegation_domain(relationship_index: usize) -> Option<&'static str> { + match relationship_index { + 3 | 7 | 11 => Some("game"), + 4 | 12 => Some("proof"), + 10 => Some("machine"), + _ => None, + } +} + +fn validate_mapping_rows( + graph: &BTreeMap, + candidate: &str, + graph_path: &str, + relationship_digests: &[String], + available_edges: &BTreeMap, + nodes: &BTreeMap, + catalog_mapping_digests: &mut BTreeSet, +) -> Result<(Vec, BTreeSet), CandidateMappingError> { + let path = format!("{graph_path}/sr_rows"); + let rows = require_array(graph, "sr_rows", graph_path)?; + if rows.len() != RELATIONSHIPS.len() { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::StructuralMismatch, + path, + )); + } + let mut relationship_ids = BTreeSet::new(); + let mut used_edges = BTreeSet::new(); + let mut row_digests = Vec::with_capacity(CANDIDATE_MAPPING_RELATIONSHIP_COUNT); + + for (index, (value, expected_relationship)) in rows.iter().zip(RELATIONSHIPS).enumerate() { + let row_path = format!("{path}/{index}"); + let row = require_object(value, &row_path)?; + exact_fields(row, &ROW_FIELDS, &row_path)?; + let mapping_path = format!("{row_path}/mapping"); + let mapping_value = require_field(row, "mapping", &row_path)?; + let mapping = require_object(mapping_value, &mapping_path)?; + exact_fields(mapping, &MAPPING_FIELDS, &mapping_path)?; + require_exact_string(mapping, "candidate", candidate, &mapping_path)?; + require_exact_string( + mapping, + "relationship", + expected_relationship, + &mapping_path, + )?; + require_exact_string( + mapping, + "required_relationship_sha256", + &relationship_digests[index], + &mapping_path, + )?; + insert_unique( + &mut relationship_ids, + expected_relationship, + &format!("{mapping_path}/relationship"), + )?; + require_exact_string( + mapping, + "inspectability", + "separately_inspectable_and_falsifiable", + &mapping_path, + )?; + let form = require_string(mapping, "mapping_form", &mapping_path)?; + if !MAPPING_FORMS.contains(&form) { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::InvalidValue, + format!("{mapping_path}/mapping_form"), + )); + } + let expected_delegated = + candidate == "ST-HOST" && !HOST_LOCAL_RELATIONSHIP_INDICES.contains(&index); + if (form == "delegated") != expected_delegated { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::StructuralMismatch, + format!("{mapping_path}/mapping_form"), + )); + } + validate_native_edges( + mapping, + &mut NativeEdgeValidationContext { + candidate, + mapping_form: form, + expected_relationship, + mapping_path: &mapping_path, + available_edges, + nodes, + used_edges: &mut used_edges, + }, + )?; + let hypothesis = require_nonempty_string(mapping, "draft_hypothesis", &mapping_path)?; + let required_prefix = format!("Draft hypothesis: {candidate} "); + if !hypothesis.starts_with(&required_prefix) + || !hypothesis.contains(expected_relationship) + || !hypothesis.contains("unreviewed") + || !hypothesis.contains("unfrozen") + { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::InvalidValue, + format!("{mapping_path}/draft_hypothesis"), + )); + } + + let digest = sha256::hex(&sha256::digest(&strict_json::canonical_bytes( + mapping_value, + ))); + if require_string(row, "mapping_sha256", &row_path)? != digest { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::MappingDigest, + format!("{row_path}/mapping_sha256"), + )); + } + insert_unique( + catalog_mapping_digests, + &digest, + &format!("{row_path}/mapping_sha256"), + )?; + row_digests.push(digest); + } + Ok((row_digests, used_edges)) +} + +fn validate_native_edges( + mapping: &BTreeMap, + context: &mut NativeEdgeValidationContext<'_>, +) -> Result<(), CandidateMappingError> { + let candidate = context.candidate; + let mapping_form = context.mapping_form; + let expected_relationship = context.expected_relationship; + let mapping_path = context.mapping_path; + let available_edges = context.available_edges; + let nodes = context.nodes; + let path = format!("{mapping_path}/native_edges"); + let edges = require_array(mapping, "native_edges", mapping_path)?; + if edges.is_empty() { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::InvalidValue, + path, + )); + } + let valid_cardinality = if mapping_form == "split" { + edges.len() >= 2 + } else { + edges.len() == 1 + }; + if !valid_cardinality { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::StructuralMismatch, + path, + )); + } + let fused_authority = match ( + mapping_form, + require_field(mapping, "fused_authority", mapping_path)?, + ) { + ("fused", JsonValue::String(node)) if nodes.contains_key(node) => Some(node.as_str()), + ("fused", _) => { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::StructuralMismatch, + format!("{mapping_path}/fused_authority"), + )); + } + (_, JsonValue::Null) => None, + _ => { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::StructuralMismatch, + format!("{mapping_path}/fused_authority"), + )); + } + }; + let mut observed = BTreeSet::new(); + let expected_prefix = candidate + .strip_prefix("ST-") + .unwrap_or(candidate) + .to_ascii_lowercase(); + for (index, edge) in edges.iter().enumerate() { + let edge = edge.as_str().ok_or_else(|| { + CandidateMappingError::new( + CandidateMappingErrorKind::InvalidValue, + format!("{path}/{index}"), + ) + })?; + if edge.is_empty() { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::InvalidValue, + format!("{path}/{index}"), + )); + } + insert_unique(&mut observed, edge, &format!("{path}/{index}"))?; + let identity = available_edges.get(edge).ok_or_else(|| { + CandidateMappingError::new( + CandidateMappingErrorKind::UnresolvedEdge, + format!("{path}/{index}"), + ) + })?; + if !edge.starts_with(&format!("{expected_prefix}-")) + || identity.relationship != expected_relationship + || identity.edge_sha256.is_empty() + { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::UnresolvedEdge, + format!("{path}/{index}"), + )); + } + if let Some(authority) = fused_authority { + let authority_node = nodes.get(authority).ok_or_else(|| { + CandidateMappingError::new( + CandidateMappingErrorKind::UnresolvedEdge, + format!("{mapping_path}/fused_authority"), + ) + })?; + if authority_node.member_kind != "semantic_domain" { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::StructuralMismatch, + format!("{mapping_path}/fused_authority"), + )); + } + for endpoint in &identity.endpoint_nodes { + let endpoint_node = &nodes[endpoint]; + if endpoint_node.member_kind != "source_declaration" + && endpoint != authority + && endpoint_node.parent.as_deref() != Some(authority) + { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::StructuralMismatch, + format!("{path}/{index}"), + )); + } + } + } + if mapping_form == "delegated" + && !identity.endpoint_nodes.iter().any(|node| { + let endpoint = &nodes[node]; + endpoint.authority == "host_delegated" + || endpoint + .parent + .as_ref() + .and_then(|parent| nodes.get(parent)) + .is_some_and(|parent| parent.authority == "host_delegated") + }) + { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::StructuralMismatch, + format!("{path}/{index}"), + )); + } + insert_unique(context.used_edges, edge, &format!("{path}/{index}"))?; + } + Ok(()) +} + +fn reject_persisted_fields(value: &JsonValue, path: &str) -> Result<(), CandidateMappingError> { + match value { + JsonValue::Object(object) => { + for (field, child) in object { + let child_path = format!("{path}/{field}"); + if FORBIDDEN_PERSISTED_FIELDS.contains(&field.as_str()) { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::PersistedResult, + child_path, + )); + } + reject_persisted_fields(child, &child_path)?; + } + } + JsonValue::Array(values) => { + for (index, child) in values.iter().enumerate() { + reject_persisted_fields(child, &format!("{path}/{index}"))?; + } + } + _ => {} + } + Ok(()) +} + +fn canonical_file_bytes(mut canonical: Vec) -> Vec { + canonical.push(b'\n'); + canonical +} + +fn require_object<'a>( + value: &'a JsonValue, + path: &str, +) -> Result<&'a BTreeMap, CandidateMappingError> { + value + .as_object() + .ok_or_else(|| CandidateMappingError::new(CandidateMappingErrorKind::InvalidValue, path)) +} + +fn require_array<'a>( + object: &'a BTreeMap, + field: &str, + parent: &str, +) -> Result<&'a [JsonValue], CandidateMappingError> { + let path = format!("{parent}/{field}"); + require_field(object, field, parent)? + .as_array() + .ok_or_else(|| CandidateMappingError::new(CandidateMappingErrorKind::InvalidValue, path)) +} + +fn require_field<'a>( + object: &'a BTreeMap, + field: &str, + parent: &str, +) -> Result<&'a JsonValue, CandidateMappingError> { + object.get(field).ok_or_else(|| { + CandidateMappingError::new( + CandidateMappingErrorKind::MissingField, + format!("{parent}/{field}"), + ) + }) +} + +fn exact_fields( + object: &BTreeMap, + expected: &[&str], + path: &str, +) -> Result<(), CandidateMappingError> { + if let Some(field) = object + .keys() + .find(|field| !expected.contains(&field.as_str())) + { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::UnknownField, + format!("{path}/{field}"), + )); + } + for field in expected { + if !object.contains_key(*field) { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::MissingField, + format!("{path}/{field}"), + )); + } + } + Ok(()) +} + +fn require_string<'a>( + object: &'a BTreeMap, + field: &str, + parent: &str, +) -> Result<&'a str, CandidateMappingError> { + let path = format!("{parent}/{field}"); + require_field(object, field, parent)? + .as_str() + .ok_or_else(|| CandidateMappingError::new(CandidateMappingErrorKind::InvalidValue, path)) +} + +fn require_nonempty_string<'a>( + object: &'a BTreeMap, + field: &str, + parent: &str, +) -> Result<&'a str, CandidateMappingError> { + let value = require_string(object, field, parent)?; + if value.is_empty() { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::InvalidValue, + format!("{parent}/{field}"), + )); + } + Ok(value) +} + +fn require_exact_string( + object: &BTreeMap, + field: &str, + expected: &str, + parent: &str, +) -> Result<(), CandidateMappingError> { + if require_string(object, field, parent)? != expected { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::InvalidValue, + format!("{parent}/{field}"), + )); + } + Ok(()) +} + +fn require_exact_strings( + object: &BTreeMap, + field: &str, + expected: &[&str], + parent: &str, +) -> Result<(), CandidateMappingError> { + let path = format!("{parent}/{field}"); + let observed = require_field(object, field, parent)? + .as_array() + .ok_or_else(|| { + CandidateMappingError::new(CandidateMappingErrorKind::InvalidValue, &path) + })?; + if observed.len() != expected.len() { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::InvalidValue, + path, + )); + } + for (index, (value, expected)) in observed.iter().zip(expected).enumerate() { + if value.as_str() != Some(*expected) { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::InvalidValue, + format!("{path}/{index}"), + )); + } + } + Ok(()) +} + +fn validate_nonempty_unique_string_array( + object: &BTreeMap, + field: &str, + parent: &str, +) -> Result<(), CandidateMappingError> { + nonempty_unique_strings(object, field, parent).map(|_| ()) +} + +fn nonempty_unique_strings( + object: &BTreeMap, + field: &str, + parent: &str, +) -> Result, CandidateMappingError> { + let path = format!("{parent}/{field}"); + let values = require_field(object, field, parent)? + .as_array() + .ok_or_else(|| { + CandidateMappingError::new(CandidateMappingErrorKind::InvalidValue, &path) + })?; + if values.is_empty() { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::InvalidValue, + path, + )); + } + let mut observed = BTreeSet::new(); + for (index, value) in values.iter().enumerate() { + let value = value.as_str().ok_or_else(|| { + CandidateMappingError::new( + CandidateMappingErrorKind::InvalidValue, + format!("{path}/{index}"), + ) + })?; + if value.is_empty() { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::InvalidValue, + format!("{path}/{index}"), + )); + } + insert_unique(&mut observed, value, &format!("{path}/{index}"))?; + } + Ok(observed) +} + +fn require_exact_usize( + object: &BTreeMap, + field: &str, + expected: usize, + parent: &str, +) -> Result<(), CandidateMappingError> { + let path = format!("{parent}/{field}"); + let observed = require_field(object, field, parent)? + .as_integer() + .ok_or_else(|| { + CandidateMappingError::new(CandidateMappingErrorKind::InvalidValue, &path) + })?; + if usize::try_from(observed).ok() != Some(expected) { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::InvalidValue, + path, + )); + } + Ok(()) +} + +fn require_null( + object: &BTreeMap, + field: &str, + parent: &str, +) -> Result<(), CandidateMappingError> { + if !matches!(require_field(object, field, parent)?, JsonValue::Null) { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::InvalidValue, + format!("{parent}/{field}"), + )); + } + Ok(()) +} + +fn require_exact_bool( + object: &BTreeMap, + field: &str, + expected: bool, + parent: &str, +) -> Result<(), CandidateMappingError> { + if !matches!(require_field(object, field, parent)?, JsonValue::Bool(value) if *value == expected) + { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::InvalidValue, + format!("{parent}/{field}"), + )); + } + Ok(()) +} + +fn insert_unique( + values: &mut BTreeSet, + value: &str, + path: &str, +) -> Result<(), CandidateMappingError> { + if !values.insert(value.to_owned()) { + return Err(CandidateMappingError::new( + CandidateMappingErrorKind::DuplicateIdentity, + path, + )); + } + Ok(()) +} + +#[cfg(test)] +mod tests { + use super::*; + + const CHECKED_IN_CATALOG: &[u8] = + include_bytes!("../../../../../research/decisions/D-004/d004-v0.5-candidate-mappings.json"); + + #[test] + fn aggregate_sr_map_identities_are_distinct_lower_hex_digests() { + let catalog = + parse_candidate_mapping_catalog(CHECKED_IN_CATALOG).expect("checked-in catalog"); + let mut observed = BTreeSet::new(); + for identity in catalog.identities() { + assert_eq!(identity.sr_map_sha256.len(), 64); + assert!( + identity + .sr_map_sha256 + .bytes() + .all(|byte| byte.is_ascii_digit() || (b'a'..=b'f').contains(&byte)) + ); + assert_ne!(identity.sr_map_sha256, identity.graph_sha256); + assert!(observed.insert(identity.sr_map_sha256.clone())); + } + assert_eq!(observed.len(), CANDIDATE_MAPPING_COUNT); + } + + #[test] + fn aggregate_sr_map_identity_changes_on_row_substitution() { + let mut value = strict_json::parse(CHECKED_IN_CATALOG).expect("checked-in JSON"); + let root = object_mut(&mut value); + let subject = object_mut( + root.get_mut("catalog_subject") + .expect("catalog subject field"), + ); + let graphs = array_mut( + subject + .get_mut("candidate_graphs") + .expect("candidate graphs field"), + ); + let first_record = object_mut(&mut graphs[0]); + let graph = first_record.get_mut("graph").expect("graph field"); + let before = candidate_sr_map_digest_hex(graph, "$test/graph").expect("initial digest"); + let rows = array_mut(object_mut(graph).get_mut("sr_rows").expect("SR rows field")); + rows.swap(0, 1); + let after = candidate_sr_map_digest_hex(graph, "$test/graph").expect("mutated digest"); + assert_ne!(before, after); + } + + fn object_mut(value: &mut JsonValue) -> &mut BTreeMap { + match value { + JsonValue::Object(object) => object, + _ => panic!("expected object"), + } + } + + fn array_mut(value: &mut JsonValue) -> &mut Vec { + match value { + JsonValue::Array(array) => array, + _ => panic!("expected array"), + } + } +} diff --git a/compiler/crates/orange-compiler/tests/d004_support/case_subjects.rs b/compiler/crates/orange-compiler/tests/d004_support/case_subjects.rs index 265cc41..87ea8bb 100644 --- a/compiler/crates/orange-compiler/tests/d004_support/case_subjects.rs +++ b/compiler/crates/orange-compiler/tests/d004_support/case_subjects.rs @@ -8,16 +8,16 @@ use super::strict_json::{self, JsonErrorKind, JsonValue}; pub(crate) const CASE_SUBJECT_CATALOG_PATH: &str = "research/decisions/D-004/d004-v0.4-case-subjects.json"; pub(crate) const CASE_SUBJECT_CATALOG_CANONICAL_SHA256: &str = - "b3a8bcf4f0f084740e92cbff6fd57273df0a078af9c6b974f68d95ba333c6dc1"; + "5b9e734b6bad7913072e87adb29c58547d67bdcb46af942eb6bbc79d0e68166e"; pub(crate) const CASE_SUBJECT_CATALOG_RAW_SHA256: &str = - "c94100598aaf39954fe683a44f6a4d34837304eb361a1b478ca26884892d8ed6"; + "6266b8e38ad1a83fb777278fc0369844749b2915eabb40ba1ddfc9efa7c985f2"; const CASE_SUBJECT_SCHEMA: &str = "d004-case-subject-v0.1"; const POSITIVE_SUBJECT_COUNT: usize = 5; const MUTATION_SUBJECT_COUNT: usize = 26; const SUBJECT_COUNT: usize = POSITIVE_SUBJECT_COUNT + MUTATION_SUBJECT_COUNT; const DECISION_SUITE_RAW_SHA256: &str = - "f44c556202d0e235fd42c03181134ab3047d3e9b6f19b3015dae15a86d00dc0b"; + "64abe8290955f889e28f8bb9ce7653a26ef71a624286aef900d4dbfc3b7eb117"; const MUTATION_MANIFEST_CANONICAL_SHA256: &str = "970999d998cdc202a6caa4e2f798017416c88211a5b6b8508132a07cc9080c0c"; const MUTATION_MANIFEST_RAW_SHA256: &str = @@ -106,7 +106,7 @@ const DEPENDENT_RESULT_FIELDS: [&str; 3] = ["id", "required_target", "required_v const MANIFEST_RECORD_FIELDS: [&str; 3] = ["id", "case", "description"]; pub(crate) const CASE_SUBJECT_NONCLAIMS: [&str; 9] = [ - "no candidate mapping or adapter exists", + "candidate mappings are separate unreviewed input-only hypotheses; no candidate adapter exists", "no candidate process or tool invoked", "no observed state, match, result, or verdict produced", "no candidate capability or capability absence established", @@ -524,7 +524,7 @@ fn validate_catalog( "d004-case-subject-catalog-v0.1", "$", )?; - require_exact_string(root, "suite_version", "d004-v0.4-draft", "$")?; + require_exact_string(root, "suite_version", "d004-v0.5-draft", "$")?; require_exact_string(root, "status", "draft_unreviewed_input_only", "$")?; require_exact_string(root, "owner_protocol_review", "none", "$")?; require_exact_string( diff --git a/compiler/crates/orange-compiler/tests/d004_support/domain.rs b/compiler/crates/orange-compiler/tests/d004_support/domain.rs index 59d9854..cabd96f 100644 --- a/compiler/crates/orange-compiler/tests/d004_support/domain.rs +++ b/compiler/crates/orange-compiler/tests/d004_support/domain.rs @@ -1,8 +1,8 @@ use std::fmt; pub(crate) const REQUIRED_CANDIDATE_CASES: usize = 25; -pub(crate) const INPUT_BINDING_COUNT: usize = 22; -pub(crate) const CROSS_CUTTING_PROPOSAL_COUNT: usize = 39; +pub(crate) const INPUT_BINDING_COUNT: usize = 23; +pub(crate) const CROSS_CUTTING_PROPOSAL_COUNT: usize = 42; #[derive(Clone, Copy, Debug, Eq, Ord, PartialEq, PartialOrd)] pub(crate) enum CandidateId { @@ -128,7 +128,7 @@ pub(crate) const CROSS_CUTTING_PROPOSAL_CLASS_STATUSES: [ProposalClassStatusSpec }, ProposalClassStatusSpec { class: "identity-substitution", - proposal_count: 10, + proposal_count: 13, }, ProposalClassStatusSpec { class: "unsupported", @@ -163,7 +163,7 @@ pub(crate) struct IdentitySubstitutionProposalSpec { pub(crate) target: &'static str, } -pub(crate) const IDENTITY_SUBSTITUTION_PROPOSALS: [IdentitySubstitutionProposalSpec; 10] = [ +pub(crate) const IDENTITY_SUBSTITUTION_PROPOSALS: [IdentitySubstitutionProposalSpec; 13] = [ IdentitySubstitutionProposalSpec { id: "D004-XF-ID-PACKET", target: "packet_identity", @@ -204,6 +204,18 @@ pub(crate) const IDENTITY_SUBSTITUTION_PROPOSALS: [IdentitySubstitutionProposalS id: "D004-XF-ID-ENVIRONMENT", target: "environment_identity", }, + IdentitySubstitutionProposalSpec { + id: "D004-XF-ID-MODEL", + target: "model_identity", + }, + IdentitySubstitutionProposalSpec { + id: "D004-XF-ID-DEPENDENCY-MANIFEST", + target: "dependency_manifest_identity", + }, + IdentitySubstitutionProposalSpec { + id: "D004-XF-ID-POSITIVE-SUBJECT", + target: "positive_subject_identity", + }, ]; #[derive(Clone, Copy, Debug, Eq, PartialEq)] @@ -355,17 +367,19 @@ pub(crate) const CASE_SCOPED_CROSS_CUTTING_PROPOSALS: [CaseScopedProposalSpec; 1 }, ]; -pub(crate) const PROTOCOL_GAPS: [&str; 6] = [ +pub(crate) const PROTOCOL_GAPS: [&str; 7] = [ "ambiguity fixture sufficiency review unresolved", "missing-edge fixture sufficiency review unresolved", "identity-substitution fixture sufficiency review unresolved", "unsupported fixture sufficiency review unresolved", "resource-exhaustion fixture sufficiency review unresolved", + "candidate graph and SR mapping review unresolved", "replay repetition count unresolved", ]; -pub(crate) const NONCLAIMS: [&str; 6] = [ - "no candidate adapter executed", +pub(crate) const NONCLAIMS: [&str; 7] = [ + "candidate mappings are unreviewed input-only hypotheses, not accepted semantics", + "no candidate adapter exists or executed", "no D-004 evidence epoch frozen", "no semantic-strata candidate selected", "no D-004 disposition inferred from D-003 acceptance", @@ -411,6 +425,7 @@ pub(crate) enum InputBindingId { CrossCuttingFixtureProposals, CrossCuttingExecutableFixtures, CaseSubjects, + CandidateMappings, } impl InputBindingId { @@ -438,6 +453,7 @@ impl InputBindingId { Self::CrossCuttingFixtureProposals => "cross_cutting_fixture_proposals", Self::CrossCuttingExecutableFixtures => "cross_cutting_executable_fixtures", Self::CaseSubjects => "case_subjects", + Self::CandidateMappings => "candidate_mappings", } } @@ -465,6 +481,7 @@ impl InputBindingId { Self::CrossCuttingFixtureProposals => 19, Self::CrossCuttingExecutableFixtures => 20, Self::CaseSubjects => 21, + Self::CandidateMappings => 22, } } } @@ -485,7 +502,7 @@ pub(crate) const INPUT_BINDINGS: [InputBinding; INPUT_BINDING_COUNT] = [ InputBinding { id: InputBindingId::DecisionSuite, path: "docs/SEMANTIC_STRATA_DECISION_SUITE.md", - sha256: "f44c556202d0e235fd42c03181134ab3047d3e9b6f19b3015dae15a86d00dc0b", + sha256: "64abe8290955f889e28f8bb9ce7653a26ef71a624286aef900d4dbfc3b7eb117", }, InputBinding { id: InputBindingId::ProductFormDecisionPacket, @@ -575,17 +592,22 @@ pub(crate) const INPUT_BINDINGS: [InputBinding; INPUT_BINDING_COUNT] = [ InputBinding { id: InputBindingId::CrossCuttingFixtureProposals, path: "research/decisions/D-004/d004-v0.2-cross-cutting-fixture-proposals.json", - sha256: "171c7b88d54fe2bd7ddb4c220adb63f006e07c35391018b914482ace17cf7e93", + sha256: "d3d58cbeb0d2a90987680cd00bc70caf53518be730a71d0d55ba2a7b50544481", }, InputBinding { id: InputBindingId::CrossCuttingExecutableFixtures, path: "research/decisions/D-004/d004-v0.3-cross-cutting-executable-fixtures.json", - sha256: "268b4065028f1af9c9ec912ae8884c150094189f5d782963f42ed6ed4cca6ce0", + sha256: "5fea65960c47818243d41076dd96a6cab2dbd6d4038fd354a3f5ba30a12622ae", }, InputBinding { id: InputBindingId::CaseSubjects, path: "research/decisions/D-004/d004-v0.4-case-subjects.json", - sha256: "c94100598aaf39954fe683a44f6a4d34837304eb361a1b478ca26884892d8ed6", + sha256: "6266b8e38ad1a83fb777278fc0369844749b2915eabb40ba1ddfc9efa7c985f2", + }, + InputBinding { + id: InputBindingId::CandidateMappings, + path: "research/decisions/D-004/d004-v0.5-candidate-mappings.json", + sha256: "70765c64936bbb8aafd6e101fbf20c85396eb722d70e55bb9311d14bfbb15156", }, ]; diff --git a/compiler/crates/orange-compiler/tests/d004_support/fixtures.rs b/compiler/crates/orange-compiler/tests/d004_support/fixtures.rs index ca1ab27..49017a0 100644 --- a/compiler/crates/orange-compiler/tests/d004_support/fixtures.rs +++ b/compiler/crates/orange-compiler/tests/d004_support/fixtures.rs @@ -12,9 +12,9 @@ pub(crate) const FIXTURE_CATALOG_PATH: &str = pub(crate) const FIXTURE_CATALOG_SCHEMA: &str = "d004-cross-cutting-executable-fixtures-v0.1"; pub(crate) const FIXTURE_SUBJECT_SCHEMA: &str = "d004-cross-cutting-fixture-subject-v0.1"; pub(crate) const FIXTURE_CATALOG_CANONICAL_SHA256: &str = - "ca08308161244e9541803aa8008dd1624a2101f77da8b656cf0c5deff8a60703"; + "0516a84260bcc4d8ebb64e0cd3416deb5c43a86b7f5cd882ca757c924e575767"; pub(crate) const FIXTURE_CATALOG_RAW_SHA256: &str = - "268b4065028f1af9c9ec912ae8884c150094189f5d782963f42ed6ed4cca6ce0"; + "5fea65960c47818243d41076dd96a6cab2dbd6d4038fd354a3f5ba30a12622ae"; const ROOT_FIELDS: [&str; 12] = [ "schema_version", @@ -355,13 +355,13 @@ fn validate_proposal_manifest_binding( require_exact_string( binding, "canonical_sha256", - "457c14e7d41f677b21af254af45e331b24e6c685a7d7aa8eae556ced5bd7be65", + "85407a4a43b5a6bf450ea905fe858482f2f79abb4cbe8ee8690bddc1753d0912", path, )?; require_exact_string( binding, "raw_sha256", - "171c7b88d54fe2bd7ddb4c220adb63f006e07c35391018b914482ace17cf7e93", + "d3d58cbeb0d2a90987680cd00bc70caf53518be730a71d0d55ba2a7b50544481", path, ) } diff --git a/compiler/crates/orange-compiler/tests/d004_support/packet.rs b/compiler/crates/orange-compiler/tests/d004_support/packet.rs index ff40276..f0f9c3d 100644 --- a/compiler/crates/orange-compiler/tests/d004_support/packet.rs +++ b/compiler/crates/orange-compiler/tests/d004_support/packet.rs @@ -1,5 +1,6 @@ use std::collections::BTreeMap; +use super::candidate_mappings::CANDIDATE_MAPPING_CATALOG_CANONICAL_SHA256; use super::case_subjects::CASE_SUBJECT_CATALOG_CANONICAL_SHA256; use super::cases::MUTATIONS; use super::domain::{ @@ -14,7 +15,7 @@ use super::fixtures::FIXTURE_CATALOG_CANONICAL_SHA256; use super::sha256; use super::strict_json::{self, JsonErrorKind, JsonValue}; -const ROOT_FIELDS: [&str; 28] = [ +const ROOT_FIELDS: [&str; 29] = [ "schema_version", "suite_version", "status", @@ -32,6 +33,7 @@ const ROOT_FIELDS: [&str; 28] = [ "mutations", "mutation_manifest_sha256", "case_subject_catalog_sha256", + "candidate_mapping_catalog_sha256", "cross_cutting_fixture_proposal_manifest_sha256", "cross_cutting_executable_fixture_catalog_sha256", "fixture_inventory_status", @@ -101,10 +103,12 @@ const EXECUTION_FIELDS: [&str; 5] = [ pub(crate) const MUTATION_MANIFEST_SHA256: &str = "970999d998cdc202a6caa4e2f798017416c88211a5b6b8508132a07cc9080c0c"; pub(crate) const CROSS_CUTTING_FIXTURE_PROPOSAL_MANIFEST_SHA256: &str = - "457c14e7d41f677b21af254af45e331b24e6c685a7d7aa8eae556ced5bd7be65"; + "85407a4a43b5a6bf450ea905fe858482f2f79abb4cbe8ee8690bddc1753d0912"; pub(crate) const CROSS_CUTTING_EXECUTABLE_FIXTURE_CATALOG_SHA256: &str = FIXTURE_CATALOG_CANONICAL_SHA256; pub(crate) const CASE_SUBJECT_CATALOG_SHA256: &str = CASE_SUBJECT_CATALOG_CANONICAL_SHA256; +pub(crate) const CANDIDATE_MAPPING_CATALOG_SHA256: &str = + CANDIDATE_MAPPING_CATALOG_CANONICAL_SHA256; #[derive(Clone, Debug, Eq, PartialEq)] pub(crate) enum PacketErrorKind { @@ -254,8 +258,8 @@ fn validate_packet(value: &JsonValue) -> Result<(), PacketError> { let root = require_object(value, "$")?; exact_fields(root, &ROOT_FIELDS, "$")?; - require_exact_string(root, "schema_version", "d004-pre-epoch-packet-v0.4", "$")?; - require_exact_string(root, "suite_version", "d004-v0.4-draft", "$")?; + require_exact_string(root, "schema_version", "d004-pre-epoch-packet-v0.5", "$")?; + require_exact_string(root, "suite_version", "d004-v0.5-draft", "$")?; require_exact_string(root, "status", "draft_unfrozen", "$")?; require_null(root, "epoch", "$")?; require_exact_string(root, "epoch_status", "unfrozen", "$")?; @@ -300,6 +304,12 @@ fn validate_packet(value: &JsonValue) -> Result<(), PacketError> { CASE_SUBJECT_CATALOG_SHA256, "$", )?; + require_exact_string( + root, + "candidate_mapping_catalog_sha256", + CANDIDATE_MAPPING_CATALOG_SHA256, + "$", + )?; if cross_cutting_fixture_proposal_manifest_digest_hex() != CROSS_CUTTING_FIXTURE_PROPOSAL_MANIFEST_SHA256 { @@ -323,7 +333,7 @@ fn validate_packet(value: &JsonValue) -> Result<(), PacketError> { require_exact_string( root, "fixture_inventory_status", - "case_and_cross_cutting_materialized_unreviewed_freeze_blocker", + "case_cross_cutting_and_candidate_mapping_materialized_unreviewed_freeze_blocker", "$", )?; require_exact_strings( @@ -627,8 +637,8 @@ fn draft_packet_value() -> JsonValue { let case_ids = CASES.map(|case| case.as_str()); let mutation_ids = MUTATIONS.map(|mutation| mutation.id); strict_json::object([ - string_entry("schema_version", "d004-pre-epoch-packet-v0.4"), - string_entry("suite_version", "d004-v0.4-draft"), + string_entry("schema_version", "d004-pre-epoch-packet-v0.5"), + string_entry("suite_version", "d004-v0.5-draft"), string_entry("status", "draft_unfrozen"), ("epoch".to_owned(), JsonValue::Null), string_entry("epoch_status", "unfrozen"), @@ -656,6 +666,10 @@ fn draft_packet_value() -> JsonValue { ("mutations".to_owned(), strict_json::strings(mutation_ids)), string_entry("mutation_manifest_sha256", MUTATION_MANIFEST_SHA256), string_entry("case_subject_catalog_sha256", CASE_SUBJECT_CATALOG_SHA256), + string_entry( + "candidate_mapping_catalog_sha256", + CANDIDATE_MAPPING_CATALOG_SHA256, + ), string_entry( "cross_cutting_fixture_proposal_manifest_sha256", CROSS_CUTTING_FIXTURE_PROPOSAL_MANIFEST_SHA256, @@ -666,7 +680,7 @@ fn draft_packet_value() -> JsonValue { ), string_entry( "fixture_inventory_status", - "case_and_cross_cutting_materialized_unreviewed_freeze_blocker", + "case_cross_cutting_and_candidate_mapping_materialized_unreviewed_freeze_blocker", ), ( "unresolved_cross_cutting_fixture_classes".to_owned(), diff --git a/compiler/crates/orange-compiler/tests/d004_support/result_contract.rs b/compiler/crates/orange-compiler/tests/d004_support/result_contract.rs index aaeebfa..cabd9db 100644 --- a/compiler/crates/orange-compiler/tests/d004_support/result_contract.rs +++ b/compiler/crates/orange-compiler/tests/d004_support/result_contract.rs @@ -1,3 +1,7 @@ +use super::candidate_mappings::{ + CANDIDATE_MAPPING_CATALOG_CANONICAL_SHA256, CANDIDATE_MAPPING_CATALOG_PATH, + CANDIDATE_MAPPING_CATALOG_RAW_SHA256, CandidateMappingCatalog, +}; use super::case_subjects::{ CASE_SUBJECT_CATALOG_CANONICAL_SHA256, CASE_SUBJECT_CATALOG_PATH, CASE_SUBJECT_CATALOG_RAW_SHA256, CaseSubjectCatalog, @@ -255,6 +259,13 @@ pub(crate) const SUBJECT_ORACLE_FIELDS: [&str; 11] = [ "capability_credit", ]; +pub(crate) const CANDIDATE_MAPPING_IDENTITY_FIELDS: [&str; 4] = [ + "candidate", + "graph_sha256", + "sr_map_sha256", + "mapping_sha256", +]; + pub(crate) const DIGEST_JOIN_FIELDS: [&str; 13] = [ "packet_sha256", "replay_plan_sha256", @@ -282,7 +293,7 @@ pub(crate) const ORDERING_RULES: [&str; 6] = [ pub(crate) const OBSERVATION_COMPARISONS: [&str; 2] = ["matched", "mismatched"]; -pub(crate) const DERIVATION_RULES: [&str; 30] = [ +pub(crate) const DERIVATION_RULES: [&str; 31] = [ "each observation subject_id and subject_sha256 must resolve exactly one authenticated subject-oracle row", "observation_level, allowed_domain_states, required_invalidation, and capability_credit must equal the resolved oracle and cannot be result-defined or broadened", "comparison is matched if and only if observed_state is a member of the resolved oracle allowed_domain_states", @@ -295,6 +306,7 @@ pub(crate) const DERIVATION_RULES: [&str; 30] = [ "candidate-adapter inability cannot satisfy a domain-level unsupported expectation", "domain-level unknown, unsupported, or exhausted can match only when preregistered", "every SR-01 through SR-14 relationship appears exactly once in canonical order", + "candidate_graph and sr_conformance_map identities must resolve the exact candidate entry in the authenticated candidate-mapping catalog", "SR applicability is derived from authenticated subject relationship scopes rather than declared by a result", "every required SR row must be satisfied; not_satisfied, unresolved, or unsupported forces case_verdict fail", "every dependent_observation_id must join exactly one authenticated observation in the same candidate-case repetition", @@ -317,7 +329,7 @@ pub(crate) const DERIVATION_RULES: [&str; 30] = [ pub(crate) const RESULT_CONTRACT_NONCLAIMS: [&str; 12] = [ "descriptor only; no populated case record exists", - "no candidate mapping or adapter exists", + "candidate mappings are unreviewed input-only hypotheses; no candidate adapter exists", "no candidate process or tool invoked", "no result, observation, verdict, review, or evidence record accepted", "no replay repetition count assigned", @@ -424,14 +436,20 @@ impl DraftResultContractDescriptor { pub(crate) fn canonical_draft_result_contract_descriptor_bytes( case_subject_catalog: &CaseSubjectCatalog, fixture_catalog: &FixtureCatalog, + candidate_mapping_catalog: &CandidateMappingCatalog, ) -> Vec { - strict_json::canonical_bytes(&descriptor_value(case_subject_catalog, fixture_catalog)) + strict_json::canonical_bytes(&descriptor_value( + case_subject_catalog, + fixture_catalog, + candidate_mapping_catalog, + )) } pub(crate) fn parse_draft_result_contract_descriptor( source: &[u8], case_subject_catalog: &CaseSubjectCatalog, fixture_catalog: &FixtureCatalog, + candidate_mapping_catalog: &CandidateMappingCatalog, ) -> Result { let value = strict_json::parse(source).map_err(|error| { ResultContractError::new( @@ -445,7 +463,11 @@ pub(crate) fn parse_draft_result_contract_descriptor( "$/descriptor", )); } - let expected = descriptor_value(case_subject_catalog, fixture_catalog); + let expected = descriptor_value( + case_subject_catalog, + fixture_catalog, + candidate_mapping_catalog, + ); if value != expected { return Err(ResultContractError::new( ResultContractErrorKind::SchemaMismatch, @@ -512,10 +534,11 @@ fn pointer_token(value: &str) -> String { fn descriptor_value( case_subject_catalog: &CaseSubjectCatalog, fixture_catalog: &FixtureCatalog, + candidate_mapping_catalog: &CandidateMappingCatalog, ) -> JsonValue { strict_json::object([ string_entry("schema_version", RESULT_CONTRACT_SCHEMA_VERSION), - string_entry("suite_version", "d004-v0.4-draft"), + string_entry("suite_version", "d004-v0.5-draft"), string_entry("status", "draft_schema_descriptor_only"), string_entry("canonicalization", "RFC8785_ASCII_INTEGER_SUBSET"), ("epoch".to_owned(), JsonValue::Null), @@ -532,7 +555,15 @@ fn descriptor_value( ("mutation_inventory".to_owned(), mutation_inventory_value()), ( "subject_catalog_bindings".to_owned(), - subject_catalog_bindings_value(case_subject_catalog, fixture_catalog), + subject_catalog_bindings_value( + case_subject_catalog, + fixture_catalog, + candidate_mapping_catalog, + ), + ), + ( + "candidate_mapping_identity_inventory".to_owned(), + candidate_mapping_identity_inventory_value(candidate_mapping_catalog), ), ( "subject_oracle_inventory".to_owned(), @@ -690,6 +721,7 @@ fn mutation_inventory_value() -> JsonValue { fn subject_catalog_bindings_value( case_subject_catalog: &CaseSubjectCatalog, fixture_catalog: &FixtureCatalog, + candidate_mapping_catalog: &CandidateMappingCatalog, ) -> JsonValue { assert_eq!( case_subject_catalog.digest_hex(), @@ -701,6 +733,11 @@ fn subject_catalog_bindings_value( FIXTURE_CATALOG_CANONICAL_SHA256, "result descriptor requires the authenticated cross-cutting fixture catalog" ); + assert_eq!( + candidate_mapping_catalog.digest_hex(), + CANDIDATE_MAPPING_CATALOG_CANONICAL_SHA256, + "result descriptor requires the authenticated candidate-mapping catalog" + ); strict_json::object([ ( "case_subject_catalog".to_owned(), @@ -718,6 +755,14 @@ fn subject_catalog_bindings_value( FIXTURE_CATALOG_CANONICAL_SHA256, ), ), + ( + "candidate_mapping_catalog".to_owned(), + catalog_binding_value( + CANDIDATE_MAPPING_CATALOG_PATH, + CANDIDATE_MAPPING_CATALOG_RAW_SHA256, + CANDIDATE_MAPPING_CATALOG_CANONICAL_SHA256, + ), + ), ]) } @@ -729,6 +774,35 @@ fn catalog_binding_value(path: &str, raw_sha256: &str, canonical_sha256: &str) - ]) } +fn candidate_mapping_identity_inventory_value( + candidate_mapping_catalog: &CandidateMappingCatalog, +) -> JsonValue { + JsonValue::Array( + candidate_mapping_catalog + .identities() + .iter() + .map(|identity| { + strict_json::object([ + string_entry("candidate", &identity.candidate), + string_entry("graph_sha256", &identity.graph_sha256), + string_entry("sr_map_sha256", &identity.sr_map_sha256), + ( + "mapping_sha256".to_owned(), + JsonValue::Array( + identity + .mapping_sha256 + .iter() + .cloned() + .map(JsonValue::String) + .collect(), + ), + ), + ]) + }) + .collect(), + ) +} + fn subject_oracle_inventory_value( case_subject_catalog: &CaseSubjectCatalog, fixture_catalog: &FixtureCatalog, @@ -878,7 +952,7 @@ fn schedule_contract_value() -> JsonValue { fn scheduled_slot_identity_contract_value() -> JsonValue { strict_json::object([ string_entry("schema_version", "d004-scheduled-slot-identity-v0.1"), - string_entry("suite_version", "d004-v0.4-draft"), + string_entry("suite_version", "d004-v0.5-draft"), string_entry("canonicalization", "RFC8785_ASCII_INTEGER_SUBSET"), ("terminal_line_feed".to_owned(), JsonValue::Bool(false)), string_entry("hash", "sha256"), diff --git a/compiler/crates/orange-compiler/tests/d004_support/runner.rs b/compiler/crates/orange-compiler/tests/d004_support/runner.rs index 052891f..e8cafc6 100644 --- a/compiler/crates/orange-compiler/tests/d004_support/runner.rs +++ b/compiler/crates/orange-compiler/tests/d004_support/runner.rs @@ -1,5 +1,6 @@ use std::collections::BTreeMap; +use super::candidate_mappings::{CandidateMappingErrorKind, parse_candidate_mapping_catalog}; use super::case_subjects::{CaseSubjectErrorKind, parse_case_subject_catalog}; use super::domain::{ CANDIDATES, CASES, CandidateId, CaseId, INPUT_BINDING_COUNT, INPUT_BINDINGS, InputBindingId, @@ -7,7 +8,8 @@ use super::domain::{ }; use super::fixtures::{FixtureErrorKind, parse_fixture_catalog}; use super::packet::{ - CASE_SUBJECT_CATALOG_SHA256, CROSS_CUTTING_EXECUTABLE_FIXTURE_CATALOG_SHA256, + CANDIDATE_MAPPING_CATALOG_SHA256, CASE_SUBJECT_CATALOG_SHA256, + CROSS_CUTTING_EXECUTABLE_FIXTURE_CATALOG_SHA256, CROSS_CUTTING_FIXTURE_PROPOSAL_MANIFEST_SHA256, DraftPacket, MUTATION_MANIFEST_SHA256, PacketErrorKind, canonical_cross_cutting_fixture_proposal_manifest_file_bytes, canonical_mutation_manifest_file_bytes, cross_cutting_fixture_proposal_manifest_digest_hex, @@ -77,6 +79,11 @@ pub(crate) enum ReplayError { expected_sha256: &'static str, observed_sha256: String, }, + CandidateMappingCatalog(CandidateMappingErrorKind), + CandidateMappingCatalogDigest { + expected_sha256: &'static str, + observed_sha256: String, + }, } #[derive(Clone, Debug, Eq, PartialEq)] @@ -230,6 +237,17 @@ pub(crate) fn prepare_replay( }); } + let candidate_mapping_bytes = inputs.get(InputBindingId::CandidateMappings); + let candidate_mapping_catalog = parse_candidate_mapping_catalog(candidate_mapping_bytes) + .map_err(|error| ReplayError::CandidateMappingCatalog(error.kind))?; + let observed_candidate_mapping_catalog_digest = candidate_mapping_catalog.digest_hex(); + if observed_candidate_mapping_catalog_digest != CANDIDATE_MAPPING_CATALOG_SHA256 { + return Err(ReplayError::CandidateMappingCatalogDigest { + expected_sha256: CANDIDATE_MAPPING_CATALOG_SHA256, + observed_sha256: observed_candidate_mapping_catalog_digest, + }); + } + let mut schedule = Vec::with_capacity(REQUIRED_CANDIDATE_CASES); for round in 0..CANDIDATES.len() { for position in 0..CANDIDATES.len() { diff --git a/compiler/crates/orange-compiler/tests/d009_decision_suite.rs b/compiler/crates/orange-compiler/tests/d009_decision_suite.rs index 5c95677..e9a3156 100644 --- a/compiler/crates/orange-compiler/tests/d009_decision_suite.rs +++ b/compiler/crates/orange-compiler/tests/d009_decision_suite.rs @@ -41,8 +41,8 @@ const CASE_INPUT_INDEX: &[u8] = const SOLVER_TRUST_SUITE: &[u8] = include_bytes!("../../../../docs/SOLVER_TRUST_DECISION_SUITE.md"); const PACKET_CANONICAL_SHA256: &str = - "609d2b0edaad32a4edde7b44b7e127abfffacd47330e0648bf3e5978635f8f25"; -const PACKET_RAW_SHA256: &str = "9126ec6b4a46f938c337811b37b4b4939372c0f5fe9347364f21f64bb7a86e3a"; + "fa1411c83fdb6b57b8100f296ca904d88155ad6aa57bd7f48af62ae90c9ead31"; +const PACKET_RAW_SHA256: &str = "c0ad0227f1f374da8796c6db4866188213be53bd904bbf22b141ee1de6e57171"; const INDEX_RAW_SHA256: &str = "c5298d625f5392de2774ffb861fe1dc1701b379ebd385cde0584a8cbcd249859"; fn checked_in_replay_inputs() -> ReplayInputs<'static> { @@ -505,7 +505,7 @@ fn draft_packet_rejects_atomic_outcome_or_gate_precedence_drift() { "\"hard_gate_state_precedence\":[\"unsupported\",\"fail\",\"unresolved\",\"unresolved\"]", ), canonical.replacen( - "69c61bb8e6cd7fd745be6d308074497916cd7ecb9b5ee1786461454bec363270", + "bc4bf5fd534a61efdd62e16b57633bea1f5ad8f3224555f310911a3ab26bb41a", &"0".repeat(64), 1, ), diff --git a/compiler/crates/orange-compiler/tests/d009_support/domain.rs b/compiler/crates/orange-compiler/tests/d009_support/domain.rs index 2950c8e..eb7de27 100644 --- a/compiler/crates/orange-compiler/tests/d009_support/domain.rs +++ b/compiler/crates/orange-compiler/tests/d009_support/domain.rs @@ -320,7 +320,7 @@ pub(crate) const SEMANTIC_BINDINGS: [SemanticBinding; SEMANTIC_BINDING_COUNT] = section_end_heading: None, section_start_heading: None, normalization: SEMANTIC_NORMALIZATION, - normalized_sha256: "3ef87a6038245619256d7435d7eeddcf0624cf527a4825a9b157ec6040ad523b", + normalized_sha256: "c38f7b1d3b3f733a628e0618124e290648298eea8dab2ef89f81c597eb68d177", }, SemanticBinding { id: SemanticBindingId::DecisionRegisterD009, @@ -329,7 +329,7 @@ pub(crate) const SEMANTIC_BINDINGS: [SemanticBinding; SEMANTIC_BINDING_COUNT] = section_end_heading: Some("## D-010 — Compiler strategy"), section_start_heading: Some("## D-009 — Solver trust"), normalization: SEMANTIC_NORMALIZATION, - normalized_sha256: "69c61bb8e6cd7fd745be6d308074497916cd7ecb9b5ee1786461454bec363270", + normalized_sha256: "bc4bf5fd534a61efdd62e16b57633bea1f5ad8f3224555f310911a3ab26bb41a", }, SemanticBinding { id: SemanticBindingId::RoadmapDocument, @@ -338,7 +338,7 @@ pub(crate) const SEMANTIC_BINDINGS: [SemanticBinding; SEMANTIC_BINDING_COUNT] = section_end_heading: None, section_start_heading: None, normalization: SEMANTIC_NORMALIZATION, - normalized_sha256: "dc2ab7d27198fe9038af55cb2a37399c257baaa1a9d80c384a6ff9e12752ffdf", + normalized_sha256: "c92c6657068d3a71b8ccb184b408020f5cd44971286b2743e1e4d55dd67125e6", }, SemanticBinding { id: SemanticBindingId::RoadmapS4, @@ -347,7 +347,7 @@ pub(crate) const SEMANTIC_BINDINGS: [SemanticBinding; SEMANTIC_BINDING_COUNT] = section_end_heading: Some("### S5 — Compiler IRs and one output path"), section_start_heading: Some("### S4 — Proof and claim boundary"), normalization: SEMANTIC_NORMALIZATION, - normalized_sha256: "f8a3ee4beeee6c789a3b4c7b6b0177c32a573788a7f9779b1aea763297288d62", + normalized_sha256: "ef9322f7c23467007a4c6d64411c79ba0f3dae856ed49602d9cecdfc9490b096", }, SemanticBinding { id: SemanticBindingId::SolverTrustSuite, diff --git a/compiler/crates/orange-compiler/tests/d010_decision_suite.rs b/compiler/crates/orange-compiler/tests/d010_decision_suite.rs index 1d0c60c..0969161 100644 --- a/compiler/crates/orange-compiler/tests/d010_decision_suite.rs +++ b/compiler/crates/orange-compiler/tests/d010_decision_suite.rs @@ -37,8 +37,8 @@ const COMPILER_STRATEGY_SUITE: &[u8] = include_bytes!("../../../../docs/COMPILER_STRATEGY_DECISION_SUITE.md"); const PACKET_CANONICAL_SHA256: &str = - "9ec828033df99afa71ca88911484abfbfd007bd42538d8e02a5d7462413943b0"; -const PACKET_RAW_SHA256: &str = "f081c3428c83a7be6d296317564adee0284d13f4913739e5cf33634ed748e799"; + "ae6c8fc6e433d3cbb895aebf95667711d442efa348e241c0059e72a489bcac9b"; +const PACKET_RAW_SHA256: &str = "647ed6e554a0440c7345e52ff8263aba9d2cb19e444e5956203595c0461d6f6e"; const INDEX_RAW_SHA256: &str = "e9f59e86dff6219474d244ff01a98c75b7b17c65f1f91506d483a57e95e33670"; const SUITE_RAW_SHA256: &str = "5d36f1faeda027b9784846af0aa742339c6b821f39b72a8ca067a90c41a46c73"; diff --git a/compiler/crates/orange-compiler/tests/d010_support/packet.rs b/compiler/crates/orange-compiler/tests/d010_support/packet.rs index cef8fad..3621aec 100644 --- a/compiler/crates/orange-compiler/tests/d010_support/packet.rs +++ b/compiler/crates/orange-compiler/tests/d010_support/packet.rs @@ -64,7 +64,7 @@ const SEMANTIC_BINDING_NAMES: [&str; 10] = [ ]; const PACKET_CANONICAL_SHA256: &str = - "9ec828033df99afa71ca88911484abfbfd007bd42538d8e02a5d7462413943b0"; + "ae6c8fc6e433d3cbb895aebf95667711d442efa348e241c0059e72a489bcac9b"; pub(crate) const CASE_INPUT_INDEX_CANONICAL_SHA256: &str = "4c8b0547a8f3bd380f4569008c8728014bb1d8718a5bfe17402bd03866560209"; diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index 3a4d98f..ee94351 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -27,9 +27,9 @@ unratified, and open architecture choices continue to gate only the component or claim that depends on them. -The D-004 pre-epoch laboratory now byte-materializes exactly 70 +The D-004 pre-epoch laboratory now byte-materializes exactly 73 candidate-neutral suite-only subjects as `draft_unreviewed_input_only`: five -positive case subjects, all 26 named mutations, 14 missing-edge subjects, 10 +positive case subjects, all 26 named mutations, 14 missing-edge subjects, 13 identity-substitution subjects, and five each for ambiguity, unsupported behavior, and domain exhaustion. They are fixed inputs for later symmetric comparison, not members of the accepted language or Core family. All five @@ -37,10 +37,13 @@ class sufficiency reviews and freeze blockers plus replay repetitions remain unresolved. D-003 is accepted at exact revision `a82a5cec2ee4359dc2fe66171f17c93146747333`; D-004 owner review is `none`, the D-004 -epoch is unfrozen, and no candidate mapping, adapter, evidence, selection, or -conclusion exists. Integrity parsing and structural oracles are not candidate -executions and ratify no semantic boundary. D-004 remains at 0/25 and Orange at -30% readiness by binary gate closure. +epoch is unfrozen, and a separate authenticated input-only catalog contains +five unreviewed structural candidate graph proposals and 70 unresolved SR +mapping rows. Those hypotheses create no adapter, execution, evidence, review, +freeze, selection, conclusion, or readiness credit. Integrity parsing and +structural oracles ratify no semantic boundary. D-004 remains at 0/25 and Orange +at 3/10 binary gate closure (30%); that mechanical score is not release +readiness. D-010 also remains unresolved. Compiler descriptions below are candidate requirements and claim-boundary obligations, not a selected backend, pass diff --git a/docs/ASSURANCE.md b/docs/ASSURANCE.md index 9351db6..927b8e7 100644 --- a/docs/ASSURANCE.md +++ b/docs/ASSURANCE.md @@ -38,20 +38,22 @@ PR #9 merged the S3a implementation and normative records as commit implementation evidence, not proof of semantic soundness or a stable public compatibility promise. -The D-004 input-only laboratory byte-materializes exactly 70 candidate-neutral +The D-004 input-only laboratory byte-materializes exactly 73 candidate-neutral suite-only subjects as `draft_unreviewed_input_only`: five positive case -subjects, all 26 named mutations, 14 missing-edge subjects, 10 +subjects, all 26 named mutations, 14 missing-edge subjects, 13 identity-substitution subjects, and five each for ambiguity, unsupported behavior, and domain exhaustion. All five class sufficiency reviews and freeze blockers, plus replay repetitions, remain unresolved. D-003 is accepted at exact revision `a82a5cec2ee4359dc2fe66171f17c93146747333`; D-004 owner protocol review is `none`, the D-004 -epoch is unfrozen, and execution remains 0/25 with no mappings, adapters, -observations, evidence, selection, or conclusion. Canonical parsing, digest -checks, and structural integrity oracles over opaque suite-only models are not -candidate executions and establish no Orange semantics, proof, leakage, -target, cryptographic, or readiness assurance. Orange remains 30% complete by -binary gate closure. +epoch is unfrozen, and execution remains 0/25. A separate authenticated +input-only catalog contains five unreviewed candidate graph hypotheses and 70 +unresolved relationship mappings, with no adapters, observations, evidence, +selection, or conclusion. Canonical parsing, digest checks, and structural +integrity oracles over opaque suite-only models are not candidate executions +and establish no Orange semantics, proof, leakage, target, cryptographic, or +readiness assurance. Orange's binary gate-closure score remains 3/10 (30%); +that mechanical score is not release readiness. The D-010 input-only laboratory is planning evidence only. It compares five candidate identities across eight zero-fixture cases and remains at 0/40. It diff --git a/docs/DECISIONS.md b/docs/DECISIONS.md index 6c90bae..f476ed3 100644 --- a/docs/DECISIONS.md +++ b/docs/DECISIONS.md @@ -125,20 +125,23 @@ That Draft protocol records 0/25 required candidate-case executions: 0/5 candidates have complete five-case packets, and 0/5 cases have complete cross-candidate execution. It selects no stratum and does not authorize S3b. -Its input-only pre-epoch laboratory now byte-materializes exactly 70 +Its input-only pre-epoch laboratory now byte-materializes exactly 73 candidate-neutral suite-only subjects under `draft_unreviewed_input_only`: five positive case subjects, all 26 named -mutation subjects, 14 missing-edge subjects, 10 identity-substitution subjects, +mutation subjects, 14 missing-edge subjects, 13 identity-substitution subjects, and five each for ambiguity, unsupported behavior, and domain exhaustion. All five class sufficiency reviews and freeze blockers remain unresolved, and replay repetitions remain unresolved and unassigned. Integrity parsing and structural oracles over those fixed input bytes are not candidate executions -and ratify no Orange semantics. D-003 is accepted at exact revision +and ratify no Orange semantics. A separate authenticated input-only catalog now +contains five unreviewed structural candidate graph proposals and 70 unresolved +SR mapping rows. D-003 is accepted at exact revision `a82a5cec2ee4359dc2fe66171f17c93146747333`; the D-004 epoch remains unfrozen, and D-004 owner protocol review -remains `none`. With no candidate mappings or adapters, the laboratory creates -no observation, evidence, result, recommendation, selection, or conclusion and -advances no roadmap gate or readiness beyond 30%. +remains `none`. The mapping hypotheses create no adapter, execution, evidence, +review, freeze, recommendation, selection, or conclusion and supply no roadmap +or readiness credit. Orange's 3/10 (30%) binary gate-closure score remains +unchanged; that mechanical score is not release readiness. ## D-005 — Public assurance model @@ -361,7 +364,7 @@ backend. It validates no proof, certificate, counterexample, theorem, claim, or cache result; freezes no epoch; creates no result or evidence; and leaves resources, selection, and conclusion null or unassigned. It adds no solver to or removes one from the logical TCB, authorizes no proof-bearing implementation, -and advances no roadmap gate or readiness percentage. +and changes no roadmap gate or the 3/10 (30%) binary gate-closure score. D-009 closes only after D-004 and D-005 are Accepted, all 24 candidate-case records are complete under one frozen symmetric epoch, SR-01 through SR-08 are @@ -437,7 +440,8 @@ adapter, runner, observer, or isolation backend; assigns no physical execution order or resource contract; produces no IR, source output, object, certificate, result, replay record, evidence, selection, or conclusion; and validates no functional, leakage, target, ABI, or final-byte claim. It selects no output path, -closes no roadmap stage, and advances no readiness percentage. +closes no roadmap stage, and does not change the 3/10 (30%) binary gate-closure +score. D-010 closes only after all five prerequisites are Accepted, all 40 candidate-case records are complete under one frozen symmetric epoch, CR-01 diff --git a/docs/GATE0_TRACEABILITY.md b/docs/GATE0_TRACEABILITY.md index b2da5ab..3e28dc9 100644 --- a/docs/GATE0_TRACEABILITY.md +++ b/docs/GATE0_TRACEABILITY.md @@ -145,20 +145,20 @@ The preserved Gate 0 closure ledger was: | F-14 | Reproducible, signed releases for supported hosts | W6 and W7; Release Engineering, PSIRT, and Assurance and TCB Board | All preceding features; D-008 implementation languages; D-011 host/target envelope; D-014 package model; D-019 release authority; D-020 supply-chain target; D-021 bootstrap policy; D-022 funded support policy | `N/M/C/A/X/O`: hermetic build closure, two independent rebuild attestations, signatures and transparency records, SBOM/CBOM, provenance and proof bundles, audits, and release/revocation/recovery drills | At Gate 7 two independently administered builders reproduce each supported artifact; network-disabled build and offline verification bind source, claims, SBOM/CBOM, provenance, proofs, and signatures; all stop-ship findings are closed; rollback, freeze, compromise, revocation, and disaster-recovery drills pass with multi-role sign-off | `proposed`; `blocked` | Gate 7 | `mapped` | D-004 input materialization is separate from feature or gate completion. -Exactly 70 candidate-neutral suite-only subjects are byte-materialized as +Exactly 73 candidate-neutral suite-only subjects are byte-materialized as `draft_unreviewed_input_only`: five positive case subjects, all 26 named -mutations, 14 missing-edge subjects, 10 identity-substitution subjects, and five +mutations, 14 missing-edge subjects, 13 identity-substitution subjects, and five each for ambiguity, unsupported behavior, and domain exhaustion. All five class sufficiency reviews and freeze blockers plus replay repetitions remain unresolved. D-003 candidate PF-01 is accepted through OEP-0004 at exact revision `a82a5cec2ee4359dc2fe66171f17c93146747333`. D-004 owner review is -`none`, the D-004 epoch is -unfrozen, and there are no candidate mappings, adapters, observations, -evidence, selection, or conclusion. +`none`, the D-004 epoch is unfrozen, and five unreviewed input-only candidate +graph hypotheses with 70 unresolved relationship mappings exist without +adapters, observations, evidence, selection, or conclusion. Integrity parsing and structural oracles over opaque suite-only models are not candidate executions and satisfy none of the F-01, F-03, F-04, or F-06 exit -evidence. D-004 remains at 0/25, S3 remains open, and readiness remains 30% by -binary gate closure. +evidence. D-004 remains at 0/25 and S3 remains open. The binary gate-closure +score remains 3/10 (30%); that mechanical score is not release readiness. D-010 candidate identity is separate from feature completion. Its two direct-native candidates, versioned Jasmin boundary, portable C11 boundary, and diff --git a/docs/RESEARCH.md b/docs/RESEARCH.md index a1a9284..20ffbb7 100644 --- a/docs/RESEARCH.md +++ b/docs/RESEARCH.md @@ -161,19 +161,21 @@ control branches or addresses. Probabilistic sampling must not appear in a pure deterministic specification. Vector intrinsics must name their target feature and semantics. These are separate strata with checked crossings. -The D-004 pre-epoch corpus now byte-materializes exactly 70 candidate-neutral +The D-004 pre-epoch corpus now byte-materializes exactly 73 candidate-neutral suite-only subjects as `draft_unreviewed_input_only`: five positive case -subjects, all 26 named mutations, 14 missing-edge subjects, 10 +subjects, all 26 named mutations, 14 missing-edge subjects, 13 identity-substitution subjects, and five each for ambiguity, unsupported behavior, and domain exhaustion. These are fixed research inputs, not Orange syntax or semantics. Every class sufficiency review and freeze blocker plus replay repetitions remains unresolved. D-003 candidate PF-01 is accepted through OEP-0004 at exact revision `a82a5cec2ee4359dc2fe66171f17c93146747333`. With D-004 owner review -`none`, an unfrozen D-004 epoch, and no candidate mappings or adapters, +`none`, an unfrozen D-004 epoch, five unreviewed input-only candidate graph +hypotheses with 70 unresolved relationship mappings, and no candidate adapters, integrity parsing and structural oracles create no candidate execution, -evidence, selection, conclusion, or readiness credit. D-004 remains at 0/25 and -Orange at 30% readiness by binary gate closure. +evidence, selection, conclusion, or readiness credit. D-004 remains at 0/25. +Orange's binary gate-closure score remains 3/10 (30%); that mechanical score is +not release readiness. ### 4.5 End-to-end proof still needs interoperability diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 4ef5c2c..7f6b8c3 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -292,7 +292,8 @@ adapter, runner, observer, or isolation backend; assigns no physical order or execution resources; validates no proof, certificate, counterexample, theorem, claim, or cache result; and records 0/24 executions, no evidence, no selection, and no conclusion. This preparation neither changes the logical TCB nor closes -S4, authorizes solver-backed proof search, or advances readiness beyond 30%. +S4, authorizes solver-backed proof search, or changes Orange's 3/10 (30%) +binary gate-closure score; that score is not release readiness. ### S5 — Compiler IRs and one output path @@ -381,19 +382,20 @@ define the owner-executable records and research that may run ahead. Explicit acceptance on 2026-07-26 and Accepted OEP-0004 bind D-003 candidate PF-01 to exact revision `a82a5cec2ee4359dc2fe66171f17c93146747333`, but they do not accept D-004 or authorize S3b. The D-004 input-only pre-epoch laboratory binds -exactly 70 candidate-neutral suite-only subjects as +exactly 73 candidate-neutral suite-only subjects as `draft_unreviewed_input_only`: five positive case subjects, all 26 named -mutation subjects, 14 missing-edge subjects, 10 identity-substitution subjects, +mutation subjects, 14 missing-edge subjects, 13 identity-substitution subjects, and five each for ambiguity, unsupported behavior, and domain exhaustion. Sufficiency review and the freeze blocker for every cross-cutting class remain unresolved, as do replay repetitions. D-003 is accepted at exact revision `a82a5cec2ee4359dc2fe66171f17c93146747333`; D-004 owner protocol review is `none`; the D-004 -epoch is unfrozen; and no candidate mapping or adapter exists. Integrity -parsing and structural oracles over the opaque suite-only inputs are not -candidate executions and ratify no semantics. The laboratory remains at 0/25 -with no observation, evidence, result, selection, or conclusion; S3 remains -open and Orange remains 30% complete by binary gate closure. +epoch is unfrozen. A separate authenticated input-only catalog contains five +unreviewed structural candidate graph proposals and 70 unresolved SR mapping +rows. Those hypotheses create no adapter, execution, evidence, review, freeze, +result, selection, conclusion, or readiness credit. Integrity parsing and +structural oracles ratify no semantics; the laboratory remains at 0/25, S3 +remains open, and Orange remains 30% complete by binary gate closure. ## 7. Quality and claim metrics diff --git a/docs/SEMANTIC_STRATA_DECISION_SUITE.md b/docs/SEMANTIC_STRATA_DECISION_SUITE.md index 109636f..23c44af 100644 --- a/docs/SEMANTIC_STRATA_DECISION_SUITE.md +++ b/docs/SEMANTIC_STRATA_DECISION_SUITE.md @@ -3,7 +3,7 @@ Status: draft owner-executable decision protocol; no semantic-strata candidate selected -Suite version: `d004-v0.4-draft` +Suite version: `d004-v0.5-draft` Snapshot: 2026-07-26 @@ -79,15 +79,19 @@ The candidate packet freezes: - a correction window that applies equally to all candidates; and - a variance log in which any changed premise creates a new evidence epoch. -The current pre-epoch laboratory has byte-materialized exactly 70 +The current pre-epoch laboratory has byte-materialized exactly 73 candidate-neutral suite-only subjects: five positive case subjects, all 26 -named-mutation subjects, and 39 cross-cutting subjects comprising 14 -missing-edge subjects, 10 identity-substitution subjects, and five subjects +named-mutation subjects, and 42 cross-cutting subjects comprising 14 +missing-edge subjects, 13 identity-substitution subjects, and five subjects each for ambiguity, unsupported behavior, and domain exhaustion. Their status -is `draft_unreviewed_input_only`. They are fixed input bytes with declared -expectations, not accepted Orange syntax, semantics, Core members, relations, -candidate observations, or execution evidence. No candidate mapping or -adapter exists. +is `draft_unreviewed_input_only`. The three added identity-substitution targets +are the model, dependency manifest, and positive subject. They are fixed input +bytes with declared expectations, not accepted Orange syntax, semantics, Core +members, relations, +candidate observations, or execution evidence. A separate authenticated +input-only catalog contains five unreviewed structural candidate graph +proposals and 70 unresolved SR mapping rows, one for every candidate and +SR-01-through-SR-14 pair. No candidate adapter exists. ## 3. Proposed role map @@ -196,7 +200,8 @@ The prose below governs the five positive case subjects and 26 named-mutation subjects byte-materialized in the separate candidate-neutral case-subject catalog. Materialization fixes input bytes and declared expectations only. It does not make any SC-01-through-SC-05 case executable for a candidate because -candidate mappings and adapters are absent. +the structural candidate graph proposals remain unreviewed, all 70 SR mapping +rows remain unresolved, and candidate adapters are absent. ### SC-01 — SHA-like word code @@ -436,12 +441,14 @@ The repository may carry an exact input-only pre-epoch laboratory before that freeze. Its `draft_unfrozen` packet may bind this suite, the accepted S3a baseline, a case-subject catalog containing the five positive subjects and all 26 mutations named explicitly by SC-01 through SC-05, the unreviewed structural -proposal manifest, the exactly 39 corresponding candidate-neutral -cross-cutting subjects, and a deterministic 25-slot candidate-case identity -plan. All 70 subjects remain `draft_unreviewed_input_only`. They carry fixed -bytes and declared expected domain states only. They contain no candidate -mapping, adapter output, observed state, comparison result, case verdict, -evidence, or capability credit. +proposal manifest, the exactly 42 corresponding candidate-neutral +cross-cutting subjects, an authenticated input-only catalog containing five +unreviewed structural candidate graph proposals and 70 unresolved SR mapping +rows, and a deterministic 25-slot candidate-case identity plan. All 73 subjects +and the mapping catalog remain `draft_unreviewed_input_only`. They +carry fixed bytes and declared structural hypotheses or expected domain states +only. They contain no adapter output, observed state, comparison result, case +verdict, evidence, or capability credit. Sufficiency review for each of the five cross-cutting classes remains unresolved, every class retains an active freeze blocker, and replay @@ -536,16 +543,20 @@ Execution evidence is currently 0/25 required candidate-case executions: 0/5 candidates have complete five-case packets, and 0/5 cases have complete cross-candidate execution. -The 70 byte-materialized case and cross-cutting subjects do not change that -baseline. No candidate mapping, adapter, observation, evidence, selection, or -conclusion exists, and materialization supplies no roadmap or readiness credit. +The 73 byte-materialized case and cross-cutting subjects, five unreviewed +structural candidate graph proposals, and 70 unresolved SR mapping rows do not +change that baseline. They are authenticated input-only data: no adapter, +execution, evidence, review, freeze, selection, conclusion, roadmap credit, or +readiness credit follows. ## 9. Current handoff -With D-003 closed and all 70 suite-only subjects materialized, the remaining -pre-epoch acts are to review this conditional D-004 protocol and the -sufficiency of all five cross-cutting classes, assign replay repetitions, and -resolve the resulting freeze record symmetrically. The Project Owner must +With D-003 closed, all 73 suite-only subjects materialized, and five structural +candidate graph proposals plus 70 SR mapping rows available for review, the +remaining pre-epoch acts are to review this conditional D-004 protocol, those +unreviewed and unresolved mappings, and the sufficiency of all five +cross-cutting classes, assign replay repetitions, and resolve the resulting +freeze record symmetrically. The Project Owner must approve those dispositions and bind the frozen evidence epoch to an exact reviewed revision before any candidate execution begins. Running that later frozen suite then produces decision evidence; it still does not implement S3b. diff --git a/docs/security/THREAT_MODEL.md b/docs/security/THREAT_MODEL.md index f8bceaa..7e9d637 100644 --- a/docs/security/THREAT_MODEL.md +++ b/docs/security/THREAT_MODEL.md @@ -70,19 +70,21 @@ compiler, leakage, package, release, and update boundaries. Those future threats are recorded now as design requirements, not as claims that mitigations have been implemented. -The D-004 pre-epoch laboratory byte-materializes exactly 70 candidate-neutral +The D-004 pre-epoch laboratory byte-materializes exactly 73 candidate-neutral suite-only subjects as `draft_unreviewed_input_only`: five positive case -subjects, all 26 named mutations, 14 missing-edge subjects, 10 +subjects, all 26 named mutations, 14 missing-edge subjects, 13 identity-substitution subjects, and five each for ambiguity, unsupported behavior, and domain exhaustion. The bytes are fixed research inputs: bounded integrity parsing and structural oracles do not execute a candidate or ratify Orange semantics. All five class sufficiency reviews and freeze blockers plus replay repetitions remain unresolved. D-003 candidate PF-01 is accepted through OEP-0004 at exact revision `a82a5cec2ee4359dc2fe66171f17c93146747333`. -D-004 owner review is -`none`, the D-004 epoch is unfrozen, and execution remains 0/25 with no mappings, +D-004 owner review is `none`, the D-004 epoch is unfrozen, and execution remains +0/25. A separate authenticated input-only catalog contains five unreviewed +candidate graph hypotheses and 70 unresolved relationship mappings, with no adapters, observations, evidence, selection, or conclusion. Materialization -closes no S3 or readiness gate; Orange remains at 30%. +closes no S3 or readiness gate. Orange's binary gate-closure score remains 3/10 +(30%); that mechanical score is not release readiness. The D-010 laboratory currently binds only five candidate identities and eight zero-fixture case blockers, for 0/40 execution. It executes no compiler or tool, @@ -243,7 +245,7 @@ that the owner holds all roles and that independent ownership is unavailable. | CMP-002 | Foundation policy and evidence records | Historical Gate 0 inputs plus current solo-bootstrap records | Planning, decisions, threat/control records, provisional schemas, and conformance fixtures. Historical Gate 0 material is retained as an input under the current capability-local model. See [`README.md`](../../README.md), [`docs/DECISIONS.md`](../DECISIONS.md), and [`schemas/README.md`](../../schemas/README.md). | | CMP-003 | Repository CI | Current on `main` with exact acceptance and post-acceptance evidence | Repository-owned policy, dependency-review, link, workflow-metadata-audit, and Scorecard workflows are under [`.github/workflows/`](../../.github/workflows/). PR #9 and exact merged revision `6c0bd3021cf2df603e08808e4660724ca1e2b2a5` retain the accepted S3a evidence. The later PR #11 head passed Required CI `29292600483`, Dependency Review `29292600471`, and CodeQL `29292598799`; exact merged revision `23352bcde976b86890db28ea4d375a31e6354bca` passed push Required CI `29292740885`, Workflow Online Audit `29292740874`, External Links `29292740884`, Scorecard `29292740941`, and dynamic CodeQL `29292740478`. Required CI covered policy `0.2.6`, 92 Rust tests including the documentation test, 103 Python tests, and zero foundation-validator findings. Ruleset `18810248` requires the exact Required CI and Dependency Review app-bound contexts. These executions do not demonstrate semantic soundness, vulnerability absence, independent review, scheduled or manual-dispatch event behavior, or refreshed hosted settings. | | CMP-004 | Orange driver and language services | S3a current on `main` | Rust source map, byte spans, lexer, bounded parser, syntax tree, diagnostics, and `orangec check`/`eval`/`lex`. The merged implementation includes declaration-kind namespace checks, exact `Int`/`Word[8]` typed literals, noncanonical Typed Reference Core construction, and deterministic evaluation; no calls, operators, typed `impl`, LSP, proof, refinement, or code generation exists. | -| CMP-005 | Orange semantic and evidence system | Future beyond current S3a, with input-only D-004 research bytes | Planned canonical Core family, claims, Proof IR, proof search, and authoritative offline checker. The Typed Reference Core in CMP-004 has no canonical encoding, proof identity, or relationship to this future family. D-004 carries exactly 70 `draft_unreviewed_input_only` suite-only subjects, but no accepted semantics, candidate mapping, adapter, execution, or evidence. | +| CMP-005 | Orange semantic and evidence system | Future beyond current S3a, with input-only D-004 research bytes | Planned canonical Core family, claims, Proof IR, proof search, and authoritative offline checker. The Typed Reference Core in CMP-004 has no canonical encoding, proof identity, or relationship to this future family. D-004 carries exactly 73 `draft_unreviewed_input_only` suite-only subjects and 70 unreviewed candidate-by-relationship mapping hypotheses, but no accepted semantics or mapping, adapter, execution, or evidence. | | CMP-006 | Orange compiler and output boundary | Future | Five D-010 candidates are under input-only comparison: two direct-native paths, versioned Jasmin, portable C11, and versioned LLVM IR. No strategy, lowering, code-generation stage, external compiler, target, artifact, or evidence exists. | | CMP-007 | Package, registry, build, and release system | Future | Planned immutable dependency resolution, registry, hermetic builds, provenance, signing, publication, updates, and recovery. No implementation exists. | | CMP-008 | Standards and cryptography corpus | Future | Planned standards/errata provenance, vectors, packages, proofs, tests, and external-validation records. No implementation exists. | @@ -347,14 +349,14 @@ compliance evidence. | CTL-019 | GitHub CodeQL default setup analyzes the current Actions, Python, and Rust surfaces and preserves alert lifecycle state | PR #11 CodeQL `29292598799` succeeded before merge, and dynamic CodeQL `29292740478` succeeded at exact revision `23352bcde976b86890db28ea4d375a31e6354bca`. Actions `1474500928`=`0/23`, Python `1474500920`=`0/50`, and Rust `1474500915`=`0/27`, all without analysis warnings. The open alert readback contained only Scorecard posture alerts #4-#10 and no open CodeQL alerts. | Coverage is limited to the named revision, languages, configured rules, queries, and platform executions. Zero configured-query results and no open CodeQL alerts do not prove vulnerability absence. No CodeQL threshold or independent analysis exists. | | CTL-020 | The dependency-free Rust compiler frontend forbids unsafe code; caps source bytes, tokens, syntax nodes, parser events, emitted diagnostics, and recovery depth; sanitizes diagnostic control text; and exercises source, span, lexer, parser, diagnostic, and CLI behavior with malformed-input, Unicode, line-ending, resource, repeatability, and exact external black-box conformance tests. | Policy `0.2.6`, 92 Rust tests including the documentation test, 103 Python tests, parser source, exact budget bindings, and the external corpus were recorded at subject revision `23352bcde976b86890db28ea4d375a31e6354bca`; PR Required CI `29292600483` and post-merge Required CI `29292740885` succeeded with zero foundation-validator findings | Tests do not establish parser correctness, semantic soundness, proof, code-generation, cryptographic, leakage, or production correctness; the Rust toolchain, host, algorithmic behavior inside the budgets, and sole-owner review remain trusted or residual risks. | | CTL-021 | D-026, Accepted OEP-0003, and [`SEMANTICS_2026.md`](../SEMANTICS_2026.md) constrain S3a to same-kind namespace uniqueness, exact contextual `Int`/`Word[8]` typed literals, fail-closed semantic/Core/integer/evaluation budgets, a noncanonical source-ordered Typed Reference Core, and deterministic compiler-phase-transactional evaluation output. Compiler-phase errors precede emission, while detected transport failures return failure; an unretractable prefix already accepted by the output stream is a failed, nonaccepted result. | Accepted implementation evidence remains bound to exact merged revision `6c0bd3021cf2df603e08808e4660724ca1e2b2a5`. Later exact revision `23352bcde976b86890db28ea4d375a31e6354bca` adds the external black-box corpus and draft D-003/D-004 research protocols; policy `0.2.6`, 92 Rust tests including the documentation test, 103 Python tests, and zero foundation-validator findings passed PR Required CI `29292600483`, followed by post-merge Required CI `29292740885`. | Shared specification/implementation mistakes, integer decoding and formatting defects, allocation or host failure within budgets, and sole-owner review remain. The later evidence does not alter S3a acceptance, accept D-003/D-004, authorize S3b, or establish semantic proof, independent review, refinement, code generation, leakage, ABI, cryptographic correctness, external certification, or product-release readiness. | -| CTL-022 | The D-004 input-only laboratory content-identifies exactly 70 candidate-neutral suite-only subjects and permits only bounded canonical parsing, digest checks, and structural integrity-oracle evaluation before any candidate mapping or adapter exists. | Current pre-epoch input materialization only; `draft_unreviewed_input_only`, owner review `none`, epoch unfrozen, and 0/25 candidate-case executions | Integrity checks can detect malformed or substituted repository inputs but prove neither fixture sufficiency nor semantic correctness. Shared modeling mistakes, parser/oracle defects, sole-owner bias, and future adapter behavior remain; no observation, evidence, selection, S3 closure, or readiness credit follows. | +| CTL-022 | The D-004 input-only laboratory content-identifies exactly 73 candidate-neutral suite-only subjects and five unreviewed graph proposals with 70 candidate-by-relationship mapping rows, and permits only bounded canonical parsing, digest checks, and structural integrity-oracle evaluation. No candidate adapter or execution exists. | Current pre-epoch input materialization only; `draft_unreviewed_input_only`, owner review `none`, epoch unfrozen, and 0/25 candidate-case executions | Integrity checks can detect malformed or substituted repository inputs but prove neither fixture sufficiency nor semantic correctness. Shared modeling mistakes, parser/oracle defects, sole-owner bias, and future adapter behavior remain; no observation, evidence, selection, S3 closure, or readiness credit follows. | ## Entry points and attack surfaces | Surface | How reached | Boundary | Notes and evidence | | --- | --- | --- | --- | | Public issues and PR metadata | GitHub web/API | TB-001 | Untrusted text and links reach maintainers and some automation. Forms live in [`.github/ISSUE_TEMPLATE/`](../../.github/ISSUE_TEMPLATE/). | -| Git commits and repository files | Fork/branch/PR or privileged push | TB-001, TB-003 | Repository scripts, workflow definitions, and the 70 byte-materialized D-004 suite-only subjects are security-sensitive even before product code. Integrity parsing of those subjects is not candidate execution or semantic evidence. | +| Git commits and repository files | Fork/branch/PR or privileged push | TB-001, TB-003 | Repository scripts, workflow definitions, and the 73 byte-materialized D-004 suite-only subjects are security-sensitive even before product code. Integrity parsing of those subjects is not candidate execution or semantic evidence. | | Tracked brand images | Git checkout, GitHub rendering, README clients, or downstream reuse | TB-001, TB-003 | Ten PNG/JPEG files are inert to repository tooling but reach external image decoders; exact digest admission and provenance records do not make every decoder safe. | | GitHub administration and owner recovery | Authenticated GitHub UI/API/credential transport | TB-002 | Sole-owner compromise has broad blast radius; current access is recorded in [`OSPS_BASELINE.md`](OSPS_BASELINE.md). | | GitHub Actions PR runs | `pull_request` and `merge_group` events | TB-004 | Treat fork content, repository scripts, and parsed documents as attacker controlled. | diff --git a/policy/README.md b/policy/README.md index 73cbb1f..33a7f8c 100644 --- a/policy/README.md +++ b/policy/README.md @@ -225,8 +225,9 @@ use an exact static inventory; correctly named OEP and ADR records may be added outside it and receive structural validation. The admitted `research` tree is likewise exact. It contains the non-product, draft-unfrozen D-004 input packet, named-mutation manifest, five-positive/26-mutation case-subject catalog, -unreviewed cross-cutting fixture-proposal manifest, and 39-subject -executable-input catalog; the D-005 execution packet and historical +unreviewed cross-cutting fixture-proposal manifest, and 42-subject +executable-input catalog, plus the five-graph/70-row unreviewed candidate-mapping +catalog; the D-005 execution packet and historical v0.1 negative corpus; and the input-only D-006, D-009, and D-010 packets and case indexes. Every D-006, D-009, and D-010 case row has zero executable fixtures, unresolved coverage, and an active freeze blocker. Their laboratories may @@ -234,19 +235,23 @@ verify the closed inputs and enumerate 14, 24, and 40 candidate-case identities in memory, respectively, but those inventories are not physical run orders and create no execution, evidence, review, recommendation, or selection. -The D-004 proposal manifest defines 39 domain-level structural proposals: 14 -missing-edge, 10 identity-substitution, and five each for ambiguity, +The D-004 proposal manifest defines 42 domain-level structural proposals: 14 +missing-edge, 13 identity-substitution, and five each for ambiguity, unsupported behavior, and domain exhaustion. Its separate canonical catalog, together with the case-subject catalog's five positive and 26 named-mutation -subjects, byte-materializes exactly 70 candidate-neutral suite-only inputs as +subjects, byte-materializes exactly 73 candidate-neutral suite-only inputs as `draft_unreviewed_input_only`. Their closed parsers, digest checks, and bounded structural integrity oracles create no candidate observation or evidence, verify no replay ceiling, and do not treat candidate-adapter failure as an expected unsupported observation. All five class sufficiency reviews and freeze blockers remain unresolved; replay repetitions remain unassigned; and -the D-004 inventory freezes no evidence epoch. Its protected Rust laboratory +the D-004 inventory freezes no evidence epoch. Its separate authenticated +input-only mapping catalog contains five unreviewed structural candidate graph +proposals and 70 unresolved SR mapping rows. Those hypotheses create no adapter, +execution, evidence, review, freeze, selection, or readiness credit. Its +protected Rust laboratory also generates and strictly re-parses a closed, in-memory future result/replay -descriptor. The descriptor derives an exact 70-row observation oracle from the +descriptor. The descriptor derives an exact 73-row observation oracle from the authenticated case and cross-cutting subject catalogs, binds the exact 26-mutation inventory and 25-slot identity plan, and enumerates all 31 top-level future case-record fields plus their nested shapes. Its 10-field scheduled-slot diff --git a/policy/gate0-repository-policy.json b/policy/gate0-repository-policy.json index 26fd62b..d460c11 100644 --- a/policy/gate0-repository-policy.json +++ b/policy/gate0-repository-policy.json @@ -1,5 +1,5 @@ { - "policy_version": "0.2.120", + "policy_version": "0.2.121", "repository": "chasebryan/orange", "stage": "solo-bootstrap", "status": "enforced", @@ -155,6 +155,7 @@ "compiler/crates/orange-compiler/src/semantics.rs", "compiler/crates/orange-compiler/src/source.rs", "compiler/crates/orange-compiler/tests/d004_decision_suite.rs", + "compiler/crates/orange-compiler/tests/d004_support/candidate_mappings.rs", "compiler/crates/orange-compiler/tests/d004_support/case_subjects.rs", "compiler/crates/orange-compiler/tests/d004_support/cases.rs", "compiler/crates/orange-compiler/tests/d004_support/domain.rs", @@ -240,7 +241,8 @@ "research/decisions/D-004/d004-v0.2-named-mutations.json", "research/decisions/D-004/d004-v0.3-cross-cutting-executable-fixtures.json", "research/decisions/D-004/d004-v0.4-case-subjects.json", - "research/decisions/D-004/d004-v0.4-draft-packet.json", + "research/decisions/D-004/d004-v0.5-candidate-mappings.json", + "research/decisions/D-004/d004-v0.5-draft-packet.json", "research/decisions/D-005/README.md", "research/decisions/D-005/d005-v0.1/epochs/0001/protocol/epoch.json", "research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/checked-test-as-functional-refinement.json", @@ -270,6 +272,7 @@ "scripts/ci/check-repository", "scripts/ci/install-actionlint", "scripts/ci/install-lychee", + "tools/d004_candidate_mappings.py", "tools/fs_sandbox.c", "tools/tests/test_d004_draft_packet.py", "tools/tests/test_d005_draft_packet.py", @@ -338,14 +341,15 @@ "assets/brand/README.md": "546dc8bf2c68eacf452641fb19ef591d41228dcec43d4c028a5758ab9d9a2f82", "assets/brand/manifest.json": "776173a6e2cab2f5840a5f5b882f131ee34ce1ed10a50658717361267e5d93e4", "compiler/.gitignore": "306fd52e74fca6746e12acc750f232de15e71da917756a1270d74c91f5eb7368", - "compiler/crates/orange-compiler/tests/d004_decision_suite.rs": "9a96f0635a54de928e9ffff2b1c9d6f62574602d72902415ee266648004c1fc1", - "compiler/crates/orange-compiler/tests/d004_support/case_subjects.rs": "9ca5535f80ec2d9403a11f52a674b68c68da692302363163f0fdd141bb5016b6", + "compiler/crates/orange-compiler/tests/d004_decision_suite.rs": "a521e0fa6670ad9bbf7cc617e7c2ffac68dc8f8c3051175b16a4b5a53ee1b585", + "compiler/crates/orange-compiler/tests/d004_support/candidate_mappings.rs": "bb6c76ca7cc754f4af28ef04bbe84cc327b2e805d3750f525e3ff8afcd0401cc", + "compiler/crates/orange-compiler/tests/d004_support/case_subjects.rs": "08f2e65cd060dd1422ff1f7cae41c84463708155e1f362bd41040b4f90f9b854", "compiler/crates/orange-compiler/tests/d004_support/cases.rs": "aebeb6d46a9f30f456232b3d13da6763bb84849c5c962c7d3026777de8d4b879", - "compiler/crates/orange-compiler/tests/d004_support/domain.rs": "d993cfe0d0e91532953b7c72a175e2d5fe0b251b80260d66ae6126cd1906d400", - "compiler/crates/orange-compiler/tests/d004_support/fixtures.rs": "747c3286d0bbf0d59ac4c6dd84c54c04ab0fe285f9fb0fd03d2ff418a7dc8404", - "compiler/crates/orange-compiler/tests/d004_support/packet.rs": "e1752a8450e315560ccd3d32e94ceb0a01c3a73b35f2c0f95ff6026c01e9542a", - "compiler/crates/orange-compiler/tests/d004_support/result_contract.rs": "8ef2abfd63d711907e911c415e4abbb903244aa9b44211f59e9b1f963c884292", - "compiler/crates/orange-compiler/tests/d004_support/runner.rs": "e98269e8e154d6a83d748f4e154dd5eb551d1fb76ccfa981d71c1efb502d15c0", + "compiler/crates/orange-compiler/tests/d004_support/domain.rs": "c7205cf4ef7896058c5585363247a156d87c15a40dbd927f0b0dbedbc32de68c", + "compiler/crates/orange-compiler/tests/d004_support/fixtures.rs": "02efc270829d981bb30b461bb3ed48800e1d2e6df2877a9fb31df363789ae5a5", + "compiler/crates/orange-compiler/tests/d004_support/packet.rs": "1f588626268a5f08e612fa2a158c0570db97ce3a448efff55edbb18293d69c44", + "compiler/crates/orange-compiler/tests/d004_support/result_contract.rs": "f3fdb4187fa9dffb23e849208da20f112aba764cfa85df80ae578754f3c9c97a", + "compiler/crates/orange-compiler/tests/d004_support/runner.rs": "b2c3be1a4221e8fcb9abe9622105c972edf431021012b9fb24ebc9b20818c3b3", "compiler/crates/orange-compiler/tests/d005_decision_suite.rs": "a9b5a2208fcf911b19bc92902083d597564041d9cfebdb851386fb90ffcd3c20", "compiler/crates/orange-compiler/tests/d005_support/adapter.rs": "4825755b5fe852357c700670f317fb09c01bb432bcd42b0cf22c535160f3d172", "compiler/crates/orange-compiler/tests/d005_support/capture.rs": "4d2564a3cd196c7af2bc232d9435b62951126c491778052b1950fbf3c62a08ef", @@ -359,13 +363,13 @@ "compiler/crates/orange-compiler/tests/d006_support/domain.rs": "3481b3c93f2850ca1e654f98a252c444dad3873438363f121435f7e91a4f73c9", "compiler/crates/orange-compiler/tests/d006_support/packet.rs": "ef7db53a3400784e1c72ed6210a1f22ef02527f825eae804dd857f9c9c773a06", "compiler/crates/orange-compiler/tests/d006_support/runner.rs": "2ff850b72fde81d5a66cc3f58df8d54e642a906c7ccad728db8d0f77b53f72c0", - "compiler/crates/orange-compiler/tests/d009_decision_suite.rs": "2d039e2d78bb6e8de99af668c23d0f5e83c60dd17dde92d3795596f005431df3", - "compiler/crates/orange-compiler/tests/d009_support/domain.rs": "9005ca5dfda0784c2413e4cbf3544532aa367b89f34c31e7c21cc065e9b779a6", + "compiler/crates/orange-compiler/tests/d009_decision_suite.rs": "4ea48cde731a4ccca7bc7691254ba70b7815fb45dcb60b1e1e951931dd2dc844", + "compiler/crates/orange-compiler/tests/d009_support/domain.rs": "00825848135d5196bb27f2ec6548ecf7cc7d76acae4d2ac9cb12e284e7da2b59", "compiler/crates/orange-compiler/tests/d009_support/packet.rs": "7dfe8542bdbd50f6111f08a7c1fe7c9fbb8854df87ab2ba5c5e9ec320776b12a", "compiler/crates/orange-compiler/tests/d009_support/runner.rs": "2ff850b72fde81d5a66cc3f58df8d54e642a906c7ccad728db8d0f77b53f72c0", - "compiler/crates/orange-compiler/tests/d010_decision_suite.rs": "82bfb89a70abb000b39ef9722c343849a92fd49b675c0bee8a6c7073153005ae", + "compiler/crates/orange-compiler/tests/d010_decision_suite.rs": "f14cccf8c15c200024da8c74911a8377a374f1f5f6780dbfcb122390403e5027", "compiler/crates/orange-compiler/tests/d010_support/domain.rs": "e4586e92ab2c2ebc4b1e5d26f40d1e9293a7ab466388239257d9867513b086a6", - "compiler/crates/orange-compiler/tests/d010_support/packet.rs": "d30792434d4ff3277f6874fc4645f074b7e355543fc2ac9fc7a54f449b79ecbf", + "compiler/crates/orange-compiler/tests/d010_support/packet.rs": "845d426a203f37ffc320477fadb55b67995640000bb6a10bbe463736110cdb96", "compiler/crates/orange-compiler/tests/d010_support/runner.rs": "488a20a53b0e1d3d2ffb7eec2ef5b9759232f93e1b54d54db6f554e2a880a67c", "compiler/crates/orangec/tests/s2_conformance.rs": "61c1f877e91a76706da0ee78e9aa3cb44c519f4d8b5823d1bab998b209981d40", "compiler/crates/orangec/tests/s3a_conformance.rs": "7d25ea303fcb3c1603d60b6cb32d89ae15173cc043b8b695daedb737162b8116", @@ -396,7 +400,7 @@ "conformance/foundation/valid/repository-control-snapshot.json": "c79ed2b11d550573fc39463c27ec8207b3b7811011fe6abb13573651d4c232f3", "conformance/foundation/valid/standards-provenance.json": "1cd82e177baef03e1d3f413c86705b18891239cea413f7881331ee4066daf413", "conformance/foundation/valid/trust-inventory.json": "edb467fb6843713fea4571bacedf27e6b1039f1871ed835bcc0766dfb728542f", - "docs/DECISIONS.md": "a65dbf0d278ba58415ded4fc7a11ee3eb0943e2e0e4a2e23165037d7130acd50", + "docs/DECISIONS.md": "dc610d01e7959496daeaac033361fa93f944ad800694c62777152d6c74d7ab02", "docs/LANGUAGE_2026.md": "35981310cbe1e1ae61c889b4005b2610d0077e6a615a5e032b0ca9a5860b328a", "docs/SEMANTICS_2026.md": "63e14d674eb687f46aa600b36d6d13e3732090d658fb05fd805646b1d469dbdf", "docs/images/README.md": "37e8f88f6ffdc200a43bab0680c42ce7e32e616a3c63c5aa9325537dedd1e1e2", @@ -404,15 +408,16 @@ "docs/operations/GITHUB_CONTROLS.md": "f86bdf0234e9db17256f4be07e20e65a9913de45e96e1fdd55e2c57d056ae94b", "docs/security/OSPS_BASELINE.md": "f912af598fcbe2a76b3b774fab5358b8c63aa68794a209b33f3418e656fdda78", "docs/security/SECRETS_AND_INCIDENTS.md": "93332edb737f84c7a3f74f256b5fb603537bf6f524388f62013140cb9906f6a6", - "docs/security/THREAT_MODEL.md": "8fede51a5038cdaf9a505ea5a0491efbe87252a3245ec5a36ffed73a93b7405f", - "policy/README.md": "784ce0245a69ede46598c9d3ff023d70832fdf8b32de0da10608f21c790f3531", + "docs/security/THREAT_MODEL.md": "48adc94db28c55aac3e261a9286f347c738a26d4ff62b0c51c9b94bf45f5795d", + "policy/README.md": "a62e19660c01ebfd48c9c5f026098971a99d903d3c5b134f5087c17fbbb3a1b8", "policy/makefile-entrypoint-contract-v0.1.json": "370e0954ca798d4ba4eb04d71a223167c530ce5f41c4b5a0ddf7e3a34c0fb19f", - "research/decisions/D-004/README.md": "ce64c07be7451dd820cafc0b7c2a840129e6a03d395c868d9d175a6d05b14542", - "research/decisions/D-004/d004-v0.2-cross-cutting-fixture-proposals.json": "171c7b88d54fe2bd7ddb4c220adb63f006e07c35391018b914482ace17cf7e93", + "research/decisions/D-004/README.md": "28d7517cbecf13e086fd972a35b2b497bc745464b4f809faa81fe11a4a343184", + "research/decisions/D-004/d004-v0.2-cross-cutting-fixture-proposals.json": "d3d58cbeb0d2a90987680cd00bc70caf53518be730a71d0d55ba2a7b50544481", "research/decisions/D-004/d004-v0.2-named-mutations.json": "1d46d6d66c0704fcaa462c625dcac2e72150497bb075322c5e076ea42898be54", - "research/decisions/D-004/d004-v0.3-cross-cutting-executable-fixtures.json": "268b4065028f1af9c9ec912ae8884c150094189f5d782963f42ed6ed4cca6ce0", - "research/decisions/D-004/d004-v0.4-case-subjects.json": "c94100598aaf39954fe683a44f6a4d34837304eb361a1b478ca26884892d8ed6", - "research/decisions/D-004/d004-v0.4-draft-packet.json": "0da96c89f62125f915152fb0ab30f41e608502bbe3a571a928c91e9d3812bc7a", + "research/decisions/D-004/d004-v0.3-cross-cutting-executable-fixtures.json": "5fea65960c47818243d41076dd96a6cab2dbd6d4038fd354a3f5ba30a12622ae", + "research/decisions/D-004/d004-v0.4-case-subjects.json": "6266b8e38ad1a83fb777278fc0369844749b2915eabb40ba1ddfc9efa7c985f2", + "research/decisions/D-004/d004-v0.5-candidate-mappings.json": "70765c64936bbb8aafd6e101fbf20c85396eb722d70e55bb9311d14bfbb15156", + "research/decisions/D-004/d004-v0.5-draft-packet.json": "ec3a0a593d1dab7a6ace874dae4fd03c1ae0656cf301897ccabf51cb109c4009", "research/decisions/D-005/README.md": "5e9019c6de9195d9ed47480324869254bc3057cf1e9dc164d7e931aa292bbb7d", "research/decisions/D-005/d005-v0.1/epochs/0001/protocol/epoch.json": "5ea15c4f2e6db865e2be9c9fea2a77465ffcf131abfd8356faa6923b3e1ad46b", "research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/checked-test-as-functional-refinement.json": "c7f059bfe531e123b7b6a395eb99f391b832ea72c0b08f320e73e63cc452b27e", @@ -422,15 +427,15 @@ "research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/satisfied-target-leakage-with-unresolved-contexts.json": "6d39a9ae51fa8c88789977a849129013f2fc23651c8939180e4c578dd017fc39", "research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/subject-reuse-original.json": "ae981e5a6e74620117c96c720affe1f7f05f0000ef9029cbb2143a8b9119fab9", "research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/substituted-subject-reuses-evidence.json": "5d1c3d90962ec5d21d3e0053e1e4b45f525db97abebda6e4ad85eb5c41333900", - "research/decisions/D-006/README.md": "74545e5127bdfe2f54620491998caf5625929b52ed50fe4d5a5c9d2cd3fa860a", + "research/decisions/D-006/README.md": "9f4fc9e624059d685f2ea042d5bc3e0be7385078a5f11f9eb56c62f3fe64d365", "research/decisions/D-006/d006-v0.2-case-input-index.json": "1aec6a731bef0620c8500120ec8385d584f99a528b4a03c014e8516c55cc8136", "research/decisions/D-006/d006-v0.2-draft-packet.json": "210eccad3a545927301d3cc147fdf918cc432fea65b8d71b79cbefc447e34bff", - "research/decisions/D-009/README.md": "f71109c921b53594857b10da3ba6e7e3ce3a022b8b81c97120decdd840b61669", + "research/decisions/D-009/README.md": "cc8e073718556475853b950d472d30b12186b806b57ccab5dba26f2671e1f940", "research/decisions/D-009/d009-v0.1-case-input-index.json": "c5298d625f5392de2774ffb861fe1dc1701b379ebd385cde0584a8cbcd249859", - "research/decisions/D-009/d009-v0.1-draft-packet.json": "9126ec6b4a46f938c337811b37b4b4939372c0f5fe9347364f21f64bb7a86e3a", - "research/decisions/D-010/README.md": "46b70444ea4e25f13fc877ad6701616711f4886b5ade4c2e6c6f11636cb7f379", + "research/decisions/D-009/d009-v0.1-draft-packet.json": "c0ad0227f1f374da8796c6db4866188213be53bd904bbf22b141ee1de6e57171", + "research/decisions/D-010/README.md": "86d1d351ccb0dfea8f22b67212f2fecfe0e7e2bbc89c62b6d7e57a11ae4cb566", "research/decisions/D-010/d010-v0.1-case-input-index.json": "e9f59e86dff6219474d244ff01a98c75b7b17c65f1f91506d483a57e95e33670", - "research/decisions/D-010/d010-v0.1-draft-packet.json": "f081c3428c83a7be6d296317564adee0284d13f4913739e5cf33634ed748e799", + "research/decisions/D-010/d010-v0.1-draft-packet.json": "647ed6e554a0440c7345e52ff8263aba9d2cb19e444e5956203595c0461d6f6e", "schemas/README.md": "39a7b91e15a316c1221cfce5082608eb453f20ea58b5e1c5a0cf32a07a81d774", "schemas/gate0/claim-record-v0.1.schema.json": "a287dde9ddf114da30af61d050aa96406f23e480d62e0f796d66943489579131", "schemas/gate0/evidence-manifest-v0.1.schema.json": "987ba1cddb23aaaf67a1234456fbffde8f80d45678b9671b8df97ad256742efd", @@ -441,14 +446,15 @@ "scripts/ci/check-repository": "7d896bcffff1d737852c2bf740c8262e97b2f2fad6e9a1fdd03283c887d6feff", "scripts/ci/install-actionlint": "ac2e08280a32b7d213fb3993f43e5f9d9431dc3f960a41dedea551be2d9433b5", "scripts/ci/install-lychee": "21dd0050173bdd6b461ce7893dc4f77f74dde67b051d76697d6e8ec466b6c41f", + "tools/d004_candidate_mappings.py": "c273b900963f970ce265b8aa503b47a223c130a74b3026582e7ff891507a8fab", "tools/fs_sandbox.c": "80d94ad673b9d3edf628d98e8e7659da93030a56918cc9c2193ede1fdfb76b66", - "tools/tests/test_d004_draft_packet.py": "df4d9c55c9b582d787ee8d7e769ae5b71b70816fc1a4cbdf13524847ec513351", + "tools/tests/test_d004_draft_packet.py": "8d178fd7f8f1604c9ded6a78c37d51a30a274efc206156ac5bd7ea0476b0c124", "tools/tests/test_d005_draft_packet.py": "657d5bf9468d481be3c4b7ee3143fed2b4a9f1253d21bc35477476e968017b09", "tools/tests/test_d006_draft_packet.py": "a83df729a9fd07ac2e8571731a2f0f5bc1e75db4651f73bbe3d52739f49aacf5", - "tools/tests/test_d009_draft_packet.py": "9951f0bbcfa9aae6081e674651052d374011523d1c3b259f0ee5e088521bb809", - "tools/tests/test_d010_draft_packet.py": "af47a3739351d187b014859fef38d093773eb90a605e70f837b3f85fc6d05e1b", + "tools/tests/test_d009_draft_packet.py": "c2e2634925f3d17771114fce4f1aa823097478b50d8d50004f03aab104bdeaec", + "tools/tests/test_d010_draft_packet.py": "fb6ccb5c9c6d519bd6514aea68d438c3fed3bba6e09a7272b7ac884c14eec005", "tools/tests/test_validate_foundation.py": "7a5d34d64733d76e24dc2f188413e5b24af0fd94ff1a1afeb0e2581656da5e92", - "tools/tests/test_validate_foundation_hardening.py": "887614241f75a91ce4305021bf914d0cb06bc3b62c9f16068b8eecbf0f4ad8f5" + "tools/tests/test_validate_foundation_hardening.py": "6f9c43092b96b540e5bea47eadfb60b93c3fc337fff3bba7627d9f7ac3925891" }, "executable_paths": [ "scripts/ci/check-external-links", diff --git a/research/decisions/D-004/README.md b/research/decisions/D-004/README.md index f28bc8f..cef00ce 100644 --- a/research/decisions/D-004/README.md +++ b/research/decisions/D-004/README.md @@ -9,69 +9,89 @@ that disposition to exact revision it as `accepted_exact_revision_oep_closure` without inferring any D-004 disposition. -This exact six-file inventory is an input-only D-004 laboratory: +This exact seven-file inventory is an input-only D-004 laboratory: -- `d004-v0.4-draft-packet.json` is the only current packet; +- `d004-v0.5-draft-packet.json` is the only current packet; - `d004-v0.2-named-mutations.json` preserves the 26 named mutation definitions; - `d004-v0.4-case-subjects.json` byte-materializes the five positive and 26 named-mutation subjects; -- `d004-v0.2-cross-cutting-fixture-proposals.json` preserves the 39 frozen +- `d004-v0.2-cross-cutting-fixture-proposals.json` preserves the 42 frozen proposal identities and their original unreviewed-definition status; - `d004-v0.3-cross-cutting-executable-fixtures.json` byte-materializes one - candidate-neutral structural subject for each frozen proposal identity; and + candidate-neutral structural subject for each frozen proposal identity; +- `d004-v0.5-candidate-mappings.json` carries five unreviewed structural + candidate graph proposals and 70 unresolved SR mapping rows as authenticated + input-only data under schema `d004-candidate-mapping-catalog-v0.1`; and - this README states the lifecycle and non-claim boundary. -The v0.4 packet binds 22 exact raw inputs: the current suite, product-form +The v0.5 packet binds 23 exact raw inputs: the current suite, product-form packet, accepted S2 and S3a premises, journey identities, S3a conformance runner and fixture corpus, both v0.2 definition manifests, the v0.3 -cross-cutting catalog, and the v0.4 case-subject catalog. It also binds the -canonical identities of all three catalogs. Replay preparation authenticates +cross-cutting catalog, the v0.4 case-subject catalog, and the v0.5 candidate- +mapping catalog. It also binds the canonical identities of both manifests and +all three catalogs. +Replay preparation authenticates every raw input before it parses the closed manifests, validates the ordered -39-entry proposal join and 31-entry case-subject joins, recomputes every record -and subject digest, and evaluates the bounded structural integrity oracles. +42-entry proposal join, 31-entry case-subject joins, and five-graph/70-row +candidate-mapping joins, recomputes every record and subject digest, and +evaluates the bounded structural integrity oracles. -The v0.4 packet's canonical SHA-256, excluding its terminal line feed, is -`b298cbf0d1c6af2ca9a4af7bb6b020595ffd00c1ab6896d5f097b3ebff13127d`; +The v0.5 packet's canonical SHA-256, excluding its terminal line feed, is +`b6df1a38f8a1eb6a80a8864324c21a81cb292d4c48e1981b4547bad41933b340`; its raw-file SHA-256, including that line feed, is -`0da96c89f62125f915152fb0ab30f41e608502bbe3a571a928c91e9d3812bc7a`. +`ec3a0a593d1dab7a6ace874dae4fd03c1ae0656cf301897ccabf51cb109c4009`. The case-subject catalog contains one positive subject for every SC-01 through SC-05 case and one independently addressed subject for each of the 26 named mutations. Every mutation binds its exact v0.2 manifest record and same-case positive baseline. Its canonical SHA-256 is -`b3a8bcf4f0f084740e92cbff6fd57273df0a078af9c6b974f68d95ba333c6dc1`; +`5b9e734b6bad7913072e87adb29c58547d67bdcb46af942eb6bbc79d0e68166e`; its raw-file SHA-256 is -`c94100598aaf39954fe683a44f6a4d34837304eb361a1b478ca26884892d8ed6`. +`6266b8e38ad1a83fb777278fc0369844749b2915eabb40ba1ddfc9efa7c985f2`. Declared expectations contain no observed state, match, verdict, result, evidence, or candidate capability credit. -The catalog's 39 subjects comprise 14 missing-edge, 10 -identity-substitution, and five each for ambiguity, explicit suite-domain +The catalog's 42 subjects comprise 14 missing-edge, 13 +identity-substitution (including model, dependency-manifest, and positive-subject +identity targets), and five each for ambiguity, explicit suite-domain unsupported behavior, and deterministic suite-domain exhaustion. Each subject has an independent canonical SHA-256 identity. The catalog itself has canonical SHA-256 -`ca08308161244e9541803aa8008dd1624a2101f77da8b656cf0c5deff8a60703` +`0516a84260bcc4d8ebb64e0cd3416deb5c43a86b7f5cd882ca757c924e575767` and raw-file SHA-256 -`268b4065028f1af9c9ec912ae8884c150094189f5d782963f42ed6ed4cca6ce0`. +`5fea65960c47818243d41076dd96a6cab2dbd6d4038fd354a3f5ba30a12622ae`. Integrity preflight is not candidate execution and persists no observed state, match, result, verdict, evidence, or capability credit. It invokes no candidate adapter, process, tool, compiler path, or network. Suite-domain unsupported is not candidate-adapter inability, and suite-domain exhaustion does not exercise a replay ceiling. -All 70 case and cross-cutting subjects are now materialized as candidate-neutral +All 73 case and cross-cutting subjects are now materialized as candidate-neutral suite-only inputs. Sufficiency review remains unresolved separately for ambiguity, missing-edge, identity-substitution, unsupported, and resource-exhaustion fixtures. Replay repetitions also remain unresolved. All five cross-cutting classes therefore remain freeze blockers despite their materialized bytes. +The candidate-mapping catalog adds one unreviewed structural graph proposal for +each of the five candidates and one unresolved row for every candidate and +SR-01-through-SR-14 pair, for 70 rows total. Authentication establishes only +the identity and closed structure of these input hypotheses. No adapter, +execution, evidence, review, freeze, selection, or readiness credit follows. +Its catalog-subject SHA-256 is +`e3b790857ee21a0c651995919aaadb9bf59b05367a8dce99bab6afb6e7d2543f`; +its canonical SHA-256 is +`c967d7db8ea5049da054129367ec61cd80d729b8ce8cd34c95a76e42c67c97b8`, +and its raw-file SHA-256 is +`70765c64936bbb8aafd6e101fbf20c85396eb722d70e55bb9311d14bfbb15156`. + The Rust laboratory also checks a closed, in-memory future-schema descriptor that enumerates all 31 top-level future case-record fields, their nested shapes, and their cross-field invariants. It binds both authenticated subject catalogs -into an exact 70-row observation oracle; future observation fields must resolve -that oracle and cannot broaden their own allowed outcomes. It also defines a +into an exact 73-row observation oracle and binds the authenticated candidate- +mapping catalog into five exact graph/map identity rows; future result fields +must resolve those catalogs and cannot broaden their outcomes. It also defines a 10-field scheduled-slot preimage contract and necessary-and-sufficient verdict conditions, including checked resource bounds and SR dependency joins. The 25-slot identity plan exists, but no concrete slot preimage or digest is @@ -79,10 +99,11 @@ available until the epoch, packet identity, and replay-plan identity are frozen. This synthetic contract accepts no populated records, launches no process or adapter, and persists nothing. It approves no schema, assigns no replay cardinality, and -supplies no candidate mapping or adapter. Its epoch remains null and unfrozen, -owner protocol review remains `none`, execution remains 0/25 with evidence -`none`, and selection and conclusion remain null. It creates no execution or -evidence; both `roadmap_gate_credit` and `readiness_credit` remain `none`. +does not ratify the separate mapping proposals or supply an adapter. Its epoch +remains null and unfrozen, owner protocol review remains `none`, execution +remains 0/25 with evidence `none`, and selection and conclusion remain null. It +creates no execution or evidence; both `roadmap_gate_credit` and +`readiness_credit` remain `none`. The deterministic 5-candidate by 5-case Latin schedule is still only an identity plan. Canonical execution remains 0/25, complete candidates remain diff --git a/research/decisions/D-004/d004-v0.2-cross-cutting-fixture-proposals.json b/research/decisions/D-004/d004-v0.2-cross-cutting-fixture-proposals.json index 4e221da..9c318e4 100644 --- a/research/decisions/D-004/d004-v0.2-cross-cutting-fixture-proposals.json +++ b/research/decisions/D-004/d004-v0.2-cross-cutting-fixture-proposals.json @@ -1 +1 @@ -{"class_statuses":[{"class":"ambiguity","coverage_status":"unresolved","executable_fixture_count":0,"freeze_blocker":true,"proposal_count":5,"proposal_status":"draft_unreviewed"},{"class":"missing-edge","coverage_status":"unresolved","executable_fixture_count":0,"freeze_blocker":true,"proposal_count":14,"proposal_status":"draft_unreviewed"},{"class":"identity-substitution","coverage_status":"unresolved","executable_fixture_count":0,"freeze_blocker":true,"proposal_count":10,"proposal_status":"draft_unreviewed"},{"class":"unsupported","coverage_status":"unresolved","executable_fixture_count":0,"freeze_blocker":true,"proposal_count":5,"proposal_status":"draft_unreviewed"},{"class":"resource-exhaustion","coverage_status":"unresolved","executable_fixture_count":0,"freeze_blocker":true,"proposal_count":5,"proposal_status":"draft_unreviewed"}],"evidence_status":"none","executable_inputs_status":"absent","nonclaims":["no candidate adapter executed","no D-004 evidence epoch frozen","no semantic-strata candidate selected","no D-003 disposition inferred","no roadmap gate or readiness movement","no S3b implementation authorized","proposal definitions are not executable fixture coverage or evidence","unsupported proposals do not establish candidate support or capability absence","candidate adapter inability is not a preregistered unsupported observation","resource-exhaustion proposals do not exercise or verify any resource ceiling","replay repetitions remain unresolved and unassigned"],"owner_protocol_review":"none","proposals":[{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","expected_state":"rejected","id":"D004-XF-ME-SR01","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"remove_required_relationship_descriptor","observation_level":"domain","relationship_scope":["SR-01"],"required_invalidation":"dependent_result","target":"SR-01"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","expected_state":"rejected","id":"D004-XF-ME-SR02","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"remove_required_relationship_descriptor","observation_level":"domain","relationship_scope":["SR-02"],"required_invalidation":"dependent_result","target":"SR-02"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","expected_state":"rejected","id":"D004-XF-ME-SR03","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"remove_required_relationship_descriptor","observation_level":"domain","relationship_scope":["SR-03"],"required_invalidation":"dependent_result","target":"SR-03"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","expected_state":"rejected","id":"D004-XF-ME-SR04","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"remove_required_relationship_descriptor","observation_level":"domain","relationship_scope":["SR-04"],"required_invalidation":"dependent_result","target":"SR-04"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","expected_state":"rejected","id":"D004-XF-ME-SR05","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"remove_required_relationship_descriptor","observation_level":"domain","relationship_scope":["SR-05"],"required_invalidation":"dependent_result","target":"SR-05"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","expected_state":"rejected","id":"D004-XF-ME-SR06","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"remove_required_relationship_descriptor","observation_level":"domain","relationship_scope":["SR-06"],"required_invalidation":"dependent_result","target":"SR-06"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","expected_state":"rejected","id":"D004-XF-ME-SR07","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"remove_required_relationship_descriptor","observation_level":"domain","relationship_scope":["SR-07"],"required_invalidation":"dependent_result","target":"SR-07"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","expected_state":"rejected","id":"D004-XF-ME-SR08","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"remove_required_relationship_descriptor","observation_level":"domain","relationship_scope":["SR-08"],"required_invalidation":"dependent_result","target":"SR-08"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","expected_state":"rejected","id":"D004-XF-ME-SR09","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"remove_required_relationship_descriptor","observation_level":"domain","relationship_scope":["SR-09"],"required_invalidation":"dependent_result","target":"SR-09"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","expected_state":"rejected","id":"D004-XF-ME-SR10","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"remove_required_relationship_descriptor","observation_level":"domain","relationship_scope":["SR-10"],"required_invalidation":"dependent_result","target":"SR-10"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","expected_state":"rejected","id":"D004-XF-ME-SR11","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"remove_required_relationship_descriptor","observation_level":"domain","relationship_scope":["SR-11"],"required_invalidation":"dependent_result","target":"SR-11"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","expected_state":"rejected","id":"D004-XF-ME-SR12","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"remove_required_relationship_descriptor","observation_level":"domain","relationship_scope":["SR-12"],"required_invalidation":"dependent_result","target":"SR-12"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","expected_state":"rejected","id":"D004-XF-ME-SR13","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"remove_required_relationship_descriptor","observation_level":"domain","relationship_scope":["SR-13"],"required_invalidation":"dependent_result","target":"SR-13"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","expected_state":"rejected","id":"D004-XF-ME-SR14","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"remove_required_relationship_descriptor","observation_level":"domain","relationship_scope":["SR-14"],"required_invalidation":"dependent_result","target":"SR-14"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","expected_state":"rejected","id":"D004-XF-ID-PACKET","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"substitute_bound_identity","observation_level":"domain","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"required_invalidation":"dependent_result","target":"packet_identity"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","expected_state":"rejected","id":"D004-XF-ID-REPLAY-PLAN","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"substitute_bound_identity","observation_level":"domain","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"required_invalidation":"dependent_result","target":"replay_plan_identity"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","expected_state":"rejected","id":"D004-XF-ID-SCHEDULED-SLOT","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"substitute_bound_identity","observation_level":"domain","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"required_invalidation":"dependent_result","target":"scheduled_slot_identity"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","expected_state":"rejected","id":"D004-XF-ID-INPUT-MANIFEST","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"substitute_bound_identity","observation_level":"domain","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"required_invalidation":"dependent_result","target":"input_manifest_identity"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","expected_state":"rejected","id":"D004-XF-ID-CANDIDATE-GRAPH","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"substitute_bound_identity","observation_level":"domain","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"required_invalidation":"dependent_result","target":"candidate_graph_identity"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","expected_state":"rejected","id":"D004-XF-ID-SR-MAP","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"substitute_bound_identity","observation_level":"domain","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"required_invalidation":"dependent_result","target":"sr_map_identity"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","expected_state":"rejected","id":"D004-XF-ID-SEMANTIC-ENDPOINT","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"substitute_bound_identity","observation_level":"domain","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"required_invalidation":"dependent_result","target":"semantic_endpoint_identity"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","expected_state":"rejected","id":"D004-XF-ID-PARAMETER-MODEL","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"substitute_bound_identity","observation_level":"domain","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"required_invalidation":"dependent_result","target":"parameter_model_identity"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","expected_state":"rejected","id":"D004-XF-ID-TOOL","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"substitute_bound_identity","observation_level":"domain","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"required_invalidation":"dependent_result","target":"tool_identity"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","expected_state":"rejected","id":"D004-XF-ID-ENVIRONMENT","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"substitute_bound_identity","observation_level":"domain","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"required_invalidation":"dependent_result","target":"environment_identity"},{"capability_credit":"none","case_scope":["SC-01"],"class":"ambiguity","expected_state":"rejected","id":"D004-XF-AMB-SC01","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"admit_competing_authoritative_interpretations","observation_level":"domain","relationship_scope":["SR-01"],"required_invalidation":"dependent_result","target":"numeric_word_byte_order_and_signedness_interpretation"},{"capability_credit":"none","case_scope":["SC-02"],"class":"ambiguity","expected_state":"rejected","id":"D004-XF-AMB-SC02","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"admit_competing_authoritative_interpretations","observation_level":"domain","relationship_scope":["SR-01","SR-02","SR-09"],"required_invalidation":"dependent_result","target":"mutable_memory_and_refinement_interpretation"},{"capability_credit":"none","case_scope":["SC-03"],"class":"ambiguity","expected_state":"rejected","id":"D004-XF-AMB-SC03","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"admit_competing_authoritative_interpretations","observation_level":"domain","relationship_scope":["SR-02","SR-10"],"required_invalidation":"dependent_result","target":"suite_policy_observation_classification"},{"capability_credit":"none","case_scope":["SC-04"],"class":"ambiguity","expected_state":"rejected","id":"D004-XF-AMB-SC04","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"admit_competing_authoritative_interpretations","observation_level":"domain","relationship_scope":["SR-01","SR-03","SR-11"],"required_invalidation":"dependent_result","target":"intrinsic_abstract_machine_mapping"},{"capability_credit":"none","case_scope":["SC-05"],"class":"ambiguity","expected_state":"rejected","id":"D004-XF-AMB-SC05","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"admit_competing_authoritative_interpretations","observation_level":"domain","relationship_scope":["SR-04","SR-08","SR-12"],"required_invalidation":"dependent_result","target":"game_sampling_probability_and_reduction_interpretation"},{"capability_credit":"none","case_scope":["SC-01"],"class":"unsupported","expected_state":"unsupported","id":"D004-XF-US-SC01","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"exercise_preregistered_unsupported_behavior","observation_level":"domain","relationship_scope":[],"required_invalidation":"dependent_result","target":"sc01_unsupported_fixture_slot"},{"capability_credit":"none","case_scope":["SC-02"],"class":"unsupported","expected_state":"unsupported","id":"D004-XF-US-SC02","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"exercise_preregistered_unsupported_behavior","observation_level":"domain","relationship_scope":[],"required_invalidation":"dependent_result","target":"sc02_unsupported_fixture_slot"},{"capability_credit":"none","case_scope":["SC-03"],"class":"unsupported","expected_state":"unsupported","id":"D004-XF-US-SC03","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"exercise_preregistered_unsupported_behavior","observation_level":"domain","relationship_scope":[],"required_invalidation":"dependent_result","target":"sc03_unsupported_fixture_slot"},{"capability_credit":"none","case_scope":["SC-04"],"class":"unsupported","expected_state":"unsupported","id":"D004-XF-US-SC04","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"exercise_preregistered_unsupported_behavior","observation_level":"domain","relationship_scope":[],"required_invalidation":"dependent_result","target":"sc04_unsupported_fixture_slot"},{"capability_credit":"none","case_scope":["SC-05"],"class":"unsupported","expected_state":"unsupported","id":"D004-XF-US-SC05","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"exercise_preregistered_unsupported_behavior","observation_level":"domain","relationship_scope":[],"required_invalidation":"dependent_result","target":"sc05_unsupported_fixture_slot"},{"capability_credit":"none","case_scope":["SC-01"],"class":"resource-exhaustion","expected_state":"exhausted","id":"D004-XF-RE-SC01","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"exercise_preregistered_domain_exhaustion","observation_level":"domain","relationship_scope":[],"required_invalidation":"dependent_result","target":"sc01_resource_fixture_slot"},{"capability_credit":"none","case_scope":["SC-02"],"class":"resource-exhaustion","expected_state":"exhausted","id":"D004-XF-RE-SC02","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"exercise_preregistered_domain_exhaustion","observation_level":"domain","relationship_scope":[],"required_invalidation":"dependent_result","target":"sc02_resource_fixture_slot"},{"capability_credit":"none","case_scope":["SC-03"],"class":"resource-exhaustion","expected_state":"exhausted","id":"D004-XF-RE-SC03","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"exercise_preregistered_domain_exhaustion","observation_level":"domain","relationship_scope":[],"required_invalidation":"dependent_result","target":"sc03_resource_fixture_slot"},{"capability_credit":"none","case_scope":["SC-04"],"class":"resource-exhaustion","expected_state":"exhausted","id":"D004-XF-RE-SC04","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"exercise_preregistered_domain_exhaustion","observation_level":"domain","relationship_scope":[],"required_invalidation":"dependent_result","target":"sc04_resource_fixture_slot"},{"capability_credit":"none","case_scope":["SC-05"],"class":"resource-exhaustion","expected_state":"exhausted","id":"D004-XF-RE-SC05","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"exercise_preregistered_domain_exhaustion","observation_level":"domain","relationship_scope":[],"required_invalidation":"dependent_result","target":"sc05_resource_fixture_slot"}],"replay_repetitions":null,"schema_version":"d004-cross-cutting-fixture-proposals-v0.2","status":"draft_unreviewed"} +{"class_statuses":[{"class":"ambiguity","coverage_status":"unresolved","executable_fixture_count":0,"freeze_blocker":true,"proposal_count":5,"proposal_status":"draft_unreviewed"},{"class":"missing-edge","coverage_status":"unresolved","executable_fixture_count":0,"freeze_blocker":true,"proposal_count":14,"proposal_status":"draft_unreviewed"},{"class":"identity-substitution","coverage_status":"unresolved","executable_fixture_count":0,"freeze_blocker":true,"proposal_count":13,"proposal_status":"draft_unreviewed"},{"class":"unsupported","coverage_status":"unresolved","executable_fixture_count":0,"freeze_blocker":true,"proposal_count":5,"proposal_status":"draft_unreviewed"},{"class":"resource-exhaustion","coverage_status":"unresolved","executable_fixture_count":0,"freeze_blocker":true,"proposal_count":5,"proposal_status":"draft_unreviewed"}],"evidence_status":"none","executable_inputs_status":"absent","nonclaims":["no candidate adapter executed","no D-004 evidence epoch frozen","no semantic-strata candidate selected","no D-003 disposition inferred","no roadmap gate or readiness movement","no S3b implementation authorized","proposal definitions are not executable fixture coverage or evidence","unsupported proposals do not establish candidate support or capability absence","candidate adapter inability is not a preregistered unsupported observation","resource-exhaustion proposals do not exercise or verify any resource ceiling","replay repetitions remain unresolved and unassigned"],"owner_protocol_review":"none","proposals":[{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","expected_state":"rejected","id":"D004-XF-ME-SR01","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"remove_required_relationship_descriptor","observation_level":"domain","relationship_scope":["SR-01"],"required_invalidation":"dependent_result","target":"SR-01"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","expected_state":"rejected","id":"D004-XF-ME-SR02","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"remove_required_relationship_descriptor","observation_level":"domain","relationship_scope":["SR-02"],"required_invalidation":"dependent_result","target":"SR-02"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","expected_state":"rejected","id":"D004-XF-ME-SR03","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"remove_required_relationship_descriptor","observation_level":"domain","relationship_scope":["SR-03"],"required_invalidation":"dependent_result","target":"SR-03"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","expected_state":"rejected","id":"D004-XF-ME-SR04","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"remove_required_relationship_descriptor","observation_level":"domain","relationship_scope":["SR-04"],"required_invalidation":"dependent_result","target":"SR-04"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","expected_state":"rejected","id":"D004-XF-ME-SR05","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"remove_required_relationship_descriptor","observation_level":"domain","relationship_scope":["SR-05"],"required_invalidation":"dependent_result","target":"SR-05"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","expected_state":"rejected","id":"D004-XF-ME-SR06","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"remove_required_relationship_descriptor","observation_level":"domain","relationship_scope":["SR-06"],"required_invalidation":"dependent_result","target":"SR-06"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","expected_state":"rejected","id":"D004-XF-ME-SR07","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"remove_required_relationship_descriptor","observation_level":"domain","relationship_scope":["SR-07"],"required_invalidation":"dependent_result","target":"SR-07"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","expected_state":"rejected","id":"D004-XF-ME-SR08","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"remove_required_relationship_descriptor","observation_level":"domain","relationship_scope":["SR-08"],"required_invalidation":"dependent_result","target":"SR-08"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","expected_state":"rejected","id":"D004-XF-ME-SR09","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"remove_required_relationship_descriptor","observation_level":"domain","relationship_scope":["SR-09"],"required_invalidation":"dependent_result","target":"SR-09"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","expected_state":"rejected","id":"D004-XF-ME-SR10","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"remove_required_relationship_descriptor","observation_level":"domain","relationship_scope":["SR-10"],"required_invalidation":"dependent_result","target":"SR-10"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","expected_state":"rejected","id":"D004-XF-ME-SR11","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"remove_required_relationship_descriptor","observation_level":"domain","relationship_scope":["SR-11"],"required_invalidation":"dependent_result","target":"SR-11"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","expected_state":"rejected","id":"D004-XF-ME-SR12","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"remove_required_relationship_descriptor","observation_level":"domain","relationship_scope":["SR-12"],"required_invalidation":"dependent_result","target":"SR-12"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","expected_state":"rejected","id":"D004-XF-ME-SR13","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"remove_required_relationship_descriptor","observation_level":"domain","relationship_scope":["SR-13"],"required_invalidation":"dependent_result","target":"SR-13"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","expected_state":"rejected","id":"D004-XF-ME-SR14","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"remove_required_relationship_descriptor","observation_level":"domain","relationship_scope":["SR-14"],"required_invalidation":"dependent_result","target":"SR-14"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","expected_state":"rejected","id":"D004-XF-ID-PACKET","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"substitute_bound_identity","observation_level":"domain","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"required_invalidation":"dependent_result","target":"packet_identity"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","expected_state":"rejected","id":"D004-XF-ID-REPLAY-PLAN","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"substitute_bound_identity","observation_level":"domain","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"required_invalidation":"dependent_result","target":"replay_plan_identity"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","expected_state":"rejected","id":"D004-XF-ID-SCHEDULED-SLOT","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"substitute_bound_identity","observation_level":"domain","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"required_invalidation":"dependent_result","target":"scheduled_slot_identity"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","expected_state":"rejected","id":"D004-XF-ID-INPUT-MANIFEST","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"substitute_bound_identity","observation_level":"domain","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"required_invalidation":"dependent_result","target":"input_manifest_identity"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","expected_state":"rejected","id":"D004-XF-ID-CANDIDATE-GRAPH","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"substitute_bound_identity","observation_level":"domain","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"required_invalidation":"dependent_result","target":"candidate_graph_identity"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","expected_state":"rejected","id":"D004-XF-ID-SR-MAP","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"substitute_bound_identity","observation_level":"domain","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"required_invalidation":"dependent_result","target":"sr_map_identity"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","expected_state":"rejected","id":"D004-XF-ID-SEMANTIC-ENDPOINT","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"substitute_bound_identity","observation_level":"domain","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"required_invalidation":"dependent_result","target":"semantic_endpoint_identity"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","expected_state":"rejected","id":"D004-XF-ID-PARAMETER-MODEL","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"substitute_bound_identity","observation_level":"domain","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"required_invalidation":"dependent_result","target":"parameter_model_identity"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","expected_state":"rejected","id":"D004-XF-ID-TOOL","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"substitute_bound_identity","observation_level":"domain","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"required_invalidation":"dependent_result","target":"tool_identity"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","expected_state":"rejected","id":"D004-XF-ID-ENVIRONMENT","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"substitute_bound_identity","observation_level":"domain","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"required_invalidation":"dependent_result","target":"environment_identity"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","expected_state":"rejected","id":"D004-XF-ID-MODEL","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"substitute_bound_identity","observation_level":"domain","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"required_invalidation":"dependent_result","target":"model_identity"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","expected_state":"rejected","id":"D004-XF-ID-DEPENDENCY-MANIFEST","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"substitute_bound_identity","observation_level":"domain","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"required_invalidation":"dependent_result","target":"dependency_manifest_identity"},{"capability_credit":"none","case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","expected_state":"rejected","id":"D004-XF-ID-POSITIVE-SUBJECT","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"substitute_bound_identity","observation_level":"domain","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"required_invalidation":"dependent_result","target":"positive_subject_identity"},{"capability_credit":"none","case_scope":["SC-01"],"class":"ambiguity","expected_state":"rejected","id":"D004-XF-AMB-SC01","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"admit_competing_authoritative_interpretations","observation_level":"domain","relationship_scope":["SR-01"],"required_invalidation":"dependent_result","target":"numeric_word_byte_order_and_signedness_interpretation"},{"capability_credit":"none","case_scope":["SC-02"],"class":"ambiguity","expected_state":"rejected","id":"D004-XF-AMB-SC02","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"admit_competing_authoritative_interpretations","observation_level":"domain","relationship_scope":["SR-01","SR-02","SR-09"],"required_invalidation":"dependent_result","target":"mutable_memory_and_refinement_interpretation"},{"capability_credit":"none","case_scope":["SC-03"],"class":"ambiguity","expected_state":"rejected","id":"D004-XF-AMB-SC03","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"admit_competing_authoritative_interpretations","observation_level":"domain","relationship_scope":["SR-02","SR-10"],"required_invalidation":"dependent_result","target":"suite_policy_observation_classification"},{"capability_credit":"none","case_scope":["SC-04"],"class":"ambiguity","expected_state":"rejected","id":"D004-XF-AMB-SC04","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"admit_competing_authoritative_interpretations","observation_level":"domain","relationship_scope":["SR-01","SR-03","SR-11"],"required_invalidation":"dependent_result","target":"intrinsic_abstract_machine_mapping"},{"capability_credit":"none","case_scope":["SC-05"],"class":"ambiguity","expected_state":"rejected","id":"D004-XF-AMB-SC05","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"admit_competing_authoritative_interpretations","observation_level":"domain","relationship_scope":["SR-04","SR-08","SR-12"],"required_invalidation":"dependent_result","target":"game_sampling_probability_and_reduction_interpretation"},{"capability_credit":"none","case_scope":["SC-01"],"class":"unsupported","expected_state":"unsupported","id":"D004-XF-US-SC01","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"exercise_preregistered_unsupported_behavior","observation_level":"domain","relationship_scope":[],"required_invalidation":"dependent_result","target":"sc01_unsupported_fixture_slot"},{"capability_credit":"none","case_scope":["SC-02"],"class":"unsupported","expected_state":"unsupported","id":"D004-XF-US-SC02","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"exercise_preregistered_unsupported_behavior","observation_level":"domain","relationship_scope":[],"required_invalidation":"dependent_result","target":"sc02_unsupported_fixture_slot"},{"capability_credit":"none","case_scope":["SC-03"],"class":"unsupported","expected_state":"unsupported","id":"D004-XF-US-SC03","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"exercise_preregistered_unsupported_behavior","observation_level":"domain","relationship_scope":[],"required_invalidation":"dependent_result","target":"sc03_unsupported_fixture_slot"},{"capability_credit":"none","case_scope":["SC-04"],"class":"unsupported","expected_state":"unsupported","id":"D004-XF-US-SC04","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"exercise_preregistered_unsupported_behavior","observation_level":"domain","relationship_scope":[],"required_invalidation":"dependent_result","target":"sc04_unsupported_fixture_slot"},{"capability_credit":"none","case_scope":["SC-05"],"class":"unsupported","expected_state":"unsupported","id":"D004-XF-US-SC05","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"exercise_preregistered_unsupported_behavior","observation_level":"domain","relationship_scope":[],"required_invalidation":"dependent_result","target":"sc05_unsupported_fixture_slot"},{"capability_credit":"none","case_scope":["SC-01"],"class":"resource-exhaustion","expected_state":"exhausted","id":"D004-XF-RE-SC01","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"exercise_preregistered_domain_exhaustion","observation_level":"domain","relationship_scope":[],"required_invalidation":"dependent_result","target":"sc01_resource_fixture_slot"},{"capability_credit":"none","case_scope":["SC-02"],"class":"resource-exhaustion","expected_state":"exhausted","id":"D004-XF-RE-SC02","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"exercise_preregistered_domain_exhaustion","observation_level":"domain","relationship_scope":[],"required_invalidation":"dependent_result","target":"sc02_resource_fixture_slot"},{"capability_credit":"none","case_scope":["SC-03"],"class":"resource-exhaustion","expected_state":"exhausted","id":"D004-XF-RE-SC03","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"exercise_preregistered_domain_exhaustion","observation_level":"domain","relationship_scope":[],"required_invalidation":"dependent_result","target":"sc03_resource_fixture_slot"},{"capability_credit":"none","case_scope":["SC-04"],"class":"resource-exhaustion","expected_state":"exhausted","id":"D004-XF-RE-SC04","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"exercise_preregistered_domain_exhaustion","observation_level":"domain","relationship_scope":[],"required_invalidation":"dependent_result","target":"sc04_resource_fixture_slot"},{"capability_credit":"none","case_scope":["SC-05"],"class":"resource-exhaustion","expected_state":"exhausted","id":"D004-XF-RE-SC05","layer":"structural","match_rule":"required_not_sufficient","mutation_kind":"exercise_preregistered_domain_exhaustion","observation_level":"domain","relationship_scope":[],"required_invalidation":"dependent_result","target":"sc05_resource_fixture_slot"}],"replay_repetitions":null,"schema_version":"d004-cross-cutting-fixture-proposals-v0.2","status":"draft_unreviewed"} diff --git a/research/decisions/D-004/d004-v0.3-cross-cutting-executable-fixtures.json b/research/decisions/D-004/d004-v0.3-cross-cutting-executable-fixtures.json index 9d1ed4c..0b29f02 100644 --- a/research/decisions/D-004/d004-v0.3-cross-cutting-executable-fixtures.json +++ b/research/decisions/D-004/d004-v0.3-cross-cutting-executable-fixtures.json @@ -1 +1 @@ -{"canonicalization":"RFC8785_ASCII_INTEGER_SUBSET","class_counts":[{"class":"ambiguity","fixture_count":5},{"class":"missing-edge","fixture_count":14},{"class":"identity-substitution","fixture_count":10},{"class":"unsupported","fixture_count":5},{"class":"resource-exhaustion","fixture_count":5}],"evidence_status":"none","execution_boundary":{"candidate_adapter":"not_invoked","candidate_process":"not_invoked","candidate_tool":"not_invoked","network":"not_used","preflight_output_persistence":"none"},"fixture_count":39,"fixtures":[{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","layer":"structural","model":{"baseline_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"dependent_result":{"id":"dependent_result","required_relationships":["SR-01"]},"kind":"missing-edge","mutated_relationships":["SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"]},"mutation_kind":"remove_required_relationship_descriptor","proposal_id":"D004-XF-ME-SR01","relationship_scope":["SR-01"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"SR-01"},"fixture_subject_sha256":"f2194b3966239244308fad5881480d7edbeb76e08464f8a743175720a8c6f408","proposal_id":"D004-XF-ME-SR01","proposal_record_sha256":"482910ec9b1f941ced4a4032e1ced344869497aa4ccd1b87731fbc0f1576fd7d"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","layer":"structural","model":{"baseline_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"dependent_result":{"id":"dependent_result","required_relationships":["SR-02"]},"kind":"missing-edge","mutated_relationships":["SR-01","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"]},"mutation_kind":"remove_required_relationship_descriptor","proposal_id":"D004-XF-ME-SR02","relationship_scope":["SR-02"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"SR-02"},"fixture_subject_sha256":"cc5c715fa20c3ae6283c31dfbf582a580b2f16e955fb83924c6de7fe2b44157c","proposal_id":"D004-XF-ME-SR02","proposal_record_sha256":"ae8730d8f1108669790ab316e8c1e6e86605cf2c8224d11712153125c36bd86a"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","layer":"structural","model":{"baseline_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"dependent_result":{"id":"dependent_result","required_relationships":["SR-03"]},"kind":"missing-edge","mutated_relationships":["SR-01","SR-02","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"]},"mutation_kind":"remove_required_relationship_descriptor","proposal_id":"D004-XF-ME-SR03","relationship_scope":["SR-03"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"SR-03"},"fixture_subject_sha256":"4aaf68f08478ec5ae1a39f0941a568179c62dfee27ca26eb2ae210d1ebf1deba","proposal_id":"D004-XF-ME-SR03","proposal_record_sha256":"d673a74fd017d83e78e68bb5a25ca254f07ab912479a3e9871b640132869218f"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","layer":"structural","model":{"baseline_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"dependent_result":{"id":"dependent_result","required_relationships":["SR-04"]},"kind":"missing-edge","mutated_relationships":["SR-01","SR-02","SR-03","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"]},"mutation_kind":"remove_required_relationship_descriptor","proposal_id":"D004-XF-ME-SR04","relationship_scope":["SR-04"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"SR-04"},"fixture_subject_sha256":"5809b19d907fe4bcd1aae7205aa0a2dc34eecb52579c1f5424e594ee187f8d79","proposal_id":"D004-XF-ME-SR04","proposal_record_sha256":"41e33dff72f6dbd211b86ceeb1f32861fe118b481f519fb78fe8011287b34c6f"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","layer":"structural","model":{"baseline_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"dependent_result":{"id":"dependent_result","required_relationships":["SR-05"]},"kind":"missing-edge","mutated_relationships":["SR-01","SR-02","SR-03","SR-04","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"]},"mutation_kind":"remove_required_relationship_descriptor","proposal_id":"D004-XF-ME-SR05","relationship_scope":["SR-05"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"SR-05"},"fixture_subject_sha256":"5284caa9a85e34f09baa1b41f31938a57b3e1b6a0d69bad70ca791f142be441a","proposal_id":"D004-XF-ME-SR05","proposal_record_sha256":"319520f937959e53a9b7a9ad35f9acc0cf8e016bb7f5818c616443e189d322a9"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","layer":"structural","model":{"baseline_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"dependent_result":{"id":"dependent_result","required_relationships":["SR-06"]},"kind":"missing-edge","mutated_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"]},"mutation_kind":"remove_required_relationship_descriptor","proposal_id":"D004-XF-ME-SR06","relationship_scope":["SR-06"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"SR-06"},"fixture_subject_sha256":"bde8bc05496dedac92d9015d2fc7b90c1befe71cca22a3631833083c3fca8e34","proposal_id":"D004-XF-ME-SR06","proposal_record_sha256":"70dab32a5122b7d64c80dba50b2ccfae24059b0d9f092f7550201cbc272772ae"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","layer":"structural","model":{"baseline_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"dependent_result":{"id":"dependent_result","required_relationships":["SR-07"]},"kind":"missing-edge","mutated_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"]},"mutation_kind":"remove_required_relationship_descriptor","proposal_id":"D004-XF-ME-SR07","relationship_scope":["SR-07"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"SR-07"},"fixture_subject_sha256":"be62d0a7b589ecb8a5412f7132139d27b135b6dedded5c77973287ce945f0ed2","proposal_id":"D004-XF-ME-SR07","proposal_record_sha256":"3c3753ec97d5c179e17b7b07c2e971bc652bff41743fbbcbf046a31e6930cf25"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","layer":"structural","model":{"baseline_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"dependent_result":{"id":"dependent_result","required_relationships":["SR-08"]},"kind":"missing-edge","mutated_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"]},"mutation_kind":"remove_required_relationship_descriptor","proposal_id":"D004-XF-ME-SR08","relationship_scope":["SR-08"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"SR-08"},"fixture_subject_sha256":"33f1382c3c6c36c4fb89b78b4a7d71d2862d9fbf2b2205ca9774bc4c8c25f8dd","proposal_id":"D004-XF-ME-SR08","proposal_record_sha256":"95428b1cc6abb68a0a860057b17dc44806a2c64454dfd8461193ec2acc87752d"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","layer":"structural","model":{"baseline_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"dependent_result":{"id":"dependent_result","required_relationships":["SR-09"]},"kind":"missing-edge","mutated_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-10","SR-11","SR-12","SR-13","SR-14"]},"mutation_kind":"remove_required_relationship_descriptor","proposal_id":"D004-XF-ME-SR09","relationship_scope":["SR-09"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"SR-09"},"fixture_subject_sha256":"27bc8ad302d1cc8191f2ff5305724b9dfa2fafc3ed010e4af047db30fd5e1eaa","proposal_id":"D004-XF-ME-SR09","proposal_record_sha256":"7ab51901f7653b3f62d49fcd3df41c3c71ccf3db3c85494bc56039806e988b33"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","layer":"structural","model":{"baseline_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"dependent_result":{"id":"dependent_result","required_relationships":["SR-10"]},"kind":"missing-edge","mutated_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-11","SR-12","SR-13","SR-14"]},"mutation_kind":"remove_required_relationship_descriptor","proposal_id":"D004-XF-ME-SR10","relationship_scope":["SR-10"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"SR-10"},"fixture_subject_sha256":"fbf14d1011b23ef50292515bdf1ef650b38d245097b3a2666dad226ce0370ea0","proposal_id":"D004-XF-ME-SR10","proposal_record_sha256":"a5730ec043b364030df88b685aeea0f2800833e50fa1f76127f335043550e830"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","layer":"structural","model":{"baseline_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"dependent_result":{"id":"dependent_result","required_relationships":["SR-11"]},"kind":"missing-edge","mutated_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-12","SR-13","SR-14"]},"mutation_kind":"remove_required_relationship_descriptor","proposal_id":"D004-XF-ME-SR11","relationship_scope":["SR-11"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"SR-11"},"fixture_subject_sha256":"64d53de89ebda9de61fc5eaa8acbd53698bc2d3396cb4522d2812d53e922857f","proposal_id":"D004-XF-ME-SR11","proposal_record_sha256":"f5abe826ad4d71286648090c2266a06b1baa3e2ece1eabe0a2525d30d77ef217"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","layer":"structural","model":{"baseline_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"dependent_result":{"id":"dependent_result","required_relationships":["SR-12"]},"kind":"missing-edge","mutated_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-13","SR-14"]},"mutation_kind":"remove_required_relationship_descriptor","proposal_id":"D004-XF-ME-SR12","relationship_scope":["SR-12"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"SR-12"},"fixture_subject_sha256":"c84773b9419265405f9a7a1abed6cc2ca7ac7cb35f6766f0908be3f458403ada","proposal_id":"D004-XF-ME-SR12","proposal_record_sha256":"a2a6937496751bbd08beee3e4f29fdd97e9293221de67d9b517a817c200f8e91"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","layer":"structural","model":{"baseline_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"dependent_result":{"id":"dependent_result","required_relationships":["SR-13"]},"kind":"missing-edge","mutated_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-14"]},"mutation_kind":"remove_required_relationship_descriptor","proposal_id":"D004-XF-ME-SR13","relationship_scope":["SR-13"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"SR-13"},"fixture_subject_sha256":"b4cc2670e9f4839d3e15f8147e771cfbea15029f06c6f58f40685fadc8ec9083","proposal_id":"D004-XF-ME-SR13","proposal_record_sha256":"77ab8d41b1806c9469540afc1a92e2ff33913392b58d07d755e44610dfb7d7f8"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","layer":"structural","model":{"baseline_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"dependent_result":{"id":"dependent_result","required_relationships":["SR-14"]},"kind":"missing-edge","mutated_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13"]},"mutation_kind":"remove_required_relationship_descriptor","proposal_id":"D004-XF-ME-SR14","relationship_scope":["SR-14"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"SR-14"},"fixture_subject_sha256":"214177e59308f922caeee6427e869cf904cccd716e9596ea48ebc10f3ad98ef8","proposal_id":"D004-XF-ME-SR14","proposal_record_sha256":"6b2300ec6dbe806d7bd42e09e3dfe76462f058d3a756c11072c88b613abc9576"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","layer":"structural","model":{"baseline_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"}],"dependent_result":{"id":"dependent_result","required_binding":{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"}},"identity_namespace":"d004-suite-only-identity-v0.1","kind":"identity-substitution","mutated_bindings":[{"identity_sha256":"38edb67168922ac4b69611f3eac9717964927f280707c96f5c5360134df2b557","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"}]},"mutation_kind":"substitute_bound_identity","proposal_id":"D004-XF-ID-PACKET","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"packet_identity"},"fixture_subject_sha256":"918baf3912512ec4832362dc85d99de51b7408fdec2c335b74829f362093391a","proposal_id":"D004-XF-ID-PACKET","proposal_record_sha256":"fc834b8da6822df71131101aaf09c36c4236d02d95bc315db953d46d2983ae68"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","layer":"structural","model":{"baseline_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"}],"dependent_result":{"id":"dependent_result","required_binding":{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"}},"identity_namespace":"d004-suite-only-identity-v0.1","kind":"identity-substitution","mutated_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"5479e47140578eece67fb2af61c17f14971374f7de9ccdef7c136d9a3be42367","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"}]},"mutation_kind":"substitute_bound_identity","proposal_id":"D004-XF-ID-REPLAY-PLAN","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"replay_plan_identity"},"fixture_subject_sha256":"7d9acce164ce6fbe4aff8ffaf3070f74c4d83ce1e710ae51b6637ef99f8bd34a","proposal_id":"D004-XF-ID-REPLAY-PLAN","proposal_record_sha256":"877b401c3bf24980001dca04695795730bd7956ba01887635b4b63b86525a3b1"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","layer":"structural","model":{"baseline_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"}],"dependent_result":{"id":"dependent_result","required_binding":{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"}},"identity_namespace":"d004-suite-only-identity-v0.1","kind":"identity-substitution","mutated_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"533e22c35d0d1d7cfac44b16f65f2a16f74762230ccd625c87000ce63fdb784d","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"}]},"mutation_kind":"substitute_bound_identity","proposal_id":"D004-XF-ID-SCHEDULED-SLOT","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"scheduled_slot_identity"},"fixture_subject_sha256":"04a787c770c9c888e42e48148dc87b1da1fa7269a7438530ef3db6b88928cf7d","proposal_id":"D004-XF-ID-SCHEDULED-SLOT","proposal_record_sha256":"02ef10ec8a299d65dad8848aab151faae1c3ed583f6726e7e8ca29f3c6dcf5ac"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","layer":"structural","model":{"baseline_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"}],"dependent_result":{"id":"dependent_result","required_binding":{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"}},"identity_namespace":"d004-suite-only-identity-v0.1","kind":"identity-substitution","mutated_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"1f154977121852bcf6e1709dd4a37c1577e5a12637cd6607e452b34c83072a07","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"}]},"mutation_kind":"substitute_bound_identity","proposal_id":"D004-XF-ID-INPUT-MANIFEST","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"input_manifest_identity"},"fixture_subject_sha256":"c713363649f637c911a61fea03664b32562678c1059f749aedb53b4c029f0251","proposal_id":"D004-XF-ID-INPUT-MANIFEST","proposal_record_sha256":"74f60d6de1f9453d1d17781a0e7799a1c8e164e5dca44021c87aa2fe59d8f88e"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","layer":"structural","model":{"baseline_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"}],"dependent_result":{"id":"dependent_result","required_binding":{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"}},"identity_namespace":"d004-suite-only-identity-v0.1","kind":"identity-substitution","mutated_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"91419a44884e28af8c524f7e788713ab0fb444783778515e9a6d72ca55cf9b98","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"}]},"mutation_kind":"substitute_bound_identity","proposal_id":"D004-XF-ID-CANDIDATE-GRAPH","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"candidate_graph_identity"},"fixture_subject_sha256":"d058e0386f0e2c05fe07eb2cdcb0b47de73b03db5eb31664faba1fef7fbf7082","proposal_id":"D004-XF-ID-CANDIDATE-GRAPH","proposal_record_sha256":"e4df71a2cbc75a051535bcfab19e80b923c0f57345883c8165fec70e627c1228"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","layer":"structural","model":{"baseline_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"}],"dependent_result":{"id":"dependent_result","required_binding":{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"}},"identity_namespace":"d004-suite-only-identity-v0.1","kind":"identity-substitution","mutated_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"5187e8f8e45104323463c271c82aa0e8af2f3034dd809a88ac6db08de34c37d1","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"}]},"mutation_kind":"substitute_bound_identity","proposal_id":"D004-XF-ID-SR-MAP","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"sr_map_identity"},"fixture_subject_sha256":"ffed95142891f67275609653f0e8e6ca835863b49786b4e07ee09123e75e5766","proposal_id":"D004-XF-ID-SR-MAP","proposal_record_sha256":"7d9e6d8c05556c8bfaa3dc60848eb72a5ecd63c71adfa35ac132d7bfd7d90246"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","layer":"structural","model":{"baseline_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"}],"dependent_result":{"id":"dependent_result","required_binding":{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"}},"identity_namespace":"d004-suite-only-identity-v0.1","kind":"identity-substitution","mutated_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"4495c1f4750bb1ffbb05983b7a93c415c65d926551708a66bd74d0b99a19c150","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"}]},"mutation_kind":"substitute_bound_identity","proposal_id":"D004-XF-ID-SEMANTIC-ENDPOINT","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"semantic_endpoint_identity"},"fixture_subject_sha256":"897bbf22a9cb8c3a42584e2f7f2fd7e61c15d0926c59916109a9fa952da2c8c0","proposal_id":"D004-XF-ID-SEMANTIC-ENDPOINT","proposal_record_sha256":"2fcfacec154aab37c0fb40800465d54f4414a4d0d92fc3826fa52aacb08c3706"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","layer":"structural","model":{"baseline_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"}],"dependent_result":{"id":"dependent_result","required_binding":{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"}},"identity_namespace":"d004-suite-only-identity-v0.1","kind":"identity-substitution","mutated_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"d498465b1e147ad6dd2b61a31bc33962ba86518b777523d46d123e16cf1035fe","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"}]},"mutation_kind":"substitute_bound_identity","proposal_id":"D004-XF-ID-PARAMETER-MODEL","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"parameter_model_identity"},"fixture_subject_sha256":"958b6263dd207d33c5ce713b32bf7663a309405d1157b70d0cb7d781daeb0b68","proposal_id":"D004-XF-ID-PARAMETER-MODEL","proposal_record_sha256":"e4d68172e09352cb45e61cca3b8a7cc77504c881c858343c808a18eb17033729"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","layer":"structural","model":{"baseline_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"}],"dependent_result":{"id":"dependent_result","required_binding":{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"}},"identity_namespace":"d004-suite-only-identity-v0.1","kind":"identity-substitution","mutated_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"905d7ee59f9ef27eaa54fca0cbf593fab7889e89dd33c3482ffc1739ed5a4db9","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"}]},"mutation_kind":"substitute_bound_identity","proposal_id":"D004-XF-ID-TOOL","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"tool_identity"},"fixture_subject_sha256":"1b8cc37bdc46b57007feb5a536b2b1298c2ad3e233aee6ee3bc6935d6fecb2d9","proposal_id":"D004-XF-ID-TOOL","proposal_record_sha256":"51002692785fcafccacfea2214596666f7667fdca6bfce473bcb0c010aab0ff5"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","layer":"structural","model":{"baseline_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"}],"dependent_result":{"id":"dependent_result","required_binding":{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"}},"identity_namespace":"d004-suite-only-identity-v0.1","kind":"identity-substitution","mutated_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"ab9babf3f772f764814b59373da0b5f658c11cce929b60f0bc461a62660df87e","slot":"environment_identity"}]},"mutation_kind":"substitute_bound_identity","proposal_id":"D004-XF-ID-ENVIRONMENT","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"environment_identity"},"fixture_subject_sha256":"333a2d85528b658192104d9e47e0bfde9e1c6cdce6d86cb313bee307d3ec89ad","proposal_id":"D004-XF-ID-ENVIRONMENT","proposal_record_sha256":"f4c4f14073fd08122ea06c94156d92801eb115dc2d0b221fb903e7485501836c"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01"],"class":"ambiguity","layer":"structural","model":{"authority_key":"numeric_word_byte_order_and_signedness_interpretation","dependent_result":{"id":"dependent_result","requires_unique_authority":true},"interpretations":[{"id":"interpretation-a","value":"d004-suite-only-interpretation-a"},{"id":"interpretation-b","value":"d004-suite-only-interpretation-b"}],"kind":"ambiguity"},"mutation_kind":"admit_competing_authoritative_interpretations","proposal_id":"D004-XF-AMB-SC01","relationship_scope":["SR-01"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"numeric_word_byte_order_and_signedness_interpretation"},"fixture_subject_sha256":"46c1dfd07beffba58d1348aa18fd8451e9f5f7720d3e38fb31d152f13362357c","proposal_id":"D004-XF-AMB-SC01","proposal_record_sha256":"747cf28e36de68ffb42fb25fd6e525c5cb977ac9435fab489b68ebdb6a6f033e"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-02"],"class":"ambiguity","layer":"structural","model":{"authority_key":"mutable_memory_and_refinement_interpretation","dependent_result":{"id":"dependent_result","requires_unique_authority":true},"interpretations":[{"id":"interpretation-a","value":"d004-suite-only-interpretation-a"},{"id":"interpretation-b","value":"d004-suite-only-interpretation-b"}],"kind":"ambiguity"},"mutation_kind":"admit_competing_authoritative_interpretations","proposal_id":"D004-XF-AMB-SC02","relationship_scope":["SR-01","SR-02","SR-09"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"mutable_memory_and_refinement_interpretation"},"fixture_subject_sha256":"b086ffd3accb488aff3d8f8191264249e9acd0ad9cfe8a29920c5d59e43a9c6f","proposal_id":"D004-XF-AMB-SC02","proposal_record_sha256":"3bc508f30b2de1659c5b2ffdfec6db79450b756d9f051016ab7f77087f308360"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-03"],"class":"ambiguity","layer":"structural","model":{"authority_key":"suite_policy_observation_classification","dependent_result":{"id":"dependent_result","requires_unique_authority":true},"interpretations":[{"id":"interpretation-a","value":"d004-suite-only-interpretation-a"},{"id":"interpretation-b","value":"d004-suite-only-interpretation-b"}],"kind":"ambiguity"},"mutation_kind":"admit_competing_authoritative_interpretations","proposal_id":"D004-XF-AMB-SC03","relationship_scope":["SR-02","SR-10"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"suite_policy_observation_classification"},"fixture_subject_sha256":"3c9b4c9b1e86d75ba102e16461dbf91e387af11f466b81168e0717c4e2657e92","proposal_id":"D004-XF-AMB-SC03","proposal_record_sha256":"67c9cc8b3bcd0c8f0665395a4146d087791ca9e6fad8cceae1869b3270e0b774"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-04"],"class":"ambiguity","layer":"structural","model":{"authority_key":"intrinsic_abstract_machine_mapping","dependent_result":{"id":"dependent_result","requires_unique_authority":true},"interpretations":[{"id":"interpretation-a","value":"d004-suite-only-interpretation-a"},{"id":"interpretation-b","value":"d004-suite-only-interpretation-b"}],"kind":"ambiguity"},"mutation_kind":"admit_competing_authoritative_interpretations","proposal_id":"D004-XF-AMB-SC04","relationship_scope":["SR-01","SR-03","SR-11"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"intrinsic_abstract_machine_mapping"},"fixture_subject_sha256":"b83b33f7b08ae67e05cdd5af25afc6ca25429d373d7b5a2ae77d92a51535651f","proposal_id":"D004-XF-AMB-SC04","proposal_record_sha256":"966f91ce19f1cc5822bf2f18c3e872d64f8135ca3ea49dc7805c8f399a5d2c01"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-05"],"class":"ambiguity","layer":"structural","model":{"authority_key":"game_sampling_probability_and_reduction_interpretation","dependent_result":{"id":"dependent_result","requires_unique_authority":true},"interpretations":[{"id":"interpretation-a","value":"d004-suite-only-interpretation-a"},{"id":"interpretation-b","value":"d004-suite-only-interpretation-b"}],"kind":"ambiguity"},"mutation_kind":"admit_competing_authoritative_interpretations","proposal_id":"D004-XF-AMB-SC05","relationship_scope":["SR-04","SR-08","SR-12"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"game_sampling_probability_and_reduction_interpretation"},"fixture_subject_sha256":"3eb0ad113f01fd29db960d3aa746d9492648780fffe24834feb1bab450f0b1b7","proposal_id":"D004-XF-AMB-SC05","proposal_record_sha256":"163cd3eb262ab2e784483e92ab1d59bdc5e73587dec088dd6074322b3e7fdd74"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"unsupported"},"fixture_subject":{"case_scope":["SC-01"],"class":"unsupported","layer":"structural","model":{"dependent_result":{"id":"dependent_result"},"kind":"unsupported","request":{"operation":"sc01_unsupported_fixture_slot"},"support_domain":{"id":"d004-suite-only-support-v0.1","supported_operations":["baseline_operation"],"unsupported_operations":["sc01_unsupported_fixture_slot"]}},"mutation_kind":"exercise_preregistered_unsupported_behavior","proposal_id":"D004-XF-US-SC01","relationship_scope":[],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"sc01_unsupported_fixture_slot"},"fixture_subject_sha256":"4b8cb968c6340439a4474d968b545cd7feb0f0e712317d9ac639bf35a45851c2","proposal_id":"D004-XF-US-SC01","proposal_record_sha256":"28868d46bf5dcda58a1cf1212f6f87028f4a9ace3a08a2914b5f4c8bbbb67fb1"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"unsupported"},"fixture_subject":{"case_scope":["SC-02"],"class":"unsupported","layer":"structural","model":{"dependent_result":{"id":"dependent_result"},"kind":"unsupported","request":{"operation":"sc02_unsupported_fixture_slot"},"support_domain":{"id":"d004-suite-only-support-v0.1","supported_operations":["baseline_operation"],"unsupported_operations":["sc02_unsupported_fixture_slot"]}},"mutation_kind":"exercise_preregistered_unsupported_behavior","proposal_id":"D004-XF-US-SC02","relationship_scope":[],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"sc02_unsupported_fixture_slot"},"fixture_subject_sha256":"284420d79b2a6fe3d215392c780c66e5c341b358f95523d86a79c9ffcb3cdef7","proposal_id":"D004-XF-US-SC02","proposal_record_sha256":"30edbfb6772c6b7d5f683e45c2545d764e757cc9e8a5dd41dae24128f44c98d6"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"unsupported"},"fixture_subject":{"case_scope":["SC-03"],"class":"unsupported","layer":"structural","model":{"dependent_result":{"id":"dependent_result"},"kind":"unsupported","request":{"operation":"sc03_unsupported_fixture_slot"},"support_domain":{"id":"d004-suite-only-support-v0.1","supported_operations":["baseline_operation"],"unsupported_operations":["sc03_unsupported_fixture_slot"]}},"mutation_kind":"exercise_preregistered_unsupported_behavior","proposal_id":"D004-XF-US-SC03","relationship_scope":[],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"sc03_unsupported_fixture_slot"},"fixture_subject_sha256":"7d47370952cd69e64db684cfb27d10bb49416155992f128ba6334fcf1b309df3","proposal_id":"D004-XF-US-SC03","proposal_record_sha256":"2a8acc8abb039b24e003e85f6c4c8791efcc5017ea922a06d670688c70fe1951"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"unsupported"},"fixture_subject":{"case_scope":["SC-04"],"class":"unsupported","layer":"structural","model":{"dependent_result":{"id":"dependent_result"},"kind":"unsupported","request":{"operation":"sc04_unsupported_fixture_slot"},"support_domain":{"id":"d004-suite-only-support-v0.1","supported_operations":["baseline_operation"],"unsupported_operations":["sc04_unsupported_fixture_slot"]}},"mutation_kind":"exercise_preregistered_unsupported_behavior","proposal_id":"D004-XF-US-SC04","relationship_scope":[],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"sc04_unsupported_fixture_slot"},"fixture_subject_sha256":"b499b559f3eee12de46d912b97c1fefdade79a544f0a51084deeac148b9d36e2","proposal_id":"D004-XF-US-SC04","proposal_record_sha256":"924a7887cafd46f5967edb524ae2d88341e715a3bf583c415ec79d2042bdd93b"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"unsupported"},"fixture_subject":{"case_scope":["SC-05"],"class":"unsupported","layer":"structural","model":{"dependent_result":{"id":"dependent_result"},"kind":"unsupported","request":{"operation":"sc05_unsupported_fixture_slot"},"support_domain":{"id":"d004-suite-only-support-v0.1","supported_operations":["baseline_operation"],"unsupported_operations":["sc05_unsupported_fixture_slot"]}},"mutation_kind":"exercise_preregistered_unsupported_behavior","proposal_id":"D004-XF-US-SC05","relationship_scope":[],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"sc05_unsupported_fixture_slot"},"fixture_subject_sha256":"ab542bc9835be64ad2d11db73718d54dc8f37d1513c1401d467324d0aa671342","proposal_id":"D004-XF-US-SC05","proposal_record_sha256":"81d4b74900cc2284a846817b4cb692c465725e5028d09cfd09ac211ac14e6e9f"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"exhausted"},"fixture_subject":{"case_scope":["SC-01"],"class":"resource-exhaustion","layer":"structural","model":{"dependent_result":{"id":"dependent_result"},"kind":"resource-exhaustion","request":{"work_items":["work-01","work-02","work-03","work-04","work-05","work-06","work-07","work-08","work-09"]},"resource_domain":{"id":"d004-suite-only-resource-v0.1","limit":8,"unit":"abstract_work_item"}},"mutation_kind":"exercise_preregistered_domain_exhaustion","proposal_id":"D004-XF-RE-SC01","relationship_scope":[],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"sc01_resource_fixture_slot"},"fixture_subject_sha256":"eef0632ea7d74fc514fbca1d8a3e3b817539c053f208008c73f3d6b2caa3e050","proposal_id":"D004-XF-RE-SC01","proposal_record_sha256":"bb7272ddb9ef133ce28b15efd0988e4a55dad21479b95e9b65731a339ae1dfc8"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"exhausted"},"fixture_subject":{"case_scope":["SC-02"],"class":"resource-exhaustion","layer":"structural","model":{"dependent_result":{"id":"dependent_result"},"kind":"resource-exhaustion","request":{"work_items":["work-01","work-02","work-03","work-04","work-05","work-06","work-07","work-08","work-09"]},"resource_domain":{"id":"d004-suite-only-resource-v0.1","limit":8,"unit":"abstract_work_item"}},"mutation_kind":"exercise_preregistered_domain_exhaustion","proposal_id":"D004-XF-RE-SC02","relationship_scope":[],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"sc02_resource_fixture_slot"},"fixture_subject_sha256":"8ac5a90970e6e383630156feff910b23bfbbcc4463077659b4295d521b862703","proposal_id":"D004-XF-RE-SC02","proposal_record_sha256":"1f2d932ee45cb291c481d807100874b3f53b8a12a0e2e0dc408d696b004adffc"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"exhausted"},"fixture_subject":{"case_scope":["SC-03"],"class":"resource-exhaustion","layer":"structural","model":{"dependent_result":{"id":"dependent_result"},"kind":"resource-exhaustion","request":{"work_items":["work-01","work-02","work-03","work-04","work-05","work-06","work-07","work-08","work-09"]},"resource_domain":{"id":"d004-suite-only-resource-v0.1","limit":8,"unit":"abstract_work_item"}},"mutation_kind":"exercise_preregistered_domain_exhaustion","proposal_id":"D004-XF-RE-SC03","relationship_scope":[],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"sc03_resource_fixture_slot"},"fixture_subject_sha256":"306c6a5a6f8737cc7b12bbae18c4089f274a988cc056c7394c9392ad8e6024d6","proposal_id":"D004-XF-RE-SC03","proposal_record_sha256":"42449e684656c918234ed102ca8f8ac68f14717bbde2a8d16ed3d82566bcb242"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"exhausted"},"fixture_subject":{"case_scope":["SC-04"],"class":"resource-exhaustion","layer":"structural","model":{"dependent_result":{"id":"dependent_result"},"kind":"resource-exhaustion","request":{"work_items":["work-01","work-02","work-03","work-04","work-05","work-06","work-07","work-08","work-09"]},"resource_domain":{"id":"d004-suite-only-resource-v0.1","limit":8,"unit":"abstract_work_item"}},"mutation_kind":"exercise_preregistered_domain_exhaustion","proposal_id":"D004-XF-RE-SC04","relationship_scope":[],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"sc04_resource_fixture_slot"},"fixture_subject_sha256":"7a42f5b3196345b5298a131e43ba00f14b849f87182edffeda2d973df575a761","proposal_id":"D004-XF-RE-SC04","proposal_record_sha256":"a96e59f26ea18bb242deec66152f4d49d93fc43876bed381c0b42d230dc86d3e"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"exhausted"},"fixture_subject":{"case_scope":["SC-05"],"class":"resource-exhaustion","layer":"structural","model":{"dependent_result":{"id":"dependent_result"},"kind":"resource-exhaustion","request":{"work_items":["work-01","work-02","work-03","work-04","work-05","work-06","work-07","work-08","work-09"]},"resource_domain":{"id":"d004-suite-only-resource-v0.1","limit":8,"unit":"abstract_work_item"}},"mutation_kind":"exercise_preregistered_domain_exhaustion","proposal_id":"D004-XF-RE-SC05","relationship_scope":[],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"sc05_resource_fixture_slot"},"fixture_subject_sha256":"c8a34d8c18db9f429f60df117b068cc60f64b1b46f6c794084e1e87986419173","proposal_id":"D004-XF-RE-SC05","proposal_record_sha256":"7f16c76e04a5db758beec2244b7730a7e44cc34161414763708e0b5cd19f801a"}],"nonclaims":["no candidate adapter executed","no candidate process or tool invoked","no candidate observation or case verdict produced","no candidate capability or capability absence established","fixture preflight is not D-004 execution evidence","fixture-domain unsupported is not candidate-adapter inability","fixture-domain exhaustion is not replay-level timeout or exhaustion","no D-004 evidence epoch frozen","no semantic-strata candidate selected","no D-003 disposition inferred","no S3b implementation or roadmap readiness movement authorized"],"owner_protocol_review":"none","proposal_manifest":{"canonical_sha256":"457c14e7d41f677b21af254af45e331b24e6c685a7d7aa8eae556ced5bd7be65","path":"research/decisions/D-004/d004-v0.2-cross-cutting-fixture-proposals.json","raw_sha256":"171c7b88d54fe2bd7ddb4c220adb63f006e07c35391018b914482ace17cf7e93"},"schema_version":"d004-cross-cutting-executable-fixtures-v0.1","status":"draft_unreviewed_input_only","suite_version":"d004-v0.3-draft"} +{"canonicalization":"RFC8785_ASCII_INTEGER_SUBSET","class_counts":[{"class":"ambiguity","fixture_count":5},{"class":"missing-edge","fixture_count":14},{"class":"identity-substitution","fixture_count":13},{"class":"unsupported","fixture_count":5},{"class":"resource-exhaustion","fixture_count":5}],"evidence_status":"none","execution_boundary":{"candidate_adapter":"not_invoked","candidate_process":"not_invoked","candidate_tool":"not_invoked","network":"not_used","preflight_output_persistence":"none"},"fixture_count":42,"fixtures":[{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","layer":"structural","model":{"baseline_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"dependent_result":{"id":"dependent_result","required_relationships":["SR-01"]},"kind":"missing-edge","mutated_relationships":["SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"]},"mutation_kind":"remove_required_relationship_descriptor","proposal_id":"D004-XF-ME-SR01","relationship_scope":["SR-01"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"SR-01"},"fixture_subject_sha256":"f2194b3966239244308fad5881480d7edbeb76e08464f8a743175720a8c6f408","proposal_id":"D004-XF-ME-SR01","proposal_record_sha256":"482910ec9b1f941ced4a4032e1ced344869497aa4ccd1b87731fbc0f1576fd7d"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","layer":"structural","model":{"baseline_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"dependent_result":{"id":"dependent_result","required_relationships":["SR-02"]},"kind":"missing-edge","mutated_relationships":["SR-01","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"]},"mutation_kind":"remove_required_relationship_descriptor","proposal_id":"D004-XF-ME-SR02","relationship_scope":["SR-02"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"SR-02"},"fixture_subject_sha256":"cc5c715fa20c3ae6283c31dfbf582a580b2f16e955fb83924c6de7fe2b44157c","proposal_id":"D004-XF-ME-SR02","proposal_record_sha256":"ae8730d8f1108669790ab316e8c1e6e86605cf2c8224d11712153125c36bd86a"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","layer":"structural","model":{"baseline_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"dependent_result":{"id":"dependent_result","required_relationships":["SR-03"]},"kind":"missing-edge","mutated_relationships":["SR-01","SR-02","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"]},"mutation_kind":"remove_required_relationship_descriptor","proposal_id":"D004-XF-ME-SR03","relationship_scope":["SR-03"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"SR-03"},"fixture_subject_sha256":"4aaf68f08478ec5ae1a39f0941a568179c62dfee27ca26eb2ae210d1ebf1deba","proposal_id":"D004-XF-ME-SR03","proposal_record_sha256":"d673a74fd017d83e78e68bb5a25ca254f07ab912479a3e9871b640132869218f"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","layer":"structural","model":{"baseline_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"dependent_result":{"id":"dependent_result","required_relationships":["SR-04"]},"kind":"missing-edge","mutated_relationships":["SR-01","SR-02","SR-03","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"]},"mutation_kind":"remove_required_relationship_descriptor","proposal_id":"D004-XF-ME-SR04","relationship_scope":["SR-04"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"SR-04"},"fixture_subject_sha256":"5809b19d907fe4bcd1aae7205aa0a2dc34eecb52579c1f5424e594ee187f8d79","proposal_id":"D004-XF-ME-SR04","proposal_record_sha256":"41e33dff72f6dbd211b86ceeb1f32861fe118b481f519fb78fe8011287b34c6f"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","layer":"structural","model":{"baseline_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"dependent_result":{"id":"dependent_result","required_relationships":["SR-05"]},"kind":"missing-edge","mutated_relationships":["SR-01","SR-02","SR-03","SR-04","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"]},"mutation_kind":"remove_required_relationship_descriptor","proposal_id":"D004-XF-ME-SR05","relationship_scope":["SR-05"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"SR-05"},"fixture_subject_sha256":"5284caa9a85e34f09baa1b41f31938a57b3e1b6a0d69bad70ca791f142be441a","proposal_id":"D004-XF-ME-SR05","proposal_record_sha256":"319520f937959e53a9b7a9ad35f9acc0cf8e016bb7f5818c616443e189d322a9"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","layer":"structural","model":{"baseline_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"dependent_result":{"id":"dependent_result","required_relationships":["SR-06"]},"kind":"missing-edge","mutated_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"]},"mutation_kind":"remove_required_relationship_descriptor","proposal_id":"D004-XF-ME-SR06","relationship_scope":["SR-06"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"SR-06"},"fixture_subject_sha256":"bde8bc05496dedac92d9015d2fc7b90c1befe71cca22a3631833083c3fca8e34","proposal_id":"D004-XF-ME-SR06","proposal_record_sha256":"70dab32a5122b7d64c80dba50b2ccfae24059b0d9f092f7550201cbc272772ae"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","layer":"structural","model":{"baseline_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"dependent_result":{"id":"dependent_result","required_relationships":["SR-07"]},"kind":"missing-edge","mutated_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"]},"mutation_kind":"remove_required_relationship_descriptor","proposal_id":"D004-XF-ME-SR07","relationship_scope":["SR-07"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"SR-07"},"fixture_subject_sha256":"be62d0a7b589ecb8a5412f7132139d27b135b6dedded5c77973287ce945f0ed2","proposal_id":"D004-XF-ME-SR07","proposal_record_sha256":"3c3753ec97d5c179e17b7b07c2e971bc652bff41743fbbcbf046a31e6930cf25"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","layer":"structural","model":{"baseline_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"dependent_result":{"id":"dependent_result","required_relationships":["SR-08"]},"kind":"missing-edge","mutated_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"]},"mutation_kind":"remove_required_relationship_descriptor","proposal_id":"D004-XF-ME-SR08","relationship_scope":["SR-08"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"SR-08"},"fixture_subject_sha256":"33f1382c3c6c36c4fb89b78b4a7d71d2862d9fbf2b2205ca9774bc4c8c25f8dd","proposal_id":"D004-XF-ME-SR08","proposal_record_sha256":"95428b1cc6abb68a0a860057b17dc44806a2c64454dfd8461193ec2acc87752d"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","layer":"structural","model":{"baseline_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"dependent_result":{"id":"dependent_result","required_relationships":["SR-09"]},"kind":"missing-edge","mutated_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-10","SR-11","SR-12","SR-13","SR-14"]},"mutation_kind":"remove_required_relationship_descriptor","proposal_id":"D004-XF-ME-SR09","relationship_scope":["SR-09"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"SR-09"},"fixture_subject_sha256":"27bc8ad302d1cc8191f2ff5305724b9dfa2fafc3ed010e4af047db30fd5e1eaa","proposal_id":"D004-XF-ME-SR09","proposal_record_sha256":"7ab51901f7653b3f62d49fcd3df41c3c71ccf3db3c85494bc56039806e988b33"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","layer":"structural","model":{"baseline_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"dependent_result":{"id":"dependent_result","required_relationships":["SR-10"]},"kind":"missing-edge","mutated_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-11","SR-12","SR-13","SR-14"]},"mutation_kind":"remove_required_relationship_descriptor","proposal_id":"D004-XF-ME-SR10","relationship_scope":["SR-10"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"SR-10"},"fixture_subject_sha256":"fbf14d1011b23ef50292515bdf1ef650b38d245097b3a2666dad226ce0370ea0","proposal_id":"D004-XF-ME-SR10","proposal_record_sha256":"a5730ec043b364030df88b685aeea0f2800833e50fa1f76127f335043550e830"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","layer":"structural","model":{"baseline_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"dependent_result":{"id":"dependent_result","required_relationships":["SR-11"]},"kind":"missing-edge","mutated_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-12","SR-13","SR-14"]},"mutation_kind":"remove_required_relationship_descriptor","proposal_id":"D004-XF-ME-SR11","relationship_scope":["SR-11"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"SR-11"},"fixture_subject_sha256":"64d53de89ebda9de61fc5eaa8acbd53698bc2d3396cb4522d2812d53e922857f","proposal_id":"D004-XF-ME-SR11","proposal_record_sha256":"f5abe826ad4d71286648090c2266a06b1baa3e2ece1eabe0a2525d30d77ef217"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","layer":"structural","model":{"baseline_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"dependent_result":{"id":"dependent_result","required_relationships":["SR-12"]},"kind":"missing-edge","mutated_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-13","SR-14"]},"mutation_kind":"remove_required_relationship_descriptor","proposal_id":"D004-XF-ME-SR12","relationship_scope":["SR-12"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"SR-12"},"fixture_subject_sha256":"c84773b9419265405f9a7a1abed6cc2ca7ac7cb35f6766f0908be3f458403ada","proposal_id":"D004-XF-ME-SR12","proposal_record_sha256":"a2a6937496751bbd08beee3e4f29fdd97e9293221de67d9b517a817c200f8e91"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","layer":"structural","model":{"baseline_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"dependent_result":{"id":"dependent_result","required_relationships":["SR-13"]},"kind":"missing-edge","mutated_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-14"]},"mutation_kind":"remove_required_relationship_descriptor","proposal_id":"D004-XF-ME-SR13","relationship_scope":["SR-13"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"SR-13"},"fixture_subject_sha256":"b4cc2670e9f4839d3e15f8147e771cfbea15029f06c6f58f40685fadc8ec9083","proposal_id":"D004-XF-ME-SR13","proposal_record_sha256":"77ab8d41b1806c9469540afc1a92e2ff33913392b58d07d755e44610dfb7d7f8"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"missing-edge","layer":"structural","model":{"baseline_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"dependent_result":{"id":"dependent_result","required_relationships":["SR-14"]},"kind":"missing-edge","mutated_relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13"]},"mutation_kind":"remove_required_relationship_descriptor","proposal_id":"D004-XF-ME-SR14","relationship_scope":["SR-14"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"SR-14"},"fixture_subject_sha256":"214177e59308f922caeee6427e869cf904cccd716e9596ea48ebc10f3ad98ef8","proposal_id":"D004-XF-ME-SR14","proposal_record_sha256":"6b2300ec6dbe806d7bd42e09e3dfe76462f058d3a756c11072c88b613abc9576"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","layer":"structural","model":{"baseline_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"},{"identity_sha256":"0e99c7515739d48832b59fc584c96ece8c71b4b92754c7a9f418385f64da8943","slot":"model_identity"},{"identity_sha256":"a009c7fab8270d5e0d6531675234b6a50beaa745b51ed01e59d07d6b16429c15","slot":"dependency_manifest_identity"},{"identity_sha256":"d41f6513e82d044869a54fa5376e9dcde9c44e49f2b0a302793b913c6e76aa29","slot":"positive_subject_identity"}],"dependent_result":{"id":"dependent_result","required_binding":{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"}},"identity_namespace":"d004-suite-only-identity-v0.1","kind":"identity-substitution","mutated_bindings":[{"identity_sha256":"38edb67168922ac4b69611f3eac9717964927f280707c96f5c5360134df2b557","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"},{"identity_sha256":"0e99c7515739d48832b59fc584c96ece8c71b4b92754c7a9f418385f64da8943","slot":"model_identity"},{"identity_sha256":"a009c7fab8270d5e0d6531675234b6a50beaa745b51ed01e59d07d6b16429c15","slot":"dependency_manifest_identity"},{"identity_sha256":"d41f6513e82d044869a54fa5376e9dcde9c44e49f2b0a302793b913c6e76aa29","slot":"positive_subject_identity"}]},"mutation_kind":"substitute_bound_identity","proposal_id":"D004-XF-ID-PACKET","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"packet_identity"},"fixture_subject_sha256":"5fc162dff6b93dd4db3b903c35ed43656b9d8f833a4f26743651bb2111ccdd64","proposal_id":"D004-XF-ID-PACKET","proposal_record_sha256":"fc834b8da6822df71131101aaf09c36c4236d02d95bc315db953d46d2983ae68"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","layer":"structural","model":{"baseline_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"},{"identity_sha256":"0e99c7515739d48832b59fc584c96ece8c71b4b92754c7a9f418385f64da8943","slot":"model_identity"},{"identity_sha256":"a009c7fab8270d5e0d6531675234b6a50beaa745b51ed01e59d07d6b16429c15","slot":"dependency_manifest_identity"},{"identity_sha256":"d41f6513e82d044869a54fa5376e9dcde9c44e49f2b0a302793b913c6e76aa29","slot":"positive_subject_identity"}],"dependent_result":{"id":"dependent_result","required_binding":{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"}},"identity_namespace":"d004-suite-only-identity-v0.1","kind":"identity-substitution","mutated_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"5479e47140578eece67fb2af61c17f14971374f7de9ccdef7c136d9a3be42367","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"},{"identity_sha256":"0e99c7515739d48832b59fc584c96ece8c71b4b92754c7a9f418385f64da8943","slot":"model_identity"},{"identity_sha256":"a009c7fab8270d5e0d6531675234b6a50beaa745b51ed01e59d07d6b16429c15","slot":"dependency_manifest_identity"},{"identity_sha256":"d41f6513e82d044869a54fa5376e9dcde9c44e49f2b0a302793b913c6e76aa29","slot":"positive_subject_identity"}]},"mutation_kind":"substitute_bound_identity","proposal_id":"D004-XF-ID-REPLAY-PLAN","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"replay_plan_identity"},"fixture_subject_sha256":"5bf1137f70d424272087738aef9174b05f76eddb5351d923d5dd593e672405f2","proposal_id":"D004-XF-ID-REPLAY-PLAN","proposal_record_sha256":"877b401c3bf24980001dca04695795730bd7956ba01887635b4b63b86525a3b1"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","layer":"structural","model":{"baseline_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"},{"identity_sha256":"0e99c7515739d48832b59fc584c96ece8c71b4b92754c7a9f418385f64da8943","slot":"model_identity"},{"identity_sha256":"a009c7fab8270d5e0d6531675234b6a50beaa745b51ed01e59d07d6b16429c15","slot":"dependency_manifest_identity"},{"identity_sha256":"d41f6513e82d044869a54fa5376e9dcde9c44e49f2b0a302793b913c6e76aa29","slot":"positive_subject_identity"}],"dependent_result":{"id":"dependent_result","required_binding":{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"}},"identity_namespace":"d004-suite-only-identity-v0.1","kind":"identity-substitution","mutated_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"533e22c35d0d1d7cfac44b16f65f2a16f74762230ccd625c87000ce63fdb784d","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"},{"identity_sha256":"0e99c7515739d48832b59fc584c96ece8c71b4b92754c7a9f418385f64da8943","slot":"model_identity"},{"identity_sha256":"a009c7fab8270d5e0d6531675234b6a50beaa745b51ed01e59d07d6b16429c15","slot":"dependency_manifest_identity"},{"identity_sha256":"d41f6513e82d044869a54fa5376e9dcde9c44e49f2b0a302793b913c6e76aa29","slot":"positive_subject_identity"}]},"mutation_kind":"substitute_bound_identity","proposal_id":"D004-XF-ID-SCHEDULED-SLOT","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"scheduled_slot_identity"},"fixture_subject_sha256":"b5a980afe40f79266ea74c04d076110fbdacbb98512fdbd71710d69e7d14537e","proposal_id":"D004-XF-ID-SCHEDULED-SLOT","proposal_record_sha256":"02ef10ec8a299d65dad8848aab151faae1c3ed583f6726e7e8ca29f3c6dcf5ac"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","layer":"structural","model":{"baseline_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"},{"identity_sha256":"0e99c7515739d48832b59fc584c96ece8c71b4b92754c7a9f418385f64da8943","slot":"model_identity"},{"identity_sha256":"a009c7fab8270d5e0d6531675234b6a50beaa745b51ed01e59d07d6b16429c15","slot":"dependency_manifest_identity"},{"identity_sha256":"d41f6513e82d044869a54fa5376e9dcde9c44e49f2b0a302793b913c6e76aa29","slot":"positive_subject_identity"}],"dependent_result":{"id":"dependent_result","required_binding":{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"}},"identity_namespace":"d004-suite-only-identity-v0.1","kind":"identity-substitution","mutated_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"1f154977121852bcf6e1709dd4a37c1577e5a12637cd6607e452b34c83072a07","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"},{"identity_sha256":"0e99c7515739d48832b59fc584c96ece8c71b4b92754c7a9f418385f64da8943","slot":"model_identity"},{"identity_sha256":"a009c7fab8270d5e0d6531675234b6a50beaa745b51ed01e59d07d6b16429c15","slot":"dependency_manifest_identity"},{"identity_sha256":"d41f6513e82d044869a54fa5376e9dcde9c44e49f2b0a302793b913c6e76aa29","slot":"positive_subject_identity"}]},"mutation_kind":"substitute_bound_identity","proposal_id":"D004-XF-ID-INPUT-MANIFEST","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"input_manifest_identity"},"fixture_subject_sha256":"72187375f69b6a29baaeae9dfba5f8f3848bcf755e55b1638d2f16b8711ad85b","proposal_id":"D004-XF-ID-INPUT-MANIFEST","proposal_record_sha256":"74f60d6de1f9453d1d17781a0e7799a1c8e164e5dca44021c87aa2fe59d8f88e"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","layer":"structural","model":{"baseline_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"},{"identity_sha256":"0e99c7515739d48832b59fc584c96ece8c71b4b92754c7a9f418385f64da8943","slot":"model_identity"},{"identity_sha256":"a009c7fab8270d5e0d6531675234b6a50beaa745b51ed01e59d07d6b16429c15","slot":"dependency_manifest_identity"},{"identity_sha256":"d41f6513e82d044869a54fa5376e9dcde9c44e49f2b0a302793b913c6e76aa29","slot":"positive_subject_identity"}],"dependent_result":{"id":"dependent_result","required_binding":{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"}},"identity_namespace":"d004-suite-only-identity-v0.1","kind":"identity-substitution","mutated_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"91419a44884e28af8c524f7e788713ab0fb444783778515e9a6d72ca55cf9b98","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"},{"identity_sha256":"0e99c7515739d48832b59fc584c96ece8c71b4b92754c7a9f418385f64da8943","slot":"model_identity"},{"identity_sha256":"a009c7fab8270d5e0d6531675234b6a50beaa745b51ed01e59d07d6b16429c15","slot":"dependency_manifest_identity"},{"identity_sha256":"d41f6513e82d044869a54fa5376e9dcde9c44e49f2b0a302793b913c6e76aa29","slot":"positive_subject_identity"}]},"mutation_kind":"substitute_bound_identity","proposal_id":"D004-XF-ID-CANDIDATE-GRAPH","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"candidate_graph_identity"},"fixture_subject_sha256":"adfc7e9fa43b9e3d69d08e11ca33c8899b7f569b020aa460e3b3d3bb085e8a33","proposal_id":"D004-XF-ID-CANDIDATE-GRAPH","proposal_record_sha256":"e4df71a2cbc75a051535bcfab19e80b923c0f57345883c8165fec70e627c1228"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","layer":"structural","model":{"baseline_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"},{"identity_sha256":"0e99c7515739d48832b59fc584c96ece8c71b4b92754c7a9f418385f64da8943","slot":"model_identity"},{"identity_sha256":"a009c7fab8270d5e0d6531675234b6a50beaa745b51ed01e59d07d6b16429c15","slot":"dependency_manifest_identity"},{"identity_sha256":"d41f6513e82d044869a54fa5376e9dcde9c44e49f2b0a302793b913c6e76aa29","slot":"positive_subject_identity"}],"dependent_result":{"id":"dependent_result","required_binding":{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"}},"identity_namespace":"d004-suite-only-identity-v0.1","kind":"identity-substitution","mutated_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"5187e8f8e45104323463c271c82aa0e8af2f3034dd809a88ac6db08de34c37d1","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"},{"identity_sha256":"0e99c7515739d48832b59fc584c96ece8c71b4b92754c7a9f418385f64da8943","slot":"model_identity"},{"identity_sha256":"a009c7fab8270d5e0d6531675234b6a50beaa745b51ed01e59d07d6b16429c15","slot":"dependency_manifest_identity"},{"identity_sha256":"d41f6513e82d044869a54fa5376e9dcde9c44e49f2b0a302793b913c6e76aa29","slot":"positive_subject_identity"}]},"mutation_kind":"substitute_bound_identity","proposal_id":"D004-XF-ID-SR-MAP","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"sr_map_identity"},"fixture_subject_sha256":"c76b5734c228bbace08aa7066960c12fcfe57107cef6c0773fa1d19b5f2beff8","proposal_id":"D004-XF-ID-SR-MAP","proposal_record_sha256":"7d9e6d8c05556c8bfaa3dc60848eb72a5ecd63c71adfa35ac132d7bfd7d90246"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","layer":"structural","model":{"baseline_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"},{"identity_sha256":"0e99c7515739d48832b59fc584c96ece8c71b4b92754c7a9f418385f64da8943","slot":"model_identity"},{"identity_sha256":"a009c7fab8270d5e0d6531675234b6a50beaa745b51ed01e59d07d6b16429c15","slot":"dependency_manifest_identity"},{"identity_sha256":"d41f6513e82d044869a54fa5376e9dcde9c44e49f2b0a302793b913c6e76aa29","slot":"positive_subject_identity"}],"dependent_result":{"id":"dependent_result","required_binding":{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"}},"identity_namespace":"d004-suite-only-identity-v0.1","kind":"identity-substitution","mutated_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"4495c1f4750bb1ffbb05983b7a93c415c65d926551708a66bd74d0b99a19c150","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"},{"identity_sha256":"0e99c7515739d48832b59fc584c96ece8c71b4b92754c7a9f418385f64da8943","slot":"model_identity"},{"identity_sha256":"a009c7fab8270d5e0d6531675234b6a50beaa745b51ed01e59d07d6b16429c15","slot":"dependency_manifest_identity"},{"identity_sha256":"d41f6513e82d044869a54fa5376e9dcde9c44e49f2b0a302793b913c6e76aa29","slot":"positive_subject_identity"}]},"mutation_kind":"substitute_bound_identity","proposal_id":"D004-XF-ID-SEMANTIC-ENDPOINT","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"semantic_endpoint_identity"},"fixture_subject_sha256":"60a99f823d126db6bee84b518136344245b1f1a43ee6c9f179172d7bf9a328ee","proposal_id":"D004-XF-ID-SEMANTIC-ENDPOINT","proposal_record_sha256":"2fcfacec154aab37c0fb40800465d54f4414a4d0d92fc3826fa52aacb08c3706"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","layer":"structural","model":{"baseline_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"},{"identity_sha256":"0e99c7515739d48832b59fc584c96ece8c71b4b92754c7a9f418385f64da8943","slot":"model_identity"},{"identity_sha256":"a009c7fab8270d5e0d6531675234b6a50beaa745b51ed01e59d07d6b16429c15","slot":"dependency_manifest_identity"},{"identity_sha256":"d41f6513e82d044869a54fa5376e9dcde9c44e49f2b0a302793b913c6e76aa29","slot":"positive_subject_identity"}],"dependent_result":{"id":"dependent_result","required_binding":{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"}},"identity_namespace":"d004-suite-only-identity-v0.1","kind":"identity-substitution","mutated_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"d498465b1e147ad6dd2b61a31bc33962ba86518b777523d46d123e16cf1035fe","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"},{"identity_sha256":"0e99c7515739d48832b59fc584c96ece8c71b4b92754c7a9f418385f64da8943","slot":"model_identity"},{"identity_sha256":"a009c7fab8270d5e0d6531675234b6a50beaa745b51ed01e59d07d6b16429c15","slot":"dependency_manifest_identity"},{"identity_sha256":"d41f6513e82d044869a54fa5376e9dcde9c44e49f2b0a302793b913c6e76aa29","slot":"positive_subject_identity"}]},"mutation_kind":"substitute_bound_identity","proposal_id":"D004-XF-ID-PARAMETER-MODEL","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"parameter_model_identity"},"fixture_subject_sha256":"535bf8fdb5891ae398c4f19a4d0b1cb1b55fa6a466654e3ccd455ed5bdc89fd9","proposal_id":"D004-XF-ID-PARAMETER-MODEL","proposal_record_sha256":"e4d68172e09352cb45e61cca3b8a7cc77504c881c858343c808a18eb17033729"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","layer":"structural","model":{"baseline_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"},{"identity_sha256":"0e99c7515739d48832b59fc584c96ece8c71b4b92754c7a9f418385f64da8943","slot":"model_identity"},{"identity_sha256":"a009c7fab8270d5e0d6531675234b6a50beaa745b51ed01e59d07d6b16429c15","slot":"dependency_manifest_identity"},{"identity_sha256":"d41f6513e82d044869a54fa5376e9dcde9c44e49f2b0a302793b913c6e76aa29","slot":"positive_subject_identity"}],"dependent_result":{"id":"dependent_result","required_binding":{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"}},"identity_namespace":"d004-suite-only-identity-v0.1","kind":"identity-substitution","mutated_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"905d7ee59f9ef27eaa54fca0cbf593fab7889e89dd33c3482ffc1739ed5a4db9","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"},{"identity_sha256":"0e99c7515739d48832b59fc584c96ece8c71b4b92754c7a9f418385f64da8943","slot":"model_identity"},{"identity_sha256":"a009c7fab8270d5e0d6531675234b6a50beaa745b51ed01e59d07d6b16429c15","slot":"dependency_manifest_identity"},{"identity_sha256":"d41f6513e82d044869a54fa5376e9dcde9c44e49f2b0a302793b913c6e76aa29","slot":"positive_subject_identity"}]},"mutation_kind":"substitute_bound_identity","proposal_id":"D004-XF-ID-TOOL","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"tool_identity"},"fixture_subject_sha256":"b5dfd766495babba37cdf22ebe56de7b2d5e22251fe12572a1219bd615d9a908","proposal_id":"D004-XF-ID-TOOL","proposal_record_sha256":"51002692785fcafccacfea2214596666f7667fdca6bfce473bcb0c010aab0ff5"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","layer":"structural","model":{"baseline_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"},{"identity_sha256":"0e99c7515739d48832b59fc584c96ece8c71b4b92754c7a9f418385f64da8943","slot":"model_identity"},{"identity_sha256":"a009c7fab8270d5e0d6531675234b6a50beaa745b51ed01e59d07d6b16429c15","slot":"dependency_manifest_identity"},{"identity_sha256":"d41f6513e82d044869a54fa5376e9dcde9c44e49f2b0a302793b913c6e76aa29","slot":"positive_subject_identity"}],"dependent_result":{"id":"dependent_result","required_binding":{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"}},"identity_namespace":"d004-suite-only-identity-v0.1","kind":"identity-substitution","mutated_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"ab9babf3f772f764814b59373da0b5f658c11cce929b60f0bc461a62660df87e","slot":"environment_identity"},{"identity_sha256":"0e99c7515739d48832b59fc584c96ece8c71b4b92754c7a9f418385f64da8943","slot":"model_identity"},{"identity_sha256":"a009c7fab8270d5e0d6531675234b6a50beaa745b51ed01e59d07d6b16429c15","slot":"dependency_manifest_identity"},{"identity_sha256":"d41f6513e82d044869a54fa5376e9dcde9c44e49f2b0a302793b913c6e76aa29","slot":"positive_subject_identity"}]},"mutation_kind":"substitute_bound_identity","proposal_id":"D004-XF-ID-ENVIRONMENT","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"environment_identity"},"fixture_subject_sha256":"480307bd6db89cdbab8b4ecedd01fcab6a1583956010031b0608cc3a8d9a2b53","proposal_id":"D004-XF-ID-ENVIRONMENT","proposal_record_sha256":"f4c4f14073fd08122ea06c94156d92801eb115dc2d0b221fb903e7485501836c"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","layer":"structural","model":{"baseline_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"},{"identity_sha256":"0e99c7515739d48832b59fc584c96ece8c71b4b92754c7a9f418385f64da8943","slot":"model_identity"},{"identity_sha256":"a009c7fab8270d5e0d6531675234b6a50beaa745b51ed01e59d07d6b16429c15","slot":"dependency_manifest_identity"},{"identity_sha256":"d41f6513e82d044869a54fa5376e9dcde9c44e49f2b0a302793b913c6e76aa29","slot":"positive_subject_identity"}],"dependent_result":{"id":"dependent_result","required_binding":{"identity_sha256":"0e99c7515739d48832b59fc584c96ece8c71b4b92754c7a9f418385f64da8943","slot":"model_identity"}},"identity_namespace":"d004-suite-only-identity-v0.1","kind":"identity-substitution","mutated_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"},{"identity_sha256":"200bb094bc08eda30ba71ca9e3cba6daac6b7d824694a9ee6108cd88278c5556","slot":"model_identity"},{"identity_sha256":"a009c7fab8270d5e0d6531675234b6a50beaa745b51ed01e59d07d6b16429c15","slot":"dependency_manifest_identity"},{"identity_sha256":"d41f6513e82d044869a54fa5376e9dcde9c44e49f2b0a302793b913c6e76aa29","slot":"positive_subject_identity"}]},"mutation_kind":"substitute_bound_identity","proposal_id":"D004-XF-ID-MODEL","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"model_identity"},"fixture_subject_sha256":"ca1d1a85ea7a12433eb0d93cd50d986d4e11c815a7ad63c2c56d03bd9da8e2c4","proposal_id":"D004-XF-ID-MODEL","proposal_record_sha256":"cb3de4cc34fd71dc498ca4c61ca50379d7e76f0fb3a0a1c25e19c7de8ccfa10b"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","layer":"structural","model":{"baseline_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"},{"identity_sha256":"0e99c7515739d48832b59fc584c96ece8c71b4b92754c7a9f418385f64da8943","slot":"model_identity"},{"identity_sha256":"a009c7fab8270d5e0d6531675234b6a50beaa745b51ed01e59d07d6b16429c15","slot":"dependency_manifest_identity"},{"identity_sha256":"d41f6513e82d044869a54fa5376e9dcde9c44e49f2b0a302793b913c6e76aa29","slot":"positive_subject_identity"}],"dependent_result":{"id":"dependent_result","required_binding":{"identity_sha256":"a009c7fab8270d5e0d6531675234b6a50beaa745b51ed01e59d07d6b16429c15","slot":"dependency_manifest_identity"}},"identity_namespace":"d004-suite-only-identity-v0.1","kind":"identity-substitution","mutated_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"},{"identity_sha256":"0e99c7515739d48832b59fc584c96ece8c71b4b92754c7a9f418385f64da8943","slot":"model_identity"},{"identity_sha256":"3af75ab9c7c519dfe031ab590b41874e3e53d58cc189dd45d5461ac20fdedd10","slot":"dependency_manifest_identity"},{"identity_sha256":"d41f6513e82d044869a54fa5376e9dcde9c44e49f2b0a302793b913c6e76aa29","slot":"positive_subject_identity"}]},"mutation_kind":"substitute_bound_identity","proposal_id":"D004-XF-ID-DEPENDENCY-MANIFEST","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"dependency_manifest_identity"},"fixture_subject_sha256":"2d6b9a1dc8a4d75132101aaa8129968b5cc76e972a042d7ac67e761758b6c66f","proposal_id":"D004-XF-ID-DEPENDENCY-MANIFEST","proposal_record_sha256":"2dfa9e8197914387234295a02e397d5c643c055f1c68caf44a02f59c77bf6401"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01","SC-02","SC-03","SC-04","SC-05"],"class":"identity-substitution","layer":"structural","model":{"baseline_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"},{"identity_sha256":"0e99c7515739d48832b59fc584c96ece8c71b4b92754c7a9f418385f64da8943","slot":"model_identity"},{"identity_sha256":"a009c7fab8270d5e0d6531675234b6a50beaa745b51ed01e59d07d6b16429c15","slot":"dependency_manifest_identity"},{"identity_sha256":"d41f6513e82d044869a54fa5376e9dcde9c44e49f2b0a302793b913c6e76aa29","slot":"positive_subject_identity"}],"dependent_result":{"id":"dependent_result","required_binding":{"identity_sha256":"d41f6513e82d044869a54fa5376e9dcde9c44e49f2b0a302793b913c6e76aa29","slot":"positive_subject_identity"}},"identity_namespace":"d004-suite-only-identity-v0.1","kind":"identity-substitution","mutated_bindings":[{"identity_sha256":"334f85c18d442bc2a4fcfa35a599362054df01475e83f23259e596c5704bbd7e","slot":"packet_identity"},{"identity_sha256":"f37c823c6bd779adde88f3269fe60ab58354920749ac12c222e5499f28b5c61b","slot":"replay_plan_identity"},{"identity_sha256":"978e37ce629bc6fef774d32e4dd300b3f0f8e08e7afa2640a4a2c6cb7e708c97","slot":"scheduled_slot_identity"},{"identity_sha256":"0e23edcd03fcd5800b2efc6c4b58a9b2ee87fd82c9f9f7b4300d3d07bf094f10","slot":"input_manifest_identity"},{"identity_sha256":"0f2111ea5884f5d3ffd9609ad2618ecc8e6058c47ed2f8b3bd1feabd8b3a6906","slot":"candidate_graph_identity"},{"identity_sha256":"2f974a7752d29e275f6473d75739c387cd606a82caa12899d6533d7accfeb1bb","slot":"sr_map_identity"},{"identity_sha256":"f0b5384a4d35e2fe5e3b22e5142348ac6e8c6a61da0a3b9901a275da3d0bab76","slot":"semantic_endpoint_identity"},{"identity_sha256":"1f99fd4a88f96dc380cc7eebd88ebc98487dbdd3a21716d3f0b423bc8287f21f","slot":"parameter_model_identity"},{"identity_sha256":"f75d706e59a8d1fd7aee45d458cd962e52469349d414f6f61b4e75e94f6ff4ac","slot":"tool_identity"},{"identity_sha256":"143793bf4d591437f1831857444f8d3388facb7db47c750690cc44ba4f9553c8","slot":"environment_identity"},{"identity_sha256":"0e99c7515739d48832b59fc584c96ece8c71b4b92754c7a9f418385f64da8943","slot":"model_identity"},{"identity_sha256":"a009c7fab8270d5e0d6531675234b6a50beaa745b51ed01e59d07d6b16429c15","slot":"dependency_manifest_identity"},{"identity_sha256":"37978dd61c1f48af5fa252dc7dc0c4200484875616eec65c9451c1f27b106b39","slot":"positive_subject_identity"}]},"mutation_kind":"substitute_bound_identity","proposal_id":"D004-XF-ID-POSITIVE-SUBJECT","relationship_scope":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"positive_subject_identity"},"fixture_subject_sha256":"4b7a87a4de16ef4a84df1193aca4c744a8a6bfcc65e569bb81fc6b49378bde9d","proposal_id":"D004-XF-ID-POSITIVE-SUBJECT","proposal_record_sha256":"dc7a7eb5b95dc79b2d7d9c98dd2283fc7d052537fc0426a632636b4018b2f3b1"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-01"],"class":"ambiguity","layer":"structural","model":{"authority_key":"numeric_word_byte_order_and_signedness_interpretation","dependent_result":{"id":"dependent_result","requires_unique_authority":true},"interpretations":[{"id":"interpretation-a","value":"d004-suite-only-interpretation-a"},{"id":"interpretation-b","value":"d004-suite-only-interpretation-b"}],"kind":"ambiguity"},"mutation_kind":"admit_competing_authoritative_interpretations","proposal_id":"D004-XF-AMB-SC01","relationship_scope":["SR-01"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"numeric_word_byte_order_and_signedness_interpretation"},"fixture_subject_sha256":"46c1dfd07beffba58d1348aa18fd8451e9f5f7720d3e38fb31d152f13362357c","proposal_id":"D004-XF-AMB-SC01","proposal_record_sha256":"747cf28e36de68ffb42fb25fd6e525c5cb977ac9435fab489b68ebdb6a6f033e"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-02"],"class":"ambiguity","layer":"structural","model":{"authority_key":"mutable_memory_and_refinement_interpretation","dependent_result":{"id":"dependent_result","requires_unique_authority":true},"interpretations":[{"id":"interpretation-a","value":"d004-suite-only-interpretation-a"},{"id":"interpretation-b","value":"d004-suite-only-interpretation-b"}],"kind":"ambiguity"},"mutation_kind":"admit_competing_authoritative_interpretations","proposal_id":"D004-XF-AMB-SC02","relationship_scope":["SR-01","SR-02","SR-09"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"mutable_memory_and_refinement_interpretation"},"fixture_subject_sha256":"b086ffd3accb488aff3d8f8191264249e9acd0ad9cfe8a29920c5d59e43a9c6f","proposal_id":"D004-XF-AMB-SC02","proposal_record_sha256":"3bc508f30b2de1659c5b2ffdfec6db79450b756d9f051016ab7f77087f308360"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-03"],"class":"ambiguity","layer":"structural","model":{"authority_key":"suite_policy_observation_classification","dependent_result":{"id":"dependent_result","requires_unique_authority":true},"interpretations":[{"id":"interpretation-a","value":"d004-suite-only-interpretation-a"},{"id":"interpretation-b","value":"d004-suite-only-interpretation-b"}],"kind":"ambiguity"},"mutation_kind":"admit_competing_authoritative_interpretations","proposal_id":"D004-XF-AMB-SC03","relationship_scope":["SR-02","SR-10"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"suite_policy_observation_classification"},"fixture_subject_sha256":"3c9b4c9b1e86d75ba102e16461dbf91e387af11f466b81168e0717c4e2657e92","proposal_id":"D004-XF-AMB-SC03","proposal_record_sha256":"67c9cc8b3bcd0c8f0665395a4146d087791ca9e6fad8cceae1869b3270e0b774"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-04"],"class":"ambiguity","layer":"structural","model":{"authority_key":"intrinsic_abstract_machine_mapping","dependent_result":{"id":"dependent_result","requires_unique_authority":true},"interpretations":[{"id":"interpretation-a","value":"d004-suite-only-interpretation-a"},{"id":"interpretation-b","value":"d004-suite-only-interpretation-b"}],"kind":"ambiguity"},"mutation_kind":"admit_competing_authoritative_interpretations","proposal_id":"D004-XF-AMB-SC04","relationship_scope":["SR-01","SR-03","SR-11"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"intrinsic_abstract_machine_mapping"},"fixture_subject_sha256":"b83b33f7b08ae67e05cdd5af25afc6ca25429d373d7b5a2ae77d92a51535651f","proposal_id":"D004-XF-AMB-SC04","proposal_record_sha256":"966f91ce19f1cc5822bf2f18c3e872d64f8135ca3ea49dc7805c8f399a5d2c01"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"rejected"},"fixture_subject":{"case_scope":["SC-05"],"class":"ambiguity","layer":"structural","model":{"authority_key":"game_sampling_probability_and_reduction_interpretation","dependent_result":{"id":"dependent_result","requires_unique_authority":true},"interpretations":[{"id":"interpretation-a","value":"d004-suite-only-interpretation-a"},{"id":"interpretation-b","value":"d004-suite-only-interpretation-b"}],"kind":"ambiguity"},"mutation_kind":"admit_competing_authoritative_interpretations","proposal_id":"D004-XF-AMB-SC05","relationship_scope":["SR-04","SR-08","SR-12"],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"game_sampling_probability_and_reduction_interpretation"},"fixture_subject_sha256":"3eb0ad113f01fd29db960d3aa746d9492648780fffe24834feb1bab450f0b1b7","proposal_id":"D004-XF-AMB-SC05","proposal_record_sha256":"163cd3eb262ab2e784483e92ab1d59bdc5e73587dec088dd6074322b3e7fdd74"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"unsupported"},"fixture_subject":{"case_scope":["SC-01"],"class":"unsupported","layer":"structural","model":{"dependent_result":{"id":"dependent_result"},"kind":"unsupported","request":{"operation":"sc01_unsupported_fixture_slot"},"support_domain":{"id":"d004-suite-only-support-v0.1","supported_operations":["baseline_operation"],"unsupported_operations":["sc01_unsupported_fixture_slot"]}},"mutation_kind":"exercise_preregistered_unsupported_behavior","proposal_id":"D004-XF-US-SC01","relationship_scope":[],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"sc01_unsupported_fixture_slot"},"fixture_subject_sha256":"4b8cb968c6340439a4474d968b545cd7feb0f0e712317d9ac639bf35a45851c2","proposal_id":"D004-XF-US-SC01","proposal_record_sha256":"28868d46bf5dcda58a1cf1212f6f87028f4a9ace3a08a2914b5f4c8bbbb67fb1"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"unsupported"},"fixture_subject":{"case_scope":["SC-02"],"class":"unsupported","layer":"structural","model":{"dependent_result":{"id":"dependent_result"},"kind":"unsupported","request":{"operation":"sc02_unsupported_fixture_slot"},"support_domain":{"id":"d004-suite-only-support-v0.1","supported_operations":["baseline_operation"],"unsupported_operations":["sc02_unsupported_fixture_slot"]}},"mutation_kind":"exercise_preregistered_unsupported_behavior","proposal_id":"D004-XF-US-SC02","relationship_scope":[],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"sc02_unsupported_fixture_slot"},"fixture_subject_sha256":"284420d79b2a6fe3d215392c780c66e5c341b358f95523d86a79c9ffcb3cdef7","proposal_id":"D004-XF-US-SC02","proposal_record_sha256":"30edbfb6772c6b7d5f683e45c2545d764e757cc9e8a5dd41dae24128f44c98d6"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"unsupported"},"fixture_subject":{"case_scope":["SC-03"],"class":"unsupported","layer":"structural","model":{"dependent_result":{"id":"dependent_result"},"kind":"unsupported","request":{"operation":"sc03_unsupported_fixture_slot"},"support_domain":{"id":"d004-suite-only-support-v0.1","supported_operations":["baseline_operation"],"unsupported_operations":["sc03_unsupported_fixture_slot"]}},"mutation_kind":"exercise_preregistered_unsupported_behavior","proposal_id":"D004-XF-US-SC03","relationship_scope":[],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"sc03_unsupported_fixture_slot"},"fixture_subject_sha256":"7d47370952cd69e64db684cfb27d10bb49416155992f128ba6334fcf1b309df3","proposal_id":"D004-XF-US-SC03","proposal_record_sha256":"2a8acc8abb039b24e003e85f6c4c8791efcc5017ea922a06d670688c70fe1951"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"unsupported"},"fixture_subject":{"case_scope":["SC-04"],"class":"unsupported","layer":"structural","model":{"dependent_result":{"id":"dependent_result"},"kind":"unsupported","request":{"operation":"sc04_unsupported_fixture_slot"},"support_domain":{"id":"d004-suite-only-support-v0.1","supported_operations":["baseline_operation"],"unsupported_operations":["sc04_unsupported_fixture_slot"]}},"mutation_kind":"exercise_preregistered_unsupported_behavior","proposal_id":"D004-XF-US-SC04","relationship_scope":[],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"sc04_unsupported_fixture_slot"},"fixture_subject_sha256":"b499b559f3eee12de46d912b97c1fefdade79a544f0a51084deeac148b9d36e2","proposal_id":"D004-XF-US-SC04","proposal_record_sha256":"924a7887cafd46f5967edb524ae2d88341e715a3bf583c415ec79d2042bdd93b"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"unsupported"},"fixture_subject":{"case_scope":["SC-05"],"class":"unsupported","layer":"structural","model":{"dependent_result":{"id":"dependent_result"},"kind":"unsupported","request":{"operation":"sc05_unsupported_fixture_slot"},"support_domain":{"id":"d004-suite-only-support-v0.1","supported_operations":["baseline_operation"],"unsupported_operations":["sc05_unsupported_fixture_slot"]}},"mutation_kind":"exercise_preregistered_unsupported_behavior","proposal_id":"D004-XF-US-SC05","relationship_scope":[],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"sc05_unsupported_fixture_slot"},"fixture_subject_sha256":"ab542bc9835be64ad2d11db73718d54dc8f37d1513c1401d467324d0aa671342","proposal_id":"D004-XF-US-SC05","proposal_record_sha256":"81d4b74900cc2284a846817b4cb692c465725e5028d09cfd09ac211ac14e6e9f"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"exhausted"},"fixture_subject":{"case_scope":["SC-01"],"class":"resource-exhaustion","layer":"structural","model":{"dependent_result":{"id":"dependent_result"},"kind":"resource-exhaustion","request":{"work_items":["work-01","work-02","work-03","work-04","work-05","work-06","work-07","work-08","work-09"]},"resource_domain":{"id":"d004-suite-only-resource-v0.1","limit":8,"unit":"abstract_work_item"}},"mutation_kind":"exercise_preregistered_domain_exhaustion","proposal_id":"D004-XF-RE-SC01","relationship_scope":[],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"sc01_resource_fixture_slot"},"fixture_subject_sha256":"eef0632ea7d74fc514fbca1d8a3e3b817539c053f208008c73f3d6b2caa3e050","proposal_id":"D004-XF-RE-SC01","proposal_record_sha256":"bb7272ddb9ef133ce28b15efd0988e4a55dad21479b95e9b65731a339ae1dfc8"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"exhausted"},"fixture_subject":{"case_scope":["SC-02"],"class":"resource-exhaustion","layer":"structural","model":{"dependent_result":{"id":"dependent_result"},"kind":"resource-exhaustion","request":{"work_items":["work-01","work-02","work-03","work-04","work-05","work-06","work-07","work-08","work-09"]},"resource_domain":{"id":"d004-suite-only-resource-v0.1","limit":8,"unit":"abstract_work_item"}},"mutation_kind":"exercise_preregistered_domain_exhaustion","proposal_id":"D004-XF-RE-SC02","relationship_scope":[],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"sc02_resource_fixture_slot"},"fixture_subject_sha256":"8ac5a90970e6e383630156feff910b23bfbbcc4463077659b4295d521b862703","proposal_id":"D004-XF-RE-SC02","proposal_record_sha256":"1f2d932ee45cb291c481d807100874b3f53b8a12a0e2e0dc408d696b004adffc"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"exhausted"},"fixture_subject":{"case_scope":["SC-03"],"class":"resource-exhaustion","layer":"structural","model":{"dependent_result":{"id":"dependent_result"},"kind":"resource-exhaustion","request":{"work_items":["work-01","work-02","work-03","work-04","work-05","work-06","work-07","work-08","work-09"]},"resource_domain":{"id":"d004-suite-only-resource-v0.1","limit":8,"unit":"abstract_work_item"}},"mutation_kind":"exercise_preregistered_domain_exhaustion","proposal_id":"D004-XF-RE-SC03","relationship_scope":[],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"sc03_resource_fixture_slot"},"fixture_subject_sha256":"306c6a5a6f8737cc7b12bbae18c4089f274a988cc056c7394c9392ad8e6024d6","proposal_id":"D004-XF-RE-SC03","proposal_record_sha256":"42449e684656c918234ed102ca8f8ac68f14717bbde2a8d16ed3d82566bcb242"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"exhausted"},"fixture_subject":{"case_scope":["SC-04"],"class":"resource-exhaustion","layer":"structural","model":{"dependent_result":{"id":"dependent_result"},"kind":"resource-exhaustion","request":{"work_items":["work-01","work-02","work-03","work-04","work-05","work-06","work-07","work-08","work-09"]},"resource_domain":{"id":"d004-suite-only-resource-v0.1","limit":8,"unit":"abstract_work_item"}},"mutation_kind":"exercise_preregistered_domain_exhaustion","proposal_id":"D004-XF-RE-SC04","relationship_scope":[],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"sc04_resource_fixture_slot"},"fixture_subject_sha256":"7a42f5b3196345b5298a131e43ba00f14b849f87182edffeda2d973df575a761","proposal_id":"D004-XF-RE-SC04","proposal_record_sha256":"a96e59f26ea18bb242deec66152f4d49d93fc43876bed381c0b42d230dc86d3e"},{"expected_observation":{"capability_credit":"none","match_rule":"required_not_sufficient","observation_level":"domain","required_invalidation":"dependent_result","state":"exhausted"},"fixture_subject":{"case_scope":["SC-05"],"class":"resource-exhaustion","layer":"structural","model":{"dependent_result":{"id":"dependent_result"},"kind":"resource-exhaustion","request":{"work_items":["work-01","work-02","work-03","work-04","work-05","work-06","work-07","work-08","work-09"]},"resource_domain":{"id":"d004-suite-only-resource-v0.1","limit":8,"unit":"abstract_work_item"}},"mutation_kind":"exercise_preregistered_domain_exhaustion","proposal_id":"D004-XF-RE-SC05","relationship_scope":[],"schema_version":"d004-cross-cutting-fixture-subject-v0.1","target":"sc05_resource_fixture_slot"},"fixture_subject_sha256":"c8a34d8c18db9f429f60df117b068cc60f64b1b46f6c794084e1e87986419173","proposal_id":"D004-XF-RE-SC05","proposal_record_sha256":"7f16c76e04a5db758beec2244b7730a7e44cc34161414763708e0b5cd19f801a"}],"nonclaims":["no candidate adapter executed","no candidate process or tool invoked","no candidate observation or case verdict produced","no candidate capability or capability absence established","fixture preflight is not D-004 execution evidence","fixture-domain unsupported is not candidate-adapter inability","fixture-domain exhaustion is not replay-level timeout or exhaustion","no D-004 evidence epoch frozen","no semantic-strata candidate selected","no D-003 disposition inferred","no S3b implementation or roadmap readiness movement authorized"],"owner_protocol_review":"none","proposal_manifest":{"canonical_sha256":"85407a4a43b5a6bf450ea905fe858482f2f79abb4cbe8ee8690bddc1753d0912","path":"research/decisions/D-004/d004-v0.2-cross-cutting-fixture-proposals.json","raw_sha256":"d3d58cbeb0d2a90987680cd00bc70caf53518be730a71d0d55ba2a7b50544481"},"schema_version":"d004-cross-cutting-executable-fixtures-v0.1","status":"draft_unreviewed_input_only","suite_version":"d004-v0.3-draft"} diff --git a/research/decisions/D-004/d004-v0.4-case-subjects.json b/research/decisions/D-004/d004-v0.4-case-subjects.json index 23ea8a0..6b61b12 100644 --- a/research/decisions/D-004/d004-v0.4-case-subjects.json +++ b/research/decisions/D-004/d004-v0.4-case-subjects.json @@ -1 +1 @@ -{"canonicalization":"RFC8785_ASCII_INTEGER_SUBSET","evidence_status":"none","execution_boundary":{"candidate_adapter":"not_invoked","candidate_process":"not_invoked","candidate_tool":"not_invoked","network":"not_used","preflight_output_persistence":"none"},"mutation_subject_count":26,"mutation_subjects":[{"case":"SC-01","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC01-M01","manifest_record_sha256":"88fd7b3fdc01d9a969e620a0e3d760fab182df740a84747c85239265ec77c696","mutation_id":"SC-01-M01","subject":{"case":"SC-01","id":"D004-CS-MUT-SC01-M01","kind":"suite-only-named-mutation","model":{"baseline_value":"explicit_only","dependent_result":{"id":"dependent_result","required_target":"integer_to_word_conversion_mode","required_value":"explicit_only"},"kind":"suite-only-single-invariant-mutation","mutated_value":"implicit_allowed","operator":"replace","target":"integer_to_word_conversion_mode"},"mutation_id":"SC-01-M01","positive_subject_sha256":"6b1287b1c6e657e47bdb0e103e9d0810e11049c0b15dfffaf81f969ae7ad71e8","relationship_scope":["SR-01"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"74cd3643490bd01af1adcb3124d40b5ab2a5f419f03e0e09ab69896618f98f88"},{"case":"SC-01","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC01-M02","manifest_record_sha256":"e9bf765c3312a3f05cbc79f7a47767233318db01612a5d2b932a16bd0d0a0ac2","mutation_id":"SC-01-M02","subject":{"case":"SC-01","id":"D004-CS-MUT-SC01-M02","kind":"suite-only-named-mutation","model":{"baseline_value":"explicit_only","dependent_result":{"id":"dependent_result","required_target":"byte_order_conversion_mode","required_value":"explicit_only"},"kind":"suite-only-single-invariant-mutation","mutated_value":"implicit_allowed","operator":"replace","target":"byte_order_conversion_mode"},"mutation_id":"SC-01-M02","positive_subject_sha256":"6b1287b1c6e657e47bdb0e103e9d0810e11049c0b15dfffaf81f969ae7ad71e8","relationship_scope":["SR-01"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"0bf0f9e1db79097f48bd8d356b29c338cdb323ba8346d757b02d737667363d46"},{"case":"SC-01","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC01-M03","manifest_record_sha256":"6d29ab27bb7c410786d1e5aacd39a2e3bb38439155466ac7ccf02cf58a88aee3","mutation_id":"SC-01-M03","subject":{"case":"SC-01","id":"D004-CS-MUT-SC01-M03","kind":"suite-only-named-mutation","model":{"baseline_value":"declared_width","dependent_result":{"id":"dependent_result","required_target":"word_width","required_value":"declared_width"},"kind":"suite-only-single-invariant-mutation","mutated_value":"mismatched_width","operator":"replace","target":"word_width"},"mutation_id":"SC-01-M03","positive_subject_sha256":"6b1287b1c6e657e47bdb0e103e9d0810e11049c0b15dfffaf81f969ae7ad71e8","relationship_scope":["SR-01"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"3cc3b34d003ae475dab0c49992d50919abb239416bf52be1b5c21e3400995796"},{"case":"SC-01","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC01-M04","manifest_record_sha256":"e64bd83f973f0059a3f46269393b8f8b8fe91691a5cd2a6fe486a06afd352ccc","mutation_id":"SC-01-M04","subject":{"case":"SC-01","id":"D004-CS-MUT-SC01-M04","kind":"suite-only-named-mutation","model":{"baseline_value":"bounded_to_word_width","dependent_result":{"id":"dependent_result","required_target":"shift_bound","required_value":"bounded_to_word_width"},"kind":"suite-only-single-invariant-mutation","mutated_value":"unbounded","operator":"replace","target":"shift_bound"},"mutation_id":"SC-01-M04","positive_subject_sha256":"6b1287b1c6e657e47bdb0e103e9d0810e11049c0b15dfffaf81f969ae7ad71e8","relationship_scope":["SR-01"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"a4e7f14f4df61042b8f9287ce24a6fd096745c99a1b704be02251ef67f771443"},{"case":"SC-02","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC02-M01","manifest_record_sha256":"d6fadd57c8152a2f6deff4482bbf152ea417878643df3fac55ae0a5b53c74b69","mutation_id":"SC-02-M01","subject":{"case":"SC-02","id":"D004-CS-MUT-SC02-M01","kind":"suite-only-named-mutation","model":{"baseline_value":"exclusive_mutable_access","dependent_result":{"id":"dependent_result","required_target":"mutable_aliasing","required_value":"exclusive_mutable_access"},"kind":"suite-only-single-invariant-mutation","mutated_value":"illegal_alias","operator":"replace","target":"mutable_aliasing"},"mutation_id":"SC-02-M01","positive_subject_sha256":"e3a098f166118f93d9e9da76548c8a8db4e2bf53314f9aacb73981a66a4e1b6d","relationship_scope":["SR-01","SR-02","SR-09"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"2fdf440175860334e0ea0f429b5e0026b3c2405ec9b32322891e3728c25815ad"},{"case":"SC-02","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC02-M02","manifest_record_sha256":"2c09ad66c244fd56170e85ca091dc884f49d57d05198815301f9d4154f3305bd","mutation_id":"SC-02-M02","subject":{"case":"SC-02","id":"D004-CS-MUT-SC02-M02","kind":"suite-only-named-mutation","model":{"baseline_value":"within_declared_range","dependent_result":{"id":"dependent_result","required_target":"memory_access_range","required_value":"within_declared_range"},"kind":"suite-only-single-invariant-mutation","mutated_value":"outside_declared_range","operator":"replace","target":"memory_access_range"},"mutation_id":"SC-02-M02","positive_subject_sha256":"e3a098f166118f93d9e9da76548c8a8db4e2bf53314f9aacb73981a66a4e1b6d","relationship_scope":["SR-01","SR-02","SR-09"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"a0f322bf8cf89cf96d62cb35db9ecfaf536f31e7723b29f7614ce8685876b8cd"},{"case":"SC-02","declared_expectation":{"allowed_domain_states":["rejected","unknown"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC02-M03","manifest_record_sha256":"e45184ee546460c67a7f9a7fd7170488d02b5fbe2316208e44c4bff9cd95314e","mutation_id":"SC-02-M03","subject":{"case":"SC-02","id":"D004-CS-MUT-SC02-M03","kind":"suite-only-named-mutation","model":{"baseline_value":"required_present","dependent_result":{"id":"dependent_result","required_target":"loop_invariant","required_value":"required_present"},"kind":"suite-only-single-invariant-mutation","mutated_value":"absent","operator":"remove","target":"loop_invariant"},"mutation_id":"SC-02-M03","positive_subject_sha256":"e3a098f166118f93d9e9da76548c8a8db4e2bf53314f9aacb73981a66a4e1b6d","relationship_scope":["SR-01","SR-02","SR-09"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"2ed245c9c6c5c0511ed5a534120f9e5ad22e5d8489525103ddc960c674ed5ab4"},{"case":"SC-02","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC02-M04","manifest_record_sha256":"62955d52352dc67145814521285a11aa83f6865ff84653c2e8bc3ed2919c2044","mutation_id":"SC-02-M04","subject":{"case":"SC-02","id":"D004-CS-MUT-SC02-M04","kind":"suite-only-named-mutation","model":{"baseline_value":"initialized","dependent_result":{"id":"dependent_result","required_target":"read_initialization","required_value":"initialized"},"kind":"suite-only-single-invariant-mutation","mutated_value":"uninitialized","operator":"replace","target":"read_initialization"},"mutation_id":"SC-02-M04","positive_subject_sha256":"e3a098f166118f93d9e9da76548c8a8db4e2bf53314f9aacb73981a66a4e1b6d","relationship_scope":["SR-01","SR-02","SR-09"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"3d7cb942c680189277a7845d4528146dba3a8afe3a32154a39c4f8fb113fe4bc"},{"case":"SC-02","declared_expectation":{"allowed_domain_states":["rejected","unknown"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC02-M05","manifest_record_sha256":"2da7d35bab6cf2f97b011bd85a16dffb0eb289eb97e059dd576b7de27aaee233","mutation_id":"SC-02-M05","subject":{"case":"SC-02","id":"D004-CS-MUT-SC02-M05","kind":"suite-only-named-mutation","model":{"baseline_value":"original","dependent_result":{"id":"dependent_result","required_target":"refinement_subject_identity","required_value":"original"},"kind":"suite-only-single-invariant-mutation","mutated_value":"substitute","operator":"substitute","target":"refinement_subject_identity"},"mutation_id":"SC-02-M05","positive_subject_sha256":"e3a098f166118f93d9e9da76548c8a8db4e2bf53314f9aacb73981a66a4e1b6d","relationship_scope":["SR-01","SR-02","SR-09"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"2d8063b9fdb55b1eb7c79c09483384e9c1f1979d1afa5d32e2a57457623a7ed6"},{"case":"SC-03","declared_expectation":{"allowed_domain_states":["rejected","unknown","unsupported"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC03-M01","manifest_record_sha256":"c4f487eacae1240f50db735eb5938627a07e8ad5c02e7a82811c19b3723f574d","mutation_id":"SC-03-M01","subject":{"case":"SC-03","id":"D004-CS-MUT-SC03-M01","kind":"suite-only-named-mutation","model":{"baseline_value":"public","dependent_result":{"id":"dependent_result","required_target":"branch_condition","required_value":"public"},"kind":"suite-only-single-invariant-mutation","mutated_value":"secret","operator":"replace","target":"branch_condition"},"mutation_id":"SC-03-M01","positive_subject_sha256":"c51ab70f1ce25442deb91eb29407772535c0ecdb43bc7de13021278f5a6cee9d","relationship_scope":["SR-02","SR-10"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"fba7d62f3e0409008d4cf08d36ecdb1e1e572b246ee12fd7dbb296de2bd1fd35"},{"case":"SC-03","declared_expectation":{"allowed_domain_states":["rejected","unknown","unsupported"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC03-M02","manifest_record_sha256":"00a9a4595a60569bd18ba6f648748044415dd000af582f4fdc2d2cea41c570fd","mutation_id":"SC-03-M02","subject":{"case":"SC-03","id":"D004-CS-MUT-SC03-M02","kind":"suite-only-named-mutation","model":{"baseline_value":"public","dependent_result":{"id":"dependent_result","required_target":"memory_address","required_value":"public"},"kind":"suite-only-single-invariant-mutation","mutated_value":"secret","operator":"replace","target":"memory_address"},"mutation_id":"SC-03-M02","positive_subject_sha256":"c51ab70f1ce25442deb91eb29407772535c0ecdb43bc7de13021278f5a6cee9d","relationship_scope":["SR-02","SR-10"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"95ca9c76e2142505f8982a0f60a6d3a9f61df076e1f1e1ecc1554b08996a5603"},{"case":"SC-03","declared_expectation":{"allowed_domain_states":["rejected","unknown","unsupported"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC03-M03","manifest_record_sha256":"b3fad8a327cc6a0a49a41c28262101299a97fe3ce243a27d7345569ba061ab99","mutation_id":"SC-03-M03","subject":{"case":"SC-03","id":"D004-CS-MUT-SC03-M03","kind":"suite-only-named-mutation","model":{"baseline_value":"public","dependent_result":{"id":"dependent_result","required_target":"loop_bound","required_value":"public"},"kind":"suite-only-single-invariant-mutation","mutated_value":"secret","operator":"replace","target":"loop_bound"},"mutation_id":"SC-03-M03","positive_subject_sha256":"c51ab70f1ce25442deb91eb29407772535c0ecdb43bc7de13021278f5a6cee9d","relationship_scope":["SR-02","SR-10"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"32a4781c9867b9b20fc457dffc29c9c45bc8e7c9f0ded3e68b899e097dc9be62"},{"case":"SC-03","declared_expectation":{"allowed_domain_states":["rejected","unknown","unsupported"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC03-M04","manifest_record_sha256":"3e9a6087d0b0aa21b567210bcfa8df57486294a20d363f00e377d34dfdfa6789","mutation_id":"SC-03-M04","subject":{"case":"SC-03","id":"D004-CS-MUT-SC03-M04","kind":"suite-only-named-mutation","model":{"baseline_value":"public","dependent_result":{"id":"dependent_result","required_target":"failure_path_selector","required_value":"public"},"kind":"suite-only-single-invariant-mutation","mutated_value":"secret","operator":"replace","target":"failure_path_selector"},"mutation_id":"SC-03-M04","positive_subject_sha256":"c51ab70f1ce25442deb91eb29407772535c0ecdb43bc7de13021278f5a6cee9d","relationship_scope":["SR-02","SR-10"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"6e1ac4715e683bfcb6c496825c01fd5c2b8e52f3e69baad0e41ec55db6df2b2a"},{"case":"SC-03","declared_expectation":{"allowed_domain_states":["rejected","unknown","unsupported"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC03-M05","manifest_record_sha256":"a982b8d231d11c24fd6ffce98a881509035c7ac27b0c17f3cab43ddb8a1cd5b5","mutation_id":"SC-03-M05","subject":{"case":"SC-03","id":"D004-CS-MUT-SC03-M05","kind":"suite-only-named-mutation","model":{"baseline_value":"public_independent","dependent_result":{"id":"dependent_result","required_target":"debug_observation","required_value":"public_independent"},"kind":"suite-only-single-invariant-mutation","mutated_value":"secret_dependent","operator":"replace","target":"debug_observation"},"mutation_id":"SC-03-M05","positive_subject_sha256":"c51ab70f1ce25442deb91eb29407772535c0ecdb43bc7de13021278f5a6cee9d","relationship_scope":["SR-02","SR-10"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"829126cd5e45361f5da301fe49260b12cfeeb59790ae593bb77ad491063fd167"},{"case":"SC-04","declared_expectation":{"allowed_domain_states":["rejected","unsupported"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC04-M01","manifest_record_sha256":"284469352da2a705f3cce5ebda45f51fb4e14d4d3eb0a96d2b151ed66e71e820","mutation_id":"SC-04-M01","subject":{"case":"SC-04","id":"D004-CS-MUT-SC04-M01","kind":"suite-only-named-mutation","model":{"baseline_value":"declared_present","dependent_result":{"id":"dependent_result","required_target":"required_target_feature","required_value":"declared_present"},"kind":"suite-only-single-invariant-mutation","mutated_value":"absent","operator":"remove","target":"required_target_feature"},"mutation_id":"SC-04-M01","positive_subject_sha256":"ff4b439bc5716b4aee344cdc40196851e3e76c5d70577135d8d40cba7c90498d","relationship_scope":["SR-01","SR-03","SR-11"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"7a3e5309244918e417a78a56bf79f1c61b1e2a4b05a095c523032fe4687d3663"},{"case":"SC-04","declared_expectation":{"allowed_domain_states":["rejected","unsupported"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC04-M02","manifest_record_sha256":"2023e91bfeb6b1d21ce47858d4708b807e3e05eff89e63b33a830b695dc050a9","mutation_id":"SC-04-M02","subject":{"case":"SC-04","id":"D004-CS-MUT-SC04-M02","kind":"suite-only-named-mutation","model":{"baseline_value":"declared_supported_intrinsic","dependent_result":{"id":"dependent_result","required_target":"intrinsic_identity","required_value":"declared_supported_intrinsic"},"kind":"suite-only-single-invariant-mutation","mutated_value":"unsupported_intrinsic","operator":"substitute","target":"intrinsic_identity"},"mutation_id":"SC-04-M02","positive_subject_sha256":"ff4b439bc5716b4aee344cdc40196851e3e76c5d70577135d8d40cba7c90498d","relationship_scope":["SR-01","SR-03","SR-11"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"7ea6c89cf60151ea094dd187d65b34af9db76a66fe9fda87fd0609715dca4ddc"},{"case":"SC-04","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC04-M03","manifest_record_sha256":"67956069e558bbedda026fd52f9974e3e0a128fd1ffe79aea15a6f46ade15600","mutation_id":"SC-04-M03","subject":{"case":"SC-04","id":"D004-CS-MUT-SC04-M03","kind":"suite-only-named-mutation","model":{"baseline_value":"declared_order","dependent_result":{"id":"dependent_result","required_target":"lane_order","required_value":"declared_order"},"kind":"suite-only-single-invariant-mutation","mutated_value":"reversed_order","operator":"reverse","target":"lane_order"},"mutation_id":"SC-04-M03","positive_subject_sha256":"ff4b439bc5716b4aee344cdc40196851e3e76c5d70577135d8d40cba7c90498d","relationship_scope":["SR-01","SR-03","SR-11"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"aaf9280dce40bd1cb132a134509f173510479756a1f066ea8e6081819d5fbdfb"},{"case":"SC-04","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC04-M04","manifest_record_sha256":"b17b8945a21710cc3466caf18743eba4ca742c74ac63609bd96b833d2bd4424f","mutation_id":"SC-04-M04","subject":{"case":"SC-04","id":"D004-CS-MUT-SC04-M04","kind":"suite-only-named-mutation","model":{"baseline_value":"declared_width","dependent_result":{"id":"dependent_result","required_target":"vector_width","required_value":"declared_width"},"kind":"suite-only-single-invariant-mutation","mutated_value":"mismatched_width","operator":"substitute","target":"vector_width"},"mutation_id":"SC-04-M04","positive_subject_sha256":"ff4b439bc5716b4aee344cdc40196851e3e76c5d70577135d8d40cba7c90498d","relationship_scope":["SR-01","SR-03","SR-11"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"2649f4c8b14a6947b44bfd78a933251ea758684d813a29c6815e8b3a49d41d85"},{"case":"SC-04","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC04-M05","manifest_record_sha256":"b2571a751015787d9f4bea8b0c66561a557efd81f0925a670a7e952e7470a282","mutation_id":"SC-04-M05","subject":{"case":"SC-04","id":"D004-CS-MUT-SC04-M05","kind":"suite-only-named-mutation","model":{"baseline_value":"original","dependent_result":{"id":"dependent_result","required_target":"target_model_identity","required_value":"original"},"kind":"suite-only-single-invariant-mutation","mutated_value":"substitute","operator":"substitute","target":"target_model_identity"},"mutation_id":"SC-04-M05","positive_subject_sha256":"ff4b439bc5716b4aee344cdc40196851e3e76c5d70577135d8d40cba7c90498d","relationship_scope":["SR-01","SR-03","SR-11"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"515d794dad72e82612e0b9889eea64f8a4ebab3bcce0ea03593462e4f7ba3d6e"},{"case":"SC-04","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC04-M06","manifest_record_sha256":"4d32ea688c12492a31a08dfb39844bbd198f6663804f444931d8f6b4513e9808","mutation_id":"SC-04-M06","subject":{"case":"SC-04","id":"D004-CS-MUT-SC04-M06","kind":"suite-only-named-mutation","model":{"baseline_value":"declared","dependent_result":{"id":"dependent_result","required_target":"fallback_authorization","required_value":"declared"},"kind":"suite-only-single-invariant-mutation","mutated_value":"undeclared_selected","operator":"select","target":"fallback_authorization"},"mutation_id":"SC-04-M06","positive_subject_sha256":"ff4b439bc5716b4aee344cdc40196851e3e76c5d70577135d8d40cba7c90498d","relationship_scope":["SR-01","SR-03","SR-11"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"cd994399779b66a78b00d43e7fe55689af19f30af967d517e2141d5bc9bcc6cd"},{"case":"SC-05","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC05-M01","manifest_record_sha256":"bae57e0ea35f6331f25ffb9992153bebc5cbfabb2fc19984b7c534f42e8e9c7e","mutation_id":"SC-05-M01","subject":{"case":"SC-05","id":"D004-CS-MUT-SC05-M01","kind":"suite-only-named-mutation","model":{"baseline_value":"game_semantics","dependent_result":{"id":"dependent_result","required_target":"sampling_authority","required_value":"game_semantics"},"kind":"suite-only-single-invariant-mutation","mutated_value":"specification_semantics","operator":"move","target":"sampling_authority"},"mutation_id":"SC-05-M01","positive_subject_sha256":"c9e527a57524a1a1dcf9cd8b88340b3083cdf1c3d0eac134d4d78461324dc45a","relationship_scope":["SR-04","SR-08","SR-12"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"d74ec43f15f0db0279595e83ffccb2482832d644689b8b43f11e8d524fbd7237"},{"case":"SC-05","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC05-M02","manifest_record_sha256":"c1f387a2f6f732c41a815bd71933f48542769e5e38a79c329538a28b02d93ce3","mutation_id":"SC-05-M02","subject":{"case":"SC-05","id":"D004-CS-MUT-SC05-M02","kind":"suite-only-named-mutation","model":{"baseline_value":"explicit_sampling","dependent_result":{"id":"dependent_result","required_target":"randomness_source","required_value":"explicit_sampling"},"kind":"suite-only-single-invariant-mutation","mutated_value":"ambient_randomness","operator":"replace","target":"randomness_source"},"mutation_id":"SC-05-M02","positive_subject_sha256":"c9e527a57524a1a1dcf9cd8b88340b3083cdf1c3d0eac134d4d78461324dc45a","relationship_scope":["SR-04","SR-08","SR-12"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"2eaf3617d95c87c8fb1906bb16994e6b6c22b93abe07182092f5fc7f7e8ef599"},{"case":"SC-05","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC05-M03","manifest_record_sha256":"39827115b68cbcddf50c18248d13fab654e995240c92b315730919195b47ff6f","mutation_id":"SC-05-M03","subject":{"case":"SC-05","id":"D004-CS-MUT-SC05-M03","kind":"suite-only-named-mutation","model":{"baseline_value":"explicit","dependent_result":{"id":"dependent_result","required_target":"oracle_effect_visibility","required_value":"explicit"},"kind":"suite-only-single-invariant-mutation","mutated_value":"hidden","operator":"hide","target":"oracle_effect_visibility"},"mutation_id":"SC-05-M03","positive_subject_sha256":"c9e527a57524a1a1dcf9cd8b88340b3083cdf1c3d0eac134d4d78461324dc45a","relationship_scope":["SR-04","SR-08","SR-12"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"307aeef7f5a127aaa92afd14b2ae95496764498ed5b72980c1a0bc59fa093466"},{"case":"SC-05","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC05-M04","manifest_record_sha256":"3d724c95996e82711d9fb8d78a0384712f762238b61beecc5ddcadf613e5547a","mutation_id":"SC-05-M04","subject":{"case":"SC-05","id":"D004-CS-MUT-SC05-M04","kind":"suite-only-named-mutation","model":{"baseline_value":"finite","dependent_result":{"id":"dependent_result","required_target":"sample_space_bound","required_value":"finite"},"kind":"suite-only-single-invariant-mutation","mutated_value":"unbounded","operator":"replace","target":"sample_space_bound"},"mutation_id":"SC-05-M04","positive_subject_sha256":"c9e527a57524a1a1dcf9cd8b88340b3083cdf1c3d0eac134d4d78461324dc45a","relationship_scope":["SR-04","SR-08","SR-12"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"dd00d347dc6ae0d47d1d62033aedd5d2216719ee3c2962251ed85be6c5040a5b"},{"case":"SC-05","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC05-M05","manifest_record_sha256":"e7a2c60baad1851f605865d0e4c74666936de920748340ae5f2df0832beabcb9","mutation_id":"SC-05-M05","subject":{"case":"SC-05","id":"D004-CS-MUT-SC05-M05","kind":"suite-only-named-mutation","model":{"baseline_value":"original","dependent_result":{"id":"dependent_result","required_target":"reduction_endpoint_identity","required_value":"original"},"kind":"suite-only-single-invariant-mutation","mutated_value":"substitute","operator":"substitute","target":"reduction_endpoint_identity"},"mutation_id":"SC-05-M05","positive_subject_sha256":"c9e527a57524a1a1dcf9cd8b88340b3083cdf1c3d0eac134d4d78461324dc45a","relationship_scope":["SR-04","SR-08","SR-12"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"d534bf78ec770d0d7ce3bc4f69997c75b5ed26f13be3e762d95647a745374677"},{"case":"SC-05","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC05-M06","manifest_record_sha256":"a2ef9b73d1687e0a69d73a6a71d7c121150252039c448b450d80a2022dbd1cea","mutation_id":"SC-05-M06","subject":{"case":"SC-05","id":"D004-CS-MUT-SC05-M06","kind":"suite-only-named-mutation","model":{"baseline_value":"original","dependent_result":{"id":"dependent_result","required_target":"symbolic_advantage_bound","required_value":"original"},"kind":"suite-only-single-invariant-mutation","mutated_value":"altered","operator":"alter","target":"symbolic_advantage_bound"},"mutation_id":"SC-05-M06","positive_subject_sha256":"c9e527a57524a1a1dcf9cd8b88340b3083cdf1c3d0eac134d4d78461324dc45a","relationship_scope":["SR-04","SR-08","SR-12"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"1ee9baa1bee7aa3956e84de1d5919cf4ed09db3b10f2ed2fd32deff7aff0f5e6"}],"nonclaims":["no candidate mapping or adapter exists","no candidate process or tool invoked","no observed state, match, result, or verdict produced","no candidate capability or capability absence established","case-subject integrity preflight is not D-004 execution evidence","no D-004 evidence epoch frozen","no semantic-strata candidate selected","no D-004 disposition inferred","no S3b implementation, roadmap gate closure, or readiness movement authorized"],"owner_protocol_review":"none","positive_subject_count":5,"positive_subjects":[{"case":"SC-01","declared_expectation":{"allowed_domain_states":["succeeded"],"forbidden_domain_states":["exhausted","timeout"],"observation_level":"domain"},"id":"D004-CS-POS-SC01","subject":{"case":"SC-01","id":"D004-CS-POS-SC01","kind":"suite-only-positive-case","model":{"authority":"suite-only-pure-word-model-v0.1","boundary_vectors":[{"inputs":{"a":"0x00000000","b":"0x00000000","c":"0x00000000"},"normalized_word32_result":"0x00000000"},{"inputs":{"a":"0x00000001","b":"0x00000000","c":"0x00000000"},"normalized_word32_result":"0x00000020"},{"inputs":{"a":"0xffffffff","b":"0x00000000","c":"0xffffffff"},"normalized_word32_result":"0xffffffff"}],"byte_order":"big_endian","conversions":[{"from":"Int","mode":"explicit_only","operation":"int_to_word_checked","to":"Word[32]"},{"from":"Word[32]","mode":"explicit_only","operation":"word_to_bytes_big_endian","to":"Word[8][4]"}],"domains":[{"id":"Int","interpretation":"mathematical_integer"},{"id":"Word[8]","interpretation":"unsigned_modulo_2^8"},{"id":"Word[32]","interpretation":"unsigned_modulo_2^32"}],"round_like_ast":{"inputs":[{"id":"a","type":"Word[32]"},{"id":"b","type":"Word[32]"},{"id":"c","type":"Word[32]"}],"operation":"add_mod_2^32(rotate_left_32(xor_32(a,b),5),choice_32(a,b,c))","output_type":"Word[32]","total":true},"shift_bound":"bounded_to_word_width","signedness":"unsigned"},"relationship_scope":["SR-01"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"6b1287b1c6e657e47bdb0e103e9d0810e11049c0b15dfffaf81f969ae7ad71e8"},{"case":"SC-02","declared_expectation":{"allowed_domain_states":["succeeded"],"forbidden_domain_states":["exhausted","timeout"],"observation_level":"domain"},"id":"D004-CS-POS-SC02","subject":{"case":"SC-02","id":"D004-CS-POS-SC02","kind":"suite-only-positive-case","model":{"authority":"suite-only-distinct-pure-implementation-buffer-model-v0.1","implementation_subject":{"effects":["read_owned_region","write_owned_region"],"failure":"typed_range_failure","id":"sc02-impl-xor-buffer","loop":{"invariant":"0 <= index && index <= region.length","range":"0 <= index < 4"},"operation":"buffer[index] = buffer[index] xor 0x5a","region":{"aliasing":"exclusive_mutable_access","bounds":"0 <= index < 4","id":"owned-region-0","initialization":"all_bytes_initialized","length":4,"ownership":"owned_mutable"}},"input_bytes":[0,1,254,255],"pure_subject":{"effects":[],"id":"sc02-spec-xor-buffer","operation":"map(byte => byte xor 0x5a)","output_bytes":[90,91,164,165],"total":true},"refinement_obligation":{"implementation_subject":"sc02-impl-xor-buffer","required_state":"open_or_discharged","specification_subject":"sc02-spec-xor-buffer","status":"open"}},"relationship_scope":["SR-01","SR-02","SR-09"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"e3a098f166118f93d9e9da76548c8a8db4e2bf53314f9aacb73981a66a4e1b6d"},{"case":"SC-03","declared_expectation":{"allowed_domain_states":["succeeded"],"forbidden_domain_states":["exhausted","timeout"],"observation_level":"domain"},"id":"D004-CS-POS-SC03","subject":{"case":"SC-03","id":"D004-CS-POS-SC03","kind":"suite-only-positive-case","model":{"authority":"suite-only-observation-preservation-model-v0.1","controls":{"branch_condition":"public","debug_observation":"public_independent","failure_path_selector":"public","loop_bound":"public","memory_address":"public"},"implementation_subject":{"id":"sc03-public-control-implementation","operation":"bounded_table_scan_with_public_index_and_public_status"},"observation_channels":["branch_condition","memory_address","loop_bound","failure_path_selector","debug_observation"],"parameter":{"id":"sc03-sensitivity-parameter","labels":["public","secret"],"status":"suite_only"},"policy_hook":{"identity":"unselected_parameterized_leakage_policy","status":"unselected"},"preservation_requirement":"all_required_channels_visible_at_policy_boundary"},"relationship_scope":["SR-02","SR-10"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"c51ab70f1ce25442deb91eb29407772535c0ecdb43bc7de13021278f5a6cee9d"},{"case":"SC-04","declared_expectation":{"allowed_domain_states":["succeeded"],"forbidden_domain_states":["exhausted","timeout"],"observation_level":"domain"},"id":"D004-CS-POS-SC04","subject":{"case":"SC-04","id":"D004-CS-POS-SC04","kind":"suite-only-positive-case","model":{"abstract_intrinsic":{"feature":"simd_u32x4_add","id":"vector_add_u32x4","operation":"lane_wise_add_mod_2^32"},"authority":"suite-only-distinct-pure-machine-vector-model-v0.1","declared_fallback":{"authorization":"declared","id":"scalar_lane_wise_add","path":"separate_checked_path"},"lane_order":"lane_0_to_lane_3","lowering_obligation":{"abstract_subject":"vector_add_u32x4","machine_subject":"target_vector_add_u32x4","status":"open"},"machine_subject":{"id":"target_vector_add_u32x4","required_feature":"simd_u32x4_add","target_model_identity":"suite-only-parameterized-target-v0.1"},"pure_subject":{"id":"sc04-pure-lane-add","left":["0x00000000","0x00000001","0xffffffff","0x80000000"],"operation":"lane_wise_add_mod_2^32","result":["0x00000001","0x00000003","0x00000000","0x00000000"],"right":["0x00000001","0x00000002","0x00000001","0x80000000"],"type":"Word[32][4]"},"vector_width":"4xWord[32]","word_order":"unsigned_modulo_2^32"},"relationship_scope":["SR-01","SR-03","SR-11"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"ff4b439bc5716b4aee344cdc40196851e3e76c5d70577135d8d40cba7c90498d"},{"case":"SC-05","declared_expectation":{"allowed_domain_states":["succeeded"],"forbidden_domain_states":["exhausted","timeout"],"observation_level":"domain"},"id":"D004-CS-POS-SC05","subject":{"case":"SC-05","id":"D004-CS-POS-SC05","kind":"suite-only-positive-case","model":{"adversary_interface":{"id":"sc05-adversary","input":"Word[8]","output":"Bit"},"authority":"suite-only-finite-game-reduction-model-v0.1","games":[{"id":"sc05-game-left","oracle":"sc05-oracle-left","sampling":"explicit_from_sc05-bit-space"},{"id":"sc05-game-right","oracle":"sc05-oracle-right","sampling":"explicit_from_sc05-bit-space"}],"oracle_interfaces":[{"effects":["explicit_query"],"id":"sc05-oracle-left"},{"effects":["explicit_query"],"id":"sc05-oracle-right"}],"reduction_relation":{"bound":"Adv(sc05-game-left,A) <= Adv(sc05-game-right,B) + epsilon","direction":"sc05-game-left_to_sc05-game-right","endpoints":["sc05-game-left","sc05-game-right"],"id":"sc05-symbolic-reduction","status":"open"},"sample_space":{"authority":"game_semantics","elements":[0,1],"finite":true,"id":"sc05-bit-space","sampling":"explicit"},"shared_pure_subject":{"embedding":"explicit_into_game_core","id":"sc05-shared-pure-xor","operation":"Word[8] xor Word[8]","sampling":false}},"relationship_scope":["SR-04","SR-08","SR-12"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"c9e527a57524a1a1dcf9cd8b88340b3083cdf1c3d0eac134d4d78461324dc45a"}],"schema_version":"d004-case-subject-catalog-v0.1","source_bindings":{"named_mutation_manifest":{"canonical_sha256":"970999d998cdc202a6caa4e2f798017416c88211a5b6b8508132a07cc9080c0c","path":"research/decisions/D-004/d004-v0.2-named-mutations.json","raw_sha256":"1d46d6d66c0704fcaa462c625dcac2e72150497bb075322c5e076ea42898be54"},"suite":{"path":"docs/SEMANTIC_STRATA_DECISION_SUITE.md","raw_sha256":"f44c556202d0e235fd42c03181134ab3047d3e9b6f19b3015dae15a86d00dc0b"}},"status":"draft_unreviewed_input_only","subject_count":31,"suite_version":"d004-v0.4-draft"} +{"canonicalization":"RFC8785_ASCII_INTEGER_SUBSET","evidence_status":"none","execution_boundary":{"candidate_adapter":"not_invoked","candidate_process":"not_invoked","candidate_tool":"not_invoked","network":"not_used","preflight_output_persistence":"none"},"mutation_subject_count":26,"mutation_subjects":[{"case":"SC-01","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC01-M01","manifest_record_sha256":"88fd7b3fdc01d9a969e620a0e3d760fab182df740a84747c85239265ec77c696","mutation_id":"SC-01-M01","subject":{"case":"SC-01","id":"D004-CS-MUT-SC01-M01","kind":"suite-only-named-mutation","model":{"baseline_value":"explicit_only","dependent_result":{"id":"dependent_result","required_target":"integer_to_word_conversion_mode","required_value":"explicit_only"},"kind":"suite-only-single-invariant-mutation","mutated_value":"implicit_allowed","operator":"replace","target":"integer_to_word_conversion_mode"},"mutation_id":"SC-01-M01","positive_subject_sha256":"6b1287b1c6e657e47bdb0e103e9d0810e11049c0b15dfffaf81f969ae7ad71e8","relationship_scope":["SR-01"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"74cd3643490bd01af1adcb3124d40b5ab2a5f419f03e0e09ab69896618f98f88"},{"case":"SC-01","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC01-M02","manifest_record_sha256":"e9bf765c3312a3f05cbc79f7a47767233318db01612a5d2b932a16bd0d0a0ac2","mutation_id":"SC-01-M02","subject":{"case":"SC-01","id":"D004-CS-MUT-SC01-M02","kind":"suite-only-named-mutation","model":{"baseline_value":"explicit_only","dependent_result":{"id":"dependent_result","required_target":"byte_order_conversion_mode","required_value":"explicit_only"},"kind":"suite-only-single-invariant-mutation","mutated_value":"implicit_allowed","operator":"replace","target":"byte_order_conversion_mode"},"mutation_id":"SC-01-M02","positive_subject_sha256":"6b1287b1c6e657e47bdb0e103e9d0810e11049c0b15dfffaf81f969ae7ad71e8","relationship_scope":["SR-01"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"0bf0f9e1db79097f48bd8d356b29c338cdb323ba8346d757b02d737667363d46"},{"case":"SC-01","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC01-M03","manifest_record_sha256":"6d29ab27bb7c410786d1e5aacd39a2e3bb38439155466ac7ccf02cf58a88aee3","mutation_id":"SC-01-M03","subject":{"case":"SC-01","id":"D004-CS-MUT-SC01-M03","kind":"suite-only-named-mutation","model":{"baseline_value":"declared_width","dependent_result":{"id":"dependent_result","required_target":"word_width","required_value":"declared_width"},"kind":"suite-only-single-invariant-mutation","mutated_value":"mismatched_width","operator":"replace","target":"word_width"},"mutation_id":"SC-01-M03","positive_subject_sha256":"6b1287b1c6e657e47bdb0e103e9d0810e11049c0b15dfffaf81f969ae7ad71e8","relationship_scope":["SR-01"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"3cc3b34d003ae475dab0c49992d50919abb239416bf52be1b5c21e3400995796"},{"case":"SC-01","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC01-M04","manifest_record_sha256":"e64bd83f973f0059a3f46269393b8f8b8fe91691a5cd2a6fe486a06afd352ccc","mutation_id":"SC-01-M04","subject":{"case":"SC-01","id":"D004-CS-MUT-SC01-M04","kind":"suite-only-named-mutation","model":{"baseline_value":"bounded_to_word_width","dependent_result":{"id":"dependent_result","required_target":"shift_bound","required_value":"bounded_to_word_width"},"kind":"suite-only-single-invariant-mutation","mutated_value":"unbounded","operator":"replace","target":"shift_bound"},"mutation_id":"SC-01-M04","positive_subject_sha256":"6b1287b1c6e657e47bdb0e103e9d0810e11049c0b15dfffaf81f969ae7ad71e8","relationship_scope":["SR-01"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"a4e7f14f4df61042b8f9287ce24a6fd096745c99a1b704be02251ef67f771443"},{"case":"SC-02","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC02-M01","manifest_record_sha256":"d6fadd57c8152a2f6deff4482bbf152ea417878643df3fac55ae0a5b53c74b69","mutation_id":"SC-02-M01","subject":{"case":"SC-02","id":"D004-CS-MUT-SC02-M01","kind":"suite-only-named-mutation","model":{"baseline_value":"exclusive_mutable_access","dependent_result":{"id":"dependent_result","required_target":"mutable_aliasing","required_value":"exclusive_mutable_access"},"kind":"suite-only-single-invariant-mutation","mutated_value":"illegal_alias","operator":"replace","target":"mutable_aliasing"},"mutation_id":"SC-02-M01","positive_subject_sha256":"e3a098f166118f93d9e9da76548c8a8db4e2bf53314f9aacb73981a66a4e1b6d","relationship_scope":["SR-01","SR-02","SR-09"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"2fdf440175860334e0ea0f429b5e0026b3c2405ec9b32322891e3728c25815ad"},{"case":"SC-02","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC02-M02","manifest_record_sha256":"2c09ad66c244fd56170e85ca091dc884f49d57d05198815301f9d4154f3305bd","mutation_id":"SC-02-M02","subject":{"case":"SC-02","id":"D004-CS-MUT-SC02-M02","kind":"suite-only-named-mutation","model":{"baseline_value":"within_declared_range","dependent_result":{"id":"dependent_result","required_target":"memory_access_range","required_value":"within_declared_range"},"kind":"suite-only-single-invariant-mutation","mutated_value":"outside_declared_range","operator":"replace","target":"memory_access_range"},"mutation_id":"SC-02-M02","positive_subject_sha256":"e3a098f166118f93d9e9da76548c8a8db4e2bf53314f9aacb73981a66a4e1b6d","relationship_scope":["SR-01","SR-02","SR-09"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"a0f322bf8cf89cf96d62cb35db9ecfaf536f31e7723b29f7614ce8685876b8cd"},{"case":"SC-02","declared_expectation":{"allowed_domain_states":["rejected","unknown"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC02-M03","manifest_record_sha256":"e45184ee546460c67a7f9a7fd7170488d02b5fbe2316208e44c4bff9cd95314e","mutation_id":"SC-02-M03","subject":{"case":"SC-02","id":"D004-CS-MUT-SC02-M03","kind":"suite-only-named-mutation","model":{"baseline_value":"required_present","dependent_result":{"id":"dependent_result","required_target":"loop_invariant","required_value":"required_present"},"kind":"suite-only-single-invariant-mutation","mutated_value":"absent","operator":"remove","target":"loop_invariant"},"mutation_id":"SC-02-M03","positive_subject_sha256":"e3a098f166118f93d9e9da76548c8a8db4e2bf53314f9aacb73981a66a4e1b6d","relationship_scope":["SR-01","SR-02","SR-09"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"2ed245c9c6c5c0511ed5a534120f9e5ad22e5d8489525103ddc960c674ed5ab4"},{"case":"SC-02","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC02-M04","manifest_record_sha256":"62955d52352dc67145814521285a11aa83f6865ff84653c2e8bc3ed2919c2044","mutation_id":"SC-02-M04","subject":{"case":"SC-02","id":"D004-CS-MUT-SC02-M04","kind":"suite-only-named-mutation","model":{"baseline_value":"initialized","dependent_result":{"id":"dependent_result","required_target":"read_initialization","required_value":"initialized"},"kind":"suite-only-single-invariant-mutation","mutated_value":"uninitialized","operator":"replace","target":"read_initialization"},"mutation_id":"SC-02-M04","positive_subject_sha256":"e3a098f166118f93d9e9da76548c8a8db4e2bf53314f9aacb73981a66a4e1b6d","relationship_scope":["SR-01","SR-02","SR-09"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"3d7cb942c680189277a7845d4528146dba3a8afe3a32154a39c4f8fb113fe4bc"},{"case":"SC-02","declared_expectation":{"allowed_domain_states":["rejected","unknown"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC02-M05","manifest_record_sha256":"2da7d35bab6cf2f97b011bd85a16dffb0eb289eb97e059dd576b7de27aaee233","mutation_id":"SC-02-M05","subject":{"case":"SC-02","id":"D004-CS-MUT-SC02-M05","kind":"suite-only-named-mutation","model":{"baseline_value":"original","dependent_result":{"id":"dependent_result","required_target":"refinement_subject_identity","required_value":"original"},"kind":"suite-only-single-invariant-mutation","mutated_value":"substitute","operator":"substitute","target":"refinement_subject_identity"},"mutation_id":"SC-02-M05","positive_subject_sha256":"e3a098f166118f93d9e9da76548c8a8db4e2bf53314f9aacb73981a66a4e1b6d","relationship_scope":["SR-01","SR-02","SR-09"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"2d8063b9fdb55b1eb7c79c09483384e9c1f1979d1afa5d32e2a57457623a7ed6"},{"case":"SC-03","declared_expectation":{"allowed_domain_states":["rejected","unknown","unsupported"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC03-M01","manifest_record_sha256":"c4f487eacae1240f50db735eb5938627a07e8ad5c02e7a82811c19b3723f574d","mutation_id":"SC-03-M01","subject":{"case":"SC-03","id":"D004-CS-MUT-SC03-M01","kind":"suite-only-named-mutation","model":{"baseline_value":"public","dependent_result":{"id":"dependent_result","required_target":"branch_condition","required_value":"public"},"kind":"suite-only-single-invariant-mutation","mutated_value":"secret","operator":"replace","target":"branch_condition"},"mutation_id":"SC-03-M01","positive_subject_sha256":"c51ab70f1ce25442deb91eb29407772535c0ecdb43bc7de13021278f5a6cee9d","relationship_scope":["SR-02","SR-10"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"fba7d62f3e0409008d4cf08d36ecdb1e1e572b246ee12fd7dbb296de2bd1fd35"},{"case":"SC-03","declared_expectation":{"allowed_domain_states":["rejected","unknown","unsupported"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC03-M02","manifest_record_sha256":"00a9a4595a60569bd18ba6f648748044415dd000af582f4fdc2d2cea41c570fd","mutation_id":"SC-03-M02","subject":{"case":"SC-03","id":"D004-CS-MUT-SC03-M02","kind":"suite-only-named-mutation","model":{"baseline_value":"public","dependent_result":{"id":"dependent_result","required_target":"memory_address","required_value":"public"},"kind":"suite-only-single-invariant-mutation","mutated_value":"secret","operator":"replace","target":"memory_address"},"mutation_id":"SC-03-M02","positive_subject_sha256":"c51ab70f1ce25442deb91eb29407772535c0ecdb43bc7de13021278f5a6cee9d","relationship_scope":["SR-02","SR-10"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"95ca9c76e2142505f8982a0f60a6d3a9f61df076e1f1e1ecc1554b08996a5603"},{"case":"SC-03","declared_expectation":{"allowed_domain_states":["rejected","unknown","unsupported"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC03-M03","manifest_record_sha256":"b3fad8a327cc6a0a49a41c28262101299a97fe3ce243a27d7345569ba061ab99","mutation_id":"SC-03-M03","subject":{"case":"SC-03","id":"D004-CS-MUT-SC03-M03","kind":"suite-only-named-mutation","model":{"baseline_value":"public","dependent_result":{"id":"dependent_result","required_target":"loop_bound","required_value":"public"},"kind":"suite-only-single-invariant-mutation","mutated_value":"secret","operator":"replace","target":"loop_bound"},"mutation_id":"SC-03-M03","positive_subject_sha256":"c51ab70f1ce25442deb91eb29407772535c0ecdb43bc7de13021278f5a6cee9d","relationship_scope":["SR-02","SR-10"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"32a4781c9867b9b20fc457dffc29c9c45bc8e7c9f0ded3e68b899e097dc9be62"},{"case":"SC-03","declared_expectation":{"allowed_domain_states":["rejected","unknown","unsupported"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC03-M04","manifest_record_sha256":"3e9a6087d0b0aa21b567210bcfa8df57486294a20d363f00e377d34dfdfa6789","mutation_id":"SC-03-M04","subject":{"case":"SC-03","id":"D004-CS-MUT-SC03-M04","kind":"suite-only-named-mutation","model":{"baseline_value":"public","dependent_result":{"id":"dependent_result","required_target":"failure_path_selector","required_value":"public"},"kind":"suite-only-single-invariant-mutation","mutated_value":"secret","operator":"replace","target":"failure_path_selector"},"mutation_id":"SC-03-M04","positive_subject_sha256":"c51ab70f1ce25442deb91eb29407772535c0ecdb43bc7de13021278f5a6cee9d","relationship_scope":["SR-02","SR-10"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"6e1ac4715e683bfcb6c496825c01fd5c2b8e52f3e69baad0e41ec55db6df2b2a"},{"case":"SC-03","declared_expectation":{"allowed_domain_states":["rejected","unknown","unsupported"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC03-M05","manifest_record_sha256":"a982b8d231d11c24fd6ffce98a881509035c7ac27b0c17f3cab43ddb8a1cd5b5","mutation_id":"SC-03-M05","subject":{"case":"SC-03","id":"D004-CS-MUT-SC03-M05","kind":"suite-only-named-mutation","model":{"baseline_value":"public_independent","dependent_result":{"id":"dependent_result","required_target":"debug_observation","required_value":"public_independent"},"kind":"suite-only-single-invariant-mutation","mutated_value":"secret_dependent","operator":"replace","target":"debug_observation"},"mutation_id":"SC-03-M05","positive_subject_sha256":"c51ab70f1ce25442deb91eb29407772535c0ecdb43bc7de13021278f5a6cee9d","relationship_scope":["SR-02","SR-10"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"829126cd5e45361f5da301fe49260b12cfeeb59790ae593bb77ad491063fd167"},{"case":"SC-04","declared_expectation":{"allowed_domain_states":["rejected","unsupported"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC04-M01","manifest_record_sha256":"284469352da2a705f3cce5ebda45f51fb4e14d4d3eb0a96d2b151ed66e71e820","mutation_id":"SC-04-M01","subject":{"case":"SC-04","id":"D004-CS-MUT-SC04-M01","kind":"suite-only-named-mutation","model":{"baseline_value":"declared_present","dependent_result":{"id":"dependent_result","required_target":"required_target_feature","required_value":"declared_present"},"kind":"suite-only-single-invariant-mutation","mutated_value":"absent","operator":"remove","target":"required_target_feature"},"mutation_id":"SC-04-M01","positive_subject_sha256":"ff4b439bc5716b4aee344cdc40196851e3e76c5d70577135d8d40cba7c90498d","relationship_scope":["SR-01","SR-03","SR-11"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"7a3e5309244918e417a78a56bf79f1c61b1e2a4b05a095c523032fe4687d3663"},{"case":"SC-04","declared_expectation":{"allowed_domain_states":["rejected","unsupported"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC04-M02","manifest_record_sha256":"2023e91bfeb6b1d21ce47858d4708b807e3e05eff89e63b33a830b695dc050a9","mutation_id":"SC-04-M02","subject":{"case":"SC-04","id":"D004-CS-MUT-SC04-M02","kind":"suite-only-named-mutation","model":{"baseline_value":"declared_supported_intrinsic","dependent_result":{"id":"dependent_result","required_target":"intrinsic_identity","required_value":"declared_supported_intrinsic"},"kind":"suite-only-single-invariant-mutation","mutated_value":"unsupported_intrinsic","operator":"substitute","target":"intrinsic_identity"},"mutation_id":"SC-04-M02","positive_subject_sha256":"ff4b439bc5716b4aee344cdc40196851e3e76c5d70577135d8d40cba7c90498d","relationship_scope":["SR-01","SR-03","SR-11"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"7ea6c89cf60151ea094dd187d65b34af9db76a66fe9fda87fd0609715dca4ddc"},{"case":"SC-04","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC04-M03","manifest_record_sha256":"67956069e558bbedda026fd52f9974e3e0a128fd1ffe79aea15a6f46ade15600","mutation_id":"SC-04-M03","subject":{"case":"SC-04","id":"D004-CS-MUT-SC04-M03","kind":"suite-only-named-mutation","model":{"baseline_value":"declared_order","dependent_result":{"id":"dependent_result","required_target":"lane_order","required_value":"declared_order"},"kind":"suite-only-single-invariant-mutation","mutated_value":"reversed_order","operator":"reverse","target":"lane_order"},"mutation_id":"SC-04-M03","positive_subject_sha256":"ff4b439bc5716b4aee344cdc40196851e3e76c5d70577135d8d40cba7c90498d","relationship_scope":["SR-01","SR-03","SR-11"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"aaf9280dce40bd1cb132a134509f173510479756a1f066ea8e6081819d5fbdfb"},{"case":"SC-04","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC04-M04","manifest_record_sha256":"b17b8945a21710cc3466caf18743eba4ca742c74ac63609bd96b833d2bd4424f","mutation_id":"SC-04-M04","subject":{"case":"SC-04","id":"D004-CS-MUT-SC04-M04","kind":"suite-only-named-mutation","model":{"baseline_value":"declared_width","dependent_result":{"id":"dependent_result","required_target":"vector_width","required_value":"declared_width"},"kind":"suite-only-single-invariant-mutation","mutated_value":"mismatched_width","operator":"substitute","target":"vector_width"},"mutation_id":"SC-04-M04","positive_subject_sha256":"ff4b439bc5716b4aee344cdc40196851e3e76c5d70577135d8d40cba7c90498d","relationship_scope":["SR-01","SR-03","SR-11"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"2649f4c8b14a6947b44bfd78a933251ea758684d813a29c6815e8b3a49d41d85"},{"case":"SC-04","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC04-M05","manifest_record_sha256":"b2571a751015787d9f4bea8b0c66561a557efd81f0925a670a7e952e7470a282","mutation_id":"SC-04-M05","subject":{"case":"SC-04","id":"D004-CS-MUT-SC04-M05","kind":"suite-only-named-mutation","model":{"baseline_value":"original","dependent_result":{"id":"dependent_result","required_target":"target_model_identity","required_value":"original"},"kind":"suite-only-single-invariant-mutation","mutated_value":"substitute","operator":"substitute","target":"target_model_identity"},"mutation_id":"SC-04-M05","positive_subject_sha256":"ff4b439bc5716b4aee344cdc40196851e3e76c5d70577135d8d40cba7c90498d","relationship_scope":["SR-01","SR-03","SR-11"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"515d794dad72e82612e0b9889eea64f8a4ebab3bcce0ea03593462e4f7ba3d6e"},{"case":"SC-04","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC04-M06","manifest_record_sha256":"4d32ea688c12492a31a08dfb39844bbd198f6663804f444931d8f6b4513e9808","mutation_id":"SC-04-M06","subject":{"case":"SC-04","id":"D004-CS-MUT-SC04-M06","kind":"suite-only-named-mutation","model":{"baseline_value":"declared","dependent_result":{"id":"dependent_result","required_target":"fallback_authorization","required_value":"declared"},"kind":"suite-only-single-invariant-mutation","mutated_value":"undeclared_selected","operator":"select","target":"fallback_authorization"},"mutation_id":"SC-04-M06","positive_subject_sha256":"ff4b439bc5716b4aee344cdc40196851e3e76c5d70577135d8d40cba7c90498d","relationship_scope":["SR-01","SR-03","SR-11"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"cd994399779b66a78b00d43e7fe55689af19f30af967d517e2141d5bc9bcc6cd"},{"case":"SC-05","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC05-M01","manifest_record_sha256":"bae57e0ea35f6331f25ffb9992153bebc5cbfabb2fc19984b7c534f42e8e9c7e","mutation_id":"SC-05-M01","subject":{"case":"SC-05","id":"D004-CS-MUT-SC05-M01","kind":"suite-only-named-mutation","model":{"baseline_value":"game_semantics","dependent_result":{"id":"dependent_result","required_target":"sampling_authority","required_value":"game_semantics"},"kind":"suite-only-single-invariant-mutation","mutated_value":"specification_semantics","operator":"move","target":"sampling_authority"},"mutation_id":"SC-05-M01","positive_subject_sha256":"c9e527a57524a1a1dcf9cd8b88340b3083cdf1c3d0eac134d4d78461324dc45a","relationship_scope":["SR-04","SR-08","SR-12"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"d74ec43f15f0db0279595e83ffccb2482832d644689b8b43f11e8d524fbd7237"},{"case":"SC-05","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC05-M02","manifest_record_sha256":"c1f387a2f6f732c41a815bd71933f48542769e5e38a79c329538a28b02d93ce3","mutation_id":"SC-05-M02","subject":{"case":"SC-05","id":"D004-CS-MUT-SC05-M02","kind":"suite-only-named-mutation","model":{"baseline_value":"explicit_sampling","dependent_result":{"id":"dependent_result","required_target":"randomness_source","required_value":"explicit_sampling"},"kind":"suite-only-single-invariant-mutation","mutated_value":"ambient_randomness","operator":"replace","target":"randomness_source"},"mutation_id":"SC-05-M02","positive_subject_sha256":"c9e527a57524a1a1dcf9cd8b88340b3083cdf1c3d0eac134d4d78461324dc45a","relationship_scope":["SR-04","SR-08","SR-12"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"2eaf3617d95c87c8fb1906bb16994e6b6c22b93abe07182092f5fc7f7e8ef599"},{"case":"SC-05","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC05-M03","manifest_record_sha256":"39827115b68cbcddf50c18248d13fab654e995240c92b315730919195b47ff6f","mutation_id":"SC-05-M03","subject":{"case":"SC-05","id":"D004-CS-MUT-SC05-M03","kind":"suite-only-named-mutation","model":{"baseline_value":"explicit","dependent_result":{"id":"dependent_result","required_target":"oracle_effect_visibility","required_value":"explicit"},"kind":"suite-only-single-invariant-mutation","mutated_value":"hidden","operator":"hide","target":"oracle_effect_visibility"},"mutation_id":"SC-05-M03","positive_subject_sha256":"c9e527a57524a1a1dcf9cd8b88340b3083cdf1c3d0eac134d4d78461324dc45a","relationship_scope":["SR-04","SR-08","SR-12"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"307aeef7f5a127aaa92afd14b2ae95496764498ed5b72980c1a0bc59fa093466"},{"case":"SC-05","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC05-M04","manifest_record_sha256":"3d724c95996e82711d9fb8d78a0384712f762238b61beecc5ddcadf613e5547a","mutation_id":"SC-05-M04","subject":{"case":"SC-05","id":"D004-CS-MUT-SC05-M04","kind":"suite-only-named-mutation","model":{"baseline_value":"finite","dependent_result":{"id":"dependent_result","required_target":"sample_space_bound","required_value":"finite"},"kind":"suite-only-single-invariant-mutation","mutated_value":"unbounded","operator":"replace","target":"sample_space_bound"},"mutation_id":"SC-05-M04","positive_subject_sha256":"c9e527a57524a1a1dcf9cd8b88340b3083cdf1c3d0eac134d4d78461324dc45a","relationship_scope":["SR-04","SR-08","SR-12"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"dd00d347dc6ae0d47d1d62033aedd5d2216719ee3c2962251ed85be6c5040a5b"},{"case":"SC-05","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC05-M05","manifest_record_sha256":"e7a2c60baad1851f605865d0e4c74666936de920748340ae5f2df0832beabcb9","mutation_id":"SC-05-M05","subject":{"case":"SC-05","id":"D004-CS-MUT-SC05-M05","kind":"suite-only-named-mutation","model":{"baseline_value":"original","dependent_result":{"id":"dependent_result","required_target":"reduction_endpoint_identity","required_value":"original"},"kind":"suite-only-single-invariant-mutation","mutated_value":"substitute","operator":"substitute","target":"reduction_endpoint_identity"},"mutation_id":"SC-05-M05","positive_subject_sha256":"c9e527a57524a1a1dcf9cd8b88340b3083cdf1c3d0eac134d4d78461324dc45a","relationship_scope":["SR-04","SR-08","SR-12"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"d534bf78ec770d0d7ce3bc4f69997c75b5ed26f13be3e762d95647a745374677"},{"case":"SC-05","declared_expectation":{"allowed_domain_states":["rejected"],"forbidden_domain_states":["exhausted","succeeded","timeout"],"observation_level":"domain","required_invalidation":"dependent_result"},"id":"D004-CS-MUT-SC05-M06","manifest_record_sha256":"a2ef9b73d1687e0a69d73a6a71d7c121150252039c448b450d80a2022dbd1cea","mutation_id":"SC-05-M06","subject":{"case":"SC-05","id":"D004-CS-MUT-SC05-M06","kind":"suite-only-named-mutation","model":{"baseline_value":"original","dependent_result":{"id":"dependent_result","required_target":"symbolic_advantage_bound","required_value":"original"},"kind":"suite-only-single-invariant-mutation","mutated_value":"altered","operator":"alter","target":"symbolic_advantage_bound"},"mutation_id":"SC-05-M06","positive_subject_sha256":"c9e527a57524a1a1dcf9cd8b88340b3083cdf1c3d0eac134d4d78461324dc45a","relationship_scope":["SR-04","SR-08","SR-12"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"1ee9baa1bee7aa3956e84de1d5919cf4ed09db3b10f2ed2fd32deff7aff0f5e6"}],"nonclaims":["candidate mappings are separate unreviewed input-only hypotheses; no candidate adapter exists","no candidate process or tool invoked","no observed state, match, result, or verdict produced","no candidate capability or capability absence established","case-subject integrity preflight is not D-004 execution evidence","no D-004 evidence epoch frozen","no semantic-strata candidate selected","no D-004 disposition inferred","no S3b implementation, roadmap gate closure, or readiness movement authorized"],"owner_protocol_review":"none","positive_subject_count":5,"positive_subjects":[{"case":"SC-01","declared_expectation":{"allowed_domain_states":["succeeded"],"forbidden_domain_states":["exhausted","timeout"],"observation_level":"domain"},"id":"D004-CS-POS-SC01","subject":{"case":"SC-01","id":"D004-CS-POS-SC01","kind":"suite-only-positive-case","model":{"authority":"suite-only-pure-word-model-v0.1","boundary_vectors":[{"inputs":{"a":"0x00000000","b":"0x00000000","c":"0x00000000"},"normalized_word32_result":"0x00000000"},{"inputs":{"a":"0x00000001","b":"0x00000000","c":"0x00000000"},"normalized_word32_result":"0x00000020"},{"inputs":{"a":"0xffffffff","b":"0x00000000","c":"0xffffffff"},"normalized_word32_result":"0xffffffff"}],"byte_order":"big_endian","conversions":[{"from":"Int","mode":"explicit_only","operation":"int_to_word_checked","to":"Word[32]"},{"from":"Word[32]","mode":"explicit_only","operation":"word_to_bytes_big_endian","to":"Word[8][4]"}],"domains":[{"id":"Int","interpretation":"mathematical_integer"},{"id":"Word[8]","interpretation":"unsigned_modulo_2^8"},{"id":"Word[32]","interpretation":"unsigned_modulo_2^32"}],"round_like_ast":{"inputs":[{"id":"a","type":"Word[32]"},{"id":"b","type":"Word[32]"},{"id":"c","type":"Word[32]"}],"operation":"add_mod_2^32(rotate_left_32(xor_32(a,b),5),choice_32(a,b,c))","output_type":"Word[32]","total":true},"shift_bound":"bounded_to_word_width","signedness":"unsigned"},"relationship_scope":["SR-01"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"6b1287b1c6e657e47bdb0e103e9d0810e11049c0b15dfffaf81f969ae7ad71e8"},{"case":"SC-02","declared_expectation":{"allowed_domain_states":["succeeded"],"forbidden_domain_states":["exhausted","timeout"],"observation_level":"domain"},"id":"D004-CS-POS-SC02","subject":{"case":"SC-02","id":"D004-CS-POS-SC02","kind":"suite-only-positive-case","model":{"authority":"suite-only-distinct-pure-implementation-buffer-model-v0.1","implementation_subject":{"effects":["read_owned_region","write_owned_region"],"failure":"typed_range_failure","id":"sc02-impl-xor-buffer","loop":{"invariant":"0 <= index && index <= region.length","range":"0 <= index < 4"},"operation":"buffer[index] = buffer[index] xor 0x5a","region":{"aliasing":"exclusive_mutable_access","bounds":"0 <= index < 4","id":"owned-region-0","initialization":"all_bytes_initialized","length":4,"ownership":"owned_mutable"}},"input_bytes":[0,1,254,255],"pure_subject":{"effects":[],"id":"sc02-spec-xor-buffer","operation":"map(byte => byte xor 0x5a)","output_bytes":[90,91,164,165],"total":true},"refinement_obligation":{"implementation_subject":"sc02-impl-xor-buffer","required_state":"open_or_discharged","specification_subject":"sc02-spec-xor-buffer","status":"open"}},"relationship_scope":["SR-01","SR-02","SR-09"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"e3a098f166118f93d9e9da76548c8a8db4e2bf53314f9aacb73981a66a4e1b6d"},{"case":"SC-03","declared_expectation":{"allowed_domain_states":["succeeded"],"forbidden_domain_states":["exhausted","timeout"],"observation_level":"domain"},"id":"D004-CS-POS-SC03","subject":{"case":"SC-03","id":"D004-CS-POS-SC03","kind":"suite-only-positive-case","model":{"authority":"suite-only-observation-preservation-model-v0.1","controls":{"branch_condition":"public","debug_observation":"public_independent","failure_path_selector":"public","loop_bound":"public","memory_address":"public"},"implementation_subject":{"id":"sc03-public-control-implementation","operation":"bounded_table_scan_with_public_index_and_public_status"},"observation_channels":["branch_condition","memory_address","loop_bound","failure_path_selector","debug_observation"],"parameter":{"id":"sc03-sensitivity-parameter","labels":["public","secret"],"status":"suite_only"},"policy_hook":{"identity":"unselected_parameterized_leakage_policy","status":"unselected"},"preservation_requirement":"all_required_channels_visible_at_policy_boundary"},"relationship_scope":["SR-02","SR-10"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"c51ab70f1ce25442deb91eb29407772535c0ecdb43bc7de13021278f5a6cee9d"},{"case":"SC-04","declared_expectation":{"allowed_domain_states":["succeeded"],"forbidden_domain_states":["exhausted","timeout"],"observation_level":"domain"},"id":"D004-CS-POS-SC04","subject":{"case":"SC-04","id":"D004-CS-POS-SC04","kind":"suite-only-positive-case","model":{"abstract_intrinsic":{"feature":"simd_u32x4_add","id":"vector_add_u32x4","operation":"lane_wise_add_mod_2^32"},"authority":"suite-only-distinct-pure-machine-vector-model-v0.1","declared_fallback":{"authorization":"declared","id":"scalar_lane_wise_add","path":"separate_checked_path"},"lane_order":"lane_0_to_lane_3","lowering_obligation":{"abstract_subject":"vector_add_u32x4","machine_subject":"target_vector_add_u32x4","status":"open"},"machine_subject":{"id":"target_vector_add_u32x4","required_feature":"simd_u32x4_add","target_model_identity":"suite-only-parameterized-target-v0.1"},"pure_subject":{"id":"sc04-pure-lane-add","left":["0x00000000","0x00000001","0xffffffff","0x80000000"],"operation":"lane_wise_add_mod_2^32","result":["0x00000001","0x00000003","0x00000000","0x00000000"],"right":["0x00000001","0x00000002","0x00000001","0x80000000"],"type":"Word[32][4]"},"vector_width":"4xWord[32]","word_order":"unsigned_modulo_2^32"},"relationship_scope":["SR-01","SR-03","SR-11"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"ff4b439bc5716b4aee344cdc40196851e3e76c5d70577135d8d40cba7c90498d"},{"case":"SC-05","declared_expectation":{"allowed_domain_states":["succeeded"],"forbidden_domain_states":["exhausted","timeout"],"observation_level":"domain"},"id":"D004-CS-POS-SC05","subject":{"case":"SC-05","id":"D004-CS-POS-SC05","kind":"suite-only-positive-case","model":{"adversary_interface":{"id":"sc05-adversary","input":"Word[8]","output":"Bit"},"authority":"suite-only-finite-game-reduction-model-v0.1","games":[{"id":"sc05-game-left","oracle":"sc05-oracle-left","sampling":"explicit_from_sc05-bit-space"},{"id":"sc05-game-right","oracle":"sc05-oracle-right","sampling":"explicit_from_sc05-bit-space"}],"oracle_interfaces":[{"effects":["explicit_query"],"id":"sc05-oracle-left"},{"effects":["explicit_query"],"id":"sc05-oracle-right"}],"reduction_relation":{"bound":"Adv(sc05-game-left,A) <= Adv(sc05-game-right,B) + epsilon","direction":"sc05-game-left_to_sc05-game-right","endpoints":["sc05-game-left","sc05-game-right"],"id":"sc05-symbolic-reduction","status":"open"},"sample_space":{"authority":"game_semantics","elements":[0,1],"finite":true,"id":"sc05-bit-space","sampling":"explicit"},"shared_pure_subject":{"embedding":"explicit_into_game_core","id":"sc05-shared-pure-xor","operation":"Word[8] xor Word[8]","sampling":false}},"relationship_scope":["SR-04","SR-08","SR-12"],"schema_version":"d004-case-subject-v0.1"},"subject_sha256":"c9e527a57524a1a1dcf9cd8b88340b3083cdf1c3d0eac134d4d78461324dc45a"}],"schema_version":"d004-case-subject-catalog-v0.1","source_bindings":{"named_mutation_manifest":{"canonical_sha256":"970999d998cdc202a6caa4e2f798017416c88211a5b6b8508132a07cc9080c0c","path":"research/decisions/D-004/d004-v0.2-named-mutations.json","raw_sha256":"1d46d6d66c0704fcaa462c625dcac2e72150497bb075322c5e076ea42898be54"},"suite":{"path":"docs/SEMANTIC_STRATA_DECISION_SUITE.md","raw_sha256":"64abe8290955f889e28f8bb9ce7653a26ef71a624286aef900d4dbfc3b7eb117"}},"status":"draft_unreviewed_input_only","subject_count":31,"suite_version":"d004-v0.5-draft"} diff --git a/research/decisions/D-004/d004-v0.4-draft-packet.json b/research/decisions/D-004/d004-v0.4-draft-packet.json deleted file mode 100644 index 8c3a666..0000000 --- a/research/decisions/D-004/d004-v0.4-draft-packet.json +++ /dev/null @@ -1 +0,0 @@ -{"budgets":{"candidate_owner_hours":24,"case_output_bytes":268435456,"case_peak_memory_bytes":4294967296,"case_temp_storage_bytes":2147483648,"case_wall_seconds":900,"correction_owner_hours":4,"max_json_depth":32,"max_json_nodes":16384,"max_packet_bytes":262144,"max_string_bytes":16384},"candidates":["ST-REL","ST-UNI","ST-DUAL","ST-MIRROR","ST-HOST"],"case_subject_catalog_sha256":"b3a8bcf4f0f084740e92cbff6fd57273df0a078af9c6b974f68d95ba333c6dc1","case_verdicts":["pass","fail"],"cases":["SC-01","SC-02","SC-03","SC-04","SC-05"],"conclusion":null,"cross_cutting_executable_fixture_catalog_sha256":"ca08308161244e9541803aa8008dd1624a2101f77da8b656cf0c5deff8a60703","cross_cutting_fixture_proposal_manifest_sha256":"457c14e7d41f677b21af254af45e331b24e6c685a7d7aa8eae556ced5bd7be65","d003_disposition":"accepted_exact_revision_oep_closure","domain_observation_states":["succeeded","rejected","unknown","timeout","unsupported","exhausted"],"epoch":null,"epoch_status":"unfrozen","execution":{"complete_candidates":0,"complete_cross_candidate_cases":0,"completed_candidate_cases":0,"evidence_status":"none","required_candidate_cases":25},"fixture_inventory_status":"case_and_cross_cutting_materialized_unreviewed_freeze_blocker","hard_gates":["SS-G01","SS-G02","SS-G03","SS-G04","SS-G05","SS-G06","SS-G07","SS-G08","SS-G09","SS-G10"],"input_bindings":{"accepted_s2_language":{"path":"docs/LANGUAGE_2026.md","sha256":"35981310cbe1e1ae61c889b4005b2610d0077e6a615a5e032b0ca9a5860b328a"},"accepted_s3a_oep":{"path":"docs/governance/oeps/OEP-0003-orange-2026-typed-literals.md","sha256":"4ea34fc2499ba6b90eb930262f84f15a41ff0df0f526a4533a48e54ea4f9b4b8"},"accepted_s3a_semantics":{"path":"docs/SEMANTICS_2026.md","sha256":"63e14d674eb687f46aa600b36d6d13e3732090d658fb05fd805646b1d469dbdf"},"case_subjects":{"path":"research/decisions/D-004/d004-v0.4-case-subjects.json","sha256":"c94100598aaf39954fe683a44f6a4d34837304eb361a1b478ca26884892d8ed6"},"cross_cutting_executable_fixtures":{"path":"research/decisions/D-004/d004-v0.3-cross-cutting-executable-fixtures.json","sha256":"268b4065028f1af9c9ec912ae8884c150094189f5d782963f42ed6ed4cca6ce0"},"cross_cutting_fixture_proposals":{"path":"research/decisions/D-004/d004-v0.2-cross-cutting-fixture-proposals.json","sha256":"171c7b88d54fe2bd7ddb4c220adb63f006e07c35391018b914482ace17cf7e93"},"decision_suite":{"path":"docs/SEMANTIC_STRATA_DECISION_SUITE.md","sha256":"f44c556202d0e235fd42c03181134ab3047d3e9b6f19b3015dae15a86d00dc0b"},"fixture_invalid_duplicate_spec":{"path":"compiler/fixtures/s3a/invalid-duplicate-spec.or","sha256":"f3b870468c5f4a98c9dae6c94de74aacbabbf15e480296f696a87d5aebb209d6"},"fixture_invalid_int_magnitude":{"path":"compiler/fixtures/s3a/invalid-int-magnitude.or","sha256":"11826c807240ac2fc4beddb26f25c3b14dd75008ed756f2afa3ee95668b05542"},"fixture_invalid_negative_word":{"path":"compiler/fixtures/s3a/invalid-negative-word.or","sha256":"4643e1247a017202f25a240ad72c83adbd7d2f436ec4de2dffbac1e292ce161b"},"fixture_invalid_typed_impl":{"path":"compiler/fixtures/s3a/invalid-typed-impl.or","sha256":"4e457e50fbc3b8458c877c9a790e169ff643784b5b78f7a3a0f83a117cc7be07"},"fixture_invalid_unsupported_type":{"path":"compiler/fixtures/s3a/invalid-unsupported-type.or","sha256":"14190eb262c79772b583c458500c777c54ef0c8913fc046a8809b5a146cfb9fc"},"fixture_invalid_word_range":{"path":"compiler/fixtures/s3a/invalid-word-range.or","sha256":"4a7a4fd4bdfecdc21133f5f6ff24e212dde0bf357fe6d6807816930895300ddf"},"fixture_invalid_word_width":{"path":"compiler/fixtures/s3a/invalid-word-width.or","sha256":"d92ac896bd872f1aa4a3c8988d0b654a23c95ec10ec9183a7d2431cd12238be2"},"fixture_valid_empty_mixed":{"path":"compiler/fixtures/s3a/valid-empty-mixed.or","sha256":"c30ab3cda5caa11d826dc38ea257d9c9413d6240c09b236a7f50f1cac9016b96"},"fixture_valid_int_radices":{"path":"compiler/fixtures/s3a/valid-int-radices.or","sha256":"937f8f67b20794c9a887bcca15ea619276f921bc9bf884fdc35e7caab6ac11e4"},"fixture_valid_word8_boundaries":{"path":"compiler/fixtures/s3a/valid-word8-boundaries.or","sha256":"db37bd00375daa1db43498c5f10b831fdaa5d43b3b886ef838ecbb8d0fbea2ee"},"named_mutations_manifest":{"path":"research/decisions/D-004/d004-v0.2-named-mutations.json","sha256":"1d46d6d66c0704fcaa462c625dcac2e72150497bb075322c5e076ea42898be54"},"permanent_s3a_fixture":{"path":"compiler/fixtures/typed-answer.or","sha256":"22c71b6b8e09ff8dbb7393abfb6ce46597eed0b45f9a34660aa948071138ff6e"},"product_form_decision_packet":{"path":"docs/PRODUCT_FORM_DECISION_PACKET.md","sha256":"1ef0be53344667993778d1abd9a83423fc92b358735ed7ad74cb766bb29d33fd"},"s3a_conformance_runner":{"path":"compiler/crates/orangec/tests/s3a_conformance.rs","sha256":"7d25ea303fcb3c1603d60b6cb32d89ae15173cc043b8b695daedb737162b8116"},"user_journeys":{"path":"docs/USER_JOURNEYS.md","sha256":"f26b179db777295b620731402962dc3092128f8f9a27049638f22883e0652bed"}},"mutation_manifest_sha256":"970999d998cdc202a6caa4e2f798017416c88211a5b6b8508132a07cc9080c0c","mutations":["SC-01-M01","SC-01-M02","SC-01-M03","SC-01-M04","SC-02-M01","SC-02-M02","SC-02-M03","SC-02-M04","SC-02-M05","SC-03-M01","SC-03-M02","SC-03-M03","SC-03-M04","SC-03-M05","SC-04-M01","SC-04-M02","SC-04-M03","SC-04-M04","SC-04-M05","SC-04-M06","SC-05-M01","SC-05-M02","SC-05-M03","SC-05-M04","SC-05-M05","SC-05-M06"],"nonclaims":["no candidate adapter executed","no D-004 evidence epoch frozen","no semantic-strata candidate selected","no D-004 disposition inferred from D-003 acceptance","no roadmap gate or readiness movement","no S3b implementation authorized"],"owner_protocol_review":"none","protocol_gaps":["ambiguity fixture sufficiency review unresolved","missing-edge fixture sufficiency review unresolved","identity-substitution fixture sufficiency review unresolved","unsupported fixture sufficiency review unresolved","resource-exhaustion fixture sufficiency review unresolved","replay repetition count unresolved"],"relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"schema_version":"d004-pre-epoch-packet-v0.4","selection":null,"source_roles":["Specification","Implementation","Machine Implementation","Game","Proof"],"status":"draft_unfrozen","suite_version":"d004-v0.4-draft","unresolved_cross_cutting_fixture_classes":["ambiguity","missing-edge","identity-substitution","unsupported","resource-exhaustion"]} diff --git a/research/decisions/D-004/d004-v0.5-candidate-mappings.json b/research/decisions/D-004/d004-v0.5-candidate-mappings.json new file mode 100644 index 0000000..f9c66db --- /dev/null +++ b/research/decisions/D-004/d004-v0.5-candidate-mappings.json @@ -0,0 +1 @@ +{"canonicalization":"RFC8785_ASCII_INTEGER_SUBSET","catalog_subject":{"candidate_count":5,"candidate_graphs":[{"candidate":"ST-REL","graph":{"architecture":"Role-oriented related family with Spec Impl and Game Cores, CT and Machine IRs, Shared Pure, and proof-evidence interface","candidate":"ST-REL","edges":[{"edge_sha256":"4da44f8c92c2893ada90fc5e66664feb6ddc0929bb461014084f294f6e9c9d5f","edge_subject":{"codomain_endpoints":[{"facet":"pure_subject","node":"rel-spec-core"}],"conformance_status":"unresolved","definedness":"well-formed source resolves exactly one checked pure subject","delegation_boundary":null,"direction":"source_to_semantic_domain","domain_endpoint":{"facet":"source","node":"rel-spec-source"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject without semantic identity","id":"rel-spec-elaboration","identity_inputs":"source bytes; language version; elaborator identity","obligations":"preserve pure total meaning; fail without creating identity","observation_requirement":"checked pure subject identity or exact rejection","parameter_slots":["language_version","elaborator_identity"],"prohibited_reverse_inferences":"name equality does not imply semantic equality","relationship":"SR-01","trust_role":"candidate elaborator is proposed trusted path"}},{"edge_sha256":"cc004f123f73cef643ad0246aebc135c47dd8b564d40970eae69a6c365f3acc9","edge_subject":{"codomain_endpoints":[{"facet":"effectful_subject","node":"rel-impl-core"}],"conformance_status":"unresolved","definedness":"contracts effects memory and typed failures are explicit","delegation_boundary":null,"direction":"source_to_semantic_domain","domain_endpoint":{"facet":"source","node":"rel-impl-source"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject without effectful identity","id":"rel-impl-elaboration","identity_inputs":"source bytes; language version; effect model identity","obligations":"preserve contracts effects memory operations and typed failure","observation_requirement":"checked effectful subject identity or exact rejection","parameter_slots":["language_version","effect_model_identity"],"prohibited_reverse_inferences":"shared names do not imply refinement; implementation does not define specification","relationship":"SR-02","trust_role":"candidate implementation elaborator is proposed trusted path"}},{"edge_sha256":"a91566a4a8b37cac31b479a151afd68c732bd980e33ddeabe53061b8d5ebd028","edge_subject":{"codomain_endpoints":[{"facet":"checked_low_level_subject","node":"rel-ct-ir"}],"conformance_status":"unresolved","definedness":"low-level operations are explicit and unsupported features classified before target lowering","delegation_boundary":null,"direction":"source_to_compilation_domain","domain_endpoint":{"facet":"source","node":"rel-machine-source"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject or mark unsupported before target lowering","id":"rel-machine-to-ct","identity_inputs":"source bytes; language version; low-level boundary identity","obligations":"expose memory control flow low-level operations unsupported operations and assumptions","observation_requirement":"checked CT-level identity or exact unsupported/rejection state","parameter_slots":["low_level_boundary_identity","target_model"],"prohibited_reverse_inferences":"machine source cannot bypass checked low-level boundary","relationship":"SR-03","trust_role":"candidate machine elaborator is proposed trusted path"}},{"edge_sha256":"9eba15b4c727eeb8ef5960d19b5e5ad0293593965238dc2979fc89e5ba790942","edge_subject":{"codomain_endpoints":[{"facet":"probabilistic_experiment","node":"rel-game-core"}],"conformance_status":"unresolved","definedness":"sampling oracle adversary and bound structure are explicit","delegation_boundary":null,"direction":"source_to_semantic_domain","domain_endpoint":{"facet":"source","node":"rel-game-source"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject without probabilistic identity","id":"rel-game-elaboration","identity_inputs":"source bytes; language version; probability model identity","obligations":"preserve sampling oracle adversary and exact bound structure","observation_requirement":"checked experiment identity or exact rejection","parameter_slots":["probability_model_identity"],"prohibited_reverse_inferences":"sampling does not enter pure or implementation meaning","relationship":"SR-04","trust_role":"candidate game elaborator is proposed trusted path"}},{"edge_sha256":"223340c54e6e11e3e262264307cd6fb451305b30fec8929284cb1623a305927e","edge_subject":{"codomain_endpoints":[{"facet":"evidence_interface","node":"rel-proof-interface"}],"conformance_status":"unresolved","definedness":"judgment and all subject identities are explicit","delegation_boundary":null,"direction":"source_to_evidence_interface","domain_endpoint":{"facet":"source","node":"rel-proof-source"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject without evidence-interface identity","id":"rel-proof-interface","identity_inputs":"proof bytes; judgment identity; subject identities","obligations":"bind exact judgment and subjects while remaining calculus-neutral and format-neutral","observation_requirement":"evidence-interface identity or exact rejection","parameter_slots":["proof_calculus","proof_format"],"prohibited_reverse_inferences":"interface admission is not proof validity and selects no calculus","relationship":"SR-05","trust_role":"candidate proof elaborator only proposes an evidence binding interface"}},{"edge_sha256":"33857531861838f179c49ad97172e4065c1e07041db7b18e1237945ee4fa493d","edge_subject":{"codomain_endpoints":[{"facet":"pure_subject","node":"rel-spec-core"}],"conformance_status":"unresolved","definedness":"term belongs to versioned Shared Pure subset","delegation_boundary":null,"direction":"subset_inclusion","domain_endpoint":{"facet":"shared_pure_subject","node":"rel-shared-pure"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject outside subset","id":"rel-shared-to-spec","identity_inputs":"term identity; subset version; Spec domain identity","obligations":"be total on subset and exclude effects state and sampling","observation_requirement":"included pure subject identity or exact rejection","parameter_slots":["shared_pure_version"],"prohibited_reverse_inferences":"subset executability does not create universal Core","relationship":"SR-06","trust_role":"candidate inclusion definition is proposed for review"}},{"edge_sha256":"e977981f8c5236e740b342727f996f6ed382e979e155b54ac535d3e80556af96","edge_subject":{"codomain_endpoints":[{"facet":"embedded_pure_subject","node":"rel-impl-core"}],"conformance_status":"unresolved","definedness":"embedding is explicit and source identity fixed","delegation_boundary":null,"direction":"explicit_embedding","domain_endpoint":{"facet":"shared_pure_subject","node":"rel-shared-pure"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject when state or effects would be imported","id":"rel-shared-to-impl","identity_inputs":"pure subject identity; embedding version; Impl domain identity","obligations":"preserve deterministic pure meaning and introduce no state or ambient effects","observation_requirement":"embedded identity and effect-free boundary observation","parameter_slots":["embedding_version","effect_model_identity"],"prohibited_reverse_inferences":"shared names do not infer refinement and embedding does not authorize state","relationship":"SR-07","trust_role":"candidate embedding definition is proposed for review"}},{"edge_sha256":"c60cd608a8cbfd5f5253ebc489c14cc32185122c22398806a2990f82742c5ca6","edge_subject":{"codomain_endpoints":[{"facet":"embedded_deterministic_subject","node":"rel-game-core"}],"conformance_status":"unresolved","definedness":"embedding is explicit and source identity fixed","delegation_boundary":null,"direction":"explicit_embedding","domain_endpoint":{"facet":"shared_pure_subject","node":"rel-shared-pure"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject when randomness would alter deterministic meaning","id":"rel-shared-to-game","identity_inputs":"pure subject identity; embedding version; Game domain identity","obligations":"preserve deterministic meaning and introduce no ambient randomness","observation_requirement":"embedded identity and randomness-free boundary observation","parameter_slots":["embedding_version","probability_model_identity"],"prohibited_reverse_inferences":"embedding does not establish probabilistic equivalence","relationship":"SR-08","trust_role":"candidate embedding definition is proposed for review"}},{"edge_sha256":"cf7b2221d1c66e23bf5d4f27a12fb282a3e712e2fe5803cf983292e495f3ab80","edge_subject":{"codomain_endpoints":[{"facet":"pure_subject","node":"rel-spec-core"}],"conformance_status":"unresolved","definedness":"both exact subjects and named relation are present","delegation_boundary":null,"direction":"named_refinement_obligation","domain_endpoint":{"facet":"effectful_subject","node":"rel-impl-core"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"leave exact obligation unsatisfied or reject","id":"rel-impl-to-spec","identity_inputs":"Impl identity; Spec identity; relation identity; model identity","obligations":"state explicit refinement obligation and retain assumptions and failure conditions","observation_requirement":"exact refinement obligation identity and state","parameter_slots":["refinement_model","relation_version"],"prohibited_reverse_inferences":"equal names never imply refinement and implementation never defines specification","relationship":"SR-09","trust_role":"candidate relation generator is proposed and evidence remains external"}},{"edge_sha256":"36bc9317d4b8af04416ee4cfd074ac7a37655a06fe80f99a5407b2b421a9904c","edge_subject":{"codomain_endpoints":[{"facet":"checked_low_level_subject","node":"rel-ct-ir"}],"conformance_status":"unresolved","definedness":"ghost and runtime data are distinguished and lowering premises explicit","delegation_boundary":null,"direction":"semantics_preserving_lowering","domain_endpoint":{"facet":"effectful_subject","node":"rel-impl-core"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"invalidate dependent results on failed preservation","id":"rel-impl-to-ct","identity_inputs":"Impl identity; lowering identity; CT model identity","obligations":"erase ghost data without runtime effect and preserve runtime meaning","observation_requirement":"lowered identity and preservation-obligation state","parameter_slots":["lowering_version","ct_model"],"prohibited_reverse_inferences":"byte conversion is not preservation and ghost data cannot affect runtime","relationship":"SR-10","trust_role":"candidate lowering and preservation argument are proposed for review"}},{"edge_sha256":"b0ee31ff9df84aaf4d850b9c47928c983ed39a7a7c1db8a15b286214c6f6540f","edge_subject":{"codomain_endpoints":[{"facet":"target_indexed_subject","node":"rel-machine-ir"}],"conformance_status":"unresolved","definedness":"target and ABI parameters are explicit or unresolved","delegation_boundary":null,"direction":"target_parameterized_lowering","domain_endpoint":{"facet":"checked_low_level_subject","node":"rel-ct-ir"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"return unsupported or reject without fallback claims","id":"rel-ct-to-machine","identity_inputs":"CT identity; target-model identity; lowering identity; ABI identity","obligations":"record unsupported operations and target assumptions without fallback claims","observation_requirement":"target-indexed identity or exact unsupported/rejection state","parameter_slots":["target_model","abi_model"],"prohibited_reverse_inferences":"machine observations do not become specification meaning","relationship":"SR-11","trust_role":"candidate target lowering is proposed while D-011 and D-013 remain open"}},{"edge_sha256":"d4d50c876a2a66188456090e2c90b6fcc23695d56e830ff478a6e183a3078119","edge_subject":{"codomain_endpoints":[{"facet":"right_experiment","node":"rel-game-core"}],"conformance_status":"unresolved","definedness":"both experiment identities and exact bound expression are present","delegation_boundary":null,"direction":"named_probabilistic_relation","domain_endpoint":{"facet":"left_experiment","node":"rel-game-core"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"leave exact relation unsatisfied or reject","id":"rel-game-relation","identity_inputs":"left identity; right identity; relation identity; bound identity","obligations":"preserve exact bound and name reduction or equivalence explicitly","observation_requirement":"exact probabilistic-relation identity and bound","parameter_slots":["probability_model","bound_model"],"prohibited_reverse_inferences":"reduction is not unbounded equality and prose similarity is not equivalence","relationship":"SR-12","trust_role":"candidate probabilistic relation is proposed and proof policy remains open"}},{"edge_sha256":"124eeaf643125175c28de2beffbefc1115ae63d430767f530de84cca2518417d","edge_subject":{"codomain_endpoints":[{"facet":"named_judgment","node":"rel-judgment"}],"conformance_status":"unresolved","definedness":"checker policy remains open and all semantic identities are exact","delegation_boundary":null,"direction":"identity_bound_checking","domain_endpoint":{"facet":"evidence_reference","node":"rel-proof-interface"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"unknown or reject on absent or mismatched evidence or identity","id":"rel-evidence-check","identity_inputs":"evidence identity; judgment identity; Core and IR identities; relation model version identities","obligations":"bind evidence to every exact identity and reject substitution","observation_requirement":"identity-bound checking state without validity claim","parameter_slots":["checker_policy","proof_calculus","proof_format"],"prohibited_reverse_inferences":"evidence presence is not validity and format conversion is not proof preservation","relationship":"SR-13","trust_role":"candidate exposes checker boundary while D-006 and D-007 remain open"}},{"edge_sha256":"be36e32084693cba4ed829f1651edc63b99181281bdab3f2fc43470cb2bf69ca","edge_subject":{"codomain_endpoints":[{"facet":"candidate_wide_subject_or_evidence_reference","node":"rel-eligible-reference-set"}],"conformance_status":"unresolved","definedness":"claim schema remains open and all references are exact","delegation_boundary":null,"direction":"claim_binding","domain_endpoint":{"facet":"claim_record","node":"rel-claim-binding"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"retain non-success state and invalidate dependent credit","id":"rel-claim-bind","identity_inputs":"claim identity; subject identity; relation identity; evidence identity","obligations":"preserve failed missing unknown unsupported states and never upgrade assurance","observation_requirement":"exact claim-binding state without capability credit","parameter_slots":["claim_model","evidence_policy"],"prohibited_reverse_inferences":"claim presence does not establish truth and failed relations cannot be upgraded","relationship":"SR-14","trust_role":"candidate exposes binding boundary and D-005 remains authoritative"}}],"nodes":[{"authority":"candidate_local","facets":["shared_pure_subject"],"id":"rel-shared-pure","member_kind":"shared_subset","parent":"rel-spec-core","role":"Shared Pure proposed subset"},{"authority":"candidate_local","facets":["pure_subject"],"id":"rel-spec-core","member_kind":"semantic_domain","parent":null,"role":"Spec Core proposed authoritative pure domain"},{"authority":"candidate_local","facets":["effectful_subject","embedded_pure_subject"],"id":"rel-impl-core","member_kind":"semantic_domain","parent":null,"role":"Impl Core proposed authoritative effectful domain"},{"authority":"candidate_local","facets":["embedded_deterministic_subject","left_experiment","probabilistic_experiment","right_experiment"],"id":"rel-game-core","member_kind":"semantic_domain","parent":null,"role":"Game Core proposed authoritative probabilistic domain"},{"authority":"candidate_local","facets":["checked_low_level_subject"],"id":"rel-ct-ir","member_kind":"semantic_domain","parent":null,"role":"CT IR proposed compilation boundary"},{"authority":"candidate_local","facets":["target_indexed_subject"],"id":"rel-machine-ir","member_kind":"semantic_domain","parent":null,"role":"Machine IR proposed target-indexed boundary"},{"authority":"candidate_local","facets":["evidence_interface","evidence_reference"],"id":"rel-proof-interface","member_kind":"evidence_interface","parent":null,"role":"Proposed proof-evidence interface"},{"authority":"later_decision_boundary","facets":["claim_record"],"id":"rel-claim-binding","member_kind":"claim_boundary","parent":null,"role":"Later D-005 claim binding boundary"},{"authority":"input_only","facets":["source"],"id":"rel-spec-source","member_kind":"source_declaration","parent":null,"role":"Specification source facet"},{"authority":"input_only","facets":["source"],"id":"rel-impl-source","member_kind":"source_declaration","parent":null,"role":"Implementation source facet"},{"authority":"input_only","facets":["source"],"id":"rel-machine-source","member_kind":"source_declaration","parent":null,"role":"Machine source facet"},{"authority":"input_only","facets":["source"],"id":"rel-game-source","member_kind":"source_declaration","parent":null,"role":"Game source facet"},{"authority":"input_only","facets":["source"],"id":"rel-proof-source","member_kind":"source_declaration","parent":null,"role":"Proof source facet"},{"authority":"unresolved_checker_boundary","facets":["named_judgment"],"id":"rel-judgment","member_kind":"judgment_boundary","parent":null,"role":"Exact named judgment boundary"},{"authority":"later_decision_boundary","facets":["candidate_wide_subject_or_evidence_reference"],"id":"rel-eligible-reference-set","member_kind":"reference_set","parent":null,"role":"Proposed candidate-wide eligible semantic-subject or evidence-reference set"}],"sr_rows":[{"mapping":{"candidate":"ST-REL","draft_hypothesis":"Draft hypothesis: ST-REL uses rel-spec-elaboration to realize SR-01 (Specification source to Spec Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["rel-spec-elaboration"],"relationship":"SR-01","required_relationship_sha256":"bd4db18dfa1eadebb412152ffdf8beacfb89c5355994c3a0dbeaab8d2f37f62f"},"mapping_sha256":"2d9562ddb7bbadef97a54cac464335f32c81c70c8eb4855850ef417d1768883e"},{"mapping":{"candidate":"ST-REL","draft_hypothesis":"Draft hypothesis: ST-REL uses rel-impl-elaboration to realize SR-02 (Implementation source to Impl Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["rel-impl-elaboration"],"relationship":"SR-02","required_relationship_sha256":"a7dddd5d709cfb269823be87a7972824d20d014972302647e09f7f8de125df0f"},"mapping_sha256":"336e4146d77602b69fd1f39946f76fed5def7a59722938877482ad0c3fa01f1b"},{"mapping":{"candidate":"ST-REL","draft_hypothesis":"Draft hypothesis: ST-REL uses rel-machine-to-ct to realize SR-03 (Machine source to CT IR); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["rel-machine-to-ct"],"relationship":"SR-03","required_relationship_sha256":"8cd73467ff05977c6dfe5af5a27328d5fbc3995c6cde37c552bdbc3b832f97e4"},"mapping_sha256":"2ff6e405228918549d62c4251d7fde3ee0f3e0bd553e1fb9aff7bf2f6cf4b262"},{"mapping":{"candidate":"ST-REL","draft_hypothesis":"Draft hypothesis: ST-REL uses rel-game-elaboration to realize SR-04 (Game source to Game Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["rel-game-elaboration"],"relationship":"SR-04","required_relationship_sha256":"ef1c8aab9646b776328f01fda71a85fb199beb2deab3f0fbd95786bb6e689442"},"mapping_sha256":"cf6e134618c6636527e79f9c5d839bef4bbf58ed0a9600a13e20759852b3211d"},{"mapping":{"candidate":"ST-REL","draft_hypothesis":"Draft hypothesis: ST-REL uses rel-proof-interface to realize SR-05 (Proof source to proof-evidence interface); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["rel-proof-interface"],"relationship":"SR-05","required_relationship_sha256":"5939b3063fd4d6c4d6a57167658e4fcd47c8fb9fc7afcef7a952d86b0d1ff05f"},"mapping_sha256":"cced87df75a62c2559ebb95634ea12713f4555941f8ca730ab47caf9b6e0ee05"},{"mapping":{"candidate":"ST-REL","draft_hypothesis":"Draft hypothesis: ST-REL uses rel-shared-to-spec to realize SR-06 (Shared Pure into Spec Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["rel-shared-to-spec"],"relationship":"SR-06","required_relationship_sha256":"7601ec025308e0f620f72531f4835c8378b33fc91ded31837222a25720202e57"},"mapping_sha256":"797aa21aa28b8505cf98dc54f4dbf2651eb2f076c8696e4fa49f9dcf9c70e4eb"},{"mapping":{"candidate":"ST-REL","draft_hypothesis":"Draft hypothesis: ST-REL uses rel-shared-to-impl to realize SR-07 (Shared Pure into Impl Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["rel-shared-to-impl"],"relationship":"SR-07","required_relationship_sha256":"2be5b255f09183ed4cc125b48af76bfe87741b320c34bf1374c26e0733766d3c"},"mapping_sha256":"58a98c80a858e9637995bd048c52c12149416bc9c31478741ee6554c510826e6"},{"mapping":{"candidate":"ST-REL","draft_hypothesis":"Draft hypothesis: ST-REL uses rel-shared-to-game to realize SR-08 (Shared Pure into Game Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["rel-shared-to-game"],"relationship":"SR-08","required_relationship_sha256":"19a30d93ff4e5781faa459f90da11c23e4dcdd4d6df5a017ba55f8d4213e30ca"},"mapping_sha256":"aa6cdfc09b11af79ea7ea2f048a2a0b0e9de7bbc644d75a544534ed230c2b103"},{"mapping":{"candidate":"ST-REL","draft_hypothesis":"Draft hypothesis: ST-REL uses rel-impl-to-spec to realize SR-09 (Impl Core to Spec Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["rel-impl-to-spec"],"relationship":"SR-09","required_relationship_sha256":"02a0399ae02219529eb606ce056e4504722e8c565e19e220333a3dfec4281fcc"},"mapping_sha256":"2df8d2710f494d871fb56c199738547ea528a5350fb72de5514490aea2007d0a"},{"mapping":{"candidate":"ST-REL","draft_hypothesis":"Draft hypothesis: ST-REL uses rel-impl-to-ct to realize SR-10 (Impl Core to CT IR); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["rel-impl-to-ct"],"relationship":"SR-10","required_relationship_sha256":"55ec969a7bc03bc361550ed9b157cefd38049e0ed4cf520fccc10715117d8510"},"mapping_sha256":"80a6f1f9bf000af0029b21bcbad7a87d71d37c91f58666fb5894043c52349e99"},{"mapping":{"candidate":"ST-REL","draft_hypothesis":"Draft hypothesis: ST-REL uses rel-ct-to-machine to realize SR-11 (CT IR to Machine IR); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["rel-ct-to-machine"],"relationship":"SR-11","required_relationship_sha256":"2e72ac00ddbe7cb6151ab58ae8f49438f75b79bc38c0da1cc6e4a5462d695983"},"mapping_sha256":"7eaf822964491cbe261073938b5e43ff169079ee3d5ac8e0ee927eb450a50233"},{"mapping":{"candidate":"ST-REL","draft_hypothesis":"Draft hypothesis: ST-REL uses rel-game-relation to realize SR-12 (Game Core to Game Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["rel-game-relation"],"relationship":"SR-12","required_relationship_sha256":"d1fc192d6619e8223e91f9af6e1496c8d6fc6fee31f25ac87a894870981800c8"},"mapping_sha256":"da4b5fc17f99ec3178b2d0c45283a0a045311ea3592ea8b45782cd29ce3a0b9a"},{"mapping":{"candidate":"ST-REL","draft_hypothesis":"Draft hypothesis: ST-REL uses rel-evidence-check to realize SR-13 (Proof evidence to judgment); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["rel-evidence-check"],"relationship":"SR-13","required_relationship_sha256":"170c95dab9f259e63cd2f29f8c79ecd254162c7e8f2e46516918143ebc3ded16"},"mapping_sha256":"50eb38a172b36115c5efa9c1ddd6685c934731cd25eba6b8d570d7ef905f5af4"},{"mapping":{"candidate":"ST-REL","draft_hypothesis":"Draft hypothesis: ST-REL uses rel-claim-bind to realize SR-14 (Claim record to subject and evidence); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["rel-claim-bind"],"relationship":"SR-14","required_relationship_sha256":"3e3349d3c3c58d962346870ea6d40591d051f5f1d90445fa1ded78ee06b1eddb"},"mapping_sha256":"d2612420a556295809ed616c73e093bff038a3a5286bf36b6846116380ec03e1"}]},"graph_sha256":"a7df94ab4fd7f4ad93f3326518e818de51048f4655c71c805f1d6dc8d63bd8aa"},{"candidate":"ST-UNI","graph":{"architecture":"One proposed effect-parameterized universal calculus with separately inspectable role and effect boundaries","candidate":"ST-UNI","edges":[{"edge_sha256":"d41c68d6ce16c5088d9e0c40ef49a9c51e2e41591e021d1e4fb80ce796b046cc","edge_subject":{"codomain_endpoints":[{"facet":"pure_subject","node":"uni-pure-view"}],"conformance_status":"unresolved","definedness":"well-formed source resolves exactly one checked pure subject","delegation_boundary":null,"direction":"source_to_semantic_domain","domain_endpoint":{"facet":"source","node":"uni-spec-source"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject without semantic identity","id":"uni-spec-elaboration","identity_inputs":"source bytes; language version; elaborator identity","obligations":"preserve pure total meaning; fail without creating identity","observation_requirement":"checked pure subject identity or exact rejection","parameter_slots":["language_version","elaborator_identity"],"prohibited_reverse_inferences":"name equality does not imply semantic equality","relationship":"SR-01","trust_role":"candidate elaborator is proposed trusted path"}},{"edge_sha256":"1370435931e6c76065270ea13c1e6aca737e05a6ab2890c5f4ea0a43a2358113","edge_subject":{"codomain_endpoints":[{"facet":"effectful_subject","node":"uni-impl-view"}],"conformance_status":"unresolved","definedness":"contracts effects memory and typed failures are explicit","delegation_boundary":null,"direction":"source_to_semantic_domain","domain_endpoint":{"facet":"source","node":"uni-impl-source"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject without effectful identity","id":"uni-impl-elaboration","identity_inputs":"source bytes; language version; effect model identity","obligations":"preserve contracts effects memory operations and typed failure","observation_requirement":"checked effectful subject identity or exact rejection","parameter_slots":["language_version","effect_model_identity"],"prohibited_reverse_inferences":"shared names do not imply refinement; implementation does not define specification","relationship":"SR-02","trust_role":"candidate implementation elaborator is proposed trusted path"}},{"edge_sha256":"d1c3b763fed67ab175853ab2cc4ded253535959b2368a3364898eb94b81dbe2c","edge_subject":{"codomain_endpoints":[{"facet":"checked_low_level_subject","node":"uni-machine-view"}],"conformance_status":"unresolved","definedness":"low-level operations are explicit and unsupported features classified before target lowering","delegation_boundary":null,"direction":"source_to_compilation_domain","domain_endpoint":{"facet":"source","node":"uni-machine-source"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject or mark unsupported before target lowering","id":"uni-machine-to-ct","identity_inputs":"source bytes; language version; low-level boundary identity","obligations":"expose memory control flow low-level operations unsupported operations and assumptions","observation_requirement":"checked CT-level identity or exact unsupported/rejection state","parameter_slots":["low_level_boundary_identity","target_model"],"prohibited_reverse_inferences":"machine source cannot bypass checked low-level boundary","relationship":"SR-03","trust_role":"candidate machine elaborator is proposed trusted path"}},{"edge_sha256":"e4c4448ed717b12b3bc15eaed2119fa4676eaa4762cc2cba0f31cf08bf24dee3","edge_subject":{"codomain_endpoints":[{"facet":"probabilistic_experiment","node":"uni-game-view"}],"conformance_status":"unresolved","definedness":"sampling oracle adversary and bound structure are explicit","delegation_boundary":null,"direction":"source_to_semantic_domain","domain_endpoint":{"facet":"source","node":"uni-game-source"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject without probabilistic identity","id":"uni-game-elaboration","identity_inputs":"source bytes; language version; probability model identity","obligations":"preserve sampling oracle adversary and exact bound structure","observation_requirement":"checked experiment identity or exact rejection","parameter_slots":["probability_model_identity"],"prohibited_reverse_inferences":"sampling does not enter pure or implementation meaning","relationship":"SR-04","trust_role":"candidate game elaborator is proposed trusted path"}},{"edge_sha256":"1cc5a8c443a981188d02288a0a1cd9250a7ae6df7c7af2012c65bdb3312ff391","edge_subject":{"codomain_endpoints":[{"facet":"evidence_interface","node":"uni-proof-interface"}],"conformance_status":"unresolved","definedness":"judgment and all subject identities are explicit","delegation_boundary":null,"direction":"source_to_evidence_interface","domain_endpoint":{"facet":"source","node":"uni-proof-source"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject without evidence-interface identity","id":"uni-proof-interface","identity_inputs":"proof bytes; judgment identity; subject identities","obligations":"bind exact judgment and subjects while remaining calculus-neutral and format-neutral","observation_requirement":"evidence-interface identity or exact rejection","parameter_slots":["proof_calculus","proof_format"],"prohibited_reverse_inferences":"interface admission is not proof validity and selects no calculus","relationship":"SR-05","trust_role":"candidate proof elaborator only proposes an evidence binding interface"}},{"edge_sha256":"045c5c8bc4a71808132c07c937fe64fcf25a9a66e3e015804402d07447d42681","edge_subject":{"codomain_endpoints":[{"facet":"pure_subject","node":"uni-pure-view"}],"conformance_status":"unresolved","definedness":"term belongs to versioned Shared Pure subset","delegation_boundary":null,"direction":"subset_inclusion","domain_endpoint":{"facet":"shared_pure_subject","node":"uni-pure-view"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject outside subset","id":"uni-shared-to-spec","identity_inputs":"term identity; subset version; Spec domain identity","obligations":"be total on subset and exclude effects state and sampling","observation_requirement":"included pure subject identity or exact rejection","parameter_slots":["shared_pure_version"],"prohibited_reverse_inferences":"subset executability does not create universal Core","relationship":"SR-06","trust_role":"candidate inclusion definition is proposed for review"}},{"edge_sha256":"775cbb85bfb3e3eec40cf99c73677ccf5c6d9f657530b67ecaeb2cb97a301d54","edge_subject":{"codomain_endpoints":[{"facet":"embedded_pure_subject","node":"uni-impl-view"}],"conformance_status":"unresolved","definedness":"embedding is explicit and source identity fixed","delegation_boundary":null,"direction":"explicit_embedding","domain_endpoint":{"facet":"shared_pure_subject","node":"uni-pure-view"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject when state or effects would be imported","id":"uni-shared-to-impl","identity_inputs":"pure subject identity; embedding version; Impl domain identity","obligations":"preserve deterministic pure meaning and introduce no state or ambient effects","observation_requirement":"embedded identity and effect-free boundary observation","parameter_slots":["embedding_version","effect_model_identity"],"prohibited_reverse_inferences":"shared names do not infer refinement and embedding does not authorize state","relationship":"SR-07","trust_role":"candidate embedding definition is proposed for review"}},{"edge_sha256":"7be717cb1d816425c2d68ba305aa2d0366a47cea39dec0481634379b922e6234","edge_subject":{"codomain_endpoints":[{"facet":"embedded_deterministic_subject","node":"uni-game-view"}],"conformance_status":"unresolved","definedness":"embedding is explicit and source identity fixed","delegation_boundary":null,"direction":"explicit_embedding","domain_endpoint":{"facet":"shared_pure_subject","node":"uni-pure-view"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject when randomness would alter deterministic meaning","id":"uni-shared-to-game","identity_inputs":"pure subject identity; embedding version; Game domain identity","obligations":"preserve deterministic meaning and introduce no ambient randomness","observation_requirement":"embedded identity and randomness-free boundary observation","parameter_slots":["embedding_version","probability_model_identity"],"prohibited_reverse_inferences":"embedding does not establish probabilistic equivalence","relationship":"SR-08","trust_role":"candidate embedding definition is proposed for review"}},{"edge_sha256":"223ff14764bc42ad7de91fdaae898d0f0040e0e2935cdfd32f5e37fe5bb94f20","edge_subject":{"codomain_endpoints":[{"facet":"pure_subject","node":"uni-pure-view"}],"conformance_status":"unresolved","definedness":"both exact subjects and named relation are present","delegation_boundary":null,"direction":"named_refinement_obligation","domain_endpoint":{"facet":"effectful_subject","node":"uni-impl-view"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"leave exact obligation unsatisfied or reject","id":"uni-impl-to-spec","identity_inputs":"Impl identity; Spec identity; relation identity; model identity","obligations":"state explicit refinement obligation and retain assumptions and failure conditions","observation_requirement":"exact refinement obligation identity and state","parameter_slots":["refinement_model","relation_version"],"prohibited_reverse_inferences":"equal names never imply refinement and implementation never defines specification","relationship":"SR-09","trust_role":"candidate relation generator is proposed and evidence remains external"}},{"edge_sha256":"673acbdd8539601880ae09f0c41f5bd8730cf19515687177a1d87204832a99da","edge_subject":{"codomain_endpoints":[{"facet":"checked_low_level_subject","node":"uni-machine-view"}],"conformance_status":"unresolved","definedness":"ghost and runtime data are distinguished and lowering premises explicit","delegation_boundary":null,"direction":"semantics_preserving_lowering","domain_endpoint":{"facet":"effectful_subject","node":"uni-impl-view"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"invalidate dependent results on failed preservation","id":"uni-impl-to-ct","identity_inputs":"Impl identity; lowering identity; CT model identity","obligations":"erase ghost data without runtime effect and preserve runtime meaning","observation_requirement":"lowered identity and preservation-obligation state","parameter_slots":["lowering_version","ct_model"],"prohibited_reverse_inferences":"byte conversion is not preservation and ghost data cannot affect runtime","relationship":"SR-10","trust_role":"candidate lowering and preservation argument are proposed for review"}},{"edge_sha256":"c96c287b8e7c22fc96d90c0bfe16cca89741df6dd29f57cbef5c319561c2c1b3","edge_subject":{"codomain_endpoints":[{"facet":"target_indexed_subject","node":"uni-machine-view"}],"conformance_status":"unresolved","definedness":"target and ABI parameters are explicit or unresolved","delegation_boundary":null,"direction":"target_parameterized_lowering","domain_endpoint":{"facet":"checked_low_level_subject","node":"uni-machine-view"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"return unsupported or reject without fallback claims","id":"uni-ct-to-machine","identity_inputs":"CT identity; target-model identity; lowering identity; ABI identity","obligations":"record unsupported operations and target assumptions without fallback claims","observation_requirement":"target-indexed identity or exact unsupported/rejection state","parameter_slots":["target_model","abi_model"],"prohibited_reverse_inferences":"machine observations do not become specification meaning","relationship":"SR-11","trust_role":"candidate target lowering is proposed while D-011 and D-013 remain open"}},{"edge_sha256":"61d65832c3a990ee0effc85cdfc1e262e7ca93293bd0d956507a87c59276cade","edge_subject":{"codomain_endpoints":[{"facet":"right_experiment","node":"uni-game-view"}],"conformance_status":"unresolved","definedness":"both experiment identities and exact bound expression are present","delegation_boundary":null,"direction":"named_probabilistic_relation","domain_endpoint":{"facet":"left_experiment","node":"uni-game-view"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"leave exact relation unsatisfied or reject","id":"uni-game-relation","identity_inputs":"left identity; right identity; relation identity; bound identity","obligations":"preserve exact bound and name reduction or equivalence explicitly","observation_requirement":"exact probabilistic-relation identity and bound","parameter_slots":["probability_model","bound_model"],"prohibited_reverse_inferences":"reduction is not unbounded equality and prose similarity is not equivalence","relationship":"SR-12","trust_role":"candidate probabilistic relation is proposed and proof policy remains open"}},{"edge_sha256":"5dc5bf19470bbdaad65bf8255987aad7614862144ed56dd9c5fc53ed854ebd24","edge_subject":{"codomain_endpoints":[{"facet":"named_judgment","node":"uni-judgment"}],"conformance_status":"unresolved","definedness":"checker policy remains open and all semantic identities are exact","delegation_boundary":null,"direction":"identity_bound_checking","domain_endpoint":{"facet":"evidence_reference","node":"uni-proof-interface"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"unknown or reject on absent or mismatched evidence or identity","id":"uni-evidence-check","identity_inputs":"evidence identity; judgment identity; Core and IR identities; relation model version identities","obligations":"bind evidence to every exact identity and reject substitution","observation_requirement":"identity-bound checking state without validity claim","parameter_slots":["checker_policy","proof_calculus","proof_format"],"prohibited_reverse_inferences":"evidence presence is not validity and format conversion is not proof preservation","relationship":"SR-13","trust_role":"candidate exposes checker boundary while D-006 and D-007 remain open"}},{"edge_sha256":"ed7989851d5dcdc509b008c035d6100b945ba017baad65971bb0ee6a8f8f209f","edge_subject":{"codomain_endpoints":[{"facet":"candidate_wide_subject_or_evidence_reference","node":"uni-eligible-reference-set"}],"conformance_status":"unresolved","definedness":"claim schema remains open and all references are exact","delegation_boundary":null,"direction":"claim_binding","domain_endpoint":{"facet":"claim_record","node":"uni-claim-binding"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"retain non-success state and invalidate dependent credit","id":"uni-claim-bind","identity_inputs":"claim identity; subject identity; relation identity; evidence identity","obligations":"preserve failed missing unknown unsupported states and never upgrade assurance","observation_requirement":"exact claim-binding state without capability credit","parameter_slots":["claim_model","evidence_policy"],"prohibited_reverse_inferences":"claim presence does not establish truth and failed relations cannot be upgraded","relationship":"SR-14","trust_role":"candidate exposes binding boundary and D-005 remains authoritative"}}],"nodes":[{"authority":"candidate_local","facets":["authority_root"],"id":"uni-calculus","member_kind":"semantic_domain","parent":null,"role":"Proposed universal effect-parameterized calculus"},{"authority":"candidate_local","facets":["pure_subject","shared_pure_subject"],"id":"uni-pure-view","member_kind":"semantic_view","parent":"uni-calculus","role":"Proposed pure restricted view"},{"authority":"candidate_local","facets":["effectful_subject","embedded_pure_subject"],"id":"uni-impl-view","member_kind":"semantic_view","parent":"uni-calculus","role":"Proposed state and failure view"},{"authority":"candidate_local","facets":["embedded_deterministic_subject","left_experiment","probabilistic_experiment","right_experiment"],"id":"uni-game-view","member_kind":"semantic_view","parent":"uni-calculus","role":"Proposed probabilistic view"},{"authority":"candidate_local","facets":["checked_low_level_subject","target_indexed_subject"],"id":"uni-machine-view","member_kind":"semantic_view","parent":"uni-calculus","role":"Proposed low-level and target view"},{"authority":"candidate_local","facets":["evidence_interface","evidence_reference"],"id":"uni-proof-interface","member_kind":"evidence_interface","parent":"uni-calculus","role":"Proposed proof-evidence boundary"},{"authority":"later_decision_boundary","facets":["claim_record"],"id":"uni-claim-binding","member_kind":"claim_boundary","parent":null,"role":"Later D-005 claim binding boundary"},{"authority":"input_only","facets":["source"],"id":"uni-spec-source","member_kind":"source_declaration","parent":null,"role":"Specification source facet"},{"authority":"input_only","facets":["source"],"id":"uni-impl-source","member_kind":"source_declaration","parent":null,"role":"Implementation source facet"},{"authority":"input_only","facets":["source"],"id":"uni-machine-source","member_kind":"source_declaration","parent":null,"role":"Machine source facet"},{"authority":"input_only","facets":["source"],"id":"uni-game-source","member_kind":"source_declaration","parent":null,"role":"Game source facet"},{"authority":"input_only","facets":["source"],"id":"uni-proof-source","member_kind":"source_declaration","parent":null,"role":"Proof source facet"},{"authority":"unresolved_checker_boundary","facets":["named_judgment"],"id":"uni-judgment","member_kind":"judgment_boundary","parent":null,"role":"Exact named judgment boundary"},{"authority":"later_decision_boundary","facets":["candidate_wide_subject_or_evidence_reference"],"id":"uni-eligible-reference-set","member_kind":"reference_set","parent":null,"role":"Proposed candidate-wide eligible semantic-subject or evidence-reference set"}],"sr_rows":[{"mapping":{"candidate":"ST-UNI","draft_hypothesis":"Draft hypothesis: ST-UNI uses uni-spec-elaboration to realize SR-01 (Specification source to Spec Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":"uni-calculus","inspectability":"separately_inspectable_and_falsifiable","mapping_form":"fused","native_edges":["uni-spec-elaboration"],"relationship":"SR-01","required_relationship_sha256":"bd4db18dfa1eadebb412152ffdf8beacfb89c5355994c3a0dbeaab8d2f37f62f"},"mapping_sha256":"a7dec5ea346d295029fcbb126328b64bfe88c0851a6c94ecc5f7be814dc1be5d"},{"mapping":{"candidate":"ST-UNI","draft_hypothesis":"Draft hypothesis: ST-UNI uses uni-impl-elaboration to realize SR-02 (Implementation source to Impl Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":"uni-calculus","inspectability":"separately_inspectable_and_falsifiable","mapping_form":"fused","native_edges":["uni-impl-elaboration"],"relationship":"SR-02","required_relationship_sha256":"a7dddd5d709cfb269823be87a7972824d20d014972302647e09f7f8de125df0f"},"mapping_sha256":"510f1cef9b37d1f57e881b4512ab40302a72af5de620a5fa5d500f3bae7d9fe6"},{"mapping":{"candidate":"ST-UNI","draft_hypothesis":"Draft hypothesis: ST-UNI uses uni-machine-to-ct to realize SR-03 (Machine source to CT IR); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":"uni-calculus","inspectability":"separately_inspectable_and_falsifiable","mapping_form":"fused","native_edges":["uni-machine-to-ct"],"relationship":"SR-03","required_relationship_sha256":"8cd73467ff05977c6dfe5af5a27328d5fbc3995c6cde37c552bdbc3b832f97e4"},"mapping_sha256":"1de75aa0832a281aea00778f36eb6bd09103175f200aae600da4673e4f868e9a"},{"mapping":{"candidate":"ST-UNI","draft_hypothesis":"Draft hypothesis: ST-UNI uses uni-game-elaboration to realize SR-04 (Game source to Game Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":"uni-calculus","inspectability":"separately_inspectable_and_falsifiable","mapping_form":"fused","native_edges":["uni-game-elaboration"],"relationship":"SR-04","required_relationship_sha256":"ef1c8aab9646b776328f01fda71a85fb199beb2deab3f0fbd95786bb6e689442"},"mapping_sha256":"8dcd2585b389c7e82f9b1fd721582379d2388646153be943f060000857b55c19"},{"mapping":{"candidate":"ST-UNI","draft_hypothesis":"Draft hypothesis: ST-UNI uses uni-proof-interface to realize SR-05 (Proof source to proof-evidence interface); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["uni-proof-interface"],"relationship":"SR-05","required_relationship_sha256":"5939b3063fd4d6c4d6a57167658e4fcd47c8fb9fc7afcef7a952d86b0d1ff05f"},"mapping_sha256":"cc133631801c2e02eef2408a6569da6fd2edb52cbf0d6601794f6d64be0901f4"},{"mapping":{"candidate":"ST-UNI","draft_hypothesis":"Draft hypothesis: ST-UNI uses uni-shared-to-spec to realize SR-06 (Shared Pure into Spec Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":"uni-calculus","inspectability":"separately_inspectable_and_falsifiable","mapping_form":"fused","native_edges":["uni-shared-to-spec"],"relationship":"SR-06","required_relationship_sha256":"7601ec025308e0f620f72531f4835c8378b33fc91ded31837222a25720202e57"},"mapping_sha256":"1917a71abfee2d77058744ffe24081388045c587325b026778562cd356c87e5a"},{"mapping":{"candidate":"ST-UNI","draft_hypothesis":"Draft hypothesis: ST-UNI uses uni-shared-to-impl to realize SR-07 (Shared Pure into Impl Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":"uni-calculus","inspectability":"separately_inspectable_and_falsifiable","mapping_form":"fused","native_edges":["uni-shared-to-impl"],"relationship":"SR-07","required_relationship_sha256":"2be5b255f09183ed4cc125b48af76bfe87741b320c34bf1374c26e0733766d3c"},"mapping_sha256":"47b02bb33636bfe3e4658766653f222a9be42d077813e5d927ecc85470b64e97"},{"mapping":{"candidate":"ST-UNI","draft_hypothesis":"Draft hypothesis: ST-UNI uses uni-shared-to-game to realize SR-08 (Shared Pure into Game Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":"uni-calculus","inspectability":"separately_inspectable_and_falsifiable","mapping_form":"fused","native_edges":["uni-shared-to-game"],"relationship":"SR-08","required_relationship_sha256":"19a30d93ff4e5781faa459f90da11c23e4dcdd4d6df5a017ba55f8d4213e30ca"},"mapping_sha256":"2f362f9548e45a78d0d240a4ed145388f13bd01558fa0d8fbc83cf1180eda151"},{"mapping":{"candidate":"ST-UNI","draft_hypothesis":"Draft hypothesis: ST-UNI uses uni-impl-to-spec to realize SR-09 (Impl Core to Spec Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":"uni-calculus","inspectability":"separately_inspectable_and_falsifiable","mapping_form":"fused","native_edges":["uni-impl-to-spec"],"relationship":"SR-09","required_relationship_sha256":"02a0399ae02219529eb606ce056e4504722e8c565e19e220333a3dfec4281fcc"},"mapping_sha256":"b7c1b7ccd791a36384d8c4a85dc208b9eb64ea4b859cff3cac53972d5ff6e5bc"},{"mapping":{"candidate":"ST-UNI","draft_hypothesis":"Draft hypothesis: ST-UNI uses uni-impl-to-ct to realize SR-10 (Impl Core to CT IR); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":"uni-calculus","inspectability":"separately_inspectable_and_falsifiable","mapping_form":"fused","native_edges":["uni-impl-to-ct"],"relationship":"SR-10","required_relationship_sha256":"55ec969a7bc03bc361550ed9b157cefd38049e0ed4cf520fccc10715117d8510"},"mapping_sha256":"f040892285901aee78d5c2d125263b7bb052a6af347afe64885fe2f82947f409"},{"mapping":{"candidate":"ST-UNI","draft_hypothesis":"Draft hypothesis: ST-UNI uses uni-ct-to-machine to realize SR-11 (CT IR to Machine IR); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":"uni-calculus","inspectability":"separately_inspectable_and_falsifiable","mapping_form":"fused","native_edges":["uni-ct-to-machine"],"relationship":"SR-11","required_relationship_sha256":"2e72ac00ddbe7cb6151ab58ae8f49438f75b79bc38c0da1cc6e4a5462d695983"},"mapping_sha256":"1e8e3793af10ef1657b875fe0e4e8d26f5da6c02f269e1396a822ca1bcb5e9a1"},{"mapping":{"candidate":"ST-UNI","draft_hypothesis":"Draft hypothesis: ST-UNI uses uni-game-relation to realize SR-12 (Game Core to Game Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":"uni-calculus","inspectability":"separately_inspectable_and_falsifiable","mapping_form":"fused","native_edges":["uni-game-relation"],"relationship":"SR-12","required_relationship_sha256":"d1fc192d6619e8223e91f9af6e1496c8d6fc6fee31f25ac87a894870981800c8"},"mapping_sha256":"ec6ade81e01c4c831789e48ed79e29a702af970dd447122987b65bc4529551f0"},{"mapping":{"candidate":"ST-UNI","draft_hypothesis":"Draft hypothesis: ST-UNI uses uni-evidence-check to realize SR-13 (Proof evidence to judgment); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["uni-evidence-check"],"relationship":"SR-13","required_relationship_sha256":"170c95dab9f259e63cd2f29f8c79ecd254162c7e8f2e46516918143ebc3ded16"},"mapping_sha256":"6f7df84633e09d3c04f83622d6728eada8a4a4906c7e9273f442365599f7b6aa"},{"mapping":{"candidate":"ST-UNI","draft_hypothesis":"Draft hypothesis: ST-UNI uses uni-claim-bind to realize SR-14 (Claim record to subject and evidence); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["uni-claim-bind"],"relationship":"SR-14","required_relationship_sha256":"3e3349d3c3c58d962346870ea6d40591d051f5f1d90445fa1ded78ee06b1eddb"},"mapping_sha256":"65d4aa9bac5ff2d2ec8e56aa41cafd5b03cafefa45f04e139727cabdfaba71ec"}]},"graph_sha256":"e6a4ef5d4fe2025042db38d94d16b715ce2021c6633042b1e0b6e13101a99bab"},{"candidate":"ST-DUAL","graph":{"architecture":"A proposed pure Core and general effect Core with explicit probabilistic low-level target and evidence views","candidate":"ST-DUAL","edges":[{"edge_sha256":"5ffdcdf04868ce054cc9c6cc8bade32ddefb3c48cd53cce8fea5d2ca91d67568","edge_subject":{"codomain_endpoints":[{"facet":"pure_subject","node":"dual-pure-core"}],"conformance_status":"unresolved","definedness":"well-formed source resolves exactly one checked pure subject","delegation_boundary":null,"direction":"source_to_semantic_domain","domain_endpoint":{"facet":"source","node":"dual-spec-source"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject without semantic identity","id":"dual-spec-elaboration","identity_inputs":"source bytes; language version; elaborator identity","obligations":"preserve pure total meaning; fail without creating identity","observation_requirement":"checked pure subject identity or exact rejection","parameter_slots":["language_version","elaborator_identity"],"prohibited_reverse_inferences":"name equality does not imply semantic equality","relationship":"SR-01","trust_role":"candidate elaborator is proposed trusted path"}},{"edge_sha256":"34ca93189813942f5744b226d6d0b5c9a2f927d2704f71938415020aa1b33a32","edge_subject":{"codomain_endpoints":[{"facet":"effectful_subject","node":"dual-effect-core"}],"conformance_status":"unresolved","definedness":"contracts effects memory and typed failures are explicit","delegation_boundary":null,"direction":"source_to_semantic_domain","domain_endpoint":{"facet":"source","node":"dual-impl-source"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject without effectful identity","id":"dual-impl-elaboration","identity_inputs":"source bytes; language version; effect model identity","obligations":"preserve contracts effects memory operations and typed failure","observation_requirement":"checked effectful subject identity or exact rejection","parameter_slots":["language_version","effect_model_identity"],"prohibited_reverse_inferences":"shared names do not imply refinement; implementation does not define specification","relationship":"SR-02","trust_role":"candidate implementation elaborator is proposed trusted path"}},{"edge_sha256":"2cd6011416ea46052005de701e1eda24801904d4140567f706848373f10f9e01","edge_subject":{"codomain_endpoints":[{"facet":"checked_low_level_subject","node":"dual-ct-view"}],"conformance_status":"unresolved","definedness":"low-level operations are explicit and unsupported features classified before target lowering","delegation_boundary":null,"direction":"source_to_compilation_domain","domain_endpoint":{"facet":"source","node":"dual-machine-source"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject or mark unsupported before target lowering","id":"dual-machine-to-ct","identity_inputs":"source bytes; language version; low-level boundary identity","obligations":"expose memory control flow low-level operations unsupported operations and assumptions","observation_requirement":"checked CT-level identity or exact unsupported/rejection state","parameter_slots":["low_level_boundary_identity","target_model"],"prohibited_reverse_inferences":"machine source cannot bypass checked low-level boundary","relationship":"SR-03","trust_role":"candidate machine elaborator is proposed trusted path"}},{"edge_sha256":"44f20f035fb94265f3ee865e841dfc99b82def3a51617e61887e3f1e1f6d30e7","edge_subject":{"codomain_endpoints":[{"facet":"probabilistic_experiment","node":"dual-game-view"}],"conformance_status":"unresolved","definedness":"sampling oracle adversary and bound structure are explicit","delegation_boundary":null,"direction":"source_to_semantic_domain","domain_endpoint":{"facet":"source","node":"dual-game-source"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject without probabilistic identity","id":"dual-game-elaboration","identity_inputs":"source bytes; language version; probability model identity","obligations":"preserve sampling oracle adversary and exact bound structure","observation_requirement":"checked experiment identity or exact rejection","parameter_slots":["probability_model_identity"],"prohibited_reverse_inferences":"sampling does not enter pure or implementation meaning","relationship":"SR-04","trust_role":"candidate game elaborator is proposed trusted path"}},{"edge_sha256":"db4eaeae1684c40a58e1b995b2da8bda438809cfce630b495ce8ae64d849a292","edge_subject":{"codomain_endpoints":[{"facet":"evidence_interface","node":"dual-proof-interface"}],"conformance_status":"unresolved","definedness":"judgment and all subject identities are explicit","delegation_boundary":null,"direction":"source_to_evidence_interface","domain_endpoint":{"facet":"source","node":"dual-proof-source"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject without evidence-interface identity","id":"dual-proof-interface","identity_inputs":"proof bytes; judgment identity; subject identities","obligations":"bind exact judgment and subjects while remaining calculus-neutral and format-neutral","observation_requirement":"evidence-interface identity or exact rejection","parameter_slots":["proof_calculus","proof_format"],"prohibited_reverse_inferences":"interface admission is not proof validity and selects no calculus","relationship":"SR-05","trust_role":"candidate proof elaborator only proposes an evidence binding interface"}},{"edge_sha256":"90af830a957bfff6d8b0af5e72dd5a92d7e28dd507271cf5750e35fc619dcdad","edge_subject":{"codomain_endpoints":[{"facet":"pure_subject","node":"dual-pure-core"}],"conformance_status":"unresolved","definedness":"term belongs to versioned Shared Pure subset","delegation_boundary":null,"direction":"subset_inclusion","domain_endpoint":{"facet":"shared_pure_subject","node":"dual-pure-core"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject outside subset","id":"dual-shared-to-spec","identity_inputs":"term identity; subset version; Spec domain identity","obligations":"be total on subset and exclude effects state and sampling","observation_requirement":"included pure subject identity or exact rejection","parameter_slots":["shared_pure_version"],"prohibited_reverse_inferences":"subset executability does not create universal Core","relationship":"SR-06","trust_role":"candidate inclusion definition is proposed for review"}},{"edge_sha256":"700e3c56680f8be6897a50f43af4c674171f11ae999339c62bc77249dd6f94a3","edge_subject":{"codomain_endpoints":[{"facet":"embedded_pure_subject","node":"dual-effect-core"}],"conformance_status":"unresolved","definedness":"embedding is explicit and source identity fixed","delegation_boundary":null,"direction":"explicit_embedding","domain_endpoint":{"facet":"shared_pure_subject","node":"dual-pure-core"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject when state or effects would be imported","id":"dual-shared-to-impl","identity_inputs":"pure subject identity; embedding version; Impl domain identity","obligations":"preserve deterministic pure meaning and introduce no state or ambient effects","observation_requirement":"embedded identity and effect-free boundary observation","parameter_slots":["embedding_version","effect_model_identity"],"prohibited_reverse_inferences":"shared names do not infer refinement and embedding does not authorize state","relationship":"SR-07","trust_role":"candidate embedding definition is proposed for review"}},{"edge_sha256":"730538a4cc975ce2eadac28346bfa0ff73045bcc23c41e571300a622e3c83a28","edge_subject":{"codomain_endpoints":[{"facet":"embedded_deterministic_subject","node":"dual-game-view"}],"conformance_status":"unresolved","definedness":"embedding is explicit and source identity fixed","delegation_boundary":null,"direction":"explicit_embedding","domain_endpoint":{"facet":"shared_pure_subject","node":"dual-pure-core"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject when randomness would alter deterministic meaning","id":"dual-shared-to-game","identity_inputs":"pure subject identity; embedding version; Game domain identity","obligations":"preserve deterministic meaning and introduce no ambient randomness","observation_requirement":"embedded identity and randomness-free boundary observation","parameter_slots":["embedding_version","probability_model_identity"],"prohibited_reverse_inferences":"embedding does not establish probabilistic equivalence","relationship":"SR-08","trust_role":"candidate embedding definition is proposed for review"}},{"edge_sha256":"63ebf001a724adae8d0bde49e45419f8abeb4c2095f230e5b38d2d5503f371a3","edge_subject":{"codomain_endpoints":[{"facet":"pure_subject","node":"dual-pure-core"}],"conformance_status":"unresolved","definedness":"both exact subjects and named relation are present","delegation_boundary":null,"direction":"named_refinement_obligation","domain_endpoint":{"facet":"effectful_subject","node":"dual-effect-core"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"leave exact obligation unsatisfied or reject","id":"dual-impl-to-spec","identity_inputs":"Impl identity; Spec identity; relation identity; model identity","obligations":"state explicit refinement obligation and retain assumptions and failure conditions","observation_requirement":"exact refinement obligation identity and state","parameter_slots":["refinement_model","relation_version"],"prohibited_reverse_inferences":"equal names never imply refinement and implementation never defines specification","relationship":"SR-09","trust_role":"candidate relation generator is proposed and evidence remains external"}},{"edge_sha256":"ab5e8ed521bf6459d9170d7bc5b926e88c1a5ad123316c56e28f331230d33df7","edge_subject":{"codomain_endpoints":[{"facet":"checked_low_level_subject","node":"dual-ct-view"}],"conformance_status":"unresolved","definedness":"ghost and runtime data are distinguished and lowering premises explicit","delegation_boundary":null,"direction":"semantics_preserving_lowering","domain_endpoint":{"facet":"effectful_subject","node":"dual-effect-core"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"invalidate dependent results on failed preservation","id":"dual-impl-to-ct","identity_inputs":"Impl identity; lowering identity; CT model identity","obligations":"erase ghost data without runtime effect and preserve runtime meaning","observation_requirement":"lowered identity and preservation-obligation state","parameter_slots":["lowering_version","ct_model"],"prohibited_reverse_inferences":"byte conversion is not preservation and ghost data cannot affect runtime","relationship":"SR-10","trust_role":"candidate lowering and preservation argument are proposed for review"}},{"edge_sha256":"45bb98b34a2b3df012b1af30b7054f1d346c04cdb68805a0f574255161e32747","edge_subject":{"codomain_endpoints":[{"facet":"target_indexed_subject","node":"dual-machine-view"}],"conformance_status":"unresolved","definedness":"target and ABI parameters are explicit or unresolved","delegation_boundary":null,"direction":"target_parameterized_lowering","domain_endpoint":{"facet":"checked_low_level_subject","node":"dual-ct-view"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"return unsupported or reject without fallback claims","id":"dual-ct-to-machine","identity_inputs":"CT identity; target-model identity; lowering identity; ABI identity","obligations":"record unsupported operations and target assumptions without fallback claims","observation_requirement":"target-indexed identity or exact unsupported/rejection state","parameter_slots":["target_model","abi_model"],"prohibited_reverse_inferences":"machine observations do not become specification meaning","relationship":"SR-11","trust_role":"candidate target lowering is proposed while D-011 and D-013 remain open"}},{"edge_sha256":"e5f96cebdac15fd68da7a6126dc575c69eb7304cb2481fc9a715eafa9ae8fe5b","edge_subject":{"codomain_endpoints":[{"facet":"right_experiment","node":"dual-game-view"}],"conformance_status":"unresolved","definedness":"both experiment identities and exact bound expression are present","delegation_boundary":null,"direction":"named_probabilistic_relation","domain_endpoint":{"facet":"left_experiment","node":"dual-game-view"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"leave exact relation unsatisfied or reject","id":"dual-game-relation","identity_inputs":"left identity; right identity; relation identity; bound identity","obligations":"preserve exact bound and name reduction or equivalence explicitly","observation_requirement":"exact probabilistic-relation identity and bound","parameter_slots":["probability_model","bound_model"],"prohibited_reverse_inferences":"reduction is not unbounded equality and prose similarity is not equivalence","relationship":"SR-12","trust_role":"candidate probabilistic relation is proposed and proof policy remains open"}},{"edge_sha256":"c50b0f2934fdeb08f58ecf5c97aa5eee57c1b7f35a3a28c362b06de5f45910d2","edge_subject":{"codomain_endpoints":[{"facet":"named_judgment","node":"dual-judgment"}],"conformance_status":"unresolved","definedness":"checker policy remains open and all semantic identities are exact","delegation_boundary":null,"direction":"identity_bound_checking","domain_endpoint":{"facet":"evidence_reference","node":"dual-proof-interface"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"unknown or reject on absent or mismatched evidence or identity","id":"dual-evidence-check","identity_inputs":"evidence identity; judgment identity; Core and IR identities; relation model version identities","obligations":"bind evidence to every exact identity and reject substitution","observation_requirement":"identity-bound checking state without validity claim","parameter_slots":["checker_policy","proof_calculus","proof_format"],"prohibited_reverse_inferences":"evidence presence is not validity and format conversion is not proof preservation","relationship":"SR-13","trust_role":"candidate exposes checker boundary while D-006 and D-007 remain open"}},{"edge_sha256":"a10b6e96db79523f9cb9e133d0d787e2f0f95f0750e2933d362a2652b253f269","edge_subject":{"codomain_endpoints":[{"facet":"candidate_wide_subject_or_evidence_reference","node":"dual-eligible-reference-set"}],"conformance_status":"unresolved","definedness":"claim schema remains open and all references are exact","delegation_boundary":null,"direction":"claim_binding","domain_endpoint":{"facet":"claim_record","node":"dual-claim-binding"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"retain non-success state and invalidate dependent credit","id":"dual-claim-bind","identity_inputs":"claim identity; subject identity; relation identity; evidence identity","obligations":"preserve failed missing unknown unsupported states and never upgrade assurance","observation_requirement":"exact claim-binding state without capability credit","parameter_slots":["claim_model","evidence_policy"],"prohibited_reverse_inferences":"claim presence does not establish truth and failed relations cannot be upgraded","relationship":"SR-14","trust_role":"candidate exposes binding boundary and D-005 remains authoritative"}}],"nodes":[{"authority":"candidate_local","facets":["pure_subject","shared_pure_subject"],"id":"dual-pure-core","member_kind":"semantic_domain","parent":null,"role":"Proposed authoritative pure Core"},{"authority":"candidate_local","facets":["effectful_subject","embedded_pure_subject"],"id":"dual-effect-core","member_kind":"semantic_domain","parent":null,"role":"Proposed general effect Core"},{"authority":"candidate_local","facets":["embedded_deterministic_subject","left_experiment","probabilistic_experiment","right_experiment"],"id":"dual-game-view","member_kind":"semantic_view","parent":"dual-effect-core","role":"Proposed probabilistic effect view"},{"authority":"candidate_local","facets":["checked_low_level_subject"],"id":"dual-ct-view","member_kind":"semantic_view","parent":"dual-effect-core","role":"Proposed low-level effect view"},{"authority":"candidate_local","facets":["target_indexed_subject"],"id":"dual-machine-view","member_kind":"semantic_view","parent":"dual-effect-core","role":"Proposed target-indexed effect view"},{"authority":"candidate_local","facets":["evidence_interface","evidence_reference"],"id":"dual-proof-interface","member_kind":"evidence_interface","parent":"dual-effect-core","role":"Proposed proof-evidence boundary"},{"authority":"later_decision_boundary","facets":["claim_record"],"id":"dual-claim-binding","member_kind":"claim_boundary","parent":null,"role":"Later D-005 claim binding boundary"},{"authority":"input_only","facets":["source"],"id":"dual-spec-source","member_kind":"source_declaration","parent":null,"role":"Specification source facet"},{"authority":"input_only","facets":["source"],"id":"dual-impl-source","member_kind":"source_declaration","parent":null,"role":"Implementation source facet"},{"authority":"input_only","facets":["source"],"id":"dual-machine-source","member_kind":"source_declaration","parent":null,"role":"Machine source facet"},{"authority":"input_only","facets":["source"],"id":"dual-game-source","member_kind":"source_declaration","parent":null,"role":"Game source facet"},{"authority":"input_only","facets":["source"],"id":"dual-proof-source","member_kind":"source_declaration","parent":null,"role":"Proof source facet"},{"authority":"unresolved_checker_boundary","facets":["named_judgment"],"id":"dual-judgment","member_kind":"judgment_boundary","parent":null,"role":"Exact named judgment boundary"},{"authority":"later_decision_boundary","facets":["candidate_wide_subject_or_evidence_reference"],"id":"dual-eligible-reference-set","member_kind":"reference_set","parent":null,"role":"Proposed candidate-wide eligible semantic-subject or evidence-reference set"}],"sr_rows":[{"mapping":{"candidate":"ST-DUAL","draft_hypothesis":"Draft hypothesis: ST-DUAL uses dual-spec-elaboration to realize SR-01 (Specification source to Spec Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["dual-spec-elaboration"],"relationship":"SR-01","required_relationship_sha256":"bd4db18dfa1eadebb412152ffdf8beacfb89c5355994c3a0dbeaab8d2f37f62f"},"mapping_sha256":"609fefc470a8d088797e6006a4beaf96fd1245b1f405ef1d5c0a55c21b4eda4c"},{"mapping":{"candidate":"ST-DUAL","draft_hypothesis":"Draft hypothesis: ST-DUAL uses dual-impl-elaboration to realize SR-02 (Implementation source to Impl Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["dual-impl-elaboration"],"relationship":"SR-02","required_relationship_sha256":"a7dddd5d709cfb269823be87a7972824d20d014972302647e09f7f8de125df0f"},"mapping_sha256":"ce62642384d1b36b17e73b3e73c75c1019c3e43ab12edce308b272a360df94b3"},{"mapping":{"candidate":"ST-DUAL","draft_hypothesis":"Draft hypothesis: ST-DUAL uses dual-machine-to-ct to realize SR-03 (Machine source to CT IR); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":"dual-effect-core","inspectability":"separately_inspectable_and_falsifiable","mapping_form":"fused","native_edges":["dual-machine-to-ct"],"relationship":"SR-03","required_relationship_sha256":"8cd73467ff05977c6dfe5af5a27328d5fbc3995c6cde37c552bdbc3b832f97e4"},"mapping_sha256":"00c3bc69719589ffcc7365dbed2691d62c27951950e0a80f30d4ac041701e70d"},{"mapping":{"candidate":"ST-DUAL","draft_hypothesis":"Draft hypothesis: ST-DUAL uses dual-game-elaboration to realize SR-04 (Game source to Game Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":"dual-effect-core","inspectability":"separately_inspectable_and_falsifiable","mapping_form":"fused","native_edges":["dual-game-elaboration"],"relationship":"SR-04","required_relationship_sha256":"ef1c8aab9646b776328f01fda71a85fb199beb2deab3f0fbd95786bb6e689442"},"mapping_sha256":"d56bb981e3b999a69e1971a003817dfe5adf4437c8ee6372d7cf7e428ded4eb9"},{"mapping":{"candidate":"ST-DUAL","draft_hypothesis":"Draft hypothesis: ST-DUAL uses dual-proof-interface to realize SR-05 (Proof source to proof-evidence interface); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["dual-proof-interface"],"relationship":"SR-05","required_relationship_sha256":"5939b3063fd4d6c4d6a57167658e4fcd47c8fb9fc7afcef7a952d86b0d1ff05f"},"mapping_sha256":"9c6925ffa4d01f33babc6240df6efd9a0584bd307120103bbe6b4f2cd21b9a57"},{"mapping":{"candidate":"ST-DUAL","draft_hypothesis":"Draft hypothesis: ST-DUAL uses dual-shared-to-spec to realize SR-06 (Shared Pure into Spec Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["dual-shared-to-spec"],"relationship":"SR-06","required_relationship_sha256":"7601ec025308e0f620f72531f4835c8378b33fc91ded31837222a25720202e57"},"mapping_sha256":"c65d4cfec5bb48113e3d06f21591a2778b4c37bdf10f8f4400b1bee26cce8667"},{"mapping":{"candidate":"ST-DUAL","draft_hypothesis":"Draft hypothesis: ST-DUAL uses dual-shared-to-impl to realize SR-07 (Shared Pure into Impl Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["dual-shared-to-impl"],"relationship":"SR-07","required_relationship_sha256":"2be5b255f09183ed4cc125b48af76bfe87741b320c34bf1374c26e0733766d3c"},"mapping_sha256":"8db34974d473e258913935a50d309dbd0cc00a8db025b7168ebbdb2871383f1e"},{"mapping":{"candidate":"ST-DUAL","draft_hypothesis":"Draft hypothesis: ST-DUAL uses dual-shared-to-game to realize SR-08 (Shared Pure into Game Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["dual-shared-to-game"],"relationship":"SR-08","required_relationship_sha256":"19a30d93ff4e5781faa459f90da11c23e4dcdd4d6df5a017ba55f8d4213e30ca"},"mapping_sha256":"21dc704e0aa09de964b48364dbe54617bf3f37b34fe4d46f2c22e23a551ea6c4"},{"mapping":{"candidate":"ST-DUAL","draft_hypothesis":"Draft hypothesis: ST-DUAL uses dual-impl-to-spec to realize SR-09 (Impl Core to Spec Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["dual-impl-to-spec"],"relationship":"SR-09","required_relationship_sha256":"02a0399ae02219529eb606ce056e4504722e8c565e19e220333a3dfec4281fcc"},"mapping_sha256":"4120d83b66815f82e5ddafd8074a418c6a0073bcdfa94c06961d477af32558ed"},{"mapping":{"candidate":"ST-DUAL","draft_hypothesis":"Draft hypothesis: ST-DUAL uses dual-impl-to-ct to realize SR-10 (Impl Core to CT IR); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["dual-impl-to-ct"],"relationship":"SR-10","required_relationship_sha256":"55ec969a7bc03bc361550ed9b157cefd38049e0ed4cf520fccc10715117d8510"},"mapping_sha256":"d61a5b7d201fe6df5ef5288c80ebd2009b1232f593a0440af42786275972410f"},{"mapping":{"candidate":"ST-DUAL","draft_hypothesis":"Draft hypothesis: ST-DUAL uses dual-ct-to-machine to realize SR-11 (CT IR to Machine IR); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":"dual-effect-core","inspectability":"separately_inspectable_and_falsifiable","mapping_form":"fused","native_edges":["dual-ct-to-machine"],"relationship":"SR-11","required_relationship_sha256":"2e72ac00ddbe7cb6151ab58ae8f49438f75b79bc38c0da1cc6e4a5462d695983"},"mapping_sha256":"107e3b09a2274c232115054e658bf77af22d7bc9d6e43a206d823bd14aa87eb5"},{"mapping":{"candidate":"ST-DUAL","draft_hypothesis":"Draft hypothesis: ST-DUAL uses dual-game-relation to realize SR-12 (Game Core to Game Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":"dual-effect-core","inspectability":"separately_inspectable_and_falsifiable","mapping_form":"fused","native_edges":["dual-game-relation"],"relationship":"SR-12","required_relationship_sha256":"d1fc192d6619e8223e91f9af6e1496c8d6fc6fee31f25ac87a894870981800c8"},"mapping_sha256":"ad5b27b9f52ffe2055f8a818051b5d8a7edfdbb81999140c546b79172c78913a"},{"mapping":{"candidate":"ST-DUAL","draft_hypothesis":"Draft hypothesis: ST-DUAL uses dual-evidence-check to realize SR-13 (Proof evidence to judgment); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["dual-evidence-check"],"relationship":"SR-13","required_relationship_sha256":"170c95dab9f259e63cd2f29f8c79ecd254162c7e8f2e46516918143ebc3ded16"},"mapping_sha256":"923f9ec2ce307592add594c3118e6a03a8e0c6faf950924272702c6885345aab"},{"mapping":{"candidate":"ST-DUAL","draft_hypothesis":"Draft hypothesis: ST-DUAL uses dual-claim-bind to realize SR-14 (Claim record to subject and evidence); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["dual-claim-bind"],"relationship":"SR-14","required_relationship_sha256":"3e3349d3c3c58d962346870ea6d40591d051f5f1d90445fa1ded78ee06b1eddb"},"mapping_sha256":"c47c4240f803b59e1c4dab01e77c2bf58fd9837c831c882444b7274ff7158a9c"}]},"graph_sha256":"13421764df3cf17429b98d0e61b4cfbdc44fb392de73b74c3883d59adcbb1d2a"},{"candidate":"ST-MIRROR","graph":{"architecture":"Five proposed role-mirrored Cores connected by explicit crossings and Shared Pure subset","candidate":"ST-MIRROR","edges":[{"edge_sha256":"f6e30bbc7c0ae67f3fa14b7233e071cc02712fc04fe856839b11b64f384395e9","edge_subject":{"codomain_endpoints":[{"facet":"pure_subject","node":"mirror-spec-core"}],"conformance_status":"unresolved","definedness":"well-formed source resolves exactly one checked pure subject","delegation_boundary":null,"direction":"source_to_semantic_domain","domain_endpoint":{"facet":"source","node":"mirror-spec-source"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject without semantic identity","id":"mirror-spec-elaboration","identity_inputs":"source bytes; language version; elaborator identity","obligations":"preserve pure total meaning; fail without creating identity","observation_requirement":"checked pure subject identity or exact rejection","parameter_slots":["language_version","elaborator_identity"],"prohibited_reverse_inferences":"name equality does not imply semantic equality","relationship":"SR-01","trust_role":"candidate elaborator is proposed trusted path"}},{"edge_sha256":"53f2a276a51ab07265c3efd6f1f5e71d2e61377e3b81e362ca7e6299ff701693","edge_subject":{"codomain_endpoints":[{"facet":"effectful_subject","node":"mirror-impl-core"}],"conformance_status":"unresolved","definedness":"contracts effects memory and typed failures are explicit","delegation_boundary":null,"direction":"source_to_semantic_domain","domain_endpoint":{"facet":"source","node":"mirror-impl-source"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject without effectful identity","id":"mirror-impl-elaboration","identity_inputs":"source bytes; language version; effect model identity","obligations":"preserve contracts effects memory operations and typed failure","observation_requirement":"checked effectful subject identity or exact rejection","parameter_slots":["language_version","effect_model_identity"],"prohibited_reverse_inferences":"shared names do not imply refinement; implementation does not define specification","relationship":"SR-02","trust_role":"candidate implementation elaborator is proposed trusted path"}},{"edge_sha256":"7fc7ecf91401a57772ed0d98dc6e24f3a3daccb711e1f7e6dedaae588f71071f","edge_subject":{"codomain_endpoints":[{"facet":"checked_low_level_subject","node":"mirror-machine-core"}],"conformance_status":"unresolved","definedness":"low-level operations are explicit and unsupported features classified before target lowering","delegation_boundary":null,"direction":"source_to_compilation_domain","domain_endpoint":{"facet":"source","node":"mirror-machine-source"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject or mark unsupported before target lowering","id":"mirror-machine-to-ct","identity_inputs":"source bytes; language version; low-level boundary identity","obligations":"expose memory control flow low-level operations unsupported operations and assumptions","observation_requirement":"checked CT-level identity or exact unsupported/rejection state","parameter_slots":["low_level_boundary_identity","target_model"],"prohibited_reverse_inferences":"machine source cannot bypass checked low-level boundary","relationship":"SR-03","trust_role":"candidate machine elaborator is proposed trusted path"}},{"edge_sha256":"8312f537bb1ec5845e3be5d7e8a7d9cce955b8418a146b0ea7193f792201faf2","edge_subject":{"codomain_endpoints":[{"facet":"probabilistic_experiment","node":"mirror-game-core"}],"conformance_status":"unresolved","definedness":"sampling oracle adversary and bound structure are explicit","delegation_boundary":null,"direction":"source_to_semantic_domain","domain_endpoint":{"facet":"source","node":"mirror-game-source"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject without probabilistic identity","id":"mirror-game-elaboration","identity_inputs":"source bytes; language version; probability model identity","obligations":"preserve sampling oracle adversary and exact bound structure","observation_requirement":"checked experiment identity or exact rejection","parameter_slots":["probability_model_identity"],"prohibited_reverse_inferences":"sampling does not enter pure or implementation meaning","relationship":"SR-04","trust_role":"candidate game elaborator is proposed trusted path"}},{"edge_sha256":"147a6f404779f99c99569404ca023e403e595a09728ea9d155eec354a7d473a7","edge_subject":{"codomain_endpoints":[{"facet":"evidence_interface","node":"mirror-proof-core"}],"conformance_status":"unresolved","definedness":"judgment and all subject identities are explicit","delegation_boundary":null,"direction":"source_to_evidence_interface","domain_endpoint":{"facet":"source","node":"mirror-proof-source"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject without evidence-interface identity","id":"mirror-proof-interface","identity_inputs":"proof bytes; judgment identity; subject identities","obligations":"bind exact judgment and subjects while remaining calculus-neutral and format-neutral","observation_requirement":"evidence-interface identity or exact rejection","parameter_slots":["proof_calculus","proof_format"],"prohibited_reverse_inferences":"interface admission is not proof validity and selects no calculus","relationship":"SR-05","trust_role":"candidate proof elaborator only proposes an evidence binding interface"}},{"edge_sha256":"d79333f4f140f06b5ab8eba47caac4a7b85e448def163974f7d96dd62cf2874b","edge_subject":{"codomain_endpoints":[{"facet":"pure_subject","node":"mirror-spec-core"}],"conformance_status":"unresolved","definedness":"term belongs to versioned Shared Pure subset","delegation_boundary":null,"direction":"subset_inclusion","domain_endpoint":{"facet":"shared_pure_subject","node":"mirror-shared-pure"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject outside subset","id":"mirror-shared-to-spec","identity_inputs":"term identity; subset version; Spec domain identity","obligations":"be total on subset and exclude effects state and sampling","observation_requirement":"included pure subject identity or exact rejection","parameter_slots":["shared_pure_version"],"prohibited_reverse_inferences":"subset executability does not create universal Core","relationship":"SR-06","trust_role":"candidate inclusion definition is proposed for review"}},{"edge_sha256":"f1088904fc0f8a7ae71d192f6282a2efd6fdf6c722f1a71420cc41283a4bac18","edge_subject":{"codomain_endpoints":[{"facet":"embedded_pure_subject","node":"mirror-impl-core"}],"conformance_status":"unresolved","definedness":"embedding is explicit and source identity fixed","delegation_boundary":null,"direction":"explicit_embedding","domain_endpoint":{"facet":"shared_pure_subject","node":"mirror-shared-pure"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject when state or effects would be imported","id":"mirror-shared-to-impl","identity_inputs":"pure subject identity; embedding version; Impl domain identity","obligations":"preserve deterministic pure meaning and introduce no state or ambient effects","observation_requirement":"embedded identity and effect-free boundary observation","parameter_slots":["embedding_version","effect_model_identity"],"prohibited_reverse_inferences":"shared names do not infer refinement and embedding does not authorize state","relationship":"SR-07","trust_role":"candidate embedding definition is proposed for review"}},{"edge_sha256":"a777afad24da86dcd89345d5756f41ef1c87dba020b31ed2516d336b6173cabf","edge_subject":{"codomain_endpoints":[{"facet":"embedded_deterministic_subject","node":"mirror-game-core"}],"conformance_status":"unresolved","definedness":"embedding is explicit and source identity fixed","delegation_boundary":null,"direction":"explicit_embedding","domain_endpoint":{"facet":"shared_pure_subject","node":"mirror-shared-pure"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject when randomness would alter deterministic meaning","id":"mirror-shared-to-game","identity_inputs":"pure subject identity; embedding version; Game domain identity","obligations":"preserve deterministic meaning and introduce no ambient randomness","observation_requirement":"embedded identity and randomness-free boundary observation","parameter_slots":["embedding_version","probability_model_identity"],"prohibited_reverse_inferences":"embedding does not establish probabilistic equivalence","relationship":"SR-08","trust_role":"candidate embedding definition is proposed for review"}},{"edge_sha256":"ee6d937139784c0c0c2223547cc916621f96d898461bac2cdf6931d049b99f80","edge_subject":{"codomain_endpoints":[{"facet":"pure_subject","node":"mirror-spec-core"}],"conformance_status":"unresolved","definedness":"both exact subjects and named relation are present","delegation_boundary":null,"direction":"named_refinement_obligation","domain_endpoint":{"facet":"effectful_subject","node":"mirror-impl-core"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"leave exact obligation unsatisfied or reject","id":"mirror-impl-to-spec","identity_inputs":"Impl identity; Spec identity; relation identity; model identity","obligations":"state explicit refinement obligation and retain assumptions and failure conditions","observation_requirement":"exact refinement obligation identity and state","parameter_slots":["refinement_model","relation_version"],"prohibited_reverse_inferences":"equal names never imply refinement and implementation never defines specification","relationship":"SR-09","trust_role":"candidate relation generator is proposed and evidence remains external"}},{"edge_sha256":"f1eb8debee4c537062323af5c918ec15b307144db3f43a392a8f32e87ec07473","edge_subject":{"codomain_endpoints":[{"facet":"checked_low_level_subject","node":"mirror-machine-core"}],"conformance_status":"unresolved","definedness":"ghost and runtime data are distinguished and lowering premises explicit","delegation_boundary":null,"direction":"semantics_preserving_lowering","domain_endpoint":{"facet":"effectful_subject","node":"mirror-impl-core"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"invalidate dependent results on failed preservation","id":"mirror-impl-to-ct","identity_inputs":"Impl identity; lowering identity; CT model identity","obligations":"erase ghost data without runtime effect and preserve runtime meaning","observation_requirement":"lowered identity and preservation-obligation state","parameter_slots":["lowering_version","ct_model"],"prohibited_reverse_inferences":"byte conversion is not preservation and ghost data cannot affect runtime","relationship":"SR-10","trust_role":"candidate lowering and preservation argument are proposed for review"}},{"edge_sha256":"c76b739d76127c046d03cc2530fbb237a5133a04670421fe57a5bcd7e31f101b","edge_subject":{"codomain_endpoints":[{"facet":"target_indexed_subject","node":"mirror-machine-core"}],"conformance_status":"unresolved","definedness":"target and ABI parameters are explicit or unresolved","delegation_boundary":null,"direction":"target_parameterized_lowering","domain_endpoint":{"facet":"checked_low_level_subject","node":"mirror-machine-core"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"return unsupported or reject without fallback claims","id":"mirror-ct-to-machine","identity_inputs":"CT identity; target-model identity; lowering identity; ABI identity","obligations":"record unsupported operations and target assumptions without fallback claims","observation_requirement":"target-indexed identity or exact unsupported/rejection state","parameter_slots":["target_model","abi_model"],"prohibited_reverse_inferences":"machine observations do not become specification meaning","relationship":"SR-11","trust_role":"candidate target lowering is proposed while D-011 and D-013 remain open"}},{"edge_sha256":"ea393f06ab683808cb8ccefc8cff2e4e032f5bad402287e7a35e68bd493662dc","edge_subject":{"codomain_endpoints":[{"facet":"right_experiment","node":"mirror-game-core"}],"conformance_status":"unresolved","definedness":"both experiment identities and exact bound expression are present","delegation_boundary":null,"direction":"named_probabilistic_relation","domain_endpoint":{"facet":"left_experiment","node":"mirror-game-core"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"leave exact relation unsatisfied or reject","id":"mirror-game-relation","identity_inputs":"left identity; right identity; relation identity; bound identity","obligations":"preserve exact bound and name reduction or equivalence explicitly","observation_requirement":"exact probabilistic-relation identity and bound","parameter_slots":["probability_model","bound_model"],"prohibited_reverse_inferences":"reduction is not unbounded equality and prose similarity is not equivalence","relationship":"SR-12","trust_role":"candidate probabilistic relation is proposed and proof policy remains open"}},{"edge_sha256":"94b2b95c092e5abd3c55a74bbbf107f4a41c9b52ef7199d9e3f4c9986350dd04","edge_subject":{"codomain_endpoints":[{"facet":"named_judgment","node":"mirror-judgment"}],"conformance_status":"unresolved","definedness":"checker policy remains open and all semantic identities are exact","delegation_boundary":null,"direction":"identity_bound_checking","domain_endpoint":{"facet":"evidence_reference","node":"mirror-proof-core"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"unknown or reject on absent or mismatched evidence or identity","id":"mirror-evidence-check","identity_inputs":"evidence identity; judgment identity; Core and IR identities; relation model version identities","obligations":"bind evidence to every exact identity and reject substitution","observation_requirement":"identity-bound checking state without validity claim","parameter_slots":["checker_policy","proof_calculus","proof_format"],"prohibited_reverse_inferences":"evidence presence is not validity and format conversion is not proof preservation","relationship":"SR-13","trust_role":"candidate exposes checker boundary while D-006 and D-007 remain open"}},{"edge_sha256":"b8490a7f98f9877229bc9f329aef0f5a7eb6b6268773fee94e03e7cbb2ff23d3","edge_subject":{"codomain_endpoints":[{"facet":"candidate_wide_subject_or_evidence_reference","node":"mirror-eligible-reference-set"}],"conformance_status":"unresolved","definedness":"claim schema remains open and all references are exact","delegation_boundary":null,"direction":"claim_binding","domain_endpoint":{"facet":"claim_record","node":"mirror-claim-binding"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"retain non-success state and invalidate dependent credit","id":"mirror-claim-bind","identity_inputs":"claim identity; subject identity; relation identity; evidence identity","obligations":"preserve failed missing unknown unsupported states and never upgrade assurance","observation_requirement":"exact claim-binding state without capability credit","parameter_slots":["claim_model","evidence_policy"],"prohibited_reverse_inferences":"claim presence does not establish truth and failed relations cannot be upgraded","relationship":"SR-14","trust_role":"candidate exposes binding boundary and D-005 remains authoritative"}}],"nodes":[{"authority":"candidate_local","facets":["shared_pure_subject"],"id":"mirror-shared-pure","member_kind":"shared_subset","parent":"mirror-spec-core","role":"Proposed Shared Pure subset"},{"authority":"candidate_local","facets":["pure_subject"],"id":"mirror-spec-core","member_kind":"semantic_domain","parent":null,"role":"Proposed Specification-mirrored Core"},{"authority":"candidate_local","facets":["effectful_subject","embedded_pure_subject"],"id":"mirror-impl-core","member_kind":"semantic_domain","parent":null,"role":"Proposed Implementation-mirrored Core"},{"authority":"candidate_local","facets":["checked_low_level_subject","target_indexed_subject"],"id":"mirror-machine-core","member_kind":"semantic_domain","parent":null,"role":"Proposed Machine-mirrored Core"},{"authority":"candidate_local","facets":["embedded_deterministic_subject","left_experiment","probabilistic_experiment","right_experiment"],"id":"mirror-game-core","member_kind":"semantic_domain","parent":null,"role":"Proposed Game-mirrored Core"},{"authority":"candidate_local","facets":["evidence_interface","evidence_reference"],"id":"mirror-proof-core","member_kind":"semantic_domain","parent":null,"role":"Proposed Proof-mirrored Core"},{"authority":"later_decision_boundary","facets":["claim_record"],"id":"mirror-claim-binding","member_kind":"claim_boundary","parent":null,"role":"Later D-005 claim binding boundary"},{"authority":"input_only","facets":["source"],"id":"mirror-spec-source","member_kind":"source_declaration","parent":null,"role":"Specification source facet"},{"authority":"input_only","facets":["source"],"id":"mirror-impl-source","member_kind":"source_declaration","parent":null,"role":"Implementation source facet"},{"authority":"input_only","facets":["source"],"id":"mirror-machine-source","member_kind":"source_declaration","parent":null,"role":"Machine source facet"},{"authority":"input_only","facets":["source"],"id":"mirror-game-source","member_kind":"source_declaration","parent":null,"role":"Game source facet"},{"authority":"input_only","facets":["source"],"id":"mirror-proof-source","member_kind":"source_declaration","parent":null,"role":"Proof source facet"},{"authority":"unresolved_checker_boundary","facets":["named_judgment"],"id":"mirror-judgment","member_kind":"judgment_boundary","parent":null,"role":"Exact named judgment boundary"},{"authority":"later_decision_boundary","facets":["candidate_wide_subject_or_evidence_reference"],"id":"mirror-eligible-reference-set","member_kind":"reference_set","parent":null,"role":"Proposed candidate-wide eligible semantic-subject or evidence-reference set"}],"sr_rows":[{"mapping":{"candidate":"ST-MIRROR","draft_hypothesis":"Draft hypothesis: ST-MIRROR uses mirror-spec-elaboration to realize SR-01 (Specification source to Spec Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["mirror-spec-elaboration"],"relationship":"SR-01","required_relationship_sha256":"bd4db18dfa1eadebb412152ffdf8beacfb89c5355994c3a0dbeaab8d2f37f62f"},"mapping_sha256":"ec530e11a4b8a985445953bf2a55e66985b4f03fe7dae7aa7974b34b8cd7b13c"},{"mapping":{"candidate":"ST-MIRROR","draft_hypothesis":"Draft hypothesis: ST-MIRROR uses mirror-impl-elaboration to realize SR-02 (Implementation source to Impl Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["mirror-impl-elaboration"],"relationship":"SR-02","required_relationship_sha256":"a7dddd5d709cfb269823be87a7972824d20d014972302647e09f7f8de125df0f"},"mapping_sha256":"4a911d50d89e7428ac8f67290cf557df8d7183b220eeb933d4500078f99fde0d"},{"mapping":{"candidate":"ST-MIRROR","draft_hypothesis":"Draft hypothesis: ST-MIRROR uses mirror-machine-to-ct to realize SR-03 (Machine source to CT IR); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["mirror-machine-to-ct"],"relationship":"SR-03","required_relationship_sha256":"8cd73467ff05977c6dfe5af5a27328d5fbc3995c6cde37c552bdbc3b832f97e4"},"mapping_sha256":"2adfb5cdf86a99e178b5f05fbfc06fd8346cd9419230fd6133276485ebcec4b8"},{"mapping":{"candidate":"ST-MIRROR","draft_hypothesis":"Draft hypothesis: ST-MIRROR uses mirror-game-elaboration to realize SR-04 (Game source to Game Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["mirror-game-elaboration"],"relationship":"SR-04","required_relationship_sha256":"ef1c8aab9646b776328f01fda71a85fb199beb2deab3f0fbd95786bb6e689442"},"mapping_sha256":"a86af539699f630f2a0074accc531f7b915c61b536a84daf7821a50724bfc786"},{"mapping":{"candidate":"ST-MIRROR","draft_hypothesis":"Draft hypothesis: ST-MIRROR uses mirror-proof-interface to realize SR-05 (Proof source to proof-evidence interface); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["mirror-proof-interface"],"relationship":"SR-05","required_relationship_sha256":"5939b3063fd4d6c4d6a57167658e4fcd47c8fb9fc7afcef7a952d86b0d1ff05f"},"mapping_sha256":"ef5bf51f2c776a44038af94ef843cf68ebd9e157addb3a6b60d9f5aa5ec51b1e"},{"mapping":{"candidate":"ST-MIRROR","draft_hypothesis":"Draft hypothesis: ST-MIRROR uses mirror-shared-to-spec to realize SR-06 (Shared Pure into Spec Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["mirror-shared-to-spec"],"relationship":"SR-06","required_relationship_sha256":"7601ec025308e0f620f72531f4835c8378b33fc91ded31837222a25720202e57"},"mapping_sha256":"311e251f4fc180ede7d7e246a42fae0f93c9da850ce0508aaf4566da95d3c7ae"},{"mapping":{"candidate":"ST-MIRROR","draft_hypothesis":"Draft hypothesis: ST-MIRROR uses mirror-shared-to-impl to realize SR-07 (Shared Pure into Impl Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["mirror-shared-to-impl"],"relationship":"SR-07","required_relationship_sha256":"2be5b255f09183ed4cc125b48af76bfe87741b320c34bf1374c26e0733766d3c"},"mapping_sha256":"0dc68ab543d73fb74911492f75b2cdc56875b19543200f104ae68887e8d2c456"},{"mapping":{"candidate":"ST-MIRROR","draft_hypothesis":"Draft hypothesis: ST-MIRROR uses mirror-shared-to-game to realize SR-08 (Shared Pure into Game Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["mirror-shared-to-game"],"relationship":"SR-08","required_relationship_sha256":"19a30d93ff4e5781faa459f90da11c23e4dcdd4d6df5a017ba55f8d4213e30ca"},"mapping_sha256":"0d5a7d3f51a6d74f04c3748f6e70fa1b247ce2f0fb24c5c48903488bf9bb1033"},{"mapping":{"candidate":"ST-MIRROR","draft_hypothesis":"Draft hypothesis: ST-MIRROR uses mirror-impl-to-spec to realize SR-09 (Impl Core to Spec Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["mirror-impl-to-spec"],"relationship":"SR-09","required_relationship_sha256":"02a0399ae02219529eb606ce056e4504722e8c565e19e220333a3dfec4281fcc"},"mapping_sha256":"3d0b0563ac9ce5f57ffd8bad71869970404fd3465ec3a998ebb15192b27712d6"},{"mapping":{"candidate":"ST-MIRROR","draft_hypothesis":"Draft hypothesis: ST-MIRROR uses mirror-impl-to-ct to realize SR-10 (Impl Core to CT IR); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["mirror-impl-to-ct"],"relationship":"SR-10","required_relationship_sha256":"55ec969a7bc03bc361550ed9b157cefd38049e0ed4cf520fccc10715117d8510"},"mapping_sha256":"8a58c2840b223991ed9611a8168c88128f32cef05dec1adbcf72acfdcc1becf6"},{"mapping":{"candidate":"ST-MIRROR","draft_hypothesis":"Draft hypothesis: ST-MIRROR uses mirror-ct-to-machine to realize SR-11 (CT IR to Machine IR); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["mirror-ct-to-machine"],"relationship":"SR-11","required_relationship_sha256":"2e72ac00ddbe7cb6151ab58ae8f49438f75b79bc38c0da1cc6e4a5462d695983"},"mapping_sha256":"2bb48725110c4d959e9b92d47618b7f24b196be5d5797da59f1144f0253a7a13"},{"mapping":{"candidate":"ST-MIRROR","draft_hypothesis":"Draft hypothesis: ST-MIRROR uses mirror-game-relation to realize SR-12 (Game Core to Game Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["mirror-game-relation"],"relationship":"SR-12","required_relationship_sha256":"d1fc192d6619e8223e91f9af6e1496c8d6fc6fee31f25ac87a894870981800c8"},"mapping_sha256":"70726112eaa961e20ae9d9a5abd1014d09e358c8d0d9d255b560d7aedd353717"},{"mapping":{"candidate":"ST-MIRROR","draft_hypothesis":"Draft hypothesis: ST-MIRROR uses mirror-evidence-check to realize SR-13 (Proof evidence to judgment); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["mirror-evidence-check"],"relationship":"SR-13","required_relationship_sha256":"170c95dab9f259e63cd2f29f8c79ecd254162c7e8f2e46516918143ebc3ded16"},"mapping_sha256":"85e4de0d9376761d922381b7c6d34ab913f2e7d1cabed9257f2b085759491909"},{"mapping":{"candidate":"ST-MIRROR","draft_hypothesis":"Draft hypothesis: ST-MIRROR uses mirror-claim-bind to realize SR-14 (Claim record to subject and evidence); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["mirror-claim-bind"],"relationship":"SR-14","required_relationship_sha256":"3e3349d3c3c58d962346870ea6d40591d051f5f1d90445fa1ded78ee06b1eddb"},"mapping_sha256":"5dd14e999099bca203bd0b0fddb2b6fa3d15c7dfbd619eb4c117dc08bcd626cc"}]},"graph_sha256":"631927587779651d47f2281c8800b8b73082a9d3b23183a84274c8fc8e177453"},{"candidate":"ST-HOST","graph":{"architecture":"Proposed local deterministic Orange domains with explicit host-delegated game proof or machine boundaries","candidate":"ST-HOST","edges":[{"edge_sha256":"3e64e6a1b73f07489bbde33fa66f0c7608afa98bcae65e3ffd26a0631cef99a0","edge_subject":{"codomain_endpoints":[{"facet":"pure_subject","node":"host-orange-pure"}],"conformance_status":"unresolved","definedness":"well-formed source resolves exactly one checked pure subject","delegation_boundary":null,"direction":"source_to_semantic_domain","domain_endpoint":{"facet":"source","node":"host-spec-source"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject without semantic identity","id":"host-spec-elaboration","identity_inputs":"source bytes; language version; elaborator identity","obligations":"preserve pure total meaning; fail without creating identity","observation_requirement":"checked pure subject identity or exact rejection","parameter_slots":["language_version","elaborator_identity"],"prohibited_reverse_inferences":"name equality does not imply semantic equality","relationship":"SR-01","trust_role":"candidate elaborator is proposed trusted path"}},{"edge_sha256":"572a35b3d684ec9f351b061bd9afdb684fc56fd70761e216412e6cd5dcab7a72","edge_subject":{"codomain_endpoints":[{"facet":"effectful_subject","node":"host-orange-impl"}],"conformance_status":"unresolved","definedness":"contracts effects memory and typed failures are explicit","delegation_boundary":null,"direction":"source_to_semantic_domain","domain_endpoint":{"facet":"source","node":"host-impl-source"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject without effectful identity","id":"host-impl-elaboration","identity_inputs":"source bytes; language version; effect model identity","obligations":"preserve contracts effects memory operations and typed failure","observation_requirement":"checked effectful subject identity or exact rejection","parameter_slots":["language_version","effect_model_identity"],"prohibited_reverse_inferences":"shared names do not imply refinement; implementation does not define specification","relationship":"SR-02","trust_role":"candidate implementation elaborator is proposed trusted path"}},{"edge_sha256":"49609fea4da63fc082e9c625d6bee5babeca079b21058c2a3185e758456b6344","edge_subject":{"codomain_endpoints":[{"facet":"checked_low_level_subject","node":"host-orange-ct"}],"conformance_status":"unresolved","definedness":"low-level operations are explicit and unsupported features classified before target lowering","delegation_boundary":null,"direction":"source_to_compilation_domain","domain_endpoint":{"facet":"source","node":"host-machine-source"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject or mark unsupported before target lowering","id":"host-machine-to-ct","identity_inputs":"source bytes; language version; low-level boundary identity","obligations":"expose memory control flow low-level operations unsupported operations and assumptions","observation_requirement":"checked CT-level identity or exact unsupported/rejection state","parameter_slots":["low_level_boundary_identity","target_model"],"prohibited_reverse_inferences":"machine source cannot bypass checked low-level boundary","relationship":"SR-03","trust_role":"candidate machine elaborator is proposed trusted path"}},{"edge_sha256":"21f267cdd04732d5c873c63dc5e9281f6e671a635d3ac9d7f02513864f2c173d","edge_subject":{"codomain_endpoints":[{"facet":"probabilistic_experiment","node":"host-game-domain"}],"conformance_status":"unresolved","definedness":"sampling oracle adversary and bound structure are explicit","delegation_boundary":{"host_identity_parameter":"game_host_identity","non_success_behavior":"reject_or_unsupported_without_fallback_claim","selector_parameter":"game_delegation_selector"},"direction":"source_to_semantic_domain","domain_endpoint":{"facet":"source","node":"host-game-source"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject without probabilistic identity","id":"host-game-elaboration","identity_inputs":"source bytes; language version; probability model identity","obligations":"preserve sampling oracle adversary and exact bound structure","observation_requirement":"checked experiment identity or exact rejection","parameter_slots":["probability_model_identity","game_delegation_selector","game_host_identity","game_non_success_policy"],"prohibited_reverse_inferences":"sampling does not enter pure or implementation meaning","relationship":"SR-04","trust_role":"candidate game elaborator is proposed trusted path"}},{"edge_sha256":"40bb0c82a3abc15b1f352aa8cf118ef1267e878aa508e2a135322b7d7a492ccc","edge_subject":{"codomain_endpoints":[{"facet":"evidence_interface","node":"host-proof-domain"}],"conformance_status":"unresolved","definedness":"judgment and all subject identities are explicit","delegation_boundary":{"host_identity_parameter":"proof_host_identity","non_success_behavior":"reject_or_unsupported_without_fallback_claim","selector_parameter":"proof_delegation_selector"},"direction":"source_to_evidence_interface","domain_endpoint":{"facet":"source","node":"host-proof-source"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject without evidence-interface identity","id":"host-proof-interface","identity_inputs":"proof bytes; judgment identity; subject identities","obligations":"bind exact judgment and subjects while remaining calculus-neutral and format-neutral","observation_requirement":"evidence-interface identity or exact rejection","parameter_slots":["proof_calculus","proof_format","proof_delegation_selector","proof_host_identity","proof_non_success_policy"],"prohibited_reverse_inferences":"interface admission is not proof validity and selects no calculus","relationship":"SR-05","trust_role":"candidate proof elaborator only proposes an evidence binding interface"}},{"edge_sha256":"96e0e9bd2b0f8e648306ca6344419d38f05ed1e012d9dc0f027911b2669a8db1","edge_subject":{"codomain_endpoints":[{"facet":"pure_subject","node":"host-orange-pure"}],"conformance_status":"unresolved","definedness":"term belongs to versioned Shared Pure subset","delegation_boundary":null,"direction":"subset_inclusion","domain_endpoint":{"facet":"shared_pure_subject","node":"host-orange-pure"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject outside subset","id":"host-shared-to-spec","identity_inputs":"term identity; subset version; Spec domain identity","obligations":"be total on subset and exclude effects state and sampling","observation_requirement":"included pure subject identity or exact rejection","parameter_slots":["shared_pure_version"],"prohibited_reverse_inferences":"subset executability does not create universal Core","relationship":"SR-06","trust_role":"candidate inclusion definition is proposed for review"}},{"edge_sha256":"7a9a3695f252aab08d82a1f0cf7b418912300bae300676c8c7a6a323718dcb7f","edge_subject":{"codomain_endpoints":[{"facet":"embedded_pure_subject","node":"host-orange-impl"}],"conformance_status":"unresolved","definedness":"embedding is explicit and source identity fixed","delegation_boundary":null,"direction":"explicit_embedding","domain_endpoint":{"facet":"shared_pure_subject","node":"host-orange-pure"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject when state or effects would be imported","id":"host-shared-to-impl","identity_inputs":"pure subject identity; embedding version; Impl domain identity","obligations":"preserve deterministic pure meaning and introduce no state or ambient effects","observation_requirement":"embedded identity and effect-free boundary observation","parameter_slots":["embedding_version","effect_model_identity"],"prohibited_reverse_inferences":"shared names do not infer refinement and embedding does not authorize state","relationship":"SR-07","trust_role":"candidate embedding definition is proposed for review"}},{"edge_sha256":"9b7d189201cf142fdcade8ecd69a6bac10f9ffeeb002a95d1958a3aba47e7da9","edge_subject":{"codomain_endpoints":[{"facet":"embedded_deterministic_subject","node":"host-game-domain"}],"conformance_status":"unresolved","definedness":"embedding is explicit and source identity fixed","delegation_boundary":{"host_identity_parameter":"game_host_identity","non_success_behavior":"reject_or_unsupported_without_fallback_claim","selector_parameter":"game_delegation_selector"},"direction":"explicit_embedding","domain_endpoint":{"facet":"shared_pure_subject","node":"host-orange-pure"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"reject when randomness would alter deterministic meaning","id":"host-shared-to-game","identity_inputs":"pure subject identity; embedding version; Game domain identity","obligations":"preserve deterministic meaning and introduce no ambient randomness","observation_requirement":"embedded identity and randomness-free boundary observation","parameter_slots":["embedding_version","probability_model_identity","game_delegation_selector","game_host_identity","game_non_success_policy"],"prohibited_reverse_inferences":"embedding does not establish probabilistic equivalence","relationship":"SR-08","trust_role":"candidate embedding definition is proposed for review"}},{"edge_sha256":"f45882ce20f824f0f6bae3709cfe84f866fe2120cb1fe429d52c65ca8ffe0b88","edge_subject":{"codomain_endpoints":[{"facet":"pure_subject","node":"host-orange-pure"}],"conformance_status":"unresolved","definedness":"both exact subjects and named relation are present","delegation_boundary":null,"direction":"named_refinement_obligation","domain_endpoint":{"facet":"effectful_subject","node":"host-orange-impl"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"leave exact obligation unsatisfied or reject","id":"host-impl-to-spec","identity_inputs":"Impl identity; Spec identity; relation identity; model identity","obligations":"state explicit refinement obligation and retain assumptions and failure conditions","observation_requirement":"exact refinement obligation identity and state","parameter_slots":["refinement_model","relation_version"],"prohibited_reverse_inferences":"equal names never imply refinement and implementation never defines specification","relationship":"SR-09","trust_role":"candidate relation generator is proposed and evidence remains external"}},{"edge_sha256":"cbdb98e6e65800d49777456aef45a98fa45cc40084ce87c8613266f8a1388e19","edge_subject":{"codomain_endpoints":[{"facet":"checked_low_level_subject","node":"host-orange-ct"}],"conformance_status":"unresolved","definedness":"ghost and runtime data are distinguished and lowering premises explicit","delegation_boundary":null,"direction":"semantics_preserving_lowering","domain_endpoint":{"facet":"effectful_subject","node":"host-orange-impl"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"invalidate dependent results on failed preservation","id":"host-impl-to-ct","identity_inputs":"Impl identity; lowering identity; CT model identity","obligations":"erase ghost data without runtime effect and preserve runtime meaning","observation_requirement":"lowered identity and preservation-obligation state","parameter_slots":["lowering_version","ct_model"],"prohibited_reverse_inferences":"byte conversion is not preservation and ghost data cannot affect runtime","relationship":"SR-10","trust_role":"candidate lowering and preservation argument are proposed for review"}},{"edge_sha256":"06d16e0dc457dde1773109731fa921c7340b6a808c908d7a893b1cb3f1c36c66","edge_subject":{"codomain_endpoints":[{"facet":"target_indexed_subject","node":"host-machine-domain"}],"conformance_status":"unresolved","definedness":"target and ABI parameters are explicit or unresolved","delegation_boundary":{"host_identity_parameter":"machine_host_identity","non_success_behavior":"reject_or_unsupported_without_fallback_claim","selector_parameter":"machine_delegation_selector"},"direction":"target_parameterized_lowering","domain_endpoint":{"facet":"checked_low_level_subject","node":"host-orange-ct"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"return unsupported or reject without fallback claims","id":"host-ct-to-machine","identity_inputs":"CT identity; target-model identity; lowering identity; ABI identity","obligations":"record unsupported operations and target assumptions without fallback claims","observation_requirement":"target-indexed identity or exact unsupported/rejection state","parameter_slots":["target_model","abi_model","machine_delegation_selector","machine_host_identity","machine_non_success_policy"],"prohibited_reverse_inferences":"machine observations do not become specification meaning","relationship":"SR-11","trust_role":"candidate target lowering is proposed while D-011 and D-013 remain open"}},{"edge_sha256":"1cb529cc879b78eee389b456f8c8c1ff31dc08d362cb6e0e9afe354460d596e1","edge_subject":{"codomain_endpoints":[{"facet":"right_experiment","node":"host-game-domain"}],"conformance_status":"unresolved","definedness":"both experiment identities and exact bound expression are present","delegation_boundary":{"host_identity_parameter":"game_host_identity","non_success_behavior":"reject_or_unsupported_without_fallback_claim","selector_parameter":"game_delegation_selector"},"direction":"named_probabilistic_relation","domain_endpoint":{"facet":"left_experiment","node":"host-game-domain"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"leave exact relation unsatisfied or reject","id":"host-game-relation","identity_inputs":"left identity; right identity; relation identity; bound identity","obligations":"preserve exact bound and name reduction or equivalence explicitly","observation_requirement":"exact probabilistic-relation identity and bound","parameter_slots":["probability_model","bound_model","game_delegation_selector","game_host_identity","game_non_success_policy"],"prohibited_reverse_inferences":"reduction is not unbounded equality and prose similarity is not equivalence","relationship":"SR-12","trust_role":"candidate probabilistic relation is proposed and proof policy remains open"}},{"edge_sha256":"f16766ea14c72972b410d36202e940059c9a7d43db1fc34da9c9d87835c586cb","edge_subject":{"codomain_endpoints":[{"facet":"named_judgment","node":"host-judgment"}],"conformance_status":"unresolved","definedness":"checker policy remains open and all semantic identities are exact","delegation_boundary":{"host_identity_parameter":"proof_host_identity","non_success_behavior":"reject_or_unsupported_without_fallback_claim","selector_parameter":"proof_delegation_selector"},"direction":"identity_bound_checking","domain_endpoint":{"facet":"evidence_reference","node":"host-proof-domain"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"unknown or reject on absent or mismatched evidence or identity","id":"host-evidence-check","identity_inputs":"evidence identity; judgment identity; Core and IR identities; relation model version identities","obligations":"bind evidence to every exact identity and reject substitution","observation_requirement":"identity-bound checking state without validity claim","parameter_slots":["checker_policy","proof_calculus","proof_format","proof_delegation_selector","proof_host_identity","proof_non_success_policy"],"prohibited_reverse_inferences":"evidence presence is not validity and format conversion is not proof preservation","relationship":"SR-13","trust_role":"candidate exposes checker boundary while D-006 and D-007 remain open"}},{"edge_sha256":"17538a99ec892eb5cb37c56bac587f112ad42ec2616f092de944e3dd981b8aae","edge_subject":{"codomain_endpoints":[{"facet":"candidate_wide_subject_or_evidence_reference","node":"host-eligible-reference-set"}],"conformance_status":"unresolved","definedness":"claim schema remains open and all references are exact","delegation_boundary":null,"direction":"claim_binding","domain_endpoint":{"facet":"claim_record","node":"host-claim-binding"},"draft_status":"draft_unreviewed_unfrozen_hypothesis","failure_behavior":"retain non-success state and invalidate dependent credit","id":"host-claim-bind","identity_inputs":"claim identity; subject identity; relation identity; evidence identity","obligations":"preserve failed missing unknown unsupported states and never upgrade assurance","observation_requirement":"exact claim-binding state without capability credit","parameter_slots":["claim_model","evidence_policy"],"prohibited_reverse_inferences":"claim presence does not establish truth and failed relations cannot be upgraded","relationship":"SR-14","trust_role":"candidate exposes binding boundary and D-005 remains authoritative"}}],"nodes":[{"authority":"candidate_local","facets":["pure_subject","shared_pure_subject"],"id":"host-orange-pure","member_kind":"semantic_domain","parent":null,"role":"Proposed local Orange pure domain"},{"authority":"candidate_local","facets":["effectful_subject","embedded_pure_subject"],"id":"host-orange-impl","member_kind":"semantic_domain","parent":null,"role":"Proposed local Orange implementation domain"},{"authority":"candidate_local","facets":["checked_low_level_subject"],"id":"host-orange-ct","member_kind":"semantic_domain","parent":null,"role":"Proposed local checked low-level boundary"},{"authority":"host_delegated","facets":["embedded_deterministic_subject","left_experiment","probabilistic_experiment","right_experiment"],"id":"host-game-domain","member_kind":"host_delegated_domain","parent":null,"role":"Proposed external probabilistic host domain"},{"authority":"host_delegated","facets":["evidence_interface","evidence_reference"],"id":"host-proof-domain","member_kind":"host_delegated_domain","parent":null,"role":"Proposed external proof host boundary"},{"authority":"host_delegated","facets":["target_indexed_subject"],"id":"host-machine-domain","member_kind":"host_delegated_domain","parent":null,"role":"Proposed external target host domain"},{"authority":"later_decision_boundary","facets":["claim_record"],"id":"host-claim-binding","member_kind":"claim_boundary","parent":null,"role":"Later D-005 claim binding boundary"},{"authority":"input_only","facets":["source"],"id":"host-spec-source","member_kind":"source_declaration","parent":null,"role":"Specification source facet"},{"authority":"input_only","facets":["source"],"id":"host-impl-source","member_kind":"source_declaration","parent":null,"role":"Implementation source facet"},{"authority":"input_only","facets":["source"],"id":"host-machine-source","member_kind":"source_declaration","parent":null,"role":"Machine source facet"},{"authority":"input_only","facets":["source"],"id":"host-game-source","member_kind":"source_declaration","parent":null,"role":"Game source facet"},{"authority":"input_only","facets":["source"],"id":"host-proof-source","member_kind":"source_declaration","parent":null,"role":"Proof source facet"},{"authority":"unresolved_checker_boundary","facets":["named_judgment"],"id":"host-judgment","member_kind":"judgment_boundary","parent":"host-proof-domain","role":"Exact named judgment boundary"},{"authority":"later_decision_boundary","facets":["candidate_wide_subject_or_evidence_reference"],"id":"host-eligible-reference-set","member_kind":"reference_set","parent":null,"role":"Proposed candidate-wide eligible semantic-subject or evidence-reference set"}],"sr_rows":[{"mapping":{"candidate":"ST-HOST","draft_hypothesis":"Draft hypothesis: ST-HOST uses host-spec-elaboration to realize SR-01 (Specification source to Spec Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["host-spec-elaboration"],"relationship":"SR-01","required_relationship_sha256":"bd4db18dfa1eadebb412152ffdf8beacfb89c5355994c3a0dbeaab8d2f37f62f"},"mapping_sha256":"d21a2fce089e6762ea00980e5d2d7c0c85b14913461605c0f070c4c83c5f20f5"},{"mapping":{"candidate":"ST-HOST","draft_hypothesis":"Draft hypothesis: ST-HOST uses host-impl-elaboration to realize SR-02 (Implementation source to Impl Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["host-impl-elaboration"],"relationship":"SR-02","required_relationship_sha256":"a7dddd5d709cfb269823be87a7972824d20d014972302647e09f7f8de125df0f"},"mapping_sha256":"08e7274f1cbdcf706f28c5631ea75dfced192d7ddf56798dd5250977a0646e49"},{"mapping":{"candidate":"ST-HOST","draft_hypothesis":"Draft hypothesis: ST-HOST uses host-machine-to-ct to realize SR-03 (Machine source to CT IR); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["host-machine-to-ct"],"relationship":"SR-03","required_relationship_sha256":"8cd73467ff05977c6dfe5af5a27328d5fbc3995c6cde37c552bdbc3b832f97e4"},"mapping_sha256":"538bc54b3de09a9ec797149f4c4ce5490cee04775c4b2979edcf190f2dc91ad1"},{"mapping":{"candidate":"ST-HOST","draft_hypothesis":"Draft hypothesis: ST-HOST uses host-game-elaboration to realize SR-04 (Game source to Game Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"delegated","native_edges":["host-game-elaboration"],"relationship":"SR-04","required_relationship_sha256":"ef1c8aab9646b776328f01fda71a85fb199beb2deab3f0fbd95786bb6e689442"},"mapping_sha256":"0781cbb44176dcbae6d484e6ab1441c539aef9a3f0f911cab2da0a19b20ce0ae"},{"mapping":{"candidate":"ST-HOST","draft_hypothesis":"Draft hypothesis: ST-HOST uses host-proof-interface to realize SR-05 (Proof source to proof-evidence interface); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"delegated","native_edges":["host-proof-interface"],"relationship":"SR-05","required_relationship_sha256":"5939b3063fd4d6c4d6a57167658e4fcd47c8fb9fc7afcef7a952d86b0d1ff05f"},"mapping_sha256":"c3ec3c769cbe23a30f1bf93dcc2b73239182cfd4575e4fc477387f68cdb393fc"},{"mapping":{"candidate":"ST-HOST","draft_hypothesis":"Draft hypothesis: ST-HOST uses host-shared-to-spec to realize SR-06 (Shared Pure into Spec Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["host-shared-to-spec"],"relationship":"SR-06","required_relationship_sha256":"7601ec025308e0f620f72531f4835c8378b33fc91ded31837222a25720202e57"},"mapping_sha256":"0edf4eabe979c77939850af6dbb93d3fd4af82e3951f3d10142608d6311150dd"},{"mapping":{"candidate":"ST-HOST","draft_hypothesis":"Draft hypothesis: ST-HOST uses host-shared-to-impl to realize SR-07 (Shared Pure into Impl Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["host-shared-to-impl"],"relationship":"SR-07","required_relationship_sha256":"2be5b255f09183ed4cc125b48af76bfe87741b320c34bf1374c26e0733766d3c"},"mapping_sha256":"125393dafc2350c2fdea707a4dbd56d11f3789ea8be9c236cf001d2339377c63"},{"mapping":{"candidate":"ST-HOST","draft_hypothesis":"Draft hypothesis: ST-HOST uses host-shared-to-game to realize SR-08 (Shared Pure into Game Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"delegated","native_edges":["host-shared-to-game"],"relationship":"SR-08","required_relationship_sha256":"19a30d93ff4e5781faa459f90da11c23e4dcdd4d6df5a017ba55f8d4213e30ca"},"mapping_sha256":"f3077b5114d6d6ee5c8ec8da11d8d36343f1cfcc7678c95c296b0be80a931b5d"},{"mapping":{"candidate":"ST-HOST","draft_hypothesis":"Draft hypothesis: ST-HOST uses host-impl-to-spec to realize SR-09 (Impl Core to Spec Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["host-impl-to-spec"],"relationship":"SR-09","required_relationship_sha256":"02a0399ae02219529eb606ce056e4504722e8c565e19e220333a3dfec4281fcc"},"mapping_sha256":"74f623deeb81d818e98592c2218e2c552998d9f6c0b9df1b139851195bcaf729"},{"mapping":{"candidate":"ST-HOST","draft_hypothesis":"Draft hypothesis: ST-HOST uses host-impl-to-ct to realize SR-10 (Impl Core to CT IR); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["host-impl-to-ct"],"relationship":"SR-10","required_relationship_sha256":"55ec969a7bc03bc361550ed9b157cefd38049e0ed4cf520fccc10715117d8510"},"mapping_sha256":"60db7cc84d24550a2f1833f9adcb642b1f404575543eac1ccdd8247adfaddb6f"},{"mapping":{"candidate":"ST-HOST","draft_hypothesis":"Draft hypothesis: ST-HOST uses host-ct-to-machine to realize SR-11 (CT IR to Machine IR); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"delegated","native_edges":["host-ct-to-machine"],"relationship":"SR-11","required_relationship_sha256":"2e72ac00ddbe7cb6151ab58ae8f49438f75b79bc38c0da1cc6e4a5462d695983"},"mapping_sha256":"f7053b5c1a22e68ae7edd26f592ce7226dbdd27c62b1bbc0d2c7bc52a3bc032d"},{"mapping":{"candidate":"ST-HOST","draft_hypothesis":"Draft hypothesis: ST-HOST uses host-game-relation to realize SR-12 (Game Core to Game Core); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"delegated","native_edges":["host-game-relation"],"relationship":"SR-12","required_relationship_sha256":"d1fc192d6619e8223e91f9af6e1496c8d6fc6fee31f25ac87a894870981800c8"},"mapping_sha256":"6dc16f77b2fd1f0decdbb6c51c29ae6e1cc18429081318d04b95c55d35997fd4"},{"mapping":{"candidate":"ST-HOST","draft_hypothesis":"Draft hypothesis: ST-HOST uses host-evidence-check to realize SR-13 (Proof evidence to judgment); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"delegated","native_edges":["host-evidence-check"],"relationship":"SR-13","required_relationship_sha256":"170c95dab9f259e63cd2f29f8c79ecd254162c7e8f2e46516918143ebc3ded16"},"mapping_sha256":"0430d205cb799911e262c518060c205751b94f027cbc3c89ae931fd6e182f75b"},{"mapping":{"candidate":"ST-HOST","draft_hypothesis":"Draft hypothesis: ST-HOST uses host-claim-bind to realize SR-14 (Claim record to subject and evidence); equivalence is unreviewed, unfrozen, separately falsifiable, and subject to the shared boundary record.","fused_authority":null,"inspectability":"separately_inspectable_and_falsifiable","mapping_form":"direct","native_edges":["host-claim-bind"],"relationship":"SR-14","required_relationship_sha256":"3e3349d3c3c58d962346870ea6d40591d051f5f1d90445fa1ded78ee06b1eddb"},"mapping_sha256":"412a97171401a38634cc2fba35643fa15de758e8a82849c00b5fc85b538773e5"}]},"graph_sha256":"e77f487f812705acad9b61bb264ea1544e8b4a13bbc6c6bc1bd3697c2a0da314"}],"mapping_row_count":70,"relationship_count":14,"required_relationships":[{"codomain":"authoritative pure semantic domain","crossing":"Specification source to Spec Core","definedness":"well-formed source resolves exactly one checked pure subject","direction":"source_to_semantic_domain","domain":"Specification source","failure_behavior":"reject without semantic identity","id":"SR-01","identity_inputs":"source bytes; language version; elaborator identity","obligations":"preserve pure total meaning; fail without creating identity","observation":"checked pure subject identity or exact rejection","prohibited_reverse_inferences":"name equality does not imply semantic equality","trust_role":"candidate elaborator is proposed trusted path"},{"codomain":"authoritative effectful semantic domain","crossing":"Implementation source to Impl Core","definedness":"contracts effects memory and typed failures are explicit","direction":"source_to_semantic_domain","domain":"Implementation source","failure_behavior":"reject without effectful identity","id":"SR-02","identity_inputs":"source bytes; language version; effect model identity","obligations":"preserve contracts effects memory operations and typed failure","observation":"checked effectful subject identity or exact rejection","prohibited_reverse_inferences":"shared names do not imply refinement; implementation does not define specification","trust_role":"candidate implementation elaborator is proposed trusted path"},{"codomain":"checked low-level compilation boundary","crossing":"Machine source to CT IR","definedness":"low-level operations are explicit and unsupported features classified before target lowering","direction":"source_to_compilation_domain","domain":"Machine source","failure_behavior":"reject or mark unsupported before target lowering","id":"SR-03","identity_inputs":"source bytes; language version; low-level boundary identity","obligations":"expose memory control flow low-level operations unsupported operations and assumptions","observation":"checked CT-level identity or exact unsupported/rejection state","prohibited_reverse_inferences":"machine source cannot bypass checked low-level boundary","trust_role":"candidate machine elaborator is proposed trusted path"},{"codomain":"authoritative probabilistic semantic domain","crossing":"Game source to Game Core","definedness":"sampling oracle adversary and bound structure are explicit","direction":"source_to_semantic_domain","domain":"Game source","failure_behavior":"reject without probabilistic identity","id":"SR-04","identity_inputs":"source bytes; language version; probability model identity","obligations":"preserve sampling oracle adversary and exact bound structure","observation":"checked experiment identity or exact rejection","prohibited_reverse_inferences":"sampling does not enter pure or implementation meaning","trust_role":"candidate game elaborator is proposed trusted path"},{"codomain":"proof-evidence interface","crossing":"Proof source to proof-evidence interface","definedness":"judgment and all subject identities are explicit","direction":"source_to_evidence_interface","domain":"Proof source","failure_behavior":"reject without evidence-interface identity","id":"SR-05","identity_inputs":"proof bytes; judgment identity; subject identities","obligations":"bind exact judgment and subjects while remaining calculus-neutral and format-neutral","observation":"evidence-interface identity or exact rejection","prohibited_reverse_inferences":"interface admission is not proof validity and selects no calculus","trust_role":"candidate proof elaborator only proposes an evidence binding interface"},{"codomain":"authoritative pure semantic domain","crossing":"Shared Pure into Spec Core","definedness":"term belongs to versioned Shared Pure subset","direction":"subset_inclusion","domain":"Shared Pure subset","failure_behavior":"reject outside subset","id":"SR-06","identity_inputs":"term identity; subset version; Spec domain identity","obligations":"be total on subset and exclude effects state and sampling","observation":"included pure subject identity or exact rejection","prohibited_reverse_inferences":"subset executability does not create universal Core","trust_role":"candidate inclusion definition is proposed for review"},{"codomain":"authoritative effectful semantic domain","crossing":"Shared Pure into Impl Core","definedness":"embedding is explicit and source identity fixed","direction":"explicit_embedding","domain":"Shared Pure subset","failure_behavior":"reject when state or effects would be imported","id":"SR-07","identity_inputs":"pure subject identity; embedding version; Impl domain identity","obligations":"preserve deterministic pure meaning and introduce no state or ambient effects","observation":"embedded identity and effect-free boundary observation","prohibited_reverse_inferences":"shared names do not infer refinement and embedding does not authorize state","trust_role":"candidate embedding definition is proposed for review"},{"codomain":"authoritative probabilistic semantic domain","crossing":"Shared Pure into Game Core","definedness":"embedding is explicit and source identity fixed","direction":"explicit_embedding","domain":"Shared Pure subset","failure_behavior":"reject when randomness would alter deterministic meaning","id":"SR-08","identity_inputs":"pure subject identity; embedding version; Game domain identity","obligations":"preserve deterministic meaning and introduce no ambient randomness","observation":"embedded identity and randomness-free boundary observation","prohibited_reverse_inferences":"embedding does not establish probabilistic equivalence","trust_role":"candidate embedding definition is proposed for review"},{"codomain":"authoritative pure semantic subject","crossing":"Impl Core to Spec Core","definedness":"both exact subjects and named relation are present","direction":"named_refinement_obligation","domain":"authoritative effectful semantic subject","failure_behavior":"leave exact obligation unsatisfied or reject","id":"SR-09","identity_inputs":"Impl identity; Spec identity; relation identity; model identity","obligations":"state explicit refinement obligation and retain assumptions and failure conditions","observation":"exact refinement obligation identity and state","prohibited_reverse_inferences":"equal names never imply refinement and implementation never defines specification","trust_role":"candidate relation generator is proposed and evidence remains external"},{"codomain":"checked low-level compilation subject","crossing":"Impl Core to CT IR","definedness":"ghost and runtime data are distinguished and lowering premises explicit","direction":"semantics_preserving_lowering","domain":"authoritative effectful semantic subject","failure_behavior":"invalidate dependent results on failed preservation","id":"SR-10","identity_inputs":"Impl identity; lowering identity; CT model identity","obligations":"erase ghost data without runtime effect and preserve runtime meaning","observation":"lowered identity and preservation-obligation state","prohibited_reverse_inferences":"byte conversion is not preservation and ghost data cannot affect runtime","trust_role":"candidate lowering and preservation argument are proposed for review"},{"codomain":"target-indexed machine semantic subject","crossing":"CT IR to Machine IR","definedness":"target and ABI parameters are explicit or unresolved","direction":"target_parameterized_lowering","domain":"checked low-level compilation subject","failure_behavior":"return unsupported or reject without fallback claims","id":"SR-11","identity_inputs":"CT identity; target-model identity; lowering identity; ABI identity","obligations":"record unsupported operations and target assumptions without fallback claims","observation":"target-indexed identity or exact unsupported/rejection state","prohibited_reverse_inferences":"machine observations do not become specification meaning","trust_role":"candidate target lowering is proposed while D-011 and D-013 remain open"},{"codomain":"authoritative probabilistic experiment","crossing":"Game Core to Game Core","definedness":"both experiment identities and exact bound expression are present","direction":"named_probabilistic_relation","domain":"authoritative probabilistic experiment","failure_behavior":"leave exact relation unsatisfied or reject","id":"SR-12","identity_inputs":"left identity; right identity; relation identity; bound identity","obligations":"preserve exact bound and name reduction or equivalence explicitly","observation":"exact probabilistic-relation identity and bound","prohibited_reverse_inferences":"reduction is not unbounded equality and prose similarity is not equivalence","trust_role":"candidate probabilistic relation is proposed and proof policy remains open"},{"codomain":"exact named judgment","crossing":"Proof evidence to judgment","definedness":"checker policy remains open and all semantic identities are exact","direction":"identity_bound_checking","domain":"proof evidence reference","failure_behavior":"unknown or reject on absent or mismatched evidence or identity","id":"SR-13","identity_inputs":"evidence identity; judgment identity; Core and IR identities; relation model version identities","obligations":"bind evidence to every exact identity and reject substitution","observation":"identity-bound checking state without validity claim","prohibited_reverse_inferences":"evidence presence is not validity and format conversion is not proof preservation","trust_role":"candidate exposes checker boundary while D-006 and D-007 remain open"},{"codomain":"exact semantic subject and evidence references","crossing":"Claim record to subject and evidence","definedness":"claim schema remains open and all references are exact","direction":"claim_binding","domain":"later D-005 claim record","failure_behavior":"retain non-success state and invalidate dependent credit","id":"SR-14","identity_inputs":"claim identity; subject identity; relation identity; evidence identity","obligations":"preserve failed missing unknown unsupported states and never upgrade assurance","observation":"exact claim-binding state without capability credit","prohibited_reverse_inferences":"claim presence does not establish truth and failed relations cannot be upgraded","trust_role":"candidate exposes binding boundary and D-005 remains authoritative"}]},"catalog_subject_sha256":"e3b790857ee21a0c651995919aaadb9bf59b05367a8dce99bab6afb6e7d2543f","epoch":null,"evidence_status":"none","execution_boundary":{"adapter":"absent","command":"absent","network":"not_used","output_persistence":"none","process":"not_invoked"},"frozen":false,"nonclaims":["candidate mappings are draft hypotheses and are not accepted Orange semantics","no candidate adapter executable command or process exists","no candidate mapping was executed","no observed state comparison result or verdict was produced","no candidate capability or capability absence was established","mapping authentication is not D-004 execution evidence","no D-004 evidence epoch is frozen","no semantic-strata candidate is selected","no D-004 disposition is inferred","no S3b implementation roadmap gate closure or release-readiness movement is authorized"],"open_decisions":[{"id":"D-005","scope":"claim model","status":"unselected"},{"id":"D-006","scope":"proof foundation","status":"unselected"},{"id":"D-007","scope":"proof format and checker","status":"unselected"},{"id":"D-009","scope":"solver trust policy","status":"unselected"},{"id":"D-010","scope":"compiler-pass strategy","status":"unselected"},{"id":"D-011","scope":"host target ISA and object-format envelope","status":"unselected"},{"id":"D-012","scope":"leakage observations and declassification policy","status":"unselected"},{"id":"D-013","scope":"ABI","status":"unselected"}],"owner_protocol_review":"none","schema_version":"d004-candidate-mapping-catalog-v0.1","source_bindings":{"suite":{"path":"docs/SEMANTIC_STRATA_DECISION_SUITE.md","raw_sha256":"64abe8290955f889e28f8bb9ce7653a26ef71a624286aef900d4dbfc3b7eb117"}},"status":"draft_unreviewed_input_only","suite_version":"d004-v0.5-draft"} diff --git a/research/decisions/D-004/d004-v0.5-draft-packet.json b/research/decisions/D-004/d004-v0.5-draft-packet.json new file mode 100644 index 0000000..9f843b4 --- /dev/null +++ b/research/decisions/D-004/d004-v0.5-draft-packet.json @@ -0,0 +1 @@ +{"budgets":{"candidate_owner_hours":24,"case_output_bytes":268435456,"case_peak_memory_bytes":4294967296,"case_temp_storage_bytes":2147483648,"case_wall_seconds":900,"correction_owner_hours":4,"max_json_depth":32,"max_json_nodes":16384,"max_packet_bytes":262144,"max_string_bytes":16384},"candidate_mapping_catalog_sha256":"c967d7db8ea5049da054129367ec61cd80d729b8ce8cd34c95a76e42c67c97b8","candidates":["ST-REL","ST-UNI","ST-DUAL","ST-MIRROR","ST-HOST"],"case_subject_catalog_sha256":"5b9e734b6bad7913072e87adb29c58547d67bdcb46af942eb6bbc79d0e68166e","case_verdicts":["pass","fail"],"cases":["SC-01","SC-02","SC-03","SC-04","SC-05"],"conclusion":null,"cross_cutting_executable_fixture_catalog_sha256":"0516a84260bcc4d8ebb64e0cd3416deb5c43a86b7f5cd882ca757c924e575767","cross_cutting_fixture_proposal_manifest_sha256":"85407a4a43b5a6bf450ea905fe858482f2f79abb4cbe8ee8690bddc1753d0912","d003_disposition":"accepted_exact_revision_oep_closure","domain_observation_states":["succeeded","rejected","unknown","timeout","unsupported","exhausted"],"epoch":null,"epoch_status":"unfrozen","execution":{"complete_candidates":0,"complete_cross_candidate_cases":0,"completed_candidate_cases":0,"evidence_status":"none","required_candidate_cases":25},"fixture_inventory_status":"case_cross_cutting_and_candidate_mapping_materialized_unreviewed_freeze_blocker","hard_gates":["SS-G01","SS-G02","SS-G03","SS-G04","SS-G05","SS-G06","SS-G07","SS-G08","SS-G09","SS-G10"],"input_bindings":{"accepted_s2_language":{"path":"docs/LANGUAGE_2026.md","sha256":"35981310cbe1e1ae61c889b4005b2610d0077e6a615a5e032b0ca9a5860b328a"},"accepted_s3a_oep":{"path":"docs/governance/oeps/OEP-0003-orange-2026-typed-literals.md","sha256":"4ea34fc2499ba6b90eb930262f84f15a41ff0df0f526a4533a48e54ea4f9b4b8"},"accepted_s3a_semantics":{"path":"docs/SEMANTICS_2026.md","sha256":"63e14d674eb687f46aa600b36d6d13e3732090d658fb05fd805646b1d469dbdf"},"candidate_mappings":{"path":"research/decisions/D-004/d004-v0.5-candidate-mappings.json","sha256":"70765c64936bbb8aafd6e101fbf20c85396eb722d70e55bb9311d14bfbb15156"},"case_subjects":{"path":"research/decisions/D-004/d004-v0.4-case-subjects.json","sha256":"6266b8e38ad1a83fb777278fc0369844749b2915eabb40ba1ddfc9efa7c985f2"},"cross_cutting_executable_fixtures":{"path":"research/decisions/D-004/d004-v0.3-cross-cutting-executable-fixtures.json","sha256":"5fea65960c47818243d41076dd96a6cab2dbd6d4038fd354a3f5ba30a12622ae"},"cross_cutting_fixture_proposals":{"path":"research/decisions/D-004/d004-v0.2-cross-cutting-fixture-proposals.json","sha256":"d3d58cbeb0d2a90987680cd00bc70caf53518be730a71d0d55ba2a7b50544481"},"decision_suite":{"path":"docs/SEMANTIC_STRATA_DECISION_SUITE.md","sha256":"64abe8290955f889e28f8bb9ce7653a26ef71a624286aef900d4dbfc3b7eb117"},"fixture_invalid_duplicate_spec":{"path":"compiler/fixtures/s3a/invalid-duplicate-spec.or","sha256":"f3b870468c5f4a98c9dae6c94de74aacbabbf15e480296f696a87d5aebb209d6"},"fixture_invalid_int_magnitude":{"path":"compiler/fixtures/s3a/invalid-int-magnitude.or","sha256":"11826c807240ac2fc4beddb26f25c3b14dd75008ed756f2afa3ee95668b05542"},"fixture_invalid_negative_word":{"path":"compiler/fixtures/s3a/invalid-negative-word.or","sha256":"4643e1247a017202f25a240ad72c83adbd7d2f436ec4de2dffbac1e292ce161b"},"fixture_invalid_typed_impl":{"path":"compiler/fixtures/s3a/invalid-typed-impl.or","sha256":"4e457e50fbc3b8458c877c9a790e169ff643784b5b78f7a3a0f83a117cc7be07"},"fixture_invalid_unsupported_type":{"path":"compiler/fixtures/s3a/invalid-unsupported-type.or","sha256":"14190eb262c79772b583c458500c777c54ef0c8913fc046a8809b5a146cfb9fc"},"fixture_invalid_word_range":{"path":"compiler/fixtures/s3a/invalid-word-range.or","sha256":"4a7a4fd4bdfecdc21133f5f6ff24e212dde0bf357fe6d6807816930895300ddf"},"fixture_invalid_word_width":{"path":"compiler/fixtures/s3a/invalid-word-width.or","sha256":"d92ac896bd872f1aa4a3c8988d0b654a23c95ec10ec9183a7d2431cd12238be2"},"fixture_valid_empty_mixed":{"path":"compiler/fixtures/s3a/valid-empty-mixed.or","sha256":"c30ab3cda5caa11d826dc38ea257d9c9413d6240c09b236a7f50f1cac9016b96"},"fixture_valid_int_radices":{"path":"compiler/fixtures/s3a/valid-int-radices.or","sha256":"937f8f67b20794c9a887bcca15ea619276f921bc9bf884fdc35e7caab6ac11e4"},"fixture_valid_word8_boundaries":{"path":"compiler/fixtures/s3a/valid-word8-boundaries.or","sha256":"db37bd00375daa1db43498c5f10b831fdaa5d43b3b886ef838ecbb8d0fbea2ee"},"named_mutations_manifest":{"path":"research/decisions/D-004/d004-v0.2-named-mutations.json","sha256":"1d46d6d66c0704fcaa462c625dcac2e72150497bb075322c5e076ea42898be54"},"permanent_s3a_fixture":{"path":"compiler/fixtures/typed-answer.or","sha256":"22c71b6b8e09ff8dbb7393abfb6ce46597eed0b45f9a34660aa948071138ff6e"},"product_form_decision_packet":{"path":"docs/PRODUCT_FORM_DECISION_PACKET.md","sha256":"1ef0be53344667993778d1abd9a83423fc92b358735ed7ad74cb766bb29d33fd"},"s3a_conformance_runner":{"path":"compiler/crates/orangec/tests/s3a_conformance.rs","sha256":"7d25ea303fcb3c1603d60b6cb32d89ae15173cc043b8b695daedb737162b8116"},"user_journeys":{"path":"docs/USER_JOURNEYS.md","sha256":"f26b179db777295b620731402962dc3092128f8f9a27049638f22883e0652bed"}},"mutation_manifest_sha256":"970999d998cdc202a6caa4e2f798017416c88211a5b6b8508132a07cc9080c0c","mutations":["SC-01-M01","SC-01-M02","SC-01-M03","SC-01-M04","SC-02-M01","SC-02-M02","SC-02-M03","SC-02-M04","SC-02-M05","SC-03-M01","SC-03-M02","SC-03-M03","SC-03-M04","SC-03-M05","SC-04-M01","SC-04-M02","SC-04-M03","SC-04-M04","SC-04-M05","SC-04-M06","SC-05-M01","SC-05-M02","SC-05-M03","SC-05-M04","SC-05-M05","SC-05-M06"],"nonclaims":["candidate mappings are unreviewed input-only hypotheses, not accepted semantics","no candidate adapter exists or executed","no D-004 evidence epoch frozen","no semantic-strata candidate selected","no D-004 disposition inferred from D-003 acceptance","no roadmap gate or readiness movement","no S3b implementation authorized"],"owner_protocol_review":"none","protocol_gaps":["ambiguity fixture sufficiency review unresolved","missing-edge fixture sufficiency review unresolved","identity-substitution fixture sufficiency review unresolved","unsupported fixture sufficiency review unresolved","resource-exhaustion fixture sufficiency review unresolved","candidate graph and SR mapping review unresolved","replay repetition count unresolved"],"relationships":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08","SR-09","SR-10","SR-11","SR-12","SR-13","SR-14"],"schema_version":"d004-pre-epoch-packet-v0.5","selection":null,"source_roles":["Specification","Implementation","Machine Implementation","Game","Proof"],"status":"draft_unfrozen","suite_version":"d004-v0.5-draft","unresolved_cross_cutting_fixture_classes":["ambiguity","missing-edge","identity-substitution","unsupported","resource-exhaustion"]} diff --git a/research/decisions/D-006/README.md b/research/decisions/D-006/README.md index e4d12af..e74b57e 100644 --- a/research/decisions/D-006/README.md +++ b/research/decisions/D-006/README.md @@ -33,4 +33,5 @@ its raw file SHA-256, including the final line feed, is Current D-006 execution evidence remains 0/14 candidate-case runs. Neither Rocq nor Lean 4 is selected, preferred, recommended, installed, or authorized for proof-bearing product work. This preparation does not accept D-004, D-005, or -D-006, close S4, authorize a release, or advance Orange beyond 30% readiness. +D-006, close S4, authorize a release, or change Orange's 3/10 (30%) binary +gate-closure score; that score is not release readiness. diff --git a/research/decisions/D-009/README.md b/research/decisions/D-009/README.md index c07bc10..d4ee78a 100644 --- a/research/decisions/D-009/README.md +++ b/research/decisions/D-009/README.md @@ -24,9 +24,9 @@ same candidate order through TC-08. It is a canonical identity serialization, not an authorized physical execution order. The packet's strict canonical JSON SHA-256, excluding its final line feed, is -`609d2b0edaad32a4edde7b44b7e127abfffacd47330e0648bf3e5978635f8f25`; +`fa1411c83fdb6b57b8100f296ca904d88155ad6aa57bd7f48af62ae90c9ead31`; its raw file SHA-256, including the final line feed, is -`9126ec6b4a46f938c337811b37b4b4939372c0f5fe9347364f21f64bb7a86e3a`. +`c0ad0227f1f374da8796c6db4866188213be53bd904bbf22b141ee1de6e57171`. Its closed packet schema is `d009-pre-epoch-packet-v0.3`; the suite version remains `d009-v0.1-draft`, and the existing filename is retained as a stable draft locator. @@ -56,5 +56,5 @@ Current D-009 execution evidence remains 0/24 candidate-case runs. No solver- trust candidate is selected, preferred, recommended by this laboratory, installed, or authorized for claim-bearing product work. This preparation does not accept D-004, D-005, D-006, D-007, or D-009; add or remove a solver from the -logical TCB; close S4; authorize a release; or advance Orange beyond 30% -readiness. +logical TCB; close S4; authorize a release; or change Orange's 3/10 (30%) +binary gate-closure score; that score is not release readiness. diff --git a/research/decisions/D-009/d009-v0.1-draft-packet.json b/research/decisions/D-009/d009-v0.1-draft-packet.json index 907468c..ce0903e 100644 --- a/research/decisions/D-009/d009-v0.1-draft-packet.json +++ b/research/decisions/D-009/d009-v0.1-draft-packet.json @@ -1 +1 @@ -{"atomic_outcome_meanings":{"not_satisfied":"permitted, identity-bound negative evidence establishes that the exact proposition is false or violated within its scope; absence or incompleteness alone is not not_satisfied","satisfied":"the exact proposition has its complete permitted mandatory closure and no valid decisive negative result","unresolved":"the claim is well-formed and within the declared support model, but a required decision remains unknown, incomplete, conflicting, or exhausted","unsupported":"the declared policy or support envelope offers no permitted evaluation or authority path for that exact claim and scope"},"atomic_outcomes":["satisfied","not_satisfied","unresolved","unsupported"],"candidate_states":[{"adapter_status":"absent","candidate":"SP-01","dependency_admission_status":"absent","execution_status":"not_performed","implementation_status":"absent"},{"adapter_status":"absent","candidate":"SP-02","dependency_admission_status":"absent","execution_status":"not_performed","implementation_status":"absent"},{"adapter_status":"absent","candidate":"SP-03","dependency_admission_status":"absent","execution_status":"not_performed","implementation_status":"absent"}],"candidates":[{"id":"SP-01","name":"Checked-artifact portfolio"},{"id":"SP-02","name":"Kernel-only reconstruction"},{"id":"SP-03","name":"Direct trusted-solver authority"}],"case_input_index_sha256":"2e55c671771d5740b0346992c8b86b9cce0571a8fc3e5b745195b0956010470e","cases":["TC-01","TC-02","TC-03","TC-04","TC-05","TC-06","TC-07","TC-08"],"comparative_labels":["checked_artifact_better","kernel_only_better","trusted_solver_better","practically_equivalent","inconclusive"],"conclusion":null,"conclusions":["recommend_checked_artifact","recommend_kernel_only","recommend_trusted_solver","tie","inconclusive"],"dependency_acceptance":{"D-004":false,"D-005":false},"epoch":null,"epoch_status":"unfrozen","execution":{"complete_candidates":0,"complete_cross_candidate_cases":0,"completed_candidate_cases":0,"evidence_status":"none","required_candidate_cases":24},"execution_resource_state":{"case_output_bytes":null,"case_peak_memory_bytes":null,"case_temp_storage_bytes":null,"case_wall_seconds":null,"contract_status":"unassigned_freeze_blocker","host_matrix_status":"unassigned_freeze_blocker","timeout_semantics_status":"unassigned_freeze_blocker"},"hard_gate_count":8,"hard_gate_state_precedence":["unsupported","fail","unresolved","pass"],"hard_gate_states":["pass","fail","unresolved","unsupported"],"independent_review_status":"unavailable","input_bindings":{"case_input_index":{"path":"research/decisions/D-009/d009-v0.1-case-input-index.json","sha256":"c5298d625f5392de2774ffb861fe1dc1701b379ebd385cde0584a8cbcd249859"},"solver_trust_suite":{"path":"docs/SOLVER_TRUST_DECISION_SUITE.md","sha256":"a26073e6431fb401af4aac6e57dcdfa76b27fe9451c26fb42595d7de14c2a35b"}},"laboratory_budgets":{"max_json_depth":32,"max_json_nodes":16384,"max_packet_bytes":262144,"max_string_bytes":16384},"metrics":["M-01","M-02","M-03","M-04","M-05","M-06","M-07","M-08","M-09","M-10","M-11","M-12","M-13","M-14","M-15","M-16"],"nonclaims":["no D-004 acceptance inferred","no D-005 acceptance inferred","no D-006 or D-007 acceptance inferred","no solver, proof assistant, certificate checker, adapter, runner, observer, or isolation dependency admitted, acquired, installed, or executed","no candidate-neutral shared input or executable fixture present","no D-009 evidence epoch frozen","no candidate executed and no candidate result recorded","no solver-trust candidate selected or recommended by the laboratory","no proof, certificate, counterexample, theorem, claim, or cache result validated","no solver added to or removed from the logical TCB","no proof-bearing implementation or solver-backed search authorized","no independent review claimed","no roadmap gate or readiness movement"],"owner_protocol_review":"none","owner_scopes":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08"],"physical_execution_order":null,"protocol_counts":{"cold_bootstrap_runs":5,"deterministic_profile_runs":3,"maximum_same_owner_reproducibility_level":2,"owner_workspaces":2,"timed_replays_per_case":30,"unmeasured_warmups":1},"protocol_gaps":["D-004 acceptance absent","D-005 acceptance absent","candidate-neutral shared inputs and all eight executable case inventories absent","input-manifest digest unfrozen","execution resource, timeout, host, environment, cache, and network contract unassigned","solver, checker, proof-format, dependency-graph, acquisition, and D-018 admissions absent","candidate adapters, runner, observer, and isolation backend absent","versioned D-009 result and same-owner-replay schema absent","D-006 and D-007 proof/checker interfaces unavailable for downstream conformance","physical execution order, correction window, and materiality bands unassigned","owner protocol review absent"],"schema_version":"d009-pre-epoch-packet-v0.3","selection":null,"semantic_bindings":{"decision_register_d009":{"normalization":"markdown-prose-lines-exact-v1","normalized_sha256":"69c61bb8e6cd7fd745be6d308074497916cd7ecb9b5ee1786461454bec363270","path":"docs/DECISIONS.md","scope":"markdown_exact_heading_range","section_end_heading":"## D-010 — Compiler strategy","section_start_heading":"## D-009 — Solver trust"},"decision_register_document":{"normalization":"markdown-prose-lines-exact-v1","normalized_sha256":"3ef87a6038245619256d7435d7eeddcf0624cf527a4825a9b157ec6040ad523b","path":"docs/DECISIONS.md","scope":"whole_document","section_end_heading":null,"section_start_heading":null},"roadmap_document":{"normalization":"markdown-prose-lines-exact-v1","normalized_sha256":"dc2ab7d27198fe9038af55cb2a37399c257baaa1a9d80c384a6ff9e12752ffdf","path":"docs/ROADMAP.md","scope":"whole_document","section_end_heading":null,"section_start_heading":null},"roadmap_s4":{"normalization":"markdown-prose-lines-exact-v1","normalized_sha256":"f8a3ee4beeee6c789a3b4c7b6b0177c32a573788a7f9779b1aea763297288d62","path":"docs/ROADMAP.md","scope":"markdown_exact_heading_range","section_end_heading":"### S5 — Compiler IRs and one output path","section_start_heading":"### S4 — Proof and claim boundary"},"solver_trust_suite":{"normalization":"markdown-prose-lines-exact-v1","normalized_sha256":"c2838efcc963de22141631d58fae4730c131d47d8ea2e79906cf66d0546032d0","path":"docs/SOLVER_TRUST_DECISION_SUITE.md","scope":"whole_document","section_end_heading":null,"section_start_heading":null}},"status":"draft_unfrozen","suite_version":"d009-v0.1-draft"} +{"atomic_outcome_meanings":{"not_satisfied":"permitted, identity-bound negative evidence establishes that the exact proposition is false or violated within its scope; absence or incompleteness alone is not not_satisfied","satisfied":"the exact proposition has its complete permitted mandatory closure and no valid decisive negative result","unresolved":"the claim is well-formed and within the declared support model, but a required decision remains unknown, incomplete, conflicting, or exhausted","unsupported":"the declared policy or support envelope offers no permitted evaluation or authority path for that exact claim and scope"},"atomic_outcomes":["satisfied","not_satisfied","unresolved","unsupported"],"candidate_states":[{"adapter_status":"absent","candidate":"SP-01","dependency_admission_status":"absent","execution_status":"not_performed","implementation_status":"absent"},{"adapter_status":"absent","candidate":"SP-02","dependency_admission_status":"absent","execution_status":"not_performed","implementation_status":"absent"},{"adapter_status":"absent","candidate":"SP-03","dependency_admission_status":"absent","execution_status":"not_performed","implementation_status":"absent"}],"candidates":[{"id":"SP-01","name":"Checked-artifact portfolio"},{"id":"SP-02","name":"Kernel-only reconstruction"},{"id":"SP-03","name":"Direct trusted-solver authority"}],"case_input_index_sha256":"2e55c671771d5740b0346992c8b86b9cce0571a8fc3e5b745195b0956010470e","cases":["TC-01","TC-02","TC-03","TC-04","TC-05","TC-06","TC-07","TC-08"],"comparative_labels":["checked_artifact_better","kernel_only_better","trusted_solver_better","practically_equivalent","inconclusive"],"conclusion":null,"conclusions":["recommend_checked_artifact","recommend_kernel_only","recommend_trusted_solver","tie","inconclusive"],"dependency_acceptance":{"D-004":false,"D-005":false},"epoch":null,"epoch_status":"unfrozen","execution":{"complete_candidates":0,"complete_cross_candidate_cases":0,"completed_candidate_cases":0,"evidence_status":"none","required_candidate_cases":24},"execution_resource_state":{"case_output_bytes":null,"case_peak_memory_bytes":null,"case_temp_storage_bytes":null,"case_wall_seconds":null,"contract_status":"unassigned_freeze_blocker","host_matrix_status":"unassigned_freeze_blocker","timeout_semantics_status":"unassigned_freeze_blocker"},"hard_gate_count":8,"hard_gate_state_precedence":["unsupported","fail","unresolved","pass"],"hard_gate_states":["pass","fail","unresolved","unsupported"],"independent_review_status":"unavailable","input_bindings":{"case_input_index":{"path":"research/decisions/D-009/d009-v0.1-case-input-index.json","sha256":"c5298d625f5392de2774ffb861fe1dc1701b379ebd385cde0584a8cbcd249859"},"solver_trust_suite":{"path":"docs/SOLVER_TRUST_DECISION_SUITE.md","sha256":"a26073e6431fb401af4aac6e57dcdfa76b27fe9451c26fb42595d7de14c2a35b"}},"laboratory_budgets":{"max_json_depth":32,"max_json_nodes":16384,"max_packet_bytes":262144,"max_string_bytes":16384},"metrics":["M-01","M-02","M-03","M-04","M-05","M-06","M-07","M-08","M-09","M-10","M-11","M-12","M-13","M-14","M-15","M-16"],"nonclaims":["no D-004 acceptance inferred","no D-005 acceptance inferred","no D-006 or D-007 acceptance inferred","no solver, proof assistant, certificate checker, adapter, runner, observer, or isolation dependency admitted, acquired, installed, or executed","no candidate-neutral shared input or executable fixture present","no D-009 evidence epoch frozen","no candidate executed and no candidate result recorded","no solver-trust candidate selected or recommended by the laboratory","no proof, certificate, counterexample, theorem, claim, or cache result validated","no solver added to or removed from the logical TCB","no proof-bearing implementation or solver-backed search authorized","no independent review claimed","no roadmap gate or readiness movement"],"owner_protocol_review":"none","owner_scopes":["SR-01","SR-02","SR-03","SR-04","SR-05","SR-06","SR-07","SR-08"],"physical_execution_order":null,"protocol_counts":{"cold_bootstrap_runs":5,"deterministic_profile_runs":3,"maximum_same_owner_reproducibility_level":2,"owner_workspaces":2,"timed_replays_per_case":30,"unmeasured_warmups":1},"protocol_gaps":["D-004 acceptance absent","D-005 acceptance absent","candidate-neutral shared inputs and all eight executable case inventories absent","input-manifest digest unfrozen","execution resource, timeout, host, environment, cache, and network contract unassigned","solver, checker, proof-format, dependency-graph, acquisition, and D-018 admissions absent","candidate adapters, runner, observer, and isolation backend absent","versioned D-009 result and same-owner-replay schema absent","D-006 and D-007 proof/checker interfaces unavailable for downstream conformance","physical execution order, correction window, and materiality bands unassigned","owner protocol review absent"],"schema_version":"d009-pre-epoch-packet-v0.3","selection":null,"semantic_bindings":{"decision_register_d009":{"normalization":"markdown-prose-lines-exact-v1","normalized_sha256":"bc4bf5fd534a61efdd62e16b57633bea1f5ad8f3224555f310911a3ab26bb41a","path":"docs/DECISIONS.md","scope":"markdown_exact_heading_range","section_end_heading":"## D-010 — Compiler strategy","section_start_heading":"## D-009 — Solver trust"},"decision_register_document":{"normalization":"markdown-prose-lines-exact-v1","normalized_sha256":"c38f7b1d3b3f733a628e0618124e290648298eea8dab2ef89f81c597eb68d177","path":"docs/DECISIONS.md","scope":"whole_document","section_end_heading":null,"section_start_heading":null},"roadmap_document":{"normalization":"markdown-prose-lines-exact-v1","normalized_sha256":"c92c6657068d3a71b8ccb184b408020f5cd44971286b2743e1e4d55dd67125e6","path":"docs/ROADMAP.md","scope":"whole_document","section_end_heading":null,"section_start_heading":null},"roadmap_s4":{"normalization":"markdown-prose-lines-exact-v1","normalized_sha256":"ef9322f7c23467007a4c6d64411c79ba0f3dae856ed49602d9cecdfc9490b096","path":"docs/ROADMAP.md","scope":"markdown_exact_heading_range","section_end_heading":"### S5 — Compiler IRs and one output path","section_start_heading":"### S4 — Proof and claim boundary"},"solver_trust_suite":{"normalization":"markdown-prose-lines-exact-v1","normalized_sha256":"c2838efcc963de22141631d58fae4730c131d47d8ea2e79906cf66d0546032d0","path":"docs/SOLVER_TRUST_DECISION_SUITE.md","scope":"whole_document","section_end_heading":null,"section_start_heading":null}},"status":"draft_unfrozen","suite_version":"d009-v0.1-draft"} diff --git a/research/decisions/D-010/README.md b/research/decisions/D-010/README.md index ba9970b..4b03235 100644 --- a/research/decisions/D-010/README.md +++ b/research/decisions/D-010/README.md @@ -26,9 +26,9 @@ candidate order through CC-08. It is a canonical identity serialization, not an authorized physical execution order. The packet's strict canonical JSON SHA-256, excluding its final line feed, is -`9ec828033df99afa71ca88911484abfbfd007bd42538d8e02a5d7462413943b0`; +`ae6c8fc6e433d3cbb895aebf95667711d442efa348e241c0059e72a489bcac9b`; its raw file SHA-256, including the final line feed, is -`f081c3428c83a7be6d296317564adee0284d13f4913739e5cf33634ed748e799`. +`647ed6e554a0440c7345e52ff8263aba9d2cb19e444e5956203595c0461d6f6e`. Its closed packet schema is `d010-pre-epoch-packet-v0.1`, and the suite version is `d010-v0.1-draft`. The case-input index's strict canonical JSON SHA-256 is `4c8b0547a8f3bd380f4569008c8728014bb1d8718a5bfe17402bd03866560209`; @@ -59,4 +59,5 @@ Current D-010 execution evidence remains 0/40 candidate-case runs. No compiler strategy or output path is selected, preferred, recommended by this laboratory, implemented, installed, or authorized for claim-bearing product work. This preparation does not accept any prerequisite or downstream decision, close S5, -authorize a release, or advance Orange beyond 30% readiness. +authorize a release, or change Orange's 3/10 (30%) binary gate-closure score; +that mechanical score is not release readiness. diff --git a/research/decisions/D-010/d010-v0.1-draft-packet.json b/research/decisions/D-010/d010-v0.1-draft-packet.json index 19f7581..96dfb37 100644 --- a/research/decisions/D-010/d010-v0.1-draft-packet.json +++ b/research/decisions/D-010/d010-v0.1-draft-packet.json @@ -1 +1 @@ -{"atomic_outcome_meanings":{"not_satisfied":"permitted, identity-bound negative evidence establishes that the exact proposition is false or violated within its scope; absence or incompleteness alone is not not_satisfied","satisfied":"the exact proposition has its complete permitted mandatory closure and no valid decisive negative result","unresolved":"the claim is well-formed and within the declared support model, but a required decision remains unknown, incomplete, conflicting, or exhausted","unsupported":"the declared policy or support envelope offers no permitted evaluation or authority path for that exact claim and scope"},"atomic_outcomes":["satisfied","not_satisfied","unresolved","unsupported"],"candidate_states":[{"adapter_status":"absent","candidate":"CP-01","dependency_admission_status":"absent","execution_status":"not_performed","implementation_status":"absent"},{"adapter_status":"absent","candidate":"CP-02","dependency_admission_status":"absent","execution_status":"not_performed","implementation_status":"absent"},{"adapter_status":"absent","candidate":"CP-03","dependency_admission_status":"absent","execution_status":"not_performed","implementation_status":"absent"},{"adapter_status":"absent","candidate":"CP-04","dependency_admission_status":"absent","execution_status":"not_performed","implementation_status":"absent"},{"adapter_status":"absent","candidate":"CP-05","dependency_admission_status":"absent","execution_status":"not_performed","implementation_status":"absent"}],"candidates":[{"id":"CP-01","name":"Theorem/certificate hybrid direct-native path"},{"id":"CP-02","name":"Mechanized proof-per-pass direct-native path"},{"id":"CP-03","name":"Versioned Jasmin backend boundary"},{"id":"CP-04","name":"Portable C11 interoperability boundary"},{"id":"CP-05","name":"Versioned LLVM IR interoperability boundary"}],"case_input_index_sha256":"4c8b0547a8f3bd380f4569008c8728014bb1d8718a5bfe17402bd03866560209","cases":["CC-01","CC-02","CC-03","CC-04","CC-05","CC-06","CC-07","CC-08"],"comparative_axes":["AX-01","AX-02","AX-03","AX-04","AX-05","AX-06","AX-07","AX-08","AX-09"],"comparative_labels":["hybrid_direct_native_better","proof_per_pass_direct_native_better","jasmin_backend_better","portable_c11_better","llvm_ir_better","practically_equivalent","inconclusive"],"conclusion":null,"conclusions":["recommend_hybrid_direct_native","recommend_proof_per_pass_direct_native","recommend_jasmin_backend","recommend_portable_c11","recommend_llvm_ir","tie","inconclusive"],"dependency_acceptance":{"D-003":true,"D-004":false,"D-005":false,"D-006":false,"D-009":false},"epoch":null,"epoch_status":"unfrozen","execution":{"complete_candidates":0,"complete_cross_candidate_cases":0,"completed_candidate_cases":0,"evidence_status":"none","required_candidate_cases":40},"execution_resource_state":{"case_output_bytes":null,"case_peak_memory_bytes":null,"case_temp_storage_bytes":null,"case_wall_seconds":null,"contract_status":"unassigned_freeze_blocker","host_matrix_status":"unassigned_freeze_blocker","timeout_semantics_status":"unassigned_freeze_blocker"},"hard_gate_count":8,"hard_gate_state_precedence":["unsupported","fail","unresolved","pass"],"hard_gate_states":["pass","fail","unresolved","unsupported"],"independent_review_status":"unavailable","input_bindings":{"case_input_index":{"path":"research/decisions/D-010/d010-v0.1-case-input-index.json","sha256":"e9f59e86dff6219474d244ff01a98c75b7b17c65f1f91506d483a57e95e33670"},"compiler_strategy_suite":{"path":"docs/COMPILER_STRATEGY_DECISION_SUITE.md","sha256":"5d36f1faeda027b9784846af0aa742339c6b821f39b72a8ca067a90c41a46c73"}},"laboratory_budgets":{"max_json_depth":32,"max_json_nodes":16384,"max_packet_bytes":262144,"max_string_bytes":16384},"metrics":["M-01","M-02","M-03","M-04","M-05","M-06","M-07","M-08","M-09","M-10","M-11","M-12","M-13","M-14","M-15","M-16","M-17","M-18","M-19"],"nonclaims":["D-003 acceptance grants no D-004, D-005, D-006, D-007, D-009, D-010, D-011, D-012, or D-013 acceptance","no compiler, backend, proof assistant, solver, checker, assembler, linker, adapter, runner, observer, emulator, or isolation dependency admitted, acquired, installed, or executed","no executable shared input, candidate mapping, result schema, or physical execution order exists","no evidence epoch, candidate result, selection, or conclusion exists","no source-to-IR, pass, certificate, theorem, leakage, target, ABI, object, wrapper, interoperability, or final-byte proposition validated","no compiler strategy or output path selected, preferred, recommended by these inputs, implemented, or authorized for claim-bearing product work","no claim frontier, logical TCB, target envelope, leakage model, or foreign boundary accepted or changed","no C11 or LLVM artifact inherits a native assurance claim, and neither may borrow evidence from the other","no independent review, reproduction, audit, certification, or external validation claimed","no roadmap gate, S5 closure, release authority, compiler capability, or readiness credit"],"owner_protocol_review":"none","owner_scopes":["CR-01","CR-02","CR-03","CR-04","CR-05","CR-06","CR-07","CR-08","CR-09","CR-10","CR-11"],"physical_execution_order":null,"protocol_counts":{"cold_bootstrap_runs":5,"deterministic_profile_runs":3,"maximum_same_owner_reproducibility_level":2,"owner_workspaces":2,"timed_replays_per_case":30,"unmeasured_warmups":1},"protocol_gaps":["D-004 acceptance absent","D-005 acceptance absent","D-006 acceptance absent","D-009 acceptance absent","candidate-neutral shared inputs and all eight executable case inventories absent","input-manifest digest unfrozen","execution resource, timeout, host, environment, cache, and network contract unassigned","compiler, backend, toolchain, proof, checker, acquisition, and D-018 admissions absent","candidate adapters, runner, observer, emulator, and isolation backend absent","versioned D-010 result and same-owner-replay schema absent","suite-only downstream model fixtures and reference endpoints absent","physical execution order, correction window, and materiality bands unassigned","owner protocol review absent"],"schema_version":"d010-pre-epoch-packet-v0.1","selection":null,"semantic_bindings":{"architecture_document":{"normalization":"markdown-prose-lines-exact-v1","normalized_sha256":"488bbd7f199c7084a968a199f57c85cd3c24a868113f28c02a1ae2777ce403cd","path":"docs/ARCHITECTURE.md","scope":"whole_document","section_end_heading":null,"section_start_heading":null},"assurance_document":{"normalization":"markdown-prose-lines-exact-v1","normalized_sha256":"5fbbf93c7e5c92ad8a5eb23d1128dd9bf52a0dba2b7bca4d0c83eaa97ba4acf2","path":"docs/ASSURANCE.md","scope":"whole_document","section_end_heading":null,"section_start_heading":null},"compiler_strategy_suite":{"normalization":"markdown-prose-lines-exact-v1","normalized_sha256":"25dfd84dba00743714378585c297ef840f15ac7942921d0080bd7787b49caaf0","path":"docs/COMPILER_STRATEGY_DECISION_SUITE.md","scope":"whole_document","section_end_heading":null,"section_start_heading":null},"decision_register_d010":{"normalization":"markdown-prose-lines-exact-v1","normalized_sha256":"5f072397880047d28a03f45959fd63f0536a2c72ab6f83d2f27765b1df884d57","path":"docs/DECISIONS.md","scope":"markdown_exact_heading_range","section_end_heading":"## D-011 — Initial native target envelope","section_start_heading":"## D-010 — Compiler strategy"},"decision_register_document":{"normalization":"markdown-prose-lines-exact-v1","normalized_sha256":"3ef87a6038245619256d7435d7eeddcf0624cf527a4825a9b157ec6040ad523b","path":"docs/DECISIONS.md","scope":"whole_document","section_end_heading":null,"section_start_heading":null},"research_document":{"normalization":"markdown-prose-lines-exact-v1","normalized_sha256":"de173867b230d1b8a90fab5bbaecbb997b3f9811443e1af81e4235f695c66591","path":"docs/RESEARCH.md","scope":"whole_document","section_end_heading":null,"section_start_heading":null},"roadmap_document":{"normalization":"markdown-prose-lines-exact-v1","normalized_sha256":"dc2ab7d27198fe9038af55cb2a37399c257baaa1a9d80c384a6ff9e12752ffdf","path":"docs/ROADMAP.md","scope":"whole_document","section_end_heading":null,"section_start_heading":null},"roadmap_s5":{"normalization":"markdown-prose-lines-exact-v1","normalized_sha256":"c407724176ed44756270176818ca9b89dcda2a6a514e4d59bae3054f7def4c28","path":"docs/ROADMAP.md","scope":"markdown_exact_heading_range","section_end_heading":"### S6 — Memory, leakage, ABI, and native targets","section_start_heading":"### S5 — Compiler IRs and one output path"},"threat_model_document":{"normalization":"markdown-prose-lines-exact-v1","normalized_sha256":"8f3b98f74655ea02c5fa34116b771c94e5f8a9a8d217459659ecf77488d9fac2","path":"docs/security/THREAT_MODEL.md","scope":"whole_document","section_end_heading":null,"section_start_heading":null},"traceability_document":{"normalization":"markdown-prose-lines-exact-v1","normalized_sha256":"5439b855123c0b3298dada3b7ccf62ab318ac0a2431f76eb1e28c9cc8fe54a1b","path":"docs/GATE0_TRACEABILITY.md","scope":"whole_document","section_end_heading":null,"section_start_heading":null}},"status":"draft_unfrozen","suite_version":"d010-v0.1-draft"} +{"atomic_outcome_meanings":{"not_satisfied":"permitted, identity-bound negative evidence establishes that the exact proposition is false or violated within its scope; absence or incompleteness alone is not not_satisfied","satisfied":"the exact proposition has its complete permitted mandatory closure and no valid decisive negative result","unresolved":"the claim is well-formed and within the declared support model, but a required decision remains unknown, incomplete, conflicting, or exhausted","unsupported":"the declared policy or support envelope offers no permitted evaluation or authority path for that exact claim and scope"},"atomic_outcomes":["satisfied","not_satisfied","unresolved","unsupported"],"candidate_states":[{"adapter_status":"absent","candidate":"CP-01","dependency_admission_status":"absent","execution_status":"not_performed","implementation_status":"absent"},{"adapter_status":"absent","candidate":"CP-02","dependency_admission_status":"absent","execution_status":"not_performed","implementation_status":"absent"},{"adapter_status":"absent","candidate":"CP-03","dependency_admission_status":"absent","execution_status":"not_performed","implementation_status":"absent"},{"adapter_status":"absent","candidate":"CP-04","dependency_admission_status":"absent","execution_status":"not_performed","implementation_status":"absent"},{"adapter_status":"absent","candidate":"CP-05","dependency_admission_status":"absent","execution_status":"not_performed","implementation_status":"absent"}],"candidates":[{"id":"CP-01","name":"Theorem/certificate hybrid direct-native path"},{"id":"CP-02","name":"Mechanized proof-per-pass direct-native path"},{"id":"CP-03","name":"Versioned Jasmin backend boundary"},{"id":"CP-04","name":"Portable C11 interoperability boundary"},{"id":"CP-05","name":"Versioned LLVM IR interoperability boundary"}],"case_input_index_sha256":"4c8b0547a8f3bd380f4569008c8728014bb1d8718a5bfe17402bd03866560209","cases":["CC-01","CC-02","CC-03","CC-04","CC-05","CC-06","CC-07","CC-08"],"comparative_axes":["AX-01","AX-02","AX-03","AX-04","AX-05","AX-06","AX-07","AX-08","AX-09"],"comparative_labels":["hybrid_direct_native_better","proof_per_pass_direct_native_better","jasmin_backend_better","portable_c11_better","llvm_ir_better","practically_equivalent","inconclusive"],"conclusion":null,"conclusions":["recommend_hybrid_direct_native","recommend_proof_per_pass_direct_native","recommend_jasmin_backend","recommend_portable_c11","recommend_llvm_ir","tie","inconclusive"],"dependency_acceptance":{"D-003":true,"D-004":false,"D-005":false,"D-006":false,"D-009":false},"epoch":null,"epoch_status":"unfrozen","execution":{"complete_candidates":0,"complete_cross_candidate_cases":0,"completed_candidate_cases":0,"evidence_status":"none","required_candidate_cases":40},"execution_resource_state":{"case_output_bytes":null,"case_peak_memory_bytes":null,"case_temp_storage_bytes":null,"case_wall_seconds":null,"contract_status":"unassigned_freeze_blocker","host_matrix_status":"unassigned_freeze_blocker","timeout_semantics_status":"unassigned_freeze_blocker"},"hard_gate_count":8,"hard_gate_state_precedence":["unsupported","fail","unresolved","pass"],"hard_gate_states":["pass","fail","unresolved","unsupported"],"independent_review_status":"unavailable","input_bindings":{"case_input_index":{"path":"research/decisions/D-010/d010-v0.1-case-input-index.json","sha256":"e9f59e86dff6219474d244ff01a98c75b7b17c65f1f91506d483a57e95e33670"},"compiler_strategy_suite":{"path":"docs/COMPILER_STRATEGY_DECISION_SUITE.md","sha256":"5d36f1faeda027b9784846af0aa742339c6b821f39b72a8ca067a90c41a46c73"}},"laboratory_budgets":{"max_json_depth":32,"max_json_nodes":16384,"max_packet_bytes":262144,"max_string_bytes":16384},"metrics":["M-01","M-02","M-03","M-04","M-05","M-06","M-07","M-08","M-09","M-10","M-11","M-12","M-13","M-14","M-15","M-16","M-17","M-18","M-19"],"nonclaims":["D-003 acceptance grants no D-004, D-005, D-006, D-007, D-009, D-010, D-011, D-012, or D-013 acceptance","no compiler, backend, proof assistant, solver, checker, assembler, linker, adapter, runner, observer, emulator, or isolation dependency admitted, acquired, installed, or executed","no executable shared input, candidate mapping, result schema, or physical execution order exists","no evidence epoch, candidate result, selection, or conclusion exists","no source-to-IR, pass, certificate, theorem, leakage, target, ABI, object, wrapper, interoperability, or final-byte proposition validated","no compiler strategy or output path selected, preferred, recommended by these inputs, implemented, or authorized for claim-bearing product work","no claim frontier, logical TCB, target envelope, leakage model, or foreign boundary accepted or changed","no C11 or LLVM artifact inherits a native assurance claim, and neither may borrow evidence from the other","no independent review, reproduction, audit, certification, or external validation claimed","no roadmap gate, S5 closure, release authority, compiler capability, or readiness credit"],"owner_protocol_review":"none","owner_scopes":["CR-01","CR-02","CR-03","CR-04","CR-05","CR-06","CR-07","CR-08","CR-09","CR-10","CR-11"],"physical_execution_order":null,"protocol_counts":{"cold_bootstrap_runs":5,"deterministic_profile_runs":3,"maximum_same_owner_reproducibility_level":2,"owner_workspaces":2,"timed_replays_per_case":30,"unmeasured_warmups":1},"protocol_gaps":["D-004 acceptance absent","D-005 acceptance absent","D-006 acceptance absent","D-009 acceptance absent","candidate-neutral shared inputs and all eight executable case inventories absent","input-manifest digest unfrozen","execution resource, timeout, host, environment, cache, and network contract unassigned","compiler, backend, toolchain, proof, checker, acquisition, and D-018 admissions absent","candidate adapters, runner, observer, emulator, and isolation backend absent","versioned D-010 result and same-owner-replay schema absent","suite-only downstream model fixtures and reference endpoints absent","physical execution order, correction window, and materiality bands unassigned","owner protocol review absent"],"schema_version":"d010-pre-epoch-packet-v0.1","selection":null,"semantic_bindings":{"architecture_document":{"normalization":"markdown-prose-lines-exact-v1","normalized_sha256":"4c5b30ac62050400550e83e50dd3190ff9d30eaf8590c754d2b873432174b8d7","path":"docs/ARCHITECTURE.md","scope":"whole_document","section_end_heading":null,"section_start_heading":null},"assurance_document":{"normalization":"markdown-prose-lines-exact-v1","normalized_sha256":"87bbbdaa24ffb0fdae7238b2bc27201052241f66363c3549ba02890f3288090f","path":"docs/ASSURANCE.md","scope":"whole_document","section_end_heading":null,"section_start_heading":null},"compiler_strategy_suite":{"normalization":"markdown-prose-lines-exact-v1","normalized_sha256":"25dfd84dba00743714378585c297ef840f15ac7942921d0080bd7787b49caaf0","path":"docs/COMPILER_STRATEGY_DECISION_SUITE.md","scope":"whole_document","section_end_heading":null,"section_start_heading":null},"decision_register_d010":{"normalization":"markdown-prose-lines-exact-v1","normalized_sha256":"059eaeb8128f58a76d87855951767a1ccc936e847bf090bf4240f18d94281d17","path":"docs/DECISIONS.md","scope":"markdown_exact_heading_range","section_end_heading":"## D-011 — Initial native target envelope","section_start_heading":"## D-010 — Compiler strategy"},"decision_register_document":{"normalization":"markdown-prose-lines-exact-v1","normalized_sha256":"c38f7b1d3b3f733a628e0618124e290648298eea8dab2ef89f81c597eb68d177","path":"docs/DECISIONS.md","scope":"whole_document","section_end_heading":null,"section_start_heading":null},"research_document":{"normalization":"markdown-prose-lines-exact-v1","normalized_sha256":"cb40341f074bff28933ce10ae08edf8b0eef3709adb84d85474b3ebccaff8e5f","path":"docs/RESEARCH.md","scope":"whole_document","section_end_heading":null,"section_start_heading":null},"roadmap_document":{"normalization":"markdown-prose-lines-exact-v1","normalized_sha256":"c92c6657068d3a71b8ccb184b408020f5cd44971286b2743e1e4d55dd67125e6","path":"docs/ROADMAP.md","scope":"whole_document","section_end_heading":null,"section_start_heading":null},"roadmap_s5":{"normalization":"markdown-prose-lines-exact-v1","normalized_sha256":"c407724176ed44756270176818ca9b89dcda2a6a514e4d59bae3054f7def4c28","path":"docs/ROADMAP.md","scope":"markdown_exact_heading_range","section_end_heading":"### S6 — Memory, leakage, ABI, and native targets","section_start_heading":"### S5 — Compiler IRs and one output path"},"threat_model_document":{"normalization":"markdown-prose-lines-exact-v1","normalized_sha256":"b4be29699ee6e131192777ebc8748b3dd8e113e11e7b09f5d7c2aba11eae3385","path":"docs/security/THREAT_MODEL.md","scope":"whole_document","section_end_heading":null,"section_start_heading":null},"traceability_document":{"normalization":"markdown-prose-lines-exact-v1","normalized_sha256":"15b334ea33ad9028c8e27dece8ee6143e8a69ff1825333e0041bf88cdf249e92","path":"docs/GATE0_TRACEABILITY.md","scope":"whole_document","section_end_heading":null,"section_start_heading":null}},"status":"draft_unfrozen","suite_version":"d010-v0.1-draft"} diff --git a/tools/d004_candidate_mappings.py b/tools/d004_candidate_mappings.py new file mode 100644 index 0000000..6c651a3 --- /dev/null +++ b/tools/d004_candidate_mappings.py @@ -0,0 +1,806 @@ +"""Focused validation for D-004 candidate mappings and their result-contract binding.""" + +from __future__ import annotations + +import hashlib +import re +from typing import Any, Callable + + +def validate_candidate_mapping_catalog( + context: Any, + *, + catalog_path: str, + canonical_sha256: str, + raw_sha256: str, + subject_sha256: str, + suite_raw_sha256: str, + canonical_json_bytes: Callable[[Any], bytes], +) -> None: + path = context.root / catalog_path + + def fail(suffix: str, message: str) -> None: + context.add(f"d004_packet.mapping_catalog_{suffix}", path, message) + + raw = context._read_repository_bytes(path) + if raw is None: + fail("missing", "closed D-004 candidate-mapping catalog is missing") + return + try: + catalog = context._load_repository_json(path) + except (OSError, UnicodeDecodeError, ValueError, TypeError) as exc: + fail("parse", f"cannot strictly parse candidate-mapping catalog: {exc}") + return + try: + canonical = canonical_json_bytes(catalog) + except (TypeError, ValueError) as exc: + fail("canonical", f"candidate-mapping catalog is outside the canonical I-JSON profile: {exc}") + return + if raw != canonical + b"\n": + fail("canonical", "candidate-mapping catalog must use canonical JSON and one terminal LF") + if ( + hashlib.sha256(canonical).hexdigest() + != canonical_sha256 + or hashlib.sha256(raw).hexdigest() + != raw_sha256 + ): + fail("identity", "candidate-mapping canonical or raw SHA-256 identity drifted") + if not isinstance(catalog, dict): + fail("schema", "candidate-mapping catalog root must be an object") + return + + root_fields = { + "canonicalization", "catalog_subject", "catalog_subject_sha256", "epoch", + "evidence_status", "execution_boundary", "frozen", "nonclaims", + "open_decisions", "owner_protocol_review", "schema_version", + "source_bindings", "status", "suite_version", + } + if set(catalog) != root_fields: + fail("schema", "candidate-mapping catalog root fields are not closed") + + nonclaims = [ + "candidate mappings are draft hypotheses and are not accepted Orange semantics", + "no candidate adapter executable command or process exists", + "no candidate mapping was executed", + "no observed state comparison result or verdict was produced", + "no candidate capability or capability absence was established", + "mapping authentication is not D-004 execution evidence", + "no D-004 evidence epoch is frozen", + "no semantic-strata candidate is selected", + "no D-004 disposition is inferred", + "no S3b implementation roadmap gate closure or release-readiness movement is authorized", + ] + exact_boundary = { + "canonicalization": "RFC8785_ASCII_INTEGER_SUBSET", + "epoch": None, + "evidence_status": "none", + "execution_boundary": { + "adapter": "absent", + "command": "absent", + "network": "not_used", + "output_persistence": "none", + "process": "not_invoked", + }, + "frozen": False, + "nonclaims": nonclaims, + "owner_protocol_review": "none", + "schema_version": "d004-candidate-mapping-catalog-v0.1", + "status": "draft_unreviewed_input_only", + "suite_version": "d004-v0.5-draft", + } + if any(catalog.get(key) != value for key, value in exact_boundary.items()): + fail("boundary", "catalog weakened its exact input-only, unreviewed, zero-evidence boundary") + + forbidden_fields = { + "adapter_argv", "adapter_output", "adapter_path", "candidate_execution", + "candidate_observation", "capability_credit", "case_result", "case_verdict", + "environment", "evidence", "execution_result", "loader_status", "matched", + "observed_invalidation", "observed_state", "readiness_credit", "result", + "verdict", + } + pending: list[Any] = [catalog] + while pending: + value = pending.pop() + if isinstance(value, dict): + if forbidden_fields.intersection(value): + fail("nonclaim", "catalog contains a forbidden execution, evidence, verdict, or readiness field") + break + pending.extend(value.values()) + elif isinstance(value, list): + pending.extend(value) + + expected_source_bindings = { + "suite": { + "path": "docs/SEMANTIC_STRATA_DECISION_SUITE.md", + "raw_sha256": suite_raw_sha256, + } + } + if catalog.get("source_bindings") != expected_source_bindings: + fail("source_binding", "catalog must bind the exact v0.5 suite source bytes") + suite_path = context.root / "docs/SEMANTIC_STRATA_DECISION_SUITE.md" + suite_raw = context._read_repository_bytes(suite_path) + if suite_raw is None or hashlib.sha256(suite_raw).hexdigest() != suite_raw_sha256: + fail("source_binding", "bound semantic-strata suite bytes are unavailable or drifted") + + expected_open_decisions = [ + {"id": identifier, "scope": scope, "status": "unselected"} + for identifier, scope in ( + ("D-005", "claim model"), + ("D-006", "proof foundation"), + ("D-007", "proof format and checker"), + ("D-009", "solver trust policy"), + ("D-010", "compiler-pass strategy"), + ("D-011", "host target ISA and object-format envelope"), + ("D-012", "leakage observations and declassification policy"), + ("D-013", "ABI"), + ) + ] + if catalog.get("open_decisions") != expected_open_decisions: + fail("open_decisions", "all eight dependent decisions must remain ordered and unselected") + + subject = catalog.get("catalog_subject") + subject_fields = { + "candidate_count", "candidate_graphs", "mapping_row_count", + "relationship_count", "required_relationships", + } + if not isinstance(subject, dict): + fail("schema", "catalog_subject must be an object") + return + if set(subject) != subject_fields: + fail("schema", "catalog_subject fields are not closed") + subject_digest = hashlib.sha256(canonical_json_bytes(subject)).hexdigest() + if ( + catalog.get("catalog_subject_sha256") != subject_digest + or catalog.get("catalog_subject_sha256") + != subject_sha256 + ): + fail("subject_digest", "catalog-subject canonical identity drifted") + if ( + subject.get("candidate_count") != 5 + or subject.get("relationship_count") != 14 + or subject.get("mapping_row_count") != 70 + ): + fail("counts", "catalog must declare exactly 5 graphs, 14 relationships, and 70 mapping rows") + + relationship_fields = { + "codomain", "crossing", "definedness", "direction", "domain", + "failure_behavior", "id", "identity_inputs", "obligations", "observation", + "prohibited_reverse_inferences", "trust_role", + } + expected_relationships = [f"SR-{index:02d}" for index in range(1, 15)] + relationships = subject.get("required_relationships") + relationship_digests: list[str] = [] + if not isinstance(relationships, list) or len(relationships) != 14: + fail("relationship_inventory", "required relationships must contain exactly 14 ordered rows") + relationships = [] + relationship_ids: list[str] = [] + for index, relationship in enumerate(relationships): + if not isinstance(relationship, dict) or set(relationship) != relationship_fields: + fail("relationship_schema", f"required relationship {index} fields are not closed") + relationship_digests.append("") + continue + relationship_ids.append(str(relationship.get("id", ""))) + if any( + not isinstance(relationship.get(field), str) or not relationship.get(field) + for field in relationship_fields + ): + fail("relationship_value", f"required relationship {index} has an empty or non-string field") + relationship_digests.append( + hashlib.sha256(canonical_json_bytes(relationship)).hexdigest() + ) + if relationship_ids != expected_relationships or len(set(relationship_ids)) != 14: + fail("relationship_order", "required relationships must be unique and ordered SR-01 through SR-14") + + graph_record_fields = {"candidate", "graph", "graph_sha256"} + graph_fields = {"architecture", "candidate", "edges", "nodes", "sr_rows"} + node_fields = {"authority", "facets", "id", "member_kind", "parent", "role"} + edge_record_fields = {"edge_sha256", "edge_subject"} + edge_fields = { + "codomain_endpoints", "conformance_status", "definedness", + "delegation_boundary", "direction", "domain_endpoint", "draft_status", + "failure_behavior", "id", "identity_inputs", "obligations", + "observation_requirement", "parameter_slots", "prohibited_reverse_inferences", + "relationship", "trust_role", + } + mapping_record_fields = {"mapping", "mapping_sha256"} + mapping_fields = { + "candidate", "draft_hypothesis", "fused_authority", "inspectability", + "mapping_form", "native_edges", "relationship", + "required_relationship_sha256", + } + member_kinds = { + "source_declaration", "semantic_domain", "semantic_view", "shared_subset", + "evidence_interface", "claim_boundary", "judgment_boundary", + "host_delegated_domain", "reference_set", + } + authorities = { + "input_only", "candidate_local", "later_decision_boundary", + "unresolved_checker_boundary", "host_delegated", + } + candidates = ["ST-REL", "ST-UNI", "ST-DUAL", "ST-MIRROR", "ST-HOST"] + candidate_graphs = subject.get("candidate_graphs") + if not isinstance(candidate_graphs, list) or len(candidate_graphs) != 5: + fail("candidate_inventory", "candidate_graphs must contain exactly five ordered graphs") + return + if [row.get("candidate") if isinstance(row, dict) else None for row in candidate_graphs] != candidates: + fail("candidate_order", "candidate graphs must be uniquely ordered by the frozen candidate inventory") + + graph_digests: set[str] = set() + mapping_digests: set[str] = set() + for candidate_index, graph_record in enumerate(candidate_graphs): + candidate = candidates[candidate_index] + prefix = candidate.removeprefix("ST-").lower() + "-" + if not isinstance(graph_record, dict) or set(graph_record) != graph_record_fields: + fail("graph_schema", f"{candidate} graph record fields are not closed") + continue + graph = graph_record.get("graph") + if not isinstance(graph, dict) or set(graph) != graph_fields: + fail("graph_schema", f"{candidate} graph fields are not closed") + continue + if ( + graph_record.get("candidate") != candidate + or graph.get("candidate") != candidate + or not isinstance(graph.get("architecture"), str) + or not graph.get("architecture") + ): + fail("candidate_join", f"{candidate} graph identity or architecture drifted") + + nodes = graph.get("nodes") + node_map: dict[str, dict[str, Any]] = {} + if not isinstance(nodes, list) or not nodes: + fail("node_inventory", f"{candidate} must retain a nonempty node inventory") + nodes = [] + for node_index, node in enumerate(nodes): + if not isinstance(node, dict) or set(node) != node_fields: + fail("node_schema", f"{candidate} node {node_index} fields are not closed") + continue + node_id = node.get("id") + facets = node.get("facets") + if ( + not isinstance(node_id, str) + or not node_id.startswith(prefix) + or not isinstance(node.get("role"), str) + or not node.get("role") + or node.get("member_kind") not in member_kinds + or node.get("authority") not in authorities + or not isinstance(facets, list) + or not facets + or any(not isinstance(facet, str) or not facet for facet in facets) + or len(set(facets)) != len(facets) + or not (node.get("parent") is None or isinstance(node.get("parent"), str) and node.get("parent")) + ): + fail("node_value", f"{candidate} node {node_index} violates its closed identity or topology vocabulary") + if isinstance(node_id, str): + if node_id in node_map: + fail("node_identity", f"{candidate} contains duplicate node identity {node_id}") + node_map[node_id] = node + for node_id, node in node_map.items(): + parent = node.get("parent") + if parent is not None and (parent == node_id or parent not in node_map): + fail("topology", f"{candidate} node {node_id} has an unresolved or self parent") + required_parents = { + "ST-REL": {"rel-shared-pure": "rel-spec-core"}, + "ST-UNI": { + "uni-pure-view": "uni-calculus", "uni-impl-view": "uni-calculus", + "uni-game-view": "uni-calculus", "uni-machine-view": "uni-calculus", + "uni-proof-interface": "uni-calculus", + }, + "ST-DUAL": { + "dual-game-view": "dual-effect-core", "dual-ct-view": "dual-effect-core", + "dual-machine-view": "dual-effect-core", + "dual-proof-interface": "dual-effect-core", + }, + "ST-MIRROR": {"mirror-shared-pure": "mirror-spec-core"}, + "ST-HOST": {"host-judgment": "host-proof-domain"}, + }[candidate] + if any(node_map.get(node, {}).get("parent") != parent for node, parent in required_parents.items()): + fail("topology", f"{candidate} required containment topology drifted") + if candidate == "ST-MIRROR" and node_map.get("mirror-proof-core", {}).get("member_kind") != "semantic_domain": + fail("topology", "ST-MIRROR proof core must remain an independent semantic domain") + + edges = graph.get("edges") + edge_map: dict[str, dict[str, Any]] = {} + edge_endpoint_nodes: dict[str, set[str]] = {} + referenced_nodes: set[str] = set() + edge_hashes: set[str] = set() + if not isinstance(edges, list) or len(edges) != 14: + fail("edge_inventory", f"{candidate} must retain exactly 14 ordered native edges") + edges = [] + for edge_index, edge_record in enumerate(edges): + relationship_id = expected_relationships[edge_index] + relationship = relationships[edge_index] if edge_index < len(relationships) and isinstance(relationships[edge_index], dict) else {} + if not isinstance(edge_record, dict) or set(edge_record) != edge_record_fields: + fail("edge_schema", f"{candidate} edge {edge_index} record fields are not closed") + continue + edge = edge_record.get("edge_subject") + if not isinstance(edge, dict) or set(edge) != edge_fields: + fail("edge_schema", f"{candidate} edge {edge_index} subject fields are not closed") + continue + edge_id = edge.get("id") + if not isinstance(edge_id, str) or not edge_id.startswith(prefix) or edge_id in edge_map: + fail("edge_identity", f"{candidate} edge {edge_index} identity is invalid or duplicate") + if edge.get("relationship") != relationship_id: + fail("edge_relationship", f"{candidate} edge {edge_index} is not joined to {relationship_id}") + if ( + edge.get("draft_status") != "draft_unreviewed_unfrozen_hypothesis" + or edge.get("conformance_status") != "unresolved" + ): + fail("edge_boundary", f"{candidate} edge {edge_index} claims reviewed or resolved conformance") + copied_fields = { + "direction": "direction", "definedness": "definedness", + "obligations": "obligations", "identity_inputs": "identity_inputs", + "trust_role": "trust_role", "failure_behavior": "failure_behavior", + "prohibited_reverse_inferences": "prohibited_reverse_inferences", + "observation_requirement": "observation", + } + if any(edge.get(target) != relationship.get(source) for target, source in copied_fields.items()): + fail("edge_relationship", f"{candidate} edge {edge_index} weakens its required SR semantics") + + endpoint_nodes: set[str] = set() + + def endpoint_valid(endpoint: Any) -> bool: + if not isinstance(endpoint, dict) or set(endpoint) != {"facet", "node"}: + return False + endpoint_node = endpoint.get("node") + facet = endpoint.get("facet") + if not isinstance(endpoint_node, str) or endpoint_node not in node_map: + return False + node_facets = node_map[endpoint_node].get("facets") + if not isinstance(facet, str) or not isinstance(node_facets, list) or facet not in node_facets: + return False + endpoint_nodes.add(endpoint_node) + return True + + codomains = edge.get("codomain_endpoints") + endpoints_valid = endpoint_valid(edge.get("domain_endpoint")) + if not isinstance(codomains, list) or not codomains: + endpoints_valid = False + codomains = [] + if any(not endpoint_valid(endpoint) for endpoint in codomains): + endpoints_valid = False + if not endpoints_valid: + fail("edge_endpoint", f"{candidate} edge {edge_index} has an unresolved node or facet endpoint") + if edge_index == 13 and codomains != [{ + "facet": "candidate_wide_subject_or_evidence_reference", + "node": f"{prefix}eligible-reference-set", + }]: + fail("topology", f"{candidate} SR-14 must target its candidate-wide eligible reference set") + referenced_nodes.update(endpoint_nodes) + + slots = edge.get("parameter_slots") + if ( + not isinstance(slots, list) + or not slots + or any(not isinstance(slot, str) or not slot for slot in slots) + or len(set(slots)) != len(slots) + ): + fail("edge_parameters", f"{candidate} edge {edge_index} parameter slots are invalid") + slots = [] + if candidate == "ST-HOST" and edge_index == 2 and { + "delegation_selector", "host_identity", "host_non_success_policy", + }.intersection(slots): + fail("delegation", "ST-HOST SR-03 local edge retains generic delegation slots") + delegation_domains = {3: "game", 4: "proof", 7: "game", 10: "machine", 11: "game", 12: "proof"} + delegation_domain = delegation_domains.get(edge_index) if candidate == "ST-HOST" else None + delegation = edge.get("delegation_boundary") + if delegation_domain is None: + if delegation is not None: + fail("delegation", f"{candidate} edge {edge_index} has an unauthorized delegation boundary") + else: + expected_delegation = { + "selector_parameter": f"{delegation_domain}_delegation_selector", + "host_identity_parameter": f"{delegation_domain}_host_identity", + "non_success_behavior": "reject_or_unsupported_without_fallback_claim", + } + required_slots = { + f"{delegation_domain}_delegation_selector", + f"{delegation_domain}_host_identity", + f"{delegation_domain}_non_success_policy", + } + if delegation != expected_delegation or not required_slots.issubset(set(slots)): + fail("delegation", f"{candidate} edge {edge_index} delegation boundary drifted") + + edge_digest = hashlib.sha256(canonical_json_bytes(edge)).hexdigest() + if edge_record.get("edge_sha256") != edge_digest: + fail("edge_digest", f"{candidate} edge {edge_index} digest drifted") + if edge_digest in edge_hashes: + fail("edge_identity", f"{candidate} contains duplicate edge-subject identities") + edge_hashes.add(edge_digest) + if isinstance(edge_id, str): + edge_map[edge_id] = edge + edge_endpoint_nodes[edge_id] = endpoint_nodes + + parent_nodes = { + parent for node in node_map.values() + if isinstance((parent := node.get("parent")), str) + } + if any(node_id not in referenced_nodes and node_id not in parent_nodes for node_id in node_map): + fail("topology", f"{candidate} contains an orphan node outside all edge and containment paths") + + rows = graph.get("sr_rows") + used_edges: set[str] = set() + row_relationships: list[str] = [] + if not isinstance(rows, list) or len(rows) != 14: + fail("mapping_inventory", f"{candidate} must retain exactly 14 ordered SR mappings") + rows = [] + for row_index, row_record in enumerate(rows): + relationship_id = expected_relationships[row_index] + if not isinstance(row_record, dict) or set(row_record) != mapping_record_fields: + fail("mapping_schema", f"{candidate} mapping {row_index} record fields are not closed") + continue + mapping = row_record.get("mapping") + if not isinstance(mapping, dict) or set(mapping) != mapping_fields: + fail("mapping_schema", f"{candidate} mapping {row_index} fields are not closed") + continue + row_relationships.append(str(mapping.get("relationship", ""))) + expected_relationship_digest = relationship_digests[row_index] if row_index < len(relationship_digests) else "" + if ( + mapping.get("candidate") != candidate + or mapping.get("relationship") != relationship_id + or mapping.get("required_relationship_sha256") != expected_relationship_digest + or mapping.get("inspectability") != "separately_inspectable_and_falsifiable" + ): + fail("mapping_join", f"{candidate} mapping {row_index} does not preserve its candidate/SR identity join") + form = mapping.get("mapping_form") + expected_delegated = candidate == "ST-HOST" and row_index not in {0, 1, 2, 5, 6, 8, 9, 13} + if form not in {"direct", "fused", "split", "delegated"} or (form == "delegated") != expected_delegated: + fail("mapping_form", f"{candidate} mapping {row_index} uses an invalid form") + native_edges = mapping.get("native_edges") + if not isinstance(native_edges, list): + native_edges = [] + valid_cardinality = len(native_edges) >= 2 if form == "split" else len(native_edges) == 1 + if ( + not valid_cardinality + or any(not isinstance(edge_id, str) or not edge_id for edge_id in native_edges) + or len(set(native_edges)) != len(native_edges) + ): + fail("mapping_edges", f"{candidate} mapping {row_index} has invalid native-edge cardinality or identity") + fused_authority = mapping.get("fused_authority") + if form == "fused": + if not isinstance(fused_authority, str) or fused_authority not in node_map or node_map[fused_authority].get("member_kind") != "semantic_domain": + fail("topology", f"{candidate} fused mapping {row_index} lacks a semantic-domain authority") + elif fused_authority is not None: + fail("mapping_form", f"{candidate} non-fused mapping {row_index} retains fused authority") + for edge_id in native_edges: + edge = edge_map.get(edge_id) if isinstance(edge_id, str) else None + if ( + edge is None + or not edge_id.startswith(prefix) + or edge.get("relationship") != relationship_id + or edge_id in used_edges + ): + fail("mapping_edges", f"{candidate} mapping {row_index} references an unresolved, reused, or wrong-SR edge") + continue + used_edges.add(edge_id) + endpoints = edge_endpoint_nodes.get(edge_id, set()) + if form == "fused" and isinstance(fused_authority, str): + if any( + node_map[endpoint].get("member_kind") != "source_declaration" + and endpoint != fused_authority + and node_map[endpoint].get("parent") != fused_authority + for endpoint in endpoints + ): + fail("topology", f"{candidate} fused mapping {row_index} crosses outside its authority containment") + if form == "delegated" and not any( + node_map[endpoint].get("authority") == "host_delegated" + or node_map.get(str(node_map[endpoint].get("parent")), {}).get("authority") == "host_delegated" + for endpoint in endpoints + ): + fail("delegation", f"{candidate} delegated mapping {row_index} does not cross a host-delegated endpoint") + hypothesis = mapping.get("draft_hypothesis") + if ( + not isinstance(hypothesis, str) + or not hypothesis.startswith(f"Draft hypothesis: {candidate} ") + or relationship_id not in hypothesis + or "unreviewed" not in hypothesis + or "unfrozen" not in hypothesis + ): + fail("mapping_boundary", f"{candidate} mapping {row_index} overstates its draft hypothesis") + mapping_digest = hashlib.sha256(canonical_json_bytes(mapping)).hexdigest() + if row_record.get("mapping_sha256") != mapping_digest: + fail("mapping_digest", f"{candidate} mapping {row_index} digest drifted") + if mapping_digest in mapping_digests: + fail("mapping_identity", "mapping identities must be globally unique across all 70 rows") + mapping_digests.add(mapping_digest) + if row_relationships != expected_relationships or len(set(row_relationships)) != len(row_relationships): + fail("mapping_order", f"{candidate} mappings must be unique and ordered SR-01 through SR-14") + if set(edge_map) != used_edges: + fail("mapping_edges", f"{candidate} mappings must consume every native edge exactly once") + + graph_digest = hashlib.sha256(canonical_json_bytes(graph)).hexdigest() + if graph_record.get("graph_sha256") != graph_digest: + fail("graph_digest", f"{candidate} graph digest drifted") + if graph_digest in graph_digests: + fail("graph_identity", "candidate graph identities must be unique") + graph_digests.add(graph_digest) + + if len(mapping_digests) != 70: + fail("counts", "catalog must retain 70 globally unique mapping identities") + + +def validate_d004_result_contract_source( + context: Any, + *, + result_contract_source: str, + result_contract_source_sha256: str, + decision_suite_source: str, + descriptor_sha256: str, +) -> None: + path = context.root / result_contract_source + source_bytes = context._read_repository_bytes(path) + if source_bytes is None: + context.add( + "d004_packet.result_contract_missing", + path, + "closed D-004 future-result schema descriptor source is missing", + ) + return + if hashlib.sha256(source_bytes).hexdigest() != result_contract_source_sha256: + context.add( + "d004_packet.result_contract_identity", + path, + "future-result descriptor source identity drifted", + ) + try: + source = source_bytes.decode("utf-8") + except UnicodeDecodeError: + context.add( + "d004_packet.result_contract_source", + path, + "future-result descriptor source is not UTF-8", + ) + return + + suite_path = context.root / decision_suite_source + suite_bytes = context._read_repository_bytes(suite_path) + suite_markers = ( + '#[path = "d004_support/candidate_mappings.rs"]', + "mod candidate_mappings;", + '#[path = "d004_support/result_contract.rs"]', + "mod result_contract;", + 'const RESULT_CONTRACT_DESCRIPTOR_SHA256: &str =', + f'"{descriptor_sha256}"', + "canonical_draft_result_contract_descriptor_bytes", + "parse_draft_result_contract_descriptor", + "assert_eq!(oracle_inventory.len(), 73);", + "assert_eq!(subject_ids.len(), 73);", + "assert_eq!(CANDIDATE_MAPPING_CATALOG_PATH, INPUT_BINDINGS[22].path);", + "candidate_mapping_catalog_is_exact_complete_and_input_only", + "assert_eq!(plan.schedule().len(), REQUIRED_CANDIDATE_CASES);", + '.get("schedule_slots")', + ) + if suite_bytes is None: + context.add( + "d004_packet.result_contract_suite_binding", + suite_path, + "D-004 suite source is unavailable for descriptor binding", + ) + else: + try: + suite_source = suite_bytes.decode("utf-8") + except UnicodeDecodeError: + suite_source = "" + if any(marker not in suite_source for marker in suite_markers): + context.add( + "d004_packet.result_contract_suite_binding", + suite_path, + "D-004 suite no longer binds the exact descriptor module and digest", + ) + + schema_markers = ( + '"d004-result-contract-descriptor-v0.1-draft"', + "pub(crate) const REQUIRED_CASE_RECORD_FIELDS: [&str; 31]", + "pub(crate) const REQUIRED_POSITIVE_SUBJECT_BINDING_FIELDS: [&str; 2]", + "pub(crate) const REQUIRED_MUTATION_SUBJECT_BINDING_FIELDS: [&str; 3]", + "pub(crate) const REQUIRED_IDENTITY_FIELDS: [&str; 11]", + "pub(crate) const REQUIRED_RESOURCE_CEILING_FIELDS: [&str; 4]", + "pub(crate) const REQUIRED_MEASURED_RESOURCE_FIELDS: [&str; 5]", + "pub(crate) const REQUIRED_EXECUTION_STATE_FIELDS: [&str; 6]", + "pub(crate) const REQUIRED_OBSERVATION_FIELDS: [&str; 12]", + "pub(crate) const REQUIRED_LOG_MANIFEST_FIELDS: [&str; 2]", + "pub(crate) const REQUIRED_LOG_MANIFEST_ENTRY_FIELDS: [&str; 5]", + "pub(crate) const REQUIRED_CONTEXT_INVENTORIES: [&str; 4]", + "pub(crate) const REQUIRED_CANDIDATE_GRAPH_FIELDS: [&str; 3]", + "pub(crate) const REQUIRED_GRAPH_NODE_FIELDS: [&str; 3]", + "pub(crate) const REQUIRED_GRAPH_EDGE_FIELDS: [&str; 13]", + "pub(crate) const REQUIRED_SR_MAP_FIELDS: [&str; 15]", + "pub(crate) const REQUIRED_BYTE_MANIFEST_FIELDS: [&str; 2]", + "pub(crate) const REQUIRED_BYTE_MANIFEST_ENTRY_FIELDS: [&str; 4]", + "pub(crate) const REQUIRED_ENVIRONMENT_ENTRY_FIELDS: [&str; 2]", + "pub(crate) const REQUIRED_CONTEXT_ENTRY_FIELDS: [&str; 4]", + "pub(crate) const REQUIRED_UNSUPPORTED_FEATURE_FIELDS: [&str; 4]", + "pub(crate) const REQUIRED_REPLAY_FIELDS: [&str; 6]", + "pub(crate) const REQUIRED_OWNER_LABEL_FIELDS: [&str; 4]", + "pub(crate) const REPLAY_NON_SUCCESS_STATES: [&str; 7]", + "pub(crate) const EXECUTION_STATE_KINDS: [&str; 8]", + 'pub(crate) const ADAPTER_STATUS_STATES: [&str; 3] = ' + '["executed", "not_executed", "failed"]', + "pub(crate) const OBSERVED_INVALIDATION_STATES: [&str; 3]", + "pub(crate) const SR_APPLICABILITY_STATES: [&str; 2]", + "pub(crate) const SR_CONFORMANCE_STATES: [&str; 4]", + "pub(crate) const SCHEDULE_SLOT_FIELDS: [&str; 5]", + "pub(crate) const SCHEDULED_SLOT_PREIMAGE_FIELDS: [&str; 10]", + "pub(crate) const SUBJECT_ORACLE_FIELDS: [&str; 11]", + "pub(crate) const CANDIDATE_MAPPING_IDENTITY_FIELDS: [&str; 4]", + "pub(crate) const DIGEST_JOIN_FIELDS: [&str; 13]", + "pub(crate) const ORDERING_RULES: [&str; 6]", + "pub(crate) const OBSERVATION_COMPARISONS: [&str; 2]", + "pub(crate) const DERIVATION_RULES: [&str; 31]", + "pub(crate) const RESULT_CONTRACT_NONCLAIMS: [&str; 12]", + "pub(crate) fn canonical_draft_result_contract_descriptor_bytes(", + "pub(crate) fn parse_draft_result_contract_descriptor(", + "let expected = descriptor_value(", + "if value != expected", + "Ok(DraftResultContractDescriptor {", + "case_subject_catalog: &CaseSubjectCatalog", + "fixture_catalog: &FixtureCatalog", + "candidate_mapping_catalog: &CandidateMappingCatalog", + "use super::cases::MUTATIONS;", + '("mutation_inventory".to_owned(), mutation_inventory_value())', + '"subject_catalog_bindings".to_owned()', + '"candidate_mapping_identity_inventory".to_owned()', + "candidate_mapping_identity_inventory_value(candidate_mapping_catalog)", + '"subject_oracle_inventory".to_owned()', + "subject_oracle_inventory_value(case_subject_catalog, fixture_catalog)", + '("schedule_slots".to_owned(), schedule_slots_value())', + '"scheduled_slot_identity_contract".to_owned()', + "MUTATIONS", + "Vec::with_capacity(REQUIRED_CANDIDATE_CASES)", + "Vec::with_capacity(positives.len() + mutations.len() + fixtures.len())", + "CANDIDATES[(round + position) % CANDIDATES.len()]", + "CASES[(2 * round + position) % CASES.len()]", + "fn pointer_token(value: &str) -> String", + "value.replace('~', \"~0\").replace('/', \"~1\")", + '"execution kind completed requires exit_code zero, signal null, ' + 'adapter_status executed, and no truncated output"', + '"replay resource_exhaustion is distinct from preregistered ' + 'domain-level exhausted"', + '"case_verdict is pass if and only if execution is validly completed, ' + 'every resource bound holds, the frozen authenticated observation inventory ' + 'is complete and matched, every required invalidation is satisfied, every ' + 'digest and manifest join succeeds, all required SR rows are satisfied with ' + 'valid dependencies, and the replay contract is satisfied"', + ) + if any(marker not in source for marker in schema_markers): + context.add( + "d004_packet.result_contract_schema", + path, + "future-result descriptor schema or exact-only parser surface drifted", + ) + + zero_state_markers = ( + '("epoch".to_owned(), JsonValue::Null)', + 'string_entry("epoch_status", "unfrozen")', + 'string_entry("owner_protocol_review", "none")', + '("replay_repetitions".to_owned(), JsonValue::Null)', + 'usize_entry("required_candidate_cases", REQUIRED_CANDIDATE_CASES)', + 'usize_entry("result_record_count", 0)', + 'usize_entry("completed_candidate_cases", 0)', + 'usize_entry("complete_candidates", 0)', + 'usize_entry("complete_cross_candidate_cases", 0)', + 'string_entry("evidence_status", "none")', + '("selection".to_owned(), JsonValue::Null)', + '("conclusion".to_owned(), JsonValue::Null)', + 'string_entry("roadmap_gate_credit", "none")', + 'string_entry("readiness_credit", "none")', + 'string_entry("status", "identity_plan_only")', + 'string_entry("physical_execution_order", "unassigned")', + 'string_entry("persistence", "none_before_frozen_epoch")', + 'string_entry("current_record_status", "absent")', + ) + empty_record_arrays = ( + "result_records", + "observation_records", + "verdict_records", + "review_records", + "evidence_records", + ) + empty_records = all( + re.search( + rf'"{re.escape(name)}"\.to_owned\(\),\s*' + r'JsonValue::Array\(Vec::new\(\)\)\s*,?\s*\)', + source, + ) + is not None + for name in empty_record_arrays + ) + if any(marker not in source for marker in zero_state_markers) or not empty_records: + context.add( + "d004_packet.result_contract_zero_state", + path, + "descriptor weakened the exact unfrozen 0/25, no-evidence, no-credit state", + ) + if any( + marker in source + for marker in ( + 'fn readiness_percent(', + '"readiness_percent"', + '"roadmap_gates_closed"', + '"roadmap_gates_total"', + ) + ): + context.add( + "d004_packet.result_contract_readiness_scope", + path, + "D-004 descriptor must not restate global gate count or readiness percentage", + ) + + nonclaims = ( + "descriptor only; no populated case record exists", + "candidate mappings are unreviewed input-only hypotheses; no candidate adapter exists", + "no candidate process or tool invoked", + "no result, observation, verdict, review, or evidence record accepted", + "no replay repetition count assigned", + "no D-004 evidence epoch frozen", + "no candidate-case execution completed", + "no semantic-strata candidate selected", + "no D-004 disposition accepted", + "no S3b implementation authorized", + "no independent review claimed", + "no roadmap gate or readiness movement", + ) + if any(f'"{value}"' not in source for value in nonclaims): + context.add( + "d004_packet.result_contract_nonclaims", + path, + "future-result descriptor weakened its exact nonclaims", + ) + + if ( + '"allowed_domain_states"' not in source + or ( + "observed_state is a member of the resolved oracle " + "allowed_domain_states" + ) + not in source + or '"comparison is mismatched otherwise"' not in source + or '"no replay repetition count assigned"' not in source + or 'string_entry("capability_credit", "none")' not in source + or ( + "observation_level, allowed_domain_states, required_invalidation, " + "and capability_credit must equal the resolved oracle and cannot be " + "result-defined or broadened" + ) + not in source + ): + context.add( + "d004_packet.result_contract_semantics", + path, + "oracle-bound observation semantics or unresolved replay cardinality drifted", + ) + + function_names = set( + re.findall(r"\bfn\s+([A-Za-z_][A-Za-z0-9_]*)\s*\(", source) + ) + execution_prefixes = ("execute", "launch", "invoke", "spawn", "run_candidate") + if ( + any(name.startswith(execution_prefixes) for name in function_names) + or re.search( + r"\b(?:std::process|Command::new|process::Command)\b", source + ) + ): + context.add( + "d004_packet.result_contract_execution_api", + path, + "future-result descriptor must expose no candidate launcher or execution API", + ) + persistence_prefixes = ("persist", "save", "store", "write", "capture", "emit") + if ( + any(name.startswith(persistence_prefixes) for name in function_names) + or re.search( + r"\b(?:std::fs|std::io::Write|OpenOptions|File::create|fs::write)\b", + source, + ) + ): + context.add( + "d004_packet.result_contract_persistence_api", + path, + "future-result descriptor must expose no capture or persistence API", + ) + parser_names = {name for name in function_names if name.startswith("parse")} + if parser_names != {"parse_draft_result_contract_descriptor"}: + context.add( + "d004_packet.result_contract_parser_api", + path, + "only the exact closed-descriptor parser is permitted", + ) diff --git a/tools/tests/test_d004_draft_packet.py b/tools/tests/test_d004_draft_packet.py index 75d9983..1f6c119 100644 --- a/tools/tests/test_d004_draft_packet.py +++ b/tools/tests/test_d004_draft_packet.py @@ -13,41 +13,41 @@ REPOSITORY_ROOT = Path(__file__).resolve().parents[2] RESEARCH_ROOT = Path("research/decisions/D-004") -PACKET_PATH = RESEARCH_ROOT / "d004-v0.4-draft-packet.json" +PACKET_PATH = RESEARCH_ROOT / "d004-v0.5-draft-packet.json" MANIFEST_PATH = RESEARCH_ROOT / "d004-v0.2-named-mutations.json" PROPOSAL_MANIFEST_PATH = ( RESEARCH_ROOT / "d004-v0.2-cross-cutting-fixture-proposals.json" ) PACKET_CANONICAL_SHA256 = ( - "b298cbf0d1c6af2ca9a4af7bb6b020595ffd00c1ab6896d5f097b3ebff13127d" + "b6df1a38f8a1eb6a80a8864324c21a81cb292d4c48e1981b4547bad41933b340" ) PACKET_RAW_SHA256 = ( - "0da96c89f62125f915152fb0ab30f41e608502bbe3a571a928c91e9d3812bc7a" + "ec3a0a593d1dab7a6ace874dae4fd03c1ae0656cf301897ccabf51cb109c4009" ) MANIFEST_CANONICAL_SHA256 = ( "970999d998cdc202a6caa4e2f798017416c88211a5b6b8508132a07cc9080c0c" ) PROPOSAL_MANIFEST_CANONICAL_SHA256 = ( - "457c14e7d41f677b21af254af45e331b24e6c685a7d7aa8eae556ced5bd7be65" + "85407a4a43b5a6bf450ea905fe858482f2f79abb4cbe8ee8690bddc1753d0912" ) PROPOSAL_MANIFEST_RAW_SHA256 = ( - "171c7b88d54fe2bd7ddb4c220adb63f006e07c35391018b914482ace17cf7e93" + "d3d58cbeb0d2a90987680cd00bc70caf53518be730a71d0d55ba2a7b50544481" ) FIXTURE_CATALOG_PATH = ( RESEARCH_ROOT / "d004-v0.3-cross-cutting-executable-fixtures.json" ) FIXTURE_CATALOG_CANONICAL_SHA256 = ( - "ca08308161244e9541803aa8008dd1624a2101f77da8b656cf0c5deff8a60703" + "0516a84260bcc4d8ebb64e0cd3416deb5c43a86b7f5cd882ca757c924e575767" ) FIXTURE_CATALOG_RAW_SHA256 = ( - "268b4065028f1af9c9ec912ae8884c150094189f5d782963f42ed6ed4cca6ce0" + "5fea65960c47818243d41076dd96a6cab2dbd6d4038fd354a3f5ba30a12622ae" ) CASE_SUBJECT_CATALOG_PATH = RESEARCH_ROOT / "d004-v0.4-case-subjects.json" CASE_SUBJECT_CATALOG_CANONICAL_SHA256 = ( - "b3a8bcf4f0f084740e92cbff6fd57273df0a078af9c6b974f68d95ba333c6dc1" + "5b9e734b6bad7913072e87adb29c58547d67bdcb46af942eb6bbc79d0e68166e" ) CASE_SUBJECT_CATALOG_RAW_SHA256 = ( - "c94100598aaf39954fe683a44f6a4d34837304eb361a1b478ca26884892d8ed6" + "6266b8e38ad1a83fb777278fc0369844749b2915eabb40ba1ddfc9efa7c985f2" ) RESULT_CONTRACT_SOURCE_PATH = Path( "compiler/crates/orange-compiler/tests/d004_support/result_contract.rs" @@ -56,10 +56,51 @@ "compiler/crates/orange-compiler/tests/d004_decision_suite.rs" ) RESULT_CONTRACT_SOURCE_SHA256 = ( - "8ef2abfd63d711907e911c415e4abbb903244aa9b44211f59e9b1f963c884292" + "f3fdb4187fa9dffb23e849208da20f112aba764cfa85df80ae578754f3c9c97a" ) RESULT_CONTRACT_DESCRIPTOR_SHA256 = ( - "e3afc61c7127ca0b59dd010e90ae03a92c3354e3eee490c0667482c9218e8789" + "58773e8ce29e8726a8a85203ff7e2a4b1a03f8c02bfbcd7f6056f34fe53a2f29" +) +CANDIDATE_MAPPING_CATALOG_PATH = RESEARCH_ROOT / "d004-v0.5-candidate-mappings.json" +CANDIDATE_MAPPING_CATALOG_CANONICAL_SHA256 = ( + "c967d7db8ea5049da054129367ec61cd80d729b8ce8cd34c95a76e42c67c97b8" +) +CANDIDATE_MAPPING_CATALOG_RAW_SHA256 = ( + "70765c64936bbb8aafd6e101fbf20c85396eb722d70e55bb9311d14bfbb15156" +) +CANDIDATE_MAPPING_CATALOG_SUBJECT_SHA256 = ( + "e3b790857ee21a0c651995919aaadb9bf59b05367a8dce99bab6afb6e7d2543f" +) + +MANDATORY_DIGEST_JOIN_FIELDS = ( + "packet_sha256", + "replay_plan_sha256", + "scheduled_slot_sha256", + "input_manifest_sha256", + "model_sha256", + "tool_sha256", + "dependency_manifest_sha256", + "environment_sha256", + "candidate_graph_sha256", + "sr_map_sha256", + "semantic_endpoint_sha256", + "parameter_model_sha256", + "positive_subject_sha256", +) +EXPECTED_IDENTITY_SUBSTITUTIONS = ( + ("D004-XF-ID-PACKET", "packet_identity"), + ("D004-XF-ID-REPLAY-PLAN", "replay_plan_identity"), + ("D004-XF-ID-SCHEDULED-SLOT", "scheduled_slot_identity"), + ("D004-XF-ID-INPUT-MANIFEST", "input_manifest_identity"), + ("D004-XF-ID-CANDIDATE-GRAPH", "candidate_graph_identity"), + ("D004-XF-ID-SR-MAP", "sr_map_identity"), + ("D004-XF-ID-SEMANTIC-ENDPOINT", "semantic_endpoint_identity"), + ("D004-XF-ID-PARAMETER-MODEL", "parameter_model_identity"), + ("D004-XF-ID-TOOL", "tool_identity"), + ("D004-XF-ID-ENVIRONMENT", "environment_identity"), + ("D004-XF-ID-MODEL", "model_identity"), + ("D004-XF-ID-DEPENDENCY-MANIFEST", "dependency_manifest_identity"), + ("D004-XF-ID-POSITIVE-SUBJECT", "positive_subject_identity"), ) @@ -118,6 +159,286 @@ def _assert_case_catalog_mutation(self, mutate, expected_code: str) -> None: self._write_canonical(target, catalog) self.assertIn(expected_code, self._codes(root)) + @staticmethod + def _mapping_codes(root: Path) -> set[str]: + validator = FoundationValidator(root) + validator._validate_d004_candidate_mapping_catalog() + return { + finding.code + for finding in validator.findings + if finding.code.startswith("d004_packet.mapping_catalog_") + } + + @staticmethod + def _reseal_candidate_mapping_catalog(catalog: dict[str, object]) -> None: + subject = catalog["catalog_subject"] + assert isinstance(subject, dict) + relationships = subject["required_relationships"] + graphs = subject["candidate_graphs"] + assert isinstance(relationships, list) + assert isinstance(graphs, list) + relationship_digests = [ + hashlib.sha256(canonical_json_bytes(relationship)).hexdigest() + for relationship in relationships + ] + for graph_record in graphs: + assert isinstance(graph_record, dict) + graph = graph_record["graph"] + assert isinstance(graph, dict) + edges = graph["edges"] + rows = graph["sr_rows"] + assert isinstance(edges, list) + assert isinstance(rows, list) + for edge_record in edges: + assert isinstance(edge_record, dict) + edge_record["edge_sha256"] = hashlib.sha256( + canonical_json_bytes(edge_record["edge_subject"]) + ).hexdigest() + for index, row_record in enumerate(rows): + assert isinstance(row_record, dict) + mapping = row_record["mapping"] + assert isinstance(mapping, dict) + if index < len(relationship_digests): + mapping["required_relationship_sha256"] = relationship_digests[index] + row_record["mapping_sha256"] = hashlib.sha256( + canonical_json_bytes(mapping) + ).hexdigest() + graph_record["graph_sha256"] = hashlib.sha256( + canonical_json_bytes(graph) + ).hexdigest() + catalog["catalog_subject_sha256"] = hashlib.sha256( + canonical_json_bytes(subject) + ).hexdigest() + + def _assert_mapping_catalog_mutation(self, mutate, expected_code: str) -> None: + with tempfile.TemporaryDirectory() as directory: + root = Path(directory) + self._copy_lab(root) + target = root / CANDIDATE_MAPPING_CATALOG_PATH + catalog = load_json(target) + mutate(catalog) + self._reseal_candidate_mapping_catalog(catalog) + self._write_canonical(target, catalog) + self.assertIn(expected_code, self._mapping_codes(root)) + + def test_v05_candidate_mapping_catalog_has_exact_closed_identity(self) -> None: + catalog = load_json(REPOSITORY_ROOT / CANDIDATE_MAPPING_CATALOG_PATH) + subject = catalog["catalog_subject"] + self.assertEqual( + (REPOSITORY_ROOT / CANDIDATE_MAPPING_CATALOG_PATH).read_bytes(), + canonical_json_bytes(catalog) + b"\n", + ) + self.assertEqual( + hashlib.sha256(canonical_json_bytes(catalog)).hexdigest(), + CANDIDATE_MAPPING_CATALOG_CANONICAL_SHA256, + ) + self.assertEqual( + hashlib.sha256( + (REPOSITORY_ROOT / CANDIDATE_MAPPING_CATALOG_PATH).read_bytes() + ).hexdigest(), + CANDIDATE_MAPPING_CATALOG_RAW_SHA256, + ) + self.assertEqual( + hashlib.sha256(canonical_json_bytes(subject)).hexdigest(), + CANDIDATE_MAPPING_CATALOG_SUBJECT_SHA256, + ) + self.assertEqual( + ( + subject["candidate_count"], + subject["relationship_count"], + subject["mapping_row_count"], + ), + (5, 14, 70), + ) + self.assertEqual( + [row["candidate"] for row in subject["candidate_graphs"]], + ["ST-REL", "ST-UNI", "ST-DUAL", "ST-MIRROR", "ST-HOST"], + ) + self.assertTrue( + all( + len(row["graph"]["edges"]) == 14 + and len(row["graph"]["sr_rows"]) == 14 + for row in subject["candidate_graphs"] + ) + ) + with tempfile.TemporaryDirectory() as directory: + root = Path(directory) + self._copy_lab(root) + self.assertEqual(self._mapping_codes(root), set()) + + def test_candidate_mapping_counts_order_and_closed_fields_fail_closed(self) -> None: + mutations = ( + ( + lambda catalog: catalog["catalog_subject"].__setitem__("candidate_count", 4), + "d004_packet.mapping_catalog_counts", + ), + ( + lambda catalog: catalog["catalog_subject"]["candidate_graphs"].__setitem__( + slice(0, 2), + list(reversed(catalog["catalog_subject"]["candidate_graphs"][:2])), + ), + "d004_packet.mapping_catalog_candidate_order", + ), + ( + lambda catalog: catalog["catalog_subject"]["required_relationships"].__setitem__( + slice(0, 2), + list(reversed(catalog["catalog_subject"]["required_relationships"][:2])), + ), + "d004_packet.mapping_catalog_relationship_order", + ), + ( + lambda catalog: catalog["catalog_subject"]["candidate_graphs"][0]["graph"]["sr_rows"].pop(), + "d004_packet.mapping_catalog_mapping_inventory", + ), + ( + lambda catalog: catalog["catalog_subject"]["candidate_graphs"][0]["graph"]["nodes"][0].__setitem__("unknown", "field"), + "d004_packet.mapping_catalog_node_schema", + ), + ) + for mutate, code in mutations: + with self.subTest(code=code): + self._assert_mapping_catalog_mutation(mutate, code) + + def test_candidate_mapping_duplicate_and_unknown_keys_fail_closed(self) -> None: + self._assert_mapping_catalog_mutation( + lambda catalog: catalog.__setitem__("unknown", "field"), + "d004_packet.mapping_catalog_schema", + ) + self._assert_mapping_catalog_mutation( + lambda catalog: catalog["catalog_subject"]["candidate_graphs"][0]["graph"]["nodes"][1].__setitem__( + "id", + catalog["catalog_subject"]["candidate_graphs"][0]["graph"]["nodes"][0]["id"], + ), + "d004_packet.mapping_catalog_node_identity", + ) + with tempfile.TemporaryDirectory() as directory: + root = Path(directory) + self._copy_lab(root) + target = root / CANDIDATE_MAPPING_CATALOG_PATH + raw = target.read_bytes() + target.write_bytes( + raw.replace( + b'{"canonicalization":', + b'{"canonicalization":"duplicate","canonicalization":', + 1, + ) + ) + self.assertIn( + "d004_packet.mapping_catalog_parse", + self._mapping_codes(root), + ) + + def test_candidate_mapping_source_and_nested_hashes_fail_closed(self) -> None: + self._assert_mapping_catalog_mutation( + lambda catalog: catalog["source_bindings"]["suite"].__setitem__( + "raw_sha256", "0" * 64 + ), + "d004_packet.mapping_catalog_source_binding", + ) + with tempfile.TemporaryDirectory() as directory: + root = Path(directory) + self._copy_lab(root) + target = root / CANDIDATE_MAPPING_CATALOG_PATH + catalog = load_json(target) + mapping = catalog["catalog_subject"]["candidate_graphs"][0]["graph"]["sr_rows"][0]["mapping"] + mapping["draft_hypothesis"] += " drift" + catalog["catalog_subject_sha256"] = hashlib.sha256( + canonical_json_bytes(catalog["catalog_subject"]) + ).hexdigest() + self._write_canonical(target, catalog) + self.assertIn( + "d004_packet.mapping_catalog_mapping_digest", + self._mapping_codes(root), + ) + with tempfile.TemporaryDirectory() as directory: + root = Path(directory) + self._copy_lab(root) + target = root / CANDIDATE_MAPPING_CATALOG_PATH + catalog = load_json(target) + graph = catalog["catalog_subject"]["candidate_graphs"][0]["graph"] + graph["architecture"] += " drift" + catalog["catalog_subject_sha256"] = hashlib.sha256( + canonical_json_bytes(catalog["catalog_subject"]) + ).hexdigest() + self._write_canonical(target, catalog) + self.assertIn( + "d004_packet.mapping_catalog_graph_digest", + self._mapping_codes(root), + ) + + def test_candidate_mapping_edge_endpoints_facets_and_sr_joins_fail_closed(self) -> None: + def unknown_endpoint(catalog) -> None: + edge = catalog["catalog_subject"]["candidate_graphs"][0]["graph"]["edges"][0]["edge_subject"] + edge["domain_endpoint"]["node"] = "rel-unknown" + + def unknown_facet(catalog) -> None: + edge = catalog["catalog_subject"]["candidate_graphs"][0]["graph"]["edges"][0]["edge_subject"] + edge["domain_endpoint"]["facet"] = "unknown" + + def swap_edges(catalog) -> None: + edges = catalog["catalog_subject"]["candidate_graphs"][0]["graph"]["edges"] + edges[0], edges[1] = edges[1], edges[0] + + def swap_rows(catalog) -> None: + rows = catalog["catalog_subject"]["candidate_graphs"][0]["graph"]["sr_rows"] + rows[0], rows[1] = rows[1], rows[0] + + for mutate, code in ( + (unknown_endpoint, "d004_packet.mapping_catalog_edge_endpoint"), + (unknown_facet, "d004_packet.mapping_catalog_edge_endpoint"), + (swap_edges, "d004_packet.mapping_catalog_edge_relationship"), + (swap_rows, "d004_packet.mapping_catalog_mapping_join"), + ): + with self.subTest(code=code, mutation=mutate.__name__): + self._assert_mapping_catalog_mutation(mutate, code) + + def test_candidate_mapping_topology_open_decisions_and_delegation_fail_closed(self) -> None: + def detach_required_view(catalog) -> None: + nodes = catalog["catalog_subject"]["candidate_graphs"][1]["graph"]["nodes"] + next(node for node in nodes if node["id"] == "uni-pure-view")["parent"] = None + + def select_open_decision(catalog) -> None: + catalog["open_decisions"][0]["status"] = "accepted" + + def erase_delegation(catalog) -> None: + catalog["catalog_subject"]["candidate_graphs"][4]["graph"]["edges"][3]["edge_subject"]["delegation_boundary"] = None + + def retarget_sr14(catalog) -> None: + edge = catalog["catalog_subject"]["candidate_graphs"][0]["graph"]["edges"][13]["edge_subject"] + edge["codomain_endpoints"] = [copy.deepcopy(edge["domain_endpoint"])] + + for mutate, code in ( + (detach_required_view, "d004_packet.mapping_catalog_topology"), + (select_open_decision, "d004_packet.mapping_catalog_open_decisions"), + (erase_delegation, "d004_packet.mapping_catalog_delegation"), + (retarget_sr14, "d004_packet.mapping_catalog_topology"), + ): + with self.subTest(code=code, mutation=mutate.__name__): + self._assert_mapping_catalog_mutation(mutate, code) + + for generic_slot in ( + "delegation_selector", + "host_identity", + "host_non_success_policy", + ): + with self.subTest(generic_slot=generic_slot): + self._assert_mapping_catalog_mutation( + lambda catalog, slot=generic_slot: catalog["catalog_subject"][ + "candidate_graphs" + ][4]["graph"]["edges"][2]["edge_subject"][ + "parameter_slots" + ].append(slot), + "d004_packet.mapping_catalog_delegation", + ) + + def test_candidate_mapping_nonclaim_boundary_rejects_persisted_results(self) -> None: + self._assert_mapping_catalog_mutation( + lambda catalog: catalog["catalog_subject"]["candidate_graphs"][0]["graph"]["sr_rows"][0]["mapping"].__setitem__( + "verdict", "pass" + ), + "d004_packet.mapping_catalog_nonclaim", + ) + def test_canonical_pre_epoch_lab_is_valid_and_records_no_execution(self) -> None: packet = load_json(REPOSITORY_ROOT / PACKET_PATH) manifest = load_json(REPOSITORY_ROOT / MANIFEST_PATH) @@ -189,8 +510,24 @@ def test_canonical_pre_epoch_lab_is_valid_and_records_no_execution(self) -> None ).hexdigest(), fixture_binding["sha256"], ) - self.assertEqual(packet["schema_version"], "d004-pre-epoch-packet-v0.4") - self.assertEqual(packet["suite_version"], "d004-v0.4-draft") + mapping_catalog = load_json(REPOSITORY_ROOT / CANDIDATE_MAPPING_CATALOG_PATH) + self.assertEqual( + packet["candidate_mapping_catalog_sha256"], + CANDIDATE_MAPPING_CATALOG_CANONICAL_SHA256, + ) + self.assertEqual( + packet["candidate_mapping_catalog_sha256"], + hashlib.sha256(canonical_json_bytes(mapping_catalog)).hexdigest(), + ) + self.assertEqual( + packet["input_bindings"]["candidate_mappings"], + { + "path": str(CANDIDATE_MAPPING_CATALOG_PATH), + "sha256": CANDIDATE_MAPPING_CATALOG_RAW_SHA256, + }, + ) + self.assertEqual(packet["schema_version"], "d004-pre-epoch-packet-v0.5") + self.assertEqual(packet["suite_version"], "d004-v0.5-draft") self.assertEqual(packet["status"], "draft_unfrozen") self.assertIsNone(packet["epoch"]) self.assertEqual(packet["epoch_status"], "unfrozen") @@ -201,7 +538,7 @@ def test_canonical_pre_epoch_lab_is_valid_and_records_no_execution(self) -> None self.assertEqual(packet["owner_protocol_review"], "none") self.assertEqual( packet["fixture_inventory_status"], - "case_and_cross_cutting_materialized_unreviewed_freeze_blocker", + "case_cross_cutting_and_candidate_mapping_materialized_unreviewed_freeze_blocker", ) self.assertEqual( packet["execution"], @@ -248,14 +585,27 @@ def test_canonical_pre_epoch_lab_is_valid_and_records_no_execution(self) -> None for fixture_class, proposal_count in ( ("ambiguity", 5), ("missing-edge", 14), - ("identity-substitution", 10), + ("identity-substitution", 13), ("unsupported", 5), ("resource-exhaustion", 5), ) ], ) self.assertEqual(len(proposal_manifest["nonclaims"]), 11) - self.assertEqual(len(proposal_manifest["proposals"]), 39) + self.assertEqual(len(proposal_manifest["proposals"]), 42) + identity_proposals = [ + (proposal["id"], proposal["target"]) + for proposal in proposal_manifest["proposals"] + if proposal["class"] == "identity-substitution" + ] + self.assertEqual(identity_proposals, list(EXPECTED_IDENTITY_SUBSTITUTIONS)) + self.assertEqual( + {target for _, target in identity_proposals}, + { + f"{field.removesuffix('_sha256')}_identity" + for field in MANDATORY_DIGEST_JOIN_FIELDS + }, + ) self.assertTrue( all( proposal["observation_level"] == "domain" @@ -284,24 +634,28 @@ def test_canonical_pre_epoch_lab_is_valid_and_records_no_execution(self) -> None "identity-substitution fixture sufficiency review unresolved", "unsupported fixture sufficiency review unresolved", "resource-exhaustion fixture sufficiency review unresolved", + "candidate graph and SR mapping review unresolved", "replay repetition count unresolved", ], ) - validator = FoundationValidator(REPOSITORY_ROOT) - validator._validate_d004_draft_packet() - self.assertEqual( - [ - finding - for finding in validator.findings - if finding.code.startswith("d004_packet.") - ], - [], - ) + with tempfile.TemporaryDirectory() as directory: + root = Path(directory) + self._copy_lab(root) + validator = FoundationValidator(root) + validator._validate_d004_draft_packet() + self.assertEqual( + [ + finding + for finding in validator.findings + if finding.code.startswith("d004_packet.") + ], + [], + ) - def test_packet_binds_all_twenty_two_exact_existing_inputs_by_raw_bytes(self) -> None: + def test_packet_binds_all_twenty_three_exact_existing_inputs_by_raw_bytes(self) -> None: packet = load_json(REPOSITORY_ROOT / PACKET_PATH) - self.assertEqual(len(packet["input_bindings"]), 22) + self.assertEqual(len(packet["input_bindings"]), 23) self.assertEqual( set(packet["input_bindings"]), { @@ -310,6 +664,7 @@ def test_packet_binds_all_twenty_two_exact_existing_inputs_by_raw_bytes(self) -> "accepted_s2_language", "cross_cutting_executable_fixtures", "cross_cutting_fixture_proposals", + "candidate_mappings", "case_subjects", "decision_suite", "fixture_invalid_duplicate_spec", @@ -353,6 +708,12 @@ def test_future_result_contract_source_is_exact_closed_and_non_executing( self.assertIn( "pub(crate) fn parse_draft_result_contract_descriptor(", source ) + self.assertIn( + "pub(crate) const CANDIDATE_MAPPING_IDENTITY_FIELDS: [&str; 4]", + source, + ) + self.assertIn('"candidate_mapping_identity_inventory".to_owned()', source) + self.assertIn("candidate_mapping_catalog: &CandidateMappingCatalog", source) self.assertNotIn("std::process", source) self.assertNotIn("std::fs", source) suite_source = (REPOSITORY_ROOT / DECISION_SUITE_SOURCE_PATH).read_text( @@ -446,6 +807,14 @@ def test_future_result_contract_source_drift_and_live_apis_fail_closed( ), "d004_packet.result_contract_schema", ), + ( + lambda source: source.replace( + '"candidate_mapping_identity_inventory".to_owned()', + '"unbound_candidate_mapping_inventory".to_owned()', + 1, + ), + "d004_packet.result_contract_schema", + ), ( lambda source: source.replace( "pub(crate) const SCHEDULED_SLOT_PREIMAGE_FIELDS: [&str; 10]", @@ -531,7 +900,7 @@ def test_v04_case_subject_catalog_has_exact_input_only_identity_and_joins( canonical = canonical_json_bytes(catalog) raw = path.read_bytes() self.assertEqual(raw, canonical + b"\n") - self.assertEqual(len(raw), 35_099) + self.assertEqual(len(raw), 35_154) self.assertEqual( hashlib.sha256(canonical).hexdigest(), CASE_SUBJECT_CATALOG_CANONICAL_SHA256, @@ -570,13 +939,17 @@ def test_v04_case_subject_catalog_has_exact_input_only_identity_and_joins( }, ) self.assertEqual(catalog["schema_version"], "d004-case-subject-catalog-v0.1") - self.assertEqual(catalog["suite_version"], "d004-v0.4-draft") + self.assertEqual(catalog["suite_version"], "d004-v0.5-draft") self.assertEqual(catalog["status"], "draft_unreviewed_input_only") self.assertEqual(catalog["owner_protocol_review"], "none") self.assertEqual(catalog["evidence_status"], "none") self.assertEqual(catalog["subject_count"], 31) self.assertEqual(catalog["positive_subject_count"], 5) self.assertEqual(catalog["mutation_subject_count"], 26) + self.assertEqual( + catalog["nonclaims"][0], + "candidate mappings are separate unreviewed input-only hypotheses; no candidate adapter exists", + ) self.assertEqual( catalog["execution_boundary"], { @@ -962,7 +1335,7 @@ def test_v03_fixture_catalog_has_exact_ordered_byte_addressed_input_only_coverag canonical = canonical_json_bytes(catalog) raw = catalog_path.read_bytes() self.assertEqual(raw, canonical + b"\n") - self.assertEqual(len(raw), 67_329) + self.assertEqual(len(raw), 87_189) self.assertEqual( hashlib.sha256(canonical).hexdigest(), FIXTURE_CATALOG_CANONICAL_SHA256, @@ -995,13 +1368,13 @@ def test_v03_fixture_catalog_has_exact_ordered_byte_addressed_input_only_coverag self.assertEqual(catalog["status"], "draft_unreviewed_input_only") self.assertEqual(catalog["owner_protocol_review"], "none") self.assertEqual(catalog["evidence_status"], "none") - self.assertEqual(catalog["fixture_count"], 39) + self.assertEqual(catalog["fixture_count"], 42) self.assertEqual( catalog["class_counts"], [ {"class": "ambiguity", "fixture_count": 5}, {"class": "missing-edge", "fixture_count": 14}, - {"class": "identity-substitution", "fixture_count": 10}, + {"class": "identity-substitution", "fixture_count": 13}, {"class": "unsupported", "fixture_count": 5}, {"class": "resource-exhaustion", "fixture_count": 5}, ], @@ -1033,21 +1406,10 @@ def test_v03_fixture_catalog_has_exact_ordered_byte_addressed_input_only_coverag [proposal["id"] for proposal in proposals], ) self.assertEqual( - len({fixture["fixture_subject_sha256"] for fixture in fixtures}), 39 + len({fixture["fixture_subject_sha256"] for fixture in fixtures}), 42 ) relationships = [f"SR-{value:02d}" for value in range(1, 15)] - identity_slots = [ - "packet_identity", - "replay_plan_identity", - "scheduled_slot_identity", - "input_manifest_identity", - "candidate_graph_identity", - "sr_map_identity", - "semantic_endpoint_identity", - "parameter_model_identity", - "tool_identity", - "environment_identity", - ] + identity_slots = [target for _, target in EXPECTED_IDENTITY_SUBSTITUTIONS] def identity(slot: str, variant: str) -> str: return hashlib.sha256( @@ -1524,14 +1886,14 @@ def test_cross_cutting_proposal_inventory_and_domain_semantics_fail_closed(self) lambda value: value["proposals"].append( copy.deepcopy(value["proposals"][0]) ), - lambda value: value["proposals"].pop(24), + lambda value: value["proposals"].pop(27), lambda value: value["proposals"].__setitem__( slice(0, 2), [value["proposals"][1], value["proposals"][0]], ), lambda value: value["proposals"].__setitem__( - slice(24, 26), - [value["proposals"][25], value["proposals"][24]], + slice(27, 29), + [value["proposals"][28], value["proposals"][27]], ), lambda value: value["proposals"][0].update( {"relationship_scope": ["SR-02"], "target": "SR-02"} @@ -1542,16 +1904,16 @@ def test_cross_cutting_proposal_inventory_and_domain_semantics_fail_closed(self) "target": value["proposals"][14]["target"], } ), - lambda value: value["proposals"][24].update( + lambda value: value["proposals"][27].update( {"case_scope": ["SC-02"]} ), - lambda value: value["proposals"][29].update( + lambda value: value["proposals"][32].update( {"relationship_scope": ["SR-01"]} ), - lambda value: value["proposals"][24].update( + lambda value: value["proposals"][27].update( {"class": "unsupported", "expected_state": "unsupported"} ), - lambda value: value["proposals"][29].update( + lambda value: value["proposals"][32].update( {"class": "ambiguity", "expected_state": "rejected"} ), lambda value: value["proposals"][0].update( diff --git a/tools/tests/test_d009_draft_packet.py b/tools/tests/test_d009_draft_packet.py index aa63ae2..81178b3 100644 --- a/tools/tests/test_d009_draft_packet.py +++ b/tools/tests/test_d009_draft_packet.py @@ -26,8 +26,8 @@ SUITE_PATH = Path("docs/SOLVER_TRUST_DECISION_SUITE.md") DECISIONS_PATH = Path("docs/DECISIONS.md") ROADMAP_PATH = Path("docs/ROADMAP.md") -PACKET_CANONICAL_SHA256 = "609d2b0edaad32a4edde7b44b7e127abfffacd47330e0648bf3e5978635f8f25" -PACKET_RAW_SHA256 = "9126ec6b4a46f938c337811b37b4b4939372c0f5fe9347364f21f64bb7a86e3a" +PACKET_CANONICAL_SHA256 = "fa1411c83fdb6b57b8100f296ca904d88155ad6aa57bd7f48af62ae90c9ead31" +PACKET_RAW_SHA256 = "c0ad0227f1f374da8796c6db4866188213be53bd904bbf22b141ee1de6e57171" INDEX_CANONICAL_SHA256 = "2e55c671771d5740b0346992c8b86b9cce0571a8fc3e5b745195b0956010470e" INDEX_RAW_SHA256 = "c5298d625f5392de2774ffb861fe1dc1701b379ebd385cde0584a8cbcd249859" SUITE_RAW_SHA256 = "a26073e6431fb401af4aac6e57dcdfa76b27fe9451c26fb42595d7de14c2a35b" @@ -186,7 +186,7 @@ def test_canonical_pre_epoch_lab_is_exact_and_records_no_execution(self) -> None "decision_register_document": { "normalization": "markdown-prose-lines-exact-v1", "normalized_sha256": ( - "3ef87a6038245619256d7435d7eeddcf0624cf527a4825a9b157ec6040ad523b" + "c38f7b1d3b3f733a628e0618124e290648298eea8dab2ef89f81c597eb68d177" ), "path": "docs/DECISIONS.md", "scope": "whole_document", @@ -196,7 +196,7 @@ def test_canonical_pre_epoch_lab_is_exact_and_records_no_execution(self) -> None "decision_register_d009": { "normalization": "markdown-prose-lines-exact-v1", "normalized_sha256": ( - "69c61bb8e6cd7fd745be6d308074497916cd7ecb9b5ee1786461454bec363270" + "bc4bf5fd534a61efdd62e16b57633bea1f5ad8f3224555f310911a3ab26bb41a" ), "path": "docs/DECISIONS.md", "scope": "markdown_exact_heading_range", @@ -206,7 +206,7 @@ def test_canonical_pre_epoch_lab_is_exact_and_records_no_execution(self) -> None "roadmap_document": { "normalization": "markdown-prose-lines-exact-v1", "normalized_sha256": ( - "dc2ab7d27198fe9038af55cb2a37399c257baaa1a9d80c384a6ff9e12752ffdf" + "c92c6657068d3a71b8ccb184b408020f5cd44971286b2743e1e4d55dd67125e6" ), "path": "docs/ROADMAP.md", "scope": "whole_document", @@ -216,7 +216,7 @@ def test_canonical_pre_epoch_lab_is_exact_and_records_no_execution(self) -> None "roadmap_s4": { "normalization": "markdown-prose-lines-exact-v1", "normalized_sha256": ( - "f8a3ee4beeee6c789a3b4c7b6b0177c32a573788a7f9779b1aea763297288d62" + "ef9322f7c23467007a4c6d64411c79ba0f3dae856ed49602d9cecdfc9490b096" ), "path": "docs/ROADMAP.md", "scope": "markdown_exact_heading_range", @@ -732,23 +732,31 @@ def test_roadmap_requires_d009_closure_without_current_readiness_credit(self) -> ), ( "claim_readiness_credit", - "or advances readiness beyond 30%.", - "and advances readiness to 31%.", + "or changes Orange's 3/10 (30%)\n" + "binary gate-closure score; that score is not release readiness.", + "and changes Orange's binary gate-closure score to 4/10 (40%).", ), ( "append_readiness_credit", - "or advances readiness beyond 30%.", - "or advances readiness beyond 30%. This preparation advances readiness to 31%.", + "or changes Orange's 3/10 (30%)\n" + "binary gate-closure score; that score is not release readiness.", + "or changes Orange's 3/10 (30%) binary gate-closure score; that score " + "is not release readiness. This preparation advances the score to 4/10 (40%).", ), ( "append_s4_closure", - "or advances readiness beyond 30%.", - "or advances readiness beyond 30%. This preparation closes S4.", + "or changes Orange's 3/10 (30%)\n" + "binary gate-closure score; that score is not release readiness.", + "or changes Orange's 3/10 (30%) binary gate-closure score; that score " + "is not release readiness. This preparation closes S4.", ), ( "append_search_authorization", - "or advances readiness beyond 30%.", - "or advances readiness beyond 30%. This preparation authorizes solver-backed proof search.", + "or changes Orange's 3/10 (30%)\n" + "binary gate-closure score; that score is not release readiness.", + "or changes Orange's 3/10 (30%) binary gate-closure score; that score " + "is not release readiness. This preparation authorizes solver-backed " + "proof search.", ), ), "d009_suite.roadmap_closure", diff --git a/tools/tests/test_d010_draft_packet.py b/tools/tests/test_d010_draft_packet.py index b8ffbe6..e1c4aa9 100644 --- a/tools/tests/test_d010_draft_packet.py +++ b/tools/tests/test_d010_draft_packet.py @@ -22,10 +22,10 @@ INDEX_PATH = RESEARCH_ROOT / "d010-v0.1-case-input-index.json" SUITE_PATH = Path("docs/COMPILER_STRATEGY_DECISION_SUITE.md") PACKET_CANONICAL_SHA256 = ( - "9ec828033df99afa71ca88911484abfbfd007bd42538d8e02a5d7462413943b0" + "ae6c8fc6e433d3cbb895aebf95667711d442efa348e241c0059e72a489bcac9b" ) PACKET_RAW_SHA256 = ( - "f081c3428c83a7be6d296317564adee0284d13f4913739e5cf33634ed748e799" + "647ed6e554a0440c7345e52ff8263aba9d2cb19e444e5956203595c0461d6f6e" ) INDEX_CANONICAL_SHA256 = ( "4c8b0547a8f3bd380f4569008c8728014bb1d8718a5bfe17402bd03866560209" diff --git a/tools/tests/test_validate_foundation_hardening.py b/tools/tests/test_validate_foundation_hardening.py index daa549e..6a949f7 100644 --- a/tools/tests/test_validate_foundation_hardening.py +++ b/tools/tests/test_validate_foundation_hardening.py @@ -5366,8 +5366,8 @@ def test_semantic_strata_suite_protocol_mutations_are_rejected(self) -> None: "semantic_strata.header", ), ( + "Suite version: `d004-v0.5-draft`", "Suite version: `d004-v0.4-draft`", - "Suite version: `d004-v0.3-draft`", "semantic_strata.header", ), ( diff --git a/tools/validate_foundation.py b/tools/validate_foundation.py index 86b0d7d..15483d9 100755 --- a/tools/validate_foundation.py +++ b/tools/validate_foundation.py @@ -7,6 +7,7 @@ import dataclasses import datetime as dt import hashlib +import importlib.util import json import os import re @@ -23,6 +24,45 @@ from urllib.parse import unquote, urlsplit +_D004_HELPER_RAW_SHA256 = ( + "c273b900963f970ce265b8aa503b47a223c130a74b3026582e7ff891507a8fab" +) + + +def _load_d004_helper_functions() -> tuple[Any, Any]: + validator_path = Path(__file__).resolve(strict=True) + helper_entry = validator_path.with_name("d004_candidate_mappings.py") + if helper_entry.is_symlink(): + raise RuntimeError("D-004 helper must not be a symbolic link") + helper_path = helper_entry.resolve(strict=True) + if helper_path.parent != validator_path.parent: + raise RuntimeError("D-004 helper must resolve beside the foundation validator") + if not helper_path.is_file() or helper_path.stat().st_nlink != 1: + raise RuntimeError("D-004 helper must be one regular single-link file") + if hashlib.sha256(helper_path.read_bytes()).hexdigest() != _D004_HELPER_RAW_SHA256: + raise RuntimeError("D-004 helper raw SHA-256 identity drifted") + specification = importlib.util.spec_from_file_location( + "_orange_d004_candidate_mappings", helper_path + ) + if specification is None or specification.loader is None: + raise RuntimeError("cannot create the closed D-004 helper import") + module = importlib.util.module_from_spec(specification) + specification.loader.exec_module(module) + catalog_validator = getattr(module, "validate_candidate_mapping_catalog", None) + result_contract_validator = getattr( + module, "validate_d004_result_contract_source", None + ) + if not callable(catalog_validator) or not callable(result_contract_validator): + raise RuntimeError("D-004 helper does not expose its exact validator surface") + return catalog_validator, result_contract_validator + + +( + _validate_candidate_mapping_catalog_helper, + _validate_d004_result_contract_source_helper, +) = _load_d004_helper_functions() + + POLICY_PATH = Path("policy/gate0-repository-policy.json") MAKEFILE_CONTRACT_PATH = Path("policy/makefile-entrypoint-contract-v0.1.json") VALIDATOR_REPOSITORY_ROOT = Path(__file__).resolve().parents[1] @@ -200,6 +240,7 @@ compiler/crates/orange-compiler/src/semantics.rs compiler/crates/orange-compiler/src/source.rs compiler/crates/orange-compiler/tests/d004_decision_suite.rs +compiler/crates/orange-compiler/tests/d004_support/candidate_mappings.rs compiler/crates/orange-compiler/tests/d004_support/case_subjects.rs compiler/crates/orange-compiler/tests/d004_support/cases.rs compiler/crates/orange-compiler/tests/d004_support/domain.rs @@ -305,7 +346,8 @@ research/decisions/D-004/d004-v0.2-named-mutations.json research/decisions/D-004/d004-v0.3-cross-cutting-executable-fixtures.json research/decisions/D-004/d004-v0.4-case-subjects.json -research/decisions/D-004/d004-v0.4-draft-packet.json +research/decisions/D-004/d004-v0.5-candidate-mappings.json +research/decisions/D-004/d004-v0.5-draft-packet.json research/decisions/D-005/README.md research/decisions/D-005/d005-v0.1/epochs/0001/protocol/epoch.json research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/checked-test-as-functional-refinement.json @@ -334,6 +376,7 @@ scripts/ci/check-external-links scripts/ci/install-actionlint scripts/ci/install-lychee +tools/d004_candidate_mappings.py tools/fs_sandbox.c tools/tests/test_d004_draft_packet.py tools/tests/test_d005_draft_packet.py @@ -516,7 +559,7 @@ comment_summary_in_pr: never warn_only: false """ -_PHD = "8d9812520af56fa07f105ed1b12ad9c33fd6737084ed12194adcc292534766bb" +_PHD = "5540723b4351b3a952c83faca3c34cd5e6260d8405837c27a8072e29c97e9817" _CR = ( "run: /usr/bin/env -u BASH_ENV -u ENV -u GNUMAKEFLAGS -u MAKEFLAGS -u MAKEFILES " "-u MAKEOVERRIDES -u MFLAGS /usr/bin/make --no-builtin-rules --no-builtin-variables check-compiler" @@ -875,8 +918,8 @@ _D010_PACKET = _D010_ROOT + "d010-v0.1-draft-packet.json" _D010_INDEX = _D010_ROOT + "d010-v0.1-case-input-index.json" _D010_SUITE = "docs/COMPILER_STRATEGY_DECISION_SUITE.md" -_D010_PACKET_CANONICAL_SHA256 = "9ec828033df99afa71ca88911484abfbfd007bd42538d8e02a5d7462413943b0" -_D010_PACKET_RAW_SHA256 = "f081c3428c83a7be6d296317564adee0284d13f4913739e5cf33634ed748e799" +_D010_PACKET_CANONICAL_SHA256 = "ae6c8fc6e433d3cbb895aebf95667711d442efa348e241c0059e72a489bcac9b" +_D010_PACKET_RAW_SHA256 = "647ed6e554a0440c7345e52ff8263aba9d2cb19e444e5956203595c0461d6f6e" _D010_INDEX_CANONICAL_SHA256 = "4c8b0547a8f3bd380f4569008c8728014bb1d8718a5bfe17402bd03866560209" _D010_INDEX_RAW_SHA256 = "e9f59e86dff6219474d244ff01a98c75b7b17c65f1f91506d483a57e95e33670" _D010_SUITE_RAW_SHA256 = "5d36f1faeda027b9784846af0aa742339c6b821f39b72a8ca067a90c41a46c73" @@ -887,13 +930,124 @@ "compiler/crates/orange-compiler/tests/d004_decision_suite.rs" ) _D004_RESULT_CONTRACT_SOURCE_SHA256 = ( - "8ef2abfd63d711907e911c415e4abbb903244aa9b44211f59e9b1f963c884292" + "f3fdb4187fa9dffb23e849208da20f112aba764cfa85df80ae578754f3c9c97a" ) _D004_RESULT_CONTRACT_DESCRIPTOR_SHA256 = ( - "e3afc61c7127ca0b59dd010e90ae03a92c3354e3eee490c0667482c9218e8789" + "58773e8ce29e8726a8a85203ff7e2a4b1a03f8c02bfbcd7f6056f34fe53a2f29" +) +_D004_CANDIDATE_MAPPING_CATALOG = ( + "research/decisions/D-004/d004-v0.5-candidate-mappings.json" +) +_D004_CANDIDATE_MAPPING_CATALOG_CANONICAL_SHA256 = ( + "c967d7db8ea5049da054129367ec61cd80d729b8ce8cd34c95a76e42c67c97b8" +) +_D004_CANDIDATE_MAPPING_CATALOG_RAW_SHA256 = ( + "70765c64936bbb8aafd6e101fbf20c85396eb722d70e55bb9311d14bfbb15156" +) +_D004_CANDIDATE_MAPPING_CATALOG_SUBJECT_SHA256 = ( + "e3b790857ee21a0c651995919aaadb9bf59b05367a8dce99bab6afb6e7d2543f" +) +_D004_SUITE_RAW_SHA256 = ( + "64abe8290955f889e28f8bb9ce7653a26ef71a624286aef900d4dbfc3b7eb117" ) -DECISION_LABORATORY_SPECS = {'d004': {'finding_prefix': 'd004_packet', 'research_root': 'research/decisions/D-004/', 'inventory': frozenset({'research/decisions/D-004/d004-v0.3-cross-cutting-executable-fixtures.json', 'research/decisions/D-004/d004-v0.4-case-subjects.json', 'research/decisions/D-004/d004-v0.4-draft-packet.json', 'research/decisions/D-004/d004-v0.2-cross-cutting-fixture-proposals.json', 'research/decisions/D-004/README.md', 'research/decisions/D-004/d004-v0.2-named-mutations.json'}), 'premature': ('research/decisions/D-004/', '(?:^|[/_.-])(?:results?|reviews?|decisions?|epochs?)(?:$|[/_.-])', 'premature_artifact'), 'json_identities': (('research/decisions/D-004/d004-v0.4-draft-packet.json', '', 'missing', 'b298cbf0d1c6af2ca9a4af7bb6b020595ffd00c1ab6896d5f097b3ebff13127d', '0da96c89f62125f915152fb0ab30f41e608502bbe3a571a928c91e9d3812bc7a', True), ('research/decisions/D-004/d004-v0.2-named-mutations.json', 'manifest_', 'manifest_missing', '970999d998cdc202a6caa4e2f798017416c88211a5b6b8508132a07cc9080c0c', '1d46d6d66c0704fcaa462c625dcac2e72150497bb075322c5e076ea42898be54', True), ('research/decisions/D-004/d004-v0.2-cross-cutting-fixture-proposals.json', 'proposal_manifest_', 'proposal_manifest_missing', '457c14e7d41f677b21af254af45e331b24e6c685a7d7aa8eae556ced5bd7be65', '171c7b88d54fe2bd7ddb4c220adb63f006e07c35391018b914482ace17cf7e93', True), ('research/decisions/D-004/d004-v0.3-cross-cutting-executable-fixtures.json', 'fixture_catalog_', 'fixture_catalog_missing', 'ca08308161244e9541803aa8008dd1624a2101f77da8b656cf0c5deff8a60703', '268b4065028f1af9c9ec912ae8884c150094189f5d782963f42ed6ed4cca6ce0', True), ('research/decisions/D-004/d004-v0.4-case-subjects.json', 'case_subject_catalog_', 'case_subject_catalog_missing', 'b3a8bcf4f0f084740e92cbff6fd57273df0a078af9c6b974f68d95ba333c6dc1', 'c94100598aaf39954fe683a44f6a4d34837304eb361a1b478ca26884892d8ed6', True)), 'raw_bindings': (('docs/LANGUAGE_2026.md', '35981310cbe1e1ae61c889b4005b2610d0077e6a615a5e032b0ca9a5860b328a'), ('docs/governance/oeps/OEP-0003-orange-2026-typed-literals.md', '4ea34fc2499ba6b90eb930262f84f15a41ff0df0f526a4533a48e54ea4f9b4b8'), ('docs/SEMANTICS_2026.md', '63e14d674eb687f46aa600b36d6d13e3732090d658fb05fd805646b1d469dbdf'), ('research/decisions/D-004/d004-v0.2-cross-cutting-fixture-proposals.json', '171c7b88d54fe2bd7ddb4c220adb63f006e07c35391018b914482ace17cf7e93'), ('research/decisions/D-004/d004-v0.3-cross-cutting-executable-fixtures.json', '268b4065028f1af9c9ec912ae8884c150094189f5d782963f42ed6ed4cca6ce0'), ('docs/SEMANTIC_STRATA_DECISION_SUITE.md', 'f44c556202d0e235fd42c03181134ab3047d3e9b6f19b3015dae15a86d00dc0b'), ('compiler/fixtures/s3a/invalid-duplicate-spec.or', 'f3b870468c5f4a98c9dae6c94de74aacbabbf15e480296f696a87d5aebb209d6'), ('compiler/fixtures/s3a/invalid-int-magnitude.or', '11826c807240ac2fc4beddb26f25c3b14dd75008ed756f2afa3ee95668b05542'), ('compiler/fixtures/s3a/invalid-negative-word.or', '4643e1247a017202f25a240ad72c83adbd7d2f436ec4de2dffbac1e292ce161b'), ('compiler/fixtures/s3a/invalid-typed-impl.or', '4e457e50fbc3b8458c877c9a790e169ff643784b5b78f7a3a0f83a117cc7be07'), ('compiler/fixtures/s3a/invalid-unsupported-type.or', '14190eb262c79772b583c458500c777c54ef0c8913fc046a8809b5a146cfb9fc'), ('compiler/fixtures/s3a/invalid-word-range.or', '4a7a4fd4bdfecdc21133f5f6ff24e212dde0bf357fe6d6807816930895300ddf'), ('compiler/fixtures/s3a/invalid-word-width.or', 'd92ac896bd872f1aa4a3c8988d0b654a23c95ec10ec9183a7d2431cd12238be2'), ('compiler/fixtures/s3a/valid-empty-mixed.or', 'c30ab3cda5caa11d826dc38ea257d9c9413d6240c09b236a7f50f1cac9016b96'), ('compiler/fixtures/s3a/valid-int-radices.or', '937f8f67b20794c9a887bcca15ea619276f921bc9bf884fdc35e7caab6ac11e4'), ('compiler/fixtures/s3a/valid-word8-boundaries.or', 'db37bd00375daa1db43498c5f10b831fdaa5d43b3b886ef838ecbb8d0fbea2ee'), ('research/decisions/D-004/d004-v0.2-named-mutations.json', '1d46d6d66c0704fcaa462c625dcac2e72150497bb075322c5e076ea42898be54'), ('compiler/fixtures/typed-answer.or', '22c71b6b8e09ff8dbb7393abfb6ce46597eed0b45f9a34660aa948071138ff6e'), ('docs/PRODUCT_FORM_DECISION_PACKET.md', '1ef0be53344667993778d1abd9a83423fc92b358735ed7ad74cb766bb29d33fd'), ('compiler/crates/orangec/tests/s3a_conformance.rs', '7d25ea303fcb3c1603d60b6cb32d89ae15173cc043b8b695daedb737162b8116'), ('docs/USER_JOURNEYS.md', 'f26b179db777295b620731402962dc3092128f8f9a27049638f22883e0652bed'), ('research/decisions/D-004/d004-v0.4-case-subjects.json', 'c94100598aaf39954fe683a44f6a4d34837304eb361a1b478ca26884892d8ed6')), 'schema_compatibility': None}, 'd005': {'finding_prefix': 'd005_packet', 'research_root': 'research/decisions/D-005/', 'inventory': frozenset(('research/decisions/D-005/' + name for name in 'README.md d005-v0.1/epochs/0001/protocol/epoch.json d005-v0.1/epochs/0001/shared-inputs/checked-test-as-functional-refinement.json d005-v0.1/epochs/0001/shared-inputs/checked-test-masks-failed-kernel-proof.json d005-v0.1/epochs/0001/shared-inputs/legacy-v0.1-mutations.json d005-v0.1/epochs/0001/shared-inputs/owner-test-as-external-validation.json d005-v0.1/epochs/0001/shared-inputs/satisfied-target-leakage-with-unresolved-contexts.json d005-v0.1/epochs/0001/shared-inputs/subject-reuse-original.json d005-v0.1/epochs/0001/shared-inputs/substituted-subject-reuses-evidence.json'.split())), 'premature': ('research/decisions/D-005/d005-v0.1/epochs/0001/', '(?:^|/)(?:candidates|cross-candidate|same-owner-replays|owner-reviews|decision)(?:/|$)', 'premature_results'), 'json_identities': (('research/decisions/D-005/d005-v0.1/epochs/0001/protocol/epoch.json', '', 'missing', '731428229b4f77cd7e684e2a5cae51bdfd277898aaab60852b843d3183dbc194', '5ea15c4f2e6db865e2be9c9fea2a77465ffcf131abfd8356faa6923b3e1ad46b', False), ('research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/legacy-v0.1-mutations.json', 'legacy_', 'legacy_missing', '8c51fe8c337564cf5925c16c127aa440eab2a25bc8ae1ad6dba7b4f11c3e6cbf', '2bae9af1e102fe4a9233c78599a3b14a7ca1796f0c0fdfaa17539a998ff01b4d', False), ('research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/checked-test-as-functional-refinement.json', 'legacy_', 'legacy_missing', 'cf513a32f23e4cace22f123f1e14a87f3cb656b6753e7c3a8ca4ee85781d5531', 'c7f059bfe531e123b7b6a395eb99f391b832ea72c0b08f320e73e63cc452b27e', False), ('research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/checked-test-masks-failed-kernel-proof.json', 'legacy_', 'legacy_missing', '35b08f290a5615bedc7391900201df36d18606d78ae1868a746403d83181c8df', 'ae7bc9a88680bd3fa08c1f34b9fb558de1833f5c2cd710d3d423ed35873bedad', False), ('research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/satisfied-target-leakage-with-unresolved-contexts.json', 'legacy_', 'legacy_missing', '9a3c267a92c689fc92ba1d05e792260317a7343345f7e35edadd99cd623e7a9d', '6d39a9ae51fa8c88789977a849129013f2fc23651c8939180e4c578dd017fc39', False), ('research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/owner-test-as-external-validation.json', 'legacy_', 'legacy_missing', '75b77808aae7831567265f6650f827c90f25d15b75fa76cd33dc9a377a2dfd4e', '795ca7571d0e9df9f88ab7a2a8cad201c5e45bdb36206f3df12e7adf2098f9a5', False), ('research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/substituted-subject-reuses-evidence.json', 'legacy_', 'legacy_missing', '96b931de6f468349f706ffa5952b944ac45308f688f67f8737e9a9e88a91dd98', '5d1c3d90962ec5d21d3e0053e1e4b45f525db97abebda6e4ad85eb5c41333900', False), ('research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/subject-reuse-original.json', 'legacy_', 'legacy_missing', 'e1828b5c7b3bb31d6344bdc4de0507ea8347ddea0c2518366bfe49207ebef1e3', 'ae981e5a6e74620117c96c720affe1f7f05f0000ef9029cbb2143a8b9119fab9', False)), 'raw_bindings': (('docs/PUBLIC_ASSURANCE_MODEL_DECISION_SUITE.md', 'e906ec0de790f5ed3b4e4fcb87bc550a7a2048ec5c16b100e58cf1a13a27b18f'), ('research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/legacy-v0.1-mutations.json', '2bae9af1e102fe4a9233c78599a3b14a7ca1796f0c0fdfaa17539a998ff01b4d'), ('schemas/gate0/claim-record-v0.1.schema.json', 'a287dde9ddf114da30af61d050aa96406f23e480d62e0f796d66943489579131'), ('research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/checked-test-as-functional-refinement.json', 'c7f059bfe531e123b7b6a395eb99f391b832ea72c0b08f320e73e63cc452b27e'), ('research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/checked-test-masks-failed-kernel-proof.json', 'ae7bc9a88680bd3fa08c1f34b9fb558de1833f5c2cd710d3d423ed35873bedad'), ('research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/satisfied-target-leakage-with-unresolved-contexts.json', '6d39a9ae51fa8c88789977a849129013f2fc23651c8939180e4c578dd017fc39'), ('research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/owner-test-as-external-validation.json', '795ca7571d0e9df9f88ab7a2a8cad201c5e45bdb36206f3df12e7adf2098f9a5'), ('research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/substituted-subject-reuses-evidence.json', '5d1c3d90962ec5d21d3e0053e1e4b45f525db97abebda6e4ad85eb5c41333900'), ('research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/subject-reuse-original.json', 'ae981e5a6e74620117c96c720affe1f7f05f0000ef9029cbb2143a8b9119fab9')), 'schema_compatibility': ('schemas/gate0/claim-record-v0.1.schema.json', 'research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs', ('checked-test-as-functional-refinement.json', 'checked-test-masks-failed-kernel-proof.json', 'satisfied-target-leakage-with-unresolved-contexts.json', 'owner-test-as-external-validation.json', 'substituted-subject-reuses-evidence.json'))}, 'd006': {'finding_prefix': 'd006_packet', 'research_root': 'research/decisions/D-006/', 'inventory': frozenset(('research/decisions/D-006/' + name for name in 'README.md d006-v0.2-case-input-index.json d006-v0.2-draft-packet.json'.split())), 'premature': ('research/decisions/D-006/', '(?:^|[/_.-])(?:epochs?|candidates?|results?|replays?|reviews?|decisions?)(?:$|[/_.-])', 'premature_artifact'), 'json_identities': (('research/decisions/D-006/d006-v0.2-draft-packet.json', '', 'parse', 'b56ad768c4584bdd00da4d4e85af642757b877dd5dc5ae438560ba4a486d9d21', '210eccad3a545927301d3cc147fdf918cc432fea65b8d71b79cbefc447e34bff', True), ('research/decisions/D-006/d006-v0.2-case-input-index.json', 'index_', 'index_parse', '1118fe42a6d7111f50e40a88f0fe7b7fe4b9248b9335e0643b200fa983294ca0', '1aec6a731bef0620c8500120ec8385d584f99a528b4a03c014e8516c55cc8136', True)), 'raw_bindings': (('research/decisions/D-006/d006-v0.2-case-input-index.json', '1aec6a731bef0620c8500120ec8385d584f99a528b4a03c014e8516c55cc8136'), ('docs/PROOF_FOUNDATION_DECISION_SUITE.md', '6b1aa32784dd31d40bdaca4c6f3b62b8721a909ab3415051aa5a8e7994f0254b')), 'schema_compatibility': None}, 'd009': {'finding_prefix': 'd009_packet', 'research_root': 'research/decisions/D-009/', 'inventory': frozenset(('research/decisions/D-009/' + name for name in 'README.md d009-v0.1-case-input-index.json d009-v0.1-draft-packet.json'.split())), 'premature': ('research/decisions/D-009/', '(?:^|[/_.-])(?:epochs?|candidates?|results?|replays?|reviews?|decisions?)(?:$|[/_.-])', 'premature_artifact'), 'json_identities': (('research/decisions/D-009/d009-v0.1-draft-packet.json', '', 'parse', '609d2b0edaad32a4edde7b44b7e127abfffacd47330e0648bf3e5978635f8f25', '9126ec6b4a46f938c337811b37b4b4939372c0f5fe9347364f21f64bb7a86e3a', True), ('research/decisions/D-009/d009-v0.1-case-input-index.json', 'index_', 'index_parse', '2e55c671771d5740b0346992c8b86b9cce0571a8fc3e5b745195b0956010470e', 'c5298d625f5392de2774ffb861fe1dc1701b379ebd385cde0584a8cbcd249859', True)), 'raw_bindings': (('research/decisions/D-009/d009-v0.1-case-input-index.json', 'c5298d625f5392de2774ffb861fe1dc1701b379ebd385cde0584a8cbcd249859'), ('docs/SOLVER_TRUST_DECISION_SUITE.md', 'a26073e6431fb401af4aac6e57dcdfa76b27fe9451c26fb42595d7de14c2a35b')), 'schema_compatibility': None}, 'd010': {'finding_prefix': 'd010_packet', 'research_root': _D010_ROOT, 'inventory': frozenset((_D010_ROOT + name for name in 'README.md d010-v0.1-case-input-index.json d010-v0.1-draft-packet.json'.split())), 'premature': (_D010_ROOT, '(?:^|[/_.-])(?:epochs?|candidates?|results?|replays?|reviews?|decisions?)(?:$|[/_.-])', 'premature_artifact'), 'json_identities': ((_D010_PACKET, '', 'parse', _D010_PACKET_CANONICAL_SHA256, _D010_PACKET_RAW_SHA256, True), (_D010_INDEX, 'index_', 'index_parse', _D010_INDEX_CANONICAL_SHA256, _D010_INDEX_RAW_SHA256, True)), 'raw_bindings': ((_D010_INDEX, _D010_INDEX_RAW_SHA256), (_D010_SUITE, _D010_SUITE_RAW_SHA256)), 'schema_compatibility': None}} -DECISION_LABORATORY_INVARIANTS = {'research/decisions/D-004/': (5, 22, True, None), 'research/decisions/D-005/': (8, 9, False, ('schemas/gate0/claim-record-v0.1.schema.json', 'research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs', ('checked-test-as-functional-refinement.json', 'checked-test-masks-failed-kernel-proof.json', 'satisfied-target-leakage-with-unresolved-contexts.json', 'owner-test-as-external-validation.json', 'substituted-subject-reuses-evidence.json'))), 'research/decisions/D-006/': (2, 2, True, None), 'research/decisions/D-009/': (2, 2, True, None), 'research/decisions/D-010/': (2, 2, True, None)} +DECISION_LABORATORY_SPECS = {'d005': {'finding_prefix': 'd005_packet', 'research_root': 'research/decisions/D-005/', 'inventory': frozenset(('research/decisions/D-005/' + name for name in 'README.md d005-v0.1/epochs/0001/protocol/epoch.json d005-v0.1/epochs/0001/shared-inputs/checked-test-as-functional-refinement.json d005-v0.1/epochs/0001/shared-inputs/checked-test-masks-failed-kernel-proof.json d005-v0.1/epochs/0001/shared-inputs/legacy-v0.1-mutations.json d005-v0.1/epochs/0001/shared-inputs/owner-test-as-external-validation.json d005-v0.1/epochs/0001/shared-inputs/satisfied-target-leakage-with-unresolved-contexts.json d005-v0.1/epochs/0001/shared-inputs/subject-reuse-original.json d005-v0.1/epochs/0001/shared-inputs/substituted-subject-reuses-evidence.json'.split())), 'premature': ('research/decisions/D-005/d005-v0.1/epochs/0001/', '(?:^|/)(?:candidates|cross-candidate|same-owner-replays|owner-reviews|decision)(?:/|$)', 'premature_results'), 'json_identities': (('research/decisions/D-005/d005-v0.1/epochs/0001/protocol/epoch.json', '', 'missing', '731428229b4f77cd7e684e2a5cae51bdfd277898aaab60852b843d3183dbc194', '5ea15c4f2e6db865e2be9c9fea2a77465ffcf131abfd8356faa6923b3e1ad46b', False), ('research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/legacy-v0.1-mutations.json', 'legacy_', 'legacy_missing', '8c51fe8c337564cf5925c16c127aa440eab2a25bc8ae1ad6dba7b4f11c3e6cbf', '2bae9af1e102fe4a9233c78599a3b14a7ca1796f0c0fdfaa17539a998ff01b4d', False), ('research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/checked-test-as-functional-refinement.json', 'legacy_', 'legacy_missing', 'cf513a32f23e4cace22f123f1e14a87f3cb656b6753e7c3a8ca4ee85781d5531', 'c7f059bfe531e123b7b6a395eb99f391b832ea72c0b08f320e73e63cc452b27e', False), ('research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/checked-test-masks-failed-kernel-proof.json', 'legacy_', 'legacy_missing', '35b08f290a5615bedc7391900201df36d18606d78ae1868a746403d83181c8df', 'ae7bc9a88680bd3fa08c1f34b9fb558de1833f5c2cd710d3d423ed35873bedad', False), ('research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/satisfied-target-leakage-with-unresolved-contexts.json', 'legacy_', 'legacy_missing', '9a3c267a92c689fc92ba1d05e792260317a7343345f7e35edadd99cd623e7a9d', '6d39a9ae51fa8c88789977a849129013f2fc23651c8939180e4c578dd017fc39', False), ('research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/owner-test-as-external-validation.json', 'legacy_', 'legacy_missing', '75b77808aae7831567265f6650f827c90f25d15b75fa76cd33dc9a377a2dfd4e', '795ca7571d0e9df9f88ab7a2a8cad201c5e45bdb36206f3df12e7adf2098f9a5', False), ('research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/substituted-subject-reuses-evidence.json', 'legacy_', 'legacy_missing', '96b931de6f468349f706ffa5952b944ac45308f688f67f8737e9a9e88a91dd98', '5d1c3d90962ec5d21d3e0053e1e4b45f525db97abebda6e4ad85eb5c41333900', False), ('research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/subject-reuse-original.json', 'legacy_', 'legacy_missing', 'e1828b5c7b3bb31d6344bdc4de0507ea8347ddea0c2518366bfe49207ebef1e3', 'ae981e5a6e74620117c96c720affe1f7f05f0000ef9029cbb2143a8b9119fab9', False)), 'raw_bindings': (('docs/PUBLIC_ASSURANCE_MODEL_DECISION_SUITE.md', 'e906ec0de790f5ed3b4e4fcb87bc550a7a2048ec5c16b100e58cf1a13a27b18f'), ('research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/legacy-v0.1-mutations.json', '2bae9af1e102fe4a9233c78599a3b14a7ca1796f0c0fdfaa17539a998ff01b4d'), ('schemas/gate0/claim-record-v0.1.schema.json', 'a287dde9ddf114da30af61d050aa96406f23e480d62e0f796d66943489579131'), ('research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/checked-test-as-functional-refinement.json', 'c7f059bfe531e123b7b6a395eb99f391b832ea72c0b08f320e73e63cc452b27e'), ('research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/checked-test-masks-failed-kernel-proof.json', 'ae7bc9a88680bd3fa08c1f34b9fb558de1833f5c2cd710d3d423ed35873bedad'), ('research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/satisfied-target-leakage-with-unresolved-contexts.json', '6d39a9ae51fa8c88789977a849129013f2fc23651c8939180e4c578dd017fc39'), ('research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/owner-test-as-external-validation.json', '795ca7571d0e9df9f88ab7a2a8cad201c5e45bdb36206f3df12e7adf2098f9a5'), ('research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/substituted-subject-reuses-evidence.json', '5d1c3d90962ec5d21d3e0053e1e4b45f525db97abebda6e4ad85eb5c41333900'), ('research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs/subject-reuse-original.json', 'ae981e5a6e74620117c96c720affe1f7f05f0000ef9029cbb2143a8b9119fab9')), 'schema_compatibility': ('schemas/gate0/claim-record-v0.1.schema.json', 'research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs', ('checked-test-as-functional-refinement.json', 'checked-test-masks-failed-kernel-proof.json', 'satisfied-target-leakage-with-unresolved-contexts.json', 'owner-test-as-external-validation.json', 'substituted-subject-reuses-evidence.json'))}, 'd006': {'finding_prefix': 'd006_packet', 'research_root': 'research/decisions/D-006/', 'inventory': frozenset(('research/decisions/D-006/' + name for name in 'README.md d006-v0.2-case-input-index.json d006-v0.2-draft-packet.json'.split())), 'premature': ('research/decisions/D-006/', '(?:^|[/_.-])(?:epochs?|candidates?|results?|replays?|reviews?|decisions?)(?:$|[/_.-])', 'premature_artifact'), 'json_identities': (('research/decisions/D-006/d006-v0.2-draft-packet.json', '', 'parse', 'b56ad768c4584bdd00da4d4e85af642757b877dd5dc5ae438560ba4a486d9d21', '210eccad3a545927301d3cc147fdf918cc432fea65b8d71b79cbefc447e34bff', True), ('research/decisions/D-006/d006-v0.2-case-input-index.json', 'index_', 'index_parse', '1118fe42a6d7111f50e40a88f0fe7b7fe4b9248b9335e0643b200fa983294ca0', '1aec6a731bef0620c8500120ec8385d584f99a528b4a03c014e8516c55cc8136', True)), 'raw_bindings': (('research/decisions/D-006/d006-v0.2-case-input-index.json', '1aec6a731bef0620c8500120ec8385d584f99a528b4a03c014e8516c55cc8136'), ('docs/PROOF_FOUNDATION_DECISION_SUITE.md', '6b1aa32784dd31d40bdaca4c6f3b62b8721a909ab3415051aa5a8e7994f0254b')), 'schema_compatibility': None}, 'd009': {'finding_prefix': 'd009_packet', 'research_root': 'research/decisions/D-009/', 'inventory': frozenset(('research/decisions/D-009/' + name for name in 'README.md d009-v0.1-case-input-index.json d009-v0.1-draft-packet.json'.split())), 'premature': ('research/decisions/D-009/', '(?:^|[/_.-])(?:epochs?|candidates?|results?|replays?|reviews?|decisions?)(?:$|[/_.-])', 'premature_artifact'), 'json_identities': (('research/decisions/D-009/d009-v0.1-draft-packet.json', '', 'parse', 'fa1411c83fdb6b57b8100f296ca904d88155ad6aa57bd7f48af62ae90c9ead31', 'c0ad0227f1f374da8796c6db4866188213be53bd904bbf22b141ee1de6e57171', True), ('research/decisions/D-009/d009-v0.1-case-input-index.json', 'index_', 'index_parse', '2e55c671771d5740b0346992c8b86b9cce0571a8fc3e5b745195b0956010470e', 'c5298d625f5392de2774ffb861fe1dc1701b379ebd385cde0584a8cbcd249859', True)), 'raw_bindings': (('research/decisions/D-009/d009-v0.1-case-input-index.json', 'c5298d625f5392de2774ffb861fe1dc1701b379ebd385cde0584a8cbcd249859'), ('docs/SOLVER_TRUST_DECISION_SUITE.md', 'a26073e6431fb401af4aac6e57dcdfa76b27fe9451c26fb42595d7de14c2a35b')), 'schema_compatibility': None}, 'd010': {'finding_prefix': 'd010_packet', 'research_root': _D010_ROOT, 'inventory': frozenset((_D010_ROOT + name for name in 'README.md d010-v0.1-case-input-index.json d010-v0.1-draft-packet.json'.split())), 'premature': (_D010_ROOT, '(?:^|[/_.-])(?:epochs?|candidates?|results?|replays?|reviews?|decisions?)(?:$|[/_.-])', 'premature_artifact'), 'json_identities': ((_D010_PACKET, '', 'parse', _D010_PACKET_CANONICAL_SHA256, _D010_PACKET_RAW_SHA256, True), (_D010_INDEX, 'index_', 'index_parse', _D010_INDEX_CANONICAL_SHA256, _D010_INDEX_RAW_SHA256, True)), 'raw_bindings': ((_D010_INDEX, _D010_INDEX_RAW_SHA256), (_D010_SUITE, _D010_SUITE_RAW_SHA256)), 'schema_compatibility': None}} +DECISION_LABORATORY_SPECS["d004"] = { + "finding_prefix": "d004_packet", + "research_root": "research/decisions/D-004/", + "inventory": frozenset( + { + "research/decisions/D-004/README.md", + "research/decisions/D-004/d004-v0.2-named-mutations.json", + "research/decisions/D-004/d004-v0.2-cross-cutting-fixture-proposals.json", + "research/decisions/D-004/d004-v0.3-cross-cutting-executable-fixtures.json", + "research/decisions/D-004/d004-v0.4-case-subjects.json", + _D004_CANDIDATE_MAPPING_CATALOG, + "research/decisions/D-004/d004-v0.5-draft-packet.json", + } + ), + "premature": ( + "research/decisions/D-004/", + r"(?:^|[/_.-])(?:results?|reviews?|decisions?|epochs?)(?:$|[/_.-])", + "premature_artifact", + ), + "json_identities": ( + ( + "research/decisions/D-004/d004-v0.5-draft-packet.json", + "", + "missing", + "b6df1a38f8a1eb6a80a8864324c21a81cb292d4c48e1981b4547bad41933b340", + "ec3a0a593d1dab7a6ace874dae4fd03c1ae0656cf301897ccabf51cb109c4009", + True, + ), + ( + "research/decisions/D-004/d004-v0.2-named-mutations.json", + "manifest_", + "manifest_missing", + "970999d998cdc202a6caa4e2f798017416c88211a5b6b8508132a07cc9080c0c", + "1d46d6d66c0704fcaa462c625dcac2e72150497bb075322c5e076ea42898be54", + True, + ), + ( + "research/decisions/D-004/d004-v0.2-cross-cutting-fixture-proposals.json", + "proposal_manifest_", + "proposal_manifest_missing", + "85407a4a43b5a6bf450ea905fe858482f2f79abb4cbe8ee8690bddc1753d0912", + "d3d58cbeb0d2a90987680cd00bc70caf53518be730a71d0d55ba2a7b50544481", + True, + ), + ( + "research/decisions/D-004/d004-v0.3-cross-cutting-executable-fixtures.json", + "fixture_catalog_", + "fixture_catalog_missing", + "0516a84260bcc4d8ebb64e0cd3416deb5c43a86b7f5cd882ca757c924e575767", + "5fea65960c47818243d41076dd96a6cab2dbd6d4038fd354a3f5ba30a12622ae", + True, + ), + ( + "research/decisions/D-004/d004-v0.4-case-subjects.json", + "case_subject_catalog_", + "case_subject_catalog_missing", + "5b9e734b6bad7913072e87adb29c58547d67bdcb46af942eb6bbc79d0e68166e", + "6266b8e38ad1a83fb777278fc0369844749b2915eabb40ba1ddfc9efa7c985f2", + True, + ), + ( + _D004_CANDIDATE_MAPPING_CATALOG, + "mapping_catalog_", + "mapping_catalog_missing", + _D004_CANDIDATE_MAPPING_CATALOG_CANONICAL_SHA256, + _D004_CANDIDATE_MAPPING_CATALOG_RAW_SHA256, + True, + ), + ), + "raw_bindings": ( + ("docs/LANGUAGE_2026.md", "35981310cbe1e1ae61c889b4005b2610d0077e6a615a5e032b0ca9a5860b328a"), + ("docs/governance/oeps/OEP-0003-orange-2026-typed-literals.md", "4ea34fc2499ba6b90eb930262f84f15a41ff0df0f526a4533a48e54ea4f9b4b8"), + ("docs/SEMANTICS_2026.md", "63e14d674eb687f46aa600b36d6d13e3732090d658fb05fd805646b1d469dbdf"), + (_D004_CANDIDATE_MAPPING_CATALOG, _D004_CANDIDATE_MAPPING_CATALOG_RAW_SHA256), + ("research/decisions/D-004/d004-v0.4-case-subjects.json", "6266b8e38ad1a83fb777278fc0369844749b2915eabb40ba1ddfc9efa7c985f2"), + ("research/decisions/D-004/d004-v0.3-cross-cutting-executable-fixtures.json", "5fea65960c47818243d41076dd96a6cab2dbd6d4038fd354a3f5ba30a12622ae"), + ("research/decisions/D-004/d004-v0.2-cross-cutting-fixture-proposals.json", "d3d58cbeb0d2a90987680cd00bc70caf53518be730a71d0d55ba2a7b50544481"), + ("docs/SEMANTIC_STRATA_DECISION_SUITE.md", _D004_SUITE_RAW_SHA256), + ("compiler/fixtures/s3a/invalid-duplicate-spec.or", "f3b870468c5f4a98c9dae6c94de74aacbabbf15e480296f696a87d5aebb209d6"), + ("compiler/fixtures/s3a/invalid-int-magnitude.or", "11826c807240ac2fc4beddb26f25c3b14dd75008ed756f2afa3ee95668b05542"), + ("compiler/fixtures/s3a/invalid-negative-word.or", "4643e1247a017202f25a240ad72c83adbd7d2f436ec4de2dffbac1e292ce161b"), + ("compiler/fixtures/s3a/invalid-typed-impl.or", "4e457e50fbc3b8458c877c9a790e169ff643784b5b78f7a3a0f83a117cc7be07"), + ("compiler/fixtures/s3a/invalid-unsupported-type.or", "14190eb262c79772b583c458500c777c54ef0c8913fc046a8809b5a146cfb9fc"), + ("compiler/fixtures/s3a/invalid-word-range.or", "4a7a4fd4bdfecdc21133f5f6ff24e212dde0bf357fe6d6807816930895300ddf"), + ("compiler/fixtures/s3a/invalid-word-width.or", "d92ac896bd872f1aa4a3c8988d0b654a23c95ec10ec9183a7d2431cd12238be2"), + ("compiler/fixtures/s3a/valid-empty-mixed.or", "c30ab3cda5caa11d826dc38ea257d9c9413d6240c09b236a7f50f1cac9016b96"), + ("compiler/fixtures/s3a/valid-int-radices.or", "937f8f67b20794c9a887bcca15ea619276f921bc9bf884fdc35e7caab6ac11e4"), + ("compiler/fixtures/s3a/valid-word8-boundaries.or", "db37bd00375daa1db43498c5f10b831fdaa5d43b3b886ef838ecbb8d0fbea2ee"), + ("research/decisions/D-004/d004-v0.2-named-mutations.json", "1d46d6d66c0704fcaa462c625dcac2e72150497bb075322c5e076ea42898be54"), + ("compiler/fixtures/typed-answer.or", "22c71b6b8e09ff8dbb7393abfb6ce46597eed0b45f9a34660aa948071138ff6e"), + ("docs/PRODUCT_FORM_DECISION_PACKET.md", "1ef0be53344667993778d1abd9a83423fc92b358735ed7ad74cb766bb29d33fd"), + ("compiler/crates/orangec/tests/s3a_conformance.rs", "7d25ea303fcb3c1603d60b6cb32d89ae15173cc043b8b695daedb737162b8116"), + ("docs/USER_JOURNEYS.md", "f26b179db777295b620731402962dc3092128f8f9a27049638f22883e0652bed"), + ), + "schema_compatibility": None, +} +DECISION_LABORATORY_INVARIANTS = {'research/decisions/D-004/': (6, 23, True, None), 'research/decisions/D-005/': (8, 9, False, ('schemas/gate0/claim-record-v0.1.schema.json', 'research/decisions/D-005/d005-v0.1/epochs/0001/shared-inputs', ('checked-test-as-functional-refinement.json', 'checked-test-masks-failed-kernel-proof.json', 'satisfied-target-leakage-with-unresolved-contexts.json', 'owner-test-as-external-validation.json', 'substituted-subject-reuses-evidence.json'))), 'research/decisions/D-006/': (2, 2, True, None), 'research/decisions/D-009/': (2, 2, True, None), 'research/decisions/D-010/': (2, 2, True, None)} _ATOMIC_OUTCOMES = ( "satisfied", "not_satisfied", @@ -4728,7 +4882,7 @@ def _validate_semantic_strata_suite(self) -> None: candidate_scope = ('## 2. Candidate architectures', 2, False) case_scope = ('## 5. Required decision cases', 2, False) gate_scope = ('## 6. Hard gates and anti-gaming rules', 2, False) - self._validate_markdown_rules((('docs/SEMANTIC_STRATA_DECISION_SUITE.md', (('header', prefix + 'header', '## 1. Authority and decision boundary', (('draft owner-executable decision protocol; no semantic-strata candidate selected',), ('d004-v0.4-draft',), ('2026-07-26',))), ('table', prefix + 'candidates', candidate_scope, 'ST-[A-Z]+', 4, ((0, candidates), (1, ('Role-oriented related family', 'Universal Core', 'Pure/effect pair', 'Five mirrored Cores', 'Host-delegated strata'))), None), ('table', prefix + 'candidate_state', candidate_scope, 'ST-[A-Z]+', 4, ((3, ('0/5 cases',) * 5),), None), ('table', prefix + 'relationships', ('## 4. Required relationship graph', 2, False), 'SR-[0-9A-Z]+', 3, ((0, tuple((f'SR-{index:02d}' for index in range(1, 15)))),), None), ('matches', prefix + 'case_ids', case_scope, '(?m)^###\\s+(SC-[0-9A-Z]+)\\b', cases), ('fields', prefix + 'case_field', case_scope, cases, ('Question', 'Dependencies', 'Inputs', 'Required boundary observations', 'Positive case', 'Mutation and negative case', 'Resource bounds', 'Non-claims', 'Falsification')), ('matches', prefix + 'hard_gates', gate_scope, '(?m)^([1-9][0-9]*)\\.\\s+\\*\\*(SS-G[0-9A-Z]+)\\b', tuple(((str(index), f'SS-G{index:02d}') for index in range(1, 11)))), ('required', prefix + 'assertion', None, ('There is no weighted aggregate score.', 'Independent review is currently absent.', 'No semantic stratum is selected by this draft suite.', 'This suite does not accept D-004 or authorize S3b implementation.')), ('required', prefix + 'execution_matrix', None, ('The frozen matrix therefore contains exactly 25 required candidate-case executions per evidence epoch: each of the 5 candidates runs each of the 5 cases.', 'Execution evidence is currently 0/25 required candidate-case executions: 0/5 candidates have complete five-case packets, and 0/5 cases have complete cross-candidate execution.')), ('count', prefix + 'execution_matrix', None, 'Execution evidence is currently ', 1, False), ('required', prefix + 'evidence_state', None, ("each normalized domain observation's separate expected state, observed state, and `matched` or `mismatched` comparison;", 'one overall case verdict, exactly `pass` or `fail`;', 'Only an overall case verdict of `pass` satisfies SS-G05.', 'a preregistered negative or resource fixture may still pass when its domain observation is the expected `unknown`, `unsupported`, or `exhausted`; that match demonstrates fail-closed handling only and grants neither capability nor partial credit.', 'An expected `unknown`, `unsupported`, or `exhausted` observation can match and contribute to a `pass`; it is never used as the overall case verdict.', "A candidate adapter's inability to execute therefore cannot masquerade as a correctly observed domain-level `unsupported` state.")), ('required', prefix + 'equivalence_map', None, ('An equivalent graph is not a waiver from this table.', 'Every candidate supplies a total SR conformance map with exactly one entry for each of SR-01 through SR-14.', 'A candidate-specific correction creates a linked new run, retains the failed prior record, and consumes the common correction window.', 'Changing an SR requirement or the shared equivalence rule creates a new evidence epoch for all candidates.')))), ('docs/DECISIONS.md', (('required', prefix + 'register_consistency', ('## D-004', 2, True), ('Alternative under comparison: one universal IR.', 'The alternative is not rejected by this proposed register entry; it must run the same symmetric suite as every other candidate.', 'That Draft protocol records 0/25 required candidate-case executions: 0/5 candidates have complete five-case packets, and 0/5 cases have complete cross-candidate execution.')), ('forbidden', prefix + 'register_consistency', ('## D-004', 2, True), ('Rejected default:',)), ('count', prefix + 'register_consistency', ('## D-004', 2, True), 'That Draft protocol records ', 1, False))))) + self._validate_markdown_rules((('docs/SEMANTIC_STRATA_DECISION_SUITE.md', (('header', prefix + 'header', '## 1. Authority and decision boundary', (('draft owner-executable decision protocol; no semantic-strata candidate selected',), ('d004-v0.5-draft',), ('2026-07-26',))), ('table', prefix + 'candidates', candidate_scope, 'ST-[A-Z]+', 4, ((0, candidates), (1, ('Role-oriented related family', 'Universal Core', 'Pure/effect pair', 'Five mirrored Cores', 'Host-delegated strata'))), None), ('table', prefix + 'candidate_state', candidate_scope, 'ST-[A-Z]+', 4, ((3, ('0/5 cases',) * 5),), None), ('table', prefix + 'relationships', ('## 4. Required relationship graph', 2, False), 'SR-[0-9A-Z]+', 3, ((0, tuple((f'SR-{index:02d}' for index in range(1, 15)))),), None), ('matches', prefix + 'case_ids', case_scope, '(?m)^###\\s+(SC-[0-9A-Z]+)\\b', cases), ('fields', prefix + 'case_field', case_scope, cases, ('Question', 'Dependencies', 'Inputs', 'Required boundary observations', 'Positive case', 'Mutation and negative case', 'Resource bounds', 'Non-claims', 'Falsification')), ('matches', prefix + 'hard_gates', gate_scope, '(?m)^([1-9][0-9]*)\\.\\s+\\*\\*(SS-G[0-9A-Z]+)\\b', tuple(((str(index), f'SS-G{index:02d}') for index in range(1, 11)))), ('required', prefix + 'assertion', None, ('There is no weighted aggregate score.', 'Independent review is currently absent.', 'No semantic stratum is selected by this draft suite.', 'This suite does not accept D-004 or authorize S3b implementation.')), ('required', prefix + 'execution_matrix', None, ('The frozen matrix therefore contains exactly 25 required candidate-case executions per evidence epoch: each of the 5 candidates runs each of the 5 cases.', 'Execution evidence is currently 0/25 required candidate-case executions: 0/5 candidates have complete five-case packets, and 0/5 cases have complete cross-candidate execution.')), ('count', prefix + 'execution_matrix', None, 'Execution evidence is currently ', 1, False), ('required', prefix + 'evidence_state', None, ("each normalized domain observation's separate expected state, observed state, and `matched` or `mismatched` comparison;", 'one overall case verdict, exactly `pass` or `fail`;', 'Only an overall case verdict of `pass` satisfies SS-G05.', 'a preregistered negative or resource fixture may still pass when its domain observation is the expected `unknown`, `unsupported`, or `exhausted`; that match demonstrates fail-closed handling only and grants neither capability nor partial credit.', 'An expected `unknown`, `unsupported`, or `exhausted` observation can match and contribute to a `pass`; it is never used as the overall case verdict.', "A candidate adapter's inability to execute therefore cannot masquerade as a correctly observed domain-level `unsupported` state.")), ('required', prefix + 'equivalence_map', None, ('An equivalent graph is not a waiver from this table.', 'Every candidate supplies a total SR conformance map with exactly one entry for each of SR-01 through SR-14.', 'A candidate-specific correction creates a linked new run, retains the failed prior record, and consumes the common correction window.', 'Changing an SR requirement or the shared equivalence rule creates a new evidence epoch for all candidates.')))), ('docs/DECISIONS.md', (('required', prefix + 'register_consistency', ('## D-004', 2, True), ('Alternative under comparison: one universal IR.', 'The alternative is not rejected by this proposed register entry; it must run the same symmetric suite as every other candidate.', 'That Draft protocol records 0/25 required candidate-case executions: 0/5 candidates have complete five-case packets, and 0/5 cases have complete cross-candidate execution.')), ('forbidden', prefix + 'register_consistency', ('## D-004', 2, True), ('Rejected default:',)), ('count', prefix + 'register_consistency', ('## D-004', 2, True), 'That Draft protocol records ', 1, False))))) def _validate_public_assurance_model_suite(self) -> None: @@ -4852,282 +5006,32 @@ def collect_declared_bindings(value: Any, base: PurePosixPath) -> None: if issues: fail('legacy_acceptance', fixture_path, 'fixed historical mutation must remain accepted by the historical schema and second-pass validator') - def _validate_d004_result_contract_source(self) -> None: - path = self.root / _D004_RESULT_CONTRACT_SOURCE - source_bytes = self._read_repository_bytes(path) - if source_bytes is None: - self.add( - "d004_packet.result_contract_missing", - path, - "closed D-004 future-result schema descriptor source is missing", - ) - return - if hashlib.sha256(source_bytes).hexdigest() != _D004_RESULT_CONTRACT_SOURCE_SHA256: - self.add( - "d004_packet.result_contract_identity", - path, - "future-result descriptor source identity drifted", - ) - try: - source = source_bytes.decode("utf-8") - except UnicodeDecodeError: - self.add( - "d004_packet.result_contract_source", - path, - "future-result descriptor source is not UTF-8", - ) - return - - suite_path = self.root / _D004_DECISION_SUITE_SOURCE - suite_bytes = self._read_repository_bytes(suite_path) - suite_markers = ( - '#[path = "d004_support/result_contract.rs"]', - "mod result_contract;", - 'const RESULT_CONTRACT_DESCRIPTOR_SHA256: &str =', - f'"{_D004_RESULT_CONTRACT_DESCRIPTOR_SHA256}"', - "canonical_draft_result_contract_descriptor_bytes", - "parse_draft_result_contract_descriptor", - "assert_eq!(oracle_inventory.len(), 70);", - "assert_eq!(subject_ids.len(), 70);", - "assert_eq!(plan.schedule().len(), REQUIRED_CANDIDATE_CASES);", - '.get("schedule_slots")', - ) - if suite_bytes is None: - self.add( - "d004_packet.result_contract_suite_binding", - suite_path, - "D-004 suite source is unavailable for descriptor binding", - ) - else: - try: - suite_source = suite_bytes.decode("utf-8") - except UnicodeDecodeError: - suite_source = "" - if any(marker not in suite_source for marker in suite_markers): - self.add( - "d004_packet.result_contract_suite_binding", - suite_path, - "D-004 suite no longer binds the exact descriptor module and digest", - ) - - schema_markers = ( - '"d004-result-contract-descriptor-v0.1-draft"', - "pub(crate) const REQUIRED_CASE_RECORD_FIELDS: [&str; 31]", - "pub(crate) const REQUIRED_POSITIVE_SUBJECT_BINDING_FIELDS: [&str; 2]", - "pub(crate) const REQUIRED_MUTATION_SUBJECT_BINDING_FIELDS: [&str; 3]", - "pub(crate) const REQUIRED_IDENTITY_FIELDS: [&str; 11]", - "pub(crate) const REQUIRED_RESOURCE_CEILING_FIELDS: [&str; 4]", - "pub(crate) const REQUIRED_MEASURED_RESOURCE_FIELDS: [&str; 5]", - "pub(crate) const REQUIRED_EXECUTION_STATE_FIELDS: [&str; 6]", - "pub(crate) const REQUIRED_OBSERVATION_FIELDS: [&str; 12]", - "pub(crate) const REQUIRED_LOG_MANIFEST_FIELDS: [&str; 2]", - "pub(crate) const REQUIRED_LOG_MANIFEST_ENTRY_FIELDS: [&str; 5]", - "pub(crate) const REQUIRED_CONTEXT_INVENTORIES: [&str; 4]", - "pub(crate) const REQUIRED_CANDIDATE_GRAPH_FIELDS: [&str; 3]", - "pub(crate) const REQUIRED_GRAPH_NODE_FIELDS: [&str; 3]", - "pub(crate) const REQUIRED_GRAPH_EDGE_FIELDS: [&str; 13]", - "pub(crate) const REQUIRED_SR_MAP_FIELDS: [&str; 15]", - "pub(crate) const REQUIRED_BYTE_MANIFEST_FIELDS: [&str; 2]", - "pub(crate) const REQUIRED_BYTE_MANIFEST_ENTRY_FIELDS: [&str; 4]", - "pub(crate) const REQUIRED_ENVIRONMENT_ENTRY_FIELDS: [&str; 2]", - "pub(crate) const REQUIRED_CONTEXT_ENTRY_FIELDS: [&str; 4]", - "pub(crate) const REQUIRED_UNSUPPORTED_FEATURE_FIELDS: [&str; 4]", - "pub(crate) const REQUIRED_REPLAY_FIELDS: [&str; 6]", - "pub(crate) const REQUIRED_OWNER_LABEL_FIELDS: [&str; 4]", - "pub(crate) const REPLAY_NON_SUCCESS_STATES: [&str; 7]", - "pub(crate) const EXECUTION_STATE_KINDS: [&str; 8]", - 'pub(crate) const ADAPTER_STATUS_STATES: [&str; 3] = ' - '["executed", "not_executed", "failed"]', - "pub(crate) const OBSERVED_INVALIDATION_STATES: [&str; 3]", - "pub(crate) const SR_APPLICABILITY_STATES: [&str; 2]", - "pub(crate) const SR_CONFORMANCE_STATES: [&str; 4]", - "pub(crate) const SCHEDULE_SLOT_FIELDS: [&str; 5]", - "pub(crate) const SCHEDULED_SLOT_PREIMAGE_FIELDS: [&str; 10]", - "pub(crate) const SUBJECT_ORACLE_FIELDS: [&str; 11]", - "pub(crate) const DIGEST_JOIN_FIELDS: [&str; 13]", - "pub(crate) const ORDERING_RULES: [&str; 6]", - "pub(crate) const OBSERVATION_COMPARISONS: [&str; 2]", - "pub(crate) const DERIVATION_RULES: [&str; 30]", - "pub(crate) const RESULT_CONTRACT_NONCLAIMS: [&str; 12]", - "pub(crate) fn canonical_draft_result_contract_descriptor_bytes(", - "pub(crate) fn parse_draft_result_contract_descriptor(", - "let expected = descriptor_value(case_subject_catalog, fixture_catalog);", - "if value != expected", - "Ok(DraftResultContractDescriptor {", - "case_subject_catalog: &CaseSubjectCatalog", - "fixture_catalog: &FixtureCatalog", - "use super::cases::MUTATIONS;", - '("mutation_inventory".to_owned(), mutation_inventory_value())', - '"subject_catalog_bindings".to_owned()', - '"subject_oracle_inventory".to_owned()', - "subject_oracle_inventory_value(case_subject_catalog, fixture_catalog)", - '("schedule_slots".to_owned(), schedule_slots_value())', - '"scheduled_slot_identity_contract".to_owned()', - "MUTATIONS", - "Vec::with_capacity(REQUIRED_CANDIDATE_CASES)", - "Vec::with_capacity(positives.len() + mutations.len() + fixtures.len())", - "CANDIDATES[(round + position) % CANDIDATES.len()]", - "CASES[(2 * round + position) % CASES.len()]", - "fn pointer_token(value: &str) -> String", - "value.replace('~', \"~0\").replace('/', \"~1\")", - '"execution kind completed requires exit_code zero, signal null, ' - 'adapter_status executed, and no truncated output"', - '"replay resource_exhaustion is distinct from preregistered ' - 'domain-level exhausted"', - '"case_verdict is pass if and only if execution is validly completed, ' - 'every resource bound holds, the frozen authenticated observation inventory ' - 'is complete and matched, every required invalidation is satisfied, every ' - 'digest and manifest join succeeds, all required SR rows are satisfied with ' - 'valid dependencies, and the replay contract is satisfied"', + def _validate_d004_candidate_mapping_catalog(self) -> None: + _validate_candidate_mapping_catalog_helper( + self, + catalog_path=_D004_CANDIDATE_MAPPING_CATALOG, + canonical_sha256=_D004_CANDIDATE_MAPPING_CATALOG_CANONICAL_SHA256, + raw_sha256=_D004_CANDIDATE_MAPPING_CATALOG_RAW_SHA256, + subject_sha256=_D004_CANDIDATE_MAPPING_CATALOG_SUBJECT_SHA256, + suite_raw_sha256=_D004_SUITE_RAW_SHA256, + canonical_json_bytes=canonical_json_bytes, ) - if any(marker not in source for marker in schema_markers): - self.add( - "d004_packet.result_contract_schema", - path, - "future-result descriptor schema or exact-only parser surface drifted", - ) - - zero_state_markers = ( - '("epoch".to_owned(), JsonValue::Null)', - 'string_entry("epoch_status", "unfrozen")', - 'string_entry("owner_protocol_review", "none")', - '("replay_repetitions".to_owned(), JsonValue::Null)', - 'usize_entry("required_candidate_cases", REQUIRED_CANDIDATE_CASES)', - 'usize_entry("result_record_count", 0)', - 'usize_entry("completed_candidate_cases", 0)', - 'usize_entry("complete_candidates", 0)', - 'usize_entry("complete_cross_candidate_cases", 0)', - 'string_entry("evidence_status", "none")', - '("selection".to_owned(), JsonValue::Null)', - '("conclusion".to_owned(), JsonValue::Null)', - 'string_entry("roadmap_gate_credit", "none")', - 'string_entry("readiness_credit", "none")', - 'string_entry("status", "identity_plan_only")', - 'string_entry("physical_execution_order", "unassigned")', - 'string_entry("persistence", "none_before_frozen_epoch")', - 'string_entry("current_record_status", "absent")', - ) - empty_record_arrays = ( - "result_records", - "observation_records", - "verdict_records", - "review_records", - "evidence_records", - ) - empty_records = all( - re.search( - rf'"{re.escape(name)}"\.to_owned\(\),\s*' - r'JsonValue::Array\(Vec::new\(\)\)\s*,?\s*\)', - source, - ) - is not None - for name in empty_record_arrays - ) - if any(marker not in source for marker in zero_state_markers) or not empty_records: - self.add( - "d004_packet.result_contract_zero_state", - path, - "descriptor weakened the exact unfrozen 0/25, no-evidence, no-credit state", - ) - if any( - marker in source - for marker in ( - 'fn readiness_percent(', - '"readiness_percent"', - '"roadmap_gates_closed"', - '"roadmap_gates_total"', - ) - ): - self.add( - "d004_packet.result_contract_readiness_scope", - path, - "D-004 descriptor must not restate global gate count or readiness percentage", - ) - nonclaims = ( - "descriptor only; no populated case record exists", - "no candidate mapping or adapter exists", - "no candidate process or tool invoked", - "no result, observation, verdict, review, or evidence record accepted", - "no replay repetition count assigned", - "no D-004 evidence epoch frozen", - "no candidate-case execution completed", - "no semantic-strata candidate selected", - "no D-004 disposition accepted", - "no S3b implementation authorized", - "no independent review claimed", - "no roadmap gate or readiness movement", + def _validate_d004_result_contract_source(self) -> None: + _validate_d004_result_contract_source_helper( + self, + result_contract_source=_D004_RESULT_CONTRACT_SOURCE, + result_contract_source_sha256=_D004_RESULT_CONTRACT_SOURCE_SHA256, + decision_suite_source=_D004_DECISION_SUITE_SOURCE, + descriptor_sha256=_D004_RESULT_CONTRACT_DESCRIPTOR_SHA256, ) - if any(f'"{value}"' not in source for value in nonclaims): - self.add( - "d004_packet.result_contract_nonclaims", - path, - "future-result descriptor weakened its exact nonclaims", - ) - - if ( - '"allowed_domain_states"' not in source - or ( - "observed_state is a member of the resolved oracle " - "allowed_domain_states" - ) - not in source - or '"comparison is mismatched otherwise"' not in source - or '"no replay repetition count assigned"' not in source - or 'string_entry("capability_credit", "none")' not in source - or ( - "observation_level, allowed_domain_states, required_invalidation, " - "and capability_credit must equal the resolved oracle and cannot be " - "result-defined or broadened" - ) - not in source - ): - self.add( - "d004_packet.result_contract_semantics", - path, - "oracle-bound observation semantics or unresolved replay cardinality drifted", - ) - function_names = set( - re.findall(r"\bfn\s+([A-Za-z_][A-Za-z0-9_]*)\s*\(", source) - ) - execution_prefixes = ("execute", "launch", "invoke", "spawn", "run_candidate") - if ( - any(name.startswith(execution_prefixes) for name in function_names) - or re.search( - r"\b(?:std::process|Command::new|process::Command)\b", source - ) - ): - self.add( - "d004_packet.result_contract_execution_api", - path, - "future-result descriptor must expose no candidate launcher or execution API", - ) - persistence_prefixes = ("persist", "save", "store", "write", "capture", "emit") - if ( - any(name.startswith(persistence_prefixes) for name in function_names) - or re.search( - r"\b(?:std::fs|std::io::Write|OpenOptions|File::create|fs::write)\b", - source, - ) - ): - self.add( - "d004_packet.result_contract_persistence_api", - path, - "future-result descriptor must expose no capture or persistence API", - ) - parser_names = {name for name in function_names if name.startswith("parse")} - if parser_names != {"parse_draft_result_contract_descriptor"}: - self.add( - "d004_packet.result_contract_parser_api", - path, - "only the exact closed-descriptor parser is permitted", - ) def _validate_d004_draft_packet(self) -> None: + self._validate_d004_candidate_mapping_catalog() self._validate_d004_result_contract_source() self._validate_decision_laboratory("d004") - packet_path = self.root / "research/decisions/D-004/d004-v0.4-draft-packet.json" + packet_path = self.root / "research/decisions/D-004/d004-v0.5-draft-packet.json" catalog_path = self.root / "research/decisions/D-004/d004-v0.4-case-subjects.json" try: packet = self._load_repository_json(packet_path) @@ -5141,16 +5045,17 @@ def _validate_d004_draft_packet(self) -> None: "d003_disposition", "owner_protocol_review", "candidates", "cases", "source_roles", "relationships", "domain_observation_states", "case_verdicts", "hard_gates", "mutations", "mutation_manifest_sha256", - "case_subject_catalog_sha256", "cross_cutting_fixture_proposal_manifest_sha256", + "candidate_mapping_catalog_sha256", "case_subject_catalog_sha256", + "cross_cutting_fixture_proposal_manifest_sha256", "cross_cutting_executable_fixture_catalog_sha256", "fixture_inventory_status", "unresolved_cross_cutting_fixture_classes", "protocol_gaps", "input_bindings", "budgets", "execution", "selection", "conclusion", "nonclaims", } if set(packet) != expected_packet_fields: - self.add("d004_packet.schema", packet_path, "v0.4 packet fields are not closed") + self.add("d004_packet.schema", packet_path, "v0.5 packet fields are not closed") exact_packet_values = { - "schema_version": "d004-pre-epoch-packet-v0.4", - "suite_version": "d004-v0.4-draft", + "schema_version": "d004-pre-epoch-packet-v0.5", + "suite_version": "d004-v0.5-draft", "status": "draft_unfrozen", "epoch": None, "epoch_status": "unfrozen", @@ -5164,9 +5069,9 @@ def _validate_d004_draft_packet(self) -> None: "case_verdicts": ["pass", "fail"], "hard_gates": [f"SS-G{index:02d}" for index in range(1, 11)], "mutation_manifest_sha256": "970999d998cdc202a6caa4e2f798017416c88211a5b6b8508132a07cc9080c0c", - "cross_cutting_fixture_proposal_manifest_sha256": "457c14e7d41f677b21af254af45e331b24e6c685a7d7aa8eae556ced5bd7be65", - "cross_cutting_executable_fixture_catalog_sha256": "ca08308161244e9541803aa8008dd1624a2101f77da8b656cf0c5deff8a60703", - "fixture_inventory_status": "case_and_cross_cutting_materialized_unreviewed_freeze_blocker", + "cross_cutting_fixture_proposal_manifest_sha256": "85407a4a43b5a6bf450ea905fe858482f2f79abb4cbe8ee8690bddc1753d0912", + "cross_cutting_executable_fixture_catalog_sha256": "0516a84260bcc4d8ebb64e0cd3416deb5c43a86b7f5cd882ca757c924e575767", + "fixture_inventory_status": "case_cross_cutting_and_candidate_mapping_materialized_unreviewed_freeze_blocker", "unresolved_cross_cutting_fixture_classes": ["ambiguity", "missing-edge", "identity-substitution", "unsupported", "resource-exhaustion"], "protocol_gaps": [ "ambiguity fixture sufficiency review unresolved", @@ -5174,6 +5079,7 @@ def _validate_d004_draft_packet(self) -> None: "identity-substitution fixture sufficiency review unresolved", "unsupported fixture sufficiency review unresolved", "resource-exhaustion fixture sufficiency review unresolved", + "candidate graph and SR mapping review unresolved", "replay repetition count unresolved", ], "budgets": { @@ -5192,14 +5098,15 @@ def _validate_d004_draft_packet(self) -> None: "selection": None, "conclusion": None, "nonclaims": [ - "no candidate adapter executed", "no D-004 evidence epoch frozen", + "candidate mappings are unreviewed input-only hypotheses, not accepted semantics", + "no candidate adapter exists or executed", "no D-004 evidence epoch frozen", "no semantic-strata candidate selected", "no D-004 disposition inferred from D-003 acceptance", "no roadmap gate or readiness movement", "no S3b implementation authorized", ], } if any(packet.get(key) != value for key, value in exact_packet_values.items()): - self.add("d004_packet.unfrozen_state", packet_path, "v0.4 packet weakened its exact unfrozen zero-evidence state") + self.add("d004_packet.unfrozen_state", packet_path, "v0.5 packet weakened its exact unfrozen zero-evidence state") mutation_counts = (4, 5, 5, 6, 6) expected_mutations = [ f"SC-{case_index:02d}-M{mutation_index:02d}" @@ -5209,11 +5116,11 @@ def _validate_d004_draft_packet(self) -> None: if packet.get("mutations") != expected_mutations: self.add("d004_packet.mutations", packet_path, "packet must retain all 26 ordered named mutations") bindings = packet.get("input_bindings") - if not isinstance(bindings, dict) or len(bindings) != 22 or any( + if not isinstance(bindings, dict) or len(bindings) != 23 or any( not isinstance(row, dict) or set(row) != {"path", "sha256"} for row in bindings.values() ): - self.add("d004_packet.input_bindings", packet_path, "packet must retain 22 closed path/digest bindings") + self.add("d004_packet.input_bindings", packet_path, "packet must retain 23 closed path/digest bindings") else: case_binding = bindings.get("case_subjects") catalog_raw = self._read_repository_bytes(catalog_path) @@ -5222,12 +5129,35 @@ def _validate_d004_draft_packet(self) -> None: "sha256": hashlib.sha256(catalog_raw).hexdigest() if catalog_raw is not None else "", }: self.add("d004_packet.case_subject_binding", packet_path, "case-subject raw binding drifted") + mapping_raw = self._read_repository_bytes( + self.root / _D004_CANDIDATE_MAPPING_CATALOG + ) + if bindings.get("candidate_mappings") != { + "path": _D004_CANDIDATE_MAPPING_CATALOG, + "sha256": hashlib.sha256(mapping_raw).hexdigest() + if mapping_raw is not None + else "", + }: + self.add( + "d004_packet.candidate_mapping_binding", + packet_path, + "candidate-mapping raw binding drifted", + ) try: catalog_digest = hashlib.sha256(canonical_json_bytes(catalog)).hexdigest() except (TypeError, ValueError): catalog_digest = "" if packet.get("case_subject_catalog_sha256") != catalog_digest: self.add("d004_packet.case_subject_identity", packet_path, "case-subject canonical identity drifted") + if ( + packet.get("candidate_mapping_catalog_sha256") + != _D004_CANDIDATE_MAPPING_CATALOG_CANONICAL_SHA256 + ): + self.add( + "d004_packet.candidate_mapping_identity", + packet_path, + "candidate-mapping canonical identity drifted", + ) self._validate_d004_case_subject_catalog(catalog, catalog_path) def _validate_d004_case_subject_catalog(self, catalog: dict[str, Any], path: Path) -> None: @@ -5251,7 +5181,7 @@ def fail(suffix: str, message: str) -> None: }, "mutation_subject_count": 26, "nonclaims": [ - "no candidate mapping or adapter exists", + "candidate mappings are separate unreviewed input-only hypotheses; no candidate adapter exists", "no candidate process or tool invoked", "no observed state, match, result, or verdict produced", "no candidate capability or capability absence established", @@ -5271,12 +5201,12 @@ def fail(suffix: str, message: str) -> None: }, "suite": { "path": "docs/SEMANTIC_STRATA_DECISION_SUITE.md", - "raw_sha256": "f44c556202d0e235fd42c03181134ab3047d3e9b6f19b3015dae15a86d00dc0b", + "raw_sha256": _D004_SUITE_RAW_SHA256, }, }, "status": "draft_unreviewed_input_only", "subject_count": 31, - "suite_version": "d004-v0.4-draft", + "suite_version": "d004-v0.5-draft", } if set(catalog) != root_fields: fail("schema", "catalog root fields are not closed")