# BRIDGE/SKFM geometric causal discovery

- **Registry ID:** `lincs-bridge-skfm-family`
- **Book:** Machine Learning from Enforcing Compositionality
- **Documentation status:** `public-code-linked`
- **Experimental status:** controlled synthetic and benchmark studies
- **Canonical documentation URL:** https://categorical-ai.sridharmahadevan.com/experiments/lincs-bridge-skfm-family

## Purpose

Random-DAG, injected-confounding, Sachs, screening, graph extraction, and runtime experiments.

## Book location

- Chapter 11: Geometric Causal Discovery

## Documented studies

- Random-DAG closure calibration
- Injected latent-confounding recovery
- Sachs benchmark study
- Lie-bracket screening and graph extraction
- Runtime and robustness comparison

## Associated code packages

- `lincs-bridge-skfm` — [LINCS BRIDGE/SKFM package](https://github.com/sridharmahadevan/LINCS/tree/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm); **public**; Apache-2.0. Lie-bracket screening and SKFM causal-discovery experiments.

## Start here

These concrete files are selected from the complete resolved source surface. They orient the reader; they are not a claim that every family is independently reproducible.

- **runner · public-pinned** — [`lincs-bridge-skfm:kan_do_dcdi/experiments/bridge_hybrid_random_dag.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/kan_do_dcdi/experiments/bridge_hybrid_random_dag.py). Open the pinned public source file.
- **runner · public-pinned** — [`lincs-bridge-skfm:kan_do_dcdi/experiments/bridge_hybrid_random_dag_latent.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/kan_do_dcdi/experiments/bridge_hybrid_random_dag_latent.py). Open the pinned public source file.
- **runner · public-pinned** — [`lincs-bridge-skfm:kan_do_dcdi/experiments/info_geometry_exp1_chain.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/kan_do_dcdi/experiments/info_geometry_exp1_chain.py). Open the pinned public source file.
- **runner · public-pinned** — [`lincs-bridge-skfm:kan_do_dcdi/experiments/info_geometry_exp2_latent_fork.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/kan_do_dcdi/experiments/info_geometry_exp2_latent_fork.py). Open the pinned public source file.

## Entry points

- `kan_do_dcdi/experiments/`

## Result artifacts

- `package reports and benchmark summaries`

## Resolved code surfaces (30)

- **runner** — [`lincs-bridge-skfm:kan_do_dcdi/experiments/bridge_hybrid_random_dag.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/kan_do_dcdi/experiments/bridge_hybrid_random_dag.py)
- **runner** — [`lincs-bridge-skfm:kan_do_dcdi/experiments/bridge_hybrid_random_dag_latent.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/kan_do_dcdi/experiments/bridge_hybrid_random_dag_latent.py)
- **runner** — [`lincs-bridge-skfm:kan_do_dcdi/experiments/info_geometry_exp1_chain.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/kan_do_dcdi/experiments/info_geometry_exp1_chain.py)
- **runner** — [`lincs-bridge-skfm:kan_do_dcdi/experiments/info_geometry_exp2_latent_fork.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/kan_do_dcdi/experiments/info_geometry_exp2_latent_fork.py)
- **runner** — [`lincs-bridge-skfm:kan_do_dcdi/experiments/info_geometry_latent_dag_motifs.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/kan_do_dcdi/experiments/info_geometry_latent_dag_motifs.py)
- **runner** — [`lincs-bridge-skfm:kan_do_dcdi/experiments/info_geometry_latent_demo.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/kan_do_dcdi/experiments/info_geometry_latent_demo.py)
- **runner** — [`lincs-bridge-skfm:kan_do_dcdi/experiments/info_geometry_pruned_size_sweep.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/kan_do_dcdi/experiments/info_geometry_pruned_size_sweep.py)
- **runner** — [`lincs-bridge-skfm:kan_do_dcdi/experiments/info_geometry_pruned_stress_test.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/kan_do_dcdi/experiments/info_geometry_pruned_stress_test.py)
- **runner** — [`lincs-bridge-skfm:kan_do_dcdi/experiments/info_geometry_s9.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/kan_do_dcdi/experiments/info_geometry_s9.py)
- **runner** — [`lincs-bridge-skfm:kan_do_dcdi/experiments/info_geometry_sachs.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/kan_do_dcdi/experiments/info_geometry_sachs.py)
- **runner** — [`lincs-bridge-skfm:kan_do_dcdi/experiments/j_sheaf_regimes.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/kan_do_dcdi/experiments/j_sheaf_regimes.py)
- **runner** — [`lincs-bridge-skfm:kan_do_dcdi/experiments/j_sheaf_regimes_fast.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/kan_do_dcdi/experiments/j_sheaf_regimes_fast.py)
- **runner** — [`lincs-bridge-skfm:kan_do_dcdi/experiments/kan_do_info_geometry_pruned.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/kan_do_dcdi/experiments/kan_do_info_geometry_pruned.py)
- **runner** — [`lincs-bridge-skfm:kan_do_dcdi/experiments/kan_do_lincs.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/kan_do_dcdi/experiments/kan_do_lincs.py)
- **runner** — [`lincs-bridge-skfm:kan_do_dcdi/experiments/kan_do_pisa2022.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/kan_do_dcdi/experiments/kan_do_pisa2022.py)
- **runner** — [`lincs-bridge-skfm:kan_do_dcdi/experiments/kan_do_s9.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/kan_do_dcdi/experiments/kan_do_s9.py)
- **runner** — [`lincs-bridge-skfm:kan_do_dcdi/experiments/kan_do_s9_multivar.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/kan_do_dcdi/experiments/kan_do_s9_multivar.py)
- **runner** — [`lincs-bridge-skfm:kan_do_dcdi/experiments/kan_do_synth_linear.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/kan_do_dcdi/experiments/kan_do_synth_linear.py)
- **runner** — [`lincs-bridge-skfm:kan_do_dcdi/experiments/lie_space_intervention_smoke.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/kan_do_dcdi/experiments/lie_space_intervention_smoke.py)
- **runner** — [`lincs-bridge-skfm:kan_do_dcdi/experiments/sachs_miniexp.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/kan_do_dcdi/experiments/sachs_miniexp.py)
- **runner** — [`lincs-bridge-skfm:kan_do_dcdi/experiments/sachs_miniexp_enhanced.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/kan_do_dcdi/experiments/sachs_miniexp_enhanced.py)
- **runner** — [`lincs-bridge-skfm:kan_do_dcdi/experiments/sheaf_glue.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/kan_do_dcdi/experiments/sheaf_glue.py)
- **runner** — [`lincs-bridge-skfm:kan_do_dcdi/experiments/skfm_algorithm2_compare.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/kan_do_dcdi/experiments/skfm_algorithm2_compare.py)
- **runner** — [`lincs-bridge-skfm:kan_do_dcdi/experiments/skfm_bridge_runtime_scaling.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/kan_do_dcdi/experiments/skfm_bridge_runtime_scaling.py)
- **runner** — [`lincs-bridge-skfm:kan_do_dcdi/experiments/skfm_stage1_compare.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/kan_do_dcdi/experiments/skfm_stage1_compare.py)
- **runner** — [`lincs-bridge-skfm:kan_do_dcdi/experiments/synthetic_linear_gaussian.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/kan_do_dcdi/experiments/synthetic_linear_gaussian.py)
- **runner** — [`lincs-bridge-skfm:tces/__init__.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/tces/__init__.py)
- **runner** — [`lincs-bridge-skfm:tces/tces_both_and_compare.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/tces/tces_both_and_compare.py)
- **runner** — [`lincs-bridge-skfm:tces/tces_run_experiment.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/tces/tces_run_experiment.py)
- **runner** — [`lincs-bridge-skfm:tces/topos_regularizers.py`](https://github.com/sridharmahadevan/LINCS/blob/c78bfe50ded8d40db90c614e40dd2e0e146a9875/packages/bridge_skfm/tces/topos_regularizers.py)

## Frozen run records (0)

- No frozen run-level record is registered. Consult the result-artifact list and evidence boundary above for the exact surviving evidence; absence of a run record is not evidence that no experiment was run.

## Evidence boundary

Lie-bracket nonclosure is a diagnostic under registered semantics, not unique identification of a latent confounder.

A code or artifact link establishes traceability. It does not by itself establish independent reproduction, statistical adequacy, correctness, or support for a claim beyond this boundary.
