Union:

This is a synchronous temporal expression. It creates an implicit clock that is the result of the expression. The implicit clock ticks each time one of the clocks provided as parameter ticks. To ease the reading we have added a coincidence relation between the implicit resulting clock and an explicit clock named c3.

the CCSL specification:

/*
 * c3 = c1 union c2
 * @author: Julien DeAntoni
 * date : Wed jul 11th 2011
 */

ClockConstraintSystem  MySpec {
    imports {
        import "ccsl:kernel" as kernelLib ; //add the kernel constraints to your specification
    }
    entryBlock main

    Block main {

            Clock c1
            Clock c2
            Clock c3
            Expression c1Uc2 = Union( Clock1 -> c1, Clock2 -> c2 )
            Relation r1[Coincides](Clock1 -> c3, Clock2 -> c1Uc2 )
         

        }
}

Simulation results:

The Union expression simulation is represented on the next picture.

On the bottom right, the clock domain is represented; here, both clocks provided as parameters of the expression are sub clocks of the clock that results from the expression. The resulting clock is named IC6 (ImplicitClock and a unique number for the simulation). Its actual name can be seen in a message when the mouse moves over the state (as shown on the picture)

a causess partially ordered solution (can be refined by temporal relations)

 

This expression provides a solution that is totally ordered as shown in the following picture showing also instant relations.

a causess partially ordered solution (can be refined by temporal relations)