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

-- PLEASE DO NOT EDIT THIS CODE --
-- This code was generated using the UMPLE @UMPLE_VERSION@ modeling language! --


-- This defines a NuSMV module for HeatControlSystemSm --
MODULE HeatControlSystemSm ( _smHeatingSystemHouseRoom , _smHeatingSystemHouseRoomRoom , _smHeatingSystemHouseRoomRoomNoHeatReq , _smHeatingSystemHouseRoomRoomHeatReq , _smHeatingSystemHouseController , _smHeatingSystemHouseControllerController , _smHeatingSystemHouseControllerControllerControllerOn , _smHeatingSystemHouseControllerControllerControllerOnHeaterActive , _smHeatingSystemHouse , _smHeatingSystemFurnaceFurnace , _smHeatingSystemFurnaceFurnaceFurnaceNormal )

   -- 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__ & _smHeatingSystemHouseRoomRoomNoHeatReq.state = SmHeatingSystemHouseRoomRoomNoHeatReq_idleNotHeat & g1;
     t2 := event = ev___autotransition__ & _smHeatingSystemHouseRoomRoomNoHeatReq.state = SmHeatingSystemHouseRoomRoomNoHeatReq_waitForHeat & g2;
     t3 := event = ev___autotransition__ & _smHeatingSystemHouseRoomRoomNoHeatReq.state = SmHeatingSystemHouseRoomRoomNoHeatReq_waitForHeat & g3;
     t4 := event = ev___autotransition__ & _smHeatingSystemHouseRoomRoomNoHeatReq.state = SmHeatingSystemHouseRoomRoomNoHeatReq_waitForHeat & g4;
     t5 := event = ev___autotransition__ & _smHeatingSystemHouseRoomRoomNoHeatReq.state = SmHeatingSystemHouseRoomRoomNoHeatReq_waitForHeat & g5;
     t6 := event = ev___autotransition__ & _smHeatingSystemHouseRoomRoomHeatReq.state = SmHeatingSystemHouseRoomRoomHeatReq_idleHeat & g6;
     t7 := event = ev___autotransition__ & _smHeatingSystemHouseRoomRoomHeatReq.state = SmHeatingSystemHouseRoomRoomHeatReq_waitForCool & g7;
     t8 := event = ev___autotransition__ & _smHeatingSystemHouseRoomRoomHeatReq.state = SmHeatingSystemHouseRoomRoomHeatReq_waitForCool & g8;
     t9 := event = ev___autotransition__ & _smHeatingSystemHouseRoomRoomHeatReq.state = SmHeatingSystemHouseRoomRoomHeatReq_waitForCool & g9;
     t10 := event = ev___autotransition__ & _smHeatingSystemHouseRoomRoomHeatReq.state = SmHeatingSystemHouseRoomRoomHeatReq_waitForCool & g10;
     t11 := event = ev_heatSwitchOn & _smHeatingSystemHouseControllerController.state = SmHeatingSystemHouseControllerController_off;
     t12 := event = ev_heatSwitchOff & _smHeatingSystemHouseControllerController.state = SmHeatingSystemHouseControllerController_controllerOn;
     t13 := event = ev_furnaceFault & _smHeatingSystemHouseControllerController.state = SmHeatingSystemHouseControllerController_controllerOn;
     t14 := event = ev_userReset & _smHeatingSystemHouseControllerController.state = SmHeatingSystemHouseControllerController_error;
     t15 := event = ev___autotransition__ & _smHeatingSystemHouseControllerControllerControllerOn.state = SmHeatingSystemHouseControllerControllerControllerOn_idle & g11;
     t16 := event = ev___autotransition__ & _smHeatingSystemHouseControllerControllerControllerOn.state = SmHeatingSystemHouseControllerControllerControllerOn_heaterActive & g12;
     t17 := event = ev___autotransition__ & _smHeatingSystemHouseControllerControllerControllerOnHeaterActive.state = SmHeatingSystemHouseControllerControllerControllerOnHeaterActive_actHeater & g13;
     t18 := event = ev_furnaceFault & _smHeatingSystemFurnaceFurnace.state = SmHeatingSystemFurnaceFurnace_furnaceNormal;
     t19 := event = ev___autotransition__ & _smHeatingSystemFurnaceFurnace.state = SmHeatingSystemFurnaceFurnace_furnaceErr & g14;
     t20 := event = ev___autotransition__ & _smHeatingSystemFurnaceFurnaceFurnaceNormal.state = SmHeatingSystemFurnaceFurnaceFurnaceNormal_furnaceOff & g15;
     t21 := event = ev___autotransition__ & _smHeatingSystemFurnaceFurnaceFurnaceNormal.state = SmHeatingSystemFurnaceFurnaceFurnaceNormal_furnaceAct & g16;
     t22 := event = ev___autotransition__ & _smHeatingSystemFurnaceFurnaceFurnaceNormal.state = SmHeatingSystemFurnaceFurnaceFurnaceNormal_furnaceAct & g17;
     t23 := event = ev___autotransition__ & _smHeatingSystemFurnaceFurnaceFurnaceNormal.state = SmHeatingSystemFurnaceFurnaceFurnaceNormal_furnaceAct & g18;
     t24 := event = ev___autotransition__ & _smHeatingSystemFurnaceFurnaceFurnaceNormal.state = SmHeatingSystemFurnaceFurnaceFurnaceNormal_furnaceRun & g16;
     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 := furnaceReset = TRUE;
     g15 := activate = TRUE;
     g16 := deactivate = TRUE;
     g17 := furnaceStartUpTime < furnaceTimer;
     g18 := furnaceStartUpTime = furnaceTimer;

   -- 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 | t1 | t3 | t10 | t7 | t12 | t11 | t15 | t13 | t21 | t20 | t23 | t4 | t2 | t5 | t6 | t9 | t14 | t16 | t17 | t19 | t24 | t22 | t18 : 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 HeatControlSystemSmHeatingSystemHouseRoom --
MODULE HeatControlSystemSmHeatingSystemHouseRoom ( _sm )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmHeatingSystemHouseRoom_room , 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 | _sm.t1 | _sm.t3 | _sm.t10 | _sm.t7 | _sm.t4 | _sm.t2 | _sm.t5 | _sm.t6 | _sm.t9 : SmHeatingSystemHouseRoom_room;
       _sm.state = Sm_heatingSystem & state = null : SmHeatingSystemHouseRoom_room;
       TRUE : state;
     esac;

-- This defines a NuSMV module for HeatControlSystemSmHeatingSystemHouseRoomRoom --
MODULE HeatControlSystemSmHeatingSystemHouseRoomRoom ( _sm , _smHeatingSystemHouse )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmHeatingSystemHouseRoomRoom_noHeatReq , SmHeatingSystemHouseRoomRoom_heatReq , 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.t2 | _sm.t8 | _sm.t1 | _sm.t3 : SmHeatingSystemHouseRoomRoom_noHeatReq;
       _sm.t10 | _sm.t7 | _sm.t5 | _sm.t6 | _sm.t9 : SmHeatingSystemHouseRoomRoom_heatReq;
       _smHeatingSystemHouse.state = SmHeatingSystemHouse_house & state = null : SmHeatingSystemHouseRoomRoom_noHeatReq;
       TRUE : state;
     esac;

-- This defines a NuSMV module for HeatControlSystemSmHeatingSystemHouseRoomRoomNoHeatReq --
MODULE HeatControlSystemSmHeatingSystemHouseRoomRoomNoHeatReq ( _sm , _smHeatingSystemHouseRoomRoom )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmHeatingSystemHouseRoomRoomNoHeatReq_idleNotHeat , SmHeatingSystemHouseRoomRoomNoHeatReq_waitForHeat , 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.t5 | _sm.t7 | _sm.t9 | _sm.t6 | _sm.t8 | _sm.t10 : null;
       _sm.t4 : SmHeatingSystemHouseRoomRoomNoHeatReq_idleNotHeat;
       _sm.t2 | _sm.t1 | _sm.t3 : SmHeatingSystemHouseRoomRoomNoHeatReq_waitForHeat;
       _smHeatingSystemHouseRoomRoom.state = SmHeatingSystemHouseRoomRoom_noHeatReq & state = null : SmHeatingSystemHouseRoomRoomNoHeatReq_idleNotHeat;
       TRUE : state;
     esac;

-- This defines a NuSMV module for HeatControlSystemSmHeatingSystemHouseRoomRoomHeatReq --
MODULE HeatControlSystemSmHeatingSystemHouseRoomRoomHeatReq ( _sm , _smHeatingSystemHouseRoomRoom )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmHeatingSystemHouseRoomRoomHeatReq_idleHeat , SmHeatingSystemHouseRoomRoomHeatReq_waitForCool , 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.t3 | _sm.t5 | _sm.t2 | _sm.t4 | _sm.t8 : null;
       _sm.t10 : SmHeatingSystemHouseRoomRoomHeatReq_idleHeat;
       _sm.t7 | _sm.t6 | _sm.t9 : SmHeatingSystemHouseRoomRoomHeatReq_waitForCool;
       _smHeatingSystemHouseRoomRoom.state = SmHeatingSystemHouseRoomRoom_heatReq & state = null : SmHeatingSystemHouseRoomRoomHeatReq_idleHeat;
       TRUE : state;
     esac;

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

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmHeatingSystemHouseController_controller , 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.t14 | _sm.t16 | _sm.t17 | _sm.t12 | _sm.t11 | _sm.t15 | _sm.t13 : SmHeatingSystemHouseController_controller;
       _sm.state = Sm_heatingSystem & state = null : SmHeatingSystemHouseController_controller;
       TRUE : state;
     esac;

-- This defines a NuSMV module for HeatControlSystemSmHeatingSystemHouseControllerController --
MODULE HeatControlSystemSmHeatingSystemHouseControllerController ( _sm , _smHeatingSystemHouse )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmHeatingSystemHouseControllerController_off , SmHeatingSystemHouseControllerController_controllerOn , SmHeatingSystemHouseControllerController_error , 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.t14 : SmHeatingSystemHouseControllerController_off;
       _sm.t11 | _sm.t15 | _sm.t16 | _sm.t17 : SmHeatingSystemHouseControllerController_controllerOn;
       _sm.t13 : SmHeatingSystemHouseControllerController_error;
       _smHeatingSystemHouse.state = SmHeatingSystemHouse_house & state = null : SmHeatingSystemHouseControllerController_off;
       TRUE : state;
     esac;

-- This defines a NuSMV module for HeatControlSystemSmHeatingSystemHouseControllerControllerControllerOn --
MODULE HeatControlSystemSmHeatingSystemHouseControllerControllerControllerOn ( _sm , _smHeatingSystemHouseControllerController )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmHeatingSystemHouseControllerControllerControllerOn_idle , SmHeatingSystemHouseControllerControllerControllerOn_heaterActive , 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 | _sm.t12 | _sm.t14 : null;
       _sm.t16 : SmHeatingSystemHouseControllerControllerControllerOn_idle;
       _sm.t15 | _sm.t17 : SmHeatingSystemHouseControllerControllerControllerOn_heaterActive;
       _smHeatingSystemHouseControllerController.state = SmHeatingSystemHouseControllerController_controllerOn & state = null : SmHeatingSystemHouseControllerControllerControllerOn_idle;
       TRUE : state;
     esac;

-- This defines a NuSMV module for HeatControlSystemSmHeatingSystemHouseControllerControllerControllerOnHeaterActive --
MODULE HeatControlSystemSmHeatingSystemHouseControllerControllerControllerOnHeaterActive ( _sm , _smHeatingSystemHouseControllerControllerControllerOn )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmHeatingSystemHouseControllerControllerControllerOnHeaterActive_actHeater , SmHeatingSystemHouseControllerControllerControllerOnHeaterActive_heaterRun , 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.t15 | _sm.t12 | _sm.t16 | _sm.t13 : null;
       _sm.t17 : SmHeatingSystemHouseControllerControllerControllerOnHeaterActive_heaterRun;
       _smHeatingSystemHouseControllerControllerControllerOn.state = SmHeatingSystemHouseControllerControllerControllerOn_heaterActive & state = null : SmHeatingSystemHouseControllerControllerControllerOnHeaterActive_actHeater;
       TRUE : state;
     esac;

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

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmHeatingSystemHouse_house , 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.t2 | _sm.t5 | _sm.t6 | _sm.t9 | _sm.t14 | _sm.t16 | _sm.t17 | _sm.t8 | _sm.t1 | _sm.t3 | _sm.t10 | _sm.t7 | _sm.t12 | _sm.t11 | _sm.t15 | _sm.t13 : SmHeatingSystemHouse_house;
       _sm.state = Sm_heatingSystem & state = null : SmHeatingSystemHouse_house;
       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_furnaceNormal , SmHeatingSystemFurnaceFurnace_furnaceErr , 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.t19 | _sm.t24 | _sm.t22 | _sm.t21 | _sm.t20 | _sm.t23 : SmHeatingSystemFurnaceFurnace_furnaceNormal;
       _sm.t18 : SmHeatingSystemFurnaceFurnace_furnaceErr;
       _sm.state = Sm_heatingSystem & state = null : SmHeatingSystemFurnaceFurnace_furnaceNormal;
       TRUE : state;
     esac;

-- This defines a NuSMV module for HeatControlSystemSmHeatingSystemFurnaceFurnaceFurnaceNormal --
MODULE HeatControlSystemSmHeatingSystemFurnaceFurnaceFurnaceNormal ( _sm , _smHeatingSystemFurnaceFurnace )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { SmHeatingSystemFurnaceFurnaceFurnaceNormal_furnaceOff , SmHeatingSystemFurnaceFurnaceFurnaceNormal_furnaceAct , SmHeatingSystemFurnaceFurnaceFurnaceNormal_furnaceRun , 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 | _sm.t19 : null;
       _sm.t21 | _sm.t24 : SmHeatingSystemFurnaceFurnaceFurnaceNormal_furnaceOff;
       _sm.t20 | _sm.t22 : SmHeatingSystemFurnaceFurnaceFurnaceNormal_furnaceAct;
       _sm.t23 : SmHeatingSystemFurnaceFurnaceFurnaceNormal_furnaceRun;
       _smHeatingSystemFurnaceFurnace.state = SmHeatingSystemFurnaceFurnace_furnaceNormal & state = null : SmHeatingSystemFurnaceFurnaceFurnaceNormal_furnaceOff;
       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( heatControlSystemSmHeatingSystemHouseRoom , heatControlSystemSmHeatingSystemHouseRoomRoom , heatControlSystemSmHeatingSystemHouseRoomRoomNoHeatReq , heatControlSystemSmHeatingSystemHouseRoomRoomHeatReq , heatControlSystemSmHeatingSystemHouseController , heatControlSystemSmHeatingSystemHouseControllerController , heatControlSystemSmHeatingSystemHouseControllerControllerControllerOn , heatControlSystemSmHeatingSystemHouseControllerControllerControllerOnHeaterActive , heatControlSystemSmHeatingSystemHouse , heatControlSystemSmHeatingSystemFurnaceFurnace , heatControlSystemSmHeatingSystemFurnaceFurnaceFurnaceNormal );
     heatControlSystemSmHeatingSystemHouseRoom : HeatControlSystemSmHeatingSystemHouseRoom( heatControlSystemSm );
     heatControlSystemSmHeatingSystemHouseRoomRoom : HeatControlSystemSmHeatingSystemHouseRoomRoom( heatControlSystemSm , heatControlSystemSmHeatingSystemHouse );
     heatControlSystemSmHeatingSystemHouseRoomRoomNoHeatReq : HeatControlSystemSmHeatingSystemHouseRoomRoomNoHeatReq( heatControlSystemSm , heatControlSystemSmHeatingSystemHouseRoomRoom );
     heatControlSystemSmHeatingSystemHouseRoomRoomHeatReq : HeatControlSystemSmHeatingSystemHouseRoomRoomHeatReq( heatControlSystemSm , heatControlSystemSmHeatingSystemHouseRoomRoom );
     heatControlSystemSmHeatingSystemHouseController : HeatControlSystemSmHeatingSystemHouseController( heatControlSystemSm );
     heatControlSystemSmHeatingSystemHouseControllerController : HeatControlSystemSmHeatingSystemHouseControllerController( heatControlSystemSm , heatControlSystemSmHeatingSystemHouse );
     heatControlSystemSmHeatingSystemHouseControllerControllerControllerOn : HeatControlSystemSmHeatingSystemHouseControllerControllerControllerOn( heatControlSystemSm , heatControlSystemSmHeatingSystemHouseControllerController );
     heatControlSystemSmHeatingSystemHouseControllerControllerControllerOnHeaterActive : HeatControlSystemSmHeatingSystemHouseControllerControllerControllerOnHeaterActive( heatControlSystemSm , heatControlSystemSmHeatingSystemHouseControllerControllerControllerOn );
     heatControlSystemSmHeatingSystemHouse : HeatControlSystemSmHeatingSystemHouse( heatControlSystemSm );
     heatControlSystemSmHeatingSystemFurnaceFurnace : HeatControlSystemSmHeatingSystemFurnaceFurnace( heatControlSystemSm );
     heatControlSystemSmHeatingSystemFurnaceFurnaceFurnaceNormal : HeatControlSystemSmHeatingSystemFurnaceFurnaceFurnaceNormal( heatControlSystemSm , heatControlSystemSmHeatingSystemFurnaceFurnace );

-- This defines a NuSMV module for HeatControlSystemSm1 --
MODULE HeatControlSystemSm1 ( _sm1HeatingSystemHouseRoom , _sm1HeatingSystemHouseRoomRoom , _sm1HeatingSystemHouseRoomRoomNoHeatReq , _sm1HeatingSystemHouseRoomRoomHeatReq , _sm1HeatingSystemHouseController , _sm1HeatingSystemHouseControllerController , _sm1HeatingSystemHouseControllerControllerControllerOn , _sm1HeatingSystemHouseControllerControllerControllerOnHeaterActive , _sm1HeatingSystemHouse , _sm1HeatingSystemFurnaceFurnace , _sm1HeatingSystemFurnaceFurnaceFurnaceNormal )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Sm1_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
     sm1_stable :=  !( event = ev_heatSwitchOff | event = ev_userReset | event = ev_heatSwitchOn | event = ev___autotransition__ | event = ev_furnaceFault );
     t1 := event = ev___autotransition__ & _sm1HeatingSystemHouseRoomRoomNoHeatReq.state = Sm1HeatingSystemHouseRoomRoomNoHeatReq_idleNotHeat & g1;
     t2 := event = ev___autotransition__ & _sm1HeatingSystemHouseRoomRoomNoHeatReq.state = Sm1HeatingSystemHouseRoomRoomNoHeatReq_waitForHeat & g2;
     t3 := event = ev___autotransition__ & _sm1HeatingSystemHouseRoomRoomNoHeatReq.state = Sm1HeatingSystemHouseRoomRoomNoHeatReq_waitForHeat & g3;
     t4 := event = ev___autotransition__ & _sm1HeatingSystemHouseRoomRoomNoHeatReq.state = Sm1HeatingSystemHouseRoomRoomNoHeatReq_waitForHeat & g4;
     t5 := event = ev___autotransition__ & _sm1HeatingSystemHouseRoomRoomNoHeatReq.state = Sm1HeatingSystemHouseRoomRoomNoHeatReq_waitForHeat & g5;
     t6 := event = ev___autotransition__ & _sm1HeatingSystemHouseRoomRoomHeatReq.state = Sm1HeatingSystemHouseRoomRoomHeatReq_idleHeat & g6;
     t7 := event = ev___autotransition__ & _sm1HeatingSystemHouseRoomRoomHeatReq.state = Sm1HeatingSystemHouseRoomRoomHeatReq_waitForCool & g7;
     t8 := event = ev___autotransition__ & _sm1HeatingSystemHouseRoomRoomHeatReq.state = Sm1HeatingSystemHouseRoomRoomHeatReq_waitForCool & g8;
     t9 := event = ev___autotransition__ & _sm1HeatingSystemHouseRoomRoomHeatReq.state = Sm1HeatingSystemHouseRoomRoomHeatReq_waitForCool & g9;
     t10 := event = ev___autotransition__ & _sm1HeatingSystemHouseRoomRoomHeatReq.state = Sm1HeatingSystemHouseRoomRoomHeatReq_waitForCool & g10;
     t11 := event = ev_heatSwitchOn & _sm1HeatingSystemHouseControllerController.state = Sm1HeatingSystemHouseControllerController_off;
     t12 := event = ev_heatSwitchOff & _sm1HeatingSystemHouseControllerController.state = Sm1HeatingSystemHouseControllerController_controllerOn;
     t13 := event = ev_furnaceFault & _sm1HeatingSystemHouseControllerController.state = Sm1HeatingSystemHouseControllerController_controllerOn;
     t14 := event = ev_userReset & _sm1HeatingSystemHouseControllerController.state = Sm1HeatingSystemHouseControllerController_error;
     t15 := event = ev___autotransition__ & _sm1HeatingSystemHouseControllerControllerControllerOn.state = Sm1HeatingSystemHouseControllerControllerControllerOn_idle & g11;
     t16 := event = ev___autotransition__ & _sm1HeatingSystemHouseControllerControllerControllerOn.state = Sm1HeatingSystemHouseControllerControllerControllerOn_heaterActive & g12;
     t17 := event = ev___autotransition__ & _sm1HeatingSystemHouseControllerControllerControllerOnHeaterActive.state = Sm1HeatingSystemHouseControllerControllerControllerOnHeaterActive_actHeater & g13;
     t18 := event = ev_furnaceFault & _sm1HeatingSystemFurnaceFurnace.state = Sm1HeatingSystemFurnaceFurnace_furnaceNormal;
     t19 := event = ev___autotransition__ & _sm1HeatingSystemFurnaceFurnace.state = Sm1HeatingSystemFurnaceFurnace_furnaceErr & g14;
     t20 := event = ev___autotransition__ & _sm1HeatingSystemFurnaceFurnaceFurnaceNormal.state = Sm1HeatingSystemFurnaceFurnaceFurnaceNormal_furnaceOff & g15;
     t21 := event = ev___autotransition__ & _sm1HeatingSystemFurnaceFurnaceFurnaceNormal.state = Sm1HeatingSystemFurnaceFurnaceFurnaceNormal_furnaceAct & g16;
     t22 := event = ev___autotransition__ & _sm1HeatingSystemFurnaceFurnaceFurnaceNormal.state = Sm1HeatingSystemFurnaceFurnaceFurnaceNormal_furnaceAct & g17;
     t23 := event = ev___autotransition__ & _sm1HeatingSystemFurnaceFurnaceFurnaceNormal.state = Sm1HeatingSystemFurnaceFurnaceFurnaceNormal_furnaceAct & g18;
     t24 := event = ev___autotransition__ & _sm1HeatingSystemFurnaceFurnaceFurnaceNormal.state = Sm1HeatingSystemFurnaceFurnaceFurnaceNormal_furnaceRun & g16;
     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 := furnaceReset = TRUE;
     g15 := activate = TRUE;
     g16 := deactivate = TRUE;
     g17 := furnaceStartUpTime < furnaceTimer;
     g18 := furnaceStartUpTime = furnaceTimer;

   -- This part defines logic for the assignment of values to state variable "state" of this NuSMV module --
   ASSIGN
     init( state ) := Sm1_heatingSystem;
     next( state ) := case
       t8 | t1 | t3 | t10 | t7 | t12 | t11 | t15 | t13 | t21 | t20 | t23 | t4 | t2 | t5 | t6 | t9 | t14 | t16 | t17 | t19 | t24 | t22 | t18 : Sm1_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
       sm1_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 HeatControlSystemSm1HeatingSystemHouseRoom --
MODULE HeatControlSystemSm1HeatingSystemHouseRoom ( _sm1 )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Sm1HeatingSystemHouseRoom_room , 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
       _sm1.t8 | _sm1.t1 | _sm1.t3 | _sm1.t10 | _sm1.t7 | _sm1.t4 | _sm1.t2 | _sm1.t5 | _sm1.t6 | _sm1.t9 : Sm1HeatingSystemHouseRoom_room;
       _sm1.state = Sm1_heatingSystem & state = null : Sm1HeatingSystemHouseRoom_room;
       TRUE : state;
     esac;

-- This defines a NuSMV module for HeatControlSystemSm1HeatingSystemHouseRoomRoom --
MODULE HeatControlSystemSm1HeatingSystemHouseRoomRoom ( _sm1 , _sm1HeatingSystemHouse )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Sm1HeatingSystemHouseRoomRoom_noHeatReq , Sm1HeatingSystemHouseRoomRoom_heatReq , 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
       _sm1.t4 | _sm1.t2 | _sm1.t8 | _sm1.t1 | _sm1.t3 : Sm1HeatingSystemHouseRoomRoom_noHeatReq;
       _sm1.t10 | _sm1.t7 | _sm1.t5 | _sm1.t6 | _sm1.t9 : Sm1HeatingSystemHouseRoomRoom_heatReq;
       _sm1HeatingSystemHouse.state = Sm1HeatingSystemHouse_house & state = null : Sm1HeatingSystemHouseRoomRoom_noHeatReq;
       TRUE : state;
     esac;

-- This defines a NuSMV module for HeatControlSystemSm1HeatingSystemHouseRoomRoomNoHeatReq --
MODULE HeatControlSystemSm1HeatingSystemHouseRoomRoomNoHeatReq ( _sm1 , _sm1HeatingSystemHouseRoomRoom )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Sm1HeatingSystemHouseRoomRoomNoHeatReq_idleNotHeat , Sm1HeatingSystemHouseRoomRoomNoHeatReq_waitForHeat , 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
       _sm1.t5 | _sm1.t7 | _sm1.t9 | _sm1.t6 | _sm1.t8 | _sm1.t10 : null;
       _sm1.t4 : Sm1HeatingSystemHouseRoomRoomNoHeatReq_idleNotHeat;
       _sm1.t2 | _sm1.t1 | _sm1.t3 : Sm1HeatingSystemHouseRoomRoomNoHeatReq_waitForHeat;
       _sm1HeatingSystemHouseRoomRoom.state = Sm1HeatingSystemHouseRoomRoom_noHeatReq & state = null : Sm1HeatingSystemHouseRoomRoomNoHeatReq_idleNotHeat;
       TRUE : state;
     esac;

-- This defines a NuSMV module for HeatControlSystemSm1HeatingSystemHouseRoomRoomHeatReq --
MODULE HeatControlSystemSm1HeatingSystemHouseRoomRoomHeatReq ( _sm1 , _sm1HeatingSystemHouseRoomRoom )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Sm1HeatingSystemHouseRoomRoomHeatReq_idleHeat , Sm1HeatingSystemHouseRoomRoomHeatReq_waitForCool , 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
       _sm1.t1 | _sm1.t3 | _sm1.t5 | _sm1.t2 | _sm1.t4 | _sm1.t8 : null;
       _sm1.t10 : Sm1HeatingSystemHouseRoomRoomHeatReq_idleHeat;
       _sm1.t7 | _sm1.t6 | _sm1.t9 : Sm1HeatingSystemHouseRoomRoomHeatReq_waitForCool;
       _sm1HeatingSystemHouseRoomRoom.state = Sm1HeatingSystemHouseRoomRoom_heatReq & state = null : Sm1HeatingSystemHouseRoomRoomHeatReq_idleHeat;
       TRUE : state;
     esac;

-- This defines a NuSMV module for HeatControlSystemSm1HeatingSystemHouseController --
MODULE HeatControlSystemSm1HeatingSystemHouseController ( _sm1 )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Sm1HeatingSystemHouseController_controller , 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
       _sm1.t14 | _sm1.t16 | _sm1.t17 | _sm1.t12 | _sm1.t11 | _sm1.t15 | _sm1.t13 : Sm1HeatingSystemHouseController_controller;
       _sm1.state = Sm1_heatingSystem & state = null : Sm1HeatingSystemHouseController_controller;
       TRUE : state;
     esac;

-- This defines a NuSMV module for HeatControlSystemSm1HeatingSystemHouseControllerController --
MODULE HeatControlSystemSm1HeatingSystemHouseControllerController ( _sm1 , _sm1HeatingSystemHouse )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Sm1HeatingSystemHouseControllerController_off , Sm1HeatingSystemHouseControllerController_controllerOn , Sm1HeatingSystemHouseControllerController_error , 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
       _sm1.t12 | _sm1.t14 : Sm1HeatingSystemHouseControllerController_off;
       _sm1.t11 | _sm1.t15 | _sm1.t16 | _sm1.t17 : Sm1HeatingSystemHouseControllerController_controllerOn;
       _sm1.t13 : Sm1HeatingSystemHouseControllerController_error;
       _sm1HeatingSystemHouse.state = Sm1HeatingSystemHouse_house & state = null : Sm1HeatingSystemHouseControllerController_off;
       TRUE : state;
     esac;

-- This defines a NuSMV module for HeatControlSystemSm1HeatingSystemHouseControllerControllerControllerOn --
MODULE HeatControlSystemSm1HeatingSystemHouseControllerControllerControllerOn ( _sm1 , _sm1HeatingSystemHouseControllerController )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Sm1HeatingSystemHouseControllerControllerControllerOn_idle , Sm1HeatingSystemHouseControllerControllerControllerOn_heaterActive , 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
       _sm1.t11 | _sm1.t13 | _sm1.t12 | _sm1.t14 : null;
       _sm1.t16 : Sm1HeatingSystemHouseControllerControllerControllerOn_idle;
       _sm1.t15 | _sm1.t17 : Sm1HeatingSystemHouseControllerControllerControllerOn_heaterActive;
       _sm1HeatingSystemHouseControllerController.state = Sm1HeatingSystemHouseControllerController_controllerOn & state = null : Sm1HeatingSystemHouseControllerControllerControllerOn_idle;
       TRUE : state;
     esac;

-- This defines a NuSMV module for HeatControlSystemSm1HeatingSystemHouseControllerControllerControllerOnHeaterActive --
MODULE HeatControlSystemSm1HeatingSystemHouseControllerControllerControllerOnHeaterActive ( _sm1 , _sm1HeatingSystemHouseControllerControllerControllerOn )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Sm1HeatingSystemHouseControllerControllerControllerOnHeaterActive_actHeater , Sm1HeatingSystemHouseControllerControllerControllerOnHeaterActive_heaterRun , 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
       _sm1.t15 | _sm1.t12 | _sm1.t16 | _sm1.t13 : null;
       _sm1.t17 : Sm1HeatingSystemHouseControllerControllerControllerOnHeaterActive_heaterRun;
       _sm1HeatingSystemHouseControllerControllerControllerOn.state = Sm1HeatingSystemHouseControllerControllerControllerOn_heaterActive & state = null : Sm1HeatingSystemHouseControllerControllerControllerOnHeaterActive_actHeater;
       TRUE : state;
     esac;

-- This defines a NuSMV module for HeatControlSystemSm1HeatingSystemHouse --
MODULE HeatControlSystemSm1HeatingSystemHouse ( _sm1 )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Sm1HeatingSystemHouse_house , 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
       _sm1.t4 | _sm1.t2 | _sm1.t5 | _sm1.t6 | _sm1.t9 | _sm1.t14 | _sm1.t16 | _sm1.t17 | _sm1.t8 | _sm1.t1 | _sm1.t3 | _sm1.t10 | _sm1.t7 | _sm1.t12 | _sm1.t11 | _sm1.t15 | _sm1.t13 : Sm1HeatingSystemHouse_house;
       _sm1.state = Sm1_heatingSystem & state = null : Sm1HeatingSystemHouse_house;
       TRUE : state;
     esac;

-- This defines a NuSMV module for HeatControlSystemSm1HeatingSystemFurnaceFurnace --
MODULE HeatControlSystemSm1HeatingSystemFurnaceFurnace ( _sm1 )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Sm1HeatingSystemFurnaceFurnace_furnaceNormal , Sm1HeatingSystemFurnaceFurnace_furnaceErr , 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
       _sm1.t19 | _sm1.t24 | _sm1.t22 | _sm1.t21 | _sm1.t20 | _sm1.t23 : Sm1HeatingSystemFurnaceFurnace_furnaceNormal;
       _sm1.t18 : Sm1HeatingSystemFurnaceFurnace_furnaceErr;
       _sm1.state = Sm1_heatingSystem & state = null : Sm1HeatingSystemFurnaceFurnace_furnaceNormal;
       TRUE : state;
     esac;

-- This defines a NuSMV module for HeatControlSystemSm1HeatingSystemFurnaceFurnaceFurnaceNormal --
MODULE HeatControlSystemSm1HeatingSystemFurnaceFurnaceFurnaceNormal ( _sm1 , _sm1HeatingSystemFurnaceFurnace )

   -- This part declares state variables for the given NuSMV module --
   VAR
     state : { Sm1HeatingSystemFurnaceFurnaceFurnaceNormal_furnaceOff , Sm1HeatingSystemFurnaceFurnaceFurnaceNormal_furnaceAct , Sm1HeatingSystemFurnaceFurnaceFurnaceNormal_furnaceRun , 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
       _sm1.t18 | _sm1.t19 : null;
       _sm1.t21 | _sm1.t24 : Sm1HeatingSystemFurnaceFurnaceFurnaceNormal_furnaceOff;
       _sm1.t20 | _sm1.t22 : Sm1HeatingSystemFurnaceFurnaceFurnaceNormal_furnaceAct;
       _sm1.t23 : Sm1HeatingSystemFurnaceFurnaceFurnaceNormal_furnaceRun;
       _sm1HeatingSystemFurnaceFurnace.state = Sm1HeatingSystemFurnaceFurnace_furnaceNormal & state = null : Sm1HeatingSystemFurnaceFurnaceFurnaceNormal_furnaceOff;
       TRUE : state;
     esac;

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

   -- This part declares state variables for the given NuSMV module --
   VAR
     heatControlSystemSm1 : HeatControlSystemSm1( heatControlSystemSm1HeatingSystemHouseRoom , heatControlSystemSm1HeatingSystemHouseRoomRoom , heatControlSystemSm1HeatingSystemHouseRoomRoomNoHeatReq , heatControlSystemSm1HeatingSystemHouseRoomRoomHeatReq , heatControlSystemSm1HeatingSystemHouseController , heatControlSystemSm1HeatingSystemHouseControllerController , heatControlSystemSm1HeatingSystemHouseControllerControllerControllerOn , heatControlSystemSm1HeatingSystemHouseControllerControllerControllerOnHeaterActive , heatControlSystemSm1HeatingSystemHouse , heatControlSystemSm1HeatingSystemFurnaceFurnace , heatControlSystemSm1HeatingSystemFurnaceFurnaceFurnaceNormal );
     heatControlSystemSm1HeatingSystemHouseRoom : HeatControlSystemSm1HeatingSystemHouseRoom( heatControlSystemSm1 );
     heatControlSystemSm1HeatingSystemHouseRoomRoom : HeatControlSystemSm1HeatingSystemHouseRoomRoom( heatControlSystemSm1 , heatControlSystemSm1HeatingSystemHouse );
     heatControlSystemSm1HeatingSystemHouseRoomRoomNoHeatReq : HeatControlSystemSm1HeatingSystemHouseRoomRoomNoHeatReq( heatControlSystemSm1 , heatControlSystemSm1HeatingSystemHouseRoomRoom );
     heatControlSystemSm1HeatingSystemHouseRoomRoomHeatReq : HeatControlSystemSm1HeatingSystemHouseRoomRoomHeatReq( heatControlSystemSm1 , heatControlSystemSm1HeatingSystemHouseRoomRoom );
     heatControlSystemSm1HeatingSystemHouseController : HeatControlSystemSm1HeatingSystemHouseController( heatControlSystemSm1 );
     heatControlSystemSm1HeatingSystemHouseControllerController : HeatControlSystemSm1HeatingSystemHouseControllerController( heatControlSystemSm1 , heatControlSystemSm1HeatingSystemHouse );
     heatControlSystemSm1HeatingSystemHouseControllerControllerControllerOn : HeatControlSystemSm1HeatingSystemHouseControllerControllerControllerOn( heatControlSystemSm1 , heatControlSystemSm1HeatingSystemHouseControllerController );
     heatControlSystemSm1HeatingSystemHouseControllerControllerControllerOnHeaterActive : HeatControlSystemSm1HeatingSystemHouseControllerControllerControllerOnHeaterActive( heatControlSystemSm1 , heatControlSystemSm1HeatingSystemHouseControllerControllerControllerOn );
     heatControlSystemSm1HeatingSystemHouse : HeatControlSystemSm1HeatingSystemHouse( heatControlSystemSm1 );
     heatControlSystemSm1HeatingSystemFurnaceFurnace : HeatControlSystemSm1HeatingSystemFurnaceFurnace( heatControlSystemSm1 );
     heatControlSystemSm1HeatingSystemFurnaceFurnaceFurnaceNormal : HeatControlSystemSm1HeatingSystemFurnaceFurnaceFurnaceNormal( heatControlSystemSm1 , heatControlSystemSm1HeatingSystemFurnaceFurnace );

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

   -- This part declares state variables for the given NuSMV module --
   VAR
     heatControlSystemSm_Machine : HeatControlSystemSm_Machine;
     heatControlSystemSm1_Machine : HeatControlSystemSm1_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.heatControlSystemSmHeatingSystemHouseRoomRoomNoHeatReq.state = SmHeatingSystemHouseRoomRoomNoHeatReq_waitForHeat & heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseRoomRoomNoHeatReq.state = SmHeatingSystemHouseRoomRoomNoHeatReq_idleNotHeat ) )
   INVARSPEC   ( heatControlSystemSm_Machine.heatControlSystemSm.t2 & heatControlSystemSm_Machine.heatControlSystemSm.t5 -> next( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseRoomRoomNoHeatReq.state = SmHeatingSystemHouseRoomRoomNoHeatReq_waitForHeat & heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseRoomRoom.state = SmHeatingSystemHouseRoomRoom_heatReq ) )
   INVARSPEC   ( heatControlSystemSm_Machine.heatControlSystemSm.t3 & heatControlSystemSm_Machine.heatControlSystemSm.t4 -> next( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseRoomRoomNoHeatReq.state = SmHeatingSystemHouseRoomRoomNoHeatReq_waitForHeat & heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseRoomRoomNoHeatReq.state = SmHeatingSystemHouseRoomRoomNoHeatReq_idleNotHeat ) )
   INVARSPEC   ( heatControlSystemSm_Machine.heatControlSystemSm.t3 & heatControlSystemSm_Machine.heatControlSystemSm.t5 -> next( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseRoomRoomNoHeatReq.state = SmHeatingSystemHouseRoomRoomNoHeatReq_waitForHeat & heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseRoomRoom.state = SmHeatingSystemHouseRoomRoom_heatReq ) )
   INVARSPEC   ( heatControlSystemSm_Machine.heatControlSystemSm.t4 & heatControlSystemSm_Machine.heatControlSystemSm.t5 -> next( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseRoomRoomNoHeatReq.state = SmHeatingSystemHouseRoomRoomNoHeatReq_idleNotHeat & heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseRoomRoom.state = SmHeatingSystemHouseRoomRoom_heatReq ) )
   INVARSPEC   ( heatControlSystemSm_Machine.heatControlSystemSm.t7 & heatControlSystemSm_Machine.heatControlSystemSm.t8 -> next( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseRoomRoomHeatReq.state = SmHeatingSystemHouseRoomRoomHeatReq_waitForCool & heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseRoomRoom.state = SmHeatingSystemHouseRoomRoom_noHeatReq ) )
   INVARSPEC   ( heatControlSystemSm_Machine.heatControlSystemSm.t7 & heatControlSystemSm_Machine.heatControlSystemSm.t10 -> next( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseRoomRoomHeatReq.state = SmHeatingSystemHouseRoomRoomHeatReq_waitForCool & heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseRoomRoomHeatReq.state = SmHeatingSystemHouseRoomRoomHeatReq_idleHeat ) )
   INVARSPEC   ( heatControlSystemSm_Machine.heatControlSystemSm.t8 & heatControlSystemSm_Machine.heatControlSystemSm.t9 -> next( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseRoomRoom.state = SmHeatingSystemHouseRoomRoom_noHeatReq & heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseRoomRoomHeatReq.state = SmHeatingSystemHouseRoomRoomHeatReq_waitForCool ) )
   INVARSPEC   ( heatControlSystemSm_Machine.heatControlSystemSm.t8 & heatControlSystemSm_Machine.heatControlSystemSm.t10 -> next( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseRoomRoom.state = SmHeatingSystemHouseRoomRoom_noHeatReq & heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseRoomRoomHeatReq.state = SmHeatingSystemHouseRoomRoomHeatReq_idleHeat ) )
   INVARSPEC   ( heatControlSystemSm_Machine.heatControlSystemSm.t9 & heatControlSystemSm_Machine.heatControlSystemSm.t10 -> next( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseRoomRoomHeatReq.state = SmHeatingSystemHouseRoomRoomHeatReq_waitForCool & heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseRoomRoomHeatReq.state = SmHeatingSystemHouseRoomRoomHeatReq_idleHeat ) )
   INVARSPEC   ( heatControlSystemSm_Machine.heatControlSystemSm.t16 & heatControlSystemSm_Machine.heatControlSystemSm.t17 -> next( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseControllerControllerControllerOn.state = SmHeatingSystemHouseControllerControllerControllerOn_idle & heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseControllerControllerControllerOnHeaterActive.state = SmHeatingSystemHouseControllerControllerControllerOnHeaterActive_heaterRun ) )
   INVARSPEC   ( heatControlSystemSm_Machine.heatControlSystemSm.t21 & heatControlSystemSm_Machine.heatControlSystemSm.t22 -> next( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemFurnaceFurnaceFurnaceNormal.state = SmHeatingSystemFurnaceFurnaceFurnaceNormal_furnaceOff & heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemFurnaceFurnaceFurnaceNormal.state = SmHeatingSystemFurnaceFurnaceFurnaceNormal_furnaceAct ) )
   INVARSPEC   ( heatControlSystemSm_Machine.heatControlSystemSm.t21 & heatControlSystemSm_Machine.heatControlSystemSm.t23 -> next( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemFurnaceFurnaceFurnaceNormal.state = SmHeatingSystemFurnaceFurnaceFurnaceNormal_furnaceOff & heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemFurnaceFurnaceFurnaceNormal.state = SmHeatingSystemFurnaceFurnaceFurnaceNormal_furnaceRun ) )
   INVARSPEC   ( heatControlSystemSm_Machine.heatControlSystemSm.t22 & heatControlSystemSm_Machine.heatControlSystemSm.t23 -> next( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemFurnaceFurnaceFurnaceNormal.state = SmHeatingSystemFurnaceFurnaceFurnaceNormal_furnaceAct & heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemFurnaceFurnaceFurnaceNormal.state = SmHeatingSystemFurnaceFurnaceFurnaceNormal_furnaceRun ) )
   INVARSPEC   ( heatControlSystemSm1_Machine.heatControlSystemSm1.t2 & heatControlSystemSm1_Machine.heatControlSystemSm1.t4 -> next( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseRoomRoomNoHeatReq.state = Sm1HeatingSystemHouseRoomRoomNoHeatReq_waitForHeat & heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseRoomRoomNoHeatReq.state = Sm1HeatingSystemHouseRoomRoomNoHeatReq_idleNotHeat ) )
   INVARSPEC   ( heatControlSystemSm1_Machine.heatControlSystemSm1.t2 & heatControlSystemSm1_Machine.heatControlSystemSm1.t5 -> next( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseRoomRoomNoHeatReq.state = Sm1HeatingSystemHouseRoomRoomNoHeatReq_waitForHeat & heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseRoomRoom.state = Sm1HeatingSystemHouseRoomRoom_heatReq ) )
   INVARSPEC   ( heatControlSystemSm1_Machine.heatControlSystemSm1.t3 & heatControlSystemSm1_Machine.heatControlSystemSm1.t4 -> next( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseRoomRoomNoHeatReq.state = Sm1HeatingSystemHouseRoomRoomNoHeatReq_waitForHeat & heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseRoomRoomNoHeatReq.state = Sm1HeatingSystemHouseRoomRoomNoHeatReq_idleNotHeat ) )
   INVARSPEC   ( heatControlSystemSm1_Machine.heatControlSystemSm1.t3 & heatControlSystemSm1_Machine.heatControlSystemSm1.t5 -> next( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseRoomRoomNoHeatReq.state = Sm1HeatingSystemHouseRoomRoomNoHeatReq_waitForHeat & heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseRoomRoom.state = Sm1HeatingSystemHouseRoomRoom_heatReq ) )
   INVARSPEC   ( heatControlSystemSm1_Machine.heatControlSystemSm1.t4 & heatControlSystemSm1_Machine.heatControlSystemSm1.t5 -> next( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseRoomRoomNoHeatReq.state = Sm1HeatingSystemHouseRoomRoomNoHeatReq_idleNotHeat & heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseRoomRoom.state = Sm1HeatingSystemHouseRoomRoom_heatReq ) )
   INVARSPEC   ( heatControlSystemSm1_Machine.heatControlSystemSm1.t7 & heatControlSystemSm1_Machine.heatControlSystemSm1.t8 -> next( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseRoomRoomHeatReq.state = Sm1HeatingSystemHouseRoomRoomHeatReq_waitForCool & heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseRoomRoom.state = Sm1HeatingSystemHouseRoomRoom_noHeatReq ) )
   INVARSPEC   ( heatControlSystemSm1_Machine.heatControlSystemSm1.t7 & heatControlSystemSm1_Machine.heatControlSystemSm1.t10 -> next( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseRoomRoomHeatReq.state = Sm1HeatingSystemHouseRoomRoomHeatReq_waitForCool & heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseRoomRoomHeatReq.state = Sm1HeatingSystemHouseRoomRoomHeatReq_idleHeat ) )
   INVARSPEC   ( heatControlSystemSm1_Machine.heatControlSystemSm1.t8 & heatControlSystemSm1_Machine.heatControlSystemSm1.t9 -> next( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseRoomRoom.state = Sm1HeatingSystemHouseRoomRoom_noHeatReq & heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseRoomRoomHeatReq.state = Sm1HeatingSystemHouseRoomRoomHeatReq_waitForCool ) )
   INVARSPEC   ( heatControlSystemSm1_Machine.heatControlSystemSm1.t8 & heatControlSystemSm1_Machine.heatControlSystemSm1.t10 -> next( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseRoomRoom.state = Sm1HeatingSystemHouseRoomRoom_noHeatReq & heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseRoomRoomHeatReq.state = Sm1HeatingSystemHouseRoomRoomHeatReq_idleHeat ) )
   INVARSPEC   ( heatControlSystemSm1_Machine.heatControlSystemSm1.t9 & heatControlSystemSm1_Machine.heatControlSystemSm1.t10 -> next( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseRoomRoomHeatReq.state = Sm1HeatingSystemHouseRoomRoomHeatReq_waitForCool & heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseRoomRoomHeatReq.state = Sm1HeatingSystemHouseRoomRoomHeatReq_idleHeat ) )
   INVARSPEC   ( heatControlSystemSm1_Machine.heatControlSystemSm1.t16 & heatControlSystemSm1_Machine.heatControlSystemSm1.t17 -> next( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseControllerControllerControllerOn.state = Sm1HeatingSystemHouseControllerControllerControllerOn_idle & heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseControllerControllerControllerOnHeaterActive.state = Sm1HeatingSystemHouseControllerControllerControllerOnHeaterActive_heaterRun ) )
   INVARSPEC   ( heatControlSystemSm1_Machine.heatControlSystemSm1.t21 & heatControlSystemSm1_Machine.heatControlSystemSm1.t22 -> next( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemFurnaceFurnaceFurnaceNormal.state = Sm1HeatingSystemFurnaceFurnaceFurnaceNormal_furnaceOff & heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemFurnaceFurnaceFurnaceNormal.state = Sm1HeatingSystemFurnaceFurnaceFurnaceNormal_furnaceAct ) )
   INVARSPEC   ( heatControlSystemSm1_Machine.heatControlSystemSm1.t21 & heatControlSystemSm1_Machine.heatControlSystemSm1.t23 -> next( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemFurnaceFurnaceFurnaceNormal.state = Sm1HeatingSystemFurnaceFurnaceFurnaceNormal_furnaceOff & heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemFurnaceFurnaceFurnaceNormal.state = Sm1HeatingSystemFurnaceFurnaceFurnaceNormal_furnaceRun ) )
   INVARSPEC   ( heatControlSystemSm1_Machine.heatControlSystemSm1.t22 & heatControlSystemSm1_Machine.heatControlSystemSm1.t23 -> next( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemFurnaceFurnaceFurnaceNormal.state = Sm1HeatingSystemFurnaceFurnaceFurnaceNormal_furnaceAct & heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemFurnaceFurnaceFurnaceNormal.state = Sm1HeatingSystemFurnaceFurnaceFurnaceNormal_furnaceRun ) )

   -- 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.heatControlSystemSmHeatingSystemHouseRoom.state = SmHeatingSystemHouseRoom_room )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseRoomRoom.state = SmHeatingSystemHouseRoomRoom_noHeatReq )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseRoomRoom.state = SmHeatingSystemHouseRoomRoom_heatReq )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseRoomRoomNoHeatReq.state = SmHeatingSystemHouseRoomRoomNoHeatReq_idleNotHeat )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseRoomRoomNoHeatReq.state = SmHeatingSystemHouseRoomRoomNoHeatReq_waitForHeat )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseRoomRoomHeatReq.state = SmHeatingSystemHouseRoomRoomHeatReq_idleHeat )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseRoomRoomHeatReq.state = SmHeatingSystemHouseRoomRoomHeatReq_waitForCool )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseController.state = SmHeatingSystemHouseController_controller )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseControllerController.state = SmHeatingSystemHouseControllerController_off )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseControllerController.state = SmHeatingSystemHouseControllerController_controllerOn )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseControllerController.state = SmHeatingSystemHouseControllerController_error )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseControllerControllerControllerOn.state = SmHeatingSystemHouseControllerControllerControllerOn_idle )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseControllerControllerControllerOn.state = SmHeatingSystemHouseControllerControllerControllerOn_heaterActive )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseControllerControllerControllerOnHeaterActive.state = SmHeatingSystemHouseControllerControllerControllerOnHeaterActive_actHeater )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouseControllerControllerControllerOnHeaterActive.state = SmHeatingSystemHouseControllerControllerControllerOnHeaterActive_heaterRun )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemHouse.state = SmHeatingSystemHouse_house )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemFurnaceFurnace.state = SmHeatingSystemFurnaceFurnace_furnaceNormal )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemFurnaceFurnace.state = SmHeatingSystemFurnaceFurnace_furnaceErr )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemFurnaceFurnaceFurnaceNormal.state = SmHeatingSystemFurnaceFurnaceFurnaceNormal_furnaceOff )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemFurnaceFurnaceFurnaceNormal.state = SmHeatingSystemFurnaceFurnaceFurnaceNormal_furnaceAct )
   CTLSPEC   EF( heatControlSystemSm_Machine.heatControlSystemSmHeatingSystemFurnaceFurnaceFurnaceNormal.state = SmHeatingSystemFurnaceFurnaceFurnaceNormal_furnaceRun )
   CTLSPEC   EF( heatControlSystemSm1_Machine.heatControlSystemSm1.state = Sm1_heatingSystem )
   CTLSPEC   EF( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseRoom.state = Sm1HeatingSystemHouseRoom_room )
   CTLSPEC   EF( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseRoomRoom.state = Sm1HeatingSystemHouseRoomRoom_noHeatReq )
   CTLSPEC   EF( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseRoomRoom.state = Sm1HeatingSystemHouseRoomRoom_heatReq )
   CTLSPEC   EF( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseRoomRoomNoHeatReq.state = Sm1HeatingSystemHouseRoomRoomNoHeatReq_idleNotHeat )
   CTLSPEC   EF( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseRoomRoomNoHeatReq.state = Sm1HeatingSystemHouseRoomRoomNoHeatReq_waitForHeat )
   CTLSPEC   EF( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseRoomRoomHeatReq.state = Sm1HeatingSystemHouseRoomRoomHeatReq_idleHeat )
   CTLSPEC   EF( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseRoomRoomHeatReq.state = Sm1HeatingSystemHouseRoomRoomHeatReq_waitForCool )
   CTLSPEC   EF( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseController.state = Sm1HeatingSystemHouseController_controller )
   CTLSPEC   EF( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseControllerController.state = Sm1HeatingSystemHouseControllerController_off )
   CTLSPEC   EF( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseControllerController.state = Sm1HeatingSystemHouseControllerController_controllerOn )
   CTLSPEC   EF( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseControllerController.state = Sm1HeatingSystemHouseControllerController_error )
   CTLSPEC   EF( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseControllerControllerControllerOn.state = Sm1HeatingSystemHouseControllerControllerControllerOn_idle )
   CTLSPEC   EF( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseControllerControllerControllerOn.state = Sm1HeatingSystemHouseControllerControllerControllerOn_heaterActive )
   CTLSPEC   EF( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseControllerControllerControllerOnHeaterActive.state = Sm1HeatingSystemHouseControllerControllerControllerOnHeaterActive_actHeater )
   CTLSPEC   EF( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouseControllerControllerControllerOnHeaterActive.state = Sm1HeatingSystemHouseControllerControllerControllerOnHeaterActive_heaterRun )
   CTLSPEC   EF( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemHouse.state = Sm1HeatingSystemHouse_house )
   CTLSPEC   EF( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemFurnaceFurnace.state = Sm1HeatingSystemFurnaceFurnace_furnaceNormal )
   CTLSPEC   EF( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemFurnaceFurnace.state = Sm1HeatingSystemFurnaceFurnace_furnaceErr )
   CTLSPEC   EF( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemFurnaceFurnaceFurnaceNormal.state = Sm1HeatingSystemFurnaceFurnaceFurnaceNormal_furnaceOff )
   CTLSPEC   EF( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemFurnaceFurnaceFurnaceNormal.state = Sm1HeatingSystemFurnaceFurnaceFurnaceNormal_furnaceAct )
   CTLSPEC   EF( heatControlSystemSm1_Machine.heatControlSystemSm1HeatingSystemFurnaceFurnaceFurnaceNormal.state = Sm1HeatingSystemFurnaceFurnaceFurnaceNormal_furnaceRun )
