pyphi.formalism.iit4.bounds#

Upper bounds for IIT 4.0 quantities.

Implements the published upper bounds from:

Zaeemzadeh A, Tononi G. (2024). Upper bounds for integrated information. PLOS Computational Biology 20(8): e1012323. https://doi.org/10.1371/journal.pcbi.1012323

All bounds assume binary units and a conditionally independent TPM (the system is realizable as a product of unit TPMs) and are derived for the IIT 4.0 intrinsic-difference family of measures. Each bound function returns an UpperBound carrying the value together with its certificate: certified=True means the bound is theorem-backed for arbitrary systems satisfying its assumptions; certified=False means it additionally relies on a scenario assumption or an open conjecture, recorded in assumptions.

The mechanism-level bounds are ceilings over states and hold at any selected mechanism partition, so they are insensitive to the configured partition scheme and MIP normalization. The system-level bound additionally assumes a system partition scheme that does not sever self-connections.

Functions taking only n are pure combinatorics of the binary formalism; the binary-units assumption is the caller’s responsibility there. report() validates it when given a Substrate.

Relation-level sums grow like 2**(2**n). They are computed as exact Python ints where possible; values that are not integral are returned as floats and overflow for n greater than about 10.

Functions

big_phi_measured_bound(distinctions)

Certified upper bound on Φ from a measured distinction set.

big_phi_upper_bound(n[, bound])

Upper bound on big phi: the sum of all distinction and relation phi.

check_phi_bound(value, bound, *, system, label)

Assert a computed value does not exceed its certified upper bound.

distinction_phi_upper_bound(mechanism, purview)

Upper bound on phi of a mechanism over a candidate purview.

number_of_possible_distinctions(n)

Number of candidate distinctions in a system of n units.

number_of_possible_distinctions_of_order(n, k)

Number of candidate distinctions with mechanism size k.

number_of_possible_relation_faces_with_unique_purviews(n)

Number of candidate relation faces in the unique-purview scenario.

number_of_possible_relation_faces_with_unique_purviews_of_order(n, k)

Number of candidate relation faces whose overlap has exactly k units.

number_of_possible_relations(n)

Number of candidate relations in a system of n units.

partition_phi_upper_bound(partition)

Upper bound on phi of a mechanism-purview pair under a given partition.

relation_phi_upper_bound(relata_phis)

Upper bound on phi of a relation, given its relata's distinction phis.

report([n, substrate])

All size-based bounds for a system of n binary units, in one call.

sum_phi_distinctions_upper_bound(n[, bound])

Upper bound on the sum of distinction phi for a system of n units.

sum_phi_relations_measured_bound(distinctions)

Certified upper bound on Σφ_r from a measured distinction set.

sum_phi_relations_upper_bound(n[, bound])

Upper bound on the sum of relation phi (self-relations included).

system_phi_upper_bound(n)

Upper bound on system integrated information for n units.

Classes

UpperBound(value, certified, assumptions, ...)

An upper bound on an IIT quantity, with its certificate.

Exceptions

BoundViolationError(label, value, bound)

A computed phi exceeded its theorem-certified upper bound.