This repository is an early-stage implementation of an infinite-MPS version of the bootstrap condition discussed in bootstrap_condition_note.md.
The basic goal is:
- start from an infinite MPS
$|\Psi\rangle$ , - compute its 1-site and 2-site reduced density matrices,
- build local modular Hamiltonians $$ K_i = -\log \rho_i,\qquad K_{i,i+1} = -\log \rho_{i,i+1}, $$
- construct the reconstructed infinite-chain Hamiltonian $$ H_{\mathrm{rec}}^\Psi = \sum_i (K_{i,i+1} - K_i), $$
- and search for self-consistent fixed points where the same iMPS is an eigenstate, ideally the ground state, of its own reconstructed Hamiltonian.
In practice, the fixed-point search is implemented as an iterative loop:
- extract local RDMs from the current iMPS,
- build the bootstrap Hamiltonian from those RDMs,
- solve for the infinite-MPS ground state of that Hamiltonian,
- repeat until the local data stop changing.
For the derivation, notation, and algorithmic motivation, see:
-
- core Julia utilities for the iMPS bootstrap prototype
- includes:
- 1-site and 2-site RDM extraction from
InfiniteMPS - regularized matrix logarithms
- embedding a 1-site operator into 2-site Hilbert space
- constructing a translation-invariant nearest-neighbor
InfiniteMPOHamiltonian - wrapping
MPSKitground-state solvers - the self-consistency loop
imps_bootstrap_fixed_point
- 1-site and 2-site RDM extraction from
-
- simple sanity-check script
- computes a transverse-field Ising iMPS ground state and prints local diagnostics
-
scripts/demo_bootstrap_loop.jl
- short Section 13 demo
- seeds from a critical iMPS and runs a few bootstrap iterations
-
scripts/run_bootstrap_experiment.jl
- reusable CLI experiment runner
- saves results to a TOML file for later analysis
-
scripts/plot_bootstrap_result.py
- reads a saved TOML result
- generates summary and diagnostic plots
-
- saved bootstrap runs and derived plots
-
- source papers used for the project
The current implementation already supports:
- infinite-MPS ground-state solving with
MPSKit.jl - extracting normalized 1-site and 2-site RDMs
- constructing the bootstrap local term from
$K_{i,i+1}-K_i$ - running the bootstrap self-consistency loop for a one-site unit cell
- saving and plotting run diagnostics
What is still provisional:
- the exact bootstrap update rule may need refinement
- only the simplest one-site-unit-cell setup is currently implemented
- no damping/mixing or advanced convergence acceleration is included yet
- the relation between the numerically found fixed points and actual CFT data still needs systematic study
Julia environment:
julia --project=.Sanity-check iMPS run:
julia --project=. scripts/demo_imps.jlShort bootstrap demo:
julia --project=. scripts/demo_bootstrap_loop.jlReusable experiment run:
julia --project=. scripts/run_bootstrap_experiment.jl --max_iter=10 --seed_maxiter=30 --solver_maxiter=30 --output=results/bootstrap_run.tomlPlot a saved result:
python3 scripts/plot_bootstrap_result.py results/bootstrap_run.toml --outdir results/plotsThe most important quantities to watch are:
delta_rho: change in local reduced density matrices between bootstrap iterationssigma2: variance of the reconstructed Hamiltonian in the current iMPS state- eigensolver residual from
VUMPSorIDMRG - spectra of the 1-site and 2-site RDMs
Interpretation:
- small
sigma2means the current iMPS is close to an eigenstate of the reconstructed Hamiltonian - small
delta_rhomeans the bootstrap map is approaching self-consistency
- The theory note contains more detail than the code currently implements.
- The present code should be viewed as a working prototype for the Section 13 algorithm, not a finished conformal-bootstrap pipeline.