Rules:

adder:Output = Input + 1

subber:Output = Input - 1

random: Output = 0 <= X <= 5

passthrough Output = Input

round_up Output = Input + (Input%2)

state_increment internal x; Output = x = x + 1;

match_prev internal prev; Output = input == prev

guess output = input == 0 <= random < 5

mult2 output = input * 2

numcounter output = times input has been given before