| 23 | | In symbolic.expression: |
| 24 | | * SymbolicExpressionIF |
| 25 | | * int id(); /* every expression has a unique id number */ |
| 26 | | * SymbolicTypeIF type(); |
| 27 | | * SymbolicConstantIF extends SymbolicExpressionIF |
| 28 | | * ConcreteExpressionIF extends SymbolicExpressionIF |
| 29 | | * Rational value(); |
| 30 | | * SymbolicFunctionIF extends SymbolicConstantIF |
| 31 | | * SymbolicFunctionTypeIF type(); |
| 32 | | * SymbolicEvaluatedFunctionIF extends SymbolicExpressionIF |
| 33 | | * SymbolicFunctionIF function(); |
| 34 | | * SymbolicExpressionIF argument(int index); |
| 35 | | * SymbolicExpressionIF[] arguments(); |
| | 19 | Package `symbolic.IF.type`: |
| | 20 | * `SymbolicTypeIF` |
| | 21 | * `SymbolicPrimitiveTypeIF` /* int, real, boolean */ |
| | 22 | * `SymbolicArrayTypeIF` |
| | 23 | * `SymbolicExpressionIF extent();` |
| | 24 | * `SymbolicExpressionIF elementType();` |
| | 25 | * `SymbolicTupleTypeIF` |
| | 26 | * `int numFields();` |
| | 27 | * `SymbolicTypeIF fieldType(int index);` |
| | 28 | * `SymbolicFunctionTypeIF` |
| | 29 | * `int numInputs();` |
| | 30 | * `SymbolicTypeIF inputType(int index);` |
| | 31 | * `SymbolicTypeIF outputType();` |
| 37 | | In symbolic: |
| 38 | | * SymbolicUniverseIF |
| 39 | | * SymbolicPrimitiveTypeIF booleanType(); |
| 40 | | * SymbolicPrimitiveTypeIF integerType(); |
| 41 | | * SymbolicPrimitiveTypeIF realType(); |
| 42 | | * SymbolicArrayTypeIF arrayType(SymbolicTypeIF elementType, SymbolicExpressionIF extent); |
| 43 | | * SymbolicTupleTypeIF tupleType(SymbolicTypeIF[] fieldTypes); |
| 44 | | * ConcreteExpressionIF concreteExpression(Rational rational); |
| 45 | | * ConcreteExpressionIF concreteExpression(int value); |
| 46 | | * ConcreteExpressionIF concreteExpression(double value); |
| 47 | | * SymbolicConstantIF symbolicConstant(SymbolicTypeIF type, String name); |
| 48 | | * SymbolicExpressionIF add(SymbolicExpressionIF arg0, SymbolicExpressionIF arg1); |
| 49 | | * SymbolicExpressionIF subtract(SymbolicExpressionIF arg0, SymbolicExpressionIF arg1); |
| 50 | | * SymbolicExpressionIF multiply(SymbolicExpressionIF arg0, SymbolicExpressionIF arg1); |
| 51 | | * SymbolicExpressionIF divide(SymbolicExpressionIF arg0, SymbolicExpressionIF arg1); |
| 52 | | * SymbolicExpressionIF minus(SymbolicExpressionIF arg); |
| 53 | | * SymbolicExpressionIF and(SymbolicExpressionIF arg0, SymbolicExpressionIF arg1); |
| 54 | | * SymbolicExpressionIF or(SymbolicExpressionIF arg0, SymbolicExpressionIF arg1); |
| 55 | | * SymbolicExpressionIF not(SymbolicExpressionIF arg); |
| 56 | | * SymbolicExpressionIF cond(SymbolicExpressionIF predicate, SymbolicExpressionIF trueValue, SymbolicExpressionIF falseValue); |
| 57 | | * SymbolicExpressionIF lessThan(SymbolicExpressionIF arg0, SymbolicExpressionIF arg1); |
| 58 | | * SymbolicExpressionIF lessThanEquals(SymbolicExpressionIF arg0, SymbolicExpressionIF arg1); |
| 59 | | * SymbolicExpressionIF equals(SymbolicExpressionIF arg0, SymbolicExpressionIF arg1); |
| 60 | | * SymbolicExpressionIF arrayRead(SymbolicExpressionIF array, SymbolicExpressionIF index); |
| 61 | | * SymbolicExpressionIF arrayWrite(SymbolicExpressionIF array, SymbolicExpressionIF index, SymbolicExpressionIF value); |
| 62 | | * SymbolicExpressionIF tupleRead(SymbolicExpressionIF tuple, int index); |
| 63 | | * SymbolicExpressionIF tupleWrite(SymbolicExpressionIF tuple, int index, SymbolicExpressionIF value); |
| 64 | | * SymbolicSimplifierIF |
| 65 | | * SymbolicExpressionIF newAssumption(); |
| 66 | | * SymbolicExpressionIF simplify(SymbolicExpressionIF expression); |
| | 33 | Package `symbolic.IF.expression`: |
| | 34 | * `SymbolicExpressionIF` |
| | 35 | * `int id();` /* every expression has a unique id number */ |
| | 36 | * `SymbolicTypeIF type();` |
| | 37 | * `SymbolicConstantIF extends SymbolicExpressionIF` |
| | 38 | * `ConcreteExpressionIF extends SymbolicExpressionIF` |
| | 39 | * `Rational value();` |
| | 40 | * `SymbolicFunctionIF extends SymbolicConstantIF` |
| | 41 | * `SymbolicFunctionTypeIF type();` |
| | 42 | * `SymbolicEvaluatedFunctionIF extends SymbolicExpressionIF` |
| | 43 | * `SymbolicFunctionIF function();` |
| | 44 | * `SymbolicExpressionIF argument(int index);` |
| | 45 | * `SymbolicExpressionIF[] arguments();` |
| | 46 | |
| | 47 | package `symbolic`: |
| | 48 | * `SymbolicUniverseIF` |
| | 49 | * `SymbolicPrimitiveTypeIF booleanType();` |
| | 50 | * `SymbolicPrimitiveTypeIF integerType();` |
| | 51 | * `SymbolicPrimitiveTypeIF realType();` |
| | 52 | * `SymbolicArrayTypeIF arrayType(SymbolicTypeIF elementType, SymbolicExpressionIF extent);` |
| | 53 | * `SymbolicTupleTypeIF tupleType(SymbolicTypeIF[] fieldTypes);` |
| | 54 | * `ConcreteExpressionIF concreteExpression(Rational rational);` |
| | 55 | * `ConcreteExpressionIF concreteExpression(int value);` |
| | 56 | * `ConcreteExpressionIF concreteExpression(double value);` |
| | 57 | * `SymbolicConstantIF symbolicConstant(SymbolicTypeIF type, String name);` |
| | 58 | * `SymbolicExpressionIF add(SymbolicExpressionIF arg0, SymbolicExpressionIF arg1);` |
| | 59 | * `SymbolicExpressionIF subtract(SymbolicExpressionIF arg0, SymbolicExpressionIF arg1);` |
| | 60 | * `SymbolicExpressionIF multiply(SymbolicExpressionIF arg0, SymbolicExpressionIF arg1);` |
| | 61 | * `SymbolicExpressionIF divide(SymbolicExpressionIF arg0, SymbolicExpressionIF arg1);` |
| | 62 | * `SymbolicExpressionIF minus(SymbolicExpressionIF arg);` |
| | 63 | * `SymbolicExpressionIF and(SymbolicExpressionIF arg0, SymbolicExpressionIF arg1);` |
| | 64 | * `SymbolicExpressionIF or(SymbolicExpressionIF arg0, SymbolicExpressionIF arg1);` |
| | 65 | * `SymbolicExpressionIF not(SymbolicExpressionIF arg);` |
| | 66 | * `SymbolicExpressionIF cond(SymbolicExpressionIF predicate, SymbolicExpressionIF trueValue, SymbolicExpressionIF falseValue);` |
| | 67 | * `SymbolicExpressionIF lessThan(SymbolicExpressionIF arg0, SymbolicExpressionIF arg1);` |
| | 68 | * `SymbolicExpressionIF lessThanEquals(SymbolicExpressionIF arg0, SymbolicExpressionIF arg1);` |
| | 69 | * `SymbolicExpressionIF equals(SymbolicExpressionIF arg0, SymbolicExpressionIF arg1);` |
| | 70 | * `SymbolicExpressionIF arrayRead(SymbolicExpressionIF array, SymbolicExpressionIF index);` |
| | 71 | * `SymbolicExpressionIF arrayWrite(SymbolicExpressionIF array, SymbolicExpressionIF index, SymbolicExpressionIF value);` |
| | 72 | * `SymbolicExpressionIF tupleRead(SymbolicExpressionIF tuple, int index);` |
| | 73 | * `SymbolicExpressionIF tupleWrite(SymbolicExpressionIF tuple, int index, SymbolicExpressionIF value);` |
| | 74 | * `SymbolicSimplifierIF` |
| | 75 | * `SymbolicExpressionIF newAssumption();` |
| | 76 | * `SymbolicExpressionIF simplify(SymbolicExpressionIF expression);` |
| 70 | | * Rational /* infinite precision rational numbers */ |
| 71 | | * static Rational rational(int value); |
| 72 | | * static Rational rational(double value); |
| 73 | | * static Rational rational(BigInteger value); |
| 74 | | * static Rational add(Rational arg0, Rational arg1); |
| 75 | | * static Rational subtract(Rational arg0, Rational arg1); |
| 76 | | * static Rational multiply(Rational arg0, Rational arg1); |
| 77 | | * static Rational divide(Rational arg0, Rational arg1); |
| 78 | | * static Rational minus(Rational arg); |
| 79 | | * static int compare(Rational arg0, Rational arg1); /* +-0 */ |
| 80 | | * boolean isInteger(); |
| 81 | | * BigInteger intValue(); |
| 82 | | * BigInteger numerator(); |
| 83 | | * BigInteger denominator(); |
| 84 | | * BigInteger floor(); |
| 85 | | * BigInteger ceil(); |
| 86 | | * boolean isGT0(); |
| 87 | | * boolean isGTE0(); |
| 88 | | * boolean is0(); |
| | 80 | * `Rational` /* infinite precision rational numbers */ |
| | 81 | * `static Rational rational(int value);` |
| | 82 | * `static Rational rational(double value);` |
| | 83 | * `static Rational rational(BigInteger value);` |
| | 84 | * `static Rational add(Rational arg0, Rational arg1);` |
| | 85 | * `static Rational subtract(Rational arg0, Rational arg1);` |
| | 86 | * `static Rational multiply(Rational arg0, Rational arg1);` |
| | 87 | * `static Rational divide(Rational arg0, Rational arg1);` |
| | 88 | * `static Rational minus(Rational arg);` |
| | 89 | * `static int compare(Rational arg0, Rational arg1);` /* +-0 */ |
| | 90 | * `boolean isInteger();` |
| | 91 | * `BigInteger intValue();` |
| | 92 | * `BigInteger numerator();` |
| | 93 | * `BigInteger denominator();` |
| | 94 | * `BigInteger floor();` |
| | 95 | * `BigInteger ceil();` |
| | 96 | * `boolean isGT0();` |
| | 97 | * `boolean isGTE0();` |
| | 98 | * `boolean is0();` |
| 107 | | * CExpression implements SymbolicExpressionIF |
| 108 | | * AndCExpression extends CExpression |
| 109 | | * clauses: set of OrCExpression |
| 110 | | * OrCExpression extends CExpression |
| 111 | | * clauses: set of BasicCExpression |
| 112 | | * BasicCExpression extends CExpression |
| 113 | | * boolean not(); /* if true insert not here */ |
| 114 | | * PrimitiveCExpressionIF primitiveExpression(); |
| 115 | | * RelationalCExpression extends CExpression implements PrimitiveCExpressionIF |
| 116 | | * enum RelationKind { GT0, EQ0 }; |
| 117 | | * RelationKind kind(); |
| 118 | | * PolynomialCExpression expression(); |
| 119 | | * PolynomialCExpression extends CExpression |
| 120 | | * terms: set of MonomialCExpression |
| 121 | | * MonomialCExpression extends CExpression |
| 122 | | * coefficient: Rational |
| 123 | | * factors: set of pairs (PrimitiveCExpression, n), where n is a positive integer |
| 124 | | * RationalCExpression extends CExpression |
| 125 | | * numerator, denominator: PolynomialCExpression |
| | 119 | * `RealExpression implements SymbolicExpressionIF` |
| | 120 | * `ConcreteExpression extends RealExpression implements ConcreteExpressionIF` |
| | 121 | * `RealFunction extends RealExpression implements SymbolicFunctionIF` |
| | 122 | * `EvaluatedFunction extends RealExpression implements SymbolicEvaluatedFunctionIF` |
| | 123 | * `ArrayRead extends RealExpression` |
| | 124 | * `ArrayWrite extends RealExpression` |
| | 125 | * `TupleRead extends RealExpression` |
| | 126 | * `TupleWrite extends RealExpression` |
| | 127 | * `SymbolicConstant extends RealExpression implements SymbolicConstantIF` |
| | 128 | * `AndExpression extends RealExpression` |
| | 129 | * clauses: set of `OrExpression` |
| | 130 | * `OrExpression extends RealExpression` |
| | 131 | * clauses: set of `BasicExpression` |
| | 132 | * `BasicExpression extends RealExpression` |
| | 133 | * `boolean not();` /* if true insert not operator here */ |
| | 134 | * `PrimitiveExpression primitiveExpression();` |
| | 135 | * `RelationalExpression extends RealExpression implements PrimitiveExpression` |
| | 136 | * `enum RelationKind { GT0, EQ0 };` |
| | 137 | * `RelationKind kind();` |
| | 138 | * `Polynomial expression();` |
| | 139 | * `Polynomial extends RealExpression` |
| | 140 | * terms: set of `Monomial` |
| | 141 | * factorization: set of `Polynomial` |
| | 142 | * this is redundant information giving a factorization of the polynomial into polynomials of lower degree. It is used for simplification. |
| | 143 | * `Monomial extends RealExpression` |
| | 144 | * coefficient: `Rational` |
| | 145 | * factors: set of pairs (`PrimitiveExpression X, int i`), where i>0, representing the product X_1^{i_1}...X_n^{i_n} |
| | 146 | * `RationalExpression extends RealExpression` |
| | 147 | * numerator, denominator: `Polynomial` |