## Help Semantic Tableaux Algorithm

Does anyone know how Semantic Tableaux works?..
Here is an example:

|| (a=>b) ^ c

c||(a=>b) (a=>b) || c

c,a|| || c, a, b b,c||a

I need it to work in java.. any ideas? I am having problems developing it when the tableaux splits into 2 when 2 options are needed. this is what ive got so far..

public class Algorithm {

//Gains Node root from parser and passes to Algorithm and creates and new linkedlist left and right
public Algorithm(Node root) {

right.addElement(root, 0); //adds root to rightList and sets the count of that tree to 0 (heirarchy/treeid)
int count = 0;

while((left.length() > 0) || (right.length() > 0)){

while (right.length() > 0)
{

Node temp = right.getElement();

if(temp.data == "^")
{

right.deleteElement();

count++;

Node tmp = temp.left;
System.out.println(tmp.data);
tmp = temp.right;
System.out.println(tmp.data);

}

if (temp.data == "=>")
{

System.out.println(temp.data );
Node tmp = temp.left;
System.out.println(tmp.data);
tmp = temp.right;
System.out.println(tmp.data);

right.deleteElement();

}

if (temp.data == "v")
{

right.deleteElement();

count++;

Node tmp = temp.left;
System.out.println(tmp.data);
tmp = temp.right;
System.out.println(tmp.data);
}

if (temp.data == "-")
{
right.deleteElement();

}
}

while(left.length() > 0)
{

Node temp = (Node) left.getElement();

if(temp.data == "^")
{
left.deleteElement();
Node tmp = (Node) left.data;
System.out.println(tmp.data);
tmp = (Node) right.data;
System.out.println(tmp.data);
}

if(temp.data == "v")
{
count++;
left.deleteElement();
Node tmp = (Node) left.data;
System.out.println(tmp.data);
tmp = (Node) right.data;
System.out.println(tmp.data);
}

if(temp.data == "=>")
{
count ++;
left.deleteElement();
Node tmp = (Node) left.data;
System.out.println(tmp.data);
tmp = (Node) right.data;
System.out.println(tmp.data);
}

if(temp.data == "-")
{
left.deleteElement();
}

}

}

}

}

class Node
{
public String data;
public Node left ;
public Node right ;

}