Merge current main into PR 107 branch - #109
Conversation
…envelopes Add canonical serialized UCNS evidence envelopes
27c004b
into
claude/find-what-done-like-like-c4bkxl
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 27c004b21b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| "coverage_validated": self.coverage_record_validated, | ||
| "coverage_bound": self.coverage_bound_to_search_report, | ||
| "pruning_preserves_coverage": self.pruning_preserves_coverage, | ||
| "no_uncertified_reasons": not self.uncertified_reasons, |
There was a problem hiding this comment.
Require positive catalogue coverage for certified negatives
For records deserialized from JSON, an incomplete-catalogue result such as factorization_evidence(S2, catalogue=[]) still has coverage_record_validated and coverage_bound_to_search_report set because the coverage record accurately matches the supplied catalogue, even though catalogue_coverage_status is uncertified. Since this certification check does not require the status to be canonical-exact or canonical-superset, a record can flip negative_result_certified/seq_prime_is_absolute to true, clear uncertified_reasons, recompute the digest, and pass from_dict() as certified SEQ-PRIME despite missing required catalogue coverage.
Useful? React with 👍 / 👎.
| "not_truncated": not self.truncation_occurred, | ||
| "coverage_validated": self.coverage_record_validated, | ||
| "coverage_bound": self.coverage_bound_to_search_report, | ||
| "pruning_preserves_coverage": self.pruning_preserves_coverage, |
There was a problem hiding this comment.
Verify pruning rule before certifying negatives
When deserializing certified evidence, this only trusts the serialized pruning_preserves_coverage boolean and never checks that the pruning metadata is either the no-pruning case or the exact built-in rule accepted by factorization_result._pruning_is_recognized. A record can therefore set pruning_applied=True, use an arbitrary pruning_rule/version that may have removed candidates, keep this boolean true, recompute the digest, and still pass from_dict() as a certified negative result.
Useful? React with 👍 / 👎.
| certification_requirements = { | ||
| "complete_domain": self.completeness_guaranteed, | ||
| "search_exhausted": self.search_exhausted, | ||
| "not_truncated": not self.truncation_occurred, | ||
| "coverage_validated": self.coverage_record_validated, |
There was a problem hiding this comment.
Reject unit-domain certified negatives
The certification requirements do not exclude the depth-0 unit domain, even though factorization_result() explicitly treats UNIT as the multiplicative identity rather than a primality candidate. A serialized factorization_evidence(UNIT) record can set the search/coverage/pruning booleans true, clear uncertified_reasons, recompute the digest, and then from_dict() accepts it as certified SEQ-PRIME for the unit hash.
Useful? React with 👍 / 👎.
Conflict-resolution merge for PR #107. The only overlapping file was
ucns/__init__.py; its branch version now preserves both the canonical serialized evidence-envelope exports already onmainand PR #107's distinct bridge/proof-status exports. Merge this PR to record currentmainas an ancestor of PR #107's head branch.