lean4-htt/tests/lean/run/3257.lean
2025-12-11 01:10:45 +00:00

32 lines
679 B
Text

structure T : Prop
structure U : Prop
theorem foo : T → U := λ _ => {}
theorem bar : (_ : T := by trivial) → U := λ _ => {}
-- fails as expected
example : U := by
fail_if_success simp
sorry
-- works as expected, discharging `T` via `T.mk`
example : U := by
simp [foo, T.mk]
/--
trace: [Meta.Tactic.simp.discharge] bar discharge ✅️
autoParam T bar._auto_1
[Meta.Tactic.simp.rewrite] T.mk:1000:
T
==>
True
[Meta.Tactic.simp.rewrite] bar:1000:
U
==>
True
-/
#guard_msgs in
example : U := by
set_option trace.Meta.Tactic.simp.discharge true in
set_option trace.Meta.Tactic.simp.rewrite true in
simp [bar, T.mk]