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: benchmarks/emergent_shell_ordering.py

emergent_shell_ordering.py

Emergent Atomic Shell Ordering: does the aufbau (n+l) rule emerge from pure TNFR structure, or is it postulated?

QUESTION (the one flagged by the emergent_chemistry audit): the periodic table's filling order is encoded in aufbau_subshell_order as a hard sort by (n + l, n) -- the Madelung rule. That rule is POSTULATED, not derived. Does any ordering at all emerge from pure TNFR structure + dynamics, and if so, WHICH one?

METHOD (pure TNFR only -- no quantum chemistry, no electron-electron screening, no Coulomb potential injected):

  1. Build the atom as a bounded structural manifold and nothing more. The canonical multi-scale object (U5 fractality) is a stack of concentric coherence shells: identical angular manifolds (fibonacci spheres) at successive radii, coupled radially. This is exactly the Cartesian product

    text
    atom_manifold  =  S^2_graph  []  P_M   (sphere times radial path)
  2. Take its resonant eigenmodes. The canonical emergent operator is L_rw = I - D^-1 W (the discrete DeltaNFR); the Cartesian-product construction below uses the COMBINATORIAL L = D - A because product-spectrum additivity spec(G [] H) = {lambda_i + mu_j} is a theorem of D - A specifically (L_rw lacks it). On a bounded manifold the spectrum is the discrete set of standing-wave modes (AGENTS.md section 4, discrete-mode regime; Chladni / vibrating-string analogue).

  3. Let the modes order themselves by structural excitation (eigenvalue) and read off the emergent shells, filling order, and closed-shell counts (cumulative mode capacities at the large spectral gaps).

  4. ONLY THEN identify, post hoc, which observed phenomenon the emergent ontology matches -- atomic noble gases, the 3D harmonic oscillator, the infinite spherical well, or the nuclear shell magic numbers.

  5. Then ask whether a confining NUCLEUS itself emerges: classify the structural-potential topology (radial/annular/multinodal) of each manifold with the canonical classify_nodal_topology, and -- if a radial (central-nucleus) manifold emerges -- read off the shell closures it produces.

WHY THIS IS RIGOROUS / FALSIFIABLE: by the Cartesian-product spectral theorem (the same '+' already verified in benchmarks/composition_arithmetic.py), spec(G [] H) = { lambda_i + mu_j }. So the emergent subshell energies are exactly the SUM of an angular mode lambda_ang(l) (degeneracy 2l+1, the rigorous Laplace-Beltrami part) and a radial mode lambda_rad(nu). The emergent ordering is therefore the ordering of lambda_ang(l) + lambda_rad(nu) -- a fully determined structural fact, independent of any chemistry input.

LAPLACIAN CORRECTION (emergent-geometry audit): the Cartesian-product additivity spec(G [] H) = {lambda_i + mu_j} that underpins this construction is a theorem of the imposed COMBINATORIAL Laplacian D - A ONLY; the canonical EMERGENT operator L_rw = I - D^-1 W does NOT have product additivity (MEASURED additive=False). So this additive shell-ordering is a property of the imposed graph connectivity, not of the emergent nodal dynamics. The canonical EMERGENT atomic shells are derived in src/tnfr/physics/emergent_chemistry.py on L_sym read in the standing-wave frequency omega=sqrt(lambda) (the emergent pulse), NOT via product additivity.

THE HONEST EXPECTED CRACK (angular weighting): Madelung's primary order is itself near-linear -- by (n_r + 2l), i.e. angular weight 2. The free graph Laplacian instead gives CONVEX spectra (angular l(l+1), quadratic radial) whose spherical-well order weights angular excitation only ~1/2 (Bessel asymptotics u_{n,l} ~ (n_r + l/2)pi) -- the OPPOSITE emphasis. So the gap is the ANGULAR WEIGHT, and screening is exactly what supplies it (it lowers core-penetrating low-l orbitals). The prediction (tested below): aufbau (n+l) does NOT emerge from the free manifold; the atomic noble-gas numbers (10, 36, 54, 86) need the screening reweighting, foreign to a single manifold.

Run: python benchmarks/emergent_shell_ordering.py

Theoretical anchor: AGENTS.md (nodal equation; discrete-mode regime; structural Laplacian as discrete DeltaNFR; Cartesian-product spectrum = '+'). Reuses the canonical fibonacci_sphere_graph + structural_eigenmodes from tnfr.physics.emergent_chemistry. Status: RESEARCH (falsifier).

Source Code

python
"""
Emergent Atomic Shell Ordering: does the aufbau (n+l) rule emerge from pure
TNFR structure, or is it postulated?
=========================================================================

QUESTION (the one flagged by the emergent_chemistry audit): the periodic
table's filling order is encoded in ``aufbau_subshell_order`` as a hard sort by
(n + l, n) -- the Madelung rule. That rule is POSTULATED, not derived. Does any
ordering at all emerge from pure TNFR structure + dynamics, and if so, WHICH
one?

METHOD (pure TNFR only -- no quantum chemistry, no electron-electron screening,
no Coulomb potential injected):

  1. Build the atom as a bounded structural manifold and nothing more. The
     canonical multi-scale object (U5 fractality) is a stack of concentric
     coherence shells: identical angular manifolds (fibonacci spheres) at
     successive radii, coupled radially. This is exactly the Cartesian product

         atom_manifold  =  S^2_graph  []  P_M   (sphere times radial path)

  2. Take its resonant eigenmodes. The canonical emergent operator is L_rw =
     I - D^-1 W (the discrete DeltaNFR); the Cartesian-product construction below
     uses the COMBINATORIAL L = D - A because product-spectrum additivity
     spec(G [] H) = {lambda_i + mu_j} is a theorem of D - A specifically (L_rw
     lacks it). On a bounded manifold the spectrum
     is the discrete set of standing-wave modes (AGENTS.md section 4,
     discrete-mode regime; Chladni / vibrating-string analogue).

  3. Let the modes order themselves by structural excitation (eigenvalue) and
     read off the emergent shells, filling order, and closed-shell counts
     (cumulative mode capacities at the large spectral gaps).

  4. ONLY THEN identify, post hoc, which observed phenomenon the emergent
     ontology matches -- atomic noble gases, the 3D harmonic oscillator, the
     infinite spherical well, or the nuclear shell magic numbers.

  5. Then ask whether a confining NUCLEUS itself emerges: classify the
     structural-potential topology (radial/annular/multinodal) of each
     manifold with the canonical classify_nodal_topology, and -- if a radial
     (central-nucleus) manifold emerges -- read off the shell closures it
     produces.

WHY THIS IS RIGOROUS / FALSIFIABLE: by the Cartesian-product spectral theorem
(the same '+' already verified in benchmarks/composition_arithmetic.py),
spec(G [] H) = { lambda_i + mu_j }. So the emergent subshell energies are
exactly the SUM of an angular mode lambda_ang(l) (degeneracy 2l+1, the rigorous
Laplace-Beltrami part) and a radial mode lambda_rad(nu). The emergent ordering
is therefore the ordering of lambda_ang(l) + lambda_rad(nu) -- a fully
determined structural fact, independent of any chemistry input.

LAPLACIAN CORRECTION (emergent-geometry audit): the Cartesian-product additivity
spec(G [] H) = {lambda_i + mu_j} that underpins this construction is a theorem of
the imposed COMBINATORIAL Laplacian D - A ONLY; the canonical EMERGENT operator
L_rw = I - D^-1 W does NOT have product additivity (MEASURED additive=False). So
this additive shell-ordering is a property of the imposed graph connectivity, not
of the emergent nodal dynamics. The canonical EMERGENT atomic shells are derived
in src/tnfr/physics/emergent_chemistry.py on L_sym read in the standing-wave
frequency omega=sqrt(lambda) (the emergent pulse), NOT via product additivity.

THE HONEST EXPECTED CRACK (angular weighting): Madelung's primary order is
itself near-linear -- by (n_r + 2l), i.e. angular weight 2. The free graph
Laplacian instead gives CONVEX spectra (angular l(l+1), quadratic radial)
whose spherical-well order weights angular excitation only ~1/2 (Bessel
asymptotics u_{n,l} ~ (n_r + l/2)pi) -- the OPPOSITE emphasis. So the gap is
the ANGULAR WEIGHT, and screening is exactly what supplies it (it lowers
core-penetrating low-l orbitals). The prediction (tested below): aufbau (n+l)
does NOT emerge from the free manifold; the atomic noble-gas numbers
(10, 36, 54, 86) need the screening reweighting, foreign to a single manifold.

Run:
    python benchmarks/emergent_shell_ordering.py

Theoretical anchor: AGENTS.md (nodal equation; discrete-mode regime; structural
Laplacian as discrete DeltaNFR; Cartesian-product spectrum = '+'). Reuses the
canonical fibonacci_sphere_graph + structural_eigenmodes from
tnfr.physics.emergent_chemistry. Status: RESEARCH (falsifier).
"""

from __future__ import annotations

import pathlib
import sys
from dataclasses import dataclass

import networkx as nx
import numpy as np

# Use the in-repo canonical package, not a possibly-stale site-packages copy.
_SRC = pathlib.Path(__file__).resolve().parents[1] / "src"
if str(_SRC) not in sys.path:
    sys.path.insert(0, str(_SRC))

from tnfr.physics.emergent_chemistry import (  # noqa: E402
    fibonacci_sphere_graph,
    structural_eigenmodes,
)
from tnfr.physics.fields import classify_nodal_topology  # noqa: E402

SPDF = {0: "s", 1: "p", 2: "d", 3: "f"}

# Observed reference sequences (for POST-HOC identification only -- never used
# to build anything). Each is a list of closed-shell cumulative counts.
ATOMIC_NOBLE = [2, 10, 18, 36, 54, 86]  # Madelung (n+l) + screening
HARMONIC_OSC = [2, 8, 20, 40, 70, 112]  # 3D isotropic oscillator E ~ 2n_r + l
SPHERICAL_WELL = [2, 8, 18, 20, 34, 40, 58, 68]  # 3D infinite well (Bessel)
NUCLEAR = [2, 8, 20, 28, 50, 82, 126]  # oscillator + spin-orbit


# ---------------------------------------------------------------------------
# STEP 1 -- the rigorous emergent part: angular degeneracies (2l+1)
# ---------------------------------------------------------------------------


def angular_modes(
    n_points: int = 162, k_neighbors: int = 6, max_l: int = 3
) -> dict[int, float]:
    """Angular eigenvalues lambda_ang(l) of one structural sphere.

    Returns {l: eigenvalue} for l = 0..max_l, read from the degenerate
    (2l+1) clusters of the sphere Laplacian (the Laplace-Beltrami spectrum).
    This is the numerically-emergent, NOT postulated, angular structure.
    """
    G = fibonacci_sphere_graph(n_points, k_neighbors)
    shells = structural_eigenmodes(G, max_modes=(max_l + 1) ** 2)
    out: dict[int, float] = {}
    for sh in shells:
        ell = (sh.multiplicity - 1) // 2
        if ell <= max_l and ell not in out:
            out[ell] = sh.eigenvalue
    return out


def angular_multiplicities(
    n_points: int = 162, k_neighbors: int = 6, n_shells: int = 4
) -> list[int]:
    """Emergent angular degeneracies (should be 1, 3, 5, 7 = 2l+1)."""
    G = fibonacci_sphere_graph(n_points, k_neighbors)
    shells = structural_eigenmodes(G, max_modes=n_shells**2)
    return [sh.multiplicity for sh in shells[:n_shells]]


# ---------------------------------------------------------------------------
# STEP 2 -- the radial structure and the Cartesian-product '+'
# ---------------------------------------------------------------------------


def radial_modes(n_shells: int = 7) -> list[float]:
    """Radial eigenvalues lambda_rad(nu) of the concentric-shell path P_M.

    The radial coupling of M concentric shells is a path graph; its structural
    Laplacian eigenvalues are the radial standing waves nu = 1..M.
    """
    L = nx.laplacian_matrix(nx.path_graph(n_shells)).toarray().astype(float)
    return sorted(float(v) for v in np.linalg.eigvalsh(L))


def verify_cartesian_sum_is_plus(
    n_points: int = 42, k_neighbors: int = 6, n_shells: int = 4
) -> float:
    """Verify spec(sphere [] path) == outer-sum of factor spectra.

    This is the canonical '+' (composition_arithmetic): the atom manifold's
    modes are SUMS of an angular and a radial structural mode. Returns the max
    absolute mismatch (should be ~0).
    """
    sphere = fibonacci_sphere_graph(n_points, k_neighbors)
    path = nx.path_graph(n_shells)
    prod = nx.cartesian_product(sphere, path)

    def lap_spec(G: nx.Graph) -> np.ndarray:
        L = nx.laplacian_matrix(G).toarray().astype(float)
        return np.sort(np.linalg.eigvalsh(L))

    s_ang = lap_spec(sphere)
    s_rad = lap_spec(path)
    outer = np.sort((s_ang[:, None] + s_rad[None, :]).ravel())
    direct = lap_spec(prod)
    return float(np.max(np.abs(outer - direct)))


def concentric_shell_graph(
    n_points: int = 80, k_neighbors: int = 6, n_shells: int = 7
) -> nx.Graph:
    """The atom manifold sphere [] path as an explicit graph."""
    return nx.cartesian_product(
        fibonacci_sphere_graph(n_points, k_neighbors),
        nx.path_graph(n_shells),
    )


def solid_ball_graph(
    n_shells: int = 4, base_points: int = 16, k_neighbors: int = 8
) -> nx.Graph:
    """A solid 3D ball: a center point plus concentric fibonacci shells, all
    wired by the SAME 3D k-NN rule.

    The center node is NOT privileged by construction -- it is connected by the
    identical nearest-neighbor rule as every other point. Any radial topology
    it carries is therefore a purely GEOMETRIC, emergent property of the ball
    (a distinguished center), read out by classify_nodal_topology -- not a
    postulated high-coupling hub.
    """
    pts: list[np.ndarray] = [np.zeros(3)]  # geometric center
    for s in range(1, n_shells + 1):
        r = float(s)
        npts = base_points * s * s  # ~constant areal density
        idx = np.arange(npts, dtype=float)
        golden = np.pi * (3.0 - np.sqrt(5.0))
        z = 1.0 - 2.0 * (idx + 0.5) / npts
        ring = np.sqrt(np.clip(1.0 - z * z, 0.0, 1.0))
        th = golden * idx
        shell = np.stack(
            [r * ring * np.cos(th), r * ring * np.sin(th), r * z], axis=1
        )
        pts.extend(shell)
    P = np.asarray(pts)
    G = nx.Graph()
    G.add_nodes_from(range(len(P)))
    for i in range(len(P)):
        d = np.linalg.norm(P - P[i], axis=1)
        d[i] = np.inf
        for j in np.argsort(d)[:k_neighbors]:
            G.add_edge(i, int(j))
    return G


def ball_closed_shells(
    G: nx.Graph, *, max_modes: int = 40
) -> tuple[list[int], list[int]]:
    """Emergent shell structure of a manifold that has a nucleus.

    Returns (multiplicities, cumulative closed-shell counts): the structural
    eigenmodes grouped into degenerate shells, and the running sum of mode
    capacities 2*(2l+1) after each shell -- the emergent closed-shell numbers.
    """
    shells = structural_eigenmodes(G, max_modes=max_modes, gap_factor=4.0)
    mults = [sh.multiplicity for sh in shells]
    cum: list[int] = []
    total = 0
    for sh in shells:
        total += 2 * sh.multiplicity
        cum.append(total)
    return mults, cum


# ---------------------------------------------------------------------------
# STEP 3 -- let the shells, filling order, and magic numbers emerge
# ---------------------------------------------------------------------------


@dataclass(frozen=True)
class Subshell:
    nu: int  # radial index (1..M)
    ell: int  # angular index (0..3)
    energy: float  # lambda_ang(l) + w_r * lambda_rad(nu)
    capacity: int  # 2*(2l+1) structural modes

    @property
    def label(self) -> str:
        # Atomic spectroscopic convention n = nu + l (so the lowest l=1 radial
        # mode is 2p, not 1p) -- purely a display name, not used in any sort.
        return f"{self.nu + self.ell}{SPDF[self.ell]}"


def emergent_subshells(
    ang: dict[int, float], rad: list[float], w_r: float
) -> list[Subshell]:
    """All (nu, l) subshells ordered by emergent structural excitation."""
    out: list[Subshell] = []
    for ell, lam_a in ang.items():
        for nu, lam_r in enumerate(rad, start=1):
            energy = lam_a + w_r * lam_r
            out.append(Subshell(nu, ell, energy, 2 * (2 * ell + 1)))
    out.sort(key=lambda s: s.energy)
    return out


def magic_numbers(subshells: list[Subshell], k_closures: int = 6) -> list[int]:
    """Cumulative mode counts at the dominant closed shells.

    A closed shell is a large gap in the resonant spectrum. We take the
    ``k_closures`` largest energy gaps as the dominant shell boundaries -- a
    rank-based cut with no magic threshold -- and report the cumulative mode
    capacity at each (the emergent closed-shell counts).
    """
    energies = [s.energy for s in subshells]
    gaps = np.diff(energies)
    if gaps.size == 0:
        return []
    k = min(k_closures, gaps.size)
    cuts = {int(i) for i in np.argsort(gaps)[-k:]}
    magic: list[int] = []
    cumulative = 0
    for i, s in enumerate(subshells):
        cumulative += s.capacity
        if i in cuts:
            magic.append(cumulative)
    return magic


def capacity_order(subshells: list[Subshell]) -> list[int]:
    """The emergent filling order expressed as a capacity sequence."""
    return [s.capacity for s in subshells]


# ---------------------------------------------------------------------------
# Madelung reference (the postulated rule), for contrast only
# ---------------------------------------------------------------------------


def madelung_capacity_order(max_n: int = 7) -> list[int]:
    """Capacity sequence of the postulated aufbau (n+l, n) order."""
    pairs = [
        (n, ell)
        for n in range(1, max_n + 1)
        for ell in range(0, min(n, 4))
    ]
    pairs.sort(key=lambda nl: (nl[0] + nl[1], nl[0]))
    return [2 * (2 * ell + 1) for _n, ell in pairs]


def leading_overlap(seq: list[int], ref: list[int]) -> int:
    """How many leading entries of ref appear, in order, as a prefix of seq."""
    count = 0
    for a, b in zip(seq, ref):
        if a != b:
            break
        count += 1
    return count


def best_resonator_match(magic: list[int]) -> tuple[str, int]:
    """Identify which observed family the emergent magic numbers match best."""
    refs = {
        "atomic noble gases (Madelung n+l)": ATOMIC_NOBLE,
        "3D harmonic oscillator": HARMONIC_OSC,
        "infinite spherical well": SPHERICAL_WELL,
        "nuclear shell model": NUCLEAR,
    }
    best_name, best_n = "(none)", 0
    for name, ref in refs.items():
        n = leading_overlap(magic, ref)
        if n > best_n:
            best_name, best_n = name, n
    return best_name, best_n


# ---------------------------------------------------------------------------
# Report
# ---------------------------------------------------------------------------


def main() -> None:
    print("=" * 70)
    print("EMERGENT ATOMIC SHELL ORDERING (pure TNFR; no screening injected)")
    print("=" * 70)

    # -- M1: angular degeneracies emerge (the rigorous part) -----------------
    mult = angular_multiplicities()
    print("\n[M1] Angular degeneracies from the sphere Laplacian:")
    print(f"     emergent multiplicities (low modes): {mult}")
    print("     expected (2l+1) for l=0,1,2,3       : [1, 3, 5, 7]")
    assert mult == [1, 3, 5, 7], f"angular (2l+1) did not emerge: {mult}"
    print("     -> PASS: (2l+1) angular shells emerge numerically.")

    # -- M2: atom manifold = sphere [] path; spectrum = '+' ------------------
    mismatch = verify_cartesian_sum_is_plus()
    print("\n[M2] Atom manifold = sphere [] radial-path (Cartesian product):")
    print(f"     max | spec(prod) - outer_sum(spec) | = {mismatch:.2e}")
    assert mismatch < 1e-9, "Cartesian-product '+' failed"
    print("     -> PASS: energies are sums lambda_ang(l)+lambda_rad(nu)")
    print("        (the canonical '+', composition_arithmetic).")

    ang = angular_modes()
    rad = radial_modes(n_shells=7)
    a1 = ang[1] - ang[0]  # first angular gap
    r1 = rad[1] - rad[0]  # first radial gap

    # -- M3: emergent order at the balanced manifold (rho = 1) ---------------
    w_balanced = a1 / r1  # first radial gap == first angular gap
    sub = emergent_subshells(ang, rad, w_balanced)
    emergent_caps = capacity_order(sub)
    madelung_caps = madelung_capacity_order()
    div = leading_overlap(emergent_caps, madelung_caps)
    magic = magic_numbers(sub)
    print("\n[M3] Emergent filling order at the balanced manifold (rho=1):")
    print("     first 12 subshells (emergent):",
          " ".join(s.label for s in sub[:12]))
    print(f"     emergent capacity order : {emergent_caps[:12]}")
    print(f"     Madelung capacity order : {madelung_caps[:12]}")
    print(f"     orders agree for only the first {div} subshell(s)")
    print(f"     dominant closures (rho=1): {magic[:8]} (no standard table)")
    print(f"     atomic noble gases       : {ATOMIC_NOBLE}")
    assert emergent_caps != madelung_caps, "emergent order == Madelung (!?)"
    assert magic[:6] != ATOMIC_NOBLE, "noble gases without screening?!"
    print("     -> PASS: the aufbau (n+l) order does NOT emerge; the atomic")
    print("        noble-gas numbers are NOT reproduced.")

    # -- M4: scan the manifold's radial:angular stiffness rho ----------------
    print("\n[M4] Scan radial:angular stiffness rho (no rho gives Madelung):")
    print("     rho   dominant closures                 best standard table")
    best_noble = 0
    for rho in [0.25, 0.5, 0.75, 1.0, 1.5, 2.0, 3.0]:
        w = rho * a1 / r1
        m = magic_numbers(emergent_subshells(ang, rad, w))
        name, n_match = best_resonator_match(m)
        best_noble = max(best_noble, leading_overlap(m, ATOMIC_NOBLE))
        tag = f"{name} ({n_match})" if n_match else "no standard table (0)"
        print(f"     {rho:<5} {str(m[:7]):<34} {tag}")
    print(f"\n     max leading noble-gas match over all rho: {best_noble}/6")
    assert best_noble < len(ATOMIC_NOBLE), "a rho gave all noble gases"
    print("     -> PASS: no stiffness gives the noble-gas sequence,")
    print("        nor any standard table. The free Laplacian's convex")
    print("        spectra weight angular l too weakly for Madelung (n+l).")

    # -- M5: does a confining NUCLEUS emerge? (canonical classifier) ----------
    topo = {
        "single sphere": classify_nodal_topology(
            fibonacci_sphere_graph(120, 6)
        ),
        "sphere [] path": classify_nodal_topology(
            concentric_shell_graph(80, 6, 7)
        ),
        "solid ball": classify_nodal_topology(solid_ball_graph(4, 16, 8)),
        "star (calib)": classify_nodal_topology(nx.star_graph(60)),
    }
    print("\n[M5] Does a confining nucleus EMERGE? classify_nodal_topology")
    print("     (radial = one central nucleus; reads c(i) = sum 1/d^2):")
    for name, t in topo.items():
        print(
            f"     {name:16s} -> {t['topology']:11s} "
            f"(conc {t['concentration']:.2f}, centers {len(t['centers'])})"
        )
    assert topo["solid ball"]["topology"] == "radial", "ball not radial"
    assert topo["sphere [] path"]["topology"] != "radial", "shells radial?!"
    assert topo["star (calib)"]["topology"] == "radial", "star not radial"
    print("     -> PASS: a nucleus EMERGES for the solid ball (its geometric")
    print("        center, same wiring rule -- not a postulated hub);")
    print("        sphere and shell-stack have none (annular / multinodal).")

    # -- M6: with the emergent nucleus, do shell CLOSURES emerge? ------------
    mults, ball_cum = ball_closed_shells(solid_ball_graph(4, 16, 8))
    sw = leading_overlap(ball_cum, SPHERICAL_WELL)
    at = leading_overlap(ball_cum, ATOMIC_NOBLE)
    print("\n[M6] With the emergent nucleus, the ball's shells (let emerge):")
    print(f"     emergent multiplicities : {mults[:6]}  (= 2l+1)")
    print(f"     closed-shell counts     : {ball_cum[:7]}")
    print(f"     infinite spherical well : {SPHERICAL_WELL[:7]}")
    print(f"     atomic noble gases      : {ATOMIC_NOBLE}")
    print(f"     leading match: spherical-well {sw} vs atomic {at}")
    assert mults[:3] == [1, 3, 5], f"angular shells not (2l+1): {mults[:3]}"
    assert ball_cum[:3] == [2, 8, 18], f"closures not 2,8,18: {ball_cum[:3]}"
    assert sw > at, "ball matches atomic better than spherical well?!"
    print("     -> PASS: CLOSURES emerge (2, 8, 18, ...) = the spherical-well")
    print("        / independent-particle shell model, NOT the atomic table.")

    # -- Verdict --------------------------------------------------------------
    print("\n" + "=" * 70)
    print("VERDICT (emergent ontology -> observed phenomenon)")
    print("=" * 70)
    print(
        "EMERGES (pure TNFR, three nested levels):\n"
        "  1. ANGULAR (2l+1) degeneracy -- the sphere Laplace-Beltrami\n"
        "     spectrum (rigorous, numerical).\n"
        "  2. FILLING ORDER -- atom = sphere [] path, subshell energy\n"
        "     = lambda_rad(nu) + lambda_ang(l) (the canonical Cartesian\n"
        "     '+'): a 3D structural-resonator order.\n"
        "  3. A central NUCLEUS -- a solid-ball coherence manifold is\n"
        "     classified RADIAL (one emergent geometric center) by the\n"
        "     canonical classify_nodal_topology, NOT a postulated hub.\n"
        "     With it, shell CLOSURES emerge: 2, 8, 18, 20, 34, ... =\n"
        "     the infinite spherical well / independent-particle shell\n"
        "     model (the basis of the NUCLEAR magic numbers).\n"
        "DOES NOT EMERGE: the atomic aufbau (n+l) order or the noble-\n"
        "  gas numbers (10, 36, 54, 86). Even WITH the emergent nucleus\n"
        "  and its closures, the atomic table needs ONE more ingredient:\n"
        "  electron-electron SCREENING, which RE-WEIGHTS the angular\n"
        "  penalty (spherical-well l-weight ~1/2 -> Madelung l-weight 2),\n"
        "  lowering core-penetrating low-l orbitals. Screening is an\n"
        "  intrinsically MANY-BODY effect -- foreign to a single coherence\n"
        "  manifold -- so it is correctly absent.\n"
        "IDENTIFICATION: the emergent TNFR ontology reaches the\n"
        "  INDEPENDENT-PARTICLE (spherical-well) atom/nucleus: (2l+1)\n"
        "  degeneracy + a radial nucleus + 2, 8, 18, 20, 34 closures.\n"
        "  The residual to the CHEMICAL periodic table is exactly and\n"
        "  ONLY screening. So aufbau_subshell_order's (n+l) sort is\n"
        "  CORRECTLY a postulate -- it encodes the single many-body\n"
        "  effect that one NFR cannot carry, as the audit flagged."
    )


if __name__ == "__main__":
    main()