Orthogonal components are states with `[CS]` property (short for
Concurrent State). According to the definition of orthogonal
components, if a state is an orthogonal component, all its siblings
(other states of the same parent) must also be orthogonal
components. Orthogonal components must also be default children of
their parent, so they must have `[DS]` property.

An example of orthogonal components (`orthogonal1.des`) is
included below:

STATECHART: A [DS] B B1 [CS] [DS] B11 [DS] B12 B121 [CS] [DS] B122 [CS] [DS] B2 [CS] [DS] B3 [CS] [DS] TRANSITION: S: A N: B E: e TRANSITION: S: B.B1.B11 N: B.B1.B12 E: f

The result of the simulation of this model in text model is:

['A'] > e ['B.B1.B11', 'B.B2', 'B.B3'] > f ['B.B2', 'B.B3', 'B.B1.B12.B121', 'B.B1.B12.B122'] > exit

In this example, `B1`, `B2` and `B3` are siblings because
they are all children of state `B`. They are orthogonal components
with `[CS]` property and `[DS]` property. When the model goes
to state `B` because of event `e`, it is concurrently in the
three states: `B.B1.B11` (the default substate of `B.B1`),
`B.B2` and `B.B3`. The current state is printed to the screen
as a Python list: `['B.B1.B11', 'B.B2', 'B.B3']`. (The sequence of
the components in this list is unimportant.) When event `f` is
received, the model goes to state `B.B1.B12`. Orthogonal
components `B.B2` and `B.B3` are unchanged. `B.B1.B12` has
two orthogonal components as its children. As a result, there are 4
components in the current state: `['B.B2', 'B.B3',
'B.B1.B12.B121', 'B.B1.B12.B122']`.