package de.unisiegen.tpml.core.interpreters ; import de.unisiegen.tpml.core.ExpressionProofNode ; /** * Base interface for big and small step interpreter proof nodes, used in the * {@link de.unisiegen.tpml.core.interpreters.InterpreterProofModel}s. * * @author Benedikt Meurer * @version $Rev$ * @see de.unisiegen.tpml.core.interpreters.InterpreterProofModel * @see de.unisiegen.tpml.core.ExpressionProofNode */ public interface InterpreterProofNode extends ExpressionProofNode { // // Accessors // /** * Returns the {@link Store} associated with this proof node, and thereby used * to prove the expression of this node. Note that this is not the resulting * store in case of the big step interpreter, but the initial store. This is * only meaningful if the expression that is being proved contains memory * operations. It is also important to note that a copy of the actual store * associated with this node will be returned, so the caller can modify the * store right away as needed in the big and small step interpreters (the * {@link Store} class has copy-on-write semantics). * * @return the <code>Store</code> for this proof node. * @see Store * @see InterpreterProofModel#isMemoryEnabled() */ public Store getStore ( ) ; }