def resolve(self, evaluate):
        new_fsm = {}
        for src, dstdict in sorted(self.fsm.items(), key=lambda x:x[0]):
            dst_cond_dict = {}
            for cond, dst in sorted(dstdict.items(), key=lambda x:x[1]):
                if not dst in dst_cond_dict:
                    dst_cond_dict[dst] = cond
                else:
                    cur_cond = dst_cond_dict[dst]
                    if cur_cond is None: pass
                    elif cond is None: dst_cond_dict[dst] = None
                    else: dst_cond_dict[dst] = evaluate.optimize(DFOperator((cur_cond, cond), 'Lor'))
            new_dstdict = {}
            for dst, cond in dst_cond_dict.items():
                if isinstance(cond, DFEvalValue) and cond.value > 0:
                    new_dstdict[None] = dst
                else:
                    new_dstdict[cond] = dst
            new_fsm[src] = new_dstdict
        self.fsm = new_fsm
dataset/ETHPy150Open PyHDI/Pyverilog/pyverilog/controlflow/controlflow_analyzer.py/FiniteStateMachine.resolve/original