lean4-htt/tests/lean/run/790.lean
Joachim Breitner 0e49576fe4
feat: guard_msgs to treat trace messages separate (#8267)
This PR makes `#guard_msgs` to treat `trace` messages separate from
`info`, `warning` and `error`. It also introduce the ability to say
`#guard_msgs (pass info`, like `(drop info)` so far, and also adds
`(check info)` as the explicit form of `(info)`, for completeness.

Fixes #8266
2025-05-09 05:44:34 +00:00

28 lines
852 B
Text

class Vec (X : Type) extends Add X, Inhabited X
class Vec' (X : Type) extends Vec X
def differential {X Y : Type} [Vec X] [Vec Y] (f : X → Y) (x dx : X) : Y := f dx
@[simp]
theorem differential_of_linear {X Y : Type} [Vec X] [Vec Y] (f : X → Y) (x dx : X)
: differential f x dx = f dx := by simp[differential]
example {X Y : Type} [Vec X] [Vec Y] (f : X → Y) (x dx : X)
: differential f x dx = f dx := by simp
instance : Vec Nat := ⟨⟩
instance : Vec' Nat := ⟨⟩
set_option trace.Meta.Tactic.simp true
/--
trace: [Meta.Tactic.simp.rewrite] differential_of_linear:1000:
differential f x dx
==>
f dx
[Meta.Tactic.simp.rewrite] eq_self:1000: f dx = f dx ==> True
-/
#guard_msgs in
example {Y : Type} [Vec Y] (f : Nat → Y) (x dx : Nat)
: @differential _ _ Vec'.toVec _ f x dx = f dx :=
by simp