Zulip Chat Archive
Stream: lean4
Topic: Understanding `apply`
Damiano Testa (Jan 27 2024 at 04:29):
Dear All,
why do the following not work?
example : 0 < 1 := by
apply Nat.succ_pos ?_
example : 0 < Nat.succ 0 := by
apply Nat.succ_pos ?_
example {n : Nat} : 0 < Nat.succ n := by
apply Nat.succ_pos ?_
They do work if you remove the ?_, if you replace it with _, or, of course, if you use exact.
I know that apply "does not use the expected type", but these examples are still unclear to me.
Thanks!
Patrick Massot (Jan 27 2024 at 14:42):
The ?_ explicitly ask Lean not to infer the corresponding term..
Damiano Testa (Jan 27 2024 at 16:49):
Ok, I'll try to come to terms with the fact that refine and exact both close the goals above. Thanks!
Last updated: May 02 2025 at 03:31 UTC