Changelog¶
All significant changes to the JLNN project will be documented in this file. The project adheres to semantic versioning.
[0.1.3] - 2026-06-14¶
This minor release brings a fundamental mathematical extension to the logical apparatus of the JLNN framework. It implements a complete set of traditional n-ary t-norms and t-conorms, limits drastic logic, and introduces a completely new concept of space-time curved physical fuzzy logic (PFL) governed by local Shannon entropy.
Added¶
Spatio-temporal Curved Fuzzy Logic (PFL):
Introduced advanced physics activations and kernels (
entropy_raw,get_entropic_weight,gravitational_bend_activation) that warp the space of truth potentials proportional to local chaos.Added physical implications (
implies_physical_kleene_dienes,implies_physical_reichenbach,implies_physical_gravitational_lukasiewicz) which eliminate the vanishing gradient problem in high uncertainty regions.Implemented parameterless state gates (
PhysicalAnd,PhysicalOr,PhysicalImplication, etc.) andPhysicalPredicategrounding layer with support for gravitational attraction of unstable states to the center (0.5).
Extension of logical kernels (Kernels):
Product (probabilistic) logic: Added algebraic operators (including Reichenbach and Goguen implication) for smooth polynomial progression of gradients.
Gödel logic: Implemented strict min-max operators and Kleene-Dienes implications.
Drastic Logic: Added absolute mathematical bottom of t-norms (
and_drastic_pure,or_drastic_pure) for boundary barrier modeling.
Bulk reductions (Bulk Gates):
Introduced stateless operators
BulkAndandBulkOrfor vectorized aggregation of large tensors along any axis, used for native representation of \(\forall\) and \(\exists\) quantifiers.
Test suite:
Created comprehensive unit tests (
test_functional.py,test_gates.py,test_predicates.py) verifying stability on GPU/TPU, behavior around entropic singularity and NNX ellipsoid parameter access syntax.
Changed¶
Flax NNX Architecture: All state gates (
gates) and predicates (predicates) have been fully rewritten into modern JAX-native syntax with ellipsis (egself.weights[...]) for error-free field injection and integration with optimizers.Axiomatic fuses: Strict constraint consistency enforcement (
intervals.ensure_interval) has been integrated into the functional API (functional.py) and grounding layers, preventing negative uncertainty widths from occurring during optimization.
Fixed¶
Fixed gradient collapse bug when dividing by zero in residual R-implications (Goguen) by introducing numerically safe division in JAX.
Fixed behavior of multi-level hierarchical structures in
WeightedXorgates when processing extremely narrow truth intervals.
[0.1.2] - 2026-06-01¶
This release completely overhauls the deployment and hardware compatibility ecosystem, resolving critical import conflicts in environments like Google Colab (T4/V100/A100) and optimizing performance across CPU, GPU, and TPU.
Added¶
Hardware-Specific Extras: Introduced modular install targets ([cpu], [gpu], [tpu]) in pyproject.toml to decouple core logic from heavy, environment-sensitive hardware runtimes.
TPU Acceleration Support: Added explicit configuration for Google Cloud TPUs via jax[tpu].
Changed¶
Dependency Decoupling (TensorFlow Removal): Replaced the monolithic orbax package with orbax-checkpoint in auxiliary dependencies. This entirely removes the hidden dependency on TensorFlow/TFLite, eliminating C++ symbol collision issues (undefined symbol: Wrapped_PyInit…) and circular import bugs in PyTorch.
Modern JAX Baseline: Upgraded minimum JAX ecosystem requirements to >=0.8.2 across all target backends to support latest compiler optimizations.
Fixed¶
Google Colab Disconnections: Fixed a fatal issue where unhandled automated install scripts forced hard kernel drops (os.kill), which triggered browser WebSocket disconnections ([object CloseEvent]) on premium hardware (A100 instances).
Pip vs UV Resolver Conflicts: Restructured package optional dependencies to allow clean, side-effect-free installation using both traditional pip and high-speed uv package managers.
[1.0.0.post1] - 2026-03-09¶
Fixes:¶
Fixed missing metadata and dependencies in the distribution package.
Resolved installation issues on Windows systems where requirements were not being pulled correctly.
Technical changes:¶
Updated pyproject.toml to properly include project dependencies.
Verified build distribution (sdist and wheel) for cross-platform compatibility.
[1.0.0] - 2026-03-07¶
First stable version (Production-Ready). This version concludes the phase of intensive tuning on real bioinformatics data and brings a robust API for neuro-symbolic learning.
Added¶
Basic tutorials: A set of educational materials has been created (including toxicity screening on the ToxCast dataset) that demonstrate the practical use of JLNN from data processing to interpretation of results.
Validation on real data: The core of the library has been successfully tested on massive datasets using GPU/TPU acceleration.
Improved gradient stability: Implemented forced preservation of structural keys in NNX modules, which ensures the stability of
jax.gradeven for complex logical formulas.
Fixed¶
Symbolic Initialization: Fixed an error (KeyError) where dynamically defined symbols in formulas were not correctly mapped to input grounding dictionaries.
Logical Integrity: Fixed edge states in the implementation of Łukasiewicz logic that could cause numerical instability at very narrow intervals.
Shape Resolution: Fixed the mechanism for deriving dimensions (shapes) in hierarchical graphs, which solves problems with tensor incompatibility during visualization and export.
Changed¶
API Stabilization: Tested on tutorials
[0.1.rc2] - 2026-02-15¶
Pre-release version brings a major fix to the export pipeline and refines the core logical consistency of the framework.
[0.1.rc1] - 2026-02-10¶
Pre-release version, significant improvements in negation logic, crisp mode support, and documentation.
[0.1.rc2] - 2026-02-15¶
This Release Candidate brings a major fix to the export pipeline and refines the core logical consistency of the framework.
Added¶
FixedPredicate: Introduced a non-trainable identity predicate specifically for crisp (exact 0/1) logic examples.
Robust PyTree Support: The export pipeline now fully supports dictionary-based predicate inputs (e.g., {“A”: tensor, “B”: tensor}) using jax.tree.map.
Metadata Resolution: Added get_representative_shape helper to ensure correct ONNX value_info metadata generation even for complex nested inputs.
Changed¶
Export Pipeline Refactoring: Updated export_to_stablehlo and export_to_onnx to handle structured PyTrees instead of requiring flat jnp.ndarray inputs.
Negation Axiom (weighted_not): Corrected the order of operations to apply pure negation ([1-U, 1-L]) before weight scaling.
Workflow Consistency: The export_workflow_example now demonstrates end-to-end StableHLO and ONNX export using dictionary-based inputs.
Interval Enforcement: Ensured consistent L≤U after every logical operation via the ensure_interval mechanism.
Fixed¶
AttributeError in Export: Resolved the critical error where the exporter attempted to call .shape on dictionary objects.
AttributeError in Visualization: Fixed key handling for fuzzy inputs within visualization loops.
Crisp Negation Logic: Fixed incorrect output values for crisp negation (e.g., \(\sim 0 \rightarrow [1,1]\) and \(\sim 1 \rightarrow [0,0]\)).
Uncertainty Preservation: Negation now correctly transfers uncertainty widths in fuzzy inputs (e.g., \([0.95, 1.0] \rightarrow [0.0, 0.05]\)).
[0.1.rc1] - 2026-02-10¶
Release Candidate 1 – significant improvements in negation logic, crisp mode support, and documentation.
Added¶
FixedPredicate – non-trainable identity predicate for crisp (exact 0/1) logic examples
Two new tutorials: - Introductory Example (training + checkpoint demo) - Basic Boolean Gates (AND/OR/NOT/NAND/NOR/XOR with crisp vs fuzzy comparison)
Visualization of uncertainty propagation (width U-L) in boolean operations
Support for crisp logic mode (bypassing LearnedPredicate ramps)
Changed¶
weighted_not – corrected negation axiom: pure negation first ([1-U, 1-L]), then weight scaling
Ensured consistent L ≤ U after every logical operation (via ensure_interval)
Improved documentation structure with dedicated Tutorials section
Fixed¶
Negation width preservation – fuzzy inputs now correctly transfer uncertainty (e.g. [0.95,1.0] → ~ = [0.0,0.05])
AttributeError in visualization loop (fixed key handling for fuzzy inputs)
Incorrect output for crisp negation (~0 → [1,1], ~1 → [0,0])
[0.1.0] - 2026-02-06¶
First public release (Alpha Release). Implementation of the core framework built on JAX and Flax NNX.
Added¶
Example Notebooks: Added Jupyter notebooks demonstrating basic usage, training, and reasoning with JLNN.
README: Created a comprehensive README with installation instructions and quickstart guide.
Changed¶
Updated documentation structure to include user guide and tutorials.
[0.0.2] - 2026-01-27¶
First public release (Alpha Release). Implementation of the core framework built on JAX and Flax NNX.
Added¶
Core Engine: Implementation of Łukasiewicz logic for interval arithmetic \([L, U]\).
Symbolic Compiler: Parser for logical formulas (Lark) and automatic compiler to hierarchical NNX modules.
Temporal Logic: Support for operators Always (G) and Eventually (F) for time series analysis.
Constraint System: Mechanismus
Projected Gradient Descentfor maintaining weights \(w \ge 1\).Export Pipeline: Ability to export models to StableHLO and ONNX formats.
Visualizer: Tools for visualizing truth intervals and gate weights using Matplotlib and Seaborn.
Xarray Integration: Support for scientific data formats and labeled outputs.
Changed¶
Created on the basis of modern Flax NNX.
Optimization of recursive graph traversal for full compatibility with
jax.jit.
Fixed¶
Fix numeric instability in XOR gate when intervals are very narrow.
Add base documentation.
[0.0.1] - 2026-01-17¶
Create a project
Basic framework concept