$use Access Arithm Box Compare Convert List StdIO; $func Main = e; Main = >; $func GEN (e.left) (e.right) = (e.consts) (e.vars) s.BDnum e.GEs; GEN (e.left) (e.right) = >)> :: (e.consts) (e.vars), (e.left) (e.right)> :: (e.left) (e.right) e.EQs, () (e.vars >) 0 (e.left) (e.right); $func ToQuadratic e.vars (e.left) (e.right) = (e.left) (e.right) e.EQs; ToQuadratic { e1 sx e2 (e.left) (e.right), e.left e.right : ea sx eb sx ec sx ed = :: sx1, { e.right : ef sx ed = (sx sx1); e.d : ef e.right = (sx sx1); }; e (e.left) (e.right) = (e.left) (e.right); }; $box FreeIdx; $func NewVar s.var = s.new_var; NewVar s.var = { : s.idx, >, s.idx; , 0; } :: s.idx, ;