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"); } }