1.2 Компьютерная алгебра: точная целочисленная и полиномиальная арифметики
 
Как отмечалось выше, для того чтобы иметь возможность представлять целые числа произвольной точности и выполнять точные арифметические операции, нам необходимо ввести (если их еще нет) соответствующие структуры данных (или воспользоваться модулярной арифметикой, как мы увидим в гл. 2) и избегать чисел с плавающей точкой; это и делается в компьютерной алгебре. В этом разделе мы вводим вычислительную модель для целочисленного и полиномиального представлений и анализируем некоторые алгоритмы «с карандашом и бумагой» выполнения над ними арифметических операций. Очевидно, что для представления целых чисел и полиномов можно пользоваться массивами, но они не являются «динамическими» структурами данных; мы будем обсуждать только их представление в виде списков (Horowitz et al., 1976). 
Списки и базисные операции над списками.
 
Прежде всего рекурсивно определим список над произвольным множеством S как конечную последовательность  , в которой каждый элемент
, в которой каждый элемент  является либо элементом множества S, либо списком над S; пустой список представляется символом
 является либо элементом множества S, либо списком над S; пустой список представляется символом  и соответствует
 и соответствует  . Когда мы пишем
. Когда мы пишем  мы интерпретируем это двояко: (1) а рассматривается как указатель на начало списка и (2) а представляет весь список, так что, когда мы пишем
 мы интерпретируем это двояко: (1) а рассматривается как указатель на начало списка и (2) а представляет весь список, так что, когда мы пишем  где
 где  — одна из бинарных операций над скалярами, мы имеем в виду, что операция
 — одна из бинарных операций над скалярами, мы имеем в виду, что операция  должна быть произведена над
 должна быть произведена над