▁from ▁a ▁keyboard , ▁menu ▁se lections , ▁mouse ▁or ▁st yl us . ▁a ▁programming ▁language ▁and ▁an ▁interpreter ▁( the ▁result ▁of ▁a ▁computation ▁commonly ▁has ▁an ▁un predict able ▁form ▁and ▁an ▁un predict able ▁size ; ▁therefore ▁user ▁inter vention ▁is ▁frequently ▁needed ), ▁a ▁simpl ifier , ▁which ▁is ▁a ▁rewrite ▁system ▁for ▁simpl ifying ▁mathematics ▁formulas , ▁a ▁memory ▁manager , ▁including ▁a ▁garbage ▁collect or , ▁needed ▁by ▁the ▁huge ▁size ▁of ▁the ▁intermediate ▁data , ▁which ▁may ▁appear ▁during ▁a ▁computation , ▁an ▁arbitrary - prec ision ▁arithmetic , ▁needed ▁by ▁the ▁huge ▁size ▁of ▁the ▁integers ▁that ▁may ▁occur , ▁a ▁large ▁library ▁of ▁mathematical ▁algorithms ▁and ▁special ▁functions . ▁ ▁The ▁library ▁must ▁not ▁only ▁provide ▁for ▁the ▁needs ▁of ▁the ▁users , ▁but ▁also ▁the ▁needs ▁of ▁the ▁simpl ifier . ▁For ▁example , ▁the ▁computation ▁of ▁polynomial ▁greatest ▁common ▁divis ors ▁is ▁system atically ▁used ▁for ▁the ▁simpl ification ▁of ▁expressions ▁involving ▁fra ctions . ▁ ▁This ▁large ▁amount ▁of ▁required ▁computer ▁capabilities ▁explains ▁the ▁small ▁number ▁of ▁general - pur pose ▁computer ▁algebra ▁systems . ▁The ▁main ▁ones ▁are ▁A xi om , ▁Max ima , ▁Mag ma , ▁Map le , ▁Mathemat ica ▁and ▁S age Math . ▁ ▁History ▁▁ ▁Computer ▁algebra ▁systems ▁began ▁to ▁appear ▁in ▁the ▁ 1 9 6 0 s ▁and ▁evol ved ▁out ▁of ▁two ▁quite ▁different ▁sources — the ▁requirements ▁of ▁theoretical ▁phys ic ists ▁and ▁research ▁into ▁artificial ▁intelligence . ▁