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, andbottom_provenanceare guaranteed strict-inference result attributes.bottom_provenanceusesNONE,FAULT,SEMANTIC,MIXEDstates (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_strictis 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_projectiveangular_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_lossandSCMTrainingLossare singular-only by default whenmask_singularis omitted (targets withabs(Y_d) <= epsilon_sing).implicit_loss(..., detach_scale=False)andimplicit_loss_jax(..., detach_scale=False)keep the scale factor attached;detach_scale=Trueremains available as the legacy shrink heuristic.margin_lossaddsreduction="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-basedlift_targets(...)remains available as the legacy simple path.
Bundles And Schemas
- Schema-v2 bundles declare
strict_inference_schema_version=2andstrict_inference_exports="stable_provenance_outputs". - The provenance metadata sidecar is now
inference_output_schema. The oldexperimental_inference_output_schemakey is a deprecated alias that validates withDeprecationWarning. - Recorded schema-v1 (
merged_only_masks) and deprecatedexperimental_provenance_outputsbundles 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.