public IProofObligationList getProofObligations(AModuleModules m) throws AnalysisException { return ProofObligationGenerator.generateProofObligations(m); }
@Override public String getKindString() { return kind.toString(); }
public void renumber(int from) { int n = from; for (IProofObligation po : this) { po.setNumber(n++); } } }
@Override public IProofObligationList caseADefExp(ADefExp node, IPOContextStack question) throws AnalysisException { IProofObligationList obligations = aF.createPDefinitionAssistant().getProofObligations(node.getLocalDefs(), rootVisitor, question); question.push(new PODefContext(node)); obligations.addAll(node.getExpression().apply(mainVisitor, question)); question.pop(); return obligations; }
@Override public IProofObligationList caseAExists1Exp(AExists1Exp node, IPOContextStack question) throws AnalysisException { IProofObligationList obligations = new ProofObligationList(); question.push(new POForAllContext(aF, node)); obligations.addAll(node.getPredicate().apply(mainVisitor, question)); question.pop(); return obligations; }
@Override public IProofObligationList caseATailUnaryExp(ATailUnaryExp node, IPOContextStack question) throws AnalysisException { IProofObligationList obligations = node.getExp().apply(mainVisitor, question); if (!aF.createPTypeAssistant().isType(node.getExp().getType(), ASeq1SeqType.class)) { obligations.add(new NonEmptySeqObligation(node.getExp(), question, aF)); } return obligations; }
public OpPostConditionContext(AExplicitFunctionDefinition postDef, ACallStm stm, SOperationDefinitionBase calledOp, IPogAssistantFactory af, IPOContextStack ctxt) { super(ctxt); this.gen = ctxt.getGenerator(); this.subs = new LinkedList<Substitution>(); this.forall_exp = getChangedVarsExp(postDef, calledOp); PExp inv = buildInvExp(calledOp, af); this.pred = spellCondition(postDef, af, stm.getArgs(), inv); this.visitor = af.getVarSubVisitor(); }
public ProofObligation(INode rootnode, POType kind, IPOContextStack context, ILexLocation location, IPogAssistantFactory af) throws AnalysisException { this.locale = rootnode.apply(af.getLocaleExtractVisitor()); this.rootNode = rootnode; this.location = location; this.kind = kind; this.af = af; this.name = context.getName(); this.status = POStatus.UNPROVED; this.valuetree = new AVdmPoTree(); this.generator = new UniqueNameGenerator(rootNode); }
@Override public IProofObligationList caseASetRangeSetExp(ASetRangeSetExp node, IPOContextStack question) throws AnalysisException { PExp last = node.getLast(); PExp first = node.getFirst(); IProofObligationList obligations = first.apply(mainVisitor, question); obligations.addAll(last.apply(mainVisitor, question)); return obligations; }
public int compareTo(IProofObligation other) { return number - other.getNumber(); }
public StatefulContext(IPOContextStack ctxt) { this.last_vars = ctxt.getLast_Vars() == null ? new HashMap<ILexNameToken, AVariableExp>() : ctxt.getLast_Vars(); }
public ILexNameToken getPreName(PExp expression) { try { return expression.apply(aF.getPreNameFinder()); } catch (AnalysisException e) { return null; } }
public void noteType(PExp exp, PType PType) { this.peek().noteType(exp, PType); }
private PExp getContextNode(PExp stitchPoint) { for (int i = this.size() - 1; i >= 0; i--) { IPOContext ctxt = this.get(i); if (!(ctxt instanceof PONameContext)) { stitchPoint = ctxt.getContextNode(stitchPoint); } } return stitchPoint; }
@Override public void clearStateContexts() { int len = size(); for (int i = len - 1; i > 0; i--) { if (this.get(i).isStateful()) { removeElementAt(i); } } }
@Override // See [1] pg. 167 for the definition public IProofObligationList caseAModuleModules(AModuleModules node, IPOContextStack question) throws AnalysisException { IProofObligationList ipol = new ProofObligationList(); for (PDefinition p : node.getDefs()) { question.push(new PONameContext(assistantFactory.createPDefinitionAssistant().getVariableNames(p))); ipol.addAll(p.apply(this, question)); question.pop(); question.clearStateContexts(); } return ipol; }
@Override public IProofObligationList caseAElseIfExp(AElseIfExp node, IPOContextStack question) throws AnalysisException { IProofObligationList obligations = new ProofObligationList(); question.push(new POImpliesContext(node.getElseIf())); obligations.addAll(node.getThen().apply(mainVisitor, question)); question.pop(); return obligations; }
public IProofObligationList getProofObligations(PDefinition def, POContextStack ctxt) { try { ProofObligationGenerator.generateProofObligations(def); } catch (AnalysisException e) { e.printStackTrace(); } return new ProofObligationList(); }
public OpPostConditionContext(AExplicitFunctionDefinition postDef, AApplyExp exp, SOperationDefinitionBase calledOp, IPogAssistantFactory af, IPOContextStack ctxt) { super(ctxt); this.visitor = af.getVarSubVisitor(); this.gen = ctxt.getGenerator(); this.subs = new LinkedList<Substitution>(); this.forall_exp = getChangedVarsExp(postDef, calledOp); PExp inv = buildInvExp(calledOp, af); this.pred = spellCondition(postDef, af, exp.getArgs(), inv); }
public ProofObligationList getProofObligations( IInterpreterAssistantFactory assistantFactory) throws AnalysisException { // TODO: Check this method, where it is used. ProofObligationList obligations = new ProofObligationList(); for (SClassDefinition c : this) { obligations.addAll(ProofObligationGenerator.generateProofObligations(c)); } obligations.trivialCheck(); return obligations; }