Skip to content

fix(quotient): keep repr/pi opaque to SMT#1068

Merged
strub merged 1 commit into
mainfrom
fix-quotient-smt-opaque
Jul 7, 2026
Merged

fix(quotient): keep repr/pi opaque to SMT#1068
strub merged 1 commit into
mainfrom
fix-quotient-smt-opaque

Conversation

@strub

@strub strub commented Jul 7, 2026

Copy link
Copy Markdown
Member

The CanonQuotient rewrite made repr/pi transparent, exposing the
subtype (val/insubd) projections and the function-valued canon to the
SMT backend. On large goals this bloats the emitted problem and defeats
the solvers, failing to close goals that previously discharged.

Mark repr/pi as [smt_opaque], defined at their real site so opacity
survives the clone subst, so consumers see the clean quotient interface
(reprK, piK, ...) instead of the subtype encoding.

Adapt the DynMatrix.eca proofs that relied on the old transparency to
derive size/rows/cols >= 0 and out-of-range-zero inline.

@strub strub force-pushed the fix-quotient-smt-opaque branch from 7d1268d to 816de8c Compare July 7, 2026 13:53
@strub strub requested review from mbbarbosa and oskgo July 7, 2026 13:54
@strub strub self-assigned this Jul 7, 2026
@strub strub enabled auto-merge July 7, 2026 14:01
The CanonQuotient rewrite made `repr`/`pi` transparent, exposing the
subtype (val/insubd) projections and the function-valued `canon` to the
SMT backend. On large goals this bloats the emitted problem and defeats
the solvers, failing to close goals that previously discharged.

Mark `repr`/`pi` as [smt_opaque], defined at their real site so opacity
survives the clone `subst`, so consumers see the clean quotient interface
(reprK, piK, ...) instead of the subtype encoding.

Adapt the DynMatrix.eca proofs that relied on the old transparency to
derive size/rows/cols >= 0 and out-of-range-zero inline.
@strub strub force-pushed the fix-quotient-smt-opaque branch from 816de8c to a5e7a71 Compare July 7, 2026 14:23
@strub strub added this pull request to the merge queue Jul 7, 2026
Merged via the queue into main with commit 36b86f1 Jul 7, 2026
19 checks passed
@strub strub deleted the fix-quotient-smt-opaque branch July 7, 2026 20:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants