Skip to content

Measure

iitx.measures.measure

The measure interface: integrated information as a first-class, replaceable object.

A measure maps (system, state) to integrated-information results. Holding the definition of Φ behind one protocol is what lets alternative definitions — theory versions, distances, partition schemes — be expressed, compared, and swapped under one interface (docs/design.md §5).

Measure

Bases: Protocol

A measure of integrated information.

Implementations are frozen dataclasses whose fields are the measure's configuration; both methods are pure and compose with jax.jit and jax.vmap (and, where the measure's mathematics allows, jax.grad).

Source code in src/iitx/measures/measure.py
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
@runtime_checkable
class Measure(Protocol):
	"""A measure of integrated information.

	Implementations are frozen dataclasses whose fields are the measure's configuration;
	both methods are pure and compose with ``jax.jit`` and ``jax.vmap`` (and, where the
	measure's mathematics allows, ``jax.grad``).
	"""

	def phi(self, system: System, state: jax.Array) -> jax.Array:
		"""Compute the measure's headline scalar for a system in a state.

		Args:
			system: The system.
			state: Current state, shape ``(n,)``.

		Returns:
			The scalar value (which quantity it is — φ_s, Φ — is the measure's to
			document).

		"""
		...

	def analyze(self, system: System, state: jax.Array) -> Any:
		"""Compute the measure's full result for a system in a state.

		Args:
			system: The system.
			state: Current state, shape ``(n,)``.

		Returns:
			The measure's result pytree.

		"""
		...

phi(system, state)

Compute the measure's headline scalar for a system in a state.

Parameters:

Name Type Description Default
system System

The system.

required
state Array

Current state, shape (n,).

required

Returns:

Type Description
Array

The scalar value (which quantity it is — φ_s, Φ — is the measure's to

Array

document).

Source code in src/iitx/measures/measure.py
29
30
31
32
33
34
35
36
37
38
39
40
41
def phi(self, system: System, state: jax.Array) -> jax.Array:
	"""Compute the measure's headline scalar for a system in a state.

	Args:
		system: The system.
		state: Current state, shape ``(n,)``.

	Returns:
		The scalar value (which quantity it is — φ_s, Φ — is the measure's to
		document).

	"""
	...

analyze(system, state)

Compute the measure's full result for a system in a state.

Parameters:

Name Type Description Default
system System

The system.

required
state Array

Current state, shape (n,).

required

Returns:

Type Description
Any

The measure's result pytree.

Source code in src/iitx/measures/measure.py
43
44
45
46
47
48
49
50
51
52
53
54
def analyze(self, system: System, state: jax.Array) -> Any:
	"""Compute the measure's full result for a system in a state.

	Args:
		system: The system.
		state: Current state, shape ``(n,)``.

	Returns:
		The measure's result pytree.

	"""
	...

IIT4 dataclass

IIT 4.0 in its canonical configuration (Albantakis et al. 2023).

phi is the system integrated information φ_s (existence); analyze unfolds the full Φ-structure (distinctions, relations, and Φ). Differentiable almost everywhere with respect to the TPM.

Attributes:

Name Type Description
version str

Theory version — "2023" (canonical) or "2026" (the Mayner et al. 2026 intrinsic-information cap on φ_s).

Source code in src/iitx/measures/measure.py
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
@dataclasses.dataclass(frozen=True)
class IIT4:
	"""IIT 4.0 in its canonical configuration (Albantakis et al. 2023).

	``phi`` is the system integrated information φ_s (existence); ``analyze`` unfolds
	the full Φ-structure (distinctions, relations, and Φ). Differentiable almost
	everywhere with respect to the TPM.

	Attributes:
		version: Theory version — ``"2023"`` (canonical) or ``"2026"`` (the Mayner et
			al. 2026 intrinsic-information cap on φ_s).

	"""

	version: str = "2023"

	def phi(self, system: System, state: jax.Array) -> jax.Array:
		"""Compute φ_s.

		Args:
			system: The system.
			state: Current state, shape ``(n,)``.

		Returns:
			System integrated information φ_s, in ibits (clamped at zero; see
			:class:`iitx.measures.iit4.SystemPhi`).

		"""
		return iit4.system_phi(system, state, version=self.version).phi

	def analyze(self, system: System, state: jax.Array) -> iit4.PhiStructure:
		"""Unfold the Φ-structure.

		Args:
			system: The system.
			state: Current state, shape ``(n,)``.

		Returns:
			The Φ-structure.

		"""
		return iit4.phi_structure(system, state, version=self.version)

phi(system, state)

Compute φ_s.

Parameters:

Name Type Description Default
system System

The system.

required
state Array

Current state, shape (n,).

required

Returns:

Type Description
Array

System integrated information φ_s, in ibits (clamped at zero; see

Array

class:iitx.measures.iit4.SystemPhi).

Source code in src/iitx/measures/measure.py
73
74
75
76
77
78
79
80
81
82
83
84
85
def phi(self, system: System, state: jax.Array) -> jax.Array:
	"""Compute φ_s.

	Args:
		system: The system.
		state: Current state, shape ``(n,)``.

	Returns:
		System integrated information φ_s, in ibits (clamped at zero; see
		:class:`iitx.measures.iit4.SystemPhi`).

	"""
	return iit4.system_phi(system, state, version=self.version).phi

analyze(system, state)

Unfold the Φ-structure.

Parameters:

Name Type Description Default
system System

The system.

required
state Array

Current state, shape (n,).

required

Returns:

Type Description
PhiStructure

The Φ-structure.

Source code in src/iitx/measures/measure.py
87
88
89
90
91
92
93
94
95
96
97
98
def analyze(self, system: System, state: jax.Array) -> iit4.PhiStructure:
	"""Unfold the Φ-structure.

	Args:
		system: The system.
		state: Current state, shape ``(n,)``.

	Returns:
		The Φ-structure.

	"""
	return iit4.phi_structure(system, state, version=self.version)

IIT3 dataclass

IIT 3.0 in its canonical configuration (Oizumi et al. 2014).

phi is big Φ — the integrated conceptual information at the minimal unidirectional cut; analyze returns the Φ analysis with the cause-effect structure. Exact EMDs are host linear programs, so this measure does not differentiate (it says so loudly under jax.grad).

Source code in src/iitx/measures/measure.py
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
@dataclasses.dataclass(frozen=True)
class IIT3:
	"""IIT 3.0 in its canonical configuration (Oizumi et al. 2014).

	``phi`` is big Φ — the integrated conceptual information at the minimal
	unidirectional cut; ``analyze`` returns the Φ analysis with the cause-effect
	structure. Exact EMDs are host linear programs, so this measure does not
	differentiate (it says so loudly under ``jax.grad``).
	"""

	def phi(self, system: System, state: jax.Array) -> jax.Array:
		"""Compute big Φ.

		Args:
			system: The system.
			state: Current state, shape ``(n,)``.

		Returns:
			Integrated conceptual information Φ, in bits.

		"""
		return iit3.system_phi(system, state).phi

	def analyze(self, system: System, state: jax.Array) -> iit3.SystemPhi:
		"""Compute the Φ analysis with its cause-effect structure.

		Args:
			system: The system.
			state: Current state, shape ``(n,)``.

		Returns:
			The Φ analysis.

		"""
		return iit3.system_phi(system, state)

phi(system, state)

Compute big Φ.

Parameters:

Name Type Description Default
system System

The system.

required
state Array

Current state, shape (n,).

required

Returns:

Type Description
Array

Integrated conceptual information Φ, in bits.

Source code in src/iitx/measures/measure.py
111
112
113
114
115
116
117
118
119
120
121
122
def phi(self, system: System, state: jax.Array) -> jax.Array:
	"""Compute big Φ.

	Args:
		system: The system.
		state: Current state, shape ``(n,)``.

	Returns:
		Integrated conceptual information Φ, in bits.

	"""
	return iit3.system_phi(system, state).phi

analyze(system, state)

Compute the Φ analysis with its cause-effect structure.

Parameters:

Name Type Description Default
system System

The system.

required
state Array

Current state, shape (n,).

required

Returns:

Type Description
SystemPhi

The Φ analysis.

Source code in src/iitx/measures/measure.py
124
125
126
127
128
129
130
131
132
133
134
135
def analyze(self, system: System, state: jax.Array) -> iit3.SystemPhi:
	"""Compute the Φ analysis with its cause-effect structure.

	Args:
		system: The system.
		state: Current state, shape ``(n,)``.

	Returns:
		The Φ analysis.

	"""
	return iit3.system_phi(system, state)