Как вы заметили, проблема в том, что у нас есть w
и w0
, и они, похоже, не согласны. На этой ссылке на документацию у нас есть интересный пример.
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 .
А пока, если вы сможете найти способ получить желаемый ордер, используя обычный синтаксис для ордеров, я сделаю это,Для примера, который я сделал из документации, я думаю, что Za
и OK
одинаковы, но для вашего я попробовал это.
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
, что, безусловно, является улучшением. Увы,
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
так что теперь я вне моей глубины. Разрешены ли такие коэффициенты как таковые? Возможно, вам придется создать идеально вместо этого, чтобы выполнить это действие. Удачи!