Skip to content

Commit 3672ae8

Browse files
Clarify state definitions and authority in CrypSA
Updated definitions and clarifications regarding state types and their authority in CrypSA. Enhanced the structure and language for better understanding.
1 parent 3885c42 commit 3672ae8

1 file changed

Lines changed: 72 additions & 40 deletions

File tree

architecture/CrypSA_State_Model.md

Lines changed: 72 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ This document defines the different forms of **state** in CrypSA.
44

55
It clarifies:
66

7-
* what counts as **truth**
7+
* what is **truth**
88
* what is **derived**
99
* what is **local to observers**
1010
* what is **interpretation or experience**
@@ -15,12 +15,12 @@ Understanding these distinctions is critical to implementing CrypSA correctly.
1515

1616
## 📜 Authority Level
1717

18-
The `/spec` directory is the **authoritative definition of runtime behavior**.
18+
This document is part of `/spec` and defines **state structure and behavior**.
1919

20-
Architecture documents explain the system.
21-
The spec defines how it must behave.
20+
👉 For the authoritative definition of truth vs state, see:
21+
`CrypSA_Truth_vs_State.md`
2222

23-
If there is any conflict, **the spec takes precedence**.
23+
If there is any conflict, **`CrypSA_Truth_vs_State.md` takes precedence**.
2424

2525
---
2626

@@ -30,25 +30,53 @@ CrypSA separates **canonical truth** from all other forms of state.
3030

3131
This document exists to:
3232

33+
* define categories of state
3334
* prevent confusion between state types
3435
* protect the integrity of canonical truth
3536
* guide implementation decisions
3637
* ensure consistent mental models across contributors
3738

3839
---
3940

41+
## Defines
42+
43+
* categories of state
44+
* authority of each state type
45+
* relationship between truth and state
46+
47+
---
48+
49+
## Does Not Define
50+
51+
* validation rules
52+
* invariant definitions
53+
* replay implementation details
54+
* observer implementation strategies
55+
56+
---
57+
4058
## Core Principle
4159

42-
> In CrypSA, **canonical event history is the only source of truth**.
43-
> All other state is derived, local, or interpretive.
60+
> Canonical event history is the source of truth.
61+
> All state, including derived canonical state, is a product of replay and is not itself authoritative.
62+
63+
---
64+
65+
## Non-Negotiable Rule
66+
67+
State is never truth.
68+
69+
No form of state in CrypSA is authoritative.
70+
71+
Only canonical event history defines truth.
4472

4573
---
4674

4775
## State Categories
4876

4977
CrypSA defines five primary categories of state:
5078

51-
1. Canonical Event History
79+
1. Canonical Event History (Truth)
5280
2. Derived Canonical State
5381
3. Observer Local State
5482
4. Predicted (Speculative) State
@@ -69,7 +97,7 @@ It is:
6997

7098
* append-only
7199
* immutable
72-
* globally authoritative
100+
* authoritative within the system context
73101

74102
It is controlled exclusively by:
75103

@@ -92,13 +120,14 @@ Canonical event history defines:
92120

93121
Derived canonical state is:
94122

95-
* the current world state
123+
* a reconstructed representation of the system
96124
* produced by replaying canonical event history
97125

98126
It is:
99127

100-
* deterministic
128+
* deterministic when replayed against canonical event history under the same validation context
101129
* reconstructable
130+
* discardable
102131
* not authoritative
103132

104133
---
@@ -113,7 +142,7 @@ It is:
113142

114143
### Role
115144

116-
Derived canonical state is used for:
145+
Derived canonical state is used as:
117146

118147
* validation context
119148
* simulation reference
@@ -142,8 +171,8 @@ It includes:
142171
### Properties
143172

144173
* not authoritative
145-
* may diverge from canonical truth
146-
* may be incomplete or approximate
174+
* may temporarily diverge from derived canonical state during reconciliation
175+
* may be incomplete or approximate representations
147176

148177
---
149178

@@ -161,7 +190,7 @@ Observer local state enables:
161190

162191
Observers may simulate freely, but:
163192

164-
> local state does not define truth.
193+
> Local state does not define truth.
165194
166195
---
167196

@@ -237,43 +266,46 @@ This state determines:
237266

238267
> Interpretation does not change truth — it changes perception.
239268
269+
Lenses do not influence validation or canonical outcomes.
270+
240271
---
241272

242273
## State Flow
243274

244-
The relationship between state types can be visualized as:
275+
The relationship between state types:
245276

246-
```text id="5qk2zp"
277+
```text
247278
Canonical Event History (Truth)
248279
↓ (Replay)
249280
Derived Canonical State
250281
↓ (Used by validation and observers)
251282
Observer Local State (includes predicted state)
252283
↓ (Adapters + Lenses)
253284
Interpreted / Experience State
254-
```
285+
````
255286
256287
---
257288
258289
## Authority Boundaries
259290
260-
| State Type | Authority | Can Modify Truth? |
261-
| ----------------------- | --------------- | ----------------- |
262-
| Canonical Event History | Validator | Yes |
263-
| Derived Canonical State | System (Replay) | No |
264-
| Observer Local State | Observer | No |
265-
| Predicted State | Observer | No |
266-
| Interpreted State | Observer | No |
291+
| State Type | Authority | Can Modify Truth? |
292+
| ----------------------- | -------------- | ----------------- |
293+
| Canonical Event History | Validator | Yes |
294+
| Derived Canonical State | Replay Process | No |
295+
| Observer Local State | Observer | No |
296+
| Predicted State | Observer | No |
297+
| Interpreted State | Observer | No |
267298
268299
---
269300
270301
## Key Rules
271302
272303
1. **Only canonical event history is truth**
273-
2. **All canonical state must be derivable from canonical events**
274-
3. **Observers may simulate, but not define truth**
275-
4. **Predicted state must reconcile with canonical outcomes**
276-
5. **Interpretation must not mutate canonical data**
304+
2. **All state must be derivable from canonical event history**
305+
3. **State is always non-authoritative**
306+
4. **Observers may simulate, but not define truth**
307+
5. **Predicted state must reconcile with canonical outcomes**
308+
6. **Interpretation must not mutate canonical data**
277309
278310
---
279311
@@ -289,10 +321,10 @@ It is the only mechanism by which:
289321
290322
* canonical event history may change
291323
292-
All other state types:
324+
All state:
293325
294-
* depend on this process
295-
* do not influence truth directly
326+
* depends on this process
327+
* does not influence truth directly
296328
297329
---
298330
@@ -305,8 +337,8 @@ Replay:
305337
306338
Replay is:
307339
308-
* deterministic
309-
* foundational to reconstruction
340+
* deterministic when applied to canonical event history under the same validation context
341+
* the foundation of reconstruction
310342
311343
---
312344
@@ -318,12 +350,12 @@ Adapters:
318350
319351
Lenses:
320352
321-
* determine meaning and visibility
353+
* interpret canonical and local data into meaning and experience
322354
323355
Neither:
324356
325357
* define truth
326-
* modify canonical state
358+
* modify canonical event history
327359
328360
---
329361
@@ -337,17 +369,17 @@ Implementations may:
337369
338370
However:
339371
340-
* canonical event history must remain the source of truth
341-
* all derived state must remain consistent with replay
372+
* canonical event history remains the source of truth
373+
* all state must remain consistent with replay
342374
343375
---
344376
345377
## Summary
346378
347379
CrypSA defines multiple forms of state, but only one form of truth:
348380
349-
* **canonical event history** is authoritative
350-
* all other state is derived, local, or interpretive
381+
* **canonical event history is authoritative**
382+
* all state is derived, local, or interpretive
351383
352384
This separation ensures:
353385

0 commit comments

Comments
 (0)