public class BlockContractInternalBuiltInRuleApp extends AbstractBlockContractBuiltInRuleApp
BlockContractInternalRule.contractcontext, heaps, infFlowVarsbuiltInRule, ifInsts, pio| Constructor and Description |
|---|
BlockContractInternalBuiltInRuleApp(BuiltInRule rule,
PosInOccurrence occurrence) |
BlockContractInternalBuiltInRuleApp(BuiltInRule rule,
PosInOccurrence occurrence,
ImmutableList<PosInOccurrence> ifInstantiations,
JavaStatement statement,
BlockContract contract,
java.util.List<LocationVariable> heaps) |
| Modifier and Type | Method and Description |
|---|---|
BlockContractInternalBuiltInRuleApp |
replacePos(PosInOccurrence newOccurrence) |
BlockContractInternalBuiltInRuleApp |
setIfInsts(ImmutableList<PosInOccurrence> ifInstantiations) |
BlockContractInternalBuiltInRuleApp |
tryToInstantiate(Goal goal)
Tries to complete the rule application from the available information.
|
getContract, tryToInstantiate, updatecannotComplete, complete, getExecutionContext, getHeapContext, getInformationFlowProofObligationVars, getStatement, isSufficientlyComplete, setStatement, updateexecute, forceInstantiate, ifInsts, posInOccurrence, rule, setMutable, toStringpublic BlockContractInternalBuiltInRuleApp(BuiltInRule rule, PosInOccurrence occurrence)
rule - the rule being applied.occurrence - the position at which the rule is applied.public BlockContractInternalBuiltInRuleApp(BuiltInRule rule, PosInOccurrence occurrence, ImmutableList<PosInOccurrence> ifInstantiations, JavaStatement statement, BlockContract contract, java.util.List<LocationVariable> heaps)
rule - the rule being applied.occurrence - the position at which the rule is applied.ifInstantiations - if instantiations.statement - the statement which the applied contract belongs to.contract - the contract being applied.heaps - the heap context.public BlockContractInternalBuiltInRuleApp replacePos(PosInOccurrence newOccurrence)
replacePos in interface IBuiltInRuleAppreplacePos in class AbstractBuiltInRuleApppublic BlockContractInternalBuiltInRuleApp setIfInsts(ImmutableList<PosInOccurrence> ifInstantiations)
setIfInsts in interface IBuiltInRuleAppsetIfInsts in class AbstractBuiltInRuleApppublic BlockContractInternalBuiltInRuleApp tryToInstantiate(Goal goal)
IBuiltInRuleAppUserInterfaceControl to complete a built-in rule.
Returns a complete app only if there is exactly one contract.
If you want a complete app for combined contracts, use forceInstantiate instead.
For an example implementation see e.g. UseOperationContractRule or UseDependencyContractRule.tryToInstantiate in interface IBuiltInRuleApptryToInstantiate in class AbstractBuiltInRuleApp