VAR

  a[8]
  b[8]
  c[8]
  d[8]
  turn[2]

INIT 
  
  a = 0 & b = 0 & c = 0 & d = 0

TRANS
  
  a = 255 & b = 255 & c = 255 & d =255
  &
  next(a) = 0 & next(b) = 0 & next(c) = 0 & next(d) = 0
  |
  !(a = 255 & b = 255 & c = 255 & d =255)
  &
  (
    turn = 0
    &
    next(b) = b & next(c) = c & next(d) = d
    &
    (
      a = 255 & next(a) = a
      |
      !a = 255 & next(a) = inc(a)
    )
    |
    turn = 1
    &
    next(a) = a & next(c) = c & next(d) = d
    &
    (
      b = 255 & next(b) = b
      |
      !b = 255 & next(b) = inc(b)
    )
    |
    turn = 2
    &
    next(a) = a & next(b) = b & next(d) = d
    &
    (
      c = 255 & next(c) = c
      |
      !c = 255 & next(c) = inc(c)
    )
    |
    turn = 3
    &
    next(a) = a & next(b) = b & next(c) = c
    &
    (
      d = 255 & next(d) = d
      |
      !d = 255 & next(d) = inc(d)
    )
  )

SPEC
  
  AG ! (a = 255 & b = 255 & c = 255 & d =255)
