Dependency graph

Traces root causes and checks that explanations are well-founded rather than circular.

File
tools/dependency_graph.py
Group
Mathematics / ontology

Math as the foundational dependency — note

A short note on dependency_graph.py: a small DAG engine that formalizes "math as dependency" as "math is the foundational dependency," and checks the one condition such a claim must meet.


The claim, made precise

"Math as dependency" = math is the foundational dependency: the root that every other node transitively depends on, while it depends on nothing itself. On the sciences depends-on graph (biology → physics → math) the engine confirms exactly this:

  roots (depend on nothing)  : ['math']
  foundational (all depend on): ['math']
  base-first order            : math -> physics -> biology
  well-founded (acyclic)      : True

math is the unique root (a base case — it depends on nothing), it is foundational (every other node's transitive dependencies include it), and it comes first in the base-first topological order. That is the formal content of "math is the dependency."

The well-formedness condition it inherits

A dependency graph is only coherent if it is well-founded — acyclic. A cycle is a circular dependency, and the engine refuses it:

  A -> B -> C -> A   CircularDependency (not well-founded — the ungrounded-regress case)

This is the same discipline as the fixed-point governor, one level over: a dependency recursion must bottom out at roots that depend on nothing, or it never grounds. So "math is the base case" is not decoration — it is what makes the whole depends-on structure well-founded. If everything depends on something else with no root, nothing is ever finally supported; math being the root is what closes it.

Honest scope

depends-on here is a stylized relation, and the interesting philosophy lives in what it means:

  • whether physics depends on math or merely is expressed in it (Platonism vs instrumentalism), and whether biology depends on physics (reduction) or is autonomous (Mayr), are open questions;
  • making math the root reflects the classical formalist/reductionist view — and even "math depends on nothing" is itself a position (formalism: it rests on chosen axioms and logic; not nothing).

The engine formalizes and checks the structure of the claim — that it is a well-founded DAG with math as the unique root — not the truth of the relation. It is a general dependency-graph tool (any depends-on graph runs on it), stdlib-only, deterministic, and self-testing; the sciences graph is one contestable, explicitly-stated instance.