The tripartite mutual information \(I_3(A\,B\,C)\) combines the mutual information that \(A\) shares with \(B\) and with \(C\) separately with the mutual information it shares with \(BC\) jointly, packaging into one number how knowledge about \(A\) is split between the two regions. Mutual information itself just measures how much two regions know about each other, so \(I_3\) weighs what \(B\) and \(C\) each learn about \(A\) on their own against what they learn together.
When \(I_3\) is negative, neither \(B\) nor \(C\) alone shares any correlation with \(A\) while their union does, which is the fingerprint of an evolution that has buried local information in nonlocal correlations. This is the same delocalization behind Hayden-Preskill recovery, where a message thrown into a scrambler can be reconstructed only once a large enough slice of the output is in hand. A negative \(I_3\) is in this sense a direct diagnostic of scrambling.
For a Haar-random pure state on four equal parts of dimension \(d\), the Page approximation fixes each subsystem entropy by the smaller side of its cut. The pairwise informations then vanish while the information of \(A\) with \(BC\) saturates at \(2\ln d\), leaving \(I_3 \approx -2\ln d\). The negativity grows with \(d\), so larger subsystems hide information more thoroughly.
The calculation derives this asymptote and then samples random states at small \(d\), where the leading \(-2\ln d\) sits alongside \(O(1)\) Page corrections of comparable size. The measured points therefore follow the full Page curve rather than the bare asymptote, while the negativity that signals scrambling holds at every dimension tested.
Motivation
The tripartite mutual information\(I_3(A:B:C)\) is a sharp diagnostic of information scrambling. For unscrambled states, \(I_3 \geq 0\) (information is localized). For scrambled states, \(I_3 < 0\), meaning that information about \(A\) is delocalized across \(B\) and \(C\) and can only be recovered by accessing both jointly. This exercise computes \(I_3\) for Haar-random states using the Page approximation and verifies numerically.
Preliminaries / Toolbox
1. Von Neumann Entropy:\(S(\rho) = -\mathrm{Tr}(\rho \ln \rho)\). Base \(e\) (nats) is typical in mathematical physics, though base 2 (bits) is common.
2. Page Approximation: For a Haar-random pure state on \(\mathcal{H}_A \otimes \mathcal{H}_B\), if \(d_A \leq d_B\), the average entropy of \(A\) is \(S(A) \approx \ln d_A - d_A/(2 d_B)\). To leading order, \(S(A) \approx \ln \min(d_A, d_B)\).
3. Mutual Information:\(I(A:B) = S(A) + S(B) - S(AB)\). Measures total classical and quantum correlations.
4. Tripartite Mutual Information:\(I_3(A:B:C) = I(A:B) + I(A:C) - I(A:BC)\). A negative value indicates topological entanglement or information scrambling, as information about \(A\) is hidden in the joint state \(BC\) but invisible in \(B\) and \(C\) locally.
Exercise
For a Haar-random pure state on four equal subsystems \(A, B, C, D\) with \(d_A = d_B = d_C = d_D = d \gg 1\):
Compute \(I(A:B)\), \(I(A:C)\), \(I(A:BC)\), and show \(I_3(A:B:C) \approx -2\ln d\).
Solution
Step 1: Subsystem entropies via the Page approximation
For a Haar-random state, the Page approximation gives \(S(X) \approx \ln(\min(d_X, d_{\bar{X}}))\) for subsystem \(X\) with complement \(\bar{X}\):
Physical interpretation: Individually, neither \(B\) nor \(C\) shares any mutual information with \(A\) (\(I(A:B) = I(A:C) = 0\)). Yet jointly, \(BC\) has full mutual information \(I(A:BC) = 2\ln d\). This is the hallmark of scrambling: information about \(A\) is non-locally encoded across \(B\) and \(C\). The magnitude \(|I_3| = 2\ln d\) grows with the subsystem dimension, more scrambling in larger systems.
Symbolic Verification (SymPy)
Code
import sympy as sp# Page approximation for scrambled state on A,B,C,D subsystemsd_A, d_B, d_C, d_D = sp.symbols('d_A d_B d_C d_D', positive=True, integer=True)# S(A) ~ log(d_A) for small subsystem in large bath# I_3 = I(A:B) + I(A:C) - I(A:BC)# For maximally scrambled: I_3 ~ -2*log(d_A) < 0print('Tripartite MI for scrambled states:')print(' I_3(A:B:C) = I(A:B) + I(A:C) - I(A:BC)')print()print(' For Page-scrambled states (all subsystems small vs complement):')print(' I(A:B) ~ 0 (A,B are nearly independent)')print(' I(A:C) ~ 0')print(' I(A:BC) ~ 2*S(A) ~ 2*log(d_A) (A is purified by BC)')print()print(' => I_3 ~ 0 + 0 - 2*log(d_A) < 0')print(' Negative I_3 = information is delocalized (scrambled)!')
Tripartite MI for scrambled states:
I_3(A:B:C) = I(A:B) + I(A:C) - I(A:BC)
For Page-scrambled states (all subsystems small vs complement):
I(A:B) ~ 0 (A,B are nearly independent)
I(A:C) ~ 0
I(A:BC) ~ 2*S(A) ~ 2*log(d_A) (A is purified by BC)
=> I_3 ~ 0 + 0 - 2*log(d_A) < 0
Negative I_3 = information is delocalized (scrambled)!
Numerical Verification
Code
import numpy as npfrom scipy.stats import unitary_groupnp.random.seed(42)def vn_entropy(rho): eigs = np.linalg.eigvalsh(rho) eigs = eigs[eigs >1e-15]return-np.sum(eigs * np.log(eigs))def reduced_dm(psi, dims, keep): psi_t = psi.reshape(dims) trace_out =sorted(set(range(len(dims))) -set(keep)) order =sorted(keep) + trace_out psi_t = np.transpose(psi_t, order) d_k =int(np.prod([dims[k] for k insorted(keep)])) d_t =int(np.prod([dims[k] for k in trace_out])) psi_t = psi_t.reshape(d_k, d_t)return psi_t @ psi_t.conj().Tdef page_entropy(d_sub, d_bath): # mean Haar entropy, d_sub <= d_bath harm =sum(1.0/ k for k inrange(d_bath +1, d_sub * d_bath +1))return harm - (d_sub -1) / (2.0* d_bath)for d in [2, 3]: D = d**4 n_samples =min(1000, max(200, 10000//D)) dims = [d]*4 I3_vals = []for _ inrange(n_samples): psi = unitary_group.rvs(D)[:, 0] SA = vn_entropy(reduced_dm(psi, dims, [0])) SB = vn_entropy(reduced_dm(psi, dims, [1])) SC = vn_entropy(reduced_dm(psi, dims, [2])) SAB = vn_entropy(reduced_dm(psi, dims, [0,1])) SAC = vn_entropy(reduced_dm(psi, dims, [0,2])) SBC = vn_entropy(reduced_dm(psi, dims, [1,2])) SABC = vn_entropy(reduced_dm(psi, dims, [0,1,2])) I_AB = SA + SB - SAB I_AC = SA + SC - SAC I_ABC = SA + SBC - SABC I3_vals.append(I_AB + I_AC - I_ABC) page =4*page_entropy(d, d**3) -3*page_entropy(d**2, d**2) lead =-2*np.log(d)print(f"d={d}: ⟨I₃⟩ = {np.mean(I3_vals):.3f} "f"(exact Page = {page:.3f}, leading −2ln{d} = {lead:.3f})")print("\nNegative I₃ at finite d, on the exact Page curve: information delocalization confirmed.")
d=3: ⟨I₃⟩ = -0.914 (exact Page = -0.916, leading −2ln3 = -2.197)
Negative I₃ at finite d, on the exact Page curve: information delocalization confirmed.
Code
%matplotlib inlineimport numpy as npimport matplotlib.pyplot as pltfrom scipy.stats import unitary_group# I_3 vs subsystem dimension d for Haar-random states on four equal parts.np.random.seed(1)ds = [2, 3, 4]means = []for d in ds: Dtot = d**4 dims = [d] *4 n_samples =200if Dtot <=81else40 vals = []for _ inrange(n_samples): psi = unitary_group.rvs(Dtot)[:, 0] SA = vn_entropy(reduced_dm(psi, dims, [0])) SB = vn_entropy(reduced_dm(psi, dims, [1])) SC = vn_entropy(reduced_dm(psi, dims, [2])) SAB = vn_entropy(reduced_dm(psi, dims, [0, 1])) SAC = vn_entropy(reduced_dm(psi, dims, [0, 2])) SBC = vn_entropy(reduced_dm(psi, dims, [1, 2])) SABC = vn_entropy(reduced_dm(psi, dims, [0, 1, 2])) I_AB = SA + SB - SAB I_AC = SA + SC - SAC I_ABC = SA + SBC - SABC vals.append(I_AB + I_AC - I_ABC) means.append(np.mean(vals))# Exact Page-average prediction. Symmetry collapses I_3 to 4 S_A - 3 S_AB,# with S_A on a d-vs-d^3 cut and S_AB on a d^2-vs-d^2 cut. The leading term# is -2 ln d, but the O(1) Page corrections are sizable at these small d, so# the data tracks the full Page curve rather than the asymptote.def page_entropy(d_sub, d_bath): # mean Haar entropy, d_sub <= d_bath harm =sum(1.0/ k for k inrange(d_bath +1, d_sub * d_bath +1))return harm - (d_sub -1) / (2.0* d_bath)I3_page = [4* page_entropy(d, d**3) -3* page_entropy(d**2, d**2) for d in ds]d_dense = np.linspace(2, 4, 100)plt.figure(figsize=(7, 4))plt.plot(d_dense, -2* np.log(d_dense), color='gray', ls=':', lw=1.5, label=r'leading order $-2\ln d$')plt.plot(ds, I3_page, 'k--', marker='s', ms=6, label='exact Page prediction')plt.plot(ds, means, 'o', color='crimson', ms=9, label='Haar-random states')plt.axhline(0, color='gray', lw=0.8)plt.xlabel('subsystem dimension $d$')plt.ylabel(r'$I_3(A:B:C)$ (nats)')plt.title('Tripartite mutual information turns negative under scrambling')plt.legend()plt.grid(True, ls='--', alpha=0.4)plt.tight_layout()plt.show()
Takeaway
For a Haar-random state on four equal parts the pairwise informations \(I(A:B)\) and \(I(A:C)\) vanish while \(I(A:BC)\) saturates, so \(I_3\) is negative at every dimension and the information about \(A\) lives in correlations spread across \(B\) and \(C\). The leading asymptote is \(-2\ln d\), but at the accessible small dimensions the simulated points track the exact Page curve, with the negativity itself robust against those \(O(1)\) corrections.
Connections
A negative tripartite mutual information is the information-theoretic fingerprint of the scrambling that the OTOC probes dynamically, so this notebook and the OTOC notebooks describe the same delocalization in different languages. Its value is set by the Page formula, which is why a question about black-hole information reduces to a calculation about typical entanglement.
References
Hosur et al., Chaos in quantum channels, Journal of High Energy Physics (2016). arXiv:1511.04021
Hayden and Preskill, Black holes as mirrors: quantum information in random subsystems, Journal of High Energy Physics (2007). doi
Hayden and Preskill, Black holes as mirrors: quantum information in random subsystems, Journal of High Energy Physics (2007).
Płodzień, Information Scrambling, Quantum Chaos, and Haar-Random States, lecture notes (2025). arXiv:2511.14397