Beispiel #1
0
  private TransformationChooser setUpReductionTransformer() {
    ChainingIterable<VCTransformer> steps = new ChainingIterable<VCTransformer>();

    SubstitutionRuleNormalizer normalizer = new SubstitutionRuleNormalizer(myTyper, false);
    for (PExp e : myPExpTheorems) {
      steps.add(normalizer.normalize(e));
    }

    return new NoBacktrackChooser(
        new ProductiveStepChooser(
            new UpfrontFitnessTransformationChooser(
                new NormalizingTransformerFitnessFunction(),
                steps,
                0,
                myTyper,
                myInstanceEnvironment)));
  }
Beispiel #2
0
  private VCProver setUpProverDebug() {
    ChainingIterable<VCTransformer> steps = new ChainingIterable<VCTransformer>();

    steps.add(new ChooserEncapsulationStep("Reduce", setUpReductionTransformer()));

    steps.add(new ExistentialInstantiationStep(myPExpTheorems));

    SubstitutionRuleNormalizer normalizer = new SubstitutionRuleNormalizer(myTyper, false);
    for (PExp e : myPExpTheorems) {
      steps.add(normalizer.normalize(e));
    }

    Antecedent antecedent;
    Consequent consequent;
    for (Implication i : myImplications) {

      antecedent = new Antecedent(i.getAntecedent(), myTyper);
      consequent = new Consequent(i.getConsequent(), myTyper);

      steps.add(new ConsequentWeakeningStep(antecedent, consequent));
      steps.add(new TheoryDevelopingStep(antecedent, consequent, myPExpTheorems));
    }

    VCTransformer batchDeveloper = buildBatchTheoryDeveloper(5);

    return new AlternativeProver(
        myInstanceEnvironment,
        new FirstStepGivenTransformationChooser(
            new SimplifyingTransformationChooser(
                new GuidedTransformationChooser(steps, myTyper), 0),
            batchDeveloper),
        myTyper);
  }