基本上,我想在某些情况下观察伪多项式除法的结果(比如3 x ^ 2 + 2 x +1和2 x +1)。多项式之间的伪划分在Ssreflect 1.4中的polydiv.v中的edivp中实现。我希望代码应该类似于以下内容:
Require Import ssreflect ssrfun ssrbool eqtype ssrnat seq choice fintype.
Require Import ssralg poly ssrnum zmodp polydiv interval.
Open Scope Z_scope.
Definition p := Poly [::1;2;3].
Definition q := Poly [:1;2:].
Eval compute in edivp p q.
但是,由于类型统一失败,代码停留在定义p。非常感谢任何帮助。
答案 0 :(得分:1)
我终于有时间安装ssreflect来测试你的问题。正如我们在评论中讨论的那样,您应该依赖ssreflect的整数来获取正确的规范结构实例。这是我的代码,使用ssr1.4和coq8.4pl5:
Require Import ssreflect ssrfun ssrbool eqtype ssrnat seq choice fintype.
Require Import ssralg poly ssrnum zmodp polydiv ssrint.
Open Scope int_scope.
Definition p := Poly [:: 1%:Z;2%:Z;3%:Z].
Definition q := Poly [:: 1%:Z;2%:Z].
现在Eval compute
输入正确,但其计算似乎并未终止。
我认为这是由于ssr的内部选择禁止计算。您应该直接在ssreflect的邮件列表中详细了解这一点。
希望这有帮助, 诉