Seção 18.5 Sage
Já vimos alguns domínios de integridade e de fatoração única nos capítulos anteriores. Além do que já vimos, Sage pode ser usada para alguns dos tópicos deste capítulo, mas a implementação é limitada. Algumas funções podem ser usadas com alguns anéis e não com outros, enquanto outras funções ainda não fazem parte de Sage. Daremos alguns exemplos, mas isto está longe de ser compreensível.
Subseção 18.5.1 Corpo de Frações
Muitas vezes Sage é capaz de construir um corpo de frações, ou de identificar um certo corpo como um corpo de frações. Por exemplo, o anel de inteiros e o corpo dos números racionais, estão ambos implementados em Sage, e os inteiros “sabem” que os racionais formam seu corpo de frações.
Nos outros casos Sage constrói um corpo de frações, no espírito do Lema 18.1.3. Logo é possível fazer cálculos básicos no corpo construído.
Subseção 18.5.2 Subcorpos Primos
O Corolário 18.1.7 diz que todo corpo de característica \(p\) tem um subcorpo isomorfo a \({\mathbb Z}_p\text{.}\) Para um corpo finito, a natureza exata deste subcorpo não é uma surpresa, e Sage nos permite extraí-lo facilmente.
Mais geralmente, os corpos mencionados nas conclusões do Corolário 18.1.6 e do Corolário 18.1.7 são conhecidos como o “subcorpo primo” do anel que os contém. Aqui temos um exemplo do caso de característica zero.
A grosso modo, todo corpo de característica zero contém uma cópia dos números racionais (o corpo de frações dos inteiros), o que pode explicar o extenso suporte em Sage dos anéis e corpos que estendem os inteiros e os racionais.
Subseção 18.5.3 Domínios Integrais
Sage pode determinar se alguns anéis são domínios integrais e podemos comprovar produtos neles. Mas, noções de unidade, elementos irredutíveis, ou primos não estão implementados em geral (fora do que vimos para polinômios no capítulo anterior). Pior ainda, a construção que segue cria um anel dentro de um corpo maior e algumas funções (como .is_unit()
) são herdadas e nos dão resultados enganosos. Isto é devido a construção abaixo cria um anel conhecido como uma “ordem em um corpo de números.”
O seguinte exemplo é um pouco enganoso, pois \(4\text{,}\) como elemento de \({\mathbb Z}[\sqrt{3}i]\) não tem inverso multiplicativo, mas aparentemente podemos calcular um. (Nota de AB: porque isso te incomoda aqui e não em \({\mathbb Z}\text{?}\))
Subseção 18.5.4 Ideais Principais
Quando um anel é um domínio de ideais principais, como os inteiros, ou polinômios sobre um corpo, Sage funciona bem. Mas, desconsiderando isso, a coisa enfraquece.