type Dir {forward, backward, off}; State {sink, cp_off, source}; Load_13 [0..13]; variable bool S25_powered; Dir L29_dir; bool S24_powered; Dir L28_dir; Load_13 L29_load; bool P2_powered; Dir L30_dir; Load_13 L28_load; Load_13 L30_load; Load_13 L31_load; Dir L31_dir; bool S26_powered; Load_13 L32_load; Dir L32_dir; Dir L27_dir; Load_13 L27_load; bool S27_powered; Dir L33_dir; Load_13 L33_load; bool S28_powered; Dir L34_dir; Load_13 L34_load; bool S29_powered; Load_13 L35_load; Dir L35_dir; bool S30_powered; Load_13 L36_load; Dir L36_dir; bool S31_powered; Load_13 L37_load; Dir L37_dir; Load_13 L38_load; bool S32_powered; Dir L38_dir; bool S23_powered; Load_13 L26_load; Dir L26_dir; bool S22_powered; Dir L25_dir; Load_13 L25_load; bool P1_powered; Load_13 L7_load; Load_13 L1_load; Dir L7_dir; Dir L1_dir; bool S6_powered; bool S1_powered; Load_13 L6_load; Dir L6_dir; Load_13 L2_load; Dir L2_dir; bool S5_powered; bool S2_powered; Load_13 L5_load; Dir L5_dir; Load_13 L3_load; Dir L3_dir; Load_13 L4_load; bool S4_powered; Dir L4_dir; bool S3_powered; rule //Line L28 P2_powered >> ( (L28_dir != forward) ); !P2_powered >> ( ((((L28_dir != off) && ((L31_dir == forward))) >> (L28_dir == backward)) && ((L28_dir == backward) >> ((L28_dir != off) && ((L31_dir == forward))))) && ((((L28_dir != off) && ((L27_dir == forward) || (L29_dir == backward))) >> (L28_dir == forward)) && ((L28_dir == forward) >> ((L28_dir != off) && ((L27_dir == forward) || (L29_dir == backward))))) ); (L28_dir == forward) >> (L28_load == L31_load ); (L28_dir == backward) >> (L28_load == L27_load + L29_load + ((S24_powered >> 1) && (!S24_powered >> 0)) ); (L28_dir == off) >> (L28_load == 0); //Line L31 P2_powered >> ( (L31_dir != forward) ); !P2_powered >> ( ((((L31_dir != off) && ((L28_dir == forward))) >> (L31_dir == backward)) && ((L31_dir == backward) >> ((L31_dir != off) && ((L28_dir == forward))))) && ((((L31_dir != off) && ((L30_dir == forward) || (L32_dir == backward))) >> (L31_dir == forward)) && ((L31_dir == forward) >> ((L31_dir != off) && ((L30_dir == forward) || (L32_dir == backward))))) ); (L31_dir == forward) >> (L31_load == L28_load ); (L31_dir == backward) >> (L31_load == L30_load + L32_load + ((S26_powered >> 1) && (!S26_powered >> 0)) ); (L31_dir == off) >> (L31_load == 0); //Line L35 (((L35_dir != off) && ((L36_dir == backward))) >> (L35_dir == backward)) && ((L35_dir == backward) >> ((L35_dir != off) && ((L36_dir == backward)))); (((L35_dir != off) && ((L34_dir == forward))) >> (L35_dir == forward)) && ((L35_dir == forward) >> ((L35_dir != off) && ((L34_dir == forward)))); (L35_dir == forward) >> (L35_load == L36_load + ((S30_powered >> 1) && (!S30_powered >> 0)) ); (L35_dir == backward) >> (L35_load == L34_load + ((S29_powered >> 1) && (!S29_powered >> 0)) ); (L35_dir == off) >> (L35_load == 0); //Line L2 (((L2_dir != off) && ((L3_dir == backward))) >> (L2_dir == backward)) && ((L2_dir == backward) >> ((L2_dir != off) && ((L3_dir == backward)))); (((L2_dir != off) && ((L1_dir == forward))) >> (L2_dir == forward)) && ((L2_dir == forward) >> ((L2_dir != off) && ((L1_dir == forward)))); (L2_dir == forward) >> (L2_load == L3_load + ((S2_powered >> 1) && (!S2_powered >> 0)) ); (L2_dir == backward) >> (L2_load == L1_load + ((S1_powered >> 1) && (!S1_powered >> 0)) ); (L2_dir == off) >> (L2_load == 0); //Line L7 P1_powered >> ( (L7_dir != backward) ); !P1_powered >> ( ((((L7_dir != off) && ((L6_dir == forward))) >> (L7_dir == backward)) && ((L7_dir == backward) >> ((L7_dir != off) && ((L6_dir == forward))))) && ((((L7_dir != off) && ((L1_dir == backward) || (L25_dir == backward))) >> (L7_dir == forward)) && ((L7_dir == forward) >> ((L7_dir != off) && ((L1_dir == backward) || (L25_dir == backward))))) ); (L7_dir == forward) >> (L7_load == L6_load + ((S6_powered >> 1) && (!S6_powered >> 0)) ); (L7_dir == backward) >> (L7_load == L1_load + L25_load ); (L7_dir == off) >> (L7_load == 0); //Line L30 (((L30_dir != off) && ((L31_dir == backward) || (L32_dir == backward))) >> (L30_dir == backward)) && ((L30_dir == backward) >> ((L30_dir != off) && ((L31_dir == backward) || (L32_dir == backward)))); (((L30_dir != off) && ((L29_dir == forward))) >> (L30_dir == forward)) && ((L30_dir == forward) >> ((L30_dir != off) && ((L29_dir == forward)))); (L30_dir == forward) >> (L30_load == L31_load + L32_load + ((S26_powered >> 1) && (!S26_powered >> 0)) ); (L30_dir == backward) >> (L30_load == L29_load + ((S25_powered >> 1) && (!S25_powered >> 0)) ); (L30_dir == off) >> (L30_load == 0); //Line L34 (((L34_dir != off) && ((L35_dir == backward))) >> (L34_dir == backward)) && ((L34_dir == backward) >> ((L34_dir != off) && ((L35_dir == backward)))); (((L34_dir != off) && ((L33_dir == forward))) >> (L34_dir == forward)) && ((L34_dir == forward) >> ((L34_dir != off) && ((L33_dir == forward)))); (L34_dir == forward) >> (L34_load == L35_load + ((S29_powered >> 1) && (!S29_powered >> 0)) ); (L34_dir == backward) >> (L34_load == L33_load + ((S28_powered >> 1) && (!S28_powered >> 0)) ); (L34_dir == off) >> (L34_load == 0); //Line L3 (((L3_dir != off) && ((L4_dir == backward))) >> (L3_dir == backward)) && ((L3_dir == backward) >> ((L3_dir != off) && ((L4_dir == backward)))); (((L3_dir != off) && ((L2_dir == forward))) >> (L3_dir == forward)) && ((L3_dir == forward) >> ((L3_dir != off) && ((L2_dir == forward)))); (L3_dir == forward) >> (L3_load == L4_load + ((S3_powered >> 1) && (!S3_powered >> 0)) ); (L3_dir == backward) >> (L3_load == L2_load + ((S2_powered >> 1) && (!S2_powered >> 0)) ); (L3_dir == off) >> (L3_load == 0); //Line L29 (((L29_dir != off) && ((L30_dir == backward))) >> (L29_dir == backward)) && ((L29_dir == backward) >> ((L29_dir != off) && ((L30_dir == backward)))); (((L29_dir != off) && ((L27_dir == forward) || (L28_dir == backward))) >> (L29_dir == forward)) && ((L29_dir == forward) >> ((L29_dir != off) && ((L27_dir == forward) || (L28_dir == backward)))); (L29_dir == forward) >> (L29_load == L30_load + ((S25_powered >> 1) && (!S25_powered >> 0)) ); (L29_dir == backward) >> (L29_load == L27_load + L28_load + ((S24_powered >> 1) && (!S24_powered >> 0)) ); (L29_dir == off) >> (L29_load == 0); //Line L6 (((L6_dir != off) && ((L7_dir == forward))) >> (L6_dir == backward)) && ((L6_dir == backward) >> ((L6_dir != off) && ((L7_dir == forward)))); (((L6_dir != off) && ((L5_dir == forward))) >> (L6_dir == forward)) && ((L6_dir == forward) >> ((L6_dir != off) && ((L5_dir == forward)))); (L6_dir == forward) >> (L6_load == L7_load + ((S6_powered >> 1) && (!S6_powered >> 0)) ); (L6_dir == backward) >> (L6_load == L5_load + ((S5_powered >> 1) && (!S5_powered >> 0)) ); (L6_dir == off) >> (L6_load == 0); //Line L4 (((L4_dir != off) && ((L5_dir == backward))) >> (L4_dir == backward)) && ((L4_dir == backward) >> ((L4_dir != off) && ((L5_dir == backward)))); (((L4_dir != off) && ((L3_dir == forward))) >> (L4_dir == forward)) && ((L4_dir == forward) >> ((L4_dir != off) && ((L3_dir == forward)))); (L4_dir == forward) >> (L4_load == L5_load + ((S4_powered >> 1) && (!S4_powered >> 0)) ); (L4_dir == backward) >> (L4_load == L3_load + ((S3_powered >> 1) && (!S3_powered >> 0)) ); (L4_dir == off) >> (L4_load == 0); //Line L38 (((L38_dir != off) && ((L26_dir == forward) || (L27_dir == backward))) >> (L38_dir == backward)) && ((L38_dir == backward) >> ((L38_dir != off) && ((L26_dir == forward) || (L27_dir == backward)))); (((L38_dir != off) && ((L37_dir == forward))) >> (L38_dir == forward)) && ((L38_dir == forward) >> ((L38_dir != off) && ((L37_dir == forward)))); (L38_dir == forward) >> (L38_load == L26_load + L27_load + ((S23_powered >> 1) && (!S23_powered >> 0)) ); (L38_dir == backward) >> (L38_load == L37_load + ((S32_powered >> 1) && (!S32_powered >> 0)) ); (L38_dir == off) >> (L38_load == 0); //Line L25 P1_powered >> ( (L25_dir != backward) ); !P1_powered >> ( ((((L25_dir != off) && ((L26_dir == backward))) >> (L25_dir == backward)) && ((L25_dir == backward) >> ((L25_dir != off) && ((L26_dir == backward))))) && ((((L25_dir != off) && ((L1_dir == backward) || (L7_dir == backward))) >> (L25_dir == forward)) && ((L25_dir == forward) >> ((L25_dir != off) && ((L1_dir == backward) || (L7_dir == backward))))) ); (L25_dir == forward) >> (L25_load == L26_load + ((S22_powered >> 1) && (!S22_powered >> 0)) ); (L25_dir == backward) >> (L25_load == L1_load + L7_load ); (L25_dir == off) >> (L25_load == 0); //Line L37 (((L37_dir != off) && ((L38_dir == backward))) >> (L37_dir == backward)) && ((L37_dir == backward) >> ((L37_dir != off) && ((L38_dir == backward)))); (((L37_dir != off) && ((L36_dir == forward))) >> (L37_dir == forward)) && ((L37_dir == forward) >> ((L37_dir != off) && ((L36_dir == forward)))); (L37_dir == forward) >> (L37_load == L38_load + ((S32_powered >> 1) && (!S32_powered >> 0)) ); (L37_dir == backward) >> (L37_load == L36_load + ((S31_powered >> 1) && (!S31_powered >> 0)) ); (L37_dir == off) >> (L37_load == 0); //Line L5 (((L5_dir != off) && ((L6_dir == backward))) >> (L5_dir == backward)) && ((L5_dir == backward) >> ((L5_dir != off) && ((L6_dir == backward)))); (((L5_dir != off) && ((L4_dir == forward))) >> (L5_dir == forward)) && ((L5_dir == forward) >> ((L5_dir != off) && ((L4_dir == forward)))); (L5_dir == forward) >> (L5_load == L6_load + ((S5_powered >> 1) && (!S5_powered >> 0)) ); (L5_dir == backward) >> (L5_load == L4_load + ((S4_powered >> 1) && (!S4_powered >> 0)) ); (L5_dir == off) >> (L5_load == 0); //Line L33 (((L33_dir != off) && ((L34_dir == backward))) >> (L33_dir == backward)) && ((L33_dir == backward) >> ((L33_dir != off) && ((L34_dir == backward)))); (((L33_dir != off) && ((L32_dir == forward))) >> (L33_dir == forward)) && ((L33_dir == forward) >> ((L33_dir != off) && ((L32_dir == forward)))); (L33_dir == forward) >> (L33_load == L34_load + ((S28_powered >> 1) && (!S28_powered >> 0)) ); (L33_dir == backward) >> (L33_load == L32_load + ((S27_powered >> 1) && (!S27_powered >> 0)) ); (L33_dir == off) >> (L33_load == 0); //Line L26 (((L26_dir != off) && ((L27_dir == backward) || (L38_dir == forward))) >> (L26_dir == backward)) && ((L26_dir == backward) >> ((L26_dir != off) && ((L27_dir == backward) || (L38_dir == forward)))); (((L26_dir != off) && ((L25_dir == forward))) >> (L26_dir == forward)) && ((L26_dir == forward) >> ((L26_dir != off) && ((L25_dir == forward)))); (L26_dir == forward) >> (L26_load == L27_load + L38_load + ((S23_powered >> 1) && (!S23_powered >> 0)) ); (L26_dir == backward) >> (L26_load == L25_load + ((S22_powered >> 1) && (!S22_powered >> 0)) ); (L26_dir == off) >> (L26_load == 0); //Line L1 P1_powered >> ( (L1_dir != backward) ); !P1_powered >> ( ((((L1_dir != off) && ((L2_dir == backward))) >> (L1_dir == backward)) && ((L1_dir == backward) >> ((L1_dir != off) && ((L2_dir == backward))))) && ((((L1_dir != off) && ((L7_dir == backward) || (L25_dir == backward))) >> (L1_dir == forward)) && ((L1_dir == forward) >> ((L1_dir != off) && ((L7_dir == backward) || (L25_dir == backward))))) ); (L1_dir == forward) >> (L1_load == L2_load + ((S1_powered >> 1) && (!S1_powered >> 0)) ); (L1_dir == backward) >> (L1_load == L7_load + L25_load ); (L1_dir == off) >> (L1_load == 0); //Line L27 (((L27_dir != off) && ((L28_dir == backward) || (L29_dir == backward))) >> (L27_dir == backward)) && ((L27_dir == backward) >> ((L27_dir != off) && ((L28_dir == backward) || (L29_dir == backward)))); (((L27_dir != off) && ((L26_dir == forward) || (L38_dir == forward))) >> (L27_dir == forward)) && ((L27_dir == forward) >> ((L27_dir != off) && ((L26_dir == forward) || (L38_dir == forward)))); (L27_dir == forward) >> (L27_load == L28_load + L29_load + ((S24_powered >> 1) && (!S24_powered >> 0)) ); (L27_dir == backward) >> (L27_load == L26_load + L38_load + ((S23_powered >> 1) && (!S23_powered >> 0)) ); (L27_dir == off) >> (L27_load == 0); //Line L32 (((L32_dir != off) && ((L33_dir == backward))) >> (L32_dir == backward)) && ((L32_dir == backward) >> ((L32_dir != off) && ((L33_dir == backward)))); (((L32_dir != off) && ((L30_dir == forward) || (L31_dir == backward))) >> (L32_dir == forward)) && ((L32_dir == forward) >> ((L32_dir != off) && ((L30_dir == forward) || (L31_dir == backward)))); (L32_dir == forward) >> (L32_load == L33_load + ((S27_powered >> 1) && (!S27_powered >> 0)) ); (L32_dir == backward) >> (L32_load == L30_load + L31_load + ((S26_powered >> 1) && (!S26_powered >> 0)) ); (L32_dir == off) >> (L32_load == 0); //Line L36 (((L36_dir != off) && ((L37_dir == backward))) >> (L36_dir == backward)) && ((L36_dir == backward) >> ((L36_dir != off) && ((L37_dir == backward)))); (((L36_dir != off) && ((L35_dir == forward))) >> (L36_dir == forward)) && ((L36_dir == forward) >> ((L36_dir != off) && ((L35_dir == forward)))); (L36_dir == forward) >> (L36_load == L37_load + ((S31_powered >> 1) && (!S31_powered >> 0)) ); (L36_dir == backward) >> (L36_load == L35_load + ((S30_powered >> 1) && (!S30_powered >> 0)) ); (L36_dir == off) >> (L36_load == 0); //Sink S23 S23_powered >> (L26_dir == forward || L27_dir == backward || L38_dir == forward); //Sink S27 S27_powered >> (L32_dir == forward || L33_dir == backward); //Sink S2 S2_powered >> (L2_dir == forward || L3_dir == backward); //Sink S22 S22_powered >> (L25_dir == forward || L26_dir == backward); //Sink S5 S5_powered >> (L5_dir == forward || L6_dir == backward); //Sink S28 S28_powered >> (L33_dir == forward || L34_dir == backward); //Sink S31 S31_powered >> (L36_dir == forward || L37_dir == backward); //Sink S4 S4_powered >> (L4_dir == forward || L5_dir == backward); //Sink S3 S3_powered >> (L3_dir == forward || L4_dir == backward); //Sink S24 S24_powered >> (L27_dir == forward || L28_dir == backward || L29_dir == backward); //Sink S32 S32_powered >> (L37_dir == forward || L38_dir == backward); //Sink S25 S25_powered >> (L29_dir == forward || L30_dir == backward); //Sink S26 S26_powered >> (L30_dir == forward || L31_dir == backward || L32_dir == backward); //Sink S6 S6_powered >> (L6_dir == forward || L7_dir == forward); //Sink S1 S1_powered >> (L1_dir == forward || L2_dir == backward); //Sink S29 S29_powered >> (L34_dir == forward || L35_dir == backward); //Sink S30 S30_powered >> (L35_dir == forward || L36_dir == backward);