tnfr 8.5.0__tar.gz → 8.6.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {tnfr-8.5.0/src/tnfr.egg-info → tnfr-8.6.0}/PKG-INFO +23 -106
- {tnfr-8.5.0 → tnfr-8.6.0}/README.md +22 -105
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/_generated_version.py +2 -2
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/algebra.py +4 -2
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/definitions.py +33 -1
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/grammar.py +179 -21
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/preconditions/__init__.py +8 -4
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/unified_grammar.py +9 -4
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/rules.py +8 -5
- {tnfr-8.5.0 → tnfr-8.6.0/src/tnfr.egg-info}/PKG-INFO +23 -106
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr.egg-info/SOURCES.txt +0 -2
- tnfr-8.5.0/src/tnfr/operators/canonical_patterns.py +0 -420
- tnfr-8.5.0/src/tnfr/operators/patterns.py +0 -669
- {tnfr-8.5.0 → tnfr-8.6.0}/LICENSE.md +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/pyproject.toml +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/setup.cfg +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/__init__.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/_compat.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/_version.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/_version.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/alias.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/alias.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/backends/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/backends/jax_backend.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/backends/numpy_backend.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/backends/optimized_numpy.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/backends/torch_backend.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/cache.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/cache.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/cli/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/cli/__init__.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/cli/arguments.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/cli/arguments.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/cli/execution.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/cli/execution.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/cli/interactive_validator.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/cli/utils.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/cli/utils.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/cli/validate.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/compat/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/compat/dataclass.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/compat/jsonschema_stub.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/compat/matplotlib_stub.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/compat/numpy_stub.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/__init__.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/constants.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/constants.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/defaults.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/defaults_core.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/defaults_init.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/defaults_metric.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/feature_flags.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/feature_flags.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/glyph_constants.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/init.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/init.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/operator_names.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/operator_names.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/physics_derivation.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/presets.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/presets.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/security.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/thresholds.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/tnfr_config.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/constants/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/constants/__init__.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/constants/aliases.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/constants/aliases.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/constants/init.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/constants/init.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/constants/metric.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/constants/metric.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/core/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/core/container.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/core/default_implementations.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/core/interfaces.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/__init__.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/adaptation.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/adaptation.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/adaptive_sequences.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/adaptive_sequences.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/aliases.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/aliases.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/bifurcation.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/canonical.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/canonical.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/coordination.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/coordination.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/dnfr.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/dnfr.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/dynamic_limits.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/feedback.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/feedback.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/fused_dnfr.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/homeostasis.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/homeostasis.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/integrators.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/integrators.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/learning.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/learning.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/metabolism.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/nbody.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/nbody_tnfr.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/propagation.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/runtime.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/runtime.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/sampling.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/sampling.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/selectors.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/selectors.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/structural_clip.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/errors/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/errors/contextual.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/execution.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/execution.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/__init__.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/base.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/base.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/business/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/business/__init__.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/business/cookbook.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/business/cookbook.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/business/health_analyzers.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/business/health_analyzers.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/business/patterns.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/business/patterns.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/medical/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/medical/__init__.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/medical/cookbook.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/medical/cookbook.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/medical/health_analyzers.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/medical/health_analyzers.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/medical/patterns.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/medical/patterns.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/flatten.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/flatten.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/gamma.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/gamma.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/glyph_history.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/glyph_history.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/glyph_runtime.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/glyph_runtime.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/immutable.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/immutable.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/initialization.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/initialization.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/io.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/io.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/locking.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/locking.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/backend.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/backend.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/dynamics.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/dynamics.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/epi.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/epi.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/generators.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/generators.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/metrics.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/metrics.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/operators.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/operators.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/operators_factory.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/operators_factory.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/projection.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/projection.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/runtime.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/runtime.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/spaces.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/spaces.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/transforms.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/transforms.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/__init__.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/buffer_cache.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/buffer_cache.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/cache_utils.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/coherence.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/coherence.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/common.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/common.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/core.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/core.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/diagnosis.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/diagnosis.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/emergence.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/export.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/export.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/glyph_timing.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/glyph_timing.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/learning_metrics.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/learning_metrics.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/phase_coherence.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/phase_compatibility.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/reporting.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/reporting.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/sense_index.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/sense_index.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/trig.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/trig.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/trig_cache.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/trig_cache.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/multiscale/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/multiscale/hierarchical.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/node.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/node.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/observers.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/observers.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/ontosim.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/ontosim.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/__init__.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/cascade.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/cycle_detection.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/definitions.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/grammar.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/hamiltonian.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/health_analyzer.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/jitter.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/jitter.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/lifecycle.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/metabolism.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/metrics.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/network_analysis/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/network_analysis/source_detection.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/nodal_equation.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/pattern_detection.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/postconditions/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/postconditions/mutation.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/preconditions/coherence.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/preconditions/dissonance.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/preconditions/emission.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/preconditions/mutation.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/preconditions/reception.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/preconditions/resonance.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/registry.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/registry.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/remesh.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/remesh.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/structural_units.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/parallel/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/parallel/auto_scaler.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/parallel/distributed.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/parallel/engine.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/parallel/gpu_engine.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/parallel/monitoring.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/parallel/partitioner.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/py.typed +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/recipes/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/recipes/cookbook.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/rng.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/rng.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/schemas/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/schemas/grammar.json +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/sdk/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/sdk/__init__.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/sdk/adaptive_system.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/sdk/adaptive_system.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/sdk/builders.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/sdk/builders.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/sdk/fluent.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/sdk/fluent.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/sdk/templates.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/sdk/templates.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/sdk/utils.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/secure_config.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/security/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/security/database.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/security/subprocess.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/security/validation.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/selector.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/selector.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/sense.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/sense.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/services/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/services/orchestrator.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/sparse/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/sparse/representations.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/structural.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/structural.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/telemetry/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/telemetry/cache_metrics.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/telemetry/cache_metrics.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/telemetry/nu_f.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/telemetry/nu_f.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/telemetry/verbosity.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/telemetry/verbosity.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/tokens.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/tokens.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/tools/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/tools/domain_templates.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/tools/sequence_generator.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/topology/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/topology/asymmetry.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/trace.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/trace.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/tutorials/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/tutorials/autonomous_evolution.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/tutorials/interactive.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/tutorials/structural_metabolism.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/types.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/types.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/units.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/units.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/__init__.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/cache.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/cache.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/callbacks.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/callbacks.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/chunks.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/chunks.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/data.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/data.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/graph.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/graph.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/init.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/init.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/io.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/io.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/numeric.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/numeric.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/__init__.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/compatibility.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/compatibility.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/config.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/graph.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/graph.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/input_validation.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/invariants.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/rules.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/runtime.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/runtime.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/sequence_validator.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/soft_filters.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/soft_filters.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/spectral.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/spectral.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/validator.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/window.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/window.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/visualization/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/visualization/cascade_viz.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/visualization/hierarchy.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/visualization/sequence_plotter.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/viz/__init__.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/viz/matplotlib.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/viz/matplotlib.pyi +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr.egg-info/dependency_links.txt +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr.egg-info/entry_points.txt +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr.egg-info/requires.txt +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr.egg-info/top_level.txt +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/tests/test_bandit_converter.py +0 -0
- {tnfr-8.5.0 → tnfr-8.6.0}/tests/test_cookbook.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tnfr
|
|
3
|
-
Version: 8.
|
|
3
|
+
Version: 8.6.0
|
|
4
4
|
Summary: Modular structural-based dynamics on networks.
|
|
5
5
|
Author: fmg
|
|
6
6
|
License: MIT
|
|
@@ -149,7 +149,7 @@ Dynamic: license-file
|
|
|
149
149
|
[](https://pypi.org/project/tnfr/)
|
|
150
150
|
[](https://pypi.org/project/tnfr/)
|
|
151
151
|
[](LICENSE.md)
|
|
152
|
-
[](https://
|
|
152
|
+
[](https://fermga.github.io/TNFR-Python-Engine/)
|
|
153
153
|
|
|
154
154
|
[Quick Start](#-quick-start) • [Key Concepts](#-key-concepts) • [Documentation](#-documentation) • [Examples](#-examples) • [Contributing](#-contributing)
|
|
155
155
|
|
|
@@ -279,113 +279,30 @@ At the heart of TNFR is one elegant equation:
|
|
|
279
279
|
|
|
280
280
|
## 📚 Documentation
|
|
281
281
|
|
|
282
|
-
###
|
|
282
|
+
### Core Documentation
|
|
283
283
|
|
|
284
|
-
**
|
|
284
|
+
**Theory & Foundations**
|
|
285
|
+
- 📘 **[Mathematical Foundations](docs/source/theory/mathematical_foundations.md)** - Formal TNFR mathematics
|
|
286
|
+
- 📖 **[TNFR Concepts](docs/source/getting-started/TNFR_CONCEPTS.md)** - Paradigm introduction
|
|
287
|
+
- 📋 **[GLOSSARY](GLOSSARY.md)** - Operational definitions
|
|
288
|
+
- 🔬 **[Classical Mechanics Emergence](docs/TNFR_CLASSICAL_NBODY.md)** - How classical physics emerges from TNFR
|
|
285
289
|
|
|
286
|
-
|
|
287
|
-
-
|
|
288
|
-
-
|
|
289
|
-
-
|
|
290
|
-
-
|
|
291
|
-
- **§3.1.1**: Implementation bridge (theory → code)
|
|
290
|
+
**Grammar System**
|
|
291
|
+
- 🎯 **[Grammar Documentation Hub](docs/grammar/README.md)** - Complete navigation guide
|
|
292
|
+
- 📐 **[Unified Grammar Rules](UNIFIED_GRAMMAR_RULES.md)** - U1-U4 constraint derivations
|
|
293
|
+
- 🚀 **[Grammar Quick Reference](docs/grammar/08-QUICK-REFERENCE.md)** - One-page cheat sheet
|
|
294
|
+
- 📊 **[Executive Summary](docs/grammar/EXECUTIVE-SUMMARY.md)** - For managers and stakeholders
|
|
292
295
|
|
|
293
|
-
|
|
296
|
+
**Implementation & API**
|
|
297
|
+
- ⚙️ **[API Overview](docs/source/api/overview.md)** - Package architecture
|
|
298
|
+
- 🔧 **[Operator Guide](docs/source/api/operators.md)** - Complete operator reference
|
|
299
|
+
- 🛠️ **[ARCHITECTURE](ARCHITECTURE.md)** - System design
|
|
294
300
|
|
|
295
|
-
**
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
Low-dissonance limit (ε → 0)
|
|
301
|
-
↓
|
|
302
|
-
Observable Classical Mechanics
|
|
303
|
-
```
|
|
304
|
-
|
|
305
|
-
**Key Emergent Phenomena**:
|
|
306
|
-
- **Mass**: `m = 1/νf` (inverse structural frequency) — mass is structural inertia
|
|
307
|
-
- **Force**: `F = -∇U(q)` (coherence potential gradient) — force is stability flow
|
|
308
|
-
- **Newton's Laws**: Natural consequences of the nodal equation at low dissonance
|
|
309
|
-
- **Action Principle**: Coherence optimization over time
|
|
310
|
-
- **Conservation Laws**: Network symmetries preserve structural quantities
|
|
311
|
-
|
|
312
|
-
**Documentation**:
|
|
313
|
-
- **[📘 N-Body Classical Mechanics Guide](docs/TNFR_CLASSICAL_NBODY.md)** — **Complete formal reference** (variable mappings, conservation laws, validation protocols, code examples)
|
|
314
|
-
- [Classical Mechanics from TNFR](docs/source/theory/07_emergence_classical_mechanics.md) — Complete derivation from nodal equation
|
|
315
|
-
- [Euler-Lagrange Correspondence](docs/source/theory/08_classical_mechanics_euler_lagrange.md) — Variational formulation
|
|
316
|
-
- [Numerical Validation](docs/source/theory/09_classical_mechanics_numerical_validation.md) — Computational verification
|
|
317
|
-
|
|
318
|
-
**Practical Examples**:
|
|
319
|
-
- `examples/domain_applications/nbody_gravitational.py` — Two-body orbits, three-body systems
|
|
320
|
-
- `examples/nbody_quantitative_validation.py` — Full validation suite (6 canonical experiments)
|
|
321
|
-
- `tests/validation/test_nbody_validation.py` — Automated test suite
|
|
322
|
-
|
|
323
|
-
This demonstrates **classical mechanics as a natural expression of coherent structural dynamics** in the observable, deterministic regime.
|
|
324
|
-
|
|
325
|
-
### 📖 Quick References
|
|
326
|
-
|
|
327
|
-
- **[GLOSSARY](GLOSSARY.md)** - Operational definitions for code use
|
|
328
|
-
- **[TNFR Concepts](docs/source/getting-started/TNFR_CONCEPTS.md)** - Paradigm introduction
|
|
329
|
-
- **[API Overview](docs/source/api/overview.md)** - Package architecture
|
|
330
|
-
- **[Operator Guide](docs/source/api/operators.md)** - Complete operator reference
|
|
331
|
-
- **[NAV Guide](docs/source/operators/NAV_GUIDE.md)** - NAV (Transition) canonical sequences, anti-patterns, and troubleshooting
|
|
332
|
-
- **[THOL Configuration Reference](docs/THOL_CONFIGURATION_REFERENCE.md)** - Comprehensive THOL parameter guide
|
|
333
|
-
|
|
334
|
-
### 🎨 Grammar System
|
|
335
|
-
|
|
336
|
-
TNFR uses a unified physics-based grammar to validate operator sequences.
|
|
337
|
-
All constraints emerge inevitably from the nodal equation and TNFR invariants.
|
|
338
|
-
|
|
339
|
-
#### Four Canonical Constraints (U1-U4)
|
|
340
|
-
|
|
341
|
-
1. **U1: STRUCTURAL INITIATION & CLOSURE**
|
|
342
|
-
- U1a: Start with generators when EPI=0
|
|
343
|
-
- U1b: End with closure operators
|
|
344
|
-
- Basis: ∂EPI/∂t undefined at EPI=0
|
|
345
|
-
|
|
346
|
-
2. **U2: CONVERGENCE & BOUNDEDNESS**
|
|
347
|
-
- If destabilizers, then include stabilizers
|
|
348
|
-
- Basis: ∫νf·ΔNFR dt must converge
|
|
349
|
-
|
|
350
|
-
3. **U3: RESONANT COUPLING**
|
|
351
|
-
- If coupling/resonance, then verify phase
|
|
352
|
-
- Basis: AGENTS.md Invariant #5
|
|
353
|
-
|
|
354
|
-
4. **U4: BIFURCATION DYNAMICS**
|
|
355
|
-
- U4a: If triggers, then include handlers
|
|
356
|
-
- U4b: If transformers, then recent destabilizer
|
|
357
|
-
- Basis: Contract OZ + bifurcation theory
|
|
358
|
-
|
|
359
|
-
**For complete derivations:** See [UNIFIED_GRAMMAR_RULES.md](UNIFIED_GRAMMAR_RULES.md)
|
|
360
|
-
|
|
361
|
-
**For implementation:** See `src/tnfr/operators/grammar.py`
|
|
362
|
-
|
|
363
|
-
#### Quick Start
|
|
364
|
-
|
|
365
|
-
```python
|
|
366
|
-
from tnfr.operators.grammar import validate_grammar
|
|
367
|
-
from tnfr.operators.definitions import Emission, Coherence, Silence
|
|
368
|
-
|
|
369
|
-
sequence = [Emission(), Coherence(), Silence()]
|
|
370
|
-
is_valid = validate_grammar(sequence, epi_initial=0.0)
|
|
371
|
-
```
|
|
372
|
-
|
|
373
|
-
#### Migration from Old Grammar Systems
|
|
374
|
-
|
|
375
|
-
If you're using the old C1-C3 or RC1-RC4 systems:
|
|
376
|
-
|
|
377
|
-
- **Old:** `from tnfr.operators.grammar import validate_sequence`
|
|
378
|
-
- **New:** `from tnfr.operators.grammar import validate_grammar`
|
|
379
|
-
|
|
380
|
-
See migration guide in [GRAMMAR_MIGRATION_GUIDE.md](GRAMMAR_MIGRATION_GUIDE.md)
|
|
381
|
-
|
|
382
|
-
### 🧪 Advanced Topics
|
|
383
|
-
|
|
384
|
-
- [ARCHITECTURE.md](ARCHITECTURE.md) - System design & invariants
|
|
385
|
-
- [Backend System](docs/backends.md) - NumPy/JAX/Torch backends
|
|
386
|
-
- [TESTING.md](TESTING.md) - Test strategy & validation
|
|
387
|
-
- [SECURITY.md](SECURITY.md) - Security practices
|
|
388
|
-
- [CONTRIBUTING.md](CONTRIBUTING.md) - Development workflow
|
|
301
|
+
**Development**
|
|
302
|
+
- 🤝 **[CONTRIBUTING](CONTRIBUTING.md)** - Development workflow
|
|
303
|
+
- 🧪 **[TESTING](TESTING.md)** - Test strategy
|
|
304
|
+
- 🔒 **[SECURITY](SECURITY.md)** - Security practices
|
|
305
|
+
- 🎓 **[AGENTS](AGENTS.md)** - Canonical invariants and guidance
|
|
389
306
|
|
|
390
307
|
---
|
|
391
308
|
|
|
@@ -557,7 +474,7 @@ Released under the [MIT License](LICENSE.md).
|
|
|
557
474
|
|
|
558
475
|
## 🔗 Links
|
|
559
476
|
|
|
560
|
-
- **Documentation**: https://
|
|
477
|
+
- **Documentation**: https://fermga.github.io/TNFR-Python-Engine/
|
|
561
478
|
- **PyPI Package**: https://pypi.org/project/tnfr/
|
|
562
479
|
- **GitHub**: https://github.com/fermga/TNFR-Python-Engine
|
|
563
480
|
- **Issues**: https://github.com/fermga/TNFR-Python-Engine/issues
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
[](https://pypi.org/project/tnfr/)
|
|
8
8
|
[](https://pypi.org/project/tnfr/)
|
|
9
9
|
[](LICENSE.md)
|
|
10
|
-
[](https://
|
|
10
|
+
[](https://fermga.github.io/TNFR-Python-Engine/)
|
|
11
11
|
|
|
12
12
|
[Quick Start](#-quick-start) • [Key Concepts](#-key-concepts) • [Documentation](#-documentation) • [Examples](#-examples) • [Contributing](#-contributing)
|
|
13
13
|
|
|
@@ -137,113 +137,30 @@ At the heart of TNFR is one elegant equation:
|
|
|
137
137
|
|
|
138
138
|
## 📚 Documentation
|
|
139
139
|
|
|
140
|
-
###
|
|
140
|
+
### Core Documentation
|
|
141
141
|
|
|
142
|
-
**
|
|
142
|
+
**Theory & Foundations**
|
|
143
|
+
- 📘 **[Mathematical Foundations](docs/source/theory/mathematical_foundations.md)** - Formal TNFR mathematics
|
|
144
|
+
- 📖 **[TNFR Concepts](docs/source/getting-started/TNFR_CONCEPTS.md)** - Paradigm introduction
|
|
145
|
+
- 📋 **[GLOSSARY](GLOSSARY.md)** - Operational definitions
|
|
146
|
+
- 🔬 **[Classical Mechanics Emergence](docs/TNFR_CLASSICAL_NBODY.md)** - How classical physics emerges from TNFR
|
|
143
147
|
|
|
144
|
-
|
|
145
|
-
-
|
|
146
|
-
-
|
|
147
|
-
-
|
|
148
|
-
-
|
|
149
|
-
- **§3.1.1**: Implementation bridge (theory → code)
|
|
148
|
+
**Grammar System**
|
|
149
|
+
- 🎯 **[Grammar Documentation Hub](docs/grammar/README.md)** - Complete navigation guide
|
|
150
|
+
- 📐 **[Unified Grammar Rules](UNIFIED_GRAMMAR_RULES.md)** - U1-U4 constraint derivations
|
|
151
|
+
- 🚀 **[Grammar Quick Reference](docs/grammar/08-QUICK-REFERENCE.md)** - One-page cheat sheet
|
|
152
|
+
- 📊 **[Executive Summary](docs/grammar/EXECUTIVE-SUMMARY.md)** - For managers and stakeholders
|
|
150
153
|
|
|
151
|
-
|
|
154
|
+
**Implementation & API**
|
|
155
|
+
- ⚙️ **[API Overview](docs/source/api/overview.md)** - Package architecture
|
|
156
|
+
- 🔧 **[Operator Guide](docs/source/api/operators.md)** - Complete operator reference
|
|
157
|
+
- 🛠️ **[ARCHITECTURE](ARCHITECTURE.md)** - System design
|
|
152
158
|
|
|
153
|
-
**
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
Low-dissonance limit (ε → 0)
|
|
159
|
-
↓
|
|
160
|
-
Observable Classical Mechanics
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
**Key Emergent Phenomena**:
|
|
164
|
-
- **Mass**: `m = 1/νf` (inverse structural frequency) — mass is structural inertia
|
|
165
|
-
- **Force**: `F = -∇U(q)` (coherence potential gradient) — force is stability flow
|
|
166
|
-
- **Newton's Laws**: Natural consequences of the nodal equation at low dissonance
|
|
167
|
-
- **Action Principle**: Coherence optimization over time
|
|
168
|
-
- **Conservation Laws**: Network symmetries preserve structural quantities
|
|
169
|
-
|
|
170
|
-
**Documentation**:
|
|
171
|
-
- **[📘 N-Body Classical Mechanics Guide](docs/TNFR_CLASSICAL_NBODY.md)** — **Complete formal reference** (variable mappings, conservation laws, validation protocols, code examples)
|
|
172
|
-
- [Classical Mechanics from TNFR](docs/source/theory/07_emergence_classical_mechanics.md) — Complete derivation from nodal equation
|
|
173
|
-
- [Euler-Lagrange Correspondence](docs/source/theory/08_classical_mechanics_euler_lagrange.md) — Variational formulation
|
|
174
|
-
- [Numerical Validation](docs/source/theory/09_classical_mechanics_numerical_validation.md) — Computational verification
|
|
175
|
-
|
|
176
|
-
**Practical Examples**:
|
|
177
|
-
- `examples/domain_applications/nbody_gravitational.py` — Two-body orbits, three-body systems
|
|
178
|
-
- `examples/nbody_quantitative_validation.py` — Full validation suite (6 canonical experiments)
|
|
179
|
-
- `tests/validation/test_nbody_validation.py` — Automated test suite
|
|
180
|
-
|
|
181
|
-
This demonstrates **classical mechanics as a natural expression of coherent structural dynamics** in the observable, deterministic regime.
|
|
182
|
-
|
|
183
|
-
### 📖 Quick References
|
|
184
|
-
|
|
185
|
-
- **[GLOSSARY](GLOSSARY.md)** - Operational definitions for code use
|
|
186
|
-
- **[TNFR Concepts](docs/source/getting-started/TNFR_CONCEPTS.md)** - Paradigm introduction
|
|
187
|
-
- **[API Overview](docs/source/api/overview.md)** - Package architecture
|
|
188
|
-
- **[Operator Guide](docs/source/api/operators.md)** - Complete operator reference
|
|
189
|
-
- **[NAV Guide](docs/source/operators/NAV_GUIDE.md)** - NAV (Transition) canonical sequences, anti-patterns, and troubleshooting
|
|
190
|
-
- **[THOL Configuration Reference](docs/THOL_CONFIGURATION_REFERENCE.md)** - Comprehensive THOL parameter guide
|
|
191
|
-
|
|
192
|
-
### 🎨 Grammar System
|
|
193
|
-
|
|
194
|
-
TNFR uses a unified physics-based grammar to validate operator sequences.
|
|
195
|
-
All constraints emerge inevitably from the nodal equation and TNFR invariants.
|
|
196
|
-
|
|
197
|
-
#### Four Canonical Constraints (U1-U4)
|
|
198
|
-
|
|
199
|
-
1. **U1: STRUCTURAL INITIATION & CLOSURE**
|
|
200
|
-
- U1a: Start with generators when EPI=0
|
|
201
|
-
- U1b: End with closure operators
|
|
202
|
-
- Basis: ∂EPI/∂t undefined at EPI=0
|
|
203
|
-
|
|
204
|
-
2. **U2: CONVERGENCE & BOUNDEDNESS**
|
|
205
|
-
- If destabilizers, then include stabilizers
|
|
206
|
-
- Basis: ∫νf·ΔNFR dt must converge
|
|
207
|
-
|
|
208
|
-
3. **U3: RESONANT COUPLING**
|
|
209
|
-
- If coupling/resonance, then verify phase
|
|
210
|
-
- Basis: AGENTS.md Invariant #5
|
|
211
|
-
|
|
212
|
-
4. **U4: BIFURCATION DYNAMICS**
|
|
213
|
-
- U4a: If triggers, then include handlers
|
|
214
|
-
- U4b: If transformers, then recent destabilizer
|
|
215
|
-
- Basis: Contract OZ + bifurcation theory
|
|
216
|
-
|
|
217
|
-
**For complete derivations:** See [UNIFIED_GRAMMAR_RULES.md](UNIFIED_GRAMMAR_RULES.md)
|
|
218
|
-
|
|
219
|
-
**For implementation:** See `src/tnfr/operators/grammar.py`
|
|
220
|
-
|
|
221
|
-
#### Quick Start
|
|
222
|
-
|
|
223
|
-
```python
|
|
224
|
-
from tnfr.operators.grammar import validate_grammar
|
|
225
|
-
from tnfr.operators.definitions import Emission, Coherence, Silence
|
|
226
|
-
|
|
227
|
-
sequence = [Emission(), Coherence(), Silence()]
|
|
228
|
-
is_valid = validate_grammar(sequence, epi_initial=0.0)
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
#### Migration from Old Grammar Systems
|
|
232
|
-
|
|
233
|
-
If you're using the old C1-C3 or RC1-RC4 systems:
|
|
234
|
-
|
|
235
|
-
- **Old:** `from tnfr.operators.grammar import validate_sequence`
|
|
236
|
-
- **New:** `from tnfr.operators.grammar import validate_grammar`
|
|
237
|
-
|
|
238
|
-
See migration guide in [GRAMMAR_MIGRATION_GUIDE.md](GRAMMAR_MIGRATION_GUIDE.md)
|
|
239
|
-
|
|
240
|
-
### 🧪 Advanced Topics
|
|
241
|
-
|
|
242
|
-
- [ARCHITECTURE.md](ARCHITECTURE.md) - System design & invariants
|
|
243
|
-
- [Backend System](docs/backends.md) - NumPy/JAX/Torch backends
|
|
244
|
-
- [TESTING.md](TESTING.md) - Test strategy & validation
|
|
245
|
-
- [SECURITY.md](SECURITY.md) - Security practices
|
|
246
|
-
- [CONTRIBUTING.md](CONTRIBUTING.md) - Development workflow
|
|
159
|
+
**Development**
|
|
160
|
+
- 🤝 **[CONTRIBUTING](CONTRIBUTING.md)** - Development workflow
|
|
161
|
+
- 🧪 **[TESTING](TESTING.md)** - Test strategy
|
|
162
|
+
- 🔒 **[SECURITY](SECURITY.md)** - Security practices
|
|
163
|
+
- 🎓 **[AGENTS](AGENTS.md)** - Canonical invariants and guidance
|
|
247
164
|
|
|
248
165
|
---
|
|
249
166
|
|
|
@@ -415,7 +332,7 @@ Released under the [MIT License](LICENSE.md).
|
|
|
415
332
|
|
|
416
333
|
## 🔗 Links
|
|
417
334
|
|
|
418
|
-
- **Documentation**: https://
|
|
335
|
+
- **Documentation**: https://fermga.github.io/TNFR-Python-Engine/
|
|
419
336
|
- **PyPI Package**: https://pypi.org/project/tnfr/
|
|
420
337
|
- **GitHub**: https://github.com/fermga/TNFR-Python-Engine
|
|
421
338
|
- **Issues**: https://github.com/fermga/TNFR-Python-Engine/issues
|
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '8.
|
|
32
|
-
__version_tuple__ = version_tuple = (8,
|
|
31
|
+
__version__ = version = '8.6.0'
|
|
32
|
+
__version_tuple__ = version_tuple = (8, 6, 0)
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
|
@@ -92,8 +92,10 @@ def validate_identity_property(
|
|
|
92
92
|
|
|
93
93
|
Notes
|
|
94
94
|
-----
|
|
95
|
-
Due to TNFR grammar constraints (
|
|
96
|
-
|
|
95
|
+
Due to TNFR grammar constraints (U1b: must end with closure,
|
|
96
|
+
U2: must include stabilizer), we test identity by comparing:
|
|
97
|
+
|
|
98
|
+
[Legacy note: Previously referenced C1-C2. See docs/grammar/DEPRECATION-INDEX.md]
|
|
97
99
|
|
|
98
100
|
- Path 1: operator → Coherence → Dissonance (OZ terminator)
|
|
99
101
|
- Path 2: operator → Coherence → Silence (SHA terminator)
|
|
@@ -4064,6 +4064,21 @@ class Recursivity(Operator):
|
|
|
4064
4064
|
|
|
4065
4065
|
Critical: REMESH preserves identity across scales - fundamental to TNFR fractality.
|
|
4066
4066
|
|
|
4067
|
+
Parameters
|
|
4068
|
+
----------
|
|
4069
|
+
depth : int, optional
|
|
4070
|
+
Hierarchical nesting depth for multi-scale recursion (default: 1).
|
|
4071
|
+
- depth=1: Shallow recursion (single level, no multi-scale constraint)
|
|
4072
|
+
- depth>1: Deep recursion (multi-level hierarchy, requires U5 stabilizers)
|
|
4073
|
+
|
|
4074
|
+
Notes
|
|
4075
|
+
-----
|
|
4076
|
+
**U5: Multi-Scale Coherence**: When depth>1, U5 grammar rule applies requiring
|
|
4077
|
+
scale stabilizers (IL or THOL) within ±3 operators to preserve coherence across
|
|
4078
|
+
hierarchical levels. This ensures C_parent ≥ α·ΣC_child per conservation principle.
|
|
4079
|
+
|
|
4080
|
+
See UNIFIED_GRAMMAR_RULES.md § U5 for complete physical derivation.
|
|
4081
|
+
|
|
4067
4082
|
Examples
|
|
4068
4083
|
--------
|
|
4069
4084
|
>>> from tnfr.constants import EPI_PRIMARY, VF_PRIMARY
|
|
@@ -4083,16 +4098,33 @@ class Recursivity(Operator):
|
|
|
4083
4098
|
>>> run_sequence(G, node, [Recursivity()])
|
|
4084
4099
|
>>> G.graph["echo_trace"]
|
|
4085
4100
|
[(0.54, 0.95)]
|
|
4101
|
+
|
|
4102
|
+
Deep recursion example requiring U5 stabilizers:
|
|
4103
|
+
>>> from tnfr.operators.definitions import Recursivity, Coherence, Silence
|
|
4104
|
+
>>> # depth=3 creates multi-level hierarchy - requires IL for U5
|
|
4105
|
+
>>> ops = [Recursivity(depth=3), Coherence(), Silence()]
|
|
4086
4106
|
|
|
4087
4107
|
**Biomedical**: Fractal physiology (HRV, EEG), developmental recapitulation
|
|
4088
4108
|
**Cognitive**: Recursive thinking, meta-cognition, self-referential processes
|
|
4089
4109
|
**Social**: Cultural fractals, organizational self-similarity, meme propagation
|
|
4090
4110
|
"""
|
|
4091
4111
|
|
|
4092
|
-
__slots__ = ()
|
|
4112
|
+
__slots__ = ("depth",)
|
|
4093
4113
|
name: ClassVar[str] = RECURSIVITY
|
|
4094
4114
|
glyph: ClassVar[Glyph] = Glyph.REMESH
|
|
4095
4115
|
|
|
4116
|
+
def __init__(self, depth: int = 1):
|
|
4117
|
+
"""Initialize Recursivity operator with hierarchical depth.
|
|
4118
|
+
|
|
4119
|
+
Parameters
|
|
4120
|
+
----------
|
|
4121
|
+
depth : int, optional
|
|
4122
|
+
Nesting depth for multi-scale recursion (default: 1)
|
|
4123
|
+
"""
|
|
4124
|
+
if depth < 1:
|
|
4125
|
+
raise ValueError(f"depth must be >= 1, got {depth}")
|
|
4126
|
+
self.depth = depth
|
|
4127
|
+
|
|
4096
4128
|
def _validate_preconditions(self, G: TNFRGraph, node: Any) -> None:
|
|
4097
4129
|
"""Validate REMESH-specific preconditions."""
|
|
4098
4130
|
from .preconditions import validate_recursivity
|