private Predicate createPredicate(ISCContextRoot root, FormulaFactory ff) throws CoreException {
    ITypeEnvironmentBuilder te = ff.makeTypeEnvironment();

    List<Predicate> selected = new ArrayList<Predicate>();
    for (ISCAxiom iscAxiom : root.getSCAxioms()) {
      if (iscAxiom.hasAttribute(ContradictionAttribute.ATTRIBUTE)) {
        if (iscAxiom.getAttributeValue(ContradictionAttribute.ATTRIBUTE)) {
          selected.add(iscAxiom.getPredicate(te));
        }
      }
    }

    Predicate conjunctionOfAxioms;

    if (selected.size() == 1) {
      conjunctionOfAxioms = selected.get(0);
    } else {
      conjunctionOfAxioms = ff.makeAssociativePredicate(Predicate.LAND, selected, null);
    }

    List<BoundIdentDecl> theBoundOnes = new ArrayList<BoundIdentDecl>();

    conjunctionOfAxioms = conjunctionOfAxioms.bindAllFreeIdents(theBoundOnes);
    Predicate full =
        ff.makeQuantifiedPredicate(Predicate.EXISTS, theBoundOnes, conjunctionOfAxioms, null);
    return full;
  }
 private boolean mustGeneratePO(ISCContextRoot root) {
   try {
     for (ISCAxiom iscAxiom : root.getSCAxioms()) {
       if (iscAxiom.hasAttribute(ContradictionAttribute.ATTRIBUTE)) {
         if (iscAxiom.getAttributeValue(ContradictionAttribute.ATTRIBUTE)) {
           return true;
         }
       }
     }
   } catch (RodinDBException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
   }
   return false;
 }
 private IPOGSource[] createSources(ISCContextRoot root) {
   List<IPOGSource> sources = new ArrayList<IPOGSource>();
   try {
     for (ISCAxiom iscAxiom : root.getSCAxioms()) {
       if (iscAxiom.hasAttribute(ContradictionAttribute.ATTRIBUTE)) {
         if (iscAxiom.getAttributeValue(ContradictionAttribute.ATTRIBUTE)) {
           sources.add(makeSource(IPOSource.DEFAULT_ROLE, iscAxiom));
         }
       }
     }
   } catch (RodinDBException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
   }
   IPOGSource[] arr = new IPOGSource[sources.size()];
   arr = sources.toArray(arr);
   return arr;
 }