Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
30
Добавлен:
20.03.2015
Размер:
589.11 Кб
Скачать

” -ª ¨ï radcan

 

 

 

 

 

 

 

 

 

¯ ®é ¥ ¢ë ¦¥-¨ï ® ¢«®¦¥--묨 ¥¯¥-ﬨ ¨ «®£ ¨ ¬ ¬¨:

 

radcan(

^3*exp(4*y *

 

 

 

 

exp(5*log(w)

/z^6 )

);

 

 

 

 

(x^(a/2)+1)^(a/2)

/ (x^a-1) );

 

 

 

 

radcan( (x^

-1)^2- *6 log(z) + 4 y + 3 log(x) + 5 log(w)

” -ª ¨ï rootscontract xa

- 1

 

 

 

 

ª®¬¯ ª ¨ ¨ ¨ ¥ ¢®§¢¥¤¥-¨ï ¢ ¥¯¥-ì ¢ ¤ --®¬ ¢ë ¦¥-¨¨

 

rootscontract( x^(1/6)*

 

1/5

 

1/6

 

y^(1/12)*z^(1/30) );

 

)

 

 

 

 

(x sqrt(y) z

 

 

 

rootscontract( x^(1/2)*y^(1/2)*

 

 

 

¨ï z^(1/4) );

 

 

sqrt(x y sqrt(z))

 

 

logcontract(logcontract

+

 

 

 

 

 

 

ª®¬¯ ª ¨ ¨ ¨ ¥ «®£ ¨ ¬ë ¢ ¤ --®¬ ¢ë ¦¥-¨¨

 

3*log(y)-4*log(x) );

y3

 

 

 

 

 

 

 

 

log(x4 ) + a log(x)

30

(‹®¨¬¢®«£¨ ¥ ª¨#>¥§¢ë-< ¦>=-"¨ï¥

®¡<= -§ =î §ï#

¨§ ®¯¥"a=b¨©" ¨¬¥¥ - ¨--¨ï® ¨¬ "equal(a,b)").

--®¢ ®© ® ®¡¥--

®",¯¥ ¨© ¢-¥-¨ï

 

®, ®

¨ ¯®-

‘ ¢¨ ì ¢ ª ¥ ¢¥ «

¢¨© ¢ ¨ª«

«® -

ï¢ë¥ ¦ï-¨ï , ®¥®«¨-

¡ ¤

¢ë ¨ «¥-ë, -® ¢§ï ë¥ ® ¬¨ì ¥¡¥,¯¨®- ì -¥ ¢ë ¨ «ïî ï:

 

 

3>2;

3>2

 

 

 

 

equal(3,2);#2;

equal(3,2)

 

 

 

3#2

 

 

 

 

”« £ "pred" ¢ -ª ¨¨ "ev" ¢ë§ë¢ ¥ ¢ë ¨ «¥-¨¥ «®£¨ ¥ ª¨ ¢ë ¦¥-¨©:

#2,pred);

 

 

 

 

 

ev(3#2,pred;

true

 

 

 

 

” -ª ¨ï is

 

 

 

 

¨-¨ ¨¨ ¥ ¢ë ¨ «¥-¨¥ «®£¨ ¥ ª®£® ¢ë ¦¥-¨ï

 

 

 

3=2);>

true

 

 

 

 

equal(3,2));

false

 

 

 

is(3#2);

true

 

 

 

 

Š ®¬¥ ®£®, ®¯ ¥¤¥«¥-ë ¢ ®¥--ë¥ «®£¨ ¥ ª¨¥ -ª ¨¨, ¯¥ ¥ ¨ «¨¬ -¥ª® ®-

ë¥ ¨§ -¨ .

31

 

 

(¢®§¢- ¯ ¨¬é¥ , "¨true«® ",¨«¨¥ «¨¯¥ ¥¬£¥--¬¥-ï --¥¥¨¬¨¬¥¥î¥ ª ë), . .¥. ® ¢-ë ¥©

 

 

 

atom(x);

true

 

 

 

 

 

 

atom(f(x));

 

 

 

 

-ª ¨ï zeroequiv

false

 

®¤-®£® £ ¬¥- - « . Ž- ¢®§-

 

¯ ®

ï¢«ï¥ ï «¨ - ® ® ï -

 

Ӣ

颥 ï¥ ",true", ¥ «¨ -¥ª ¨ï ¢-

 

-ª «î¨ï

¨ "false" ¢ ¯ ® ¨¢-®¥¬ « ¥.

 

 

 

zeroequiv(exp(2*x) - exp(x)^2, x)

” -ª ¨ï freeof

true

£ ¬¥- -¥ ®¤¥ ¦¨ (" ¢®¡®¤¥- ® ") ¯¥ -

 

 

§¢ é ¥ "true", ¥ «¨ ¢ ® ®© ¥¥

 

¢®£®

freeof(x,f(x+g(y)));

false

 

 

 

 

 

freeof(g,f(x+g(y)));

 

 

 

 

 

freeof(z,f(x+g(y)));

false

 

 

” -ª ¨ï symbolp

true

 

 

 

 

¢®§¢ é ¥ "true", ¥ «¨ ¥¥ £ ¬¥- ï¢«ï¥ ï ¨¬¢®«®¬:

 

 

 

symbolp(f(x));

false

 

 

 

 

 

symbolp(3);

false

 

 

 

 

 

symbolp(f);

true

 

32

 

 

 

 

 

 

 

 

f(1/3));sin(1/3));f); scalarp(1/3);

listp([x,y]);¨ï

¢®§¢ é ¥ "true", ¥ «¨ ¥¥ x);

” -ª ¨ï matrixp

¢®§¢ m:ident(2);é ¥ " rue", ¥ «¨ ¥¥ matrixp(m);

” -ª ¨ï numberp

¢®§¢ é ¥ "true", ¥ «¨ ¥¥ sin1/3);/3 exp(1));.0));

numberp(1%pi);

.3b22);

falsetrue false true

£ ¬¥- ï¢«ï¥ ï false

true

£ ¬¥- ï¢«ï¥ ï

1 0

0 1 false true

£ ¬¥- ï¢«ï¥ ï true

false true false 33

¯¨ ª®¬. ¬ ¨ ¥©.

¨ «®¬:

¢®§¢” integerp(1/5);é¨ï¥ "true-3);", ¥ «¨ ¥¥

” -ª ¨ï oddp

¢®§¢ é ¥ "true", ¥ «¨ ¥¥ oddp(4);-3);

” -ª ¨ï evenp

¢®§¢ é ¥ "true", ¥ «¨ ¥¥ evenp(4);

-3);

” -ª ¨ï primep

¢®§¢ é ¥ "true", ¥ «¨ ¥¥ primep(9);11);

--ª ¨ï floatnump

¢®§¢ é ¥ "true", ¥ «¨ ¥¥ è¨ ®© ® -® ¨.1);.0);

floatnump(2.3be-4);

£true¬¥- ï¢«ï¥ ï ¥«ë¬ ¨ «®¬. false

£ ¬¥- ï¢«ï¥ ï ¥«ë¬ -¥ ¥ -ë¬ ¨ «®¬. true

false

£ ¬¥- ï¢«ï¥ ï ¥«ë¬ ¥ -ë¬ ¨ «®¬. true

false

£ ¬¥- ï¢«ï¥ ï ¥«ë¬ ¯ ® ë¬ ¨ «®¬. true

false

£ ¬¥- ï¢«ï¥ ï ¤¥© ¢¨ ¥«ì-ë¬ ¨ «®¬ ¬ - true

false true false 34

-¨ ¥--®© ® -® ¨.

 

 

 

 

 

.0);

 

false

 

 

 

1);

 

 

 

 

bfloatp(2.3e-4);

false

 

 

 

 

b

 

true

 

Š ®¬¥ ®£®, «®£¨ ¥ ª¨¬¨ ¢ë ¦ -¨ï¬¨ ïî ï § ¯ ® ë ¨§ ¡ §ë ¤ --ë :

‘«¥¤ ¥ ¯®¤ ¥ ª-ì,

® ¥ ì ¨¤ -¥ §- ¥-¨¨ ¯¥ ¥¬¥--®© "a" (ª® ® ®¥

-¥ ¯ ¨ ¢®¥ ® ¨, «¥¤®¢ «ì-®, -¥¨§¢¥ -®),

®¡ ¨- ® ¬ ¨¨, ¢ ª ª®© ®¡« ¨

í

is(a>3);

 

 

 

 

¯¥ ¥¬¥-- ï ¬®¦¥ ¬¥-ï ì ï.

 

”-ª ï

 

 

[n>4]

 

 

assume(n>4);

 

 

¢¢®¤¨

¨- ® ¬ ¨î ® ¯¥ ¥¬¥--®© ¢ ¡ § ¤ --ë .

•® «¥ í ®£® ¬®¦-® ¢¢®¤¨ ì § ¯ ® ¨¯

 

 

is(n>1);

 

 

true

 

• ¨ í ®¬ § ¯ ® ë -

¨- ® ¬ ¨î, ª® ® ®© ¢ ¡ §¥ ¤ --ë -¥ , ¢ë§®¢ ®®¡-

é¥-¨¥ "unknown":

 

 

 

 

 

 

<

 

 

unknown

 

’®

is(n>7);

 

 

 

®

ª ¦¥ ¢ë§®¢¥ ®®¡é¥-¨¥ "unknown" ¡®«¥¥ «®¦-ë© § ¯ ® (ª® ® ë© ¢

¯ ¨- ¨¯¥ ¤®«¦¥- ¡ë« ¡ë ¤ ì §- ¥-¨¥ "true"):

 

is(n^2+n>19);

 

unknown

 

‡ ¡ ¢-®, ® ¥§ «ì ¤ £¨ § ¯ ® ®¢ ¤®¢®«ì-® § £ ¤® ¥-:

 

is(n^2+n>1);

 

unknown

 

 

 

 

 

 

35

 

¨•®¢ ®¨§¡ë-®¥ ®¯ ¨¬® ¥-ì¥.-¨‚¥

 

true

 

 

« -ª¥,¨¨ «¨"assume-®¢ " ¯ ®¢®¥¬ï¥ ¨ïï -- ¯ ® ¨¢® ¥ ¨ ¯ ¥-

ë¤ é¨¬

¤ --ë¬

 

-¥ ¢ë ¥ª ¥ ¨§

-¨ , ®-

¤¤¨ ¨¢-® ¤®¡ ¢«ï¥ ï ª ¡ §

¤ --ë . Š ®¦ «¥-¨î,

¯ ¥¤ë¤ 騥 «®¢¨ï -¥ ¯ ®¢¥ ïî ï - ¨§¡ë¥®¨¢®- ì

¯ ¨ ¯®ï¢«¥-¨¨ -®¢ë «®¢¨©:

 

 

 

 

assume(n>3);

 

 

[redundant]

 

 

assume(n<3);

 

 

 

 

assume(n>10);

 

 

[inconsistent]

 

 

assume(n<30);

 

 

[n>10]

 

 

 

is(n<9);

 

 

 

 

 

[n<30]

 

 

” -

is(n>31);

 

 

 

 

false

 

 

 

properties

false

 

¢ëï -¨ ì, ª ª ï ¨¬¥--

¯¥ ª ¥¨ï ¢®© ¢

¯¥ ¥¬¥--®© ¨, ¥¬ ¬ë¬, ¯®

-® ¨- ®¬

¨ï ®¤¥ ¦¨ ï ¢ ¡ §¥ ¤ --ë ® ¤ --§¢®«ï© ¯¥¥ ¥¬¥--®©

 

properties(n);

 

[database info, n > 4, n > 10, 30 > n]

(-®¢®¥ «®¢¨¥ n > 10 - ® ¬¥-¨«® ¨§¡ë ® -®¥ ¥¯¥ ì «®¢¨¥ n > 4).

ˆ§ ¯ ¨¢¥¤¥--

 

¯ ¨¬¥ ®¢ ¢¨¤-®, ® ¯®¬¥-ï ì ¢®© ¢® ¯¥ ¥¬¥--®© - ¯ ®-

¨¢®¯®«®¦-®¥ë ¯®¬®éìî -ª ¨¨ "assume" -¥¢®§¬®¦-®:

 

 

 

>

 

$

 

 

[inconsistent]

 

 

assume(x<0);

 

 

 

 

is(x>0);

 

 

 

 

 

true

36

 

 

 

 

 

 

 

 

 

 

 

 

¯¥ ¥¬¥--®© -

¯ ® ¨¢®¯®«®¦-®¥.

 

info, n > 4, n > 10]

 

 

 

 

 

properties(n);forg t(n<30);

 

í

 

[databasen<30]

 

 

 

 

‡ ¡ ¢-®, ® ¯® «¥

 

 

¬ -¨¯

 

¬®¦-® ¯ ¨ ¢®¨ ì ¯¥ ¥¬¥--®© "n"

 

§- ¥-¨¥, ª® ® ®¥ ¡ ¢¤¥

¯ ¨® ¨¢® ¥ ¨«ïì ¨©- ® ¬ ¨¨ ¨§ ¡ §ë ¤ --ë :

 

 

 

 

n:-77;

 

 

 

 

 

-77

 

 

 

 

 

 

 

 

is(n>0);

 

 

 

 

 

 

 

 

 

 

 

 

properties(n);

 

 

 

false

 

 

 

 

 

 

 

-ª ¨ï kill

 

 

 

 

[value, database info, n > 4, n > 10]

 

 

”-¨ ®¦ ¥ ¢ î - ® ¬ ¨î (ª ª ¢®© ¢ , ª ¨ ¯ ¨ ¢®¥--®¥ §- ¥-¨¥) ®¡

 

®¡ê¥ª ¥ ¨«¨ -¥ ª®«ìª¨

®¡ê¥ª :

 

 

 

 

 

 

 

kill(x,y,z);

 

§

 

done

 

 

 

 

 

 

 

-ª ¨ï ¯®

 

 

®¤¨- § «¨ª¢¨¤¨ ®¢ ì ¢ î -¥¥ ¢¢¥¤¥-- î ¨--

 

® ¬ ¨î ® ¯¥ ¥§¢®«ï¬¥--¥ © "n".

done

 

 

 

 

 

 

 

 

kill(n);

 

 

 

 

 

 

 

 

 

 

 

 

properties(n);

 

 

 

[ ]

¢ë§¢ ì

£ ¬¥- ® "all". • ¨ í ®¬

 

ˆ- ¥ ¥ -®, ® í -ª ¨î ¬®¦-

 

¯ ¨ í ®¬ MAXIMA -¯ ¥

 

é

¥ ï

 

 

® ®ï-¨¥,

 

´

-

 

"linel ¡ë«®

 

-¢®§¢- ¥-¨¥ "40", ®ï鯮¥¢®¬«¥

kill(all);¯®" ª®«ìª-

ª ¨ ®

 

-¥ ï "40",

-¯ ¨¢¥¢®-¥¥ï ª ¨ ®¤-¯¥¬ ¢®§- ¥-¨î

"79".

 

 

 

 

¡ ¤ " ¡¨ ë"

 

 

¤¥«¥--ë¥ ª -

-

 

¢ ¥¬¥-¨ ¯¥ ¥¬¥--ë¥. ޤ ª®

 

 

¬ ¨ «

 

£ ¬ -¢ ¥

 

 

¨¢ î ï

«ì-ë¥ §- ¥-¨ï. … «¨ ¯¥ ¥¬¥--®©

 

‘® ¢-ë¥ «®£¨ ¥ ª¨¥ ¢ë ¦¥-¨ï ® ¬¨ î ï ¯®¬®éìî «®£¨ ¥ ª¨ ®¯¥ -

 

¨© "and", "or", "not".

 

 

nd

 

 

 

 

 

 

 

 

is(

3>12#

and

-1>=-3

 

 

 

 

 

 

 

 

 

not(equal(2,1)) );

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

true

37

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

false

38

‘¨- ª ¨ «®¢-®£® ¢ë ¦¥-¨ï ¬®¦¥ ¡ë ì ¯ ®¨««î ¨ ®¢ - ¯ ¨¬¥ ®¬

a:1$

 

 

 

 

 

 

 

if a>3 then x:1 else x:-1;

 

 

 

x;

 

 

-1

 

 

 

 

if a<3 then x:x+1 else x:x-1;

 

 

x;

 

 

0

 

 

 

 

 

Š ª ®¡ë -®, ì "else" ¬®¦-® ®¯ ¨ ì

if a<3 then x:1;

1

 

 

 

 

 

 

>3

 

false

 

 

 

‘¨- ª ¨ ¨ª«

¤®¯ ª ¥ ¨ ¢ ¨ -

 

 

(%i5) for i:1 thru 3 step 2 do disp(i);

 

 

 

 

o5)

 

1

 

 

 

 

 

 

3

1

 

 

 

 

 

6)

 

 

(%i6) for i:1 step 2 while i<6 doneldisplay(i);

 

 

 

 

t

7

 

 

3

 

 

 

 

 

 

i=5

 

 

 

(%o8)

 

 

 

(%i9) for i:1 step 2 unless i>4done display(i);

 

 

 

 

 

 

 

 

1

 

 

 

(%o9)

 

i=3

(§ ®¤- ¬ë ¥é¥

 

 

done

§ ¯ ®¨««î ¨ ®¢ «¨ ¡® -ª ¨© "disp", "display" ¨

Š ª ®¡ë -®, ¥ «¨ è £ ¢¥- ¥¤¨-¨ ¥, ¥£® ¬®¦-® ®¯ ¨ ì:

"ldisplay").

 

 

 

 

 

 

 

:0$

 

 

 

 

 

 

 

x;

 

 

 

 

 

 

 

 

for i:1 thru 5 do x:x+1$

 

 

 

 

¬¥ ®£®, ¢®§¬®¦-ë ¨ª«ë,5

¢ ª® ® ë ¯¥ ¥¬¥ ï ¨ª« ¬¥-ï¥ ï -¥ -

Ѝª® ¨ ®¢ -- î ¢¥«¨ ¨- ,

¯® ¯ ®¨§¢®«ì-®¬ § ª®-- :

 

 

 

 

 

 

39