|
1 | | -import NeutralSubstrate.Basic |
2 | | -import NeutralSubstrate.Structure |
3 | | -import NeutralSubstrate.Admissibility |
4 | | -import NeutralSubstrate.Separation |
5 | | -import NeutralSubstrate.Invariants |
6 | | -import NeutralSubstrate.Theorems |
7 | | -import NeutralSubstrate.Witness |
| 1 | +import NeutralSubstrate.Core |
| 2 | +import NeutralSubstrate.Spec |
| 3 | +import NeutralSubstrate.Surface |
8 | 4 |
|
9 | 5 | /-! |
10 | | -File: NeutralSubstrate.lean |
| 6 | +# Neutral Substrate (NS) |
11 | 7 |
|
12 | | -Notes: |
| 8 | +Lean 4 formalization of the Neutral Substrate specification from |
| 9 | +Structural Explainability (SE) theory. |
| 10 | +Defines the necessary and sufficient conditions for |
| 11 | +ontological neutrality under durable interpretive disagreement. |
13 | 12 |
|
14 | | -- This is the single import surface for downstream users. |
15 | | -- Must remain thin: imports only, no logic. |
| 13 | +## 1. Scope (Informative) |
| 14 | +
|
| 15 | +Applies to substrates optimized for stability across disagreeing |
| 16 | +interpretive frameworks. |
| 17 | +Does not apply to substrates optimized for other objectives. |
| 18 | +
|
| 19 | +This library does not encode identity regimes, persistence behavior, |
| 20 | +domain semantics, or operational validation. |
| 21 | +
|
| 22 | +## 2. Public Surface (Normative) |
| 23 | +
|
| 24 | +The following names constitute the normative public surface of this library. |
| 25 | +They are stable across patch versions. |
| 26 | +Breaking changes require a minor version increment. |
| 27 | +Names in `NeutralSubstrate.Core` not listed here are |
| 28 | +internal and may change without notice. |
| 29 | +
|
| 30 | +### 2.1. Types |
| 31 | +
|
| 32 | +- `PrimitiveKind` the three primitive classifications |
| 33 | +- `Primitive` basic unit of ontological commitment |
| 34 | +- `Ontology` a finite list of primitives |
| 35 | +- `Framework` an interpretive stance over primitives |
| 36 | +
|
| 37 | +### 2.2. Predicates |
| 38 | +
|
| 39 | +- `Neutral` extension stability holds |
| 40 | +- `Admissible` framework is internally consistent |
| 41 | +- `ExtensionStable` no admissible framework causes inconsistency |
| 42 | +- `containsCausalOrNormative` boolean test for non-neutral content |
| 43 | +- `extensionInconsistent` a framework denies a substrate primitive |
| 44 | +- `FrameworkVariant` admissible frameworks disagree about a primitive |
| 45 | +- `FrameworksContradict` one framework affirms what another denies |
| 46 | +
|
| 47 | +### 2.3. Axioms |
| 48 | +
|
| 49 | +- `framework_relativity` causal/normative primitives are contested |
| 50 | +- `neutral_primitives_undisputed` neutral primitives are framework-invariant |
| 51 | +- `causal_normative_affirmed` causal/normative primitives are affirmed |
| 52 | +
|
| 53 | +### 2.4 Theorems |
| 54 | +
|
| 55 | +- `ontological_neutrality_theorem` main biconditional result |
| 56 | +- `not_neutral_if_causal_or_normative` only-if direction |
| 57 | +- `neutral_if_only_neutral` if direction |
| 58 | +- `framework_contestability_lemma` framework-variant primitives cannot appear in NS |
| 59 | +- `separate_stability` an NS is separately consistent with each of two mutually |
| 60 | + contradicting frameworks |
| 61 | +
|
| 62 | +### 2.5. Asymmetry Note (Normative) |
| 63 | +
|
| 64 | +The two directions of `ontological_neutrality_theorem` have different |
| 65 | +epistemic status and different axiom dependencies. |
| 66 | +
|
| 67 | +The lower bound (`not_neutral_if_causal_or_normative`) follows from |
| 68 | +`framework_relativity` alone. |
| 69 | +It holds structurally in any domain where causal and normative |
| 70 | +primitives are contested across admissible frameworks. |
| 71 | +
|
| 72 | +The upper bound (`neutral_if_only_neutral`) additionally requires |
| 73 | +`neutral_primitives_undisputed`. |
| 74 | +It holds only in domains where identity conditions are not themselves contested. |
| 75 | +In domains where identity is contested, only the lower bound applies. |
| 76 | +Cite `NS.THEOREM.LOWER_BOUND_ONLY` when documenting this restriction. |
| 77 | +
|
| 78 | +## 3. Usage (Informative) |
| 79 | +
|
| 80 | +```lean |
| 81 | +import NeutralSubstrate |
| 82 | +open SE.NeutralSubstrate -- types, predicates, axioms, theorems |
| 83 | +open SE.NeutralSubstrate.Spec -- citation IDs (optional) |
| 84 | +``` |
| 85 | +
|
| 86 | +## 4. Metadata (Informative) |
| 87 | +
|
| 88 | +Version, authorship, and release date: see `CITATION.cff`. |
| 89 | +Scope, layer, and governance: see `SE_MANIFEST.toml`. |
| 90 | +
|
| 91 | +## 5. File Notes (Informative) |
| 92 | +
|
| 93 | +- This file must remain thin: imports only, no logic. |
| 94 | +- Downstream regime libraries depend on this file as their sole NS import. |
| 95 | +- Internal structure (Core, Spec, Surface) is not part of the public contract. |
16 | 96 | -/ |
0 commit comments