Saltar al contenido
iCrisol

CSE-Z · Native causal reasoning

It does not associate: it simulates.

An LLM claims that X causes Y because it read it written a million times. Crisol does not trust frequency. It intervenes on its own model of the world, simulates what would happen if the cause did not exist, and only then decides. Causality is not a layer at the end: it is the core of reasoning.

4
do() interventions
512
physical-causal invariants
3
possible verdicts
~5 ms
real cost per dream

The difference between repeating and understanding.

Correlation and cause look alike in the data, but they diverge the moment the world changes. Only a system that intervenes on its model can tell them apart.

Conventional LLM

Asserts because it read it

It has seen "the rooster crows and then dawn comes" a million times, so it predicts the crow brings the sunrise. Statistics cannot distinguish the order of the world from textual coincidence. If reality shifts, the model keeps repeating the old pattern.

Crisol · CSE-Z

Decides because it simulates

It runs do(silence rooster) over its causal graph and observes the sun rising all the same. Conclusion: the crow is not the cause. The reasoning is counterfactual — it asks "what if not?" before asserting anything.

The do() calculus · intervention operators

Four ways to interrogate the world.

CSE-Z does not observe passively: it acts on its model and measures what changes. Each operator isolates a different aspect of the link between cause and effect.

do_elimination

Elimination

Deletes a variable from the graph and reruns the simulation. If the effect persists without it, that variable was never a cause — it was correlated noise.

do(remove rain) → the street is still wet → rain was not the cause: the sprinkler was.

do_amplification

Amplification

Intensifies a candidate cause and measures the effect's response. A genuine cause scales proportionally and stays consistent with the physical invariants.

do(double the force) → acceleration doubles → causal link confirmed by F = m·a.

do_mediator_block

Mediator block

Interrupts the intermediate node the effect travels through. If cutting it makes the effect vanish, the cause acted via that mediator, not directly.

do(block the smoke) → the alarm stays silent → fire triggered the alarm through smoke.

do_substitution

Substitution

Replaces one cause with another of the same kind and compares effects. It separates the specific cause from the underlying causal mechanism.

do(swap water for oil) → the float behaves differently → density was the factor, not the liquid.

The validator that rejects the impossible.

Before accepting a causal chain, the NOEValidator confronts it with 512 physical-causal invariants — 256 active in the v1.0 Mini release. These are laws the world does not break: the effect does not precede the cause, mass is conserved, energy is not created from nothing. Anything that violates an invariant is rejected before it reaches generation.

GENUINE

The do() intervention alters the effect coherently and no physical-causal invariant is violated. There is a mechanism, not a coincidence.

CORRELATIONAL

The pattern shows up in the data, but interventions do not confirm it: remove the supposed cause and the effect survives. Association, not causation.

INVALID

The proposed chain breaks an invariant: the effect precedes the cause, mass is not conserved, energy appears from nowhere. Rejected by construction.

Simulate an intervention

Pick a variable and apply a do() operator. The graph shows how the effect propagates and which relations survive the intervention.

0.920.810.740.580.690.40StormWetgroundSlipMatchcanceledSprinkler
Legend:GenuineCorrelationalInvalid

Selected variable

Storm

Observational state. Correlations and causes are still entangled.

Relation verdict

Select an edge (relation) to read its verdict, or apply a do() on the chosen variable.

Confounder detected

"Storm" causes both "Wet ground" and "Match canceled". That common cause creates a spurious correlation between them. Only the do() intervention unmasks it.

The verdict is not decoration: it governs whether the answer is emitted, hedged or discarded. It is one of the five layers of defense behind anti-hallucination integrity →

Automatic causal dream · REM-like process

The Crisol that dreams.

While you are away, Crisol does not switch off: it reorganizes. A background process — analogous to REM sleep — revisits what you have lived through together, subjects the relationships to do() interventions, and gradually consolidates the causal graph of your world. It learns what causes what in your context, not in a global average of the internet.

Throttled out of respect for your machine

The dream never competes with you. It steps aside instantly the moment you need the machine:

  • You are using the machine The dream pauses: your work always comes first.
  • GPU above 70% It yields cycles to your real task and resumes when load drops.
  • Battery below 20% It spends no autonomy: it waits until you are on power.

Almost invisible cost

Each dream is tiny: around 5 milliseconds of compute. Summed across an entire day, they amount to barely one or two minutes of GPU. The causal graph keeps growing without you noticing any cost at all.

~5 ms
per individual dream
~1–2 min
of GPU per day, in total

Reasoning is only one piece

A Crisol that reasons in causes needs knowledge to import and a place to bring it from.

Causality lives inside a larger organism: the ecosystem that packages, transports and safeguards knowledge.

Explore the Custodia ecosystem →