mercurial.hierarchy.emergence module

Tripartite emergence criterion for new level detection (LADDER B.1).

class mercurial.hierarchy.emergence.EmergenceDetector(closure_threshold: float = 0.8, novelty_threshold: float = 0.7, incommensurability_threshold: float = 0.6)[source]

Bases: object

Detects when a pattern constitutes a genuine new emergent level.

Methods

descriptive_incommensurability(pattern[, ...])

Measure incommensurability: degree to which pattern requires distinct description.

is_emergent(pattern[, time_series, ...])

Apply tripartite criterion.

novel_causal_powers(pattern[, ...])

Measure novelty: degree to which pattern has irreducible causal influence.

operational_closure(pattern[, time_series])

Measure operational closure: degree to which pattern dynamics are self‑determined.

descriptive_incommensurability(pattern: Pattern, lower_level_pattern: Pattern | None = None) float[source]

Measure incommensurability: degree to which pattern requires distinct description.

Incommensurability = 1 - (information overlap / total information)

is_emergent(pattern: Pattern, time_series: ndarray | None = None, lower_level_pattern: Pattern | None = None) Tuple[bool, Dict[str, float]][source]

Apply tripartite criterion. Returns (is_emergent, {closure_score, novelty_score, incomm_score})

novel_causal_powers(pattern: Pattern, lower_level_pattern: Pattern | None = None) float[source]

Measure novelty: degree to which pattern has irreducible causal influence.

Novelty = 1 - (reduction error / total variance)

operational_closure(pattern: Pattern, time_series: ndarray | None = None) float[source]

Measure operational closure: degree to which pattern dynamics are self‑determined.

Closure = 1 - (mutual information between internal and external variables)