2017-02-09 2 views
3

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 
+0

[ring tactic] (https://coq.inria.fr/refman/Reference-Manual028.html)을 살펴 보시기 바랍니다. – gallais

+0

@gallais : Thx. 필드 전술은이 단계에서 실패합니다. 나는 "하나"라는 용어를 제거해야한다고 생각합니다. 나는 펼쳐 보았지만 두려웠다. – FZed

+1

'ring'을 사용해 보셨습니까? 여기에 '현장'의 모든 힘이 필요하지 않습니다. '하나'는 무엇을 펼치나요? 나는 그것을 전개하는 것이 좋은 생각 일 것이라고 정말로 기대할 것입니다. – gallais

답변

4

좋아, 그것은 나에게 조금했다 ssreflect & Coquelicot을 설치하고 적절한 import 문을 찾으면됩니다.

주요 포인트는 one 실제로 단지 R1 후드하지만 simpl가 공개 할만큼 공격적으로되지 않는 것입니다 : 대신 compute를 사용해야합니다. R과 변수에 원시 요소 만 있으면 ring이 목표를 처리합니다.

Require Import Reals. 
Require Import Coquelicot.Coquelicot. 
Require Import mathcomp.ssreflect.ssreflect. 

Definition fsquare (x : R) : R := x^2. 

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. 
    compute. 
    ring. 
Qed. 
+0

OP는 이미'auto_derive'를 알고 있지만 "손을 조금 더럽 히고 싶다". ;) – gallais

+0

설치 및 분석에 대한 Thx. 고맙습니다. 메르시. – FZed

+0

불편 함, @FZed. 나는 새로운 [SSReflect book] (https://math-comp.github.io/mcb/)을 읽었으므로 모든 것을 설치하는 좋은 변명을 찾았으므로 연습 문제를 해결하려고 할 수도 있습니다. :) – gallais