-1

I'm working on model checking verification using spin model checker each time I try to run code I get error:

spin: traffic_controller:12, Error: undeclared variable: to_green saw '')' = 41'

child process exited abnormally also i have declared it already. I am using spin version 6.4.9

proctype traffic_controller(int id; int red; int green; int yellow)
{
    bool event_flag = false;
    int neighbor_id , send_node_id , interval ;
    byte circular_ch[4];
    mtype  msg_signal  ;
    end_1 :
    do
    ::circular_ch[ id ]?msg_signal (send_node_id);
        if
        :: ( msg_signal == to_green ) ;
            green_state:
            if
                :: interval = GREEN_INTERVAL0 ;
                :: interval = GREEN_INTERVAL1 ;
                :: interval = GREEN_INTERVAL2 ;
            fi;
            set (clock [id] , interval) ;
            red_activated_region_end :
            red_signal [id] = false ;
            green_activated_region_start ;
            green_signal [id] = true ;
            if
                :: ( expire ( clock [id] ) ) -> clock [id] = ZERO;
                green_activated_region_end :
                green_signal [id] = false ;
                goto yellow_state ;
            fi;
            yellow_state :
            set ( clock [id] , YELLOW_INTERVAL ) ;
            yellow_activated_region_start ;
            yellow_signal [id] = false ;
            if
                :: ( expire ( clock [id] ) ) -> clock [id] = ZERO ;
                yellow_activated_region_end :
                yellow_signal [id] = false ;
                if
                    :: (id != NUM_NODES-1) -> neighbor_id = id+1 ;
                    ::else -> neighbor_id =ZERO;
                fi;
                red_signal [id] = true;
                red_activated_region_start :
                circular_ch [ neighbor_id ] ! to_green (id) ;
            fi;
        fi;
    od;
}

init
{
    run traffic_controller();
    mtype : msg_signal = { to_green, pear, banana }
}
Brishna Batool
  • 445
  • 3
  • 15

1 Answers1

0

Two problems with this:

  1. Declare msg_signal globally, not in main.
  2. You have left a lot undefined (e.g. GREEN_INTERVAL0 , YELLOW_INTERVAL, set, clock)
Brishna Batool
  • 445
  • 3
  • 15