public class LoopContractInternalBuiltInRuleApp extends AbstractLoopContractBuiltInRuleApp
LoopContractInternalRule.contractcontext, heaps, infFlowVarsbuiltInRule, ifInsts, pio| Constructor and Description |
|---|
LoopContractInternalBuiltInRuleApp(BuiltInRule rule,
PosInOccurrence occurrence) |
LoopContractInternalBuiltInRuleApp(BuiltInRule rule,
PosInOccurrence occurrence,
ImmutableList<PosInOccurrence> ifInstantiations,
JavaStatement statement,
LoopContract contract,
java.util.List<LocationVariable> heaps) |
| Modifier and Type | Method and Description |
|---|---|
LoopContractInternalBuiltInRuleApp |
replacePos(PosInOccurrence newOccurrence) |
LoopContractInternalBuiltInRuleApp |
setIfInsts(ImmutableList<PosInOccurrence> ifInstantiations) |
LoopContractInternalBuiltInRuleApp |
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 LoopContractInternalBuiltInRuleApp(BuiltInRule rule, PosInOccurrence occurrence)
rule - the rule being applied.occurrence - the position at which the rule is applied.public LoopContractInternalBuiltInRuleApp(BuiltInRule rule, PosInOccurrence occurrence, ImmutableList<PosInOccurrence> ifInstantiations, JavaStatement statement, LoopContract 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 LoopContractInternalBuiltInRuleApp replacePos(PosInOccurrence newOccurrence)
replacePos in interface IBuiltInRuleAppreplacePos in class AbstractBuiltInRuleApppublic LoopContractInternalBuiltInRuleApp setIfInsts(ImmutableList<PosInOccurrence> ifInstantiations)
setIfInsts in interface IBuiltInRuleAppsetIfInsts in class AbstractBuiltInRuleApppublic LoopContractInternalBuiltInRuleApp 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