polytest.ml
(* pour charger le fichier compilé polynome.cmo dans le mode interactif *)

#load "polynome.cmo";;
open Polynome;;

(* l'anneau des entiers *)
module I =
  struct
    type t = int
    let zéro = 0
    let unité = 1
    let plus = ( + )
    let mult = ( * )
    let equal = ( = )
    let print = print_int
end;;

(* les polynômes à coefficients entiers *)
module X = Make (I);;

let xm = X.monôme;;
let p = X.mult (X.plus (xm 1 0) (xm 1 1)) (X.plus (xm 1 0) (xm (-1) 1));;
let q = X.plus (xm 1 0) (xm (-1) 2);;
X.equal p q;;

module Y = Make (X);;

let ym = Y.monôme;;
let x = ym (xm 1 1) 0;;                  (*  (1 X^1) Y^0  *)
let y = ym (xm 1 0) 1;;                  (*  (1 X^0) Y^1  *)
let moins_unité = ym (xm (-1) 0) 0;;     (*  ((-1) X^0) Y^0 *)
let moins p q = Y.plus p (Y.mult moins_unité q);;

let p = Y.mult (Y.plus x y) (moins x y);;
let q = moins (Y.mult x x) (Y.mult y y);;

Y.equal p q;;
Y.print p;;