// Benchmark for difference of Petri net and DFA // Generated from // Fischer2safe.bpl_AllErrorsAtOnce_Iteration8_AbstractionAfterDifference.ats (2018/07/30 09:54:55) // Fischer2safe.bpl_AllErrorsAtOnce_Iteration9_EagerFloydHoareAutomaton.ats (2018/07/30 09:54:56) PetriNet net = ( alphabet = {"#2#assume true;" "#5#assume lock != 2;" "#6#deadline := clk + delay;" "#7#assume lock == 0;" "#8#lock := 2;" "#9#assume clk <= deadline;" "#10#deadline := clk + wait;" "#11#assume clk >= deadline;" "#12#assume lock == 2;" "#14#assume !(lock != 2);" "#16#assume !(critical == 0);" "#17#assume critical == 0;" "#18#critical := 2;" "#19#critical := 0;" "#20#lock := 0;" "#22#assume !true;" "#23#assume true;" "#26#assume true;" "#27#clk := clk + 1;" "#29#assume !true;" "#30#assume true;" "#38#assume true;" "#41#assume lock != 1;" "#42#deadline := clk + delay;" "#43#assume lock == 0;" "#44#lock := 1;" "#45#assume clk <= deadline;" "#46#deadline := clk + wait;" "#47#assume clk >= deadline;" "#48#assume lock == 1;" "#50#assume !(lock != 1);" "#52#assume !(critical == 0);" "#53#assume critical == 0;" "#54#critical := 1;" "#55#critical := 0;" "#56#lock := 0;" "#58#assume !true;" "#59#assume true;" "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" }, places = {"5#L79true" "6#L80true" "7#L81true" "8#Thread2Err0ASSERT_VIOLATIONASSERTtrue" "9#L82true" "10#L75-2true" "11#Thread2FINALtrue" "12#L85true" "13#L74true" "14#L75true" "15#L86true" "16#L87true" "17#L76true" "18#L77true" "19#Thread2EXITtrue" "20#L78true" "21#~initENTRYtrue" "23#ClockFINALtrue" "24#ClockEXITtrue" "25#L34true" "26#L35true" "27#~initENTRYtrue" "29#L56true" "30#L57true" "31#L58true" "32#L51-2true" "33#L50true" "34#Thread1Err0ASSERT_VIOLATIONASSERTtrue" "35#L61true" "36#L62true" "37#L51true" "38#L52true" "39#Thread1FINALtrue" "40#L63true" "41#L53true" "42#L54true" "43#Thread1EXITtrue" "44#L55true" "45#~initENTRYtrue" "46#true" "48#(= critical 0)" "Black: 48#(= critical 0)" "Black: 46#true" "52#true" "54#(<= lock 1)" "Black: 52#true" "Black: 54#(<= lock 1)" "58#true" "60#(<= 2 lock)" "Black: 58#true" "Black: 60#(<= 2 lock)" "64#true" "66#(<= lock 0)" "Black: 64#true" "Black: 66#(<= lock 0)" "70#true" "72#(<= 1 lock)" "Black: 70#true" "Black: 72#(<= 1 lock)" "76#true" "78#(<= 1 wait)" "81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 78#(<= 1 wait)" "85#true" "87#(<= 1 wait)" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "Black: 87#(<= 1 wait)" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "94#true" "96#(<= (+ delay 1) wait)" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" }, transitions = { ({"17#L76true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" } "#6#deadline := clk + delay;" {"96#(<= (+ delay 1) wait)" "18#L77true" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" }) ({"18#L77true" "Black: 64#true" "Black: 52#true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" } "#7#assume lock == 0;" {"20#L78true" "Black: 64#true" "Black: 52#true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" }) ({"Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "85#true" "21#~initENTRYtrue" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "85#true" "21#~initENTRYtrue" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"96#(<= (+ delay 1) wait)" "81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "87#(<= 1 wait)" "27#~initENTRYtrue" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "87#(<= 1 wait)" "27#~initENTRYtrue" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"16#L87true" "52#true" "Black: 64#true" "Black: 54#(<= lock 1)" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" } "#20#lock := 0;" {"Black: 64#true" "54#(<= lock 1)" "Black: 52#true" "Black: 72#(<= 1 lock)" "13#L74true" "Black: 60#(<= 2 lock)" }) ({"20#L78true" "Black: 66#(<= lock 0)" "70#true" "54#(<= lock 1)" "Black: 52#true" "58#true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" } "#8#lock := 2;" {"52#true" "5#L79true" "Black: 66#(<= lock 0)" "72#(<= 1 lock)" "Black: 54#(<= lock 1)" "Black: 70#true" "60#(<= 2 lock)" "Black: 58#true" }) ({"6#L80true" "87#(<= 1 wait)" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" } "#10#deadline := clk + wait;" {"96#(<= (+ delay 1) wait)" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "7#L81true" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "Black: 87#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "87#(<= 1 wait)" "105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "27#~initENTRYtrue" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 64#true" "40#L63true" "Black: 52#true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" } "#56#lock := 0;" {"33#L50true" "Black: 64#true" "Black: 52#true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" }) ({"52#true" "Black: 66#(<= lock 0)" "70#true" "Black: 54#(<= lock 1)" "42#L54true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" } "#44#lock := 1;" {"Black: 66#(<= lock 0)" "54#(<= lock 1)" "72#(<= 1 lock)" "Black: 52#true" "Black: 70#true" "44#L55true" "Black: 60#(<= 2 lock)" }) ({"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "26#L35true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" } "#27#clk := clk + 1;" {"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" }) ({"96#(<= (+ delay 1) wait)" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "85#true" "21#~initENTRYtrue" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "85#true" "21#~initENTRYtrue" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "85#true" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 46#true" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"66#(<= lock 0)" "Black: 64#true" "52#true" "Black: 54#(<= lock 1)" "42#L54true" "Black: 70#true" "60#(<= 2 lock)" "Black: 58#true" } "#44#lock := 1;" {"64#true" "Black: 66#(<= lock 0)" "54#(<= lock 1)" "Black: 52#true" "58#true" "Black: 70#true" "44#L55true" "Black: 60#(<= 2 lock)" }) ({"Black: 48#(= critical 0)" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "78#(<= 1 wait)" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 46#true" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 46#true" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"16#L87true" "52#true" "Black: 64#true" "72#(<= 1 lock)" "Black: 54#(<= lock 1)" "Black: 70#true" "60#(<= 2 lock)" "Black: 58#true" } "#20#lock := 0;" {"Black: 64#true" "70#true" "54#(<= lock 1)" "Black: 52#true" "58#true" "Black: 72#(<= 1 lock)" "13#L74true" "Black: 60#(<= 2 lock)" }) ({"Black: 46#true" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "87#(<= 1 wait)" "27#~initENTRYtrue" "45#~initENTRYtrue" "78#(<= 1 wait)" "111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 46#true" "87#(<= 1 wait)" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 64#true" "72#(<= 1 lock)" "40#L63true" "Black: 52#true" "Black: 70#true" "60#(<= 2 lock)" "Black: 58#true" } "#56#lock := 0;" {"33#L50true" "Black: 64#true" "70#true" "Black: 52#true" "58#true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" }) ({"23#ClockFINALtrue" } "#30#assume true;" {"24#ClockEXITtrue" }) ({"18#L77true" "52#true" "Black: 64#true" "Black: 54#(<= lock 1)" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" } "#7#assume lock == 0;" {"20#L78true" "Black: 64#true" "54#(<= lock 1)" "Black: 52#true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" }) ({"Black: 48#(= critical 0)" "21#~initENTRYtrue" "87#(<= 1 wait)" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "27#~initENTRYtrue" "45#~initENTRYtrue" "78#(<= 1 wait)" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 64#true" "Black: 52#true" "41#L53true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" } "#43#assume lock == 0;" {"Black: 64#true" "Black: 52#true" "42#L54true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" }) ({"5#L79true" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" } "#9#assume clk <= deadline;" {"6#L80true" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 46#true" "85#true" "21#~initENTRYtrue" "103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "78#(<= 1 wait)" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 46#true" "Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 46#true" "85#true" "21#~initENTRYtrue" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "94#true" "78#(<= 1 wait)" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 78#(<= 1 wait)" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "38#L52true" } "#42#deadline := clk + delay;" {"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "41#L53true" "78#(<= 1 wait)" }) ({"52#true" "Black: 64#true" "40#L63true" "Black: 54#(<= lock 1)" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" } "#56#lock := 0;" {"33#L50true" "Black: 64#true" "54#(<= lock 1)" "Black: 52#true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" }) ({"Black: 66#(<= lock 0)" "Black: 54#(<= lock 1)" "58#true" "Black: 70#true" "14#L75true" "Black: 60#(<= 2 lock)" } "#14#assume !(lock != 2);" {"Black: 66#(<= lock 0)" "Black: 54#(<= lock 1)" "10#L75-2true" "Black: 70#true" "60#(<= 2 lock)" "Black: 58#true" }) ({"Black: 46#true" "85#true" "21#~initENTRYtrue" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "45#~initENTRYtrue" "78#(<= 1 wait)" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"25#L34true" } "#26#assume true;" {"26#L35true" }) ({"Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 46#true" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"96#(<= (+ delay 1) wait)" "Black: 46#true" "85#true" "21#~initENTRYtrue" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "78#(<= 1 wait)" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 66#(<= lock 0)" "Black: 52#true" "42#L54true" "Black: 70#true" "Black: 60#(<= 2 lock)" } "#44#lock := 1;" {"Black: 66#(<= lock 0)" "Black: 52#true" "Black: 70#true" "44#L55true" "Black: 60#(<= 2 lock)" }) ({"Black: 78#(<= 1 wait)" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "29#L56true" } "#46#deadline := clk + wait;" {"96#(<= (+ delay 1) wait)" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 78#(<= 1 wait)" "30#L57true" }) ({"Black: 46#true" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "87#(<= 1 wait)" "27#~initENTRYtrue" "76#true" "45#~initENTRYtrue" "111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 46#true" "87#(<= 1 wait)" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 46#true" "85#true" "21#~initENTRYtrue" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "78#(<= 1 wait)" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 48#(= critical 0)" "85#true" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "78#(<= 1 wait)" "46#true" "111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"17#L76true" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" } "#6#deadline := clk + delay;" {"18#L77true" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" }) ({"52#true" "Black: 64#true" "72#(<= 1 lock)" "40#L63true" "Black: 54#(<= lock 1)" "Black: 70#true" "60#(<= 2 lock)" "Black: 58#true" } "#56#lock := 0;" {"33#L50true" "Black: 64#true" "70#true" "54#(<= lock 1)" "Black: 52#true" "58#true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "87#(<= 1 wait)" "27#~initENTRYtrue" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "87#(<= 1 wait)" "27#~initENTRYtrue" "45#~initENTRYtrue" "94#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"66#(<= lock 0)" "Black: 64#true" "20#L78true" "70#true" "Black: 54#(<= lock 1)" "Black: 72#(<= 1 lock)" "Black: 58#true" } "#8#lock := 2;" {"64#true" "Black: 66#(<= lock 0)" "5#L79true" "72#(<= 1 lock)" "Black: 54#(<= lock 1)" "Black: 70#true" "Black: 58#true" }) ({"Black: 46#true" "85#true" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "78#(<= 1 wait)" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 46#true" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"20#L78true" "Black: 66#(<= lock 0)" "Black: 54#(<= lock 1)" "58#true" "Black: 70#true" "Black: 60#(<= 2 lock)" } "#8#lock := 2;" {"5#L79true" "Black: 66#(<= lock 0)" "Black: 54#(<= lock 1)" "Black: 70#true" "60#(<= 2 lock)" "Black: 58#true" }) ({"Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "87#(<= 1 wait)" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "27#~initENTRYtrue" "76#true" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 78#(<= 1 wait)" "26#L35true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" } "#27#clk := clk + 1;" {"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "78#(<= 1 wait)" }) ({"52#true" "Black: 64#true" "Black: 54#(<= lock 1)" "41#L53true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" } "#43#assume lock == 0;" {"Black: 64#true" "54#(<= lock 1)" "Black: 52#true" "42#L54true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "87#(<= 1 wait)" "27#~initENTRYtrue" "109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 46#true" "Black: 78#(<= 1 wait)" "85#true" "21#~initENTRYtrue" "103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 46#true" "Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 46#true" "Black: 78#(<= 1 wait)" "85#true" "21#~initENTRYtrue" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "45#~initENTRYtrue" "94#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "6#L80true" "87#(<= 1 wait)" "109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" } "#10#deadline := clk + wait;" {"7#L81true" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "Black: 87#(<= 1 wait)" }) ({"Black: 46#true" "Black: 78#(<= 1 wait)" "85#true" "21#~initENTRYtrue" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 78#(<= 1 wait)" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "85#true" "21#~initENTRYtrue" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"96#(<= (+ delay 1) wait)" "81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "87#(<= 1 wait)" "27#~initENTRYtrue" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "7#L81true" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" } "#11#assume clk >= deadline;" {"Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "9#L82true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" }) ({"113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "87#(<= 1 wait)" "27#~initENTRYtrue" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "87#(<= 1 wait)" "27#~initENTRYtrue" "45#~initENTRYtrue" "46#true" "111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "29#L56true" "78#(<= 1 wait)" } "#46#deadline := clk + wait;" {"96#(<= (+ delay 1) wait)" "81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 78#(<= 1 wait)" "30#L57true" }) ({"Black: 78#(<= 1 wait)" "103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "29#L56true" } "#46#deadline := clk + wait;" {"96#(<= (+ delay 1) wait)" "Black: 78#(<= 1 wait)" "Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "30#L57true" }) ({"16#L87true" "Black: 64#true" "Black: 52#true" "Black: 72#(<= 1 lock)" "60#(<= 2 lock)" "Black: 58#true" } "#20#lock := 0;" {"Black: 64#true" "Black: 52#true" "58#true" "Black: 72#(<= 1 lock)" "13#L74true" "Black: 60#(<= 2 lock)" }) ({"66#(<= lock 0)" "Black: 64#true" "20#L78true" "70#true" "54#(<= lock 1)" "Black: 52#true" "Black: 72#(<= 1 lock)" "Black: 58#true" } "#8#lock := 2;" {"64#true" "52#true" "Black: 66#(<= lock 0)" "5#L79true" "72#(<= 1 lock)" "Black: 54#(<= lock 1)" "Black: 70#true" "Black: 58#true" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "87#(<= 1 wait)" "105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "27#~initENTRYtrue" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"20#L78true" "Black: 66#(<= lock 0)" "54#(<= lock 1)" "Black: 52#true" "58#true" "Black: 70#true" "Black: 60#(<= 2 lock)" } "#8#lock := 2;" {"52#true" "5#L79true" "Black: 66#(<= lock 0)" "Black: 54#(<= lock 1)" "Black: 70#true" "60#(<= 2 lock)" "Black: 58#true" }) ({"Black: 66#(<= lock 0)" "70#true" "Black: 52#true" "42#L54true" "Black: 72#(<= 1 lock)" "60#(<= 2 lock)" "Black: 58#true" } "#44#lock := 1;" {"Black: 66#(<= lock 0)" "72#(<= 1 lock)" "Black: 52#true" "Black: 70#true" "58#true" "44#L55true" "Black: 60#(<= 2 lock)" }) ({"96#(<= (+ delay 1) wait)" "Black: 46#true" "Black: 78#(<= 1 wait)" "85#true" "21#~initENTRYtrue" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 46#true" "Black: 78#(<= 1 wait)" "85#true" "21#~initENTRYtrue" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"52#true" "Black: 66#(<= lock 0)" "Black: 54#(<= lock 1)" "42#L54true" "Black: 70#true" "Black: 60#(<= 2 lock)" } "#44#lock := 1;" {"Black: 66#(<= lock 0)" "54#(<= lock 1)" "Black: 52#true" "Black: 70#true" "44#L55true" "Black: 60#(<= 2 lock)" }) ({"Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "85#true" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "45#~initENTRYtrue" "46#true" "111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "85#true" "21#~initENTRYtrue" "103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "85#true" "21#~initENTRYtrue" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "94#true" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"64#true" "16#L87true" "Black: 66#(<= lock 0)" "72#(<= 1 lock)" "Black: 52#true" "Black: 70#true" "Black: 60#(<= 2 lock)" } "#20#lock := 0;" {"66#(<= lock 0)" "Black: 64#true" "70#true" "Black: 52#true" "Black: 72#(<= 1 lock)" "13#L74true" "Black: 60#(<= 2 lock)" }) ({"Black: 46#true" "Black: 78#(<= 1 wait)" "85#true" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 46#true" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 46#true" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "78#(<= 1 wait)" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 46#true" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "85#true" "21#~initENTRYtrue" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"17#L76true" "Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" } "#6#deadline := clk + delay;" {"113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "18#L77true" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" }) ({"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "29#L56true" "78#(<= 1 wait)" } "#46#deadline := clk + wait;" {"96#(<= (+ delay 1) wait)" "81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 78#(<= 1 wait)" "Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "30#L57true" }) ({"Black: 78#(<= 1 wait)" "105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "29#L56true" } "#46#deadline := clk + wait;" {"96#(<= (+ delay 1) wait)" "Black: 78#(<= 1 wait)" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "30#L57true" }) ({"113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "5#L79true" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" } "#9#assume clk <= deadline;" {"Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "6#L80true" "111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" }) ({"Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "44#L55true" } "#45#assume clk <= deadline;" {"Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "29#L56true" }) ({"96#(<= (+ delay 1) wait)" "81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "85#true" "21#~initENTRYtrue" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 46#true" "21#~initENTRYtrue" "87#(<= 1 wait)" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "27#~initENTRYtrue" "45#~initENTRYtrue" "78#(<= 1 wait)" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "85#true" "21#~initENTRYtrue" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 48#(= critical 0)" "21#~initENTRYtrue" "103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "78#(<= 1 wait)" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 46#true" "Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 48#(= critical 0)" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "94#true" "78#(<= 1 wait)" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "6#L80true" "87#(<= 1 wait)" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" } "#10#deadline := clk + wait;" {"113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "7#L81true" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "Black: 87#(<= 1 wait)" }) ({"Black: 48#(= critical 0)" "10#L75-2true" "46#true" } "#17#assume critical == 0;" {"48#(= critical 0)" "Black: 46#true" "12#L85true" }) ({"16#L87true" "52#true" "Black: 64#true" "Black: 54#(<= lock 1)" "Black: 72#(<= 1 lock)" "60#(<= 2 lock)" "Black: 58#true" } "#20#lock := 0;" {"Black: 64#true" "54#(<= lock 1)" "Black: 52#true" "58#true" "Black: 72#(<= 1 lock)" "13#L74true" "Black: 60#(<= 2 lock)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "85#true" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 64#true" "40#L63true" "Black: 52#true" "Black: 72#(<= 1 lock)" "60#(<= 2 lock)" "Black: 58#true" } "#56#lock := 0;" {"33#L50true" "Black: 64#true" "Black: 52#true" "58#true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" }) ({"52#true" "Black: 66#(<= lock 0)" "70#true" "Black: 54#(<= lock 1)" "42#L54true" "Black: 72#(<= 1 lock)" "60#(<= 2 lock)" "Black: 58#true" } "#44#lock := 1;" {"Black: 66#(<= lock 0)" "54#(<= lock 1)" "72#(<= 1 lock)" "Black: 52#true" "Black: 70#true" "58#true" "44#L55true" "Black: 60#(<= 2 lock)" }) ({"Black: 48#(= critical 0)" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "45#~initENTRYtrue" "78#(<= 1 wait)" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"64#true" "16#L87true" "52#true" "Black: 66#(<= lock 0)" "72#(<= 1 lock)" "Black: 54#(<= lock 1)" "Black: 70#true" "Black: 60#(<= 2 lock)" } "#20#lock := 0;" {"66#(<= lock 0)" "Black: 64#true" "70#true" "54#(<= lock 1)" "Black: 52#true" "Black: 72#(<= 1 lock)" "13#L74true" "Black: 60#(<= 2 lock)" }) ({"17#L76true" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "Black: 87#(<= 1 wait)" } "#6#deadline := clk + delay;" {"18#L77true" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" }) ({"64#true" "Black: 66#(<= lock 0)" "72#(<= 1 lock)" "40#L63true" "Black: 52#true" "Black: 70#true" "Black: 60#(<= 2 lock)" } "#56#lock := 0;" {"33#L50true" "66#(<= lock 0)" "Black: 64#true" "70#true" "Black: 52#true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" }) ({"17#L76true" "Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "Black: 87#(<= 1 wait)" } "#6#deadline := clk + delay;" {"18#L77true" "Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" }) ({"Black: 46#true" "Black: 78#(<= 1 wait)" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 46#true" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "29#L56true" "78#(<= 1 wait)" } "#46#deadline := clk + wait;" {"96#(<= (+ delay 1) wait)" "81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 78#(<= 1 wait)" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "30#L57true" }) ({"96#(<= (+ delay 1) wait)" "Black: 48#(= critical 0)" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "78#(<= 1 wait)" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 78#(<= 1 wait)" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "29#L56true" } "#46#deadline := clk + wait;" {"96#(<= (+ delay 1) wait)" "Black: 78#(<= 1 wait)" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "30#L57true" }) ({"113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 48#(= critical 0)" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "78#(<= 1 wait)" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 46#true" "85#true" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "78#(<= 1 wait)" "111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 46#true" "87#(<= 1 wait)" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 48#(= critical 0)" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "78#(<= 1 wait)" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 46#true" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 78#(<= 1 wait)" "29#L56true" "94#true" } "#46#deadline := clk + wait;" {"Black: 78#(<= 1 wait)" "94#true" "30#L57true" }) ({"Black: 46#true" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "87#(<= 1 wait)" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "27#~initENTRYtrue" "76#true" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"66#(<= lock 0)" "Black: 64#true" "20#L78true" "Black: 54#(<= lock 1)" "Black: 70#true" "Black: 58#true" } "#8#lock := 2;" {"64#true" "Black: 66#(<= lock 0)" "5#L79true" "Black: 54#(<= lock 1)" "Black: 70#true" "Black: 58#true" }) ({"Black: 48#(= critical 0)" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "21#~initENTRYtrue" "87#(<= 1 wait)" "27#~initENTRYtrue" "45#~initENTRYtrue" "78#(<= 1 wait)" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 46#true" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 46#true" "Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "45#~initENTRYtrue" "94#true" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 48#(= critical 0)" "85#true" "21#~initENTRYtrue" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "78#(<= 1 wait)" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"32#L51-2true" "Black: 48#(= critical 0)" "46#true" } "#53#assume critical == 0;" {"48#(= critical 0)" "Black: 46#true" "35#L61true" }) ({"52#true" "Black: 64#true" "40#L63true" "Black: 54#(<= lock 1)" "Black: 72#(<= 1 lock)" "60#(<= 2 lock)" "Black: 58#true" } "#56#lock := 0;" {"33#L50true" "Black: 64#true" "54#(<= lock 1)" "Black: 52#true" "58#true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" }) ({"Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 48#(= critical 0)" "10#L75-2true" } "#16#assume !(critical == 0);" {"Black: 48#(= critical 0)" "8#Thread2Err0ASSERT_VIOLATIONASSERTtrue" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "29#L56true" "78#(<= 1 wait)" } "#46#deadline := clk + wait;" {"96#(<= (+ delay 1) wait)" "81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 78#(<= 1 wait)" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "30#L57true" }) ({"Black: 78#(<= 1 wait)" "109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "29#L56true" } "#46#deadline := clk + wait;" {"96#(<= (+ delay 1) wait)" "Black: 78#(<= 1 wait)" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "30#L57true" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "87#(<= 1 wait)" "27#~initENTRYtrue" "45#~initENTRYtrue" "111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"64#true" "52#true" "Black: 66#(<= lock 0)" "72#(<= 1 lock)" "40#L63true" "Black: 54#(<= lock 1)" "Black: 70#true" "Black: 60#(<= 2 lock)" } "#56#lock := 0;" {"33#L50true" "66#(<= lock 0)" "Black: 64#true" "70#true" "54#(<= lock 1)" "Black: 52#true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" }) ({"101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "6#L80true" "Black: 87#(<= 1 wait)" } "#10#deadline := clk + wait;" {"Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "7#L81true" "Black: 87#(<= 1 wait)" }) ({"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "29#L56true" "94#true" "78#(<= 1 wait)" } "#46#deadline := clk + wait;" {"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 78#(<= 1 wait)" "94#true" "30#L57true" }) ({"96#(<= (+ delay 1) wait)" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"66#(<= lock 0)" "Black: 64#true" "20#L78true" "54#(<= lock 1)" "Black: 52#true" "Black: 70#true" "Black: 58#true" } "#8#lock := 2;" {"64#true" "52#true" "Black: 66#(<= lock 0)" "5#L79true" "Black: 54#(<= lock 1)" "Black: 70#true" "Black: 58#true" }) ({"Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "5#L79true" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" } "#9#assume clk <= deadline;" {"Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "6#L80true" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" }) ({"48#(= critical 0)" "Black: 46#true" "12#L85true" } "#18#critical := 2;" {"Black: 48#(= critical 0)" "46#true" "15#L86true" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "87#(<= 1 wait)" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "27#~initENTRYtrue" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 46#true" "Black: 78#(<= 1 wait)" "85#true" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "45#~initENTRYtrue" "111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 46#true" "87#(<= 1 wait)" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"96#(<= (+ delay 1) wait)" "Black: 78#(<= 1 wait)" "29#L56true" } "#46#deadline := clk + wait;" {"96#(<= (+ delay 1) wait)" "Black: 78#(<= 1 wait)" "30#L57true" }) ({"Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 46#true" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 78#(<= 1 wait)" "85#true" "21#~initENTRYtrue" "103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 78#(<= 1 wait)" "85#true" "21#~initENTRYtrue" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "94#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 78#(<= 1 wait)" "29#L56true" } "#46#deadline := clk + wait;" {"96#(<= (+ delay 1) wait)" "Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 78#(<= 1 wait)" "30#L57true" }) ({"17#L76true" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 87#(<= 1 wait)" } "#6#deadline := clk + delay;" {"96#(<= (+ delay 1) wait)" "18#L77true" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "87#(<= 1 wait)" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" }) ({"Black: 66#(<= lock 0)" "Black: 52#true" "42#L54true" "Black: 70#true" "60#(<= 2 lock)" "Black: 58#true" } "#44#lock := 1;" {"Black: 66#(<= lock 0)" "Black: 52#true" "58#true" "Black: 70#true" "44#L55true" "Black: 60#(<= 2 lock)" }) ({"Black: 66#(<= lock 0)" "70#true" "9#L82true" "Black: 54#(<= lock 1)" "Black: 72#(<= 1 lock)" "Black: 58#true" } "#12#assume lock == 2;" {"Black: 66#(<= lock 0)" "72#(<= 1 lock)" "Black: 54#(<= lock 1)" "Black: 70#true" "10#L75-2true" "Black: 58#true" }) ({"Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "21#~initENTRYtrue" "87#(<= 1 wait)" "27#~initENTRYtrue" "76#true" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 46#true" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "85#true" "21#~initENTRYtrue" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 78#(<= 1 wait)" "85#true" "21#~initENTRYtrue" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"66#(<= lock 0)" "Black: 64#true" "70#true" "Black: 52#true" "42#L54true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" } "#44#lock := 1;" {"64#true" "Black: 66#(<= lock 0)" "72#(<= 1 lock)" "Black: 52#true" "Black: 70#true" "44#L55true" "Black: 60#(<= 2 lock)" }) ({"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "29#L56true" "78#(<= 1 wait)" } "#46#deadline := clk + wait;" {"96#(<= (+ delay 1) wait)" "81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 78#(<= 1 wait)" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "30#L57true" }) ({"Black: 78#(<= 1 wait)" "29#L56true" "111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" } "#46#deadline := clk + wait;" {"96#(<= (+ delay 1) wait)" "Black: 78#(<= 1 wait)" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "30#L57true" }) ({"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "26#L35true" "Black: 87#(<= 1 wait)" } "#27#clk := clk + 1;" {"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "87#(<= 1 wait)" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" }) ({"64#true" "16#L87true" "Black: 66#(<= lock 0)" "Black: 52#true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" } "#20#lock := 0;" {"66#(<= lock 0)" "Black: 64#true" "Black: 52#true" "Black: 72#(<= 1 lock)" "13#L74true" "Black: 60#(<= 2 lock)" }) ({"66#(<= lock 0)" "Black: 64#true" "20#L78true" "70#true" "Black: 54#(<= lock 1)" "58#true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" } "#8#lock := 2;" {"64#true" "Black: 66#(<= lock 0)" "5#L79true" "72#(<= 1 lock)" "Black: 54#(<= lock 1)" "Black: 70#true" "60#(<= 2 lock)" "Black: 58#true" }) ({"Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "6#L80true" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 87#(<= 1 wait)" } "#10#deadline := clk + wait;" {"Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "7#L81true" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 87#(<= 1 wait)" }) ({"96#(<= (+ delay 1) wait)" "81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 78#(<= 1 wait)" "85#true" "21#~initENTRYtrue" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 48#(= critical 0)" "46#true" "15#L86true" } "#19#critical := 0;" {"48#(= critical 0)" "16#L87true" "Black: 46#true" }) ({"113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 78#(<= 1 wait)" "85#true" "21#~initENTRYtrue" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 46#true" "21#~initENTRYtrue" "103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "78#(<= 1 wait)" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 46#true" "Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 46#true" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "94#true" "78#(<= 1 wait)" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "85#true" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "46#true" "111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 46#true" "10#L75-2true" } "#17#assume critical == 0;" {"Black: 46#true" "12#L85true" }) ({"96#(<= (+ delay 1) wait)" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "29#L56true" "78#(<= 1 wait)" } "#46#deadline := clk + wait;" {"96#(<= (+ delay 1) wait)" "81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 78#(<= 1 wait)" "30#L57true" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 78#(<= 1 wait)" "85#true" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "29#L56true" "78#(<= 1 wait)" } "#46#deadline := clk + wait;" {"96#(<= (+ delay 1) wait)" "81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 78#(<= 1 wait)" "30#L57true" }) ({"48#(= critical 0)" "Black: 46#true" "35#L61true" } "#54#critical := 1;" {"Black: 48#(= critical 0)" "36#L62true" "46#true" }) ({"Black: 46#true" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "45#~initENTRYtrue" "78#(<= 1 wait)" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 66#(<= lock 0)" "70#true" "Black: 52#true" "Black: 72#(<= 1 lock)" "31#L58true" "Black: 60#(<= 2 lock)" } "#48#assume lock == 1;" {"32#L51-2true" "Black: 66#(<= lock 0)" "72#(<= 1 lock)" "Black: 52#true" "Black: 70#true" "Black: 60#(<= 2 lock)" }) ({"13#L74true" } "#2#assume true;" {"14#L75true" }) ({"32#L51-2true" "Black: 48#(= critical 0)" } "#52#assume !(critical == 0);" {"34#Thread1Err0ASSERT_VIOLATIONASSERTtrue" "Black: 48#(= critical 0)" }) ({"52#true" "Black: 66#(<= lock 0)" "Black: 54#(<= lock 1)" "42#L54true" "Black: 70#true" "60#(<= 2 lock)" "Black: 58#true" } "#44#lock := 1;" {"Black: 66#(<= lock 0)" "54#(<= lock 1)" "Black: 52#true" "58#true" "Black: 70#true" "44#L55true" "Black: 60#(<= 2 lock)" }) ({"64#true" "16#L87true" "Black: 66#(<= lock 0)" "72#(<= 1 lock)" "Black: 52#true" "Black: 70#true" "60#(<= 2 lock)" "Black: 58#true" } "#20#lock := 0;" {"66#(<= lock 0)" "Black: 64#true" "70#true" "Black: 52#true" "58#true" "Black: 72#(<= 1 lock)" "13#L74true" "Black: 60#(<= 2 lock)" }) ({"66#(<= lock 0)" "Black: 64#true" "20#L78true" "70#true" "54#(<= lock 1)" "Black: 52#true" "58#true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" } "#8#lock := 2;" {"64#true" "52#true" "Black: 66#(<= lock 0)" "5#L79true" "72#(<= 1 lock)" "Black: 54#(<= lock 1)" "Black: 70#true" "60#(<= 2 lock)" "Black: 58#true" }) ({"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "29#L56true" "78#(<= 1 wait)" "111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" } "#46#deadline := clk + wait;" {"96#(<= (+ delay 1) wait)" "81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 78#(<= 1 wait)" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "30#L57true" }) ({"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "38#L52true" "103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" } "#42#deadline := clk + delay;" {"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "41#L53true" }) ({"96#(<= (+ delay 1) wait)" "Black: 46#true" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "78#(<= 1 wait)" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"66#(<= lock 0)" "Black: 64#true" "52#true" "70#true" "Black: 54#(<= lock 1)" "42#L54true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" } "#44#lock := 1;" {"64#true" "Black: 66#(<= lock 0)" "54#(<= lock 1)" "72#(<= 1 lock)" "Black: 52#true" "Black: 70#true" "44#L55true" "Black: 60#(<= 2 lock)" }) ({"6#L80true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 87#(<= 1 wait)" } "#10#deadline := clk + wait;" {"96#(<= (+ delay 1) wait)" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "7#L81true" "Black: 87#(<= 1 wait)" }) ({"64#true" "18#L77true" "Black: 66#(<= lock 0)" "Black: 52#true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" } "#7#assume lock == 0;" {"66#(<= lock 0)" "Black: 64#true" "20#L78true" "Black: 52#true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" }) ({"113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 46#true" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "78#(<= 1 wait)" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 48#(= critical 0)" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "78#(<= 1 wait)" "46#true" "111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"33#L50true" } "#38#assume true;" {"37#L51true" }) ({"Black: 48#(= critical 0)" "12#L85true" } "#18#critical := 2;" {"Black: 48#(= critical 0)" "15#L86true" }) ({"Black: 46#true" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "78#(<= 1 wait)" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 46#true" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"64#true" "16#L87true" "52#true" "Black: 66#(<= lock 0)" "Black: 54#(<= lock 1)" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" } "#20#lock := 0;" {"66#(<= lock 0)" "Black: 64#true" "54#(<= lock 1)" "Black: 52#true" "Black: 72#(<= 1 lock)" "13#L74true" "Black: 60#(<= 2 lock)" }) ({"Black: 48#(= critical 0)" "36#L62true" "46#true" } "#55#critical := 0;" {"48#(= critical 0)" "Black: 46#true" "40#L63true" }) ({"64#true" "Black: 66#(<= lock 0)" "40#L63true" "Black: 52#true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" } "#56#lock := 0;" {"33#L50true" "66#(<= lock 0)" "Black: 64#true" "Black: 52#true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" }) ({"Black: 46#true" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "21#~initENTRYtrue" "87#(<= 1 wait)" "27#~initENTRYtrue" "45#~initENTRYtrue" "78#(<= 1 wait)" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 46#true" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 46#true" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 46#true" "Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 46#true" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "45#~initENTRYtrue" "94#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 46#true" "85#true" "21#~initENTRYtrue" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "78#(<= 1 wait)" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"32#L51-2true" "Black: 46#true" } "#53#assume critical == 0;" {"35#L61true" "Black: 46#true" }) ({"Black: 66#(<= lock 0)" "70#true" "Black: 54#(<= lock 1)" "Black: 72#(<= 1 lock)" "14#L75true" "Black: 58#true" } "#14#assume !(lock != 2);" {"Black: 66#(<= lock 0)" "72#(<= 1 lock)" "Black: 54#(<= lock 1)" "Black: 70#true" "10#L75-2true" "Black: 58#true" }) ({"Black: 46#true" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"52#true" "Black: 66#(<= lock 0)" "70#true" "Black: 54#(<= lock 1)" "Black: 72#(<= 1 lock)" "31#L58true" "Black: 60#(<= 2 lock)" } "#48#assume lock == 1;" {"32#L51-2true" "Black: 66#(<= lock 0)" "54#(<= lock 1)" "72#(<= 1 lock)" "Black: 52#true" "Black: 70#true" "Black: 60#(<= 2 lock)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 78#(<= 1 wait)" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"17#L76true" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "Black: 87#(<= 1 wait)" } "#6#deadline := clk + delay;" {"18#L77true" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" }) ({"14#L75true" } "#5#assume lock != 2;" {"17#L76true" }) ({"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "38#L52true" "105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" } "#42#deadline := clk + delay;" {"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "41#L53true" }) ({"Black: 48#(= critical 0)" "21#~initENTRYtrue" "103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "87#(<= 1 wait)" "27#~initENTRYtrue" "45#~initENTRYtrue" "78#(<= 1 wait)" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 46#true" "Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 48#(= critical 0)" "21#~initENTRYtrue" "87#(<= 1 wait)" "27#~initENTRYtrue" "45#~initENTRYtrue" "94#true" "78#(<= 1 wait)" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"64#true" "16#L87true" "52#true" "Black: 66#(<= lock 0)" "72#(<= 1 lock)" "Black: 54#(<= lock 1)" "Black: 70#true" "60#(<= 2 lock)" "Black: 58#true" } "#20#lock := 0;" {"66#(<= lock 0)" "Black: 64#true" "70#true" "54#(<= lock 1)" "Black: 52#true" "58#true" "Black: 72#(<= 1 lock)" "13#L74true" "Black: 60#(<= 2 lock)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 78#(<= 1 wait)" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "26#L35true" "Black: 87#(<= 1 wait)" } "#27#clk := clk + 1;" {"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "87#(<= 1 wait)" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "78#(<= 1 wait)" }) ({"64#true" "Black: 66#(<= lock 0)" "72#(<= 1 lock)" "40#L63true" "Black: 52#true" "Black: 70#true" "60#(<= 2 lock)" "Black: 58#true" } "#56#lock := 0;" {"33#L50true" "66#(<= lock 0)" "Black: 64#true" "70#true" "Black: 52#true" "58#true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" }) ({"96#(<= (+ delay 1) wait)" "Black: 46#true" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 46#true" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 48#(= critical 0)" "21#~initENTRYtrue" "87#(<= 1 wait)" "27#~initENTRYtrue" "109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "45#~initENTRYtrue" "78#(<= 1 wait)" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"64#true" "18#L77true" "52#true" "Black: 66#(<= lock 0)" "Black: 54#(<= lock 1)" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" } "#7#assume lock == 0;" {"66#(<= lock 0)" "Black: 64#true" "20#L78true" "54#(<= lock 1)" "Black: 52#true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" }) ({"Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "45#~initENTRYtrue" "46#true" "111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"20#L78true" "Black: 66#(<= lock 0)" "70#true" "Black: 54#(<= lock 1)" "Black: 72#(<= 1 lock)" "Black: 58#true" } "#8#lock := 2;" {"5#L79true" "Black: 66#(<= lock 0)" "72#(<= 1 lock)" "Black: 54#(<= lock 1)" "Black: 70#true" "Black: 58#true" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "87#(<= 1 wait)" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "27#~initENTRYtrue" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "7#L81true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" } "#11#assume clk >= deadline;" {"Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "9#L82true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "94#true" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 48#(= critical 0)" "35#L61true" } "#54#critical := 1;" {"Black: 48#(= critical 0)" "36#L62true" }) ({"Black: 46#true" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 46#true" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"64#true" "Black: 66#(<= lock 0)" "Black: 52#true" "41#L53true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" } "#43#assume lock == 0;" {"66#(<= lock 0)" "Black: 64#true" "Black: 52#true" "42#L54true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" }) ({"64#true" "52#true" "Black: 66#(<= lock 0)" "40#L63true" "Black: 54#(<= lock 1)" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" } "#56#lock := 0;" {"33#L50true" "66#(<= lock 0)" "Black: 64#true" "54#(<= lock 1)" "Black: 52#true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" }) ({"Black: 46#true" "Black: 78#(<= 1 wait)" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "21#~initENTRYtrue" "87#(<= 1 wait)" "27#~initENTRYtrue" "76#true" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 46#true" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 48#(= critical 0)" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "85#true" "21#~initENTRYtrue" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "78#(<= 1 wait)" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 46#true" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 46#true" "Black: 78#(<= 1 wait)" "85#true" "21#~initENTRYtrue" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 66#(<= lock 0)" "9#L82true" "Black: 54#(<= lock 1)" "Black: 70#true" "Black: 58#true" } "#12#assume lock == 2;" {"Black: 66#(<= lock 0)" "Black: 54#(<= lock 1)" "10#L75-2true" "Black: 70#true" "Black: 58#true" }) ({"96#(<= (+ delay 1) wait)" "Black: 48#(= critical 0)" "21#~initENTRYtrue" "87#(<= 1 wait)" "27#~initENTRYtrue" "45#~initENTRYtrue" "78#(<= 1 wait)" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"11#Thread2FINALtrue" } "#23#assume true;" {"19#Thread2EXITtrue" }) ({"113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 48#(= critical 0)" "21#~initENTRYtrue" "87#(<= 1 wait)" "27#~initENTRYtrue" "45#~initENTRYtrue" "78#(<= 1 wait)" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "38#L52true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" } "#42#deadline := clk + delay;" {"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "41#L53true" }) ({"Black: 48#(= critical 0)" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "87#(<= 1 wait)" "105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "27#~initENTRYtrue" "45#~initENTRYtrue" "78#(<= 1 wait)" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 46#true" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "38#L52true" "94#true" } "#42#deadline := clk + delay;" {"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "41#L53true" "94#true" }) ({"66#(<= lock 0)" "Black: 64#true" "Black: 52#true" "42#L54true" "Black: 70#true" "Black: 60#(<= 2 lock)" } "#44#lock := 1;" {"64#true" "Black: 66#(<= lock 0)" "Black: 52#true" "Black: 70#true" "44#L55true" "Black: 60#(<= 2 lock)" }) ({"37#L51true" "Black: 66#(<= lock 0)" "70#true" "Black: 52#true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" } "#50#assume !(lock != 1);" {"32#L51-2true" "Black: 66#(<= lock 0)" "72#(<= 1 lock)" "Black: 52#true" "Black: 70#true" "Black: 60#(<= 2 lock)" }) ({"16#L87true" "Black: 64#true" "72#(<= 1 lock)" "Black: 52#true" "Black: 70#true" "Black: 60#(<= 2 lock)" } "#20#lock := 0;" {"Black: 64#true" "70#true" "Black: 52#true" "Black: 72#(<= 1 lock)" "13#L74true" "Black: 60#(<= 2 lock)" }) ({"96#(<= (+ delay 1) wait)" "81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"37#L51true" } "#41#assume lock != 1;" {"38#L52true" }) ({"Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "87#(<= 1 wait)" "27#~initENTRYtrue" "76#true" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 46#true" "Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "87#(<= 1 wait)" "27#~initENTRYtrue" "76#true" "45#~initENTRYtrue" "94#true" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"20#L78true" "Black: 66#(<= lock 0)" "70#true" "54#(<= lock 1)" "Black: 52#true" "Black: 72#(<= 1 lock)" "Black: 58#true" } "#8#lock := 2;" {"52#true" "5#L79true" "Black: 66#(<= lock 0)" "72#(<= 1 lock)" "Black: 54#(<= lock 1)" "Black: 70#true" "Black: 58#true" }) ({"66#(<= lock 0)" "Black: 64#true" "20#L78true" "Black: 54#(<= lock 1)" "58#true" "Black: 70#true" "Black: 60#(<= 2 lock)" } "#8#lock := 2;" {"64#true" "Black: 66#(<= lock 0)" "5#L79true" "Black: 54#(<= lock 1)" "Black: 70#true" "60#(<= 2 lock)" "Black: 58#true" }) ({"113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 78#(<= 1 wait)" "38#L52true" "103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" } "#42#deadline := clk + delay;" {"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "41#L53true" "78#(<= 1 wait)" }) ({"Black: 46#true" "15#L86true" } "#19#critical := 0;" {"16#L87true" "Black: 46#true" }) ({"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "30#L57true" } "#47#assume clk >= deadline;" {"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "31#L58true" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 78#(<= 1 wait)" "85#true" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"64#true" "52#true" "Black: 66#(<= lock 0)" "72#(<= 1 lock)" "40#L63true" "Black: 54#(<= lock 1)" "Black: 70#true" "60#(<= 2 lock)" "Black: 58#true" } "#56#lock := 0;" {"33#L50true" "66#(<= lock 0)" "Black: 64#true" "70#true" "54#(<= lock 1)" "Black: 52#true" "58#true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" }) ({"Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "87#(<= 1 wait)" "27#~initENTRYtrue" "76#true" "109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "21#~initENTRYtrue" "87#(<= 1 wait)" "27#~initENTRYtrue" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "85#true" "21#~initENTRYtrue" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"17#L76true" "Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "Black: 87#(<= 1 wait)" "111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" } "#6#deadline := clk + delay;" {"113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "18#L77true" "87#(<= 1 wait)" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" }) ({"64#true" "52#true" "Black: 66#(<= lock 0)" "Black: 54#(<= lock 1)" "41#L53true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" } "#43#assume lock == 0;" {"66#(<= lock 0)" "Black: 64#true" "54#(<= lock 1)" "Black: 52#true" "42#L54true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" }) ({"Black: 66#(<= lock 0)" "Black: 52#true" "Black: 70#true" "31#L58true" "Black: 60#(<= 2 lock)" } "#48#assume lock == 1;" {"32#L51-2true" "Black: 66#(<= lock 0)" "Black: 52#true" "Black: 70#true" "Black: 60#(<= 2 lock)" }) ({"Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "6#L80true" "Black: 87#(<= 1 wait)" "109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" } "#10#deadline := clk + wait;" {"7#L81true" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 87#(<= 1 wait)" }) ({"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "38#L52true" "109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" } "#42#deadline := clk + delay;" {"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "41#L53true" }) ({"Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "85#true" "21#~initENTRYtrue" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 46#true" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"96#(<= (+ delay 1) wait)" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "87#(<= 1 wait)" "27#~initENTRYtrue" "76#true" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "87#(<= 1 wait)" "27#~initENTRYtrue" "76#true" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"66#(<= lock 0)" "Black: 64#true" "20#L78true" "54#(<= lock 1)" "Black: 52#true" "58#true" "Black: 70#true" "Black: 60#(<= 2 lock)" } "#8#lock := 2;" {"64#true" "52#true" "Black: 66#(<= lock 0)" "5#L79true" "Black: 54#(<= lock 1)" "Black: 70#true" "60#(<= 2 lock)" "Black: 58#true" }) ({"Black: 46#true" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "78#(<= 1 wait)" "111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 46#true" "87#(<= 1 wait)" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"66#(<= lock 0)" "Black: 64#true" "70#true" "Black: 52#true" "42#L54true" "Black: 72#(<= 1 lock)" "60#(<= 2 lock)" "Black: 58#true" } "#44#lock := 1;" {"64#true" "Black: 66#(<= lock 0)" "72#(<= 1 lock)" "Black: 52#true" "Black: 70#true" "58#true" "44#L55true" "Black: 60#(<= 2 lock)" }) ({"Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "87#(<= 1 wait)" "105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "27#~initENTRYtrue" "76#true" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 46#true" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 78#(<= 1 wait)" "38#L52true" "105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" } "#42#deadline := clk + delay;" {"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "41#L53true" "78#(<= 1 wait)" }) ({"66#(<= lock 0)" "Black: 64#true" "52#true" "Black: 54#(<= lock 1)" "42#L54true" "Black: 70#true" "Black: 60#(<= 2 lock)" } "#44#lock := 1;" {"64#true" "Black: 66#(<= lock 0)" "54#(<= lock 1)" "Black: 52#true" "Black: 70#true" "44#L55true" "Black: 60#(<= 2 lock)" }) ({"Black: 46#true" "36#L62true" } "#55#critical := 0;" {"Black: 46#true" "40#L63true" }) ({"Black: 66#(<= lock 0)" "70#true" "9#L82true" "Black: 54#(<= lock 1)" "58#true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" } "#12#assume lock == 2;" {"Black: 66#(<= lock 0)" "72#(<= 1 lock)" "Black: 54#(<= lock 1)" "Black: 70#true" "10#L75-2true" "60#(<= 2 lock)" "Black: 58#true" }) ({"52#true" "37#L51true" "Black: 66#(<= lock 0)" "70#true" "Black: 54#(<= lock 1)" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" } "#50#assume !(lock != 1);" {"32#L51-2true" "Black: 66#(<= lock 0)" "54#(<= lock 1)" "72#(<= 1 lock)" "Black: 52#true" "Black: 70#true" "Black: 60#(<= 2 lock)" }) ({"96#(<= (+ delay 1) wait)" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "38#L52true" } "#42#deadline := clk + delay;" {"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "41#L53true" }) ({"16#L87true" "52#true" "Black: 64#true" "72#(<= 1 lock)" "Black: 54#(<= lock 1)" "Black: 70#true" "Black: 60#(<= 2 lock)" } "#20#lock := 0;" {"Black: 64#true" "70#true" "54#(<= lock 1)" "Black: 52#true" "Black: 72#(<= 1 lock)" "13#L74true" "Black: 60#(<= 2 lock)" }) ({"64#true" "16#L87true" "Black: 66#(<= lock 0)" "Black: 52#true" "Black: 72#(<= 1 lock)" "60#(<= 2 lock)" "Black: 58#true" } "#20#lock := 0;" {"66#(<= lock 0)" "Black: 64#true" "Black: 52#true" "58#true" "Black: 72#(<= 1 lock)" "13#L74true" "Black: 60#(<= 2 lock)" }) ({"113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "38#L52true" } "#42#deadline := clk + delay;" {"Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "41#L53true" }) ({"Black: 48#(= critical 0)" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "78#(<= 1 wait)" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 64#true" "72#(<= 1 lock)" "40#L63true" "Black: 52#true" "Black: 70#true" "Black: 60#(<= 2 lock)" } "#56#lock := 0;" {"33#L50true" "Black: 64#true" "70#true" "Black: 52#true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" }) ({"Black: 66#(<= lock 0)" "Black: 54#(<= lock 1)" "Black: 70#true" "14#L75true" "Black: 58#true" } "#14#assume !(lock != 2);" {"Black: 66#(<= lock 0)" "Black: 54#(<= lock 1)" "10#L75-2true" "Black: 70#true" "Black: 58#true" }) ({"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "38#L52true" "111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" } "#42#deadline := clk + delay;" {"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "41#L53true" }) ({"Black: 46#true" "21#~initENTRYtrue" "103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "87#(<= 1 wait)" "27#~initENTRYtrue" "45#~initENTRYtrue" "78#(<= 1 wait)" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 46#true" "Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 46#true" "21#~initENTRYtrue" "87#(<= 1 wait)" "27#~initENTRYtrue" "45#~initENTRYtrue" "94#true" "78#(<= 1 wait)" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"52#true" "Black: 66#(<= lock 0)" "Black: 54#(<= lock 1)" "Black: 70#true" "31#L58true" "Black: 60#(<= 2 lock)" } "#48#assume lock == 1;" {"32#L51-2true" "Black: 66#(<= lock 0)" "54#(<= lock 1)" "Black: 52#true" "Black: 70#true" "Black: 60#(<= 2 lock)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 78#(<= 1 wait)" "38#L52true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" } "#42#deadline := clk + delay;" {"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "41#L53true" "78#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 78#(<= 1 wait)" "38#L52true" "94#true" } "#42#deadline := clk + delay;" {"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "41#L53true" "94#true" "78#(<= 1 wait)" }) ({"Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "6#L80true" "Black: 87#(<= 1 wait)" "111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" } "#10#deadline := clk + wait;" {"113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "7#L81true" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 87#(<= 1 wait)" }) ({"Black: 46#true" "21#~initENTRYtrue" "87#(<= 1 wait)" "27#~initENTRYtrue" "109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "45#~initENTRYtrue" "78#(<= 1 wait)" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 46#true" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "45#~initENTRYtrue" "111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 46#true" "87#(<= 1 wait)" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "94#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"66#(<= lock 0)" "Black: 64#true" "52#true" "70#true" "Black: 54#(<= lock 1)" "42#L54true" "Black: 72#(<= 1 lock)" "60#(<= 2 lock)" "Black: 58#true" } "#44#lock := 1;" {"64#true" "Black: 66#(<= lock 0)" "54#(<= lock 1)" "72#(<= 1 lock)" "Black: 52#true" "Black: 70#true" "58#true" "44#L55true" "Black: 60#(<= 2 lock)" }) ({"20#L78true" "Black: 66#(<= lock 0)" "Black: 54#(<= lock 1)" "Black: 70#true" "Black: 58#true" } "#8#lock := 2;" {"5#L79true" "Black: 66#(<= lock 0)" "Black: 54#(<= lock 1)" "Black: 70#true" "Black: 58#true" }) ({"64#true" "16#L87true" "52#true" "Black: 66#(<= lock 0)" "Black: 54#(<= lock 1)" "Black: 72#(<= 1 lock)" "60#(<= 2 lock)" "Black: 58#true" } "#20#lock := 0;" {"66#(<= lock 0)" "Black: 64#true" "54#(<= lock 1)" "Black: 52#true" "58#true" "Black: 72#(<= 1 lock)" "13#L74true" "Black: 60#(<= 2 lock)" }) ({"Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 46#true" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "85#true" "21#~initENTRYtrue" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "78#(<= 1 wait)" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 46#true" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"96#(<= (+ delay 1) wait)" "Black: 46#true" "21#~initENTRYtrue" "87#(<= 1 wait)" "27#~initENTRYtrue" "45#~initENTRYtrue" "78#(<= 1 wait)" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"52#true" "Black: 64#true" "72#(<= 1 lock)" "40#L63true" "Black: 54#(<= lock 1)" "Black: 70#true" "Black: 60#(<= 2 lock)" } "#56#lock := 0;" {"33#L50true" "Black: 64#true" "70#true" "54#(<= lock 1)" "Black: 52#true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" }) ({"64#true" "Black: 66#(<= lock 0)" "40#L63true" "Black: 52#true" "Black: 72#(<= 1 lock)" "60#(<= 2 lock)" "Black: 58#true" } "#56#lock := 0;" {"33#L50true" "66#(<= lock 0)" "Black: 64#true" "Black: 52#true" "58#true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" }) ({"113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 46#true" "21#~initENTRYtrue" "87#(<= 1 wait)" "27#~initENTRYtrue" "45#~initENTRYtrue" "78#(<= 1 wait)" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 48#(= critical 0)" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "87#(<= 1 wait)" "27#~initENTRYtrue" "45#~initENTRYtrue" "78#(<= 1 wait)" "46#true" "111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 46#true" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "87#(<= 1 wait)" "105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "27#~initENTRYtrue" "45#~initENTRYtrue" "78#(<= 1 wait)" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 46#true" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"17#L76true" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" } "#6#deadline := clk + delay;" {"18#L77true" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" }) ({"101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "6#L80true" "87#(<= 1 wait)" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" } "#10#deadline := clk + wait;" {"Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "7#L81true" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "Black: 87#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 78#(<= 1 wait)" "38#L52true" "109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" } "#42#deadline := clk + delay;" {"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "41#L53true" "78#(<= 1 wait)" }) ({"96#(<= (+ delay 1) wait)" "81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"17#L76true" "Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" } "#6#deadline := clk + delay;" {"18#L77true" "Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" }) ({"113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 46#true" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "87#(<= 1 wait)" "27#~initENTRYtrue" "76#true" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 46#true" "Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 46#true" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "87#(<= 1 wait)" "27#~initENTRYtrue" "76#true" "45#~initENTRYtrue" "94#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 48#(= critical 0)" "85#true" "21#~initENTRYtrue" "103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "78#(<= 1 wait)" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 46#true" "Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 48#(= critical 0)" "85#true" "21#~initENTRYtrue" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "94#true" "78#(<= 1 wait)" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"37#L51true" "Black: 66#(<= lock 0)" "Black: 52#true" "Black: 70#true" "Black: 60#(<= 2 lock)" } "#50#assume !(lock != 1);" {"32#L51-2true" "Black: 66#(<= lock 0)" "Black: 52#true" "Black: 70#true" "Black: 60#(<= 2 lock)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "46#true" "111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"20#L78true" "Black: 66#(<= lock 0)" "54#(<= lock 1)" "Black: 52#true" "Black: 70#true" "Black: 58#true" } "#8#lock := 2;" {"52#true" "5#L79true" "Black: 66#(<= lock 0)" "Black: 54#(<= lock 1)" "Black: 70#true" "Black: 58#true" }) ({"Black: 66#(<= lock 0)" "70#true" "Black: 54#(<= lock 1)" "58#true" "Black: 72#(<= 1 lock)" "14#L75true" "Black: 60#(<= 2 lock)" } "#14#assume !(lock != 2);" {"Black: 66#(<= lock 0)" "72#(<= 1 lock)" "Black: 54#(<= lock 1)" "Black: 70#true" "10#L75-2true" "60#(<= 2 lock)" "Black: 58#true" }) ({"Black: 46#true" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "87#(<= 1 wait)" "27#~initENTRYtrue" "76#true" "109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"39#Thread1FINALtrue" } "#59#assume true;" {"43#Thread1EXITtrue" }) ({"96#(<= (+ delay 1) wait)" "81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 78#(<= 1 wait)" "38#L52true" } "#42#deadline := clk + delay;" {"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "41#L53true" "78#(<= 1 wait)" }) ({"Black: 48#(= critical 0)" "85#true" "21#~initENTRYtrue" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "45#~initENTRYtrue" "78#(<= 1 wait)" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 78#(<= 1 wait)" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "21#~initENTRYtrue" "87#(<= 1 wait)" "27#~initENTRYtrue" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 78#(<= 1 wait)" "38#L52true" } "#42#deadline := clk + delay;" {"Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "41#L53true" "78#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 78#(<= 1 wait)" "85#true" "21#~initENTRYtrue" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"7#L81true" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" } "#11#assume clk >= deadline;" {"Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "9#L82true" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" }) ({"16#L87true" "Black: 64#true" "Black: 52#true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" } "#20#lock := 0;" {"Black: 64#true" "Black: 52#true" "Black: 72#(<= 1 lock)" "13#L74true" "Black: 60#(<= 2 lock)" }) ({"Black: 66#(<= lock 0)" "70#true" "Black: 52#true" "42#L54true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" } "#44#lock := 1;" {"Black: 66#(<= lock 0)" "72#(<= 1 lock)" "Black: 52#true" "Black: 70#true" "44#L55true" "Black: 60#(<= 2 lock)" }) ({"Black: 46#true" "Black: 78#(<= 1 wait)" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "85#true" "21#~initENTRYtrue" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 46#true" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"96#(<= (+ delay 1) wait)" "Black: 46#true" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "87#(<= 1 wait)" "27#~initENTRYtrue" "76#true" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"96#(<= (+ delay 1) wait)" "Black: 48#(= critical 0)" "85#true" "21#~initENTRYtrue" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "78#(<= 1 wait)" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 46#true" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "87#(<= 1 wait)" "27#~initENTRYtrue" "76#true" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "33#L50true" "Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"64#true" "52#true" "Black: 66#(<= lock 0)" "40#L63true" "Black: 54#(<= lock 1)" "Black: 72#(<= 1 lock)" "60#(<= 2 lock)" "Black: 58#true" } "#56#lock := 0;" {"33#L50true" "66#(<= lock 0)" "Black: 64#true" "54#(<= lock 1)" "Black: 52#true" "58#true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" }) ({"Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "87#(<= 1 wait)" "27#~initENTRYtrue" "76#true" "45#~initENTRYtrue" "46#true" "111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "38#L52true" } "#42#deadline := clk + delay;" {"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "41#L53true" }) ({"113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 48#(= critical 0)" "85#true" "21#~initENTRYtrue" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "78#(<= 1 wait)" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "6#L80true" "87#(<= 1 wait)" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" } "#10#deadline := clk + wait;" {"Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "7#L81true" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "Black: 87#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 78#(<= 1 wait)" "38#L52true" "111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" } "#42#deadline := clk + delay;" {"Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "41#L53true" "78#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "87#(<= 1 wait)" "27#~initENTRYtrue" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "87#(<= 1 wait)" "27#~initENTRYtrue" "45#~initENTRYtrue" "94#true" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"20#L78true" "Black: 66#(<= lock 0)" "70#true" "Black: 54#(<= lock 1)" "58#true" "Black: 72#(<= 1 lock)" "Black: 60#(<= 2 lock)" } "#8#lock := 2;" {"5#L79true" "Black: 66#(<= lock 0)" "72#(<= 1 lock)" "Black: 54#(<= lock 1)" "Black: 70#true" "60#(<= 2 lock)" "Black: 58#true" }) ({"Black: 46#true" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "87#(<= 1 wait)" "105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "27#~initENTRYtrue" "76#true" "45#~initENTRYtrue" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 46#true" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 48#(= critical 0)" "85#true" "21#~initENTRYtrue" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "78#(<= 1 wait)" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 46#true" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"66#(<= lock 0)" "Black: 64#true" "Black: 52#true" "42#L54true" "Black: 70#true" "60#(<= 2 lock)" "Black: 58#true" } "#44#lock := 1;" {"64#true" "Black: 66#(<= lock 0)" "Black: 52#true" "58#true" "Black: 70#true" "44#L55true" "Black: 60#(<= 2 lock)" }) ({"81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "87#(<= 1 wait)" "27#~initENTRYtrue" "109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 46#true" "87#(<= 1 wait)" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 46#true" "21#~initENTRYtrue" "90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "45#~initENTRYtrue" "78#(<= 1 wait)" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "85#true" "21#~initENTRYtrue" "103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "45#~initENTRYtrue" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"48#(= critical 0)" "33#L50true" "Black: 46#true" "Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "87#(<= 1 wait)" "25#L34true" "107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "13#L74true" "78#(<= 1 wait)" }) ({"Black: 48#(= critical 0)" "Black: 78#(<= 1 wait)" "85#true" "21#~initENTRYtrue" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "76#true" "45#~initENTRYtrue" "94#true" "46#true" } "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" {"96#(<= (+ delay 1) wait)" "48#(= critical 0)" "33#L50true" "Black: 46#true" "87#(<= 1 wait)" "25#L34true" "13#L74true" "78#(<= 1 wait)" }) ({"16#L87true" "Black: 64#true" "72#(<= 1 lock)" "Black: 52#true" "Black: 70#true" "60#(<= 2 lock)" "Black: 58#true" } "#20#lock := 0;" {"Black: 64#true" "70#true" "Black: 52#true" "58#true" "Black: 72#(<= 1 lock)" "13#L74true" "Black: 60#(<= 2 lock)" }) ({"Black: 66#(<= lock 0)" "9#L82true" "Black: 54#(<= lock 1)" "58#true" "Black: 70#true" "Black: 60#(<= 2 lock)" } "#12#assume lock == 2;" {"Black: 66#(<= lock 0)" "Black: 54#(<= lock 1)" "10#L75-2true" "Black: 70#true" "60#(<= 2 lock)" "Black: 58#true" }) ({"52#true" "37#L51true" "Black: 66#(<= lock 0)" "Black: 54#(<= lock 1)" "Black: 70#true" "Black: 60#(<= 2 lock)" } "#50#assume !(lock != 1);" {"32#L51-2true" "Black: 66#(<= lock 0)" "54#(<= lock 1)" "Black: 52#true" "Black: 70#true" "Black: 60#(<= 2 lock)" }) }, initialMarking = {"64#true" "Black: 66#(<= lock 0)" "70#true" "Black: 72#(<= 1 lock)" "76#true" "Black: 81#(and (<= (+ clk 1) Thread1_deadline) (<= 1 wait))" "Black: 78#(<= 1 wait)" "21#~initENTRYtrue" "85#true" "27#~initENTRYtrue" "Black: 87#(<= 1 wait)" "Black: 90#(and (<= 1 wait) (<= (+ clk 1) Thread2_deadline))" "94#true" "45#~initENTRYtrue" "46#true" "Black: 48#(= critical 0)" "Black: 113#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait))" "52#true" "Black: 101#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 103#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 105#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 107#(and (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "Black: 109#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) (+ wait clk)))" "Black: 54#(<= lock 1)" "Black: 111#(and (<= (+ Thread1_deadline 1) clk) (<= (+ delay 1) wait) (<= (+ Thread1_deadline 1) Thread2_deadline))" "58#true" "Black: 60#(<= 2 lock)" }, acceptingPlaces = {"34#Thread1Err0ASSERT_VIOLATIONASSERTtrue" "8#Thread2Err0ASSERT_VIOLATIONASSERTtrue" } ); FiniteAutomaton nwa = ( alphabet = {"#2#assume true;" "#5#assume lock != 2;" "#6#deadline := clk + delay;" "#7#assume lock == 0;" "#8#lock := 2;" "#9#assume clk <= deadline;" "#10#deadline := clk + wait;" "#11#assume clk >= deadline;" "#12#assume lock == 2;" "#14#assume !(lock != 2);" "#16#assume !(critical == 0);" "#17#assume critical == 0;" "#18#critical := 2;" "#19#critical := 0;" "#20#lock := 0;" "#22#assume !true;" "#23#assume true;" "#26#assume true;" "#27#clk := clk + 1;" "#29#assume !true;" "#30#assume true;" "#38#assume true;" "#41#assume lock != 1;" "#42#deadline := clk + delay;" "#43#assume lock == 0;" "#44#lock := 1;" "#45#assume clk <= deadline;" "#46#deadline := clk + wait;" "#47#assume clk >= deadline;" "#48#assume lock == 1;" "#50#assume !(lock != 1);" "#52#assume !(critical == 0);" "#53#assume critical == 0;" "#54#critical := 1;" "#55#critical := 0;" "#56#lock := 0;" "#58#assume !true;" "#59#assume true;" "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" }, states = {"129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "122#true" "123#false" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "124#(<= (+ delay 1) wait)" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" }, initialStates = {"122#true" }, finalStates = {"123#false" }, transitions = { ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#2#assume true;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#5#assume lock != 2;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#6#deadline := clk + delay;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#7#assume lock == 0;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#8#lock := 2;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#9#assume clk <= deadline;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#10#deadline := clk + wait;" "124#(<= (+ delay 1) wait)") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#11#assume clk >= deadline;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#12#assume lock == 2;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#14#assume !(lock != 2);" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#16#assume !(critical == 0);" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#17#assume critical == 0;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#18#critical := 2;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#19#critical := 0;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#20#lock := 0;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#22#assume !true;" "123#false") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#23#assume true;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#26#assume true;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#27#clk := clk + 1;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#29#assume !true;" "123#false") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#30#assume true;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#38#assume true;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#41#assume lock != 1;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#42#deadline := clk + delay;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#43#assume lock == 0;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#44#lock := 1;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#45#assume clk <= deadline;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#46#deadline := clk + wait;" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#47#assume clk >= deadline;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#48#assume lock == 1;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#50#assume !(lock != 1);" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#52#assume !(critical == 0);" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#53#assume critical == 0;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#54#critical := 1;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#55#critical := 0;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#56#lock := 0;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#58#assume !true;" "123#false") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "#59#assume true;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))" "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" "124#(<= (+ delay 1) wait)") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#2#assume true;" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#5#assume lock != 2;" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#6#deadline := clk + delay;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#7#assume lock == 0;" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#8#lock := 2;" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#9#assume clk <= deadline;" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#10#deadline := clk + wait;" "124#(<= (+ delay 1) wait)") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#11#assume clk >= deadline;" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#12#assume lock == 2;" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#14#assume !(lock != 2);" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#16#assume !(critical == 0);" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#17#assume critical == 0;" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#18#critical := 2;" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#19#critical := 0;" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#20#lock := 0;" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#22#assume !true;" "123#false") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#23#assume true;" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#26#assume true;" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#27#clk := clk + 1;" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#29#assume !true;" "123#false") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#30#assume true;" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#38#assume true;" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#41#assume lock != 1;" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#42#deadline := clk + delay;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#43#assume lock == 0;" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#44#lock := 1;" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#45#assume clk <= deadline;" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#46#deadline := clk + wait;" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#47#assume clk >= deadline;" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#48#assume lock == 1;" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#50#assume !(lock != 1);" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#52#assume !(critical == 0);" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#53#assume critical == 0;" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#54#critical := 1;" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#55#critical := 0;" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#56#lock := 0;" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#58#assume !true;" "123#false") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#59#assume true;" "131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("131#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#2#assume true;" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#5#assume lock != 2;" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#6#deadline := clk + delay;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#7#assume lock == 0;" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#8#lock := 2;" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#9#assume clk <= deadline;" "123#false") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#10#deadline := clk + wait;" "124#(<= (+ delay 1) wait)") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#11#assume clk >= deadline;" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#12#assume lock == 2;" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#14#assume !(lock != 2);" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#16#assume !(critical == 0);" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#17#assume critical == 0;" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#18#critical := 2;" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#19#critical := 0;" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#20#lock := 0;" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#22#assume !true;" "123#false") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#23#assume true;" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#26#assume true;" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#27#clk := clk + 1;" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#29#assume !true;" "123#false") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#30#assume true;" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#38#assume true;" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#41#assume lock != 1;" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#42#deadline := clk + delay;" "137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#43#assume lock == 0;" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#44#lock := 1;" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#45#assume clk <= deadline;" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#46#deadline := clk + wait;" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#47#assume clk >= deadline;" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#48#assume lock == 1;" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#50#assume !(lock != 1);" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#52#assume !(critical == 0);" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#53#assume critical == 0;" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#54#critical := 1;" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#55#critical := 0;" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#56#lock := 0;" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#58#assume !true;" "123#false") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#59#assume true;" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#2#assume true;" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#5#assume lock != 2;" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#6#deadline := clk + delay;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#7#assume lock == 0;" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#8#lock := 2;" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#9#assume clk <= deadline;" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#10#deadline := clk + wait;" "124#(<= (+ delay 1) wait)") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#11#assume clk >= deadline;" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#12#assume lock == 2;" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#14#assume !(lock != 2);" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#16#assume !(critical == 0);" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#17#assume critical == 0;" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#18#critical := 2;" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#19#critical := 0;" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#20#lock := 0;" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#22#assume !true;" "123#false") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#23#assume true;" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#26#assume true;" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#27#clk := clk + 1;" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#29#assume !true;" "123#false") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#30#assume true;" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#38#assume true;" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#41#assume lock != 1;" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#42#deadline := clk + delay;" "124#(<= (+ delay 1) wait)") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#43#assume lock == 0;" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#44#lock := 1;" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#45#assume clk <= deadline;" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#46#deadline := clk + wait;" "124#(<= (+ delay 1) wait)") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#47#assume clk >= deadline;" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#48#assume lock == 1;" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#50#assume !(lock != 1);" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#52#assume !(critical == 0);" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#53#assume critical == 0;" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#54#critical := 1;" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#55#critical := 0;" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#56#lock := 0;" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#58#assume !true;" "123#false") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#59#assume true;" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))" "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#2#assume true;" "137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#5#assume lock != 2;" "137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#6#deadline := clk + delay;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#7#assume lock == 0;" "137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#8#lock := 2;" "137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#9#assume clk <= deadline;" "123#false") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#10#deadline := clk + wait;" "124#(<= (+ delay 1) wait)") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#11#assume clk >= deadline;" "137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#12#assume lock == 2;" "137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#14#assume !(lock != 2);" "137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#16#assume !(critical == 0);" "137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#17#assume critical == 0;" "137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#18#critical := 2;" "137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#19#critical := 0;" "137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#20#lock := 0;" "137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#22#assume !true;" "123#false") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#23#assume true;" "137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#26#assume true;" "137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#27#clk := clk + 1;" "137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#29#assume !true;" "123#false") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#30#assume true;" "137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#38#assume true;" "137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#41#assume lock != 1;" "137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#42#deadline := clk + delay;" "137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#43#assume lock == 0;" "137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#44#lock := 1;" "137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#45#assume clk <= deadline;" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#46#deadline := clk + wait;" "133#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#47#assume clk >= deadline;" "137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#48#assume lock == 1;" "137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#50#assume !(lock != 1);" "137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#52#assume !(critical == 0);" "137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#53#assume critical == 0;" "137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#54#critical := 1;" "137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#55#critical := 0;" "137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#56#lock := 0;" "137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#58#assume !true;" "123#false") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#59#assume true;" "137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("137#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" "124#(<= (+ delay 1) wait)") ("122#true" "#2#assume true;" "122#true") ("122#true" "#5#assume lock != 2;" "122#true") ("122#true" "#6#deadline := clk + delay;" "122#true") ("122#true" "#7#assume lock == 0;" "122#true") ("122#true" "#8#lock := 2;" "122#true") ("122#true" "#9#assume clk <= deadline;" "122#true") ("122#true" "#10#deadline := clk + wait;" "122#true") ("122#true" "#11#assume clk >= deadline;" "122#true") ("122#true" "#12#assume lock == 2;" "122#true") ("122#true" "#14#assume !(lock != 2);" "122#true") ("122#true" "#16#assume !(critical == 0);" "122#true") ("122#true" "#17#assume critical == 0;" "122#true") ("122#true" "#18#critical := 2;" "122#true") ("122#true" "#19#critical := 0;" "122#true") ("122#true" "#20#lock := 0;" "122#true") ("122#true" "#22#assume !true;" "123#false") ("122#true" "#23#assume true;" "122#true") ("122#true" "#26#assume true;" "122#true") ("122#true" "#27#clk := clk + 1;" "122#true") ("122#true" "#29#assume !true;" "123#false") ("122#true" "#30#assume true;" "122#true") ("122#true" "#38#assume true;" "122#true") ("122#true" "#41#assume lock != 1;" "122#true") ("122#true" "#42#deadline := clk + delay;" "122#true") ("122#true" "#43#assume lock == 0;" "122#true") ("122#true" "#44#lock := 1;" "122#true") ("122#true" "#45#assume clk <= deadline;" "122#true") ("122#true" "#46#deadline := clk + wait;" "122#true") ("122#true" "#47#assume clk >= deadline;" "122#true") ("122#true" "#48#assume lock == 1;" "122#true") ("122#true" "#50#assume !(lock != 1);" "122#true") ("122#true" "#52#assume !(critical == 0);" "122#true") ("122#true" "#53#assume critical == 0;" "122#true") ("122#true" "#54#critical := 1;" "122#true") ("122#true" "#55#critical := 0;" "122#true") ("122#true" "#56#lock := 0;" "122#true") ("122#true" "#58#assume !true;" "123#false") ("122#true" "#59#assume true;" "122#true") ("122#true" "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" "124#(<= (+ delay 1) wait)") ("123#false" "#2#assume true;" "123#false") ("123#false" "#5#assume lock != 2;" "123#false") ("123#false" "#6#deadline := clk + delay;" "123#false") ("123#false" "#7#assume lock == 0;" "123#false") ("123#false" "#8#lock := 2;" "123#false") ("123#false" "#9#assume clk <= deadline;" "123#false") ("123#false" "#10#deadline := clk + wait;" "123#false") ("123#false" "#11#assume clk >= deadline;" "123#false") ("123#false" "#12#assume lock == 2;" "123#false") ("123#false" "#14#assume !(lock != 2);" "123#false") ("123#false" "#16#assume !(critical == 0);" "123#false") ("123#false" "#17#assume critical == 0;" "123#false") ("123#false" "#18#critical := 2;" "123#false") ("123#false" "#19#critical := 0;" "123#false") ("123#false" "#20#lock := 0;" "123#false") ("123#false" "#22#assume !true;" "123#false") ("123#false" "#23#assume true;" "123#false") ("123#false" "#26#assume true;" "123#false") ("123#false" "#27#clk := clk + 1;" "123#false") ("123#false" "#29#assume !true;" "123#false") ("123#false" "#30#assume true;" "123#false") ("123#false" "#38#assume true;" "123#false") ("123#false" "#41#assume lock != 1;" "123#false") ("123#false" "#42#deadline := clk + delay;" "123#false") ("123#false" "#43#assume lock == 0;" "123#false") ("123#false" "#44#lock := 1;" "123#false") ("123#false" "#45#assume clk <= deadline;" "123#false") ("123#false" "#46#deadline := clk + wait;" "123#false") ("123#false" "#47#assume clk >= deadline;" "123#false") ("123#false" "#48#assume lock == 1;" "123#false") ("123#false" "#50#assume !(lock != 1);" "123#false") ("123#false" "#52#assume !(critical == 0);" "123#false") ("123#false" "#53#assume critical == 0;" "123#false") ("123#false" "#54#critical := 1;" "123#false") ("123#false" "#55#critical := 0;" "123#false") ("123#false" "#56#lock := 0;" "123#false") ("123#false" "#58#assume !true;" "123#false") ("123#false" "#59#assume true;" "123#false") ("123#false" "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" "123#false") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#2#assume true;" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#5#assume lock != 2;" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#6#deadline := clk + delay;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#7#assume lock == 0;" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#8#lock := 2;" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#9#assume clk <= deadline;" "123#false") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#10#deadline := clk + wait;" "124#(<= (+ delay 1) wait)") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#11#assume clk >= deadline;" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#12#assume lock == 2;" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#14#assume !(lock != 2);" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#16#assume !(critical == 0);" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#17#assume critical == 0;" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#18#critical := 2;" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#19#critical := 0;" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#20#lock := 0;" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#22#assume !true;" "123#false") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#23#assume true;" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#26#assume true;" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#27#clk := clk + 1;" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#29#assume !true;" "123#false") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#30#assume true;" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#38#assume true;" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#41#assume lock != 1;" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#42#deadline := clk + delay;" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#43#assume lock == 0;" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#44#lock := 1;" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#45#assume clk <= deadline;" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#46#deadline := clk + wait;" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#47#assume clk >= deadline;" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#48#assume lock == 1;" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#50#assume !(lock != 1);" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#52#assume !(critical == 0);" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#53#assume critical == 0;" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#54#critical := 1;" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#55#critical := 0;" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#56#lock := 0;" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#58#assume !true;" "123#false") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "#59#assume true;" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))" "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" "135#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("124#(<= (+ delay 1) wait)" "#2#assume true;" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#5#assume lock != 2;" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#6#deadline := clk + delay;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("124#(<= (+ delay 1) wait)" "#7#assume lock == 0;" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#8#lock := 2;" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#9#assume clk <= deadline;" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#10#deadline := clk + wait;" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#11#assume clk >= deadline;" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#12#assume lock == 2;" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#14#assume !(lock != 2);" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#16#assume !(critical == 0);" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#17#assume critical == 0;" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#18#critical := 2;" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#19#critical := 0;" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#20#lock := 0;" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#22#assume !true;" "123#false") ("124#(<= (+ delay 1) wait)" "#23#assume true;" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#26#assume true;" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#27#clk := clk + 1;" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#29#assume !true;" "123#false") ("124#(<= (+ delay 1) wait)" "#30#assume true;" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#38#assume true;" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#41#assume lock != 1;" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#42#deadline := clk + delay;" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#43#assume lock == 0;" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#44#lock := 1;" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#45#assume clk <= deadline;" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#46#deadline := clk + wait;" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#47#assume clk >= deadline;" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#48#assume lock == 1;" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#50#assume !(lock != 1);" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#52#assume !(critical == 0);" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#53#assume critical == 0;" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#54#critical := 1;" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#55#critical := 0;" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#56#lock := 0;" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "#58#assume !true;" "123#false") ("124#(<= (+ delay 1) wait)" "#59#assume true;" "124#(<= (+ delay 1) wait)") ("124#(<= (+ delay 1) wait)" "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" "124#(<= (+ delay 1) wait)") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#2#assume true;" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#5#assume lock != 2;" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#6#deadline := clk + delay;" "129#(and (<= (+ Thread2_deadline 1) (+ wait clk)) (<= (+ delay 1) wait))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#7#assume lock == 0;" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#8#lock := 2;" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#9#assume clk <= deadline;" "123#false") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#10#deadline := clk + wait;" "124#(<= (+ delay 1) wait)") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#11#assume clk >= deadline;" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#12#assume lock == 2;" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#14#assume !(lock != 2);" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#16#assume !(critical == 0);" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#17#assume critical == 0;" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#18#critical := 2;" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#19#critical := 0;" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#20#lock := 0;" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#22#assume !true;" "123#false") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#23#assume true;" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#26#assume true;" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#27#clk := clk + 1;" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#29#assume !true;" "123#false") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#30#assume true;" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#38#assume true;" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#41#assume lock != 1;" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#42#deadline := clk + delay;" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#43#assume lock == 0;" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#44#lock := 1;" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#45#assume clk <= deadline;" "139#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk) (<= (+ Thread2_deadline 1) Thread1_deadline))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#46#deadline := clk + wait;" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#47#assume clk >= deadline;" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#48#assume lock == 1;" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#50#assume !(lock != 1);" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#52#assume !(critical == 0);" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#53#assume critical == 0;" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#54#critical := 1;" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#55#critical := 0;" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#56#lock := 0;" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#58#assume !true;" "123#false") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "#59#assume true;" "141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))") ("141#(and (<= (+ delay 1) wait) (<= (+ Thread2_deadline 1) clk))" "critical := 0;clk := 0;assume wait >= 1;assume wait > delay;assume true;" "124#(<= (+ delay 1) wait)") } );