Example #1
0
        public override PDLPred ToPDL(List <MonaMacro> macros, Dictionary <string, string> sub)
        {
            switch (op)
            {
            case MonaLogicalOperator.And: return(new PDLAnd(phi1.ToPDL(macros, sub), phi2.ToPDL(macros, sub)));

            case MonaLogicalOperator.If: return(new PDLIf(phi1.ToPDL(macros, sub), phi2.ToPDL(macros, sub)));

            case MonaLogicalOperator.Iff: return(new PDLIff(phi1.ToPDL(macros, sub), phi2.ToPDL(macros, sub)));

            case MonaLogicalOperator.Or: return(new PDLOr(phi1.ToPDL(macros, sub), phi2.ToPDL(macros, sub)));
            }
            throw new MonaException("undefined operator");
        }
Example #2
0
        public override PDLPred ToPDL(List <MonaMacro> macros, Dictionary <string, string> sub)
        {
            switch (q)
            {
            case MonaQuantifier.ExistsFO:
            {
                var ret = phi.ToPDL(macros, sub);
                foreach (var v in vars)
                {
                    return(ret = new PDLExistsFO(v, ret));
                }
                return(ret);
            }

            case MonaQuantifier.ExistsSO:
            {
                var ret = phi.ToPDL(macros, sub);
                foreach (var v in vars)
                {
                    return(ret = new PDLExistsSO(v, ret));
                }
                return(ret);
            }

            case MonaQuantifier.ForallFO:
            {
                var ret = phi.ToPDL(macros, sub);
                foreach (var v in vars)
                {
                    return(ret = new PDLForallFO(v, ret));
                }
                return(ret);
            }

            case MonaQuantifier.ForallSO:
            {
                var ret = phi.ToPDL(macros, sub);
                foreach (var v in vars)
                {
                    return(ret = new PDLForallSO(v, ret));
                }
                return(ret);
            }

            default: throw new MonaException("Quantifier undefined");
            }
        }
Example #3
0
 public override PDLPred ToPDL(List <MonaMacro> macros, Dictionary <string, string> sub)
 {
     return(new PDLNot(phi.ToPDL(macros, sub)));
 }