A solver answer becomes a certificate when independent computations agree. This repo's own exact arithmetic re-verifies every object's coverage on the decoded values — exposing one double-covered object — the solver's own bound meets its objective, and an exhaustive brute force over every non-empty subset reaches the same cost independently: three live legs.

highlighted = computed this step

Independent re-verification

This repo's own exact integer arithmetic re-checks the decoded values at every build: every one of the 8 objects is covered at least once, and the total cost recomputes to 45. Why: an independent check must not reuse the solver's code path, and any uncovered object or wrong cost would stop the build rather than let a wrong solution through.

every object re-checked exactly\text{every object re-checked exactly}
Re-verified coverageEach object's coverage count, recomputed from the decoded chosen alternatives.re-verified coverage, cost 45covered byobject_01object_11object_21object_31object_42object_51object_61object_71

A double-covered object

object_4 is covered by 2 chosen alternatives, not just one — set covering allows overlap, unlike a set partition. Why: this is an honest detail the decoded values make visible, not a flaw in the certificate.

coverage=2 on object_4\text{coverage}=2\text{ on object\_}4
Re-verified coverageEach object's coverage count, recomputed from the decoded chosen alternatives.re-verified coverage, cost 45covered byobject_01object_11object_21object_31object_42object_51object_61object_71

Three legs, all live

The certificate has three live legs: the re-verification above; the solver's best objective bound 45 meeting its objective 45; and this repo's own exhaustive brute-force search over every one of the 1023 non-empty subsets of ten alternatives, independent of CP-SAT, reaching the same cost 45. Why: at ten alternatives a full enumeration is cheap and genuinely exhaustive — not a heuristic — so it is a real independent optimality proof, the same honesty pattern as the brute-force checks in the assignment and bin-packing books.

three independent legs, all live\text{three independent legs, all live}
Re-verified coverageEach object's coverage count, recomputed from the decoded chosen alternatives.re-verified coverage, cost 45covered byobject_01object_11object_21object_31object_42object_51object_61object_71

Diagram note

The table lists each object's recomputed coverage count; any count of zero would have failed the build. Pixel positions are rounded for layout; every displayed coverage, cost, and comparison is exact.

coverage counts recomputed on every build\text{coverage counts recomputed on every build}
Re-verified coverageEach object's coverage count, recomputed from the decoded chosen alternatives.re-verified coverage, cost 45covered byobject_01object_11object_21object_31object_42object_51object_61object_71