%
%%wnt simplified architecture -language(spifcp). public(beta(0.01)). public(wnt(1.0)). public(phos(0.2)). public(dephos(0.1)). public(asyn(0.012)). public(adeg(0.00167)). public(bsyn(0.423)). public(bdeg(0.001)). System(N1, N2, N3) ::= << CREATE_A(N1) | CREATE_B(N2) | CREATE_R(N3) | Syn | Clock . CREATE_A(N) ::= {N=<0}, 0 ; {N>0}, {N--} | Axin | self . CREATE_B(N) ::= {N=<0}, 0 ; {N>0}, {N--} | Beta | self . CREATE_R(N) ::= {N=<0}, 0 ; {N>0}, {N--} | Rec | self >> . Rec ::= << wrel(0.008), internal(0.008) . wnt ! {wrel, internal}, RecBound . RecBound ::= wrel ? [], Rec ; internal ? [], Rec >> . Axin ::= << wrel(0.008), internal(0.008), rel(0.1), deg(5.0), rem(infinite), remB(infinite) . phos ! [], AxinP ; adeg ! [], true . AxinP ::= beta ? {rel, deg, rem, remB}, AxinP_BBound ; wnt ? {wrel, internal}, AxinP_Wnt ; dephos ! [], Axin ; adeg ! [], true . AxinP_BBound ::= rel ! [], AxinP ; deg ! [], AxinP ; remB ? [], AxinP ; adeg ! [], rem ! [], true . AxinP_Wnt ::= internal ! [], true ; wrel ! [], AxinP >> . Beta ::= << rel(0.1), deg(5.0), rem(infinite), remB(infinite). beta ! {rel, deg, rem, remB}, BetaA ; asyn ! [], (Beta | Axin) ; bdeg ! [], true . BetaA ::= rel ? [], Beta ; rem ? [], Beta ; deg ? [], true ; bdeg ! [], true >> . Syn ::= bsyn ! [], (Syn | Beta) . Clock ::= phos ? [], Clock ; dephos ? [], Clock ; asyn ? [], Clock ; adeg ? [], Clock ; bsyn ? [], Clock ; bdeg ? [], Clock . %%