diff --git a/src/plugins/wp/Cint.ml b/src/plugins/wp/Cint.ml index 65ff69a9b88586d14ad5200049359a688a392bb6..18d0d1a9ace4418a952940ed5bfe33e1006b41b8 100644 --- a/src/plugins/wp/Cint.ml +++ b/src/plugins/wp/Cint.ml @@ -1232,13 +1232,13 @@ let is_cint_simplifier = Lang.F.QED.f_map ~pool ~forall:false ~exists:false walk_both_pol t in Lang.F.p_bool (walk ~term_pol:(Polarity.from_bool is_goal) (Lang.F.e_prop p)) - method simplify_exp (e : term) = e + method equivalent_exp (e : term) = e - method simplify_hyp p = self#simplify ~is_goal:false p + method weaker_hyp p = self#simplify ~is_goal:false p - method simplify_goal p = self#simplify ~is_goal:true p + method stronger_goal p = self#simplify ~is_goal:true p - method simplify_branch p = p + method equivalent_branch p = p method infer = [] end @@ -1292,19 +1292,19 @@ let mask_simplifier = end | _ -> ()) (F.e_prop p) - method simplify_exp e = + method equivalent_exp e = if Tmap.is_empty magnitude then e else Lang.e_subst (rewrite magnitude) e - method simplify_hyp p = + method weaker_hyp p = if Tmap.is_empty magnitude then p else Lang.p_subst (rewrite magnitude) p - method simplify_branch p = + method equivalent_branch p = if Tmap.is_empty magnitude then p else Lang.p_subst (rewrite magnitude) p - method simplify_goal p = + method stronger_goal p = if Tmap.is_empty magnitude then p else Lang.p_subst (rewrite magnitude) p diff --git a/src/plugins/wp/Conditions.ml b/src/plugins/wp/Conditions.ml index fcf91379566be92395bd50fd1d57442c5f623cc3..a8bc20956ca3a1d9699280836c97f0cbe9672085 100644 --- a/src/plugins/wp/Conditions.ml +++ b/src/plugins/wp/Conditions.ml @@ -880,35 +880,59 @@ and letify_case sigma ~target ~export seq = (* --- External Simplifier --- *) (* -------------------------------------------------------------------------- *) -let simplify_exp solvers e = - List.fold_left (fun e s -> s#simplify_exp e) e solvers -let simplify_goal solvers p = - List.fold_left (fun p s -> s#simplify_goal p) p solvers -let simplify_hyp solvers p = - List.fold_left (fun p s -> s#simplify_hyp p) p solvers -let simplify_branch solvers p = - List.fold_left (fun p s -> s#simplify_branch p) p solvers +let equivalent_exp solvers e = + List.fold_left (fun e s -> s#equivalent_exp e) e solvers +let stronger_goal solvers p = + List.fold_left (fun p s -> s#stronger_goal p) p solvers +let weaker_hyp solvers p = + List.fold_left (fun p s -> s#weaker_hyp p) p solvers +let equivalent_branch solvers p = + List.fold_left (fun p s -> s#equivalent_branch p) p solvers + +let apply_goal solvers p = + let stronger_and_then_assume p = + let p' = stronger_goal solvers p in + List.iter (fun s -> s#assume (p_not p')) solvers; + p' + in + match F.p_expr p with + | Or ps -> + let unmodified,qs = List.fold_left (fun (unmodified,qs) p -> + let p' = stronger_and_then_assume p in + (unmodified && (Lang.F.eqp p p')), (p'::qs)) + (true,[]) ps + in if unmodified then p else p_disj qs + | _ -> stronger_and_then_assume p let apply_hyp modified solvers h = - let simple p = - let p' = simplify_hyp solvers p in + let weaken_and_then_assume p = + let p' = weaker_hyp solvers p in if not (Lang.F.eqp p p') then modified := true; List.iter (fun s -> s#assume p') solvers; p' in + let weaken p = match F.p_expr p with + | And ps -> + let unmodified,qs = List.fold_left (fun (unmodified,qs) p -> + let p' = weaken_and_then_assume p in + (unmodified && (Lang.F.eqp p p')), (p'::qs)) + (true,[]) ps + in if unmodified then p else p_conj qs + | _ -> weaken_and_then_assume p + in match h.condition with - | State s -> update_cond h (State (Mstate.apply (simplify_exp solvers) s)) - | Init p -> update_cond h (Init (simple p)) - | Type p -> update_cond h (Type (simple p)) - | Have p -> update_cond h (Have (simple p)) - | When p -> update_cond h (When (simple p)) - | Core p -> update_cond h (Core (simple p)) + | State s -> update_cond h (State (Mstate.apply (equivalent_exp solvers) s)) + | Init p -> update_cond h (Init (weaken p)) + | Type p -> update_cond h (Type (weaken p)) + | Have p -> update_cond h (Have (weaken p)) + | When p -> update_cond h (When (weaken p)) + | Core p -> update_cond h (Core (weaken p)) | Branch(p,_,_) -> List.iter (fun s -> s#target p) solvers; h | Either _ -> h let decide_branch modified solvers h = match h.condition with | Branch(p,a,b) -> - let q = simplify_branch solvers p in + let q = equivalent_branch solvers p in if q != p then ( modified := true ; update_cond h (Branch(q,a,b)) ) else h @@ -939,7 +963,7 @@ let apply_simplifiers (solvers : simplifier list) (hs,g) = List.iter (fun s -> s#fixpoint) solvers ; let hs = List.map (decide_branch modified solvers) hs in let hs = List.fold_right (add_infer modified) solvers hs in - let p = simplify_goal solvers g in + let p = apply_goal solvers g in if p != g || !modified then Simplified (hs,p) else diff --git a/src/plugins/wp/Lang.ml b/src/plugins/wp/Lang.ml index a2f02f254515b8036e078a1966612b9bb8cc827b..4a3f934474aa58370c7287b07ce8816cca658362 100644 --- a/src/plugins/wp/Lang.ml +++ b/src/plugins/wp/Lang.ml @@ -1067,10 +1067,10 @@ class type simplifier = method fixpoint : unit method infer : F.pred list - method simplify_exp : F.term -> F.term - method simplify_hyp : F.pred -> F.pred - method simplify_branch : F.pred -> F.pred - method simplify_goal : F.pred -> F.pred + method equivalent_exp : F.term -> F.term + method weaker_hyp : F.pred -> F.pred + method equivalent_branch : F.pred -> F.pred + method stronger_goal : F.pred -> F.pred end let is_atomic_pred = function diff --git a/src/plugins/wp/Lang.mli b/src/plugins/wp/Lang.mli index 514110749b1f0336eb4f14377b20cd5e78ea32ec..ed9978d3a29740e35762419b90f09e44a4354bd9 100644 --- a/src/plugins/wp/Lang.mli +++ b/src/plugins/wp/Lang.mli @@ -576,16 +576,18 @@ class type simplifier = method infer : F.pred list (** Add new hypotheses implied by the original hypothesis. *) - method simplify_exp : F.term -> F.term - (** Currently simplify an expression. *) - method simplify_hyp : F.pred -> F.pred - (** Currently simplify an hypothesis before assuming it. In any - case must return a weaker formula. *) - method simplify_branch : F.pred -> F.pred - (** Currently simplify a branch condition. In any case must return an - equivalent formula. *) - method simplify_goal : F.pred -> F.pred - (** Simplify the goal. In any case must return a stronger formula. *) + method equivalent_exp : F.term -> F.term + (** Currently simplify an expression. + It must returns a equivalent formula from the assumed hypotheses. *) + method weaker_hyp : F.pred -> F.pred + (** Currently simplify an hypothesis before assuming it. + It must return a weaker formula from the assumed hypotheses. *) + method equivalent_branch : F.pred -> F.pred + (** Currently simplify a branch condition. + It must return an equivalent formula from the assumed hypotheses. *) + method stronger_goal : F.pred -> F.pred + (** Simplify the goal. + It must return a stronger formula from the assumed hypotheses. *) end (* -------------------------------------------------------------------------- *) diff --git a/src/plugins/wp/tests/wp/oracle/wp_behav.res.oracle b/src/plugins/wp/tests/wp/oracle/wp_behav.res.oracle index 06a4d869938de65e099b171b75d1b271aba60306..7b055f9626f0534549a3ffb75d39d3a6296d29fa 100644 --- a/src/plugins/wp/tests/wp/oracle/wp_behav.res.oracle +++ b/src/plugins/wp/tests/wp/oracle/wp_behav.res.oracle @@ -163,7 +163,7 @@ Goal Preservation of Invariant 'qed_ok' (file wp_behav.c, line 81): Assume { Type: is_sint32(i) /\ is_sint32(n) /\ is_sint32(n_1). (* Goal *) - When: (0 <= i_1) /\ (i_1 <= i) /\ is_sint32(i_1). + When: (0 <= i_1) /\ (i_1 <= i). (* Pre-condition *) Have: n_1 <= 9. (* Invariant 'qed_ok' *) diff --git a/src/plugins/wp/tests/wp/oracle/wp_call_pre.2.res.oracle b/src/plugins/wp/tests/wp/oracle/wp_call_pre.2.res.oracle index 4f4bf9be94af2fb141cb61287434873e95579349..8ee9e5fdf9b33fe732705bb05a771463647de355 100644 --- a/src/plugins/wp/tests/wp/oracle/wp_call_pre.2.res.oracle +++ b/src/plugins/wp/tests/wp/oracle/wp_call_pre.2.res.oracle @@ -18,14 +18,7 @@ Prove: true. Goal Instance of 'Pre-condition 'qed_ok,Rf' in 'f'' in 'double_call' at initialization of 'x2' (file wp_call_pre.c, line 26) : -Assume { - Type: is_sint32(f) /\ is_sint32(x). - (* Pre-condition 'Rd' *) - Have: 0 <= x. - (* Call 'f' *) - Have: 0 < f. -} -Prove: (-1) <= x. +Prove: true. ------------------------------------------------------------ ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp/oracle/wp_call_pre.3.res.oracle b/src/plugins/wp/tests/wp/oracle/wp_call_pre.3.res.oracle index 15d814ca6a84a699d2d2f8b7bafb37f6fb82eefd..63c5f1576f9bcce5d71cad71eb0588f4a083bb04 100644 --- a/src/plugins/wp/tests/wp/oracle/wp_call_pre.3.res.oracle +++ b/src/plugins/wp/tests/wp/oracle/wp_call_pre.3.res.oracle @@ -13,13 +13,6 @@ Prove: true. Goal Instance of 'Pre-condition 'qed_ok,Rf' in 'f'' in 'double_call' at initialization of 'x2' (file wp_call_pre.c, line 26) : -Assume { - Type: is_sint32(f) /\ is_sint32(x). - (* Pre-condition 'Rd' *) - Have: 0 <= x. - (* Call 'f' *) - Have: 0 < f. -} -Prove: (-1) <= x. +Prove: true. ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp/oracle_qualif/wp_call_pre.res.oracle b/src/plugins/wp/tests/wp/oracle_qualif/wp_call_pre.res.oracle index ece0577112393b370922c68fdf7e52ab16d7c718..67664973b466ac756fd279aa63d3da5f437712eb 100644 --- a/src/plugins/wp/tests/wp/oracle_qualif/wp_call_pre.res.oracle +++ b/src/plugins/wp/tests/wp/oracle_qualif/wp_call_pre.res.oracle @@ -8,7 +8,7 @@ [wp] Warning: Missing RTE guards [wp] 9 goals scheduled [wp] [Qed] Goal typed_double_call_call_f_requires_qed_ok_Rf : Valid -[wp] [Alt-Ergo] Goal typed_double_call_call_f_2_requires_qed_ok_Rf : Valid +[wp] [Qed] Goal typed_double_call_call_f_2_requires_qed_ok_Rf : Valid [wp] [Qed] Goal typed_main_requires_qed_ok_Rmain : Valid [wp] [Qed] Goal typed_main_ensures_qed_ok_Emain : Valid [wp] [Qed] Goal typed_main_call_f_requires_qed_ok_Rf : Valid @@ -17,11 +17,10 @@ [wp] [Qed] Goal typed_call_g_call_g_requires_qed_ok_Rga : Valid [wp] [Qed] Goal typed_call_g_call_g_requires_Rgb : Valid [wp] Proved goals: 9 / 9 - Qed: 8 - Alt-Ergo: 1 + Qed: 9 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - double_call 1 1 2 100% + double_call 2 - 2 100% main 3 - 3 100% call_main 2 - 2 100% call_g 2 - 2 100% diff --git a/src/plugins/wp/tests/wp_acsl/oracle/arith.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/arith.res.oracle index 9e0b53a7ea00e802ab646ce680706f403492eed3..745239a656b1bd3f1050de4cf623cbcce886bdba 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/arith.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/arith.res.oracle @@ -158,13 +158,11 @@ Prove: true. ------------------------------------------------------------ Goal Assertion 'qed_ok,A1' (file arith.i, line 16): -Assume { Type: is_uint8(i). } -Prove: 0 <= i. +Prove: true. ------------------------------------------------------------ Goal Assertion 'qed_ok,A2' (file arith.i, line 17): -Assume { Type: is_uint8(i). (* Assertion 'qed_ok,A1' *) Have: 0 <= i. } -Prove: i <= 255. +Prove: true. ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_acsl/oracle/assigns_path.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/assigns_path.res.oracle index b8e9db163f8c7c8827d8cfad9f00adbc62f6f73f..aaf2d71df37874351849fd00cad82103468c01c0 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/assigns_path.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/assigns_path.res.oracle @@ -35,23 +35,7 @@ Prove: Mint_0[shift_sint32(b, i)] = v[i]. ------------------------------------------------------------ Goal Preservation of Invariant (file assigns_path.i, line 16): -Assume { - Type: is_sint32(i) /\ is_sint32(n) /\ is_sint32(1 + i). - (* Heap *) - Type: region(b.base) <= 0. - (* Pre-condition *) - Have: n <= 3. - (* Invariant *) - Have: 0 <= n. - (* Invariant *) - Have: (0 <= i) /\ (i <= n). - (* Invariant *) - Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 < i) -> - (Mint_0[shift_sint32(b, i_1)] = v[i_1]))). - (* Then *) - Have: i < n. -} -Prove: (-1) <= i. +Prove: true. ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_acsl/oracle/assigns_range.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/assigns_range.res.oracle index f06695c9f125f82f6b716b56813b8ea9009772d6..cb23d6906cfdf29fa29540c3642099871abb7a03 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/assigns_range.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/assigns_range.res.oracle @@ -89,22 +89,7 @@ Prove: true. Goal Instance of 'Pre-condition (file assigns_range.i, line 23) in 'assigns_t4_sup_bound'' in 'call_assigns_all' at call 'assigns_t4_sup_bound' (file assigns_range.i, line 40) : -Assume { - Type: is_sint32(i) /\ is_sint32(j). - (* Heap *) - Type: IsArray_sint32(t2_0) /\ IsArray_sint32(t3_0). - (* Pre-condition *) - Have: (0 <= i) /\ (i <= j) /\ (j <= 19). - (* Call 'assigns_t1_an_element' *) - Have: i <= 19. - (* Call Effects *) - Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 <= 19) -> - (((i_1 < i) \/ (j < i_1)) -> (t2_1[i_1] = t2_0[i_1])))). - (* Call Effects *) - Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 <= 19) -> - (((i_1 < i) \/ (20 <= i_1)) -> (t3_1[i_1] = t3_0[i_1])))). -} -Prove: 0 <= j. +Prove: true. ------------------------------------------------------------ ------------------------------------------------------------ @@ -237,11 +222,6 @@ Prove: i <= 0. Goal Instance of 'Pre-condition (file assigns_range.i, line 23) in 'assigns_t4_sup_bound'' in 'call_assigns_t4' at call 'assigns_t4_sup_bound' (file assigns_range.i, line 65) : -Assume { - Type: is_sint32(i) /\ is_sint32(j). - (* Pre-condition *) - Have: (0 <= i) /\ (i <= j) /\ (j <= 19). -} -Prove: 0 <= j. +Prove: true. ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_acsl/oracle/axioms.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/axioms.res.oracle index 17f0f3c5cb5a6b4af5b955af99c78f0a485efff9..6a44c5e64ba56925531942883fe890a7f127c378 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/axioms.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/axioms.res.oracle @@ -112,7 +112,7 @@ Assume { (* Heap *) Type: (region(t.base) <= 0) /\ linked(Malloc_0). (* Goal *) - When: (a <= i_1) /\ (i_1 <= i) /\ is_sint32(i_1). + When: (a <= i_1) /\ (i_1 <= i). (* Pre-condition *) Have: valid_rw(Malloc_0, a_1, 1 + b - a). (* Pre-condition *) diff --git a/src/plugins/wp/tests/wp_acsl/oracle/chunk_typing.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/chunk_typing.res.oracle index 4c3b2575f9e95220d9b3b656cd14fa11ed3ed423..18d052e09ff36536fde976446a86f6b3e701e2bb 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/chunk_typing.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/chunk_typing.res.oracle @@ -90,102 +90,7 @@ Prove: (a_16 = (1 + x[i])) /\ (a_17 = (1 + a_16)) /\ (a_18 = (1 + a_17)) /\ ------------------------------------------------------------ Goal Preservation of Invariant (file chunk_typing.i, line 31): -Let a = shift_uint64(u64_0, i). -Let a_1 = shift_sint64(i64_0, i). -Let a_2 = shift_uint32(u32_0, i). -Let a_3 = shift_sint32(i32_0, i). -Let a_4 = shift_uint16(u16_0, i). -Let a_5 = shift_sint16(i16_0, i). -Let a_6 = shift_uint8(u8_0, i). -Let a_7 = shift_sint8(i8_0, i). -Let a_8 = shift_uint64(u64_0, 0). -Let a_9 = havoc(Mint_undef_5, Mint_5, a_8, 10). -Let a_10 = shift_sint64(i64_0, 0). -Let a_11 = havoc(Mint_undef_2, Mint_2, a_10, 10). -Let a_12 = shift_uint32(u32_0, 0). -Let a_13 = havoc(Mint_undef_4, Mint_4, a_12, 10). -Let a_14 = shift_sint32(i32_0, 0). -Let a_15 = havoc(Mint_undef_1, Mint_1, a_14, 10). -Let a_16 = shift_uint16(u16_0, 0). -Let a_17 = havoc(Mint_undef_3, Mint_3, a_16, 10). -Let a_18 = shift_sint16(i16_0, 0). -Let a_19 = havoc(Mint_undef_0, Mint_0, a_18, 10). -Let a_20 = shift_uint8(u8_0, 0). -Let a_21 = havoc(Mint_undef_6, Mint_6, a_20, 10). -Let a_22 = shift_sint8(i8_0, 0). -Let a_23 = havoc(Mchar_undef_0, Mchar_0, a_22, 10). -Assume { - Type: is_sint16_chunk(Mint_0) /\ is_sint32_chunk(Mint_1) /\ - is_sint64_chunk(Mint_2) /\ is_sint8_chunk(Mchar_0) /\ - is_uint16_chunk(Mint_3) /\ is_uint32_chunk(Mint_4) /\ - is_uint64_chunk(Mint_5) /\ is_uint8_chunk(Mint_6) /\ is_sint32(i) /\ - is_sint32(1 + i) /\ is_sint16_chunk(a_19) /\ is_sint32_chunk(a_15) /\ - is_sint64_chunk(a_11) /\ is_sint8_chunk(a_23) /\ - is_uint16_chunk(a_17) /\ is_uint32_chunk(a_13) /\ - is_uint64_chunk(a_9) /\ is_uint8_chunk(a_21) /\ - is_sint16_chunk(a_19[a_5 <- 3]) /\ is_sint32_chunk(a_15[a_3 <- 5]) /\ - is_sint64_chunk(a_11[a_1 <- 7]) /\ is_sint8_chunk(a_23[a_7 <- 1]) /\ - is_uint16_chunk(a_17[a_4 <- 4]) /\ is_uint32_chunk(a_13[a_2 <- 6]) /\ - is_uint64_chunk(a_9[a <- 8]) /\ is_uint8_chunk(a_21[a_6 <- 2]). - (* Heap *) - Type: (region(i16_0.base) <= 0) /\ (region(i32_0.base) <= 0) /\ - (region(i64_0.base) <= 0) /\ (region(i8_0.base) <= 0) /\ - (region(u16_0.base) <= 0) /\ (region(u32_0.base) <= 0) /\ - (region(u64_0.base) <= 0) /\ (region(u8_0.base) <= 0) /\ - linked(Malloc_0) /\ sconst(Mchar_0). - (* Pre-condition *) - Have: valid_rw(Malloc_0, a_18, 10) /\ valid_rw(Malloc_0, a_14, 10) /\ - valid_rw(Malloc_0, a_10, 10) /\ valid_rw(Malloc_0, a_22, 10) /\ - valid_rw(Malloc_0, a_16, 10) /\ valid_rw(Malloc_0, a_12, 10) /\ - valid_rw(Malloc_0, a_8, 10) /\ valid_rw(Malloc_0, a_20, 10). - (* Invariant *) - Have: (0 <= i) /\ (i <= 10). - (* Invariant *) - Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 < i) -> - (a_23[shift_sint8(i8_0, i_1)] = 1))). - (* Invariant *) - Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 < i) -> - (a_21[shift_uint8(u8_0, i_1)] = 2))). - (* Invariant *) - Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 < i) -> - (a_19[shift_sint16(i16_0, i_1)] = 3))). - (* Invariant *) - Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 < i) -> - (a_17[shift_uint16(u16_0, i_1)] = 4))). - (* Invariant *) - Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 < i) -> - (a_15[shift_sint32(i32_0, i_1)] = 5))). - (* Invariant *) - Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 < i) -> - (a_13[shift_uint32(u32_0, i_1)] = 6))). - (* Invariant *) - Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 < i) -> - (a_11[shift_sint64(i64_0, i_1)] = 7))). - (* Invariant *) - Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 < i) -> - (a_9[shift_uint64(u64_0, i_1)] = 8))). - (* Then *) - Have: i <= 9. - (* Assertion 'rte,mem_access' *) - Have: valid_rw(Malloc_0, a_7, 1). - (* Assertion 'rte,mem_access' *) - Have: valid_rw(Malloc_0, a_6, 1). - (* Assertion 'rte,mem_access' *) - Have: valid_rw(Malloc_0, a_5, 1). - (* Assertion 'rte,mem_access' *) - Have: valid_rw(Malloc_0, a_4, 1). - (* Assertion 'rte,mem_access' *) - Have: valid_rw(Malloc_0, a_3, 1). - (* Assertion 'rte,mem_access' *) - Have: valid_rw(Malloc_0, a_2, 1). - (* Assertion 'rte,mem_access' *) - Have: valid_rw(Malloc_0, a_1, 1). - (* Assertion 'rte,mem_access' *) - Have: valid_rw(Malloc_0, a, 1). - (* Assertion 'rte,signed_overflow' *) - Have: i <= 2147483646. -} -Prove: (-1) <= i. +Prove: true. ------------------------------------------------------------ @@ -1846,100 +1751,7 @@ Prove: valid_rw(Malloc_0, shift_uint64(u64_0, i), 1). ------------------------------------------------------------ Goal Assertion 'rte,signed_overflow' (file chunk_typing.i, line 44): -Let a = shift_uint64(u64_0, i). -Let a_1 = shift_sint64(i64_0, i). -Let a_2 = shift_uint32(u32_0, i). -Let a_3 = shift_sint32(i32_0, i). -Let a_4 = shift_uint16(u16_0, i). -Let a_5 = shift_sint16(i16_0, i). -Let a_6 = shift_uint8(u8_0, i). -Let a_7 = shift_sint8(i8_0, i). -Let a_8 = shift_uint64(u64_0, 0). -Let a_9 = havoc(Mint_undef_5, Mint_5, a_8, 10). -Let a_10 = shift_sint64(i64_0, 0). -Let a_11 = havoc(Mint_undef_2, Mint_2, a_10, 10). -Let a_12 = shift_uint32(u32_0, 0). -Let a_13 = havoc(Mint_undef_4, Mint_4, a_12, 10). -Let a_14 = shift_sint32(i32_0, 0). -Let a_15 = havoc(Mint_undef_1, Mint_1, a_14, 10). -Let a_16 = shift_uint16(u16_0, 0). -Let a_17 = havoc(Mint_undef_3, Mint_3, a_16, 10). -Let a_18 = shift_sint16(i16_0, 0). -Let a_19 = havoc(Mint_undef_0, Mint_0, a_18, 10). -Let a_20 = shift_uint8(u8_0, 0). -Let a_21 = havoc(Mint_undef_6, Mint_6, a_20, 10). -Let a_22 = shift_sint8(i8_0, 0). -Let a_23 = havoc(Mchar_undef_0, Mchar_0, a_22, 10). -Assume { - Type: is_sint16_chunk(Mint_0) /\ is_sint32_chunk(Mint_1) /\ - is_sint64_chunk(Mint_2) /\ is_sint8_chunk(Mchar_0) /\ - is_uint16_chunk(Mint_3) /\ is_uint32_chunk(Mint_4) /\ - is_uint64_chunk(Mint_5) /\ is_uint8_chunk(Mint_6) /\ is_sint32(i) /\ - is_sint16_chunk(a_19) /\ is_sint32_chunk(a_15) /\ - is_sint64_chunk(a_11) /\ is_sint8_chunk(a_23) /\ - is_uint16_chunk(a_17) /\ is_uint32_chunk(a_13) /\ - is_uint64_chunk(a_9) /\ is_uint8_chunk(a_21) /\ - is_sint16_chunk(a_19[a_5 <- 3]) /\ is_sint32_chunk(a_15[a_3 <- 5]) /\ - is_sint64_chunk(a_11[a_1 <- 7]) /\ is_sint8_chunk(a_23[a_7 <- 1]) /\ - is_uint16_chunk(a_17[a_4 <- 4]) /\ is_uint32_chunk(a_13[a_2 <- 6]) /\ - is_uint64_chunk(a_9[a <- 8]) /\ is_uint8_chunk(a_21[a_6 <- 2]). - (* Heap *) - Type: (region(i16_0.base) <= 0) /\ (region(i32_0.base) <= 0) /\ - (region(i64_0.base) <= 0) /\ (region(i8_0.base) <= 0) /\ - (region(u16_0.base) <= 0) /\ (region(u32_0.base) <= 0) /\ - (region(u64_0.base) <= 0) /\ (region(u8_0.base) <= 0) /\ - linked(Malloc_0) /\ sconst(Mchar_0). - (* Pre-condition *) - Have: valid_rw(Malloc_0, a_18, 10) /\ valid_rw(Malloc_0, a_14, 10) /\ - valid_rw(Malloc_0, a_10, 10) /\ valid_rw(Malloc_0, a_22, 10) /\ - valid_rw(Malloc_0, a_16, 10) /\ valid_rw(Malloc_0, a_12, 10) /\ - valid_rw(Malloc_0, a_8, 10) /\ valid_rw(Malloc_0, a_20, 10). - (* Invariant *) - Have: (0 <= i) /\ (i <= 10). - (* Invariant *) - Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 < i) -> - (a_23[shift_sint8(i8_0, i_1)] = 1))). - (* Invariant *) - Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 < i) -> - (a_21[shift_uint8(u8_0, i_1)] = 2))). - (* Invariant *) - Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 < i) -> - (a_19[shift_sint16(i16_0, i_1)] = 3))). - (* Invariant *) - Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 < i) -> - (a_17[shift_uint16(u16_0, i_1)] = 4))). - (* Invariant *) - Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 < i) -> - (a_15[shift_sint32(i32_0, i_1)] = 5))). - (* Invariant *) - Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 < i) -> - (a_13[shift_uint32(u32_0, i_1)] = 6))). - (* Invariant *) - Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 < i) -> - (a_11[shift_sint64(i64_0, i_1)] = 7))). - (* Invariant *) - Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 < i) -> - (a_9[shift_uint64(u64_0, i_1)] = 8))). - (* Then *) - Have: i <= 9. - (* Assertion 'rte,mem_access' *) - Have: valid_rw(Malloc_0, a_7, 1). - (* Assertion 'rte,mem_access' *) - Have: valid_rw(Malloc_0, a_6, 1). - (* Assertion 'rte,mem_access' *) - Have: valid_rw(Malloc_0, a_5, 1). - (* Assertion 'rte,mem_access' *) - Have: valid_rw(Malloc_0, a_4, 1). - (* Assertion 'rte,mem_access' *) - Have: valid_rw(Malloc_0, a_3, 1). - (* Assertion 'rte,mem_access' *) - Have: valid_rw(Malloc_0, a_2, 1). - (* Assertion 'rte,mem_access' *) - Have: valid_rw(Malloc_0, a_1, 1). - (* Assertion 'rte,mem_access' *) - Have: valid_rw(Malloc_0, a, 1). -} -Prove: i <= 2147483646. +Prove: true. ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_acsl/oracle/looplabels.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/looplabels.res.oracle index b97ad87904779045a6204e8e3bef96608684a346..bb59f39de147587a3ece2827d5e3c67c29a50f10 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/looplabels.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/looplabels.res.oracle @@ -35,30 +35,7 @@ Prove: P_IsEqual(havoc(Mint_undef_0, Mint_0, a_1, i), a, b, i). ------------------------------------------------------------ Goal Preservation of Invariant (file looplabels.i, line 18): -Let a_1 = shift_sint32(b, 0). -Let a_2 = shift_sint32(a, 0). -Assume { - Type: is_sint32(i) /\ is_sint32(n) /\ is_sint32(1 + i). - (* Heap *) - Type: (region(a.base) <= 0) /\ (region(b.base) <= 0) /\ linked(Malloc_0). - (* Pre-condition *) - Have: 0 < n. - (* Pre-condition *) - Have: valid_rw(Malloc_0, a_2, n). - (* Pre-condition *) - Have: valid_rw(Malloc_0, a_1, n). - (* Pre-condition *) - Have: separated(a_2, n, a_1, n). - (* Invariant *) - Have: P_IsEqual(Mint_0, a, b, 0). - (* Invariant *) - Have: (0 <= i) /\ (i <= n). - (* Invariant *) - Have: P_IsEqual(havoc(Mint_undef_0, Mint_0, a_1, n), a, b, i). - (* Then *) - Have: i < n. -} -Prove: (-1) <= i. +Prove: true. ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_acsl/oracle/postassigns.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/postassigns.res.oracle index 45bac9e9756deeb47911d7acc0a215292a3d51fe..68a4d2e6a12bc598dda6c510b4900c096951b82a 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/postassigns.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/postassigns.res.oracle @@ -145,16 +145,7 @@ Prove: true. ------------------------------------------------------------ Goal Preservation of Invariant (file postassigns.c, line 38): -Assume { - Type: is_sint32(N) /\ is_sint32(i) /\ is_sint32(1 + i). - (* Invariant *) - Have: 0 <= N. - (* Invariant *) - Have: (i <= N) /\ (0 <= i). - (* Then *) - Have: i < N. -} -Prove: (-1) <= i. +Prove: true. ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_acsl/oracle/simpl_is_type.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/simpl_is_type.res.oracle index b96c22a4802901437a86971598da3714e9176bf1..80262cbe5dcbc1b5163ee93464008fa7b0469d4d 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/simpl_is_type.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/simpl_is_type.res.oracle @@ -207,7 +207,7 @@ Assume { (* Heap *) Type: region(t.base) <= 0. (* Goal *) - When: (0 <= i_1) /\ (i_1 < size_0) /\ is_sint32(i_1). + When: (0 <= i_1) /\ (i_1 < size_0). (* Pre-condition *) Have: 0 < size_0. (* Invariant *) @@ -229,28 +229,7 @@ Prove: 0 < havoc(Mint_undef_0, Mint_0, a, i)[shift_sint32(t, i_1)]. ------------------------------------------------------------ Goal Preservation of Invariant (file simpl_is_type.i, line 22): -Let a = havoc(Mint_undef_0, Mint_0, shift_sint32(t, 0), size_0). -Assume { - Type: is_sint32(i) /\ is_sint32(size_0) /\ is_sint32(1 + i). - (* Heap *) - Type: region(t.base) <= 0. - (* Pre-condition *) - Have: 0 < size_0. - (* Invariant *) - Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 < size_0) -> - (Mint_0[shift_sint32(t, i_1)] < 0))). - (* Invariant *) - Have: (0 <= i) /\ (i <= size_0). - (* Invariant *) - Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 < i) -> - (0 < a[shift_sint32(t, i_1)]))). - (* Invariant *) - Have: forall i_1 : Z. ((i <= i_1) -> ((i_1 < size_0) -> - (a[shift_sint32(t, i_1)] < 0))). - (* Then *) - Have: i < size_0. -} -Prove: (-1) <= i. +Prove: true. ------------------------------------------------------------ @@ -269,7 +248,7 @@ Assume { (* Heap *) Type: region(t.base) <= 0. (* Goal *) - When: (0 <= i_1) /\ (i_1 <= i) /\ is_sint32(i_1). + When: (0 <= i_1) /\ (i_1 <= i). (* Pre-condition *) Have: 0 < size_0. (* Invariant *) @@ -308,7 +287,7 @@ Assume { (* Heap *) Type: region(t.base) <= 0. (* Goal *) - When: (i_1 < size_0) /\ (i < i_1) /\ is_sint32(i_1). + When: (i_1 < size_0) /\ (i < i_1). (* Pre-condition *) Have: 0 < size_0. (* Invariant *) @@ -340,7 +319,7 @@ Assume { (* Heap *) Type: region(t.base) <= 0. (* Goal *) - When: (0 <= i) /\ (i < size_0) /\ is_sint32(i). + When: (0 <= i) /\ (i < size_0). (* Pre-condition *) Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 < size_0) -> (Mint_0[shift_sint32(t, i_1)] < 0))). @@ -422,25 +401,7 @@ Prove: exists i_1 : Z. (Mint_0[shift_sint32(t, i_1)] = x) /\ (0 <= i_1) /\ ------------------------------------------------------------ Goal Preservation of Invariant (file simpl_is_type.i, line 44): -Let x_1 = Mint_0[shift_sint32(t, i)]. -Assume { - Type: is_sint32(i) /\ is_sint32(size_0) /\ is_sint32(x) /\ - is_sint32(1 + i) /\ is_sint32(x_1). - (* Heap *) - Type: region(t.base) <= 0. - (* Pre-condition *) - Have: 0 < size_0. - (* Invariant *) - Have: (0 <= i) /\ (i <= size_0). - (* Invariant *) - Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 < i) -> - (Mint_0[shift_sint32(t, i_1)] != x))). - (* Then *) - Have: i < size_0. - (* Else *) - Have: x_1 != x. -} -Prove: (-1) <= i. +Prove: true. ------------------------------------------------------------ @@ -457,7 +418,7 @@ Assume { (* Heap *) Type: region(t.base) <= 0. (* Goal *) - When: (0 <= i) /\ (i <= i_1) /\ is_sint32(i). + When: (0 <= i) /\ (i <= i_1). (* Pre-condition *) Have: 0 < size_0. (* Invariant *) diff --git a/src/plugins/wp/tests/wp_acsl/oracle/terminates_variant_option.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/terminates_variant_option.1.res.oracle index 37df7d0a04ad853ae4c9a561b3f801830be8eeca..dc049f029f87f114c2375d65c23ae0278d5343d1 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/terminates_variant_option.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/terminates_variant_option.1.res.oracle @@ -46,18 +46,7 @@ Prove: true. ------------------------------------------------------------ Goal Positivity of Loop variant at loop (file terminates_variant_option.i, line 41): -Assume { - Type: is_sint32(c1_0) /\ is_sint32(cpt_0) /\ is_sint32(cpt_0 - 1). - (* Goal *) - When: c1_0 != 0. - (* Invariant *) - Have: ((0 <= c1_0) -> ((cpt_0 <= c1_0) /\ (0 <= cpt_0))). - (* Else *) - Have: 2 <= cpt_0. - (* Invariant *) - Have: ((0 <= c1_0) -> (cpt_0 <= (1 + c1_0))). -} -Prove: 0 <= cpt_0. +Prove: true. ------------------------------------------------------------ ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_acsl/oracle/unit_bit_test.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/unit_bit_test.res.oracle index cd6729ea2d5b979d9cf3e4b7439032f6a16aa32b..f444ed8fb1be46b98d9ba39559eabbf7004d6620 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/unit_bit_test.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/unit_bit_test.res.oracle @@ -16,7 +16,7 @@ Let x_1 = lsr(x, 31). Assume { Type: is_uint32(x) /\ is_uint32(x_1). (* Goal *) - When: (0 <= i) /\ (i <= 30) /\ is_sint32(i). + When: (0 <= i) /\ (i <= 30). } Prove: (land(lor(x_1, to_uint32(lsl(x, 1))), lsl(1, 1 + i)) != 0) <-> (land(x, lsl(1, i)) != 0). diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/arith.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/arith.0.res.oracle index 6421bb6a22828470e479d8dd7c145274443ac35c..8fb1d6f4484ac63fd3a7988c1f3bc7c82edb7e35 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/arith.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/arith.0.res.oracle @@ -25,16 +25,16 @@ [wp] [Qed] Goal typed_lemma_ucN1_qed_ok : Valid [wp] [Qed] Goal typed_lemma_ucN2_qed_ok : Valid [wp] [Qed] Goal typed_cast_sgn_usgn_ensures_qed_ok_nat : Valid -[wp] [Alt-Ergo] Goal typed_uchar_range_assert_qed_ok_A1 : Valid -[wp] [Alt-Ergo] Goal typed_uchar_range_assert_qed_ok_A2 : Valid +[wp] [Qed] Goal typed_uchar_range_assert_qed_ok_A1 : Valid +[wp] [Qed] Goal typed_uchar_range_assert_qed_ok_A2 : Valid [wp] Proved goals: 24 / 24 - Qed: 21 - Alt-Ergo: 3 + Qed: 23 + Alt-Ergo: 1 ------------------------------------------------------------ Axiomatics WP Alt-Ergo Total Success Lemma 20 1 21 100% ------------------------------------------------------------ Functions WP Alt-Ergo Total Success cast_sgn_usgn 1 - 1 100% - uchar_range - 2 2 100% + uchar_range 2 - 2 100% ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_path.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_path.res.oracle index 28b262760531731f5f26fbab84600533afb38420..825667eba07a3ab5731fe1d28aaf3489af749711 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_path.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_path.res.oracle @@ -5,7 +5,7 @@ [wp] 9 goals scheduled [wp] [Qed] Goal typed_job_ensures_N : Valid [wp] [Alt-Ergo] Goal typed_job_ensures_A : Valid -[wp] [Alt-Ergo] Goal typed_job_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_job_loop_invariant_preserved : Valid [wp] [Qed] Goal typed_job_loop_invariant_established : Valid [wp] [Alt-Ergo] Goal typed_job_loop_invariant_2_preserved : Valid [wp] [Qed] Goal typed_job_loop_invariant_2_established : Valid @@ -13,11 +13,11 @@ [wp] [Qed] Goal typed_job_assigns_part1 : Valid [wp] [Qed] Goal typed_job_assigns_part2 : Valid [wp] Proved goals: 9 / 9 - Qed: 6 - Alt-Ergo: 3 + Qed: 7 + Alt-Ergo: 2 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - job 6 3 9 100% + job 7 2 9 100% ------------------------------------------------------------ [wp] assigns_path.i:12: Warning: Memory model hypotheses for function 'job': diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_range.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_range.0.res.oracle index be1fcea95acc03cf80739f72f39b5459b1f1b573..a1167da627e2689310f2ec6a8663afd5eec4ea4c 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_range.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_range.0.res.oracle @@ -16,17 +16,17 @@ [wp] [Alt-Ergo] Goal typed_call_assigns_all_call_assigns_t1_an_element_requires : Valid [wp] [Qed] Goal typed_call_assigns_all_call_assigns_t2_bound_requires : Valid [wp] [Qed] Goal typed_call_assigns_all_call_assigns_t3_inf_bound_requires : Valid -[wp] [Alt-Ergo] Goal typed_call_assigns_all_call_assigns_t4_sup_bound_requires : Valid +[wp] [Qed] Goal typed_call_assigns_all_call_assigns_t4_sup_bound_requires : Valid [wp] [Alt-Ergo] Goal typed_call_assigns_t1_call_assigns_t1_an_element_requires : Valid [wp] [Alt-Ergo] Goal typed_call_assigns_t2_call_assigns_t2_bound_requires : Valid -[wp] [Alt-Ergo] Goal typed_call_assigns_t4_call_assigns_t4_sup_bound_requires : Valid +[wp] [Qed] Goal typed_call_assigns_t4_call_assigns_t4_sup_bound_requires : Valid [wp] Proved goals: 17 / 17 - Qed: 12 - Alt-Ergo: 5 + Qed: 14 + Alt-Ergo: 3 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - call_assigns_all 12 2 14 100% + call_assigns_all 13 1 14 100% call_assigns_t1 - 1 1 100% call_assigns_t2 - 1 1 100% - call_assigns_t4 - 1 1 100% + call_assigns_t4 1 - 1 100% ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.res.oracle index 98bcd99641039e586c9d25533d31f4c0c9f640af..de5777ff704aaf30b42ac5ddaa707c18f8fdc7cf 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.res.oracle @@ -4,7 +4,7 @@ [rte:annot] annotating function function [wp] 39 goals scheduled [wp] [Alt-Ergo] Goal typed_function_ensures : Valid -[wp] [Alt-Ergo] Goal typed_function_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_function_loop_invariant_preserved : Valid [wp] [Qed] Goal typed_function_loop_invariant_established : Valid [wp] [Alt-Ergo] Goal typed_function_loop_invariant_2_preserved : Valid [wp] [Qed] Goal typed_function_loop_invariant_2_established : Valid @@ -30,7 +30,7 @@ [wp] [Alt-Ergo] Goal typed_function_assert_rte_mem_access_6 : Valid [wp] [Alt-Ergo] Goal typed_function_assert_rte_mem_access_7 : Valid [wp] [Alt-Ergo] Goal typed_function_assert_rte_mem_access_8 : Valid -[wp] [Alt-Ergo] Goal typed_function_assert_rte_signed_overflow : Valid +[wp] [Qed] Goal typed_function_assert_rte_signed_overflow : Valid [wp] [Qed] Goal typed_function_loop_assigns_part1 : Valid [wp] [Qed] Goal typed_function_loop_assigns_part2 : Valid [wp] [Qed] Goal typed_function_loop_assigns_part3 : Valid @@ -43,11 +43,11 @@ [wp] [Qed] Goal typed_function_loop_variant_decrease : Valid [wp] [Qed] Goal typed_function_loop_variant_positive : Valid [wp] Proved goals: 39 / 39 - Qed: 20 - Alt-Ergo: 19 + Qed: 22 + Alt-Ergo: 17 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - function 20 19 39 100% + function 22 17 39 100% ------------------------------------------------------------ [wp] chunk_typing.i:21: Warning: Memory model hypotheses for function 'function': diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/looplabels.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/looplabels.res.oracle index 3c5f14b5586a8915b0302faf8a82f7b3a8d4adb5..3882015f2cd0f3717f3c3638e0831ac0c20f7e49 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/looplabels.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/looplabels.res.oracle @@ -4,7 +4,7 @@ [wp] Warning: Missing RTE guards [wp] 8 goals scheduled [wp] [Alt-Ergo] Goal typed_copy_ensures : Valid -[wp] [Alt-Ergo] Goal typed_copy_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_copy_loop_invariant_preserved : Valid [wp] [Qed] Goal typed_copy_loop_invariant_established : Valid [wp] [Alt-Ergo] Goal typed_copy_loop_invariant_2_preserved : Valid [wp] [Alt-Ergo] Goal typed_copy_loop_invariant_2_established : Valid @@ -12,9 +12,9 @@ [wp] [Alt-Ergo] Goal typed_copy_loop_assigns_part2 : Valid [wp] [Qed] Goal typed_copy_assigns : Valid [wp] Proved goals: 8 / 8 - Qed: 3 - Alt-Ergo: 5 + Qed: 4 + Alt-Ergo: 4 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - copy 3 5 8 100% + copy 4 4 8 100% ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/postassigns.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/postassigns.res.oracle index a6ade74dbc8fd0c2a59fd2339893c91f2b1c56c7..558c6e329de0c9193a491e6c1a4c9ce022116dc7 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/postassigns.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/postassigns.res.oracle @@ -23,7 +23,7 @@ [wp] [Alt-Ergo] Goal typed_job2_assigns_part7 : Valid [wp] [Qed] Goal typed_job2_assigns_part8 : Valid [wp] [Qed] Goal typed_job2_assigns_part9 : Valid -[wp] [Alt-Ergo] Goal typed_job3_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_job3_loop_invariant_preserved : Valid [wp] [Qed] Goal typed_job3_loop_invariant_established : Valid [wp] [Qed] Goal typed_job3_loop_assigns_part1 : Valid [wp] [Qed] Goal typed_job3_loop_assigns_part2 : Valid @@ -31,13 +31,13 @@ [wp] [Qed] Goal typed_job3_assigns_part1 : Valid [wp] [Qed] Goal typed_job3_assigns_part2 : Valid [wp] Proved goals: 27 / 27 - Qed: 23 - Alt-Ergo: 4 + Qed: 24 + Alt-Ergo: 3 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success job1 10 - 10 100% job2 8 2 10 100% - job3 5 2 7 100% + job3 6 1 7 100% ------------------------------------------------------------ [wp] postassigns.c:7: Warning: Memory model hypotheses for function 'job1': diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/simpl_is_type.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/simpl_is_type.res.oracle index 64ff3d3d62f73f7e7ec8b87b02db286009cea7b1..ae73c30ff1306647c628e5ebf3015d4cea580dbd 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/simpl_is_type.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/simpl_is_type.res.oracle @@ -4,7 +4,7 @@ [wp] Warning: Missing RTE guards [wp] 18 goals scheduled [wp] [Alt-Ergo] Goal typed_f_ensures : Valid -[wp] [Alt-Ergo] Goal typed_f_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_f_loop_invariant_preserved : Valid [wp] [Qed] Goal typed_f_loop_invariant_established : Valid [wp] [Alt-Ergo] Goal typed_f_loop_invariant_2_preserved : Valid [wp] [Qed] Goal typed_f_loop_invariant_2_established : Valid @@ -13,7 +13,7 @@ [wp] [Qed] Goal typed_f_loop_assigns_part1 : Valid [wp] [Alt-Ergo] Goal typed_f_loop_assigns_part2 : Valid [wp] [Alt-Ergo] Goal typed_g_ensures : Valid -[wp] [Alt-Ergo] Goal typed_g_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_g_loop_invariant_preserved : Valid [wp] [Qed] Goal typed_g_loop_invariant_established : Valid [wp] [Alt-Ergo] Goal typed_g_loop_invariant_2_preserved : Valid [wp] [Qed] Goal typed_g_loop_invariant_2_established : Valid @@ -22,11 +22,11 @@ [wp] [Alt-Ergo] Goal typed_check_acsl_check_ok_C2_absurd_is_cint : Valid [wp] [Qed] Goal typed_check_acsl_check_ok_C5_absurd_cmp : Valid [wp] Proved goals: 18 / 18 - Qed: 7 - Alt-Ergo: 11 + Qed: 9 + Alt-Ergo: 9 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - f 3 6 9 100% - g 3 3 6 100% + f 4 5 9 100% + g 4 2 6 100% check_acsl 1 2 3 100% ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/terminates_variant_option.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/terminates_variant_option.1.res.oracle index 4c690a7e344cdb7f48a22b1ea63cefb0207ccd58..192d6abde3bb1462937f389f3bea179af5177482 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/terminates_variant_option.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/terminates_variant_option.1.res.oracle @@ -24,7 +24,7 @@ [wp] [Qed] Goal typed_f1_loop_invariant_established : Valid [wp] [Qed] Goal typed_f1_loop_assigns : Valid [wp] [Qed] Goal typed_f1_loop_variant_decrease : Valid -[wp] [Alt-Ergo] Goal typed_f1_loop_variant_positive : Valid +[wp] [Qed] Goal typed_f1_loop_variant_positive : Valid [wp] [Qed] Goal typed_trivial_variant_loop_assigns : Valid [wp] [Qed] Goal typed_trivial_variant_loop_variant_decrease : Valid [wp] [Qed] Goal typed_trivial_variant_loop_variant_positive : Valid @@ -32,13 +32,13 @@ [wp] [Qed] Goal typed_trivial_variant_default_loop_variant_decrease : Valid [wp] [Qed] Goal typed_trivial_variant_default_loop_variant_positive : Valid [wp] Proved goals: 24 / 24 - Qed: 16 - Alt-Ergo: 4 + Qed: 17 + Alt-Ergo: 3 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success fails_positive 5 1 6 100% fails_decreases 2 1 3 100% - f1 3 2 5 100% + f1 4 1 5 100% trivial_variant 3 - 3 100% trivial_variant_default 3 - 3 100% ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts779.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts779.res.oracle index 5683dde8aeb75d334dfbcca8ca1510e3ecf372c6..214d5ef2e3c295a8a5ccb2a74c65b79b5f10d88a 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts779.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts779.res.oracle @@ -7,8 +7,6 @@ ------------------------------------------------------------ Goal Assertion (file bts779.i, line 6): -Let x = Mint_0[shift_uint8(t, 0)]. -Assume { Type: is_uint8(x). (* Heap *) Type: region(t.base) <= 0. } -Prove: x <= 255. +Prove: true. ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_bts/oracle/issue_751.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/issue_751.res.oracle index 18231f2787cfacbce7f1fd426b27d0a7d6beaf6e..2e738afb004c169c4707afb644b505700e014741 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/issue_751.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/issue_751.res.oracle @@ -7,18 +7,7 @@ ------------------------------------------------------------ Goal Preservation of Invariant 'RANGE' (file issue_751.i, line 7): -Let x = land(3840, R). -Let x_1 = x / 256. -Assume { - Type: is_sint32(R) /\ is_sint32(j) /\ is_sint32(1 + j). - (* Pre-condition *) - Have: (0 < x) /\ (x <= 2303). - (* Invariant 'RANGE' *) - Have: (0 <= j) /\ (j <= x_1). - (* Then *) - Have: j < x_1. -} -Prove: (-1) <= j. +Prove: true. ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts779.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts779.res.oracle index ca40bafd86e9470752fe7e8a3d7857e471e39c67..8faeff06e9fce75e58574e6da3390b8069df6522 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts779.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts779.res.oracle @@ -3,12 +3,12 @@ [wp] Running WP plugin... [rte:annot] annotating function f [wp] 2 goals scheduled -[wp] [Alt-Ergo] Goal typed_f_assert : Valid +[wp] [Qed] Goal typed_f_assert : Valid [wp] [Alt-Ergo] Goal typed_f_assert_rte_mem_access : Unsuccess [wp] Proved goals: 1 / 2 - Qed: 0 - Alt-Ergo: 1 (unsuccess: 1) + Qed: 1 + Alt-Ergo: 0 (unsuccess: 1) ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - f - 1 2 50.0% + f 1 - 2 50.0% ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_751.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_751.res.oracle index 69f63c6e1c94ed8159119284c2bcf135b224b07b..6631c35af9b8fe108260f5e8018a3cd753ba75e1 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_751.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_751.res.oracle @@ -3,7 +3,7 @@ [wp] Running WP plugin... [wp] Warning: Missing RTE guards [wp] 40 goals scheduled -[wp] [Alt-Ergo] Goal typed_acquire_loop_invariant_RANGE_preserved : Valid +[wp] [Qed] Goal typed_acquire_loop_invariant_RANGE_preserved : Valid [wp] [Qed] Goal typed_acquire_loop_invariant_RANGE_established : Valid [wp] [Qed] Goal typed_acquire_loop_assigns_part1 : Valid [wp] [Alt-Ergo] Goal typed_acquire_loop_assigns_part2 : Valid @@ -44,10 +44,10 @@ [wp] [Alt-Ergo] Goal typed_issue_751_call_checks_4_requires_strict_pos_min : Valid [wp] [Qed] Goal typed_issue_751_call_checks_4_requires_strict_neg_min : Valid [wp] Proved goals: 40 / 40 - Qed: 26 - Alt-Ergo: 14 + Qed: 27 + Alt-Ergo: 13 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - acquire 2 2 4 100% + acquire 3 1 4 100% issue_751 24 12 36 100% ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.res.oracle index fda9d1592fcde0fd6bf80aa7a818d7c719d0c3e7..b91cab6038ff51321bd752683b5b40ceac3a8b64 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.res.oracle @@ -14,18 +14,18 @@ [wp] [Alt-Ergo] Goal typed_BinaryMultiplication_assert : Valid [wp] [Alt-Ergo] Goal typed_BinaryMultiplication_assert_rte_unsigned_overflow : Valid [wp] [Alt-Ergo] Goal typed_BinaryMultiplication_assert_rte_unsigned_overflow_2 : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_assert_rte_unsigned_overflow_3 : Valid +[wp] [Qed] Goal typed_BinaryMultiplication_assert_rte_unsigned_overflow_3 : Valid [wp] [Alt-Ergo] Goal typed_BinaryMultiplication_assert_rte_unsigned_overflow_4 : Valid [wp] [Qed] Goal typed_BinaryMultiplication_loop_assigns : Valid [wp] [Alt-Ergo] Goal typed_BinaryMultiplication_loop_variant_decrease : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_loop_variant_positive : Valid +[wp] [Qed] Goal typed_BinaryMultiplication_loop_variant_positive : Valid [wp] Proved goals: 16 / 16 - Qed: 3 - Alt-Ergo: 13 + Qed: 5 + Alt-Ergo: 11 ------------------------------------------------------------ Axiomatics WP Alt-Ergo Total Success Axiomatic mult 1 1 2 100% ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - BinaryMultiplication 2 12 14 100% + BinaryMultiplication 4 10 14 100% ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication.0.session/script/BinaryMultiplication_loop_invariant_inv1_ok_preserved.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication.0.session/script/BinaryMultiplication_loop_invariant_inv1_ok_preserved.json index 2bbbd17af44cf460bbbc0b1e8d1139e9df2fbf38..a9679b500c90b55ba77f83446cce7da4423edf0c 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication.0.session/script/BinaryMultiplication_loop_invariant_inv1_ok_preserved.json +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication.0.session/script/BinaryMultiplication_loop_invariant_inv1_ok_preserved.json @@ -1,7 +1,7 @@ [ { "header": "Range", "tactic": "Wp.range", "params": { "inf": 0, "sup": 1 }, - "select": { "select": "inside-step", "at": 17, "kind": "have", - "occur": 0, "target": "b_3 mod 2", "pattern": "%$b2" }, + "select": { "select": "inside-step", "at": 18, "kind": "have", + "occur": 0, "target": "b_1 mod 2", "pattern": "%$b2" }, "children": { "Lower 0": [ { "header": "Overflow", "tactic": "Wp.overflow", "params": {}, "select": { "select": "inside-goal", @@ -10,52 +10,52 @@ "pattern": "to_uint64.2$x" }, "children": { "In-Range": [ { "prover": "Alt-Ergo:2.2.0", "verdict": "valid", - "time": 6.9304, + "time": 5.0522, "steps": 47 } ], "Lower": [ { "prover": "qed", "verdict": "valid" } ], "Upper": [ { "prover": "Alt-Ergo:2.2.0", "verdict": "valid", - "time": 5.6793, + "time": 4.8984, "steps": 48 } ] } } ], "Value 0": [ { "header": "Overflow", "tactic": "Wp.overflow", "params": {}, "select": { "select": "inside-step", "at": 3, "kind": "have", "occur": 0, - "target": "(to_uint64 (a_1*b_1))", + "target": "(to_uint64 (a_1*b_3))", "pattern": "to_uint64*$a$b" }, "children": { "In-Range": [ { "prover": "Alt-Ergo:2.2.0", "verdict": "valid", - "time": 6.3679, - "steps": 184 } ], + "time": 5.0366, + "steps": 181 } ], "Lower": [ { "prover": "Alt-Ergo:2.2.0", "verdict": "valid", - "time": 5.8854, + "time": 4.9686, "steps": 42 } ], "Upper": [ { "prover": "Alt-Ergo:2.2.0", "verdict": "valid", - "time": 6.2747, + "time": 4.9181, "steps": 42 } ] } } ], "Value 1": [ { "header": "Overflow", "tactic": "Wp.overflow", "params": {}, "select": { "select": "inside-step", "at": 3, "kind": "have", "occur": 0, - "target": "(to_uint64 (a_1*b_1))", + "target": "(to_uint64 (a_1*b_3))", "pattern": "to_uint64*$a$b" }, "children": { "In-Range": [ { "prover": "Alt-Ergo:2.2.0", "verdict": "valid", - "time": 6.9832, - "steps": 222 } ], + "time": 5.0078, + "steps": 218 } ], "Lower": [ { "prover": "Alt-Ergo:2.2.0", "verdict": "valid", - "time": 6.0791, + "time": 4.7914, "steps": 45 } ], "Upper": [ { "prover": "Alt-Ergo:2.2.0", "verdict": "valid", - "time": 5.1665, + "time": 4.8087, "steps": 45 } ] } } ], "Upper 1": [ { "prover": "Alt-Ergo:2.2.0", - "verdict": "valid", "time": 6.0617, + "verdict": "valid", "time": 4.9897, "steps": 48 } ] } } ] diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/bsearch.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/bsearch.res.oracle index b6e73bdde324ab5d2f6961c6773b1b4b80656deb..a644fc380b73615879aa83975c72c77cc02b580a 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/bsearch.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/bsearch.res.oracle @@ -13,7 +13,7 @@ [wp] [Alt-Ergo] Goal typed_binary_search_ensures_Result : Valid [wp] [Qed] Goal typed_binary_search_ensures_Found : Valid [wp] [Alt-Ergo] Goal typed_binary_search_ensures_NotFound : Valid -[wp] [Alt-Ergo] Goal typed_binary_search_assert_rte_signed_overflow : Valid +[wp] [Qed] Goal typed_binary_search_assert_rte_signed_overflow : Valid [wp] [Alt-Ergo] Goal typed_binary_search_loop_invariant_Left_preserved : Valid [wp] [Qed] Goal typed_binary_search_loop_invariant_Left_established : Valid [wp] [Alt-Ergo] Goal typed_binary_search_loop_invariant_Range_preserved : Valid @@ -32,9 +32,9 @@ [wp] [Alt-Ergo] Goal typed_binary_search_loop_variant_decrease : Valid [wp] [Qed] Goal typed_binary_search_loop_variant_positive : Valid [wp] Proved goals: 28 / 28 - Qed: 7 - Alt-Ergo: 21 + Qed: 8 + Alt-Ergo: 20 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - binary_search 7 21 28 100% + binary_search 8 20 28 100% ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.res.oracle index 6fc4641c2a918d26bae446e524b503705425f3df..cf56af0792acf5251e177d957ad803686b349ad2 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.res.oracle @@ -59,14 +59,14 @@ [rte:annot] annotating function iter_ptr [wp] 3 goals scheduled [wp] [Alt-Ergo] Goal typed_find_assert_rte_mem_access : Valid -[wp] [Alt-Ergo] Goal typed_find_assert_rte_signed_overflow : Valid +[wp] [Qed] Goal typed_find_assert_rte_signed_overflow : Valid [wp] [Alt-Ergo] Goal typed_find_ptr_assert_rte_mem_access : Valid [wp] Proved goals: 3 / 3 - Qed: 0 - Alt-Ergo: 3 + Qed: 1 + Alt-Ergo: 2 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - find 7 11 18 100% + find 8 10 18 100% find_ptr 6 12 18 100% iter_ptr 2 6 8 100% ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.res.oracle index 472bae3aac8525769125b58c733be5e59855b4e9..e8de3999255b2d81ee037bb558174382548f45fc 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.res.oracle @@ -23,15 +23,15 @@ [wp] Running WP plugin... [rte:annot] annotating function exo1 [wp] 5 goals scheduled -[wp] [Alt-Ergo] Goal typed_exo1_assert_rte_signed_overflow : Valid +[wp] [Qed] Goal typed_exo1_assert_rte_signed_overflow : Valid [wp] [Alt-Ergo] Goal typed_exo1_assert_rte_mem_access : Valid [wp] [Alt-Ergo] Goal typed_exo1_assert_rte_mem_access_2 : Valid -[wp] [Alt-Ergo] Goal typed_exo1_assert_rte_signed_overflow_2 : Valid -[wp] [Alt-Ergo] Goal typed_exo1_assert_rte_signed_overflow_3 : Valid +[wp] [Qed] Goal typed_exo1_assert_rte_signed_overflow_2 : Valid +[wp] [Qed] Goal typed_exo1_assert_rte_signed_overflow_3 : Valid [wp] Proved goals: 5 / 5 - Qed: 0 - Alt-Ergo: 5 + Qed: 3 + Alt-Ergo: 2 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - exo1 6 9 15 100% + exo1 9 6 15 100% ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo2_solved.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo2_solved.res.oracle index 9fb7098252504e09573928fbe1ffe9c1284fd622..0a3bf5e9d5081c59065d653cc00f8fba3d38f026 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo2_solved.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo2_solved.res.oracle @@ -5,7 +5,7 @@ [wp] 22 goals scheduled [wp] [Alt-Ergo] Goal typed_max_subarray_ensures : Valid [wp] [Alt-Ergo] Goal typed_max_subarray_ensures_2 : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_max_subarray_loop_invariant_preserved : Valid [wp] [Qed] Goal typed_max_subarray_loop_invariant_established : Valid [wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_2_preserved : Valid [wp] [Qed] Goal typed_max_subarray_loop_invariant_2_established : Valid @@ -26,11 +26,11 @@ [wp] [Qed] Goal typed_max_subarray_loop_variant_decrease : Valid [wp] [Qed] Goal typed_max_subarray_loop_variant_positive : Valid [wp] Proved goals: 22 / 22 - Qed: 12 - Alt-Ergo: 10 + Qed: 13 + Alt-Ergo: 9 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - max_subarray 12 10 22 100% + max_subarray 13 9 22 100% ------------------------------------------------------------ [wp] Running WP plugin... [rte:annot] annotating function max_subarray @@ -41,5 +41,5 @@ Alt-Ergo: 1 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - max_subarray 12 11 23 100% + max_subarray 13 10 23 100% ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.res.oracle index dfc94d8a3943ced736b0721f08a7b01c3b7c69c7..815f3a1cb7facb792db414590628ca0f0cb565d5 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.res.oracle @@ -6,11 +6,11 @@ [wp] [Alt-Ergo] Goal typed_ref_equal_elements_ensures : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_ensures_2 : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_ensures_3 : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_preserved : Valid [wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_established : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_2_preserved : Valid [wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_2_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_3_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_3_preserved : Valid [wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_3_established : Valid [wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_4_preserved : Valid [wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_4_established : Valid @@ -38,11 +38,11 @@ [wp] [Qed] Goal typed_ref_equal_elements_loop_variant_2_decrease : Valid [wp] [Qed] Goal typed_ref_equal_elements_loop_variant_2_positive : Valid [wp] Proved goals: 34 / 34 - Qed: 19 - Alt-Ergo: 15 + Qed: 21 + Alt-Ergo: 13 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - equal_elements 19 15 34 100% + equal_elements 21 13 34 100% ------------------------------------------------------------ [wp] frama_c_exo3_solved.old.c:73: Warning: Memory model hypotheses for function 'equal_elements': @@ -60,7 +60,7 @@ [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_mem_access_2 : Valid [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_index_bound : Valid [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_index_bound_2 : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_rte_signed_overflow : Valid +[wp] [Qed] Goal typed_ref_equal_elements_assert_rte_signed_overflow : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_rte_mem_access_3 : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_rte_index_bound_3 : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_rte_index_bound_4 : Valid @@ -71,11 +71,11 @@ [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_mem_access_8 : Valid [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_index_bound_5 : Valid [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_index_bound_6 : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_rte_signed_overflow_2 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_assert_rte_signed_overflow_2 : Valid [wp] Proved goals: 16 / 16 - Qed: 11 - Alt-Ergo: 5 + Qed: 13 + Alt-Ergo: 3 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - equal_elements 30 20 50 100% + equal_elements 34 16 50 100% ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle index 4bf9ab318fb2b123882eaa5b3254c0e63fcf9f24..2830d7a72a4a46b3f80be4044c2a31941ee299d4 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle @@ -6,12 +6,12 @@ [wp] [Alt-Ergo] Goal typed_ref_equal_elements_ensures_v1_good : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_ensures_v2_good : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_ensures_v1_v2_diff : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_preserved : Valid [wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_established : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_set_at_0_preserved : Valid [wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_set_at_0_established : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_set_at_1 : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_bound_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_bound_preserved : Valid [wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_bound_established : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_seen_sound1_preserved : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_seen_sound1_established : Valid @@ -39,11 +39,11 @@ [wp] [Qed] Goal typed_ref_equal_elements_loop_variant_2_decrease : Valid [wp] [Qed] Goal typed_ref_equal_elements_loop_variant_2_positive : Valid [wp] Proved goals: 35 / 35 - Qed: 18 - Alt-Ergo: 17 + Qed: 20 + Alt-Ergo: 15 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - equal_elements 18 17 35 100% + equal_elements 20 15 35 100% ------------------------------------------------------------ [wp] frama_c_exo3_solved.old.v2.c:56: Warning: Memory model hypotheses for function 'equal_elements': @@ -61,7 +61,7 @@ [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_mem_access_2 : Valid [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_index_bound : Valid [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_index_bound_2 : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_rte_signed_overflow : Valid +[wp] [Qed] Goal typed_ref_equal_elements_assert_rte_signed_overflow : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_rte_mem_access_3 : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_rte_index_bound_3 : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_rte_index_bound_4 : Valid @@ -72,11 +72,11 @@ [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_mem_access_8 : Valid [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_index_bound_5 : Valid [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_index_bound_6 : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_rte_signed_overflow_2 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_assert_rte_signed_overflow_2 : Valid [wp] Proved goals: 16 / 16 - Qed: 11 - Alt-Ergo: 5 + Qed: 13 + Alt-Ergo: 3 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - equal_elements 29 22 51 100% + equal_elements 33 18 51 100% ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.res.oracle index 9ca1fbbad3e4eaf7c77acb2bd4fd7bed774c63e1..630af9b91980e457d5386befc31a56df8b51dc08 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.res.oracle @@ -5,11 +5,11 @@ [wp] 26 goals scheduled [wp] [Qed] Goal typed_pair_complete_has_pair_no_pair : Valid [wp] [Qed] Goal typed_pair_disjoint_has_pair_no_pair : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_pair_loop_invariant_preserved : Valid [wp] [Qed] Goal typed_pair_loop_invariant_established : Valid [wp] [Alt-Ergo] Goal typed_pair_loop_invariant_2_preserved : Valid [wp] [Qed] Goal typed_pair_loop_invariant_2_established : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_3_preserved : Valid +[wp] [Qed] Goal typed_pair_loop_invariant_3_preserved : Valid [wp] [Qed] Goal typed_pair_loop_invariant_3_established : Valid [wp] [Alt-Ergo] Goal typed_pair_loop_invariant_4_preserved : Valid [wp] [Alt-Ergo] Goal typed_pair_loop_invariant_4_established : Valid @@ -30,28 +30,28 @@ [wp] [Alt-Ergo] Goal typed_pair_no_pair_ensures : Valid [wp] [Alt-Ergo] Goal typed_pair_has_pair_ensures : Valid [wp] Proved goals: 26 / 26 - Qed: 16 - Alt-Ergo: 10 + Qed: 18 + Alt-Ergo: 8 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - pair 16 10 26 100% + pair 18 8 26 100% ------------------------------------------------------------ [wp] Running WP plugin... [rte:annot] annotating function pair [wp] 9 goals scheduled [wp] [Qed] Goal typed_pair_assert_rte_index_bound : Valid [wp] [Qed] Goal typed_pair_assert_rte_index_bound_2 : Valid -[wp] [Alt-Ergo] Goal typed_pair_assert_rte_signed_overflow : Valid +[wp] [Qed] Goal typed_pair_assert_rte_signed_overflow : Valid [wp] [Alt-Ergo] Goal typed_pair_assert_rte_mem_access : Valid [wp] [Alt-Ergo] Goal typed_pair_assert_rte_index_bound_3 : Valid [wp] [Alt-Ergo] Goal typed_pair_assert_rte_index_bound_4 : Valid [wp] [Qed] Goal typed_pair_assert_rte_index_bound_5 : Valid [wp] [Qed] Goal typed_pair_assert_rte_index_bound_6 : Valid -[wp] [Alt-Ergo] Goal typed_pair_assert_rte_signed_overflow_2 : Valid +[wp] [Qed] Goal typed_pair_assert_rte_signed_overflow_2 : Valid [wp] Proved goals: 9 / 9 - Qed: 4 - Alt-Ergo: 5 + Qed: 6 + Alt-Ergo: 3 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - pair 20 15 35 100% + pair 24 11 35 100% ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle/cint.3.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/cint.3.res.oracle index 13ce327181d2578f82c4d34b8708521ed3719056..8204ab6fa7850bb613a937f6dace22ade03d88ae 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/cint.3.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/cint.3.res.oracle @@ -18,8 +18,7 @@ Prove: P_R(x, a). ------------------------------------------------------------ Goal Post-condition (file cint.i, line 30) in 'signed_downcast': -Assume { Type: is_sint16(signed_downcast_0) /\ is_sint32(signed_downcast_0). -} +Assume { Type: is_sint16(signed_downcast_0). } Prove: P_R(signed_downcast_0, signed_downcast_0). ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle/combined.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/combined.res.oracle index 977dad88e4b8bd65073c642151a2889636f5cdf4..ff49553d88311ef1563b0e947cde8ea45e6f6c20 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/combined.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/combined.res.oracle @@ -13,24 +13,7 @@ Prove: (50 <= A) /\ (A <= 100). ------------------------------------------------------------ Goal Preservation of Invariant (file combined.c, line 29): -Assume { - Type: is_sint32(A) /\ is_sint32(i) /\ is_sint32(v) /\ is_sint32(1 + i). - (* Heap *) - Type: region(t.base) <= 0. - (* Assertion *) - Have: (50 <= A) /\ (A <= 100). - (* Invariant *) - Have: (0 <= i) /\ (i <= 50). - (* Invariant *) - Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 < i) -> - P_P(havoc(Mint_undef_0, Mint_0, shift_sint32(t, 0), 50) - [shift_sint32(t, i_1)]))). - (* Then *) - Have: i <= 49. - (* Call 'f' *) - Have: P_P(v). -} -Prove: (-1) <= i. +Prove: true. ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle/copy.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/copy.res.oracle index 45e2914bd4368a4294ef5d1f7d79ced28026b58c..5e9cbd10437bd13908135ea1710ece6d0ef94af0 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/copy.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/copy.res.oracle @@ -72,32 +72,7 @@ Prove: true. ------------------------------------------------------------ Goal Preservation of Invariant 'Range' (file copy.i, line 10): -Let a_1 = shift_sint32(a, 0). -Let a_2 = havoc(Mint_undef_0, Mint_0, a_1, n). -Let a_3 = a_2[shift_sint32(a, i) <- a_2[shift_sint32(b, i)]]. -Assume { - Type: is_sint32(i) /\ is_sint32(n) /\ is_sint32(1 + i). - (* Heap *) - Type: (region(a.base) <= 0) /\ (region(b.base) <= 0). - (* Pre-condition *) - Have: separated(a_1, n, shift_sint32(b, 0), n). - (* Invariant 'Range' *) - Have: 0 <= n. - (* Invariant 'Range' *) - Have: (0 <= i) /\ (i <= n). - (* Invariant 'Copy' *) - Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 < i) -> - (a_2[shift_sint32(b, i_1)] = a_2[shift_sint32(a, i_1)]))). - (* Then *) - Have: i < n. - (* Assertion 'A' *) - Have: forall i_1 : Z. let a_4 = shift_sint32(a, i_1) in ((0 <= i_1) -> - ((i_1 < i) -> (a_3[a_4] = a_2[a_4]))). - (* Assertion 'B' *) - Have: forall i_1 : Z. let a_4 = shift_sint32(b, i_1) in ((0 <= i_1) -> - ((i_1 < i) -> (a_3[a_4] = a_2[a_4]))). -} -Prove: (-1) <= i. +Prove: true. ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle/loop.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/loop.res.oracle index b346927e4d3c79a87ddca0d6d4f7969962483b14..b35e3645528169c24136512ccd5b11a3779230c7 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/loop.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/loop.res.oracle @@ -16,7 +16,7 @@ Assume { (* Heap *) Type: (region(t.base) <= 0) /\ linked(Malloc_0). (* Goal *) - When: (i_1 <= b) /\ (a <= i_1) /\ is_sint32(i_1). + When: (i_1 <= b) /\ (a <= i_1). (* Pre-condition *) Have: valid_rw(Malloc_0, a_1, 1 + b - a). (* Pre-condition *) @@ -87,7 +87,7 @@ Assume { (* Heap *) Type: (region(t.base) <= 0) /\ linked(Malloc_0). (* Goal *) - When: (a <= i_1) /\ (i_1 <= i) /\ is_sint32(i_1). + When: (a <= i_1) /\ (i_1 <= i). (* Pre-condition *) Have: valid_rw(Malloc_0, a_1, 1 + b - a). (* Pre-condition *) diff --git a/src/plugins/wp/tests/wp_plugin/oracle/prenex.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/prenex.res.oracle index 2721d73c7500aabcf175de96f4a81508a0ad48ed..ed64f075c63c343af27c65f1a726533d26fc6e35 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/prenex.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/prenex.res.oracle @@ -48,32 +48,7 @@ Prove: (forall i_2 : Z. ((0 <= i_2) -> ((i_2 < n) -> ------------------------------------------------------------ Goal Preservation of Invariant 'I' (file prenex.i, line 19): -Assume { - Type: is_sint32(i) /\ is_sint32(j) /\ is_sint32(m) /\ is_sint32(n) /\ - is_sint32(1 + i). - (* Heap *) - Type: (region(p.base) <= 0) /\ (region(q.base) <= 0). - (* Invariant 'I' *) - Have: 0 <= n. - (* Invariant 'I' *) - Have: (0 <= i) /\ (i <= n). - (* Invariant 'PI' *) - Have: forall i_2,i_1 : Z. ((0 <= i_2) -> ((i_2 < i) -> ((0 <= i_1) -> - ((i_1 < m) -> - (Mint_0[shift_sint32(p, i_2)] < Mint_0[shift_sint32(q, i_1)]))))). - (* Then *) - Have: i < n. - (* Invariant 'J' *) - Have: 0 <= m. - (* Invariant 'J' *) - Have: (0 <= j) /\ (j <= m). - (* Invariant 'PJ' *) - Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 < j) -> - (Mint_0[shift_sint32(p, i)] < Mint_0[shift_sint32(q, i_1)]))). - (* Else *) - Have: m <= j. -} -Prove: (-1) <= i. +Prove: true. ------------------------------------------------------------ @@ -122,36 +97,7 @@ Prove: true. ------------------------------------------------------------ Goal Preservation of Invariant 'J' (file prenex.i, line 28): -Let x = Mint_0[shift_sint32(p, i)]. -Let x_1 = Mint_0[shift_sint32(q, j)]. -Assume { - Type: is_sint32(i) /\ is_sint32(j) /\ is_sint32(m) /\ is_sint32(n) /\ - is_sint32(1 + j) /\ is_sint32(x) /\ is_sint32(x_1). - (* Heap *) - Type: (region(p.base) <= 0) /\ (region(q.base) <= 0). - (* Invariant 'I' *) - Have: 0 <= n. - (* Invariant 'I' *) - Have: (0 <= i) /\ (i <= n). - (* Invariant 'PI' *) - Have: forall i_2,i_1 : Z. ((0 <= i_2) -> ((i_2 < i) -> ((0 <= i_1) -> - ((i_1 < m) -> - (Mint_0[shift_sint32(p, i_2)] < Mint_0[shift_sint32(q, i_1)]))))). - (* Then *) - Have: i < n. - (* Invariant 'J' *) - Have: 0 <= m. - (* Invariant 'J' *) - Have: (0 <= j) /\ (j <= m). - (* Invariant 'PJ' *) - Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 < j) -> - (x < Mint_0[shift_sint32(q, i_1)]))). - (* Then *) - Have: j < m. - (* Else *) - Have: x < x_1. -} -Prove: (-1) <= j. +Prove: true. ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle/repeat.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/repeat.res.oracle index 99192ce42a745e79c0ad5c0db4e0dc9abf038296..72cc29ecc9f80e0b3607e643e19a3db7d752e257 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/repeat.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/repeat.res.oracle @@ -13,27 +13,7 @@ Prove: true. ------------------------------------------------------------ Goal Preservation of Invariant (file repeat.c, line 61): -Let a = L_sequence(calls_1). -Assume { - Type: is_sint32(i) /\ is_sint32(n) /\ is_sint32(1 + i). - (* Heap *) - Type: is_sint32(calls_0). - (* Pre-condition *) - Have: L_sequence(calls_0) = nil. - (* Invariant *) - Have: 0 <= n. - (* Invariant *) - Have: (0 <= i) /\ (i <= n). - (* Invariant *) - Have: ([ 1, 2 ] *^ i) = a. - (* Then *) - Have: i < n. - (* Call 'f' *) - Have: L_sequence(calls_2) = a ^ [ 1 ]. - (* Call 'g' *) - Have: L_sequence(calls_3) = a ^ [ 1, 2 ]. -} -Prove: (-1) <= i. +Prove: true. ------------------------------------------------------------ @@ -148,29 +128,7 @@ Prove: (a *^ 1 + i) = a_2. ------------------------------------------------------------ Goal Preservation of Invariant (file repeat.c, line 81): -Let a = ([ 1, 2 ] *^ i). -Assume { - Type: is_sint32(i) /\ is_sint32(n) /\ is_sint32(1 + i). - (* Heap *) - Type: is_sint32(calls_0). - (* Pre-condition *) - Have: L_sequence(calls_0) = nil. - (* Call 'f' *) - Have: L_sequence(calls_1) = [ 1 ]. - (* Invariant *) - Have: 0 <= n. - (* Invariant *) - Have: (0 <= i) /\ (i <= n). - (* Invariant *) - Have: L_sequence(calls_2) = a ^ [ 1 ]. - (* Then *) - Have: i < n. - (* Call 'g' *) - Have: L_sequence(calls_3) = a ^ [ 1, 2 ]. - (* Call 'f' *) - Have: L_sequence(calls_4) = a ^ [ 1, 2, 1 ]. -} -Prove: (-1) <= i. +Prove: true. ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle/sequence.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/sequence.res.oracle index fedcdb66fb660ab5c85989b6c35ce166281fa5ba..156a43c16d4f721dea573881f62418033adc87ea 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/sequence.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/sequence.res.oracle @@ -39,30 +39,7 @@ Prove: nth(a_1, 1 + i) = z. ------------------------------------------------------------ Goal Preservation of Invariant 'ok,id_max' (file sequence.i, line 97): -Let a = ([ y ] *^ i). -Assume { - Type: is_sint32(i) /\ is_sint32(n) /\ is_sint32(x) /\ is_sint32(y) /\ - is_sint32(1 + i). - (* Heap *) - Type: is_sint32(call_seq_0). - (* Pre-condition *) - Have: L_call_obs(call_seq_0) = nil. - (* Call 'f' *) - Have: L_call_obs(call_seq_1) = [ x ]. - (* Invariant 'ok,id_min' *) - Have: 0 <= i. - (* Invariant 'ok,id_max' *) - Have: if (0 <= n) then (i <= n) else (i <= 0). - (* Invariant 'ok,inv' *) - Have: L_call_obs(call_seq_2) = [ x ] ^ a. - (* Then *) - Have: i < n. - (* Call 'g' *) - Have: L_call_obs(call_seq_3) = [ x ] ^ a ^ [ y ]. - (* Invariant 'ok,id_min' *) - Have: (-1) <= i. -} -Prove: 0 <= n. +Prove: true. ------------------------------------------------------------ @@ -72,28 +49,7 @@ Prove: true. ------------------------------------------------------------ Goal Preservation of Invariant 'ok,id_min' (file sequence.i, line 96): -Let a = ([ y ] *^ i). -Assume { - Type: is_sint32(i) /\ is_sint32(n) /\ is_sint32(x) /\ is_sint32(y) /\ - is_sint32(1 + i). - (* Heap *) - Type: is_sint32(call_seq_0). - (* Pre-condition *) - Have: L_call_obs(call_seq_0) = nil. - (* Call 'f' *) - Have: L_call_obs(call_seq_1) = [ x ]. - (* Invariant 'ok,id_min' *) - Have: 0 <= i. - (* Invariant 'ok,id_max' *) - Have: if (0 <= n) then (i <= n) else (i <= 0). - (* Invariant 'ok,inv' *) - Have: L_call_obs(call_seq_2) = [ x ] ^ a. - (* Then *) - Have: i < n. - (* Call 'g' *) - Have: L_call_obs(call_seq_3) = [ x ] ^ a ^ [ y ]. -} -Prove: (-1) <= i. +Prove: true. ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle/string_c.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/string_c.res.oracle index c1383873535e632ba413a93d587aa48bb2c3a20d..faadd1df8084289a61a9d27e3c3bfd6d055fb10a 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/string_c.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/string_c.res.oracle @@ -66,19 +66,7 @@ Prove: to_uint64(1 + i) <= n. ------------------------------------------------------------ Goal Establishment of Invariant 'no_eva' (file FRAMAC_SHARE/libc/string.c, line 33): -Assume { - Type: is_uint64(n). - (* Heap *) - Type: (region(dest_0.base) <= 0) /\ (region(src_0.base) <= 0) /\ - linked(Malloc_0). - (* Pre-condition 'valid_dest' *) - Have: P_valid_or_empty(Malloc_0, dest_0, n). - (* Pre-condition 'valid_src' *) - Have: P_valid_read_or_empty(Malloc_0, src_0, n). - (* Pre-condition 'separation' *) - Have: separated(shift_sint8(dest_0, 0), n, shift_sint8(src_0, 0), n). -} -Prove: 0 <= n. +Prove: true. ------------------------------------------------------------ @@ -338,28 +326,7 @@ Prove: to_uint64(1 + i) <= n. ------------------------------------------------------------ Goal Establishment of Invariant 'no_eva' (file FRAMAC_SHARE/libc/string.c, line 95): -Let a = shift_sint8(d, 0). -Let a_1 = shift_sint8(s, 0). -Assume { - Type: is_sint32(memoverlap_0) /\ is_uint64(n). - (* Heap *) - Type: (region(d.base) <= 0) /\ (region(s.base) <= 0) /\ linked(Malloc_0). - (* Pre-condition 'valid_dest' *) - Have: P_valid_or_empty(Malloc_0, d, n). - (* Pre-condition 'valid_src' *) - Have: P_valid_read_or_empty(Malloc_0, s, n). - (* Else *) - Have: n != 0. - (* Call 'memoverlap' *) - Have: ((separated(a, n, a_1, n) -> (memoverlap_0 = 0))) /\ - ((addr_le(d, s) -> (addr_lt(s, shift_sint8(d, n)) -> - ((!separated(a, n, a_1, n)) -> (memoverlap_0 = (-1)))))) /\ - ((addr_lt(s, d) -> (addr_le(d, shift_sint8(s, n)) -> - ((!separated(a, n, a_1, n)) -> (memoverlap_0 = 1))))). - (* Then *) - Have: memoverlap_0 <= 0. -} -Prove: 0 <= n. +Prove: true. ------------------------------------------------------------ @@ -850,48 +817,7 @@ Prove: true. Goal Assigns (file FRAMAC_SHARE/libc/string.h, line 122) in 'memmove' (6/7): Effect at line 115 -Let a = shift_sint8(d, 0). -Let a_1 = havoc(Mchar_undef_0, Mchar_0, a, n). -Let x = to_uint64(n - 1). -Let a_2 = shift_sint8(src_0, 0). -Assume { - Type: is_sint32(memoverlap_0) /\ is_uint64(i) /\ is_uint64(n). - (* Heap *) - Type: (region(d.base) <= 0) /\ (region(src_0.base) <= 0) /\ - linked(Malloc_0) /\ sconst(Mchar_0). - (* Goal *) - When: !invalid(Malloc_0, a, 1). - (* Pre-condition 'valid_dest' *) - Have: P_valid_or_empty(Malloc_0, d, n). - (* Pre-condition 'valid_src' *) - Have: P_valid_read_or_empty(Malloc_0, src_0, n). - (* Else *) - Have: n != 0. - (* Call 'memoverlap' *) - Have: ((separated(a, n, a_2, n) -> (memoverlap_0 = 0))) /\ - ((addr_le(d, src_0) -> (addr_lt(src_0, shift_sint8(d, n)) -> - ((!separated(a, n, a_2, n)) -> (memoverlap_0 = (-1)))))) /\ - ((addr_lt(src_0, d) -> (addr_le(d, shift_sint8(src_0, n)) -> - ((!separated(a, n, a_2, n)) -> (memoverlap_0 = 1))))). - (* Else *) - Have: 0 < memoverlap_0. - (* Invariant 'no_eva' *) - Have: x < n. - (* Invariant 'no_eva' *) - Have: forall i_1 : Z. ((i_1 < n) -> ((x < i_1) -> - (Mchar_0[shift_sint8(src_0, i_1)] = Mchar_0[shift_sint8(d, i_1)]))). - (* Invariant 'no_eva' *) - Have: (0 <= i) /\ (i < n). - (* Invariant 'no_eva' *) - Have: forall i_1 : Z. ((i < i_1) -> ((i_1 < n) -> - (a_1[shift_sint8(d, i_1)] = Mchar_0[shift_sint8(src_0, i_1)]))). - (* Invariant 'no_eva' *) - Have: forall i_1 : Z. let a_3 = shift_sint8(src_0, i_1) in ((i_1 <= i) -> - ((0 <= i_1) -> (a_1[a_3] = Mchar_0[a_3]))). - (* Else *) - Have: i <= 0. -} -Prove: 0 < n. +Prove: true. ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/bitmask0x8000.0.session/script/lemma_res_n.json b/src/plugins/wp/tests/wp_plugin/oracle_qualif/bitmask0x8000.0.session/script/lemma_res_n.json index c1f541d00af218c3a2c837305606b0681f1e9f7d..ce1db3baf849bcda6d5c7bc45ce2fad9d913cc87 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/bitmask0x8000.0.session/script/lemma_res_n.json +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/bitmask0x8000.0.session/script/lemma_res_n.json @@ -4,5 +4,5 @@ "pattern": "!bit_test$off15" }, "children": { "Bit #15 (inf)": [ { "prover": "qed", "verdict": "valid" } ], "Bit #15 (sup)": [ { "prover": "Alt-Ergo:2.2.0", - "verdict": "valid", "time": 0.0263, + "verdict": "valid", "time": 0.0174, "steps": 32 } ] } } ] diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/bitmask0x8000.0.session/script/lemma_res_y.json b/src/plugins/wp/tests/wp_plugin/oracle_qualif/bitmask0x8000.0.session/script/lemma_res_y.json index 95cf3e5f2953bc7ed7b6c9ad5939b20299677781..6efc632858bf4117e91e9c9f8cb43ca24a57fcc7 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/bitmask0x8000.0.session/script/lemma_res_y.json +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/bitmask0x8000.0.session/script/lemma_res_y.json @@ -3,6 +3,6 @@ "target": "(bit_test off_0 15)", "pattern": "bit_test$off15" }, "children": { "Bit #15 (inf)": [ { "prover": "Alt-Ergo:2.2.0", - "verdict": "valid", "time": 0.0129, + "verdict": "valid", "time": 0.0166, "steps": 32 } ], "Bit #15 (sup)": [ { "prover": "qed", "verdict": "valid" } ] } } ] diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/copy.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/copy.res.oracle index e0dfdd314121b4941bfe645786d7f0b45dcbc541..6b924bddcb43114d07f388f2208f5d07fcf42fa1 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/copy.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/copy.res.oracle @@ -6,7 +6,7 @@ [wp] [Alt-Ergo] Goal typed_copy_ensures : Valid [wp] [Alt-Ergo] Goal typed_copy_loop_invariant_Copy_preserved : Valid [wp] [Qed] Goal typed_copy_loop_invariant_Copy_established : Valid -[wp] [Alt-Ergo] Goal typed_copy_loop_invariant_Range_preserved : Valid +[wp] [Qed] Goal typed_copy_loop_invariant_Range_preserved : Valid [wp] [Qed] Goal typed_copy_loop_invariant_Range_established : Valid [wp] [Alt-Ergo] Goal typed_copy_assert_A : Valid [wp] [Alt-Ergo] Goal typed_copy_assert_B : Valid @@ -15,9 +15,9 @@ [wp] [Alt-Ergo] Goal typed_copy_loop_assigns_part3 : Valid [wp] [Qed] Goal typed_copy_assigns : Valid [wp] Proved goals: 11 / 11 - Qed: 5 - Alt-Ergo: 6 + Qed: 6 + Alt-Ergo: 5 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - copy 5 6 11 100% + copy 6 5 11 100% ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/prenex.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/prenex.res.oracle index 2e2b36878d3e5f9274b92febfa5d9a2927f042f6..02ab35a20338ee218e2719fb9c411bb64d052a3b 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/prenex.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/prenex.res.oracle @@ -4,11 +4,11 @@ [wp] Warning: Missing RTE guards [wp] 12 goals scheduled [wp] [Alt-Ergo] Goal typed_diag_ensures : Valid -[wp] [Alt-Ergo] Goal typed_diag_loop_invariant_I_preserved : Valid +[wp] [Qed] Goal typed_diag_loop_invariant_I_preserved : Valid [wp] [Qed] Goal typed_diag_loop_invariant_I_established : Valid [wp] [Alt-Ergo] Goal typed_diag_loop_invariant_PI_preserved : Valid [wp] [Qed] Goal typed_diag_loop_invariant_PI_established : Valid -[wp] [Alt-Ergo] Goal typed_diag_loop_invariant_J_preserved : Valid +[wp] [Qed] Goal typed_diag_loop_invariant_J_preserved : Valid [wp] [Qed] Goal typed_diag_loop_invariant_J_established : Valid [wp] [Alt-Ergo] Goal typed_diag_loop_invariant_PJ_preserved : Valid [wp] [Qed] Goal typed_diag_loop_invariant_PJ_established : Valid @@ -16,9 +16,9 @@ [wp] [Qed] Goal typed_diag_loop_assigns_part2 : Valid [wp] [Qed] Goal typed_diag_loop_assigns_2 : Valid [wp] Proved goals: 12 / 12 - Qed: 7 - Alt-Ergo: 5 + Qed: 9 + Alt-Ergo: 3 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - diag 7 5 12 100% + diag 9 3 12 100% ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/repeat.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/repeat.res.oracle index 9efba93bde83103ce06ccbb72bb4a49d1d0b2276..53ead599403a2c8c4c8df1443698a2d5ae2f49f9 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/repeat.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/repeat.res.oracle @@ -33,7 +33,7 @@ [wp] [Qed] Goal typed_unroll_assigns_normal_part10 : Valid [wp] [Qed] Goal typed_unroll_assigns_normal_part11 : Valid [wp] [Qed] Goal typed_induction_ensures : Valid -[wp] [Alt-Ergo] Goal typed_induction_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_induction_loop_invariant_preserved : Valid [wp] [Qed] Goal typed_induction_loop_invariant_established : Valid [wp] [Alt-Ergo] Goal typed_induction_loop_invariant_2_preserved : Valid [wp] [Qed] Goal typed_induction_loop_invariant_2_established : Valid @@ -42,7 +42,7 @@ [wp] [Qed] Goal typed_induction_assigns_exit_part2 : Valid [wp] [Qed] Goal typed_induction_assigns_normal : Valid [wp] [Alt-Ergo] Goal typed_shifted_ensures : Valid -[wp] [Alt-Ergo] Goal typed_shifted_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_shifted_loop_invariant_preserved : Valid [wp] [Qed] Goal typed_shifted_loop_invariant_established : Valid [wp] [Alt-Ergo] Goal typed_shifted_loop_invariant_2_preserved : Valid [wp] [Qed] Goal typed_shifted_loop_invariant_2_established : Valid @@ -52,12 +52,12 @@ [wp] [Qed] Goal typed_shifted_assigns_normal_part1 : Valid [wp] [Qed] Goal typed_shifted_assigns_normal_part2 : Valid [wp] Proved goals: 47 / 47 - Qed: 42 - Alt-Ergo: 5 + Qed: 44 + Alt-Ergo: 3 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success master 3 - 3 100% unroll 25 - 25 100% - induction 7 2 9 100% - shifted 7 3 10 100% + induction 8 1 9 100% + shifted 8 2 10 100% ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.0.res.oracle index 7602867d0780d45feb0ba2978880f36079220b2c..890caa285aa06ad4e13d7fa980f2477be2202a36 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.0.res.oracle @@ -25,9 +25,9 @@ [wp] [Alt-Ergo] Goal typed_caveat_sequence_g_not_called_ensures_ok_q3 : Valid [wp] [Qed] Goal typed_caveat_loops_ensures_ok_first : Valid [wp] [Alt-Ergo] Goal typed_caveat_loops_ensures_ok_last : Valid -[wp] [Alt-Ergo] Goal typed_caveat_loops_loop_invariant_ok_id_max_preserved : Valid +[wp] [Qed] Goal typed_caveat_loops_loop_invariant_ok_id_max_preserved : Valid [wp] [Qed] Goal typed_caveat_loops_loop_invariant_ok_id_max_established : Valid -[wp] [Alt-Ergo] Goal typed_caveat_loops_loop_invariant_ok_id_min_preserved : Valid +[wp] [Qed] Goal typed_caveat_loops_loop_invariant_ok_id_min_preserved : Valid [wp] [Qed] Goal typed_caveat_loops_loop_invariant_ok_id_min_established : Valid [wp] [Alt-Ergo] Goal typed_caveat_loops_loop_invariant_ok_inv_preserved : Valid [wp] [Qed] Goal typed_caveat_loops_loop_invariant_ok_inv_established : Valid @@ -43,11 +43,11 @@ [wp] [Alt-Ergo] Goal typed_caveat_loops_g_not_called_ensures_ok_v1 : Valid [wp] [Alt-Ergo] Goal typed_caveat_loops_g_not_called_ensures_ok_v2 : Valid [wp] Proved goals: 39 / 39 - Qed: 26 - Alt-Ergo: 13 + Qed: 28 + Alt-Ergo: 11 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success no_calls 5 5 10 100% sequence 8 2 10 100% - loops 13 6 19 100% + loops 15 4 19 100% ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.1.res.oracle index fb728b9fa94a45d92d1f3cf5d409d84160adeadd..8c504062e5a4b190e871f43e23f3c5fe64cd5410 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.1.res.oracle @@ -20,9 +20,9 @@ [wp] [Alt-Ergo] Goal typed_caveat_sequence_g_not_called_ensures_ok_q3 : Valid [wp] [Qed] Goal typed_caveat_loops_ensures_ok_first : Valid [wp] [Alt-Ergo] Goal typed_caveat_loops_ensures_ok_last : Valid -[wp] [Alt-Ergo] Goal typed_caveat_loops_loop_invariant_ok_id_max_preserved : Valid +[wp] [Qed] Goal typed_caveat_loops_loop_invariant_ok_id_max_preserved : Valid [wp] [Qed] Goal typed_caveat_loops_loop_invariant_ok_id_max_established : Valid -[wp] [Alt-Ergo] Goal typed_caveat_loops_loop_invariant_ok_id_min_preserved : Valid +[wp] [Qed] Goal typed_caveat_loops_loop_invariant_ok_id_min_preserved : Valid [wp] [Qed] Goal typed_caveat_loops_loop_invariant_ok_id_min_established : Valid [wp] [Alt-Ergo] Goal typed_caveat_loops_loop_invariant_ok_inv_preserved : Valid [wp] [Qed] Goal typed_caveat_loops_loop_invariant_ok_inv_established : Valid @@ -38,11 +38,11 @@ [wp] [Alt-Ergo] Goal typed_caveat_loops_g_not_called_ensures_ok_v1 : Valid [wp] [Alt-Ergo] Goal typed_caveat_loops_g_not_called_ensures_ok_v2 : Valid [wp] Proved goals: 34 / 34 - Qed: 23 - Alt-Ergo: 11 + Qed: 25 + Alt-Ergo: 9 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success no_calls 2 3 5 100% sequence 8 2 10 100% - loops 13 6 19 100% + loops 15 4 19 100% ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/string_c.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/string_c.res.oracle index cc9031fcb59f098af6fb1aa7717aa675b908d1cc..3d41a25d9572f1c6917dbe8d66df9426920c3ccb 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/string_c.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/string_c.res.oracle @@ -6,7 +6,7 @@ [wp] [Alt-Ergo] Goal typed_memcpy_ensures_copied_contents : Valid [wp] [Qed] Goal typed_memcpy_ensures_result_ptr : Valid [wp] [Alt-Ergo] Goal typed_memcpy_loop_invariant_no_eva_preserved : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_loop_invariant_no_eva_established : Valid +[wp] [Qed] Goal typed_memcpy_loop_invariant_no_eva_established : Valid [wp] [Alt-Ergo] Goal typed_memcpy_loop_invariant_no_eva_2_preserved : Valid [wp] [Qed] Goal typed_memcpy_loop_invariant_no_eva_2_established : Valid [wp] [Qed] Goal typed_memcpy_loop_assigns_part1 : Valid @@ -18,7 +18,7 @@ [wp] [Alt-Ergo] Goal typed_memmove_ensures_copied_contents : Valid [wp] [Qed] Goal typed_memmove_ensures_result_ptr : Valid [wp] [Alt-Ergo] Goal typed_memmove_loop_invariant_no_eva_preserved : Valid -[wp] [Alt-Ergo] Goal typed_memmove_loop_invariant_no_eva_established : Valid +[wp] [Qed] Goal typed_memmove_loop_invariant_no_eva_established : Valid [wp] [Alt-Ergo] Goal typed_memmove_loop_invariant_no_eva_2_preserved : Valid [wp] [Qed] Goal typed_memmove_loop_invariant_no_eva_2_established : Valid [wp] [Alt-Ergo] Goal typed_memmove_loop_invariant_no_eva_3_preserved : Valid @@ -41,17 +41,17 @@ [wp] [Qed] Goal typed_memmove_assigns_normal_part3 : Valid [wp] [Qed] Goal typed_memmove_assigns_normal_part4 : Valid [wp] [Qed] Goal typed_memmove_assigns_normal_part5 : Valid -[wp] [Alt-Ergo] Goal typed_memmove_assigns_normal_part6 : Valid +[wp] [Qed] Goal typed_memmove_assigns_normal_part6 : Valid [wp] [Qed] Goal typed_memmove_assigns_normal_part7 : Valid [wp] [Alt-Ergo] Goal typed_memmove_loop_variant_decrease : Valid [wp] [Qed] Goal typed_memmove_loop_variant_positive : Valid [wp] [Alt-Ergo] Goal typed_memmove_loop_variant_2_decrease : Valid [wp] [Qed] Goal typed_memmove_loop_variant_2_positive : Valid [wp] Proved goals: 44 / 44 - Qed: 23 - Alt-Ergo: 21 + Qed: 26 + Alt-Ergo: 18 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - memcpy 6 6 12 100% - memmove 17 15 32 100% + memcpy 7 5 12 100% + memmove 19 13 32 100% ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/unroll.0.session/script/unrolled_loop_ensures_zero.json b/src/plugins/wp/tests/wp_plugin/oracle_qualif/unroll.0.session/script/unrolled_loop_ensures_zero.json index 1c97c0efd6fc200100d43ffe2b726792238d7235..fee182f4fb27d5d514f2a00bb1ea971d893a4636 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/unroll.0.session/script/unrolled_loop_ensures_zero.json +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/unroll.0.session/script/unrolled_loop_ensures_zero.json @@ -1,6 +1,6 @@ [ { "header": "Definition", "tactic": "Wp.unfold", "params": {}, "select": { "select": "clause-goal", - "target": "(P_zeroed\n Mint_37[(shift_uint32 t_2 0)->0][(shift_uint32 t_2 1)->0]\n [(shift_uint32 t_2 2)->0][(shift_uint32 t_2 3)->0][(shift_uint32 t_2 4)\n ->0][(shift_uint32 t_2 5)->0][(shift_uint32 t_2 6)->0]\n [(shift_uint32 t_2 7)->0][(shift_uint32 t_2 8)->0][(shift_uint32 t_2 9)\n ->0][(shift_uint32 t_2 10)->0][(shift_uint32 t_2 11)->0]\n [(shift_uint32 t_2 12)->0][(shift_uint32 t_2 13)->0]\n [(shift_uint32 t_2 14)->0][(shift_uint32 t_2 15)->0] t_2 0 15)", + "target": "(P_zeroed\n Mint_37[(shift_uint32 t_0 0)->0][(shift_uint32 t_0 1)->0]\n [(shift_uint32 t_0 2)->0][(shift_uint32 t_0 3)->0][(shift_uint32 t_0 4)\n ->0][(shift_uint32 t_0 5)->0][(shift_uint32 t_0 6)->0]\n [(shift_uint32 t_0 7)->0][(shift_uint32 t_0 8)->0][(shift_uint32 t_0 9)\n ->0][(shift_uint32 t_0 10)->0][(shift_uint32 t_0 11)->0]\n [(shift_uint32 t_0 12)->0][(shift_uint32 t_0 13)->0]\n [(shift_uint32 t_0 14)->0][(shift_uint32 t_0 15)->0] t_0 0 15)", "pattern": "P_zeroed[=]$t015[=]shift_uint320" }, "children": { "Unfold 'P_zeroed'": [ { "header": "Range", "tactic": "Wp.range", diff --git a/src/plugins/wp/tests/wp_tip/oracle/modmask.0.res.oracle b/src/plugins/wp/tests/wp_tip/oracle/modmask.0.res.oracle index dd1cd3edf7d9ef503650337d4d5bca8a6a5e038f..b65abf98b7fcfae08fcaf1c97159d599c8c10f3e 100644 --- a/src/plugins/wp/tests/wp_tip/oracle/modmask.0.res.oracle +++ b/src/plugins/wp/tests/wp_tip/oracle/modmask.0.res.oracle @@ -14,6 +14,7 @@ Prove: (is_uint16 us_0) -> ((us_0 mod 256)=(land 255 us_0)) ------------------------------------------------------------ +[wp] [Script] Goal typed_check_lemma_and_modulo_us_255 : Valid [wp:script:allgoals] typed_check_lemma_and_modulo_u subgoal: @@ -30,30 +31,13 @@ Prove: true. Prover Qed returns Valid - ------------------------------------------------------------ -[wp:script:allgoals] - typed_check_lemma_and_modulo_us_255 subgoal: - - Goal Wp.Tactical.typed_check_lemma_and_modulo_us_255-0 (generated): - Assume { Have: is_uint16(us_0). } - Prove: 0 <= us_0. - - ------------------------------------------------------------ -[wp] [Script] Goal typed_check_lemma_and_modulo_us_255 : Valid -[wp:script:allgoals] - typed_check_lemma_and_modulo_us_255 subgoal: - - Goal Wp.Tactical.typed_check_lemma_and_modulo_us_255-1 (generated): - Prove: true. - Prover Qed returns Valid - ------------------------------------------------------------ [wp:script:allgoals] typed_check_lemma_and_modulo_u subgoal: Goal Wp.Tactical.typed_check_lemma_and_modulo_u-2 (generated): - Assume { Have: 0 <= shift_0. Have: shift_0 <= 31. Have: is_uint32(us_0). } - Prove: 0 <= us_0. + Prove: true. + Prover Qed returns Valid ------------------------------------------------------------ [wp:script:allgoals] diff --git a/src/plugins/wp/tests/wp_tip/oracle/modmask.0.session/script/check_lemma_and_modulo_u.json b/src/plugins/wp/tests/wp_tip/oracle/modmask.0.session/script/check_lemma_and_modulo_u.json index e40e8863e3cf66cd9c1c3c6e4d1f0fa5d083d726..84b0af02539d9a89a4563ba38a73f7273b5d79b0 100644 --- a/src/plugins/wp/tests/wp_tip/oracle/modmask.0.session/script/check_lemma_and_modulo_u.json +++ b/src/plugins/wp/tests/wp_tip/oracle/modmask.0.session/script/check_lemma_and_modulo_u.json @@ -8,7 +8,9 @@ "select": { "select": "clause-goal", "target": "let x_0 = (lsl 1 shift_0) in\n(0<=us_0) /\\ (0<x_0) /\\ (exists i_0:int.\n ((lsl 1 i_0)=x_0) /\\ (0<=i_0))", "pattern": "&<=<\\E0$us0lsl1$shiftlsl011$shift" }, - "children": { "Goal 1/3": [ { "header": "Definition", + "children": { "Goal 1/3": [ { "prover": "qed", + "verdict": "valid" }, + { "header": "Definition", "tactic": "Wp.unfold", "params": {}, "select": diff --git a/src/plugins/wp/tests/wp_tip/oracle/modmask.0.session/script/check_lemma_and_modulo_us_255.json b/src/plugins/wp/tests/wp_tip/oracle/modmask.0.session/script/check_lemma_and_modulo_us_255.json index 0232433c576b0cb20e7c6108b28bec094abaa799..67fe782ea8a713724aaa08a6bd0215e2afe57bbf 100644 --- a/src/plugins/wp/tests/wp_tip/oracle/modmask.0.session/script/check_lemma_and_modulo_us_255.json +++ b/src/plugins/wp/tests/wp_tip/oracle/modmask.0.session/script/check_lemma_and_modulo_us_255.json @@ -2,7 +2,8 @@ "params": { "Wp.modmask.revert": false }, "select": { "select": "inside-goal", "occur": 0, "target": "us_0 mod 256", "pattern": "%$us256" }, - "children": { "Mask Guard": [ { "header": "Definition", + "children": { "Mask Guard": [ { "prover": "qed", "verdict": "valid" }, + { "header": "Definition", "tactic": "Wp.unfold", "params": {}, "select": { "select": "clause-step", "at": 0, "kind": "have", diff --git a/src/plugins/wp/tests/wp_tip/oracle/modmask.1.res.oracle b/src/plugins/wp/tests/wp_tip/oracle/modmask.1.res.oracle index dd1cd3edf7d9ef503650337d4d5bca8a6a5e038f..b65abf98b7fcfae08fcaf1c97159d599c8c10f3e 100644 --- a/src/plugins/wp/tests/wp_tip/oracle/modmask.1.res.oracle +++ b/src/plugins/wp/tests/wp_tip/oracle/modmask.1.res.oracle @@ -14,6 +14,7 @@ Prove: (is_uint16 us_0) -> ((us_0 mod 256)=(land 255 us_0)) ------------------------------------------------------------ +[wp] [Script] Goal typed_check_lemma_and_modulo_us_255 : Valid [wp:script:allgoals] typed_check_lemma_and_modulo_u subgoal: @@ -30,30 +31,13 @@ Prove: true. Prover Qed returns Valid - ------------------------------------------------------------ -[wp:script:allgoals] - typed_check_lemma_and_modulo_us_255 subgoal: - - Goal Wp.Tactical.typed_check_lemma_and_modulo_us_255-0 (generated): - Assume { Have: is_uint16(us_0). } - Prove: 0 <= us_0. - - ------------------------------------------------------------ -[wp] [Script] Goal typed_check_lemma_and_modulo_us_255 : Valid -[wp:script:allgoals] - typed_check_lemma_and_modulo_us_255 subgoal: - - Goal Wp.Tactical.typed_check_lemma_and_modulo_us_255-1 (generated): - Prove: true. - Prover Qed returns Valid - ------------------------------------------------------------ [wp:script:allgoals] typed_check_lemma_and_modulo_u subgoal: Goal Wp.Tactical.typed_check_lemma_and_modulo_u-2 (generated): - Assume { Have: 0 <= shift_0. Have: shift_0 <= 31. Have: is_uint32(us_0). } - Prove: 0 <= us_0. + Prove: true. + Prover Qed returns Valid ------------------------------------------------------------ [wp:script:allgoals] diff --git a/src/plugins/wp/tests/wp_tip/oracle/modmask.1.session/script/check_lemma_and_modulo_u.json b/src/plugins/wp/tests/wp_tip/oracle/modmask.1.session/script/check_lemma_and_modulo_u.json index 7d2e4b041e8f70d94528bc04cf06fc7d49bbbb6e..51fbe949924301501fb2a9aa26320303e520adaf 100644 --- a/src/plugins/wp/tests/wp_tip/oracle/modmask.1.session/script/check_lemma_and_modulo_u.json +++ b/src/plugins/wp/tests/wp_tip/oracle/modmask.1.session/script/check_lemma_and_modulo_u.json @@ -8,7 +8,9 @@ "select": { "select": "clause-goal", "target": "let x_0 = (lsl 1 shift_0) in\n(0<=us_0) /\\ (0<x_0) /\\ (exists i_0:int.\n ((lsl 1 i_0)=x_0) /\\ (0<=i_0))", "pattern": "&<=<\\E0$us0lsl1$shiftlsl011$shift" }, - "children": { "Goal 1/3": [ { "header": "Definition", + "children": { "Goal 1/3": [ { "prover": "qed", + "verdict": "valid" }, + { "header": "Definition", "tactic": "Wp.unfold", "params": {}, "select": diff --git a/src/plugins/wp/tests/wp_tip/oracle/modmask.1.session/script/check_lemma_and_modulo_us_255.json b/src/plugins/wp/tests/wp_tip/oracle/modmask.1.session/script/check_lemma_and_modulo_us_255.json index a56490bac7af0b6011890ef00ef38f25fa4cd251..c16388ade5d0163bb875e3e7640aa57f4b96b603 100644 --- a/src/plugins/wp/tests/wp_tip/oracle/modmask.1.session/script/check_lemma_and_modulo_us_255.json +++ b/src/plugins/wp/tests/wp_tip/oracle/modmask.1.session/script/check_lemma_and_modulo_us_255.json @@ -2,7 +2,8 @@ "params": { "Wp.modmask.revert": false }, "select": { "select": "inside-goal", "occur": 0, "target": "(land 255 us_0)", "pattern": "land255$us" }, - "children": { "Mod Guard": [ { "header": "Definition", + "children": { "Mod Guard": [ { "prover": "qed", "verdict": "valid" }, + { "header": "Definition", "tactic": "Wp.unfold", "params": {}, "select": { "select": "clause-step", "at": 0, "kind": "have", diff --git a/src/plugins/wp/tests/wp_tip/oracle_qualif/induction.0.session/script/lemma_ByInd.json b/src/plugins/wp/tests/wp_tip/oracle_qualif/induction.0.session/script/lemma_ByInd.json index 2a359dbab3ad22d87d88d11534edd84db6f4497e..77a4f51c832cb8e9d049e59dd20d0b4644788ff9 100644 --- a/src/plugins/wp/tests/wp_tip/oracle_qualif/induction.0.session/script/lemma_ByInd.json +++ b/src/plugins/wp/tests/wp_tip/oracle_qualif/induction.0.session/script/lemma_ByInd.json @@ -3,10 +3,10 @@ "select": { "select": "inside-goal", "occur": 0, "target": "(L_f x_0)", "pattern": "L_f$x" }, "children": { "Base": [ { "prover": "Alt-Ergo:2.2.0", "verdict": "valid", - "time": 0.0047, "steps": 6 } ], + "time": 0.0074, "steps": 6 } ], "Induction (sup)": [ { "prover": "Alt-Ergo:2.2.0", - "verdict": "valid", "time": 0.0041, + "verdict": "valid", "time": 0.0098, "steps": 21 } ], "Induction (inf)": [ { "prover": "Alt-Ergo:2.2.0", - "verdict": "valid", "time": 0.0054, + "verdict": "valid", "time": 0.0097, "steps": 20 } ] } } ] diff --git a/src/plugins/wp/tests/wp_tip/oracle_qualif/overflow.0.session/script/lemma_j_incr_char.json b/src/plugins/wp/tests/wp_tip/oracle_qualif/overflow.0.session/script/lemma_j_incr_char.json index 9ca995ee6234769c156b30223f2b7d8dcb67e964..255539ba9f34b22d89852d5659ffc0969380c9f1 100644 --- a/src/plugins/wp/tests/wp_tip/oracle_qualif/overflow.0.session/script/lemma_j_incr_char.json +++ b/src/plugins/wp/tests/wp_tip/oracle_qualif/overflow.0.session/script/lemma_j_incr_char.json @@ -5,7 +5,7 @@ "verdict": "valid", "time": 0.0094, "steps": 25 } ], "Lower": [ { "prover": "Alt-Ergo:2.2.0", - "verdict": "valid", "time": 0.0238, + "verdict": "valid", "time": 0.0157, "steps": 53 }, { "header": "Overflow", "tactic": "Wp.overflow", "params": {}, diff --git a/src/plugins/wp/tests/wp_tip/oracle_qualif/overflow.0.session/script/lemma_j_incr_short.json b/src/plugins/wp/tests/wp_tip/oracle_qualif/overflow.0.session/script/lemma_j_incr_short.json index b07a89798751525300ec38be4ef5de65ee73b4cb..97c383396b0c68dc8ea302b5db23e1fe35c93227 100644 --- a/src/plugins/wp/tests/wp_tip/oracle_qualif/overflow.0.session/script/lemma_j_incr_short.json +++ b/src/plugins/wp/tests/wp_tip/oracle_qualif/overflow.0.session/script/lemma_j_incr_short.json @@ -5,7 +5,7 @@ "verdict": "valid", "time": 0.0098, "steps": 25 } ], "Lower": [ { "prover": "Alt-Ergo:2.2.0", - "verdict": "valid", "time": 0.0248, + "verdict": "valid", "time": 0.0198, "steps": 54 }, { "header": "Overflow", "tactic": "Wp.overflow", "params": {}, diff --git a/src/plugins/wp/tests/wp_tip/oracle_qualif/unroll.0.session/script/lemma_LEFT.json b/src/plugins/wp/tests/wp_tip/oracle_qualif/unroll.0.session/script/lemma_LEFT.json index 885feb947bdb3b276a90fc8d54f807ae6dd76e79..cadd5e501016b03034d1b6c4b5778d254468abcd 100644 --- a/src/plugins/wp/tests/wp_tip/oracle_qualif/unroll.0.session/script/lemma_LEFT.json +++ b/src/plugins/wp/tests/wp_tip/oracle_qualif/unroll.0.session/script/lemma_LEFT.json @@ -1,5 +1,4 @@ -[ { "prover": "script", "verdict": "valid" }, - { "header": "Sequence", "tactic": "Wp.sequence", +[ { "header": "Sequence", "tactic": "Wp.sequence", "params": { "seq.side": "left" }, "select": { "select": "inside-goal", "occur": 0, "target": "(repeat a_0 n_0)", "pattern": "repeat$a$n" }, diff --git a/src/plugins/wp/tests/wp_tip/oracle_qualif/unroll.0.session/script/lemma_RIGHT.json b/src/plugins/wp/tests/wp_tip/oracle_qualif/unroll.0.session/script/lemma_RIGHT.json index 75e4064cdb6eb792772488a295e01855174a6132..2c6b678d138d5ffc43f3394c72fe508f44b8b8ec 100644 --- a/src/plugins/wp/tests/wp_tip/oracle_qualif/unroll.0.session/script/lemma_RIGHT.json +++ b/src/plugins/wp/tests/wp_tip/oracle_qualif/unroll.0.session/script/lemma_RIGHT.json @@ -1,5 +1,4 @@ -[ { "prover": "script", "verdict": "valid" }, - { "header": "Sequence", "tactic": "Wp.sequence", +[ { "header": "Sequence", "tactic": "Wp.sequence", "params": { "seq.side": "right" }, "select": { "select": "inside-goal", "occur": 0, "target": "(repeat a_0 n_0)", "pattern": "repeat$a$n" }, diff --git a/src/plugins/wp/tests/wp_tip/oracle_qualif/unroll.0.session/script/lemma_SUM.json b/src/plugins/wp/tests/wp_tip/oracle_qualif/unroll.0.session/script/lemma_SUM.json index 65a87aa59ca69040135319b35d107a49d773886a..60f8f7acd6cea516bf05aa93a1b4cdc243f49e83 100644 --- a/src/plugins/wp/tests/wp_tip/oracle_qualif/unroll.0.session/script/lemma_SUM.json +++ b/src/plugins/wp/tests/wp_tip/oracle_qualif/unroll.0.session/script/lemma_SUM.json @@ -1,5 +1,4 @@ -[ { "prover": "script", "verdict": "valid" }, - { "header": "Sequence", "tactic": "Wp.sequence", +[ { "header": "Sequence", "tactic": "Wp.sequence", "params": { "seq.side": "sum" }, "select": { "select": "inside-goal", "occur": 0, "target": "(repeat a_0 (p_0+q_0))", diff --git a/src/plugins/wp/tests/wp_typed/oracle/cast_fits.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/cast_fits.0.res.oracle index 207e9befdb79fe21441383cf88a6bebadced293d..91d993407e90198cfac7642dd37c622a3ba79925 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/cast_fits.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/cast_fits.0.res.oracle @@ -64,7 +64,7 @@ Goal Post-condition (file cast_fits.i, line 37) in 'fits4': Let x = Mchar_0[shiftfield_F6_c6(p)]. Let x_1 = Mchar_0[shiftfield_F3_c3(shift_S3(shiftfield_F5_ci5(p), 1))]. Assume { - Type: is_sint8(x) /\ is_sint32(x) /\ is_sint8(x_1). + Type: is_sint8(x) /\ is_sint8(x_1). (* Heap *) Type: (region(p.base) <= 0) /\ sconst(Mchar_0). } diff --git a/src/plugins/wp/tests/wp_typed/oracle/cast_fits.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/cast_fits.1.res.oracle index f456415436e1c7639e50fead09a66a353db816f1..76f3b9532f3c8ba5cf43aac5657b1af1bfd9d1c9 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/cast_fits.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/cast_fits.1.res.oracle @@ -64,7 +64,7 @@ Goal Post-condition (file cast_fits.i, line 37) in 'fits4': Let x = Mchar_0[shiftfield_F6_c6(p)]. Let x_1 = Mchar_0[shiftfield_F3_c3(shift_S3(shiftfield_F5_ci5(p), 1))]. Assume { - Type: is_sint8(x) /\ is_sint32(x) /\ is_sint8(x_1). + Type: is_sint8(x) /\ is_sint8(x_1). (* Heap *) Type: (region(p.base) <= 0) /\ sconst(Mchar_0). } diff --git a/src/plugins/wp/tests/wp_typed/oracle/shift_lemma.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/shift_lemma.0.res.oracle index 3161feeff647794efb090e0c7c0f7395ff304a68..652ab955538806f8246c98cc19cc31858a25b954 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/shift_lemma.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/shift_lemma.0.res.oracle @@ -31,7 +31,7 @@ Assume { (* Heap *) Type: region(p.base) <= 0. (* Goal *) - When: (0 <= i) /\ (i <= 9) /\ is_sint32(i). + When: (0 <= i) /\ (i <= 9). (* Pre-condition *) Have: P_inv(Mint_0, p). (* Assertion *) diff --git a/src/plugins/wp/tests/wp_typed/oracle/shift_lemma.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/shift_lemma.1.res.oracle index 67d2f08869b917c50e09654bbfbf7710c24b16eb..62c3c4fdabf0c30991d0dc18e9945ba998b981aa 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/shift_lemma.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/shift_lemma.1.res.oracle @@ -31,7 +31,7 @@ Assume { (* Heap *) Type: region(p.base) <= 0. (* Goal *) - When: (0 <= i) /\ (i <= 9) /\ is_sint32(i). + When: (0 <= i) /\ (i <= 9). (* Pre-condition *) Have: P_inv(Mint_0, p). (* Assertion *) diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_call.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_call.0.res.oracle index 7088dae230bb076c156e35ba64b86218710ae268..81b6a3c63eaa995bcb9d50e5a03e1cff6e779fd4 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_call.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_call.0.res.oracle @@ -9,13 +9,6 @@ ------------------------------------------------------------ Goal Assertion (file unit_call.i, line 14): -Assume { - Type: is_sint32(r_1) /\ is_sint32(r). - (* Call 'f' *) - Have: r < 0. - (* Call 'f' *) - Have: 0 < r_1. -} -Prove: r != r_1. +Prove: true. ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_call.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_call.1.res.oracle index 96fd464c7d661aba8da4e1b6b8c8939905c3d33e..70022706b9fbae3ba71f400040391c85dd2f61ae 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_call.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_call.1.res.oracle @@ -9,13 +9,6 @@ ------------------------------------------------------------ Goal Assertion (file unit_call.i, line 14): -Assume { - Type: is_sint32(r_1) /\ is_sint32(r). - (* Call 'f' *) - Have: r < 0. - (* Call 'f' *) - Have: 0 < r_1. -} -Prove: r != r_1. +Prove: true. ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_cast.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_cast.0.res.oracle index b8222c6a9e63711f4596018b136d7399ad70a120..c334ef3718ad2f469e9931a12cf58eab280775db 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_cast.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_cast.0.res.oracle @@ -12,8 +12,6 @@ Goal Assertion 'OUT' (file unit_cast.i, line 5): unit_cast.i:4: warning from Typed Model: - Warning: Hide sub-term definition Reason: Cast with incompatible pointers types (source: sint32*) (target: sint8*) -Let x = Mchar_0[w]. -Assume { Type: is_sint8(x). (* Heap *) Type: sconst(Mchar_0). } -Prove: x <= 255. +Prove: true. ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_cast.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_cast.1.res.oracle index 569fa012199a552edef54840ecb9189763856ed4..5d4f10b4737c1a8762185d5d66436e715bc2281d 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_cast.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_cast.1.res.oracle @@ -12,8 +12,6 @@ Goal Assertion 'OUT' (file unit_cast.i, line 5): unit_cast.i:4: warning from Typed Model: - Warning: Hide sub-term definition Reason: Cast with incompatible pointers types (source: sint32*) (target: sint8*) -Let x = Mchar_0[w]. -Assume { Type: is_sint8(x). (* Heap *) Type: sconst(Mchar_0). } -Prove: x <= 255. +Prove: true. ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_typed/oracle/user_bitwise.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/user_bitwise.0.res.oracle index ea0127e5c7dd06b90b62a784d82ab37136ae8a31..6f871cd6fc4d62ac24e925302c564e5ac6df812a 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/user_bitwise.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/user_bitwise.0.res.oracle @@ -16,7 +16,7 @@ Let x_1 = lsr(x, 31). Assume { Type: is_uint32(x) /\ is_uint32(x_1). (* Goal *) - When: (0 <= i) /\ (i <= 30) /\ is_sint32(i). + When: (0 <= i) /\ (i <= 30). } Prove: (land(lor(x_1, to_uint32(lsl(x, 1))), lsl(1, 1 + i)) != 0) <-> (land(x, lsl(1, i)) != 0). @@ -32,7 +32,7 @@ Let x_2 = lsr(x, 32 - n). Assume { Type: is_uint32(x) /\ is_sint32(n) /\ is_uint32(x_2). (* Goal *) - When: (0 <= i) /\ (i < n) /\ is_sint32(i). + When: (0 <= i) /\ (i < n). (* Pre-condition 'r' *) Have: (0 < n) /\ (n <= 31). } @@ -65,7 +65,7 @@ Let x_2 = lsr(x, 64 - n). Assume { Type: is_sint32(n) /\ is_uint64(x) /\ is_uint64(x_2). (* Goal *) - When: (0 <= i) /\ (i < n) /\ is_sint32(i). + When: (0 <= i) /\ (i < n). (* Pre-condition 'r' *) Have: (0 < n) /\ (n <= 63). } @@ -103,7 +103,7 @@ Let x_1 = lsr(x, 1). Assume { Type: is_uint32(x) /\ is_uint32(x_1). (* Goal *) - When: (0 <= i) /\ (i <= 30) /\ is_sint32(i). + When: (0 <= i) /\ (i <= 30). } Prove: (land(lor(x_1, to_uint32(lsl(x, 31))), lsl(1, i)) != 0) <-> (land(x, lsl(1, 1 + i)) != 0). @@ -119,7 +119,7 @@ Let x_2 = -n. Assume { Type: is_uint32(x) /\ is_sint32(n) /\ is_uint32(x_1). (* Goal *) - When: (0 <= i) /\ (i < n) /\ is_sint32(i). + When: (0 <= i) /\ (i < n). (* Pre-condition 'r' *) Have: (0 < n) /\ (n <= 31). } @@ -152,7 +152,7 @@ Let x_2 = -n. Assume { Type: is_sint32(n) /\ is_uint64(x) /\ is_uint64(x_1). (* Goal *) - When: (0 <= i) /\ (i < n) /\ is_sint32(i). + When: (0 <= i) /\ (i < n). (* Pre-condition 'r' *) Have: (0 < n) /\ (n <= 63). } diff --git a/src/plugins/wp/tests/wp_typed/oracle/user_collect.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/user_collect.0.res.oracle index 4f262f161254f1b344217bfc2758b944c554031c..557801a559852a34dc42cbdb76461febdfc245a5 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/user_collect.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/user_collect.0.res.oracle @@ -51,24 +51,13 @@ Prove: x2_0 = v. Goal Instance of 'Pre-condition (file user_collect.i, line 15) in 'job'' in 'caller' at call 'job' (file user_collect.i, line 57) : -Assume { Type: is_sint32(k). (* Pre-condition *) Have: (0 <= k) /\ (k <= 8). -} -Prove: k <= 9. +Prove: true. ------------------------------------------------------------ Goal Instance of 'Pre-condition (file user_collect.i, line 15) in 'job'' in 'caller' at call 'job' (file user_collect.i, line 58) : -Let m = p[k <- v]. -Assume { - Type: IsArray_sint32(p) /\ is_sint32(k) /\ is_sint32(x1_0) /\ - IsArray_sint32(m) /\ is_sint32(1 + k). - (* Pre-condition *) - Have: (0 <= k) /\ (k <= 8). - (* Call 'job' *) - Have: (k <= 9) /\ EqArray_int(10, m, p[k <- x1_0]). -} -Prove: (-1) <= k. +Prove: true. ------------------------------------------------------------ ------------------------------------------------------------ @@ -140,24 +129,13 @@ Prove: EqArray_S1_S(10, m_1, m_2[k <- s2_0]). Goal Instance of 'Pre-condition (file user_collect.i, line 26) in 'job2'' in 'caller2' at call 'job2' (file user_collect.i, line 70) : -Assume { Type: is_sint32(k). (* Pre-condition *) Have: (0 <= k) /\ (k <= 8). -} -Prove: k <= 9. +Prove: true. ------------------------------------------------------------ Goal Instance of 'Pre-condition (file user_collect.i, line 26) in 'job2'' in 'caller2' at call 'job2' (file user_collect.i, line 71) : -Let m = q[k <- v]. -Assume { - Type: IsArray_S1_S(q) /\ IsS1_S(s1_0) /\ is_sint32(k) /\ IsArray_S1_S(m) /\ - is_sint32(1 + k). - (* Pre-condition *) - Have: (0 <= k) /\ (k <= 8). - (* Call 'job2' *) - Have: (k <= 9) /\ EqArray_S1_S(10, m, q[k <- s1_0]). -} -Prove: (-1) <= k. +Prove: true. ------------------------------------------------------------ ------------------------------------------------------------ @@ -229,24 +207,13 @@ Prove: EqArray_S1_S(10, m_1, m_2[k <- s2_0]). Goal Instance of 'Pre-condition (file user_collect.i, line 37) in 'job3'' in 'caller3' at call 'job3' (file user_collect.i, line 83) : -Assume { Type: is_sint32(k). (* Pre-condition *) Have: (0 <= k) /\ (k <= 8). -} -Prove: k <= 9. +Prove: true. ------------------------------------------------------------ Goal Instance of 'Pre-condition (file user_collect.i, line 37) in 'job3'' in 'caller3' at call 'job3' (file user_collect.i, line 84) : -Let m = q[k <- v]. -Assume { - Type: IsArray_S1_S(q) /\ IsS1_S(s1_0) /\ is_sint32(k) /\ IsArray_S1_S(m) /\ - is_sint32(1 + k). - (* Pre-condition *) - Have: (0 <= k) /\ (k <= 8). - (* Call 'job3' *) - Have: (k <= 9) /\ EqArray_S1_S(10, m, q[k <- s1_0]). -} -Prove: (-1) <= k. +Prove: true. ------------------------------------------------------------ ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_typed/oracle/user_collect.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/user_collect.1.res.oracle index a96c98731e45f72d2106339b9b9ca016604b8ded..0cc485057a91f86a7a1e48c1024cfe329cae413e 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/user_collect.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/user_collect.1.res.oracle @@ -51,24 +51,13 @@ Prove: x2_0 = v. Goal Instance of 'Pre-condition (file user_collect.i, line 15) in 'job'' in 'caller' at call 'job' (file user_collect.i, line 57) : -Assume { Type: is_sint32(k). (* Pre-condition *) Have: (0 <= k) /\ (k <= 8). -} -Prove: k <= 9. +Prove: true. ------------------------------------------------------------ Goal Instance of 'Pre-condition (file user_collect.i, line 15) in 'job'' in 'caller' at call 'job' (file user_collect.i, line 58) : -Let m = p[k <- v]. -Assume { - Type: IsArray_sint32(p) /\ is_sint32(k) /\ is_sint32(x1_0) /\ - IsArray_sint32(m) /\ is_sint32(1 + k). - (* Pre-condition *) - Have: (0 <= k) /\ (k <= 8). - (* Call 'job' *) - Have: (k <= 9) /\ EqArray_int(10, m, p[k <- x1_0]). -} -Prove: (-1) <= k. +Prove: true. ------------------------------------------------------------ ------------------------------------------------------------ @@ -140,24 +129,13 @@ Prove: EqArray_S1_S(10, m_1, m_2[k <- s2_0]). Goal Instance of 'Pre-condition (file user_collect.i, line 26) in 'job2'' in 'caller2' at call 'job2' (file user_collect.i, line 70) : -Assume { Type: is_sint32(k). (* Pre-condition *) Have: (0 <= k) /\ (k <= 8). -} -Prove: k <= 9. +Prove: true. ------------------------------------------------------------ Goal Instance of 'Pre-condition (file user_collect.i, line 26) in 'job2'' in 'caller2' at call 'job2' (file user_collect.i, line 71) : -Let m = q[k <- v]. -Assume { - Type: IsArray_S1_S(q) /\ IsS1_S(s1_0) /\ is_sint32(k) /\ IsArray_S1_S(m) /\ - is_sint32(1 + k). - (* Pre-condition *) - Have: (0 <= k) /\ (k <= 8). - (* Call 'job2' *) - Have: (k <= 9) /\ EqArray_S1_S(10, m, q[k <- s1_0]). -} -Prove: (-1) <= k. +Prove: true. ------------------------------------------------------------ ------------------------------------------------------------ @@ -229,24 +207,13 @@ Prove: EqArray_S1_S(10, m_1, m_2[k <- s2_0]). Goal Instance of 'Pre-condition (file user_collect.i, line 37) in 'job3'' in 'caller3' at call 'job3' (file user_collect.i, line 83) : -Assume { Type: is_sint32(k). (* Pre-condition *) Have: (0 <= k) /\ (k <= 8). -} -Prove: k <= 9. +Prove: true. ------------------------------------------------------------ Goal Instance of 'Pre-condition (file user_collect.i, line 37) in 'job3'' in 'caller3' at call 'job3' (file user_collect.i, line 84) : -Let m = q[k <- v]. -Assume { - Type: IsArray_S1_S(q) /\ IsS1_S(s1_0) /\ is_sint32(k) /\ IsArray_S1_S(m) /\ - is_sint32(1 + k). - (* Pre-condition *) - Have: (0 <= k) /\ (k <= 8). - (* Call 'job3' *) - Have: (k <= 9) /\ EqArray_S1_S(10, m, q[k <- s1_0]). -} -Prove: (-1) <= k. +Prove: true. ------------------------------------------------------------ ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_typed/oracle/user_init.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/user_init.0.res.oracle index 3941f8836e33495cea3f23d2e0b01ce118191efc..39e37a366cc59e64e9fe4893c56902f393af1c6e 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/user_init.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/user_init.0.res.oracle @@ -18,7 +18,7 @@ Assume { (* Heap *) Type: (region(a.base) <= 0) /\ linked(Malloc_0). (* Goal *) - When: (0 <= i_1) /\ (i_1 < n) /\ is_sint32(i_1). + When: (0 <= i_1) /\ (i_1 < n). (* Pre-condition *) Have: valid_rw(Malloc_0, a_1, n). (* Invariant 'Range' *) @@ -43,7 +43,7 @@ Assume { (* Heap *) Type: (region(a.base) <= 0) /\ linked(Malloc_0). (* Goal *) - When: (i_1 <= i) /\ (0 <= i_1) /\ is_sint32(i_1). + When: (i_1 <= i) /\ (0 <= i_1). (* Pre-condition *) Have: valid_rw(Malloc_0, a_1, n). (* Invariant 'Range' *) @@ -68,24 +68,7 @@ Prove: true. ------------------------------------------------------------ Goal Preservation of Invariant 'Range' (file user_init.i, line 16): -Let a_1 = shift_sint32(a, 0). -Assume { - Type: is_sint32(i) /\ is_sint32(n) /\ is_sint32(1 + i). - (* Heap *) - Type: (region(a.base) <= 0) /\ linked(Malloc_0). - (* Pre-condition *) - Have: valid_rw(Malloc_0, a_1, n). - (* Invariant 'Range' *) - Have: 0 <= n. - (* Invariant 'Range' *) - Have: (0 <= i) /\ (i <= n). - (* Invariant 'Partial' *) - Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 < i) -> - (havoc(Mint_undef_0, Mint_0, a_1, n)[shift_sint32(a, i_1)] = v))). - (* Then *) - Have: i < n. -} -Prove: (-1) <= i. +Prove: true. ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_typed/oracle/user_init.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/user_init.1.res.oracle index df2b7d55d13f031670627d5d6f609d33a08926eb..418fe8936dd4043f4655d28fc42f1a71cdbe472b 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/user_init.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/user_init.1.res.oracle @@ -18,7 +18,7 @@ Assume { (* Heap *) Type: (region(a.base) <= 0) /\ linked(Malloc_0). (* Goal *) - When: (0 <= i_1) /\ (i_1 < n) /\ is_sint32(i_1). + When: (0 <= i_1) /\ (i_1 < n). (* Pre-condition *) Have: valid_rw(Malloc_0, a_1, n). (* Invariant 'Range' *) @@ -43,7 +43,7 @@ Assume { (* Heap *) Type: (region(a.base) <= 0) /\ linked(Malloc_0). (* Goal *) - When: (i_1 <= i) /\ (0 <= i_1) /\ is_sint32(i_1). + When: (i_1 <= i) /\ (0 <= i_1). (* Pre-condition *) Have: valid_rw(Malloc_0, a_1, n). (* Invariant 'Range' *) @@ -68,24 +68,7 @@ Prove: true. ------------------------------------------------------------ Goal Preservation of Invariant 'Range' (file user_init.i, line 16): -Let a_1 = shift_sint32(a, 0). -Assume { - Type: is_sint32(i) /\ is_sint32(n) /\ is_sint32(1 + i). - (* Heap *) - Type: (region(a.base) <= 0) /\ linked(Malloc_0). - (* Pre-condition *) - Have: valid_rw(Malloc_0, a_1, n). - (* Invariant 'Range' *) - Have: 0 <= n. - (* Invariant 'Range' *) - Have: (0 <= i) /\ (i <= n). - (* Invariant 'Partial' *) - Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 < i) -> - (havoc(Mint_undef_0, Mint_0, a_1, n)[shift_sint32(a, i_1)] = v))). - (* Then *) - Have: i < n. -} -Prove: (-1) <= i. +Prove: true. ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_typed/oracle/user_rec.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/user_rec.0.res.oracle index 409348e3f43cc5f6baf5e91d530c0238a2f03c19..a0ad9eb6560ad6a0eb083c7c994e98c4fab964e8 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/user_rec.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/user_rec.0.res.oracle @@ -45,27 +45,12 @@ Prove: L_fact(n) = F1_0. ------------------------------------------------------------ Goal Preservation of Invariant (file user_rec.i, line 15): -Assume { - Type: is_sint32(i) /\ is_sint32(n) /\ is_sint32(1 + i) /\ - is_sint32(L_fact(i - 1)). - (* Else *) - Have: 2 <= n. - (* Invariant *) - Have: 0 < n. - (* Invariant *) - Have: L_fact(1) = 1. - (* Invariant *) - Have: (2 <= i) /\ (i <= (1 + n)). - (* Then *) - Have: i <= n. -} -Prove: 0 < i. +Prove: true. ------------------------------------------------------------ Goal Establishment of Invariant (file user_rec.i, line 15): -Assume { Type: is_sint32(n). (* Else *) Have: 2 <= n. } -Prove: 0 < n. +Prove: true. ------------------------------------------------------------ @@ -181,8 +166,7 @@ Prove: if (n <= 1) then (i = 1) else (0 < i). ------------------------------------------------------------ Goal Establishment of Invariant 'RANGE' (file user_rec.i, line 28): -Assume { Type: is_sint32(n). } -Prove: (0 < n) \/ (n <= 1). +Prove: true. ------------------------------------------------------------ @@ -270,8 +254,7 @@ Prove: if (n <= 1) then (x_1 = n_1) else (n_1 <= x_1). ------------------------------------------------------------ Goal Establishment of Invariant 'RANGE' (file user_rec.i, line 41): -Assume { Type: is_sint32(n). } -Prove: (0 < n) \/ (n <= 1). +Prove: true. ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_typed/oracle/user_rec.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/user_rec.1.res.oracle index 56da8ae60125b5030fabb2fcc1b26daaae7c89fb..f5f40e3f1169944a0c2c8409db455eed6d2d053b 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/user_rec.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/user_rec.1.res.oracle @@ -45,27 +45,12 @@ Prove: L_fact(n) = F1_0. ------------------------------------------------------------ Goal Preservation of Invariant (file user_rec.i, line 15): -Assume { - Type: is_sint32(i) /\ is_sint32(n) /\ is_sint32(1 + i) /\ - is_sint32(L_fact(i - 1)). - (* Else *) - Have: 2 <= n. - (* Invariant *) - Have: 0 < n. - (* Invariant *) - Have: L_fact(1) = 1. - (* Invariant *) - Have: (2 <= i) /\ (i <= (1 + n)). - (* Then *) - Have: i <= n. -} -Prove: 0 < i. +Prove: true. ------------------------------------------------------------ Goal Establishment of Invariant (file user_rec.i, line 15): -Assume { Type: is_sint32(n). (* Else *) Have: 2 <= n. } -Prove: 0 < n. +Prove: true. ------------------------------------------------------------ @@ -181,8 +166,7 @@ Prove: if (n <= 1) then (i = 1) else (0 < i). ------------------------------------------------------------ Goal Establishment of Invariant 'RANGE' (file user_rec.i, line 28): -Assume { Type: is_sint32(n). } -Prove: (0 < n) \/ (n <= 1). +Prove: true. ------------------------------------------------------------ @@ -270,8 +254,7 @@ Prove: if (n <= 1) then (x_1 = n_1) else (n_1 <= x_1). ------------------------------------------------------------ Goal Establishment of Invariant 'RANGE' (file user_rec.i, line 41): -Assume { Type: is_sint32(n). } -Prove: (0 < n) \/ (n <= 1). +Prove: true. ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_call.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_call.res.oracle index db9cadfc9678a6f80d4af03f0636f8e3bfc4a625..764c77ab83c3656ea9e0dc9daa4c6cdc74f9add3 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_call.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_call.res.oracle @@ -5,11 +5,10 @@ No code nor implicit assigns clause for function f, generating default assigns from the prototype [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Alt-Ergo] Goal typed_job_assert : Valid +[wp] [Qed] Goal typed_job_assert : Valid [wp] Proved goals: 1 / 1 - Qed: 0 - Alt-Ergo: 1 + Qed: 1 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - job - 1 1 100% + job 1 - 1 100% ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_cast.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_cast.res.oracle index 8bfa5ac6000ca0903dd92d29100a3389678b89bc..a64f3428fb96e557ff0b662416073aeb092a44a1 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_cast.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_cast.res.oracle @@ -5,11 +5,10 @@ [wp] unit_cast.i:4: Warning: Cast with incompatible pointers types (source: sint32*) (target: sint8*) [wp] 1 goal scheduled -[wp] [Alt-Ergo] Goal typed_f_assert_OUT : Valid +[wp] [Qed] Goal typed_f_assert_OUT : Valid [wp] Proved goals: 1 / 1 - Qed: 0 - Alt-Ergo: 1 + Qed: 1 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - f - 1 1 100% + f 1 - 1 100% ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_collect.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_collect.res.oracle index 66c3467dac6402c11221309cd39da4377c2b1399..2b77015db8f380ff4d15f77143db07e7c94b81ac 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_collect.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_collect.res.oracle @@ -21,29 +21,29 @@ [wp] [Qed] Goal typed_caller_ensures_K : Valid [wp] [Alt-Ergo] Goal typed_caller_ensures_P1 : Valid [wp] [Alt-Ergo] Goal typed_caller_ensures_P2 : Valid -[wp] [Alt-Ergo] Goal typed_caller_call_job_requires : Valid -[wp] [Alt-Ergo] Goal typed_caller_call_job_2_requires : Valid +[wp] [Qed] Goal typed_caller_call_job_requires : Valid +[wp] [Qed] Goal typed_caller_call_job_2_requires : Valid [wp] [Qed] Goal typed_caller2_ensures_K : Valid [wp] [Alt-Ergo] Goal typed_caller2_ensures_Q1 : Valid [wp] [Alt-Ergo] Goal typed_caller2_ensures_Q2 : Valid [wp] [Alt-Ergo] Goal typed_caller2_ensures_R : Valid -[wp] [Alt-Ergo] Goal typed_caller2_call_job2_requires : Valid -[wp] [Alt-Ergo] Goal typed_caller2_call_job2_2_requires : Valid +[wp] [Qed] Goal typed_caller2_call_job2_requires : Valid +[wp] [Qed] Goal typed_caller2_call_job2_2_requires : Valid [wp] [Qed] Goal typed_caller3_ensures_K : Valid [wp] [Alt-Ergo] Goal typed_caller3_ensures_Q1 : Valid [wp] [Alt-Ergo] Goal typed_caller3_ensures_Q2 : Valid [wp] [Alt-Ergo] Goal typed_caller3_ensures_R : Valid -[wp] [Alt-Ergo] Goal typed_caller3_call_job3_requires : Valid -[wp] [Alt-Ergo] Goal typed_caller3_call_job3_2_requires : Valid +[wp] [Qed] Goal typed_caller3_call_job3_requires : Valid +[wp] [Qed] Goal typed_caller3_call_job3_2_requires : Valid [wp] Proved goals: 32 / 32 - Qed: 17 - Alt-Ergo: 15 + Qed: 23 + Alt-Ergo: 9 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success job 5 - 5 100% job2 5 - 5 100% job3 4 1 5 100% - caller 1 4 5 100% - caller2 1 5 6 100% - caller3 1 5 6 100% + caller 3 2 5 100% + caller2 3 3 6 100% + caller3 3 3 6 100% ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.0.res.oracle index 6ac1e79c7df3e5bf433947a28cf46fea7691b115..03608893948267aa0621d6f529a4c5f445a8509a 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.0.res.oracle @@ -11,7 +11,7 @@ [wp] [Alt-Ergo] Goal typed_init_ensures : Valid [wp] [Alt-Ergo] Goal typed_init_loop_invariant_Partial_preserved : Valid [wp] [Qed] Goal typed_init_loop_invariant_Partial_established : Valid -[wp] [Alt-Ergo] Goal typed_init_loop_invariant_Range_preserved : Valid +[wp] [Qed] Goal typed_init_loop_invariant_Range_preserved : Valid [wp] [Qed] Goal typed_init_loop_invariant_Range_established : Valid [wp] [Qed] Goal typed_init_loop_assigns_part1 : Valid [wp] [Qed] Goal typed_init_loop_assigns_part2 : Valid @@ -101,11 +101,11 @@ [wp] [Qed] Goal typed_init_t2_bis_v2_call_init_requires : Valid [wp] [Qed] Goal typed_init_t2_bis_v2_call_init_requires_2 : Valid [wp] Proved goals: 97 / 97 - Qed: 52 - Alt-Ergo: 40 + Qed: 53 + Alt-Ergo: 39 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - init 7 4 11 100% + init 8 3 11 100% init_t1 6 4 10 100% init_t2_v1 9 8 17 100% init_t2_v2 9 8 17 100% diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_rec.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_rec.res.oracle index 303439c8d14682fb72b73fae8a4454377c6728da..e5acf75e0c54333f32b8eb415037cb422f1bf4b1 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_rec.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_rec.res.oracle @@ -4,8 +4,8 @@ [wp] Warning: Missing RTE guards [wp] 18 goals scheduled [wp] [Alt-Ergo] Goal typed_F1_ensures : Valid -[wp] [Alt-Ergo] Goal typed_F1_loop_invariant_preserved : Valid -[wp] [Alt-Ergo] Goal typed_F1_loop_invariant_established : Valid +[wp] [Qed] Goal typed_F1_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_F1_loop_invariant_established : Valid [wp] [Alt-Ergo] Goal typed_F1_loop_invariant_2_preserved : Valid [wp] [Alt-Ergo] Goal typed_F1_loop_invariant_2_established : Valid [wp] [Qed] Goal typed_F1_loop_assigns : Valid @@ -13,20 +13,20 @@ [wp] [Alt-Ergo] Goal typed_F2_loop_invariant_PART_preserved : Valid [wp] [Alt-Ergo] Goal typed_F2_loop_invariant_PART_established : Valid [wp] [Alt-Ergo] Goal typed_F2_loop_invariant_RANGE_preserved : Valid -[wp] [Alt-Ergo] Goal typed_F2_loop_invariant_RANGE_established : Valid +[wp] [Qed] Goal typed_F2_loop_invariant_RANGE_established : Valid [wp] [Qed] Goal typed_F2_loop_assigns : Valid [wp] [Alt-Ergo] Goal typed_F4_ensures : Valid [wp] [Alt-Ergo] Goal typed_F4_loop_invariant_NEVER_preserved : Valid [wp] [Alt-Ergo] Goal typed_F4_loop_invariant_NEVER_established : Valid [wp] [Alt-Ergo] Goal typed_F4_loop_invariant_RANGE_preserved : Valid -[wp] [Alt-Ergo] Goal typed_F4_loop_invariant_RANGE_established : Valid +[wp] [Qed] Goal typed_F4_loop_invariant_RANGE_established : Valid [wp] [Qed] Goal typed_F4_loop_assigns : Valid [wp] Proved goals: 18 / 18 - Qed: 3 - Alt-Ergo: 15 + Qed: 7 + Alt-Ergo: 11 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - F1 1 5 6 100% - F2 1 5 6 100% - F4 1 5 6 100% + F1 3 3 6 100% + F2 2 4 6 100% + F4 2 4 6 100% ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_usage/oracle/caveat2.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/caveat2.res.oracle index 2389a4fcd586f975c134e67c237dafd499d11824..fbc663bb95acbeac2fcb60827b93d357b57d006a 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/caveat2.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/caveat2.res.oracle @@ -41,24 +41,7 @@ Prove: Mint_0[shift_sint32(a, i)] = v[i]. ------------------------------------------------------------ Goal Preservation of Invariant (file caveat2.i, line 21): -Assume { - Type: is_sint32(i) /\ is_sint32(n) /\ is_sint32(1 + i). - (* Pre-condition *) - Have: n <= 3. - Have: ({ Init_p_0 with Init_F1_S_n = true }) = Init_p_0. - (* Invariant *) - Have: 0 <= n. - (* Loop assigns ... *) - Have: ({ Init_p_0 with Init_F1_S_a = v }) = Init_p_0. - (* Invariant *) - Have: (0 <= i) /\ (i <= n). - (* Invariant *) - Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 < i) -> - (Mint_0[shift_sint32(global(G_b_26), i_1)] = v_1[i_1]))). - (* Then *) - Have: i < n. -} -Prove: (-1) <= i. +Prove: true. ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_usage/oracle/caveat_range.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/caveat_range.res.oracle index 82c8bbe685e4f64775f367b669c89d585e07a23c..8411b76b58db2c71fdfa5e787b3a7c09794680cf 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/caveat_range.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/caveat_range.res.oracle @@ -51,22 +51,7 @@ Prove: a_1[shiftfield_F1_S_g(shift_S1_S(a, i))] = 2. ------------------------------------------------------------ Goal Preservation of Invariant (file caveat_range.i, line 19): -Let a = global(G_p_22). -Let a_1 = havoc(Mint_undef_0, Mint_0, shift_S1_S(a, 0), 20). -Assume { - Type: is_sint32(i) /\ is_sint32(1 + i). - (* Invariant *) - Have: (0 <= i) /\ (i <= 10). - (* Invariant *) - Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 < i) -> - (a_1[shiftfield_F1_S_f(shift_S1_S(a, i_1))] = 1))). - (* Invariant *) - Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 < i) -> - (a_1[shiftfield_F1_S_g(shift_S1_S(a, i_1))] = 2))). - (* Then *) - Have: i <= 9. -} -Prove: (-1) <= i. +Prove: true. ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat2.res.oracle b/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat2.res.oracle index 47170bfb5f1ba9b6be9395dfe482e1cbe04ef482..1797f0fdbbb7a1c740799dd113168dba2f61f0e3 100644 --- a/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat2.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat2.res.oracle @@ -6,7 +6,7 @@ [wp] 9 goals scheduled [wp] [Qed] Goal typed_caveat_job_ensures_N : Valid [wp] [Alt-Ergo] Goal typed_caveat_job_ensures_A : Valid -[wp] [Alt-Ergo] Goal typed_caveat_job_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_caveat_job_loop_invariant_preserved : Valid [wp] [Qed] Goal typed_caveat_job_loop_invariant_established : Valid [wp] [Alt-Ergo] Goal typed_caveat_job_loop_invariant_2_preserved : Valid [wp] [Qed] Goal typed_caveat_job_loop_invariant_2_established : Valid @@ -14,11 +14,11 @@ [wp] [Qed] Goal typed_caveat_job_assigns_part1 : Valid [wp] [Qed] Goal typed_caveat_job_assigns_part2 : Valid [wp] Proved goals: 9 / 9 - Qed: 6 - Alt-Ergo: 3 + Qed: 7 + Alt-Ergo: 2 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - job 6 3 9 100% + job 7 2 9 100% ------------------------------------------------------------ [wp] caveat2.i:17: Warning: Memory model hypotheses for function 'job': diff --git a/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat_range.res.oracle b/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat_range.res.oracle index 308353df0fe312ab678317f2893c12542649462d..4dd118b0742599e74b2c21bcfc012590ee771f5f 100644 --- a/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat_range.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat_range.res.oracle @@ -5,7 +5,7 @@ [wp] 12 goals scheduled [wp] [Alt-Ergo] Goal typed_caveat_reset_ensures : Valid [wp] [Alt-Ergo] Goal typed_caveat_reset_ensures_2 : Valid -[wp] [Alt-Ergo] Goal typed_caveat_reset_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_caveat_reset_loop_invariant_preserved : Valid [wp] [Qed] Goal typed_caveat_reset_loop_invariant_established : Valid [wp] [Alt-Ergo] Goal typed_caveat_reset_loop_invariant_2_preserved : Valid [wp] [Qed] Goal typed_caveat_reset_loop_invariant_2_established : Valid @@ -16,11 +16,11 @@ [wp] [Qed] Goal typed_caveat_reset_loop_assigns_part3 : Valid [wp] [Qed] Goal typed_caveat_reset_assigns : Valid [wp] Proved goals: 12 / 12 - Qed: 7 - Alt-Ergo: 5 + Qed: 8 + Alt-Ergo: 4 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - reset 7 5 12 100% + reset 8 4 12 100% ------------------------------------------------------------ [wp] caveat_range.i:16: Warning: Memory model hypotheses for function 'reset':