antecedent
Antecedent is an identification-first causal inference engine. This crate is the day-1 Rust facade: it takes an analysis from causal structure through identification, estimation, and refutation — for static and temporal queries, with logical/physical planning — without silently treating discovered graphs as ground truth.
Use it when you need a causal effect you can defend: identification is evaluated before anything is estimated, refuters run against the estimate, and uncertainty about the causal graph (equivalence classes, graph posteriors) is carried through to the effect instead of being resolved by fiat.
= "0.1"
use *;
let result = builder
.data
.graph
.query
.build?
.run?;
// result.effect(), plus identification status, assumptions,
// refutation outcomes, and provenance.
A complete compiling example (schema → data → DAG → query → run) is in the
crate docs; runnable examples live in
examples/.
The same engine powers the Python package
(pip install antecedent).
Beyond effect estimation, the facade covers causal discovery (PC, GES, LiNGAM, NOTEARS, FCI, the PCMCI family, Bayesian graph posteriors), interventional sampling and counterfactuals via structural causal models, attribution and root-cause analysis, sensitivity analysis, experimental-design ranking, and incremental causal state for online workflows.
Supporting libraries are antecedent-* crates on crates.io and are
public dependencies of this facade (part of the 0.1 semver surface). The
Python extension (antecedent-py) is not published to crates.io.
See the workspace root README
and CHANGELOG.md. 0.1.x may still introduce breaking changes.