3b7be0aaf0
- Remove defensive ?? 0 fallbacks in buildFailedPredicate that could silently report false geometry in proof witnesses - Require all 4 rect fields present before building subjectRect/referenceRect (was only checking subjectLeft) - Add explicit undefined guards for observed gap, measured values, delta, and aspect ratio — return undefined (no failedPredicate) when critical metrics are missing instead of fabricating 0 defaults - Generic synthesizeGenericFailedPredicate checks value presence instead of defaulting metrics[keys] to 0 - Option defaults (minGap, maxGap, tolerance, min, max bounds) retain ?? 0/?? Infinity as correct neutral values for user parameters