Docs

Release Notes

This page condenses the v0.6.0 changelog into the changes most relevant to users of the public docs. For implementation-level history, keep the repository changelog as the source of truth.

v0.6.0 Highlights

ZeroProofML v0.6.0 is a hardening release for strict inference. It concentrates on how bottom results are classified, how non-finite payloads are routed, how simplification is constrained, and how projective thresholds are interpreted. The stable strict inference tuple is unchanged:

decoded, bottom_mask, gap_mask = result

Eager result objects also expose the stable v0.6.x provenance attributes:

fault_mask = result.fault_mask
semantic_bottom_mask = result.semantic_bottom_mask
bottom_provenance = result.bottom_provenance

with bottom_mask == fault_mask | semantic_bottom_mask.

Fault, Semantic, or Mixed Provenance Is Stable

The experimental fault/semantic split from v0.5.x is now stable:

  • fault_mask, semantic_bottom_mask, and bottom_provenance are guaranteed strict-inference result attributes.
  • bottom_provenance uses NONE, FAULT, SEMANTIC, MIXED states (3 = mixed).
  • Schema-v2 ONNX bundles export all six outputs (decoded, bottom_mask, gap_mask, fault_mask, semantic_bottom_mask, bottom_provenance).
  • TorchScript exports keep the three-field tuple.
  • DOSE and reference robotics workflows consume the split routing without an experimental flag.
  • The historical Q2 provenance gate is superseded for the v0.6.x mask set.

Non-Finite Payloads Fail Closed

Strict inference now treats every non-finite P or Q payload as a fault bottom. Validity factors follow the same rule. Classification uses isfinite, not only isnan, so NaN, +Inf, and -Inf are invalid decoded payloads.

Consumers must honor bottom_mask before reading decoded values. Bundle smoke-test parity compares decoded values only on non-bottom entries. Censored-direction orientation must come from finite side channels, weak-sign or projective representations, or an explicit direction head — not from IEEE infinity signs.

Projective heads also expose bottom_capability(tau_infer). If training data contains bottom labels that a configured head cannot reach under tau_infer, SCMTrainer raises unless allow_bottom_unreachable=True is passed.

Simplification Modes Are Explicit

Fracterm and FRU flattening distinguish strict SCM simplification from field-rational simplification through the public SimplificationMode alias.

  • scm_strict is the default. Strict flattening keeps divisor denominators as bottom-producing factors, refuses configured depth/degree bound violations, and refuses symbolic factor cancellation unless the factor is safe.
  • simplification_mode="field_rational" is an explicit unsafe opt-in that recovers ordinary field algebra. It is documented as unsafe for strict bottom-preserving pipelines.

Common-meadow anchor identities such as x/x = 1 + 0/x are documented as semantic checks, not required emitted normal forms.

Projective Gauge Conventions Are Named

The new public GaugePolicy enum and opt-in ProjectiveNormalize(...) helper make the projective magnitude convention explicit:

  • canonical_denominator (default)
  • unit_l2_projective
  • angular_unit_circle

Post-hoc tau_infer sweeps over cached |Q| distributions remain valid only for the head and magnitude convention that produced those distributions.

Numerical Hazards Are Monitor-Only

InferenceConfig.numerical_hazard_threshold surfaces finite tiny denominators through the numerical_hazard_rate axis on StrictInferenceMonitor and strict_inference_rates(...). It does not contribute to bottom_mask, fault_mask, or semantic_bottom_mask. The old provenance_fault_threshold name is a deprecated alias.

Operational rule: threshold fault_rate, semantic_bottom_rate, and numerical_hazard_rate separately. Frequent faults from a strict-flattened head indicate implementation hygiene issues.

Training Defaults

  • sign_consistency_loss and SCMTrainingLoss are singular-only by default when mask_singular is omitted (targets with abs(Y_d) <= epsilon_sing).
  • implicit_loss(..., detach_scale=False) and implicit_loss_jax(..., detach_scale=False) keep the scale factor attached; detach_scale=True remains available as the legacy shrink heuristic.
  • margin_loss adds reduction="conditional" as an opt-in; the default remains the population-style masked batch mean.

New helpers:

  • soft_coverage_loss(...) — differentiable under-coverage surrogate.
  • lift_semantic_targets(...) / SemanticTargets — explicit lifting from finite, bottom, censored, domain-invalid, missing, and fault status labels. Sentinel-based lift_targets(...) remains available as the legacy simple path.

Bundles And Schemas

  • Schema-v2 bundles declare strict_inference_schema_version=2 and strict_inference_exports="stable_provenance_outputs".
  • The provenance metadata sidecar is now inference_output_schema. The old experimental_inference_output_schema key is a deprecated alias that validates with DeprecationWarning.
  • Recorded schema-v1 (merged_only_masks) and deprecated experimental_provenance_outputs bundles remain valid under their own metadata and are not silently reinterpreted.

Upgrade Notes

Most v0.6.0 changes are additive, but strict-mode flattening can change masks at singular edge cases and can refuse expressions that field-rational simplification previously accepted. Existing exported bundles continue to validate under their recorded schema and metadata.

Re-check after upgrading:

  • examples/fru_strict_check_demo.py
  • the RR-IK reference deployment
  • the DOSE matrix and artifact path

For paper-exact reproduction, keep using the v0.4.3 release tag or zeroproofml==0.4.3. v0.6.x is the active development line.

Compatibility Notes

  • zeroproofml.* is the canonical public namespace.
  • zeroproof.* remains a supported compatibility namespace through the roadmap's next major milestone (the M4 core 1.0-or-stay-0.x decision). No namespace deprecation warning is planned before then unless a concrete migration plan is published.
  • Plotting helpers, downstream simulators, FRU structural-validity provenance, and other explicitly experimental surfaces may change faster than stable SCM, training, inference, and benchmark APIs.
  • Old benchmark artifacts without current schema markers fail fast instead of being silently mixed with current claim runs.