lean4-htt/tests/lean/run/apply_error.lean
Kim Morrison 33afaa061e
feat: improve 'apply' unification error message (#8261)
This PR adjusts the error message when `apply` fails to unify. It is
clearer about distinguishing the term being applied and the goal, as
well as distinguishing the "conclusion" of the given term and the term
itself.

---------

Co-authored-by: Joachim Breitner <mail@joachim-breitner.de>
2025-05-08 16:00:42 +00:00

53 lines
981 B
Text

/--
error: tactic 'apply' failed, could not unify the conclusion of `h`
True
with the goal
False
Note: The full type of `h` is
1 = 1 → True
h : 1 = 1 → True
⊢ False
-/
#guard_msgs in
example (h : 1 = 1 → True) : False := by
apply h
/--
error: tactic 'apply' failed, could not unify the type of `h`
1 = 1 → True
with the goal
2 = 2 → False
h : 1 = 1 → True
⊢ 2 = 2 → False
-/
#guard_msgs in
example (h : 1 = 1 → True) : 2 = 2 → False := by
apply h
/--
error: tactic 'apply' failed, could not unify the conclusion of `h`
1 = 1 → True
with the goal
2 = 2 → False
Note: The full type of `h` is
3 = 3 → 1 = 1 → True
h : 3 = 3 → 1 = 1 → True
⊢ 2 = 2 → False
-/
#guard_msgs in
example (h : 3 = 3 → 1 = 1 → True) : 2 = 2 → False := by
apply h
/--
error: tactic 'apply' failed, could not unify the type of `h`
True
with the goal
False
h : True
⊢ False
-/
#guard_msgs in
example (h : True) : False := by
apply h