/// <summary>
        ///
        /// </summary>
        /// <param name="left"></param>
        /// <param name="oper"></param>
        /// <param name="right">If right is null make a single prop</param>
        /// <returns></returns>
        private Proposition SetProp(string[] left, Operations oper, string[] right)
        {
            Proposition returnProp = new Proposition();


            if (left.Length == 1)
            {
                if (left[0][0] == '~') // "~A"
                {
                    left[0]            = left[0].Substring(1);
                    returnProp.ANotted = true;
                }
                returnProp.setA(String2Symbol(left[0]));
            }
            else
            {
                returnProp.setA(generateProp(left));
            }

            if (right != null) // multi argument prop
            {
                if (right.Length == 1)
                {
                    if (right[0][0] == '~') // "~A"
                    {
                        right[0]           = right[0].Substring(1);
                        returnProp.BNotted = true;
                    }
                    returnProp.setB(String2Symbol(right[0]));
                }
                else
                {
                    returnProp.setB(generateProp(right));
                }
                returnProp.Operation = oper;
            }



            return(returnProp);
        }