module TrafficLights {
  var L1: boolean;
  var L2: boolean;
  var L3: boolean;
  var L4: boolean;
  var green: boolean;
  var yellow: boolean;
  var red: boolean;
  var amber: boolean;

  init {
    L1 = false;
    L2 = false;
    L3 = false;
    L4 = false;
    green = true;
    yellow = false;
    red = false;
    amber = false;

  }
  next {
    if (L1 || L3) {
      green' = true;
      yellow' = false;
      red' = false;
      amber' = false;
      if (L1) {
        L1' = false;
        L3' = true;
      } else {
        L3' = false;
        L2' = true;
      }
    } else {
      if (L2) {
        green' = true;
        yellow' = false;
        red' = false;
        amber' = false;
        L2' = false;
        L4' = true;
      } else {
        if (L4) {
          green' = true;
          yellow' = false;
          red' = false;
          amber' = false;
          L4' = false;
          L1' = true;
        } else {
          green' = false;
          yellow' = false;
          red' = false;
          amber' = true;
        }
      }
    }

  }
}
