Time, Space, and Uncertainty
So far, we have described systems in terms of facts, rules, effects, invariants, and context.
This gives us a rich way to model structure and behavior.
But one important dimension is still missing. So far, our system has been static.
Systems Evolve
In reality, systems change over time.
Ownership is not just true or false: Alice owns an asset now, Bob may own it later.
Permissions may expire, be granted temporarily, or depend on past events.
To capture this, we need to move from describing a single state to describing a sequence of states over time.
From States to Histories
Instead of asking "What is true?", we begin to ask "What was true, and what becomes true next?"
Our earlier rule — ownership can be transferred — can now be understood as a transition from one valid state to another.
A system is no longer a single snapshot. It is a history of states connected by transitions.
Time as a First-Class Concern
In many systems, time is handled indirectly: timestamps in databases, logs of events, ad-hoc expiration checks.
These approaches work, but they are fragmented and difficult to reason about globally.
In Spine, time is part of the model itself.
This allows us to express ideas like:
- Ownership at a given moment
- Sequences of valid transitions
- Constraints over time
Reasoning About Change
Once time is explicit, we can ask deeper questions:
- Can an asset ever have two owners at the same time?
- Does every transfer preserve ownership uniqueness across all future states?
- Can a sequence of valid actions lead to an invalid configuration later?
These are not just local checks. They are properties of entire evolutions of the system.
Introducing Uncertainty
Not all systems are deterministic.
In practice: actions may fail, outcomes may depend on external factors, and systems may be distributed or partially known.
For example: a transfer request may be rejected, approval may be probabilistic, and network delays may affect ordering.
This introduces uncertainty.
From Deterministic to Probabilistic Behavior
In a deterministic system, a given state and action lead to a single outcome.
In a system with uncertainty, a state and action may lead to multiple possible outcomes — each with some likelihood.
This changes how we think about behavior: not as a single path, but as a space of possible evolutions.
Space as Context
In addition to time and uncertainty, systems often depend on where things are.
For example: assets may exist in locations, actions may depend on proximity, and rules may vary across regions.
At first glance, this may seem like just another kind of data.
But it has deeper implications: distance may be defined differently depending on context, movement may have constraints, and relationships may depend on spatial structure.
This introduces another dimension: the interpretation of the system may depend on how space is modeled.
Bringing It Together
We now have a richer picture of our Asset System:
- It has structure (facts)
- It has behavior (rules and effects)
- It has correctness conditions (invariants)
- It varies by context
- It evolves over time
- It may involve uncertainty
- And it may depend on space
These are not separate concerns. They interact.
A System of Possible Worlds
One way to think about this is: a system defines a space of possible worlds.
Each world satisfies the constraints and reflects a valid state.
Transitions connect these worlds over time. Uncertainty introduces multiple possible paths. Context determines which worlds are relevant.
A Subtle Shift
This brings us to another shift in perspective: from describing a single system, to describing a space of possible systems and their evolution.
This is where modeling begins to overlap with reasoning.
Looking Ahead
We have now assembled most of the pieces: facts, rules, effects, invariants, context, time, space, and uncertainty.
But so far, we have described systems as a single evolving whole. Real systems are not monolithic — they are made of parts that operate concurrently, communicate, and coordinate.
In the next post, we will explore processes: how concurrent behaviors are modeled, how agents interact, and how the composition of behaviors preserves the system's properties.