fix(a2k): reject out-of-range fraction-decrease scales #89
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/a2k-fraction-decrease-scale-range"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Close a fail-closed inconsistency on Gate A2k fraction-decrease: obligation assessment refused scales outside
0 < scale < 1(scale_out_of_range), but geometric VersorBinding admission accepted any positive finite scale. Contract resolution fell back to the geometric path when obligation was non-runnable, so inputs like “decrease to 5/4 of …” could still reachresolve_promotable_fraction_decrease()and emit a negative decrease answer.Root cause
assess_fraction_decreaserequired0 < scale < 1_versor_binding_from_scale_value/_fraction_decrease_scale_bindingonly required finitescale > 0(algebraic dilation precondition)_resolve_fraction_decrease_contractfell back toassess_geometric_proposalswhen obligation was non-runnableFix
_is_valid_fraction_decrease_scale— finite0 < k < 1scale_out_of_range)_fraction_decrease_scale_bindingso no VersorBinding is emitted for out-of-range scalesk > 0) intact for algebraic use; organ domain is stricterNon-effects
3/4/2/3paths unchangedVerification
Also:
pytest tests/test_problem_frame_contracts.py tests/test_relational_operator_ablation.py tests/test_math_candidate_graph_sprint8_r6_affine_lift.py tests/test_construction_affordances.py tests/test_contract_residuals.py→ 163 passedpassed: trueresolve_promotable_fraction_decrease("…5/4…") is None; valid3/4still answers ~21PR checklist
versor_condition < 1e-6when admittedRollback
Revert the two commits on this branch; no data/migration side effects.
41f309eb92toac4c3e04ad