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: examples/02_physics_regimes/39_nodal_equation_decomposition.py

39_nodal_equation_decomposition.py

Example 39 — Nodal Equation Operator Decomposition

Decomposes the nodal equation dEPI/dt = nu_f * DELTA_NFR(t) into per-operator contributions, tracing the complete causal chain:

text
Operator -> (nu_f, DELTA_NFR) -> dEPI/dt -> Tetrad Fields -> Conservation

Physics

The nodal equation is the single dynamical law of TNFR. Every operator modifies EPI exclusively through this equation by changing either nu_f (reorganisation capacity) or DELTA_NFR (reorganisation pressure) or both.

This experiment measures:

  1. How each operator partitions its effect between nu_f and DELTA_NFR
  2. How the resulting dEPI/dt maps to tetrad field changes
  3. How conservation quantities (Q, E) respond to each component

The decomposition reveals that operators do not change EPI directly — they modulate the terms of the nodal equation, and the equation itself propagates changes to the structural fields.

References

  • theory/STRUCTURAL_OPERATORS.md (per-operator physics)
  • theory/UNIFIED_GRAMMAR_RULES.md (nodal equation derivation)
  • src/tnfr/operators/nodal_equation.py (validation implementation)
  • AGENTS.md: "Nodal Equation Integrity" (Invariant #1)

Source Code

python
#!/usr/bin/env python3
"""
Example 39 — Nodal Equation Operator Decomposition
===================================================

Decomposes the nodal equation dEPI/dt = nu_f * DELTA_NFR(t) into
per-operator contributions, tracing the complete causal chain:

    Operator -> (nu_f, DELTA_NFR) -> dEPI/dt -> Tetrad Fields -> Conservation

Physics
-------
The nodal equation is the *single* dynamical law of TNFR. Every operator
modifies EPI *exclusively* through this equation by changing either nu_f
(reorganisation capacity) or DELTA_NFR (reorganisation pressure) or both.

This experiment measures:
  1. How each operator partitions its effect between nu_f and DELTA_NFR
  2. How the resulting dEPI/dt maps to tetrad field changes
  3. How conservation quantities (Q, E) respond to each component

The decomposition reveals that operators do not change EPI directly —
they modulate the *terms* of the nodal equation, and the equation itself
propagates changes to the structural fields.

References
----------
- theory/STRUCTURAL_OPERATORS.md (per-operator physics)
- theory/UNIFIED_GRAMMAR_RULES.md (nodal equation derivation)
- src/tnfr/operators/nodal_equation.py (validation implementation)
- AGENTS.md: "Nodal Equation Integrity" (Invariant #1)
"""

import copy
import math
import os
import sys

import networkx as nx
import numpy as np

sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "..", "src"))

from tnfr.constants import inject_defaults
from tnfr.operators.definitions import (
    Coherence,
    Contraction,
    Coupling,
    Dissonance,
    Emission,
    Expansion,
    Mutation,
    Reception,
    Recursivity,
    Resonance,
    SelfOrganization,
    Silence,
    Transition,
)
from tnfr.operators.nodal_equation import compute_expected_depi_dt
from tnfr.physics.conservation import compute_energy_functional, compute_noether_charge
from tnfr.physics.fields import (
    compute_phase_curvature,
    compute_phase_gradient,
    compute_structural_potential,
    estimate_coherence_length,
)

# ── reproducibility ──────────────────────────────────────────────────────
SEED = 42
np.random.seed(SEED)


# ── helpers ──────────────────────────────────────────────────────────────


def _build_graph(n: int = 20, p: float = 0.25) -> nx.Graph:
    """Build a connected random graph with TNFR defaults and non-trivial state."""
    G = nx.erdos_renyi_graph(n, p, seed=SEED)
    if not nx.is_connected(G):
        components = list(nx.connected_components(G))
        for i in range(1, len(components)):
            u = next(iter(components[i - 1]))
            v = next(iter(components[i]))
            G.add_edge(u, v)
    inject_defaults(G)
    rng = np.random.default_rng(SEED)
    for n_id in G.nodes():
        G.nodes[n_id]["phase"] = rng.uniform(0, 2 * math.pi)
        G.nodes[n_id]["theta"] = G.nodes[n_id]["phase"]
        G.nodes[n_id]["delta_nfr"] = rng.uniform(-0.3, 0.3)
        G.nodes[n_id]["nu_f"] = rng.uniform(0.8, 1.2)
    return G


def _epi_scalar(val):
    """Extract a scalar magnitude from an EPI value.

    After operator application EPI is a dict
    {'continuous': (c1, c2), 'discrete': (d1, d2), 'grid': (g1, g2)}.
    We return the magnitude of the first continuous component,
    matching the canonical _max_bepi_magnitude convention.
    """
    if isinstance(val, dict):
        c = val.get("continuous", ((0.0,),))
        try:
            return float(abs(c[0]))
        except (TypeError, IndexError):
            return 0.0
    try:
        return float(val)
    except (TypeError, ValueError):
        return 0.0


def _capture_node(G, node):
    """Capture full node state for nodal equation analysis."""
    d = G.nodes[node]
    return {
        "EPI": _epi_scalar(d.get("EPI", 0.0)),
        "nu_f": float(d.get("nu_f", 0.0)),
        "delta_nfr": float(d.get("delta_nfr", 0.0)),
        "theta": float(d.get("theta", 0.0)),
    }


def _tetrad_summary(G):
    """Compute scalar tetrad summary for the whole network."""
    phi_s = compute_structural_potential(G)
    grad_phi = compute_phase_gradient(G)
    k_phi = compute_phase_curvature(G)
    xi_c = estimate_coherence_length(G)
    return {
        "Phi_s_mean": float(np.mean(list(phi_s.values()))),
        "grad_phi_mean": float(np.mean(list(grad_phi.values()))),
        "K_phi_rms": float(np.sqrt(np.mean([v**2 for v in k_phi.values()]))),
        "xi_C": float(xi_c),
    }


# ═══════════════════════════════════════════════════════════════════════
# EXPERIMENT 1: Nodal Equation Decomposition Per Operator
# ═══════════════════════════════════════════════════════════════════════


def experiment_nodal_decomposition():
    """For each operator, measure how it changes nu_f vs DELTA_NFR.

    The nodal equation dEPI/dt = nu_f * DELTA_NFR means operators have
    two "levers": they can change the frequency (capacity) or the
    pressure (driving force). Different operators pull different levers.
    """
    print("=" * 72)
    print("  EXPERIMENT 1: Nodal Equation Decomposition Per Operator")
    print("  dEPI/dt = nu_f * DELTA_NFR: which lever does each op pull?")
    print("=" * 72)

    G_base = _build_graph()
    target = 0

    ALL_OPS = [
        ("AL", "Emission", Emission),
        ("EN", "Reception", Reception),
        ("IL", "Coherence", Coherence),
        ("OZ", "Dissonance", Dissonance),
        ("UM", "Coupling", Coupling),
        ("RA", "Resonance", Resonance),
        ("SHA", "Silence", Silence),
        ("VAL", "Expansion", Expansion),
        ("NUL", "Contraction", Contraction),
        ("THOL", "SelfOrg", SelfOrganization),
        ("ZHIR", "Mutation", Mutation),
        ("NAV", "Transition", Transition),
        ("REMESH", "Recursivity", Recursivity),
    ]

    print(
        f'\n  {"Glyph":7s} {"Name":14s} {"d(nu_f)":>10s} {"d(DNFR)":>10s}'
        f' {"d(EPI)":>10s} {"nu_f*DNFR":>10s} {"Primary lever":>16s}'
    )
    print("  " + "-" * 82)

    lever_summary = {}
    for glyph, name, cls in ALL_OPS:
        G = copy.deepcopy(G_base)
        before = _capture_node(G, target)

        try:
            op = cls()
            op(G, target)
            after = _capture_node(G, target)

            d_nu_f = after["nu_f"] - before["nu_f"]
            d_dnfr = after["delta_nfr"] - before["delta_nfr"]
            d_epi = after["EPI"] - before["EPI"]
            expected = before["nu_f"] * before["delta_nfr"]

            # Classify primary lever
            if abs(d_nu_f) > abs(d_dnfr) * 2 and abs(d_nu_f) > 1e-8:
                lever = "nu_f (capacity)"
            elif abs(d_dnfr) > abs(d_nu_f) * 2 and abs(d_dnfr) > 1e-8:
                lever = "DNFR (pressure)"
            elif abs(d_nu_f) > 1e-8 or abs(d_dnfr) > 1e-8:
                lever = "BOTH"
            else:
                lever = "NEUTRAL"

            lever_summary[glyph] = lever
            print(
                f"  {glyph:7s} {name:14s} {d_nu_f:+10.6f} {d_dnfr:+10.6f}"
                f" {d_epi:+10.6f} {expected:10.6f} {lever:>16s}"
            )
        except Exception as exc:
            lever_summary[glyph] = "SKIPPED"
            print(f"  {glyph:7s} {name:14s} [SKIPPED: {str(exc)[:40]}]")

    print("\n  Lever Classification Summary:")
    for category in ["nu_f (capacity)", "DNFR (pressure)", "BOTH", "NEUTRAL"]:
        ops = [g for g, l in lever_summary.items() if l == category]
        if ops:
            print(f'    {category:20s}: {", ".join(ops)}')

    return lever_summary


# ═══════════════════════════════════════════════════════════════════════
# EXPERIMENT 2: Causal Chain — Operator -> Nodal Eq -> Tetrad
# ═══════════════════════════════════════════════════════════════════════


def experiment_causal_chain():
    """Trace the full causal chain from operator to tetrad fields.

    For selected operators (one stabiliser, one destabiliser, one coupling):
      1. Measure (nu_f, DELTA_NFR) before/after
      2. Compute predicted dEPI/dt = nu_f * DELTA_NFR
      3. Measure tetrad field response
      4. Measure conservation quantity change

    This demonstrates that the tetrad is a *diagnostic* of the nodal
    equation, not an independent dynamical system.
    """
    print("\n" + "=" * 72)
    print("  EXPERIMENT 2: Full Causal Chain")
    print("  Operator -> (nu_f, DNFR) -> dEPI/dt -> Tetrad -> Conservation")
    print("=" * 72)

    test_ops = [
        ("IL", "Coherence (stabiliser)", Coherence),
        ("OZ", "Dissonance (destabiliser)", Dissonance),
        ("UM", "Coupling (phase-gated)", Coupling),
        ("AL", "Emission (generator)", Emission),
    ]

    for glyph, label, cls in test_ops:
        G = _build_graph()
        target = 0

        # Before state
        node_before = _capture_node(G, target)
        tetrad_before = _tetrad_summary(G)
        E_before = compute_energy_functional(G)
        Q_before = compute_noether_charge(G)
        predicted_depi = compute_expected_depi_dt(G, target)

        # Apply operator
        try:
            op = cls()
            op(G, target)
            applied = True
        except Exception:
            applied = False

        # After state
        node_after = _capture_node(G, target)
        tetrad_after = _tetrad_summary(G)
        E_after = compute_energy_functional(G)
        Q_after = compute_noether_charge(G)

        print(f"\n  --- {label} ({glyph}) ---")
        if not applied:
            print("  [Operator preconditions not met; skipped]")
            continue

        print(f"  Nodal Equation Decomposition:")
        print(
            f'    nu_f:     {node_before["nu_f"]:.6f}'
            f' -> {node_after["nu_f"]:.6f}'
            f'  (d = {node_after["nu_f"] - node_before["nu_f"]:+.6f})'
        )
        print(
            f'    DNFR:     {node_before["delta_nfr"]:.6f}'
            f' -> {node_after["delta_nfr"]:.6f}'
            f'  (d = {node_after["delta_nfr"] - node_before["delta_nfr"]:+.6f})'
        )
        print(
            f'    EPI:      {node_before["EPI"]:.6f}'
            f' -> {node_after["EPI"]:.6f}'
            f'  (d = {node_after["EPI"] - node_before["EPI"]:+.6f})'
        )
        print(f"    Predicted dEPI/dt = nu_f * DNFR = {predicted_depi:.6f}")

        print(f"  Tetrad Response:")
        for field in ["Phi_s_mean", "grad_phi_mean", "K_phi_rms", "xi_C"]:
            b = tetrad_before[field]
            a = tetrad_after[field]
            print(f"    {field:15s}: {b:.6f} -> {a:.6f}" f"  (d = {a - b:+.6f})")

        print(f"  Conservation:")
        print(
            f"    E (energy): {E_before:.6f} -> {E_after:.6f}"
            f"  (dE = {E_after - E_before:+.6f})"
        )
        print(
            f"    Q (charge): {Q_before:.6f} -> {Q_after:.6f}"
            f"  (dQ = {Q_after - Q_before:+.6f})"
        )


# ═══════════════════════════════════════════════════════════════════════
# EXPERIMENT 3: Multi-Step Nodal Equation Trajectory
# ═══════════════════════════════════════════════════════════════════════


def experiment_multi_step_trajectory():
    """Track nu_f, DELTA_NFR, and EPI evolution through a full sequence.

    This provides a "waveform view" of the nodal equation, showing how
    the two terms (nu_f, DELTA_NFR) oscillate as operators are applied.
    """
    print("\n" + "=" * 72)
    print("  EXPERIMENT 3: Multi-Step Nodal Equation Trajectory")
    print("  Waveform: nu_f(t), DELTA_NFR(t), EPI(t)")
    print("=" * 72)

    G = _build_graph()
    target = 0

    # Extended sequence: Bootstrap + Explore + Stabilise + Propagate
    sequence = [
        ("AL", Emission()),
        ("EN", Reception()),
        ("UM", Coupling()),
        ("IL", Coherence()),
        ("OZ", Dissonance()),
        ("IL", Coherence()),
        ("RA", Resonance()),
        ("IL", Coherence()),
        ("SHA", Silence()),
    ]

    print(
        f'\n  {"t":>3s} {"Op":>5s} {"nu_f":>10s} {"DNFR":>10s}'
        f' {"nu_f*DNFR":>10s} {"EPI":>10s} {"dEPI":>10s}'
    )
    print("  " + "-" * 62)

    state = _capture_node(G, target)
    product = state["nu_f"] * state["delta_nfr"]
    print(
        f"  {0:3d} {'---':>5s} {state['nu_f']:10.6f}"
        f" {state['delta_nfr']:10.6f}"
        f" {product:10.6f} {state['EPI']:10.6f} {'---':>10s}"
    )

    epi_prev = state["EPI"]
    trajectory = [state.copy()]
    for i, (glyph, op) in enumerate(sequence):
        try:
            op(G, target)
        except Exception:
            pass
        state = _capture_node(G, target)
        product = state["nu_f"] * state["delta_nfr"]
        d_epi = state["EPI"] - epi_prev
        print(
            f"  {i + 1:3d} {glyph:>5s} {state['nu_f']:10.6f}"
            f" {state['delta_nfr']:10.6f}"
            f" {product:10.6f} {state['EPI']:10.6f}"
            f" {d_epi:+10.6f}"
        )
        epi_prev = state["EPI"]
        trajectory.append(state.copy())

    # Compute waveform statistics
    nu_fs = [t["nu_f"] for t in trajectory]
    dnfrs = [t["delta_nfr"] for t in trajectory]
    epis = [t["EPI"] for t in trajectory]

    print(f"\n  Waveform Statistics:")
    print(
        f"    nu_f  range: [{min(nu_fs):.4f}, {max(nu_fs):.4f}]"
        f"  mean = {np.mean(nu_fs):.4f}"
    )
    print(
        f"    DNFR  range: [{min(dnfrs):.4f}, {max(dnfrs):.4f}]"
        f"  mean = {np.mean(dnfrs):.4f}"
    )
    print(
        f"    EPI   range: [{min(epis):.4f}, {max(epis):.4f}]"
        f"  net change = {epis[-1] - epis[0]:+.4f}"
    )


# ═══════════════════════════════════════════════════════════════════════
# EXPERIMENT 4: Tetrad Response Functions
# ═══════════════════════════════════════════════════════════════════════


def experiment_tetrad_response():
    """Measure tetrad field sensitivity to nodal equation perturbations.

    Applies small and large DELTA_NFR changes (via Coherence at different
    states) and measures how each tetrad field responds. This reveals
    the "response function" df_tetrad / d(DELTA_NFR).
    """
    print("\n" + "=" * 72)
    print("  EXPERIMENT 4: Tetrad Response Functions")
    print("  How tetrad fields respond to nodal equation perturbations")
    print("=" * 72)

    G_base = _build_graph()
    target = 0

    # Vary the initial DELTA_NFR to create different perturbation magnitudes
    perturbations = [0.01, 0.05, 0.1, 0.3, 0.5, 0.8]

    print(
        f'\n  {"DNFR_init":>10s} {"d(Phi_s)":>10s} {"d(grad_phi)":>12s}'
        f' {"d(K_phi)":>10s} {"d(xi_C)":>10s}'
    )
    print("  " + "-" * 56)

    responses = []
    for dnfr_val in perturbations:
        G = copy.deepcopy(G_base)
        # Set controlled perturbation
        G.nodes[target]["delta_nfr"] = dnfr_val

        tetrad_before = _tetrad_summary(G)
        E_before = compute_energy_functional(G)

        # Apply Coherence (stabiliser) to evolve the nodal equation
        try:
            Coherence()(G, target)
        except Exception:
            pass

        tetrad_after = _tetrad_summary(G)

        d_phi_s = tetrad_after["Phi_s_mean"] - tetrad_before["Phi_s_mean"]
        d_grad = tetrad_after["grad_phi_mean"] - tetrad_before["grad_phi_mean"]
        d_k = tetrad_after["K_phi_rms"] - tetrad_before["K_phi_rms"]
        d_xi = tetrad_after["xi_C"] - tetrad_before["xi_C"]

        responses.append(
            {
                "dnfr": dnfr_val,
                "d_phi_s": d_phi_s,
                "d_grad": d_grad,
                "d_k": d_k,
                "d_xi": d_xi,
            }
        )

        print(
            f"  {dnfr_val:10.4f} {d_phi_s:+10.6f} {d_grad:+12.6f}"
            f" {d_k:+10.6f} {d_xi:+10.6f}"
        )

    # Check linearity
    if len(responses) >= 2:
        dnfrs = [r["dnfr"] for r in responses]
        for field_name, key in [
            ("Phi_s", "d_phi_s"),
            ("grad_phi", "d_grad"),
            ("K_phi", "d_k"),
        ]:
            vals = [r[key] for r in responses]
            if any(abs(v) > 1e-10 for v in vals):
                corr = abs(np.corrcoef(dnfrs, vals)[0, 1])
                regime = "LINEAR" if corr > 0.9 else "NONLINEAR"
                print(
                    f"\n    {field_name} response: |corr| = {corr:.4f}" f" -> {regime}"
                )

    print("\n  Interpretation:")
    print("  Linear response = tetrad field proportional to DELTA_NFR")
    print("  Nonlinear = field saturates or has threshold behaviour")
    print('  This reveals the structural "susceptibility" of each field')


# ═══════════════════════════════════════════════════════════════════════
# MAIN
# ═══════════════════════════════════════════════════════════════════════


def main():
    print()
    print("  TNFR Example 39: Nodal Equation Operator Decomposition")
    print("  dEPI/dt = nu_f * DELTA_NFR(t) — The Single Dynamical Law")
    print("  " + "=" * 55)
    print(f"  Seed: {SEED}  |  Theory: Nodal Equation, Invariant #1")
    print()

    lever_summary = experiment_nodal_decomposition()
    experiment_causal_chain()
    experiment_multi_step_trajectory()
    experiment_tetrad_response()

    print("\n" + "=" * 72)
    print("  SUMMARY: Nodal Equation Decomposition Findings")
    print("=" * 72)
    print(
        """
  1. Operator Lever Analysis:
     Each operator modulates EPI evolution through two channels:
       - nu_f (reorganisation capacity): changed by AL, SHA, VAL, NUL
       - DELTA_NFR (reorganisation pressure): changed by IL, OZ, EN
       - BOTH: UM, RA act on both frequency and pressure
     This dual-lever structure is why grammar needs both U2 (convergence
     of the integral) and U4 (bifurcation control).

  2. Complete Causal Chain:
     Operator -> (d_nu_f, d_DNFR) -> dEPI/dt -> Tetrad Response -> dE, dQ
     The tetrad fields are *diagnostics* of nodal equation dynamics,
     not independent variables. The chain is unidirectional:
     operators drive the nodal equation, which drives the fields.

  3. Multi-Step Waveform:
     nu_f and DELTA_NFR trace oscillating waveforms during sequences.
     Grammar-compliant sequences produce bounded oscillations.
     The product nu_f * DELTA_NFR predicts EPI change at each step.

  4. Tetrad Response Functions:
     Each tetrad field has a characteristic "susceptibility" to DELTA_NFR:
       Phi_s:     responds to cumulative DELTA_NFR (integral, 0th order)
       |grad_phi|: responds to local DELTA_NFR changes (1st order)
       K_phi:     responds to curvature of DELTA_NFR field (2nd order)
       xi_C:      responds to spatial correlation of changes (non-local)
     This recovery of the derivative tower (0th, 1st, 2nd, integral)
     from operator perturbations confirms the Minimal Structural Degrees
     theorem: the tetrad is the complete and irreducible basis for
     characterising nodal equation dynamics.
"""
    )


if __name__ == "__main__":
    main()