J'ai installé Coquelicot sur mathcomp/SSreflect.Bibliothèque Coquelicot pour le calcul de base de premier cycle
Je veux effectuer une analyse réelle très basique même si je ne maîtrise pas encore le standard Coq.
Ceci est mon premier lemme:
Definition fsquare (x : R) : R := x^2.
Lemma deriv_x2 : forall y, is_derive (fsquare) y (2 * y).
is_derive f x0 f'
est un Coquelicot Prop qui indique que la dérivée de la fonction f at x0 is f'
.
J'ai déjà prouvé ce lemme grâce à la tactique auto_derive
fournie par Coquelicot.
Si je veux obtenir mes mains un peu sale, c'est ma tentative sans 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.
Et maintenant, je suis coincé avec cet arrêt en cours:
1 subgoal
y : R_AbsRing
______________________________________(1/1)
2 * one * (y * 1) = 2 * y
Comment puis-je résoudre il ?
EDIT:
si je l'appelle ring
, je reçois:
Error: Tactic failure: not a valid ring equation.
si je déplie un, je reçois:
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
Vous voulez probablement regarder dans la [tactique d'anneau] (https://coq.inria.fr/refman/Reference-Manual028.html). – gallais
@gallais: Thx. La tactique de terrain échoue à ce stade. Je suppose que je dois me débarrasser du terme «un». J'ai essayé de me dévoiler mais ce n'est pas une bonne idée j'ai peur. – FZed
Avez-vous essayé 'ring'? Vous n'avez pas besoin de toute la puissance de 'field' ici. Qu'est-ce que 'one' se déroule? Je m'attendrais en effet à ce que ce soit une bonne idée de le déplier. – gallais