In digital computing, the Muller C-element (C-gate, hysteresis flip-flop, coincident flip-flop, or two-hand safety circuit) is a small binary logic circuit widely used in design of asynchronous circuits and systems. It outputs 0 when all inputs are 0, it outputs 1 when all inputs are 1, and it retains its output state otherwise. It was specified formally in 1955 by David E. Muller[3] and first used in ILLIAC II computer.[4] In terms of the theory of lattices, the C-element is a semimodular distributive circuit, whose operation in time is described by a Hasse diagram.[5][6][7][8] The C-element is closely related to the rendezvous[9] and join[10] elements, where an input is not allowed to change twice in succession. In some cases, when relations between delays are known, the C-element can be realized as a sum-of-product (SOP) circuit.[11][12] Earlier techniques for implementing the C-element[13][14] include Schmitt trigger,[15] Eccles-Jordan flip-flop and last moving point flip-flop.
^Stucki, Mishell J.; Ornstein, Severo M.; Clark, Wesley A. (1967). "Logical design of macromodules". Proceedings of the April 18-20, 1967, spring joint computer conference on - AFIPS '67 (Spring). pp. 357–364. doi:10.1145/1465482.1465538. ISBN978-1-4503-7895-6.