| 
 Some examples: fricas (1) -> )set output algebra on fricas )set output tex off Type: List(Equation(Polynomial(Integer))) fricas solve(L, Type: List(List(Equation(Fraction(Polynomial(Integer))))) However: fricas solve(L, Type: List(List(Equation(Fraction(Polynomial(Integer))))) Note that solution should satisfy all equations. Quantities which are not variables are treated as parameters and solution is valid for generic parameters. There are no values of X and V which solve the last two equations: generically C is different than 2*U+V Simpler: fricas solve([a - b = 0, Type: List(List(Equation(Fraction(Polynomial(Integer))))) fricas linSolve([a - b, Type: Record(particular: Union(Vector(Fraction(Polynomial(Integer))), The operation  
         +- 1+
   [mat= |   |,vec= [- a,d - c]]
         + 0 +
Note that fricas linSolve([a - b, Type: Record(particular: Union(Vector(Fraction(Polynomial(Integer))), works. The same happens, if the equation is not linear: fricas L := [ A = 2*X^2+Y, Type: List(Equation(Polynomial(Integer))) fricas solve(L, Type: List(List(Equation(Fraction(Polynomial(Integer))))) fricas )set output algebra on fricas )set output tex off Type: List(List(Equation(Fraction(Polynomial(Integer))))) fricas )set output algebra off fricas )set output tex on So, very probably, a fix would need to do two things: 
 The second point is necessary, since fricas L := [ A = P+Q, Type: List(Equation(Polynomial(Integer))) fricas solve(L, 
 Type: List(List(Equation(Fraction(Polynomial(Integer))))) fricas solve(L, 
 Type: List(List(Equation(Fraction(Polynomial(Integer))))) really has no solution. As far as I know, this would have to be done in the very last function defined in  
       -- general solver. Input in polynomial style  --
       solve(lr:L F,vl:L SE) ==
           empty? vl => empty()
           checkLinear(lr,vl) =>
                            -- linear system --
               soln := linSolve(lr, vl)
               soln case "failed" => []
               eqns: L EQ F := []
               for i in 1..#vl repeat
                   lhs := (vl.i::(P R))::F
                   rhs :=  rhs soln.i
                   eqns := append(eqns, [lhs = rhs])
               [eqns]
                         -- polynomial system --
           if R has GcdDomain then
             parRes:=triangularSystems(lr,vl)
             [[makeEq(map(makeR2F,f)$PP2,vl) for f in pr]
                                                        for pr in parRes]
           else [[]]
The letter  ... --test1,  Tue, 15 Apr 2014 18:22:36 +0000 replyStatus: open => rejected | 
![\label{eq1}\left[ \right] 
\label{eq1}\left[ \right]](images/5593850768678758914-16.0px.png)
![\label{eq2}\left[ \right] 
\label{eq2}\left[ \right]](images/4639340934722937175-16.0px.png)