so that the pretty-printed origin is clickable, and avoid the unnecessary `@`. Particularly nice is this fix: ```diff /-- -info: [Meta.Tactic.simp.discharge] @bar discharge ✅ +info: [Meta.Tactic.simp.discharge] bar discharge ✅ autoParam T _auto✝ - [Meta.Tactic.simp.rewrite] { }:1000, T ==> True -[Meta.Tactic.simp.rewrite] @bar:1000, U ==> True + [Meta.Tactic.simp.rewrite] T.mk:1000, T ==> True +[Meta.Tactic.simp.rewrite] bar:1000, U ==> True -/ ```
24 lines
919 B
Text
24 lines
919 B
Text
variable (n v₁ v₂) (hv₁: v₁ < n + 1) (hv₂: v₂ < n + 1)
|
||
|
||
theorem foo (_: ¬ Fin.mk v₂ hv₂ = Fin.mk v₁ hv₁ ): True := trivial
|
||
|
||
/--
|
||
info: [Meta.Tactic.simp.unify] eq_self:1000, failed to unify
|
||
?a = ?a
|
||
with
|
||
⟨v₂, hv₂⟩ = ⟨v₁, hv₁⟩
|
||
[Meta.Tactic.simp.rewrite] Fin.mk.injEq:1000, ⟨v₂, hv₂⟩ = ⟨v₁, hv₁⟩ ==> v₂ = v₁
|
||
[Meta.Tactic.simp.unify] eq_self:1000, failed to unify
|
||
?a = ?a
|
||
with
|
||
v₂ = v₁
|
||
[Meta.Tactic.simp.discharge] Nat.ne_of_gt discharge ✅
|
||
v₁ < v₂
|
||
[Meta.Tactic.simp.rewrite] hv:1000, v₁ < v₂ ==> True
|
||
[Meta.Tactic.simp.rewrite] Nat.ne_of_gt:1000, v₂ = v₁ ==> False
|
||
-/
|
||
#guard_msgs in
|
||
set_option trace.Meta.Tactic.simp true in
|
||
example (hv: v₁ < v₂) : True := foo n v₁ v₂ ‹_› ‹_› (by simp (config := { decide := true }) only [hv, Fin.mk.injEq, Nat.ne_of_gt, Nat.lt_succ_iff])
|
||
|
||
#check Fin.mk.injEq
|