pyphi.formalism.iit4.SystemIrreducibilityAnalysis#
- class pyphi.formalism.iit4.SystemIrreducibilityAnalysis(phi, partition, normalized_phi=0, cause=None, effect=None, system_state=None, current_state=None, node_indices=None, node_labels=None, intrinsic_differentiation=None, reasons=None, runner_up=None, partition_margin=None, signed_phi=None, signed_normalized_phi=None, config=None, provenance=None)[source]#
Bases:
HasProvenance,Displayable,OrderableByPhi,ToPandasMixin,SerializableSystem-level integrated information.
phiis the non-negative integrated-information value defined by Eqs. 19-20 (the|·|+operator applied to the raw integration).signed_phiis the raw value before clamping; when negative, it indicates preventative causation that the clamp hides. Construction accepts the signed value asphiand__post_init__writes the clamped value tophiwhile preserving the raw value onsigned_phi.normalized_phiandsigned_normalized_phifollow the same pattern.partition_marginis the gap in (clamped) normalized φ between the MIP and the best competing partition, computed at selection (before the intrinsic-information requirement is applied); it is zero when a competitor ties andNonewhen there was no competitor or the partition sweep stopped early on a reducible partition (in which case no exact margin exists). Setshortcircuit_sia=Falseto evaluate every partition and obtain an exact margin even when φ_s = 0.- Parameters:
phi (float | DistanceResult)
partition (DirectedBipartition | NullCut)
normalized_phi (float)
cause (RepertoireIrreducibilityAnalysis | None)
effect (RepertoireIrreducibilityAnalysis | None)
system_state (SystemStateSpecification | None)
node_labels (NodeLabels | None)
intrinsic_differentiation (dict | None)
reasons (list | None)
runner_up (Any)
partition_margin (float | None)
signed_phi (float | DistanceResult | None)
signed_normalized_phi (float | DistanceResult | None)
config (ConfigSnapshot | None)
provenance (Provenance | None)
- order_by()[source]#
Return a list of values to compare for ordering.
The first value in the list has the greatest priority; if the first objects are equal the second object is compared, etc.
- property state_margins: dict[Direction, float | None]#
Per-direction intrinsic-information gap between the specified system state and the best competing state (
StateSpecification.state_margin).
- property tied_selections: tuple[str, ...]#
The selections whose margin is within
config.numerics.precisionof zero — a subset of("partition", "cause_state", "effect_state").Empty when every selection has a clear winner. See also the per-direction
StateSpecification.state_marginonsystem_stateandpartition_margin.
- property effectively_tied: bool#
Whether any selection margin is within
config.numerics.precisionof zero — i.e.tied_selectionsis non-empty.
- property intrinsic_information: float | None#
The system intrinsic information ii(s) (Mayner et al. 2026, Eq. 13).
The minimum over directions of min(i_spec, i_diff), where i_spec is the intrinsic information of the specified state and i_diff its intrinsic differentiation, each rectified by
|·|⁺. Partition-independent given the specified states. φₛ = min{φ_c, φ_e, ii(s)}, so φₛ ≤ ii(s); a result computed under IIT 4.0 as published in 2023, which lacks this requirement, can exceed it.Nonewhen no system state is available or the intrinsic differentiation was not computed (e.g. on null SIAs).
- property intrinsic_specification: dict[Direction, float | None]#
Per-direction intrinsic specification of the specified system state (Mayner et al. 2026, Eqs. 7 and 9).
Parallel in shape to
intrinsic_differentiation; together the two giveii(s) = min over directions of min(i_spec, i_diff)(2026, Eq. 13), exposed asintrinsic_information. An entry isNonewhen that direction’s state was not specified (null analyses).
- property integrated_fraction: float | None#
The integrated fraction φₛ / ii(s) of the system intrinsic information.
Lies in [0, 1], since φₛ = min{φ_c, φ_e, ii(s)}; for a result computed under IIT 4.0 as published in 2023, which lacks this requirement, it may exceed 1.
Nonewhen ii(s) is unavailable or zero (no finite ratio is defined).
- resolve_system_state()[source]#
Update system_state to reflect the specified states resolved by the MIP.
When the system has tied specified states, the MIP resolves the tie by selecting the state most vulnerable to the winning partition. This back-propagates that resolution into system_state so that downstream consumers (e.g., congruence filtering in ces) see the correct specified states.
- Return type:
None