예제 #1
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");
            }
        }
 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");
     }
 }