/-! # Avoid delaborating with field notation if object is a metavariable application. https://github.com/leanprover/lean4/issues/5993 -/ set_option pp.mvars false /-! No field notation notation here. Used to print `refine ?_.succ` and `refine ?_.snd`. -/ /-- info: Try this: [apply] refine Nat.succ ?_ --- info: found a partial proof, but the corresponding tactic failed: (expose_names; refine Prod.snd ?_) It may be possible to correct this proof by adding type annotations, explicitly specifying implicit arguments, or eliminating unnecessary function abstractions. -/ #guard_msgs in example : Nat := by show_term refine Nat.succ ?_ show_term refine Prod.snd (α := Int) ?_ exact default /-! No field notation even under binders. (That is, be aware of delayed assignment metavariables.) -/ /-- info: Try this: [apply] refine fun x => Nat.succ ?_ -/ #guard_msgs in example : Nat → Nat := by show_term refine fun _ => Nat.succ ?_ exact default