lean4-htt/tests/lean/run/issue10705.lean
Joachim Breitner a6d50a61b3
fix: Meta.Closure: topologically sort abstracted vars (#10926)
This PR topologically sorts abstracted vars in
`Meta.Closure.mkValueTypeClosure` if MVars are being abstracted.
Fixes #10705

---------

Co-authored-by: Eric Wieser <efw@google.com>
2025-10-24 12:07:16 +00:00

21 lines
628 B
Text

import Lean
open Lean Meta
-- set_option trace.Meta.Closure true
/--
info: before: h.2
---
info: after: _proof_2 ?m.1 h
-/
#guard_msgs(pass trace, all) in
run_meta do
have l := ← Lean.Meta.mkFreshExprMVar (mkConst ``True) (kind := .syntheticOpaque)
let ty := mkAnd (mkConst ``True) (.letE `foo (mkConst ``True) l (mkConst ``True) false)
withLocalDecl `h default ty fun x => do
let e := mkProj ``And 1 x
Lean.logInfo m!"before: {e}"
-- works fine without this line
let e ← Lean.Meta.mkAuxTheorem (mkConst ``True) e (zetaDelta := true) -- or false, not really relevant
Lean.logInfo m!"after: {e}"