Checkpoint
This commit is contained in:
parent
e3c84e1761
commit
e73e5cbfc8
32 changed files with 1354 additions and 92 deletions
|
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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)
|
5
src/prolog/ast/logic/LogicOperand.kt
Normal file
5
src/prolog/ast/logic/LogicOperand.kt
Normal file
|
@ -0,0 +1,5 @@
|
|||
package prolog.ast.logic
|
||||
|
||||
import prolog.ast.terms.Operand
|
||||
|
||||
abstract class LogicOperand : Operand, Provable
|
13
src/prolog/ast/logic/LogicOperator.kt
Normal file
13
src/prolog/ast/logic/LogicOperator.kt
Normal 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>
|
||||
}
|
Reference in a new issue