public class ExecutionVariable extends AbstractExecutionVariable
IExecutionVariable.| Modifier and Type | Field and Description |
|---|---|
private ExecutionValue |
lengthValue
The
ExecutionValue from which the array length was computed. |
private IExecutionNode<?> |
parentNode
The parent
IExecutionNode which provides this ExecutionVariable. |
private ExecutionValue[] |
values
The possible values of this
IExecutionValue. |
| Constructor and Description |
|---|
ExecutionVariable(IExecutionNode<?> parentNode,
Node proofNode,
PosInOccurrence modalityPIO,
ExecutionValue parentValue,
IProgramVariable programVariable,
Term additionalCondition)
Constructor for a "normal" child value.
|
ExecutionVariable(IExecutionNode<?> parentNode,
Node proofNode,
PosInOccurrence modalityPIO,
ExecutionValue parentValue,
Term arrayIndex,
ExecutionValue lengthValue,
Term additionalCondition)
Constructor for an array cell value.
|
ExecutionVariable(IExecutionNode<?> parentNode,
Node proofNode,
PosInOccurrence modalityPIO,
IProgramVariable programVariable,
Term additionalCondition)
Constructor for a "normal" value.
|
| Modifier and Type | Method and Description |
|---|---|
protected Term |
computeValueCondition(TermBuilder tb,
java.util.List<Goal> valueGoals,
InitConfig initConfig)
|
Term |
createSelectTerm()
Creates recursive a term which can be used to determine the value
of
IExecutionVariable.getProgramVariable(). |
ExecutionValue |
getLengthValue()
Returns the
ExecutionValue from which the array length was computed. |
IExecutionNode<?> |
getParentNode()
Returns the parent
IExecutionNode which provides this ExecutionVariable. |
ExecutionValue |
getParentValue()
Returns the parent
IExecutionValue if available. |
ExecutionValue[] |
getValues()
Returns the possible values of this
IExecutionVariable. |
protected void |
groupGoalsByValue(ImmutableList<Goal> goals,
Operator operator,
Term siteProofSelectTerm,
Term siteProofCondition,
java.util.Map<Term,java.util.List<Goal>> valueMap,
java.util.List<Goal> unknownValues,
Services services)
Groups all
Goals which provides the same value. |
protected ExecutionValue[] |
instantiateValuesFromSideProof(InitConfig initConfig,
Services services,
TermBuilder tb,
ApplyStrategyInfo info,
Operator resultOperator,
Term siteProofSelectTerm,
Term siteProofCondition)
Analyzes the side proof defined by the
ApplyStrategyInfo
and creates ExecutionValues from it. |
protected boolean |
isValidValue(Term value)
Checks if the given
Term represents a valid value. |
protected ExecutionValue[] |
lazyComputeValues()
Computes the value for
getValues()
lazily when the method is called the first time. |
getAdditionalCondition, getArrayIndex, getArrayIndexString, getElementType, getModalityPIO, getProgramVariable, isArrayIndex, lazyComputeNameformatTerm, getAppliedRuleApp, getInitConfig, getName, getProof, getProofNode, getProofNodeInfo, getServices, getSettings, isDisposed, isNameComputed, setName, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetAppliedRuleApp, getInitConfig, getName, getProof, getProofNode, getProofNodeInfo, getServices, getSettings, isDisposedprivate final IExecutionNode<?> parentNode
IExecutionNode which provides this ExecutionVariable.private final ExecutionValue lengthValue
ExecutionValue from which the array length was computed.private ExecutionValue[] values
IExecutionValue.public ExecutionVariable(IExecutionNode<?> parentNode, Node proofNode, PosInOccurrence modalityPIO, IProgramVariable programVariable, Term additionalCondition)
parentNode - The parent IExecutionNode which provides this ExecutionVariable.programVariable - The represented IProgramVariable which value is shown.additionalCondition - An optional additional condition to consider.public ExecutionVariable(IExecutionNode<?> parentNode, Node proofNode, PosInOccurrence modalityPIO, ExecutionValue parentValue, IProgramVariable programVariable, Term additionalCondition)
settings - The ITreeSettings to use.parentNode - The parent IExecutionNode which provides this ExecutionVariable.parentValue - The parent ExecutionValue or null if not available.programVariable - The represented IProgramVariable which value is shown.additionalCondition - An optional additional condition to consider.public ExecutionVariable(IExecutionNode<?> parentNode, Node proofNode, PosInOccurrence modalityPIO, ExecutionValue parentValue, Term arrayIndex, ExecutionValue lengthValue, Term additionalCondition)
parentNode - The parent IExecutionNode which provides this ExecutionVariable.parentValue - The parent ExecutionValue or null if not available.arrayIndex - The index in the parent array.lengthValue - The ExecutionValue from which the array length was computed.additionalCondition - An optional additional condition to consider.public ExecutionValue[] getValues() throws ProofInputException
IExecutionVariable.IExecutionVariable.ProofInputExceptionprotected ExecutionValue[] lazyComputeValues() throws ProofInputException
getValues()
lazily when the method is called the first time.ProofInputException - Occurred Exception.protected ExecutionValue[] instantiateValuesFromSideProof(InitConfig initConfig, Services services, TermBuilder tb, ApplyStrategyInfo info, Operator resultOperator, Term siteProofSelectTerm, Term siteProofCondition) throws ProofInputException
ApplyStrategyInfo
and creates ExecutionValues from it.initConfig - The InitConfig of the side proof.services - The Services of the side proof.tb - The TermBuilder of the side proof.info - The side proof.resultOperator - The Operator of the result predicate.siteProofSelectTerm - The queried value.siteProofCondition - The condition under which the value is queried.ExecutionValue instances.ProofInputException - Occurred Exception.protected boolean isValidValue(Term value)
Term represents a valid value.value - The value to check.true valid value, false invalid value to be ignored.protected void groupGoalsByValue(ImmutableList<Goal> goals, Operator operator, Term siteProofSelectTerm, Term siteProofCondition, java.util.Map<Term,java.util.List<Goal>> valueMap, java.util.List<Goal> unknownValues, Services services) throws ProofInputException
Goals which provides the same value.goals - All available Goals to group.operator - The Operator of the Term which provides the value.services - The Services to use.ProofInputExceptionprotected Term computeValueCondition(TermBuilder tb, java.util.List<Goal> valueGoals, InitConfig initConfig) throws ProofInputException
Goals which is the
or combination of each path condition per Goal.tb - The TermBuilder to use passed to ensure that it is still available even if the Proof is disposed in between.valueGoals - The Goals to compute combined path condition for.initConfig - The InitConfig to use.ProofInputException - Occurred Exception.public Term createSelectTerm()
IExecutionVariable.getProgramVariable().public ExecutionValue getParentValue()
IExecutionValue if available.getParentValue in interface IExecutionVariablegetParentValue in class AbstractExecutionVariableIExecutionValue if available and null otherwise.public IExecutionNode<?> getParentNode()
IExecutionNode which provides this ExecutionVariable.IExecutionNode which provides this ExecutionVariable.public ExecutionValue getLengthValue()
ExecutionValue from which the array length was computed.ExecutionValue from which the array length was computed.