コード例 #1
0
        static void Main(string[] args)
        {
            try
            {
                Console.WriteLine("Hello World!");


                //Console CODE
                var parser = StringParser.Create(
                    ">(!x.(@y.(|(P(x),Q(y)))),|(!u.(P(u)),!v.(Q(v))))");

                var ope = parser.GetOperator();


                //   Console.WriteLine( ope.Equals(parser2.GetOperator()));

                var tableaux = new SemanticTableauxParser(ope);

                Console.WriteLine("Yep, it is a: " + tableaux.IsTautology());
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine(e.StackTrace);
            }
        }
コード例 #2
0
        private void Test(string formula, bool result)
        {
            var parser = StringParser.Create(formula);

            var ope = parser.GetOperator();


            //   Console.WriteLine( ope.Equals(parser2.GetOperator()));

            var tableaux = new SemanticTableauxParser(ope);

            Assert.Equal(result, tableaux.IsTautology());
        }
コード例 #3
0
        public IActionResult Calculate(string formula)
        {
            if (string.IsNullOrEmpty(formula))
            {
                return(RedirectToAction("Index"));
            }

            var model = new CalculateViewModel();


            var parser            = StringParser.Create(formula);
            var calculatedFormula = parser.GetOperator();

            model.OriginalFormula = calculatedFormula.ToString();
            model.Logic           = calculatedFormula.ToLogicString();
            model.Nandify         = calculatedFormula.ToNandify().ToString();
            model.HasResult       = calculatedFormula.HasResult();

            var json = JsonCreator.CreateFromBaseOpeator(calculatedFormula);

            model.JsonData = JsonConvert.SerializeObject(json);


            SemanticTableauxParser tableaux;

            if (calculatedFormula.HasResult())
            {
                var stable           = new SimplifiedTruthTableCreator(calculatedFormula);
                var table            = new TruthTableCreator(calculatedFormula);
                var normal           = new DisjunctiveNormalDecorator(table);
                var simplifiedNormal = new DisjunctiveNormalDecorator(stable);
                model.Normalize            = normal.GetOperator().ToString();
                model.NormalizeLogicFormat = normal.GetOperator().ToLogicString();
                model.TruthTable           = table.GetTable();
                model.SimplifiedTruthTable = stable.GetTable();
                model.Arguments            = calculatedFormula.GetArguments();

                model.SimplifiedNormalize            = simplifiedNormal.GetOperator().ToString();
                model.SimplifiedNormalizeLogicFormat = simplifiedNormal.GetOperator().ToLogicString();

                model.Hex = table.ToHex();
            }


            tableaux               = new SemanticTableauxParser(calculatedFormula);
            model.isTautology      = tableaux.IsTautology();
            model.tableauxJsonData =
                JsonConvert.SerializeObject(JsonCreator.CreateFromTableauxStep(tableaux.GetStep()));
            return(View(model));
        }