首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基础本科微积分库

基础本科微积分库
EN

Stack Overflow用户
提问于 2017-02-09 15:09:13
回答 1查看 203关注 0票数 4

我已经将考奎罗安装在mathcomp/SSreflect之上。

我想用它执行非常基本的实际分析,即使我仍然没有掌握标准Coq。

这是我的第一个引理:

代码语言:javascript
复制
Definition fsquare (x : R) : R := x ^ 2.
Lemma deriv_x2 : forall y, is_derive (fsquare) y (2 * y).

is_derive f x0 f'是一种函数f at x0 is f'的导数。

我已经证明了这个引理,多亏了科奎斯特提供的auto_derive策略。

如果我想弄脏我的手,这是我在没有auto_derive的情况下所做的尝试:

代码语言:javascript
复制
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.

现在我被这个悬而未决的判决所困扰:

代码语言:javascript
复制
1 subgoal
y : R_AbsRing
______________________________________(1/1)
2 * one * (y * 1) = 2 * y

我该怎么解决呢?

编辑

如果我打电话给ring,我会得到:

代码语言:javascript
复制
Error: Tactic failure: not a valid ring equation.

如果我打开一个,我会得到:

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-09 16:32:15

好的,我花了一小段时间安装import & Coquelicot并找到适当的导入语句,但现在开始。

主要的一点是,one实际上只是R1,但是simpl没有足够的侵略性来揭示这一点:您需要使用compute。一旦您只有R和变量中的原始元素,ring就会负责目标。

代码语言:javascript
复制
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.
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42140207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档