pub enum TimeKind {
Euclidean(EuclideanTime),
Entropic(EntropicTime),
Discrete(DiscreteTime),
Lorentzian(LorentzianTime),
}Expand description
An enumeration of supported time models for unified, heterogeneous temporal reasoning.
TimeKind provides a polymorphic abstraction over multiple time semantics
used in both physical and symbolic systems. It allows causal models,
simulations, or reasoning engines to switch between continuous, discrete,
and qualitative time representations in a unified way.
This is especially useful in hybrid environments where:
- Time may be physical in one subsystem and symbolic in another
- Models must support both discrete and continuous timelines
- Simulation layers require flexible temporal modes
§Use Cases
- Dynamic systems with configurable time semantics
- Spacetime graphs mixing physics and logic
- Abstract symbolic timelines
- Causal models across domains (AI, physics, engineering)
§Variants
-
Lorentzian(LorentzianTime)- Real-valued time coordinate used in special/general relativity
- Metric signature:
(-+++), t ∈ ℝ - Appears in causal structure and physical propagation
-
Euclidean(EuclideanTime)- Imaginary time (Wick-rotated), used in quantum/statistical physics
- Metric signature:
(++++) - Common in quantum field theory (QFT), path integrals, and lattice simulations
-
Discrete(DiscreteTime)- Integer-valued ticks or steps (e.g., for simulation time, state machines)
- Unitless or context-dependent
- Used in agent-based models, control systems, and RL environments
§Example
use deep_causality::*;
let lorentz = TimeKind::Lorentzian(LorentzianTime::new(1, TimeScale::Second, 3.14));
let discrete = TimeKind::Discrete(DiscreteTime::new(2, TimeScale::Second, 42));
println!("L: {}, ID: {}", lorentz, lorentz.id());
println!("D: {}, ID: {}", discrete, discrete.id());§Trait Compatibility
- Implements
Identifiablebased on the inner ID - Implements
Displayfor readable output - Can be extended to support
Temporal<f64>andTemporal<u64>
§See also
LorentzianTime,EuclideanTime,DiscreteTime,SymbolicTimeSpaceKindfor spatial equivalentsSpacetimeIntervalfor reasoning over separation or causality
§Design Note
For models that need a single time field but must support multiple
representations of time (e.g., symbolic vs physical), TimeKind provides
a principled and type-safe solution.
Variants§
Euclidean(EuclideanTime)
Imaginary-time axis for quantum/statistical models via Wick rotation.
Entropic(EntropicTime)
Entropic time for emergent causal models via entropy.
Discrete(DiscreteTime)
Discrete tick-based time (steps, iterations, simulation frames).
Lorentzian(LorentzianTime)
Real-valued coordinate time in Lorentzian (causal, relativistic) geometry.