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))); }
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); }