let node xor (a, b) = o where
rec o = (a && (not b)) || (b && (not a))
let node div_X3_X_1 i = (reg0,reg1,reg2) where
rec reg0 = false fby (xor(i, back))
and reg1 = false fby (xor(reg0, back))
and reg2 = false fby reg1
and back = reg2
let node div_X3_X_1 i = (reg0,reg1,reg2) where
rec reg0 = false fby merge (1^50 0) (xor(i, back)) false
and reg1 = false fby merge (1^50 0) (xor(reg0 when (1^50 0), back)) false
and reg2 = false fby merge (1^50 0) (reg1 when (1^50 0)) false
and back = reg2 when (1^50 0)
let node redundancy i = (bit0,bit1,bit2) where
rec (reg0,reg1,reg2) = div_X3_X_1 i
and bit0 = reg0 when (0^50 1)
and bit1 = reg1 when (0^50 1)
and bit2 = reg2 when (0^50 1)
let node cyclic_encoding i = o3 where
rec (bit0, bit1, bit2) = redundancy i
and o1 = merge (1^50 0) i (buffer bit0)
and o2 = merge (1^51 0) o1 (buffer bit1)
and o3 = merge (1^52 0) o2 (buffer bit2)