lean4-htt/tests/lean/run/10475.lean
Leonardo de Moura 72bb7cf364
fix: infer_let in the kernel (#10476)
This PR fixes the dead `let` elimination code in the kernel's
`infer_let` function.

Closes #10475
2025-09-20 16:26:46 +00:00

29 lines
643 B
Text

import Lean
open Lean
/--
info: let y : Type := Prop;
let x : y := True;
p x
---
info: let y : Type := Prop;
let x : y := True;
x
---
info: let y : Type := Prop;
y
-/
#guard_msgs in
set_option pp.letVarTypes true in
example (p : ∀ a, a) :
(let y := Prop; let x : y := True; p x) = p True := by
run_tac
let env ← Lean.getEnv
let lctx ← getLCtx
let_expr Eq _ lhs _ := (← Elab.Tactic.getMainTarget) | unreachable!
logInfo lhs
let ty ← ofExceptKernelException <| Lean.Kernel.check env lctx lhs
logInfo ty
let sort ← ofExceptKernelException <| Lean.Kernel.check env lctx ty
logInfo sort
trivial