void Initialize() { Ready = false; var w = Stopwatch.StartNew(); logger.Info($"Building an obstacle monitor for '{obstacle.FriendlyName}'."); ITLFormula translatedFormula; if (obstacle.FormalSpec is Eventually e) { translatedFormula = TranslateToLtlSharp(e.Enclosed); } else { throw new NotSupportedException( "Obstacles must follow the pattern F(phi) where phi is an LTL formula." ); } logger.Trace("Formula {0} converted to {1}", obstacle.FormalSpec, translatedFormula.Normalize()); monitor = new ProbabilisticLTLMonitor(translatedFormula, storage); w.Stop(); logger.Info("Time to build monitor: {0}ms", w.ElapsedMilliseconds); Run(); }
void Initialize() { Ready = false; var w = Stopwatch.StartNew(); logger.Info($"Building a goal monitor for '{goal.FriendlyName}'."); ITLFormula translatedFormula; if (goal.FormalSpec is StrongImply si) { translatedFormula = TranslateToLtlSharp(new Imply(si.Left, si.Right)); } else if (goal.FormalSpec is KAOSTools.Core.Globally g) { translatedFormula = TranslateToLtlSharp(g.Enclosed); } else { throw new NotSupportedException( "Goals must follow the pattern G(phi) where phi is an LTL formula." ); } logger.Trace("Formula {0} converted to {1}", goal.FormalSpec, translatedFormula.Normalize()); monitor = new ProbabilisticLTLMonitor(translatedFormula, storage); w.Stop(); logger.Info("Time to build monitor: {0}ms", w.ElapsedMilliseconds); }