---------------------------
---a b c lati di un triangolo
----ha hb hc altezze
---- p perimetro
--------altezze vengono da Erone 
R=QQ[a,b,c,ha,hb,hc,p]
I=ideal((a+b+c)*(a+b-c)*(a-b+c)*(-a+b+c)-4*a^2*ha^2,a*ha-b*hb,a*ha-c*hc)
rc=(gens eliminate({a,b},I))_(0,0)----così si ricava c, ideale di eliminazione è principale
------------ generatore ha la forma c^4*(...)+c^2*(...)
factor(contract(c^4,rc))----denominatore, lo stesso per le tre altezze
factor sub(contract(c^2,rc),c=>0)----numeratore, cambia per ciascuna delle tre altezze
rb=(gens eliminate({a,c},I))_(0,0)----così si ricava b
factor(contract(b^4,rb))
factor sub(contract(b^2,rb),b=>0)

elp=(gens eliminate({a,b,c},I+ideal(p-(a+b+c))))_(0,0)----così si ricava p, ideale di eliminazione è principale
----------- generatore ha la forma p^4*(...)+p^2*(...) 
for i from 0 to 2 do print(i,factor(sub(contract(p^(2*i),elp),p=>0)))




---raggio inscritto e circoscritto 
--(raggio inscritto)*(perimetro)=2A
---(raggio circonscritto)=(a*b*c)/(4*A) da teorema dei seni

-----------------