Cleanup 2
This commit is contained in:
parent
a9bb6e0338
commit
3c938749d0
22 changed files with 299 additions and 110 deletions
|
@ -22,7 +22,7 @@ import prolog.logic.*
|
|||
* True if expression Expr1 evaluates to a number non-equal to Expr2.
|
||||
*/
|
||||
class EvaluatesToDifferent(private val left: Expression, private val right: Expression) :
|
||||
Operator(Atom("=\\="), left, right), Satisfiable {
|
||||
Operator("=\\=", left, right), Satisfiable {
|
||||
override fun satisfy(subs: Substitutions): Answers {
|
||||
val t1 = left.simplify(subs)
|
||||
val t2 = right.simplify(subs)
|
||||
|
@ -49,7 +49,7 @@ class EvaluatesToDifferent(private val left: Expression, private val right: Expr
|
|||
* True if Expr1 evaluates to a number equal to Expr2.
|
||||
*/
|
||||
class EvaluatesTo(private val left: Expression, private val right: Expression) :
|
||||
Operator(Atom("=:="), left, right) {
|
||||
Operator("=:=", left, right) {
|
||||
override fun satisfy(subs: Substitutions): Answers {
|
||||
val t1 = left.simplify(subs)
|
||||
val t2 = right.simplify(subs)
|
||||
|
@ -72,7 +72,7 @@ class EvaluatesTo(private val left: Expression, private val right: Expression) :
|
|||
* True when Number is the value to which Expr evaluates.
|
||||
*/
|
||||
class Is(val number: Expression, val expr: Expression) :
|
||||
Operator(Atom("is"), number, expr), Satisfiable {
|
||||
Operator("is", number, expr), Satisfiable {
|
||||
override fun satisfy(subs: Substitutions): Answers {
|
||||
val t1 = number.simplify(subs)
|
||||
val t2 = expr.simplify(subs)
|
||||
|
@ -108,7 +108,7 @@ class Positive(operand: Expression) : Add(Integer(0), operand)
|
|||
* Result = Expr1 + Expr2
|
||||
*/
|
||||
open class Add(private val expr1: Expression, private val expr2: Expression) :
|
||||
ArithmeticOperator(Atom("+"), expr1, expr2) {
|
||||
ArithmeticOperator("+", expr1, expr2) {
|
||||
override fun simplify(subs: Substitutions): Simplification {
|
||||
val result = Variable("Result")
|
||||
val map = plus(expr1, expr2, result, subs)
|
||||
|
@ -126,7 +126,7 @@ open class Add(private val expr1: Expression, private val expr2: Expression) :
|
|||
* Result = Expr1 - Expr2
|
||||
*/
|
||||
open class Subtract(private val expr1: Expression, private val expr2: Expression) :
|
||||
ArithmeticOperator(Atom("-"), expr1, expr2) {
|
||||
ArithmeticOperator("-", expr1, expr2) {
|
||||
override fun simplify(subs: Substitutions): Simplification {
|
||||
val result = Variable("Result")
|
||||
val map = plus(expr2, result, expr1, subs)
|
||||
|
@ -144,7 +144,7 @@ open class Subtract(private val expr1: Expression, private val expr2: Expression
|
|||
* Result = Expr1 * Expr2
|
||||
*/
|
||||
class Multiply(val expr1: Expression, val expr2: Expression) :
|
||||
ArithmeticOperator(Atom("*"), expr1, expr2) {
|
||||
ArithmeticOperator("*", expr1, expr2) {
|
||||
override fun simplify(subs: Substitutions): Simplification {
|
||||
val result = Variable("Result")
|
||||
val map = mul(expr1, expr2, result, subs)
|
||||
|
@ -159,7 +159,7 @@ class Multiply(val expr1: Expression, val expr2: Expression) :
|
|||
}
|
||||
|
||||
class Divide(private val expr1: Expression, private val expr2: Expression) :
|
||||
ArithmeticOperator(Atom("/"), expr1, expr2) {
|
||||
ArithmeticOperator("/", expr1, expr2) {
|
||||
override fun simplify(subs: Substitutions): Simplification {
|
||||
val result = Variable("Result")
|
||||
val map = div(expr1, expr2, result, subs)
|
||||
|
@ -178,7 +178,7 @@ class Divide(private val expr1: Expression, private val expr2: Expression) :
|
|||
// TODO Expr rem Expr
|
||||
|
||||
class Between(private val expr1: Expression, private val expr2: Expression, private val expr3: Expression) :
|
||||
CompoundTerm(Atom("between"), listOf(expr1, expr2, expr3)), Satisfiable {
|
||||
CompoundTerm("between", expr1, expr2, expr3), Satisfiable {
|
||||
override fun satisfy(subs: Substitutions): Answers {
|
||||
val e1 = expr1.simplify(subs)
|
||||
val e2 = expr2.simplify(subs)
|
||||
|
@ -210,6 +210,6 @@ class Between(private val expr1: Expression, private val expr2: Expression, priv
|
|||
}
|
||||
|
||||
class Successor(private val expr1: Expression, private val expr2: Expression) :
|
||||
CompoundTerm(Atom("succ"), listOf(expr1, expr2)), Satisfiable {
|
||||
CompoundTerm("succ", expr1, expr2), Satisfiable {
|
||||
override fun satisfy(subs: Substitutions): Answers = succ(expr1, expr2, subs)
|
||||
}
|
||||
|
|
Reference in a new issue