Skip to main content

Stratum — logical admissibility stratum

A stratum in ATS-V is a cog's logical-admissibility profile: which reasoning principles its content is allowed to use, and under which Foundation profiles it is therefore admissible. The stratum primitive answers "how much logical commitment does this cog carry?"

Name borrowing — not the MSFS stratification of 𝔐

The variant names LFnd / LCls / LClsTop / LAbs are borrowed from MSFS (Sereda 2026, DOI 10.5281/zenodo.19755781), but the ATS-V stratum measures a different thing. In MSFS proper, the strata classify objects of the moduli space 𝔐 by role — L_Fnd = Rich foundations (R1)–(R5), L_Cls = classifiers (M1)–(M5) (meta-frameworks such as ∞-cosmoi or Univalent Foundations, not "classical systems"), L_Cls^⊤ = maximal classifiers — whereas the ATS-V stratum grades a cog's reasoning commitment: constructive → classical → classical + reflection → absolute. The two ladders touch only at the top: LAbs is inadmissible here because AFN-T proves L_Abs = ∅ there. For the paper-faithful MSFS coordinate of a theorem, see MSFS Coordinate.

public type MsfsStratum is
| LFnd
| LCls
| LClsTop
| LAbs;

Four strata, in order of increasing logical commitment:

StratumReadingAdmissibility
LFndFoundational level — base contentalways admissible
LClsClassical level — classical reasoningadmissible under classical foundations
LClsTopClassical-top level — classical with top-level reflectionadmissible under reflection-tower discharge
LAbsAbsolute level — absolute / reflective quantificationinadmissible by AFN-T α (MSFS Theorem 5.1)

1. Why a stratification?​

The MSFS discipline addresses a well-known issue in foundational mathematics: as you climb in proof-theoretic strength, you acquire stronger reasoning principles but also acquire greater risk of inconsistency. Sound stratification keeps strong content addressable (you can reason about it, transport results across strata) while preventing strong content from contaminating weaker strata.

Verum's MsfsStratum makes the stratification first-class. A cog's stratum is declared, and load-bearing in AP-007 StratumAdmissibility.

2. The four strata in detail​

2.1 LFnd — foundational​

The base level. Content here:

  • Uses only constructive reasoning.
  • Avoids classical principles (LEM, AC).
  • Is admissible under every Foundation profile.

This is the default stratum for application code. Most cogs without explicit stratum declaration default to LFnd.

2.2 LCls — classical​

The classical level. Content here:

  • May use classical principles (LEM, AC).
  • Is admissible under foundations that admit those principles (ZfcTwoInacc, Cic).
  • Is not admissible under purely-constructive foundations (Hott, Cubical).

A cog at LCls interacting with a Hott-foundation cog requires an explicit reasoning bridge.

2.3 LClsTop — classical with top-level reflection​

The classical-top level adds top-level reflection — the ability to reason about the meta-theory's own truth predicate at the top level. Content here:

  • Uses classical principles plus reflection.
  • Is admissible under foundations whose meta-theory satisfies REF^k for the required k (see reflection tower).

LClsTop is the strongest stratum admissible without risking absolute-quantification anomalies.

2.4 LAbs — absolute​

The absolute level. Content here:

  • Uses absolute / reflective quantification.
  • Is inadmissible by AFN-T α (MSFS Theorem 5.1).
  • Declaring a cog at LAbs triggers a stratum-admissibility check; the check requires explicit forcing-extension certification.

In practice, no production code lives at LAbs. The variant exists in the type system to prevent accidental escalation — a cog that needs to mention LAbs content must do so via an explicit admissibility certificate, not by silent inheritance.

3. The stratum-admissibility check​

AP-007 StratumAdmissibility fires when a non-LAbs cog mentions LAbs-stratum content without an admissibility certificate:

@arch_module(stratum: MsfsStratum.LFnd)
module my_app.production;

mount core.meta.absolute_reflective; // <-- illustrative name;
// LAbs-stratum content

// AP-007 fires: LFnd cog mentions LAbs content.

The diagnostic suggests one of:

  1. Move the content into an LAbs cog with an explicit @admissibility_certificate(...) attribute documenting the forcing-extension argument.
  2. Remove the content (production code typically does not need absolute reflection).
  3. Replace with LClsTop content under explicit reflection discharge.

4. The @admissibility_certificate(...) attribute​

When LAbs content is genuinely needed — typically for advanced proof corpora — the admissibility certificate makes the admission explicit:

@arch_module(stratum: MsfsStratum.LAbs)
@admissibility_certificate(
method: "forcing extension",
citation: "Shoenfield 1971 — absoluteness of forcing",
condition: "ground model is L (the constructible hierarchy)",
)
module my_app.advanced.absolute_proof;

The certificate:

  • Lifts the AFN-T α inadmissibility ban for this specific cog.
  • Adds the citation to the framework-axiom inventory.
  • Becomes load-bearing in the project's audit chronicle — the project's soundness rests on the cited absoluteness theorem.

5. The MSFS-coordinate audit​

verum audit --bundle walks every annotated cog and verifies the coordinate — the (Foundation, Stratum) pair. The coordinate must be admissible under the cog's claimed Lifecycle:

FoundationStratumAdmissible Lifecycle
ZfcTwoInaccLFndevery
ZfcTwoInaccLClsDefinition / Conditional / Theorem (with cited LEM/AC)
ZfcTwoInaccLClsTopPostulate / Conditional
ZfcTwoInaccLAbsPostulate (with admissibility certificate)
HottLFndevery
HottLClsConditional (LEM admitted as classical add-on)
HottLClsTopPostulate
HottLAbsPostulate (with admissibility certificate)

Coordinates outside this table trigger AP-011 AbsoluteBoundaryAttempt when the cog claims LAbs membership, or AP-026 FoundationContentMismatch when the body uses constructs from a different foundation than the declared one.

6. Stratum and the register-mixing pattern​

A subtle interaction: the AP-006 RegisterMixing anti-pattern checks that a single proof body does not mix two MSFS registers (α-direct, ε-indirect, classical, constructive) without an explicit register-bridge tactic. Registers are finer than strata — a single stratum supports multiple registers.

The relationship:

StratumAdmissible registers
LFndα-constructive, ε-constructive
LClsα-classical, ε-classical, plus the LFnd registers
LClsTopevery register
LAbsevery register, plus the absolute register

A cog whose stratum admits multiple registers is permitted to use them, but mixing within a single proof body still requires the register-bridge tactic.

7. Default stratum behaviour​

Cogs without an explicit stratum declaration default to LFnd. This is the most-restrictive default — the cog cannot mention classical content without first either:

  1. Declaring a higher stratum via @arch_module(stratum: ...), or
  2. Importing classical content via a bridge.

The default makes LFnd cogs safe by construction.

8. Worked example — multi-stratum project​

// LFnd-stratum: production code, fully constructive
@arch_module(
foundation: Foundation.ZfcTwoInacc,
stratum: MsfsStratum.LFnd,
lifecycle: Lifecycle.Theorem("v1.0"),
)
module my_app.production.payment;

// LCls-stratum: classical content used in well-known classical theorems
@arch_module(
foundation: Foundation.ZfcTwoInacc,
stratum: MsfsStratum.LCls,
lifecycle: Lifecycle.Conditional(["LEM admitted at this stratum"]),
)
module my_app.classical.continuum_proof;

// LClsTop-stratum: classical with top-level reflection
@arch_module(
foundation: Foundation.ZfcTwoInacc,
stratum: MsfsStratum.LClsTop,
lifecycle: Lifecycle.Postulate("Pohlers 2009 · iterated reflection"),
)
module my_app.advanced.reflection_proofs;

The audit walks the corpus and reports each cog's stratum:

$ verum audit --arch-corpus

ATS-V whole-corpus cross-cog architectural analysis
─────────────────────────────────────────────────────
N annotated cogs walked; M cross-cog violations.

Cog Foundation Stratum Modality
────────────────────── ────────────── ──────── ────────
…

One row per cog, with a Stratum column — there is no --filter and no distribution summary; count the column if you want one.

The bulk of cogs at LFnd is the healthy state. Climbing the stratum hierarchy is acceptable but should be deliberate.

9. Cross-references​