// Should be: [{P(F(c#),F(c#)),P(G(F(c#)),F(c#))}]
c = c.getNonTrivialFactors().iterator().next();
Literal p = c.getPositiveLiterals().get(0);
Assert.assertEquals("P", p.getAtomicSentence().getSymbolicName());
Function f = (Function) p.getAtomicSentence().getArgs().get(0);
Assert.assertEquals("F", f.getFunctionName());
Variable v = (Variable) f.getTerms().get(0);
f = (Function) p.getAtomicSentence().getArgs().get(1);
Assert.assertEquals("F", f.getFunctionName());
Assert.assertEquals(v, f.getTerms().get(0));
//
p = c.getPositiveLiterals().get(1);
f = (Function) p.getAtomicSentence().getArgs().get(0);
Assert.assertEquals("G", f.getFunctionName());
f = (Function) f.getTerms().get(0);
Assert.assertEquals("F", f.getFunctionName());
Assert.assertEquals(v, f.getTerms().get(0));
f = (Function) p.getAtomicSentence().getArgs().get(1);
Assert.assertEquals("F", f.getFunctionName());
Assert.assertEquals(v, f.getTerms().get(0));
// p(g(x)), q(x), p(f(a)), p(x), p(g(f(x))), q(f(a))
c = new Clause();
c.addPositiveLiteral((Predicate) parser.parse("P(G(x))"));
c.addPositiveLiteral((Predicate) parser.parse("Q(x)"));