diff --git a/src/main/java/inference/DependencyAxiom.java b/src/main/java/inference/DependencyAxiom.java index 34c04a2..720be34 100644 --- a/src/main/java/inference/DependencyAxiom.java +++ b/src/main/java/inference/DependencyAxiom.java @@ -18,7 +18,7 @@ public class DependencyAxiom extends InferenceRule{ - int targetAssumptionIndex = 0; + protected int targetAssumptionIndex = 0; public DependencyAxiom(String name) { super(name); diff --git a/src/main/java/inference/axioms/ArgumentReduction.java b/src/main/java/inference/axioms/ArgumentReduction.java index 55a090d..f19260c 100644 --- a/src/main/java/inference/axioms/ArgumentReduction.java +++ b/src/main/java/inference/axioms/ArgumentReduction.java @@ -6,7 +6,7 @@ import java.util.Set; import exceptions.SubstituteFailedException; -import inference.InferenceRule; +import inference.DependencyAxiom; import models.Position; import models.algebra.Variable; import models.formulas.DependencyFormula; @@ -19,7 +19,7 @@ import models.terms.meta.MetaRDLTermVariable; import models.terms.meta.MetaTermGenerator; -public class ArgumentReduction extends InferenceRule { +public class ArgumentReduction extends DependencyAxiom { public ArgumentReduction() { super("Argument Reduction"); @@ -65,6 +65,8 @@ ) ); + this.targetAssumptionIndex = 1; + } diff --git a/src/main/java/inference/axioms/CompositeMapping.java b/src/main/java/inference/axioms/CompositeMapping.java index 51bd77a..9d62770 100644 --- a/src/main/java/inference/axioms/CompositeMapping.java +++ b/src/main/java/inference/axioms/CompositeMapping.java @@ -6,7 +6,7 @@ import java.util.Set; import exceptions.SubstituteFailedException; -import inference.InferenceRule; +import inference.DependencyAxiom; import models.Position; import models.algebra.Variable; import models.formulas.Formula; @@ -18,7 +18,7 @@ import models.terms.meta.MetaRDLTermVariable; import models.terms.meta.MetaTermGenerator; -public class CompositeMapping extends InferenceRule { +public class CompositeMapping extends DependencyAxiom { public CompositeMapping() { super("Composite Mapping"); @@ -73,6 +73,8 @@ new MetaRDLTermVariable(new Variable("se")) ) ); + + this.targetAssumptionIndex = 1; } @Override diff --git a/src/test/java/inference/DependencyInferenceTest.java b/src/test/java/inference/DependencyInferenceTest.java index 5746f39..172d382 100644 --- a/src/test/java/inference/DependencyInferenceTest.java +++ b/src/test/java/inference/DependencyInferenceTest.java @@ -58,6 +58,12 @@ DependencyFormula d5 = new DependencyFormula(a, b); ProofSystem ps2 = new ProofSystem(Set.of(d4, eq1), d5); assertTrue(ps2.dependencyInference()); + + DependencyFormula d6 = new DependencyFormula(new Dependency(a, b, b), c, d); + ProofSystem ps3 = new ProofSystem(Set.of(d6, eq1), new DependencyFormula(new Dependency(a, b), c, d)); + assertTrue(ps3.dependencyInference()); + System.out.println(ps3.getInferenceHistoryString()); + } @Test @@ -112,6 +118,7 @@ ProofSystem ps2 = new ProofSystem(Set.of(d1), new DependencyFormula(new Dependency(f, g), a, b, c), Set.of(a, b, c, d)); assertTrue(ps2.dependencyInference()); + } }