ara > ∅
∅ > mT3cr
mT3cr > ∅
∅ > pT3
pT3 > ∅
∅ > taRNA
taRNA > ∅
∅ > mT7cr
mT7cr > ∅
∅ > mGFPcr
mGFPcr > ∅
∅ > pT7
∅ > pGFP
pT7 > ∅
pGFP > ∅
pulse3_start = pulse2_start + pulse2_length + pulse_interval
pulse2_start = pulse1_start + pulse1_length + pulse_interval
Trigger: and(geq(time, pulse1_start), leq(time, pulse1_start + pulse1_length))
Delay:
Assignments:
Trigger: and(geq(time, pulse3_start), leq(time, pulse3_start + pulse3_length))
Delay:
Assignments:
Trigger: gt(time, pulse3_start + pulse3_length)
Delay:
Assignments:
Trigger: and(geq(time, pulse2_start), leq(time, pulse2_start + pulse2_length))
Delay:
Assignments:
Trigger: and(lt(time, pulse3_start), gt(time, pulse2_start + pulse2_length))
Delay:
Assignments:
Trigger: and(lt(time, pulse2_start), gt(time, pulse1_start + pulse1_length))
Delay:
Assignments:
Note that constraints are not enforced in simulations. It remains the responsibility of the user to verify that simulation results satisfy these constraints.