Relevantná kapitola v knihe Logical Foundations.
Osnova
- Kompilovanie a import
- Indukcia
- Dôkazy v dôkazoch
- Formal vs. Informal proofs
- Nat na Bin a späť
Doterajšie taktiky
Taktiky, ktoré sme videli v Basics.v a Induction.v.
n - mená
e - výrazy vo funkcionálnom jazyku
c - taCtics 
t - typ
simpl
reflexivity
rewrite { ->, <- or nothing } c1
intro n1
intros n1 n2 n3 ... nk
destruct n as [ n1 | n2 | n3 | ... | nk ] (** creates k goals **)
induction n as [ n1 IHc1 | n2 IHc2 | n3 IHc3 | ... | nk IHck ] (**creates k goals **)
admit
assert ( n : t ) (** creates o new goal **)
replace e1 with e2 (** creates two goals **)Ďalšie taktiky, ktoré sa môžu hodiť
exact e1
assumption 
try 
do n c Pre ešte viac taktík, pozri tu.
Commands
Môže sa hodiť Search, ktorý umožňuje relatívne šikovne hladať tvrdenia v kontexte.
Riešenie k nat_to_bin a bin_to_nat z Basics.v.
Syntax
Inductive nat : Type :=
  | O
  | S (n : nat).
Definition is_zero (n : nat) : bool := 
  match n with 
  | O => true
  | S n' => false 
  end.
Fixpoint plus (n : nat) (m : nat) : nat :=
  match n with
  | O => m
  | S n' => S (plus n' m)
  end.
Notation "x + y" := (plus x y) (at level 50, left associativity) : nat_scope.
(** Theorem, Lemma, Fact, Example **)
Theorem add_0_l : forall n:nat, O + n = n.
Proof.
  intros n.
  simpl. 
  reflexivity.
Qed.
(** Prípadne Admitted. alebo Abort. **)