豊福です。

児玉さん
>> x = Polynomial("x")
> 
> 1変数と多変数で実現法は違うんですが,
> この段階で x の内部表現は (1元)* x 相当になっています.
> 抽象的に シンボル x を生成しているわけでは無いのが問題のような...
> 
> # 概略を云えば
> # x = ( 1元, "x" ) の組(PolynomialM クラス) 又は
> # x = [0元 (0次の係数), 1元(1次の係数)] の係数列 (Polynomial クラス)
> # のように実現しています.

  R(0) * x -> R(0)
  R(0) + x -> x
  R(1) * x -> x
  R(n) == n # ただしオブジェクトとしては異なる
  R(m) + R(n) -> R(m+n)
  R(m) * R(n) -> R(m*n)
(ここで x は任意のオブジェクト。m,n は整数)

となるようにクラス R(とインスタンス R(0),R(1))を作っておいて
  
 x = ( R(1), "x" ) の組(PolynomialM クラス) 又は
 x = [R(0) (0次の係数), R(1)(1次の係数)] の係数列 (Polynomial クラス)

としてうまくいきませんかね。

  意図はできるだけ R(n) を具体的な係数環クラスのインスタンスと
して評価されるの遅らせられないかということです。

・具体的な係数環クラスが決まって時点で R(n) をそのクラスのイン
  スタンスに変換する。
・係数環となるクラスは R との演算を定義しておかなければならない。
---
                                豊福
                                toyofuku / juice.or.jp