Checkpoint

This commit is contained in:
Tibo De Peuter 2025-04-11 19:27:01 +02:00
parent e3c84e1761
commit e73e5cbfc8
32 changed files with 1354 additions and 92 deletions

View file

@ -37,8 +37,8 @@ abstract class Clause(private val head: Head, private val body: Body) : Resolven
override fun toString(): String {
return when {
body == True() -> head.toString()
else -> "$head :- $body"
body is True -> head.toString()
else -> "$head :- $body"
}
}
}

View file

@ -3,4 +3,4 @@ package prolog.ast.logic
import prolog.ast.terms.Head
import prolog.builtins.True
class Fact(head: Head) : Clause(head, True())
class Fact(head: Head) : Clause(head, True)

View file

@ -0,0 +1,5 @@
package prolog.ast.logic
import prolog.ast.terms.Operand
abstract class LogicOperand : Operand, Provable

View file

@ -0,0 +1,13 @@
package prolog.ast.logic
import prolog.ast.terms.Atom
import prolog.ast.terms.Operator
import prolog.logic.Substituted
abstract class LogicOperator(
symbol: Atom,
leftOperand: LogicOperand? = null,
rightOperand: LogicOperand
) : Operator(symbol, leftOperand, rightOperand), Provable {
abstract override fun prove(subs: Substituted): Sequence<Substituted>
}