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: src/tnfr/physics/phase_transition.py

phase_transition.py

Source Code

python
r"""TNFR Phase Transition Module — Life/Non-Life as Universal Symmetry Breaking.

Derives the **life/non-life phase transition** from TNFR unified fields,
replacing static threshold criteria with a rigorous second-order phase
transition theory grounded in the nodal equation.

MAIN RESULT (Structural Phase Transition Theorem)
==================================================
The symmetry breaking field

    𝒮 = (|∇φ|² − K_φ²) + (J_φ² − J_ΔNFR²)

serves as the **order parameter** of a second-order phase transition
between non-life (symmetric, ⟨𝒮⟩ = 0) and life (broken symmetry,
⟨𝒮⟩ ≠ 0).

Key predictions derived from the nodal equation (audit 2026: the
constant correspondence is an overlay, only π is a genuine scale):

1. **Symmetry classification**:
       𝒮 = 0  ⟹  symmetric phase (non-life)
       𝒮 ≠ 0  ⟹  broken symmetry (life)

2. **Chirality requirement**: Life requires non-zero chirality
   χ = |∇φ|·K_φ − J_φ·J_ΔNFR (biological homochirality).

3. **Critical exponent**: Near the transition the order parameter follows
   a power law |⟨𝒮⟩| ~ |p − p_c|^{β}. The exponent is an OBSERVABLE to be
   MEASURED (``fit_critical_exponent``); it is NOT a derived universal
   constant — a measurement across sweep protocols gives protocol-dependent
   values (audit 2026), so the reference scale ≈ 0.196 (π/16) used below is a
   calibrated TIER-2 parameter, not a prediction.

4. **Divergent correlation length**: ξ_C → ∞ at the critical point,
   as required for any continuous phase transition.

DERIVATION
==========
From the nodal equation ∂EPI/∂t = νf · ΔNFR(t):

**Step 1**: The symmetry breaking field 𝒮 measures the imbalance between
conjugate field pairs.  In the symmetric (non-life) phase, gradient and
curvature sectors are balanced: |∇φ|² ≈ K_φ² and J_φ² ≈ J_ΔNFR²,
giving ⟨𝒮⟩ = 0.

**Step 2**: Autopoietic dynamics (A > 1) create a persistent imbalance
where self-generation amplifies the gradient sector over the curvature
sector, breaking the conjugate symmetry: ⟨𝒮⟩ ≠ 0.

**Step 3**: The chirality field χ measures handedness.  Mirror symmetry
(χ = 0) prevails in non-life; autopoiesis selects a preferred chirality
(|χ| > 0), providing the homochirality signature of biological systems.

**Step 4**: Near the critical point p_c, the order parameter scales as
|⟨𝒮⟩| ~ |p − p_c|^{β}. The exponent β is MEASURED, not derived: a sweep
across protocols gives protocol-dependent values (audit 2026), so there is
no universal closed-form exponent. The reference scale ≈ 0.196 (π/16) is retained
only as a calibrated noise-floor scale (TIER-2), not a
prediction of the nodal equation.

**Step 5**: The coherence length ξ_C diverges at p_c via standard
Landau theory, signalling the onset of long-range structural
correlations that enable collective autopoietic behavior.

Physics Foundation
------------------
- Nodal equation: ∂EPI/∂t = νf · ΔNFR(t)
- Unified fields: 𝒮 and χ from unified.py (single source of truth)
- Phase-gradient reference scale: ≈ 0.196 (π/16; calibrated TIER-2; audit
  2026: NOT a derived universal exponent — the measured exponent is
  protocol-dependent)
- Coherence length: ξ_C from canonical.py

See Also
--------
unified.py : 𝒮 and χ field computations (authoritative)
life.py    : Autopoietic coefficient A (static threshold)
cell.py    : Cellular criteria (static thresholds)
gauge.py   : U(1) gauge structure of Ψ = K_φ + i·J_φ
"""

from __future__ import annotations

import math
from dataclasses import dataclass, field
from enum import Enum
from typing import Any, Sequence

from ..mathematics.unified_numerical import np

try:
    import networkx as nx
except ImportError:  # pragma: no cover
    nx = None

from .canonical import estimate_coherence_length

# Delegate to authoritative field computations (single source of truth)
from .unified import compute_chirality_field, compute_symmetry_breaking_field

# ============================================================================
# EMERGENT CLASSIFICATION — sampling-noise z-scores (NO magic constant)
# ============================================================================
# Audit 2026: the symmetric phase has ⟨𝒮⟩ = 0 EXACTLY (by symmetry), so any
# finite-N deviation is sampling noise with standard error SE = √(Var/N). The
# phase is decided by the z-score |⟨𝒮⟩|/SE — the statistical significance of
# the symmetry breaking, MEASURED from the system itself. The previous magic
# scales were verified INERT (they sat in a two-order-of-
# magnitude gap; sweeping them changed no classification) and were removed.
# The only cut is z = 1 (one sampling sigma) — the noise scale itself, not a
# free parameter.

#: Significance cut: a field is "broken" when its z-score exceeds one sampling
#: standard error (z > 1). This is the noise scale, not a tunable constant.
Z_SIGNIFICANCE: float = 1.0


def symmetry_zscore(mean_abs: float, variance: float, n: int) -> float:
    r"""Sampling-noise z-score |mean| / SE, with SE = √(Var/N).

    The emergent significance of a field's deviation from zero, measured
    against the system's own finite-N sampling noise — no magic constant.
    Returns 0.0 for a perfectly uniform zero field (Var=0, mean=0) and +∞
    for a uniform non-zero field (Var=0, mean>0, a fully broken state).
    """
    if n <= 0:
        return 0.0
    se = math.sqrt(max(variance, 0.0) / n)
    if se == 0.0:
        return 0.0 if mean_abs == 0.0 else math.inf
    return mean_abs / se


# ============================================================================
# DATA STRUCTURES
# ============================================================================


class Phase(Enum):
    """Structural phase classification from symmetry breaking analysis."""

    NON_LIFE = "non_life"  # Symmetric: ⟨𝒮⟩ ≈ 0, |⟨χ⟩| ≈ 0
    CRITICAL = "critical"  # Near transition: ⟨𝒮⟩ small, ξ_C large
    LIFE = "life"  # Broken symmetry: ⟨𝒮⟩ ≠ 0, |⟨χ⟩| > 0


@dataclass
class PhaseTransitionTelemetry:
    r"""Container for life/non-life phase transition telemetry.

    Captures the complete structural signature of the symmetry breaking
    transition, including order parameter, chirality, susceptibility,
    coherence length, and critical exponent measurements.

    All quantities derive from the nodal equation via unified fields.

    Attributes
    ----------
    times : list[float]
        Structural time stamps (Hz_str units).
    order_parameter : np.ndarray
        Network-averaged symmetry breaking ⟨𝒮⟩(t).  ⟨𝒮⟩ = 0 → non-life,
        ⟨𝒮⟩ ≠ 0 → life.
    order_parameter_abs : np.ndarray
        |⟨𝒮⟩|(t) — magnitude of order parameter for scaling analysis.
    chirality_mean : np.ndarray
        Network-averaged chirality ⟨χ⟩(t).  Non-zero → homochirality.
    chirality_abs_mean : np.ndarray
        ⟨|χ|⟩(t) — mean absolute chirality (non-zero even without
        preferred handedness if local chirality exists).
    susceptibility : np.ndarray
        χ_𝒮(t) = N · Var(𝒮) — fluctuation susceptibility.  Diverges
        at the critical point.
    coherence_length : np.ndarray
        ξ_C(t) — spatial correlation scale.  Diverges at criticality.
    phase_classification : list[Phase]
        Phase assignment per time step.
    transition_time : float | None
        First structural time where the system transitions from NON_LIFE
        to LIFE, with linear interpolation at the crossing.  None if no
        transition detected.
    critical_time : float | None
        Time of maximum susceptibility (closest to critical point).
    measured_exponent : float | None
        Fitted critical exponent from |⟨𝒮⟩| ~ |t − t_c|^{β} in the
        post-transition regime. This is the real observable (audit 2026:
        the exponent is protocol-dependent, not a universal constant — there
        is no derived 'theoretical' value to compare against).
    exponent_fit_r_squared : float | None
        Coefficient of determination R² for the power-law fit.
    """

    times: list[float]
    order_parameter: np.ndarray
    order_parameter_abs: np.ndarray
    chirality_mean: np.ndarray
    chirality_abs_mean: np.ndarray
    susceptibility: np.ndarray
    coherence_length: np.ndarray
    phase_classification: list[Phase] = field(default_factory=list)
    transition_time: float | None = None
    critical_time: float | None = None
    measured_exponent: float | None = None
    exponent_fit_r_squared: float | None = None


@dataclass
class PhaseSnapshot:
    """Instantaneous phase transition diagnostics for a single graph state.

    Lighter-weight alternative to :class:`PhaseTransitionTelemetry` for
    point-in-time analysis without a time series.
    """

    order_parameter: float  # ⟨𝒮⟩
    order_parameter_abs: float  # |⟨𝒮⟩|
    chirality_mean: float  # ⟨χ⟩
    chirality_abs_mean: float  # ⟨|χ|⟩
    susceptibility: float  # N · Var(𝒮)
    coherence_length: float  # ξ_C
    phase: Phase  # Classified phase
    has_homochirality: bool  # |⟨χ⟩| > threshold


# ============================================================================
# CORE COMPUTATIONS
# ============================================================================


def compute_order_parameter(G: Any) -> dict[str, float]:
    r"""Compute the phase transition order parameter from symmetry breaking.

    Returns network statistics of 𝒮 = (|∇φ|² − K_φ²) + (J_φ² − J_ΔNFR²):

    - ⟨𝒮⟩ = (1/N) Σ_i 𝒮(i)  — mean (order parameter)
    - ⟨|𝒮|⟩ = (1/N) Σ_i |𝒮(i)|  — mean magnitude
    - Var(𝒮) = ⟨𝒮²⟩ − ⟨𝒮⟩²  — variance
    - χ_𝒮 = N · Var(𝒮)  — susceptibility (diverges at critical point)

    Parameters
    ----------
    G : NetworkX graph
        Network with structural attributes (phase/theta, delta_nfr).

    Returns
    -------
    dict[str, float]
        Keys: 'mean', 'abs_mean', 'variance', 'susceptibility',
        'max', 'min', 'n_nodes'.
    """
    S_field = compute_symmetry_breaking_field(G)
    values = np.array(list(S_field.values()))
    N = len(values)
    if N == 0:
        return {
            "mean": 0.0,
            "abs_mean": 0.0,
            "variance": 0.0,
            "susceptibility": 0.0,
            "max": 0.0,
            "min": 0.0,
            "n_nodes": 0,
        }
    mean = float(np.mean(values))
    return {
        "mean": mean,
        "abs_mean": float(np.mean(np.abs(values))),
        "variance": float(np.var(values)),
        "susceptibility": float(N * np.var(values)),
        "max": float(np.max(values)),
        "min": float(np.min(values)),
        "n_nodes": N,
    }


def compute_chirality_statistics(G: Any) -> dict[str, float]:
    r"""Compute chirality field statistics for homochirality detection.

    Chirality χ = |∇φ|·K_φ − J_φ·J_ΔNFR.
    Non-zero ⟨χ⟩ indicates broken mirror symmetry (homochirality).

    Parameters
    ----------
    G : NetworkX graph

    Returns
    -------
    dict[str, float]
        Keys: 'mean', 'abs_mean', 'variance', 'max_abs', 'n_nodes'.
    """
    chi_field = compute_chirality_field(G)
    values = np.array(list(chi_field.values()))
    N = len(values)
    if N == 0:
        return {
            "mean": 0.0,
            "abs_mean": 0.0,
            "variance": 0.0,
            "max_abs": 0.0,
            "n_nodes": 0,
        }
    return {
        "mean": float(np.mean(values)),
        "abs_mean": float(np.mean(np.abs(values))),
        "variance": float(np.var(values)),
        "max_abs": float(np.max(np.abs(values))),
        "n_nodes": N,
    }


def classify_phase(
    order_z: float,
    chirality_z: float,
) -> Phase:
    r"""Classify the structural phase from emergent z-scores.

    The phase is decided by the STATISTICAL SIGNIFICANCE of symmetry
    breaking, measured against the system's own sampling noise — no magic
    constant (audit 2026). With ``order_z = |⟨𝒮⟩|/SE`` and
    ``chirality_z = ⟨|χ|⟩/SE`` (SE = √(Var/N), via :func:`symmetry_zscore`):

    - **NON_LIFE**: ``order_z ≤ 1`` — ⟨𝒮⟩ is within one sampling sigma of
      zero (symmetric phase).
    - **LIFE**: ``order_z > 1`` AND ``chirality_z > 1`` — significant
      symmetry breaking with significant homochirality.
    - **CRITICAL**: ``order_z > 1`` but ``chirality_z ≤ 1`` — broken
      magnitude without a significant preferred handedness (intermediate).

    Parameters
    ----------
    order_z : float
        Sampling-noise z-score of |⟨𝒮⟩| (symmetry-breaking significance).
    chirality_z : float
        Sampling-noise z-score of ⟨|χ|⟩ (homochirality significance).

    Returns
    -------
    Phase
        NON_LIFE, CRITICAL, or LIFE.
    """
    if order_z <= Z_SIGNIFICANCE:
        return Phase.NON_LIFE
    if chirality_z > Z_SIGNIFICANCE:
        return Phase.LIFE
    return Phase.CRITICAL


def capture_phase_snapshot(G: Any) -> PhaseSnapshot:
    """Capture instantaneous phase transition diagnostics.

    Parameters
    ----------
    G : NetworkX graph
        Network with structural attributes.

    Returns
    -------
    PhaseSnapshot
        Point-in-time phase transition diagnostics.
    """
    op = compute_order_parameter(G)
    chi = compute_chirality_statistics(G)
    xi = estimate_coherence_length(G)
    if math.isnan(xi):
        xi = 0.0

    n_nodes = op["n_nodes"]
    order_z = symmetry_zscore(op["abs_mean"], op["variance"], n_nodes)
    chirality_z = symmetry_zscore(chi["abs_mean"], chi["variance"], n_nodes)
    phase = classify_phase(order_z, chirality_z)

    return PhaseSnapshot(
        order_parameter=op["mean"],
        order_parameter_abs=op["abs_mean"],
        chirality_mean=chi["mean"],
        chirality_abs_mean=chi["abs_mean"],
        susceptibility=op["susceptibility"],
        coherence_length=xi,
        phase=phase,
        has_homochirality=chirality_z > Z_SIGNIFICANCE,
    )


# ============================================================================
# TIME-SERIES ANALYSIS — PHASE TRANSITION DETECTION
# ============================================================================


def detect_phase_transition(
    graph_sequence: Sequence[Any],
    times: Sequence[float],
) -> PhaseTransitionTelemetry:
    r"""Detect life/non-life phase transition from a time series of graph states.

    Computes the order parameter ⟨𝒮⟩, chirality ⟨χ⟩, susceptibility,
    and coherence length at each time step, then:

    1. Classifies each snapshot as NON_LIFE / CRITICAL / LIFE.
    2. Finds the transition time via interpolation on |⟨𝒮⟩|.
    3. Identifies the critical time (peak susceptibility).
    4. Fits the critical exponent from the post-transition power law
       |⟨𝒮⟩| ~ |t − t_c|^{γ_c}.

    Parameters
    ----------
    graph_sequence : Sequence[nx.Graph]
        Time-ordered TNFR network states.
    times : Sequence[float]
        Structural times corresponding to each graph state.

    Returns
    -------
    PhaseTransitionTelemetry
        Complete transition diagnostics including measured exponent.
    """
    times = list(times)
    n = len(graph_sequence)

    order_param = np.zeros(n)
    order_param_abs = np.zeros(n)
    chi_mean = np.zeros(n)
    chi_abs_mean = np.zeros(n)
    suscept = np.zeros(n)
    xi_c = np.zeros(n)
    order_z_series = np.zeros(n)
    phases: list[Phase] = []

    for i, G in enumerate(graph_sequence):
        op = compute_order_parameter(G)
        chi = compute_chirality_statistics(G)
        xi = estimate_coherence_length(G)
        if math.isnan(xi):
            xi = 0.0

        order_param[i] = op["mean"]
        order_param_abs[i] = op["abs_mean"]
        chi_mean[i] = chi["mean"]
        chi_abs_mean[i] = chi["abs_mean"]
        suscept[i] = op["susceptibility"]
        xi_c[i] = xi

        n_nodes = op["n_nodes"]
        order_z = symmetry_zscore(op["abs_mean"], op["variance"], n_nodes)
        chirality_z = symmetry_zscore(chi["abs_mean"], chi["variance"], n_nodes)
        order_z_series[i] = order_z

        phase = classify_phase(order_z, chirality_z)
        phases.append(phase)

    # --- Transition time: interpolate where the symmetry-breaking z-score ---
    # --- crosses the significance cut (z = 1), the emergent noise scale.   ---
    transition_time = _find_crossing_time(times, order_z_series, Z_SIGNIFICANCE)

    # --- Critical time: peak susceptibility ---
    critical_time: float | None = None
    if n > 0 and np.max(suscept) > 0:
        peak_idx = int(np.argmax(suscept))
        critical_time = times[peak_idx]

    # --- Critical exponent fit ---
    measured_exp, r_squared = _fit_critical_exponent(
        times, order_param_abs, critical_time
    )

    return PhaseTransitionTelemetry(
        times=times,
        order_parameter=order_param,
        order_parameter_abs=order_param_abs,
        chirality_mean=chi_mean,
        chirality_abs_mean=chi_abs_mean,
        susceptibility=suscept,
        coherence_length=xi_c,
        phase_classification=phases,
        transition_time=transition_time,
        critical_time=critical_time,
        measured_exponent=measured_exp,
        exponent_fit_r_squared=r_squared,
    )


# ============================================================================
# CRITICAL EXPONENT MEASUREMENT
# ============================================================================


def fit_critical_exponent(
    times: Sequence[float],
    order_parameter_abs: np.ndarray,
    critical_time: float | None = None,
) -> dict[str, float | None]:
    r"""Fit the critical exponent from order parameter scaling.

    Near the transition:

        |⟨𝒮⟩| ~ |t − t_c|^{γ_c}

    Fits γ_c via log-log linear regression on the post-critical data.

    Parameters
    ----------
    times : Sequence[float]
        Structural times.
    order_parameter_abs : np.ndarray
        |⟨𝒮⟩| time series.
    critical_time : float | None
        Estimated critical time t_c.  If None, uses the midpoint where
        the order parameter first exceeds the noise floor.

    Returns
    -------
    dict[str, float | None]
        'exponent': fitted β, 'r_squared': R². Values are None if the fit
        is impossible (insufficient data). There is no 'theoretical' value:
        the exponent is a measured observable, not a derived constant.
    """
    exponent, r_sq = _fit_critical_exponent(
        list(times), order_parameter_abs, critical_time
    )
    return {
        "exponent": exponent,
        "r_squared": r_sq,
    }


# ============================================================================
# INTERNAL HELPERS
# ============================================================================


def _find_crossing_time(
    times: list[float],
    values: np.ndarray,
    threshold: float,
) -> float | None:
    """Find the first time where *values* crosses *threshold* upward.

    Uses linear interpolation between adjacent time steps for precision.
    """
    n = len(values)
    if n < 2:
        return None

    for i in range(n - 1):
        if values[i] <= threshold < values[i + 1]:
            # Linear interpolation
            dv = values[i + 1] - values[i]
            if abs(dv) < 1e-15:
                return times[i]
            alpha = (threshold - values[i]) / dv
            return times[i] + alpha * (times[i + 1] - times[i])

    # Already above threshold from start
    if values[0] > threshold:
        return times[0]

    return None


def _fit_critical_exponent(
    times: list[float],
    order_abs: np.ndarray,
    t_c: float | None,
) -> tuple[float | None, float | None]:
    r"""Fit |⟨𝒮⟩| ~ |t − t_c|^{γ_c} via log-log regression.

    Uses data points in the post-critical regime where both |t − t_c|
    and |⟨𝒮⟩| are positive.  Returns (exponent, R²) or (None, None).
    """
    if t_c is None or len(times) < 4:
        return None, None

    t_arr = np.array(times, dtype=float)
    dt = np.abs(t_arr - t_c)

    # Select post-critical points with non-trivial order parameter
    mask = (dt > 1e-12) & (order_abs > 1e-15) & (t_arr >= t_c)
    if np.sum(mask) < 3:
        # Try both sides if not enough post-critical data
        mask = (dt > 1e-12) & (order_abs > 1e-15)
    if np.sum(mask) < 3:
        return None, None

    log_dt = np.log(dt[mask])
    log_S = np.log(order_abs[mask])

    # Linear regression: log|S| = γ_c · log|t − t_c| + const
    A = np.vstack([log_dt, np.ones_like(log_dt)]).T
    try:
        result = np.linalg.lstsq(A, log_S, rcond=None)
        coeffs = result[0]
        exponent = float(coeffs[0])

        # R² computation
        predicted = A @ coeffs
        ss_res = float(np.sum((log_S - predicted) ** 2))
        ss_tot = float(np.sum((log_S - np.mean(log_S)) ** 2))
        r_squared = 1.0 - ss_res / (ss_tot + 1e-15) if ss_tot > 1e-15 else 0.0

        return exponent, r_squared
    except (np.linalg.LinAlgError, ValueError):
        return None, None


# ============================================================================
# PUBLIC API
# ============================================================================

__all__ = [
    # Enums & dataclasses
    "Phase",
    "PhaseTransitionTelemetry",
    "PhaseSnapshot",
    # Emergent classification
    "Z_SIGNIFICANCE",
    "symmetry_zscore",
    # Core computations
    "compute_order_parameter",
    "compute_chirality_statistics",
    "classify_phase",
    "capture_phase_snapshot",
    # Time-series detection
    "detect_phase_transition",
    # Critical exponent
    "fit_critical_exponent",
]