@Override public IProofObligationList caseASameBaseClassExp(ASameBaseClassExp node, IPOContextStack question) throws AnalysisException { IProofObligationList obligations = new ProofObligationList(); obligations.addAll(node.getLeft().apply(mainVisitor, question)); obligations.addAll(node.getRight().apply(mainVisitor, question)); return obligations; }
@Override public IProofObligationList caseAGreaterNumericBinaryExp( AGreaterNumericBinaryExp node, IPOContextStack question) throws AnalysisException { IProofObligationList pol = getCommonOrderedObligations(node,question); pol.addAll(node.getLeft().apply(mainVisitor,question)); pol.addAll(node.getRight().apply(mainVisitor,question)); return pol; }
@Override public IProofObligationList caseALessNumericBinaryExp( ALessNumericBinaryExp node, IPOContextStack question) throws AnalysisException { IProofObligationList pol = getCommonOrderedObligations(node,question); pol.addAll(node.getLeft().apply(mainVisitor,question)); pol.addAll(node.getRight().apply(mainVisitor,question)); return pol; }
@Override public IProofObligationList caseALessEqualNumericBinaryExp( ALessEqualNumericBinaryExp node, IPOContextStack question) throws AnalysisException { IProofObligationList pol = getCommonOrderedObligations(node,question); pol.addAll(node.getLeft().apply(mainVisitor,question)); pol.addAll(node.getRight().apply(mainVisitor,question)); return pol; }
@Override // RWL public IProofObligationList defaultSBinaryExp(SBinaryExp node, IPOContextStack question) throws AnalysisException { IProofObligationList obligations = new ProofObligationList(); obligations.addAll(node.getLeft().apply(mainVisitor, question)); obligations.addAll(node.getRight().apply(mainVisitor, question)); return obligations; }
@Override public IProofObligationList caseAGreaterEqualNumericBinaryExp( AGreaterEqualNumericBinaryExp node, IPOContextStack question) throws AnalysisException { IProofObligationList pol = getCommonOrderedObligations(node,question); pol.addAll(node.getLeft().apply(mainVisitor,question)); pol.addAll(node.getRight().apply(mainVisitor,question)); return pol; }
@Override public IProofObligationList caseANewExp(ANewExp node, IPOContextStack question) throws AnalysisException { IProofObligationList obligations = new ProofObligationList(); for (PExp exp : node.getArgs()) { obligations.addAll(exp.apply(mainVisitor, question)); } return obligations; }
@Override public IProofObligationList caseATupleExp(ATupleExp node, IPOContextStack question) throws AnalysisException { IProofObligationList obligations = new ProofObligationList(); for (PExp exp : node.getArgs()) { obligations.addAll(exp.apply(mainVisitor, question)); } return obligations; }
@Override public IProofObligationList caseASeqEnumSeqExp(ASeqEnumSeqExp node, IPOContextStack question) throws AnalysisException { IProofObligationList obligations = new ProofObligationList(); for (PExp e : node.getMembers()) { obligations.addAll(e.apply(mainVisitor, question)); } return obligations; }
@Override public IProofObligationList caseASubseqExp(ASubseqExp node, IPOContextStack question) throws AnalysisException { IProofObligationList list = node.getSeq().apply(mainVisitor, question); list.addAll(node.getFrom().apply(mainVisitor, question)); list.addAll(node.getTo().apply(mainVisitor, question)); return list; }
@Override public IProofObligationList caseASetEnumSetExp(ASetEnumSetExp node, IPOContextStack question) throws AnalysisException { IProofObligationList obligations = new ProofObligationList(); for (PExp e : node.getMembers()) { obligations.addAll(e.apply(mainVisitor, question)); } return obligations; }
public static IProofObligationList generateProofObligations( List<INode> sources) throws AnalysisException { IProofObligationList r = new ProofObligationList(); for (INode node : sources) { r.addAll(node.apply(new PogVisitor(), new POContextStack())); } return r; }
@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 IProofObligationList getProofObligations(ModuleList modules) throws AnalysisException { IProofObligationList obligations = new ProofObligationList(); for (AModuleModules m : modules) { obligations.addAll(af.createAModuleModulesAssistant().getProofObligations(m)); } obligations.trivialCheck(); return obligations; }
@Override public IProofObligationList caseAMapletExp(AMapletExp node, IPOContextStack question) throws AnalysisException { IProofObligationList obligations = node.getLeft().apply(mainVisitor, question); obligations.addAll(node.getRight().apply(mainVisitor, question)); return obligations; }
@Override public IProofObligationList caseASameClassExp(ASameClassExp node, IPOContextStack question) throws AnalysisException { IProofObligationList list = node.getLeft().apply(mainVisitor, question); list.addAll(node.getRight().apply(mainVisitor, question)); return list; }
@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 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; }
@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 caseAIotaExp(AIotaExp node, IPOContextStack question) throws AnalysisException { IProofObligationList obligations = node.getBind().apply(rootVisitor, question); obligations.add(new UniqueExistenceObligation(node, question, aF)); question.push(new POForAllContext(aF, node)); obligations.addAll(node.getPredicate().apply(mainVisitor, question)); question.pop(); return obligations; }