lean4-htt/tests/lean/run/11719.lean
Henrik Böving 2db0a98b7c
fix: internalize all arguments to Quot.lift during LCNF conversion (#11729)
This PR internalizes all arguments of Quot.lift during LCNF conversion,
preventing panics in certain
non trivial programs that use quotients.

Fixes #11719.
2025-12-18 09:31:48 +00:00

39 lines
717 B
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/-! Regression test for Quot handling during LCNF conversion -/
namespace A
variable (α : Type)
def space : Type :=
Quot (α := α × α) fun ⟨_, _⟩ ⟨_, _⟩ ↦ True
def subspace := { x : space α // True }
/--
warning: declaration uses `sorry`
---
warning: declaration uses `sorry`
-/
#guard_msgs in
def foo : subspace α → subspace α :=
fun ⟨x, h⟩ ↦ x.lift sorry sorry
end A
namespace B
def space : Type :=
Quot (α := Bool × Bool) fun ⟨_, _⟩ ⟨_, _⟩ ↦ True
def subspace := { x : space // True }
/--
warning: declaration uses `sorry`
---
warning: declaration uses `sorry`
-/
#guard_msgs in
def foo : subspace → subspace :=
fun ⟨x, _⟩ ↦ x.lift sorry sorry
end B