pyphi.actual.TransitionSystem#

class pyphi.actual.TransitionSystem(substrate, before_state, after_state, cause_indices, effect_indices, direction, partition=None, noise_background=False)[source]#

Bases: Serializable

A directional view of a state transition.

Implements pyphi.protocols.SystemPublicInterface by holding an underlying pyphi.system.System (via _underlying_system) and delegating the protocol surface through __getattr__(). The underlying System is constructed with external_indices = substrate.indices - cause_indices (or () when noise_background is True), so substrate units outside the cause set are fixed in their actual state as background conditions (Albantakis et al. 2019, Section 3.3, “Distinct Background Conditions”): their inputs to the transition are clamped at the observed before-state in both directions, matching the paper’s causal model in which the background U is set to u throughout the transition. With noise_background the background inputs are instead marginalized uniformly.

The mechanism-evaluation state is direction-aware: after_state for the CAUSE direction (Bayesian-inverting from the observed effect) and before_state for the EFFECT direction (forward conditioning on the observed cause). Two TransitionSystem instances live inside each Transition, one per direction.

The underlying System is pinned to background_conditioning = "CONDITION_CURRENT_STATE" with background_state = before_state, so the background units are held at their before-state values in both directions. Actual causation’s background rule is ActualCausationConfig.background_scheme, not the IIT-formalism background_conditioning option, so the pin keeps AC results identical regardless of that option’s value.

The shared System surface delegated to the underlying System is the explicit allow-list _DELEGATED_TO_SYSTEM; everything else is handled locally or unsupported.

Parameters:
property background_state: tuple[int, ...][source]#

External units are conditioned at the observed before-state.

partitioned_repertoire(direction, partition, *, partitioned_repertoire_scheme, **kw)[source]#

Compute the partitioned repertoire under the actual-causation scheme.

The partitioned repertoire is the product of the per-part repertoires (Albantakis et al. 2019, Eq. 8 for the effect direction and Eq. 10 for the cause direction), dispatched through the partitioned_repertoire_scheme registry. This differs from pyphi.system.System.partitioned_repertoire(), which applies a mechanism distance measure for IIT.

Parameters:
Return type:

Any