Newer
Older
RDLProofSystem / src / main / java / inference / axioms / ConstantMapping.java
@Sakoda2269 Sakoda2269 5 days ago 1 KB 公理実装完了
package inference.axioms;

import java.util.Map;

import inference.InferenceOrderConstraint;
import inference.InferenceRule;
import models.algebra.Variable;
import models.formulas.meta.MetaDependencyFormula;
import models.terms.meta.MetaDynamicDependency;
import models.terms.meta.MetaEvaluatableTermVariable;
import models.terms.meta.MetaRDLTerm;
import models.terms.meta.MetaTermGenerator;
import models.terms.meta.OrderConstraint;

public class ConstantMapping extends InferenceRule {

	public ConstantMapping() {
		super("Constant Mapping");
		defaultOrderConstraint = new InferenceOrderConstraint(new Variable("n"), OrderConstraint.LT, new Variable("m"));
		conclusion = new MetaDependencyFormula(
				new MetaDynamicDependency(
						new MetaTermGenerator() {
							@Override
							public MetaRDLTerm generate(int curIndex, int curDepth, int maxIndex, int maxDepth, Map<Object, Object> context) {
								curIndex -= 1;
								return new MetaEvaluatableTermVariable(new Variable("te" + curIndex), new Variable("m"));
							}
						},
						new MetaEvaluatableTermVariable(new Variable("se"), new Variable("n"))
				)
		);
	}
	
}