Если я определю умножение следующим образом (drugi_c
), как мне доказать, например, X*0=0
?
(Как доказать что-то по определению?)
Fixpoint drugi_c(x y: nat): nat:=
match x, y with
| _, O => O
| O, _ => O
| S O, _ => y
| _,S O => x
| S x', S y' => plus y (drugi_c x' y)
end.
Notation "x * y" := (drugi_c x y) (at level 40, left associativity).
Всякий раз, когда я использую «упрощенный». в доказательствах вместо 0 = 0 я получаю определение в результате.
Lemma neka2 x:
x * 0 = 0.
Proof.
induction x.
-simpl. reflexivity.
-simpl. (*right here*)
Abort.
Результат после последнего упрощения.
1 subgoal
x : nat
IHx : x * 0 = 0
______________________________________(1/1)
match x with
| 0 | _ => 0
end = 0
Что написать после этого последнего simpl.
, чтобы закончить доказательство?