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.
Files changed (360) hide show
  1. {tnfr-8.5.0/src/tnfr.egg-info → tnfr-8.6.0}/PKG-INFO +23 -106
  2. {tnfr-8.5.0 → tnfr-8.6.0}/README.md +22 -105
  3. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/_generated_version.py +2 -2
  4. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/algebra.py +4 -2
  5. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/definitions.py +33 -1
  6. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/grammar.py +179 -21
  7. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/preconditions/__init__.py +8 -4
  8. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/unified_grammar.py +9 -4
  9. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/rules.py +8 -5
  10. {tnfr-8.5.0 → tnfr-8.6.0/src/tnfr.egg-info}/PKG-INFO +23 -106
  11. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr.egg-info/SOURCES.txt +0 -2
  12. tnfr-8.5.0/src/tnfr/operators/canonical_patterns.py +0 -420
  13. tnfr-8.5.0/src/tnfr/operators/patterns.py +0 -669
  14. {tnfr-8.5.0 → tnfr-8.6.0}/LICENSE.md +0 -0
  15. {tnfr-8.5.0 → tnfr-8.6.0}/pyproject.toml +0 -0
  16. {tnfr-8.5.0 → tnfr-8.6.0}/setup.cfg +0 -0
  17. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/__init__.py +0 -0
  18. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/__init__.pyi +0 -0
  19. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/_compat.py +0 -0
  20. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/_version.py +0 -0
  21. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/_version.pyi +0 -0
  22. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/alias.py +0 -0
  23. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/alias.pyi +0 -0
  24. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/backends/__init__.py +0 -0
  25. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/backends/jax_backend.py +0 -0
  26. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/backends/numpy_backend.py +0 -0
  27. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/backends/optimized_numpy.py +0 -0
  28. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/backends/torch_backend.py +0 -0
  29. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/cache.py +0 -0
  30. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/cache.pyi +0 -0
  31. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/cli/__init__.py +0 -0
  32. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/cli/__init__.pyi +0 -0
  33. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/cli/arguments.py +0 -0
  34. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/cli/arguments.pyi +0 -0
  35. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/cli/execution.py +0 -0
  36. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/cli/execution.pyi +0 -0
  37. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/cli/interactive_validator.py +0 -0
  38. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/cli/utils.py +0 -0
  39. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/cli/utils.pyi +0 -0
  40. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/cli/validate.py +0 -0
  41. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/compat/__init__.py +0 -0
  42. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/compat/dataclass.py +0 -0
  43. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/compat/jsonschema_stub.py +0 -0
  44. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/compat/matplotlib_stub.py +0 -0
  45. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/compat/numpy_stub.py +0 -0
  46. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/__init__.py +0 -0
  47. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/__init__.pyi +0 -0
  48. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/constants.py +0 -0
  49. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/constants.pyi +0 -0
  50. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/defaults.py +0 -0
  51. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/defaults_core.py +0 -0
  52. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/defaults_init.py +0 -0
  53. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/defaults_metric.py +0 -0
  54. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/feature_flags.py +0 -0
  55. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/feature_flags.pyi +0 -0
  56. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/glyph_constants.py +0 -0
  57. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/init.py +0 -0
  58. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/init.pyi +0 -0
  59. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/operator_names.py +0 -0
  60. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/operator_names.pyi +0 -0
  61. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/physics_derivation.py +0 -0
  62. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/presets.py +0 -0
  63. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/presets.pyi +0 -0
  64. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/security.py +0 -0
  65. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/thresholds.py +0 -0
  66. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/config/tnfr_config.py +0 -0
  67. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/constants/__init__.py +0 -0
  68. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/constants/__init__.pyi +0 -0
  69. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/constants/aliases.py +0 -0
  70. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/constants/aliases.pyi +0 -0
  71. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/constants/init.py +0 -0
  72. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/constants/init.pyi +0 -0
  73. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/constants/metric.py +0 -0
  74. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/constants/metric.pyi +0 -0
  75. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/core/__init__.py +0 -0
  76. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/core/container.py +0 -0
  77. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/core/default_implementations.py +0 -0
  78. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/core/interfaces.py +0 -0
  79. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/__init__.py +0 -0
  80. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/__init__.pyi +0 -0
  81. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/adaptation.py +0 -0
  82. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/adaptation.pyi +0 -0
  83. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/adaptive_sequences.py +0 -0
  84. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/adaptive_sequences.pyi +0 -0
  85. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/aliases.py +0 -0
  86. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/aliases.pyi +0 -0
  87. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/bifurcation.py +0 -0
  88. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/canonical.py +0 -0
  89. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/canonical.pyi +0 -0
  90. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/coordination.py +0 -0
  91. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/coordination.pyi +0 -0
  92. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/dnfr.py +0 -0
  93. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/dnfr.pyi +0 -0
  94. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/dynamic_limits.py +0 -0
  95. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/feedback.py +0 -0
  96. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/feedback.pyi +0 -0
  97. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/fused_dnfr.py +0 -0
  98. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/homeostasis.py +0 -0
  99. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/homeostasis.pyi +0 -0
  100. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/integrators.py +0 -0
  101. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/integrators.pyi +0 -0
  102. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/learning.py +0 -0
  103. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/learning.pyi +0 -0
  104. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/metabolism.py +0 -0
  105. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/nbody.py +0 -0
  106. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/nbody_tnfr.py +0 -0
  107. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/propagation.py +0 -0
  108. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/runtime.py +0 -0
  109. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/runtime.pyi +0 -0
  110. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/sampling.py +0 -0
  111. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/sampling.pyi +0 -0
  112. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/selectors.py +0 -0
  113. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/selectors.pyi +0 -0
  114. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/dynamics/structural_clip.py +0 -0
  115. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/errors/__init__.py +0 -0
  116. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/errors/contextual.py +0 -0
  117. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/execution.py +0 -0
  118. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/execution.pyi +0 -0
  119. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/__init__.py +0 -0
  120. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/__init__.pyi +0 -0
  121. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/base.py +0 -0
  122. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/base.pyi +0 -0
  123. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/business/__init__.py +0 -0
  124. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/business/__init__.pyi +0 -0
  125. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/business/cookbook.py +0 -0
  126. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/business/cookbook.pyi +0 -0
  127. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/business/health_analyzers.py +0 -0
  128. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/business/health_analyzers.pyi +0 -0
  129. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/business/patterns.py +0 -0
  130. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/business/patterns.pyi +0 -0
  131. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/medical/__init__.py +0 -0
  132. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/medical/__init__.pyi +0 -0
  133. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/medical/cookbook.py +0 -0
  134. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/medical/cookbook.pyi +0 -0
  135. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/medical/health_analyzers.py +0 -0
  136. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/medical/health_analyzers.pyi +0 -0
  137. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/medical/patterns.py +0 -0
  138. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/extensions/medical/patterns.pyi +0 -0
  139. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/flatten.py +0 -0
  140. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/flatten.pyi +0 -0
  141. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/gamma.py +0 -0
  142. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/gamma.pyi +0 -0
  143. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/glyph_history.py +0 -0
  144. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/glyph_history.pyi +0 -0
  145. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/glyph_runtime.py +0 -0
  146. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/glyph_runtime.pyi +0 -0
  147. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/immutable.py +0 -0
  148. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/immutable.pyi +0 -0
  149. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/initialization.py +0 -0
  150. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/initialization.pyi +0 -0
  151. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/io.py +0 -0
  152. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/io.pyi +0 -0
  153. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/locking.py +0 -0
  154. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/locking.pyi +0 -0
  155. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/__init__.py +0 -0
  156. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/backend.py +0 -0
  157. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/backend.pyi +0 -0
  158. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/dynamics.py +0 -0
  159. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/dynamics.pyi +0 -0
  160. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/epi.py +0 -0
  161. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/epi.pyi +0 -0
  162. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/generators.py +0 -0
  163. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/generators.pyi +0 -0
  164. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/metrics.py +0 -0
  165. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/metrics.pyi +0 -0
  166. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/operators.py +0 -0
  167. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/operators.pyi +0 -0
  168. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/operators_factory.py +0 -0
  169. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/operators_factory.pyi +0 -0
  170. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/projection.py +0 -0
  171. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/projection.pyi +0 -0
  172. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/runtime.py +0 -0
  173. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/runtime.pyi +0 -0
  174. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/spaces.py +0 -0
  175. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/spaces.pyi +0 -0
  176. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/transforms.py +0 -0
  177. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/mathematics/transforms.pyi +0 -0
  178. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/__init__.py +0 -0
  179. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/__init__.pyi +0 -0
  180. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/buffer_cache.py +0 -0
  181. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/buffer_cache.pyi +0 -0
  182. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/cache_utils.py +0 -0
  183. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/coherence.py +0 -0
  184. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/coherence.pyi +0 -0
  185. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/common.py +0 -0
  186. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/common.pyi +0 -0
  187. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/core.py +0 -0
  188. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/core.pyi +0 -0
  189. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/diagnosis.py +0 -0
  190. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/diagnosis.pyi +0 -0
  191. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/emergence.py +0 -0
  192. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/export.py +0 -0
  193. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/export.pyi +0 -0
  194. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/glyph_timing.py +0 -0
  195. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/glyph_timing.pyi +0 -0
  196. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/learning_metrics.py +0 -0
  197. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/learning_metrics.pyi +0 -0
  198. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/phase_coherence.py +0 -0
  199. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/phase_compatibility.py +0 -0
  200. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/reporting.py +0 -0
  201. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/reporting.pyi +0 -0
  202. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/sense_index.py +0 -0
  203. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/sense_index.pyi +0 -0
  204. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/trig.py +0 -0
  205. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/trig.pyi +0 -0
  206. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/trig_cache.py +0 -0
  207. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/metrics/trig_cache.pyi +0 -0
  208. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/multiscale/__init__.py +0 -0
  209. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/multiscale/hierarchical.py +0 -0
  210. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/node.py +0 -0
  211. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/node.pyi +0 -0
  212. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/observers.py +0 -0
  213. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/observers.pyi +0 -0
  214. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/ontosim.py +0 -0
  215. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/ontosim.pyi +0 -0
  216. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/__init__.py +0 -0
  217. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/__init__.pyi +0 -0
  218. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/cascade.py +0 -0
  219. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/cycle_detection.py +0 -0
  220. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/definitions.pyi +0 -0
  221. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/grammar.pyi +0 -0
  222. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/hamiltonian.py +0 -0
  223. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/health_analyzer.py +0 -0
  224. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/jitter.py +0 -0
  225. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/jitter.pyi +0 -0
  226. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/lifecycle.py +0 -0
  227. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/metabolism.py +0 -0
  228. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/metrics.py +0 -0
  229. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/network_analysis/__init__.py +0 -0
  230. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/network_analysis/source_detection.py +0 -0
  231. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/nodal_equation.py +0 -0
  232. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/pattern_detection.py +0 -0
  233. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/postconditions/__init__.py +0 -0
  234. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/postconditions/mutation.py +0 -0
  235. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/preconditions/coherence.py +0 -0
  236. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/preconditions/dissonance.py +0 -0
  237. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/preconditions/emission.py +0 -0
  238. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/preconditions/mutation.py +0 -0
  239. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/preconditions/reception.py +0 -0
  240. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/preconditions/resonance.py +0 -0
  241. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/registry.py +0 -0
  242. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/registry.pyi +0 -0
  243. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/remesh.py +0 -0
  244. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/remesh.pyi +0 -0
  245. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/operators/structural_units.py +0 -0
  246. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/parallel/__init__.py +0 -0
  247. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/parallel/auto_scaler.py +0 -0
  248. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/parallel/distributed.py +0 -0
  249. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/parallel/engine.py +0 -0
  250. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/parallel/gpu_engine.py +0 -0
  251. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/parallel/monitoring.py +0 -0
  252. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/parallel/partitioner.py +0 -0
  253. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/py.typed +0 -0
  254. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/recipes/__init__.py +0 -0
  255. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/recipes/cookbook.py +0 -0
  256. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/rng.py +0 -0
  257. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/rng.pyi +0 -0
  258. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/schemas/__init__.py +0 -0
  259. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/schemas/grammar.json +0 -0
  260. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/sdk/__init__.py +0 -0
  261. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/sdk/__init__.pyi +0 -0
  262. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/sdk/adaptive_system.py +0 -0
  263. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/sdk/adaptive_system.pyi +0 -0
  264. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/sdk/builders.py +0 -0
  265. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/sdk/builders.pyi +0 -0
  266. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/sdk/fluent.py +0 -0
  267. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/sdk/fluent.pyi +0 -0
  268. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/sdk/templates.py +0 -0
  269. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/sdk/templates.pyi +0 -0
  270. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/sdk/utils.py +0 -0
  271. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/secure_config.py +0 -0
  272. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/security/__init__.py +0 -0
  273. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/security/database.py +0 -0
  274. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/security/subprocess.py +0 -0
  275. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/security/validation.py +0 -0
  276. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/selector.py +0 -0
  277. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/selector.pyi +0 -0
  278. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/sense.py +0 -0
  279. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/sense.pyi +0 -0
  280. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/services/__init__.py +0 -0
  281. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/services/orchestrator.py +0 -0
  282. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/sparse/__init__.py +0 -0
  283. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/sparse/representations.py +0 -0
  284. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/structural.py +0 -0
  285. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/structural.pyi +0 -0
  286. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/telemetry/__init__.py +0 -0
  287. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/telemetry/cache_metrics.py +0 -0
  288. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/telemetry/cache_metrics.pyi +0 -0
  289. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/telemetry/nu_f.py +0 -0
  290. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/telemetry/nu_f.pyi +0 -0
  291. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/telemetry/verbosity.py +0 -0
  292. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/telemetry/verbosity.pyi +0 -0
  293. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/tokens.py +0 -0
  294. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/tokens.pyi +0 -0
  295. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/tools/__init__.py +0 -0
  296. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/tools/domain_templates.py +0 -0
  297. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/tools/sequence_generator.py +0 -0
  298. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/topology/__init__.py +0 -0
  299. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/topology/asymmetry.py +0 -0
  300. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/trace.py +0 -0
  301. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/trace.pyi +0 -0
  302. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/tutorials/__init__.py +0 -0
  303. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/tutorials/autonomous_evolution.py +0 -0
  304. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/tutorials/interactive.py +0 -0
  305. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/tutorials/structural_metabolism.py +0 -0
  306. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/types.py +0 -0
  307. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/types.pyi +0 -0
  308. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/units.py +0 -0
  309. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/units.pyi +0 -0
  310. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/__init__.py +0 -0
  311. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/__init__.pyi +0 -0
  312. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/cache.py +0 -0
  313. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/cache.pyi +0 -0
  314. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/callbacks.py +0 -0
  315. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/callbacks.pyi +0 -0
  316. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/chunks.py +0 -0
  317. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/chunks.pyi +0 -0
  318. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/data.py +0 -0
  319. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/data.pyi +0 -0
  320. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/graph.py +0 -0
  321. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/graph.pyi +0 -0
  322. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/init.py +0 -0
  323. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/init.pyi +0 -0
  324. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/io.py +0 -0
  325. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/io.pyi +0 -0
  326. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/numeric.py +0 -0
  327. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/utils/numeric.pyi +0 -0
  328. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/__init__.py +0 -0
  329. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/__init__.pyi +0 -0
  330. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/compatibility.py +0 -0
  331. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/compatibility.pyi +0 -0
  332. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/config.py +0 -0
  333. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/graph.py +0 -0
  334. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/graph.pyi +0 -0
  335. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/input_validation.py +0 -0
  336. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/invariants.py +0 -0
  337. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/rules.pyi +0 -0
  338. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/runtime.py +0 -0
  339. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/runtime.pyi +0 -0
  340. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/sequence_validator.py +0 -0
  341. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/soft_filters.py +0 -0
  342. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/soft_filters.pyi +0 -0
  343. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/spectral.py +0 -0
  344. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/spectral.pyi +0 -0
  345. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/validator.py +0 -0
  346. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/window.py +0 -0
  347. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/validation/window.pyi +0 -0
  348. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/visualization/__init__.py +0 -0
  349. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/visualization/cascade_viz.py +0 -0
  350. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/visualization/hierarchy.py +0 -0
  351. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/visualization/sequence_plotter.py +0 -0
  352. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/viz/__init__.py +0 -0
  353. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/viz/matplotlib.py +0 -0
  354. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr/viz/matplotlib.pyi +0 -0
  355. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr.egg-info/dependency_links.txt +0 -0
  356. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr.egg-info/entry_points.txt +0 -0
  357. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr.egg-info/requires.txt +0 -0
  358. {tnfr-8.5.0 → tnfr-8.6.0}/src/tnfr.egg-info/top_level.txt +0 -0
  359. {tnfr-8.5.0 → tnfr-8.6.0}/tests/test_bandit_converter.py +0 -0
  360. {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.5.0
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
  [![PyPI](https://img.shields.io/pypi/v/tnfr)](https://pypi.org/project/tnfr/)
150
150
  [![Python](https://img.shields.io/pypi/pyversions/tnfr)](https://pypi.org/project/tnfr/)
151
151
  [![License](https://img.shields.io/github/license/fermga/TNFR-Python-Engine)](LICENSE.md)
152
- [![Documentation](https://img.shields.io/badge/docs-latest-brightgreen)](https://tnfr.netlify.app)
152
+ [![Documentation](https://img.shields.io/badge/docs-latest-brightgreen)](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
- ### 🎯 Single Source of Truth for Mathematics
282
+ ### Core Documentation
283
283
 
284
- **[Mathematical Foundations of TNFR](docs/source/theory/mathematical_foundations.md)**
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
- This is THE ONLY place where TNFR mathematics is formally defined:
287
- - Hilbert space H_NFR and Banach space B_EPI
288
- - Coherence operator Ĉ (spectral theory, proofs)
289
- - Frequency operator Ĵ and reorganization operator ΔNFR
290
- - Complete nodal equation derivation
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
- ### 🎯 Classical Mechanics Emergence
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
- **TNFR reveals how observable classical physics emerges from structural coherence dynamics**:
296
-
297
- ```
298
- TNFR Nodal Equation (∂EPI/∂t = νf · ΔNFR)
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://tnfr.netlify.app
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
  [![PyPI](https://img.shields.io/pypi/v/tnfr)](https://pypi.org/project/tnfr/)
8
8
  [![Python](https://img.shields.io/pypi/pyversions/tnfr)](https://pypi.org/project/tnfr/)
9
9
  [![License](https://img.shields.io/github/license/fermga/TNFR-Python-Engine)](LICENSE.md)
10
- [![Documentation](https://img.shields.io/badge/docs-latest-brightgreen)](https://tnfr.netlify.app)
10
+ [![Documentation](https://img.shields.io/badge/docs-latest-brightgreen)](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
- ### 🎯 Single Source of Truth for Mathematics
140
+ ### Core Documentation
141
141
 
142
- **[Mathematical Foundations of TNFR](docs/source/theory/mathematical_foundations.md)**
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
- This is THE ONLY place where TNFR mathematics is formally defined:
145
- - Hilbert space H_NFR and Banach space B_EPI
146
- - Coherence operator Ĉ (spectral theory, proofs)
147
- - Frequency operator Ĵ and reorganization operator ΔNFR
148
- - Complete nodal equation derivation
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
- ### 🎯 Classical Mechanics Emergence
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
- **TNFR reveals how observable classical physics emerges from structural coherence dynamics**:
154
-
155
- ```
156
- TNFR Nodal Equation (∂EPI/∂t = νf · ΔNFR)
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://tnfr.netlify.app
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.5.0'
32
- __version_tuple__ = version_tuple = (8, 5, 0)
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 (C1: must end with terminator,
96
- C2: must include stabilizer), we test identity by comparing:
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