計算の例(2)

「2つの集合{x;0<x<a},{x;b<x<1}が等しい」という式の入力,出力は,RedLogでは

rlcad( all(x,0<x<a equiv b<x<1) );
a - b > 0 and a - 1 = 0 and b = 0 or a - b < 0 and a <= 0 and b - 1 >= 0

QEPCAD Bでは

(a,b,x) 2 (A x)[ [ 0<x /\ x<a ] <==> [ b<x /\ x<1 ] ].
a - 1 <= 0 /\ b >= 0 /\ [ [ a - 1 = 0 /\ b = 0 ] \/ [ a <= 0 /\ b - 1 >= 0 ] ]

Mathematicaでは

Reduce[ ForAll[ x,Equivalent[ 0<x<a,b<x<1 ] ],Reals ]
(b == 0 && a == 1) || (b >= 1 && a <= 0)

となります.

何れも空集合の場合を含んでいるのは当然ですが,RedLogでは簡約が今一歩でさらにrlgsnを作用させると

a - 1 = 0 and b = 0 or a - b < 0 and a <= 0 and b - 1 >= 0

まで進みます.QEPCAD Bでも前振りが余計ですが,この答え方はQEPCAD Bのスタイルのようです.