On the symbolic analysis of combinational loops in circuits and synchronous programs