// **************************************************************************
//
//    eses                   eses
//   eses                     eses
//  eses    eseses  esesese    eses   Embedded Systems Group
//  ese    ese  ese ese         ese
//  ese    eseseses eseseses    ese   Department of Computer Science
//  eses   eses          ese   eses
//   eses   eseses  eseseses  eses    University of Kaiserslautern
//    eses                   eses
//
// **************************************************************************
//
// The example is used to get familiar with flow statement
// 
// **************************************************************************






module Hybrid3(){

    int y;
    nat z;
    hybrid real x,a,b;
    y = 8964;
    z = 7;
    x = x+1;
    
    //l7,l8:flow{
    //    drv(x) <- 2.0*time + x;
   //     drv(y) <- x
   // }until(cont(x)>=2.0);
    
    l11:pause;
    {
    l1,l2:flow{
        drv(x) <- 2.0*time*x + x;
        drv(a) <- 6.0*time*x + a;
        drv(b) <- 7.0*time*cont(x) + b;
    }until(cont(x)>=2.0);
    }||
    {
    l22:pause;
    l3,l4:flow{
        drv(x) <- 3.5*time + x;
    }until(cont(x)>=10.0);
    }
    ||
    {l33:pause;
    l44:pause;
    l5,l6:flow{
        drv(x) <- 5.5*time + x;
    }until(cont(x)>=1.0); 
    }

}
drivenby{

pause;
 for(i = 0..1)
	pause;
}