Skip to content

Commit af83ab1

Browse files
afflomclaude
andcommitted
ADR-058/059 audit: pin convergence-tower codomain stratification
The wiki added ADR-058 (κ-derivation as the framework's compression operator) and ADR-059 (Atlas image in E₈ as the codomain of κ-derivation). Both are conceptual-reading commitments — "no new substrate trait declarations, no wire-format change, no SDK-macro discipline" — over the existing `kernel::convergence` substrate, the ψ-pipeline/σ-projection (ADR-047), and the TypedCommitment surface (ADR-048/049), all of which are already realized and matching. The Atlas/E₈ exceptional-structure code realization is explicitly deferred to application level per ADR-059 §6 + TR-22, so it is not `uor-foundation`'s responsibility. ADR-059 §4 newly elevates the four-level Hopf convergence tower (R/C/H/O at division-algebra dimensions {1,2,4,8}) to the normative operator-geometry codomain stratification of κ-derivation. Those exact values — characteristic identities {existence, feedback, choice, self-reference}, Hopf fiber spheres {S⁰,S¹,S³,S⁷}, and the persistent residual Betti signatures (β_0 = 1, β_{2^k-1} = 1) — were generated from the ontology but not guarded by any conformance check. Add `ontology/inventory/convergence_codomain_stratification` to pin them (CONFORMANCE_CHECKS 545 → 546). Conformance-only; no functionality change to the published crates. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 9098ff2 commit af83ab1

2 files changed

Lines changed: 134 additions & 1 deletion

File tree

conformance/src/validators/ontology/inventory.rs

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,8 @@ pub fn validate(artifacts: &Path) -> Result<ConformanceReport> {
130130
validate_reduction_completion_vocabulary(&mut report);
131131
// Amendment 66: Convergence Tower
132132
validate_convergence_tower_vocabulary(&mut report);
133+
// ADR-059: convergence-tower codomain stratification of κ-derivation
134+
validate_convergence_codomain_stratification(&mut report);
133135
// Amendment 67: Division Algebras
134136
validate_division_algebras_vocabulary(&mut report);
135137
// Amendment 68: Interaction Algebra
@@ -4228,6 +4230,132 @@ fn validate_convergence_tower_vocabulary(report: &mut ConformanceReport) {
42284230
}
42294231
}
42304232

4233+
/// ADR-059: pins the four `convergence:ConvergenceLevel` individuals as the
4234+
/// operator-geometry-coordinate codomain stratification of κ-derivation
4235+
/// (ADR-058). ADR-059 §4 commits the Hopf convergence tower (R / C / H / O at
4236+
/// division-algebra dimensions {1, 2, 4, 8}) as the coarse codomain
4237+
/// stratification; this validator guards the exact normative values the ADR
4238+
/// makes load-bearing — algebra dimension, characteristic identity, Hopf fiber
4239+
/// sphere, and the persistent residual Betti signature (β_0 = 1 and
4240+
/// β_{2^k − 1} = 1 at each level). Without this guard, a regression in the
4241+
/// ontology-generated tower would silently break ADR-059's codomain commitment.
4242+
fn validate_convergence_codomain_stratification(report: &mut ConformanceReport) {
4243+
let ontology = uor_ontology::Ontology::full();
4244+
let validator = "ontology/inventory/convergence_codomain_stratification";
4245+
4246+
// (level IRI, algebra_dimension, characteristic_identity, fiber IRI,
4247+
// betti_signature). The four normed division algebras R/C/H/O per
4248+
// ADR-059 §4; the persistent Betti at index 2^k − 1 encodes the Hopf
4249+
// fibration's residual β = 1 at each level.
4250+
let levels: &[(&str, i64, &str, &str, &str)] = &[
4251+
(
4252+
"https://uor.foundation/convergence/L0_State",
4253+
1,
4254+
"existence",
4255+
"https://uor.foundation/convergence/hopf_S0",
4256+
"[1]",
4257+
),
4258+
(
4259+
"https://uor.foundation/convergence/L1_Memory",
4260+
2,
4261+
"feedback",
4262+
"https://uor.foundation/convergence/hopf_S1",
4263+
"[1,1]",
4264+
),
4265+
(
4266+
"https://uor.foundation/convergence/L2_Agency",
4267+
4,
4268+
"choice",
4269+
"https://uor.foundation/convergence/hopf_S3",
4270+
"[1,0,0,1]",
4271+
),
4272+
(
4273+
"https://uor.foundation/convergence/L3_Self",
4274+
8,
4275+
"self-reference",
4276+
"https://uor.foundation/convergence/hopf_S7",
4277+
"[1,0,0,0,0,0,0,1]",
4278+
),
4279+
];
4280+
4281+
let dim_prop = "https://uor.foundation/convergence/algebraDimension";
4282+
let betti_prop = "https://uor.foundation/convergence/bettiSignature";
4283+
let fiber_prop = "https://uor.foundation/convergence/fiberType";
4284+
let identity_prop = "https://uor.foundation/convergence/characteristicIdentity";
4285+
let mut all_valid = true;
4286+
4287+
for (iri, dim, identity, fiber, betti) in levels {
4288+
match ontology.find_individual(iri) {
4289+
Some(ind) => {
4290+
let prop_eq = |key: &str, expect: &IndividualValue| {
4291+
ind.properties.iter().any(|(k, v)| *k == key && v == expect)
4292+
};
4293+
if !prop_eq(dim_prop, &IndividualValue::Int(*dim)) {
4294+
report.push(TestResult::fail(
4295+
validator,
4296+
format!("{iri} algebraDimension is not {dim} (ADR-059 §4 tower)"),
4297+
));
4298+
all_valid = false;
4299+
}
4300+
if !prop_eq(identity_prop, &IndividualValue::Str(identity)) {
4301+
report.push(TestResult::fail(
4302+
validator,
4303+
format!("{iri} characteristicIdentity is not \"{identity}\""),
4304+
));
4305+
all_valid = false;
4306+
}
4307+
if !prop_eq(fiber_prop, &IndividualValue::IriRef(fiber)) {
4308+
report.push(TestResult::fail(
4309+
validator,
4310+
format!("{iri} fiberType is not {fiber}"),
4311+
));
4312+
all_valid = false;
4313+
}
4314+
if !prop_eq(betti_prop, &IndividualValue::Str(betti)) {
4315+
report.push(TestResult::fail(
4316+
validator,
4317+
format!("{iri} bettiSignature is not {betti} (persistent β_{{2^k-1}} = 1)"),
4318+
));
4319+
all_valid = false;
4320+
}
4321+
}
4322+
None => {
4323+
report.push(TestResult::fail(
4324+
validator,
4325+
format!("ConvergenceLevel {iri} not found (ADR-059 codomain stratification)"),
4326+
));
4327+
all_valid = false;
4328+
}
4329+
}
4330+
}
4331+
4332+
// Exactly four levels — the four normed division algebras, no more.
4333+
let level_count = ontology
4334+
.find_namespace("convergence")
4335+
.map(|ns| {
4336+
ns.individuals
4337+
.iter()
4338+
.filter(|i| i.type_ == "https://uor.foundation/convergence/ConvergenceLevel")
4339+
.count()
4340+
})
4341+
.unwrap_or(0);
4342+
if level_count != 4 {
4343+
report.push(TestResult::fail(
4344+
validator,
4345+
format!("expected exactly 4 ConvergenceLevel individuals, found {level_count}"),
4346+
));
4347+
all_valid = false;
4348+
}
4349+
4350+
if all_valid {
4351+
report.push(TestResult::pass(
4352+
validator,
4353+
"ADR-059: Hopf convergence tower {R,C,H,O} at dims {1,2,4,8} carries the \
4354+
committed codomain stratification (identity, fiber sphere, persistent Betti)",
4355+
));
4356+
}
4357+
}
4358+
42314359
fn validate_division_algebras_vocabulary(report: &mut ConformanceReport) {
42324360
let ontology = uor_ontology::Ontology::full();
42334361
let validator = "ontology/inventory/division_algebras_vocabulary";

spec/src/counts.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,12 @@ pub const SHACL_TESTS: usize = 285;
226226
/// `docs/orphan-closure/classification_report.md` agrees with
227227
/// `classify_all` and that the `CLASSIFICATION_*` constants in this
228228
/// file match the live counts.
229-
pub const CONFORMANCE_CHECKS: usize = 545;
229+
/// ADR-059: +1 `ontology/inventory/convergence_codomain_stratification`
230+
/// — pins the four-level Hopf convergence tower {R,C,H,O} at division-algebra
231+
/// dimensions {1,2,4,8} as the operator-geometry codomain stratification of
232+
/// κ-derivation (ADR-058), guarding the characteristic identities, Hopf fiber
233+
/// spheres, and persistent residual Betti signatures the ADR makes normative.
234+
pub const CONFORMANCE_CHECKS: usize = 546;
230235

231236
/// Number of amendments applied to the base ontology.
232237
pub const AMENDMENTS: usize = 95;

0 commit comments

Comments
 (0)