public class WellDefinednessPO extends AbstractPO implements ContractPO
The proof obligation for well-definedness checks.
The generated Sequent has the following form:
==>
WD(<generalAssumptions> && <preconditions>) &
(<generalAssumptions> & <preconditions>
-> WD(<otherClauses>) &
{anon^assignable}WD(<postconditions>)
| Modifier and Type | Class and Description |
|---|---|
static class |
WellDefinednessPO.Variables
A static data structure for storing and passing the variables used in the actual proof.
|
AbstractPO.VertexIPersistablePO.LoadedPOContainer| Modifier and Type | Field and Description |
|---|---|
private WellDefinednessCheck |
check |
private Term |
mbyAtPre |
private InitConfig |
proofConfig |
private TermBuilder |
tb |
environmentConfig, environmentServices, heapLDT, javaInfo, name, poNames, poTerms, specRepos, tacletsPROPERTY_ADD_SYMBOLIC_EXECUTION_LABEL, PROPERTY_ADD_UNINTERPRETED_PREDICATE, PROPERTY_CLASS, PROPERTY_FILENAME, PROPERTY_NAME| Constructor and Description |
|---|
WellDefinednessPO(InitConfig initConfig,
WellDefinednessCheck check)
Constructor
|
assignPOTerms, collectClassAxioms, createProof, createProofObject, generateWdTaclets, getName, getPO, name, register, register, registerclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetPO, nameprivate final WellDefinednessCheck check
private Term mbyAtPre
private InitConfig proofConfig
private TermBuilder tb
public WellDefinednessPO(InitConfig initConfig, WellDefinednessCheck check)
initConfig - The initial Configurationcheck - The Well-Definedness Checkprivate static Function createAnonHeap(LocationVariable heap, Services services)
private static LocationVariable createSelf(IProgramMethod pm, KeYJavaType selfKJT, TermServices services)
private static ProgramVariable createResult(IProgramMethod pm, TermServices services)
private static ProgramVariable createException(IProgramMethod pm, TermServices services)
private static Map<LocationVariable,ProgramVariable> createAtPres(LocationVariable heap, TermServices services)
private static ImmutableList<ProgramVariable> addGhostParams(ImmutableList<ProgramVariable> paramVars, ImmutableList<ProgramVariable> origParams)
private static ImmutableList<ProgramVariable> createParams(IObserverFunction target, ImmutableList<ProgramVariable> origParams, TermServices services)
private static WellDefinednessPO.Variables buildVariables(WellDefinednessCheck check, Services services)
check - the underlying well-definedness checkservices - private void register(WellDefinednessPO.Variables vars, Services proofServices)
vars - variables to be used in the checkprotected ImmutableSet<ClassAxiom> selectClassAxioms(KeYJavaType kjt)
selectClassAxioms in class AbstractPOpublic IObserverFunction getTarget()
public KeYJavaType getKJT()
public void readProblem()
throws ProofInputException
readProblem in interface ProofOblInputProofInputExceptionprivate Services postInit()
public boolean implies(ProofOblInput po)
ProofOblInputimplies in interface ProofOblInputimplies in class AbstractPOpublic WellDefinednessCheck getContract()
getContract in interface ContractPOpublic Term getMbyAtPre()
getMbyAtPre in interface ContractPOpublic void fillSaveProperties(Properties properties) throws IOException
ProofSaver to store the proof
specific settings in the given Properties. The stored settings
have to contain all information required to instantiate the proof
obligation again and this instance should create the same Sequent
(if code and specifications are unchanged).fillSaveProperties in interface IPersistablePOfillSaveProperties in class AbstractPOproperties - The Properties to fill with the proof obligation specific settings.IOException - Occurred Exception.public static IPersistablePO.LoadedPOContainer loadFrom(InitConfig initConfig, Properties properties) throws IOException
initConfig - The already load InitConfig.properties - The settings of the proof obligation to instantiate.IOException - Occurred Exception.protected InitConfig getCreatedInitConfigForSingleProof()
getCreatedInitConfigForSingleProof in class AbstractPOpublic KeYJavaType getContainerType()
KeYJavaType in which the proven element is contained in.getContainerType in interface ProofOblInputgetContainerType in class AbstractPOKeYJavaType in which the proven element is contained in or null if not available.