Skip to content

Commit 784e327

Browse files
committed
Release 0.4.0
1 parent ff81e3d commit 784e327

11 files changed

Lines changed: 396 additions & 70 deletions

File tree

CHANGELOG.md

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,33 @@ and this project adheres to **[Semantic Versioning](https://semver.org/spec/v2.0
99

1010
## [Unreleased]
1111

12-
---
12+
## [0.4.0] - 2026-05-01
13+
14+
### Added
15+
16+
- `InterpretivelyNonCommitted` predicate; no primitive in the substrate
17+
is framework-variant; the second neutrality requirement (INC) from
18+
Case (2025) alongside extension stability (EXT)
19+
- `only_neutral_primitives_implies_INC` theorem; only-neutral substrates
20+
satisfy INC under existing axioms; no additional axiom required
21+
- `NS.DEF.INTERPRETIVELY_NON_COMMITTED` citation ID
22+
- `NS.THEOREM.ONLY_NEUTRAL_IMPLIES_INC` citation ID
23+
24+
### Changed
25+
26+
- `Neutral` updated from EXT alone to the full `EXT ∧ INC` conjunction.
27+
28+
**Breaking change**: all proofs unfolding `Neutral` updated accordingly.
29+
30+
- `framework_contestability_lemma` now proves both EXT and INC violations;
31+
- "deferred to 0.4.0" note removed
32+
- `NeutralSubstrate.lean` Section 2.2 updated with `InterpretivelyNonCommitted`
33+
- `NeutralSubstrate.lean` Section 2.4 updated with `only_neutral_primitives_implies_INC`
34+
35+
### Exports Added
36+
37+
- `InterpretivelyNonCommitted`
38+
- `only_neutral_primitives_implies_INC`
1339

1440
## [0.3.0] - 2026-05-01
1541

@@ -132,6 +158,7 @@ git tag -d vX.Z.Y
132158
git push origin :refs/tags/vX.Z.Y
133159
```
134160

135-
[Unreleased]: https://github.com/structural-explainability/se-theory-neutral-substrate/compare/v0.3.0...HEAD
161+
[Unreleased]: https://github.com/structural-explainability/se-theory-neutral-substrate/compare/v0.4.0...HEAD
162+
[0.4.0]: https://github.com/structural-explainability/se-theory-neutral-substrate/compare/v0.3.0...v0.4.0
136163
[0.3.0]: https://github.com/structural-explainability/se-theory-neutral-substrate/compare/v0.1.0...v0.3.0
137164
[0.1.0]: https://github.com/structural-explainability/se-theory-neutral-substrate/releases/tag/v0.1.0

CITATION.cff

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ cff-version: "1.2.0"
99
type: software
1010

1111
title: "SE Theory: Neutral Substrate"
12-
version: "0.3.0"
12+
version: "0.4.0"
1313
date-released: "2026-05-01"
1414

1515
authors:

NeutralSubstrate.lean

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,14 @@ internal and may change without notice.
3636
3737
### 2.2. Predicates
3838
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
39+
- `Neutral` extension stability and interpretive non-commitment holds
40+
- `Admissible` framework is internally consistent
41+
- `ExtensionStable` EXT:no admissible framework causes inconsistency
42+
- `InterpretivelyNonCommitted` INC: no primitive in the substrate is framework-variant
43+
- `containsCausalOrNormative` boolean test for non-neutral content
44+
- `extensionInconsistent` a framework denies a substrate primitive
45+
- `FrameworkVariant` admissible frameworks disagree about a primitive
46+
- `FrameworksContradict` one framework affirms what another denies
4647
4748
### 2.3. Axioms
4849
@@ -52,11 +53,18 @@ internal and may change without notice.
5253
5354
### 2.4 Theorems
5455
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
56+
- `ontological_neutrality_theorem` biconditional under both axioms
57+
- `not_neutral_if_causal_or_normative` lower bound; requires only
58+
`framework_relativity`
59+
- `neutral_if_only_neutral` upper bound; requires also
60+
`neutral_primitives_undisputed`
61+
- `only_neutral_primitives_implies_INC` only-neutral substrates satisfy INC;
62+
no additional axiom required
63+
- `framework_contestability_lemma` framework-variant primitives cannot
64+
appear in neutral substrates;
65+
proves both EXT and INC violations
66+
- `separate_stability` a neutral substrate is separately
67+
consistent with each of two mutually
6068
contradicting frameworks
6169
6270
### 2.5. Asymmetry Note (Normative)

NeutralSubstrate/Core.lean

Lines changed: 115 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -111,17 +111,6 @@ def extensionInconsistent (S : Ontology) (F : Framework) : Prop :=
111111
def ExtensionStable (S : Ontology) : Prop :=
112112
∀ F : Framework, Admissible F → ¬extensionInconsistent S F
113113

114-
/-- Neutrality is extension stability.
115-
116-
An ontology is neutral iff it can be extended by any admissible framework
117-
without revision or contradiction.
118-
119-
OBS: The paper also specifies INC (interpretive non-commitment).
120-
This formalization focuses on EXT (extension stability) as the
121-
mechanically sufficient condition for the main theorem.
122-
INC will be formalized in a future version alongside EXT. -/
123-
def Neutral (S : Ontology) : Prop := ExtensionStable S
124-
125114
/-- A primitive is framework-variant if admissible frameworks disagree about it:
126115
some affirm it, some deny it.
127116
@@ -136,6 +125,37 @@ def FrameworkVariant (p : Primitive) : Prop :=
136125
∃ F1 F2 : Framework, Admissible F1 ∧ Admissible F2 ∧
137126
F1.affirms p = true ∧ F2.denies p = true
138127

128+
/-- Interpretive non-commitment: no primitive in the substrate is framework-variant.
129+
130+
A substrate satisfies INC when every primitive it contains has truth
131+
conditions that are framework-invariant — no admissible framework
132+
affirms it while another denies it.
133+
134+
WHY: INC is the second neutrality requirement from Case (2025) alongside
135+
EXT (extension stability). Together they constitute full neutrality.
136+
A substrate satisfying INC makes no interpretive commitments at the
137+
foundational layer: it does not assert propositions whose truth depends
138+
on the conclusions of any particular interpretive framework.
139+
140+
OBS: For substrates where containsCausalOrNormative S = false,
141+
INC follows from neutral_primitives_undisputed alone —
142+
see only_neutral_primitives_implies_INC.
143+
No additional axiom is required. -/
144+
def InterpretivelyNonCommitted (S : Ontology) : Prop :=
145+
∀ p ∈ S, ¬FrameworkVariant p
146+
147+
/-- Neutrality is extension stability and interpretive non-commitment.
148+
149+
An ontology is neutral iff it can be extended by any admissible framework
150+
without revision or contradiction (EXT), and it does not assert any
151+
framework-variant proposition at the substrate layer (INC).
152+
153+
WHY: Both requirements are necessary. EXT alone is sufficient for the
154+
lower bound but the full paper theorem requires INC alongside EXT.
155+
See ontological_neutrality_theorem for the biconditional result. -/
156+
def Neutral (S : Ontology) : Prop :=
157+
ExtensionStable S ∧ InterpretivelyNonCommitted S
158+
139159
/-- Two frameworks mutually contradict when one affirms what the other denies.
140160
141161
Note: mutual contradiction does not affect admissibility.
@@ -264,6 +284,36 @@ theorem any_false_implies_none {α : Type} (l : List α) (pred : α → Bool) :
264284
-- REQ.CORE.THEOREMS
265285
-- The main results. Each theorem cites its proof strategy.
266286

287+
/-- THEOREM: Only-neutral substrate satisfies INC.
288+
289+
If an ontology contains only neutral primitives, it satisfies
290+
interpretive non-commitment.
291+
292+
WHY: Establishes that INC follows from neutral_primitives_undisputed
293+
alone, without requiring a new axiom. Used as a helper in the
294+
updated neutral_if_only_neutral proof.
295+
296+
Proof strategy:
297+
1. Take any p ∈ S and assume FrameworkVariant p for contradiction
298+
2. Extract F2 from FrameworkVariant — the framework that denies p
299+
3. any_false_implies_none shows p.kind = neutral
300+
4. neutral_primitives_undisputed shows F2 cannot deny p
301+
5. Contradiction with F2.denies p = true -/
302+
theorem only_neutral_primitives_implies_INC :
303+
∀ S : Ontology, containsCausalOrNormative S = false
304+
InterpretivelyNonCommitted S := by
305+
intro S h_only_neutral
306+
unfold InterpretivelyNonCommitted FrameworkVariant
307+
intro p hp_in_S
308+
intro ⟨_F1, F2, _hF1_adm, hF2_adm, _hF1_affirms, hF2_denies⟩
309+
have h_all_neutral := any_false_implies_none S _ h_only_neutral
310+
have hp_neutral_kind : (p.kind != PrimitiveKind.neutral) = false :=
311+
h_all_neutral p hp_in_S
312+
simp at hp_neutral_kind
313+
have h_not_denied := neutral_primitives_undisputed p hp_neutral_kind F2 hF2_adm
314+
rw [h_not_denied] at hF2_denies
315+
contradiction
316+
267317
/-- THEOREM: If an ontology contains causal or normative primitives, it is not neutral.
268318
269319
This is the lower bound of the main theorem.
@@ -272,24 +322,26 @@ theorem any_false_implies_none {α : Type} (l : List α) (pred : α → Bool) :
272322
are contested across admissible frameworks.
273323
274324
Proof strategy:
275-
1. Assume neutrality for contradiction
276-
2. Extract witness primitive p via any_true_implies_exists
277-
3. Show p.kind ≠ neutral from the boolean witness
278-
4. Apply framework_relativity to get F that denies p
279-
5. Neutrality of S says F cannot cause inconsistency
280-
6. But p ∈ S and F.denies p = true is exactly inconsistency
281-
7. Contradiction -/
325+
1. Assume neutrality (EXT ∧ INC) for contradiction
326+
2. Extract EXT conjunct from h_neutral
327+
3. Extract witness primitive p via any_true_implies_exists
328+
4. Show p.kind ≠ neutral from the boolean witness
329+
5. Apply framework_relativity to get F that denies p
330+
6. EXT of S says F cannot cause inconsistency
331+
7. But p ∈ S and F.denies p = true is exactly inconsistency
332+
8. Contradiction -/
282333
theorem not_neutral_if_causal_or_normative :
283334
∀ S : Ontology, containsCausalOrNormative S = true → ¬Neutral S := by
284335
intro S h_contains h_neutral
336+
have h_ext := h_neutral.1
285337
have h_exists := any_true_implies_exists S _ h_contains
286338
match h_exists with
287339
| ⟨p, hp_in_S, hp_kind⟩ =>
288340
have hp_not_neutral : p.kind ≠ PrimitiveKind.neutral := by
289341
intro h_eq
290342
simp [h_eq] at hp_kind
291343
have ⟨F, hF_adm, hF_denies⟩ := framework_relativity p hp_not_neutral
292-
have h_no_inconsist := h_neutral F hF_adm
344+
have h_no_inconsist := h_ext F hF_adm
293345
apply h_no_inconsist
294346
exact ⟨p, hp_in_S, hF_denies⟩
295347

@@ -301,32 +353,34 @@ theorem not_neutral_if_causal_or_normative :
301353
themselves contested across admissible frameworks.
302354
303355
Proof strategy:
304-
1. Unfold Neutral and ExtensionStable to expose the goal
305-
2. Take any admissible framework F
306-
3. Assume inconsistency for contradiction: ∃ p ∈ S, F.denies p = true
307-
4. any_false_implies_none shows every p ∈ S has kind = neutral
308-
5. neutral_primitives_undisputed shows F cannot deny that p
309-
6. Contradiction with the denial assumption -/
356+
1. Split Neutral into EXT ∧ INC and prove each conjunct
357+
2. EXT: unfold and proceed as before using neutral_primitives_undisputed
358+
3. INC: apply only_neutral_primitives_implies_INC directly -/
310359
theorem neutral_if_only_neutral :
311360
∀ S : Ontology, containsCausalOrNormative S = false → Neutral S := by
312361
intro S h_only_neutral
313-
unfold Neutral ExtensionStable extensionInconsistent
314-
intro F hF_adm
315-
intro ⟨p, hp_in_S, hF_denies⟩
316-
have h_all_neutral := any_false_implies_none S _ h_only_neutral
317-
have hp_neutral_kind : (p.kind != PrimitiveKind.neutral) = false :=
318-
h_all_neutral p hp_in_S
319-
simp at hp_neutral_kind
320-
have h_not_denied := neutral_primitives_undisputed p hp_neutral_kind F hF_adm
321-
rw [h_not_denied] at hF_denies
322-
contradiction
362+
constructor
363+
· -- EXT: extension stability
364+
unfold ExtensionStable extensionInconsistent
365+
intro F hF_adm
366+
intro ⟨p, hp_in_S, hF_denies⟩
367+
have h_all_neutral := any_false_implies_none S _ h_only_neutral
368+
have hp_neutral_kind : (p.kind != PrimitiveKind.neutral) = false :=
369+
h_all_neutral p hp_in_S
370+
simp at hp_neutral_kind
371+
have h_not_denied := neutral_primitives_undisputed p hp_neutral_kind F hF_adm
372+
rw [h_not_denied] at hF_denies
373+
contradiction
374+
· -- INC: interpretive non-commitment
375+
exact only_neutral_primitives_implies_INC S h_only_neutral
323376

324377
/-- THEOREM: Ontological Neutrality (biconditional)
325378
326379
An ontology is neutral if and only if it contains no causal or normative primitives.
327380
328381
This is the main result from Case (2025).
329382
It holds given framework_relativity and neutral_primitives_undisputed.
383+
Neutrality is now the full EXT ∧ INC conjunction.
330384
331385
NOTE: The two directions have different epistemic status.
332386
- Only-if (lower bound): follows from framework_relativity alone.
@@ -361,50 +415,51 @@ theorem ontological_neutrality_theorem :
361415
Formalizes the paper's Framework-Contestability Lemma (Case 2025, §4.2):
362416
a proposition whose truth conditions depend on interpretive framework
363417
conclusions cannot be a substrate commitment without violating
364-
extension stability.
418+
either EXT or INC.
365419
366-
NOTE: The paper states two conclusions from contestability:
367-
(1) EXT violated - formalized here
368-
(2) INC violated - deferred to 0.4.0 when INC is formalized
420+
Both violations are now formalized:
421+
(1) EXT violated: F2 denies p, but p ∈ S, producing inconsistency
422+
(2) INC violated: p is framework-variant, but S contains p
369423
370424
Proof strategy:
371-
1. Extract F2 from FrameworkVariant - the framework that denies p
372-
2. Apply h_neutral to F2 to get no-inconsistency claim
373-
3. Construct extensionInconsistent S F2 from p ∈ S and F2.denies p
374-
4. Contradiction -/
425+
1. Assume Neutral S (EXT ∧ INC) for contradiction
426+
2. EXT violation: extract h_ext, apply framework_relativity pattern
427+
via F2 from FrameworkVariant, construct extensionInconsistent
428+
3. INC violation: extract h_inc, apply to p and hp_in_S,
429+
apply h_variant directly for contradiction
430+
Note: either violation suffices; we use INC as it is most direct. -/
375431
theorem framework_contestability_lemma :
376432
∀ p : Primitive, FrameworkVariant p →
377433
∀ S : Ontology, p ∈ S → ¬Neutral S := by
378434
intro p h_variant S hp_in_S h_neutral
379-
obtain ⟨_F1, F2, _hF1_adm, hF2_adm, _hF1_affirms, hF2_denies⟩ := h_variant
380-
exact h_neutral F2 hF2_adm ⟨p, hp_in_S, hF2_denies⟩
435+
have h_inc := h_neutral.2
436+
exact h_inc p hp_in_S h_variant
381437

382438
/-- THEOREM: Separate Stability
383439
384440
A neutral substrate is separately consistent with each of two mutually
385441
contradicting frameworks.
386442
387443
Formalizes the paper's key observation (Case 2025, §4.1) that a neutral
388-
substrate need not reconcile contradicting frameworks - it must only
444+
substrate need not reconcile contradicting frameworks it must only
389445
avoid assertions that either framework rejects. The substrate's role
390446
is common-ground provision, not arbitration.
391447
392448
NOTE: FrameworksContradict is not used in the proof body.
393-
Neutrality implies stability under ALL admissible frameworks, which
394-
subsumes the two-framework case. The hypothesis is retained for
395-
fidelity to the paper's framing and to make the theorem applicable
396-
to the incident example pattern.
449+
The EXT conjunct of Neutral implies stability under ALL admissible
450+
frameworks, which subsumes the two-framework case. The hypothesis
451+
is retained for fidelity to the paper's framing.
397452
398453
Proof strategy:
399-
Neutrality of S directly implies ¬extensionInconsistent S F for any
400-
admissible F. Apply twice, once for F1 and once for F2. -/
454+
Extract EXT conjunct from Neutral S.
455+
Apply twice, once for F1 and once for F2. -/
401456
theorem separate_stability :
402457
∀ S : Ontology, Neutral S →
403458
∀ F1 F2 : Framework, Admissible F1 → Admissible F2 →
404459
FrameworksContradict F1 F2 →
405460
¬extensionInconsistent S F1 ∧ ¬extensionInconsistent S F2 := by
406461
intro S h_neutral F1 F2 hF1_adm hF2_adm _h_contradict
407-
exact ⟨h_neutral F1 hF1_adm, h_neutral F2 hF2_adm⟩
462+
exact ⟨h_neutral.1 F1 hF1_adm, h_neutral.1 F2 hF2_adm⟩
408463

409464

410465
-- ============================================================
@@ -428,9 +483,16 @@ theorem separate_stability :
428483
#check @FrameworkVariant
429484
-- Primitive → Prop
430485

486+
#check @InterpretivelyNonCommitted
487+
-- Ontology → Prop
488+
431489
#check @FrameworksContradict
432490
-- Framework → Framework → Prop
433491

492+
#check @only_neutral_primitives_implies_INC
493+
-- ∀ (S : Ontology), containsCausalOrNormative S = false →
494+
-- InterpretivelyNonCommitted S
495+
434496
#check @framework_contestability_lemma
435497
-- ∀ (p : Primitive), FrameworkVariant p → ∀ (S : Ontology), p ∈ S → ¬Neutral S
436498

NeutralSubstrate/Spec.lean

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,10 @@ def NS_ID_DEF_FRAMEWORK_VARIANT : String :=
7474
def NS_ID_DEF_FRAMEWORKS_CONTRADICT : String :=
7575
"NS.DEF.FRAMEWORKS_CONTRADICT"
7676

77+
/-- Cite when a regime depends on the definition of InterpretivelyNonCommitted. -/
78+
def NS_ID_DEF_INTERPRETIVELY_NON_COMMITTED : String :=
79+
"NS.DEF.INTERPRETIVELY_NON_COMMITTED"
80+
7781

7882
-- ============================================================
7983
-- AXIOMS
@@ -131,5 +135,10 @@ def NS_ID_THEOREM_FRAMEWORK_CONTESTABILITY : String :=
131135
def NS_ID_THEOREM_SEPARATE_STABILITY : String :=
132136
"NS.THEOREM.SEPARATE_STABILITY"
133137

138+
/-- Cite when a regime depends on the result that only-neutral substrates satisfy INC.
139+
This theorem confirms no new axiom is needed for the INC direction. -/
140+
def NS_ID_THEOREM_ONLY_NEUTRAL_IMPLIES_INC : String :=
141+
"NS.THEOREM.ONLY_NEUTRAL_IMPLIES_INC"
142+
134143

135144
end SE.NeutralSubstrate.Spec

0 commit comments

Comments
 (0)