unfold

unfold は,式の展開(unfolding)を行うタクティクです.定義に基づいて式を展開します.

何も指定しなければゴールを変形しようとします.ローカルコンテキストにある項 h について展開を行うには,unfold ... at h のように at を付けます.

dsimp タクティクを使っても同様のことができます.基本的に dsimp を使用することが推奨されます.

def myFun (n : Nat) : Nat :=
  n + 1

example (n : Nat) : myFun n ≥ 1 := by
  -- `dsimp` でも同じことができる
  try
    dsimp [myFun]
    show n + 1 ≥ 1
    fail

  -- `myFun` を定義に展開する
  unfold myFun
  simp_arith