10
6
status :  cruise.umple.compiler.State@3c41b4b[name:Planned,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[11,4]
  stateMachine = 55a4a0ab : 0
 cruise.umple.compiler.State@5066a895[name:OpenNotEnoughStudents,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[14,26]
  stateMachine = 55a4a0ab : 0
 cruise.umple.compiler.State@6eec564c[name:OpenEnoughStudents,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[22,35]
  stateMachine = 55a4a0ab : 0
 cruise.umple.compiler.State@4dd11699[name:Cancelled,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[13,16]
  stateMachine = 55a4a0ab : 0
 cruise.umple.compiler.State@3d805670[name:Closed,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[27,29]
  stateMachine = 55a4a0ab : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@5dd47c88[name:state1,isConcurrent:true,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[5,4]
  stateMachine = 2087181d : 2
 cruise.umple.compiler.State@2e50ca51[name:state2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[7,14]
  stateMachine = 2087181d : 0

state11 :  cruise.umple.compiler.State@4c1dc246[name:state11state111,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[8,8]
  stateMachine = 3253d771 : 0
 cruise.umple.compiler.State@2a0c76d6[name:state11state112,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[9,16]
  stateMachine = 3253d771 : 0

state12 :  cruise.umple.compiler.State@2a62384[name:state12state121,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[18,8]
  stateMachine = 208bde64 : 0
 cruise.umple.compiler.State@c4f6d5b[name:state122state1221,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[13,16]
  stateMachine = 208bde64 : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@23c07745[name:SingleLaneBridge,isConcurrent:true,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[11,3]
  stateMachine = 62a07c01 : 9

RedA :  cruise.umple.compiler.State@52dbd3d[name:RedAwaitRedA,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[18,13]
  stateMachine = 31b9108b : 0
 cruise.umple.compiler.State@11e323a6[name:RedAonRedA,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[19,56]
  stateMachine = 31b9108b : 0

RedB :  cruise.umple.compiler.State@704205ef[name:RedBwaitRedB,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[27,13]
  stateMachine = 18ee9a8f : 0
 cruise.umple.compiler.State@61aaec51[name:RedBonRedB,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[28,56]
  stateMachine = 18ee9a8f : 0

BlueA :  cruise.umple.compiler.State@69dc0dd1[name:BlueAwaitBlueA,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[38,13]
  stateMachine = 9d10078 : 0
 cruise.umple.compiler.State@6587c92f[name:BlueAonBlueA,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[39,57]
  stateMachine = 9d10078 : 0

BlueB :  cruise.umple.compiler.State@537979aa[name:BlueBwaitBlueB,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[47,13]
  stateMachine = 5ac25491 : 0
 cruise.umple.compiler.State@5b115d71[name:BlueBonBlueB,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[48,57]
  stateMachine = 5ac25491 : 0

BridgeStatus :  cruise.umple.compiler.State@4398d[name:BridgeStatusempty,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[58,8]
  stateMachine = 18a8a40e : 0
 cruise.umple.compiler.State@50061d56[name:BridgeStatusoneRed,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[59,46]
  stateMachine = 18a8a40e : 0
 cruise.umple.compiler.State@1ad28f2[name:BridgeStatusoneBlue,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[60,49]
  stateMachine = 18a8a40e : 0
 cruise.umple.compiler.State@2044a11b[name:BridgeStatustwoRed,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[64,40]
  stateMachine = 18a8a40e : 0
 cruise.umple.compiler.State@7d91e9c9[name:BridgeStatustwoBlue,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[68,43]
  stateMachine = 18a8a40e : 0

redCoordEnt :  cruise.umple.compiler.State@1d9db780[name:redCoordEntcoordEntRedA,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[82,6]
  stateMachine = 759fe679 : 0
 cruise.umple.compiler.State@7056cda8[name:redCoordEntcoordEntRedB,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[83,18]
  stateMachine = 759fe679 : 0

redCoordExit :  cruise.umple.compiler.State@2fbbdca[name:redCoordExitcoordExitRedA,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[91,6]
  stateMachine = 722a2ba2 : 0
 cruise.umple.compiler.State@788cb7b0[name:redCoordExitcoordExitRedB,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[92,19]
  stateMachine = 722a2ba2 : 0

blueCoordEnt :  cruise.umple.compiler.State@3e711e84[name:blueCoordEntcoordEntBlueA,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[102,6]
  stateMachine = 61bbe16d : 0
 cruise.umple.compiler.State@426fb1c3[name:blueCoordEntcoordEntBlueB,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[103,19]
  stateMachine = 61bbe16d : 0

blueCoordExit :  cruise.umple.compiler.State@5fc3bf09[name:blueCoordExitcoordExitBlueA,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[111,6]
  stateMachine = 69f01f4b : 0
 cruise.umple.compiler.State@577e2b91[name:blueCoordExitcoordExitBlueB,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[112,20]
  stateMachine = 69f01f4b : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@10164e94[name:Idle,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[6,4]
  stateMachine = 24e63b9f : 0
 cruise.umple.compiler.State@31eb5ed6[name:DoorClosingMovingUp,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[7,19]
  stateMachine = 24e63b9f : 0
 cruise.umple.compiler.State@e30573c[name:DoorClosingMovingDown,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[8,21]
  stateMachine = 24e63b9f : 0
 cruise.umple.compiler.State@2c70da80[name:Moving,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[12,34]
  stateMachine = 24e63b9f : 0
 cruise.umple.compiler.State@39df2652[name:Stopping,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[22,57]
  stateMachine = 24e63b9f : 0
 cruise.umple.compiler.State@52a9c251[name:DoorOpening,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[25,35]
  stateMachine = 24e63b9f : 0
 cruise.umple.compiler.State@5eace68f[name:AtFloor,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[29,23]
  stateMachine = 24e63b9f : 0
 cruise.umple.compiler.State@74a29300[name:DoorClosing,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[32,39]
  stateMachine = 24e63b9f : 0
 cruise.umple.compiler.State@340fd670[name:CheckingNextDestination,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[36,22]
  stateMachine = 24e63b9f : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@7887e1f3[name:s1,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[5,4]
  stateMachine = 199d1fb7 : 0
 cruise.umple.compiler.State@32b273c1[name:s2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[6,20]
  stateMachine = 199d1fb7 : 0
 cruise.umple.compiler.State@745d399a[name:s3,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[7,20]
  stateMachine = 199d1fb7 : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@53fd061d[name:state1,isConcurrent:true,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[5,4]
  stateMachine = 296c0293 : 2
 cruise.umple.compiler.State@3f976f43[name:state2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[7,14]
  stateMachine = 296c0293 : 0

state11 :  cruise.umple.compiler.State@473048f9[name:state11state111,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[8,8]
  stateMachine = 7c4663ec : 0
 cruise.umple.compiler.State@35f79e6d[name:state11state112,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[9,16]
  stateMachine = 7c4663ec : 0

state12 :  cruise.umple.compiler.State@319e02e7[name:state12state121,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[18,8]
  stateMachine = 742ce3ad : 0
 cruise.umple.compiler.State@3bbab7c7[name:state12state122,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[19,16]
  stateMachine = 742ce3ad : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@7da3d617[name:s2a,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[3,4]
  stateMachine = 49a2e86e : 0
 cruise.umple.compiler.State@3566d527[name:s2b,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[5,12]
  stateMachine = 49a2e86e : 0
 cruise.umple.compiler.State@69959ea5[name:s1,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[4,12]
  stateMachine = 49a2e86e : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@122e2306[name:time,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[10,4]
  stateMachine = 342615e2 : 0
 cruise.umple.compiler.State@72548e3c[name:date,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[11,12]
  stateMachine = 342615e2 : 0
 cruise.umple.compiler.State@24a024c8[name:paused,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[13,12]
  stateMachine = 342615e2 : 0
 cruise.umple.compiler.State@47f50549[name:running,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[22,12]
  stateMachine = 342615e2 : 0
 cruise.umple.compiler.State@43f88150[name:lapRunning,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[28,12]
  stateMachine = 342615e2 : 0
 cruise.umple.compiler.State@158bd27d[name:lapPaused,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[32,12]
  stateMachine = 342615e2 : 0
 cruise.umple.compiler.State@30282260[name:bothOff,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[12,12]
  stateMachine = 342615e2 : 0
 cruise.umple.compiler.State@5f18a661[name:chimeOn,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[46,12]
  stateMachine = 342615e2 : 0
 cruise.umple.compiler.State@58ed5ed3[name:bothOn,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[50,12]
  stateMachine = 342615e2 : 0
 cruise.umple.compiler.State@133e7789[name:alarmOn,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[54,12]
  stateMachine = 342615e2 : 0
 cruise.umple.compiler.State@62f47cac[name:alarmTime,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[14,23]
  stateMachine = 342615e2 : 0
 cruise.umple.compiler.State@7845f53d[name:alarmHour,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[64,29]
  stateMachine = 342615e2 : 0
 cruise.umple.compiler.State@4a6c3720[name:alarmMinute,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[63,12]
  stateMachine = 342615e2 : 0
 cruise.umple.compiler.State@2a8e93db[name:second,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[65,12]
  stateMachine = 342615e2 : 0
 cruise.umple.compiler.State@6b5e8b3a[name:minute,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[80,11]
  stateMachine = 342615e2 : 0
 cruise.umple.compiler.State@3c657771[name:hour,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[85,11]
  stateMachine = 342615e2 : 0
 cruise.umple.compiler.State@171b82ea[name:month,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[90,11]
  stateMachine = 342615e2 : 0
 cruise.umple.compiler.State@49d5db99[name:day,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[95,11]
  stateMachine = 342615e2 : 0
 cruise.umple.compiler.State@564d9ec2[name:year,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[100,11]
  stateMachine = 342615e2 : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@3e07ccbf[name:state1,isConcurrent:true,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[5,4]
  stateMachine = 70b9a553 : 2
 cruise.umple.compiler.State@58fe7e22[name:state2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[7,14]
  stateMachine = 70b9a553 : 0

state11 :  cruise.umple.compiler.State@591dd039[name:state11state111,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[8,8]
  stateMachine = 597f9d91 : 0
 cruise.umple.compiler.State@64d128d0[name:state11state112,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[9,16]
  stateMachine = 597f9d91 : 0

state12 :  cruise.umple.compiler.State@4f755506[name:state12state121,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[17,8]
  stateMachine = 78ded8c9 : 0
 cruise.umple.compiler.State@5d685156[name:state122state1221,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[19,16]
  stateMachine = 78ded8c9 : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@16acf986[name:s1,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[3,4]
  stateMachine = 35eb95d3 : 0
 cruise.umple.compiler.State@cdf3815[name:s21s211,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[8,8]
  stateMachine = 35eb95d3 : 0
 cruise.umple.compiler.State@3c320c8b[name:s2s22,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[7,14]
  stateMachine = 35eb95d3 : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@50588ef6[name:Planned,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[5,4]
  stateMachine = 10744fff : 0
 cruise.umple.compiler.State@2662997a[name:InProgress,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[6,27]
  stateMachine = 10744fff : 0
 cruise.umple.compiler.State@329b4814[name:EvaluationByInstitution,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[11,36]
  stateMachine = 10744fff : 0
 cruise.umple.compiler.State@26204f8f[name:VerifiedByInstitution,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[17,18]
  stateMachine = 10744fff : 0
 cruise.umple.compiler.State@1419f703[name:SubmittedByInstitution,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[23,16]
  stateMachine = 10744fff : 0
 cruise.umple.compiler.State@268215b3[name:UnderAdministrativeReview,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[28,25]
  stateMachine = 10744fff : 0
 cruise.umple.compiler.State@4e31229f[name:UnderExpertReview,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[34,31]
  stateMachine = 10744fff : 0
 cruise.umple.compiler.State@6a4940e1[name:AwaitingFinalDecision,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[35,45]
  stateMachine = 10744fff : 0
 cruise.umple.compiler.State@31330344[name:Accepted,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[46,21]
  stateMachine = 10744fff : 0
 cruise.umple.compiler.State@72ab75c[name:Rejected,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[48,16]
  stateMachine = 10744fff : 0
 cruise.umple.compiler.State@40c858fc[name:Withdrawn,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[27,18]
  stateMachine = 10744fff : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@611c1f92[name:Open,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[5,6]
  stateMachine = 3656a6cd : 0
 cruise.umple.compiler.State@7eee42fc[name:Closing,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[5,33]
  stateMachine = 3656a6cd : 0
 cruise.umple.compiler.State@5967f0ff[name:Closed,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[8,25]
  stateMachine = 3656a6cd : 0
 cruise.umple.compiler.State@580694ce[name:Opening,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[7,30]
  stateMachine = 3656a6cd : 0
 cruise.umple.compiler.State@5be521cd[name:HalfOpen,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[12,30]
  stateMachine = 3656a6cd : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@72b88762[name:s1,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[4,5]
  stateMachine = 1d413e98 : 0
 cruise.umple.compiler.State@2b85fc[name:s2s2a,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[11,8]
  stateMachine = 1d413e98 : 0
 cruise.umple.compiler.State@255eadf5[name:s2s2b,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[6,14]
  stateMachine = 1d413e98 : 0
 cruise.umple.compiler.State@13ebbdab[name:s2s2c,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[17,16]
  stateMachine = 1d413e98 : 0
 cruise.umple.compiler.State@74af4b0[name:s3,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[16,16]
  stateMachine = 1d413e98 : 0
 cruise.umple.compiler.State@5b1295c0[name:s4,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[7,14]
  stateMachine = 1d413e98 : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@4a544672[name:s1,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[5,4]
  stateMachine = 23d16a81 : 0
 cruise.umple.compiler.State@5dd3841[name:s2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[6,19]
  stateMachine = 23d16a81 : 0
 cruise.umple.compiler.State@6b6dce39[name:s3,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[7,20]
  stateMachine = 23d16a81 : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@238fcafa[name:heatSys,isConcurrent:true,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[27,3]
  stateMachine = 45e931a9 : 3

room :  cruise.umple.compiler.State@269bf9e6[name:noHeatReqidleNoHeat,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[33,6]
  stateMachine = 6114ed6f : 0
 cruise.umple.compiler.State@3c1133ad[name:noHeatReqwaitForHeat,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[34,61]
  stateMachine = 6114ed6f : 0
 cruise.umple.compiler.State@30f929ff[name:heatReqidleHeat,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[44,6]
  stateMachine = 6114ed6f : 0
 cruise.umple.compiler.State@49d4a2cf[name:heatReqwaitForCool,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[45,60]
  stateMachine = 6114ed6f : 0

Controller :  cruise.umple.compiler.State@fed510f[name:Controlleroff,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[59,5]
  stateMachine = 3ad49704 : 0
 cruise.umple.compiler.State@431bf770[name:ControllerOnidle,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[65,6]
  stateMachine = 3ad49704 : 0
 cruise.umple.compiler.State@2fb5e706[name:heaterActiveactHeater,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[71,7]
  stateMachine = 3ad49704 : 0
 cruise.umple.compiler.State@4a35aed6[name:heaterActiveheaterRun,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[72,26]
  stateMachine = 3ad49704 : 0
 cruise.umple.compiler.State@54c76c23[name:Controllererror,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[63,22]
  stateMachine = 3ad49704 : 0

furnace :  cruise.umple.compiler.State@48fbb1bc[name:furnaceNormalfurnaceOff,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[89,5]
  stateMachine = 48f6f272 : 0
 cruise.umple.compiler.State@2fd2a6a4[name:furnaceNormalfurnaceRun,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[92,5]
  stateMachine = 48f6f272 : 0
 cruise.umple.compiler.State@401b7109[name:furnaceNormalfurnaceAct,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[90,48]
  stateMachine = 48f6f272 : 0
 cruise.umple.compiler.State@55785ee7[name:furnacefurnaceErr,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[88,21]
  stateMachine = 48f6f272 : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@4a65ce06[name:regulartime,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[11,6]
  stateMachine = 30a0a440 : 0
 cruise.umple.compiler.State@116c43d4[name:regulardate,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[12,14]
  stateMachine = 30a0a440 : 0
 cruise.umple.compiler.State@b6a5cf5[name:updatesecond,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[24,8]
  stateMachine = 30a0a440 : 0
 cruise.umple.compiler.State@6f1ba660[name:updateminute,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[25,15]
  stateMachine = 30a0a440 : 0
 cruise.umple.compiler.State@5aac9d67[name:updatehour,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[29,15]
  stateMachine = 30a0a440 : 0
 cruise.umple.compiler.State@292d1705[name:updatemonth,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[33,15]
  stateMachine = 30a0a440 : 0
 cruise.umple.compiler.State@70796b21[name:updateday,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[37,15]
  stateMachine = 30a0a440 : 0
 cruise.umple.compiler.State@4263fbe8[name:updateyear,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[41,15]
  stateMachine = 30a0a440 : 0
 cruise.umple.compiler.State@7c9a0166[name:chronoNormalpaused,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[55,8]
  stateMachine = 30a0a440 : 0
 cruise.umple.compiler.State@3d4ea4cf[name:chronoNormalrunning,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[56,16]
  stateMachine = 30a0a440 : 0
 cruise.umple.compiler.State@655e024[name:chronometerlapRunning,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[61,16]
  stateMachine = 30a0a440 : 0
 cruise.umple.compiler.State@5b34e7bd[name:chronometerlapPaused,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[65,14]
  stateMachine = 30a0a440 : 0
 cruise.umple.compiler.State@77095c8c[name:alarmStatusbothOff,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[77,6]
  stateMachine = 30a0a440 : 0
 cruise.umple.compiler.State@3f29e67e[name:alarmStatuschimeOn,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[78,14]
  stateMachine = 30a0a440 : 0
 cruise.umple.compiler.State@16d4757f[name:alarmStatusbothOn,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[81,14]
  stateMachine = 30a0a440 : 0
 cruise.umple.compiler.State@6aa16117[name:alarmStatusalarmOn,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[84,14]
  stateMachine = 30a0a440 : 0
 cruise.umple.compiler.State@5771adf3[name:alarmUpdatealarmTime,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[15,25]
  stateMachine = 30a0a440 : 0
 cruise.umple.compiler.State@271bbb75[name:hourMinuteUpdatealarmHour,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[96,31]
  stateMachine = 30a0a440 : 0
 cruise.umple.compiler.State@12515d64[name:hourMinuteUpdatealarmMinute,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[95,14]
  stateMachine = 30a0a440 : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@661ec798[name:ZxZa,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[9,10]
  stateMachine = 2c7fff1b : 0
 cruise.umple.compiler.State@383b3357[name:ZxXa,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[10,18]
  stateMachine = 2c7fff1b : 0
 cruise.umple.compiler.State@316a682b[name:ZxabAa,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[11,18]
  stateMachine = 2c7fff1b : 0
 cruise.umple.compiler.State@21584b99[name:ZxabBa,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[24,16]
  stateMachine = 2c7fff1b : 0
 cruise.umple.compiler.State@728cef8e[name:Da,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[23,16]
  stateMachine = 2c7fff1b : 0
 cruise.umple.compiler.State@134ccb03[name:GeGa,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[12,11]
  stateMachine = 2c7fff1b : 0
 cruise.umple.compiler.State@7105d271[name:GeEa,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[13,11]
  stateMachine = 2c7fff1b : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@2ea82cef[name:planned,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[9,4]
  stateMachine = 7fda0e30 : 0
 cruise.umple.compiler.State@3a516e4d[name:planeAssigned,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[10,21]
  stateMachine = 7fda0e30 : 0
 cruise.umple.compiler.State@6faa24[name:waitingForNextLeg,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[18,4]
  stateMachine = 7fda0e30 : 0
 cruise.umple.compiler.State@6fcf3192[name:boarding,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[14,28]
  stateMachine = 7fda0e30 : 0
 cruise.umple.compiler.State@40cb19d5[name:closedAtGate,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[24,26]
  stateMachine = 7fda0e30 : 0
 cruise.umple.compiler.State@71d92487[name:underway,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[28,28]
  stateMachine = 7fda0e30 : 0
 cruise.umple.compiler.State@c9a8e12[name:disembarking,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[20,18]
  stateMachine = 7fda0e30 : 0
 cruise.umple.compiler.State@1acf7db2[name:completed,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[37,43]
  stateMachine = 7fda0e30 : 0
 cruise.umple.compiler.State@252da8f[name:cancelled,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[11,16]
  stateMachine = 7fda0e30 : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@64dd94ed[name:newBooking,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[3,4]
  stateMachine = 9918487 : 0
 cruise.umple.compiler.State@4cdd0f2f[name:seatAssigned,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[4,20]
  stateMachine = 9918487 : 0
 cruise.umple.compiler.State@17cea679[name:checkedIn,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[9,17]
  stateMachine = 9918487 : 0
 cruise.umple.compiler.State@1f3c3291[name:cancelled,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[5,16]
  stateMachine = 9918487 : 0
 cruise.umple.compiler.State@1a0c384d[name:completed,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[14,18]
  stateMachine = 9918487 : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@602854ed[name:newBooking,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[3,4]
  stateMachine = 491d36ef : 0
 cruise.umple.compiler.State@43941806[name:seatAssigned,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[4,20]
  stateMachine = 491d36ef : 0
 cruise.umple.compiler.State@4cde5d66[name:checkedIn,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[9,17]
  stateMachine = 491d36ef : 0
 cruise.umple.compiler.State@6ef3f72c[name:cancelled,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[5,16]
  stateMachine = 491d36ef : 0
 cruise.umple.compiler.State@4e791e53[name:completed,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[13,18]
  stateMachine = 491d36ef : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@d884e9a[name:BothDoorsClosedLockFull,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[9,4]
  stateMachine = 23389e2b : 0
 cruise.umple.compiler.State@1c0cba60[name:OpeningUpperGate,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[11,38]
  stateMachine = 23389e2b : 0
 cruise.umple.compiler.State@34b294c4[name:UpperGateOpen,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[16,28]
  stateMachine = 23389e2b : 0
 cruise.umple.compiler.State@7b01f056[name:ClosingUpperGate,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[21,64]
  stateMachine = 23389e2b : 0
 cruise.umple.compiler.State@1caff0db[name:LoweringWater,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[12,36]
  stateMachine = 23389e2b : 0
 cruise.umple.compiler.State@65899694[name:BothDoorsClosedLockEmpty,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[35,4]
  stateMachine = 23389e2b : 0
 cruise.umple.compiler.State@453d2a55[name:OpeningLowerGate,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[31,37]
  stateMachine = 23389e2b : 0
 cruise.umple.compiler.State@31cae1e4[name:LowerGateOpen,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[42,28]
  stateMachine = 23389e2b : 0
 cruise.umple.compiler.State@5280e62e[name:ClosingLowerGate,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[47,60]
  stateMachine = 23389e2b : 0
 cruise.umple.compiler.State@7b14e7dc[name:RaisingWater,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[38,38]
  stateMachine = 23389e2b : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@6245303e[name:Idle,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[6,4]
  stateMachine = 5a1e28ee : 0
 cruise.umple.compiler.State@2b208574[name:PrepareUpDoorClosingMovingUp,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[11,6]
  stateMachine = 5a1e28ee : 0
 cruise.umple.compiler.State@3294b641[name:PrepareDownDoorClosingMovingDown,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[17,6]
  stateMachine = 5a1e28ee : 0
 cruise.umple.compiler.State@799bb4ed[name:InMotionMoving,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[14,17]
  stateMachine = 5a1e28ee : 0
 cruise.umple.compiler.State@5269aa68[name:InMotionStopping,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[26,57]
  stateMachine = 5a1e28ee : 0
 cruise.umple.compiler.State@7dcd8e74[name:OnFloorDoorOpening,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[29,35]
  stateMachine = 5a1e28ee : 0
 cruise.umple.compiler.State@6a7c0932[name:OnFloorAtFloor,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[35,23]
  stateMachine = 5a1e28ee : 0
 cruise.umple.compiler.State@4e64e44c[name:OnFloorDoorClosing,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[38,39]
  stateMachine = 5a1e28ee : 0
 cruise.umple.compiler.State@51413d02[name:OnFloorCheckingNextDestination,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[42,22]
  stateMachine = 5a1e28ee : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@75c8ba94[name:s1,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[8,4]
  stateMachine = 746f5752 : 0
 cruise.umple.compiler.State@510c6b9[name:s2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[9,27]
  stateMachine = 746f5752 : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@298154d4[name:planned,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[8,4]
  stateMachine = 474aeac5 : 0
 cruise.umple.compiler.State@7cb9295f[name:planeAssigned,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[9,21]
  stateMachine = 474aeac5 : 0
 cruise.umple.compiler.State@2b6282bb[name:activeWithPassengerswaitingForNextLeg,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[19,6]
  stateMachine = 474aeac5 : 0
 cruise.umple.compiler.State@8e654f7[name:activeWithPassengersboarding,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[13,28]
  stateMachine = 474aeac5 : 0
 cruise.umple.compiler.State@18ea9bec[name:activeWithPassengersclosedAtGate,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[23,28]
  stateMachine = 474aeac5 : 0
 cruise.umple.compiler.State@2dacaa7f[name:activeWithPassengersunderway,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[26,30]
  stateMachine = 474aeac5 : 0
 cruise.umple.compiler.State@12e4822b[name:activeWithPassengersdisembarking,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[18,18]
  stateMachine = 474aeac5 : 0
 cruise.umple.compiler.State@281f2d6c[name:completed,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[33,45]
  stateMachine = 474aeac5 : 0
 cruise.umple.compiler.State@64e6f678[name:cancelled,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[10,16]
  stateMachine = 474aeac5 : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@4e22fdc0[name:Planned,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[5,4]
  stateMachine = 74de1e9d : 0
 cruise.umple.compiler.State@43b9ef41[name:OpenNotEnoughStudents,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[8,26]
  stateMachine = 74de1e9d : 0
 cruise.umple.compiler.State@71c45428[name:OpenEnoughStudents,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[15,33]
  stateMachine = 74de1e9d : 0
 cruise.umple.compiler.State@28516b2d[name:Cancelled,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[7,16]
  stateMachine = 74de1e9d : 0
 cruise.umple.compiler.State@2c7fb24c[name:Closed,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[21,27]
  stateMachine = 74de1e9d : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@5248474e[name:adaptiveControlSystem,isConcurrent:true,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[4,6]
  stateMachine = 3269ae62 : 5
 cruise.umple.compiler.State@259d5279[name:terminal,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[7,24]
  stateMachine = 3269ae62 : 0

cruiseController :  cruise.umple.compiler.State@3c9e169f[name:inactivetempState,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[9,32]
  stateMachine = 2cfc4475 : 0
 cruise.umple.compiler.State@5319f536[name:tempStatetempState_1,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[18,39]
  stateMachine = 2cfc4475 : 0
 cruise.umple.compiler.State@1c586bb6[name:cruisingtempState,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[26,12]
  stateMachine = 2cfc4475 : 0
 cruise.umple.compiler.State@503eac4c[name:tempState_1tempState_2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[34,21]
  stateMachine = 2cfc4475 : 0
 cruise.umple.compiler.State@1eaf95d2[name:standbytempState,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[42,15]
  stateMachine = 2cfc4475 : 0
 cruise.umple.compiler.State@2836374[name:tempState_1tempState_2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[48,21]
  stateMachine = 2cfc4475 : 0

speedControl :  cruise.umple.compiler.State@5d59ad49[name:speedControldisabled,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[58,4]
  stateMachine = 78a03662 : 0
 cruise.umple.compiler.State@1ac32da1[name:speedControlenabled,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[62,22]
  stateMachine = 78a03662 : 0
 cruise.umple.compiler.State@3c2654e[name:speedControltempState,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[65,14]
  stateMachine = 78a03662 : 0

sensorScan :  cruise.umple.compiler.State@1361b39a[name:sensorScan,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[75,2]
  stateMachine = 6a8b94b2 : 0

inputSpeed :  cruise.umple.compiler.State@69a61267[name:inputSpeedcheckSpeed,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[88,15]
  stateMachine = 795ef208 : 0

throttle :  cruise.umple.compiler.State@673d73da[name:throttletempState,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[97,18]
  stateMachine = 5125558b : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@22109f72[name:state1,isConcurrent:true,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[5,4]
  stateMachine = 510cefb6 : 2
 cruise.umple.compiler.State@4096a622[name:state2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[7,14]
  stateMachine = 510cefb6 : 0

state11 :  cruise.umple.compiler.State@5d796665[name:state11state111,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[8,8]
  stateMachine = 7b3489b7 : 0
 cruise.umple.compiler.State@4df3b838[name:state11state112,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[9,16]
  stateMachine = 7b3489b7 : 0

state12 :  cruise.umple.compiler.State@3821a012[name:state12state121,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[19,8]
  stateMachine = 2efda33d : 0
 cruise.umple.compiler.State@71dbfe64[name:state12state122,isConcurrent:true,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[20,16]
  stateMachine = 2efda33d : 2

state1221 :  cruise.umple.compiler.State@2139aa1f[name:state1221state12211,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[13,16]
  stateMachine = 142dbf1a : 0

state1222 :  cruise.umple.compiler.State@578a12e9[name:state1222state12221,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[29,14]
  stateMachine = 798ceea2 : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@45a0ba61[name:state1,isConcurrent:true,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[5,4]
  stateMachine = 3a69c81e : 2
 cruise.umple.compiler.State@5b2ac349[name:state2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[7,14]
  stateMachine = 3a69c81e : 0

state11 :  cruise.umple.compiler.State@754acbad[name:state11state111,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[8,8]
  stateMachine = 357904d7 : 0
 cruise.umple.compiler.State@41a4135e[name:state11state112,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[9,16]
  stateMachine = 357904d7 : 0

state12 :  cruise.umple.compiler.State@4c19b0a8[name:state12state121,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[18,8]
  stateMachine = 6f2d0d25 : 0
 cruise.umple.compiler.State@128fe3ab[name:state1221state12211,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[13,16]
  stateMachine = 6f2d0d25 : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@6f67312d[name:s1,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[3,4]
  stateMachine = 178cfe5e : 0
 cruise.umple.compiler.State@71bb6009[name:s2,isConcurrent:true,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[6,4]
  stateMachine = 178cfe5e : 3

A :  cruise.umple.compiler.State@2f8cb4c9[name:Aa1,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[8,8]
  stateMachine = 7934164c : 0
 cruise.umple.compiler.State@93a793a[name:Aa2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[9,16]
  stateMachine = 7934164c : 0
 cruise.umple.compiler.State@232bfb3c[name:Aa3,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[10,16]
  stateMachine = 7934164c : 0

B :  cruise.umple.compiler.State@69cb296c[name:Bb1,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[22,10]
  stateMachine = 3014c46f : 0
 cruise.umple.compiler.State@6abd88fe[name:Bb2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[24,18]
  stateMachine = 3014c46f : 0
 cruise.umple.compiler.State@16337c8e[name:Bb3,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[23,18]
  stateMachine = 3014c46f : 0
 cruise.umple.compiler.State@2603a76d[name:Bb4,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[30,18]
  stateMachine = 3014c46f : 0

C :  cruise.umple.compiler.State@3022287e[name:Cc1,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[39,10]
  stateMachine = 36deacfc : 0
 cruise.umple.compiler.State@3b0471a5[name:Cc2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[41,18]
  stateMachine = 36deacfc : 0
 cruise.umple.compiler.State@78167[name:Cc3,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[4,12]
  stateMachine = 36deacfc : 0
 cruise.umple.compiler.State@214738c1[name:Cc4,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[46,18]
  stateMachine = 36deacfc : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@50a1c2f3[name:adaptiveControlSystem,isConcurrent:true,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[4,6]
  stateMachine = 453ca7f : 5

cruiseController :  cruise.umple.compiler.State@5d41b929[name:inactivetempState,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[8,32]
  stateMachine = 6dd0e2f4 : 0
 cruise.umple.compiler.State@333813e7[name:tempStatetempState_1,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[17,39]
  stateMachine = 6dd0e2f4 : 0
 cruise.umple.compiler.State@292237cd[name:cruisingtempState,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[25,12]
  stateMachine = 6dd0e2f4 : 0
 cruise.umple.compiler.State@797a5b31[name:tempState_1tempState_2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[33,21]
  stateMachine = 6dd0e2f4 : 0
 cruise.umple.compiler.State@13d7d1a8[name:standbytempState,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[41,15]
  stateMachine = 6dd0e2f4 : 0
 cruise.umple.compiler.State@60035f1e[name:tempState_1tempState_2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[47,21]
  stateMachine = 6dd0e2f4 : 0

speedControl :  cruise.umple.compiler.State@5827908c[name:speedControldisabled,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[56,4]
  stateMachine = 732ffb6a : 0
 cruise.umple.compiler.State@5ed83e36[name:speedControlenabled,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[60,22]
  stateMachine = 732ffb6a : 0
 cruise.umple.compiler.State@2459715c[name:speedControltempState,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[63,14]
  stateMachine = 732ffb6a : 0

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

inputSpeed :  cruise.umple.compiler.State@53d0cf4d[name:inputSpeedcheckSpeed,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[85,15]
  stateMachine = 3c6c87fa : 0

throttle :  cruise.umple.compiler.State@d7645b2[name:throttletempState,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[93,18]
  stateMachine = 72e4905c : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@474a63d9[name:s1,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[3,4]
  stateMachine = 1b8d0c21 : 0
 cruise.umple.compiler.State@54a04eae[name:s21s211,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[11,8]
  stateMachine = 1b8d0c21 : 0
 cruise.umple.compiler.State@4664fef[name:s2s22,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[10,14]
  stateMachine = 1b8d0c21 : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@67171221[name:heatSys,isConcurrent:true,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[27,3]
  stateMachine = 2f3a3fec : 3

room :  cruise.umple.compiler.State@1d7d2345[name:noHeatReqidleNoHeat,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[33,6]
  stateMachine = 43a8dd9b : 0
 cruise.umple.compiler.State@1c7159d5[name:noHeatReqwaitForHeat,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[34,61]
  stateMachine = 43a8dd9b : 0
 cruise.umple.compiler.State@62cad0e8[name:heatReqidleHeat,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[44,6]
  stateMachine = 43a8dd9b : 0
 cruise.umple.compiler.State@1659a0ff[name:heatReqwaitForCool,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[45,60]
  stateMachine = 43a8dd9b : 0

Controller :  cruise.umple.compiler.State@1398e3aa[name:Controlleroff,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[59,5]
  stateMachine = 531bffd : 0
 cruise.umple.compiler.State@31c87223[name:ControllerOnidle,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[65,6]
  stateMachine = 531bffd : 0
 cruise.umple.compiler.State@6a4d72bd[name:heaterActiveactHeater,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[71,7]
  stateMachine = 531bffd : 0
 cruise.umple.compiler.State@3e9c59ed[name:heaterActiveheaterRun,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[72,26]
  stateMachine = 531bffd : 0
 cruise.umple.compiler.State@365ad794[name:Controllererror,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[63,22]
  stateMachine = 531bffd : 0

furnace :  cruise.umple.compiler.State@4471f216[name:furnaceNormalfurnaceOff,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[89,5]
  stateMachine = 4528a8bf : 0
 cruise.umple.compiler.State@1927c2c6[name:furnaceNormalfurnaceRun,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[92,5]
  stateMachine = 4528a8bf : 0
 cruise.umple.compiler.State@79a15001[name:furnaceNormalfurnaceAct,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[90,48]
  stateMachine = 4528a8bf : 0
 cruise.umple.compiler.State@320bfc61[name:furnacefurnaceErr,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[88,21]
  stateMachine = 4528a8bf : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@189f5ed8[name:stable,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[5,4]
  stateMachine = 492c1b1b : 0
 cruise.umple.compiler.State@5eb974[name:Counter,isConcurrent:true,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[6,12]
  stateMachine = 492c1b1b : 3

Bit1 :  cruise.umple.compiler.State@72f112d1[name:Bit1Bit11,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[10,8]
  stateMachine = 10faebc9 : 0
 cruise.umple.compiler.State@3927de0e[name:Bit1Bit12,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[11,16]
  stateMachine = 10faebc9 : 0

Bit2 :  cruise.umple.compiler.State@4c475547[name:Bit2Bit21,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[19,8]
  stateMachine = 36dab184 : 0
 cruise.umple.compiler.State@71b9b035[name:Bit2Bit22,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[20,16]
  stateMachine = 36dab184 : 0

Status :  cruise.umple.compiler.State@7669d7a2[name:StatusCounting,isConcurrent:true,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[28,9]
  stateMachine = 724945 : 2
 cruise.umple.compiler.State@63c78e5e[name:StatusMax,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[23,16]
  stateMachine = 724945 : 0

Bit3 :  cruise.umple.compiler.State@5fc3b20b[name:Bit3Bit31,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[30,13]
  stateMachine = 67afba96 : 0

Bit4 :  cruise.umple.compiler.State@7505ef47[name:Bit4Bit41,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[31,21]
  stateMachine = 2a6f3ac7 : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@11e8e183[name:heatingSystem,isConcurrent:true,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[22,2]
  stateMachine = c6b08a5 : 3

room :  cruise.umple.compiler.State@54980154[name:noHeatReqidleNotHeat,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[26,6]
  stateMachine = 25874884 : 0
 cruise.umple.compiler.State@7335414e[name:noHeatReqwaitForHeat,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[27,76]
  stateMachine = 25874884 : 0
 cruise.umple.compiler.State@274f51ad[name:heatReqidleHeat,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[37,6]
  stateMachine = 25874884 : 0
 cruise.umple.compiler.State@33c976b1[name:heatReqwaitForCool,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[38,76]
  stateMachine = 25874884 : 0

controller :  cruise.umple.compiler.State@2c95cb24[name:controlleroff,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[50,5]
  stateMachine = 75f3c0c9 : 0
 cruise.umple.compiler.State@28ec35e3[name:controllerOnidle,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[56,6]
  stateMachine = 75f3c0c9 : 0
 cruise.umple.compiler.State@5068a2b1[name:heaterActiveactHeater,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[61,7]
  stateMachine = 75f3c0c9 : 0
 cruise.umple.compiler.State@52268f73[name:heaterActiveheaterRun,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[62,36]
  stateMachine = 75f3c0c9 : 0
 cruise.umple.compiler.State@3938e876[name:controllererror,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[55,22]
  stateMachine = 75f3c0c9 : 0

furnace :  cruise.umple.compiler.State@70b2819f[name:furnaceNormalfurnaceOff,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[76,5]
  stateMachine = 65dac812 : 0
 cruise.umple.compiler.State@3619ecd[name:furnaceNormalfurnaceAct,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[77,58]
  stateMachine = 65dac812 : 0
 cruise.umple.compiler.State@7de4bd8f[name:furnaceNormalfurnaceRun,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[82,75]
  stateMachine = 65dac812 : 0
 cruise.umple.compiler.State@193e65d5[name:furnacefurnaceErr,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[75,21]
  stateMachine = 65dac812 : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@bc70176[name:neutral,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[13,4]
  stateMachine = eba64a9 : 0
 cruise.umple.compiler.State@53e1cd6b[name:reverse,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[14,23]
  stateMachine = eba64a9 : 0
 cruise.umple.compiler.State@7ceb432c[name:firstfirst_one,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[32,4]
  stateMachine = eba64a9 : 0
 cruise.umple.compiler.State@4f143176[name:firstfirst_two,isConcurrent:true,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[33,11]
  stateMachine = eba64a9 : 2
 cruise.umple.compiler.State@12568b11[name:drivesecond,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[17,22]
  stateMachine = eba64a9 : 0
 cruise.umple.compiler.State@4f8186a5[name:drivethird,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[67,44]
  stateMachine = eba64a9 : 0

first_two_one :  cruise.umple.compiler.State@69554e5a[name:first_two_onefirst_two_one_one,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[41,6]
  stateMachine = 7244d87 : 0

first_two_two :  cruise.umple.compiler.State@210c4071[name:first_two_twofirst_two_two_one,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[48,6]
  stateMachine = 627b5e5b : 0
 cruise.umple.compiler.State@211ffbd0[name:first_two_twos21,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[49,20]
  stateMachine = 627b5e5b : 0
 cruise.umple.compiler.State@472d201[name:first_two_twos22,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[51,18]
  stateMachine = 627b5e5b : 0
 cruise.umple.compiler.State@473e0536[name:s24s31,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[54,21]
  stateMachine = 627b5e5b : 0
 cruise.umple.compiler.State@7f8f120c[name:s24s32,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[57,20]
  stateMachine = 627b5e5b : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@5cdb7b[name:s1,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[3,4]
  stateMachine = 3dcc59f5 : 0
 cruise.umple.compiler.State@16b1dee7[name:s2,isConcurrent:true,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[4,12]
  stateMachine = 3dcc59f5 : 2

s21 :  cruise.umple.compiler.State@690337df[name:s21a,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[10,8]
  stateMachine = f62ae87 : 0
 cruise.umple.compiler.State@50be5d6f[name:s21b,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[11,16]
  stateMachine = f62ae87 : 0
 cruise.umple.compiler.State@48e0e779[name:s21c,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[14,16]
  stateMachine = f62ae87 : 0

s22 :  cruise.umple.compiler.State@38ad8c75[name:s22d,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[24,8]
  stateMachine = 22a10b71 : 0
 cruise.umple.compiler.State@d67f6f[name:s22e,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[26,16]
  stateMachine = 22a10b71 : 0
 cruise.umple.compiler.State@4fc28b23[name:s22f,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[25,16]
  stateMachine = 22a10b71 : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@43ac1fa0[name:s1,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[12,4]
  stateMachine = 2ba7828b : 0
 cruise.umple.compiler.State@3e6945c6[name:s2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[13,58]
  stateMachine = 2ba7828b : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@576d4810[name:s1,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[3,4]
  stateMachine = 3609b8f2 : 0
 cruise.umple.compiler.State@62dfe32e[name:s2,isConcurrent:true,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[4,12]
  stateMachine = 3609b8f2 : 2

s21 :  cruise.umple.compiler.State@32dab011[name:s21a,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[9,8]
  stateMachine = fca4392 : 0
 cruise.umple.compiler.State@747fb4b1[name:s21b,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[10,16]
  stateMachine = fca4392 : 0
 cruise.umple.compiler.State@6924ff83[name:s21c,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[13,16]
  stateMachine = fca4392 : 0

s22 :  cruise.umple.compiler.State@e19908e[name:s22d,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[24,8]
  stateMachine = 5312940c : 0
 cruise.umple.compiler.State@5ac168e3[name:s22e,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[15,16]
  stateMachine = 5312940c : 0
 cruise.umple.compiler.State@14574cdf[name:s22f,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[25,16]
  stateMachine = 5312940c : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@6b760eb7[name:ZxZ,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[13,7]
  stateMachine = ddd0e97 : 0
 cruise.umple.compiler.State@42d8b670[name:ZxX,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[14,16]
  stateMachine = ddd0e97 : 0
 cruise.umple.compiler.State@7f15639c[name:ZxabA,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[15,17]
  stateMachine = ddd0e97 : 0
 cruise.umple.compiler.State@24cdc97f[name:ZxabB,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[22,15]
  stateMachine = ddd0e97 : 0
 cruise.umple.compiler.State@4101d2c7[name:D,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[21,15]
  stateMachine = ddd0e97 : 0
 cruise.umple.compiler.State@466d87a1[name:GeG,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[18,15]
  stateMachine = ddd0e97 : 0
 cruise.umple.compiler.State@12300573[name:GeE,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[27,11]
  stateMachine = ddd0e97 : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@3327406e[name:s1,isConcurrent:true,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[5,4]
  stateMachine = a8dedda : 2
 cruise.umple.compiler.State@6e089bcb[name:s2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[8,20]
  stateMachine = a8dedda : 0

A :  cruise.umple.compiler.State@38a2fbc3[name:As11,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[7,8]
  stateMachine = 318ff889 : 0
 cruise.umple.compiler.State@5409305f[name:As12,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[7,20]
  stateMachine = 318ff889 : 0

B :  cruise.umple.compiler.State@7e753fd6[name:Bs21,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[12,8]
  stateMachine = 51a6af38 : 0
 cruise.umple.compiler.State@1f234e35[name:Bs22,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[12,20]
  stateMachine = 51a6af38 : 0
 cruise.umple.compiler.State@2350e46[name:s24s31,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[15,17]
  stateMachine = 51a6af38 : 0
 cruise.umple.compiler.State@55691a59[name:s24s32,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[20,34]
  stateMachine = 51a6af38 : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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@57ae3c0e[name:s1,isConcurrent:false,isStartState:true,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[12,4]
  stateMachine = 43e6bcfd : 0
 cruise.umple.compiler.State@361d56a3[name:s2,isConcurrent:false,isStartState:false,isInternal:false,isHistoryState:false,isDeepHistoryState:false,finalState:false,isVisited:false]
  position=[13,27]
  stateMachine = 43e6bcfd : 0

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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE 1.30.2.5248.dba0a5744 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 )