Skip to main content

Table 6 Update functions of connectors for HFPNe model of Figure 6

From: Simulation-based model checking approach to cell fate specification during Caenorhabditis elegans vulval development by hybrid functional Petri net with extension

Connector Name

Connector type

Update function

Rule I:

if ("gf" .equals(lin12)) == false holds, the connectors are updated as follows:

c14(p28, m35)

process

return false;

c15(p28, m36)

process

return false;

c16(m35, p29)

process

return true;

c17(m36, p30)

process

return true;

c18(p29, m37)

process

return getElapsedTime(simulator);

c19(p30, m38)

process

return getElapsedTime(simulator);

c20(p31, m39)

process

return false;

c21(p31, m40)

process

return false;

c22(m39, p32)

process

return true;

c23(m40, p33)

process

return true;

c24(p32, m41)

process

return getElapsedTime(simulator);

c25(p33, m42)

process

return getElapsedTime(simulator);

c26(p34, m43)

process

if (m43! = 0 && m43 < m38-m37) {return m38-m37;}

else if (m43! = 0 && P3p_m1_interval > = m38-m37)

{return m43;} else {return m38-m37;}

c27(p34, m44)

process

if (m44! = 0 && m43 < m38-m37) {return m37;}

else if (m44! = 0 && m43 > = m38-m37)

{return m44;} else {return m37;}

c28(p35, m45)

process

if (m45! = 0 && m45 < m42-m41) {return m42-m41;}

else if (m45! = 0 && m45 > = m42-m41)

{return m45;} else {return m42-m41;}

c29(p35, m46)

process

if (m46! = 0 && m45 < m42-m41) {return m41;}

else if (m46! = 0 && m45 > = m42-m41)

{return m46;} else {return m41;}

c30(p36, m32)

process

if (m43 > = interval && m45 > = interval) {if (m44 < = m46) {return 1;} else {return 2;}}

else if (m43 > = interval && m45 < interval) {return 1;}

else if (m43 < interval && m45 > = interval)

{return 2;} else{return 3;}

c31(p37, m32)

process

if (m43 > = interval && m45 > = interval) {return 1;}

else if (m43 > = interval && m45 < interval) {return 1;}

else if (m43 < interval && m45 > = interval)

{return 2;} else {return 3;}

c32(p25, m 1)

process

lin3_init

Rule II:

if ("gf" .equals(lin12)) == false holds, the connectors are updated as follows:

c 6(m33, p26)

process

if (m18 > = threshold_1 || m30 > = threshold_2)

{return false;} else {return true;}

c 7(m18, p26)

process

return m18;

c 8(m30, p26)

process

return m30;

c 9(p26, m31)

process

if(m33 == true) {if(m18 > = threshold_1)

{return 1;} else if (m30 > = threshold_2)

{return 2;} else {return 3;}} else {return m31;}

if ("gf" .equals(lin12)) == true holds, the connectors are updated as follows:

c10(m18, p27)

process

return m18;

c11(m34, p27)

process

if (m18 > = threshold_1 && m30 > = threshold_2)

{return false;} else {return true;}

c12(m30, p27)

process

return m30;

c13(p27, m31)

process

if(m18 < threshold_1 && m30 < threshold_2)

{return 3;} else if(m285 > = threshold_1)

{return 1;} else {return 2;}