使用鼠尾草计算环商

问题描述 投票:1回答:1

让𝐾=ℚ(√2)和𝐿=𝐾(where),其中𝑤^ 2 +𝑤+ 1 = 0是统一的三次方根之一。设a为L的本原元素,O_K为代数整数环。然后如何计算O_K / Z [a]等商?我尝试过:

K.<sqrt2> = NumberField(x^2-2)
L.<w> = K.extension(x^2+x+1)
a = L.primitive_element()
print L.ring_of_integers().quotient(ZZ[a])

但是我总是会收到类似错误的错误:“无法在w0的数字字段中通过定义多项式x ^ 2 +(2 * sqrt2 +1)* x + sqrt2 + 3将其基本字段转换为w的Number字段,从而转换w在其基本字段上定义多项式x ^ 2 + x + 1”。

这里正确的语法是什么?

sage
1个回答
0
投票

您注意到,问题在于我们有ww0,但他们似乎不同意。在this documentation link,我们有一个有趣的示例。

sage: K.<a> = NumberField(x^3 - 2)
sage: ZZ[a]
Order in Number Field in a0 with defining polynomial x^3 - 2 with a0 = a

这使我尝试

sage: K.<a> = NumberField(x^3 - 2)
sage: Za = ZZ[a]
sage: OK = K.maximal_order()
sage: Za.is_suborder(OK)
False
sage: OK.is_suborder(Za)
False
sage: OK
Maximal Order in Number Field in a with defining polynomial x^3 - 2
sage: Za
Order in Number Field in a0 with defining polynomial x^3 - 2 with a0 = a
sage: OK.number_field()
Number Field in a with defining polynomial x^3 - 2
sage: Za.number_field()
Number Field in a0 with defining polynomial x^3 - 2 with a0 = a
sage: OK.number_field() == Za.number_field()
False

并且正如我们所看到的,即使a0=a显然也没有办法直接比较基础数字字段。我并不是代码的这一部分的专家,但我认为至少值得一提。我已经打开Trac 28706


同时,如果您可以找到一种使用订单的常用语法来获取所需订单的方法,我会这样做。对于我从文档中获得的示例,我认为ZaOK是相同的,但是对于您的我尝试了此操作。

sage: Za.gens()
(1, w0, (-2*sqrt2 - 1)*w0 - sqrt2 - 3, (3*sqrt2 + 6)*w0 + 7*sqrt2 + 7)
sage: O1 = L.order([1,w,(-2*sqrt2 - 1)*w - sqrt2 - 3, (3*sqrt2 + 6)*w + 7*sqrt2 + 7])
sage: O1.is_suborder(OK)
True

这肯定是一种改进。 las,

sage: OK.quotient(O1)
TypeError: unable to convert Maximal Relative Order in Number Field in w with defining polynomial x^2 + x + 1 over its base field to Number Field in w with defining polynomial x^2 + x + 1 over its base field

所以现在我已经不懂事了。本身是否允许这种商?您可能必须创建ideal才能执行此操作。祝你好运!

© www.soinside.com 2019 - 2024. All rights reserved.