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