10
6
status :  cruise.umple.compiler.State@9353d68[name:Planned,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[11,4]
  stateMachine = 2a654f27 : 0
 cruise.umple.compiler.State@770093c5[name:OpenNotEnoughStudents,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[14,26]
  stateMachine = 2a654f27 : 0
 cruise.umple.compiler.State@785dbe3a[name:OpenEnoughStudents,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[22,35]
  stateMachine = 2a654f27 : 0
 cruise.umple.compiler.State@58230224[name:Cancelled,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[13,16]
  stateMachine = 2a654f27 : 0
 cruise.umple.compiler.State@583f6270[name:Closed,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[27,29]
  stateMachine = 2a654f27 : 0

-- This file is generated from CourseSectionNested.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for CourseSectionStatus --
MODULE CourseSectionStatus

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Status_Planned , Status_OpenNotEnoughStudents , Status_OpenEnoughStudents , Status_Cancelled , Status_Closed };
     event : { ev_cancel , ev_classSizeExceedsMinimum , ev_openRegistration , ev_requestToRegister , ev_classSizeExceedsMaximum , ev_closeRegistration , ev_null };

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     status_stable :=  !( event = ev_cancel | event = ev_openRegistration | event = ev_classSizeExceedsMaximum | event = ev_classSizeExceedsMinimum | event = ev_requestToRegister | event = ev_closeRegistration );
     t1 := event = ev_cancel & state = Status_Planned;
     t2 := event = ev_openRegistration & state = Status_Planned;
     t3 := event = ev_cancel & state = Status_OpenNotEnoughStudents;
     t4 := event = ev_requestToRegister & state = Status_OpenNotEnoughStudents;
     t5 := event = ev_closeRegistration & state = Status_OpenNotEnoughStudents;
     t6 := event = ev_classSizeExceedsMinimum & state = Status_OpenNotEnoughStudents;
     t7 := event = ev_cancel & state = Status_OpenEnoughStudents;
     t8 := event = ev_requestToRegister & state = Status_OpenEnoughStudents;
     t9 := event = ev_closeRegistration & state = Status_OpenEnoughStudents;
     t10 := event = ev_classSizeExceedsMaximum & state = Status_OpenEnoughStudents;
     t11 := event = ev_cancel & state = Status_Closed;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := Status_Planned;
     next( state ) := case
       t4 | t2 | t8 : Status_OpenNotEnoughStudents;
       t6 : Status_OpenEnoughStudents;
       t3 | t11 | t1 | t7 | t5 : Status_Cancelled;
       t9 | t10 : Status_Closed;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       status_stable : { ev_cancel , ev_classSizeExceedsMinimum , ev_openRegistration , ev_requestToRegister , ev_classSizeExceedsMaximum , ev_closeRegistration };
       TRUE : ev_null;
     esac;

-- This defines a NuSMV module for CourseSectionStatus_Machine --
MODULE CourseSectionStatus_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     courseSectionStatus : CourseSectionStatus;

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     courseSectionStatus_Machine : CourseSectionStatus_Machine;

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( courseSectionStatus_Machine.courseSectionStatus.state = Status_Planned )
   CTLSPEC   EF( courseSectionStatus_Machine.courseSectionStatus.state = Status_OpenNotEnoughStudents )
   CTLSPEC   EF( courseSectionStatus_Machine.courseSectionStatus.state = Status_OpenEnoughStudents )
   CTLSPEC   EF( courseSectionStatus_Machine.courseSectionStatus.state = Status_Cancelled )
   CTLSPEC   EF( courseSectionStatus_Machine.courseSectionStatus.state = Status_Closed )

9
9
state :  cruise.umple.compiler.State@12c66345[name:state1,isConcurrent:true,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[5,4]
  stateMachine = 24bf95ec : 2
 cruise.umple.compiler.State@13ae0ffd[name:state2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[7,14]
  stateMachine = 24bf95ec : 0

state11 :  cruise.umple.compiler.State@2a71d430[name:state11state111,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[8,8]
  stateMachine = b0c4670 : 0
 cruise.umple.compiler.State@5344b208[name:state11state112,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[9,16]
  stateMachine = b0c4670 : 0

state12 :  cruise.umple.compiler.State@30769e7a[name:state12state121,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[18,8]
  stateMachine = 14021c10 : 0
 cruise.umple.compiler.State@7dd4f726[name:state122state1221,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[13,16]
  stateMachine = 14021c10 : 0

-- This file is generated from AndCrossExample.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for AState --
MODULE AState ( _stateState1State11State11 , _stateState1State12State12 )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { State_state1 , State_state2 };
     event : { ev_e5 , ev_e1 , ev_e2 , ev_e3 , ev_e4 , ev_null };

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     state_stable :=  !( event = ev_e1 | event = ev_e3 | event = ev_e5 | event = ev_e2 | event = ev_e4 );
     t1 := event = ev_e5 & _stateState1State11State11.state != null;
     t2 := event = ev_e1 & _stateState1State11State11.state = StateState1State11State11_state11state111;
     t3 := event = ev_e4 & _stateState1State11State11.state = StateState1State11State11_state11state112;
     t4 := event = ev_e2 & _stateState1State11State11.state = StateState1State11State11_state11state112;
     t5 := event = ev_e5 & _stateState1State12State12.state != null;
     t6 := event = ev_e2 & _stateState1State12State12.state = StateState1State12State12_state12state121;
     t7 := event = ev_e4 & _stateState1State12State12.state = StateState1State12State12_state12state121;
     t8 := event = ev_e3 & _stateState1State12State12.state = StateState1State12State12_state122state1221;
     t9 := event = ev_e4 & _stateState1State12State12.state = StateState1State12State12_state122state1221;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := State_state1;
     next( state ) := case
       t2 | t9 | t6 | t3 | t8 | t4 | t7 : State_state1;
       t1 | t5 : State_state2;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       state_stable : { ev_e5 , ev_e1 , ev_e2 , ev_e3 , ev_e4 };
       TRUE : ev_null;
     esac;

-- This defines a NuSMV module for AStateState1State11State11 --
MODULE AStateState1State11State11 ( _state )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { StateState1State11State11_state11state111 , StateState1State11State11_state11state112 , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _state.t5 | _state.t1 | _state.t4 : null;
       _state.t3 : StateState1State11State11_state11state111;
       _state.t2 : StateState1State11State11_state11state112;
       _state.state = State_state1 & state = null : StateState1State11State11_state11state111;
       TRUE : state;
     esac;

-- This defines a NuSMV module for AStateState1State12State12 --
MODULE AStateState1State12State12 ( _state )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { StateState1State12State12_state12state121 , StateState1State12State12_state122state1221 , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _state.t1 | _state.t5 : null;
       _state.t8 | _state.t9 : StateState1State12State12_state12state121;
       _state.t6 | _state.t4 | _state.t7 : StateState1State12State12_state122state1221;
       _state.state = State_state1 & state = null : StateState1State12State12_state12state121;
       TRUE : state;
     esac;

-- This defines a NuSMV module for AState_Machine --
MODULE AState_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     aState : AState( aStateState1State11State11 , aStateState1State12State12 );
     aStateState1State11State11 : AStateState1State11State11( aState );
     aStateState1State12State12 : AStateState1State12State12( aState );

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     aState_Machine : AState_Machine;

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( aState_Machine.aState.state = State_state1 )
   CTLSPEC   EF( aState_Machine.aState.state = State_state2 )
   CTLSPEC   EF( aState_Machine.aStateState1State11State11.state = StateState1State11State11_state11state111 )
   CTLSPEC   EF( aState_Machine.aStateState1State11State11.state = StateState1State11State11_state11state112 )
   CTLSPEC   EF( aState_Machine.aStateState1State12State12.state = StateState1State12State12_state12state121 )
   CTLSPEC   EF( aState_Machine.aStateState1State12State12.state = StateState1State12State12_state122state1221 )

24
31
sm :  cruise.umple.compiler.State@79499fa[name:SingleLaneBridge,isConcurrent:true,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[11,3]
  stateMachine = 48531d5 : 9

RedA :  cruise.umple.compiler.State@340d50c8[name:RedAwaitRedA,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[18,13]
  stateMachine = 9cabd07 : 0
 cruise.umple.compiler.State@2a32be8d[name:RedAonRedA,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[19,56]
  stateMachine = 9cabd07 : 0

RedB :  cruise.umple.compiler.State@7942987[name:RedBwaitRedB,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[27,13]
  stateMachine = 5941a2ad : 0
 cruise.umple.compiler.State@5bf1e07[name:RedBonRedB,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[28,56]
  stateMachine = 5941a2ad : 0

BlueA :  cruise.umple.compiler.State@3ac60eeb[name:BlueAwaitBlueA,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[38,13]
  stateMachine = 1c38d025 : 0
 cruise.umple.compiler.State@48b85dc5[name:BlueAonBlueA,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[39,57]
  stateMachine = 1c38d025 : 0

BlueB :  cruise.umple.compiler.State@350a3df3[name:BlueBwaitBlueB,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[47,13]
  stateMachine = 3f31ccef : 0
 cruise.umple.compiler.State@65d28ad4[name:BlueBonBlueB,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[48,57]
  stateMachine = 3f31ccef : 0

BridgeStatus :  cruise.umple.compiler.State@6f0ea5de[name:BridgeStatusempty,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[58,8]
  stateMachine = b0ff869 : 0
 cruise.umple.compiler.State@3ae81b53[name:BridgeStatusoneRed,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[59,46]
  stateMachine = b0ff869 : 0
 cruise.umple.compiler.State@4b9da2f0[name:BridgeStatusoneBlue,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[60,49]
  stateMachine = b0ff869 : 0
 cruise.umple.compiler.State@5127de08[name:BridgeStatustwoRed,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[64,40]
  stateMachine = b0ff869 : 0
 cruise.umple.compiler.State@259fb8f5[name:BridgeStatustwoBlue,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[68,43]
  stateMachine = b0ff869 : 0

redCoordEnt :  cruise.umple.compiler.State@5f571d96[name:redCoordEntcoordEntRedA,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[82,6]
  stateMachine = 797bbeae : 0
 cruise.umple.compiler.State@1643e817[name:redCoordEntcoordEntRedB,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[83,18]
  stateMachine = 797bbeae : 0

redCoordExit :  cruise.umple.compiler.State@4e43a23a[name:redCoordExitcoordExitRedA,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[91,6]
  stateMachine = 291fbdc9 : 0
 cruise.umple.compiler.State@db5e88a[name:redCoordExitcoordExitRedB,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[92,19]
  stateMachine = 291fbdc9 : 0

blueCoordEnt :  cruise.umple.compiler.State@4bfaa7b[name:blueCoordEntcoordEntBlueA,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[102,6]
  stateMachine = 57be9aa4 : 0
 cruise.umple.compiler.State@31b846f[name:blueCoordEntcoordEntBlueB,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[103,19]
  stateMachine = 57be9aa4 : 0

blueCoordExit :  cruise.umple.compiler.State@21c8dd3e[name:blueCoordExitcoordExitBlueA,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[111,6]
  stateMachine = 585d570e : 0
 cruise.umple.compiler.State@7b159d1b[name:blueCoordExitcoordExitBlueB,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[112,20]
  stateMachine = 585d570e : 0

-- This file is generated from SingleLaneBridge.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for SystemSm --
MODULE SystemSm ( _smSingleLaneBridgeRedARedA , _smSingleLaneBridgeRedBRedB , _smSingleLaneBridgeBlueABlueA , _smSingleLaneBridgeBlueBBlueB , _smSingleLaneBridgeBridgeStatusBridgeStatus , _smSingleLaneBridgeRedCoordEntRedCoordEnt , _smSingleLaneBridgeRedCoordExitRedCoordExit , _smSingleLaneBridgeBlueCoordEntBlueCoordEnt , _smSingleLaneBridgeBlueCoordExitBlueCoordExit )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Sm_SingleLaneBridge , null };
     event : { ev_inBlue , ev_exitBlueB , ev_entRedA , ev_exitBlueA , ev_enterBlueB , ev_entRedB , ev_enterRedA , ev_enterRedB , ev_enterBlueA , ev_outRed , ev_outBlue , ev_exitRedA , ev_inRed , ev_entBlueB , ev_exitRedB , ev_entBlueA , ev_null };
     numRed : integer;
     numBlue : integer;

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     sm_stable :=  !( event = ev_inBlue | event = ev_entRedA | event = ev_enterBlueB | event = ev_enterRedA | event = ev_enterBlueA | event = ev_outBlue | event = ev_inRed | event = ev_exitRedB | event = ev_exitBlueB | event = ev_exitBlueA | event = ev_entRedB | event = ev_enterRedB | event = ev_outRed | event = ev_exitRedA | event = ev_entBlueB | event = ev_entBlueA );
     t1 := event = ev_enterRedA & _smSingleLaneBridgeRedARedA.state = SmSingleLaneBridgeRedARedA_RedAwaitRedA & g1;
     t2 := event = ev_exitRedA & _smSingleLaneBridgeRedARedA.state = SmSingleLaneBridgeRedARedA_RedAonRedA;
     t3 := event = ev_enterRedB & _smSingleLaneBridgeRedBRedB.state = SmSingleLaneBridgeRedBRedB_RedBwaitRedB & g1;
     t4 := event = ev_exitRedB & _smSingleLaneBridgeRedBRedB.state = SmSingleLaneBridgeRedBRedB_RedBonRedB;
     t5 := event = ev_enterBlueA & _smSingleLaneBridgeBlueABlueA.state = SmSingleLaneBridgeBlueABlueA_BlueAwaitBlueA & g2;
     t6 := event = ev_exitBlueA & _smSingleLaneBridgeBlueABlueA.state = SmSingleLaneBridgeBlueABlueA_BlueAonBlueA;
     t7 := event = ev_enterBlueB & _smSingleLaneBridgeBlueBBlueB.state = SmSingleLaneBridgeBlueBBlueB_BlueBwaitBlueB & g2;
     t8 := event = ev_exitBlueB & _smSingleLaneBridgeBlueBBlueB.state = SmSingleLaneBridgeBlueBBlueB_BlueBonBlueB;
     t9 := event = ev_inRed & _smSingleLaneBridgeBridgeStatusBridgeStatus.state = SmSingleLaneBridgeBridgeStatusBridgeStatus_BridgeStatusempty;
     t10 := event = ev_inBlue & _smSingleLaneBridgeBridgeStatusBridgeStatus.state = SmSingleLaneBridgeBridgeStatusBridgeStatus_BridgeStatusempty;
     t11 := event = ev_outRed & _smSingleLaneBridgeBridgeStatusBridgeStatus.state = SmSingleLaneBridgeBridgeStatusBridgeStatus_BridgeStatusoneRed;
     t12 := event = ev_inRed & _smSingleLaneBridgeBridgeStatusBridgeStatus.state = SmSingleLaneBridgeBridgeStatusBridgeStatus_BridgeStatusoneRed;
     t13 := event = ev_outBlue & _smSingleLaneBridgeBridgeStatusBridgeStatus.state = SmSingleLaneBridgeBridgeStatusBridgeStatus_BridgeStatusoneBlue;
     t14 := event = ev_inBlue & _smSingleLaneBridgeBridgeStatusBridgeStatus.state = SmSingleLaneBridgeBridgeStatusBridgeStatus_BridgeStatusoneBlue;
     t15 := event = ev_outRed & _smSingleLaneBridgeBridgeStatusBridgeStatus.state = SmSingleLaneBridgeBridgeStatusBridgeStatus_BridgeStatustwoRed;
     t16 := event = ev_outBlue & _smSingleLaneBridgeBridgeStatusBridgeStatus.state = SmSingleLaneBridgeBridgeStatusBridgeStatus_BridgeStatustwoBlue;
     t17 := event = ev_entRedA & _smSingleLaneBridgeRedCoordEntRedCoordEnt.state = SmSingleLaneBridgeRedCoordEntRedCoordEnt_redCoordEntcoordEntRedA;
     t18 := event = ev_entRedB & _smSingleLaneBridgeRedCoordEntRedCoordEnt.state = SmSingleLaneBridgeRedCoordEntRedCoordEnt_redCoordEntcoordEntRedB;
     t19 := event = ev_exitRedA & _smSingleLaneBridgeRedCoordExitRedCoordExit.state = SmSingleLaneBridgeRedCoordExitRedCoordExit_redCoordExitcoordExitRedA;
     t20 := event = ev_exitRedB & _smSingleLaneBridgeRedCoordExitRedCoordExit.state = SmSingleLaneBridgeRedCoordExitRedCoordExit_redCoordExitcoordExitRedB;
     t21 := event = ev_entBlueA & _smSingleLaneBridgeBlueCoordEntBlueCoordEnt.state = SmSingleLaneBridgeBlueCoordEntBlueCoordEnt_blueCoordEntcoordEntBlueA;
     t22 := event = ev_entBlueB & _smSingleLaneBridgeBlueCoordEntBlueCoordEnt.state = SmSingleLaneBridgeBlueCoordEntBlueCoordEnt_blueCoordEntcoordEntBlueB;
     t23 := event = ev_exitBlueA & _smSingleLaneBridgeBlueCoordExitBlueCoordExit.state = SmSingleLaneBridgeBlueCoordExitBlueCoordExit_blueCoordExitcoordExitBlueA;
     t24 := event = ev_exitBlueB & _smSingleLaneBridgeBlueCoordExitBlueCoordExit.state = SmSingleLaneBridgeBlueCoordExitBlueCoordExit_blueCoordExitcoordExitBlueB;
     g1 := numRed < 2 & numBlue = 0;
     g2 := numBlue < 2 & numRed = 0;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := Sm_SingleLaneBridge;
     next( state ) := case
       t2 | t4 | t6 | t8 | t11 | t9 | t10 | t12 | t18 | t20 | t22 | t24 | t1 | t3 | t5 | t7 | t13 | t15 | t16 | t14 | t17 | t19 | t21 | t23 : Sm_SingleLaneBridge;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       sm_stable : { ev_inBlue , ev_exitBlueB , ev_entRedA , ev_exitBlueA , ev_enterBlueB , ev_entRedB , ev_enterRedA , ev_enterRedB , ev_enterBlueA , ev_outRed , ev_outBlue , ev_exitRedA , ev_inRed , ev_entBlueB , ev_exitRedB , ev_entBlueA };
       TRUE : ev_null;
     esac;

   -- This part defines logic for the assignment of values to state variable "numRed" of this NuSMV module --
   ASSIGN
     init( numRed ) := 0;

   -- This part defines logic for the assignment of values to state variable "numBlue" of this NuSMV module --
   ASSIGN
     init( numBlue ) := 0;

-- This defines a NuSMV module for SystemSmSingleLaneBridgeRedARedA --
MODULE SystemSmSingleLaneBridgeRedARedA ( _sm )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmSingleLaneBridgeRedARedA_RedAwaitRedA , SmSingleLaneBridgeRedARedA_RedAonRedA , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _sm.t2 : SmSingleLaneBridgeRedARedA_RedAwaitRedA;
       _sm.t1 : SmSingleLaneBridgeRedARedA_RedAonRedA;
       _sm.state = Sm_SingleLaneBridge & state = null : SmSingleLaneBridgeRedARedA_RedAwaitRedA;
       TRUE : state;
     esac;

-- This defines a NuSMV module for SystemSmSingleLaneBridgeRedBRedB --
MODULE SystemSmSingleLaneBridgeRedBRedB ( _sm )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmSingleLaneBridgeRedBRedB_RedBwaitRedB , SmSingleLaneBridgeRedBRedB_RedBonRedB , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _sm.t4 : SmSingleLaneBridgeRedBRedB_RedBwaitRedB;
       _sm.t3 : SmSingleLaneBridgeRedBRedB_RedBonRedB;
       _sm.state = Sm_SingleLaneBridge & state = null : SmSingleLaneBridgeRedBRedB_RedBwaitRedB;
       TRUE : state;
     esac;

-- This defines a NuSMV module for SystemSmSingleLaneBridgeBlueABlueA --
MODULE SystemSmSingleLaneBridgeBlueABlueA ( _sm )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmSingleLaneBridgeBlueABlueA_BlueAwaitBlueA , SmSingleLaneBridgeBlueABlueA_BlueAonBlueA , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _sm.t6 : SmSingleLaneBridgeBlueABlueA_BlueAwaitBlueA;
       _sm.t5 : SmSingleLaneBridgeBlueABlueA_BlueAonBlueA;
       _sm.state = Sm_SingleLaneBridge & state = null : SmSingleLaneBridgeBlueABlueA_BlueAwaitBlueA;
       TRUE : state;
     esac;

-- This defines a NuSMV module for SystemSmSingleLaneBridgeBlueBBlueB --
MODULE SystemSmSingleLaneBridgeBlueBBlueB ( _sm )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmSingleLaneBridgeBlueBBlueB_BlueBwaitBlueB , SmSingleLaneBridgeBlueBBlueB_BlueBonBlueB , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _sm.t8 : SmSingleLaneBridgeBlueBBlueB_BlueBwaitBlueB;
       _sm.t7 : SmSingleLaneBridgeBlueBBlueB_BlueBonBlueB;
       _sm.state = Sm_SingleLaneBridge & state = null : SmSingleLaneBridgeBlueBBlueB_BlueBwaitBlueB;
       TRUE : state;
     esac;

-- This defines a NuSMV module for SystemSmSingleLaneBridgeBridgeStatusBridgeStatus --
MODULE SystemSmSingleLaneBridgeBridgeStatusBridgeStatus ( _sm )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmSingleLaneBridgeBridgeStatusBridgeStatus_BridgeStatusempty , SmSingleLaneBridgeBridgeStatusBridgeStatus_BridgeStatusoneRed , SmSingleLaneBridgeBridgeStatusBridgeStatus_BridgeStatusoneBlue , SmSingleLaneBridgeBridgeStatusBridgeStatus_BridgeStatustwoRed , SmSingleLaneBridgeBridgeStatusBridgeStatus_BridgeStatustwoBlue , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _sm.t11 | _sm.t13 : SmSingleLaneBridgeBridgeStatusBridgeStatus_BridgeStatusempty;
       _sm.t9 | _sm.t15 : SmSingleLaneBridgeBridgeStatusBridgeStatus_BridgeStatusoneRed;
       _sm.t10 | _sm.t16 : SmSingleLaneBridgeBridgeStatusBridgeStatus_BridgeStatusoneBlue;
       _sm.t12 : SmSingleLaneBridgeBridgeStatusBridgeStatus_BridgeStatustwoRed;
       _sm.t14 : SmSingleLaneBridgeBridgeStatusBridgeStatus_BridgeStatustwoBlue;
       _sm.state = Sm_SingleLaneBridge & state = null : SmSingleLaneBridgeBridgeStatusBridgeStatus_BridgeStatusempty;
       TRUE : state;
     esac;

-- This defines a NuSMV module for SystemSmSingleLaneBridgeRedCoordEntRedCoordEnt --
MODULE SystemSmSingleLaneBridgeRedCoordEntRedCoordEnt ( _sm )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmSingleLaneBridgeRedCoordEntRedCoordEnt_redCoordEntcoordEntRedA , SmSingleLaneBridgeRedCoordEntRedCoordEnt_redCoordEntcoordEntRedB , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _sm.t18 : SmSingleLaneBridgeRedCoordEntRedCoordEnt_redCoordEntcoordEntRedA;
       _sm.t17 : SmSingleLaneBridgeRedCoordEntRedCoordEnt_redCoordEntcoordEntRedB;
       _sm.state = Sm_SingleLaneBridge & state = null : SmSingleLaneBridgeRedCoordEntRedCoordEnt_redCoordEntcoordEntRedA;
       TRUE : state;
     esac;

-- This defines a NuSMV module for SystemSmSingleLaneBridgeRedCoordExitRedCoordExit --
MODULE SystemSmSingleLaneBridgeRedCoordExitRedCoordExit ( _sm )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmSingleLaneBridgeRedCoordExitRedCoordExit_redCoordExitcoordExitRedA , SmSingleLaneBridgeRedCoordExitRedCoordExit_redCoordExitcoordExitRedB , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _sm.t20 : SmSingleLaneBridgeRedCoordExitRedCoordExit_redCoordExitcoordExitRedA;
       _sm.t19 : SmSingleLaneBridgeRedCoordExitRedCoordExit_redCoordExitcoordExitRedB;
       _sm.state = Sm_SingleLaneBridge & state = null : SmSingleLaneBridgeRedCoordExitRedCoordExit_redCoordExitcoordExitRedA;
       TRUE : state;
     esac;

-- This defines a NuSMV module for SystemSmSingleLaneBridgeBlueCoordEntBlueCoordEnt --
MODULE SystemSmSingleLaneBridgeBlueCoordEntBlueCoordEnt ( _sm )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmSingleLaneBridgeBlueCoordEntBlueCoordEnt_blueCoordEntcoordEntBlueA , SmSingleLaneBridgeBlueCoordEntBlueCoordEnt_blueCoordEntcoordEntBlueB , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _sm.t22 : SmSingleLaneBridgeBlueCoordEntBlueCoordEnt_blueCoordEntcoordEntBlueA;
       _sm.t21 : SmSingleLaneBridgeBlueCoordEntBlueCoordEnt_blueCoordEntcoordEntBlueB;
       _sm.state = Sm_SingleLaneBridge & state = null : SmSingleLaneBridgeBlueCoordEntBlueCoordEnt_blueCoordEntcoordEntBlueA;
       TRUE : state;
     esac;

-- This defines a NuSMV module for SystemSmSingleLaneBridgeBlueCoordExitBlueCoordExit --
MODULE SystemSmSingleLaneBridgeBlueCoordExitBlueCoordExit ( _sm )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmSingleLaneBridgeBlueCoordExitBlueCoordExit_blueCoordExitcoordExitBlueA , SmSingleLaneBridgeBlueCoordExitBlueCoordExit_blueCoordExitcoordExitBlueB , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _sm.t24 : SmSingleLaneBridgeBlueCoordExitBlueCoordExit_blueCoordExitcoordExitBlueA;
       _sm.t23 : SmSingleLaneBridgeBlueCoordExitBlueCoordExit_blueCoordExitcoordExitBlueB;
       _sm.state = Sm_SingleLaneBridge & state = null : SmSingleLaneBridgeBlueCoordExitBlueCoordExit_blueCoordExitcoordExitBlueA;
       TRUE : state;
     esac;

-- This defines a NuSMV module for SystemSm_Machine --
MODULE SystemSm_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     systemSm : SystemSm( systemSmSingleLaneBridgeRedARedA , systemSmSingleLaneBridgeRedBRedB , systemSmSingleLaneBridgeBlueABlueA , systemSmSingleLaneBridgeBlueBBlueB , systemSmSingleLaneBridgeBridgeStatusBridgeStatus , systemSmSingleLaneBridgeRedCoordEntRedCoordEnt , systemSmSingleLaneBridgeRedCoordExitRedCoordExit , systemSmSingleLaneBridgeBlueCoordEntBlueCoordEnt , systemSmSingleLaneBridgeBlueCoordExitBlueCoordExit );
     systemSmSingleLaneBridgeRedARedA : SystemSmSingleLaneBridgeRedARedA( systemSm );
     systemSmSingleLaneBridgeRedBRedB : SystemSmSingleLaneBridgeRedBRedB( systemSm );
     systemSmSingleLaneBridgeBlueABlueA : SystemSmSingleLaneBridgeBlueABlueA( systemSm );
     systemSmSingleLaneBridgeBlueBBlueB : SystemSmSingleLaneBridgeBlueBBlueB( systemSm );
     systemSmSingleLaneBridgeBridgeStatusBridgeStatus : SystemSmSingleLaneBridgeBridgeStatusBridgeStatus( systemSm );
     systemSmSingleLaneBridgeRedCoordEntRedCoordEnt : SystemSmSingleLaneBridgeRedCoordEntRedCoordEnt( systemSm );
     systemSmSingleLaneBridgeRedCoordExitRedCoordExit : SystemSmSingleLaneBridgeRedCoordExitRedCoordExit( systemSm );
     systemSmSingleLaneBridgeBlueCoordEntBlueCoordEnt : SystemSmSingleLaneBridgeBlueCoordEntBlueCoordEnt( systemSm );
     systemSmSingleLaneBridgeBlueCoordExitBlueCoordExit : SystemSmSingleLaneBridgeBlueCoordExitBlueCoordExit( systemSm );

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     systemSm_Machine : SystemSm_Machine;

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( systemSm_Machine.systemSm.state = Sm_SingleLaneBridge )
   CTLSPEC   EF( systemSm_Machine.systemSmSingleLaneBridgeRedARedA.state = SmSingleLaneBridgeRedARedA_RedAwaitRedA )
   CTLSPEC   EF( systemSm_Machine.systemSmSingleLaneBridgeRedARedA.state = SmSingleLaneBridgeRedARedA_RedAonRedA )
   CTLSPEC   EF( systemSm_Machine.systemSmSingleLaneBridgeRedBRedB.state = SmSingleLaneBridgeRedBRedB_RedBwaitRedB )
   CTLSPEC   EF( systemSm_Machine.systemSmSingleLaneBridgeRedBRedB.state = SmSingleLaneBridgeRedBRedB_RedBonRedB )
   CTLSPEC   EF( systemSm_Machine.systemSmSingleLaneBridgeBlueABlueA.state = SmSingleLaneBridgeBlueABlueA_BlueAwaitBlueA )
   CTLSPEC   EF( systemSm_Machine.systemSmSingleLaneBridgeBlueABlueA.state = SmSingleLaneBridgeBlueABlueA_BlueAonBlueA )
   CTLSPEC   EF( systemSm_Machine.systemSmSingleLaneBridgeBlueBBlueB.state = SmSingleLaneBridgeBlueBBlueB_BlueBwaitBlueB )
   CTLSPEC   EF( systemSm_Machine.systemSmSingleLaneBridgeBlueBBlueB.state = SmSingleLaneBridgeBlueBBlueB_BlueBonBlueB )
   CTLSPEC   EF( systemSm_Machine.systemSmSingleLaneBridgeBridgeStatusBridgeStatus.state = SmSingleLaneBridgeBridgeStatusBridgeStatus_BridgeStatusempty )
   CTLSPEC   EF( systemSm_Machine.systemSmSingleLaneBridgeBridgeStatusBridgeStatus.state = SmSingleLaneBridgeBridgeStatusBridgeStatus_BridgeStatusoneRed )
   CTLSPEC   EF( systemSm_Machine.systemSmSingleLaneBridgeBridgeStatusBridgeStatus.state = SmSingleLaneBridgeBridgeStatusBridgeStatus_BridgeStatusoneBlue )
   CTLSPEC   EF( systemSm_Machine.systemSmSingleLaneBridgeBridgeStatusBridgeStatus.state = SmSingleLaneBridgeBridgeStatusBridgeStatus_BridgeStatustwoRed )
   CTLSPEC   EF( systemSm_Machine.systemSmSingleLaneBridgeBridgeStatusBridgeStatus.state = SmSingleLaneBridgeBridgeStatusBridgeStatus_BridgeStatustwoBlue )
   CTLSPEC   EF( systemSm_Machine.systemSmSingleLaneBridgeRedCoordEntRedCoordEnt.state = SmSingleLaneBridgeRedCoordEntRedCoordEnt_redCoordEntcoordEntRedA )
   CTLSPEC   EF( systemSm_Machine.systemSmSingleLaneBridgeRedCoordEntRedCoordEnt.state = SmSingleLaneBridgeRedCoordEntRedCoordEnt_redCoordEntcoordEntRedB )
   CTLSPEC   EF( systemSm_Machine.systemSmSingleLaneBridgeRedCoordExitRedCoordExit.state = SmSingleLaneBridgeRedCoordExitRedCoordExit_redCoordExitcoordExitRedA )
   CTLSPEC   EF( systemSm_Machine.systemSmSingleLaneBridgeRedCoordExitRedCoordExit.state = SmSingleLaneBridgeRedCoordExitRedCoordExit_redCoordExitcoordExitRedB )
   CTLSPEC   EF( systemSm_Machine.systemSmSingleLaneBridgeBlueCoordEntBlueCoordEnt.state = SmSingleLaneBridgeBlueCoordEntBlueCoordEnt_blueCoordEntcoordEntBlueA )
   CTLSPEC   EF( systemSm_Machine.systemSmSingleLaneBridgeBlueCoordEntBlueCoordEnt.state = SmSingleLaneBridgeBlueCoordEntBlueCoordEnt_blueCoordEntcoordEntBlueB )
   CTLSPEC   EF( systemSm_Machine.systemSmSingleLaneBridgeBlueCoordExitBlueCoordExit.state = SmSingleLaneBridgeBlueCoordExitBlueCoordExit_blueCoordExitcoordExitBlueA )
   CTLSPEC   EF( systemSm_Machine.systemSmSingleLaneBridgeBlueCoordExitBlueCoordExit.state = SmSingleLaneBridgeBlueCoordExitBlueCoordExit_blueCoordExitcoordExitBlueB )

18
9
elevator_state_machine :  cruise.umple.compiler.State@6757ed9e[name:Idle,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[6,4]
  stateMachine = 77d5395a : 0
 cruise.umple.compiler.State@7b0eb7e[name:DoorClosingMovingUp,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[7,19]
  stateMachine = 77d5395a : 0
 cruise.umple.compiler.State@2381a837[name:DoorClosingMovingDown,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[8,21]
  stateMachine = 77d5395a : 0
 cruise.umple.compiler.State@7be29ac4[name:Moving,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[12,34]
  stateMachine = 77d5395a : 0
 cruise.umple.compiler.State@2523730b[name:Stopping,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[22,57]
  stateMachine = 77d5395a : 0
 cruise.umple.compiler.State@25c887ca[name:DoorOpening,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[25,35]
  stateMachine = 77d5395a : 0
 cruise.umple.compiler.State@ba65354[name:AtFloor,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[29,23]
  stateMachine = 77d5395a : 0
 cruise.umple.compiler.State@647dcc5e[name:DoorClosing,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[32,39]
  stateMachine = 77d5395a : 0
 cruise.umple.compiler.State@5af850f1[name:CheckingNextDestination,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[36,22]
  stateMachine = 77d5395a : 0

-- This file is generated from FlatElevator.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for ElevatorElevator_state_machine --
MODULE ElevatorElevator_state_machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Elevator_state_machine_Idle , Elevator_state_machine_DoorClosingMovingUp , Elevator_state_machine_DoorClosingMovingDown , Elevator_state_machine_Moving , Elevator_state_machine_Stopping , Elevator_state_machine_DoorOpening , Elevator_state_machine_AtFloor , Elevator_state_machine_DoorClosing , Elevator_state_machine_CheckingNextDestination };
     event : { ev_stopped , ev_obstruction , ev_upRequest , ev_doorClosed , ev_started , ev_approachedFloor , ev_downRequest , ev_approachingFloor , ev_doorOpened , ev_doorOpeningRequest , ev_timeoutAtFloorToDoorClosing , ev_doorClosingRequest , ev_noRequest , ev_null };
     timer : integer;
     floorRequested : boolean;
     obstruction : boolean;

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     elevator_state_machine_stable :=  !( event = ev_obstruction | event = ev_doorClosed | event = ev_approachedFloor | event = ev_approachingFloor | event = ev_doorOpeningRequest | event = ev_doorClosingRequest | event = ev_stopped | event = ev_upRequest | event = ev_started | event = ev_downRequest | event = ev_doorOpened | event = ev_timeoutAtFloorToDoorClosing | event = ev_noRequest );
     t1 := event = ev_upRequest & state = Elevator_state_machine_Idle;
     t2 := event = ev_downRequest & state = Elevator_state_machine_Idle;
     t3 := event = ev_doorClosed & state = Elevator_state_machine_DoorClosingMovingUp;
     t4 := event = ev_started & state = Elevator_state_machine_DoorClosingMovingUp;
     t5 := event = ev_doorClosed & state = Elevator_state_machine_DoorClosingMovingDown;
     t6 := event = ev_started & state = Elevator_state_machine_DoorClosingMovingDown;
     t7 := event = ev_approachingFloor & state = Elevator_state_machine_Moving & g1;
     t8 := event = ev_approachedFloor & state = Elevator_state_machine_Moving & g2;
     t9 := event = ev_stopped & state = Elevator_state_machine_Stopping;
     t10 := event = ev_doorOpened & state = Elevator_state_machine_DoorOpening;
     t11 := event = ev_timeoutAtFloorToDoorClosing & state = Elevator_state_machine_AtFloor & g3;
     t12 := event = ev_doorClosingRequest & state = Elevator_state_machine_AtFloor;
     t13 := event = ev_obstruction & state = Elevator_state_machine_DoorClosing;
     t14 := event = ev_doorOpeningRequest & state = Elevator_state_machine_DoorClosing;
     t15 := event = ev_doorClosed & state = Elevator_state_machine_DoorClosing;
     t16 := event = ev_upRequest & state = Elevator_state_machine_CheckingNextDestination;
     t17 := event = ev_downRequest & state = Elevator_state_machine_CheckingNextDestination;
     t18 := event = ev_noRequest & state = Elevator_state_machine_CheckingNextDestination;
     g1 := !floorRequested;
     g2 := floorRequested;
     g3 := !obstruction;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := Elevator_state_machine_Idle;
     next( state ) := case
       t18 : Elevator_state_machine_Idle;
       t1 | t16 : Elevator_state_machine_DoorClosingMovingUp;
       t2 | t17 : Elevator_state_machine_DoorClosingMovingDown;
       t4 | t6 | t3 | t5 | t7 : Elevator_state_machine_Moving;
       t8 : Elevator_state_machine_Stopping;
       t13 | t9 | t14 : Elevator_state_machine_DoorOpening;
       t10 : Elevator_state_machine_AtFloor;
       t11 | t12 : Elevator_state_machine_DoorClosing;
       t15 : Elevator_state_machine_CheckingNextDestination;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       elevator_state_machine_stable : { ev_stopped , ev_obstruction , ev_upRequest , ev_doorClosed , ev_started , ev_approachedFloor , ev_downRequest , ev_approachingFloor , ev_doorOpened , ev_doorOpeningRequest , ev_timeoutAtFloorToDoorClosing , ev_doorClosingRequest , ev_noRequest };
       TRUE : ev_null;
     esac;

   -- This part defines logic for the assignment of values to state variable "timer" of this NuSMV module --
   ASSIGN
     init( timer ) := 100;

   -- This part defines logic for the assignment of values to state variable "floorRequested" of this NuSMV module --
   ASSIGN
     init( floorRequested ) := FALSE;

   -- This part defines logic for the assignment of values to state variable "obstruction" of this NuSMV module --
   ASSIGN
     init( obstruction ) := FALSE;

-- This defines a NuSMV module for ElevatorElevator_state_machine_Machine --
MODULE ElevatorElevator_state_machine_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     elevatorElevator_state_machine : ElevatorElevator_state_machine;

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     elevatorElevator_state_machine_Machine : ElevatorElevator_state_machine_Machine;

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( elevatorElevator_state_machine_Machine.elevatorElevator_state_machine.state = Elevator_state_machine_Idle )
   CTLSPEC   EF( elevatorElevator_state_machine_Machine.elevatorElevator_state_machine.state = Elevator_state_machine_DoorClosingMovingUp )
   CTLSPEC   EF( elevatorElevator_state_machine_Machine.elevatorElevator_state_machine.state = Elevator_state_machine_DoorClosingMovingDown )
   CTLSPEC   EF( elevatorElevator_state_machine_Machine.elevatorElevator_state_machine.state = Elevator_state_machine_Moving )
   CTLSPEC   EF( elevatorElevator_state_machine_Machine.elevatorElevator_state_machine.state = Elevator_state_machine_Stopping )
   CTLSPEC   EF( elevatorElevator_state_machine_Machine.elevatorElevator_state_machine.state = Elevator_state_machine_DoorOpening )
   CTLSPEC   EF( elevatorElevator_state_machine_Machine.elevatorElevator_state_machine.state = Elevator_state_machine_AtFloor )
   CTLSPEC   EF( elevatorElevator_state_machine_Machine.elevatorElevator_state_machine.state = Elevator_state_machine_DoorClosing )
   CTLSPEC   EF( elevatorElevator_state_machine_Machine.elevatorElevator_state_machine.state = Elevator_state_machine_CheckingNextDestination )

3
3
sm :  cruise.umple.compiler.State@61774805[name:s1,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[5,4]
  stateMachine = 57e351a : 0
 cruise.umple.compiler.State@1b2c513e[name:s2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[6,20]
  stateMachine = 57e351a : 0
 cruise.umple.compiler.State@4098ef14[name:s3,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[7,20]
  stateMachine = 57e351a : 0

-- This file is generated from SingleEventMachine.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for XSm --
MODULE XSm

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Sm_s1 , Sm_s2 , Sm_s3 };
     event : { ev_e , ev_null };
     a : integer;
     b : integer;

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     sm_stable :=  !( event = ev_e );
     t1 := event = ev_e & state = Sm_s1 & g1;
     t2 := event = ev_e & state = Sm_s1 & g2;
     t3 := event = ev_e & state = Sm_s2 & g2;
     g1 := a <= b;
     g2 := a = b;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := Sm_s1;
     next( state ) := case
       t3 : Sm_s1;
       t1 : Sm_s2;
       t2 : Sm_s3;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       sm_stable : { ev_e };
       TRUE : ev_null;
     esac;

   -- This part defines logic for the assignment of values to state variable "a" of this NuSMV module --
   ASSIGN
     init( a ) := 4;

   -- This part defines logic for the assignment of values to state variable "b" of this NuSMV module --
   ASSIGN
     init( b ) := 5;

-- This defines a NuSMV module for XSm_Machine --
MODULE XSm_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     xSm : XSm;

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     xSm_Machine : XSm_Machine;

   -- The following properties are specified to certify that this model is free of non-determinism. 
   INVARSPEC   ( xSm_Machine.xSm.t1 & xSm_Machine.xSm.t2 -> next( xSm_Machine.xSm.state = Sm_s2 & xSm_Machine.xSm.state = Sm_s3 ) )

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( xSm_Machine.xSm.state = Sm_s1 )
   CTLSPEC   EF( xSm_Machine.xSm.state = Sm_s2 )
   CTLSPEC   EF( xSm_Machine.xSm.state = Sm_s3 )

6
8
state :  cruise.umple.compiler.State@2cf7ada5[name:state1,isConcurrent:true,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[5,4]
  stateMachine = 14c6d1b7 : 2
 cruise.umple.compiler.State@c2cc406[name:state2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[7,14]
  stateMachine = 14c6d1b7 : 0

state11 :  cruise.umple.compiler.State@77c77a64[name:state11state111,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[8,8]
  stateMachine = 664c6bbc : 0
 cruise.umple.compiler.State@442545ab[name:state11state112,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[9,16]
  stateMachine = 664c6bbc : 0

state12 :  cruise.umple.compiler.State@2ec3b5dd[name:state12state121,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[18,8]
  stateMachine = 629bee3b : 0
 cruise.umple.compiler.State@678f685f[name:state12state122,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[19,16]
  stateMachine = 629bee3b : 0

-- This file is generated from AbstractConcurrentSystem.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for AState --
MODULE AState ( _stateState1State11State11 , _stateState1State12State12 )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { State_state1 , State_state2 };
     event : { ev_e5 , ev_e1 , ev_e2 , ev_e3 , ev_e4 , ev_null };

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     state_stable :=  !( event = ev_e1 | event = ev_e3 | event = ev_e5 | event = ev_e2 | event = ev_e4 );
     t1 := event = ev_e5 & _stateState1State11State11.state != null;
     t2 := event = ev_e1 & _stateState1State11State11.state = StateState1State11State11_state11state111;
     t3 := event = ev_e4 & _stateState1State11State11.state = StateState1State11State11_state11state112;
     t4 := event = ev_e5 & _stateState1State12State12.state != null;
     t5 := event = ev_e2 & _stateState1State12State12.state = StateState1State12State12_state12state121;
     t6 := event = ev_e3 & _stateState1State12State12.state = StateState1State12State12_state12state122;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := State_state1;
     next( state ) := case
       t3 | t6 | t2 | t5 : State_state1;
       t1 | t4 : State_state2;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       state_stable : { ev_e5 , ev_e1 , ev_e2 , ev_e3 , ev_e4 };
       TRUE : ev_null;
     esac;

-- This defines a NuSMV module for AStateState1State11State11 --
MODULE AStateState1State11State11 ( _state )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { StateState1State11State11_state11state111 , StateState1State11State11_state11state112 , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _state.t1 | _state.t4 : null;
       _state.t3 : StateState1State11State11_state11state111;
       _state.t2 : StateState1State11State11_state11state112;
       _state.state = State_state1 & state = null : StateState1State11State11_state11state111;
       TRUE : state;
     esac;

-- This defines a NuSMV module for AStateState1State12State12 --
MODULE AStateState1State12State12 ( _state )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { StateState1State12State12_state12state121 , StateState1State12State12_state12state122 , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _state.t1 | _state.t4 : null;
       _state.t6 : StateState1State12State12_state12state121;
       _state.t5 : StateState1State12State12_state12state122;
       _state.state = State_state1 & state = null : StateState1State12State12_state12state121;
       TRUE : state;
     esac;

-- This defines a NuSMV module for AState_Machine --
MODULE AState_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     aState : AState( aStateState1State11State11 , aStateState1State12State12 );
     aStateState1State11State11 : AStateState1State11State11( aState );
     aStateState1State12State12 : AStateState1State12State12( aState );

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     aState_Machine : AState_Machine;

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( aState_Machine.aState.state = State_state1 )
   CTLSPEC   EF( aState_Machine.aState.state = State_state2 )
   CTLSPEC   EF( aState_Machine.aStateState1State11State11.state = StateState1State11State11_state11state111 )
   CTLSPEC   EF( aState_Machine.aStateState1State11State11.state = StateState1State11State11_state11state112 )
   CTLSPEC   EF( aState_Machine.aStateState1State12State12.state = StateState1State12State12_state12state121 )
   CTLSPEC   EF( aState_Machine.aStateState1State12State12.state = StateState1State12State12_state12state122 )

3
3
s2 :  cruise.umple.compiler.State@2799f9a[name:s2a,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[3,4]
  stateMachine = 5da13494 : 0
 cruise.umple.compiler.State@67d90687[name:s2b,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[5,12]
  stateMachine = 5da13494 : 0
 cruise.umple.compiler.State@5d260659[name:s1,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[4,12]
  stateMachine = 5da13494 : 0

-- This file is generated from AbstractMachine.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for MeS2 --
MODULE MeS2

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { S2_s2a , S2_s2b , S2_s1 };
     event : { ev_e1 , ev_e3 , ev_null };

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     s2_stable :=  !( event = ev_e1 | event = ev_e3 );
     t1 := event = ev_e1 & state = S2_s2a;
     t2 := event = ev_e3 & state = S2_s2a;
     t3 := event = ev_e3 & state = S2_s2b;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := S2_s2a;
     next( state ) := case
       t3 : S2_s2a;
       t2 : S2_s2b;
       t1 : S2_s1;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       s2_stable : { ev_e1 , ev_e3 };
       TRUE : ev_null;
     esac;

-- This defines a NuSMV module for MeS2_Machine --
MODULE MeS2_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     meS2 : MeS2;

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     meS2_Machine : MeS2_Machine;

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( meS2_Machine.meS2.state = S2_s2a )
   CTLSPEC   EF( meS2_Machine.meS2.state = S2_s2b )
   CTLSPEC   EF( meS2_Machine.meS2.state = S2_s1 )

52
19
sm :  cruise.umple.compiler.State@7b5f886d[name:time,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[10,4]
  stateMachine = 6e0d7be4 : 0
 cruise.umple.compiler.State@9504a58[name:date,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[11,12]
  stateMachine = 6e0d7be4 : 0
 cruise.umple.compiler.State@c360f40[name:paused,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[13,12]
  stateMachine = 6e0d7be4 : 0
 cruise.umple.compiler.State@badf24b[name:running,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[22,12]
  stateMachine = 6e0d7be4 : 0
 cruise.umple.compiler.State@efa6a81[name:lapRunning,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[28,12]
  stateMachine = 6e0d7be4 : 0
 cruise.umple.compiler.State@573e38c[name:lapPaused,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[32,12]
  stateMachine = 6e0d7be4 : 0
 cruise.umple.compiler.State@3983b06d[name:bothOff,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[12,12]
  stateMachine = 6e0d7be4 : 0
 cruise.umple.compiler.State@5d5822bc[name:chimeOn,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[46,12]
  stateMachine = 6e0d7be4 : 0
 cruise.umple.compiler.State@2bf5f4[name:bothOn,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[50,12]
  stateMachine = 6e0d7be4 : 0
 cruise.umple.compiler.State@1a5e19fe[name:alarmOn,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[54,12]
  stateMachine = 6e0d7be4 : 0
 cruise.umple.compiler.State@3e7ac200[name:alarmTime,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[14,23]
  stateMachine = 6e0d7be4 : 0
 cruise.umple.compiler.State@222b4ab1[name:alarmHour,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[64,29]
  stateMachine = 6e0d7be4 : 0
 cruise.umple.compiler.State@7df09f55[name:alarmMinute,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[63,12]
  stateMachine = 6e0d7be4 : 0
 cruise.umple.compiler.State@178be8fc[name:second,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[65,12]
  stateMachine = 6e0d7be4 : 0
 cruise.umple.compiler.State@7f0952cf[name:minute,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[80,11]
  stateMachine = 6e0d7be4 : 0
 cruise.umple.compiler.State@70fe15d[name:hour,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[85,11]
  stateMachine = 6e0d7be4 : 0
 cruise.umple.compiler.State@7efcdcde[name:month,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[90,11]
  stateMachine = 6e0d7be4 : 0
 cruise.umple.compiler.State@36f807f5[name:day,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[95,11]
  stateMachine = 6e0d7be4 : 0
 cruise.umple.compiler.State@352b4cf[name:year,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[100,11]
  stateMachine = 6e0d7be4 : 0

-- This file is generated from DigitalWatchFlat.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for DigitalWatchSm --
MODULE DigitalWatchSm

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Sm_time , Sm_date , Sm_paused , Sm_running , Sm_lapRunning , Sm_lapPaused , Sm_bothOff , Sm_chimeOn , Sm_bothOn , Sm_alarmOn , Sm_alarmTime , Sm_alarmHour , Sm_alarmMinute , Sm_second , Sm_minute , Sm_hour , Sm_month , Sm_day , Sm_year };
     event : { ev_s3 , ev_s3during2Secs , ev_notS2 , ev_notS1 , ev_s1 , ev_s2 , ev_null };
     day : integer;
     month : integer;
     year : integer;
     hour : integer;
     minute : integer;
     second : integer;
     alarmHour : integer;
     alarmMinute : integer;
     alarmSecond : integer;
     timer : integer;

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     sm_stable :=  !( event = ev_s3 | event = ev_notS2 | event = ev_s1 | event = ev_s3during2Secs | event = ev_notS1 | event = ev_s2 );
     t1 := event = ev_s1 & state = Sm_time;
     t2 := event = ev_s2 & state = Sm_time;
     t3 := event = ev_s3 & state = Sm_time;
     t4 := event = ev_s3during2Secs & state = Sm_time;
     t5 := event = ev_notS1 & state = Sm_date;
     t6 := event = ev_s2 & state = Sm_paused;
     t7 := event = ev_s3 & state = Sm_paused;
     t8 := event = ev_s1 & state = Sm_paused;
     t9 := event = ev_s1 & state = Sm_running;
     t10 := event = ev_s3 & state = Sm_running;
     t11 := event = ev_s2 & state = Sm_running;
     t12 := event = ev_s2 & state = Sm_lapRunning;
     t13 := event = ev_s3 & state = Sm_lapRunning;
     t14 := event = ev_s1 & state = Sm_lapRunning;
     t15 := event = ev_s1 & state = Sm_lapPaused;
     t16 := event = ev_s2 & state = Sm_lapPaused;
     t17 := event = ev_s3 & state = Sm_lapPaused;
     t18 := event = ev_notS2 & state = Sm_bothOff;
     t19 := event = ev_s1 & state = Sm_bothOff;
     t20 := event = ev_notS2 & state = Sm_chimeOn;
     t21 := event = ev_s1 & state = Sm_chimeOn;
     t22 := event = ev_notS2 & state = Sm_bothOn;
     t23 := event = ev_s1 & state = Sm_bothOn;
     t24 := event = ev_s1 & state = Sm_alarmOn;
     t25 := event = ev_notS2 & state = Sm_alarmOn;
     t26 := event = ev_s1 & state = Sm_alarmTime;
     t27 := event = ev_s2 & state = Sm_alarmTime;
     t28 := event = ev_s3 & state = Sm_alarmTime;
     t29 := event = ev_s2 & state = Sm_alarmHour;
     t30 := event = ev_s1 & state = Sm_alarmHour;
     t31 := event = ev_s3 & state = Sm_alarmHour;
     t32 := event = ev_s1 & state = Sm_alarmMinute;
     t33 := event = ev_s2 & state = Sm_alarmMinute;
     t34 := event = ev_s3 & state = Sm_alarmMinute;
     t35 := event = ev_s2 & state = Sm_second;
     t36 := event = ev_s3 & state = Sm_second;
     t37 := event = ev_s1 & state = Sm_second;
     t38 := event = ev_s2 & state = Sm_minute;
     t39 := event = ev_s3 & state = Sm_minute;
     t40 := event = ev_s1 & state = Sm_minute;
     t41 := event = ev_s2 & state = Sm_hour;
     t42 := event = ev_s3 & state = Sm_hour;
     t43 := event = ev_s1 & state = Sm_hour;
     t44 := event = ev_s2 & state = Sm_month;
     t45 := event = ev_s3 & state = Sm_month;
     t46 := event = ev_s1 & state = Sm_month;
     t47 := event = ev_s2 & state = Sm_day;
     t48 := event = ev_s3 & state = Sm_day;
     t49 := event = ev_s1 & state = Sm_day;
     t50 := event = ev_s1 & state = Sm_year;
     t51 := event = ev_s2 & state = Sm_year;
     t52 := event = ev_s3 & state = Sm_year;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := Sm_time;
     next( state ) := case
       t7 | t13 | t18 | t22 | t36 | t42 | t48 | t5 | t10 | t17 | t20 | t25 | t39 | t45 | t52 : Sm_time;
       t1 : Sm_date;
       t3 | t9 | t6 | t16 : Sm_paused;
       t8 | t12 : Sm_running;
       t11 | t15 : Sm_lapRunning;
       t14 : Sm_lapPaused;
       t2 | t24 : Sm_bothOff;
       t19 : Sm_chimeOn;
       t21 : Sm_bothOn;
       t23 : Sm_alarmOn;
       t4 : Sm_alarmTime;
       t29 | t27 | t32 : Sm_alarmHour;
       t30 | t26 | t33 : Sm_alarmMinute;
       t31 | t35 | t28 | t34 | t50 : Sm_second;
       t37 | t38 : Sm_minute;
       t40 | t41 : Sm_hour;
       t43 | t44 : Sm_month;
       t46 | t47 : Sm_day;
       t49 | t51 : Sm_year;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       sm_stable : { ev_s3 , ev_s3during2Secs , ev_notS2 , ev_notS1 , ev_s1 , ev_s2 };
       TRUE : ev_null;
     esac;

   -- This part defines logic for the assignment of values to state variable "day" of this NuSMV module --
   ASSIGN
     init( day ) := 0;

   -- This part defines logic for the assignment of values to state variable "month" of this NuSMV module --
   ASSIGN
     init( month ) := 0;

   -- This part defines logic for the assignment of values to state variable "year" of this NuSMV module --
   ASSIGN
     init( year ) := 2014;

   -- This part defines logic for the assignment of values to state variable "hour" of this NuSMV module --
   ASSIGN
     init( hour ) := 0;

   -- This part defines logic for the assignment of values to state variable "minute" of this NuSMV module --
   ASSIGN
     init( minute ) := 0;

   -- This part defines logic for the assignment of values to state variable "second" of this NuSMV module --
   ASSIGN
     init( second ) := 0;

   -- This part defines logic for the assignment of values to state variable "alarmHour" of this NuSMV module --
   ASSIGN
     init( alarmHour ) := 0;

   -- This part defines logic for the assignment of values to state variable "alarmMinute" of this NuSMV module --
   ASSIGN
     init( alarmMinute ) := 0;

   -- This part defines logic for the assignment of values to state variable "alarmSecond" of this NuSMV module --
   ASSIGN
     init( alarmSecond ) := 0;

   -- This part defines logic for the assignment of values to state variable "timer" of this NuSMV module --
   ASSIGN
     init( timer ) := 0;

-- This defines a NuSMV module for DigitalWatchSm_Machine --
MODULE DigitalWatchSm_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     digitalWatchSm : DigitalWatchSm;

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     digitalWatchSm_Machine : DigitalWatchSm_Machine;

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_time )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_date )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_paused )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_running )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_lapRunning )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_lapPaused )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_bothOff )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_chimeOn )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_bothOn )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_alarmOn )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_alarmTime )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_alarmHour )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_alarmMinute )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_second )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_minute )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_hour )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_month )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_day )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_year )

8
9
state :  cruise.umple.compiler.State@376a34fb[name:state1,isConcurrent:true,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[5,4]
  stateMachine = efbc6a1 : 2
 cruise.umple.compiler.State@19544898[name:state2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[7,14]
  stateMachine = efbc6a1 : 0

state11 :  cruise.umple.compiler.State@5d63d553[name:state11state111,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[8,8]
  stateMachine = 3b48ffe8 : 0
 cruise.umple.compiler.State@6b56e8ee[name:state11state112,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[9,16]
  stateMachine = 3b48ffe8 : 0

state12 :  cruise.umple.compiler.State@50fd7d94[name:state12state121,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[17,8]
  stateMachine = 1377e395 : 0
 cruise.umple.compiler.State@6f3cf9ac[name:state122state1221,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[19,16]
  stateMachine = 1377e395 : 0

-- This file is generated from nestedConcurrentMachine.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for AState --
MODULE AState ( _stateState1State11State11 , _stateState1State12State12 )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { State_state1 , State_state2 };
     event : { ev_e5 , ev_e1 , ev_e2 , ev_e3 , ev_e4 , ev_null };

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     state_stable :=  !( event = ev_e1 | event = ev_e3 | event = ev_e5 | event = ev_e2 | event = ev_e4 );
     t1 := event = ev_e5 & _stateState1State11State11.state != null;
     t2 := event = ev_e1 & _stateState1State11State11.state = StateState1State11State11_state11state111;
     t3 := event = ev_e4 & _stateState1State11State11.state = StateState1State11State11_state11state112;
     t4 := event = ev_e5 & _stateState1State12State12.state != null;
     t5 := event = ev_e2 & _stateState1State12State12.state = StateState1State12State12_state12state121;
     t6 := event = ev_e4 & _stateState1State12State12.state = StateState1State12State12_state12state121;
     t7 := event = ev_e3 & _stateState1State12State12.state = StateState1State12State12_state122state1221;
     t8 := event = ev_e4 & _stateState1State12State12.state = StateState1State12State12_state122state1221;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := State_state1;
     next( state ) := case
       t3 | t7 | t5 | t2 | t8 | t6 : State_state1;
       t1 | t4 : State_state2;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       state_stable : { ev_e5 , ev_e1 , ev_e2 , ev_e3 , ev_e4 };
       TRUE : ev_null;
     esac;

-- This defines a NuSMV module for AStateState1State11State11 --
MODULE AStateState1State11State11 ( _state )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { StateState1State11State11_state11state111 , StateState1State11State11_state11state112 , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _state.t1 | _state.t4 : null;
       _state.t3 : StateState1State11State11_state11state111;
       _state.t2 : StateState1State11State11_state11state112;
       _state.state = State_state1 & state = null : StateState1State11State11_state11state111;
       TRUE : state;
     esac;

-- This defines a NuSMV module for AStateState1State12State12 --
MODULE AStateState1State12State12 ( _state )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { StateState1State12State12_state12state121 , StateState1State12State12_state122state1221 , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _state.t1 | _state.t4 : null;
       _state.t7 | _state.t8 : StateState1State12State12_state12state121;
       _state.t5 | _state.t6 : StateState1State12State12_state122state1221;
       _state.state = State_state1 & state = null : StateState1State12State12_state12state121;
       TRUE : state;
     esac;

-- This defines a NuSMV module for AState_Machine --
MODULE AState_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     aState : AState( aStateState1State11State11 , aStateState1State12State12 );
     aStateState1State11State11 : AStateState1State11State11( aState );
     aStateState1State12State12 : AStateState1State12State12( aState );

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     aState_Machine : AState_Machine;

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( aState_Machine.aState.state = State_state1 )
   CTLSPEC   EF( aState_Machine.aState.state = State_state2 )
   CTLSPEC   EF( aState_Machine.aStateState1State11State11.state = StateState1State11State11_state11state111 )
   CTLSPEC   EF( aState_Machine.aStateState1State11State11.state = StateState1State11State11_state11state112 )
   CTLSPEC   EF( aState_Machine.aStateState1State12State12.state = StateState1State12State12_state12state121 )
   CTLSPEC   EF( aState_Machine.aStateState1State12State12.state = StateState1State12State12_state122state1221 )

5
5
sm :  cruise.umple.compiler.State@5621119d[name:s1,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[3,4]
  stateMachine = 556d8c78 : 0
 cruise.umple.compiler.State@3c79071e[name:s21s211,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[8,8]
  stateMachine = 556d8c78 : 0
 cruise.umple.compiler.State@5e147821[name:s2s22,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[7,14]
  stateMachine = 556d8c78 : 0

-- This file is generated from MultiLevelStateMachineExampleCase2.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for ASm --
MODULE ASm

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Sm_s1 , Sm_s21s211 , Sm_s2s22 };
     event : { ev_e1 , ev_e2 , ev_e3 , ev_null };

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     sm_stable :=  !( event = ev_e2 | event = ev_e1 | event = ev_e3 );
     t1 := event = ev_e1 & state = Sm_s1;
     t2 := event = ev_e2 & state = Sm_s1;
     t3 := event = ev_e2 & state = Sm_s21s211;
     t4 := event = ev_e3 & state = Sm_s21s211;
     t5 := event = ev_e1 & state = Sm_s21s211;
     t6 := event = ev_e2 & state = Sm_s2s22;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := Sm_s1;
     next( state ) := case
       t1 | t6 | t3 | t5 : Sm_s1;
       t2 : Sm_s21s211;
       t4 : Sm_s2s22;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       sm_stable : { ev_e1 , ev_e2 , ev_e3 };
       TRUE : ev_null;
     esac;

-- This defines a NuSMV module for ASm_Machine --
MODULE ASm_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     aSm : ASm;

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     aSm_Machine : ASm_Machine;

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( aSm_Machine.aSm.state = Sm_s1 )
   CTLSPEC   EF( aSm_Machine.aSm.state = Sm_s21s211 )
   CTLSPEC   EF( aSm_Machine.aSm.state = Sm_s2s22 )

23
11
status :  cruise.umple.compiler.State@57404a8d[name:Planned,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[5,4]
  stateMachine = 337f6716 : 0
 cruise.umple.compiler.State@4734a551[name:InProgress,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[6,27]
  stateMachine = 337f6716 : 0
 cruise.umple.compiler.State@780ccdc9[name:EvaluationByInstitution,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[11,36]
  stateMachine = 337f6716 : 0
 cruise.umple.compiler.State@2d4df467[name:VerifiedByInstitution,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[17,18]
  stateMachine = 337f6716 : 0
 cruise.umple.compiler.State@65c2610f[name:SubmittedByInstitution,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[23,16]
  stateMachine = 337f6716 : 0
 cruise.umple.compiler.State@73e4ecb[name:UnderAdministrativeReview,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[28,25]
  stateMachine = 337f6716 : 0
 cruise.umple.compiler.State@1942a960[name:UnderExpertReview,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[34,31]
  stateMachine = 337f6716 : 0
 cruise.umple.compiler.State@5bee88e3[name:AwaitingFinalDecision,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[35,45]
  stateMachine = 337f6716 : 0
 cruise.umple.compiler.State@2dd25088[name:Accepted,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[46,21]
  stateMachine = 337f6716 : 0
 cruise.umple.compiler.State@586f1bef[name:Rejected,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[48,16]
  stateMachine = 337f6716 : 0
 cruise.umple.compiler.State@546ab02b[name:Withdrawn,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[27,18]
  stateMachine = 337f6716 : 0

-- This file is generated from GrantApplication.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for GrantApplicationStatus --
MODULE GrantApplicationStatus

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Status_Planned , Status_InProgress , Status_EvaluationByInstitution , Status_VerifiedByInstitution , Status_SubmittedByInstitution , Status_UnderAdministrativeReview , Status_UnderExpertReview , Status_AwaitingFinalDecision , Status_Accepted , Status_Rejected , Status_Withdrawn };
     event : { ev_reOpen , ev_returnToInstitition , ev_expertReviewsReturned , ev_submit , ev_verified , ev_tryAgain , ev_acceptForReview , ev_returnToResearcher , ev_acceptForExpertReview , ev_bypassExpertReviewDueToMinorChanges , ev_editByResearcher , ev_createApplication , ev_minorRevisionsNeeded , ev_reject , ev_researcherDeclaresComplete , ev_editByInstitution , ev_submissionCheck , ev_finalAccept , ev_withdraw , ev_null };
     adminCheckOk : boolean;

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     status_stable :=  !( event = ev_returnToInstitition | event = ev_submit | event = ev_tryAgain | event = ev_returnToResearcher | event = ev_bypassExpertReviewDueToMinorChanges | event = ev_createApplication | event = ev_reject | event = ev_editByInstitution | event = ev_finalAccept | event = ev_reOpen | event = ev_expertReviewsReturned | event = ev_verified | event = ev_acceptForReview | event = ev_acceptForExpertReview | event = ev_editByResearcher | event = ev_minorRevisionsNeeded | event = ev_researcherDeclaresComplete | event = ev_submissionCheck | event = ev_withdraw );
     t1 := event = ev_createApplication & state = Status_Planned;
     t2 := event = ev_editByResearcher & state = Status_InProgress;
     t3 := event = ev_researcherDeclaresComplete & state = Status_InProgress;
     t4 := event = ev_returnToResearcher & state = Status_EvaluationByInstitution;
     t5 := event = ev_editByInstitution & state = Status_EvaluationByInstitution;
     t6 := event = ev_verified & state = Status_EvaluationByInstitution;
     t7 := event = ev_reOpen & state = Status_VerifiedByInstitution;
     t8 := event = ev_submit & state = Status_VerifiedByInstitution;
     t9 := event = ev_submissionCheck & state = Status_SubmittedByInstitution & g1;
     t10 := event = ev_submissionCheck & state = Status_SubmittedByInstitution & g2;
     t11 := event = ev_withdraw & state = Status_SubmittedByInstitution;
     t12 := event = ev_acceptForReview & state = Status_SubmittedByInstitution;
     t13 := event = ev_returnToInstitition & state = Status_UnderAdministrativeReview;
     t14 := event = ev_acceptForExpertReview & state = Status_UnderAdministrativeReview;
     t15 := event = ev_bypassExpertReviewDueToMinorChanges & state = Status_UnderAdministrativeReview;
     t16 := event = ev_withdraw & state = Status_UnderAdministrativeReview;
     t17 := event = ev_expertReviewsReturned & state = Status_UnderExpertReview;
     t18 := event = ev_withdraw & state = Status_UnderExpertReview;
     t19 := event = ev_minorRevisionsNeeded & state = Status_AwaitingFinalDecision;
     t20 := event = ev_finalAccept & state = Status_AwaitingFinalDecision;
     t21 := event = ev_reject & state = Status_AwaitingFinalDecision;
     t22 := event = ev_tryAgain & state = Status_Rejected;
     t23 := event = ev_tryAgain & state = Status_Withdrawn;
     g1 := (adminCheckOk & (!adminCheckOk));
     g2 := !adminCheckOk;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := Status_Planned;
     next( state ) := case
       t2 | t22 | t1 | t4 | t23 : Status_InProgress;
       t3 | t7 | t13 | t5 | t10 | t19 : Status_EvaluationByInstitution;
       t6 : Status_VerifiedByInstitution;
       t8 | t9 : Status_SubmittedByInstitution;
       t12 : Status_UnderAdministrativeReview;
       t14 : Status_UnderExpertReview;
       t15 | t17 : Status_AwaitingFinalDecision;
       t20 : Status_Accepted;
       t21 : Status_Rejected;
       t16 | t11 | t18 : Status_Withdrawn;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       status_stable : { ev_reOpen , ev_returnToInstitition , ev_expertReviewsReturned , ev_submit , ev_verified , ev_tryAgain , ev_acceptForReview , ev_returnToResearcher , ev_acceptForExpertReview , ev_bypassExpertReviewDueToMinorChanges , ev_editByResearcher , ev_createApplication , ev_minorRevisionsNeeded , ev_reject , ev_researcherDeclaresComplete , ev_editByInstitution , ev_submissionCheck , ev_finalAccept , ev_withdraw };
       TRUE : ev_null;
     esac;

   -- This part defines logic for the assignment of values to state variable "adminCheckOk" of this NuSMV module --
   ASSIGN
     init( adminCheckOk ) := FALSE;

-- This defines a NuSMV module for GrantApplicationStatus_Machine --
MODULE GrantApplicationStatus_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     grantApplicationStatus : GrantApplicationStatus;

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     grantApplicationStatus_Machine : GrantApplicationStatus_Machine;

   -- The following properties are specified to certify that this model is free of non-determinism. 
   INVARSPEC   ( grantApplicationStatus_Machine.grantApplicationStatus.t9 & grantApplicationStatus_Machine.grantApplicationStatus.t10 -> next( grantApplicationStatus_Machine.grantApplicationStatus.state = Status_SubmittedByInstitution & grantApplicationStatus_Machine.grantApplicationStatus.state = Status_EvaluationByInstitution ) )

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( grantApplicationStatus_Machine.grantApplicationStatus.state = Status_Planned )
   CTLSPEC   EF( grantApplicationStatus_Machine.grantApplicationStatus.state = Status_InProgress )
   CTLSPEC   EF( grantApplicationStatus_Machine.grantApplicationStatus.state = Status_EvaluationByInstitution )
   CTLSPEC   EF( grantApplicationStatus_Machine.grantApplicationStatus.state = Status_VerifiedByInstitution )
   CTLSPEC   EF( grantApplicationStatus_Machine.grantApplicationStatus.state = Status_SubmittedByInstitution )
   CTLSPEC   EF( grantApplicationStatus_Machine.grantApplicationStatus.state = Status_UnderAdministrativeReview )
   CTLSPEC   EF( grantApplicationStatus_Machine.grantApplicationStatus.state = Status_UnderExpertReview )
   CTLSPEC   EF( grantApplicationStatus_Machine.grantApplicationStatus.state = Status_AwaitingFinalDecision )
   CTLSPEC   EF( grantApplicationStatus_Machine.grantApplicationStatus.state = Status_Accepted )
   CTLSPEC   EF( grantApplicationStatus_Machine.grantApplicationStatus.state = Status_Rejected )
   CTLSPEC   EF( grantApplicationStatus_Machine.grantApplicationStatus.state = Status_Withdrawn )

7
5
status :  cruise.umple.compiler.State@4fddd42b[name:Open,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[5,6]
  stateMachine = 7473cf13 : 0
 cruise.umple.compiler.State@4628344c[name:Closing,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[5,33]
  stateMachine = 7473cf13 : 0
 cruise.umple.compiler.State@2411cf8b[name:Closed,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[8,25]
  stateMachine = 7473cf13 : 0
 cruise.umple.compiler.State@54c3bae[name:Opening,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[7,30]
  stateMachine = 7473cf13 : 0
 cruise.umple.compiler.State@6fad6743[name:HalfOpen,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[12,30]
  stateMachine = 7473cf13 : 0

-- This file is generated from ExampleFile.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for GarageDoorStatus --
MODULE GarageDoorStatus

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Status_Open , Status_Closing , Status_Closed , Status_Opening , Status_HalfOpen };
     event : { ev_reachBottom , ev_reachTop , ev_buttonOrObstacle , ev_null };

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     status_stable :=  !( event = ev_reachTop | event = ev_reachBottom | event = ev_buttonOrObstacle );
     t1 := event = ev_buttonOrObstacle & state = Status_Open;
     t2 := event = ev_buttonOrObstacle & state = Status_Closing;
     t3 := event = ev_reachBottom & state = Status_Closing;
     t4 := event = ev_buttonOrObstacle & state = Status_Closed;
     t5 := event = ev_reachTop & state = Status_Opening;
     t6 := event = ev_buttonOrObstacle & state = Status_Opening;
     t7 := event = ev_buttonOrObstacle & state = Status_HalfOpen;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := Status_Open;
     next( state ) := case
       t5 : Status_Open;
       t1 : Status_Closing;
       t3 : Status_Closed;
       t4 | t2 | t7 : Status_Opening;
       t6 : Status_HalfOpen;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       status_stable : { ev_reachBottom , ev_reachTop , ev_buttonOrObstacle };
       TRUE : ev_null;
     esac;

-- This defines a NuSMV module for GarageDoorStatus_Machine --
MODULE GarageDoorStatus_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     garageDoorStatus : GarageDoorStatus;

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     garageDoorStatus_Machine : GarageDoorStatus_Machine;

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( garageDoorStatus_Machine.garageDoorStatus.state = Status_Open )
   CTLSPEC   EF( garageDoorStatus_Machine.garageDoorStatus.state = Status_Closing )
   CTLSPEC   EF( garageDoorStatus_Machine.garageDoorStatus.state = Status_Closed )
   CTLSPEC   EF( garageDoorStatus_Machine.garageDoorStatus.state = Status_Opening )
   CTLSPEC   EF( garageDoorStatus_Machine.garageDoorStatus.state = Status_HalfOpen )

8
7
sm :  cruise.umple.compiler.State@1638fa8b[name:s1,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[4,5]
  stateMachine = 1b60c196 : 0
 cruise.umple.compiler.State@1c7aa676[name:s2s2a,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[11,8]
  stateMachine = 1b60c196 : 0
 cruise.umple.compiler.State@fa200ab[name:s2s2b,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[6,14]
  stateMachine = 1b60c196 : 0
 cruise.umple.compiler.State@5e9f4f76[name:s2s2c,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[17,16]
  stateMachine = 1b60c196 : 0
 cruise.umple.compiler.State@43ee4942[name:s3,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[16,16]
  stateMachine = 1b60c196 : 0
 cruise.umple.compiler.State@a6e0e5f[name:s4,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[7,14]
  stateMachine = 1b60c196 : 0

-- This file is generated from NestedMachine.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for ASm --
MODULE ASm

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Sm_s1 , Sm_s2s2a , Sm_s2s2b , Sm_s2s2c , Sm_s3 , Sm_s4 };
     event : { ev_e1 , ev_e2 , ev_e3 , ev_e4 , ev_null };

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     sm_stable :=  !( event = ev_e1 | event = ev_e3 | event = ev_e2 | event = ev_e4 );
     t1 := event = ev_e1 & state = Sm_s1;
     t2 := event = ev_e2 & state = Sm_s1;
     t3 := event = ev_e3 & state = Sm_s1;
     t4 := event = ev_e1 & state = Sm_s2s2a;
     t5 := event = ev_e3 & state = Sm_s2s2a;
     t6 := event = ev_e1 & state = Sm_s2s2b;
     t7 := event = ev_e3 & state = Sm_s2s2b;
     t8 := event = ev_e4 & state = Sm_s2s2b;
     t9 := event = ev_e2 & state = Sm_s2s2b;
     t10 := event = ev_e1 & state = Sm_s2s2c;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := Sm_s1;
     next( state ) := case
       t6 | t4 | t10 : Sm_s1;
       t1 | t7 : Sm_s2s2a;
       t2 | t5 : Sm_s2s2b;
       t9 : Sm_s2s2c;
       t8 : Sm_s3;
       t3 : Sm_s4;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       sm_stable : { ev_e1 , ev_e2 , ev_e3 , ev_e4 };
       TRUE : ev_null;
     esac;

-- This defines a NuSMV module for ASm_Machine --
MODULE ASm_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     aSm : ASm;

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     aSm_Machine : ASm_Machine;

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( aSm_Machine.aSm.state = Sm_s1 )
   CTLSPEC   EF( aSm_Machine.aSm.state = Sm_s2s2a )
   CTLSPEC   EF( aSm_Machine.aSm.state = Sm_s2s2b )
   CTLSPEC   EF( aSm_Machine.aSm.state = Sm_s2s2c )
   CTLSPEC   EF( aSm_Machine.aSm.state = Sm_s3 )
   CTLSPEC   EF( aSm_Machine.aSm.state = Sm_s4 )

2
3
sm :  cruise.umple.compiler.State@793af433[name:s1,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[5,4]
  stateMachine = 644a12be : 0
 cruise.umple.compiler.State@7e34570[name:s2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[6,19]
  stateMachine = 644a12be : 0
 cruise.umple.compiler.State@274010fe[name:s3,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[7,20]
  stateMachine = 644a12be : 0

-- This file is generated from SimpleCaseOfNondeterminism.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for XSm --
MODULE XSm

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Sm_s1 , Sm_s2 , Sm_s3 };
     event : { ev_e , ev_null };
     a : integer;
     b : integer;

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     sm_stable :=  !( event = ev_e );
     t1 := event = ev_e & state = Sm_s1 & g1;
     t2 := event = ev_e & state = Sm_s1 & g2;
     g1 := a > 1;
     g2 := b < 1;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := Sm_s1;
     next( state ) := case
       t1 : Sm_s2;
       t2 : Sm_s3;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       sm_stable : { ev_e };
       TRUE : ev_null;
     esac;

   -- This part defines logic for the assignment of values to state variable "a" of this NuSMV module --
   ASSIGN
     init( a ) := 4;

   -- This part defines logic for the assignment of values to state variable "b" of this NuSMV module --
   ASSIGN
     init( b ) := 5;

-- This defines a NuSMV module for XSm_Machine --
MODULE XSm_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     xSm : XSm;

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     xSm_Machine : XSm_Machine;

   -- The following properties are specified to certify that this model is free of non-determinism. 
   INVARSPEC   ( xSm_Machine.xSm.t1 & xSm_Machine.xSm.t2 -> next( xSm_Machine.xSm.state = Sm_s2 & xSm_Machine.xSm.state = Sm_s3 ) )

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( xSm_Machine.xSm.state = Sm_s1 )
   CTLSPEC   EF( xSm_Machine.xSm.state = Sm_s2 )
   CTLSPEC   EF( xSm_Machine.xSm.state = Sm_s3 )

25
22
heatSystem :  cruise.umple.compiler.State@25a2702c[name:heatSys,isConcurrent:true,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[27,3]
  stateMachine = 23110196 : 3

room :  cruise.umple.compiler.State@328446e1[name:noHeatReqidleNoHeat,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[33,6]
  stateMachine = 584f12eb : 0
 cruise.umple.compiler.State@6eda3ade[name:noHeatReqwaitForHeat,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[34,61]
  stateMachine = 584f12eb : 0
 cruise.umple.compiler.State@45ec9b22[name:heatReqidleHeat,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[44,6]
  stateMachine = 584f12eb : 0
 cruise.umple.compiler.State@554f6e30[name:heatReqwaitForCool,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[45,60]
  stateMachine = 584f12eb : 0

Controller :  cruise.umple.compiler.State@7537f638[name:Controlleroff,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[59,5]
  stateMachine = 4a842e8a : 0
 cruise.umple.compiler.State@6b909973[name:ControllerOnidle,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[65,6]
  stateMachine = 4a842e8a : 0
 cruise.umple.compiler.State@458044df[name:heaterActiveactHeater,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[71,7]
  stateMachine = 4a842e8a : 0
 cruise.umple.compiler.State@f4cfc61[name:heaterActiveheaterRun,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[72,26]
  stateMachine = 4a842e8a : 0
 cruise.umple.compiler.State@64d7737c[name:Controllererror,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[63,22]
  stateMachine = 4a842e8a : 0

furnace :  cruise.umple.compiler.State@b632594[name:furnaceNormalfurnaceOff,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[89,5]
  stateMachine = 4c822e9b : 0
 cruise.umple.compiler.State@24456c9e[name:furnaceNormalfurnaceRun,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[92,5]
  stateMachine = 4c822e9b : 0
 cruise.umple.compiler.State@7bd6a7f9[name:furnaceNormalfurnaceAct,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[90,48]
  stateMachine = 4c822e9b : 0
 cruise.umple.compiler.State@690b6292[name:furnacefurnaceErr,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[88,21]
  stateMachine = 4c822e9b : 0

-- This file is generated from myTemporaryTest.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for HeatingSystemHeatSystem --
MODULE HeatingSystemHeatSystem ( _heatSystemHeatSysRoomRoom , _heatSystemHeatSysControllerController , _heatSystemHeatSysFurnaceFurnace )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { HeatSystem_heatSys , null };
     event : { ev_t5 , ev_heatSwitchOn , ev_furnaceReset , ev_furnaceFault , ev_furnaceRunning , ev_deactivate , ev_t21 , ev_t20 , ev_t23 , ev_heatSwitchOff , ev_t22 , ev_t24 , ev_activate , ev_t15 , ev_t18 , ev_userReset , ev_t17 , ev_t19 , ev_null };
     tooCold : boolean;
     tooHot : boolean;
     requestHeat : boolean;
     furnaceTimer : integer;
     furnaceStartupTime : integer;
     valvePos : integer;
     waitedForWarm : integer;
     warmUpTimer : integer;
     coolDownTimer : integer;
     waitedForCool : integer;

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     heatSystem_stable :=  !( event = ev_t5 | event = ev_furnaceReset | event = ev_furnaceRunning | event = ev_t21 | event = ev_t23 | event = ev_t22 | event = ev_activate | event = ev_t18 | event = ev_t17 | event = ev_heatSwitchOn | event = ev_furnaceFault | event = ev_deactivate | event = ev_t20 | event = ev_heatSwitchOff | event = ev_t24 | event = ev_t15 | event = ev_userReset | event = ev_t19 );
     t1 := event = ev_t15 & _heatSystemHeatSysRoomRoom.state = HeatSystemHeatSysRoomRoom_noHeatReqidleNoHeat & g1;
     t2 := event = ev_t17 & _heatSystemHeatSysRoomRoom.state = HeatSystemHeatSysRoomRoom_noHeatReqwaitForHeat & g2;
     t3 := event = ev_t18 & _heatSystemHeatSysRoomRoom.state = HeatSystemHeatSysRoomRoom_noHeatReqwaitForHeat & g3;
     t4 := event = ev_t15 & _heatSystemHeatSysRoomRoom.state = HeatSystemHeatSysRoomRoom_noHeatReqwaitForHeat & g4;
     t5 := event = ev_t20 & _heatSystemHeatSysRoomRoom.state = HeatSystemHeatSysRoomRoom_noHeatReqwaitForHeat & g5;
     t6 := event = ev_t21 & _heatSystemHeatSysRoomRoom.state = HeatSystemHeatSysRoomRoom_heatReqidleHeat & g6;
     t7 := event = ev_t19 & _heatSystemHeatSysRoomRoom.state = HeatSystemHeatSysRoomRoom_heatReqwaitForCool & g7;
     t8 := event = ev_t22 & _heatSystemHeatSysRoomRoom.state = HeatSystemHeatSysRoomRoom_heatReqwaitForCool & g8;
     t9 := event = ev_t24 & _heatSystemHeatSysRoomRoom.state = HeatSystemHeatSysRoomRoom_heatReqwaitForCool & g9;
     t10 := event = ev_t23 & _heatSystemHeatSysRoomRoom.state = HeatSystemHeatSysRoomRoom_heatReqwaitForCool & g10;
     t11 := event = ev_heatSwitchOn & _heatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_Controlleroff;
     t12 := event = ev_heatSwitchOff & _heatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_ControllerOnidle;
     t13 := event = ev_furnaceFault & _heatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_ControllerOnidle;
     t14 := event = ev_activate & _heatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_ControllerOnidle & g11;
     t15 := event = ev_heatSwitchOff & _heatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_heaterActiveactHeater;
     t16 := event = ev_furnaceFault & _heatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_heaterActiveactHeater;
     t17 := event = ev_deactivate & _heatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_heaterActiveactHeater & g12;
     t18 := event = ev_furnaceRunning & _heatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_heaterActiveactHeater;
     t19 := event = ev_heatSwitchOff & _heatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_heaterActiveheaterRun;
     t20 := event = ev_furnaceFault & _heatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_heaterActiveheaterRun;
     t21 := event = ev_deactivate & _heatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_heaterActiveheaterRun & g12;
     t22 := event = ev_furnaceReset & _heatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_Controllererror;
     t23 := event = ev_userReset & _heatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_Controllererror;
     t24 := event = ev_furnaceFault & _heatSystemHeatSysFurnaceFurnace.state = HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceOff;
     t25 := event = ev_activate & _heatSystemHeatSysFurnaceFurnace.state = HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceOff;
     t26 := event = ev_furnaceFault & _heatSystemHeatSysFurnaceFurnace.state = HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceRun;
     t27 := event = ev_deactivate & _heatSystemHeatSysFurnaceFurnace.state = HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceRun;
     t28 := event = ev_furnaceFault & _heatSystemHeatSysFurnaceFurnace.state = HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceAct;
     t29 := event = ev_deactivate & _heatSystemHeatSysFurnaceFurnace.state = HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceAct;
     t30 := event = ev_t5 & _heatSystemHeatSysFurnaceFurnace.state = HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceAct & g13;
     t31 := event = ev_furnaceRunning & _heatSystemHeatSysFurnaceFurnace.state = HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceAct & g14;
     t32 := event = ev_furnaceReset & _heatSystemHeatSysFurnaceFurnace.state = HeatSystemHeatSysFurnaceFurnace_furnacefurnaceErr;
     g1 := tooCold;
     g2 := waitedForWarm < warmUpTimer;
     g3 := valvePos != 2 & warmUpTimer = waitedForWarm;
     g4 := !tooCold;
     g5 := waitedForwarm = warmUpTimer & valvePos = 2 & tooCold;
     g6 := tooHot;
     g7 := waitedForCool = coolDownTimer & valvePos = 0 & tooHot;
     g8 := !tooHot;
     g9 := valvePos != 0 & coolDownTimer = waitedForCool;
     g10 := waitedForCool < coolDownTimer;
     g11 := requestHeat = TRUE;
     g12 := requestHeat = FALSE;
     g13 := furnaceStartupTime < furnaceTimer;
     g14 := furnaceTimer = furnaceStartupTime;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := HeatSystem_heatSys;
     next( state ) := case
       t4 | t1 | t3 | t8 | t9 | t12 | t19 | t23 | t17 | t14 | t13 | t20 | t27 | t31 | t30 | t26 | t7 | t2 | t5 | t6 | t10 | t15 | t22 | t11 | t21 | t18 | t16 | t32 | t29 | t25 | t24 | t28 : HeatSystem_heatSys;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       heatSystem_stable : { ev_t5 , ev_heatSwitchOn , ev_furnaceReset , ev_furnaceFault , ev_furnaceRunning , ev_deactivate , ev_t21 , ev_t20 , ev_t23 , ev_heatSwitchOff , ev_t22 , ev_t24 , ev_activate , ev_t15 , ev_t18 , ev_userReset , ev_t17 , ev_t19 };
       TRUE : ev_null;
     esac;

   -- This part defines logic for the assignment of values to state variable "tooCold" of this NuSMV module --
   ASSIGN
     init( tooCold ) := FALSE;

   -- This part defines logic for the assignment of values to state variable "tooHot" of this NuSMV module --
   ASSIGN
     init( tooHot ) := FALSE;

   -- This part defines logic for the assignment of values to state variable "requestHeat" of this NuSMV module --
   ASSIGN
     init( requestHeat ) := FALSE;

   -- This part defines logic for the assignment of values to state variable "furnaceTimer" of this NuSMV module --
   ASSIGN
     init( furnaceTimer ) := 0;

   -- This part defines logic for the assignment of values to state variable "furnaceStartupTime" of this NuSMV module --
   ASSIGN
     init( furnaceStartupTime ) := 0;

   -- This part defines logic for the assignment of values to state variable "valvePos" of this NuSMV module --
   ASSIGN
     init( valvePos ) := 0;

   -- This part defines logic for the assignment of values to state variable "waitedForWarm" of this NuSMV module --
   ASSIGN
     init( waitedForWarm ) := 0;

   -- This part defines logic for the assignment of values to state variable "warmUpTimer" of this NuSMV module --
   ASSIGN
     init( warmUpTimer ) := 0;

   -- This part defines logic for the assignment of values to state variable "coolDownTimer" of this NuSMV module --
   ASSIGN
     init( coolDownTimer ) := 0;

   -- This part defines logic for the assignment of values to state variable "waitedForCool" of this NuSMV module --
   ASSIGN
     init( waitedForCool ) := 0;

-- This defines a NuSMV module for HeatingSystemHeatSystemHeatSysRoomRoom --
MODULE HeatingSystemHeatSystemHeatSysRoomRoom ( _heatSystem )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { HeatSystemHeatSysRoomRoom_noHeatReqidleNoHeat , HeatSystemHeatSysRoomRoom_noHeatReqwaitForHeat , HeatSystemHeatSysRoomRoom_heatReqidleHeat , HeatSystemHeatSysRoomRoom_heatReqwaitForCool , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _heatSystem.t4 | _heatSystem.t7 : HeatSystemHeatSysRoomRoom_noHeatReqidleNoHeat;
       _heatSystem.t2 | _heatSystem.t1 | _heatSystem.t3 : HeatSystemHeatSysRoomRoom_noHeatReqwaitForHeat;
       _heatSystem.t5 | _heatSystem.t8 : HeatSystemHeatSysRoomRoom_heatReqidleHeat;
       _heatSystem.t9 | _heatSystem.t6 | _heatSystem.t10 : HeatSystemHeatSysRoomRoom_heatReqwaitForCool;
       _heatSystem.state = HeatSystem_heatSys & state = null : HeatSystemHeatSysRoomRoom_noHeatReqidleNoHeat;
       TRUE : state;
     esac;

-- This defines a NuSMV module for HeatingSystemHeatSystemHeatSysControllerController --
MODULE HeatingSystemHeatSystemHeatSysControllerController ( _heatSystem )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { HeatSystemHeatSysControllerController_Controlleroff , HeatSystemHeatSysControllerController_ControllerOnidle , HeatSystemHeatSysControllerController_heaterActiveactHeater , HeatSystemHeatSysControllerController_heaterActiveheaterRun , HeatSystemHeatSysControllerController_Controllererror , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _heatSystem.t15 | _heatSystem.t22 | _heatSystem.t12 | _heatSystem.t19 | _heatSystem.t23 : HeatSystemHeatSysControllerController_Controlleroff;
       _heatSystem.t17 | _heatSystem.t11 | _heatSystem.t21 : HeatSystemHeatSysControllerController_ControllerOnidle;
       _heatSystem.t14 : HeatSystemHeatSysControllerController_heaterActiveactHeater;
       _heatSystem.t18 : HeatSystemHeatSysControllerController_heaterActiveheaterRun;
       _heatSystem.t16 | _heatSystem.t13 | _heatSystem.t20 : HeatSystemHeatSysControllerController_Controllererror;
       _heatSystem.state = HeatSystem_heatSys & state = null : HeatSystemHeatSysControllerController_Controlleroff;
       TRUE : state;
     esac;

-- This defines a NuSMV module for HeatingSystemHeatSystemHeatSysFurnaceFurnace --
MODULE HeatingSystemHeatSystemHeatSysFurnaceFurnace ( _heatSystem )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceOff , HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceRun , HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceAct , HeatSystemHeatSysFurnaceFurnace_furnacefurnaceErr , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _heatSystem.t27 | _heatSystem.t32 | _heatSystem.t29 : HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceOff;
       _heatSystem.t31 : HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceRun;
       _heatSystem.t25 | _heatSystem.t30 : HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceAct;
       _heatSystem.t26 | _heatSystem.t24 | _heatSystem.t28 : HeatSystemHeatSysFurnaceFurnace_furnacefurnaceErr;
       _heatSystem.state = HeatSystem_heatSys & state = null : HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceOff;
       TRUE : state;
     esac;

-- This defines a NuSMV module for HeatingSystemHeatSystem_Machine --
MODULE HeatingSystemHeatSystem_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     heatingSystemHeatSystem : HeatingSystemHeatSystem( heatingSystemHeatSystemHeatSysRoomRoom , heatingSystemHeatSystemHeatSysControllerController , heatingSystemHeatSystemHeatSysFurnaceFurnace );
     heatingSystemHeatSystemHeatSysRoomRoom : HeatingSystemHeatSystemHeatSysRoomRoom( heatingSystemHeatSystem );
     heatingSystemHeatSystemHeatSysControllerController : HeatingSystemHeatSystemHeatSysControllerController( heatingSystemHeatSystem );
     heatingSystemHeatSystemHeatSysFurnaceFurnace : HeatingSystemHeatSystemHeatSysFurnaceFurnace( heatingSystemHeatSystem );

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     heatingSystemHeatSystem_Machine : HeatingSystemHeatSystem_Machine;

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( heatingSystemHeatSystem_Machine.heatingSystemHeatSystem.state = HeatSystem_heatSys )
   CTLSPEC   EF( heatingSystemHeatSystem_Machine.heatingSystemHeatSystemHeatSysRoomRoom.state = HeatSystemHeatSysRoomRoom_noHeatReqidleNoHeat )
   CTLSPEC   EF( heatingSystemHeatSystem_Machine.heatingSystemHeatSystemHeatSysRoomRoom.state = HeatSystemHeatSysRoomRoom_noHeatReqwaitForHeat )
   CTLSPEC   EF( heatingSystemHeatSystem_Machine.heatingSystemHeatSystemHeatSysRoomRoom.state = HeatSystemHeatSysRoomRoom_heatReqidleHeat )
   CTLSPEC   EF( heatingSystemHeatSystem_Machine.heatingSystemHeatSystemHeatSysRoomRoom.state = HeatSystemHeatSysRoomRoom_heatReqwaitForCool )
   CTLSPEC   EF( heatingSystemHeatSystem_Machine.heatingSystemHeatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_Controlleroff )
   CTLSPEC   EF( heatingSystemHeatSystem_Machine.heatingSystemHeatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_ControllerOnidle )
   CTLSPEC   EF( heatingSystemHeatSystem_Machine.heatingSystemHeatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_heaterActiveactHeater )
   CTLSPEC   EF( heatingSystemHeatSystem_Machine.heatingSystemHeatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_heaterActiveheaterRun )
   CTLSPEC   EF( heatingSystemHeatSystem_Machine.heatingSystemHeatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_Controllererror )
   CTLSPEC   EF( heatingSystemHeatSystem_Machine.heatingSystemHeatSystemHeatSysFurnaceFurnace.state = HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceOff )
   CTLSPEC   EF( heatingSystemHeatSystem_Machine.heatingSystemHeatSystemHeatSysFurnaceFurnace.state = HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceRun )
   CTLSPEC   EF( heatingSystemHeatSystem_Machine.heatingSystemHeatSystemHeatSysFurnaceFurnace.state = HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceAct )
   CTLSPEC   EF( heatingSystemHeatSystem_Machine.heatingSystemHeatSystemHeatSysFurnaceFurnace.state = HeatSystemHeatSysFurnaceFurnace_furnacefurnaceErr )

39
26
sm :  cruise.umple.compiler.State@563f53d8[name:regulartime,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[11,6]
  stateMachine = 5bb1c104 : 0
 cruise.umple.compiler.State@1184b542[name:regulardate,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[12,14]
  stateMachine = 5bb1c104 : 0
 cruise.umple.compiler.State@6bd5ca02[name:updatesecond,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[24,8]
  stateMachine = 5bb1c104 : 0
 cruise.umple.compiler.State@4758f533[name:updateminute,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[25,15]
  stateMachine = 5bb1c104 : 0
 cruise.umple.compiler.State@12b4a53d[name:updatehour,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[29,15]
  stateMachine = 5bb1c104 : 0
 cruise.umple.compiler.State@262e2c8c[name:updatemonth,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[33,15]
  stateMachine = 5bb1c104 : 0
 cruise.umple.compiler.State@636e6791[name:updateday,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[37,15]
  stateMachine = 5bb1c104 : 0
 cruise.umple.compiler.State@631ff7a2[name:updateyear,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[41,15]
  stateMachine = 5bb1c104 : 0
 cruise.umple.compiler.State@54353bb1[name:chronoNormalpaused,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[55,8]
  stateMachine = 5bb1c104 : 0
 cruise.umple.compiler.State@3a837f7[name:chronoNormalrunning,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[56,16]
  stateMachine = 5bb1c104 : 0
 cruise.umple.compiler.State@13ea9afc[name:chronometerlapRunning,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[61,16]
  stateMachine = 5bb1c104 : 0
 cruise.umple.compiler.State@f54cdc4[name:chronometerlapPaused,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[65,14]
  stateMachine = 5bb1c104 : 0
 cruise.umple.compiler.State@7241872c[name:alarmStatusbothOff,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[77,6]
  stateMachine = 5bb1c104 : 0
 cruise.umple.compiler.State@3094111c[name:alarmStatuschimeOn,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[78,14]
  stateMachine = 5bb1c104 : 0
 cruise.umple.compiler.State@776e4088[name:alarmStatusbothOn,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[81,14]
  stateMachine = 5bb1c104 : 0
 cruise.umple.compiler.State@5e7d994c[name:alarmStatusalarmOn,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[84,14]
  stateMachine = 5bb1c104 : 0
 cruise.umple.compiler.State@207b0d48[name:alarmUpdatealarmTime,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[15,25]
  stateMachine = 5bb1c104 : 0
 cruise.umple.compiler.State@3077e4aa[name:hourMinuteUpdatealarmHour,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[96,31]
  stateMachine = 5bb1c104 : 0
 cruise.umple.compiler.State@3518882c[name:hourMinuteUpdatealarmMinute,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[95,14]
  stateMachine = 5bb1c104 : 0

-- This file is generated from NestedWatch.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for DigitalWatchSm --
MODULE DigitalWatchSm

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Sm_regulartime , Sm_regulardate , Sm_updatesecond , Sm_updateminute , Sm_updatehour , Sm_updatemonth , Sm_updateday , Sm_updateyear , Sm_chronoNormalpaused , Sm_chronoNormalrunning , Sm_chronometerlapRunning , Sm_chronometerlapPaused , Sm_alarmStatusbothOff , Sm_alarmStatuschimeOn , Sm_alarmStatusbothOn , Sm_alarmStatusalarmOn , Sm_alarmUpdatealarmTime , Sm_hourMinuteUpdatealarmHour , Sm_hourMinuteUpdatealarmMinute };
     event : { ev_s3 , ev_s3during2Secs , ev_notS2 , ev_notS1 , ev_s1 , ev_s2 , ev_null };
     day : integer;
     month : integer;
     year : integer;
     hour : integer;
     minute : integer;
     second : integer;
     alarmHour : integer;
     alarmMinute : integer;
     alarmSecond : integer;
     timer : integer;

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     sm_stable :=  !( event = ev_s3 | event = ev_notS2 | event = ev_s1 | event = ev_s3during2Secs | event = ev_notS1 | event = ev_s2 );
     t1 := event = ev_s1 & state = Sm_regulartime;
     t2 := event = ev_s2 & state = Sm_regulartime;
     t3 := event = ev_s3 & state = Sm_regulartime;
     t4 := event = ev_s3during2Secs & state = Sm_regulartime;
     t5 := event = ev_notS1 & state = Sm_regulardate;
     t6 := event = ev_s3 & state = Sm_updatesecond;
     t7 := event = ev_s2 & state = Sm_updatesecond;
     t8 := event = ev_s1 & state = Sm_updatesecond;
     t9 := event = ev_s3 & state = Sm_updateminute;
     t10 := event = ev_s2 & state = Sm_updateminute;
     t11 := event = ev_s1 & state = Sm_updateminute;
     t12 := event = ev_s3 & state = Sm_updatehour;
     t13 := event = ev_s2 & state = Sm_updatehour;
     t14 := event = ev_s1 & state = Sm_updatehour;
     t15 := event = ev_s3 & state = Sm_updatemonth;
     t16 := event = ev_s2 & state = Sm_updatemonth;
     t17 := event = ev_s1 & state = Sm_updatemonth;
     t18 := event = ev_s3 & state = Sm_updateday;
     t19 := event = ev_s2 & state = Sm_updateday;
     t20 := event = ev_s1 & state = Sm_updateday;
     t21 := event = ev_s3 & state = Sm_updateyear;
     t22 := event = ev_s1 & state = Sm_updateyear;
     t23 := event = ev_s2 & state = Sm_updateyear;
     t24 := event = ev_s3 & state = Sm_chronoNormalpaused;
     t25 := event = ev_s2 & state = Sm_chronoNormalpaused;
     t26 := event = ev_s1 & state = Sm_chronoNormalpaused;
     t27 := event = ev_s3 & state = Sm_chronoNormalrunning;
     t28 := event = ev_s1 & state = Sm_chronoNormalrunning;
     t29 := event = ev_s2 & state = Sm_chronoNormalrunning;
     t30 := event = ev_s3 & state = Sm_chronometerlapRunning;
     t31 := event = ev_s2 & state = Sm_chronometerlapRunning;
     t32 := event = ev_s1 & state = Sm_chronometerlapRunning;
     t33 := event = ev_s3 & state = Sm_chronometerlapPaused;
     t34 := event = ev_s1 & state = Sm_chronometerlapPaused;
     t35 := event = ev_s2 & state = Sm_chronometerlapPaused;
     t36 := event = ev_notS2 & state = Sm_alarmStatusbothOff;
     t37 := event = ev_s1 & state = Sm_alarmStatusbothOff;
     t38 := event = ev_notS2 & state = Sm_alarmStatuschimeOn;
     t39 := event = ev_s1 & state = Sm_alarmStatuschimeOn;
     t40 := event = ev_notS2 & state = Sm_alarmStatusbothOn;
     t41 := event = ev_s1 & state = Sm_alarmStatusbothOn;
     t42 := event = ev_notS2 & state = Sm_alarmStatusalarmOn;
     t43 := event = ev_s1 & state = Sm_alarmStatusalarmOn;
     t44 := event = ev_s3 & state = Sm_alarmUpdatealarmTime;
     t45 := event = ev_s1 & state = Sm_alarmUpdatealarmTime;
     t46 := event = ev_s2 & state = Sm_alarmUpdatealarmTime;
     t47 := event = ev_s3 & state = Sm_hourMinuteUpdatealarmHour;
     t48 := event = ev_s2 & state = Sm_hourMinuteUpdatealarmHour;
     t49 := event = ev_s1 & state = Sm_hourMinuteUpdatealarmHour;
     t50 := event = ev_s3 & state = Sm_hourMinuteUpdatealarmMinute;
     t51 := event = ev_s1 & state = Sm_hourMinuteUpdatealarmMinute;
     t52 := event = ev_s2 & state = Sm_hourMinuteUpdatealarmMinute;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := Sm_regulartime;
     next( state ) := case
       t27 | t33 | t38 | t42 | t6 | t12 | t18 | t24 | t30 | t36 | t40 | t5 | t9 | t15 | t21 : Sm_regulartime;
       t1 : Sm_regulardate;
       t47 | t7 | t44 | t50 | t22 : Sm_updatesecond;
       t8 | t10 : Sm_updateminute;
       t11 | t13 : Sm_updatehour;
       t14 | t16 : Sm_updatemonth;
       t17 | t19 : Sm_updateday;
       t20 | t23 : Sm_updateyear;
       t3 | t25 | t35 | t28 : Sm_chronoNormalpaused;
       t31 | t26 : Sm_chronoNormalrunning;
       t34 | t29 : Sm_chronometerlapRunning;
       t32 : Sm_chronometerlapPaused;
       t2 | t43 : Sm_alarmStatusbothOff;
       t37 : Sm_alarmStatuschimeOn;
       t39 : Sm_alarmStatusbothOn;
       t41 : Sm_alarmStatusalarmOn;
       t4 : Sm_alarmUpdatealarmTime;
       t48 | t46 | t51 : Sm_hourMinuteUpdatealarmHour;
       t49 | t45 | t52 : Sm_hourMinuteUpdatealarmMinute;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       sm_stable : { ev_s3 , ev_s3during2Secs , ev_notS2 , ev_notS1 , ev_s1 , ev_s2 };
       TRUE : ev_null;
     esac;

   -- This part defines logic for the assignment of values to state variable "day" of this NuSMV module --
   ASSIGN
     init( day ) := 0;

   -- This part defines logic for the assignment of values to state variable "month" of this NuSMV module --
   ASSIGN
     init( month ) := 0;

   -- This part defines logic for the assignment of values to state variable "year" of this NuSMV module --
   ASSIGN
     init( year ) := 2014;

   -- This part defines logic for the assignment of values to state variable "hour" of this NuSMV module --
   ASSIGN
     init( hour ) := 0;

   -- This part defines logic for the assignment of values to state variable "minute" of this NuSMV module --
   ASSIGN
     init( minute ) := 0;

   -- This part defines logic for the assignment of values to state variable "second" of this NuSMV module --
   ASSIGN
     init( second ) := 0;

   -- This part defines logic for the assignment of values to state variable "alarmHour" of this NuSMV module --
   ASSIGN
     init( alarmHour ) := 0;

   -- This part defines logic for the assignment of values to state variable "alarmMinute" of this NuSMV module --
   ASSIGN
     init( alarmMinute ) := 0;

   -- This part defines logic for the assignment of values to state variable "alarmSecond" of this NuSMV module --
   ASSIGN
     init( alarmSecond ) := 0;

   -- This part defines logic for the assignment of values to state variable "timer" of this NuSMV module --
   ASSIGN
     init( timer ) := 0;

-- This defines a NuSMV module for DigitalWatchSm_Machine --
MODULE DigitalWatchSm_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     digitalWatchSm : DigitalWatchSm;

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     digitalWatchSm_Machine : DigitalWatchSm_Machine;

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_regulartime )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_regulardate )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_updatesecond )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_updateminute )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_updatehour )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_updatemonth )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_updateday )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_updateyear )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_chronoNormalpaused )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_chronoNormalrunning )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_chronometerlapRunning )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_chronometerlapPaused )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_alarmStatusbothOff )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_alarmStatuschimeOn )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_alarmStatusbothOn )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_alarmStatusalarmOn )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_alarmUpdatealarmTime )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_hourMinuteUpdatealarmHour )
   CTLSPEC   EF( digitalWatchSm_Machine.digitalWatchSm.state = Sm_hourMinuteUpdatealarmMinute )

20
10
sm :  cruise.umple.compiler.State@687313e1[name:ZxZa,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[9,10]
  stateMachine = 6eaf016e : 0
 cruise.umple.compiler.State@6fa73db5[name:ZxXa,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[10,18]
  stateMachine = 6eaf016e : 0
 cruise.umple.compiler.State@7ce87db5[name:ZxabAa,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[11,18]
  stateMachine = 6eaf016e : 0
 cruise.umple.compiler.State@c7485d2[name:ZxabBa,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[24,16]
  stateMachine = 6eaf016e : 0
 cruise.umple.compiler.State@1ac65143[name:Da,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[23,16]
  stateMachine = 6eaf016e : 0
 cruise.umple.compiler.State@4cda8d3b[name:GeGa,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[12,11]
  stateMachine = 6eaf016e : 0
 cruise.umple.compiler.State@73e054c0[name:GeEa,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[13,11]
  stateMachine = 6eaf016e : 0

-- This file is generated from BigStateMachineTest.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for BigStateMachineTestSm --
MODULE BigStateMachineTestSm

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Sm_ZxZa , Sm_ZxXa , Sm_ZxabAa , Sm_ZxabBa , Sm_Da , Sm_GeGa , Sm_GeEa };
     event : { ev_e5 , ev_e1 , ev_e2 , ev_e3 , ev_e4 , ev_null };

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     sm_stable :=  !( event = ev_e1 | event = ev_e3 | event = ev_e5 | event = ev_e2 | event = ev_e4 );
     t1 := event = ev_e3 & state = Sm_ZxZa;
     t2 := event = ev_e2 & state = Sm_ZxZa;
     t3 := event = ev_e5 & state = Sm_ZxZa;
     t4 := event = ev_e1 & state = Sm_ZxZa;
     t5 := event = ev_e4 & state = Sm_ZxZa;
     t6 := event = ev_e5 & state = Sm_ZxXa;
     t7 := event = ev_e1 & state = Sm_ZxXa;
     t8 := event = ev_e4 & state = Sm_ZxXa;
     t9 := event = ev_e5 & state = Sm_ZxabAa;
     t10 := event = ev_e3 & state = Sm_ZxabAa;
     t11 := event = ev_e1 & state = Sm_ZxabAa;
     t12 := event = ev_e4 & state = Sm_ZxabAa;
     t13 := event = ev_e3 & state = Sm_ZxabBa;
     t14 := event = ev_e1 & state = Sm_ZxabBa;
     t15 := event = ev_e4 & state = Sm_ZxabBa;
     t16 := event = ev_e5 & state = Sm_Da;
     t17 := event = ev_e2 & state = Sm_Da;
     t18 := event = ev_e1 & state = Sm_GeGa;
     t19 := event = ev_e1 & state = Sm_GeEa;
     t20 := event = ev_e2 & state = Sm_GeEa;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := Sm_ZxZa;
     next( state ) := case
       t16 | t1 : Sm_ZxXa;
       t2 : Sm_ZxabAa;
       t10 | t18 : Sm_ZxabBa;
       t9 : Sm_Da;
       t13 | t3 | t6 | t19 | t12 | t15 | t5 | t8 | t20 : Sm_GeGa;
       t11 | t4 | t17 | t14 | t7 : Sm_GeEa;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       sm_stable : { ev_e5 , ev_e1 , ev_e2 , ev_e3 , ev_e4 };
       TRUE : ev_null;
     esac;

-- This defines a NuSMV module for BigStateMachineTestSm_Machine --
MODULE BigStateMachineTestSm_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     bigStateMachineTestSm : BigStateMachineTestSm;

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     bigStateMachineTestSm_Machine : BigStateMachineTestSm_Machine;

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( bigStateMachineTestSm_Machine.bigStateMachineTestSm.state = Sm_ZxZa )
   CTLSPEC   EF( bigStateMachineTestSm_Machine.bigStateMachineTestSm.state = Sm_ZxXa )
   CTLSPEC   EF( bigStateMachineTestSm_Machine.bigStateMachineTestSm.state = Sm_ZxabAa )
   CTLSPEC   EF( bigStateMachineTestSm_Machine.bigStateMachineTestSm.state = Sm_ZxabBa )
   CTLSPEC   EF( bigStateMachineTestSm_Machine.bigStateMachineTestSm.state = Sm_Da )
   CTLSPEC   EF( bigStateMachineTestSm_Machine.bigStateMachineTestSm.state = Sm_GeGa )
   CTLSPEC   EF( bigStateMachineTestSm_Machine.bigStateMachineTestSm.state = Sm_GeEa )

17
9
state :  cruise.umple.compiler.State@639ad5d9[name:planned,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[9,4]
  stateMachine = 3ccca75c : 0
 cruise.umple.compiler.State@5cc5d766[name:planeAssigned,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[10,21]
  stateMachine = 3ccca75c : 0
 cruise.umple.compiler.State@66a0fae1[name:waitingForNextLeg,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[18,4]
  stateMachine = 3ccca75c : 0
 cruise.umple.compiler.State@53a1cff1[name:boarding,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[14,28]
  stateMachine = 3ccca75c : 0
 cruise.umple.compiler.State@a8e649e[name:closedAtGate,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[24,26]
  stateMachine = 3ccca75c : 0
 cruise.umple.compiler.State@7802fc4e[name:underway,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[28,28]
  stateMachine = 3ccca75c : 0
 cruise.umple.compiler.State@1994665d[name:disembarking,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[20,18]
  stateMachine = 3ccca75c : 0
 cruise.umple.compiler.State@4497fcd9[name:completed,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[37,43]
  stateMachine = 3ccca75c : 0
 cruise.umple.compiler.State@3d44da41[name:cancelled,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[11,16]
  stateMachine = 3ccca75c : 0

-- This file is generated from FlatSpecificFlight.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for SpecificFlightState --
MODULE SpecificFlightState

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { State_planned , State_planeAssigned , State_waitingForNextLeg , State_boarding , State_closedAtGate , State_underway , State_disembarking , State_completed , State_cancelled };
     event : { ev_cancel , ev_boardingComplete , ev_passengersOut , ev_assignPlane , ev_permissionToDepart , ev_evacuate , ev_readyForPassengers , ev_changePlane , ev_arriveAtGate , ev_null };
     finished : boolean;
     empty : boolean;

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     state_stable :=  !( event = ev_boardingComplete | event = ev_assignPlane | event = ev_evacuate | event = ev_changePlane | event = ev_cancel | event = ev_passengersOut | event = ev_permissionToDepart | event = ev_readyForPassengers | event = ev_arriveAtGate );
     t1 := event = ev_assignPlane & state = State_planned;
     t2 := event = ev_cancel & state = State_planned;
     t3 := event = ev_changePlane & state = State_planeAssigned;
     t4 := event = ev_readyForPassengers & state = State_planeAssigned;
     t5 := event = ev_cancel & state = State_planeAssigned;
     t6 := event = ev_readyForPassengers & state = State_waitingForNextLeg;
     t7 := event = ev_evacuate & state = State_waitingForNextLeg;
     t8 := event = ev_evacuate & state = State_boarding;
     t9 := event = ev_boardingComplete & state = State_boarding;
     t10 := event = ev_evacuate & state = State_closedAtGate;
     t11 := event = ev_permissionToDepart & state = State_closedAtGate;
     t12 := event = ev_evacuate & state = State_underway;
     t13 := event = ev_arriveAtGate & state = State_underway;
     t14 := event = ev_evacuate & state = State_disembarking;
     t15 := event = ev_passengersOut & state = State_disembarking & g1;
     t16 := event = ev_passengersOut & state = State_disembarking & g2;
     t17 := event = ev_passengersOut & state = State_disembarking & g3;
     g1 := !empty;
     g2 := !finished & empty;
     g3 := finished & empty;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := State_planned;
     next( state ) := case
       t3 : State_planned;
       t1 | t16 : State_planeAssigned;
       t15 : State_waitingForNextLeg;
       t4 | t6 : State_boarding;
       t9 : State_closedAtGate;
       t11 : State_underway;
       t7 | t10 | t13 | t8 | t12 | t14 : State_disembarking;
       t17 : State_completed;
       t2 | t5 : State_cancelled;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       state_stable : { ev_cancel , ev_boardingComplete , ev_passengersOut , ev_assignPlane , ev_permissionToDepart , ev_evacuate , ev_readyForPassengers , ev_changePlane , ev_arriveAtGate };
       TRUE : ev_null;
     esac;

   -- This part defines logic for the assignment of values to state variable "finished" of this NuSMV module --
   ASSIGN
     init( finished ) := FALSE;

   -- This part defines logic for the assignment of values to state variable "empty" of this NuSMV module --
   ASSIGN
     init( empty ) := FALSE;

-- This defines a NuSMV module for SpecificFlightState_Machine --
MODULE SpecificFlightState_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     specificFlightState : SpecificFlightState;

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     specificFlightState_Machine : SpecificFlightState_Machine;

   -- The following properties are specified to certify that this model is free of non-determinism. 
   INVARSPEC   ( specificFlightState_Machine.specificFlightState.t15 & specificFlightState_Machine.specificFlightState.t16 -> next( specificFlightState_Machine.specificFlightState.state = State_waitingForNextLeg & specificFlightState_Machine.specificFlightState.state = State_planeAssigned ) )
   INVARSPEC   ( specificFlightState_Machine.specificFlightState.t15 & specificFlightState_Machine.specificFlightState.t17 -> next( specificFlightState_Machine.specificFlightState.state = State_waitingForNextLeg & specificFlightState_Machine.specificFlightState.state = State_completed ) )
   INVARSPEC   ( specificFlightState_Machine.specificFlightState.t16 & specificFlightState_Machine.specificFlightState.t17 -> next( specificFlightState_Machine.specificFlightState.state = State_planeAssigned & specificFlightState_Machine.specificFlightState.state = State_completed ) )

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( specificFlightState_Machine.specificFlightState.state = State_planned )
   CTLSPEC   EF( specificFlightState_Machine.specificFlightState.state = State_planeAssigned )
   CTLSPEC   EF( specificFlightState_Machine.specificFlightState.state = State_waitingForNextLeg )
   CTLSPEC   EF( specificFlightState_Machine.specificFlightState.state = State_boarding )
   CTLSPEC   EF( specificFlightState_Machine.specificFlightState.state = State_closedAtGate )
   CTLSPEC   EF( specificFlightState_Machine.specificFlightState.state = State_underway )
   CTLSPEC   EF( specificFlightState_Machine.specificFlightState.state = State_disembarking )
   CTLSPEC   EF( specificFlightState_Machine.specificFlightState.state = State_completed )
   CTLSPEC   EF( specificFlightState_Machine.specificFlightState.state = State_cancelled )

7
5
state :  cruise.umple.compiler.State@41861964[name:newBooking,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[3,4]
  stateMachine = 4db8b888 : 0
 cruise.umple.compiler.State@2e67df05[name:seatAssigned,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[4,20]
  stateMachine = 4db8b888 : 0
 cruise.umple.compiler.State@71590f85[name:checkedIn,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[9,17]
  stateMachine = 4db8b888 : 0
 cruise.umple.compiler.State@6565f3[name:cancelled,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[5,16]
  stateMachine = 4db8b888 : 0
 cruise.umple.compiler.State@891f18f[name:completed,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[14,18]
  stateMachine = 4db8b888 : 0

-- This file is generated from Test.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for BookingState --
MODULE BookingState

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { State_newBooking , State_seatAssigned , State_checkedIn , State_cancelled , State_completed };
     event : { ev_cancel , ev_cance , ev_checkIn , ev_assignSeat , ev_complete , ev_null };

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     state_stable :=  !( event = ev_cance | event = ev_assignSeat | event = ev_cancel | event = ev_checkIn | event = ev_complete );
     t1 := event = ev_assignSeat & state = State_newBooking;
     t2 := event = ev_cancel & state = State_newBooking;
     t3 := event = ev_cancel & state = State_seatAssigned;
     t4 := event = ev_checkIn & state = State_seatAssigned;
     t5 := event = ev_cance & state = State_seatAssigned;
     t6 := event = ev_cancel & state = State_checkedIn;
     t7 := event = ev_complete & state = State_checkedIn;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := State_newBooking;
     next( state ) := case
       t1 : State_seatAssigned;
       t4 : State_checkedIn;
       t2 | t5 | t3 | t6 : State_cancelled;
       t7 : State_completed;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       state_stable : { ev_cancel , ev_cance , ev_checkIn , ev_assignSeat , ev_complete };
       TRUE : ev_null;
     esac;

-- This defines a NuSMV module for BookingState_Machine --
MODULE BookingState_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     bookingState : BookingState;

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     bookingState_Machine : BookingState_Machine;

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( bookingState_Machine.bookingState.state = State_newBooking )
   CTLSPEC   EF( bookingState_Machine.bookingState.state = State_seatAssigned )
   CTLSPEC   EF( bookingState_Machine.bookingState.state = State_checkedIn )
   CTLSPEC   EF( bookingState_Machine.bookingState.state = State_cancelled )
   CTLSPEC   EF( bookingState_Machine.bookingState.state = State_completed )

6
5
state :  cruise.umple.compiler.State@cc655a[name:newBooking,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[3,4]
  stateMachine = 67dc7d0 : 0
 cruise.umple.compiler.State@46b2e0e4[name:seatAssigned,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[4,20]
  stateMachine = 67dc7d0 : 0
 cruise.umple.compiler.State@574ffd63[name:checkedIn,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[9,17]
  stateMachine = 67dc7d0 : 0
 cruise.umple.compiler.State@344ab465[name:cancelled,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[5,16]
  stateMachine = 67dc7d0 : 0
 cruise.umple.compiler.State@5ce1b67b[name:completed,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[13,18]
  stateMachine = 67dc7d0 : 0

-- This file is generated from ExampleFile1.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for BookingState --
MODULE BookingState

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { State_newBooking , State_seatAssigned , State_checkedIn , State_cancelled , State_completed };
     event : { ev_cancel , ev_checkIn , ev_assignSeat , ev_complete , ev_null };

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     state_stable :=  !( event = ev_cancel | event = ev_assignSeat | event = ev_checkIn | event = ev_complete );
     t1 := event = ev_assignSeat & state = State_newBooking;
     t2 := event = ev_cancel & state = State_newBooking;
     t3 := event = ev_cancel & state = State_seatAssigned;
     t4 := event = ev_checkIn & state = State_seatAssigned;
     t5 := event = ev_cancel & state = State_checkedIn;
     t6 := event = ev_complete & state = State_checkedIn;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := State_newBooking;
     next( state ) := case
       t1 : State_seatAssigned;
       t4 : State_checkedIn;
       t3 | t2 | t5 : State_cancelled;
       t6 : State_completed;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       state_stable : { ev_cancel , ev_checkIn , ev_assignSeat , ev_complete };
       TRUE : ev_null;
     esac;

-- This defines a NuSMV module for BookingState_Machine --
MODULE BookingState_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     bookingState : BookingState;

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     bookingState_Machine : BookingState_Machine;

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( bookingState_Machine.bookingState.state = State_newBooking )
   CTLSPEC   EF( bookingState_Machine.bookingState.state = State_seatAssigned )
   CTLSPEC   EF( bookingState_Machine.bookingState.state = State_checkedIn )
   CTLSPEC   EF( bookingState_Machine.bookingState.state = State_cancelled )
   CTLSPEC   EF( bookingState_Machine.bookingState.state = State_completed )

16
10
lockState :  cruise.umple.compiler.State@e944541[name:BothDoorsClosedLockFull,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[9,4]
  stateMachine = 1c89cec5 : 0
 cruise.umple.compiler.State@1447bef2[name:OpeningUpperGate,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[11,38]
  stateMachine = 1c89cec5 : 0
 cruise.umple.compiler.State@2b6c3f70[name:UpperGateOpen,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[16,28]
  stateMachine = 1c89cec5 : 0
 cruise.umple.compiler.State@77ec911[name:ClosingUpperGate,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[21,64]
  stateMachine = 1c89cec5 : 0
 cruise.umple.compiler.State@55d3c0dd[name:LoweringWater,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[12,36]
  stateMachine = 1c89cec5 : 0
 cruise.umple.compiler.State@7c4a44bb[name:BothDoorsClosedLockEmpty,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[35,4]
  stateMachine = 1c89cec5 : 0
 cruise.umple.compiler.State@369773fd[name:OpeningLowerGate,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[31,37]
  stateMachine = 1c89cec5 : 0
 cruise.umple.compiler.State@47d0127f[name:LowerGateOpen,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[42,28]
  stateMachine = 1c89cec5 : 0
 cruise.umple.compiler.State@c4ef770[name:ClosingLowerGate,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[47,60]
  stateMachine = 1c89cec5 : 0
 cruise.umple.compiler.State@228f15de[name:RaisingWater,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[38,38]
  stateMachine = 1c89cec5 : 0

-- This file is generated from ExampleFile2.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for LockLockState --
MODULE LockLockState

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { LockState_BothDoorsClosedLockFull , LockState_OpeningUpperGate , LockState_UpperGateOpen , LockState_ClosingUpperGate , LockState_LoweringWater , LockState_BothDoorsClosedLockEmpty , LockState_OpeningLowerGate , LockState_LowerGateOpen , LockState_ClosingLowerGate , LockState_RaisingWater };
     event : { ev_upperGateFullyClosed , ev_boatRequestsToEnterAndGoDown , ev_waterLevelMatchesUpStream , ev_boatInLockRequestingToGoDown , ev_lowerGateFullyClosed , ev_upperGateFullyOpen , ev_lowerGateFullyOpen , ev_boatInLockRequestingToGoUp , ev_waterLevelMatchesDownStream , ev_boatRequestsToEnterAndGoUp , ev_after3minutes , ev_null };
     boatGoingDown : boolean;
     boatGoingUp : boolean;
     boatBlockingGate : boolean;

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     lockState_stable :=  !( event = ev_boatRequestsToEnterAndGoDown | event = ev_boatInLockRequestingToGoDown | event = ev_upperGateFullyOpen | event = ev_boatInLockRequestingToGoUp | event = ev_boatRequestsToEnterAndGoUp | event = ev_upperGateFullyClosed | event = ev_waterLevelMatchesUpStream | event = ev_lowerGateFullyClosed | event = ev_lowerGateFullyOpen | event = ev_waterLevelMatchesDownStream | event = ev_after3minutes );
     t1 := event = ev_boatRequestsToEnterAndGoDown & state = LockState_BothDoorsClosedLockFull;
     t2 := event = ev_boatRequestsToEnterAndGoUp & state = LockState_BothDoorsClosedLockFull;
     t3 := event = ev_upperGateFullyOpen & state = LockState_OpeningUpperGate;
     t4 := event = ev_boatInLockRequestingToGoDown & state = LockState_UpperGateOpen;
     t5 := event = ev_after3minutes & state = LockState_UpperGateOpen & g1;
     t6 := event = ev_upperGateFullyClosed & state = LockState_ClosingUpperGate & g2;
     t7 := event = ev_upperGateFullyClosed & state = LockState_ClosingUpperGate & g3;
     t8 := event = ev_waterLevelMatchesDownStream & state = LockState_LoweringWater;
     t9 := event = ev_boatRequestsToEnterAndGoUp & state = LockState_BothDoorsClosedLockEmpty;
     t10 := event = ev_boatRequestsToEnterAndGoDown & state = LockState_BothDoorsClosedLockEmpty;
     t11 := event = ev_lowerGateFullyOpen & state = LockState_OpeningLowerGate;
     t12 := event = ev_boatInLockRequestingToGoUp & state = LockState_LowerGateOpen;
     t13 := event = ev_after3minutes & state = LockState_LowerGateOpen & g1;
     t14 := event = ev_lowerGateFullyClosed & state = LockState_ClosingLowerGate & g4;
     t15 := event = ev_lowerGateFullyClosed & state = LockState_ClosingLowerGate & g5;
     t16 := event = ev_waterLevelMatchesUpStream & state = LockState_RaisingWater;
     g1 := !boatBlockingGate;
     g2 := !boatGoingDown;
     g3 := boatGoingDown;
     g4 := !boatGoingUp;
     g5 := boatGoingUp;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := LockState_BothDoorsClosedLockFull;
     next( state ) := case
       t6 : LockState_BothDoorsClosedLockFull;
       t1 | t16 : LockState_OpeningUpperGate;
       t3 : LockState_UpperGateOpen;
       t4 | t5 : LockState_ClosingUpperGate;
       t2 | t7 : LockState_LoweringWater;
       t14 : LockState_BothDoorsClosedLockEmpty;
       t8 | t9 : LockState_OpeningLowerGate;
       t11 : LockState_LowerGateOpen;
       t12 | t13 : LockState_ClosingLowerGate;
       t10 | t15 : LockState_RaisingWater;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       lockState_stable : { ev_upperGateFullyClosed , ev_boatRequestsToEnterAndGoDown , ev_waterLevelMatchesUpStream , ev_boatInLockRequestingToGoDown , ev_lowerGateFullyClosed , ev_upperGateFullyOpen , ev_lowerGateFullyOpen , ev_boatInLockRequestingToGoUp , ev_waterLevelMatchesDownStream , ev_boatRequestsToEnterAndGoUp , ev_after3minutes };
       TRUE : ev_null;
     esac;

   -- This part defines logic for the assignment of values to state variable "boatGoingDown" of this NuSMV module --
   ASSIGN
     init( boatGoingDown ) := FALSE;

   -- This part defines logic for the assignment of values to state variable "boatGoingUp" of this NuSMV module --
   ASSIGN
     init( boatGoingUp ) := FALSE;

   -- This part defines logic for the assignment of values to state variable "boatBlockingGate" of this NuSMV module --
   ASSIGN
     init( boatBlockingGate ) := FALSE;

-- This defines a NuSMV module for LockLockState_Machine --
MODULE LockLockState_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     lockLockState : LockLockState;

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     lockLockState_Machine : LockLockState_Machine;

   -- The following properties are specified to certify that this model is free of non-determinism. 
   INVARSPEC   ( lockLockState_Machine.lockLockState.t6 & lockLockState_Machine.lockLockState.t7 -> next( lockLockState_Machine.lockLockState.state = LockState_BothDoorsClosedLockFull & lockLockState_Machine.lockLockState.state = LockState_LoweringWater ) )
   INVARSPEC   ( lockLockState_Machine.lockLockState.t14 & lockLockState_Machine.lockLockState.t15 -> next( lockLockState_Machine.lockLockState.state = LockState_BothDoorsClosedLockEmpty & lockLockState_Machine.lockLockState.state = LockState_RaisingWater ) )

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( lockLockState_Machine.lockLockState.state = LockState_BothDoorsClosedLockFull )
   CTLSPEC   EF( lockLockState_Machine.lockLockState.state = LockState_OpeningUpperGate )
   CTLSPEC   EF( lockLockState_Machine.lockLockState.state = LockState_UpperGateOpen )
   CTLSPEC   EF( lockLockState_Machine.lockLockState.state = LockState_ClosingUpperGate )
   CTLSPEC   EF( lockLockState_Machine.lockLockState.state = LockState_LoweringWater )
   CTLSPEC   EF( lockLockState_Machine.lockLockState.state = LockState_BothDoorsClosedLockEmpty )
   CTLSPEC   EF( lockLockState_Machine.lockLockState.state = LockState_OpeningLowerGate )
   CTLSPEC   EF( lockLockState_Machine.lockLockState.state = LockState_LowerGateOpen )
   CTLSPEC   EF( lockLockState_Machine.lockLockState.state = LockState_ClosingLowerGate )
   CTLSPEC   EF( lockLockState_Machine.lockLockState.state = LockState_RaisingWater )

18
13
elevator_state_machine :  cruise.umple.compiler.State@4d3946b6[name:Idle,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[6,4]
  stateMachine = 7a6433f3 : 0
 cruise.umple.compiler.State@78b906d[name:PrepareUpDoorClosingMovingUp,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[11,6]
  stateMachine = 7a6433f3 : 0
 cruise.umple.compiler.State@330a6b76[name:PrepareDownDoorClosingMovingDown,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[17,6]
  stateMachine = 7a6433f3 : 0
 cruise.umple.compiler.State@34018757[name:InMotionMoving,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[14,17]
  stateMachine = 7a6433f3 : 0
 cruise.umple.compiler.State@6f21c18f[name:InMotionStopping,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[26,57]
  stateMachine = 7a6433f3 : 0
 cruise.umple.compiler.State@34723cfe[name:OnFloorDoorOpening,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[29,35]
  stateMachine = 7a6433f3 : 0
 cruise.umple.compiler.State@54c3b0dd[name:OnFloorAtFloor,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[35,23]
  stateMachine = 7a6433f3 : 0
 cruise.umple.compiler.State@6c40ae2d[name:OnFloorDoorClosing,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[38,39]
  stateMachine = 7a6433f3 : 0
 cruise.umple.compiler.State@d0c3793[name:OnFloorCheckingNextDestination,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[42,22]
  stateMachine = 7a6433f3 : 0

-- This file is generated from Elevator.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for ElevatorElevator_state_machine --
MODULE ElevatorElevator_state_machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Elevator_state_machine_Idle , Elevator_state_machine_PrepareUpDoorClosingMovingUp , Elevator_state_machine_PrepareDownDoorClosingMovingDown , Elevator_state_machine_InMotionMoving , Elevator_state_machine_InMotionStopping , Elevator_state_machine_OnFloorDoorOpening , Elevator_state_machine_OnFloorAtFloor , Elevator_state_machine_OnFloorDoorClosing , Elevator_state_machine_OnFloorCheckingNextDestination };
     event : { ev_stopped , ev_obstruction , ev_upRequest , ev_doorClosed , ev_started , ev_approachedFloor , ev_downRequest , ev_approachingFloor , ev_doorOpened , ev_doorOpeningRequest , ev_timeoutAtFloorToDoorClosing , ev_doorClosingRequest , ev_noRequest , ev_null };
     timer : integer;
     floorRequested : boolean;
     obstruction : boolean;

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     elevator_state_machine_stable :=  !( event = ev_obstruction | event = ev_doorClosed | event = ev_approachedFloor | event = ev_approachingFloor | event = ev_doorOpeningRequest | event = ev_doorClosingRequest | event = ev_stopped | event = ev_upRequest | event = ev_started | event = ev_downRequest | event = ev_doorOpened | event = ev_timeoutAtFloorToDoorClosing | event = ev_noRequest );
     t1 := event = ev_upRequest & state = Elevator_state_machine_Idle;
     t2 := event = ev_downRequest & state = Elevator_state_machine_Idle;
     t3 := event = ev_started & state = Elevator_state_machine_PrepareUpDoorClosingMovingUp;
     t4 := event = ev_doorClosed & state = Elevator_state_machine_PrepareUpDoorClosingMovingUp;
     t5 := event = ev_started & state = Elevator_state_machine_PrepareDownDoorClosingMovingDown;
     t6 := event = ev_doorClosed & state = Elevator_state_machine_PrepareDownDoorClosingMovingDown;
     t7 := event = ev_approachingFloor & state = Elevator_state_machine_InMotionMoving & g1;
     t8 := event = ev_approachedFloor & state = Elevator_state_machine_InMotionMoving & g2;
     t9 := event = ev_stopped & state = Elevator_state_machine_InMotionStopping;
     t10 := event = ev_doorOpened & state = Elevator_state_machine_OnFloorDoorOpening;
     t11 := event = ev_timeoutAtFloorToDoorClosing & state = Elevator_state_machine_OnFloorAtFloor & g3;
     t12 := event = ev_doorClosingRequest & state = Elevator_state_machine_OnFloorAtFloor;
     t13 := event = ev_obstruction & state = Elevator_state_machine_OnFloorDoorClosing;
     t14 := event = ev_doorOpeningRequest & state = Elevator_state_machine_OnFloorDoorClosing;
     t15 := event = ev_doorClosed & state = Elevator_state_machine_OnFloorDoorClosing;
     t16 := event = ev_upRequest & state = Elevator_state_machine_OnFloorCheckingNextDestination;
     t17 := event = ev_downRequest & state = Elevator_state_machine_OnFloorCheckingNextDestination;
     t18 := event = ev_noRequest & state = Elevator_state_machine_OnFloorCheckingNextDestination;
     g1 := !floorRequested;
     g2 := floorRequested;
     g3 := !obstruction;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := Elevator_state_machine_Idle;
     next( state ) := case
       t18 : Elevator_state_machine_Idle;
       t1 | t16 : Elevator_state_machine_PrepareUpDoorClosingMovingUp;
       t2 | t17 : Elevator_state_machine_PrepareDownDoorClosingMovingDown;
       t5 | t6 | t3 | t4 | t7 : Elevator_state_machine_InMotionMoving;
       t8 : Elevator_state_machine_InMotionStopping;
       t13 | t9 | t14 : Elevator_state_machine_OnFloorDoorOpening;
       t10 : Elevator_state_machine_OnFloorAtFloor;
       t11 | t12 : Elevator_state_machine_OnFloorDoorClosing;
       t15 : Elevator_state_machine_OnFloorCheckingNextDestination;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       elevator_state_machine_stable : { ev_stopped , ev_obstruction , ev_upRequest , ev_doorClosed , ev_started , ev_approachedFloor , ev_downRequest , ev_approachingFloor , ev_doorOpened , ev_doorOpeningRequest , ev_timeoutAtFloorToDoorClosing , ev_doorClosingRequest , ev_noRequest };
       TRUE : ev_null;
     esac;

   -- This part defines logic for the assignment of values to state variable "timer" of this NuSMV module --
   ASSIGN
     init( timer ) := 100;

   -- This part defines logic for the assignment of values to state variable "floorRequested" of this NuSMV module --
   ASSIGN
     init( floorRequested ) := FALSE;

   -- This part defines logic for the assignment of values to state variable "obstruction" of this NuSMV module --
   ASSIGN
     init( obstruction ) := FALSE;

-- This defines a NuSMV module for ElevatorElevator_state_machine_Machine --
MODULE ElevatorElevator_state_machine_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     elevatorElevator_state_machine : ElevatorElevator_state_machine;

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     elevatorElevator_state_machine_Machine : ElevatorElevator_state_machine_Machine;

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( elevatorElevator_state_machine_Machine.elevatorElevator_state_machine.state = Elevator_state_machine_Idle )
   CTLSPEC   EF( elevatorElevator_state_machine_Machine.elevatorElevator_state_machine.state = Elevator_state_machine_PrepareUpDoorClosingMovingUp )
   CTLSPEC   EF( elevatorElevator_state_machine_Machine.elevatorElevator_state_machine.state = Elevator_state_machine_PrepareDownDoorClosingMovingDown )
   CTLSPEC   EF( elevatorElevator_state_machine_Machine.elevatorElevator_state_machine.state = Elevator_state_machine_InMotionMoving )
   CTLSPEC   EF( elevatorElevator_state_machine_Machine.elevatorElevator_state_machine.state = Elevator_state_machine_InMotionStopping )
   CTLSPEC   EF( elevatorElevator_state_machine_Machine.elevatorElevator_state_machine.state = Elevator_state_machine_OnFloorDoorOpening )
   CTLSPEC   EF( elevatorElevator_state_machine_Machine.elevatorElevator_state_machine.state = Elevator_state_machine_OnFloorAtFloor )
   CTLSPEC   EF( elevatorElevator_state_machine_Machine.elevatorElevator_state_machine.state = Elevator_state_machine_OnFloorDoorClosing )
   CTLSPEC   EF( elevatorElevator_state_machine_Machine.elevatorElevator_state_machine.state = Elevator_state_machine_OnFloorCheckingNextDestination )

1
2
sm :  cruise.umple.compiler.State@54ff871a[name:s1,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[8,4]
  stateMachine = 4c94621d : 0
 cruise.umple.compiler.State@2ecb7f0c[name:s2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[9,27]
  stateMachine = 4c94621d : 0

-- This file is generated from ConstantTest.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for CruiseControlSystemSm --
MODULE CruiseControlSystemSm

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Sm_s1 , Sm_s2 };
     event : { ev_a , ev_null };
     c : integer;

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     sm_stable :=  !( event = ev_a );
     t1 := event = ev_a & state = Sm_s1;
     aa := 5;
     bb := 5;
     cc := 5.00;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := Sm_s1;
     next( state ) := case
       t1 : Sm_s2;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       sm_stable : { ev_a };
       TRUE : ev_null;
     esac;

   -- This part defines logic for the assignment of values to state variable "c" of this NuSMV module --
   ASSIGN
     init( c ) := 0;

-- This defines a NuSMV module for CruiseControlSystemSm_Machine --
MODULE CruiseControlSystemSm_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     cruiseControlSystemSm : CruiseControlSystemSm;

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     cruiseControlSystemSm_Machine : CruiseControlSystemSm_Machine;

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( cruiseControlSystemSm_Machine.cruiseControlSystemSm.state = Sm_s1 )
   CTLSPEC   EF( cruiseControlSystemSm_Machine.cruiseControlSystemSm.state = Sm_s2 )

13
10
state :  cruise.umple.compiler.State@66c70e18[name:planned,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[8,4]
  stateMachine = 1ea44b7 : 0
 cruise.umple.compiler.State@48515dfc[name:planeAssigned,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[9,21]
  stateMachine = 1ea44b7 : 0
 cruise.umple.compiler.State@8f2513c[name:activeWithPassengerswaitingForNextLeg,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[19,6]
  stateMachine = 1ea44b7 : 0
 cruise.umple.compiler.State@561b39f4[name:activeWithPassengersboarding,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[13,28]
  stateMachine = 1ea44b7 : 0
 cruise.umple.compiler.State@587107c[name:activeWithPassengersclosedAtGate,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[23,28]
  stateMachine = 1ea44b7 : 0
 cruise.umple.compiler.State@47fb038d[name:activeWithPassengersunderway,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[26,30]
  stateMachine = 1ea44b7 : 0
 cruise.umple.compiler.State@5d9ac1ff[name:activeWithPassengersdisembarking,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[18,18]
  stateMachine = 1ea44b7 : 0
 cruise.umple.compiler.State@52418721[name:completed,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[33,45]
  stateMachine = 1ea44b7 : 0
 cruise.umple.compiler.State@6ff879e5[name:cancelled,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[10,16]
  stateMachine = 1ea44b7 : 0

-- This file is generated from SpecificFlight.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for SpecificFlightState --
MODULE SpecificFlightState

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { State_planned , State_planeAssigned , State_activeWithPassengerswaitingForNextLeg , State_activeWithPassengersboarding , State_activeWithPassengersclosedAtGate , State_activeWithPassengersunderway , State_activeWithPassengersdisembarking , State_completed , State_cancelled };
     event : { ev_cancel , ev_boardingComplete , ev_passengersOut , ev_assignPlane , ev_permissionToDepart , ev_evacuate , ev_readyForPassengers , ev_changePlane , ev_arriveAtGate , ev_null };
     finished : boolean;
     empty : boolean;

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     state_stable :=  !( event = ev_boardingComplete | event = ev_assignPlane | event = ev_evacuate | event = ev_changePlane | event = ev_cancel | event = ev_passengersOut | event = ev_permissionToDepart | event = ev_readyForPassengers | event = ev_arriveAtGate );
     t1 := event = ev_assignPlane & state = State_planned;
     t2 := event = ev_cancel & state = State_planned;
     t3 := event = ev_changePlane & state = State_planeAssigned;
     t4 := event = ev_readyForPassengers & state = State_planeAssigned;
     t5 := event = ev_cancel & state = State_planeAssigned;
     t6 := event = ev_evacuate & state = State_activeWithPassengerswaitingForNextLeg;
     t7 := event = ev_readyForPassengers & state = State_activeWithPassengerswaitingForNextLeg;
     t8 := event = ev_evacuate & state = State_activeWithPassengersboarding;
     t9 := event = ev_boardingComplete & state = State_activeWithPassengersboarding;
     t10 := event = ev_evacuate & state = State_activeWithPassengersclosedAtGate;
     t11 := event = ev_permissionToDepart & state = State_activeWithPassengersclosedAtGate;
     t12 := event = ev_evacuate & state = State_activeWithPassengersunderway;
     t13 := event = ev_arriveAtGate & state = State_activeWithPassengersunderway;
     t14 := event = ev_evacuate & state = State_activeWithPassengersdisembarking;
     t15 := event = ev_passengersOut & state = State_activeWithPassengersdisembarking & g1;
     t16 := event = ev_passengersOut & state = State_activeWithPassengersdisembarking & g2;
     t17 := event = ev_passengersOut & state = State_activeWithPassengersdisembarking & g3;
     g1 := !empty;
     g2 := !finished & empty;
     g3 := finished & empty;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := State_planned;
     next( state ) := case
       t3 : State_planned;
       t1 | t16 : State_planeAssigned;
       t15 : State_activeWithPassengerswaitingForNextLeg;
       t4 | t7 : State_activeWithPassengersboarding;
       t9 : State_activeWithPassengersclosedAtGate;
       t11 : State_activeWithPassengersunderway;
       t6 | t10 | t14 | t8 | t12 | t13 : State_activeWithPassengersdisembarking;
       t17 : State_completed;
       t2 | t5 : State_cancelled;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       state_stable : { ev_cancel , ev_boardingComplete , ev_passengersOut , ev_assignPlane , ev_permissionToDepart , ev_evacuate , ev_readyForPassengers , ev_changePlane , ev_arriveAtGate };
       TRUE : ev_null;
     esac;

   -- This part defines logic for the assignment of values to state variable "finished" of this NuSMV module --
   ASSIGN
     init( finished ) := FALSE;

   -- This part defines logic for the assignment of values to state variable "empty" of this NuSMV module --
   ASSIGN
     init( empty ) := FALSE;

-- This defines a NuSMV module for SpecificFlightState_Machine --
MODULE SpecificFlightState_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     specificFlightState : SpecificFlightState;

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     specificFlightState_Machine : SpecificFlightState_Machine;

   -- The following properties are specified to certify that this model is free of non-determinism. 
   INVARSPEC   ( specificFlightState_Machine.specificFlightState.t15 & specificFlightState_Machine.specificFlightState.t16 -> next( specificFlightState_Machine.specificFlightState.state = State_activeWithPassengerswaitingForNextLeg & specificFlightState_Machine.specificFlightState.state = State_planeAssigned ) )
   INVARSPEC   ( specificFlightState_Machine.specificFlightState.t15 & specificFlightState_Machine.specificFlightState.t17 -> next( specificFlightState_Machine.specificFlightState.state = State_activeWithPassengerswaitingForNextLeg & specificFlightState_Machine.specificFlightState.state = State_completed ) )
   INVARSPEC   ( specificFlightState_Machine.specificFlightState.t16 & specificFlightState_Machine.specificFlightState.t17 -> next( specificFlightState_Machine.specificFlightState.state = State_planeAssigned & specificFlightState_Machine.specificFlightState.state = State_completed ) )

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( specificFlightState_Machine.specificFlightState.state = State_planned )
   CTLSPEC   EF( specificFlightState_Machine.specificFlightState.state = State_planeAssigned )
   CTLSPEC   EF( specificFlightState_Machine.specificFlightState.state = State_activeWithPassengerswaitingForNextLeg )
   CTLSPEC   EF( specificFlightState_Machine.specificFlightState.state = State_activeWithPassengersboarding )
   CTLSPEC   EF( specificFlightState_Machine.specificFlightState.state = State_activeWithPassengersclosedAtGate )
   CTLSPEC   EF( specificFlightState_Machine.specificFlightState.state = State_activeWithPassengersunderway )
   CTLSPEC   EF( specificFlightState_Machine.specificFlightState.state = State_activeWithPassengersdisembarking )
   CTLSPEC   EF( specificFlightState_Machine.specificFlightState.state = State_completed )
   CTLSPEC   EF( specificFlightState_Machine.specificFlightState.state = State_cancelled )

11
5
status :  cruise.umple.compiler.State@7b4185ea[name:Planned,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[5,4]
  stateMachine = 196bc2c1 : 0
 cruise.umple.compiler.State@1fd2f96d[name:OpenNotEnoughStudents,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[8,26]
  stateMachine = 196bc2c1 : 0
 cruise.umple.compiler.State@12d49ede[name:OpenEnoughStudents,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[15,33]
  stateMachine = 196bc2c1 : 0
 cruise.umple.compiler.State@65cd37bb[name:Cancelled,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[7,16]
  stateMachine = 196bc2c1 : 0
 cruise.umple.compiler.State@22f79c09[name:Closed,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[21,27]
  stateMachine = 196bc2c1 : 0

-- This file is generated from CourseSection.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for CourseSectionStatus --
MODULE CourseSectionStatus

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Status_Planned , Status_OpenNotEnoughStudents , Status_OpenEnoughStudents , Status_Cancelled , Status_Closed };
     event : { ev_cancel , ev_classSizeExceedsMinimum , ev_openRegistration , ev_requestToRegister , ev_classSizeExceedsMaximum , ev_closeRegistration , ev_null };

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     status_stable :=  !( event = ev_cancel | event = ev_openRegistration | event = ev_classSizeExceedsMaximum | event = ev_classSizeExceedsMinimum | event = ev_requestToRegister | event = ev_closeRegistration );
     t1 := event = ev_cancel & state = Status_Planned;
     t2 := event = ev_openRegistration & state = Status_Planned;
     t3 := event = ev_requestToRegister & state = Status_OpenNotEnoughStudents;
     t4 := event = ev_closeRegistration & state = Status_OpenNotEnoughStudents;
     t5 := event = ev_cancel & state = Status_OpenNotEnoughStudents;
     t6 := event = ev_classSizeExceedsMinimum & state = Status_OpenNotEnoughStudents;
     t7 := event = ev_requestToRegister & state = Status_OpenEnoughStudents;
     t8 := event = ev_cancel & state = Status_OpenEnoughStudents;
     t9 := event = ev_closeRegistration & state = Status_OpenEnoughStudents;
     t10 := event = ev_classSizeExceedsMaximum & state = Status_OpenEnoughStudents;
     t11 := event = ev_cancel & state = Status_Closed;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := Status_Planned;
     next( state ) := case
       t2 | t3 : Status_OpenNotEnoughStudents;
       t6 | t7 : Status_OpenEnoughStudents;
       t4 | t8 | t1 | t5 | t11 : Status_Cancelled;
       t9 | t10 : Status_Closed;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       status_stable : { ev_cancel , ev_classSizeExceedsMinimum , ev_openRegistration , ev_requestToRegister , ev_classSizeExceedsMaximum , ev_closeRegistration };
       TRUE : ev_null;
     esac;

-- This defines a NuSMV module for CourseSectionStatus_Machine --
MODULE CourseSectionStatus_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     courseSectionStatus : CourseSectionStatus;

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     courseSectionStatus_Machine : CourseSectionStatus_Machine;

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( courseSectionStatus_Machine.courseSectionStatus.state = Status_Planned )
   CTLSPEC   EF( courseSectionStatus_Machine.courseSectionStatus.state = Status_OpenNotEnoughStudents )
   CTLSPEC   EF( courseSectionStatus_Machine.courseSectionStatus.state = Status_OpenEnoughStudents )
   CTLSPEC   EF( courseSectionStatus_Machine.courseSectionStatus.state = Status_Cancelled )
   CTLSPEC   EF( courseSectionStatus_Machine.courseSectionStatus.state = Status_Closed )

43
25
cruiseControlSystem :  cruise.umple.compiler.State@6ca1c156[name:adaptiveControlSystem,isConcurrent:true,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[4,6]
  stateMachine = 521f2a23 : 5
 cruise.umple.compiler.State@228ed68c[name:terminal,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[7,24]
  stateMachine = 521f2a23 : 0

cruiseController :  cruise.umple.compiler.State@30e3544d[name:inactivetempState,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[9,32]
  stateMachine = 522a9876 : 0
 cruise.umple.compiler.State@794ffe22[name:tempStatetempState_1,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[18,39]
  stateMachine = 522a9876 : 0
 cruise.umple.compiler.State@2da16d31[name:cruisingtempState,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[26,12]
  stateMachine = 522a9876 : 0
 cruise.umple.compiler.State@74a15f4[name:tempState_1tempState_2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[34,21]
  stateMachine = 522a9876 : 0
 cruise.umple.compiler.State@125c443[name:standbytempState,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[42,15]
  stateMachine = 522a9876 : 0
 cruise.umple.compiler.State@71d94ab[name:tempState_1tempState_2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[48,21]
  stateMachine = 522a9876 : 0

speedControl :  cruise.umple.compiler.State@21f3a99c[name:speedControldisabled,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[58,4]
  stateMachine = 76c1ede3 : 0
 cruise.umple.compiler.State@59e938a4[name:speedControlenabled,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[62,22]
  stateMachine = 76c1ede3 : 0
 cruise.umple.compiler.State@323a47fe[name:speedControltempState,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[65,14]
  stateMachine = 76c1ede3 : 0

sensorScan :  cruise.umple.compiler.State@eb9b76c[name:sensorScan,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[75,2]
  stateMachine = 776eedad : 0

inputSpeed :  cruise.umple.compiler.State@6752d7fc[name:inputSpeedcheckSpeed,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[88,15]
  stateMachine = 7b7695f : 0

throttle :  cruise.umple.compiler.State@4476ac12[name:throttletempState,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[97,18]
  stateMachine = 447522b4 : 0

-- This file is generated from AdaptiveCruiseControlWithTerminalState.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for CruiseControlSystemCruiseControlSystem --
MODULE CruiseControlSystemCruiseControlSystem ( _cruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController , _cruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl , _cruiseControlSystemAdaptiveControlSystemCruiseControlSystemSensorScan , _cruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed , _cruiseControlSystemAdaptiveControlSystemThrottleThrottle )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { CruiseControlSystem_adaptiveControlSystem , CruiseControlSystem_terminal };
     event : { ev_resume , ev_engineOff , ev_accelerator , ev_engineOn , ev_zoom , ev_enableControl , ev_recordSpeed , ev_disableControl , ev_off , ev_speed , ev_brake , ev_setThrottle , ev_term , ev_clearSpeed , ev_on , ev_null };

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     cruiseControlSystem_stable :=  !( event = ev_engineOff | event = ev_engineOn | event = ev_enableControl | event = ev_disableControl | event = ev_speed | event = ev_setThrottle | event = ev_clearSpeed | event = ev_resume | event = ev_accelerator | event = ev_zoom | event = ev_recordSpeed | event = ev_off | event = ev_brake | event = ev_term | event = ev_on );
     t1 := event = ev_term & _cruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state != null;
     t2 := event = ev_engineOn & _cruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_inactivetempState;
     t3 := event = ev_recordSpeed & _cruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_inactivetempState;
     t4 := event = ev_enableControl & _cruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_inactivetempState;
     t5 := event = ev_setThrottle & _cruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_inactivetempState;
     t6 := event = ev_clearSpeed & _cruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_inactivetempState;
     t7 := event = ev_disableControl & _cruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_inactivetempState;
     t8 := event = ev_engineOff & _cruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_tempStatetempState_1;
     t9 := event = ev_on & _cruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_tempStatetempState_1;
     t10 := event = ev_recordSpeed & _cruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_tempStatetempState_1;
     t11 := event = ev_enableControl & _cruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_tempStatetempState_1;
     t12 := event = ev_engineOff & _cruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_cruisingtempState;
     t13 := event = ev_off & _cruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_cruisingtempState;
     t14 := event = ev_brake & _cruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_cruisingtempState;
     t15 := event = ev_accelerator & _cruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_cruisingtempState;
     t16 := event = ev_on & _cruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_cruisingtempState;
     t17 := event = ev_engineOff & _cruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_tempState_1tempState_2;
     t18 := event = ev_off & _cruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_tempState_1tempState_2;
     t19 := event = ev_brake & _cruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_tempState_1tempState_2;
     t20 := event = ev_accelerator & _cruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_tempState_1tempState_2;
     t21 := event = ev_on & _cruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_tempState_1tempState_2;
     t22 := event = ev_enableControl & _cruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_tempState_1tempState_2;
     t23 := event = ev_engineOff & _cruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_standbytempState;
     t24 := event = ev_resume & _cruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_standbytempState;
     t25 := event = ev_on & _cruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_standbytempState;
     t26 := event = ev_engineOff & _cruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_tempState_1tempState_2;
     t27 := event = ev_resume & _cruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_tempState_1tempState_2;
     t28 := event = ev_on & _cruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_tempState_1tempState_2;
     t29 := event = ev_term & _cruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl.state != null;
     t30 := event = ev_speed & _cruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl.state = CruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl_speedControldisabled;
     t31 := event = ev_clearSpeed & _cruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl.state = CruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl_speedControldisabled;
     t32 := event = ev_recordSpeed & _cruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl.state = CruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl_speedControldisabled;
     t33 := event = ev_enableControl & _cruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl.state = CruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl_speedControldisabled;
     t34 := event = ev_speed & _cruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl.state = CruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl_speedControlenabled;
     t35 := event = ev_recordSpeed & _cruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl.state = CruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl_speedControlenabled;
     t36 := event = ev_enableControl & _cruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl.state = CruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl_speedControlenabled;
     t37 := event = ev_engineOn & _cruiseControlSystemAdaptiveControlSystemCruiseControlSystemSensorScan.state = CruiseControlSystemAdaptiveControlSystemCruiseControlSystemSensorScan_sensorScan;
     t38 := event = ev_engineOff & _cruiseControlSystemAdaptiveControlSystemCruiseControlSystemSensorScan.state = CruiseControlSystemAdaptiveControlSystemCruiseControlSystemSensorScan_sensorScan;
     t39 := event = ev_on & _cruiseControlSystemAdaptiveControlSystemCruiseControlSystemSensorScan.state = CruiseControlSystemAdaptiveControlSystemCruiseControlSystemSensorScan_sensorScan;
     t40 := event = ev_off & _cruiseControlSystemAdaptiveControlSystemCruiseControlSystemSensorScan.state = CruiseControlSystemAdaptiveControlSystemCruiseControlSystemSensorScan_sensorScan;
     t41 := event = ev_resume & _cruiseControlSystemAdaptiveControlSystemCruiseControlSystemSensorScan.state = CruiseControlSystemAdaptiveControlSystemCruiseControlSystemSensorScan_sensorScan;
     t42 := event = ev_brake & _cruiseControlSystemAdaptiveControlSystemCruiseControlSystemSensorScan.state = CruiseControlSystemAdaptiveControlSystemCruiseControlSystemSensorScan_sensorScan;
     t43 := event = ev_accelerator & _cruiseControlSystemAdaptiveControlSystemCruiseControlSystemSensorScan.state = CruiseControlSystemAdaptiveControlSystemCruiseControlSystemSensorScan_sensorScan;
     t44 := event = ev_term & _cruiseControlSystemAdaptiveControlSystemCruiseControlSystemSensorScan.state = CruiseControlSystemAdaptiveControlSystemCruiseControlSystemSensorScan_sensorScan;
     t45 := event = ev_engineOn & _cruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed.state != null;
     t46 := event = ev_engineOff & _cruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed.state != null;
     t47 := event = ev_term & _cruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed.state != null;
     t48 := event = ev_speed & _cruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed.state = CruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed_inputSpeedcheckSpeed;
     t49 := event = ev_setThrottle & _cruiseControlSystemAdaptiveControlSystemThrottleThrottle.state != null;
     t50 := event = ev_zoom & _cruiseControlSystemAdaptiveControlSystemThrottleThrottle.state != null;
     t51 := event = ev_term & _cruiseControlSystemAdaptiveControlSystemThrottleThrottle.state != null;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := CruiseControlSystem_adaptiveControlSystem;
     next( state ) := case
       t2 | t9 | t17 | t18 | t19 | t20 | t26 | t27 | t49 | t21 | t28 | t6 | t11 | t10 | t30 | t32 | t5 | t35 | t38 | t40 | t42 | t46 | t45 | t8 | t12 | t13 | t14 | t15 | t23 | t24 | t34 | t16 | t25 | t3 | t4 | t22 | t7 | t31 | t36 | t33 | t37 | t39 | t41 | t43 | t50 | t48 : CruiseControlSystem_adaptiveControlSystem;
       t29 | t47 | t1 | t44 | t51 : CruiseControlSystem_terminal;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       cruiseControlSystem_stable : { ev_resume , ev_engineOff , ev_accelerator , ev_engineOn , ev_zoom , ev_enableControl , ev_recordSpeed , ev_disableControl , ev_off , ev_speed , ev_brake , ev_setThrottle , ev_term , ev_clearSpeed , ev_on };
       TRUE : ev_null;
     esac;

-- This defines a NuSMV module for CruiseControlSystemCruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController --
MODULE CruiseControlSystemCruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController ( _cruiseControlSystem )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_inactivetempState , CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_tempStatetempState_1 , CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_cruisingtempState , CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_tempState_1tempState_2 , CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_standbytempState , CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_tempState_1tempState_2 , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _cruiseControlSystem.t1 | _cruiseControlSystem.t44 | _cruiseControlSystem.t51 | _cruiseControlSystem.t29 | _cruiseControlSystem.t47 | _cruiseControlSystem.t5 : null;
       _cruiseControlSystem.t8 | _cruiseControlSystem.t12 | _cruiseControlSystem.t13 | _cruiseControlSystem.t14 | _cruiseControlSystem.t15 | _cruiseControlSystem.t23 | _cruiseControlSystem.t24 | _cruiseControlSystem.t34 | _cruiseControlSystem.t2 | _cruiseControlSystem.t9 | _cruiseControlSystem.t17 | _cruiseControlSystem.t18 | _cruiseControlSystem.t19 | _cruiseControlSystem.t20 | _cruiseControlSystem.t26 | _cruiseControlSystem.t27 | _cruiseControlSystem.t49 : CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_inactivetempState;
       _cruiseControlSystem.t16 | _cruiseControlSystem.t25 | _cruiseControlSystem.t3 | _cruiseControlSystem.t21 | _cruiseControlSystem.t28 | _cruiseControlSystem.t6 : CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_tempStatetempState_1;
       _cruiseControlSystem.t11 | _cruiseControlSystem.t4 | _cruiseControlSystem.t22 : CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_cruisingtempState;
       _cruiseControlSystem.t10 : CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_tempState_1tempState_2;
       _cruiseControlSystem.t7 : CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_standbytempState;
       _cruiseControlSystem.state = CruiseControlSystem_adaptiveControlSystem & state = null : CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_inactivetempState;
       TRUE : state;
     esac;

-- This defines a NuSMV module for CruiseControlSystemCruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl --
MODULE CruiseControlSystemCruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl ( _cruiseControlSystem )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { CruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl_speedControldisabled , CruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl_speedControlenabled , CruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl_speedControltempState , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _cruiseControlSystem.t29 | _cruiseControlSystem.t47 | _cruiseControlSystem.t34 | _cruiseControlSystem.t1 | _cruiseControlSystem.t44 | _cruiseControlSystem.t51 | _cruiseControlSystem.t49 : null;
       _cruiseControlSystem.t30 | _cruiseControlSystem.t32 | _cruiseControlSystem.t31 | _cruiseControlSystem.t36 : CruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl_speedControldisabled;
       _cruiseControlSystem.t33 | _cruiseControlSystem.t5 | _cruiseControlSystem.t35 : CruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl_speedControlenabled;
       _cruiseControlSystem.state = CruiseControlSystem_adaptiveControlSystem & state = null : CruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl_speedControldisabled;
       TRUE : state;
     esac;

-- This defines a NuSMV module for CruiseControlSystemCruiseControlSystemAdaptiveControlSystemCruiseControlSystemSensorScan --
MODULE CruiseControlSystemCruiseControlSystemAdaptiveControlSystemCruiseControlSystemSensorScan ( _cruiseControlSystem )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { CruiseControlSystemAdaptiveControlSystemCruiseControlSystemSensorScan_sensorScan , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _cruiseControlSystem.t1 | _cruiseControlSystem.t44 | _cruiseControlSystem.t51 | _cruiseControlSystem.t34 | _cruiseControlSystem.t29 | _cruiseControlSystem.t47 | _cruiseControlSystem.t5 | _cruiseControlSystem.t49 : null;
       _cruiseControlSystem.state = CruiseControlSystem_adaptiveControlSystem & state = null : CruiseControlSystemAdaptiveControlSystemCruiseControlSystemSensorScan_sensorScan;
       TRUE : state;
     esac;

-- This defines a NuSMV module for CruiseControlSystemCruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed --
MODULE CruiseControlSystemCruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed ( _cruiseControlSystem )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { CruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed_inputSpeedcheckSpeed , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _cruiseControlSystem.t1 | _cruiseControlSystem.t44 | _cruiseControlSystem.t51 | _cruiseControlSystem.t34 | _cruiseControlSystem.t29 | _cruiseControlSystem.t47 | _cruiseControlSystem.t5 | _cruiseControlSystem.t49 : null;
       _cruiseControlSystem.t45 | _cruiseControlSystem.t48 : CruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed_inputSpeedcheckSpeed;
       _cruiseControlSystem.state = CruiseControlSystem_adaptiveControlSystem & state = null : CruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed_inputSpeedcheckSpeed;
       TRUE : state;
     esac;

-- This defines a NuSMV module for CruiseControlSystemCruiseControlSystemAdaptiveControlSystemThrottleThrottle --
MODULE CruiseControlSystemCruiseControlSystemAdaptiveControlSystemThrottleThrottle ( _cruiseControlSystem )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { CruiseControlSystemAdaptiveControlSystemThrottleThrottle_throttletempState , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _cruiseControlSystem.t1 | _cruiseControlSystem.t44 | _cruiseControlSystem.t51 | _cruiseControlSystem.t34 | _cruiseControlSystem.t29 | _cruiseControlSystem.t47 | _cruiseControlSystem.t5 | _cruiseControlSystem.t49 : null;
       _cruiseControlSystem.state = CruiseControlSystem_adaptiveControlSystem & state = null : CruiseControlSystemAdaptiveControlSystemThrottleThrottle_throttletempState;
       TRUE : state;
     esac;

-- This defines a NuSMV module for CruiseControlSystemCruiseControlSystem_Machine --
MODULE CruiseControlSystemCruiseControlSystem_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     cruiseControlSystemCruiseControlSystem : CruiseControlSystemCruiseControlSystem( cruiseControlSystemCruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController , cruiseControlSystemCruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl , cruiseControlSystemCruiseControlSystemAdaptiveControlSystemCruiseControlSystemSensorScan , cruiseControlSystemCruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed , cruiseControlSystemCruiseControlSystemAdaptiveControlSystemThrottleThrottle );
     cruiseControlSystemCruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController : CruiseControlSystemCruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController( cruiseControlSystemCruiseControlSystem );
     cruiseControlSystemCruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl : CruiseControlSystemCruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl( cruiseControlSystemCruiseControlSystem );
     cruiseControlSystemCruiseControlSystemAdaptiveControlSystemCruiseControlSystemSensorScan : CruiseControlSystemCruiseControlSystemAdaptiveControlSystemCruiseControlSystemSensorScan( cruiseControlSystemCruiseControlSystem );
     cruiseControlSystemCruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed : CruiseControlSystemCruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed( cruiseControlSystemCruiseControlSystem );
     cruiseControlSystemCruiseControlSystemAdaptiveControlSystemThrottleThrottle : CruiseControlSystemCruiseControlSystemAdaptiveControlSystemThrottleThrottle( cruiseControlSystemCruiseControlSystem );

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     cruiseControlSystemCruiseControlSystem_Machine : CruiseControlSystemCruiseControlSystem_Machine;

   -- The following properties are specified to certify that this model is free of non-determinism. 
   INVARSPEC   ( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t5 & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t49 -> next( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl.state = CruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl_speedControlenabled & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_inactivetempState ) )
   INVARSPEC   ( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t34 & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t48 -> next( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_inactivetempState & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed.state = CruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed_inputSpeedcheckSpeed ) )

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.state = CruiseControlSystem_adaptiveControlSystem )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.state = CruiseControlSystem_terminal )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_inactivetempState )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_tempStatetempState_1 )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_cruisingtempState )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_tempState_1tempState_2 )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_standbytempState )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemCruiseControllerCruiseController_tempState_1tempState_2 )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl.state = CruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl_speedControldisabled )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl.state = CruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl_speedControlenabled )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl.state = CruiseControlSystemAdaptiveControlSystemSpeedControlSpeedControl_speedControltempState )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemCruiseControlSystemSensorScan.state = CruiseControlSystemAdaptiveControlSystemCruiseControlSystemSensorScan_sensorScan )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed.state = CruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed_inputSpeedcheckSpeed )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemThrottleThrottle.state = CruiseControlSystemAdaptiveControlSystemThrottleThrottle_throttletempState )

9
12
state :  cruise.umple.compiler.State@4cd3e2f3[name:state1,isConcurrent:true,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[5,4]
  stateMachine = 10e5471d : 2
 cruise.umple.compiler.State@6fc98c70[name:state2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[7,14]
  stateMachine = 10e5471d : 0

state11 :  cruise.umple.compiler.State@6859080d[name:state11state111,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[8,8]
  stateMachine = 3bcebb8f : 0
 cruise.umple.compiler.State@1a9ce44[name:state11state112,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[9,16]
  stateMachine = 3bcebb8f : 0

state12 :  cruise.umple.compiler.State@2220780d[name:state12state121,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[19,8]
  stateMachine = 2991524 : 0
 cruise.umple.compiler.State@4cc5c43b[name:state12state122,isConcurrent:true,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[20,16]
  stateMachine = 2991524 : 2

state1221 :  cruise.umple.compiler.State@3d1f809[name:state1221state12211,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[13,16]
  stateMachine = 2290186e : 0

state1222 :  cruise.umple.compiler.State@686a192d[name:state1222state12221,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[29,14]
  stateMachine = aecfc07 : 0

-- This file is generated from AndCrossFromDeeplyNestedStateCase2.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for AState --
MODULE AState ( _stateState1State11State11 , _stateState1State12State12 , _stateState1State12State12State12state122State1221State1221 , _stateState1State12State12State12state122State1222State1222 )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { State_state1 , State_state2 };
     event : { ev_e5 , ev_e6 , ev_e1 , ev_e2 , ev_e4 , ev_null };

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     state_stable :=  !( event = ev_e6 | event = ev_e2 | event = ev_e5 | event = ev_e1 | event = ev_e4 );
     t1 := event = ev_e5 & _stateState1State11State11.state != null;
     t2 := event = ev_e1 & _stateState1State11State11.state = StateState1State11State11_state11state111;
     t3 := event = ev_e4 & _stateState1State11State11.state = StateState1State11State11_state11state112;
     t4 := event = ev_e2 & _stateState1State11State11.state = StateState1State11State11_state11state112;
     t5 := event = ev_e5 & _stateState1State12State12.state != null;
     t6 := event = ev_e2 & _stateState1State12State12.state = StateState1State12State12_state12state121;
     t7 := event = ev_e4 & _stateState1State12State12.state = StateState1State12State12_state12state121;
     t8 := event = ev_e2 & _stateState1State12State12State12state122State1221State1221.state = StateState1State12State12State12state122State1221State1221_state1221state12211;
     t9 := event = ev_e6 & _stateState1State12State12State12state122State1222State1222.state = StateState1State12State12State12state122State1222State1222_state1222state12221;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := State_state1;
     next( state ) := case
       t2 | t9 | t4 | t3 | t8 | t6 | t7 : State_state1;
       t1 | t5 : State_state2;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       state_stable : { ev_e5 , ev_e6 , ev_e1 , ev_e2 , ev_e4 };
       TRUE : ev_null;
     esac;

-- This defines a NuSMV module for AStateState1State11State11 --
MODULE AStateState1State11State11 ( _state )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { StateState1State11State11_state11state111 , StateState1State11State11_state11state112 , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _state.t5 | _state.t1 | _state.t4 : null;
       _state.t3 : StateState1State11State11_state11state111;
       _state.t8 | _state.t2 | _state.t9 : StateState1State11State11_state11state112;
       _state.state = State_state1 & state = null : StateState1State11State11_state11state111;
       TRUE : state;
     esac;

-- This defines a NuSMV module for AStateState1State12State12 --
MODULE AStateState1State12State12 ( _state )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { StateState1State12State12_state12state121 , StateState1State12State12_state12state122 , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _state.t1 | _state.t8 | _state.t5 | _state.t9 : null;
       _state.t4 | _state.t6 | _state.t7 : StateState1State12State12_state12state122;
       _state.state = State_state1 & state = null : StateState1State12State12_state12state121;
       TRUE : state;
     esac;

-- This defines a NuSMV module for AStateState1State12State12State12state122State1221State1221 --
MODULE AStateState1State12State12State12state122State1221State1221 ( _state , _stateState1State12State12 )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { StateState1State12State12State12state122State1221State1221_state1221state12211 , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _state.t6 | _state.t9 | _state.t8 | _state.t5 : null;
       _state.t4 | _state.t7 : StateState1State12State12State12state122State1221State1221_state1221state12211;
       _stateState1State12State12.state = StateState1State12State12_state12state122 & state = null : StateState1State12State12State12state122State1221State1221_state1221state12211;
       TRUE : state;
     esac;

-- This defines a NuSMV module for AStateState1State12State12State12state122State1222State1222 --
MODULE AStateState1State12State12State12state122State1222State1222 ( _state , _stateState1State12State12 )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { StateState1State12State12State12state122State1222State1222_state1222state12221 , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _state.t6 | _state.t9 | _state.t8 | _state.t5 : null;
       _stateState1State12State12.state = StateState1State12State12_state12state122 & state = null : StateState1State12State12State12state122State1222State1222_state1222state12221;
       TRUE : state;
     esac;

-- This defines a NuSMV module for AState_Machine --
MODULE AState_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     aState : AState( aStateState1State11State11 , aStateState1State12State12 , aStateState1State12State12State12state122State1221State1221 , aStateState1State12State12State12state122State1222State1222 );
     aStateState1State11State11 : AStateState1State11State11( aState );
     aStateState1State12State12 : AStateState1State12State12( aState );
     aStateState1State12State12State12state122State1221State1221 : AStateState1State12State12State12state122State1221State1221( aState , aStateState1State12State12 );
     aStateState1State12State12State12state122State1222State1222 : AStateState1State12State12State12state122State1222State1222( aState , aStateState1State12State12 );

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     aState_Machine : AState_Machine;

   -- The following properties are specified to certify that this model is free of non-determinism. 
   INVARSPEC   ( aState_Machine.aState.t4 & aState_Machine.aState.t6 -> next( aState_Machine.aStateState1State12State12State12state122State1221State1221.state = StateState1State12State12State12state122State1221State1221_state1221state12211 & aState_Machine.aStateState1State12State12.state = StateState1State12State12_state12state122 ) )
   INVARSPEC   ( aState_Machine.aState.t4 & aState_Machine.aState.t8 -> next( aState_Machine.aStateState1State12State12State12state122State1221State1221.state = StateState1State12State12State12state122State1221State1221_state1221state12211 & aState_Machine.aStateState1State11State11.state = StateState1State11State11_state11state112 ) )

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( aState_Machine.aState.state = State_state1 )
   CTLSPEC   EF( aState_Machine.aState.state = State_state2 )
   CTLSPEC   EF( aState_Machine.aStateState1State11State11.state = StateState1State11State11_state11state111 )
   CTLSPEC   EF( aState_Machine.aStateState1State11State11.state = StateState1State11State11_state11state112 )
   CTLSPEC   EF( aState_Machine.aStateState1State12State12.state = StateState1State12State12_state12state121 )
   CTLSPEC   EF( aState_Machine.aStateState1State12State12.state = StateState1State12State12_state12state122 )
   CTLSPEC   EF( aState_Machine.aStateState1State12State12State12state122State1221State1221.state = StateState1State12State12State12state122State1221State1221_state1221state12211 )
   CTLSPEC   EF( aState_Machine.aStateState1State12State12State12state122State1222State1222.state = StateState1State12State12State12state122State1222State1222_state1222state12221 )

10
10
state :  cruise.umple.compiler.State@4b76a0f4[name:state1,isConcurrent:true,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[5,4]
  stateMachine = 442612a6 : 2
 cruise.umple.compiler.State@65314e4[name:state2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[7,14]
  stateMachine = 442612a6 : 0

state11 :  cruise.umple.compiler.State@a93c88a[name:state11state111,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[8,8]
  stateMachine = 741cb82c : 0
 cruise.umple.compiler.State@db372b[name:state11state112,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[9,16]
  stateMachine = 741cb82c : 0

state12 :  cruise.umple.compiler.State@1e31e7e0[name:state12state121,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[18,8]
  stateMachine = a72bb34 : 0
 cruise.umple.compiler.State@1bbebf8e[name:state1221state12211,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[13,16]
  stateMachine = a72bb34 : 0

-- This file is generated from AndCrossFromDeeplyNestedState.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for AState --
MODULE AState ( _stateState1State11State11 , _stateState1State12State12 )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { State_state1 , State_state2 };
     event : { ev_e5 , ev_e1 , ev_e2 , ev_e3 , ev_e4 , ev_null };

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     state_stable :=  !( event = ev_e1 | event = ev_e3 | event = ev_e5 | event = ev_e2 | event = ev_e4 );
     t1 := event = ev_e5 & _stateState1State11State11.state != null;
     t2 := event = ev_e1 & _stateState1State11State11.state = StateState1State11State11_state11state111;
     t3 := event = ev_e4 & _stateState1State11State11.state = StateState1State11State11_state11state112;
     t4 := event = ev_e2 & _stateState1State11State11.state = StateState1State11State11_state11state112;
     t5 := event = ev_e5 & _stateState1State12State12.state != null;
     t6 := event = ev_e2 & _stateState1State12State12.state = StateState1State12State12_state12state121;
     t7 := event = ev_e4 & _stateState1State12State12.state = StateState1State12State12_state12state121;
     t8 := event = ev_e3 & _stateState1State12State12.state = StateState1State12State12_state1221state12211;
     t9 := event = ev_e4 & _stateState1State12State12.state = StateState1State12State12_state1221state12211;
     t10 := event = ev_e2 & _stateState1State12State12.state = StateState1State12State12_state1221state12211;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := State_state1;
     next( state ) := case
       t3 | t10 | t9 | t6 | t2 | t8 | t4 | t7 : State_state1;
       t1 | t5 : State_state2;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       state_stable : { ev_e5 , ev_e1 , ev_e2 , ev_e3 , ev_e4 };
       TRUE : ev_null;
     esac;

-- This defines a NuSMV module for AStateState1State11State11 --
MODULE AStateState1State11State11 ( _state )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { StateState1State11State11_state11state111 , StateState1State11State11_state11state112 , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _state.t5 | _state.t1 | _state.t4 : null;
       _state.t3 : StateState1State11State11_state11state111;
       _state.t2 | _state.t10 : StateState1State11State11_state11state112;
       _state.state = State_state1 & state = null : StateState1State11State11_state11state111;
       TRUE : state;
     esac;

-- This defines a NuSMV module for AStateState1State12State12 --
MODULE AStateState1State12State12 ( _state )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { StateState1State12State12_state12state121 , StateState1State12State12_state1221state12211 , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _state.t5 | _state.t1 | _state.t10 : null;
       _state.t8 | _state.t9 : StateState1State12State12_state12state121;
       _state.t6 | _state.t4 | _state.t7 : StateState1State12State12_state1221state12211;
       _state.state = State_state1 & state = null : StateState1State12State12_state12state121;
       TRUE : state;
     esac;

-- This defines a NuSMV module for AState_Machine --
MODULE AState_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     aState : AState( aStateState1State11State11 , aStateState1State12State12 );
     aStateState1State11State11 : AStateState1State11State11( aState );
     aStateState1State12State12 : AStateState1State12State12( aState );

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     aState_Machine : AState_Machine;

   -- The following properties are specified to certify that this model is free of non-determinism. 
   INVARSPEC   ( aState_Machine.aState.t4 & aState_Machine.aState.t10 -> next( aState_Machine.aStateState1State12State12.state = StateState1State12State12_state1221state12211 & aState_Machine.aStateState1State11State11.state = StateState1State11State11_state11state112 ) )

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( aState_Machine.aState.state = State_state1 )
   CTLSPEC   EF( aState_Machine.aState.state = State_state2 )
   CTLSPEC   EF( aState_Machine.aStateState1State11State11.state = StateState1State11State11_state11state111 )
   CTLSPEC   EF( aState_Machine.aStateState1State11State11.state = StateState1State11State11_state11state112 )
   CTLSPEC   EF( aState_Machine.aStateState1State12State12.state = StateState1State12State12_state12state121 )
   CTLSPEC   EF( aState_Machine.aStateState1State12State12.state = StateState1State12State12_state1221state12211 )

18
16
Sm :  cruise.umple.compiler.State@70ad9a9b[name:s1,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[3,4]
  stateMachine = 300cdf3f : 0
 cruise.umple.compiler.State@2b75b77d[name:s2,isConcurrent:true,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[6,4]
  stateMachine = 300cdf3f : 3

A :  cruise.umple.compiler.State@4552f89f[name:Aa1,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[8,8]
  stateMachine = 59b7cbec : 0
 cruise.umple.compiler.State@f9402c2[name:Aa2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[9,16]
  stateMachine = 59b7cbec : 0
 cruise.umple.compiler.State@9dc9212[name:Aa3,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[10,16]
  stateMachine = 59b7cbec : 0

B :  cruise.umple.compiler.State@5b9815b6[name:Bb1,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[22,10]
  stateMachine = 3c175d82 : 0
 cruise.umple.compiler.State@133acad0[name:Bb2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[24,18]
  stateMachine = 3c175d82 : 0
 cruise.umple.compiler.State@7e1b96a7[name:Bb3,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[23,18]
  stateMachine = 3c175d82 : 0
 cruise.umple.compiler.State@65b51977[name:Bb4,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[30,18]
  stateMachine = 3c175d82 : 0

C :  cruise.umple.compiler.State@63c8a30e[name:Cc1,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[39,10]
  stateMachine = 26e199ed : 0
 cruise.umple.compiler.State@46d8d38[name:Cc2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[41,18]
  stateMachine = 26e199ed : 0
 cruise.umple.compiler.State@49de4263[name:Cc3,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[4,12]
  stateMachine = 26e199ed : 0
 cruise.umple.compiler.State@6fa84885[name:Cc4,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[46,18]
  stateMachine = 26e199ed : 0

-- This file is generated from ArbitraryExample.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for TestSmSm --
MODULE TestSmSm ( _smS2AA , _smS2BB , _smS2CC )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Sm_s1 , Sm_s2 };
     event : { ev_e1 , ev_e2 , ev_null };

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     Sm_stable :=  !( event = ev_e1 | event = ev_e2 );
     t1 := event = ev_e1 & state = Sm_s1;
     t2 := event = ev_e1 & _smS2AA.state = SmS2AA_Aa1;
     t3 := event = ev_e2 & _smS2AA.state = SmS2AA_Aa1;
     t4 := event = ev_e2 & _smS2AA.state = SmS2AA_Aa2;
     t5 := event = ev_e1 & _smS2AA.state = SmS2AA_Aa2;
     t6 := event = ev_e1 & _smS2AA.state = SmS2AA_Aa3;
     t7 := event = ev_e2 & _smS2BB.state = SmS2BB_Bb1;
     t8 := event = ev_e1 & _smS2BB.state = SmS2BB_Bb1;
     t9 := event = ev_e1 & _smS2BB.state = SmS2BB_Bb2;
     t10 := event = ev_e1 & _smS2BB.state = SmS2BB_Bb3;
     t11 := event = ev_e1 & _smS2BB.state = SmS2BB_Bb4;
     t12 := event = ev_e2 & _smS2BB.state = SmS2BB_Bb4;
     t13 := event = ev_e1 & _smS2CC.state = SmS2CC_Cc1;
     t14 := event = ev_e2 & _smS2CC.state = SmS2CC_Cc1;
     t15 := event = ev_e1 & _smS2CC.state = SmS2CC_Cc3;
     t16 := event = ev_e2 & _smS2CC.state = SmS2CC_Cc3;
     t17 := event = ev_e1 & _smS2CC.state = SmS2CC_Cc4;
     t18 := event = ev_e2 & _smS2CC.state = SmS2CC_Cc4;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := Sm_s1;
     next( state ) := case
       t4 : Sm_s1;
       t6 | t5 | t9 | t12 | t11 | t14 | t17 | t13 | t2 | t3 | t18 | t8 | t7 | t10 | t15 | t1 | t16 : Sm_s2;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       Sm_stable : { ev_e1 , ev_e2 };
       TRUE : ev_null;
     esac;

-- This defines a NuSMV module for TestSmSmS2AA --
MODULE TestSmSmS2AA ( _sm )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmS2AA_Aa1 , SmS2AA_Aa2 , SmS2AA_Aa3 , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _sm.t4 : null;
       _sm.t2 | _sm.t6 : SmS2AA_Aa2;
       _sm.t5 | _sm.t3 | _sm.t18 : SmS2AA_Aa3;
       _sm.state = Sm_s2 & state = null : SmS2AA_Aa1;
       TRUE : state;
     esac;

-- This defines a NuSMV module for TestSmSmS2BB --
MODULE TestSmSmS2BB ( _sm )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmS2BB_Bb1 , SmS2BB_Bb2 , SmS2BB_Bb3 , SmS2BB_Bb4 , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _sm.t4 | _sm.t18 : null;
       _sm.t9 : SmS2BB_Bb1;
       _sm.t8 | _sm.t12 : SmS2BB_Bb2;
       _sm.t7 | _sm.t11 : SmS2BB_Bb3;
       _sm.t10 : SmS2BB_Bb4;
       _sm.state = Sm_s2 & state = null : SmS2BB_Bb1;
       TRUE : state;
     esac;

-- This defines a NuSMV module for TestSmSmS2CC --
MODULE TestSmSmS2CC ( _sm )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmS2CC_Cc1 , SmS2CC_Cc2 , SmS2CC_Cc3 , SmS2CC_Cc4 , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _sm.t4 | _sm.t18 : null;
       _sm.t15 | _sm.t14 | _sm.t17 : SmS2CC_Cc2;
       _sm.t1 | _sm.t13 : SmS2CC_Cc3;
       _sm.t16 : SmS2CC_Cc4;
       _sm.state = Sm_s2 & state = null : SmS2CC_Cc1;
       TRUE : state;
     esac;

-- This defines a NuSMV module for TestSmSm_Machine --
MODULE TestSmSm_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     testSmSm : TestSmSm( testSmSmS2AA , testSmSmS2BB , testSmSmS2CC );
     testSmSmS2AA : TestSmSmS2AA( testSmSm );
     testSmSmS2BB : TestSmSmS2BB( testSmSm );
     testSmSmS2CC : TestSmSmS2CC( testSmSm );

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     testSmSm_Machine : TestSmSm_Machine;

   -- The following properties are specified to certify that this model is free of non-determinism. 
   INVARSPEC   ( testSmSm_Machine.testSmSm.t4 & testSmSm_Machine.testSmSm.t7 -> next( testSmSm_Machine.testSmSm.state = Sm_s1 & testSmSm_Machine.testSmSmS2BB.state = SmS2BB_Bb3 ) )
   INVARSPEC   ( testSmSm_Machine.testSmSm.t4 & testSmSm_Machine.testSmSm.t12 -> next( testSmSm_Machine.testSmSm.state = Sm_s1 & testSmSm_Machine.testSmSmS2BB.state = SmS2BB_Bb2 ) )
   INVARSPEC   ( testSmSm_Machine.testSmSm.t4 & testSmSm_Machine.testSmSm.t14 -> next( testSmSm_Machine.testSmSm.state = Sm_s1 & testSmSm_Machine.testSmSmS2CC.state = SmS2CC_Cc2 ) )
   INVARSPEC   ( testSmSm_Machine.testSmSm.t4 & testSmSm_Machine.testSmSm.t16 -> next( testSmSm_Machine.testSmSm.state = Sm_s1 & testSmSm_Machine.testSmSmS2CC.state = SmS2CC_Cc4 ) )
   INVARSPEC   ( testSmSm_Machine.testSmSm.t4 & testSmSm_Machine.testSmSm.t18 -> next( testSmSm_Machine.testSmSm.state = Sm_s1 & testSmSm_Machine.testSmSmS2AA.state = SmS2AA_Aa3 ) )
   INVARSPEC   ( testSmSm_Machine.testSmSm.t18 & testSmSm_Machine.testSmSm.t7 -> next( testSmSm_Machine.testSmSmS2AA.state = SmS2AA_Aa3 & testSmSm_Machine.testSmSmS2BB.state = SmS2BB_Bb3 ) )
   INVARSPEC   ( testSmSm_Machine.testSmSm.t18 & testSmSm_Machine.testSmSm.t12 -> next( testSmSm_Machine.testSmSmS2AA.state = SmS2AA_Aa3 & testSmSm_Machine.testSmSmS2BB.state = SmS2BB_Bb2 ) )

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( testSmSm_Machine.testSmSm.state = Sm_s1 )
   CTLSPEC   EF( testSmSm_Machine.testSmSm.state = Sm_s2 )
   CTLSPEC   EF( testSmSm_Machine.testSmSmS2AA.state = SmS2AA_Aa1 )
   CTLSPEC   EF( testSmSm_Machine.testSmSmS2AA.state = SmS2AA_Aa2 )
   CTLSPEC   EF( testSmSm_Machine.testSmSmS2AA.state = SmS2AA_Aa3 )
   CTLSPEC   EF( testSmSm_Machine.testSmSmS2BB.state = SmS2BB_Bb1 )
   CTLSPEC   EF( testSmSm_Machine.testSmSmS2BB.state = SmS2BB_Bb2 )
   CTLSPEC   EF( testSmSm_Machine.testSmSmS2BB.state = SmS2BB_Bb3 )
   CTLSPEC   EF( testSmSm_Machine.testSmSmS2BB.state = SmS2BB_Bb4 )
   CTLSPEC   EF( testSmSm_Machine.testSmSmS2CC.state = SmS2CC_Cc1 )
   CTLSPEC   EF( testSmSm_Machine.testSmSmS2CC.state = SmS2CC_Cc2 )
   CTLSPEC   EF( testSmSm_Machine.testSmSmS2CC.state = SmS2CC_Cc3 )
   CTLSPEC   EF( testSmSm_Machine.testSmSmS2CC.state = SmS2CC_Cc4 )

38
24
cruiseControlSystem :  cruise.umple.compiler.State@6d0ef6dc[name:adaptiveControlSystem,isConcurrent:true,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[4,6]
  stateMachine = 2936f48a : 5

cruiseController :  cruise.umple.compiler.State@f1a5005[name:inactivetempState,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[8,32]
  stateMachine = 23001753 : 0
 cruise.umple.compiler.State@39a2adf9[name:tempStatetempState_1,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[17,39]
  stateMachine = 23001753 : 0
 cruise.umple.compiler.State@27ae8ce3[name:cruisingtempState,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[25,12]
  stateMachine = 23001753 : 0
 cruise.umple.compiler.State@7a696a6b[name:tempState_1tempState_2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[33,21]
  stateMachine = 23001753 : 0
 cruise.umple.compiler.State@597050fa[name:standbytempState,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[41,15]
  stateMachine = 23001753 : 0
 cruise.umple.compiler.State@7511e348[name:tempState_1tempState_2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[47,21]
  stateMachine = 23001753 : 0

speedControl :  cruise.umple.compiler.State@268bb09d[name:speedControldisabled,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[56,4]
  stateMachine = 1780bc15 : 0
 cruise.umple.compiler.State@4c2cc99f[name:speedControlenabled,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[60,22]
  stateMachine = 1780bc15 : 0
 cruise.umple.compiler.State@36dd68f1[name:speedControltempState,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[63,14]
  stateMachine = 1780bc15 : 0

sensorScan :  cruise.umple.compiler.State@4da929ef[name:sensorScan,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[73,2]
  stateMachine = 5fdb445b : 0

inputSpeed :  cruise.umple.compiler.State@75910e0e[name:inputSpeedcheckSpeed,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[85,15]
  stateMachine = 28566aad : 0

throttle :  cruise.umple.compiler.State@2c34c819[name:throttletempState,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[93,18]
  stateMachine = 29c8a858 : 0

-- This file is generated from AdaptiveCruiseControlSystem.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for CruiseControlSystemCruiseControlSystem --
MODULE CruiseControlSystemCruiseControlSystem ( _cruiseControlSystemAdaptiveControlSystemControlCruiseController , _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController , _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerInactive , _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerActive , _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerActiveTempState , _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruising , _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruisingTempState_1 , _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandby , _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandbyTempState_1 , _cruiseControlSystemAdaptiveControlSystemControlSpeedControl , _cruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl , _cruiseControlSystemAdaptiveControlSystemControl , _cruiseControlSystemAdaptiveControlSystemSensorScan , _cruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed , _cruiseControlSystemAdaptiveControlSystemThrottleThrottle )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { CruiseControlSystem_adaptiveControlSystem , null };
     event : { ev_resume , ev_engineOff , ev_accelerator , ev_engineOn , ev_zoom , ev_enableControl , ev_recordSpeed , ev_disableControl , ev_off , ev_speed , ev_brake , ev_setThrottle , ev_clearSpeed , ev_on , ev_null };

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     cruiseControlSystem_stable :=  !( event = ev_resume | event = ev_accelerator | event = ev_zoom | event = ev_recordSpeed | event = ev_off | event = ev_brake | event = ev_clearSpeed | event = ev_engineOff | event = ev_engineOn | event = ev_enableControl | event = ev_disableControl | event = ev_speed | event = ev_setThrottle | event = ev_on );
     t1 := event = ev_engineOn & _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_inactive;
     t2 := event = ev_engineOff & _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_active;
     t3 := event = ev_on & _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_active;
     t4 := event = ev_engineOff & _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_cruising;
     t5 := event = ev_off & _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_cruising;
     t6 := event = ev_brake & _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_cruising;
     t7 := event = ev_accelerator & _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_cruising;
     t8 := event = ev_on & _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_cruising;
     t9 := event = ev_engineOff & _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_standby;
     t10 := event = ev_resume & _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_standby;
     t11 := event = ev_on & _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_standby;
     t12 := event = ev_clearSpeed & _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerInactive.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerInactive_tempState;
     t13 := event = ev_recordSpeed & _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerActive.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerActive_tempState;
     t14 := event = ev_enableControl & _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerActiveTempState.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerActiveTempState_tempState_1;
     t15 := event = ev_disableControl & _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruising.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruising_tempState;
     t16 := event = ev_recordSpeed & _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruising.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruising_tempState_1;
     t17 := event = ev_enableControl & _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruisingTempState_1.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruisingTempState_1_tempState_2;
     t18 := event = ev_enableControl & _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandby.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandby_tempState;
     t19 := event = ev_recordSpeed & _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandby.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandby_tempState_1;
     t20 := event = ev_enableControl & _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandbyTempState_1.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandbyTempState_1_tempState_2;
     t21 := event = ev_speed & _cruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl.state = CruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl_disabled;
     t22 := event = ev_clearSpeed & _cruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl.state = CruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl_disabled;
     t23 := event = ev_recordSpeed & _cruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl.state = CruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl_disabled;
     t24 := event = ev_enableControl & _cruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl.state = CruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl_disabled;
     t25 := event = ev_speed & _cruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl.state = CruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl_enabled;
     t26 := event = ev_recordSpeed & _cruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl.state = CruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl_enabled;
     t27 := event = ev_enableControl & _cruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl.state = CruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl_enabled;
     t28 := event = ev_setThrottle & _cruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl.state = CruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl_tempState;
     t29 := event = ev_engineOn & _cruiseControlSystemAdaptiveControlSystemSensorScan.state = CruiseControlSystemAdaptiveControlSystemSensorScan_sensorScan;
     t30 := event = ev_engineOff & _cruiseControlSystemAdaptiveControlSystemSensorScan.state = CruiseControlSystemAdaptiveControlSystemSensorScan_sensorScan;
     t31 := event = ev_on & _cruiseControlSystemAdaptiveControlSystemSensorScan.state = CruiseControlSystemAdaptiveControlSystemSensorScan_sensorScan;
     t32 := event = ev_off & _cruiseControlSystemAdaptiveControlSystemSensorScan.state = CruiseControlSystemAdaptiveControlSystemSensorScan_sensorScan;
     t33 := event = ev_resume & _cruiseControlSystemAdaptiveControlSystemSensorScan.state = CruiseControlSystemAdaptiveControlSystemSensorScan_sensorScan;
     t34 := event = ev_brake & _cruiseControlSystemAdaptiveControlSystemSensorScan.state = CruiseControlSystemAdaptiveControlSystemSensorScan_sensorScan;
     t35 := event = ev_accelerator & _cruiseControlSystemAdaptiveControlSystemSensorScan.state = CruiseControlSystemAdaptiveControlSystemSensorScan_sensorScan;
     t36 := event = ev_engineOn & _cruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed.state != null;
     t37 := event = ev_speed & _cruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed.state = CruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed_checkSpeed;
     t38 := event = ev_engineOff & _cruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed.state = CruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed_checkSpeed;
     t39 := event = ev_setThrottle & _cruiseControlSystemAdaptiveControlSystemThrottleThrottle.state != null;
     t40 := event = ev_zoom & _cruiseControlSystemAdaptiveControlSystemThrottleThrottle.state = CruiseControlSystemAdaptiveControlSystemThrottleThrottle_tempState;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := CruiseControlSystem_adaptiveControlSystem;
     next( state ) := case
       t29 | t31 | t33 | t35 | t40 | t4 | t1 | t3 | t14 | t18 | t5 | t7 | t16 | t10 | t19 | t22 | t27 | t26 | t25 | t37 | t30 | t32 | t34 | t38 | t2 | t9 | t12 | t13 | t17 | t20 | t6 | t8 | t15 | t11 | t21 | t23 | t24 | t28 | t36 | t39 : CruiseControlSystem_adaptiveControlSystem;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       cruiseControlSystem_stable : { ev_resume , ev_engineOff , ev_accelerator , ev_engineOn , ev_zoom , ev_enableControl , ev_recordSpeed , ev_disableControl , ev_off , ev_speed , ev_brake , ev_setThrottle , ev_clearSpeed , ev_on };
       TRUE : ev_null;
     esac;

-- This defines a NuSMV module for CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseController --
MODULE CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseController ( _cruiseControlSystem )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { CruiseControlSystemAdaptiveControlSystemControlCruiseController_cruiseController , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _cruiseControlSystem.t30 | _cruiseControlSystem.t32 | _cruiseControlSystem.t34 | _cruiseControlSystem.t38 | _cruiseControlSystem.t29 | _cruiseControlSystem.t31 | _cruiseControlSystem.t33 | _cruiseControlSystem.t35 | _cruiseControlSystem.t40 : null;
       _cruiseControlSystem.t2 | _cruiseControlSystem.t9 | _cruiseControlSystem.t12 | _cruiseControlSystem.t13 | _cruiseControlSystem.t17 | _cruiseControlSystem.t20 | _cruiseControlSystem.t6 | _cruiseControlSystem.t8 | _cruiseControlSystem.t15 | _cruiseControlSystem.t11 | _cruiseControlSystem.t4 | _cruiseControlSystem.t1 | _cruiseControlSystem.t3 | _cruiseControlSystem.t14 | _cruiseControlSystem.t18 | _cruiseControlSystem.t5 | _cruiseControlSystem.t7 | _cruiseControlSystem.t16 | _cruiseControlSystem.t10 | _cruiseControlSystem.t19 : CruiseControlSystemAdaptiveControlSystemControlCruiseController_cruiseController;
       _cruiseControlSystem.state = CruiseControlSystem_adaptiveControlSystem & state = null : CruiseControlSystemAdaptiveControlSystemControlCruiseController_cruiseController;
       TRUE : state;
     esac;

-- This defines a NuSMV module for CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController --
MODULE CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController ( _cruiseControlSystem , _cruiseControlSystemAdaptiveControlSystemControl )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_inactive , CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_active , CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_cruising , CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_standby , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _cruiseControlSystem.t2 | _cruiseControlSystem.t9 | _cruiseControlSystem.t4 | _cruiseControlSystem.t1 : CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_inactive;
       _cruiseControlSystem.t3 | _cruiseControlSystem.t12 | _cruiseControlSystem.t13 : CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_active;
       _cruiseControlSystem.t17 | _cruiseControlSystem.t20 | _cruiseControlSystem.t6 | _cruiseControlSystem.t8 | _cruiseControlSystem.t14 | _cruiseControlSystem.t18 | _cruiseControlSystem.t5 | _cruiseControlSystem.t7 | _cruiseControlSystem.t16 : CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_cruising;
       _cruiseControlSystem.t15 | _cruiseControlSystem.t11 | _cruiseControlSystem.t10 | _cruiseControlSystem.t19 : CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_standby;
       _cruiseControlSystemAdaptiveControlSystemControl.state = CruiseControlSystemAdaptiveControlSystemControl_control & state = null : CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_inactive;
       TRUE : state;
     esac;

-- This defines a NuSMV module for CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerInactive --
MODULE CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerInactive ( _cruiseControlSystem , _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerInactive_tempState , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _cruiseControlSystem.t3 | _cruiseControlSystem.t5 | _cruiseControlSystem.t7 | _cruiseControlSystem.t9 | _cruiseControlSystem.t11 | _cruiseControlSystem.t13 | _cruiseControlSystem.t15 | _cruiseControlSystem.t17 | _cruiseControlSystem.t19 | _cruiseControlSystem.t2 | _cruiseControlSystem.t4 | _cruiseControlSystem.t6 | _cruiseControlSystem.t8 | _cruiseControlSystem.t10 | _cruiseControlSystem.t12 | _cruiseControlSystem.t14 | _cruiseControlSystem.t16 | _cruiseControlSystem.t18 | _cruiseControlSystem.t20 : null;
       _cruiseControlSystem.t1 : CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerInactive_tempState;
       _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_inactive & state = null : CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerInactive_tempState;
       TRUE : state;
     esac;

-- This defines a NuSMV module for CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerActive --
MODULE CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerActive ( _cruiseControlSystem , _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerActive_tempState , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _cruiseControlSystem.t1 | _cruiseControlSystem.t4 | _cruiseControlSystem.t6 | _cruiseControlSystem.t8 | _cruiseControlSystem.t10 | _cruiseControlSystem.t12 | _cruiseControlSystem.t15 | _cruiseControlSystem.t17 | _cruiseControlSystem.t19 | _cruiseControlSystem.t2 | _cruiseControlSystem.t5 | _cruiseControlSystem.t7 | _cruiseControlSystem.t9 | _cruiseControlSystem.t11 | _cruiseControlSystem.t14 | _cruiseControlSystem.t16 | _cruiseControlSystem.t18 | _cruiseControlSystem.t20 : null;
       _cruiseControlSystem.t3 | _cruiseControlSystem.t13 : CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerActive_tempState;
       _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_active & state = null : CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerActive_tempState;
       TRUE : state;
     esac;

-- This defines a NuSMV module for CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerActiveTempState --
MODULE CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerActiveTempState ( _cruiseControlSystem , _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerActive )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerActiveTempState_tempState_1 , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _cruiseControlSystem.t2 | _cruiseControlSystem.t14 | _cruiseControlSystem.t3 : null;
       _cruiseControlSystem.t13 : CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerActiveTempState_tempState_1;
       _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerActive.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerActive_tempState & state = null : CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerActiveTempState_tempState_1;
       TRUE : state;
     esac;

-- This defines a NuSMV module for CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruising --
MODULE CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruising ( _cruiseControlSystem , _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruising_tempState , CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruising_tempState_1 , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _cruiseControlSystem.t2 | _cruiseControlSystem.t4 | _cruiseControlSystem.t10 | _cruiseControlSystem.t12 | _cruiseControlSystem.t14 | _cruiseControlSystem.t17 | _cruiseControlSystem.t19 | _cruiseControlSystem.t1 | _cruiseControlSystem.t3 | _cruiseControlSystem.t9 | _cruiseControlSystem.t11 | _cruiseControlSystem.t13 | _cruiseControlSystem.t15 | _cruiseControlSystem.t18 | _cruiseControlSystem.t20 : null;
       _cruiseControlSystem.t6 | _cruiseControlSystem.t5 | _cruiseControlSystem.t7 : CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruising_tempState;
       _cruiseControlSystem.t8 | _cruiseControlSystem.t16 : CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruising_tempState_1;
       _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_cruising & state = null : CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruising_tempState;
       TRUE : state;
     esac;

-- This defines a NuSMV module for CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruisingTempState_1 --
MODULE CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruisingTempState_1 ( _cruiseControlSystem , _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruising )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruisingTempState_1_tempState_2 , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _cruiseControlSystem.t17 | _cruiseControlSystem.t5 | _cruiseControlSystem.t7 | _cruiseControlSystem.t15 | _cruiseControlSystem.t4 | _cruiseControlSystem.t6 | _cruiseControlSystem.t8 : null;
       _cruiseControlSystem.t16 : CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruisingTempState_1_tempState_2;
       _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruising.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruising_tempState_1 & state = null : CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruisingTempState_1_tempState_2;
       TRUE : state;
     esac;

-- This defines a NuSMV module for CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandby --
MODULE CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandby ( _cruiseControlSystem , _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandby_tempState , CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandby_tempState_1 , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _cruiseControlSystem.t2 | _cruiseControlSystem.t4 | _cruiseControlSystem.t6 | _cruiseControlSystem.t8 | _cruiseControlSystem.t12 | _cruiseControlSystem.t14 | _cruiseControlSystem.t16 | _cruiseControlSystem.t18 | _cruiseControlSystem.t1 | _cruiseControlSystem.t3 | _cruiseControlSystem.t5 | _cruiseControlSystem.t7 | _cruiseControlSystem.t9 | _cruiseControlSystem.t13 | _cruiseControlSystem.t15 | _cruiseControlSystem.t17 | _cruiseControlSystem.t20 : null;
       _cruiseControlSystem.t10 : CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandby_tempState;
       _cruiseControlSystem.t11 | _cruiseControlSystem.t19 : CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandby_tempState_1;
       _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_standby & state = null : CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandby_tempState;
       TRUE : state;
     esac;

-- This defines a NuSMV module for CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandbyTempState_1 --
MODULE CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandbyTempState_1 ( _cruiseControlSystem , _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandby )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandbyTempState_1_tempState_2 , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _cruiseControlSystem.t20 | _cruiseControlSystem.t10 | _cruiseControlSystem.t18 | _cruiseControlSystem.t9 | _cruiseControlSystem.t11 : null;
       _cruiseControlSystem.t19 : CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandbyTempState_1_tempState_2;
       _cruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandby.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandby_tempState_1 & state = null : CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandbyTempState_1_tempState_2;
       TRUE : state;
     esac;

-- This defines a NuSMV module for CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlSpeedControl --
MODULE CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlSpeedControl ( _cruiseControlSystem )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { CruiseControlSystemAdaptiveControlSystemControlSpeedControl_speedControl , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _cruiseControlSystem.t30 | _cruiseControlSystem.t32 | _cruiseControlSystem.t34 | _cruiseControlSystem.t38 | _cruiseControlSystem.t29 | _cruiseControlSystem.t31 | _cruiseControlSystem.t33 | _cruiseControlSystem.t35 | _cruiseControlSystem.t40 : null;
       _cruiseControlSystem.t21 | _cruiseControlSystem.t23 | _cruiseControlSystem.t24 | _cruiseControlSystem.t28 | _cruiseControlSystem.t22 | _cruiseControlSystem.t27 | _cruiseControlSystem.t26 | _cruiseControlSystem.t25 : CruiseControlSystemAdaptiveControlSystemControlSpeedControl_speedControl;
       _cruiseControlSystem.state = CruiseControlSystem_adaptiveControlSystem & state = null : CruiseControlSystemAdaptiveControlSystemControlSpeedControl_speedControl;
       TRUE : state;
     esac;

-- This defines a NuSMV module for CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl --
MODULE CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl ( _cruiseControlSystem , _cruiseControlSystemAdaptiveControlSystemControl )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { CruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl_disabled , CruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl_enabled , CruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl_tempState , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _cruiseControlSystem.t21 | _cruiseControlSystem.t23 | _cruiseControlSystem.t22 | _cruiseControlSystem.t27 : CruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl_disabled;
       _cruiseControlSystem.t26 | _cruiseControlSystem.t24 | _cruiseControlSystem.t28 : CruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl_enabled;
       _cruiseControlSystem.t25 : CruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl_tempState;
       _cruiseControlSystemAdaptiveControlSystemControl.state = CruiseControlSystemAdaptiveControlSystemControl_control & state = null : CruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl_disabled;
       TRUE : state;
     esac;

-- This defines a NuSMV module for CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControl --
MODULE CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControl ( _cruiseControlSystem )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { CruiseControlSystemAdaptiveControlSystemControl_control , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _cruiseControlSystem.t30 | _cruiseControlSystem.t32 | _cruiseControlSystem.t34 | _cruiseControlSystem.t38 | _cruiseControlSystem.t29 | _cruiseControlSystem.t31 | _cruiseControlSystem.t33 | _cruiseControlSystem.t35 | _cruiseControlSystem.t40 : null;
       _cruiseControlSystem.t2 | _cruiseControlSystem.t9 | _cruiseControlSystem.t12 | _cruiseControlSystem.t13 | _cruiseControlSystem.t17 | _cruiseControlSystem.t20 | _cruiseControlSystem.t6 | _cruiseControlSystem.t8 | _cruiseControlSystem.t15 | _cruiseControlSystem.t11 | _cruiseControlSystem.t21 | _cruiseControlSystem.t23 | _cruiseControlSystem.t24 | _cruiseControlSystem.t28 | _cruiseControlSystem.t4 | _cruiseControlSystem.t1 | _cruiseControlSystem.t3 | _cruiseControlSystem.t14 | _cruiseControlSystem.t18 | _cruiseControlSystem.t5 | _cruiseControlSystem.t7 | _cruiseControlSystem.t16 | _cruiseControlSystem.t10 | _cruiseControlSystem.t19 | _cruiseControlSystem.t22 | _cruiseControlSystem.t27 | _cruiseControlSystem.t26 | _cruiseControlSystem.t25 : CruiseControlSystemAdaptiveControlSystemControl_control;
       _cruiseControlSystem.state = CruiseControlSystem_adaptiveControlSystem & state = null : CruiseControlSystemAdaptiveControlSystemControl_control;
       TRUE : state;
     esac;

-- This defines a NuSMV module for CruiseControlSystemCruiseControlSystemAdaptiveControlSystemSensorScan --
MODULE CruiseControlSystemCruiseControlSystemAdaptiveControlSystemSensorScan ( _cruiseControlSystem )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { CruiseControlSystemAdaptiveControlSystemSensorScan_sensorScan , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _cruiseControlSystem.t30 | _cruiseControlSystem.t32 | _cruiseControlSystem.t34 | _cruiseControlSystem.t38 | _cruiseControlSystem.t29 | _cruiseControlSystem.t31 | _cruiseControlSystem.t33 | _cruiseControlSystem.t35 | _cruiseControlSystem.t40 : null;
       _cruiseControlSystem.state = CruiseControlSystem_adaptiveControlSystem & state = null : CruiseControlSystemAdaptiveControlSystemSensorScan_sensorScan;
       TRUE : state;
     esac;

-- This defines a NuSMV module for CruiseControlSystemCruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed --
MODULE CruiseControlSystemCruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed ( _cruiseControlSystem )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { CruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed_checkSpeed , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _cruiseControlSystem.t30 | _cruiseControlSystem.t32 | _cruiseControlSystem.t34 | _cruiseControlSystem.t38 | _cruiseControlSystem.t29 | _cruiseControlSystem.t31 | _cruiseControlSystem.t33 | _cruiseControlSystem.t35 | _cruiseControlSystem.t40 : null;
       _cruiseControlSystem.t36 | _cruiseControlSystem.t37 : CruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed_checkSpeed;
       _cruiseControlSystem.state = CruiseControlSystem_adaptiveControlSystem & state = null : CruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed_checkSpeed;
       TRUE : state;
     esac;

-- This defines a NuSMV module for CruiseControlSystemCruiseControlSystemAdaptiveControlSystemThrottleThrottle --
MODULE CruiseControlSystemCruiseControlSystemAdaptiveControlSystemThrottleThrottle ( _cruiseControlSystem )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { CruiseControlSystemAdaptiveControlSystemThrottleThrottle_tempState , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _cruiseControlSystem.t30 | _cruiseControlSystem.t32 | _cruiseControlSystem.t34 | _cruiseControlSystem.t38 | _cruiseControlSystem.t29 | _cruiseControlSystem.t31 | _cruiseControlSystem.t33 | _cruiseControlSystem.t35 | _cruiseControlSystem.t40 : null;
       _cruiseControlSystem.t39 : CruiseControlSystemAdaptiveControlSystemThrottleThrottle_tempState;
       _cruiseControlSystem.state = CruiseControlSystem_adaptiveControlSystem & state = null : CruiseControlSystemAdaptiveControlSystemThrottleThrottle_tempState;
       TRUE : state;
     esac;

-- This defines a NuSMV module for CruiseControlSystemCruiseControlSystem_Machine --
MODULE CruiseControlSystemCruiseControlSystem_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     cruiseControlSystemCruiseControlSystem : CruiseControlSystemCruiseControlSystem( cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseController , cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController , cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerInactive , cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerActive , cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerActiveTempState , cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruising , cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruisingTempState_1 , cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandby , cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandbyTempState_1 , cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlSpeedControl , cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl , cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControl , cruiseControlSystemCruiseControlSystemAdaptiveControlSystemSensorScan , cruiseControlSystemCruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed , cruiseControlSystemCruiseControlSystemAdaptiveControlSystemThrottleThrottle );
     cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseController : CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseController( cruiseControlSystemCruiseControlSystem );
     cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController : CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController( cruiseControlSystemCruiseControlSystem , cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControl );
     cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerInactive : CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerInactive( cruiseControlSystemCruiseControlSystem , cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController );
     cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerActive : CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerActive( cruiseControlSystemCruiseControlSystem , cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController );
     cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerActiveTempState : CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerActiveTempState( cruiseControlSystemCruiseControlSystem , cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerActive );
     cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruising : CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruising( cruiseControlSystemCruiseControlSystem , cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController );
     cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruisingTempState_1 : CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruisingTempState_1( cruiseControlSystemCruiseControlSystem , cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruising );
     cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandby : CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandby( cruiseControlSystemCruiseControlSystem , cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController );
     cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandbyTempState_1 : CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandbyTempState_1( cruiseControlSystemCruiseControlSystem , cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandby );
     cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlSpeedControl : CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlSpeedControl( cruiseControlSystemCruiseControlSystem );
     cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl : CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl( cruiseControlSystemCruiseControlSystem , cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControl );
     cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControl : CruiseControlSystemCruiseControlSystemAdaptiveControlSystemControl( cruiseControlSystemCruiseControlSystem );
     cruiseControlSystemCruiseControlSystemAdaptiveControlSystemSensorScan : CruiseControlSystemCruiseControlSystemAdaptiveControlSystemSensorScan( cruiseControlSystemCruiseControlSystem );
     cruiseControlSystemCruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed : CruiseControlSystemCruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed( cruiseControlSystemCruiseControlSystem );
     cruiseControlSystemCruiseControlSystemAdaptiveControlSystemThrottleThrottle : CruiseControlSystemCruiseControlSystemAdaptiveControlSystemThrottleThrottle( cruiseControlSystemCruiseControlSystem );

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     cruiseControlSystemCruiseControlSystem_Machine : CruiseControlSystemCruiseControlSystem_Machine;

   -- The following properties are specified to certify that this model is free of non-determinism. 
   INVARSPEC   ( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t29 & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t1 -> next( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.state = CruiseControlSystem_adaptiveControlSystem & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerInactive.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerInactive_tempState ) )
   INVARSPEC   ( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t29 & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t36 -> next( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.state = CruiseControlSystem_adaptiveControlSystem & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed.state = CruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed_checkSpeed ) )
   INVARSPEC   ( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t30 & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t2 -> next( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.state = CruiseControlSystem_adaptiveControlSystem & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_inactive ) )
   INVARSPEC   ( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t30 & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t4 -> next( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.state = CruiseControlSystem_adaptiveControlSystem & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_inactive ) )
   INVARSPEC   ( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t30 & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t9 -> next( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.state = CruiseControlSystem_adaptiveControlSystem & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_inactive ) )
   INVARSPEC   ( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t31 & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t3 -> next( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.state = CruiseControlSystem_adaptiveControlSystem & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerActive.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerActive_tempState ) )
   INVARSPEC   ( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t31 & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t8 -> next( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.state = CruiseControlSystem_adaptiveControlSystem & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruising.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruising_tempState_1 ) )
   INVARSPEC   ( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t31 & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t11 -> next( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.state = CruiseControlSystem_adaptiveControlSystem & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandby.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandby_tempState_1 ) )
   INVARSPEC   ( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t32 & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t5 -> next( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.state = CruiseControlSystem_adaptiveControlSystem & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruising.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruising_tempState ) )
   INVARSPEC   ( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t33 & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t10 -> next( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.state = CruiseControlSystem_adaptiveControlSystem & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandby.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandby_tempState ) )
   INVARSPEC   ( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t34 & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t6 -> next( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.state = CruiseControlSystem_adaptiveControlSystem & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruising.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruising_tempState ) )
   INVARSPEC   ( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t35 & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t7 -> next( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.state = CruiseControlSystem_adaptiveControlSystem & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruising.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruising_tempState ) )
   INVARSPEC   ( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t38 & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t2 -> next( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.state = CruiseControlSystem_adaptiveControlSystem & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_inactive ) )
   INVARSPEC   ( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t38 & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t4 -> next( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.state = CruiseControlSystem_adaptiveControlSystem & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_inactive ) )
   INVARSPEC   ( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t38 & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.t9 -> next( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.state = CruiseControlSystem_adaptiveControlSystem & cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_inactive ) )

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystem.state = CruiseControlSystem_adaptiveControlSystem )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseController.state = CruiseControlSystemAdaptiveControlSystemControlCruiseController_cruiseController )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_inactive )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_active )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_cruising )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseController_standby )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerInactive.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerInactive_tempState )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerActive.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerActive_tempState )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerActiveTempState.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerActiveTempState_tempState_1 )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruising.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruising_tempState )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruising.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruising_tempState_1 )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruisingTempState_1.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerCruisingTempState_1_tempState_2 )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandby.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandby_tempState )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandby.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandby_tempState_1 )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandbyTempState_1.state = CruiseControlSystemAdaptiveControlSystemControlCruiseControllerCruiseControllerStandbyTempState_1_tempState_2 )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlSpeedControl.state = CruiseControlSystemAdaptiveControlSystemControlSpeedControl_speedControl )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl.state = CruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl_disabled )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl.state = CruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl_enabled )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl.state = CruiseControlSystemAdaptiveControlSystemControlSpeedControlSpeedControl_tempState )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemControl.state = CruiseControlSystemAdaptiveControlSystemControl_control )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemSensorScan.state = CruiseControlSystemAdaptiveControlSystemSensorScan_sensorScan )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed.state = CruiseControlSystemAdaptiveControlSystemInputSpeedInputSpeed_checkSpeed )
   CTLSPEC   EF( cruiseControlSystemCruiseControlSystem_Machine.cruiseControlSystemCruiseControlSystemAdaptiveControlSystemThrottleThrottle.state = CruiseControlSystemAdaptiveControlSystemThrottleThrottle_tempState )

5
5
sm :  cruise.umple.compiler.State@6f64c40c[name:s1,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[3,4]
  stateMachine = 6d8dc329 : 0
 cruise.umple.compiler.State@52d1bb9c[name:s21s211,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[11,8]
  stateMachine = 6d8dc329 : 0
 cruise.umple.compiler.State@39c437e9[name:s2s22,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[10,14]
  stateMachine = 6d8dc329 : 0

-- This file is generated from MultiLevelStateMachineExample.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for ASm --
MODULE ASm

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Sm_s1 , Sm_s21s211 , Sm_s2s22 };
     event : { ev_e1 , ev_e2 , ev_e3 , ev_null };

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     sm_stable :=  !( event = ev_e2 | event = ev_e1 | event = ev_e3 );
     t1 := event = ev_e1 & state = Sm_s1;
     t2 := event = ev_e2 & state = Sm_s1;
     t3 := event = ev_e2 & state = Sm_s21s211;
     t4 := event = ev_e3 & state = Sm_s21s211;
     t5 := event = ev_e1 & state = Sm_s21s211;
     t6 := event = ev_e2 & state = Sm_s2s22;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := Sm_s1;
     next( state ) := case
       t1 | t6 | t3 | t5 : Sm_s1;
       t2 : Sm_s21s211;
       t4 : Sm_s2s22;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       sm_stable : { ev_e1 , ev_e2 , ev_e3 };
       TRUE : ev_null;
     esac;

-- This defines a NuSMV module for ASm_Machine --
MODULE ASm_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     aSm : ASm;

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     aSm_Machine : ASm_Machine;

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( aSm_Machine.aSm.state = Sm_s1 )
   CTLSPEC   EF( aSm_Machine.aSm.state = Sm_s21s211 )
   CTLSPEC   EF( aSm_Machine.aSm.state = Sm_s2s22 )

25
22
heatSystem :  cruise.umple.compiler.State@6e5506c9[name:heatSys,isConcurrent:true,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[27,3]
  stateMachine = 446b74b9 : 3

room :  cruise.umple.compiler.State@41d0b71d[name:noHeatReqidleNoHeat,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[33,6]
  stateMachine = 5a4f7911 : 0
 cruise.umple.compiler.State@1cea4fdf[name:noHeatReqwaitForHeat,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[34,61]
  stateMachine = 5a4f7911 : 0
 cruise.umple.compiler.State@33b3e47[name:heatReqidleHeat,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[44,6]
  stateMachine = 5a4f7911 : 0
 cruise.umple.compiler.State@47970962[name:heatReqwaitForCool,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[45,60]
  stateMachine = 5a4f7911 : 0

Controller :  cruise.umple.compiler.State@66b16770[name:Controlleroff,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[59,5]
  stateMachine = 286b48ce : 0
 cruise.umple.compiler.State@72788282[name:ControllerOnidle,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[65,6]
  stateMachine = 286b48ce : 0
 cruise.umple.compiler.State@ddb59b6[name:heaterActiveactHeater,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[71,7]
  stateMachine = 286b48ce : 0
 cruise.umple.compiler.State@60bc259a[name:heaterActiveheaterRun,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[72,26]
  stateMachine = 286b48ce : 0
 cruise.umple.compiler.State@12e33c7b[name:Controllererror,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[63,22]
  stateMachine = 286b48ce : 0

furnace :  cruise.umple.compiler.State@24b9c037[name:furnaceNormalfurnaceOff,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[89,5]
  stateMachine = 73f83bff : 0
 cruise.umple.compiler.State@72e950ef[name:furnaceNormalfurnaceRun,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[92,5]
  stateMachine = 73f83bff : 0
 cruise.umple.compiler.State@79e2aa2d[name:furnaceNormalfurnaceAct,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[90,48]
  stateMachine = 73f83bff : 0
 cruise.umple.compiler.State@13b0755e[name:furnacefurnaceErr,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[88,21]
  stateMachine = 73f83bff : 0

-- This file is generated from FurnaceControlSystem.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for HeatingSystemHeatSystem --
MODULE HeatingSystemHeatSystem ( _heatSystemHeatSysRoomRoom , _heatSystemHeatSysControllerController , _heatSystemHeatSysFurnaceFurnace )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { HeatSystem_heatSys , null };
     event : { ev_t5 , ev_heatSwitchOn , ev_furnaceReset , ev_furnaceFault , ev_furnaceRunning , ev_deactivate , ev_t21 , ev_t20 , ev_t23 , ev_heatSwitchOff , ev_t22 , ev_t24 , ev_activate , ev_t15 , ev_t18 , ev_userReset , ev_t17 , ev_t19 , ev_null };
     tooCold : boolean;
     tooHot : boolean;
     requestHeat : boolean;
     furnaceTimer : integer;
     furnaceStartupTime : integer;
     valvePos : integer;
     waitedForWarm : integer;
     warmUpTimer : integer;
     coolDownTimer : integer;
     waitedForCool : integer;

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     heatSystem_stable :=  !( event = ev_t5 | event = ev_furnaceReset | event = ev_furnaceRunning | event = ev_t21 | event = ev_t23 | event = ev_t22 | event = ev_activate | event = ev_t18 | event = ev_t17 | event = ev_heatSwitchOn | event = ev_furnaceFault | event = ev_deactivate | event = ev_t20 | event = ev_heatSwitchOff | event = ev_t24 | event = ev_t15 | event = ev_userReset | event = ev_t19 );
     t1 := event = ev_t15 & _heatSystemHeatSysRoomRoom.state = HeatSystemHeatSysRoomRoom_noHeatReqidleNoHeat & g1;
     t2 := event = ev_t17 & _heatSystemHeatSysRoomRoom.state = HeatSystemHeatSysRoomRoom_noHeatReqwaitForHeat & g2;
     t3 := event = ev_t18 & _heatSystemHeatSysRoomRoom.state = HeatSystemHeatSysRoomRoom_noHeatReqwaitForHeat & g3;
     t4 := event = ev_t15 & _heatSystemHeatSysRoomRoom.state = HeatSystemHeatSysRoomRoom_noHeatReqwaitForHeat & g4;
     t5 := event = ev_t20 & _heatSystemHeatSysRoomRoom.state = HeatSystemHeatSysRoomRoom_noHeatReqwaitForHeat & g5;
     t6 := event = ev_t21 & _heatSystemHeatSysRoomRoom.state = HeatSystemHeatSysRoomRoom_heatReqidleHeat & g6;
     t7 := event = ev_t19 & _heatSystemHeatSysRoomRoom.state = HeatSystemHeatSysRoomRoom_heatReqwaitForCool & g7;
     t8 := event = ev_t22 & _heatSystemHeatSysRoomRoom.state = HeatSystemHeatSysRoomRoom_heatReqwaitForCool & g8;
     t9 := event = ev_t24 & _heatSystemHeatSysRoomRoom.state = HeatSystemHeatSysRoomRoom_heatReqwaitForCool & g9;
     t10 := event = ev_t23 & _heatSystemHeatSysRoomRoom.state = HeatSystemHeatSysRoomRoom_heatReqwaitForCool & g10;
     t11 := event = ev_heatSwitchOn & _heatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_Controlleroff;
     t12 := event = ev_heatSwitchOff & _heatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_ControllerOnidle;
     t13 := event = ev_furnaceFault & _heatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_ControllerOnidle;
     t14 := event = ev_activate & _heatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_ControllerOnidle & g11;
     t15 := event = ev_heatSwitchOff & _heatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_heaterActiveactHeater;
     t16 := event = ev_furnaceFault & _heatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_heaterActiveactHeater;
     t17 := event = ev_deactivate & _heatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_heaterActiveactHeater & g12;
     t18 := event = ev_furnaceRunning & _heatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_heaterActiveactHeater;
     t19 := event = ev_heatSwitchOff & _heatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_heaterActiveheaterRun;
     t20 := event = ev_furnaceFault & _heatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_heaterActiveheaterRun;
     t21 := event = ev_deactivate & _heatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_heaterActiveheaterRun & g12;
     t22 := event = ev_furnaceReset & _heatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_Controllererror;
     t23 := event = ev_userReset & _heatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_Controllererror;
     t24 := event = ev_furnaceFault & _heatSystemHeatSysFurnaceFurnace.state = HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceOff;
     t25 := event = ev_activate & _heatSystemHeatSysFurnaceFurnace.state = HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceOff;
     t26 := event = ev_furnaceFault & _heatSystemHeatSysFurnaceFurnace.state = HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceRun;
     t27 := event = ev_deactivate & _heatSystemHeatSysFurnaceFurnace.state = HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceRun;
     t28 := event = ev_furnaceFault & _heatSystemHeatSysFurnaceFurnace.state = HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceAct;
     t29 := event = ev_deactivate & _heatSystemHeatSysFurnaceFurnace.state = HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceAct;
     t30 := event = ev_t5 & _heatSystemHeatSysFurnaceFurnace.state = HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceAct & g13;
     t31 := event = ev_furnaceRunning & _heatSystemHeatSysFurnaceFurnace.state = HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceAct & g14;
     t32 := event = ev_furnaceReset & _heatSystemHeatSysFurnaceFurnace.state = HeatSystemHeatSysFurnaceFurnace_furnacefurnaceErr;
     g1 := tooCold;
     g2 := waitedForWarm < warmUpTimer;
     g3 := valvePos != 2 & warmUpTimer = waitedForWarm;
     g4 := !tooCold;
     g5 := waitedForwarm = warmUpTimer & valvePos = 2 & tooCold;
     g6 := tooHot;
     g7 := waitedForCool = coolDownTimer & valvePos = 0 & tooHot;
     g8 := !tooHot;
     g9 := valvePos != 0 & coolDownTimer = waitedForCool;
     g10 := waitedForCool < coolDownTimer;
     g11 := requestHeat = TRUE;
     g12 := requestHeat = FALSE;
     g13 := furnaceStartupTime < furnaceTimer;
     g14 := furnaceTimer = furnaceStartupTime;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := HeatSystem_heatSys;
     next( state ) := case
       t4 | t1 | t3 | t8 | t9 | t12 | t19 | t23 | t17 | t14 | t13 | t20 | t27 | t31 | t30 | t26 | t7 | t2 | t5 | t6 | t10 | t15 | t22 | t11 | t21 | t18 | t16 | t32 | t29 | t25 | t24 | t28 : HeatSystem_heatSys;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       heatSystem_stable : { ev_t5 , ev_heatSwitchOn , ev_furnaceReset , ev_furnaceFault , ev_furnaceRunning , ev_deactivate , ev_t21 , ev_t20 , ev_t23 , ev_heatSwitchOff , ev_t22 , ev_t24 , ev_activate , ev_t15 , ev_t18 , ev_userReset , ev_t17 , ev_t19 };
       TRUE : ev_null;
     esac;

   -- This part defines logic for the assignment of values to state variable "tooCold" of this NuSMV module --
   ASSIGN
     init( tooCold ) := FALSE;

   -- This part defines logic for the assignment of values to state variable "tooHot" of this NuSMV module --
   ASSIGN
     init( tooHot ) := FALSE;

   -- This part defines logic for the assignment of values to state variable "requestHeat" of this NuSMV module --
   ASSIGN
     init( requestHeat ) := FALSE;

   -- This part defines logic for the assignment of values to state variable "furnaceTimer" of this NuSMV module --
   ASSIGN
     init( furnaceTimer ) := 0;

   -- This part defines logic for the assignment of values to state variable "furnaceStartupTime" of this NuSMV module --
   ASSIGN
     init( furnaceStartupTime ) := 0;

   -- This part defines logic for the assignment of values to state variable "valvePos" of this NuSMV module --
   ASSIGN
     init( valvePos ) := 0;

   -- This part defines logic for the assignment of values to state variable "waitedForWarm" of this NuSMV module --
   ASSIGN
     init( waitedForWarm ) := 0;

   -- This part defines logic for the assignment of values to state variable "warmUpTimer" of this NuSMV module --
   ASSIGN
     init( warmUpTimer ) := 0;

   -- This part defines logic for the assignment of values to state variable "coolDownTimer" of this NuSMV module --
   ASSIGN
     init( coolDownTimer ) := 0;

   -- This part defines logic for the assignment of values to state variable "waitedForCool" of this NuSMV module --
   ASSIGN
     init( waitedForCool ) := 0;

-- This defines a NuSMV module for HeatingSystemHeatSystemHeatSysRoomRoom --
MODULE HeatingSystemHeatSystemHeatSysRoomRoom ( _heatSystem )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { HeatSystemHeatSysRoomRoom_noHeatReqidleNoHeat , HeatSystemHeatSysRoomRoom_noHeatReqwaitForHeat , HeatSystemHeatSysRoomRoom_heatReqidleHeat , HeatSystemHeatSysRoomRoom_heatReqwaitForCool , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _heatSystem.t4 | _heatSystem.t7 : HeatSystemHeatSysRoomRoom_noHeatReqidleNoHeat;
       _heatSystem.t2 | _heatSystem.t1 | _heatSystem.t3 : HeatSystemHeatSysRoomRoom_noHeatReqwaitForHeat;
       _heatSystem.t5 | _heatSystem.t8 : HeatSystemHeatSysRoomRoom_heatReqidleHeat;
       _heatSystem.t9 | _heatSystem.t6 | _heatSystem.t10 : HeatSystemHeatSysRoomRoom_heatReqwaitForCool;
       _heatSystem.state = HeatSystem_heatSys & state = null : HeatSystemHeatSysRoomRoom_noHeatReqidleNoHeat;
       TRUE : state;
     esac;

-- This defines a NuSMV module for HeatingSystemHeatSystemHeatSysControllerController --
MODULE HeatingSystemHeatSystemHeatSysControllerController ( _heatSystem )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { HeatSystemHeatSysControllerController_Controlleroff , HeatSystemHeatSysControllerController_ControllerOnidle , HeatSystemHeatSysControllerController_heaterActiveactHeater , HeatSystemHeatSysControllerController_heaterActiveheaterRun , HeatSystemHeatSysControllerController_Controllererror , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _heatSystem.t15 | _heatSystem.t22 | _heatSystem.t12 | _heatSystem.t19 | _heatSystem.t23 : HeatSystemHeatSysControllerController_Controlleroff;
       _heatSystem.t17 | _heatSystem.t11 | _heatSystem.t21 : HeatSystemHeatSysControllerController_ControllerOnidle;
       _heatSystem.t14 : HeatSystemHeatSysControllerController_heaterActiveactHeater;
       _heatSystem.t18 : HeatSystemHeatSysControllerController_heaterActiveheaterRun;
       _heatSystem.t16 | _heatSystem.t13 | _heatSystem.t20 : HeatSystemHeatSysControllerController_Controllererror;
       _heatSystem.state = HeatSystem_heatSys & state = null : HeatSystemHeatSysControllerController_Controlleroff;
       TRUE : state;
     esac;

-- This defines a NuSMV module for HeatingSystemHeatSystemHeatSysFurnaceFurnace --
MODULE HeatingSystemHeatSystemHeatSysFurnaceFurnace ( _heatSystem )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceOff , HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceRun , HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceAct , HeatSystemHeatSysFurnaceFurnace_furnacefurnaceErr , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _heatSystem.t27 | _heatSystem.t32 | _heatSystem.t29 : HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceOff;
       _heatSystem.t31 : HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceRun;
       _heatSystem.t25 | _heatSystem.t30 : HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceAct;
       _heatSystem.t26 | _heatSystem.t24 | _heatSystem.t28 : HeatSystemHeatSysFurnaceFurnace_furnacefurnaceErr;
       _heatSystem.state = HeatSystem_heatSys & state = null : HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceOff;
       TRUE : state;
     esac;

-- This defines a NuSMV module for HeatingSystemHeatSystem_Machine --
MODULE HeatingSystemHeatSystem_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     heatingSystemHeatSystem : HeatingSystemHeatSystem( heatingSystemHeatSystemHeatSysRoomRoom , heatingSystemHeatSystemHeatSysControllerController , heatingSystemHeatSystemHeatSysFurnaceFurnace );
     heatingSystemHeatSystemHeatSysRoomRoom : HeatingSystemHeatSystemHeatSysRoomRoom( heatingSystemHeatSystem );
     heatingSystemHeatSystemHeatSysControllerController : HeatingSystemHeatSystemHeatSysControllerController( heatingSystemHeatSystem );
     heatingSystemHeatSystemHeatSysFurnaceFurnace : HeatingSystemHeatSystemHeatSysFurnaceFurnace( heatingSystemHeatSystem );

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     heatingSystemHeatSystem_Machine : HeatingSystemHeatSystem_Machine;

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( heatingSystemHeatSystem_Machine.heatingSystemHeatSystem.state = HeatSystem_heatSys )
   CTLSPEC   EF( heatingSystemHeatSystem_Machine.heatingSystemHeatSystemHeatSysRoomRoom.state = HeatSystemHeatSysRoomRoom_noHeatReqidleNoHeat )
   CTLSPEC   EF( heatingSystemHeatSystem_Machine.heatingSystemHeatSystemHeatSysRoomRoom.state = HeatSystemHeatSysRoomRoom_noHeatReqwaitForHeat )
   CTLSPEC   EF( heatingSystemHeatSystem_Machine.heatingSystemHeatSystemHeatSysRoomRoom.state = HeatSystemHeatSysRoomRoom_heatReqidleHeat )
   CTLSPEC   EF( heatingSystemHeatSystem_Machine.heatingSystemHeatSystemHeatSysRoomRoom.state = HeatSystemHeatSysRoomRoom_heatReqwaitForCool )
   CTLSPEC   EF( heatingSystemHeatSystem_Machine.heatingSystemHeatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_Controlleroff )
   CTLSPEC   EF( heatingSystemHeatSystem_Machine.heatingSystemHeatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_ControllerOnidle )
   CTLSPEC   EF( heatingSystemHeatSystem_Machine.heatingSystemHeatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_heaterActiveactHeater )
   CTLSPEC   EF( heatingSystemHeatSystem_Machine.heatingSystemHeatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_heaterActiveheaterRun )
   CTLSPEC   EF( heatingSystemHeatSystem_Machine.heatingSystemHeatSystemHeatSysControllerController.state = HeatSystemHeatSysControllerController_Controllererror )
   CTLSPEC   EF( heatingSystemHeatSystem_Machine.heatingSystemHeatSystemHeatSysFurnaceFurnace.state = HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceOff )
   CTLSPEC   EF( heatingSystemHeatSystem_Machine.heatingSystemHeatSystemHeatSysFurnaceFurnace.state = HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceRun )
   CTLSPEC   EF( heatingSystemHeatSystem_Machine.heatingSystemHeatSystemHeatSysFurnaceFurnace.state = HeatSystemHeatSysFurnaceFurnace_furnaceNormalfurnaceAct )
   CTLSPEC   EF( heatingSystemHeatSystem_Machine.heatingSystemHeatSystemHeatSysFurnaceFurnace.state = HeatSystemHeatSysFurnaceFurnace_furnacefurnaceErr )

8
15
sm :  cruise.umple.compiler.State@1cfca845[name:stable,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[5,4]
  stateMachine = 2105c11b : 0
 cruise.umple.compiler.State@99e68b5[name:Counter,isConcurrent:true,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[6,12]
  stateMachine = 2105c11b : 3

Bit1 :  cruise.umple.compiler.State@5f092eaa[name:Bit1Bit11,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[10,8]
  stateMachine = 264e0b8e : 0
 cruise.umple.compiler.State@294c1b45[name:Bit1Bit12,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[11,16]
  stateMachine = 264e0b8e : 0

Bit2 :  cruise.umple.compiler.State@53ed0519[name:Bit2Bit21,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[19,8]
  stateMachine = 45070db0 : 0
 cruise.umple.compiler.State@13437ce5[name:Bit2Bit22,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[20,16]
  stateMachine = 45070db0 : 0

Status :  cruise.umple.compiler.State@5a9ccbfb[name:StatusCounting,isConcurrent:true,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[28,9]
  stateMachine = 6162d87c : 2
 cruise.umple.compiler.State@1cf5236d[name:StatusMax,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[23,16]
  stateMachine = 6162d87c : 0

Bit3 :  cruise.umple.compiler.State@14d9d042[name:Bit3Bit31,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[30,13]
  stateMachine = 28261231 : 0

Bit4 :  cruise.umple.compiler.State@5f709e71[name:Bit4Bit41,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[31,21]
  stateMachine = 6a2b30b9 : 0

-- This file is generated from EnhancedBitCounter.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for ASm --
MODULE ASm ( _smCounterBit1Bit1 , _smCounterBit2Bit2 , _smCounterStatusStatus , _smCounterStatusStatusStatusCountingBit3Bit3 , _smCounterStatusStatusStatusCountingBit4Bit4 )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Sm_stable , Sm_Counter };
     event : { ev_reset , ev_e0 , ev_e1 , ev_e2 , ev_null };

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     sm_stable :=  !( event = ev_reset | event = ev_e1 | event = ev_e0 | event = ev_e2 );
     t1 := event = ev_e0 & state = Sm_stable;
     t2 := event = ev_e1 & _smCounterBit1Bit1.state = SmCounterBit1Bit1_Bit1Bit11;
     t3 := event = ev_e2 & _smCounterBit1Bit1.state = SmCounterBit1Bit1_Bit1Bit12;
     t4 := event = ev_e1 & _smCounterBit2Bit2.state = SmCounterBit2Bit2_Bit2Bit21;
     t5 := event = ev_e2 & _smCounterBit2Bit2.state = SmCounterBit2Bit2_Bit2Bit22;
     t6 := event = ev_reset & _smCounterStatusStatus.state = SmCounterStatusStatus_StatusMax;
     t7 := event = ev_e1 & _smCounterStatusStatusStatusCountingBit3Bit3.state = SmCounterStatusStatusStatusCountingBit3Bit3_Bit3Bit31;
     t8 := event = ev_e2 & _smCounterStatusStatusStatusCountingBit4Bit4.state = SmCounterStatusStatusStatusCountingBit4Bit4_Bit4Bit41;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := Sm_stable;
     next( state ) := case
       t1 | t2 | t6 | t7 | t3 | t4 | t8 | t5 : Sm_Counter;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       sm_stable : { ev_reset , ev_e0 , ev_e1 , ev_e2 };
       TRUE : ev_null;
     esac;

-- This defines a NuSMV module for ASmCounterBit1Bit1 --
MODULE ASmCounterBit1Bit1 ( _sm )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmCounterBit1Bit1_Bit1Bit11 , SmCounterBit1Bit1_Bit1Bit12 , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _sm.t1 | _sm.t5 : null;
       _sm.t3 : SmCounterBit1Bit1_Bit1Bit11;
       _sm.t2 : SmCounterBit1Bit1_Bit1Bit12;
       _sm.state = Sm_Counter & state = null : SmCounterBit1Bit1_Bit1Bit11;
       TRUE : state;
     esac;

-- This defines a NuSMV module for ASmCounterBit2Bit2 --
MODULE ASmCounterBit2Bit2 ( _sm )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmCounterBit2Bit2_Bit2Bit21 , SmCounterBit2Bit2_Bit2Bit22 , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _sm.t1 | _sm.t5 : null;
       _sm.t4 : SmCounterBit2Bit2_Bit2Bit22;
       _sm.state = Sm_Counter & state = null : SmCounterBit2Bit2_Bit2Bit21;
       TRUE : state;
     esac;

-- This defines a NuSMV module for ASmCounterStatusStatus --
MODULE ASmCounterStatusStatus ( _sm )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmCounterStatusStatus_StatusCounting , SmCounterStatusStatus_StatusMax , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _sm.t1 : null;
       _sm.t8 | _sm.t6 | _sm.t7 : SmCounterStatusStatus_StatusCounting;
       _sm.t5 : SmCounterStatusStatus_StatusMax;
       _sm.state = Sm_Counter & state = null : SmCounterStatusStatus_StatusCounting;
       TRUE : state;
     esac;

-- This defines a NuSMV module for ASmCounterStatusStatusStatusCountingBit3Bit3 --
MODULE ASmCounterStatusStatusStatusCountingBit3Bit3 ( _sm , _smCounterStatusStatus )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmCounterStatusStatusStatusCountingBit3Bit3_Bit3Bit31 , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _sm.t6 | _sm.t7 : null;
       _sm.t8 : SmCounterStatusStatusStatusCountingBit3Bit3_Bit3Bit31;
       _smCounterStatusStatus.state = SmCounterStatusStatus_StatusCounting & state = null : SmCounterStatusStatusStatusCountingBit3Bit3_Bit3Bit31;
       TRUE : state;
     esac;

-- This defines a NuSMV module for ASmCounterStatusStatusStatusCountingBit4Bit4 --
MODULE ASmCounterStatusStatusStatusCountingBit4Bit4 ( _sm , _smCounterStatusStatus )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmCounterStatusStatusStatusCountingBit4Bit4_Bit4Bit41 , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _sm.t6 | _sm.t8 : null;
       _sm.t7 : SmCounterStatusStatusStatusCountingBit4Bit4_Bit4Bit41;
       _smCounterStatusStatus.state = SmCounterStatusStatus_StatusCounting & state = null : SmCounterStatusStatusStatusCountingBit4Bit4_Bit4Bit41;
       TRUE : state;
     esac;

-- This defines a NuSMV module for ASm_Machine --
MODULE ASm_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     aSm : ASm( aSmCounterBit1Bit1 , aSmCounterBit2Bit2 , aSmCounterStatusStatus , aSmCounterStatusStatusStatusCountingBit3Bit3 , aSmCounterStatusStatusStatusCountingBit4Bit4 );
     aSmCounterBit1Bit1 : ASmCounterBit1Bit1( aSm );
     aSmCounterBit2Bit2 : ASmCounterBit2Bit2( aSm );
     aSmCounterStatusStatus : ASmCounterStatusStatus( aSm );
     aSmCounterStatusStatusStatusCountingBit3Bit3 : ASmCounterStatusStatusStatusCountingBit3Bit3( aSm , aSmCounterStatusStatus );
     aSmCounterStatusStatusStatusCountingBit4Bit4 : ASmCounterStatusStatusStatusCountingBit4Bit4( aSm , aSmCounterStatusStatus );

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     aSm_Machine : ASm_Machine;

   -- The following properties are specified to certify that this model is free of non-determinism. 
   INVARSPEC   ( aSm_Machine.aSm.t5 & aSm_Machine.aSm.t3 -> next( aSm_Machine.aSmCounterStatusStatus.state = SmCounterStatusStatus_StatusMax & aSm_Machine.aSmCounterBit1Bit1.state = SmCounterBit1Bit1_Bit1Bit11 ) )
   INVARSPEC   ( aSm_Machine.aSm.t5 & aSm_Machine.aSm.t8 -> next( aSm_Machine.aSmCounterStatusStatus.state = SmCounterStatusStatus_StatusMax & aSm_Machine.aSmCounterStatusStatusStatusCountingBit3Bit3.state = SmCounterStatusStatusStatusCountingBit3Bit3_Bit3Bit31 ) )

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( aSm_Machine.aSm.state = Sm_stable )
   CTLSPEC   EF( aSm_Machine.aSm.state = Sm_Counter )
   CTLSPEC   EF( aSm_Machine.aSmCounterBit1Bit1.state = SmCounterBit1Bit1_Bit1Bit11 )
   CTLSPEC   EF( aSm_Machine.aSmCounterBit1Bit1.state = SmCounterBit1Bit1_Bit1Bit12 )
   CTLSPEC   EF( aSm_Machine.aSmCounterBit2Bit2.state = SmCounterBit2Bit2_Bit2Bit21 )
   CTLSPEC   EF( aSm_Machine.aSmCounterBit2Bit2.state = SmCounterBit2Bit2_Bit2Bit22 )
   CTLSPEC   EF( aSm_Machine.aSmCounterStatusStatus.state = SmCounterStatusStatus_StatusCounting )
   CTLSPEC   EF( aSm_Machine.aSmCounterStatusStatus.state = SmCounterStatusStatus_StatusMax )
   CTLSPEC   EF( aSm_Machine.aSmCounterStatusStatusStatusCountingBit3Bit3.state = SmCounterStatusStatusStatusCountingBit3Bit3_Bit3Bit31 )
   CTLSPEC   EF( aSm_Machine.aSmCounterStatusStatusStatusCountingBit4Bit4.state = SmCounterStatusStatusStatusCountingBit4Bit4_Bit4Bit41 )

24
22
sm :  cruise.umple.compiler.State@33681da[name:heatingSystem,isConcurrent:true,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[22,2]
  stateMachine = 1a5df070 : 3

room :  cruise.umple.compiler.State@1070308e[name:noHeatReqidleNotHeat,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[26,6]
  stateMachine = 6eb8fd79 : 0
 cruise.umple.compiler.State@59b78925[name:noHeatReqwaitForHeat,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[27,76]
  stateMachine = 6eb8fd79 : 0
 cruise.umple.compiler.State@2c1c3c13[name:heatReqidleHeat,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[37,6]
  stateMachine = 6eb8fd79 : 0
 cruise.umple.compiler.State@3df99d5e[name:heatReqwaitForCool,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[38,76]
  stateMachine = 6eb8fd79 : 0

controller :  cruise.umple.compiler.State@1483ecad[name:controlleroff,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[50,5]
  stateMachine = 7118a1b9 : 0
 cruise.umple.compiler.State@3ca9e72d[name:controllerOnidle,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[56,6]
  stateMachine = 7118a1b9 : 0
 cruise.umple.compiler.State@4dcb8e8b[name:heaterActiveactHeater,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[61,7]
  stateMachine = 7118a1b9 : 0
 cruise.umple.compiler.State@46a6f51b[name:heaterActiveheaterRun,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[62,36]
  stateMachine = 7118a1b9 : 0
 cruise.umple.compiler.State@7287811f[name:controllererror,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[55,22]
  stateMachine = 7118a1b9 : 0

furnace :  cruise.umple.compiler.State@1e490ed[name:furnaceNormalfurnaceOff,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[76,5]
  stateMachine = 10cae98c : 0
 cruise.umple.compiler.State@61b5c8a3[name:furnaceNormalfurnaceAct,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[77,58]
  stateMachine = 10cae98c : 0
 cruise.umple.compiler.State@2f7432f3[name:furnaceNormalfurnaceRun,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[82,75]
  stateMachine = 10cae98c : 0
 cruise.umple.compiler.State@ab2ac08[name:furnacefurnaceErr,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[75,21]
  stateMachine = 10cae98c : 0

-- This file is generated from RoomHeatingSystem.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for HeatControlSystemSm --
MODULE HeatControlSystemSm ( _smHeatingSystemRoomRoom , _smHeatingSystemControllerController , _smHeatingSystemFurnaceFurnace )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Sm_heatingSystem , null };
     event : { ev_heatSwitchOn , ev_heatSwitchOff , ev___autotransition__ , ev_userReset , ev_furnaceFault , ev_null };
     furnaceStartUpTime : integer;
     furnaceTimer : integer;
     setTemp : integer;
     actualTemp : integer;
     waitedForWarm : integer;
     warmUpTimer : integer;
     valvePos : integer;
     waitedForCool : integer;
     coolDownTimer : integer;
     furnaceRunning : boolean;
     activate : boolean;
     deactivate : boolean;
     requestHeat : boolean;
     furnaceReset : boolean;

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     sm_stable :=  !( event = ev_heatSwitchOff | event = ev_userReset | event = ev_heatSwitchOn | event = ev___autotransition__ | event = ev_furnaceFault );
     t1 := event = ev___autotransition__ & _smHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_noHeatReqidleNotHeat & g1;
     t2 := event = ev___autotransition__ & _smHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_noHeatReqwaitForHeat & g2;
     t3 := event = ev___autotransition__ & _smHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_noHeatReqwaitForHeat & g3;
     t4 := event = ev___autotransition__ & _smHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_noHeatReqwaitForHeat & g4;
     t5 := event = ev___autotransition__ & _smHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_noHeatReqwaitForHeat & g5;
     t6 := event = ev___autotransition__ & _smHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_heatReqidleHeat & g6;
     t7 := event = ev___autotransition__ & _smHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_heatReqwaitForCool & g7;
     t8 := event = ev___autotransition__ & _smHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_heatReqwaitForCool & g8;
     t9 := event = ev___autotransition__ & _smHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_heatReqwaitForCool & g9;
     t10 := event = ev___autotransition__ & _smHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_heatReqwaitForCool & g10;
     t11 := event = ev_heatSwitchOn & _smHeatingSystemControllerController.state = SmHeatingSystemControllerController_controlleroff;
     t12 := event = ev_heatSwitchOff & _smHeatingSystemControllerController.state = SmHeatingSystemControllerController_controllerOnidle;
     t13 := event = ev_furnaceFault & _smHeatingSystemControllerController.state = SmHeatingSystemControllerController_controllerOnidle;
     t14 := event = ev___autotransition__ & _smHeatingSystemControllerController.state = SmHeatingSystemControllerController_controllerOnidle & g11;
     t15 := event = ev_heatSwitchOff & _smHeatingSystemControllerController.state = SmHeatingSystemControllerController_heaterActiveactHeater;
     t16 := event = ev_furnaceFault & _smHeatingSystemControllerController.state = SmHeatingSystemControllerController_heaterActiveactHeater;
     t17 := event = ev___autotransition__ & _smHeatingSystemControllerController.state = SmHeatingSystemControllerController_heaterActiveactHeater & g12;
     t18 := event = ev___autotransition__ & _smHeatingSystemControllerController.state = SmHeatingSystemControllerController_heaterActiveactHeater & g13;
     t19 := event = ev_heatSwitchOff & _smHeatingSystemControllerController.state = SmHeatingSystemControllerController_heaterActiveheaterRun;
     t20 := event = ev_furnaceFault & _smHeatingSystemControllerController.state = SmHeatingSystemControllerController_heaterActiveheaterRun;
     t21 := event = ev___autotransition__ & _smHeatingSystemControllerController.state = SmHeatingSystemControllerController_heaterActiveheaterRun & g12;
     t22 := event = ev_userReset & _smHeatingSystemControllerController.state = SmHeatingSystemControllerController_controllererror;
     t23 := event = ev_furnaceFault & _smHeatingSystemFurnaceFurnace.state = SmHeatingSystemFurnaceFurnace_furnaceNormalfurnaceOff;
     t24 := event = ev___autotransition__ & _smHeatingSystemFurnaceFurnace.state = SmHeatingSystemFurnaceFurnace_furnaceNormalfurnaceOff & g14;
     t25 := event = ev_furnaceFault & _smHeatingSystemFurnaceFurnace.state = SmHeatingSystemFurnaceFurnace_furnaceNormalfurnaceAct;
     t26 := event = ev___autotransition__ & _smHeatingSystemFurnaceFurnace.state = SmHeatingSystemFurnaceFurnace_furnaceNormalfurnaceAct & g15;
     t27 := event = ev___autotransition__ & _smHeatingSystemFurnaceFurnace.state = SmHeatingSystemFurnaceFurnace_furnaceNormalfurnaceAct & g16;
     t28 := event = ev___autotransition__ & _smHeatingSystemFurnaceFurnace.state = SmHeatingSystemFurnaceFurnace_furnaceNormalfurnaceAct & g17;
     t29 := event = ev_furnaceFault & _smHeatingSystemFurnaceFurnace.state = SmHeatingSystemFurnaceFurnace_furnaceNormalfurnaceRun;
     t30 := event = ev___autotransition__ & _smHeatingSystemFurnaceFurnace.state = SmHeatingSystemFurnaceFurnace_furnaceNormalfurnaceRun & g15;
     t31 := event = ev___autotransition__ & _smHeatingSystemFurnaceFurnace.state = SmHeatingSystemFurnaceFurnace_furnacefurnaceErr & g18;
     g1 := (setTemp - actualTemp) > 2;
     g2 := waitedForWarm < warmUpTimer;
     g3 := (valvePos != 2) & (waitedForWarm = warmUpTimer);
     g4 := ((setTemp - actualTemp) <= 2);
     g5 := (waitedForWarm = warmUpTimer) & (valvePos = 2) & ((setTemp - actualTemp) > 2);
     g6 := (actualTemp - setTemp) > 2;
     g7 := (valvePos != 0) & (coolDownTimer = waitedForCool);
     g8 := (valvePos = 0) & (coolDownTimer = waitedForCool) & ((actualTemp - setTemp) > 2);
     g9 := waitedForCool < coolDownTimer;
     g10 := ((actualTemp - setTemp) <= 2);
     g11 := requestHeat = TRUE;
     g12 := requestHeat = FALSE;
     g13 := furnaceRunning = TRUE;
     g14 := activate = TRUE;
     g15 := deactivate = TRUE;
     g16 := furnaceStartUpTime < furnaceTimer;
     g17 := furnaceStartUpTime = furnaceTimer;
     g18 := furnaceReset = TRUE;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := Sm_heatingSystem;
     next( state ) := case
       t8 | t2 | t5 | t6 | t9 | t15 | t22 | t17 | t14 | t13 | t20 | t26 | t24 | t28 | t25 | t4 | t1 | t3 | t10 | t7 | t12 | t19 | t11 | t21 | t18 | t16 | t31 | t30 | t27 | t23 | t29 : Sm_heatingSystem;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       sm_stable : { ev_heatSwitchOn , ev_heatSwitchOff , ev___autotransition__ , ev_userReset , ev_furnaceFault };
       TRUE : ev_null;
     esac;

   -- This part defines logic for the assignment of values to state variable "furnaceStartUpTime" of this NuSMV module --
   ASSIGN
     init( furnaceStartUpTime ) := 0;

   -- This part defines logic for the assignment of values to state variable "furnaceTimer" of this NuSMV module --
   ASSIGN
     init( furnaceTimer ) := 0;

   -- This part defines logic for the assignment of values to state variable "setTemp" of this NuSMV module --
   ASSIGN
     init( setTemp ) := 0;

   -- This part defines logic for the assignment of values to state variable "actualTemp" of this NuSMV module --
   ASSIGN
     init( actualTemp ) := 0;

   -- This part defines logic for the assignment of values to state variable "waitedForWarm" of this NuSMV module --
   ASSIGN
     init( waitedForWarm ) := 0;

   -- This part defines logic for the assignment of values to state variable "warmUpTimer" of this NuSMV module --
   ASSIGN
     init( warmUpTimer ) := 0;

   -- This part defines logic for the assignment of values to state variable "valvePos" of this NuSMV module --
   ASSIGN
     init( valvePos ) := 0;

   -- This part defines logic for the assignment of values to state variable "waitedForCool" of this NuSMV module --
   ASSIGN
     init( waitedForCool ) := 0;

   -- This part defines logic for the assignment of values to state variable "coolDownTimer" of this NuSMV module --
   ASSIGN
     init( coolDownTimer ) := 0;

   -- This part defines logic for the assignment of values to state variable "furnaceRunning" of this NuSMV module --
   ASSIGN
     init( furnaceRunning ) := FALSE;

   -- This part defines logic for the assignment of values to state variable "activate" of this NuSMV module --
   ASSIGN
     init( activate ) := FALSE;

   -- This part defines logic for the assignment of values to state variable "deactivate" of this NuSMV module --
   ASSIGN
     init( deactivate ) := FALSE;

   -- This part defines logic for the assignment of values to state variable "requestHeat" of this NuSMV module --
   ASSIGN
     init( requestHeat ) := FALSE;

   -- This part defines logic for the assignment of values to state variable "furnaceReset" of this NuSMV module --
   ASSIGN
     init( furnaceReset ) := FALSE;

-- This defines a NuSMV module for HeatControlSystemSmHeatingSystemRoomRoom --
MODULE HeatControlSystemSmHeatingSystemRoomRoom ( _sm )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmHeatingSystemRoomRoom_noHeatReqidleNotHeat , SmHeatingSystemRoomRoom_noHeatReqwaitForHeat , SmHeatingSystemRoomRoom_heatReqidleHeat , SmHeatingSystemRoomRoom_heatReqwaitForCool , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _sm.t4 | _sm.t8 : SmHeatingSystemRoomRoom_noHeatReqidleNotHeat;
       _sm.t2 | _sm.t1 | _sm.t3 : SmHeatingSystemRoomRoom_noHeatReqwaitForHeat;
       _sm.t5 | _sm.t10 : SmHeatingSystemRoomRoom_heatReqidleHeat;
       _sm.t7 | _sm.t6 | _sm.t9 : SmHeatingSystemRoomRoom_heatReqwaitForCool;
       _sm.state = Sm_heatingSystem & state = null : SmHeatingSystemRoomRoom_noHeatReqidleNotHeat;
       TRUE : state;
     esac;

-- This defines a NuSMV module for HeatControlSystemSmHeatingSystemControllerController --
MODULE HeatControlSystemSmHeatingSystemControllerController ( _sm )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmHeatingSystemControllerController_controlleroff , SmHeatingSystemControllerController_controllerOnidle , SmHeatingSystemControllerController_heaterActiveactHeater , SmHeatingSystemControllerController_heaterActiveheaterRun , SmHeatingSystemControllerController_controllererror , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _sm.t12 | _sm.t19 | _sm.t15 | _sm.t22 : SmHeatingSystemControllerController_controlleroff;
       _sm.t17 | _sm.t11 | _sm.t21 : SmHeatingSystemControllerController_controllerOnidle;
       _sm.t14 : SmHeatingSystemControllerController_heaterActiveactHeater;
       _sm.t18 : SmHeatingSystemControllerController_heaterActiveheaterRun;
       _sm.t16 | _sm.t13 | _sm.t20 : SmHeatingSystemControllerController_controllererror;
       _sm.state = Sm_heatingSystem & state = null : SmHeatingSystemControllerController_controlleroff;
       TRUE : state;
     esac;

-- This defines a NuSMV module for HeatControlSystemSmHeatingSystemFurnaceFurnace --
MODULE HeatControlSystemSmHeatingSystemFurnaceFurnace ( _sm )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmHeatingSystemFurnaceFurnace_furnaceNormalfurnaceOff , SmHeatingSystemFurnaceFurnace_furnaceNormalfurnaceAct , SmHeatingSystemFurnaceFurnace_furnaceNormalfurnaceRun , SmHeatingSystemFurnaceFurnace_furnacefurnaceErr , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _sm.t26 | _sm.t31 | _sm.t30 : SmHeatingSystemFurnaceFurnace_furnaceNormalfurnaceOff;
       _sm.t24 | _sm.t27 : SmHeatingSystemFurnaceFurnace_furnaceNormalfurnaceAct;
       _sm.t28 : SmHeatingSystemFurnaceFurnace_furnaceNormalfurnaceRun;
       _sm.t25 | _sm.t23 | _sm.t29 : SmHeatingSystemFurnaceFurnace_furnacefurnaceErr;
       _sm.state = Sm_heatingSystem & state = null : SmHeatingSystemFurnaceFurnace_furnaceNormalfurnaceOff;
       TRUE : state;
     esac;

-- This defines a NuSMV module for HeatControlSystemSm_Machine --
MODULE HeatControlSystemSm_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     heatControlSystemSm : HeatControlSystemSm( heatControlSystemSmHeatingSystemRoomRoom , heatControlSystemSmHeatingSystemControllerController , heatControlSystemSmHeatingSystemFurnaceFurnace );
     heatControlSystemSmHeatingSystemRoomRoom : HeatControlSystemSmHeatingSystemRoomRoom( heatControlSystemSm );
     heatControlSystemSmHeatingSystemControllerController : HeatControlSystemSmHeatingSystemControllerController( heatControlSystemSm );
     heatControlSystemSmHeatingSystemFurnaceFurnace : HeatControlSystemSmHeatingSystemFurnaceFurnace( heatControlSystemSm );

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     heatControlSystemSm_Machine : HeatControlSystemSm_Machine;

   -- The following properties are specified to certify that this model is free of non-determinism. 
   INVARSPEC   ( heatControlSystemSm_Machine.heatControlSystemSm.t2 & heatControlSystemSm_Machine.heatControlSystemSm.t4 -> next( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_noHeatReqwaitForHeat & heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_noHeatReqidleNotHeat ) )
   INVARSPEC   ( heatControlSystemSm_Machine.heatControlSystemSm.t2 & heatControlSystemSm_Machine.heatControlSystemSm.t5 -> next( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_noHeatReqwaitForHeat & heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_heatReqidleHeat ) )
   INVARSPEC   ( heatControlSystemSm_Machine.heatControlSystemSm.t3 & heatControlSystemSm_Machine.heatControlSystemSm.t4 -> next( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_noHeatReqwaitForHeat & heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_noHeatReqidleNotHeat ) )
   INVARSPEC   ( heatControlSystemSm_Machine.heatControlSystemSm.t3 & heatControlSystemSm_Machine.heatControlSystemSm.t5 -> next( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_noHeatReqwaitForHeat & heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_heatReqidleHeat ) )
   INVARSPEC   ( heatControlSystemSm_Machine.heatControlSystemSm.t4 & heatControlSystemSm_Machine.heatControlSystemSm.t5 -> next( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_noHeatReqidleNotHeat & heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_heatReqidleHeat ) )
   INVARSPEC   ( heatControlSystemSm_Machine.heatControlSystemSm.t7 & heatControlSystemSm_Machine.heatControlSystemSm.t8 -> next( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_heatReqwaitForCool & heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_noHeatReqidleNotHeat ) )
   INVARSPEC   ( heatControlSystemSm_Machine.heatControlSystemSm.t7 & heatControlSystemSm_Machine.heatControlSystemSm.t10 -> next( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_heatReqwaitForCool & heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_heatReqidleHeat ) )
   INVARSPEC   ( heatControlSystemSm_Machine.heatControlSystemSm.t8 & heatControlSystemSm_Machine.heatControlSystemSm.t9 -> next( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_noHeatReqidleNotHeat & heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_heatReqwaitForCool ) )
   INVARSPEC   ( heatControlSystemSm_Machine.heatControlSystemSm.t8 & heatControlSystemSm_Machine.heatControlSystemSm.t10 -> next( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_noHeatReqidleNotHeat & heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_heatReqidleHeat ) )
   INVARSPEC   ( heatControlSystemSm_Machine.heatControlSystemSm.t9 & heatControlSystemSm_Machine.heatControlSystemSm.t10 -> next( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_heatReqwaitForCool & heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_heatReqidleHeat ) )
   INVARSPEC   ( heatControlSystemSm_Machine.heatControlSystemSm.t17 & heatControlSystemSm_Machine.heatControlSystemSm.t18 -> next( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemControllerController.state = SmHeatingSystemControllerController_controllerOnidle & heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemControllerController.state = SmHeatingSystemControllerController_heaterActiveheaterRun ) )
   INVARSPEC   ( heatControlSystemSm_Machine.heatControlSystemSm.t26 & heatControlSystemSm_Machine.heatControlSystemSm.t27 -> next( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemFurnaceFurnace.state = SmHeatingSystemFurnaceFurnace_furnaceNormalfurnaceOff & heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemFurnaceFurnace.state = SmHeatingSystemFurnaceFurnace_furnaceNormalfurnaceAct ) )
   INVARSPEC   ( heatControlSystemSm_Machine.heatControlSystemSm.t26 & heatControlSystemSm_Machine.heatControlSystemSm.t28 -> next( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemFurnaceFurnace.state = SmHeatingSystemFurnaceFurnace_furnaceNormalfurnaceOff & heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemFurnaceFurnace.state = SmHeatingSystemFurnaceFurnace_furnaceNormalfurnaceRun ) )
   INVARSPEC   ( heatControlSystemSm_Machine.heatControlSystemSm.t27 & heatControlSystemSm_Machine.heatControlSystemSm.t28 -> next( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemFurnaceFurnace.state = SmHeatingSystemFurnaceFurnace_furnaceNormalfurnaceAct & heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemFurnaceFurnace.state = SmHeatingSystemFurnaceFurnace_furnaceNormalfurnaceRun ) )

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSm.state = Sm_heatingSystem )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_noHeatReqidleNotHeat )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_noHeatReqwaitForHeat )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_heatReqidleHeat )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemRoomRoom.state = SmHeatingSystemRoomRoom_heatReqwaitForCool )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemControllerController.state = SmHeatingSystemControllerController_controlleroff )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemControllerController.state = SmHeatingSystemControllerController_controllerOnidle )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemControllerController.state = SmHeatingSystemControllerController_heaterActiveactHeater )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemControllerController.state = SmHeatingSystemControllerController_heaterActiveheaterRun )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemControllerController.state = SmHeatingSystemControllerController_controllererror )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemFurnaceFurnace.state = SmHeatingSystemFurnaceFurnace_furnaceNormalfurnaceOff )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemFurnaceFurnace.state = SmHeatingSystemFurnaceFurnace_furnaceNormalfurnaceAct )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemFurnaceFurnace.state = SmHeatingSystemFurnaceFurnace_furnaceNormalfurnaceRun )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemFurnaceFurnace.state = SmHeatingSystemFurnaceFurnace_furnacefurnaceErr )

35
17
state :  cruise.umple.compiler.State@380ea757[name:neutral,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[13,4]
  stateMachine = 721e5f57 : 0
 cruise.umple.compiler.State@2e43fc06[name:reverse,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[14,23]
  stateMachine = 721e5f57 : 0
 cruise.umple.compiler.State@5fb7b227[name:firstfirst_one,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[32,4]
  stateMachine = 721e5f57 : 0
 cruise.umple.compiler.State@12ce9299[name:firstfirst_two,isConcurrent:true,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[33,11]
  stateMachine = 721e5f57 : 2
 cruise.umple.compiler.State@12aa9370[name:drivesecond,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[17,22]
  stateMachine = 721e5f57 : 0
 cruise.umple.compiler.State@2338eeef[name:drivethird,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[67,44]
  stateMachine = 721e5f57 : 0

first_two_one :  cruise.umple.compiler.State@41fc5625[name:first_two_onefirst_two_one_one,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[41,6]
  stateMachine = 27c05ed9 : 0

first_two_two :  cruise.umple.compiler.State@61377842[name:first_two_twofirst_two_two_one,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[48,6]
  stateMachine = 51cbd1d : 0
 cruise.umple.compiler.State@26f29ee5[name:first_two_twos21,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[49,20]
  stateMachine = 51cbd1d : 0
 cruise.umple.compiler.State@3e13a74[name:first_two_twos22,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[51,18]
  stateMachine = 51cbd1d : 0
 cruise.umple.compiler.State@594ea722[name:s24s31,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[54,21]
  stateMachine = 51cbd1d : 0
 cruise.umple.compiler.State@39da0d43[name:s24s32,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[57,20]
  stateMachine = 51cbd1d : 0

-- This file is generated from CarTransmission.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for CarTransmissionState --
MODULE CarTransmissionState ( _stateFirstfirst_twoFirst_two_oneFirst_two_one , _stateFirstfirst_twoFirst_two_twoFirst_two_two )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { State_neutral , State_reverse , State_firstfirst_one , State_firstfirst_two , State_drivesecond , State_drivethird };
     event : { ev_e11 , ev_e10 , ev_selectFirst , ev_selectNeutral , ev_dropBelowSecondSpeed , ev_selectReverse , ev_e1 , ev_e2 , ev_e3 , ev_e5 , ev_e7 , ev_selectDrive , ev_e9 , ev_reachSecondSpeed , ev_selectSecond , ev_reachThirdSpeed , ev_dropBelowThirdSpeed , ev_null };
     driveSelected : boolean;
     notdriveSelected : boolean;
     a : integer;
     b : integer;
     c : integer;

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     state_stable :=  !( event = ev_e10 | event = ev_selectNeutral | event = ev_selectReverse | event = ev_e2 | event = ev_e5 | event = ev_selectDrive | event = ev_reachSecondSpeed | event = ev_reachThirdSpeed | event = ev_e11 | event = ev_selectFirst | event = ev_dropBelowSecondSpeed | event = ev_e1 | event = ev_e3 | event = ev_e7 | event = ev_e9 | event = ev_selectSecond | event = ev_dropBelowThirdSpeed );
     t1 := event = ev_selectReverse & state = State_neutral;
     t2 := event = ev_selectDrive & state = State_neutral;
     t3 := event = ev_selectFirst & state = State_neutral;
     t4 := event = ev_selectSecond & state = State_neutral;
     t5 := event = ev_selectNeutral & state = State_reverse;
     t6 := event = ev_selectNeutral & state = State_firstfirst_one;
     t7 := event = ev_selectFirst & state = State_firstfirst_one;
     t8 := event = ev_selectSecond & state = State_firstfirst_one;
     t9 := event = ev_reachSecondSpeed & state = State_firstfirst_one & g1;
     t10 := event = ev_e1 & state = State_firstfirst_one;
     t11 := event = ev_selectNeutral & state = State_firstfirst_two;
     t12 := event = ev_selectFirst & state = State_firstfirst_two;
     t13 := event = ev_selectSecond & state = State_firstfirst_two;
     t14 := event = ev_reachSecondSpeed & state = State_firstfirst_two & g1;
     t15 := event = ev_selectNeutral & state = State_drivesecond;
     t16 := event = ev_selectFirst & state = State_drivesecond;
     t17 := event = ev_selectSecond & state = State_drivesecond;
     t18 := event = ev_dropBelowSecondSpeed & state = State_drivesecond & g2;
     t19 := event = ev_dropBelowSecondSpeed & state = State_drivesecond & g3;
     t20 := event = ev_dropBelowSecondSpeed & state = State_drivesecond & g4;
     t21 := event = ev_dropBelowSecondSpeed & state = State_drivesecond & g5;
     t22 := event = ev_dropBelowSecondSpeed & state = State_drivesecond & g6;
     t23 := event = ev_dropBelowSecondSpeed & state = State_drivesecond & g7;
     t24 := event = ev_dropBelowSecondSpeed & state = State_drivesecond & g8;
     t25 := event = ev_dropBelowSecondSpeed & state = State_drivesecond & g9;
     t26 := event = ev_dropBelowSecondSpeed & state = State_drivesecond & g10;
     t27 := event = ev_dropBelowSecondSpeed & state = State_drivesecond & g11;
     t28 := event = ev_dropBelowSecondSpeed & state = State_drivesecond & g12;
     t29 := event = ev_reachThirdSpeed & state = State_drivesecond & g13;
     t30 := event = ev_selectNeutral & state = State_drivethird;
     t31 := event = ev_selectFirst & state = State_drivethird;
     t32 := event = ev_selectSecond & state = State_drivethird;
     t33 := event = ev_dropBelowThirdSpeed & state = State_drivethird & g12;
     t34 := event = ev_dropBelowThirdSpeed & state = State_drivethird;
     t35 := event = ev_e1 & _stateFirstfirst_twoFirst_two_oneFirst_two_one.state != null;
     t36 := event = ev_e2 & _stateFirstfirst_twoFirst_two_oneFirst_two_one.state != null;
     t37 := event = ev_e1 & _stateFirstfirst_twoFirst_two_twoFirst_two_two.state != null;
     t38 := event = ev_e2 & _stateFirstfirst_twoFirst_two_twoFirst_two_two.state = StateFirstfirst_twoFirst_two_twoFirst_two_two_first_two_twofirst_two_two_one;
     t39 := event = ev_e5 & _stateFirstfirst_twoFirst_two_twoFirst_two_two.state = StateFirstfirst_twoFirst_two_twoFirst_two_two_first_two_twos21;
     t40 := event = ev_e7 & _stateFirstfirst_twoFirst_two_twoFirst_two_two.state = StateFirstfirst_twoFirst_two_twoFirst_two_two_first_two_twos22;
     t41 := event = ev_e11 & _stateFirstfirst_twoFirst_two_twoFirst_two_two.state = StateFirstfirst_twoFirst_two_twoFirst_two_two_first_two_twos22;
     t42 := event = ev_e2 & _stateFirstfirst_twoFirst_two_twoFirst_two_two.state = StateFirstfirst_twoFirst_two_twoFirst_two_two_s24s31;
     t43 := event = ev_e3 & _stateFirstfirst_twoFirst_two_twoFirst_two_two.state = StateFirstfirst_twoFirst_two_twoFirst_two_two_s24s31;
     t44 := event = ev_e9 & _stateFirstfirst_twoFirst_two_twoFirst_two_two.state = StateFirstfirst_twoFirst_two_twoFirst_two_two_s24s31;
     t45 := event = ev_e10 & _stateFirstfirst_twoFirst_two_twoFirst_two_two.state = StateFirstfirst_twoFirst_two_twoFirst_two_two_s24s31;
     t46 := event = ev_e2 & _stateFirstfirst_twoFirst_two_twoFirst_two_two.state = StateFirstfirst_twoFirst_two_twoFirst_two_two_s24s32;
     t47 := event = ev_e3 & _stateFirstfirst_twoFirst_two_twoFirst_two_two.state = StateFirstfirst_twoFirst_two_twoFirst_two_two_s24s32;
     g1 := driveSelected;
     g2 := ((a > b) | (driveSelected & ((b < a) | (c >= b))));
     g3 := ((a + c) > b);
     g4 := (a - c) > b;
     g5 := (a - c) > (b + 2);
     g6 := (a - c) > (b * 2);
     g7 := ((a - c) > (b * 2)) & driveSelected;
     g8 := ((a - c) > (b * 2)) | ((a - c) > (b * 2));
     g9 := ((a - c) > (b * 2)) | ((a - c) > (b^2));
     g10 := ((a - c) > (b * 2)) | driveSelected;
     g11 := ((a - c) > (b * 2)) != ((a - c) > (b^2));
     g12 := ((a - c) > (b * 2)) = ((a - c) > (b^2));
     g13 := !driveSelected;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := State_neutral;
     next( state ) := case
       t6 | t15 | t5 | t11 | t30 : State_neutral;
       t1 : State_reverse;
       t3 | t12 | t31 | t19 | t21 | t23 | t25 | t27 | t2 | t7 | t16 | t18 | t20 | t22 | t24 | t26 | t28 : State_firstfirst_one;
       t10 | t37 | t38 | t43 | t39 | t44 | t46 | t35 | t36 | t40 | t47 | t41 | t42 | t45 : State_firstfirst_two;
       t8 | t17 | t9 | t33 | t4 | t13 | t32 | t14 | t34 : State_drivesecond;
       t29 : State_drivethird;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       state_stable : { ev_e11 , ev_e10 , ev_selectFirst , ev_selectNeutral , ev_dropBelowSecondSpeed , ev_selectReverse , ev_e1 , ev_e2 , ev_e3 , ev_e5 , ev_e7 , ev_selectDrive , ev_e9 , ev_reachSecondSpeed , ev_selectSecond , ev_reachThirdSpeed , ev_dropBelowThirdSpeed };
       TRUE : ev_null;
     esac;

   -- This part defines logic for the assignment of values to state variable "driveSelected" of this NuSMV module --
   ASSIGN
     init( driveSelected ) := FALSE;

   -- This part defines logic for the assignment of values to state variable "notdriveSelected" of this NuSMV module --
   ASSIGN
     init( notdriveSelected ) := FALSE;

   -- This part defines logic for the assignment of values to state variable "a" of this NuSMV module --
   ASSIGN
     init( a ) := 5;

   -- This part defines logic for the assignment of values to state variable "b" of this NuSMV module --
   ASSIGN
     init( b ) := 3;

   -- This part defines logic for the assignment of values to state variable "c" of this NuSMV module --
   ASSIGN
     init( c ) := 2;

-- This defines a NuSMV module for CarTransmissionStateFirstfirst_twoFirst_two_oneFirst_two_one --
MODULE CarTransmissionStateFirstfirst_twoFirst_two_oneFirst_two_one ( _state )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { StateFirstfirst_twoFirst_two_oneFirst_two_one_first_two_onefirst_two_one_one , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _state.t1 | _state.t3 | _state.t5 | _state.t7 | _state.t9 | _state.t11 | _state.t13 | _state.t15 | _state.t17 | _state.t19 | _state.t21 | _state.t23 | _state.t25 | _state.t27 | _state.t29 | _state.t31 | _state.t33 | _state.t35 | _state.t2 | _state.t4 | _state.t6 | _state.t8 | _state.t10 | _state.t12 | _state.t14 | _state.t16 | _state.t18 | _state.t20 | _state.t22 | _state.t24 | _state.t26 | _state.t28 | _state.t30 | _state.t32 | _state.t34 | _state.t37 : null;
       _state.state = State_firstfirst_two & state = null : StateFirstfirst_twoFirst_two_oneFirst_two_one_first_two_onefirst_two_one_one;
       TRUE : state;
     esac;

-- This defines a NuSMV module for CarTransmissionStateFirstfirst_twoFirst_two_twoFirst_two_two --
MODULE CarTransmissionStateFirstfirst_twoFirst_two_twoFirst_two_two ( _state )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { StateFirstfirst_twoFirst_two_twoFirst_two_two_first_two_twofirst_two_two_one , StateFirstfirst_twoFirst_two_twoFirst_two_two_first_two_twos21 , StateFirstfirst_twoFirst_two_twoFirst_two_two_first_two_twos22 , StateFirstfirst_twoFirst_two_twoFirst_two_two_s24s31 , StateFirstfirst_twoFirst_two_twoFirst_two_two_s24s32 , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _state.t1 | _state.t3 | _state.t5 | _state.t7 | _state.t9 | _state.t11 | _state.t13 | _state.t15 | _state.t17 | _state.t19 | _state.t21 | _state.t23 | _state.t25 | _state.t27 | _state.t29 | _state.t31 | _state.t33 | _state.t35 | _state.t2 | _state.t4 | _state.t6 | _state.t8 | _state.t10 | _state.t12 | _state.t14 | _state.t16 | _state.t18 | _state.t20 | _state.t22 | _state.t24 | _state.t26 | _state.t28 | _state.t30 | _state.t32 | _state.t34 | _state.t37 : null;
       _state.t38 | _state.t43 | _state.t40 | _state.t47 : StateFirstfirst_twoFirst_two_twoFirst_two_two_first_two_twos21;
       _state.t39 : StateFirstfirst_twoFirst_two_twoFirst_two_two_first_two_twos22;
       _state.t41 | _state.t44 : StateFirstfirst_twoFirst_two_twoFirst_two_two_s24s31;
       _state.t46 | _state.t42 | _state.t45 : StateFirstfirst_twoFirst_two_twoFirst_two_two_s24s32;
       _state.state = State_firstfirst_two & state = null : StateFirstfirst_twoFirst_two_twoFirst_two_two_first_two_twofirst_two_two_one;
       TRUE : state;
     esac;

-- This defines a NuSMV module for CarTransmissionState_Machine --
MODULE CarTransmissionState_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     carTransmissionState : CarTransmissionState( carTransmissionStateFirstfirst_twoFirst_two_oneFirst_two_one , carTransmissionStateFirstfirst_twoFirst_two_twoFirst_two_two );
     carTransmissionStateFirstfirst_twoFirst_two_oneFirst_two_one : CarTransmissionStateFirstfirst_twoFirst_two_oneFirst_two_one( carTransmissionState );
     carTransmissionStateFirstfirst_twoFirst_two_twoFirst_two_two : CarTransmissionStateFirstfirst_twoFirst_two_twoFirst_two_two( carTransmissionState );

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     carTransmissionState_Machine : CarTransmissionState_Machine;

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( carTransmissionState_Machine.carTransmissionState.state = State_neutral )
   CTLSPEC   EF( carTransmissionState_Machine.carTransmissionState.state = State_reverse )
   CTLSPEC   EF( carTransmissionState_Machine.carTransmissionState.state = State_firstfirst_one )
   CTLSPEC   EF( carTransmissionState_Machine.carTransmissionState.state = State_firstfirst_two )
   CTLSPEC   EF( carTransmissionState_Machine.carTransmissionState.state = State_drivesecond )
   CTLSPEC   EF( carTransmissionState_Machine.carTransmissionState.state = State_drivethird )
   CTLSPEC   EF( carTransmissionState_Machine.carTransmissionStateFirstfirst_twoFirst_two_oneFirst_two_one.state = StateFirstfirst_twoFirst_two_oneFirst_two_one_first_two_onefirst_two_one_one )
   CTLSPEC   EF( carTransmissionState_Machine.carTransmissionStateFirstfirst_twoFirst_two_twoFirst_two_two.state = StateFirstfirst_twoFirst_two_twoFirst_two_two_first_two_twofirst_two_two_one )
   CTLSPEC   EF( carTransmissionState_Machine.carTransmissionStateFirstfirst_twoFirst_two_twoFirst_two_two.state = StateFirstfirst_twoFirst_two_twoFirst_two_two_first_two_twos21 )
   CTLSPEC   EF( carTransmissionState_Machine.carTransmissionStateFirstfirst_twoFirst_two_twoFirst_two_two.state = StateFirstfirst_twoFirst_two_twoFirst_two_two_first_two_twos22 )
   CTLSPEC   EF( carTransmissionState_Machine.carTransmissionStateFirstfirst_twoFirst_two_twoFirst_two_two.state = StateFirstfirst_twoFirst_two_twoFirst_two_two_s24s31 )
   CTLSPEC   EF( carTransmissionState_Machine.carTransmissionStateFirstfirst_twoFirst_two_twoFirst_two_two.state = StateFirstfirst_twoFirst_two_twoFirst_two_two_s24s32 )

13
10
sm :  cruise.umple.compiler.State@29478556[name:s1,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[3,4]
  stateMachine = 2d0ea3a9 : 0
 cruise.umple.compiler.State@76ad048a[name:s2,isConcurrent:true,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[4,12]
  stateMachine = 2d0ea3a9 : 2

s21 :  cruise.umple.compiler.State@586be63c[name:s21a,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[10,8]
  stateMachine = 4d13b552 : 0
 cruise.umple.compiler.State@15d844b2[name:s21b,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[11,16]
  stateMachine = 4d13b552 : 0
 cruise.umple.compiler.State@bcf8bd7[name:s21c,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[14,16]
  stateMachine = 4d13b552 : 0

s22 :  cruise.umple.compiler.State@c92d694[name:s22d,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[24,8]
  stateMachine = 5cfb4b71 : 0
 cruise.umple.compiler.State@b517988[name:s22e,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[26,16]
  stateMachine = 5cfb4b71 : 0
 cruise.umple.compiler.State@7cb7ca06[name:s22f,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[25,16]
  stateMachine = 5cfb4b71 : 0

-- This file is generated from OutgoingTransitionOfConcurrentState.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for ASm --
MODULE ASm ( _smS2S21S21 , _smS2S22S22 )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Sm_s1 , Sm_s2 };
     event : { ev_e1 , ev_e2 , ev_e3 , ev_e4 , ev_null };

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     sm_stable :=  !( event = ev_e1 | event = ev_e3 | event = ev_e2 | event = ev_e4 );
     t1 := event = ev_e1 & state = Sm_s1;
     t2 := event = ev_e4 & state = Sm_s2;
     t3 := event = ev_e1 & _smS2S21S21.state = SmS2S21S21_s21a;
     t4 := event = ev_e2 & _smS2S21S21.state = SmS2S21S21_s21b;
     t5 := event = ev_e1 & _smS2S21S21.state = SmS2S21S21_s21b;
     t6 := event = ev_e1 & _smS2S21S21.state = SmS2S21S21_s21c;
     t7 := event = ev_e2 & _smS2S21S21.state = SmS2S21S21_s21c;
     t8 := event = ev_e1 & _smS2S22S22.state = SmS2S22S22_s22d;
     t9 := event = ev_e2 & _smS2S22S22.state = SmS2S22S22_s22d;
     t10 := event = ev_e3 & _smS2S22S22.state = SmS2S22S22_s22d;
     t11 := event = ev_e1 & _smS2S22S22.state = SmS2S22S22_s22e;
     t12 := event = ev_e1 & _smS2S22S22.state = SmS2S22S22_s22f;
     t13 := event = ev_e2 & _smS2S22S22.state = SmS2S22S22_s22f;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := Sm_s1;
     next( state ) := case
       t7 | t2 | t13 : Sm_s1;
       t1 | t3 | t5 | t12 | t10 | t4 | t6 | t9 | t8 | t11 : Sm_s2;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       sm_stable : { ev_e1 , ev_e2 , ev_e3 , ev_e4 };
       TRUE : ev_null;
     esac;

-- This defines a NuSMV module for ASmS2S21S21 --
MODULE ASmS2S21S21 ( _sm )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmS2S21S21_s21a , SmS2S21S21_s21b , SmS2S21S21_s21c , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _sm.t1 | _sm.t7 | _sm.t2 | _sm.t13 : null;
       _sm.t4 : SmS2S21S21_s21a;
       _sm.t3 | _sm.t6 : SmS2S21S21_s21b;
       _sm.t5 : SmS2S21S21_s21c;
       _sm.state = Sm_s2 & state = null : SmS2S21S21_s21a;
       TRUE : state;
     esac;

-- This defines a NuSMV module for ASmS2S22S22 --
MODULE ASmS2S22S22 ( _sm )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmS2S22S22_s22d , SmS2S22S22_s22e , SmS2S22S22_s22f , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _sm.t1 | _sm.t7 | _sm.t2 | _sm.t13 : null;
       _sm.t9 | _sm.t12 : SmS2S22S22_s22e;
       _sm.t10 | _sm.t8 | _sm.t11 : SmS2S22S22_s22f;
       _sm.state = Sm_s2 & state = null : SmS2S22S22_s22d;
       TRUE : state;
     esac;

-- This defines a NuSMV module for ASm_Machine --
MODULE ASm_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     aSm : ASm( aSmS2S21S21 , aSmS2S22S22 );
     aSmS2S21S21 : ASmS2S21S21( aSm );
     aSmS2S22S22 : ASmS2S22S22( aSm );

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     aSm_Machine : ASm_Machine;

   -- The following properties are specified to certify that this model is free of non-determinism. 
   INVARSPEC   ( aSm_Machine.aSm.t7 & aSm_Machine.aSm.t9 -> next( aSm_Machine.aSm.state = Sm_s1 & aSm_Machine.aSmS2S22S22.state = SmS2S22S22_s22e ) )
   INVARSPEC   ( aSm_Machine.aSm.t13 & aSm_Machine.aSm.t4 -> next( aSm_Machine.aSm.state = Sm_s1 & aSm_Machine.aSmS2S21S21.state = SmS2S21S21_s21a ) )

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( aSm_Machine.aSm.state = Sm_s1 )
   CTLSPEC   EF( aSm_Machine.aSm.state = Sm_s2 )
   CTLSPEC   EF( aSm_Machine.aSmS2S21S21.state = SmS2S21S21_s21a )
   CTLSPEC   EF( aSm_Machine.aSmS2S21S21.state = SmS2S21S21_s21b )
   CTLSPEC   EF( aSm_Machine.aSmS2S21S21.state = SmS2S21S21_s21c )
   CTLSPEC   EF( aSm_Machine.aSmS2S22S22.state = SmS2S22S22_s22d )
   CTLSPEC   EF( aSm_Machine.aSmS2S22S22.state = SmS2S22S22_s22e )
   CTLSPEC   EF( aSm_Machine.aSmS2S22S22.state = SmS2S22S22_s22f )

3
2
sm :  cruise.umple.compiler.State@75ba33b8[name:s1,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[12,4]
  stateMachine = 7d3d89fb : 0
 cruise.umple.compiler.State@1ec22804[name:s2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[13,58]
  stateMachine = 7d3d89fb : 0

-- This file is generated from JavaDataTypes.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for ExampleSm --
MODULE ExampleSm

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Sm_s1 , Sm_s2 };
     event : { ev_e1 , ev_e2 , ev_e3 , ev_null };
     a : integer;
     b : integer;
     c : real;
     d : real;
     e : real;
     h : boolean;
     f : integer;
     g : integer;

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     sm_stable :=  !( event = ev_e2 | event = ev_e1 | event = ev_e3 );
     t1 := event = ev_e1 & state = Sm_s1 & g1;
     t2 := event = ev_e2 & state = Sm_s1;
     t3 := event = ev_e3 & state = Sm_s1;
     g1 := h = TRUE;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := Sm_s1;
     next( state ) := case
       t2 | t1 | t3 : Sm_s2;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       sm_stable : { ev_e1 , ev_e2 , ev_e3 };
       TRUE : ev_null;
     esac;

   -- This part defines logic for the assignment of values to state variable "a" of this NuSMV module --
   ASSIGN
     init( a ) := 10;

   -- This part defines logic for the assignment of values to state variable "b" of this NuSMV module --
   ASSIGN
     init( b ) := 20;

   -- This part defines logic for the assignment of values to state variable "c" of this NuSMV module --
   ASSIGN
     init( c ) := 0.566;

   -- This part defines logic for the assignment of values to state variable "d" of this NuSMV module --
   ASSIGN
     init( d ) := 0.566;

   -- This part defines logic for the assignment of values to state variable "e" of this NuSMV module --
   ASSIGN
     init( e ) := 0.566;

   -- This part defines logic for the assignment of values to state variable "h" of this NuSMV module --
   ASSIGN
     init( h ) := FALSE;

   -- This part defines logic for the assignment of values to state variable "f" of this NuSMV module --
   ASSIGN
     init( f ) := 0;

   -- This part defines logic for the assignment of values to state variable "g" of this NuSMV module --
   ASSIGN
     init( g ) := 0;

-- This defines a NuSMV module for ExampleSm_Machine --
MODULE ExampleSm_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     exampleSm : ExampleSm;

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     exampleSm_Machine : ExampleSm_Machine;

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( exampleSm_Machine.exampleSm.state = Sm_s1 )
   CTLSPEC   EF( exampleSm_Machine.exampleSm.state = Sm_s2 )

15
10
sm :  cruise.umple.compiler.State@40406a3f[name:s1,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[3,4]
  stateMachine = d58550c : 0
 cruise.umple.compiler.State@7fef75e1[name:s2,isConcurrent:true,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[4,12]
  stateMachine = d58550c : 2

s21 :  cruise.umple.compiler.State@2174fda1[name:s21a,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[9,8]
  stateMachine = 62267a22 : 0
 cruise.umple.compiler.State@2d99b35f[name:s21b,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[10,16]
  stateMachine = 62267a22 : 0
 cruise.umple.compiler.State@295d8b70[name:s21c,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[13,16]
  stateMachine = 62267a22 : 0

s22 :  cruise.umple.compiler.State@2f42f20f[name:s22d,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[24,8]
  stateMachine = 7ee46aaf : 0
 cruise.umple.compiler.State@1e072d67[name:s22e,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[15,16]
  stateMachine = 7ee46aaf : 0
 cruise.umple.compiler.State@5b4433dc[name:s22f,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[25,16]
  stateMachine = 7ee46aaf : 0

-- This file is generated from OutgoingTransitionOfConcurrentStateWithAndCross1.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for ASm --
MODULE ASm ( _smS2S21S21 , _smS2S22S22 )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Sm_s1 , Sm_s2 };
     event : { ev_e5 , ev_e1 , ev_e2 , ev_e3 , ev_e4 , ev_null };

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     sm_stable :=  !( event = ev_e1 | event = ev_e3 | event = ev_e5 | event = ev_e2 | event = ev_e4 );
     t1 := event = ev_e1 & state = Sm_s1;
     t2 := event = ev_e4 & state = Sm_s2;
     t3 := event = ev_e1 & _smS2S21S21.state = SmS2S21S21_s21a;
     t4 := event = ev_e2 & _smS2S21S21.state = SmS2S21S21_s21b;
     t5 := event = ev_e1 & _smS2S21S21.state = SmS2S21S21_s21b;
     t6 := event = ev_e3 & _smS2S21S21.state = SmS2S21S21_s21b;
     t7 := event = ev_e1 & _smS2S21S21.state = SmS2S21S21_s21c;
     t8 := event = ev_e2 & _smS2S21S21.state = SmS2S21S21_s21c;
     t9 := event = ev_e5 & _smS2S22S22.state != null;
     t10 := event = ev_e1 & _smS2S22S22.state = SmS2S22S22_s22d;
     t11 := event = ev_e2 & _smS2S22S22.state = SmS2S22S22_s22d;
     t12 := event = ev_e3 & _smS2S22S22.state = SmS2S22S22_s22d;
     t13 := event = ev_e1 & _smS2S22S22.state = SmS2S22S22_s22e;
     t14 := event = ev_e1 & _smS2S22S22.state = SmS2S22S22_s22f;
     t15 := event = ev_e2 & _smS2S22S22.state = SmS2S22S22_s22f;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := Sm_s1;
     next( state ) := case
       t2 | t9 | t8 | t15 : Sm_s1;
       t4 | t7 | t6 | t14 | t12 | t1 | t3 | t5 | t11 | t10 | t13 : Sm_s2;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       sm_stable : { ev_e5 , ev_e1 , ev_e2 , ev_e3 , ev_e4 };
       TRUE : ev_null;
     esac;

-- This defines a NuSMV module for ASmS2S21S21 --
MODULE ASmS2S21S21 ( _sm )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmS2S21S21_s21a , SmS2S21S21_s21b , SmS2S21S21_s21c , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _sm.t1 | _sm.t8 | _sm.t15 | _sm.t2 | _sm.t9 | _sm.t6 : null;
       _sm.t4 : SmS2S21S21_s21a;
       _sm.t3 | _sm.t7 : SmS2S21S21_s21b;
       _sm.t5 : SmS2S21S21_s21c;
       _sm.state = Sm_s2 & state = null : SmS2S21S21_s21a;
       TRUE : state;
     esac;

-- This defines a NuSMV module for ASmS2S22S22 --
MODULE ASmS2S22S22 ( _sm )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmS2S22S22_s22d , SmS2S22S22_s22e , SmS2S22S22_s22f , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _sm.t2 | _sm.t9 | _sm.t1 | _sm.t8 | _sm.t15 : null;
       _sm.t11 | _sm.t6 | _sm.t14 : SmS2S22S22_s22e;
       _sm.t12 | _sm.t10 | _sm.t13 : SmS2S22S22_s22f;
       _sm.state = Sm_s2 & state = null : SmS2S22S22_s22d;
       TRUE : state;
     esac;

-- This defines a NuSMV module for ASm_Machine --
MODULE ASm_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     aSm : ASm( aSmS2S21S21 , aSmS2S22S22 );
     aSmS2S21S21 : ASmS2S21S21( aSm );
     aSmS2S22S22 : ASmS2S22S22( aSm );

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     aSm_Machine : ASm_Machine;

   -- The following properties are specified to certify that this model is free of non-determinism. 
   INVARSPEC   ( aSm_Machine.aSm.t8 & aSm_Machine.aSm.t11 -> next( aSm_Machine.aSm.state = Sm_s1 & aSm_Machine.aSmS2S22S22.state = SmS2S22S22_s22e ) )
   INVARSPEC   ( aSm_Machine.aSm.t15 & aSm_Machine.aSm.t4 -> next( aSm_Machine.aSm.state = Sm_s1 & aSm_Machine.aSmS2S21S21.state = SmS2S21S21_s21a ) )
   INVARSPEC   ( aSm_Machine.aSm.t6 & aSm_Machine.aSm.t12 -> next( aSm_Machine.aSmS2S22S22.state = SmS2S22S22_s22e & aSm_Machine.aSmS2S22S22.state = SmS2S22S22_s22f ) )

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( aSm_Machine.aSm.state = Sm_s1 )
   CTLSPEC   EF( aSm_Machine.aSm.state = Sm_s2 )
   CTLSPEC   EF( aSm_Machine.aSmS2S21S21.state = SmS2S21S21_s21a )
   CTLSPEC   EF( aSm_Machine.aSmS2S21S21.state = SmS2S21S21_s21b )
   CTLSPEC   EF( aSm_Machine.aSmS2S21S21.state = SmS2S21S21_s21c )
   CTLSPEC   EF( aSm_Machine.aSmS2S22S22.state = SmS2S22S22_s22d )
   CTLSPEC   EF( aSm_Machine.aSmS2S22S22.state = SmS2S22S22_s22e )
   CTLSPEC   EF( aSm_Machine.aSmS2S22S22.state = SmS2S22S22_s22f )

13
10
sm :  cruise.umple.compiler.State@271ced5f[name:ZxZ,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[13,7]
  stateMachine = 20f1e26 : 0
 cruise.umple.compiler.State@1db077a4[name:ZxX,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[14,16]
  stateMachine = 20f1e26 : 0
 cruise.umple.compiler.State@75c90ec5[name:ZxabA,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[15,17]
  stateMachine = 20f1e26 : 0
 cruise.umple.compiler.State@35ff7336[name:ZxabB,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[22,15]
  stateMachine = 20f1e26 : 0
 cruise.umple.compiler.State@4f7bb581[name:D,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[21,15]
  stateMachine = 20f1e26 : 0
 cruise.umple.compiler.State@5168f69d[name:GeG,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[18,15]
  stateMachine = 20f1e26 : 0
 cruise.umple.compiler.State@6c6a7553[name:GeE,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[27,11]
  stateMachine = 20f1e26 : 0

-- This file is generated from BigStateMachineWithNakedTransition.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for BigStateMachineTestSm --
MODULE BigStateMachineTestSm

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Sm_ZxZ , Sm_ZxX , Sm_ZxabA , Sm_ZxabB , Sm_D , Sm_GeG , Sm_GeE };
     event : { ev_e5 , ev_e1 , ev_e2 , ev_e3 , ev_e4 , ev_null };

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     sm_stable :=  !( event = ev_e1 | event = ev_e3 | event = ev_e5 | event = ev_e2 | event = ev_e4 );
     t1 := event = ev_e1 & state = Sm_ZxZ;
     t2 := event = ev_e4 & state = Sm_ZxZ;
     t3 := event = ev_e5 & state = Sm_ZxZ;
     t4 := event = ev_e3 & state = Sm_ZxZ;
     t5 := event = ev_e2 & state = Sm_ZxZ;
     t6 := event = ev_e1 & state = Sm_ZxX;
     t7 := event = ev_e4 & state = Sm_ZxX;
     t8 := event = ev_e5 & state = Sm_ZxX;
     t9 := event = ev_e1 & state = Sm_ZxabA;
     t10 := event = ev_e4 & state = Sm_ZxabA;
     t11 := event = ev_e5 & state = Sm_ZxabA;
     t12 := event = ev_e3 & state = Sm_ZxabA;
     t13 := event = ev_e1 & state = Sm_ZxabB;
     t14 := event = ev_e4 & state = Sm_ZxabB;
     t15 := event = ev_e3 & state = Sm_ZxabB;
     t16 := event = ev_e5 & state = Sm_D;
     t17 := event = ev_e2 & state = Sm_D;
     t18 := event = ev_e1 & state = Sm_GeG;
     t19 := event = ev_e1 & state = Sm_GeE;
     t20 := event = ev_e2 & state = Sm_GeE;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := Sm_ZxZ;
     next( state ) := case
       t16 | t4 : Sm_ZxX;
       t5 : Sm_ZxabA;
       t12 | t18 : Sm_ZxabB;
       t11 : Sm_D;
       t7 | t14 | t8 | t19 | t2 | t10 | t3 | t15 | t20 : Sm_GeG;
       t6 | t13 | t1 | t9 | t17 : Sm_GeE;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       sm_stable : { ev_e5 , ev_e1 , ev_e2 , ev_e3 , ev_e4 };
       TRUE : ev_null;
     esac;

-- This defines a NuSMV module for BigStateMachineTestSm_Machine --
MODULE BigStateMachineTestSm_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     bigStateMachineTestSm : BigStateMachineTestSm;

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     bigStateMachineTestSm_Machine : BigStateMachineTestSm_Machine;

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( bigStateMachineTestSm_Machine.bigStateMachineTestSm.state = Sm_ZxZ )
   CTLSPEC   EF( bigStateMachineTestSm_Machine.bigStateMachineTestSm.state = Sm_ZxX )
   CTLSPEC   EF( bigStateMachineTestSm_Machine.bigStateMachineTestSm.state = Sm_ZxabA )
   CTLSPEC   EF( bigStateMachineTestSm_Machine.bigStateMachineTestSm.state = Sm_ZxabB )
   CTLSPEC   EF( bigStateMachineTestSm_Machine.bigStateMachineTestSm.state = Sm_D )
   CTLSPEC   EF( bigStateMachineTestSm_Machine.bigStateMachineTestSm.state = Sm_GeG )
   CTLSPEC   EF( bigStateMachineTestSm_Machine.bigStateMachineTestSm.state = Sm_GeE )

9
11
state :  cruise.umple.compiler.State@4cef1ea6[name:s1,isConcurrent:true,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[5,4]
  stateMachine = 3f2731e5 : 2
 cruise.umple.compiler.State@21eb33d4[name:s2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[8,20]
  stateMachine = 3f2731e5 : 0

A :  cruise.umple.compiler.State@6a636c62[name:As11,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[7,8]
  stateMachine = 5e4d55a6 : 0
 cruise.umple.compiler.State@5863ef93[name:As12,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[7,20]
  stateMachine = 5e4d55a6 : 0

B :  cruise.umple.compiler.State@20ee12d8[name:Bs21,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[12,8]
  stateMachine = 519f6adb : 0
 cruise.umple.compiler.State@654be52b[name:Bs22,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[12,20]
  stateMachine = 519f6adb : 0
 cruise.umple.compiler.State@22938166[name:s24s31,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[15,17]
  stateMachine = 519f6adb : 0
 cruise.umple.compiler.State@72bb3f3e[name:s24s32,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[20,34]
  stateMachine = 519f6adb : 0

-- This file is generated from concurrentMachineExample.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for ExampleState --
MODULE ExampleState ( _stateS1AA , _stateS1BB )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { State_s1 , State_s2 };
     event : { ev_e5 , ev_e7 , ev_e11 , ev_e9 , ev_e10 , ev_e1 , ev_e2 , ev_e3 , ev_null };

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     state_stable :=  !( event = ev_e5 | event = ev_e11 | event = ev_e10 | event = ev_e2 | event = ev_e7 | event = ev_e9 | event = ev_e1 | event = ev_e3 );
     t1 := event = ev_e2 & _stateS1AA.state = StateS1AA_As11;
     t2 := event = ev_e1 & _stateS1AA.state = StateS1AA_As12;
     t3 := event = ev_e5 & _stateS1BB.state = StateS1BB_Bs21;
     t4 := event = ev_e7 & _stateS1BB.state = StateS1BB_Bs22;
     t5 := event = ev_e11 & _stateS1BB.state = StateS1BB_Bs22;
     t6 := event = ev_e3 & _stateS1BB.state = StateS1BB_s24s31;
     t7 := event = ev_e1 & _stateS1BB.state = StateS1BB_s24s31;
     t8 := event = ev_e9 & _stateS1BB.state = StateS1BB_s24s31;
     t9 := event = ev_e10 & _stateS1BB.state = StateS1BB_s24s31;
     t10 := event = ev_e3 & _stateS1BB.state = StateS1BB_s24s32;
     t11 := event = ev_e1 & _stateS1BB.state = StateS1BB_s24s32;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := State_s1;
     next( state ) := case
       t1 | t6 | t3 | t8 | t4 | t10 | t5 | t9 : State_s1;
       t7 | t2 | t11 : State_s2;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       state_stable : { ev_e5 , ev_e7 , ev_e11 , ev_e9 , ev_e10 , ev_e1 , ev_e2 , ev_e3 };
       TRUE : ev_null;
     esac;

-- This defines a NuSMV module for ExampleStateS1AA --
MODULE ExampleStateS1AA ( _state )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { StateS1AA_As11 , StateS1AA_As12 , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _state.t7 | _state.t2 | _state.t11 : null;
       _state.t1 : StateS1AA_As12;
       _state.state = State_s1 & state = null : StateS1AA_As11;
       TRUE : state;
     esac;

-- This defines a NuSMV module for ExampleStateS1BB --
MODULE ExampleStateS1BB ( _state )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { StateS1BB_Bs21 , StateS1BB_Bs22 , StateS1BB_s24s31 , StateS1BB_s24s32 , null };

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := null;
     next( state ) := case
       _state.t7 | _state.t2 | _state.t11 : null;
       _state.t6 | _state.t4 | _state.t10 : StateS1BB_Bs21;
       _state.t3 : StateS1BB_Bs22;
       _state.t5 | _state.t8 : StateS1BB_s24s31;
       _state.t9 : StateS1BB_s24s32;
       _state.state = State_s1 & state = null : StateS1BB_Bs21;
       TRUE : state;
     esac;

-- This defines a NuSMV module for ExampleState_Machine --
MODULE ExampleState_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     exampleState : ExampleState( exampleStateS1AA , exampleStateS1BB );
     exampleStateS1AA : ExampleStateS1AA( exampleState );
     exampleStateS1BB : ExampleStateS1BB( exampleState );

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     exampleState_Machine : ExampleState_Machine;

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( exampleState_Machine.exampleState.state = State_s1 )
   CTLSPEC   EF( exampleState_Machine.exampleState.state = State_s2 )
   CTLSPEC   EF( exampleState_Machine.exampleStateS1AA.state = StateS1AA_As11 )
   CTLSPEC   EF( exampleState_Machine.exampleStateS1AA.state = StateS1AA_As12 )
   CTLSPEC   EF( exampleState_Machine.exampleStateS1BB.state = StateS1BB_Bs21 )
   CTLSPEC   EF( exampleState_Machine.exampleStateS1BB.state = StateS1BB_Bs22 )
   CTLSPEC   EF( exampleState_Machine.exampleStateS1BB.state = StateS1BB_s24s31 )
   CTLSPEC   EF( exampleState_Machine.exampleStateS1BB.state = StateS1BB_s24s32 )

1
2
sm :  cruise.umple.compiler.State@1a6864f0[name:s1,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[12,4]
  stateMachine = 3f41a1f3 : 0
 cruise.umple.compiler.State@4374c051[name:s2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false,displayColor:]
  position=[13,27]
  stateMachine = 3f41a1f3 : 0

-- This file is generated from InputVarTest.ump --

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language! --


-- This defines a NuSMV module for CruiseControlSystemSm --
MODULE CruiseControlSystemSm

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Sm_s1 , Sm_s2 };
     event : { ev_a , ev_null };
     c : integer;

   -- This part declares input variables for the given NuSMV module --
   IVAR
     ayo : integer;
     bayo : real;
     baro : boolean;

   -- This part defines macros that summarize the transitions and guards (if any) of the given NuSMV module --
   DEFINE
     sm_stable :=  !( event = ev_a );
     t1 := event = ev_a & state = Sm_s1;
     aa := 5;
     bb := 5;
     cc := 5.00;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := Sm_s1;
     next( state ) := case
       t1 : Sm_s2;
       TRUE : state;
     esac;

   -- This part defines logic for the assignment of values to state variable "event" of this NuSMV module --
   ASSIGN
     init( event ) := ev_null;
     next( event ) := case
       sm_stable : { ev_a };
       TRUE : ev_null;
     esac;

   -- This part defines logic for the assignment of values to state variable "c" of this NuSMV module --
   ASSIGN
     init( c ) := 0;

-- This defines a NuSMV module for CruiseControlSystemSm_Machine --
MODULE CruiseControlSystemSm_Machine

   -- This part declares state variables for the given NuSMV module --
   VAR
     cruiseControlSystemSm : CruiseControlSystemSm;

-- This defines a NuSMV module for main --
MODULE main

   -- This part declares state variables for the given NuSMV module --
   VAR
     cruiseControlSystemSm_Machine : CruiseControlSystemSm_Machine;

   -- The following properties are specified to certify that non-symbolic state(s) of this model is (or are) reachable. 
   CTLSPEC   EF( cruiseControlSystemSm_Machine.cruiseControlSystemSm.state = Sm_s1 )
   CTLSPEC   EF( cruiseControlSystemSm_Machine.cruiseControlSystemSm.state = Sm_s2 )