Ir para o conteúdo

02 · Inteiros: representantes e equivalência

Inteiros: representantes e equivalência

Represente `a-b` pelo par natural `(a,b)` e entenda por que pares diferentes podem ser o mesmo inteiro.

Antes deste capítulo

Você já consegue seguir a igualdade e a adição recursivas dos naturais.

Ao terminar, você poderá
  • explicar com suas palavras a definição matemática de “Inteiros: representantes e equivalência”
  • apontar como essa definição é representada em dados Python
  • prever uma execução pequena a partir do código real
Definição matemática

`(a,b)` e `(c,d)` representam o mesmo inteiro exatamente quando `a+d=b+c`; um inteiro é uma classe de pares sob essa equivalência.

Representação dos dados

`Integer` guarda dois naturais. `(3,1)` e `(4,2)` são objetos distintos que representam o valor 2.

Implementação em Python

`(a,b) ~ (c,d)` → `a + d == b + c` → `Integer.__eq__`

Implementação e testes para ler junto com o capítulo

peano/integer.py · tests/test_integer.py

Definição matemática

Definição matemática

(a,b) e (c,d) representam o mesmo inteiro exatamente quando a+d=b+c; um inteiro é uma classe de pares sob essa equivalência.

Representação dos dados

Representação dos dados

Integer guarda dois naturais. (3,1) e (4,2) são objetos distintos que representam o valor 2.

Implementação em Python

Implementação em Python

Integer.__eq__ compara as somas cruzadas e normalize() elimina a parte comum para escolher, por exemplo, (2,0).

A correspondência exata usada no curso:

`(a,b) ~ (c,d)` → `a + d == b + c` → `Integer.__eq__`

Fluxo de execução

Fluxo de execução

Comparar inteiros ativa adição e igualdade de naturais, de modo que o log mostra a reutilização do capítulo anterior.

Previsão antes de executar

Decida primeiro se os pares são iguais e qual será o representante normalizado.

Experimento · Inteiros: representantes e equivalência Não executado
⌘ / Ctrl + Enter
Saída
Primeiro escreva sua previsão; depois execute.

Verificação com testes

Verificação com testes

Os testes cobrem representantes diferentes, fechamento das operações e normalização para garantir que o resultado seja bem definido.

Escopo e limites

Escopo e limites

Os pares são menos eficientes que int, mas tornam visível a construção por quociente.

Qual afirmação descreve corretamente a implementação de “Inteiros: representantes e equivalência”?