001 package aima.logic.fol.inference.proof; 002 003 import java.util.List; 004 import java.util.Map; 005 006 import aima.logic.fol.parsing.ast.Term; 007 import aima.logic.fol.parsing.ast.Variable; 008 009 /** 010 * @author Ciaran O'Reilly 011 * 012 */ 013 public interface Proof { 014 /** 015 * 016 * @return A list of proof steps that show how an answer was derived. 017 */ 018 List<ProofStep> getSteps(); 019 020 /** 021 * 022 * @return a Map of bindings for any variables that were in the original 023 * query. Will be an empty Map if no variables existed in the 024 * original query. 025 */ 026 Map<Variable, Term> getAnswerBindings(); 027 028 /** 029 * 030 * @param updatedBindings 031 * allows for the bindings to be renamed. Note: should not be 032 * used for any other reason. 033 */ 034 void replaceAnswerBindings(Map<Variable, Term> updatedBindings); 035 }