// Compare two binary numbers of the form a000101b1001. // Ends up in state e> if first bigger, e< if second, e= if equal +removezeroes_a a > removezeroes_a, a, 1 b > removezeroes_b, b, 1 0 > removezeroes_a, a, 1 1 > move_to_b, 1, 1 move_to_b b > removezeroes_b, b, 1 0 > move_to_b, 0, 1 1 > move_to_b, 1, 1 removezeroes_b 0 > removezeroes_b, b, 1 1 > goleft, 1, -1 # > goleft, #, -1 goleft 0 > goleft, 0, -1 1 > goleft, 1, -1 b > goleft, b, -1 a > check_a, a, 1 check_a 1 > a_is_1, a, 1 0 > a_is_0, a, 1 b > a_is_over, b, 1 a_is_over b > a_is_over, b, 1 0 > e<, 0, 0 1 > e<, 1, 0 # > e=, #, 0 a_is_1 b > a_is_1_b, b, 1 0 > a_is_1, 0, 1 1 > a_is_1, 1, 1 # > e>, #, 0 a_is_1_b b > a_is_1_b, b, 1 0 > e>, 0, 0 1 > goleft, b, -1 a_is_0 b > a_is_0_b, b, 1 0 > a_is_0, 0, 1 1 > a_is_0, 1, 1 # > e>, #, 0 a_is_0_b b > a_is_0_b, b, 1 0 > goleft, b, -1 1 > e<, 1, 0 -e= -e> -e<