Esempio n. 1
0
        //Refinnig the statement shape and priority
        private void PaternRefine()
        {
            string temp;

            //Remov all double negiations
            if (PL_Statement.Contains("¬¬"))
            {
                PL_Statement = PL_Statement.Replace("¬¬", "");
            }

            for (int i = 0; i < Letters.Length; i++)
            {
                temp         = "¬(¬" + Letters[i] + ")";
                PL_Statement = PL_Statement.Replace(temp, Letters[i]);
            }

            //Replace all occurrnces of "¬(A)" with "(¬A)"
            for (int i = 0; i < Letters.Length; i++)
            {
                temp         = "¬(" + Letters[i] + ")";
                PL_Statement = PL_Statement.Replace(temp, "(¬" + Letters[i] + ")");
            }

            //Replace all occurrnces of "¬A" with "(¬A)"
            for (int i = 0; i < Letters.Length; i++)
            {
                temp         = "¬" + Letters[i];
                PL_Statement = PL_Statement.Replace(temp, "(¬" + Letters[i] + ")");
            }

            //Replace all occurrnces of "((¬A))" with "(¬A)"
            for (int i = 0; i < Letters.Length; i++)
            {
                temp         = "((¬" + Letters[i] + "))";
                PL_Statement = PL_Statement.Replace(temp, "(¬" + Letters[i] + ")");
            }

            //Replace all occurrnces of "(A)" with "A"
            for (int i = 0; i < Letters.Length; i++)
            {
                temp         = "(" + Letters[i] + ")";
                PL_Statement = PL_Statement.Replace(temp, Letters[i]);
            }
        }
Esempio n. 2
0
        //Constructor
        public PL_Dash1(string statement)
            : base()
        {
            sysOperators = new char[] { '¬', '→' };
            StringBuilder sb = new StringBuilder("(");

            sb.Append(statement.Trim());
            sb.Replace(" ", "");        //Remove all white spaces.

            sb.Append(")");
            PL_Statement = sb.ToString();

            Letters = PL_Statement.Split(new char[] { '¬', '→', '(', ')' },
                                         StringSplitOptions.RemoveEmptyEntries).Distinct().ToArray(); //Extract operands from the equation.
            if (Letters.Length == 0)
            {
                throw new MalFormedException("Empty statement");
            }
            Array.Sort(Letters);

            isWFF = IsWFF;

            TruthTable = new TruthTable(this);
        }