我是Coq的新手,正在做一些練習,以便更熟悉它。Coq如何漂亮地打印使用策略構造的術語?
我的理解是,在證明勒柯克命題「真」是寫下來加利納一個類型,然後顯示出它的使用戰術方面確定性的方式結合在一起居住。
我不知道是否有一種方式來獲得實際刑期的一個漂亮的印刷表示,所有的戰術中刪除。
在下面,plus_comm (x y : N) : plus x y = plus y x
類型的匿名術語最終產生的例子。我想。如果我想看看,我應該怎麼做?從某種意義上說,我很好奇什麼策略「脫鉤」。
這裏是有問題的代碼,在YouTube上https://www.youtube.com/watch?v=OaIn7g8BAIc取消實質上逐字從教程。
Inductive N : Type :=
| O : N
| S : N -> N
.
Fixpoint plus (x y : N) : N :=
match x with
| O => y
| S x' => S (plus x' y)
end.
Lemma plus_0 (x : N) : plus x O = x.
Proof.
induction x.
- simpl. reflexivity.
- simpl. rewrite IHx. reflexivity.
Qed.
Lemma plus_S (x y : N) : plus x (S y) = S(plus x y).
Proof.
induction x.
- simpl. reflexivity.
- simpl. rewrite IHx. reflexivity.
Qed.
Lemma plus_comm (x y : N) : plus x y = plus y x.
Proof.
induction x.
- simpl. rewrite plus_0. reflexivity.
- simpl. rewrite IHx. rewrite plus_S. reflexivity.
Qed.