// Benchmark for difference of Petri net and DFA // Generated from // Bakery.bpl_AllErrorsAtOnce_Iteration1_AbstractionAfterDifference.ats (2018/08/13 05:05:17) // Bakery.bpl_AllErrorsAtOnce_Iteration2_EagerFloydHoareAutomaton.ats (2018/08/13 05:05:17) PetriNet net = ( alphabet = {"assume true;" "n1 := n0 + 1;" "assume n0 == 0 || n1 < n0;" "assume !(critical == 0);" "assume critical == 0;" "critical := 1;" "critical := 0;" "n1 := 0;" "assume !true;" "assume true;" "assume true;" "n0 := n1 + 1;" "assume n1 == 0 || n0 < n1;" "assume !(critical == 0);" "assume critical == 0;" "critical := 1;" "critical := 0;" "n0 := 0;" "assume !true;" "assume true;" "critical := 0;n0 := 0;n1 := 1;assume true;" }, places = {"Black: 28#true" "Black: 30#(= critical 0)" "5#L56true" "6#Thread1Err0ASSERT_VIOLATIONASSERTtrue" "7#L57true" "9#L58true" "10#L54true" "12#L59true" "13#L60true" "14#L55true" "15#~initENTRYtrue" "17#L38true" "18#L39true" "20#L35true" "21#L40true" "22#L41true" "24#L36true" "25#L37true" "26#Thread0Err0ASSERT_VIOLATIONASSERTtrue" "27#~initENTRYtrue" "28#true" "30#(= critical 0)" }, transitions = { ({"Black: 28#true" "17#L38true" } "assume critical == 0;" {"Black: 28#true" "18#L39true" }) ({"Black: 30#(= critical 0)" "21#L40true" "28#true" } "critical := 0;" {"Black: 28#true" "22#L41true" "30#(= critical 0)" }) ({"24#L36true" } "n0 := n1 + 1;" {"25#L37true" }) ({"Black: 30#(= critical 0)" "7#L57true" "28#true" } "assume critical == 0;" {"Black: 28#true" "9#L58true" "30#(= critical 0)" }) ({"20#L35true" } "assume true;" {"24#L36true" }) ({"Black: 30#(= critical 0)" "28#true" "12#L59true" } "critical := 0;" {"Black: 28#true" "13#L60true" "30#(= critical 0)" }) ({"17#L38true" "Black: 30#(= critical 0)" } "assume !(critical == 0);" {"Black: 30#(= critical 0)" "26#Thread0Err0ASSERT_VIOLATIONASSERTtrue" }) ({"5#L56true" } "assume n0 == 0 || n1 < n0;" {"7#L57true" }) ({"Black: 30#(= critical 0)" "17#L38true" "28#true" } "assume critical == 0;" {"Black: 28#true" "18#L39true" "30#(= critical 0)" }) ({"14#L55true" } "n1 := n0 + 1;" {"5#L56true" }) ({"Black: 30#(= critical 0)" "7#L57true" } "assume !(critical == 0);" {"Black: 30#(= critical 0)" "6#Thread1Err0ASSERT_VIOLATIONASSERTtrue" }) ({"13#L60true" } "n1 := 0;" {"10#L54true" }) ({"10#L54true" } "assume true;" {"14#L55true" }) ({"Black: 28#true" "18#L39true" "30#(= critical 0)" } "critical := 1;" {"Black: 30#(= critical 0)" "21#L40true" "28#true" }) ({"Black: 28#true" "21#L40true" } "critical := 0;" {"Black: 28#true" "22#L41true" }) ({"Black: 28#true" "7#L57true" } "assume critical == 0;" {"Black: 28#true" "9#L58true" }) ({"22#L41true" } "n0 := 0;" {"20#L35true" }) ({"Black: 30#(= critical 0)" "27#~initENTRYtrue" "28#true" "15#~initENTRYtrue" } "critical := 0;n0 := 0;n1 := 1;assume true;" {"Black: 28#true" "20#L35true" "10#L54true" "30#(= critical 0)" }) ({"Black: 30#(= critical 0)" "18#L39true" } "critical := 1;" {"Black: 30#(= critical 0)" "21#L40true" }) ({"Black: 28#true" "9#L58true" "30#(= critical 0)" } "critical := 1;" {"Black: 30#(= critical 0)" "28#true" "12#L59true" }) ({"Black: 28#true" "12#L59true" } "critical := 0;" {"Black: 28#true" "13#L60true" }) ({"25#L37true" } "assume n1 == 0 || n0 < n1;" {"17#L38true" }) ({"Black: 30#(= critical 0)" "9#L58true" } "critical := 1;" {"Black: 30#(= critical 0)" "12#L59true" }) }, initialMarking = {"Black: 30#(= critical 0)" "27#~initENTRYtrue" "28#true" "15#~initENTRYtrue" }, acceptingPlaces = {"6#Thread1Err0ASSERT_VIOLATIONASSERTtrue" "26#Thread0Err0ASSERT_VIOLATIONASSERTtrue" } ); FiniteAutomaton nwa = ( alphabet = {"assume true;" "n1 := n0 + 1;" "assume n0 == 0 || n1 < n0;" "assume !(critical == 0);" "assume critical == 0;" "critical := 1;" "critical := 0;" "n1 := 0;" "assume !true;" "assume true;" "assume true;" "n0 := n1 + 1;" "assume n1 == 0 || n0 < n1;" "assume !(critical == 0);" "assume critical == 0;" "critical := 1;" "critical := 0;" "n0 := 0;" "assume !true;" "assume true;" "critical := 0;n0 := 0;n1 := 1;assume true;" }, states = {"34#true" "35#false" "36#(<= 1 n1)" "37#(and (<= 1 n1) (<= (+ n1 1) n0))" }, initialStates = {"34#true" }, finalStates = {"35#false" }, transitions = { ("34#true" "assume true;" "34#true") ("34#true" "n1 := n0 + 1;" "34#true") ("34#true" "assume n0 == 0 || n1 < n0;" "34#true") ("34#true" "assume !(critical == 0);" "34#true") ("34#true" "assume critical == 0;" "34#true") ("34#true" "critical := 1;" "34#true") ("34#true" "critical := 0;" "34#true") ("34#true" "n1 := 0;" "34#true") ("34#true" "assume true;" "34#true") ("34#true" "n0 := n1 + 1;" "34#true") ("34#true" "assume n1 == 0 || n0 < n1;" "34#true") ("34#true" "assume !(critical == 0);" "34#true") ("34#true" "assume critical == 0;" "34#true") ("34#true" "critical := 1;" "34#true") ("34#true" "critical := 0;" "34#true") ("34#true" "n0 := 0;" "34#true") ("34#true" "critical := 0;n0 := 0;n1 := 1;assume true;" "36#(<= 1 n1)") ("36#(<= 1 n1)" "assume true;" "36#(<= 1 n1)") ("36#(<= 1 n1)" "n1 := n0 + 1;" "34#true") ("36#(<= 1 n1)" "assume n0 == 0 || n1 < n0;" "36#(<= 1 n1)") ("36#(<= 1 n1)" "assume !(critical == 0);" "36#(<= 1 n1)") ("36#(<= 1 n1)" "assume critical == 0;" "36#(<= 1 n1)") ("36#(<= 1 n1)" "critical := 1;" "36#(<= 1 n1)") ("36#(<= 1 n1)" "critical := 0;" "36#(<= 1 n1)") ("36#(<= 1 n1)" "n1 := 0;" "34#true") ("36#(<= 1 n1)" "assume true;" "36#(<= 1 n1)") ("36#(<= 1 n1)" "n0 := n1 + 1;" "37#(and (<= 1 n1) (<= (+ n1 1) n0))") ("36#(<= 1 n1)" "assume n1 == 0 || n0 < n1;" "36#(<= 1 n1)") ("36#(<= 1 n1)" "assume !(critical == 0);" "36#(<= 1 n1)") ("36#(<= 1 n1)" "assume critical == 0;" "36#(<= 1 n1)") ("36#(<= 1 n1)" "critical := 1;" "36#(<= 1 n1)") ("36#(<= 1 n1)" "critical := 0;" "36#(<= 1 n1)") ("36#(<= 1 n1)" "n0 := 0;" "36#(<= 1 n1)") ("37#(and (<= 1 n1) (<= (+ n1 1) n0))" "assume n1 == 0 || n0 < n1;" "35#false") ("37#(and (<= 1 n1) (<= (+ n1 1) n0))" "assume true;" "37#(and (<= 1 n1) (<= (+ n1 1) n0))") ("37#(and (<= 1 n1) (<= (+ n1 1) n0))" "n1 := n0 + 1;" "36#(<= 1 n1)") ("37#(and (<= 1 n1) (<= (+ n1 1) n0))" "assume n0 == 0 || n1 < n0;" "37#(and (<= 1 n1) (<= (+ n1 1) n0))") ("37#(and (<= 1 n1) (<= (+ n1 1) n0))" "assume critical == 0;" "37#(and (<= 1 n1) (<= (+ n1 1) n0))") ("37#(and (<= 1 n1) (<= (+ n1 1) n0))" "critical := 1;" "37#(and (<= 1 n1) (<= (+ n1 1) n0))") ("37#(and (<= 1 n1) (<= (+ n1 1) n0))" "critical := 0;" "37#(and (<= 1 n1) (<= (+ n1 1) n0))") ("37#(and (<= 1 n1) (<= (+ n1 1) n0))" "n1 := 0;" "34#true") } );