Ich habe Coquelicot oben auf Mathcomp/SSreflect installiert.Coquelicot-Bibliothek für grundlegende Bachelor-Kalkül
Ich möchte sehr grundlegende echte Analyse damit durchführen, auch wenn ich Standard-Coq noch nicht meistern.
Dies ist mein erstes Lemma:
Definition fsquare (x : R) : R := x^2.
Lemma deriv_x2 : forall y, is_derive (fsquare) y (2 * y).
is_derive f x0 f'
ist ein Coquelicot Prop, die besagt, dass die Ableitung der Funktion f at x0 is f'
.
Ich habe dieses Lemma bereits dank auto_derive
Taktik von Coquelicot bewiesen.
Wenn ich möchte, dass meine Hände ein wenig schmutzig machen, das ist mein Versuch, ohne auto_derive
:
Lemma deriv_x2 : forall y, is_derive (fsquare) y (2 * y).
Proof.
move => y.
unfold fsquare.
evar_last.
apply is_derive_pow.
apply is_derive_id.
simpl.
Und jetzt bin ich mit diesem bis zur Entscheidung fest:
1 subgoal
y : R_AbsRing
______________________________________(1/1)
2 * one * (y * 1) = 2 * y
Wie löse ich es?
EDIT:
wenn ich ring
nennen, die ich erhalten:
Error: Tactic failure: not a valid ring equation.
wenn ich eine entfalten, erhalte ich:
1 subgoal
y : R_AbsRing
______________________________________(1/1)
2 *
Ring.one
(AbelianGroup.Pack R_AbsRing (Ring.class R_AbsRing) R_AbsRing)
(Ring.class R_AbsRing) * (y * 1) = 2 * y
Sie wollen wahrscheinlich in die [Ringtaktik] (https://coq.inria.fr/refman/Reference-Manual028.html) schauen. – gallais
@gallais: Thx. Feldtaktik versagt in diesem Stadium. Ich denke, ich muss den Begriff "Eins" loswerden. Ich habe es versucht, aber es ist keine gute Idee, fürchte ich. – FZed
Haben Sie versucht, zu "klingeln"? Du brauchst hier nicht die ganze Kraft von 'field'. Was macht "eins"? Ich würde tatsächlich erwarten, dass es eine gute Idee ist, es zu entfalten. – gallais