--- /dev/null
+package com.example.furt.myapplication;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class RuleAndElimination implements EliminationRule
+{
+ String ruleName;
+ FormulaAnd Fn;
+ RuleAndElimination(FormulaAnd F){
+ Fn=F;
+ ruleName="∧e";
+ }
+ public Node createNodes(Formula F,askFormula ask)
+ {
+ Formula C;
+ if (F==null) //applicazione Top-Down: chiamo la callback
+ C=ask.Ask();
+ else
+ C=F; //applicazione bottom-up: il nuovo nodo è la formula F passata
+ Node cNode=new Node(C);
+ if ((C.toString().equals(Fn.leftF.toString())) || (C.toString().equals(Fn.rightF.toString()))) //Posso utilizzare le regole di eliminazione sinistra o destra
+ {
+ cNode.addChild(new Node(Fn));
+ cNode.ruleName=ruleName;
+ return cNode;
+ }
+ Node elNode=new Node(Fn);
+ List<Formula> HP=new ArrayList<Formula>();
+ HP.add(Fn.leftF);
+ HP.add(Fn.rightF);
+ cNode.addHPFormula(HP,true);
+ Node rNode=new Node(C);
+ rNode.addChild(elNode);
+ rNode.addChild(cNode);
+ rNode.ruleName=ruleName;
+ return rNode;
+ }
+}
+
+