Coquelicot을 mathcomp/SSreflect 위에 설치했습니다.기본 학부 계산을위한 Coquelicot 라이브러리
표준 Coq를 마스터하지 않아도 기본 분석을 수행하고 싶습니다.
이 나의 첫번째 보조 정리하다 : 상태가
Definition fsquare (x : R) : R := x^2.
Lemma deriv_x2 : forall y, is_derive (fsquare) y (2 * y).
is_derive f x0 f'
가 Coquelicot 소유입니다 기능 f at x0 is f'
의 파생.
나는이 보조 정리를 이미 Coquelicot이 제공 한 auto_derive
전술 덕분에 증명했습니다.
내 손에 더러운 조금을 얻고 싶은 경우에
,이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.
그리고 지금은이 출원의 판단에 붙어 :
1 subgoal
y : R_AbsRing
______________________________________(1/1)
2 * one * (y * 1) = 2 * y
가 어떻게 해결합니까 그거야?
편집 : 나는 ring
를 호출하는 경우
, 내가 얻을 :
Error: Tactic failure: not a valid ring equation.
내가 하나를 전개하는 경우, 내가 얻을 :
이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
[ring tactic] (https://coq.inria.fr/refman/Reference-Manual028.html)을 살펴 보시기 바랍니다. – gallais
@gallais : Thx. 필드 전술은이 단계에서 실패합니다. 나는 "하나"라는 용어를 제거해야한다고 생각합니다. 나는 펼쳐 보았지만 두려웠다. – FZed
'ring'을 사용해 보셨습니까? 여기에 '현장'의 모든 힘이 필요하지 않습니다. '하나'는 무엇을 펼치나요? 나는 그것을 전개하는 것이 좋은 생각 일 것이라고 정말로 기대할 것입니다. – gallais