QE で代入
今回は QE の立場から「代入」を考えます.
よく知られた CAS(計算機代数システム)には代入のコマンドが実装されており,例えば,y=x^3+x^2 の x に 2 を代入した式を得るには,Reduce では
sub( x=1 , y=x^3+x^2 );
Mathematica では
ReplaceAll[ y==x^3+x^2 , x -> 1 ]
または
y==x^3+x^2 /. x -> 2
Maple では
subs( x=1 , y=x^3+x^2 ) ;
maxima では
ratsubst( 1, x, y=x^3+x^2 );
とすればよく,何れも y=2 ( Mathematica では y==2 )と出力されます.
この y=2 は「 x^3+x^2 の x に 1 を代入したものが y である」という y についての条件ですから,論理式では
∃x [ x=1 ∧ y=x^3+x^2 ]
RedLog では
ex ( x , x=1 and y=x^3+x^2 );
と表せ,これを
rlqe ex ( x , x=1 and y=x^3+x^2 );
のように QE すれば y=2 が得られます.この方法によれば,例えば,x^5+x-1=0 の唯一の実数解を代入するのも
rlqepcad ex ( x , x^5+x-1=0 and y=x^3+x^2 );
のように容易です.
(結果が簡単になる理由は,方程式の左辺を因数分解すれば判ります)
代入する値が連立方程式の解である場合,解を伏せたまま実行できる QE は特に効果的で,次回はその実例を挙げたいと思います.