Repository navigation
Conversation
|
Thanks @oxura. The diagnosis is right, and this is the lookup suggested in #1263, but we're closing it in favor of #1580. A ~ constant's model only shows that its type is inhabited. The constant stays opaque, and the kernel checks the model, so any model is sound. Where the model comes from is the problem:
#1580 takes the model from the template's instances instead. #1182's literal repro, which never calls |
|
Understood. I will not reopen the book-wide witness lookup or try to make the literal no-call repro pass. Taking models from the template instances in #1580 keeps the source of the model explicit. AI-assisted; no subagents. |
Problem
The original reproducer in #1182 defines a closed injectivity proof (
inj), but the opaqueuse~Fstill has no model. Constructor, reflexivity, and projection models cannot construct that proof themselves.This implements the checked-definition lookup direction requested in #1263 (comment). It does not restore the rejected backtracking implementation.
Change
@unsafemarker, and a definitionally equal type.mainactually callsuse(~inj, ...)to return an equality proof.Verification
higher_evidence_base.bendreproducer passes both--check-onlyand--verdictwith the canonical Lean 4.34.0 BendTT kernel.--verdicton untouched main (8578b7cb,no model for use~F) and passes with this change. Running it prints{==}.tests/proof/*.bendfiles: identical frontend classifications, out-of-scope reports, native-kernel results, and export hashes. All 61 previously emitted books are byte-identical. The new fixture adds one complete kernel certificate: 59 existing certificates become 60, with no existing outcome changed.model_false.bendandmodel_no_base.bendremain outside the translation's scope.bun gates/repo.ts: PASS: 54 / 54, including the staged new fixture and the unchanged 24ksafe.tscap.Scope and limits
This fixes the original reported case where the book contains a closed witness. It is not a general proof-search or mutually dependent model-selection change.
The public
law_higher_evidence_probe.bendhas no closed witness and still reportsno model for use~F. The publicdependent_empty_result_probe.bendalso remains rejected; its opaque function would have to return an empty value atZ. Both were exercised explicitly, not treated as complete certificates merely because a partial book can be exported.The separate
v_n/ bend-mathlib model-choice case from the issue comments is not claimed fixed. This PR intentionally does not auto-close that broader issue thread.The proof comparison ran locally against the actual native kernel, not on the mini-cluster. The cluster gates were unavailable in the preceding qualification because the bastion hostname did not resolve; no gate was bypassed.