public CClausule(CLiteral[] literals, bool[] areDirect)
        {
            setSize(literals.Count());

            setClausuleLiterals(new CLiteral[literals.Count()]);
            for (int i = 0; i < literals.Count(); i++)
                _clausuleLiterals[i] = literals[i];

            setAreDirect(new bool[getSize()]);
            for (int i = 0; i < getSize(); i++)
                _areDirect[i] = areDirect[i];
        }
        private void example1()
        {
            bool[] directs = new bool[1];
            CLiteral[] ls = new CLiteral[1];
            ls[0] = CLiteral.generateLiteral(true);
            directs[0] = true;

            CLiteralSet literalSet = new CLiteralSet();
            for (int i = 0; i < ls.Count(); i++)
                literalSet.addLiteral(ls[i]);

            CClausuleSet clausuleSet = new CClausuleSet();
            clausuleSet.addClausule(new CClausule(ls, directs));

            CSATProblem problem = new CSATProblem(literalSet, clausuleSet);

            txOutput.Text = problem.toString();

            txOutput.Text += problem.isSatisfactible().ToString() + Environment.NewLine;

            txOutput.Text += CProblemReduction.reduct(problem).toString();
        }