예제 #1
0
        public override void isSatiesfied <T>(TransitionSystem <T> transition_system, LinkedList <T> states, out HashSet <T> sat, ref Pre_Compute_Factory <T> factory)
        {
            if (factory.prop_sats.ContainsKey(this))
            {
                factory.prop_sats.TryGetValue(this, out sat);
                return;
            }


            HashSet <T> res = new HashSet <T>();

            foreach (var entry in states)
            {
                T    state     = entry;
                bool satisfied = transition_system.HasAtomicProposition(ref state, atomic.PropositionIndex);

                if (satisfied)
                {
                    res.Add(state);
                }
            }

            //Console.WriteLine("atomic");

            factory.prop_sats.Add(this, res);


            sat = res;
        }