InfraCausality

[LLM Generated]
Minimal model of special relativity on oriented graphs: events are vertices, causal order is reachability, observers are chains, and light rays are distinguished walks. Bondi k-calculus, the EPS axioms, and Knuth-style kinematics are rebuilt combinatorially.

Setup

Install the paclet from the Wolfram Cloud. The substrates are a random causal graph and an acyclically oriented grid — the directed cousin of the grids in the shared example-graphs notebook.
PacletInstall["https://www.wolframcloud.com/obj/hajek_pavel/InfraCausality.paclet",ForceVersionInstall->True];​​Needs["WolframInstitute`InfraCausality`"]
SeedRandom[3];​​g=RandomCausalGraph[{16,32}];​​gridDag=DirectedGraph[GridGraph[{4,4}],"Acyclic"];

Function reference

Causal graphs and chains

Function
Description
RandomCausalGraph[{n, m}]
a random connected DAG with n events and m causal edges, layered as a causal set
GetSources[g]
events with no causal past (in-degree 0)
GetSinks[g]
events with no causal future (out-degree 0)
FindChain[g, n]
n maximal chains (worldlines); FindChain[g, v1, v2] between fixed events; Method "Longest" or "Diverse"
MonotoneQ[path1, path2, f]
tests EPS axiom D1: f preserves the chain order from path1 to path2

Infra objects

Function
Description
InfraChain[{chains}]
multi-realisation wrapper for ordered chains; accessors "Realisations", "Length", "Expand", "First"
InfraLightRay[{sets}]
wrapper for vertex sets on null geodesics
InfraLightCone[{sets}]
wrapper for forward or backward cone vertex sets
InfraCausalInterval[{sets}]
wrapper for causal-interval vertex sets
InfraEvent[{v}]
singleton wrapper for events
InfraChainQ, InfraLightRayQ, InfraLightConeQ, InfraCausalIntervalQ, InfraEventQ
the matching predicates

Light cones and causal intervals

Function
Description
ForwardLightCone[g, v, len]
the subgraph of events reachable from v — the discrete J+(v)
BackwardLightCone[g, v, len]
the subgraph of events that reach v — the discrete J-(v)
CausalInterval[g, v1, v2]
the subgraph of events between v1 and v2 in the causal order
ChainCausalInterval[g, c]
the causal closure of a chain: events both reachable from and reaching c
OutgoingLightRays[g, v]
events on outgoing null geodesics from v: no overtaking within the forward cone
IncomingLightRays[g, v]
events on incoming null geodesics into v — the time reverse

Universal time and extremal events

Function
Description
UniversalFoliation[g]
partition of events by longest chain length from the sources — simultaneity slices
UniversalTime[g]
the slice index of every event as an Association
MaximalAbsorber[g]
per slice, the events with the largest causal past
MaximalEmitter[g]
per slice, the events with the largest causal future

EPS message and echo functions

Function
Description
MultiMessageFunction[g, path1, path2]
for each event on path1, the events on path2 reached by an outgoing light ray
FindMessageFunction[g, path1, path2]
all monotone single-valued selections — the EPS message maps
MultiEchoFunction[g, path1, path2]
the set-valued round trip path1 to path2 and back
FindEchoFunction[g, path1, path2]
all monotone single-valued echo maps
EchoGraph[echoFn]
an echo map as a directed graph from each event to its images

Knuth kinematics

Function
Description
ChainProjection[g, source, target]
fraction of source events whose forward reach lands in target; Method "Cone" or "LightRays"
ChainLightReach[g, c]
the joint future light front of a chain
InfraEnergy[p, q]
(p + q)/2 from two light-cone projections
InfraMomentum[p, q]
(p - q)/2
InfraMass[p, q]
Sqrt of the absolute squared interval p q
InfraInterval[p, q]
the squared interval p q = E^2 - P^2
InfraVelocity[p, q]
(p - q)/(p + q)
InfraKinematics[g, ref, targets]
tabulates all Knuth scalars for a reference chain against target chains

Bondi k-calculus

Function
Description
KFactor[v]
the Bondi k-factor Sqrt[(1+v)/(1-v)]; angular form KFactor[v, phi]
VelocityFromK[k]
(k^2 - 1)/(k^2 + 1)
RapidityFromK[k]
Log[k]
Rapidity[v]
ArcTanh[v]
LorentzGamma[v]
(k + 1/k)/2
OutgoingRatio[v, phi]
arc-length ratio from Alice's emission to Bob's reception
IncomingRatio[v, phi]
arc-length ratio from Bob's emission to Alice's reception
ProperTimeScale[v, phi]
ratio of proper time to Euclidean arc-length on Bob's worldline
LightDirection[phi, rightgoing]
unit vector of a light ray at angle phi to the vertical
LightZigzag[v, s0, n, phi]
n reflection events of light bouncing between Alice and Bob
WorldlineAngle[v, phi]
the Euclidean angle of Bob's worldline against Alice's
WorldlineDirection[v, phi]
unit direction of Bob's worldline
WorldlineNormal[v, phi]
in-plane normal to Bob's worldline
WorldlinePoint[v, s, phi]
point on Bob's worldline at arc-length s
WorldlinePointAtProperTime[v, tau, phi]
point on Bob's worldline at proper time tau
SimultaneityLine[v, s, phi, extent]
Bob's simultaneity line at arc-length s
RadarCoordinatesFromAlice[event, phi]
Alice's radar time and distance for a point event

Bondi constructions

Function
Description
BondiClock[v, n]
worldlines with a light signal bouncing n times; ticks show proper time
DopplerConstruction[v, n]
n light pulses from Alice to Bob showing the k-factor as pulse spacing
TimeDilationConstruction[v]
the radar construction illustrating gamma = (k + 1/k)/2
SimultaneityConstruction[v]
overlaid simultaneity lines showing relativity of simultaneity
LengthContractionConstruction[v]
radar measurement of a moving rod yielding L/gamma
VelocityAdditionConstruction[v1, v2]
three worldlines showing k-factor multiplication
LightClockConstruction[v, n]
Bob's transverse light clock with n bounces
BondiExplorer[]
interactive Manipulate over all seven constructions

Visualization

Function
Description
VisualizeLightRays[g]
click an event to highlight its outgoing and incoming light rays
VisualizeFoliatedCausalGraph[g, foliation, chains]
foliation as colored slices with optional chains
VisualizeMessageFunction[g, path1, path2]
click an event on path1 to see its message images on path2
VisualizeEchoFunction[g, path1, path2]
static overlay of the echo function

Causal graphs and chains

◼
  • The substrate is a random directed acyclic graph playing the role of a causal set; chains are the worldlines of observers.
  • g
    chains=FindChain[g,2]
    {{1,2,7,12,13,15},{1,2,6,12,13,15}}

    Light cones and causal intervals

    ◼
  • The forward light cone of an event is everything it can causally influence; the causal interval of two events is the diamond between them.
  • ◼
  • Outgoing light rays are the no-overtaking boundary of the forward cone.
  • HighlightGraph[g,ForwardLightCone[g,First[GetSources[g]],3]]

    Universal time and foliation

    ◼
  • The universal foliation layers the causal graph into simultaneity slices; universal time is the slice index.
  • ◼
  • Maximal absorbers are the most-informed events per slice.
  • ◼
  • The same machinery applies to the oriented grid, the discrete causal diamond.
  • EPS message and echo functions

    ◼
  • Following EPS, the message function sends each event on the first worldline to the events on the second that it can signal to; monotone selections encode the chronological order.
  • ◼
  • The echo function is the round trip; its graph is the light-signal bookkeeping of radar measurements.
  • Knuth kinematics

    ◼
  • Two chain projections play the role of light-cone coordinates; energy, momentum, mass, interval, and velocity are their combinations.
  • Bondi k-calculus

    ◼
  • The k-factor is the combinatorial Doppler ratio; velocity, rapidity, and time dilation follow from it algebraically.
  • Bondi constructions

    ◼
  • Interactive Minkowski-diagram constructions render the classical thought experiments; BondiExplorer wraps all seven in one Manipulate.
  • Learn more

    The paclet lives at github.com/WolframInstitute/InfraCausality. It is actively developed, experimental research code. Ready-made substrates: the example-graphs notebook.