package prolog.ast.logic

import prolog.Answers
import prolog.Substitutions

interface Satisfiable {
    /**
     * Proves the current [Satisfiable] instance.
     *
     * @return a sequence of [Substitutions] instances representing the results of the proof.
     * If the proof fails, an empty sequence is returned.
     */
    fun satisfy(subs: Substitutions): Answers
}
