struct f : TPPolynominal { // f(x) = x^2 - 2 in Q[x] static let value = Polynominal<Q>(-2, 0, 1) } typealias K = FieldExtension<f> // K = Q[x]/(x^2 - 2) let a = K(0, 1) // x mod (x^2 - 2) a * a // 2 mod (x^2 - 2) a * a == 2 // true! これが何のことか分からなくても、最後の1行を見てください… a * a == 2 となっています! a は自乗して 2 になる数なんだから、これは $\sqrt{2}$ そのものです。同じように虚数単位 $i$ や $1$ の原始 $n$ 乗根 $\zeta_n$ も、近似ではない「その数そのもの」をプログラムで実現できてしまうので