我正在学习Coq,我需要第一次使用ring
策略。我尝试在Require Ring.
或Require ArithRing.
之后使用它来简化我作为目标的等式的右侧,但Coq将其作为不存在的引用。我在这里复制了我的一段代码(我已使用ring
和ring_simplify
多次尝试过):
Lemma sum_n_p : forall n, 2 * sum_n n + n = n * n.
(* sum_n n is inductively defined as the sum of all numbers between 1 and n *)
Proof.
intros n.
induction n as [ |m IHm].
+simpl.
reflexivity.
+assert (SnSn : S m * S m = m * m + 2 * m + 1).
ring_simplify in [S m * S m = m * m + 2 * m + 1]. (*or just ring. , neither works*)
rewrite SnSn.
rewrite <- IHm.
simpl.
ring.
Qed.
答案 0 :(得分:3)
要调用这些策略,您需要导入这些模块,而不仅仅是需要它们:
DateTime
我尝试在添加这些行后运行您的证明,但Coq陷入了不同的错误。在Coq <。p>接受之前,您可能仍需要调整脚本