TNFR Logo
TheoryLearnSoftwareResearch

On this page

TNFR

Resonant Fractal Nature Theory — a mathematical framework for coherent patterns on graph-coupled networks.

About
  • Project history
  • Editorial policy
  • Contact
Resources
  • GitHub
  • PyPI
  • DOI · Zenodo
Legal
  • MIT License
  • Citation
© 2026 TNFR project — MIT licensed.DOI 10.5281/zenodo.17602860
docs
grammar
PHYSICS_VERIFICATION.md
API_CONTRACTS.mdCANONICAL_OZ_SEQUENCES.mdEMPIRICAL_CONFRONTATION_EEG.mdREADME.mdSTRUCTURAL_FIELDS_TETRAD.mdSTRUCTURAL_INTERFACE_THEORY.md
theory
APPLIED_STRUCTURAL_ANALYSIS.mdCATALOG_TYPE_HYGIENE_PROGRAMME.mdDISSIPATIVE_AND_OPEN_SYSTEMS.mdEMERGENT_ONTOLOGY.mdEXTENDED_FIELDS_AND_DERIVED_QUANTITIES.mdFUNDAMENTAL_THEORY.mdGAUGE_SYMMETRY_AND_UNIFICATION.mdGLOSSARY.mdMATHEMATICAL_DYNAMICS_BASIS.mdMINIMAL_STRUCTURAL_DEGREES.mdNUCLEUS_A_PRIME_LADDER_ATLAS.mdNUCLEUS_B_EQUIVARIANCE_OBSTRUCTIONS.mdPHYSICAL_REGIME_CORRESPONDENCES.mdREADME.mdREMESH_INFINITY_DERIVATION.mdSTRUCTURAL_CONSERVATION_THEOREM.mdSTRUCTURAL_OPERATORS.mdSTRUCTURAL_STABILITY_AND_DYNAMICS.mdTNFR_BSD_RESEARCH_NOTES.mdTNFR_HODGE_RESEARCH_NOTES.mdTNFR_NAVIER_STOKES_RESEARCH_NOTES.mdTNFR_NUMBER_THEORY.mdTNFR_P_VS_NP_RESEARCH_NOTES.mdTNFR_RIEMANN_RESEARCH_NOTES.mdTNFR_VARIATIONAL_PRINCIPLE.mdTNFR_YANG_MILLS_RESEARCH_NOTES.mdTNFR.pdfUNIFIED_GRAMMAR_RULES.md
factorization-lab
analysis
analyze_patterns.pycertificate_manifest.py
benchmarks
benchmark_analysis.pybenchmark_expansion_suite.pyfull_spectrum_factorization.pypaley_gap_extended.pypaley_gap_smoke.pytest_benchmark_suite.py
demos
experiment_contexts
exp_0b1663cd19b7.jsonexp_0bf0054b7474.jsonexp_75a4c8ca616a.jsonexp_848ee0fd1857.jsonexp_f6fe00562193.jsonexp_fdf3da424e1e.json
failure_telemetry_batch.pyfeedback_integration_demo.pyintegration_demo_snapshots.dbseed_management_integration_demo.pysnapshot_integration_demo.pytrajectory_143.jsontrajectory_77.jsontrajectory_89.jsontrajectory_91.jsontrajectory_97.json
docs
FACTORING_PLAYBOOK.mdFALSE_POSITIVE_TEST_SUITE.mdOPERATOR_CERTIFICATES.mdROADMAP.mdSPECTRAL_ROUTE.md
experiment_contexts
exp_cebe1d9e7d8e.json
notebooks
spectral_history.ipynb
scripts
run_false_positive_tests.py
tests
run_false_positive_test_suite.pytest_cli.pytest_false_positive_methodology.pytest_false_positive_verifier.pytest_feedback_integration.pytest_partitioning.pytest_seed_management.pytest_self_opt_support.pytest_snapshot_system.pytest_spectral_paley.pytest_verification_robustness.py
tnfr_factorization
__init__.pyapi.pycli.pyfailure_telemetry.pyfeedback_adapter.pyfeedback_integration.pypartitioning.pyself_opt_support.pyspectral_paley.py
demo_snapshots.dbLICENSE_SNAPSHOT.mdPACKAGE_SUMMARY.mdREADME.mdseed_management.pysnapshot_system.pytest_certificate_hashing.pytest_installation.pyverification_trajectory_77.json
benchmarks
analyze_tetrad_universality.pyb0star_alpha_canonical_product_graphs.pybenchmark_optimization_tracks.pybenchmark_utils.pyboundary_vibration.pybridge_primes_riemann.pychiral_involution.pycli_utils.pycoherence_projector_sense_index.pycommutant_bridge.pycomposition_arithmetic.pyconfinement_zones_test.pyconservation_law_validation.pydirected_paley_bridge.pyemergent_arithmetic_pulse.pyemergent_atom_dynamics.pyemergent_atomic_shells.pyemergent_base_dimension.pyemergent_dimension_dynamics.pyemergent_fractal_pulse.pyemergent_fractal_simplex_dimension.pyemergent_integers_symmetry.pyemergent_musical_nfr.pyemergent_nfr_geometry.pyemergent_nfr_where.pyemergent_rationals.pyemergent_rhythm.pyemergent_screening.pyemergent_shell_cardinals.pyemergent_shell_ordering.pyemergent_simplex_dimension.pyemergent_substrate_symmetry.pyequivariance_wall.pyexternal_phase_gate_validation.pyfield_methods_battery.pygolden_residue_remesh_bridge.pyintegrated_force_regime_study.pyinverse_spectrum_to_symmetry.pyk_phi_safety_demo.pykuramoto_farey_bridge.pymissing_piece_bridge.pymultichannel_interface_benchmark.pynavier_stokes_recipe_bridge.pynodal_propagator_residue_bridge.pyns_moment_hierarchy_cascade.pyoperational_irreducibility.pypaley_bridge.pyphase_curvature_investigation.pyphase_wall.pyphi_s_confinement_investigation.pyprimes_as_consequence.pypulse_phase_coherence_budget.pyREADME.mdremesh_infinity_riemann_baseline.pyremesh_infinity_riemann_composed.pyremesh_infinity_riemann_modified_graph.pyremesh_infinity_riemann_operator.pyremesh_infinity_riemann_spectral_basis.pyremesh_infinity_riemann_spectral_robustness.pyremesh_infinity_riemann_spectral.pyresidue_phase_vs_riemann.pystructural_interface_benchmark.pytemporal_interface_benchmark.pytetrad_results_aggregate.pyu2_destabilization_irreversibility.pyuniversality_clusters.pyxi_c_fast_experiment.py
primality-test
benchmarks
comprehensive_benchmark.py
docs
ADVANCED_INTEGRATION.mdmathematical_foundation.mdperformance_analysis.md
examples
advanced_examples.pybasic_usage.py
tnfr_primality
__init__.py__main__.pyadvanced_cli.pyadvanced_core.pycli.pyconstants.pycore.pyoptimized.py
MANIFEST.inPACKAGE_SUMMARY.mdREADME.mdRELEASE_NOTES_v1.0.mdsetup.pytest_installation.py
tests
core_physics
__init__.pytest_conservation_laws.pytest_delta_nfr_computation_paths.pytest_delta_nfr.pytest_dispersion_coherence_sign_invariance.pytest_emergent_constants_guard.pytest_lyapunov_operators.pytest_nodal_equation.pytest_structural_triad.py
data
replay_manifests
sample_run
_manifest_summary.json_manifest.json_partition_files.txt.gz
self_opt_validation
seed_alpha
paley.json
seed_beta
integration.json
seed_gamma
unknown.json
self_optimization
test_run
partitioned
test_run
test_run_p0.jsontest_run_p1.json
_manifest_summary.json_manifest.json
engines
test_pattern_discovery_manifest.pytest_self_optimization_engine.py
mathematics
__init__.pytest_autodiff.pytest_backends.pytest_dissipative_dynamics.pytest_epi.pytest_factory_patterns.pytest_metrics.pytest_navier_stokes_refounded.pytest_number_theory_canonical.pytest_operators.pytest_residue_networks.pytest_riemann_nodal_pulse.pytest_riemann_pulse_coherence.pytest_spaces.pytest_transforms.pytest_validator.py
operators
test_canonical_operators_modern.pytest_grammar_canon.pytest_grammar_canonical_consistency.pytest_grammar_dynamics.pytest_operator_contracts.pytest_operator_strategies.py
parallel
test_fractal_partition_manifest.py
physics
test_conservation_gauge_unification.pytest_dissipative_conservation.pytest_emergent_chemistry.pytest_field_cache_invalidation.pytest_gauge.pytest_phase_transition.pytest_signatures.pytest_spectral_conservation.pytest_structural_diffusion.pytest_structural_integrity.pytest_symplectic_substrate.pytest_tetrad_bounds.pytest_variational.pytest_yang_mills_closure.pytest_yang_mills_derivability.pytest_yang_mills_scaling.pytest_yang_mills_structural_gap.pytest_yang_mills_u6_sweep.py
scripts
test_run_self_opt_validation.pytest_run_self_optimization.py
sdk
__init__.pytest_simple_advanced.py
__init__.pyconftest.pyREADME.mdtest_breast_cancer_phase_gate_demo.pytest_classical_mechanics.pytest_distributed_fft.pytest_external_phase_gate_validation.pytest_factorization_entrypoint.pytest_multichannel_interface.pytest_nodal_optimizer.pytest_phase_gate_api.pytest_replay_register_manifest.pytest_signal_confrontation.pytest_structural_interface_api.pytest_structural_interface_baselines.pytest_structural_interface_benchmark.pytest_temporal_interface.pytest_vectorized_coherence_length_regression.pytest_wine_quality_phase_gate_demo.pyutils.py
examples
01_foundations
01_hello_world.py02_musical_resonance.py03_network_formation.py04_operator_sequences.py05_coherence_evolution.py06_network_topologies.py07_phase_transitions.py08_emergent_phenomena.py09_visualization_suite.py10_simplified_sdk_showcase.py
02_physics_regimes
11_classical_limit_comparison.py115_operator_contract_audit.py12_classical_mechanics_demo.py13_quantum_mechanics_demo.py14_uncertainty_and_interference.py15_train_crossing_demo.py17_conservation_law_demo.py26_gauge_structure_demo.py27_variational_principle_demo.py28_dissipative_systems_demo.py29_lyapunov_stability_demo.py30_self_optimization_demo.py31_mathematical_constants_basis.py33_complex_field_unification.py34_conservation_protocol_suite.py35_tetrad_irreducibility.py36_grammar_violation_detector.py37_operator_tetrad_synergy.py38_grammar_energy_landscape.py39_nodal_equation_decomposition.py
03_riemann_zeta
157_nodal_pulse_phase_attack.py41_von_mangoldt_zeta_demo.py42_riemann_zeros_as_resonances.py43_prime_ladder_hamiltonian_demo.py44_weil_explicit_formula_demo.py45_li_keiper_demo.py46_weil_tnfr_positivity_demo.py47_alpha_sweep_demo.py48_admissible_family_sweep_demo.py49_nodeaware_gauge_sweep_demo.py50_uniform_coercivity_demo.py51_adaptive_coercivity_demo.py52_paley_gap_coercivity_demo.py53_lyapunov_spectral_positivity_demo.py54_hilbert_polya_demo.py55_structural_zero_density_demo.py56_spectral_emergence_demo.py57_admissible_rescaling_demo.py58_oscillatory_correction_demo.py
04_riemann_L_twisted
59_dirichlet_l_function_demo.py60_dirichlet_l_continuation_demo.py61_dirichlet_l_hamiltonian_demo.py62_dirichlet_weil_explicit_formula_demo.py63_dirichlet_li_keiper_demo.py64_twisted_weil_positivity_demo.py65_twisted_alpha_sweep_demo.py66_twisted_admissible_family_sweep_demo.py67_twisted_nodeaware_gauge_sweep_demo.py68_twisted_hermite_family_demo.py69_twisted_coercivity_uniform_demo.py70_twisted_paley_gap_coercivity_demo.py71_twisted_lyapunov_spectral_demo.py72_twisted_hilbert_polya_demo.py73_twisted_structural_zero_density_demo.py74_twisted_spectral_emergence_demo.py75_twisted_admissible_rescaling_demo.py76_twisted_oscillatory_correction_demo.py
05_type_hygiene
77_remesh_infinity_residue_split_demo.py78_nuf_type_signature_demo.py79_epi_type_signature_demo.py80_phi_type_signature_demo.py81_dnfr_type_signature_demo.py82_remesh_window_type_signature_demo.py83_delta_phi_max_type_signature_demo.py84_coupling_weights_type_signature_demo.py85_tetrad_closure_signature_demo.py86_currents_closure_signature_demo.py87_aggregates_closure_signature_demo.py88_urules_consistency_signature_demo.py89_operator_catalog_discipline_signature_demo.py
06_navier_stokes
158_navier_stokes_two_face_refounded.py
07_number_theory
100_prime_families_orbits.py101_numbers_as_coupled_network.py102_nodal_flow_primes_equilibria.py116_nuf_emergent_prime_visibility.py146_primality_grammatical_inertness.py147_numbers_as_free_monoid_words.py148_capacity_arm_carries_von_mangoldt.py149_p14_is_the_capacity_arm_operator.py153_structural_frequency_rank_cyclotomy.py40_arithmetic_number_theory.py94_generative_number_construction.py95_primes_from_spectral_waves.py96_spectral_vibration_of_coherence.py97_goldbach_additive_multiplicative.pyemergent_chemistry_particles_demo.py
08_emergent_geometry
103_emergent_substrate_meets_riemann.py106_per_node_polarization_geometry.py107_orthogonal_structure_emergent_geometry.py108_emergent_field_generating_structure.py112_structure_predicts_coherence_flow.py113_overdamped_projection_bridge.py114_substrate_conserved_quantities.py117_emergent_geometry_residue_graph.py118_emergent_vs_classical_operator.py119_phase_sector_directed_residue.py120_symmetry_wall_substrate_vs_spectrum.py121_canonical_symmetry_break_negative.py122_factorization_phase_sector.py123_symmetry_sector_decomposition.py124_emergent_metric_fractal_consistency.py125_node_is_the_emergent_substrate.py126_two_layers_base_fiber.py127_base_is_emergent_not_imposed.py128_base_substrate_coemergence.py129_spectral_gap_base_fiber_clock.py130_operators_break_substrate_charges.py131_coemergent_loop_convergence.py132_geometric_phase_holonomy.py133_psi_topological_defects.py134_spectral_dimension_heat_kernel.py135_arrow_of_time_h_theorem.py136_heat_kernel_coefficients.py137_synchronization_transition.py138_structure_frequency_synchronization.py139_grammar_formal_language.py140_grammar_automaton.py141_grammar_rule_decomposition.py142_grammar_operator_quotient.py143_glyphic_function_sublanguage.py144_branching_combinator.py145_syntactic_monoid_starfree.py150_emergent_grammatical_pattern_parry.py151_grammar_in_emergent_geometry.py152_operator_contract_tetrahedron.py154_conductor_annotated_qr_spectrum.py155_ontological_position_of_numbers.py156_emergence_directness_law.py98_emergent_symplectic_substrate.py99_structural_diffusion.pyunified_fields_showcase.py
09_millennium
109_p_vs_np_coherence_synthesis.py110_bsd_rank_structural_pressure.py111_hodge_discrete_and_honest_gap.py
10_applications
159_empirical_confrontation_pipeline.py90_phase_gate_monitor_demo.py91_breast_cancer_phase_gate_demo.py92_wine_quality_phase_gate_demo.py93_structural_interface_demo.pypytorch_cuda_demo.py
README.md
scripts
replay
__init__.pyregister_manifest.py
__init__.pyREADME.mdrebuild_failure_manifest.pyrun_reproducible_benchmarks.pyrun_self_opt_validation.pyrun_self_optimization.pytnfr_is_prime.pyvalidate_conservation_law.pyverify_internal_references.py
src
core
__init__.pyevaluation.py
tnfr
backends
__init__.pyjax_backend.pynumpy_backend.pyoptimized_numpy.pyREADME.mdtorch_backend.py
cli
__init__.py__init__.pyiarguments.pyarguments.pyiexecution.pyexecution.pyiinteractive_validator.pyREADME.mdutils.pyutils.pyi
compat
__init__.pydataclass.pyjsonschema_stub.pymatplotlib_stub.pynumpy_stub.pyREADME.md
config
__init__.py__init__.pyiconstants.pyconstants.pyidefaults_core.pydefaults_init.pydefaults_metric.pydefaults.pyfeature_flags.pyfeature_flags.pyiglyph_constants.pyoperator_names.pyoperator_names.pyiphysics_derivation.pyprecision_modes.pypresets.pypresets.pyiREADME.mdsecurity.pythresholds.pytnfr_config.py
constants
__init__.py__init__.pyialiases.pyaliases.pyicanonical.pymetric.pymetric.pyioperational.py
core
__init__.pycontainer.pydefault_implementations.pyexceptions.pyinterfaces.pyREADME.md
dynamics
__init__.py__init__.pyiadaptation.pyadaptation.pyiadaptive_sequences.pyadaptive_sequences.pyiadelic.pyadvanced_cache_optimizer.pyadvanced_fft_arithmetic.pyaliases.pyaliases.pyibifurcation.pycache_aware_fft_engine.pycanonical.pycanonical.pyicomputational_hub.pycoordination.pycoordination.pyidistributed_fft.pydnfr.pydnfr.pyidynamic_limits.pyemergent_centralization.pyemergent_integration_engine.pyfeedback.pyfeedback.pyifft_backend.pyfft_cache_coordinator.pyfft_dispatchers.pyfft_engine.pyfft_workers.pyfused_dnfr.pyhomeostasis.pyhomeostasis.pyiintegrators.pyintegrators.pyilearning.pylearning.pyimetabolism.pymulti_modal_cache.pynbody_tnfr.pynbody.pynodal_optimizer.pyoptimization_orchestrator.pypropagation.pyREADME.mdruntime.pyruntime.pyisampling.pysampling.pyiselectors.pyselectors.pyiself_optimizing_engine.pyspectral_structural_fusion.pystructural_cache.pystructural_clip.pysymplectic.pyunified_backend.pyunified_mathematical_cache_orchestrator.py
engines
computation
__init__.pyfft_engine.pyunified_fft_engine.pyunified_gpu_system.py
constants
__init__.pycanonical.pyoperational.py
integration
__init__.pyemergent_integration.py
pattern_discovery
__init__.pymathematical_patterns.pymulti_modal_cache.py
self_optimization
__init__.pyengine.py
__init__.pyREADME.md
errors
__init__.pycontextual.py
factorization
__init__.py
flatten
README.md
gamma
README.md
glyph_history
README.md
glyph_runtime
README.md
immutable
README.md
initialization
README.md
io
README.md
math
__init__.pyfields_symbolic.pygrammar_validators.pyoptimizer.pyREADME.mdsymbolic.py
mathematics
__init__.pybackend.pybackend.pyidynamics.pydynamics.pyiepi.pyepi.pyigenerators.pygenerators.pyiliouville.pymetrics.pymetrics.pyinumber_theory.pyoperators_factory.pyoperators_factory.pyioperators.pyoperators.pyioptimized_primality.pyprojection.pyprojection.pyiREADME.mdruntime.pyruntime.pyispaces.pyspaces.pyispectral.pytransforms.pytransforms.pyiunified_cache.pyunified_numerical.pyzeta.py
metrics
__init__.py__init__.pyibuffer_cache.pybuffer_cache.pyicache_utils.pycoherence.pycoherence.pyicommon.pycommon.pyicore.pycore.pyidiagnosis.pydiagnosis.pyiemergence.pyexport.pyexport.pyiglyph_timing.pyglyph_timing.pyilearning_metrics.pylearning_metrics.pyilocal_coherence.pyphase_coherence.pyphase_compatibility.pyREADME.mdreporting.pyreporting.pyisense_index.pysense_index.pyitelemetry.pytetrad.pytrig_cache.pytrig_cache.pyitrig.pytrig.pyi
multiscale
__init__.pyhierarchical.pyREADME.md
navier_stokes
__init__.pyconservative_face.pyoperator.py
node
README.md
observers
README.md
operators
network_analysis
__init__.pysource_detection.py
postconditions
__init__.pymutation.py
preconditions
__init__.pycoherence.pydissonance.pyemission.pymutation.pyreception.pyresonance.py
strategies
__init__.pydefaults.pygpu_strategies.pystrategy.py
__init__.py__init__.pyialgebra.pycanonical_patterns.pycascade.pycoherence.pycontraction.pycoupling.pycycle_detection.pydefinitions_base.pydefinitions.pydefinitions.pyidissonance.pyemission.pyexpansion.pygrammar_application.pygrammar_canon.pygrammar_context.pygrammar_core.pygrammar_dynamics.pygrammar_error_factory.pygrammar_memoization.pygrammar_patterns.pygrammar_telemetry.pygrammar_types.pygrammar_u6.pygrammar_validate.pygrammar.pygrammar.pyihamiltonian.pyhealth_analyzer.pyintrospection.pyjitter.pyjitter.pyilifecycle.pymetabolism.pymetrics_basic.pymetrics_core.pymetrics_network.pymetrics_structural.pymetrics_u6.pymetrics.pymutation.pynodal_equation.pyoperator_contracts.pypattern_detection.pypatterns.pyREADME.mdreception.pyrecursivity.pyregistry.pyregistry.pyiremesh.pyremesh.pyiresonance.pyself_organization.pysilence.pystructural_units.pytransition.py
parallel
__init__.pyauto_scaler.pydistributed.pyengine.pymonitoring.pypartitioner.pyREADME.md
performance
guardrails.py
physics
__init__.py_helpers.pycalibration.pycanonical.pycell.pyclassical_mechanics.pyconservation_gauge_unification.pyconservation.pydissipative_conservation.pyemergent_chemistry.pyemergent_particles.pyextended.pyfields.pygauge.pyintegrity.pyinteractions.pylife.pylyapunov.pypatterns.pyphase_transition.pyquantum_mechanics.pyREADME.mdsignatures.pyspectral_conservation.pyspectral_metrics.pystructural_diffusion.pysymplectic_substrate.pytelemetry.pyunified.pyvariational.pyvectorized_ops.py
primality
__init__.py
recipes
__init__.pycookbook.pyREADME.md
riemann
__init__.pyadmissible_family_sweep.pyadmissible_rescaling.pyaggregates_closure_signature.pyalpha_sweep.pyanalytic_continuation_dirichlet.pyanalytic_continuation.pycoercivity_uniform.pycoupling_weights_type_signature.pycurrents_closure_signature.pydelta_phi_max_type_signature.pydirichlet_l.pydnfr_type_signature.pyepi_type_signature.pyhilbert_polya.pyli_keiper.pylyapunov_spectral_positivity.pynodal_pulse.pynodeaware_gauge_sweep.pynuf_type_signature.pyoperator_catalog_discipline_signature.pyoperator.pyoscillatory_correction.pypaley_gap_coercivity.pyphi_type_signature.pyprime_ladder_hamiltonian.pypulse_coherence.pyremesh_infinity_residue_split.pyremesh_window_type_signature.pyspectral_emergence.pystructural_zero_density.pytelemetry.pytetrad_closure_signature.pytwisted_admissible_family_sweep.pytwisted_admissible_rescaling.pytwisted_alpha_sweep.pytwisted_coercivity_uniform.pytwisted_hermite_family.pytwisted_hilbert_polya.pytwisted_li_keiper.pytwisted_lyapunov_spectral_positivity.pytwisted_nodeaware_gauge_sweep.pytwisted_oscillatory_correction.pytwisted_paley_gap_coercivity.pytwisted_prime_ladder_hamiltonian.pytwisted_spectral_emergence.pytwisted_structural_zero_density.pytwisted_weil_explicit_formula.pytwisted_weil_positivity.pyurules_consistency_signature.pyvon_mangoldt.pyweil_explicit_formula.pyweil_positivity.py
schemas
__init__.pygrammar.jsonREADME.md
sdk
__init__.py__init__.pyiadaptive_system.pyadaptive_system.pyibuilders.pybuilders.pyifluent.pyfluent.pyiREADME.mdself_opt.pysimple.pytemplates.pytemplates.pyiutils.py
security
__init__.pycrypto.pydatabase.pyREADME.mdsubprocess.pyvalidation.py
sequencing
__init__.pypatterns.pyREADME.md
services
__init__.pyorchestrator.pyREADME.md
sparse
__init__.pyREADME.mdrepresentations.py
structural
README.md
telemetry
__init__.pycache_metrics.pycache_metrics.pyiconstants.pynu_f.pynu_f.pyiREADME.mdunified_telemetry_system.pyverbosity.pyverbosity.pyi
tools
__init__.pydomain_templates.pyREADME.mdsequence_generator.pytnfr_is_prime_cli_optimized.pytnfr_is_prime_cli.py
topology
__init__.pyasymmetry.pyREADME.md
utils
cache_layers.pycache.pycache.pyicallbacks.pycallbacks.pyichunks.pychunks.pyidata.pydata.pyifast_diameter.pygraph.pygraph.pyiinit.pyinit.pyiio.pyio.pyinumeric.pynumeric.pyiREADME.mdtopology.pyunified_cache.py
validation
__init__.py__init__.pyiaggregator.pybase.pycompatibility.pycompatibility.pyiconfig.pygraph.pygraph.pyihealth.pyinput_validation.pyinterface_baselines.pyinvariants.pymultichannel_interface.pyphase_gate.pyREADME.mdrules.pyrules.pyiruntime.pyruntime.pyisequence_validator.pysignal_confrontation.pysoft_filters.pysoft_filters.pyispectral.pyspectral.pyistructural_interface.pytemporal_interface.pyunified_validation_system.pyvalidator.pywindow.pywindow.pyi
visualization
__init__.pycascade_viz.pyhierarchy.pyREADME.mdsequence_plotter.py
yang_mills
__init__.pyclosure.pyderivability.pyscaling.pystructural_gap.pyu6_sweep.py
__init__.py__init__.pyi_compat.py_version.py_version.pyialias.pyalias.pyibackend_config.pycache.pycache.pyiexecution.pyexecution.pyiflatten.pyflatten.pyigamma.pygamma.pyiglyph_history.pyglyph_history.pyiglyph_runtime.pyglyph_runtime.pyiimmutable.pyimmutable.pyiinitialization.pyinitialization.pyiio.pyio.pyilocking.pylocking.pyinode.pynode.pyiobservers.pyobservers.pyiontosim.pyontosim.pyipy.typedrng.pyrng.pyisecure_config.pyselector.pyselector.pyisense.pysense.pyistructural.pystructural.pyitokens.pytokens.pyitrace.pytrace.pyitypes.pytypes.pyiunits.pyunits.pyi
tetrad_evaluator.py
.pre-commit-config.yaml.semgrep.yaml.zenodo.jsonARCHITECTURE.mdbandit.yamlCHANGELOG.mdCITATION.cffCONTRIBUTING.mdEMERGENT_CANON_AUDIT.mdEMERGENT_DERIVATION_PLAN.mdLICENSE.mdMakefileMANIFEST.inpyproject.tomlpyrightconfig.jsonPYTORCH_CUDA_INTEGRATION.mdREADME.mdSECURITY.mdTESTING.mdTNFR_Website_Content_Brief.md
FILE: tests/physics/test_symplectic_substrate.py

test_symplectic_substrate.py

Tests for the emergent symplectic substrate.

Module under test: physics/symplectic_substrate.py. Verifies that the geometry emerging from the TNFR nodal dynamics is a valid symplectic manifold: antisymmetric non-degenerate closed 2-form, canonical Poisson brackets, Jacobi identity, Liouville volume preservation, harmonic Hamiltonian flow, and consistency with the canonical energy functional.

Source Code

python
"""Tests for the emergent symplectic substrate.

Module under test: physics/symplectic_substrate.py.
Verifies that the geometry emerging from the TNFR nodal dynamics is a valid
symplectic manifold: antisymmetric non-degenerate closed 2-form, canonical
Poisson brackets, Jacobi identity, Liouville volume preservation, harmonic
Hamiltonian flow, and consistency with the canonical energy functional.
"""

from __future__ import annotations

import math
import random

import networkx as nx
import numpy as np

from tnfr.dynamics.dnfr import default_compute_delta_nfr
from tnfr.physics.conservation import compute_energy_functional
from tnfr.physics.symplectic_substrate import (
    BLOCK_COMPATIBLE_METRIC,
    BLOCK_COMPLEX_STRUCTURE,
    BLOCK_SYMPLECTIC_FORM,
    background_potential,
    canonical_bracket_table,
    compatible_metric_matrix,
    complex_structure_matrix,
    diagonal_moment_map,
    evolve_substrate_flow,
    extract_phase_space_point,
    geometric_sector_energy,
    hamiltonian_vector_field,
    kahler_potential,
    liouville_divergence,
    loop_action_integral,
    noether_charges,
    polarization_density,
    polarization_vector,
    potential_sector_energy,
    reduced_symplectic_form_matrix,
    substrate_flow_matrix,
    substrate_hamiltonian,
    symplectic_form_matrix,
    to_action_angle,
    to_complex_coordinates,
    verify_adiabatic_invariance,
    verify_canonical_structure,
    verify_hermitian_structure,
    verify_integrability,
    verify_noether_conservation,
    verify_poincare_cartan,
    verify_polarization_symmetry,
    verify_substrate_geometry,
    verify_symplectic_reduction,
)


def _canonical_graph(n: int = 30, seed: int = 5) -> nx.Graph:
    rng = random.Random(seed)
    G = nx.watts_strogatz_graph(n, 4, 0.3, seed=seed)
    for node in G.nodes():
        G.nodes[node]["theta"] = rng.uniform(0.0, 2.0 * math.pi)
        G.nodes[node]["EPI"] = rng.uniform(0.2, 0.8)
        G.nodes[node]["nu_f"] = rng.uniform(0.5, 1.5)
    default_compute_delta_nfr(G)
    return G


class TestBlockSymplecticForm:
    """The per-node canonical block J4 has the symplectic properties."""

    def test_antisymmetric(self) -> None:
        assert np.allclose(BLOCK_SYMPLECTIC_FORM.T, -BLOCK_SYMPLECTIC_FORM)

    def test_nondegenerate_determinant_one(self) -> None:
        assert abs(float(np.linalg.det(BLOCK_SYMPLECTIC_FORM)) - 1.0) < 1e-12

    def test_square_is_minus_identity(self) -> None:
        # J^2 = -I is the defining property of the canonical complex
        # structure underlying the symplectic form.
        j2 = BLOCK_SYMPLECTIC_FORM @ BLOCK_SYMPLECTIC_FORM
        assert np.allclose(j2, -np.eye(4))


class TestSymplecticFormMatrix:
    """The full 4N x 4N form is block-diagonal and symplectic."""

    def test_dimension(self) -> None:
        omega = symplectic_form_matrix(7)
        assert omega.shape == (28, 28)

    def test_antisymmetric_and_nondegenerate(self) -> None:
        omega = symplectic_form_matrix(10)
        assert np.allclose(omega.T, -omega)
        # det of a 4N block-diagonal of det-1 blocks is 1.
        assert abs(float(np.linalg.det(omega)) - 1.0) < 1e-9

    def test_rejects_zero_nodes(self) -> None:
        import pytest

        with pytest.raises(ValueError):
            symplectic_form_matrix(0)


class TestCanonicalBrackets:
    """Poisson brackets are canonical: {q,p}=delta, others zero."""

    def test_conjugate_brackets_unity(self) -> None:
        table = canonical_bracket_table()
        assert abs(table["{qA,pA}"] - 1.0) < 1e-12
        assert abs(table["{qB,pB}"] - 1.0) < 1e-12

    def test_cross_and_self_brackets_vanish(self) -> None:
        table = canonical_bracket_table()
        assert abs(table["{qA,qB}"]) < 1e-12
        assert abs(table["{pA,pB}"]) < 1e-12
        assert abs(table["{qA,pB}"]) < 1e-12
        assert abs(table["{pA,qB}"]) < 1e-12


class TestPhaseSpaceExtraction:
    """The phase-space point is extracted from canonical fields."""

    def test_dimension_is_four_n(self) -> None:
        G = _canonical_graph(20)
        pt = extract_phase_space_point(G)
        assert pt.n_nodes == 20
        assert pt.dimension == 80
        assert pt.to_vector().shape == (80,)

    def test_vector_ordering(self) -> None:
        G = _canonical_graph(10)
        pt = extract_phase_space_point(G)
        z = pt.to_vector().reshape(pt.n_nodes, 4)
        # Per-node order is (K_phi, J_phi, Phi_s, J_dnfr).
        assert np.allclose(z[:, 0], pt.k_phi)
        assert np.allclose(z[:, 1], pt.j_phi)
        assert np.allclose(z[:, 2], pt.phi_s)
        assert np.allclose(z[:, 3], pt.j_dnfr)


class TestHamiltonianFlow:
    """The Hamiltonian flow is harmonic and volume-preserving."""

    def test_flow_is_harmonic(self) -> None:
        G = _canonical_graph(15)
        pt = extract_phase_space_point(G)
        z = pt.to_vector().reshape(pt.n_nodes, 4)
        zdot = hamiltonian_vector_field(pt).reshape(pt.n_nodes, 4)
        # q_dot = p, p_dot = -q per sector.
        expected = np.stack([z[:, 1], -z[:, 0], z[:, 3], -z[:, 2]], axis=1)
        assert np.allclose(zdot, expected)

    def test_liouville_divergence_zero(self) -> None:
        G = _canonical_graph(25)
        pt = extract_phase_space_point(G)
        assert abs(liouville_divergence(pt)) < 1e-9


class TestEnergyConsistency:
    """H_sub + background potential reconstructs the energy functional."""

    def test_decomposition_matches_energy_functional(self) -> None:
        G = _canonical_graph(30, seed=7)
        pt = extract_phase_space_point(G)
        h_sub = substrate_hamiltonian(pt)
        u_bg = background_potential(pt)
        energy = compute_energy_functional(G)
        assert abs((h_sub + u_bg) - energy) < 1e-9

    def test_substrate_hamiltonian_nonnegative(self) -> None:
        G = _canonical_graph(20)
        pt = extract_phase_space_point(G)
        assert substrate_hamiltonian(pt) >= 0.0
        assert background_potential(pt) >= 0.0


class TestCanonicalCertificate:
    """The full certificate validates the emergent symplectic manifold."""

    def test_valid_manifold(self) -> None:
        G = _canonical_graph(30)
        cert = verify_canonical_structure(G)
        assert cert.is_valid_symplectic_manifold
        assert cert.is_antisymmetric
        assert cert.is_nondegenerate
        assert cert.is_closed
        assert cert.brackets_canonical
        assert cert.jacobi_satisfied
        assert cert.flow_is_harmonic
        assert abs(cert.liouville_divergence) < 1e-9
        assert cert.dimension == 120

    def test_certificate_summary_string(self) -> None:
        G = _canonical_graph(12)
        cert = verify_canonical_structure(G)
        summary = cert.summary()
        assert "VALID" in summary
        assert "dim=48" in summary

    def test_determinant_is_one(self) -> None:
        G = _canonical_graph(10)
        cert = verify_canonical_structure(G)
        assert abs(cert.determinant - 1.0) < 1e-12


class TestNoetherCharges:
    """Noether's theorem: substrate symmetries generate conserved charges."""

    def test_charges_split_total_energy(self) -> None:
        import pytest

        G = _canonical_graph(25)
        pt = extract_phase_space_point(G)
        charges = noether_charges(pt)
        # H_sub = E_geo + E_pot exactly.
        assert charges["time_translation"] == pytest.approx(
            charges["geometric_u1"] + charges["potential_u1"], abs=1e-12
        )
        assert charges["time_translation"] == pytest.approx(
            substrate_hamiltonian(pt), abs=1e-12
        )

    def test_sector_energies_nonnegative(self) -> None:
        G = _canonical_graph(20)
        pt = extract_phase_space_point(G)
        assert geometric_sector_energy(pt) >= 0.0
        assert potential_sector_energy(pt) >= 0.0

    def test_charges_conserved_under_flow(self) -> None:
        G = _canonical_graph(30)
        cert = verify_noether_conservation(G)
        assert cert.is_conserved
        assert cert.splits_exactly
        assert cert.max_hamiltonian_drift < 1e-9
        assert cert.max_geometric_drift < 1e-9
        assert cert.max_potential_drift < 1e-9

    def test_flow_preserves_hamiltonian(self) -> None:
        import pytest

        G = _canonical_graph(20)
        pt = extract_phase_space_point(G)
        h0 = substrate_hamiltonian(pt)
        for t in (0.5, 1.3, 2.7, 10.0):
            evolved = evolve_substrate_flow(pt, t)
            assert substrate_hamiltonian(evolved) == pytest.approx(h0, abs=1e-9)

    def test_flow_at_zero_is_identity(self) -> None:
        G = _canonical_graph(15)
        pt = extract_phase_space_point(G)
        evolved = evolve_substrate_flow(pt, 0.0)
        assert np.allclose(evolved.to_vector(), pt.to_vector())

    def test_certificate_summary(self) -> None:
        G = _canonical_graph(12)
        cert = verify_noether_conservation(G)
        summary = cert.summary()
        assert "CONSERVED" in summary
        assert "H_sub" in summary


class TestHermitianStructure:
    """The substrate carries a compatible Hermitian (flat Kähler) structure."""

    def test_complex_structure_squares_to_minus_id(self) -> None:
        j = BLOCK_COMPLEX_STRUCTURE
        assert np.allclose(j @ j, -np.eye(4))

    def test_complex_structure_is_minus_symplectic_form(self) -> None:
        assert np.allclose(BLOCK_COMPLEX_STRUCTURE, -BLOCK_SYMPLECTIC_FORM)

    def test_compatible_metric_is_identity(self) -> None:
        assert np.allclose(BLOCK_COMPATIBLE_METRIC, np.eye(4))

    def test_metric_is_positive_definite(self) -> None:
        eigvals = np.linalg.eigvalsh(BLOCK_COMPATIBLE_METRIC)
        assert np.all(eigvals > 0)

    def test_compatibility_omega_equals_jt_g(self) -> None:
        # ω(u,v) = g(Ju,v)  ⟺  Ω = Jᵀ g.
        j = BLOCK_COMPLEX_STRUCTURE
        g = BLOCK_COMPATIBLE_METRIC
        assert np.allclose(BLOCK_SYMPLECTIC_FORM, j.T @ g)

    def test_j_is_metric_orthogonal(self) -> None:
        j = BLOCK_COMPLEX_STRUCTURE
        g = BLOCK_COMPATIBLE_METRIC
        assert np.allclose(j.T @ g @ j, g)

    def test_block_matrices_dimension(self) -> None:
        assert complex_structure_matrix(5).shape == (20, 20)
        assert compatible_metric_matrix(5).shape == (20, 20)

    def test_complex_structure_acts_as_i(self) -> None:
        # J(q,p) = (−p, q) for ζ = q + i·p (multiplication by i).
        j = BLOCK_COMPLEX_STRUCTURE
        assert np.allclose(j @ np.array([1.0, 0, 0, 0]), [0, 1, 0, 0])
        assert np.allclose(j @ np.array([0, 1.0, 0, 0]), [-1, 0, 0, 0])

    def test_psi_is_geometric_complex_coordinate(self) -> None:
        from tnfr.physics.unified import compute_complex_geometric_field

        G = _canonical_graph(20)
        point = extract_phase_space_point(G)
        coords = to_complex_coordinates(point)
        psi = compute_complex_geometric_field(G)
        psi_arr = np.array([psi[n] for n in point.nodes], dtype=complex)
        assert np.allclose(coords["geometric"], psi_arr)

    def test_kahler_potential_equals_hamiltonian(self) -> None:
        import pytest

        G = _canonical_graph(25)
        point = extract_phase_space_point(G)
        assert kahler_potential(point) == pytest.approx(
            substrate_hamiltonian(point), abs=1e-9
        )

    def test_certificate_valid(self) -> None:
        G = _canonical_graph(30)
        cert = verify_hermitian_structure(G)
        assert cert.is_valid_hermitian_structure
        assert cert.psi_is_geometric_coordinate
        assert cert.kahler_potential_matches
        assert cert.complex_dimension == 60
        assert "VALID" in cert.summary()


class TestIntegrability:
    """The substrate flow is completely integrable (Liouville–Arnold)."""

    def test_action_count_equals_dof(self) -> None:
        G = _canonical_graph(24)
        cert = verify_integrability(G)
        # 2N action variables for 2N degrees of freedom.
        assert cert.degrees_of_freedom == 48
        assert cert.n_action_variables == 48
        assert cert.n_action_variables == cert.degrees_of_freedom

    def test_actions_are_half_modulus_squared(self) -> None:
        G = _canonical_graph(20)
        point = extract_phase_space_point(G)
        aa = to_action_angle(point)
        coords = to_complex_coordinates(point)
        assert np.allclose(
            aa["action_geometric"], 0.5 * np.abs(coords["geometric"]) ** 2
        )
        assert np.allclose(
            aa["action_potential"], 0.5 * np.abs(coords["potential"]) ** 2
        )

    def test_actions_conserved_along_flow(self) -> None:
        G = _canonical_graph(24)
        point = extract_phase_space_point(G)
        aa0 = to_action_angle(point)
        evolved = evolve_substrate_flow(point, 2.3)
        aa = to_action_angle(evolved)
        assert np.allclose(aa["action_geometric"], aa0["action_geometric"])
        assert np.allclose(aa["action_potential"], aa0["action_potential"])

    def test_angles_advance_linearly(self) -> None:
        G = _canonical_graph(22)
        point = extract_phase_space_point(G)
        aa0 = to_action_angle(point)
        t = 0.7
        evolved = evolve_substrate_flow(point, t)
        aa = to_action_angle(evolved)
        # θ(t) = θ(0) − t, compared on the circle.
        delta = np.angle(
            np.exp(1j * (aa["angle_geometric"] - (aa0["angle_geometric"] - t)))
        )
        assert np.allclose(delta, 0.0, atol=1e-9)

    def test_actions_in_involution(self) -> None:
        G = _canonical_graph(24)
        cert = verify_integrability(G)
        assert cert.actions_in_involution
        assert cert.max_involution_bracket < 1e-12

    def test_sector_actions_match_noether_charges(self) -> None:
        import pytest

        G = _canonical_graph(24)
        point = extract_phase_space_point(G)
        aa = to_action_angle(point)
        assert float(np.sum(aa["action_geometric"])) == pytest.approx(
            geometric_sector_energy(point)
        )
        assert float(np.sum(aa["action_potential"])) == pytest.approx(
            potential_sector_energy(point)
        )

    def test_certificate_completely_integrable(self) -> None:
        G = _canonical_graph(30)
        cert = verify_integrability(G)
        assert cert.is_completely_integrable
        assert cert.actions_conserved
        assert cert.angles_advance_linearly
        assert cert.sector_actions_match_charges
        assert cert.degrees_of_freedom == 60
        assert "INTEGRABLE" in cert.summary()


class TestPoincareCartan:
    """The flow preserves the Poincaré–Cartan integral invariants."""

    def test_flow_matrix_is_symplectic(self) -> None:
        m = substrate_flow_matrix(4, 0.7)
        omega = symplectic_form_matrix(4)
        # 1st Poincaré invariant: M preserves ω.
        assert np.allclose(m.T @ omega @ m, omega)

    def test_flow_matrix_unit_determinant(self) -> None:
        m = substrate_flow_matrix(5, 1.3)
        # Top invariant ω^N = Liouville volume.
        assert abs(float(np.linalg.det(m)) - 1.0) < 1e-12

    def test_flow_matrix_dimension(self) -> None:
        assert substrate_flow_matrix(7, 0.4).shape == (28, 28)

    def test_flow_matrix_palindromic_spectrum(self) -> None:
        m = substrate_flow_matrix(3, 0.9)
        coeffs = np.poly(m)
        # Reciprocal symplectic spectrum → palindromic char poly.
        assert np.allclose(coeffs, coeffs[::-1], atol=1e-9)
        eig = np.linalg.eigvals(m)
        assert np.allclose(np.abs(eig), 1.0)

    def test_flow_matrix_invalid_nodes(self) -> None:
        import pytest

        with pytest.raises(ValueError):
            substrate_flow_matrix(0, 0.5)

    def test_loop_action_integral_equals_minus_2pi_I(self) -> None:
        # ∮ p dq = −2π·I (negative enclosed area) for the torus loop.
        val = loop_action_integral(2.0)
        assert abs(val - (-2.0 * np.pi * 2.0)) < 1e-3

    def test_relative_invariant_preserved(self) -> None:
        G = _canonical_graph(24)
        cert = verify_poincare_cartan(G)
        assert cert.relative_invariant_preserved
        assert cert.max_relative_drift < 1e-9

    def test_bohr_sommerfeld_holds(self) -> None:
        G = _canonical_graph(24)
        cert = verify_poincare_cartan(G)
        # |∮ p dq| = 2π I on the action torus.
        assert cert.bohr_sommerfeld_holds

    def test_certificate_all_invariants_hold(self) -> None:
        G = _canonical_graph(30)
        cert = verify_poincare_cartan(G)
        assert cert.all_invariants_hold
        assert cert.preserves_symplectic_form
        assert cert.volume_preserved
        assert cert.char_poly_palindromic
        assert cert.phase_space_dimension == 120
        assert "ALL HOLD" in cert.summary()


class TestMarsdenWeinstein:
    """The flow's diagonal U(1) admits a Marsden–Weinstein reduction."""

    def test_moment_map_equals_hamiltonian(self) -> None:
        import pytest

        G = _canonical_graph(20)
        point = extract_phase_space_point(G)
        j = diagonal_moment_map(point)
        assert j == pytest.approx(substrate_hamiltonian(point))

    def test_moment_map_conserved(self) -> None:
        G = _canonical_graph(24)
        cert = verify_symplectic_reduction(G)
        assert cert.moment_map_conserved
        assert cert.max_moment_drift < 1e-9

    def test_reduced_dimension_is_4n_minus_2(self) -> None:
        G = _canonical_graph(20)
        cert = verify_symplectic_reduction(G)
        assert cert.phase_space_dimension == 80
        assert cert.reduced_dimension == 78

    def test_reduced_form_shape_and_determinant(self) -> None:
        # Reduced form is (4N−2)×(4N−2), det = (2N)².
        red = reduced_symplectic_form_matrix(3)
        assert red.shape == (10, 10)
        assert abs(float(np.linalg.det(red)) - 36.0) < 1e-6

    def test_reduced_form_nondegenerate(self) -> None:
        G = _canonical_graph(24)
        cert = verify_symplectic_reduction(G)
        assert cert.reduced_form_nondegenerate
        assert abs(cert.reduced_form_determinant) > 1.0

    def test_reduced_form_invalid_nodes(self) -> None:
        import pytest

        with pytest.raises(ValueError):
            reduced_symplectic_form_matrix(0)

    def test_relative_phases_invariant(self) -> None:
        G = _canonical_graph(24)
        cert = verify_symplectic_reduction(G)
        assert cert.relative_phases_invariant

    def test_certificate_valid_reduction(self) -> None:
        G = _canonical_graph(30)
        cert = verify_symplectic_reduction(G)
        assert cert.is_valid_reduction
        assert cert.moment_map_is_hamiltonian
        assert cert.reduced_dimension == 118
        assert "VALID" in cert.summary()


class TestPolarizationSymmetry:
    """The substrate carries a polarization symmetry (U(2)) with Stokes vector."""

    def test_polarization_vector_present(self) -> None:
        G = _canonical_graph(24)
        ch = polarization_vector(extract_phase_space_point(G))
        assert set(ch) == {"p_1", "p_2", "p_3", "magnitude_sq"}

    def test_p3_equals_sector_energy_difference(self) -> None:
        import pytest

        G = _canonical_graph(24)
        point = extract_phase_space_point(G)
        ch = polarization_vector(point)
        e_diff = geometric_sector_energy(point) - potential_sector_energy(point)
        assert ch["p_3"] == pytest.approx(e_diff)

    def test_magnitude_is_sum_of_squares(self) -> None:
        import pytest

        G = _canonical_graph(20)
        ch = polarization_vector(extract_phase_space_point(G))
        assert ch["magnitude_sq"] == pytest.approx(
            ch["p_1"] ** 2 + ch["p_2"] ** 2 + ch["p_3"] ** 2
        )

    def test_su2_algebra_closes(self) -> None:
        G = _canonical_graph(24)
        cert = verify_polarization_symmetry(G)
        assert cert.su2_algebra_closes
        assert cert.max_algebra_residual < 1e-6

    def test_rotation_is_symplectic(self) -> None:
        G = _canonical_graph(24)
        cert = verify_polarization_symmetry(G)
        assert cert.rotation_is_symplectic

    def test_charges_conserved_along_flow(self) -> None:
        G = _canonical_graph(24)
        cert = verify_polarization_symmetry(G)
        assert cert.charges_conserved
        assert cert.max_charge_drift < 1e-6

    def test_certificate_valid_polarization(self) -> None:
        G = _canonical_graph(30)
        cert = verify_polarization_symmetry(G)
        assert cert.is_valid_polarization_symmetry
        assert cert.p3_equals_energy_difference
        assert "VALID" in cert.summary()

    def test_full_polarization_per_node_radius_equals_energy(self) -> None:
        G = _canonical_graph(24)
        d = polarization_density(extract_phase_space_point(G))
        # |P_node| = e_node (the Poincaré sphere S²; fully polarized).
        assert np.allclose(d["radius"], d["energy"])

    def test_polarization_density_poincare_is_unit(self) -> None:
        G = _canonical_graph(20)
        d = polarization_density(extract_phase_space_point(G))
        norms = np.sqrt((d["poincare"] ** 2).sum(axis=0))
        assert np.allclose(norms, 1.0)

    def test_density_sums_to_global_charges(self) -> None:
        import pytest

        G = _canonical_graph(24)
        point = extract_phase_space_point(G)
        d = polarization_density(point)
        glob = polarization_vector(point)
        assert float(d["p_1"].sum()) == pytest.approx(glob["p_1"])
        assert float(d["p_2"].sum()) == pytest.approx(glob["p_2"])
        assert float(d["p_3"].sum()) == pytest.approx(glob["p_3"])

    def test_certificate_reports_full_polarization(self) -> None:
        G = _canonical_graph(30)
        cert = verify_polarization_symmetry(G)
        assert cert.full_polarization_holds
        assert cert.max_polarization_residual < 1e-9
        assert "fully polarized" in cert.summary()


class TestSubstrateGeometryReport:
    """The consolidated aggregator runs the whole tower in one call."""

    def test_all_structures_valid(self) -> None:
        G = _canonical_graph(30)
        report = verify_substrate_geometry(G)
        assert report.all_structures_valid
        assert report.n_nodes == 30
        assert report.phase_space_dimension == 120

    def test_bundles_seven_certificates(self) -> None:
        G = _canonical_graph(20)
        report = verify_substrate_geometry(G)
        # Each sub-certificate is the same type the individual verify returns.
        assert report.canonical.is_valid_symplectic_manifold
        assert report.noether.is_conserved
        assert report.hermitian.is_valid_hermitian_structure
        assert report.integrability.is_completely_integrable
        assert report.poincare_cartan.all_invariants_hold
        assert report.marsden_weinstein.is_valid_reduction
        assert report.polarization.is_valid_polarization_symmetry

    def test_sub_certificates_match_individual_calls(self) -> None:
        G = _canonical_graph(24)
        report = verify_substrate_geometry(G)
        # The aggregated canonical certificate matches a direct call.
        direct = verify_canonical_structure(G)
        assert (
            report.canonical.is_valid_symplectic_manifold
            == direct.is_valid_symplectic_manifold
        )
        assert report.marsden_weinstein.reduced_dimension == 4 * 24 - 2

    def test_summary_lists_all_seven(self) -> None:
        G = _canonical_graph(20)
        report = verify_substrate_geometry(G)
        summary = report.summary()
        assert "ALL VALID" in summary
        # Seven numbered structures appear in the multi-line summary.
        for k in range(1, 8):
            assert f"  {k}." in summary


class TestSubstrateIntegration:
    """The emergent substrate is exposed across SDK, telemetry, and API."""

    def test_physics_package_exports(self) -> None:
        from tnfr.physics import extract_phase_space_point as _eps
        from tnfr.physics import substrate_hamiltonian as _sh
        from tnfr.physics import symplectic_form_matrix as _sfm
        from tnfr.physics import verify_canonical_structure as _vcs

        assert callable(_eps)
        assert callable(_vcs)
        assert callable(_sh)
        assert callable(_sfm)

    def test_unified_telemetry_includes_substrate(self) -> None:
        from tnfr.physics.fields import compute_unified_telemetry

        G = _canonical_graph(20)
        telemetry = compute_unified_telemetry(G)
        assert "symplectic_substrate" in telemetry
        sub = telemetry["symplectic_substrate"]
        assert sub["phase_space_dimension"] == 80
        assert abs(sub["liouville_divergence"]) < 1e-9

    def test_unified_telemetry_includes_pulse(self) -> None:
        # dual-face telemetry: the conservative pulse (the resonant rhythm)
        # alongside the dissipative canonical coherence read-out
        from tnfr.physics.fields import compute_unified_telemetry

        G = _canonical_graph(20)
        telemetry = compute_unified_telemetry(G)
        assert "pulse" in telemetry
        pulse = telemetry["pulse"]
        assert pulse["n_modes"] >= 1
        assert pulse["fundamental"] > 0.0
        assert pulse["vibration_energy"] > 0.0

    def test_unified_telemetry_includes_resonance(self) -> None:
        # the per-NFR pulse / resonance face (the source the collective
        # rhythm emerges from) alongside the collective pulse
        from tnfr.physics.fields import compute_unified_telemetry

        G = _canonical_graph(20)
        telemetry = compute_unified_telemetry(G)
        assert "resonance" in telemetry
        res = telemetry["resonance"]
        assert 0.0 <= res["phase_coherence"] <= 1.0
        assert 0.0 <= res["mean_local_resonance"] <= 1.0
        assert res["n_nodes"] == 20

    def test_sdk_symplectic_substrate_method(self) -> None:
        from tnfr.sdk import TNFR, SymplecticReport

        net = TNFR.create(20).ring().evolve(2)
        report = net.symplectic_substrate()
        assert isinstance(report, SymplecticReport)
        assert report.is_valid_manifold
        assert report.phase_space_dimension == 80
        assert "VALID" in report.summary()

    def test_sdk_analyze_includes_substrate(self) -> None:
        from tnfr.sdk import TNFR

        net = TNFR.create(15).ring().evolve(2)
        analysis = TNFR.analyze(net)
        assert "symplectic_substrate" in analysis
        assert analysis["features"]["symplectic_substrate"] is True


class TestAdiabaticInvariance:
    """The substrate action is an adiabatic invariant of a slow nu_f ramp."""

    def test_slow_ramp_conserves_action(self) -> None:
        cert = verify_adiabatic_invariance()
        assert cert.is_adiabatic_invariant
        assert cert.slow_drift < 1e-2

    def test_drift_decreases_with_slowness(self) -> None:
        # the adiabatic signature: slower ramp -> smaller action drift
        cert = verify_adiabatic_invariance()
        assert cert.drift_decreases_with_slowness
        assert cert.slow_drift < cert.fast_drift

    def test_fast_ramp_breaks_invariance(self) -> None:
        # a sudden ramp (T=1) injects/extracts action: large drift
        cert = verify_adiabatic_invariance(ramp_times=(1.0, 80.0))
        assert cert.fast_drift > 0.1

    def test_drift_series_trends_down(self) -> None:
        cert = verify_adiabatic_invariance(ramp_times=(1.0, 5.0, 20.0, 80.0))
        drifts = cert.action_drifts
        # the slow end is far below the fast end (orders of magnitude)
        assert drifts[-1] < drifts[0] / 10.0

    def test_certificate_valid(self) -> None:
        from tnfr.physics.symplectic_substrate import AdiabaticInvarianceCertificate

        cert = verify_adiabatic_invariance()
        assert isinstance(cert, AdiabaticInvarianceCertificate)
        assert "VALID" in cert.summary()
        assert "clock" in cert.summary()