Esempio n. 1
0
        public override int IsBDDEncodable(List <string> calledProcesses)
        {
            if (Processes == null)
            {
                return(IsBDDEncodableProp = IndexedProcessDefinition.IsBDDEncodable(calledProcesses));
            }
            else
            {
                int min = Constants.BDD_LTS_COMPOSITION_3;
                for (int i = 0; i < Processes.Count; i++)
                {
                    min = Math.Min(min, Processes[i].IsBDDEncodable(calledProcesses));
                }

                return(IsBDDEncodableProp = min);
            }
        }
Esempio n. 2
0
        public override int IsBDDEncodable(List <string> calledProcesses)
        {
            if (Processes == null)
            {
                int result = IndexedProcessDefinition.IsBDDEncodable(calledProcesses);

                //interleave is only encoded by composition.
                //if sub processes are not bdd encodable then the interleave is too
                //if sub process are encodable then the whole is encodable and encoded by composition
                return(IsBDDEncodableProp = Math.Min(result, Constants.BDD_COMPOSITION_1));
            }
            else
            {
                int min = Constants.BDD_COMPOSITION_1;
                for (int i = 0; i < Processes.Count; i++)
                {
                    min = Math.Min(min, Processes[i].IsBDDEncodable(calledProcesses));
                }

                return(IsBDDEncodableProp = min);
            }
        }