{
  "schema": "vibeqc.formal-method-inventory/1",
  "catalog": "docs/methods.md",
  "scope": "Every method section and named variant in the method map, augmented with source-dispatched CC variants. External XC/ML parameter catalogs are parametric families, not enumerated aliases. This is an inventory of proof obligations, not proof coverage for all methods.",
  "methods": [
    {
      "id": "M01",
      "family": "Mean-field methods",
      "method_section": "Hartree-Fock: RHF, UHF, ROHF",
      "variants": [
        "RHF",
        "UHF",
        "ROHF"
      ],
      "source_paths": [
        "cpp/src/rhf.cpp",
        "cpp/src/uhf.cpp",
        "python/vibeqc/rohf.py"
      ],
      "next_proof_obligations": "Metric density projectors; electron count; spin occupations; Fock/energy consistency; stationarity.",
      "coverage": "RHF core pilot; selected UHF algebraic claims and OH implementation/reference checks passed; ROHF unproved",
      "literature_keys": [
        "guest_saunders_rohf_1974",
        "roothaan_rohf_1960"
      ]
    },
    {
      "id": "M02",
      "family": "Mean-field methods",
      "method_section": "Kohn-Sham density-functional theory: RKS, UKS, ROKS",
      "variants": [
        "RKS",
        "UKS",
        "ROKS",
        "LDA",
        "GGA",
        "meta-GGA",
        "global hybrids",
        "range-separated hybrids",
        "VV10",
        "custom functional mixtures"
      ],
      "source_paths": [
        "cpp/src/rks.cpp",
        "cpp/src/uks.cpp",
        "python/vibeqc/roks.py"
      ],
      "next_proof_obligations": "Density-to-grid map; XC energy/potential derivatives; spin scaling; exchange mixing; quadrature.",
      "coverage": "Inventoried",
      "literature_keys": []
    },
    {
      "id": "M03",
      "family": "Mean-field methods",
      "method_section": "SKALA-1.1 neural exchange-correlation functional",
      "variants": [
        "SKALA-1.1"
      ],
      "source_paths": [
        "python/vibeqc/skala.py"
      ],
      "next_proof_obligations": "Full-grid provider contract; density features; network expression; differentiability and supported properties.",
      "coverage": "Inventoried; empirical accuracy remains external",
      "literature_keys": []
    },
    {
      "id": "M04",
      "family": "Mean-field methods",
      "method_section": "Dispersion corrections: D3(BJ), D4, gCP and the 3c composites",
      "variants": [
        "D3(BJ)",
        "D4",
        "gCP",
        "HF-3c",
        "PBEh-3c",
        "B97-3c",
        "B3LYP-3c",
        "r2SCAN-3c",
        "wB97X-3c",
        "HSE-3c"
      ],
      "source_paths": [
        "python/vibeqc/dispersion.py",
        "cpp/src/dispersion.cpp",
        "python/vibeqc/composites.py"
      ],
      "next_proof_obligations": "Pair/triple counting; damping; parameter provenance; component accounting; energy gradients.",
      "coverage": "Inventoried",
      "literature_keys": [
        "caldeweyher_d4_2019",
        "grimme_d3bj_2011"
      ]
    },
    {
      "id": "M05",
      "family": "Mean-field methods",
      "method_section": "DFT+U",
      "variants": [
        "DFT+U"
      ],
      "source_paths": [
        "cpp/src/dft_plus_u.cpp",
        "python/vibeqc/dft_plus_u.py"
      ],
      "next_proof_obligations": "Projector metric; occupation eigenvalues; Dudarev trace and derivative; per-spin versus total density.",
      "coverage": "Inventoried",
      "literature_keys": [
        "dudarev_dft_plus_u_1998"
      ]
    },
    {
      "id": "M06",
      "family": "Mean-field methods",
      "method_section": "Density fitting: RI-J, RIJK and RIJCOSX",
      "variants": [
        "RI-J",
        "RIJK",
        "RIJCOSX",
        "auxiliary-basis generation"
      ],
      "source_paths": [
        "cpp/src/df.cpp",
        "cpp/src/jk_builder.cpp",
        "cpp/src/cosx.cpp"
      ],
      "next_proof_obligations": "Coulomb-metric least squares; metric truncation; fitting error; separate COSX quadrature error.",
      "coverage": "Coulomb-metric factor identities and public/resident fitting contractions checked; projection and approximation-error theorems pending",
      "literature_keys": [
        "eichkorn_rij_1995",
        "neese_rijcosx_2009"
      ]
    },
    {
      "id": "M07",
      "family": "Mean-field methods",
      "method_section": "Effective core potentials",
      "variants": [
        "ECP",
        "inline ECP primitives",
        "spin-orbit ECP route gates"
      ],
      "source_paths": [
        "cpp/src/ecp.cpp"
      ],
      "next_proof_obligations": "Effective electron counts; nonlocal operator; angular projectors; scalar versus spin-orbit scope.",
      "coverage": "Inventoried",
      "literature_keys": []
    },
    {
      "id": "M08",
      "family": "Mean-field methods",
      "method_section": "Implicit solvation: CPCM, COSMO and COSMO-RS",
      "variants": [
        "CPCM",
        "COSMO",
        "COSMO-RS"
      ],
      "source_paths": [
        "python/vibeqc/solvation/cpcm.py",
        "python/vibeqc/solvation/cosmors/cosmospace.py"
      ],
      "next_proof_obligations": "Boundary linear system; dielectric factors; surface charge/energy sign; self-consistent coupling; residual chemical potentials.",
      "coverage": "Inventoried",
      "literature_keys": []
    },
    {
      "id": "M09",
      "family": "Mean-field methods",
      "method_section": "Getting the SCF to converge",
      "variants": [
        "DIIS",
        "EDIIS",
        "ADIIS",
        "KDIIS",
        "damping",
        "level shift",
        "SOSCF",
        "Newton",
        "TRAH",
        "quadratic SCF",
        "OpenTrustRegion",
        "initial guesses",
        "finite-temperature occupations",
        "frontier ensembles"
      ],
      "source_paths": [
        "cpp/src/rhf.cpp",
        "cpp/src/diis.cpp",
        "cpp/include/vibeqc/orbital_scf.hpp"
      ],
      "next_proof_obligations": "Residual definitions; constrained extrapolation; occupation trace; assumptions for convergence and stability; root selection.",
      "coverage": "Inventoried; no general convergence claim",
      "literature_keys": [
        "hu_yang_adiis_2010",
        "kudin_ediis_2002",
        "pulay_diis_1980",
        "saunders_hillier_levelshift_1973",
        "seeger_pople_stability_1977"
      ]
    },
    {
      "id": "M10",
      "family": "Single-reference correlation",
      "method_section": "Moller-Plesset perturbation theory: MP2, RI-MP2, SCS/SOS-MP2, UMP2",
      "variants": [
        "MP2",
        "RI-MP2",
        "SCS-MP2",
        "SOS-MP2",
        "UMP2",
        "ROHF-MP2"
      ],
      "source_paths": [
        "cpp/src/mp2.cpp",
        "cpp/src/ump2.cpp",
        "python/vibeqc/rohf.py"
      ],
      "next_proof_obligations": "Spin sums; occupied/virtual index domains; denominators; frozen-core dressing; canonical/RI equivalence limits.",
      "coverage": "Canonical restricted MP2 scalar identities and water implementation/reference checks passed; full finite sums and perturbation derivation pending",
      "literature_keys": [
        "feyereisen_rimp2_1993",
        "grimme_scs_mp2_2003",
        "jung_sos_mp2_2004",
        "moller_plesset_1934"
      ]
    },
    {
      "id": "M11",
      "family": "Single-reference correlation",
      "method_section": "Double-hybrid functionals: B2PLYP, DSD-PBEP86, revDSD-PBEP86-D4",
      "variants": [
        "B2PLYP",
        "DSD-PBEP86",
        "revDSD-PBEP86-D4",
        "PWPB95",
        "custom double hybrids"
      ],
      "source_paths": [
        "python/vibeqc/runner.py"
      ],
      "next_proof_obligations": "Energy component weights; same/opposite-spin separation; orbitals and frozen-core convention; dispersion accounting.",
      "coverage": "Inventoried",
      "literature_keys": [
        "grimme_b2plyp_2006"
      ]
    },
    {
      "id": "M12",
      "family": "Single-reference correlation",
      "method_section": "Coupled cluster: CCSD, CCSD(T) and the open-shell variants",
      "variants": [
        "CCSD",
        "CCSD(T)",
        "UCCSD",
        "UCCSD(T)",
        "ROHF-CCSD",
        "ROHF-CCSD(T)"
      ],
      "source_paths": [
        "cpp/src/ccsd.cpp",
        "cpp/src/ccsd_triples.cpp",
        "cpp/src/uccsd.cpp"
      ],
      "next_proof_obligations": "Anticommutators; normal ordering; BCH termination assumptions; projected residuals; spin adaptation; triples prefactors.",
      "coverage": "Inventoried; symbolic codegen is not a proof",
      "literature_keys": [
        "cizek_cc_1966",
        "purvis_bartlett_ccsd_1982",
        "raghavachari_ccsdt_1989"
      ]
    },
    {
      "id": "M13",
      "family": "Single-reference correlation",
      "method_section": "The wider coupled-cluster and coupled-pair family: CC2, CC3, CCSDT, QCISD(T), CEPA(n)",
      "variants": [
        "CC2",
        "CC3",
        "CCSDT",
        "CCD",
        "LCCD",
        "LCCSD",
        "BCCD",
        "BCCD(T)",
        "QCISD",
        "QCISD(T)",
        "CEPA(0)",
        "CEPA(1)",
        "CEPA(2)",
        "CEPA(3)"
      ],
      "source_paths": [
        "cpp/src/ccsd.cpp",
        "python/vibeqc/runner.py"
      ],
      "next_proof_obligations": "Variant-specific retained diagrams; perturbative order; Brueckner orbital condition; limiting reductions.",
      "coverage": "Inventoried",
      "literature_keys": [
        "christiansen_cc2_1995",
        "handy_bccd_1989",
        "koch_cc3_1997",
        "meyer_cepa_1973",
        "noga_bartlett_ccsdt_1987",
        "pople_qcisd_1987"
      ]
    },
    {
      "id": "M14",
      "family": "Single-reference correlation",
      "method_section": "Local correlation: DLPNO-MP2, DLPNO-CCSD(T), DLPNO-(T1) and the open-shell solvers",
      "variants": [
        "DLPNO-MP2",
        "DLPNO-CCSD",
        "DLPNO-CCSD(T)",
        "DLPNO-(T1)",
        "open-shell local MP2 and CCSD(T)",
        "periodic local correlation"
      ],
      "source_paths": [
        "cpp/src/dlpno_mp2.cpp",
        "cpp/src/dlpno_uccsd.cpp",
        "python/vibeqc/dlpno/mp2.py"
      ],
      "next_proof_obligations": "Pair domains; nonorthogonal local metrics; pair counting; PNO truncation; canonical limit and screened-term error.",
      "coverage": "Inventoried",
      "literature_keys": [
        "guo_dlpno_t1_2018",
        "pinski_dlpno_mp2_2015",
        "riplinger_dlpno_2013",
        "saitow_openshell_dlpno_2017"
      ]
    },
    {
      "id": "M15",
      "family": "Single-reference correlation",
      "method_section": "Configuration interaction with singles and doubles: CISD",
      "variants": [
        "CISD"
      ],
      "source_paths": [
        "python/vibeqc/solvers/_cisd.py"
      ],
      "next_proof_obligations": "Determinant excitation phases; Slater-Condon matrix elements; Hermiticity; variational subspace inclusion.",
      "coverage": "Inventoried",
      "literature_keys": [
        "pople_cisd_1977"
      ]
    },
    {
      "id": "M16",
      "family": "Multireference and exact methods",
      "method_section": "CASCI and CASSCF",
      "variants": [
        "CASCI",
        "CASSCF"
      ],
      "source_paths": [
        "cpp/src/casci.cpp",
        "python/vibeqc/solvers/_casscf.py"
      ],
      "next_proof_obligations": "Active/inactive partition; core dressing; determinant Hamiltonian; orbital stationarity; state averaging.",
      "coverage": "Inventoried",
      "literature_keys": [
        "roos_taylor_siegbahn_casci_1980"
      ]
    },
    {
      "id": "M17",
      "family": "Multireference and exact methods",
      "method_section": "CASPT2, NEVPT2 and MRCI",
      "variants": [
        "CASPT2",
        "NEVPT2",
        "MRCI"
      ],
      "source_paths": [
        "cpp/src/nevpt2_ops.cpp",
        "python/vibeqc/solvers"
      ],
      "next_proof_obligations": "Zeroth-order Hamiltonian; contraction metric; denominators and shifts; excitation manifold; variant assumptions.",
      "coverage": "Inventoried",
      "literature_keys": [
        "andersson_caspt2_1990",
        "andersson_malmqvist_roos_caspt2_1992",
        "angeli_nevpt2_2001",
        "werner_knowles_mrci_1988"
      ]
    },
    {
      "id": "M18",
      "family": "Multireference and exact methods",
      "method_section": "Exact and near-exact determinant solvers: FCI, selected CI, DMRG, v2RDM, transcorrelated CI",
      "variants": [
        "FCI",
        "selected CI",
        "CIPSI",
        "DOCI",
        "DMRG",
        "v2RDM",
        "transcorrelated CI"
      ],
      "source_paths": [
        "cpp/src/selected_ci.cpp",
        "python/vibeqc/solvers"
      ],
      "next_proof_obligations": "Fermion signs; Hamiltonian projection; variational bounds where applicable; representability; non-Hermitian transformations.",
      "coverage": "Inventoried; retain each route restriction",
      "literature_keys": [
        "huron_malrieu_cipsi_1973"
      ]
    },
    {
      "id": "M19",
      "family": "Excited states and response properties",
      "method_section": "Linear-response TDDFT: Casida, Tamm-Dancoff, CIS",
      "variants": [
        "TDDFT",
        "Casida response",
        "TDA",
        "CIS"
      ],
      "source_paths": [
        "python/vibeqc/tddft.py"
      ],
      "next_proof_obligations": "Response A/B blocks; spin factors; excitation metric; stability assumptions; oscillator strength sum rules.",
      "coverage": "Inventoried",
      "literature_keys": [
        "martin_nto_2003"
      ]
    },
    {
      "id": "M20",
      "family": "Excited states and response properties",
      "method_section": "Green's-function ionisation energies: GF2 and OVGF",
      "variants": [
        "GF2",
        "OVGF"
      ],
      "source_paths": [
        "python/vibeqc/solvers"
      ],
      "next_proof_obligations": "Self-energy diagrams; frequency denominators; pole residues; spin and analytic-continuation conventions.",
      "coverage": "Inventoried",
      "literature_keys": [
        "cederbaum_ovgf_1975",
        "vonniessen_ovgf_1984"
      ]
    },
    {
      "id": "M21",
      "family": "Excited states and response properties",
      "method_section": "Static polarizability and analytic Hessians: coupled-perturbed SCF",
      "variants": [
        "CPHF",
        "CPKS",
        "static polarizability",
        "analytic RHF/UHF/RKS/UKS Hessians",
        "finite-difference Hessians"
      ],
      "source_paths": [
        "python/vibeqc/cphf.py",
        "cpp/src/hessian_integrals.cpp"
      ],
      "next_proof_obligations": "Orbital response equation; full perturbation derivative; Pulay terms; Hessian symmetry; translational modes.",
      "coverage": "Inventoried",
      "literature_keys": [
        "pople_derivatives_1979"
      ]
    },
    {
      "id": "M22",
      "family": "Semiempirical methods",
      "method_section": "MSINDO",
      "variants": [
        "MSINDO"
      ],
      "source_paths": [
        "python/vibeqc/semiempirical/methods/msindo.py"
      ],
      "next_proof_obligations": "Retained integrals; empirical parameters; core repulsion; spin occupations; analytical energy derivatives.",
      "coverage": "Inventoried",
      "literature_keys": [
        "ahlswede_jug_msindo_1_1999"
      ]
    },
    {
      "id": "M23",
      "family": "Semiempirical methods",
      "method_section": "Density-functional tight binding: DFTB0 and SCC-DFTB",
      "variants": [
        "DFTB0",
        "SCC-DFTB",
        "spin-polarized SCC-DFTB"
      ],
      "source_paths": [
        "cpp/src/semiempirical/dftb0.cpp",
        "python/vibeqc/semiempirical/dftb0.py"
      ],
      "next_proof_obligations": "Slater-Koster interpolation; charge SCC functional; overlap populations; gamma kernels; repulsive terms.",
      "coverage": "Inventoried",
      "literature_keys": [
        "elstner_scc_dftb_1998",
        "porezag_dftb0_1995"
      ]
    },
    {
      "id": "M24",
      "family": "Semiempirical methods",
      "method_section": "GFN2-xTB",
      "variants": [
        "GFN2-xTB",
        "molecular and periodic GFN2 variants"
      ],
      "source_paths": [
        "cpp/src/semiempirical/methods/xtb",
        "python/vibeqc/semiempirical/methods/gfn2_dispersion.py"
      ],
      "next_proof_obligations": "Anisotropic multipoles; charge response; dispersion derivatives; cutoffs and periodic image convention.",
      "coverage": "Inventoried",
      "literature_keys": [
        "bannwarth_gfn2_2019"
      ]
    },
    {
      "id": "M25",
      "family": "Semiempirical methods",
      "method_section": "NDDO methods: PM6, OM1, OM2, OM3 and the PM7 gate",
      "variants": [
        "PM6",
        "OM1",
        "OM2",
        "OM3",
        "PM7 gate"
      ],
      "source_paths": [
        "cpp/src/semiempirical/methods",
        "python/vibeqc/semiempirical"
      ],
      "next_proof_obligations": "NDDO integral selection; orthogonalization corrections; parameters; energy/gradient consistency; explicit missing terms.",
      "coverage": "Inventoried; gated routes remain gated",
      "literature_keys": [
        "scholten_om3_2003",
        "stewart_pm6_2007",
        "weber_thiel_om2_2000"
      ]
    },
    {
      "id": "M26",
      "family": "Semiempirical methods",
      "method_section": "SECCM: the semiempirical cyclic cluster model",
      "variants": [
        "SECCM-DFTB0",
        "SECCM-SCC-DFTB",
        "SECCM-GFN2",
        "SECCM-PM6",
        "SECCM-OMx",
        "MSINDO cyclic models"
      ],
      "source_paths": [
        "cpp/src/semiempirical/seccm",
        "python/vibeqc/semiempirical/seccm"
      ],
      "next_proof_obligations": "Finite group/topology; images and pair domains; per-cell normalization; electrostatic boundary; ensemble occupations.",
      "coverage": "Inventoried; experimental",
      "literature_keys": [
        "bredow_geudtner_jug_ccm_2001"
      ]
    },
    {
      "id": "M27",
      "family": "Machine-learned interatomic potentials",
      "method_section": "MACE",
      "variants": [
        "MACE",
        "MACE-MP",
        "MACE-OFF",
        "cyclic MACE construction A"
      ],
      "source_paths": [
        "python/vibeqc/mlip"
      ],
      "next_proof_obligations": "Graph periodic images; equivariance; cutoff continuity; force and cell derivatives; model/checkpoint identity.",
      "coverage": "Inventoried; empirical accuracy remains external",
      "literature_keys": [
        "batatia_mace_2022"
      ]
    },
    {
      "id": "M28",
      "family": "Periodic systems",
      "method_section": "Bloch's theorem and k-point sampling",
      "variants": [
        "Gamma and multi-k RHF/UHF/RKS/UKS/ROHF",
        "symmetry-reduced k meshes"
      ],
      "source_paths": [
        "python/vibeqc/periodic_scf_accelerators.py",
        "cpp/src/periodic_scf.cpp"
      ],
      "next_proof_obligations": "Bloch phase convention; conjugation; reciprocal mesh weights; electron count; time reversal and symmetry action.",
      "coverage": "Inventoried",
      "literature_keys": [
        "monkhorst_pack_1976"
      ]
    },
    {
      "id": "M29",
      "family": "Periodic systems",
      "method_section": "The periodic Coulomb problem and Ewald summation",
      "variants": [
        "3D Ewald",
        "2D slab electrostatics",
        "1D electrostatics",
        "truncated Coulomb"
      ],
      "source_paths": [
        "cpp/src/ewald.cpp",
        "python/vibeqc/periodic"
      ],
      "next_proof_obligations": "Neutrality; self/background/surface terms; zero mode; convergent split and boundary-dependent limits.",
      "coverage": "Inventoried",
      "literature_keys": [
        "ewald_lattice_sum_1921",
        "parry_2d_ewald_1975"
      ]
    },
    {
      "id": "M30",
      "family": "Periodic systems",
      "method_section": "GDF: Gaussian density fitting, with RSGDF and MDF",
      "variants": [
        "GDF",
        "RSGDF",
        "MDF"
      ],
      "source_paths": [
        "python/vibeqc/periodic_gdf_route.py",
        "cpp/src/periodic_gdf_short_range.cpp"
      ],
      "next_proof_obligations": "Momentum conservation; complex auxiliary metric; near/far split; G=0 terms; fitting/truncation errors.",
      "coverage": "Inventoried",
      "literature_keys": [
        "gygi_baldereschi_exx_1986",
        "sun_berkelbach_gdf_2017",
        "ye_berkelbach_rsgdf_2021"
      ]
    },
    {
      "id": "M31",
      "family": "Periodic systems",
      "method_section": "GPW and GAPW: the plane-wave route",
      "variants": [
        "GPW",
        "GAPW"
      ],
      "source_paths": [
        "python/vibeqc/periodic_gapw_augment.py",
        "python/vibeqc/periodic_gapw_grid.py"
      ],
      "next_proof_obligations": "FFT normalization; Poisson kernel; smooth/augmentation decomposition; grid aliasing and compensation charges.",
      "coverage": "Inventoried",
      "literature_keys": [
        "blochl_paw_1994",
        "vandevondele_ot_2003"
      ]
    },
    {
      "id": "M32",
      "family": "Periodic systems",
      "method_section": "BIPOLE: the exact Ewald J split",
      "variants": [
        "BIPOLE"
      ],
      "source_paths": [
        "cpp/src/bipole_ewald_gram.cpp",
        "cpp/src/bipole_contractor.cpp",
        "python/vibeqc/pbc_bipole.py"
      ],
      "next_proof_obligations": "Near/far domain partition; multipole normalization; Ewald identity; duplicate/self exclusion; truncation error.",
      "coverage": "Inventoried",
      "literature_keys": [
        "saunders_bipole_1992"
      ]
    },
    {
      "id": "M33",
      "family": "Periodic systems",
      "method_section": "Periodic RIJCOSX and the 2-D slab route",
      "variants": [
        "Periodic RIJCOSX",
        "2D slab J/K"
      ],
      "source_paths": [
        "cpp/src/periodic_cosx_jk_builder.cpp",
        "python/vibeqc/periodic"
      ],
      "next_proof_obligations": "Boundary-specific exchange and Coulomb kernels; quadrature; mesh symmetry and energy consistency.",
      "coverage": "Inventoried",
      "literature_keys": [
        "de_leeuw_perram_2d_ewald_1979",
        "parry_2d_ewald_1975"
      ]
    },
    {
      "id": "M34",
      "family": "Periodic systems",
      "method_section": "Electronic structure of solids: bands, DOS, COOP/COHP, bond orders, QTAIM",
      "variants": [
        "Bands",
        "DOS",
        "COOP",
        "COHP",
        "periodic bond orders",
        "periodic QTAIM"
      ],
      "source_paths": [
        "python/vibeqc/qtaim.py",
        "python/vibeqc/periodic"
      ],
      "next_proof_obligations": "Bloch normalization; energy/reference conventions; population metrics; integration and partition sum rules.",
      "coverage": "Inventoried",
      "literature_keys": [
        "bader_qtaim_1985",
        "dronskowski_cohp_1993",
        "hughbanks_hoffmann_coop_1983"
      ]
    },
    {
      "id": "M35",
      "family": "Periodic systems",
      "method_section": "Phonons, stress and variable cells",
      "variants": [
        "Phonons",
        "cell stress",
        "elastic response",
        "variable-cell optimization"
      ],
      "source_paths": [
        "python/vibeqc/basis_optimization/phonons.py",
        "python/vibeqc/periodic"
      ],
      "next_proof_obligations": "Mass weighting; force-constant symmetries; acoustic sum rule; strain/cell derivative and stress sign.",
      "coverage": "Inventoried",
      "literature_keys": []
    },
    {
      "id": "M36",
      "family": "Periodic systems",
      "method_section": "Surface embedding",
      "variants": [
        "Green-function surface embedding"
      ],
      "source_paths": [
        "python/vibeqc/periodic_embedding"
      ],
      "next_proof_obligations": "Schur complements; self-energy boundaries; layer indexing; causal Green functions and matching conditions.",
      "coverage": "Inventoried; experimental",
      "literature_keys": [
        "inglesfield_embedding_1981"
      ]
    },
    {
      "id": "M37",
      "family": "Periodic systems",
      "method_section": "AICCM: the ab initio cyclic cluster model",
      "variants": [
        "Gamma-CCM",
        "chi-CCM",
        "AICCM",
        "cyclic HF/DFT/MP2/CC variants"
      ],
      "source_paths": [
        "python/vibeqc/periodic/ccm",
        "python/vibeqc/periodic/chi"
      ],
      "next_proof_obligations": "Finite translation group; characters; sewing phases; cyclic domains; reductions and per-cell energy.",
      "coverage": "Inventoried; experimental",
      "literature_keys": [
        "peintinger_ccm_2014"
      ]
    },
    {
      "id": "M38",
      "family": "Workflows on the energy surface",
      "method_section": "Geometry optimisation, relaxed scans and intrinsic reaction coordinates",
      "variants": [
        "Geometry optimization",
        "relaxed scans",
        "IRC",
        "internal coordinates",
        "BFGS",
        "L-BFGS",
        "trust region"
      ],
      "source_paths": [
        "python/vibeqc/geomopt",
        "python/vibeqc/irc.py"
      ],
      "next_proof_obligations": "Coordinate Jacobians; energy gradient; Hessian update; step acceptance; constrained stationarity.",
      "coverage": "Inventoried",
      "literature_keys": [
        "pulay_forces_1969"
      ]
    },
    {
      "id": "M39",
      "family": "Workflows on the energy surface",
      "method_section": "Transition states: nudged elastic band, dimer and eigenvector following",
      "variants": [
        "NEB",
        "climbing-image NEB",
        "dimer",
        "eigenvector following"
      ],
      "source_paths": [
        "python/vibeqc/neb.py",
        "python/vibeqc/geomopt"
      ],
      "next_proof_obligations": "Projected forces; tangent normalization; saddle index; translation/rotation treatment; convergence assumptions.",
      "coverage": "Inventoried",
      "literature_keys": []
    },
    {
      "id": "M40",
      "family": "Workflows on the energy surface",
      "method_section": "Vibrational frequencies and thermochemistry",
      "variants": [
        "Vibrational analysis",
        "IR/Raman intensities",
        "harmonic thermochemistry",
        "quasi-RRHO"
      ],
      "source_paths": [
        "python/vibeqc/thermo.py",
        "python/vibeqc/runner.py"
      ],
      "next_proof_obligations": "Mass-weighted Hessian; unit conversions; zero modes; partition functions; standard-state and low-frequency conventions.",
      "coverage": "Inventoried",
      "literature_keys": []
    },
    {
      "id": "M41",
      "family": "Workflows on the energy surface",
      "method_section": "Molecular dynamics, metadynamics and conical intersections",
      "variants": [
        "Molecular dynamics",
        "thermostats",
        "metadynamics",
        "conical intersections"
      ],
      "source_paths": [
        "python/vibeqc/md.py",
        "python/vibeqc/runner.py"
      ],
      "next_proof_obligations": "Integrator map; timestep error; thermostat distribution; bias derivatives; state crossings and branch conditions.",
      "coverage": "Inventoried",
      "literature_keys": []
    },
    {
      "id": "M42",
      "family": "Workflows on the energy surface",
      "method_section": "Basis-set optimisation",
      "variants": [
        "Basis-set optimization",
        "periodic basis optimization",
        "counterpoise objectives"
      ],
      "source_paths": [
        "python/vibeqc/basis_optimization"
      ],
      "next_proof_obligations": "Exponent positivity; contraction normalization; linear-dependence handling; objective/gradient consistency.",
      "coverage": "Inventoried",
      "literature_keys": []
    },
    {
      "id": "M43",
      "family": "Analysis of the wavefunction",
      "method_section": "Charges, bond orders and localised orbitals",
      "variants": [
        "Mulliken",
        "Lowdin",
        "Hirshfeld",
        "CM5",
        "IAO",
        "IBO",
        "Boys",
        "Pipek-Mezey",
        "bond orders",
        "QTAIM"
      ],
      "source_paths": [
        "python/vibeqc/iao.py",
        "python/vibeqc/iao_population.py",
        "python/vibeqc/qtaim.py"
      ],
      "next_proof_obligations": "Metric populations; partition sum rules; localization invariance; charge conservation; real-space integration.",
      "coverage": "Inventoried",
      "literature_keys": [
        "hirshfeld_1977",
        "knizia_ibo_2013",
        "mayer_bond_order_1983",
        "wiberg_bond_index_1968"
      ]
    },
    {
      "id": "M44",
      "family": "Analysis of the wavefunction",
      "method_section": "Energy decomposition and orbital entanglement",
      "variants": [
        "Energy decomposition",
        "orbital entanglement"
      ],
      "source_paths": [
        "python/vibeqc/eda.py",
        "python/vibeqc/solvers"
      ],
      "next_proof_obligations": "Partition definitions; energy component sum; reduced density spectra; entropy normalization and domains.",
      "coverage": "Inventoried",
      "literature_keys": [
        "legeza_entanglement_2003",
        "morokuma_eda_1971",
        "su_li_eda_2009"
      ]
    },
    {
      "id": "M45",
      "family": "Analysis of the wavefunction",
      "method_section": "Natural orbitals, natural transition orbitals and volumetric data",
      "variants": [
        "Natural orbitals",
        "natural transition orbitals",
        "cube grids",
        "density/orbital volumes"
      ],
      "source_paths": [
        "python/vibeqc/runner.py",
        "python/vibeqc/output"
      ],
      "next_proof_obligations": "Metric eigenproblems; SVD invariances; occupancy sum; grid interpolation and spatial normalization.",
      "coverage": "Inventoried",
      "literature_keys": []
    }
  ],
  "supporting_layers": [
    {
      "name": "Foundations",
      "scope": "Nonrelativistic Born-Oppenheimer Hamiltonian; atomic units; Slater determinant; real/complex AO spaces",
      "obligations": "Basis and Hamiltonian conventions are stated; a continuum-to-finite-basis derivation is not proved.",
      "source_paths": [
        "docs/methods.md",
        "cpp/include/vibeqc/integrals.hpp"
      ]
    },
    {
      "name": "Integrals and basis",
      "scope": "Gaussian normalization; spherical/Cartesian transforms; integral engines; ECPs; symmetry; screening",
      "obligations": "Specify and prove normalization, recurrences and transforms; bound screening/roundoff separately.",
      "source_paths": [
        "cpp/src/integrals.cpp",
        "cpp/include/vibeqc/basis.hpp"
      ]
    },
    {
      "name": "Functional and parameter catalogs",
      "scope": "libxc functional IDs and aliases; weighted mixtures; dispersion parameters; Slater-Koster tables; ML checkpoints",
      "obligations": "Families are parametric: an inventory row does not prove every functional, parameter set or checkpoint.",
      "source_paths": [
        "python/vibeqc/output/citations/database.toml",
        "docs/user_guide/functionals.md"
      ]
    },
    {
      "name": "Additional response and analysis",
      "scope": "Electric/magnetic multipoles; NMR/GIAO; EPR; spin-orbit properties; Raman/VCD; descriptors",
      "obligations": "Specify each response derivative, operator, gauge and supported route before extending the pilot.",
      "source_paths": [
        "docs/features.md",
        "docs/user_guide/properties.md"
      ]
    },
    {
      "name": "Interchange and orchestration",
      "scope": "QVF; TREXIO; inputs/outputs; external data fetcher; queue",
      "obligations": "Track units, dimensions and provenance; scheduling and rendering are outside mathematical-method proof coverage.",
      "source_paths": [
        "docs/features.md",
        "python/vibeqc/output"
      ]
    }
  ],
  "feature_sections": [
    {
      "section": "Molecular SCF",
      "covered_by": [
        "M01",
        "M02",
        "M21"
      ]
    },
    {
      "section": "Wavefunction methods (v0.9.0-v0.12.0)",
      "covered_by": [
        "M16",
        "M17",
        "M18"
      ]
    },
    {
      "section": "Post-HF correlation methods",
      "covered_by": [
        "M10",
        "M11",
        "M12",
        "M13",
        "M14",
        "M15"
      ]
    },
    {
      "section": "Density fitting + RIJCOSX (v0.8.0)",
      "covered_by": [
        "M06"
      ]
    },
    {
      "section": "Periodic SCF (native GDF / GPW / BIPOLE / Γ-CCM / χ-CCM)",
      "covered_by": [
        "M28",
        "M29",
        "M30",
        "M31",
        "M32",
        "M33",
        "M37"
      ]
    },
    {
      "section": "Semiempirical methods + MLIP (v0.11.0-v0.12.0)",
      "covered_by": [
        "M22",
        "M23",
        "M24",
        "M25",
        "M26",
        "M27"
      ]
    },
    {
      "section": "Effective core potentials",
      "covered_by": [
        "M07"
      ]
    },
    {
      "section": "SCF convergence aids",
      "covered_by": [
        "M09"
      ]
    },
    {
      "section": "XC functionals (v0.8.0 expanded)",
      "covered_by": [
        "M02",
        "M03",
        "M11"
      ]
    },
    {
      "section": "Ewald summation (Phase 12e, mostly shipped)",
      "covered_by": [
        "M29",
        "M32"
      ]
    },
    {
      "section": "External data fetcher (`vqfetch`, v0.8.0)",
      "covered_by": [
        "Interchange and orchestration"
      ]
    },
    {
      "section": "Job queue (`vq` v0.5.6, v0.8.0)",
      "covered_by": [
        "Interchange and orchestration"
      ]
    },
    {
      "section": "Properties",
      "covered_by": [
        "M19",
        "M20",
        "M21",
        "M34",
        "M35",
        "M40",
        "M43",
        "M44",
        "M45",
        "Additional response and analysis"
      ]
    },
    {
      "section": "Solvation (CPCM / COSMO v0.9.0, COSMO-RS v0.15.158)",
      "covered_by": [
        "M08"
      ]
    },
    {
      "section": "Input / output",
      "covered_by": [
        "Interchange and orchestration"
      ]
    },
    {
      "section": "Basis sets",
      "covered_by": [
        "M42",
        "Integrals and basis"
      ]
    },
    {
      "section": "Crystal / lattice infrastructure",
      "covered_by": [
        "M28",
        "M29",
        "M35",
        "M36",
        "M37"
      ]
    },
    {
      "section": "Validation",
      "covered_by": [
        "all"
      ]
    },
    {
      "section": "Known issues",
      "covered_by": [
        "all"
      ]
    }
  ],
  "dispatch_registries": {
    "path": "python/vibeqc/runner.py",
    "selectors": {
      "_CITYPE_SUPPORTED": [
        "bccd",
        "bccd(t)",
        "cc2",
        "cc3",
        "ccd",
        "ccsd",
        "ccsd(t)",
        "ccsdt",
        "cepa(0)",
        "cepa(1)",
        "cepa(2)",
        "cepa(3)",
        "cepa0",
        "cepa1",
        "cepa2",
        "cepa3",
        "cisd",
        "lccd",
        "lccsd",
        "qcisd",
        "qcisd(t)"
      ],
      "_CITYPE_UNIMPLEMENTED": [
        "cepa",
        "cepa(n)",
        "cepan"
      ],
      "_CC_VARIANT_METHODS": [
        "cc2",
        "ccd",
        "cepa(0)",
        "cepa(1)",
        "cepa(2)",
        "cepa(3)",
        "lccd",
        "lccsd",
        "qcisd",
        "qcisd(t)"
      ],
      "_BCCD_METHODS": [
        "bccd",
        "bccd(t)"
      ],
      "_DOUBLE_HYBRID_METHODS": [
        "b2plyp",
        "dsd-pbep86",
        "pwpb95",
        "revdsd-pbep86"
      ],
      "_WB97X_D_METHODS": [
        "wb97x-d",
        "wb97xd"
      ]
    }
  }
}
