Skip to content

Commit

Permalink
Merge pull request #1255 from lean-ja/Seasawher/issue1247
Browse files Browse the repository at this point in the history
linter エラーが設定を貫通する
  • Loading branch information
Seasawher authored Dec 30, 2024
2 parents a96d050 + fb54a00 commit e9c1a51
Showing 1 changed file with 26 additions and 0 deletions.
26 changes: 26 additions & 0 deletions LeanByExample/Tactic/Ring.lean
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,32 @@ example {n : Nat} : n - n + n = n := by

simp

/- 実際、`ring` タクティクは失敗すると常に `ring_nf` を提案するようなマクロとして定義されています。 -/

/-- `#expand` の入力に渡すための構文カテゴリ -/
syntax macro_stx := command <|> tactic <|> term

open Lean in

/-- マクロを展開するコマンド -/
elab "#expand " t:macro_stx : command => do
let t : Syntax :=
match t.raw with
| .node _ _ #[t] => t
| _ => t.raw
match ← Elab.liftMacroM <| Macro.expandMacro? t with
| none => logInfo m!"Not a macro"
| some t => logInfo m!"{t}"

-- マクロ展開の中に `try_this ring_nf` が含まれる
/--
info: first
| ring1
| try_this ring_nf
-/
#guard_msgs (info, drop warning) in
#expand ring

/- ## カスタマイズ
新たに型 `R : Type` に対して `ring` タクティクが利用できるようにするためには、`R` を `CommSemiring` または `CommRing` のインスタンスにします。
Expand Down

0 comments on commit e9c1a51

Please sign in to comment.