#include #include #include #include "Operator.hpp" #include "Expression.hpp" #include "EquationSystem.hpp" #include "MaxStrategy.hpp" using namespace std; /*template struct Complete { Complete(const T& value) : _value(value) { } private: bool _infinity; T _value; };*/ std::vector< Expression* > empty; int main () { EquationSystem fac; Variable* x = fac.newVariable("x"); Variable* y = fac.newVariable("y"); VariableAssignment rho(2); rho[*x] = 12; rho[*y] = 10; Expression expr(x, empty); std::vector*> args; args.push_back(new Expression(x, empty)); args.push_back(new Expression(y, empty)); args.push_back(new Expression(new Constant(10), empty)); MaxExpression* maxExpression = fac.newMaxExpression(args); Expression* minExpression = new Expression(new Minimum(), args); MaxStrategy strat(1); strat[*maxExpression] = 0; cout << strat(*maxExpression,rho) << endl; fac[*x] = minExpression; fac[*y] = minExpression; cout << fac.maxFixpoint()[*x] << endl; return 0; }