After a week-late I'm glad to announce we have an algorithm! It is attached in the files "SentenceTree.cpp", SentenceTree.h For those of you who don't know the algorithm, I'll give a short introduction of what it does. When I find the time, I would also give an explanation of its implementation and efficiency in our program, and share some thoughts (Yonatan's and mine) of future improvement of this alg. 1. Introduction: The truth trees system is a naive algorithm, which gets a set of sentences in first-order logic (it doesn't handle in higher orders), plugging and discharge them, building a binary tree of sentences. Each branch in the tree is a different possible "world" (meaning) of the sentences. It has about 15 rules of how to discharge a sentence. if a branch has a contradiction, meaning, sentences in the forms "F" " not F", or not(A=A), where A is a constant, it is considered closed. if it is impossible to discharge sentences in a branch, it is considered full. if a tree (finite or infinte) has a full open branch, then it is open, and the sentences in its root are consistent. Maybe Yonatan will send a copy of his book which specify them exactly. Notes: 1. I've yet to debug the "forall" and "exists" parts of the alg'. If you find any bugs inform me and I'll fix them. 2. The program was first written in xemacs, than in edit+, and compiled in xemacs. Therefore, The Indention is ugly. If anyone volunteers, fix it. 3. When I started to write the alg' I thought that the queues should not be members of the class. As long as the program grew, there were added lots of methods which use the queues. So, now it has some methods with 8 paramenters. I'll change that, and send an update to the list. The methods are createLeaves, insertToLeaves, insertToQueue, and discharge Methods. 4. There are some long methods (80 lines), but after a talk with Yonatan, we have decided to keep them, since they are built in the form of "else ifs". 5. right now, the alg does not support functions, but this can be easily fixed by changing the substitutions methods. Noam (buga).