apply - 適用

\(H \colon P \to Q\) が仮定または定理にあり, \(Q\) が goal のとき, apply H は goal を \(P\) にすり替える.

1 subgoal

  P : Type
  Q : Type
  H : P -> Q
  ============================
  Q

pq <   apply H.
1 subgoal
  
  P : Type
  Q : Type
  H : P -> Q
  ============================
  P

apply ... with

適用する仮定(定理)の forall な部分は上手いこと置き換えて適用するよう試みてくれるが, 上手く置き換えを見つけてくれないことがある. その場合には with でヒントを与えることが出来る.

1 subgoal
  
  H : forall (X : Type) (x y z : X), x = y -> y = z -> x = z
  a, b, c, d : nat
  ============================
  [a; b] = [b; c] -> [b; c] = [c; d] -> [a; b] = [c; d]

pq <   apply H with (x := [a;b]) (y := [b;c]).
No more subgoals.