diff --git a/Makefile b/Makefile index 33a67f1597a66546ae488bd42802c6ff9c7ae115..62da0160b06b00127cd4a487da4e77d2e5a8486b 100644 --- a/Makefile +++ b/Makefile @@ -430,6 +430,7 @@ LIB_CMO =\ src/libraries/datatype/type \ src/libraries/datatype/descr \ src/libraries/utils/filepath \ + src/libraries/utils/sanitizer \ src/libraries/utils/pretty_utils \ src/libraries/utils/hook \ src/libraries/utils/bag \ diff --git a/headers/header_spec.txt b/headers/header_spec.txt index 0a279499223744d29686aa8da1ff084dab09e751..80fdaba048b40b8b8a639b45aa48a1aa6e8077dc 100644 --- a/headers/header_spec.txt +++ b/headers/header_spec.txt @@ -667,12 +667,16 @@ src/libraries/utils/pretty_utils.ml: CEA_LGPL src/libraries/utils/pretty_utils.mli: CEA_LGPL src/libraries/utils/qstack.ml: CEA_LGPL src/libraries/utils/qstack.mli: CEA_LGPL +src/libraries/utils/sanitizer.ml: CEA_LGPL +src/libraries/utils/sanitizer.mli: CEA_LGPL src/libraries/utils/rangemap.ml: OCAML_STDLIB src/libraries/utils/rangemap.mli: OCAML_STDLIB src/libraries/utils/rgmap.ml: CEA_LGPL src/libraries/utils/rgmap.mli: CEA_LGPL src/libraries/utils/rich_text.ml: CEA_LGPL src/libraries/utils/rich_text.mli: CEA_LGPL +src/libraries/utils/sanitizer.ml: CEA_LGPL +src/libraries/utils/sanitizer.mli: CEA_LGPL src/libraries/utils/task.ml: CEA_LGPL src/libraries/utils/task.mli: CEA_LGPL src/libraries/utils/unicode.ml: CEA_LGPL @@ -999,8 +1003,6 @@ src/plugins/report/csv.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/report/csv.mli: CEA_LGPL_OR_PROPRIETARY src/plugins/report/dump.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/report/dump.mli: CEA_LGPL_OR_PROPRIETARY -src/plugins/report/property_names.ml: CEA_LGPL_OR_PROPRIETARY -src/plugins/report/property_names.mli: CEA_LGPL_OR_PROPRIETARY src/plugins/report/register.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/report/register.mli: CEA_LGPL_OR_PROPRIETARY src/plugins/report/report_parameters.ml: CEA_LGPL_OR_PROPRIETARY diff --git a/share/analysis-scripts/frama-c.mk b/share/analysis-scripts/frama-c.mk index 6f0ec68c482eabf8234d60eefabfeecb41fae351..3da9f1cf65582a904f5e2903fb7f0cf3adffa336 100644 --- a/share/analysis-scripts/frama-c.mk +++ b/share/analysis-scripts/frama-c.mk @@ -186,16 +186,17 @@ SHELL := /bin/bash $(EVA) \ -load $(PARSE_RESULT)/framac.sav -save $@/framac.sav \ -eva-flamegraph $@/flamegraph.txt \ - -report-csv $@/alarms.csv -report-no-proven \ -kernel-log w:$@/warnings.log \ -from-log w:$@/warnings.log \ -inout-log w:$@/warnings.log \ - -report-log w:$@/warnings.log \ -scope-log w:$@/warnings.log \ -eva-log w:$@/warnings.log \ - -metrics-log a:$@/metrics.log \ + -then \ + -report-csv $@/alarms.csv -report-no-proven \ + -report-log w:$@/warnings.log \ -metrics-eva-cover \ - -then -nonterm -nonterm-log a:$@/nonterm.log \ + -metrics-log a:$@/metrics.log \ + -nonterm -nonterm-log a:$@/nonterm.log \ || ($(RM) $@/stats.txt && false) # Prevents having error code reporting in stats.txt } 2>&1 | $(SED_UNBUFFERED) '/\[eva\] Values at end of function/,999999d' | diff --git a/src/kernel_services/ast_data/property.ml b/src/kernel_services/ast_data/property.ml index 4b49226f70f318ca3b60565b60509917e2c86f86..233e4c4162cc2af8bc76e1bd0e600d2958777741 100644 --- a/src/kernel_services/ast_data/property.ml +++ b/src/kernel_services/ast_data/property.ml @@ -34,9 +34,9 @@ type identified_code_annotation = kernel_function * stmt * code_annotation type identified_allocation = - kernel_function - * kinstr - * behavior_or_loop + kernel_function + * kinstr + * behavior_or_loop * (identified_term list * identified_term list) type identified_assigns = @@ -116,7 +116,7 @@ type identified_extended = extended_loc * Cil_types.acsl_extension and identified_axiomatic = string * identified_property list -and identified_lemma = +and identified_lemma = string * logic_label list * string list * predicate * location and identified_axiom = identified_lemma @@ -163,15 +163,15 @@ let o_loc_of_stmt kf = function let get_kinstr = function | IPPredicate (_,_,ki,_) - | IPBehavior(_, ki,_,_) + | IPBehavior(_, ki,_,_) | IPComplete (_,ki,_,_) - | IPDisjoint(_,ki,_,_) - | IPAllocation (_,ki,_,_) - | IPAssigns (_,ki,_,_) + | IPDisjoint(_,ki,_,_) + | IPAllocation (_,ki,_,_) + | IPAssigns (_,ki,_,_) | IPFrom(_,ki,_,_) | IPReachable (_, ki, _) | IPDecrease (_,ki,_,_) -> ki - | IPAxiom _ + | IPAxiom _ | IPAxiomatic _ | IPLemma _ -> Kglobal | IPOther(_,loc_e) -> ki_of_o_loc loc_e @@ -192,14 +192,14 @@ let get_kf = function | IPPredicate (_,kf,_,_) | IPBehavior(kf,_,_,_) | IPCodeAnnot (kf,_,_) - | IPComplete (kf,_,_,_) - | IPDisjoint(kf,_,_,_) + | IPComplete (kf,_,_,_) + | IPDisjoint(kf,_,_,_) | IPAllocation(kf,_,_,_) | IPAssigns(kf,_,_,_) - | IPFrom(kf,_,_,_) + | IPFrom(kf,_,_,_) | IPDecrease (kf,_,_,_) | IPPropertyInstance (kf, _, _, _) -> Some kf - | IPAxiom _ + | IPAxiom _ | IPAxiomatic _ | IPLemma _ -> None | IPReachable (kfopt, _, _) -> kfopt @@ -277,7 +277,7 @@ let get_behavior = function | IPAllocation(_,_,Id_loop _,_) | IPAssigns(_,_,Id_loop _,_) | IPFrom(_,_,Id_loop _,_) - | IPAxiom _ + | IPAxiom _ | IPAxiomatic _ | IPExtended _ | IPLemma _ @@ -293,8 +293,8 @@ let get_behavior = function include Datatype.Make_with_collections (struct - - include Datatype.Serializable_undefined + + include Datatype.Serializable_undefined type t = identified_property let name = "Property.t" @@ -321,12 +321,12 @@ include Datatype.Make_with_collections Format.fprintf fmt "invariant@ %s for type %a" s Cil_printer.pp_typ ty | IPGlobalInvariant(s,_,_) -> Format.fprintf fmt "global invariant@ %s" s - | IPBehavior(_kf, ki, active, b) -> + | IPBehavior(_kf, ki, active, b) -> if Cil.is_default_behavior b then Format.pp_print_string fmt "default behavior" else Format.fprintf fmt "behavior %s" b.b_name; - (match ki with + (match ki with | Kstmt s -> Format.fprintf fmt " for statement %d" s.sid | Kglobal -> ()); pp_active fmt active @@ -343,19 +343,19 @@ include Datatype.Make_with_collections (fun fmt s -> Format.fprintf fmt " %s" s)) l; pp_active fmt active - | IPAllocation(_, _, _, (f,a)) -> + | IPAllocation(_, _, _, (f,a)) -> Cil_printer.pp_allocation fmt (FreeAlloc(f,a)) | IPAssigns(_, _, _, l) -> Cil_printer.pp_assigns fmt (Writes l) | IPFrom (_,_,_, f) -> Cil_printer.pp_from fmt f | IPDecrease(_, _, None,v) -> Cil_printer.pp_decreases fmt v | IPDecrease(_, _, _,v) -> Cil_printer.pp_variant fmt v | IPReachable(None, Kstmt _, _) -> assert false - | IPReachable(None, Kglobal, _) -> + | IPReachable(None, Kglobal, _) -> Format.fprintf fmt "reachability of entry point" - | IPReachable(Some kf, Kglobal, _) -> + | IPReachable(Some kf, Kglobal, _) -> Format.fprintf fmt "reachability of function %a" Kf.pretty kf - | IPReachable(Some kf, Kstmt stmt, ba) -> - Format.fprintf fmt "reachability %s stmt %a in %a" + | IPReachable(Some kf, Kstmt stmt, ba) -> + Format.fprintf fmt "reachability %s stmt %a in %a" (match ba with Before -> "of" | After -> "post") Cil_datatype.Location.pretty_line (Cil_datatype.Stmt.loc stmt) Kf.pretty kf @@ -398,10 +398,10 @@ include Datatype.Make_with_collections (* At most one loop variant per statement anyway, no need to discriminate against the code annotation itself *) Hashtbl.hash (10, Kf.hash kf, Kinstr.hash ki) - | IPBehavior(kf, s, a, b) -> + | IPBehavior(kf, s, a, b) -> Hashtbl.hash (11, Kf.hash kf, Kinstr.hash s, - (b.b_name:string), (a:Datatype.String.Set.t)) + (b.b_name:string), (a:Datatype.String.Set.t)) | IPReachable(kf, ki, ba) -> Hashtbl.hash(12, Extlib.may_map Kf.hash ~dft:0 kf, Kinstr.hash ki, Hashtbl.hash ba) @@ -418,7 +418,7 @@ include Datatype.Make_with_collections let rec equal p1 p2 = let eq_bhv (f1,ki1,b1) (f2,ki2,b2) = Kf.equal f1 f2 && Kinstr.equal ki1 ki2 - && + && (match b1, b2 with | Id_loop ca1, Id_loop ca2 -> ca1.annot_id = ca2.annot_id @@ -435,7 +435,7 @@ include Datatype.Make_with_collections | IPAxiomatic(s1, _), IPAxiomatic(s2, _) | IPTypeInvariant(s1,_,_,_), IPTypeInvariant(s2,_,_,_) | IPGlobalInvariant(s1,_,_), IPGlobalInvariant(s2,_,_) - | IPLemma (s1,_,_,_,_), IPLemma (s2,_,_,_,_) -> + | IPLemma (s1,_,_,_,_), IPLemma (s2,_,_,_,_) -> Datatype.String.equal s1 s2 | IPCodeAnnot(_,_,ca1), IPCodeAnnot(_,_,ca2) -> ca1.annot_id = ca2.annot_id @@ -494,7 +494,7 @@ include Datatype.Make_with_collections Datatype.Int.compare i1 i2 | IPCodeAnnot(_,_,ca1), IPCodeAnnot(_,_,ca2) -> Datatype.Int.compare ca1.annot_id ca2.annot_id - | IPBehavior(f1, k1, a1, b1), IPBehavior(f2, k2, a2, b2) -> + | IPBehavior(f1, k1, a1, b1), IPBehavior(f2, k2, a2, b2) -> cmp_bhv (f1, k1, Id_contract (a1,b1)) (f2, k2, Id_contract (a2,b2)) | IPComplete(f1, ki1, a1, x1), IPComplete(f2, ki2, a2, x2) | IPDisjoint(f1, ki1, a1, x1), IPDisjoint(f2, ki2, a2, x2) -> @@ -518,17 +518,17 @@ include Datatype.Make_with_collections if n = 0 then Kinstr.compare ki1 ki2 else n | IPReachable(kf1, ki1, ba1), IPReachable(kf2, ki2, ba2) -> let n = Extlib.opt_compare Kf.compare kf1 kf2 in - if n = 0 then + if n = 0 then let n = Kinstr.compare ki1 ki2 in if n = 0 then Pervasives.compare ba1 ba2 else n - else + else n | IPAxiom (s1,_,_,_,_), IPAxiom (s2,_,_,_,_) | IPAxiomatic(s1, _), IPAxiomatic(s2, _) | IPTypeInvariant(s1,_,_,_), IPTypeInvariant(s2,_,_,_) | IPLemma (s1,_,_,_,_), IPLemma (s2,_,_,_,_) -> Datatype.String.compare s1 s2 - | IPOther(s1,le1), IPOther(s2,le2) -> + | IPOther(s1,le1), IPOther(s2,le2) -> let s = Datatype.String.compare s1 s2 in if s <> 0 then s else other_loc_compare le1 le2 | IPAllocation (f1, ki1, b1, _), IPAllocation (f2, ki2, b2, _) -> @@ -764,19 +764,26 @@ let rec pretty_debug fmt = function Cil_types_debug.pp_string s pp_other_loc ol -module Names = struct - module NamesTbl = +(* -------------------------------------------------------------------------- *) +(* --- Legacy Property Names --- *) +(* -------------------------------------------------------------------------- *) + +(* Shall be deprecated *) +module LegacyNames = +struct + + module NamesTbl = State_builder.Hashtbl(Datatype.String.Hashtbl)(Datatype.Int) (struct let name = "PropertyNames" - let dependencies = [ ] + let dependencies = [ ] let size = 97 end) module IndexTbl = State_builder.Hashtbl(Hashtbl)(Datatype.String) (struct let name = "PropertyIndex" - let dependencies = [ Ast.self; NamesTbl.self; Globals.Functions.self ] + let dependencies = [ Ast.self; NamesTbl.self; Globals.Functions.self ] let size = 97 end) @@ -793,10 +800,10 @@ module Names = struct match l with [] -> () | _ -> Format.fprintf fmt "_%a" (Pretty_utils.pp_list ~sep:"_" Format.pp_print_string) l - - let pp_code_annot_names fmt ca = + + let pp_code_annot_names fmt ca = match ca.annot_content with - | AAssert(for_bhv,named_pred) | AInvariant(for_bhv,_,named_pred) -> + | AAssert(for_bhv,named_pred) | AInvariant(for_bhv,_,named_pred) -> let pp_for_bhv fmt l = match l with | [] -> () @@ -806,15 +813,15 @@ module Names = struct Format.fprintf fmt "%a%a" pp_names named_pred.pred_name pp_for_bhv for_bhv | AVariant(term, _) -> pp_names fmt term.term_name | _ -> () (* TODO : add some more names ? *) - - let behavior_prefix b = + + let behavior_prefix b = if Cil.is_default_behavior b then "" else b.b_name ^ "_" - let variant_suffix = function + let variant_suffix = function | (_,Some s) -> s | _ -> "" - + let string_of_termination_kind = function Normal -> "post" | Exits -> "exit" @@ -836,19 +843,19 @@ module Names = struct | OLStmt (kf,s) -> kf_prefix kf ^ stmt_prefix s | OLGlob _ -> "global_" - let predicate_kind_txt pk ki = + let predicate_kind_txt pk ki = let name = match pk with | PKRequires b -> (behavior_prefix b) ^ "pre" | PKAssumes b -> (behavior_prefix b) ^ "assume" | PKEnsures (b, tk) -> (behavior_prefix b) ^ string_of_termination_kind tk - | PKTerminates -> "term" + | PKTerminates -> "term" in (ki_prefix ki) ^ name let active_prefix fmt a = let print_one a = Format.fprintf fmt "_%s" a in Datatype.String.Set.iter print_one a - + let rec id_prop_txt p = match p with | IPPredicate (pk,kf,ki,idp) -> Format.asprintf "%s%s%a" @@ -858,7 +865,7 @@ module Names = struct Format.asprintf "%sextended%a" (extended_loc_prefix le) pp_names [name] | IPCodeAnnot (kf,_, ca) -> let name = match ca.annot_content with - | AAssert _ -> "assert" + | AAssert _ -> "assert" | AInvariant (_,true,_) -> "loop_inv" | AInvariant _ -> "inv" | APragma _ -> "pragma" @@ -885,7 +892,7 @@ module Names = struct name pp_names named_pred.pred_name | IPAllocation (kf, ki, (Id_contract (a,b)), _) -> Format.asprintf "%s%s%a%salloc" - (kf_prefix kf) (ki_prefix ki) active_prefix a (behavior_prefix b) + (kf_prefix kf) (ki_prefix ki) active_prefix a (behavior_prefix b) | IPAllocation (kf, Kstmt _s, (Id_loop ca), _) -> Format.asprintf "%sloop_alloc%a" (kf_prefix kf) pp_code_annot_names ca @@ -897,7 +904,7 @@ module Names = struct Format.asprintf "%sloop_assign%a" (kf_prefix kf) pp_code_annot_names ca | IPAssigns _ -> assert false - | IPFrom (_, _, _, (out,_)) -> + | IPFrom (_, _, _, (out,_)) -> "from_id_"^(string_of_int (out.it_id)) | IPReachable _ -> "reachable_stmt" | IPBehavior(kf, ki, a, b) -> @@ -910,7 +917,7 @@ module Names = struct | IPOther(s,le) -> other_loc_prefix le ^ s (** function used to normalize basename *) - let normalize_basename s = + let normalize_basename s = let is_valid_char_id = function | 'a'..'z' | 'A' .. 'Z' | '0' .. '9' | '_' -> true | _ -> false @@ -926,7 +933,7 @@ module Names = struct (** returns the name that should be returned by the function [get_prop_name_id] if the given property has [name] as basename. That name is reserved so that [get_prop_name_id prop] can never return an identical name. *) let reserve_name_id basename = let basename = normalize_basename basename in - try + try let speed_up_start = NamesTbl.find basename in (* this basename is already reserved *) let n,unique_name = Extlib.make_unique_name NamesTbl.mem ~sep:"_" ~start:speed_up_start basename @@ -935,7 +942,7 @@ module Names = struct with Not_found -> (* first time that basename is reserved *) NamesTbl.add basename 2 ; basename - + (** returns the basename of the property. *) let get_prop_basename ip = normalize_basename (id_prop_txt ip) @@ -949,19 +956,205 @@ module Names = struct IndexTbl.add ip unique_name ; unique_name -(* - (** force computation of the unique name identifying the property *) - let make_prop_name_id ip = - ignore (get_prop_name_id ip) - - let remove_prop_name_id ip = - try - ignore (IndexTbl.find ip); - IndexTbl.remove ip - with Not_found -> () -*) end +(* -------------------------------------------------------------------------- *) +(* --- Property Names --- *) +(* -------------------------------------------------------------------------- *) + +module Names = +struct + + open Cil_types + + type part = + | B of behavior + | K of kernel_function + | A of string + | I of identified_predicate + | P of predicate + | T of term + | S of stmt + + let add_part buffer = function + | B bhv -> + if not (Cil.is_default_behavior bhv) + then Sanitizer.add_string buffer bhv.b_name + | K kf -> Sanitizer.add_string buffer (Kernel_function.get_name kf) + | A msg -> Sanitizer.add_string buffer msg + | S stmt -> Sanitizer.add_string buffer (Printf.sprintf "s%d" stmt.sid) + | I { ip_content = { pred_name = a } } + | P { pred_name = a } | T { term_name = a } -> Sanitizer.add_list buffer a + + let rec add_parts buffer = function + | [] -> () + | p::ps -> + let open Sanitizer in + add_part buffer p ; add_sep buffer ; add_parts buffer ps + + let rec parts_of_property ip : part list = + match ip with + | IPBehavior(kf,Kglobal,_,bhv) -> + [ K kf ; B bhv ] + | IPBehavior(kf,Kstmt s,_,bhv) -> + [ K kf ; B bhv ; S s ] + + | IPPredicate (PKAssumes bhv,kf,_,ip) -> + [ K kf ; B bhv ; A "assumes" ; I ip ] + | IPPredicate (PKRequires bhv,kf,_,ip) -> + [ K kf ; B bhv ; A "requires" ; I ip ] + | IPPredicate (PKEnsures(bhv,Normal),kf,_,ip) -> + [ K kf ; B bhv ; A "ensures" ; I ip ] + | IPPredicate (PKEnsures(bhv,Exits),kf,_,ip) -> + [ K kf ; B bhv ; A "exits" ; I ip ] + | IPPredicate (PKEnsures(bhv,Breaks),kf,_,ip) -> + [ K kf ; B bhv ; A "breaks" ; I ip ] + | IPPredicate (PKEnsures(bhv,Continues),kf,_,ip) -> + [ K kf ; B bhv ; A "continues" ; I ip ] + | IPPredicate (PKEnsures(bhv,Returns),kf,_,ip) -> + [ K kf ; B bhv ; A "returns" ; I ip ] + | IPPredicate (PKTerminates,kf,_,ip) -> + [ K kf ; A "terminates" ; I ip ] + + | IPAllocation(kf,_,Id_contract(_,bhv),_) -> + [ K kf ; B bhv ; A "allocates" ] + | IPAllocation(kf,_,Id_loop _,_) -> + [ K kf ; A "loop_allocates" ] + + | IPAssigns(kf,_,Id_contract(_,bhv),_) -> + [ K kf ; B bhv ; A "assigns" ] + + | IPAssigns(kf,_,Id_loop _,_) -> + [ K kf ; A "loop_assigns" ] + + | IPFrom(kf,_,Id_contract(_,bhv),_) -> + [ K kf ; B bhv ; A "assigns_from" ] + + | IPFrom(kf,_,Id_loop _,_) -> + [ K kf ; A "loop_assigns_from" ] + + | IPDecrease (kf,_,None,_) -> + [ K kf ; A "variant" ] + + | IPDecrease (kf,_,Some _,_) -> + [ K kf ; A "loop_variant" ] + + | IPCodeAnnot (kf,stmt, { annot_content = AStmtSpec _ } ) -> + [ K kf ; A "contract" ; S stmt ] + + | IPCodeAnnot (kf,stmt, { annot_content = APragma _ } ) -> + [ K kf ; A "pragma" ; S stmt ] + + | IPCodeAnnot (kf,stmt, { annot_content = AExtended(_,_,(_,clause,_,_)) } ) + -> [ K kf ; A clause ; S stmt ] + + | IPCodeAnnot (kf,_, { annot_content = AAssert(_,p) } ) -> + [K kf ; A "assert" ; P p ] + | IPCodeAnnot (kf,_, { annot_content = AInvariant(_,true,p) } ) -> + [K kf ; A "loop_invariant" ; P p ] + | IPCodeAnnot (kf,_, { annot_content = AInvariant(_,false,p) } ) -> + [K kf ; A "invariant" ; P p ] + | IPCodeAnnot (kf,_, { annot_content = AVariant(e,_) } ) -> + [K kf ; A "loop_variant" ; T e ] + | IPCodeAnnot (kf,_, { annot_content = AAssigns _ } ) -> + [K kf ; A "loop_assigns" ] + | IPCodeAnnot (kf,_, { annot_content = AAllocation _ } ) -> + [K kf ; A "loop_allocates" ] + + | IPComplete (kf,_,_,cs) -> + (K kf :: A "complete" :: List.map (fun a -> A a) cs) + | IPDisjoint(kf,_,_,cs) -> + (K kf :: A "disjoint" :: List.map (fun a -> A a) cs) + + | IPReachable (None, _, _) -> [] + | IPReachable (Some kf,Kglobal,Before) -> + [ K kf ; A "reachable" ] + | IPReachable (Some kf,Kglobal,After) -> + [ K kf ; A "reachable_post" ] + | IPReachable (Some kf,Kstmt s,Before) -> + [ K kf ; A "reachable" ; S s ] + | IPReachable (Some kf,Kstmt s,After) -> + [ K kf ; A "reachable_after" ; S s ] + + | IPAxiomatic _ + | IPAxiom _ -> [] + | IPLemma(name,_,_,p,_) -> + [ A "lemma" ; A name ; P p ] + + | IPTypeInvariant(name,_,_,_) + | IPGlobalInvariant(name,_,_) -> + [ A "invariant" ; A name ] + + | IPOther(name,OLGlob _) -> [ A name ] + | IPOther(name,OLContract kf) -> [ K kf ; A name ] + | IPOther(name,OLStmt(kf,s)) -> [ K kf ; A name ; S s ] + + | IPExtended(ELGlob,(_,name,_,_)) -> [ A name ] + | IPExtended(ELContract(kf),(_,name,_,_)) -> [ K kf ; A name ] + | IPExtended(ELStmt(kf,s),(_,name,_,_)) -> [ K kf ; A name ; S s ] + + | IPPropertyInstance (_, _, _, ip) -> parts_of_property ip + + let get_prop_basename ?truncate ip = + let buffer = + match truncate with + | None -> Sanitizer.create ~truncate:false 20 + | Some n -> Sanitizer.create ~truncate:true n + in + add_parts buffer (parts_of_property ip) ; + Sanitizer.contents buffer + + (* Numerotation of properties with same basename *) + module NamesTbl = + State_builder.Hashtbl(Datatype.String.Hashtbl)(Datatype.Int) + (struct + let name = "Property.Names.NamesTbl" + let dependencies = [ ] + let size = 97 + end) + + (* Computed name of properties *) + module IndexTbl = (* indexed by Property *) + State_builder.Hashtbl(Hashtbl)(Datatype.String) + (struct + let name = "Property.Names.IndexTbl" + let dependencies = [ Ast.self; NamesTbl.self; Globals.Functions.self ] + let size = 97 + end) + + let self = IndexTbl.self + + let compute_name_id basename = + try + let speed_up_start = NamesTbl.find basename in + (* this basename is already reserved *) + let n,unique_name = Extlib.make_unique_name NamesTbl.mem ~sep:"_" ~start:speed_up_start basename + in NamesTbl.replace basename (succ n) ; (* to speed up Extlib.make_unique_name for next time *) + unique_name + with Not_found -> (* first time that basename is reserved *) + NamesTbl.add basename 2 ; + basename + + let get_prop_name_id ip = + try IndexTbl.find ip + with Not_found -> (* first time we are asking for a name for that [ip] *) + let basename = get_prop_basename ip in + let unique_name = compute_name_id basename in + IndexTbl.add ip unique_name ; + unique_name + +end + +(* -------------------------------------------------------------------------- *) +(* --- Smart Constructors --- *) +(* -------------------------------------------------------------------------- *) + + +(* -------------------------------------------------------------------------- *) +(* --- Smart Constructors --- *) +(* -------------------------------------------------------------------------- *) + + let ip_other s le = IPOther(s,le) let ip_reachable_stmt kf ki = IPReachable(Some kf, Kstmt ki, Before) @@ -976,9 +1169,9 @@ let ip_reachable_ppt p = | IPDecrease _ | IPPropertyInstance _ | IPOther _ | IPTypeInvariant _ | IPGlobalInvariant _ -> Before - | IPPredicate(PKEnsures _, _, _, _) | IPAssigns _ | IPFrom _ + | IPPredicate(PKEnsures _, _, _, _) | IPAssigns _ | IPFrom _ | IPExtended _ - | IPBehavior _ + | IPBehavior _ -> After | IPReachable _ -> Kernel.fatal "IPReachable(IPReachable _) is not possible" in @@ -1012,7 +1205,7 @@ let ip_assigns_of_behavior kf st ~active b = let a = Datatype.String.Set.of_list active in ip_of_assigns kf st (Id_contract (a,b)) b.b_assigns -let ip_of_from kf st loc from = +let ip_of_from kf st loc from = match snd from with | FromAny -> None | From _ -> Some (IPFrom (kf,st, loc, from)) @@ -1021,13 +1214,13 @@ let ip_from_of_behavior kf st ~active b = match b.b_assigns with | WritesAny -> [] | Writes l -> - let treat_from acc (out, froms) = match froms with + let treat_from acc (out, froms) = match froms with | FromAny -> acc | From _ -> let a = Datatype.String.Set.of_list active in let ip = Extlib.the (ip_of_from kf st (Id_contract (a,b)) (out, froms)) - in + in ip :: acc in List.fold_left treat_from [] l @@ -1128,10 +1321,10 @@ let ip_of_code_annot kf stmt ca = | AAssert _ | AInvariant _ -> [ IPCodeAnnot(kf, stmt, ca) ] | AStmtSpec (active,s) -> ip_of_spec kf ki active s | AVariant t -> [ IPDecrease (kf,ki,(Some ca),t) ] - | AAllocation _ -> + | AAllocation _ -> Extlib.list_of_opt (ip_allocation_of_code_annot kf ki ca) @ ip_from_of_code_annot kf ki ca - | AAssigns _ -> + | AAssigns _ -> Extlib.list_of_opt (ip_assigns_of_code_annot kf ki ca) @ ip_from_of_code_annot kf ki ca | APragma p when Logic_utils.is_property_pragma p -> @@ -1150,7 +1343,7 @@ let ip_of_code_annot_single kf stmt ca = match ip_of_code_annot kf stmt ca with raise (Invalid_argument "ip_of_code_annot_single") | [ ip ] -> ip | ip :: _ -> - Kernel.warning + Kernel.warning "@[choosing one of multiple properties associated \ to code annotation@\n%a@]" Cil_printer.pp_code_annotation ca; @@ -1161,12 +1354,12 @@ let ip_of_code_annot_single kf stmt ca = match ip_of_code_annot kf stmt ca with let ip_of_global_annotation a = let once = true in let rec aux acc = function - | Daxiomatic(name, l, _, _) -> + | Daxiomatic(name, l, _, _) -> let ppts = List.fold_left aux [] l in IPAxiomatic(name, ppts) :: (ppts @ acc) | Dlemma(name, true, a, b, c, _, d) -> ip_axiom (name,a,b,c,d) :: acc | Dlemma(name, false, a, b, c, _, d) -> ip_lemma (name,a,b,c,d) :: acc - | Dinvariant(l, loc) -> + | Dinvariant(l, loc) -> let pred = match l.l_body with | LBpred p -> p | _ -> assert false @@ -1190,8 +1383,8 @@ let ip_of_global_annotation a = (* TODO *) Kernel.warning ~once "ignoring status of custom annotation"; acc - | Dmodel_annot _ | Dfun_or_pred _ | Dvolatile _ | Dtype _ -> - (* no associated status for these annotations *) + | Dmodel_annot _ | Dfun_or_pred _ | Dvolatile _ | Dtype _ -> + (* no associated status for these annotations *) acc | Dextended(ext,_,_) -> IPExtended (ELGlob, ext) :: acc in @@ -1199,7 +1392,7 @@ let ip_of_global_annotation a = let ip_of_global_annotation_single a = match ip_of_global_annotation a with | [] -> None - | ip :: _ -> + | ip :: _ -> (* the first one is the good one, see ip_of_global_annotation *) Some ip diff --git a/src/kernel_services/ast_data/property.mli b/src/kernel_services/ast_data/property.mli index 7b5100d1ae11ab05d021dc551b057805e680febe..61f401c12a113f0abec2eebf75176897db61c6cb 100644 --- a/src/kernel_services/ast_data/property.mli +++ b/src/kernel_services/ast_data/property.mli @@ -461,23 +461,32 @@ val source: identified_property -> Filepath.position option (** {2 names} *) (**************************************************************************) + +(** @since Frama-C+dev deprecated old naming scheeme, + to be removed in future versions. *) +module LegacyNames : +sig + val self: State.t + val get_prop_basename: identified_property -> string + val get_prop_name_id: identified_property -> string +end + (** @since Oxygen-20120901 *) -module Names: sig +module Names : +sig val self: State.t val get_prop_name_id: identified_property -> string - (** returns a unique name identifying the property. - This name is built from the basename of the property. *) - - val get_prop_basename: identified_property -> string - (** returns the basename of the property. *) + (** returns a unique name identifying the property. + This name is built from the basename of the property. + @modify Frama-C+dev new naming scheme, Cf. LegacyNames + *) - val reserve_name_id: string -> string -(** returns the name that should be returned by the function - [get_prop_name_id] if the given property has [name] as basename. That name - is reserved so that [get_prop_name_id prop] can never return an identical - name. *) + val get_prop_basename: ?truncate:int -> identified_property -> string + (** returns the basename of the property. + @modify Frama-C+dev additional truncation parameter + *) end diff --git a/src/kernel_services/ast_queries/file.ml b/src/kernel_services/ast_queries/file.ml index cc22eb64b92a5628a90b5cb3d00c82b73c678fbd..eb8c87f31fb8609cf32f555fb36e40a3c18e6d71 100644 --- a/src/kernel_services/ast_queries/file.ml +++ b/src/kernel_services/ast_queries/file.ml @@ -119,7 +119,7 @@ let from_filename ?cpp f = | None -> get_preprocessor_command () | Some cpp -> cpp, cpp_opt_kind () in - (if flags = "" then cpp else cpp ^ " " ^ flags), gnu + (if flags = [] then cpp else cpp ^ " " ^ String.concat " " flags), gnu in if Filename.check_suffix f ".i" then begin NoCPP f diff --git a/src/kernel_services/ast_queries/json_compilation_database.ko.ml b/src/kernel_services/ast_queries/json_compilation_database.ko.ml index 079422abcf706e5f3d4052bf209cbe9055686379..1536859cce6c7eb3cf1436e30ce370d607679892 100644 --- a/src/kernel_services/ast_queries/json_compilation_database.ko.ml +++ b/src/kernel_services/ast_queries/json_compilation_database.ko.ml @@ -31,4 +31,4 @@ let get_flags _ = "Attempt to parse json compilation database %s \ with a Frama-C compiled without Yojson support." db end; - "" + [] diff --git a/src/kernel_services/ast_queries/json_compilation_database.mli b/src/kernel_services/ast_queries/json_compilation_database.mli index 8bd90611e25f9aded8fb15a36f03c1eef384daeb..d6caacc0cab16d9a85050668a4b5c0bcae750d42 100644 --- a/src/kernel_services/ast_queries/json_compilation_database.mli +++ b/src/kernel_services/ast_queries/json_compilation_database.mli @@ -23,4 +23,4 @@ (** [get_flags f] returns the preprocessing flags associated to file [f] in the JSON compilation database (when enabled), or the empty string otherwise. If not empty, the flags always start with a space. *) -val get_flags : Datatype.Filepath.t -> string +val get_flags : Datatype.Filepath.t -> string list diff --git a/src/kernel_services/ast_queries/json_compilation_database.ok.ml b/src/kernel_services/ast_queries/json_compilation_database.ok.ml index 2f2990575fa4e91b7e24bf26fee4fb02bd6b415e..851ddde5a87304e73ed6dd7c9e94d552b24a7132 100644 --- a/src/kernel_services/ast_queries/json_compilation_database.ok.ml +++ b/src/kernel_services/ast_queries/json_compilation_database.ok.ml @@ -20,10 +20,12 @@ (* *) (**************************************************************************) +module StringList = Datatype.List(Datatype.String) + module Flags = State_builder.Hashtbl (Datatype.Filepath.Hashtbl) - (Datatype.String) + (StringList) (struct let name ="JsonCompilationDatabase.Flags" let dependencies = [Kernel.JsonCompilationDatabase.self] @@ -205,18 +207,28 @@ let parse_entry ?(cwd=Sys.getcwd()) (r : Yojson.Basic.json) = (* Note: the same file may be compiled several times, under different (and possibly incompatible) configurations, leading to multiple occurrences in the list. Since we cannot infer which of them is the - "right" one, we pick the first and warn the user if there are - others. *) - let flags = String.concat " " (List.rev res) in + "right" one, we replace them with the latest ones found, warning the + user if previous flags were different. *) + let flags = List.rev res in try let previous_flags = Flags.find path in if previous_flags <> flags then + let removed_flags = List.filter (fun e -> not (List.mem e previous_flags)) flags in + let removed_str = + if removed_flags = [] then "" else + Format.asprintf "@ Old flags no longer present: %a" + (Pretty_utils.pp_list ~sep:" " Format.pp_print_string) removed_flags + in + let added_flags = List.filter (fun e -> not (List.mem e flags)) previous_flags in + let added_str = + if added_flags = [] then "" else + Format.asprintf "@ New flags not previously present: %a" + (Pretty_utils.pp_list ~sep:" " Format.pp_print_string) added_flags + in Kernel.warning ~wkey:Kernel.wkey_jcdb - "@[<v>found duplicate flags for '%a'.\ - @ Previous flags: %s\ - @ New flags: %s@]" Datatype.Filepath.pretty path - previous_flags flags; - Flags.replace path flags + "@[<v>found duplicate flags for '%a', replacing old flags.%s%s@]" + Datatype.Filepath.pretty path removed_str added_str; + Flags.replace path flags with | Not_found -> Flags.add path flags @@ -250,11 +262,11 @@ let get_flags f = try let flags = Flags.find f in Kernel.feedback ~dkey:Kernel.dkey_compilation_db - "flags found for '%a': %s" Datatype.Filepath.pretty f flags; + "flags found for '%a': %a" Datatype.Filepath.pretty f StringList.pretty flags; flags with Not_found -> Kernel.feedback ~dkey:Kernel.dkey_compilation_db "no flags found for '%a'" Datatype.Filepath.pretty f; - "" + [] end - else "" + else [] diff --git a/src/kernel_services/plugin_entry_points/kernel.ml b/src/kernel_services/plugin_entry_points/kernel.ml index 4557fc830718516406d81c41596b812271f7878f..5063b344f1198a3ea61441f44345d12062bb7e8b 100644 --- a/src/kernel_services/plugin_entry_points/kernel.ml +++ b/src/kernel_services/plugin_entry_points/kernel.ml @@ -153,6 +153,7 @@ let () = set_warn_status wkey_cert_exp_10 Log.Winactive let wkey_check_volatile = register_warn_category "check:volatile" let wkey_jcdb = register_warn_category "pp:compilation-db" +let () = set_warn_status wkey_jcdb Log.Wonce let wkey_implicit_function_declaration = register_warn_category "typing:implicit-function-declaration" diff --git a/src/libraries/utils/json.mli b/src/libraries/utils/json.mli index 39136af9caceae2176591cb428ab3529b4619ea3..76a2b809f0f5ba08e5f0117059e845ce146b5539 100644 --- a/src/libraries/utils/json.mli +++ b/src/libraries/utils/json.mli @@ -109,6 +109,11 @@ val list : t -> t list [Null] is considered an empty list. @raise Invalid_argument if the object is not a list. *) +val assoc : t -> (string * t) list +(** Extract the list of an [Assoc] object. + [Null] is considered an empty assoc. + @raise Invalid_argument if the object is not a list. *) + val fold : (string -> t -> 'a -> 'a) -> t -> 'a -> 'a (** Fold over all fields of the object. [Null] is considered an empty object. diff --git a/src/libraries/utils/json.mll b/src/libraries/utils/json.mll index 700505ac5cb6f4a65a282353e3cd5a17f04408dd..8444a4bc8ed32eb86fd517fedf9d7fd74143df47 100644 --- a/src/libraries/utils/json.mll +++ b/src/libraries/utils/json.mll @@ -273,6 +273,11 @@ let array = function | `List es -> Array.of_list es | _ -> invalid "array" +let assoc = function + | `Null -> [] + | `Assoc fs -> fs + | _ -> invalid "assoc" + let field f = function | `Null -> raise Not_found | `Assoc fs -> List.assoc f fs diff --git a/src/libraries/utils/sanitizer.ml b/src/libraries/utils/sanitizer.ml new file mode 100644 index 0000000000000000000000000000000000000000..cb0d0148b09c826865e3e4859bda5360660d2c9b --- /dev/null +++ b/src/libraries/utils/sanitizer.ml @@ -0,0 +1,99 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +(* -------------------------------------------------------------------------- *) +(* --- Sanitizer --- *) +(* -------------------------------------------------------------------------- *) + +(* + Keeps only alphanumerical characters, + remove consecutive, trailing and leading `_` +*) + +type state = START | SEP | CHAR | TRUNCATE + +type buffer = { + content : Buffer.t ; + truncate : int ; + mutable lastsep : int ; + mutable state : state ; +} + +let create ?(truncate=false) n = { + content = Buffer.create n ; + truncate = if truncate then n else max_int ; + lastsep = 0 ; + state = START ; +} + +let clear buffer = + begin + Buffer.clear buffer.content ; + buffer.state <- START ; + buffer.lastsep <- 0 ; + end + +let add_sep buffer = + if buffer.state = CHAR then + let offset = Buffer.length buffer.content in + if offset < buffer.truncate then + begin + buffer.state <- SEP ; + buffer.lastsep <- offset ; + end + else + begin + buffer.state <- TRUNCATE ; + (* TODO [OCaml 4.05] Buffer.truncate buffer.content buffer.lastsep ; *) + end + +let add_char buffer = function + | ('a'..'z' | 'A'..'Z' | '0'..'9') as c -> + begin + match buffer.state with + | START -> + Buffer.add_char buffer.content c ; + buffer.state <- CHAR + | SEP -> + Buffer.add_char buffer.content '_' ; + Buffer.add_char buffer.content c ; + buffer.state <- CHAR + | CHAR -> + Buffer.add_char buffer.content c + | TRUNCATE -> () + end + | '_' | '-' | ' ' | '\t' | ',' | ';' | '.' | '/' | '\\' | ':' -> + add_sep buffer + | _ -> () + +let add_string buffer s = String.iter (add_char buffer) s + +let rec add_list buffer = function + | [] -> () + | p::ps -> add_string buffer p ; add_sep buffer ; add_list buffer ps + +let contents buffer = + (* TODO [OCaml 4.05] simply buffer contents if using Buffer.truncate *) + let s = Buffer.contents buffer.content in + if buffer.state = TRUNCATE then + String.sub s 0 buffer.lastsep + else s diff --git a/src/plugins/report/property_names.mli b/src/libraries/utils/sanitizer.mli similarity index 76% rename from src/plugins/report/property_names.mli rename to src/libraries/utils/sanitizer.mli index 1a34d4cdef3c042ad3970108461ef5f9a1481092..3371d4cd4a5930320d2f77bc70b1b0d8242b61fc 100644 --- a/src/plugins/report/property_names.mli +++ b/src/libraries/utils/sanitizer.mli @@ -20,20 +20,21 @@ (* *) (**************************************************************************) -open Cil_types +(** {2 Sanitizer} -type part = - | B of behavior - | K of kernel_function - | A of string - | I of identified_predicate - | P of predicate - | T of term - | S of stmt + Keeps only alpha-numerical characters. + Separator ['_'] is allowed, but leading, trailing and consecutive + separators are removed. +*) -val is_name : string -> bool -val join : string list -> string +type buffer -val string_of_part : part -> string -val string_of_parts : part list -> string -val parts_of_property : Property.t -> part list +val create : ?truncate:bool -> int -> buffer +val clear : buffer -> unit + +val add_sep : buffer -> unit (** Adds ['_'] character *) +val add_char : buffer -> char -> unit +val add_string : buffer -> string -> unit +val add_list : buffer -> string list -> unit (** Separated with ['_'] *) + +val contents : buffer -> string diff --git a/src/plugins/report/Makefile.in b/src/plugins/report/Makefile.in index bb159e8f5ab30d00ff02a32cadea5e19a0d0b0a6..7011cc664417688ec84af0e515664f7db4dd7504 100644 --- a/src/plugins/report/Makefile.in +++ b/src/plugins/report/Makefile.in @@ -36,7 +36,7 @@ endif PLUGIN_DIR ?=. PLUGIN_ENABLE:=@ENABLE_REPORT@ PLUGIN_NAME:=Report -PLUGIN_CMO:= report_parameters scan dump csv property_names classify register +PLUGIN_CMO:= report_parameters scan dump csv classify register PLUGIN_DISTRIBUTED:=$(PLUGIN_ENABLE) PLUGIN_DISTRIB_EXTERNAL:= Makefile.in configure.ac configure #PLUGIN_NO_DEFAULT_TEST:=no diff --git a/src/plugins/report/classify.ml b/src/plugins/report/classify.ml index b40a5a6d4438d0f5d612b5e3c6c2f7bdf9e16830..f14ae80130e34ff8adf403f3605582636f5ad075 100644 --- a/src/plugins/report/classify.ml +++ b/src/plugins/report/classify.ml @@ -74,7 +74,7 @@ let errors = { type props = { ps_name : string ; ps_rules : rule Queue.t ; - ps_action : (unit -> string) ; + ps_action : (unit -> string) ; (* plugin option getter *) } let props ps_name ps_action = @@ -408,19 +408,50 @@ let pending f pending = (fun _ ips -> Property.Set.iter f ips) m) pending +let rec monitored_property ip = + let open Cil_types in + let open Property in + match ip with + | IPBehavior _ -> false + | IPPredicate (PKAssumes _,_,_,_) -> false + | IPPredicate (PKRequires _,_,_,_) -> true + | IPPredicate (PKEnsures _,_,_,_) -> true + | IPPredicate (PKTerminates,_,_,_) -> true + | IPAllocation(_,_,_,_) -> true + | IPAssigns(_,_,_,_) -> true + | IPFrom(_,_,_,_) -> true + | IPDecrease (_,_,_,_) -> true + | IPCodeAnnot (_,_, { annot_content = AStmtSpec _ } ) -> false + | IPCodeAnnot (_,_, { annot_content = APragma _ } ) -> false + | IPCodeAnnot (_,_, { annot_content = AExtended _ } ) -> true + | IPCodeAnnot (_,_, { annot_content = AAssert _ } ) -> true + | IPCodeAnnot (_,_, { annot_content = AInvariant _ } ) -> true + | IPCodeAnnot (_,_, { annot_content = AVariant _ } ) -> true + | IPCodeAnnot (_,_, { annot_content = AAssigns _ } ) -> true + | IPCodeAnnot (_,_, { annot_content = AAllocation _ } ) -> true + | IPComplete (_,_,_,_) -> true + | IPDisjoint(_,_,_,_) -> true + | IPReachable (None,_,_) -> false + | IPReachable (Some _,_,_) -> true + | IPAxiomatic _ | IPAxiom _ -> false + | IPLemma(_,_,_,_,_) -> true + | IPTypeInvariant(_,_,_,_) | IPGlobalInvariant(_,_,_) -> true + | IPOther(_,_) -> true + | IPExtended _ -> true + | IPPropertyInstance (_, _, _, ip) -> monitored_property ip + let monitor_status properties ip = - let ps = Property_names.parts_of_property ip in - if ps = [] then () else - let msg = Property_names.string_of_parts ps in + if monitored_property ip then + let name = Property.Names.get_prop_name_id ip in let lookup = find properties.ps_rules in let source = Property.source ip in let unclassified () = let e_id = "unclassified." ^ properties.ps_name in - let e_title = msg in + let e_title = name in let e_action = properties.ps_action () |> action in let e_descr = T.String.capitalize_ascii properties.ps_name ^ " status" in { unclassified with e_id ; e_action ; e_title ; e_descr } - in monitor ~lookup ~category:[] ~msg ~source unclassified + in monitor ~lookup ~category:[] ~msg:name ~source unclassified let monitor_property pool push ip = begin diff --git a/src/plugins/report/property_names.ml b/src/plugins/report/property_names.ml deleted file mode 100644 index dd31d925e9f93501c8dd19d99e810b12047d5df8..0000000000000000000000000000000000000000 --- a/src/plugins/report/property_names.ml +++ /dev/null @@ -1,131 +0,0 @@ -(**************************************************************************) -(* *) -(* This file is part of Frama-C. *) -(* *) -(* Copyright (C) 2007-2019 *) -(* CEA (Commissariat à l'énergie atomique et aux énergies *) -(* alternatives) *) -(* *) -(* you can redistribute it and/or modify it under the terms of the GNU *) -(* Lesser General Public License as published by the Free Software *) -(* Foundation, version 2.1. *) -(* *) -(* It is distributed in the hope that it will be useful, *) -(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) -(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) -(* GNU Lesser General Public License for more details. *) -(* *) -(* See the GNU Lesser General Public License version 2.1 *) -(* for more details (enclosed in the file licenses/LGPLv2.1). *) -(* *) -(**************************************************************************) - -open Cil_types - -type part = - | B of behavior - | K of kernel_function - | A of string - | I of identified_predicate - | P of predicate - | T of term - | S of stmt - -let is_name s = s <> "" && s <> "_" -let join ps = String.concat "_" (List.filter is_name ps) - -let string_of_part = function - | B bhv -> if Cil.is_default_behavior bhv then "" else bhv.b_name - | K kf -> Kernel_function.get_name kf - | A msg -> msg - | S stmt -> Printf.sprintf "s%d" stmt.sid - | I { ip_content = { pred_name = a } } - | P { pred_name = a } | T { term_name = a } -> join a - -let string_of_parts ps = join (List.map string_of_part ps) - -let rec parts_of_property ip : part list = - let open Property in - match ip with - | IPBehavior _ -> [] - | IPPredicate (PKAssumes _,_,_,_) -> [] - | IPPredicate (PKRequires bhv,kf,_,ip) -> - [ K kf ; B bhv ; A "requires" ; I ip ] - | IPPredicate (PKEnsures(bhv,Normal),kf,_,ip) -> - [ K kf ; B bhv ; A "ensures" ; I ip ] - | IPPredicate (PKEnsures(bhv,Exits),kf,_,ip) -> - [ K kf ; B bhv ; A "exits" ; I ip ] - | IPPredicate (PKEnsures(bhv,Breaks),kf,_,ip) -> - [ K kf ; B bhv ; A "breaks" ; I ip ] - | IPPredicate (PKEnsures(bhv,Continues),kf,_,ip) -> - [ K kf ; B bhv ; A "continues" ; I ip ] - | IPPredicate (PKEnsures(bhv,Returns),kf,_,ip) -> - [ K kf ; B bhv ; A "returns" ; I ip ] - | IPPredicate (PKTerminates,kf,_,ip) -> - [ K kf ; A "terminates" ; I ip ] - - | IPAllocation(kf,_,Id_contract(_,bhv),_) -> - [ K kf ; B bhv ; A "allocates" ] - | IPAllocation(kf,_,Id_loop _,_) -> - [ K kf ; A "loop_allocates" ] - - | IPAssigns(kf,_,Id_contract(_,bhv),_) -> - [ K kf ; B bhv ; A "assigns" ] - - | IPAssigns(kf,_,Id_loop _,_) -> - [ K kf ; A "loop_assigns" ] - - | IPFrom(kf,_,Id_contract(_,bhv),_) -> - [ K kf ; B bhv ; A "assigns_from" ] - - | IPFrom(kf,_,Id_loop _,_) -> - [ K kf ; A "loop_assigns_from" ] - - | IPDecrease (kf,_,None,_) -> - [ K kf ; A "variant" ] - - | IPDecrease (kf,_,Some _,_) -> - [ K kf ; A "loop_variant" ] - - | IPCodeAnnot (_,_, { annot_content = AStmtSpec _ } ) -> [] - | IPCodeAnnot (_,_, { annot_content = APragma _ | AExtended _ } ) -> [] - | IPCodeAnnot (kf,_, { annot_content = AAssert(_,p) } ) -> - [K kf ; A "assert" ; P p ] - | IPCodeAnnot (kf,_, { annot_content = AInvariant(_,true,p) } ) -> - [K kf ; A "loop_invariant" ; P p ] - | IPCodeAnnot (kf,_, { annot_content = AInvariant(_,false,p) } ) -> - [K kf ; A "invariant" ; P p ] - | IPCodeAnnot (kf,_, { annot_content = AVariant(e,_) } ) -> - [K kf ; A "loop_variant" ; T e ] - | IPCodeAnnot (kf,_, { annot_content = AAssigns _ } ) -> - [K kf ; A "loop_assigns" ] - | IPCodeAnnot (kf,_, { annot_content = AAllocation _ } ) -> - [K kf ; A "loop_allocates" ] - - | IPComplete (kf,_,_,cs) -> - (K kf :: A "complete" :: List.map (fun a -> A a) cs) - | IPDisjoint(kf,_,_,cs) -> - (K kf :: A "disjoint" :: List.map (fun a -> A a) cs) - - | IPReachable (None, _, _) -> [] - | IPReachable (Some kf,Kglobal,Before) -> - [ K kf ; A "reachable" ] - | IPReachable (Some kf,Kglobal,After) -> - [ K kf ; A "reachable_post" ] - | IPReachable (Some kf,Kstmt s,Before) -> - [ K kf ; S s ; A "reachable" ] - | IPReachable (Some kf,Kstmt s,After) -> - [ K kf ; S s ; A "reachable_after" ] - | IPAxiomatic _ | IPAxiom _ -> [] - | IPLemma(name,_,_,_,_) -> [ A "lemma" ; A name ] - | IPTypeInvariant(name,_,_,_) - | IPGlobalInvariant(name,_,_) -> [ A "invariant" ; A name] - | IPOther(name, OLContract kf) -> [ K kf ; A name ] - | IPOther(name, OLStmt (kf, s)) -> [K kf; S s; A name] - | IPOther(name,OLGlob _) -> [ A name ] - | IPPropertyInstance (_, _, _, ip) -> parts_of_property ip - | IPExtended(ELContract kf,(_,name,_,_)) -> [ K kf ; A name ] - | IPExtended(ELStmt (kf, s),(_,name,_,_)) -> [ K kf ; S s ; A name ] - | IPExtended(ELGlob, (_,name,_,_)) -> [ A name ] - -(**************************************************************************) diff --git a/src/plugins/report/tests/report/oracle/classify.0.res.oracle b/src/plugins/report/tests/report/oracle/classify.0.res.oracle index 08e3a2f22246d9b0ce10e23016c15f9413fe8218..2d9f271aea5752a9bbc3037c9c42b90aac05b38e 100644 --- a/src/plugins/report/tests/report/oracle/classify.0.res.oracle +++ b/src/plugins/report/tests/report/oracle/classify.0.res.oracle @@ -4,8 +4,8 @@ [wp] Running WP plugin... [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Qed] Goal typed_f_assign : Valid -[wp] [Qed] Goal typed_f_post : Valid +[wp] [Qed] Goal typed_f_assigns : Valid +[wp] [Qed] Goal typed_f_ensures : Valid [wp] Proved goals: 2 / 2 Qed: 2 [report] Classification diff --git a/src/plugins/report/tests/report/oracle/classify.1.res.oracle b/src/plugins/report/tests/report/oracle/classify.1.res.oracle index 5dc01f6e288d62097d7aeb8bcff5de4b9a758aeb..9266851bb999c61aaf138053b920459d475fb73d 100644 --- a/src/plugins/report/tests/report/oracle/classify.1.res.oracle +++ b/src/plugins/report/tests/report/oracle/classify.1.res.oracle @@ -5,8 +5,8 @@ [wp] Running WP plugin... [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Qed] Goal typed_f_assign : Valid -[wp] [Qed] Goal typed_f_post : Valid +[wp] [Qed] Goal typed_f_assigns : Valid +[wp] [Qed] Goal typed_f_ensures : Valid [wp] Proved goals: 2 / 2 Qed: 2 [report] Classification diff --git a/src/plugins/report/tests/report/oracle/classify.2.res.oracle b/src/plugins/report/tests/report/oracle/classify.2.res.oracle index 0d4bf582b12dcdfdfcd194cce2b00f461d03f48b..8e0f90163361e74984979077ddaa1a85702be12e 100644 --- a/src/plugins/report/tests/report/oracle/classify.2.res.oracle +++ b/src/plugins/report/tests/report/oracle/classify.2.res.oracle @@ -5,8 +5,8 @@ [wp] Running WP plugin... [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Qed] Goal typed_f_assign : Valid -[wp] [Qed] Goal typed_f_post : Valid +[wp] [Qed] Goal typed_f_assigns : Valid +[wp] [Qed] Goal typed_f_ensures : Valid [wp] Proved goals: 2 / 2 Qed: 2 [report] Classification diff --git a/src/plugins/report/tests/report/oracle/classify.3.res.oracle b/src/plugins/report/tests/report/oracle/classify.3.res.oracle index e41bd323df63f3913f41fe42d9e7ac2fdf50227b..5fab349a04e38664af8b21b15febbb573588c6c7 100644 --- a/src/plugins/report/tests/report/oracle/classify.3.res.oracle +++ b/src/plugins/report/tests/report/oracle/classify.3.res.oracle @@ -6,8 +6,8 @@ [wp] Running WP plugin... [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Qed] Goal typed_f_assign : Valid -[wp] [Qed] Goal typed_f_post : Valid +[wp] [Qed] Goal typed_f_assigns : Valid +[wp] [Qed] Goal typed_f_ensures : Valid [wp] Proved goals: 2 / 2 Qed: 2 [report] Classification diff --git a/src/plugins/report/tests/report/oracle/classify.4.res.oracle b/src/plugins/report/tests/report/oracle/classify.4.res.oracle index 70e846d1bf34b306e607d9579046c28735bb18d0..4fe970e76ac2d9a5d2c965d22a6f185ebaeb2f95 100644 --- a/src/plugins/report/tests/report/oracle/classify.4.res.oracle +++ b/src/plugins/report/tests/report/oracle/classify.4.res.oracle @@ -6,8 +6,8 @@ [wp] Running WP plugin... [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Qed] Goal typed_f_assign : Valid -[wp] [Qed] Goal typed_f_post : Valid +[wp] [Qed] Goal typed_f_assigns : Valid +[wp] [Qed] Goal typed_f_ensures : Valid [wp] Proved goals: 2 / 2 Qed: 2 [report] Classification diff --git a/src/plugins/report/tests/report/oracle/classify.5.res.oracle b/src/plugins/report/tests/report/oracle/classify.5.res.oracle index da6f9a37f4f68fd31782b82428ff795cf9ea9ebc..fe7d84466c0e64effca171af82723994cecf7759 100644 --- a/src/plugins/report/tests/report/oracle/classify.5.res.oracle +++ b/src/plugins/report/tests/report/oracle/classify.5.res.oracle @@ -5,8 +5,8 @@ unbound logic variable ignored. Ignoring code annotation [wp] Running WP plugin... [wp] Warning: Missing RTE guards -[wp] Goal typed_f_post : not tried -[wp] Goal typed_f_assign : trivial +[wp] Goal typed_f_ensures : not tried +[wp] Goal typed_f_assigns : trivial [report] Classification [report] Output tests/report/result/classified.5.json [report] Reviews : 2 diff --git a/src/plugins/wp/Cfloat.ml b/src/plugins/wp/Cfloat.ml index 7c5a2c9f5a357dfe0080eb176d23012816b2740c..81842f01a2eb694506b55e6640baba76d03a7870 100644 --- a/src/plugins/wp/Cfloat.ml +++ b/src/plugins/wp/Cfloat.ml @@ -45,7 +45,7 @@ let ftau = function | Float32 -> t32 | Float64 -> t64 -let suffix fmt = function +let pp_suffix fmt = function | Float32 -> Format.pp_print_string fmt "f32" | Float64 -> Format.pp_print_string fmt "f64" @@ -55,9 +55,9 @@ let link phi = Lang.infoprover (Qed.Engine.F_call phi) let fq32 = extern_f ~library ~result:t32 ~link:(link "to_f32") "q32" let fq64 = extern_f ~library ~result:t64 ~link:(link "to_f64") "q64" -let f_model ft = extern_f ~library ~result:(ftau ft) "model_%a" suffix ft -let f_delta ft = extern_f ~library ~result:(ftau ft) "delta_%a" suffix ft -let f_epsilon ft = extern_f ~library ~result:(ftau ft) "epsilon_%a" suffix ft +let f_model ft = extern_f ~library ~result:(ftau ft) "model_%a" pp_suffix ft +let f_delta ft = extern_f ~library ~result:(ftau ft) "delta_%a" pp_suffix ft +let f_epsilon ft = extern_f ~library ~result:(ftau ft) "epsilon_%a" pp_suffix ft (* -------------------------------------------------------------------------- *) (* --- Model Setting --- *) @@ -135,39 +135,45 @@ let fmake ulp value = match ulp with | Float64 -> F.e_fun fq64 [F.e_float value] let qmake ulp q = fmake ulp (Transitioning.Q.to_float q) - let mantissa = "\\([-+]?[0-9]*\\)" let comma = "\\(.\\(\\(0*[1-9]\\)*\\)0*\\)?" let exponent = "\\([eE]\\([-+]?[0-9]*\\)\\)?" -let real = Str.regexp (mantissa ^ comma ^ exponent ^ "$") +let suffix = "\\([flFL]\\)?" +let real = Str.regexp (mantissa ^ comma ^ exponent ^ suffix ^ "$") -let parse_literal v r = +let parse_literal ~model v r = try if Str.string_match real r 0 then - let ma = Str.matched_group 1 r in - let mb = try Str.matched_group 3 r with Not_found -> "" in - let me = try Str.matched_group 6 r with Not_found -> "0" in - let n = int_of_string me - String.length mb in - let d n = - let s = Bytes.make (succ n) '0' in - Bytes.set s 0 '1' ; Q.of_string (Bytes.to_string s) in - let m = Q.of_string (ma ^ mb) in - if n < 0 then Q.div m (d (-n)) else - if n > 0 then Q.mul m (d n) else m + let has_suffix = + try ignore (Str.matched_group 7 r) ; true + with Not_found -> false in + if has_suffix && model = Float then + Q.of_float v + else + let ma = Str.matched_group 1 r in + let mb = try Str.matched_group 3 r with Not_found -> "" in + let me = try Str.matched_group 6 r with Not_found -> "0" in + let n = int_of_string me - String.length mb in + let d n = + let s = Bytes.make (succ n) '0' in + Bytes.set s 0 '1' ; Q.of_string (Bytes.to_string s) in + let m = Q.of_string (ma ^ mb) in + if n < 0 then Q.div m (d (-n)) else + if n > 0 then Q.mul m (d n) else m else Q.of_float v with Failure _ -> Warning.error "Unexpected constant literal %S" r let acsl_lit l = let open Cil_types in - F.e_real (parse_literal l.r_nearest l.r_literal) + F.e_real (parse_literal ~model:(Context.get model) l.r_nearest l.r_literal) let code_lit ulp value original = match Context.get model , ulp , original with | Float , Float32 , _ -> F.e_fun fq32 [F.e_float value] | Float , Float64 , _ -> F.e_fun fq64 [F.e_float value] | Real , _ , None -> F.e_float value - | Real , _ , Some r -> F.e_real (parse_literal value r) + | Real , _ , Some r -> F.e_real (parse_literal ~model:Real value r) (* -------------------------------------------------------------------------- *) (* --- Computations --- *) @@ -200,13 +206,13 @@ let compute op ulp xs = let make_fun_float ?result name op ft = let result = match result with None -> ftau ft | Some r -> r in - let phi = extern_f ~library ~result "%s_%a" name suffix ft in + let phi = extern_f ~library ~result "%s_%a" name pp_suffix ft in Lang.F.set_builtin phi (compute op ft) ; REGISTRY.define phi (op,ft) ; phi let make_pred_float name op ft = - let prop = Pretty_utils.sfprintf "%s_%a" name suffix ft in - let bool = Pretty_utils.sfprintf "%s_%ab" name suffix ft in + let prop = Pretty_utils.sfprintf "%s_%a" name pp_suffix ft in + let bool = Pretty_utils.sfprintf "%s_%ab" name pp_suffix ft in let phi = extern_p ~library ~bool ~prop () in Lang.F.set_builtin phi (compute op ft) ; REGISTRY.define phi (op,ft) ; phi diff --git a/src/plugins/wp/Changelog b/src/plugins/wp/Changelog index 844b5b50097f8f55d30a604eb2ec14cd13cf1498..65843136872b5e143fc4ce3420645d94c8a8c47e 100644 --- a/src/plugins/wp/Changelog +++ b/src/plugins/wp/Changelog @@ -20,7 +20,35 @@ # <Prover>: prover ############################################################################### -- Wp [2019/01/28] New floating-point model + - Wp [2019/01/28] New floating-point model + - WP [2018/02/16] Filter out some variables from separation + - TIP [2018/02/15] Extend bitwise-eq auto-strategy on hypotheses + - TIP [2018/02/15] Fix wrong reconciliation of sub-scripts during replay + - Wp [2018/02/15] Better naming convention, consistent with report-classify + - Wp [2018/01/18] Auto-Search mode, see -wp-auto + - TIP [2018/01/18] Auto-Search mode from the GUI + - TIP [2018/01/18] New Strategies for bitwise and congruence operations + - TIP [2017/12/17] Fix bug that makes the TIP wrongly reuse previous results + - Wp [2017/12/17] Option -wp-print-separation changed into -wp-warn-separation + - Wp [2017/12/17] Option -wp-unfold-assigns for proving assigns of aggregates field by field + - TIP [2017/04/25] New tactical Congruence (divisions and products) + - Qed [2017/10/30] Extends simplifications for lsl,lsr and div + - Wp [2017/10/27] Fix soundness bug when assigning non-valid ranges + - Qed [2017/10/27] New simplifications for validirt and ranges + - TIP [2017/10/27] New tacticals for validity and ranges + - TIP [2017/04/25] Options -wp-time-{extra|margin} for more stability + -* Gui [2017/04/25] Fixed bug when running prover from the TIP + - Wp [2017/04/25] Improved model and simplifications of logical shifts + - Wp [2017/04/25] New simplification logic functions (-wp-reduce) + - Wp [2017/04/25] New simplification of unused variables (-wp-parasite) + - Wp [2017/04/25] New simplification for ground terms (-wp-ground) + - Wp [2017/04/25] Option -wp-prenex to normalize nested binders + - Wp [2017/04/25] Option -wp-overflows to add explicit assumptions + - TIP [2017/04/25] New tactical Overflow (to cope with modulus) + - TIP [2017/04/25] New tactical Bitwised, BitRange and Shift + - TIP [2017/04/25] New tactical Rewrite (two apply equalities) + - Wp [2017/03/12] Reduction of equalities with logic functions + - Wp [2017/03/12] More simplifications wrt integer domains ###################### Plugin WP 18.0 (Argon) @@ -35,6 +63,26 @@ Plugin WP 18.0 (Argon) - Qed [2018/06/20] Added more simplifications for invertible functions - TIP [2018/06/07] Extends tactical 'Split' to distribution of qualitifiers +######################### +Plugin WP Sulfur-20171101 +######################### + + - Wp [2017/10/18] Support for LoopCurrent and LoopEntry + - TIP [2017/04/25] Options -wp-time-{extra|margin} for more stability + -* Gui [2017/04/25] Fixed bug when running prover from the TIP + - Wp [2017/04/25] Improved model and simplifications of logical shifts + - Wp [2017/04/25] New simplification logic functions (-wp-reduce) + - Wp [2017/04/25] New simplification of unused variables (-wp-parasite) + - Wp [2017/04/25] New simplification for ground terms (-wp-ground) + - Wp [2017/04/25] Option -wp-prenex to normalize nested binders + - Wp [2017/04/25] Option -wp-overflows to add explicit assumptions + - TIP [2017/04/25] New tactical Overflow (to cope with modulus) + - TIP [2017/04/25] New tactical Ratio (divisions and products) + - TIP [2017/04/25] New tactical Bitwised, BitRange and Shift + - TIP [2017/04/25] New tactical Rewrite (two apply equalities) + - Wp [2017/03/12] Reduction of equalities with logic functions + - Wp [2017/03/12] More simplifications wrt integer domains + ########################### Plugin WP Chlorine-20180501 ########################### @@ -86,6 +134,7 @@ Plugin WP Sulfur-20171101 Plugin WP Phosphorus-20170501 ############################# +- Qed [2017/12/13] Transforms some quantifications into let constructs - WP [2017/05/15] Extract inductive predicates as Inductive in Coq -! WP [2017/03/24] Remove support for generalized invariants (-wp-invariants) -o Ergo [2017/01/12] Update qualif tests to Alt-Ergo 1.30 diff --git a/src/plugins/wp/Cint.ml b/src/plugins/wp/Cint.ml index 462cf49b991556092fdc92911adfe197762e1061..02c88290a4e5bf52db262ee8661d51cce8d337a2 100644 --- a/src/plugins/wp/Cint.ml +++ b/src/plugins/wp/Cint.ml @@ -153,7 +153,7 @@ let match_positive_or_null e = if not (is_positive_or_null e) then raise Not_found; e -let match_power2, match_power2_minus1 = +let match_power2, _match_power2_minus1 = let highest_bit_number = let hsb p = if p land 2 = 0 then 0 else 1 in let hsb p = let n = p lsr 2 in if n = 0 then hsb p else 2 + hsb n @@ -258,21 +258,6 @@ let simplify_f_to_conv f iota e conv e' = signed iota -> iota' can have any sign *) else raise Not_found -let simplify_f_to_land f iota e es' = - let size', es' = match_list_head match_power2_minus1 es' in - (* land (2**(size')-1) _ is equivalent to a conversion - to an unsigned integer of size' bits. - So, the end of this function is similar to [simplify_conv] *) - let size = Ctypes.i_bits iota in - match is_leq (e_int size) size' with - | Logic.Yes -> - let e' = match es' with - | [] -> assert false - | [_] -> es' | _ -> [e_fun f_land es'] - in e_fun f e' - | Logic.No -> e - | Logic.Maybe -> raise Not_found - let simplify_f_to_bounds iota e = (* min(ctypes)<=y<=max(ctypes) ==> to_ctypes(y)=y *) let lower,upper = Ctypes.bounds iota in @@ -285,37 +270,40 @@ let f_to_int = Ctypes.i_memo (fun iota -> make_fun_int "to" iota) let configure_to_int iota = let f = f_to_int iota in - let simplify = function - | [e] -> - begin - match F.repr e with - | Logic.Kint value -> - let size = Integer.of_int (Ctypes.i_bits iota) in - let signed = Ctypes.signed iota in - F.e_zint (Integer.cast ~size ~signed ~value) - | Logic.Fun( fland , es ) when Fun.equal fland f_land -> - (try simplify_f_to_land f iota e es - with Not_found -> simplify_f_to_bounds iota e) - | Logic.Fun( flor , es ) when (Fun.equal flor f_lor) - && not (Ctypes.signed iota) -> - (* to_uintN(a|b) == (to_uintN(a) | to_uintN(b)) *) - e_fun f_lor (List.map (fun e' -> e_fun f [e']) es) - | Logic.Fun( flnot , [ e ] ) when (Fun.equal flnot f_lnot) - && not (Ctypes.signed iota) -> - begin - match F.repr e with - | Logic.Fun( f' , w ) when f' == f -> - e_fun f [ e_fun f_lnot w ] - | _ -> raise Not_found - end - | Logic.Fun( conv , [e'] ) -> (* unary op *) - (try simplify_f_to_conv f iota e conv e' - with Not_found -> simplify_f_to_bounds iota e) - | _ -> simplify_f_to_bounds iota e - end - | _ -> raise Not_found + let simplify e = + begin + try match F.repr e with + | Logic.Kint value -> + let size = Integer.of_int (Ctypes.i_bits iota) in + let signed = Ctypes.signed iota in + F.e_zint (Integer.cast ~size ~signed ~value) + | Logic.Fun( fland , es ) + when Fun.equal fland f_land && + not (Ctypes.signed iota) && + List.exists is_positive_or_null es -> + (* to_uintN(a) == a & (2^N-1) when a >= 0 *) + let m = F.e_zint (snd (Ctypes.bounds iota)) in + F.e_fun f_land (m :: es) + | Logic.Fun( flor , es ) when (Fun.equal flor f_lor) + && not (Ctypes.signed iota) -> + (* to_uintN(a|b) == (to_uintN(a) | to_uintN(b)) *) + F.e_fun f_lor (List.map (fun e' -> e_fun f [e']) es) + | Logic.Fun( flnot , [ e ] ) when (Fun.equal flnot f_lnot) + && not (Ctypes.signed iota) -> + begin + match F.repr e with + | Logic.Fun( f' , w ) when f' == f -> + e_fun f [ e_fun f_lnot w ] + | _ -> raise Not_found + end + | Logic.Fun( conv , [e'] ) -> (* unary op *) + simplify_f_to_conv f iota e conv e' + | _ -> raise Not_found + with Not_found -> + simplify_f_to_bounds iota e + end in - F.set_builtin f simplify ; + F.set_builtin_1 f simplify ; let simplify_leq x y = let lower,upper = Ctypes.bounds iota in diff --git a/src/plugins/wp/CodeSemantics.ml b/src/plugins/wp/CodeSemantics.ml index e7dacab67bf5ee7a8fb910ca905891cea21f3ce2..d1c55685ea4d7add16b3f3e43080df932afe60c3 100644 --- a/src/plugins/wp/CodeSemantics.ml +++ b/src/plugins/wp/CodeSemantics.ml @@ -32,6 +32,26 @@ open Sigs open Lang open Lang.F +module WpLog = Wp_parameters +let constfold_ctyp = function + | TArray (_,Some {enode = (Const CInt64 _) },_,_) as ct -> ct + | TArray (ty,Some len,cache,attr) as ct -> begin + match Cil.constFold true len with + | {enode = (Const CInt64 _) } as len -> + TArray(ty,Some len,cache,attr) + | _ -> ct + end + | ct -> ct + +let constfold_coffset = function + | Index({enode=Const (CInt64 _)}, _) as off -> off + | Index(idx, next) as off -> begin + match Cil.constFold true idx with + | {enode = (Const CInt64 _) } as idx -> Index(idx, next) + | _ -> off + end + | off -> off + module Make(M : Sigs.Model) = struct @@ -448,22 +468,18 @@ struct init_value ~sigma lv (Cil.typeOfLval lv) (Some exp) :: acc | CompoundInit ( ct , initl ) -> - - let len = List.length initl in - let acc = + let ct = constfold_ctyp ct in + let acc = (* updated acc with default init of structure *) match ct with - | TArray (ty,Some {enode = (Const CInt64 (size,_,_))},_,_) - when Integer.lt (Integer.of_int len) size -> - init_range ~sigma lv ty (Integer.of_int len) size None :: acc - - | TComp (cp,_,_) when len < (List.length cp.cfields) -> - + | TComp (cp,_,_) when cp.cstruct && (* not for union... *) + (List.length initl) < (List.length cp.cfields) -> + (* default init for unintialized field of a struct *) List.fold_left (fun acc f -> if List.exists (function | Field(g,_),_ -> Fieldinfo.equal f g - | _ -> false) + | _ -> WpLog.fatal "Kernel invariant broken into an initializer") initl then acc else @@ -477,47 +493,80 @@ struct | _ -> acc in match ct with - | TArray (ty,_,_,_) - when Wp_parameters.InitWithForall.get () -> - (* delayed: the last consecutive index have the same value - and are not yet initialized. - (i0,pred,il) =def \forall x. x \in [il;i0] t[x] == pred - *) + | TArray (ty,len,_,_) -> + let delayed = + match len with (* number of required elements *) + | Some {enode = (Const CInt64 (size,_,_))} -> + (size, None) + | _ -> (* CIL invariant broken. *) + WpLog.fatal "CIL invariant broken: unknown initialized array size" + in let make_quant acc = function - | None -> acc - | Some (Index({enode=Const (CInt64 (i0,_,_))}, NoOffset),exp,il) - when Integer.lt il i0 -> + (* adds delayed initializations from info about + the last consecutive indices having + the same value, but that have not yet initialized. *) + | (_,None) -> acc (* nothing was delayed *) + | (il,Some (i0,_,exp)) when Integer.lt il i0 -> + (* Added pred: \forall i \in [il .. i0] ; t[i]==exp *) let i2 = Integer.succ i0 in init_range ~sigma lv ty il i2 (Some exp) :: acc - | Some (off,exp,_) -> + | (_il,Some (_i0,off,exp)) -> + (* case [_il=_i0], so uses [off] corresponding to [_i0] + Added pred: t[i]==exp*) let lv = Cil.addOffsetLval off lv in init_value ~sigma lv ty (Some exp) :: acc in + let add_missing_indices acc i0 = function + (* adds eventual default value for missing indices. *) + | (i1, _) -> + if Integer.ge i0 i1 then (* no hole *) acc + else (* defaults values + Added pred: \forall i \in [i0 .. i1[ ; t[i]==default *) + init_range ~sigma lv ty i0 i1 None :: acc + in let acc, delayed = List.fold_left (fun (acc,delayed) (off,init) -> - match delayed, off, init with - | None, Index({enode=Const (CInt64 (i0,_,_))}, NoOffset), - SingleInit curr -> - (acc,Some(off,curr,i0)) - | Some (i0,prev,ip), Index({enode=Const (CInt64 (i,_,_))}, NoOffset), - SingleInit curr - when ExpStructEq.equal prev curr - && Integer.equal (Integer.pred ip) i -> - (acc,Some(i0,prev,i)) - | _, _,_ -> + let off = constfold_coffset off in + let idx,acc = match off with + | Index({enode=Const CInt64 (idx,_,_)}, _) -> + (match delayed with + | (iprev, _) when Integer.lt iprev idx -> + (* CIL invariant broken. + without that invariant, an algo with a 2sd pass + is required for introducing default values *) + WpLog.fatal "CIL invariant broken: unordered initializer"; + | _ -> ()) ; + idx, + (* adds default values for missing indices *) + add_missing_indices acc (Integer.succ idx) delayed + | _ -> (* CIL invariant broken. *) + WpLog.fatal "CIL invariant broken: unknown initialized index" + in + match off, init with (* only simple init can be delayed *) + | Index(_, NoOffset), SingleInit init -> begin + match delayed with + | (i_prev,(Some (_,_,init_delayed) as delayed_info)) + when Wp_parameters.InitWithForall.get () + && Integer.equal (Integer.pred i_prev) idx + && ExpStructEq.equal init_delayed init -> + acc, (idx,delayed_info) + | _ -> (* flush the delayed init, and store the new one *) + let acc = make_quant acc delayed in + acc, (idx, Some (idx,off,init)) + end + | Index(_, _),_ -> + (* flush the delayed init, and adds the current one *) let acc = make_quant acc delayed in - begin match off, init with - | Index({enode=Const (CInt64 (i0,_,_))}, NoOffset), - SingleInit curr -> - acc, Some (off,curr,i0) - | _ -> - let lv = Cil.addOffsetLval off lv in - init_variable ~sigma lv init acc, None - end) - (acc,None) - (List.rev initl) in - (make_quant acc delayed) + let lv = Cil.addOffsetLval off lv in + (init_variable ~sigma lv init acc), (idx, None) + | _ -> WpLog.fatal "CIL invariant broken: not an index" + ) + (acc,delayed) + (List.rev initl) + in + let acc = make_quant acc delayed in + add_missing_indices acc Integer.zero delayed | _ -> List.fold_left (fun acc (off,init) -> diff --git a/src/plugins/wp/GuiComposer.ml b/src/plugins/wp/GuiComposer.ml index 779d9f467f79b19a280785b206c5bd3f2bf9da1f..c550f764282a454e18e65b476a82f4ac97150148 100644 --- a/src/plugins/wp/GuiComposer.ml +++ b/src/plugins/wp/GuiComposer.ml @@ -69,7 +69,7 @@ class composer (focused : GuiSequent.focused) = match args with | a::b::_ when cc#ranged -> begin - match self#get_int a, self#get_int b with + match Tactical.get_int a, Tactical.get_int b with | Some a,Some b when a <= b -> let callback () = cc#set_value (Tactical.range a b) ; @@ -89,11 +89,6 @@ class composer (focused : GuiSequent.focused) = update () in focused#button ~title:"Stack" ~callback fmt - method private get_int = function - | Tactical.Compose(Tactical.Cint z) -> - (try Some (Integer.to_int z) with Z.Overflow -> None) - | _ -> None - method private op1 title job args fmt = match args with | a::w -> let callback () = diff --git a/src/plugins/wp/GuiGoal.ml b/src/plugins/wp/GuiGoal.ml index ee0e78942eba08a5e799e055e21174224afb8bec..5b8539b2c9085ede840a8c805c957d1834529ab5 100644 --- a/src/plugins/wp/GuiGoal.ml +++ b/src/plugins/wp/GuiGoal.ml @@ -35,30 +35,38 @@ type mode = [ `Refresh | `Autofocus | `ViewModel | `ViewAll | `ViewRaw ] module Config = Gtk_helper.Configuration -class autofocus = - let options = [ - `Refresh , "Refresh" ; - `Autofocus , "Autofocus" ; - `ViewAll , "Full Context" ; - `ViewModel , "Unmangled Memory" ; - `ViewRaw , "Raw Obligation" ; - ] in - let values = [ - `Refresh , "REFRESH" ; - `Autofocus , "AUTOFOCUS" ; - `ViewAll , "VIEW_ALL" ; - `ViewModel , "VIEW_MODEL" ; - `ViewRaw , "VIEW_RAW" ; - ] in +class ['a] menu ~(data : ('a * string * string) list) ~key ~default = + let options = List.map (fun (v,d,_) -> v,d) data in + let values = List.map (fun (v,_,k) -> v,k) data in object(self) - inherit [mode] Widget.menu ~default:`Autofocus ~options () + inherit ['a] Widget.menu ~default ~options () initializer - Wutil.later - begin fun () -> - Config.config_values - ~key:"GuiGoal.autofocus" - ~default:`Autofocus ~values self - end + Wutil.later (fun () -> Config.config_values ~key ~default ~values self) + end + + +class autofocus = + object inherit [mode] menu + ~key:"GuiGoal.autofocus" + ~default:`Autofocus + ~data:[ + `Refresh , "Refresh" , "REFRESH" ; + `Autofocus , "Autofocus" , "AUTOFOCUS" ; + `ViewAll , "Full Context" , "VIEW_ALL" ; + `ViewModel , "Unmangled Memory" , "VIEW_MODEL" ; + `ViewRaw , "Raw Obligation" , "VIEW_RAW" ; + ] + end + +class iformat = + object inherit [Plang.iformat] menu + ~key:"GuiGoal.iformat" + ~default:`Dec + ~data:[ + `Dec , "Decimal" , "DEC" ; + `Hex , "Hexa" , "HEX" ; + `Bin , "Binary" , "BIN" ; + ] end (* -------------------------------------------------------------------------- *) @@ -97,6 +105,7 @@ class pane (proverpane : GuiConfig.provers) = let save_script = new Widget.button ~icon:`SAVE ~tooltip:"Save Script" () in let autofocus = new autofocus in + let iformat = new iformat in let strategies = new GuiTactic.strategies () in object(self) @@ -109,7 +118,8 @@ class pane (proverpane : GuiConfig.provers) = let toolbar = Wbox.(toolbar [ w prev ; w next ; w cancel ; w forward ; - w autofocus ; w play_script ; w save_script ; + w autofocus ; w iformat ; + w play_script ; w save_script ; w ~padding:6 icon ; h ~padding:6 status ] [ w help ; w delete ]) in layout#populate (Wbox.panel ~top:toolbar ~right:scroll_palette_widget text) ; @@ -140,6 +150,7 @@ class pane (proverpane : GuiConfig.provers) = save_script#connect (fun () -> self#save_script) ; play_script#connect (fun () -> self#play_script) ; autofocus#connect self#autofocus ; + iformat#connect self#iformat ; composer#connect (fun () -> self#update) ; browser#connect (fun () -> self#update) ; help#connect (fun () -> self#open_help) ; @@ -208,6 +219,8 @@ class pane (proverpane : GuiConfig.provers) = | `Leaf (k,_) -> ProofEngine.goto p (`Leaf(f k)) ; self#update | `Main | `Internal _ -> () + method private iformat f = printer#set_iformat f ; self#update + method private autofocus = function | `Autofocus -> printer#set_focus_mode true ; @@ -242,6 +255,7 @@ class pane (proverpane : GuiConfig.provers) = | Proof p -> ProofEngine.reset p ; ProverScript.spawn + ~provers:[ VCS.AltErgo ] ~result: (fun wpo prv res -> text#printf "[%a] %a : %a@." diff --git a/src/plugins/wp/GuiSequent.ml b/src/plugins/wp/GuiSequent.ml index 18e3d22a79cd6c2a21520a4223a217e634864554..9caaecce6659ed64c2dac555ff2f1c4a7aa17375 100644 --- a/src/plugins/wp/GuiSequent.ml +++ b/src/plugins/wp/GuiSequent.ml @@ -526,6 +526,9 @@ class focused (wtext : Wtext.text) = method get_state_mode = pcond#get_state method set_state_mode = pcond#set_state + method set_iformat = plang#set_iformat + method get_iformat = plang#get_iformat + method selected = begin self#set_target self#selection ; diff --git a/src/plugins/wp/GuiSequent.mli b/src/plugins/wp/GuiSequent.mli index d1cfa16bbbe4f7b89fed7c8094253e0628556f18..b11d583cdf96a71bb0e8379df39f930610c2de04 100644 --- a/src/plugins/wp/GuiSequent.mli +++ b/src/plugins/wp/GuiSequent.mli @@ -37,6 +37,8 @@ class focused : Wtext.text -> method set_focus_mode : bool -> unit method get_state_mode : bool method set_state_mode : bool -> unit + method get_iformat : Plang.iformat + method set_iformat : Plang.iformat -> unit method selected : unit method unselect : target diff --git a/src/plugins/wp/MemEmpty.ml b/src/plugins/wp/MemEmpty.ml index a9999cc1990b2e2b24909ac5926e788623bbc9e2..cf7d3dc174069393407c5a60dcbca667178d9fb0 100644 --- a/src/plugins/wp/MemEmpty.ml +++ b/src/plugins/wp/MemEmpty.ml @@ -35,6 +35,8 @@ let configure () = Context.set Lang.pointer (fun _typ -> Logic.Int) ; Context.set Cvalues.null (p_equal e_zero) ; end +let no_binder = { bind = fun _ f v -> f v } +let configure_ia _ = no_binder let hypotheses () = [] diff --git a/src/plugins/wp/MemTyped.ml b/src/plugins/wp/MemTyped.ml index 7439f2f8393fba8312c40754507ac3794dfd820e..410076e90d5b76643c128246e264f40d836807d6 100644 --- a/src/plugins/wp/MemTyped.ml +++ b/src/plugins/wp/MemTyped.ml @@ -149,7 +149,6 @@ let a_addr b k = a_shift (a_global b) k (* --- Qed Simplifiers --- *) (* -------------------------------------------------------------------------- *) - (* Pointer arithmetic for structure access and array access could be defined directly using the record [{ base = p.base; offset = p.offset @@ -367,6 +366,7 @@ let phi_addr_of_int p = (* -------------------------------------------------------------------------- *) (* --- Simplifier Registration --- *) (* -------------------------------------------------------------------------- *) + let () = Context.register begin fun () -> F.set_builtin_1 f_base phi_base ; @@ -391,6 +391,8 @@ let configure () = Context.set Lang.pointer (fun _ -> t_addr) ; Context.set Cvalues.null (p_equal a_null) ; end +let no_binder = { bind = fun _ f v -> f v } +let configure_ia _ = no_binder type pointer = NoCast | Fits | Unsafe let pointer = Context.create "MemTyped.pointer" @@ -1028,7 +1030,7 @@ let load sigma obj l = Val (loadvalue sigma obj l) (* --- Locations --- *) (* -------------------------------------------------------------------------- *) -let null = a_null +let null = a_null (* as a loc *) let literal ~eid cst = shift (a_global (STRING.get (eid,cst))) (C_int (Ctypes.c_char ())) e_zero diff --git a/src/plugins/wp/MemVar.ml b/src/plugins/wp/MemVar.ml index cd5dcfd28d4f04fee81807c9d5604dea8bb52d43..b4d8a304b5e39ebcfb26c760a27b16bc269f24c9 100644 --- a/src/plugins/wp/MemVar.ml +++ b/src/plugins/wp/MemVar.ml @@ -49,6 +49,8 @@ struct let datatype = "MemVar." ^ V.datatype ^ M.datatype let configure = M.configure + let no_binder = { bind = fun _ f v -> f v } + let configure_ia _ = no_binder let hypotheses () = V.hypotheses () @ M.hypotheses () diff --git a/src/plugins/wp/MemZeroAlias.ml b/src/plugins/wp/MemZeroAlias.ml index 1983f2361f498823fd38afb9fccaa19e372d77e6..c88f4531a438160afc5b4b7377c13978f189b43e 100644 --- a/src/plugins/wp/MemZeroAlias.ml +++ b/src/plugins/wp/MemZeroAlias.ml @@ -39,6 +39,8 @@ let configure () = Context.set Lang.pointer (fun _typ -> Logic.Int) ; Context.set Cvalues.null F.(p_equal e_zero) ; end +let no_binder = { bind = fun _ f v -> f v } +let configure_ia _ = no_binder (* TODO: compute actual separation hypotheses *) let hypotheses () = [] diff --git a/src/plugins/wp/Plang.ml b/src/plugins/wp/Plang.ml index 95cbcbe5258c07f036e32983240b08f73e34a58e..5349fad798834ca1b646bae7713b6e398a366a25 100644 --- a/src/plugins/wp/Plang.ml +++ b/src/plugins/wp/Plang.ml @@ -67,6 +67,7 @@ module E = Qed.Export.Make(Lang.F.QED) module Env = E.Env type scope = Qed.Engine.scope +type iformat = [ `Dec | `Hex | `Bin ] let sanitizer = Qed.Export.sanitize ~to_lowercase:false class engine = @@ -75,6 +76,10 @@ class engine = inherit Lang.idprinting method infoprover w = w.altergo + val mutable iformat : iformat = `Dec + method get_iformat = iformat + method set_iformat (f : iformat) = iformat <- f + (* --- Types --- *) method t_int = "Z" @@ -97,7 +102,20 @@ class engine = method e_true _ = "true" method e_false _ = "false" - method pp_int _ = Integer.pretty ~hexa:false + + method pp_int _ fmt z = + try + let n = Integer.to_int z in + if -256 <= n && n <= 256 then + Format.pp_print_int fmt n + else + raise Z.Overflow + with Z.Overflow -> + match iformat with + | `Dec -> Integer.pretty ~hexa:false fmt z + | `Hex -> Integer.pp_hex ~sep:"." fmt z + | `Bin -> Integer.pp_bin ~sep:"." fmt z + method pp_real fmt q = match Q.classify q with | Q.ZERO -> Format.pp_print_string fmt ".0" diff --git a/src/plugins/wp/Plang.mli b/src/plugins/wp/Plang.mli index e837b405c730cfe25267591416585d0879a26284..3dd2bf095125c2c298443944d4eb8e32aeedd74f 100644 --- a/src/plugins/wp/Plang.mli +++ b/src/plugins/wp/Plang.mli @@ -36,9 +36,13 @@ val alloc_xs : pool -> (var -> unit) -> Vars.t -> unit val alloc_domain : pool -> Vars.t val sanitizer : string -> string +type iformat = [ `Hex | `Dec | `Bin ] + class engine : object inherit [Z.t,ADT.t,Field.t,Fun.t,tau,var,term,Env.t] Qed.Engine.engine + method get_iformat : iformat + method set_iformat : iformat -> unit method marks : Env.t * Lang.F.marks method pp_pred : Format.formatter -> pred -> unit method lookup : term -> scope diff --git a/src/plugins/wp/ProofEngine.ml b/src/plugins/wp/ProofEngine.ml index e3db17f70e4b0eb0ef694c329fa4e3c10eaf5b05..6d2bca1144d0184eea2d63679675fa643615cccc 100644 --- a/src/plugins/wp/ProofEngine.ml +++ b/src/plugins/wp/ProofEngine.ml @@ -69,6 +69,7 @@ let get wpo = | Some { script = Tactic _ } -> if proof.saved then `Saved else `Proof with Not_found -> if ProofSession.exists wpo then `Script else `None + let iter_all f ns = List.iter (fun (_,n) -> f n) ns let map_all f ns = List.map (fun (k,n) -> k,f n) ns @@ -277,6 +278,7 @@ let mk_goal t ~title ~part ~axioms sequent = let sid = Printf.sprintf "%s-%d" t.main.Wpo.po_sid id in Wpo.({ po_gid = gid ; + po_leg = "" ; (* no use for legacy name *) po_sid = sid ; po_name = Printf.sprintf "%s (%s)" title part ; po_idx = t.main.po_idx ; diff --git a/src/plugins/wp/ProofScript.ml b/src/plugins/wp/ProofScript.ml index ef8404c41bd0541a3b2f4d35cfca3e33fafb11bb..2f5b986d29a6a3c94ff0e8905df5e92eb10cd5ef 100644 --- a/src/plugins/wp/ProofScript.ml +++ b/src/plugins/wp/ProofScript.ml @@ -300,6 +300,7 @@ let children_of_json = function List.map (fun j -> "",j) js | `Assoc fs -> fs | _ -> [] + let tactic_of_json js = try let header = js >? "header" |> Json.string in @@ -382,7 +383,7 @@ let rec subgoals n = function | (_,a)::s -> subgoals (n + status a) s let a_prover p r = Prover(p,r) -let a_tactic tac children = Tactic(subgoals 0 children,tac,children) +let a_tactic tac children = Tactic(subgoals 0 children,tac,children) (* -------------------------------------------------------------------------- *) (* --- Codecs --- *) diff --git a/src/plugins/wp/ProofSession.ml b/src/plugins/wp/ProofSession.ml index 987c4639ad8d4b8c777ee91becefde37f6c5a577..e79a9491ca5cac9e75d54e7b49b80bfd8ec60e94 100644 --- a/src/plugins/wp/ProofSession.ml +++ b/src/plugins/wp/ProofSession.ml @@ -22,39 +22,79 @@ open Wpo -let files = Hashtbl.create 32 +type status = + | NoScript + | Script of string + | Deprecated of string -let filename wpo = +let files : (string,status) Hashtbl.t = Hashtbl.create 32 + +let filename ?(legacy=false) wpo = let m = Model.get_id wpo.po_model in let d = Wp_parameters.get_session_dir m in - Printf.sprintf "%s/%s.json" d wpo.po_gid + Printf.sprintf "%s/%s.json" d (if legacy then wpo.po_leg else wpo.po_gid) let pretty fmt wpo = Format.pp_print_string fmt (filename wpo) -let exists wpo = +let status wpo = let f = filename wpo in try Hashtbl.find files f with Not_found -> - let e = Sys.file_exists f in - Hashtbl.add files f e ; e + let status = + if Sys.file_exists f then Script f else + let f' = filename ~legacy:true wpo in + if Sys.file_exists f' then + ( Wp_parameters.warning ~current:false + "Deprecated script for '%s'" wpo.po_sid ; + Deprecated f' ) + else NoScript in + Hashtbl.add files f status ; status + +let exists wpo = + match status wpo with NoScript -> false | Script _ | Deprecated _ -> true let load wpo = - let f = filename wpo in - if Sys.file_exists f then Json.load_file f else `Null + match status wpo with + | NoScript -> `Null + | Script f | Deprecated f -> + if Sys.file_exists f then Json.load_file f else `Null + +let remove wpo = + match status wpo with + | NoScript -> () + | Script f -> + begin + Extlib.safe_remove f ; + Hashtbl.replace files f NoScript ; + end + | Deprecated f0 -> + begin + Wp_parameters.feedback + "Removed deprecated script for '%s'" wpo.po_sid ; + Extlib.safe_remove f0 ; + Hashtbl.replace files (filename wpo) NoScript ; + end let save wpo js = - let f = filename wpo in let empty = match js with | `Null | `List [] | `Assoc [] -> true - | _ -> false - in - ( if empty - then Extlib.safe_remove f - else Json.save_file f js ) ; - Hashtbl.replace files f (not empty) - -let remove wpo = - let f = filename wpo in - Extlib.safe_remove f ; - Hashtbl.replace files f false + | _ -> false in + if empty then remove wpo else + match status wpo with + | Script f -> Json.save_file f js + | NoScript -> + begin + let f = filename wpo in + Json.save_file f js ; + Hashtbl.replace files f (Script f) ; + end + | Deprecated f0 -> + begin + Wp_parameters.feedback + "Upgraded script for '%s'" wpo.po_sid ; + Extlib.safe_remove f0 ; + let f = filename wpo in + Json.save_file f js ; + Hashtbl.replace files f (Script f) ; + end diff --git a/src/plugins/wp/ProofSession.mli b/src/plugins/wp/ProofSession.mli index 3abe47aa97b9d894a8dd3b947f34e90afef942b8..1387357f27ae30e98cd0b8da4f52d81bf22f022d 100644 --- a/src/plugins/wp/ProofSession.mli +++ b/src/plugins/wp/ProofSession.mli @@ -21,7 +21,7 @@ (**************************************************************************) val pretty : Format.formatter -> Wpo.t -> unit -val filename : Wpo.t -> string +val filename : ?legacy:bool -> Wpo.t -> string val exists : Wpo.t -> bool val save : Wpo.t -> Json.t -> unit val load : Wpo.t -> Json.t diff --git a/src/plugins/wp/ProverCoq.ml b/src/plugins/wp/ProverCoq.ml index 8a74ab1f2dc03ab707fc31e57643dc9bedf8df9d..7f07fdfe2587d78255717aa24699c2fec2bcd482 100644 --- a/src/plugins/wp/ProverCoq.ml +++ b/src/plugins/wp/ProverCoq.ml @@ -523,6 +523,7 @@ open Wpo type coq_wpo = { cw_pid : WpPropId.prop_id ; cw_gid : string ; + cw_leg : string ; cw_goal : string ; (* filename for goal without proof *) cw_script : string ; (* filename for goal with proof script *) cw_headers : string list ; (* filename for libraries *) @@ -559,14 +560,14 @@ let rec try_hints w = function if succeed then let required,hints = WpPropId.prop_id_keys w.cw_pid in let keys = List.merge String.compare required hints in - Proof.add_script w.cw_gid keys script closing ; + Proof.add_script_for ~gid:w.cw_gid keys script closing ; Task.return true else try_hints w hints let try_prove w = begin - match Proof.script_for ~pid:w.cw_pid ~gid:w.cw_gid with + match Proof.script_for ~pid:w.cw_pid ~gid:w.cw_gid ~legacy:w.cw_leg with | Some (script,closing) -> Wp_parameters.feedback ~ontty "[Coq] Goal %s : Saved script" w.cw_gid ; try_script w script closing @@ -579,7 +580,8 @@ let try_prove w = try_hints w (Proof.hints_for ~pid:w.cw_pid) let try_coqide w = - let script,closing = Proof.script_for_ide ~pid:w.cw_pid ~gid:w.cw_gid in + let script,closing = + Proof.script_for_ide ~pid:w.cw_pid ~gid:w.cw_gid ~legacy:w.cw_leg in make_script w script closing ; (new runcoq w.cw_includes w.cw_script)#coqide >>= fun st -> if st = 0 then @@ -588,16 +590,16 @@ let try_coqide w = Wp_parameters.feedback "[Coq] No proof found" ; Task.return false | Some(script,closing) -> - if Proof.is_empty script then + if Proof.is_empty_script script then begin - Proof.delete_script w.cw_gid ; + Proof.delete_script_for ~gid:w.cw_gid ; Task.canceled () ; end else begin let req,hs = WpPropId.prop_id_keys w.cw_pid in let hints = List.merge String.compare req hs in - Proof.add_script w.cw_gid hints script closing ; + Proof.add_script_for ~gid:w.cw_gid hints script closing ; Wp_parameters.feedback ~ontty "[Coq] Goal %s : Script" w.cw_gid ; try_script w script closing end @@ -651,6 +653,7 @@ let prove_session ~mode w = let prove_prop wpo ~mode ~axioms ~prop = let pid = wpo.po_pid in let gid = wpo.po_gid in + let leg = wpo.po_leg in let model = wpo.po_model in let script = DISK.file_goal ~pid ~model ~prover:Coq in let includes , headers , goal = @@ -659,6 +662,7 @@ let prove_prop wpo ~mode ~axioms ~prop = prove_session ~mode { cw_pid = pid ; cw_gid = gid ; + cw_leg = leg ; cw_goal = goal ; cw_script = script ; cw_headers = headers ; diff --git a/src/plugins/wp/ProverScript.ml b/src/plugins/wp/ProverScript.ml index 153da7b96ef104963c41ef5fe1088dcb6e3b82ee..199f8180f9e0678a76630cebc3c578bc76a4401c 100644 --- a/src/plugins/wp/ProverScript.ml +++ b/src/plugins/wp/ProverScript.ml @@ -102,6 +102,7 @@ open Task module Env = struct + type t = { tree : ProofEngine.tree ; valid : bool ; (* play valid provers *) @@ -410,6 +411,7 @@ type 'a process = let skip1 _ = () let skip2 _ _ = () let skip3 _ _ _ = () + let prove ?(valid = true) ?(failed = true) ?(provers = []) ?(depth = 0) ?(width = 0) ?(backtrack = 0) ?(auto = []) diff --git a/src/plugins/wp/Sigs.ml b/src/plugins/wp/Sigs.ml index aa49e4f9d21b6052dbb868d93dfa3573905c5624..d451e04f15fcb2003abd1d85c6769e6a4afc1da0 100644 --- a/src/plugins/wp/Sigs.ml +++ b/src/plugins/wp/Sigs.ml @@ -27,6 +27,7 @@ open Cil_types open Ctypes open Lang.F +open Interpreted_automata (* -------------------------------------------------------------------------- *) (** {1 General Definitions} *) @@ -34,6 +35,8 @@ open Lang.F type 'a sequence = { pre : 'a ; post : 'a } +type 'a binder = { bind: 'b 'c. 'a -> ('b -> 'c) -> 'b -> 'c } + (** Oriented equality or arbitrary relation *) type equation = | Set of term * term (** [Set(a,b)] is [a := b]. *) @@ -267,6 +270,11 @@ sig (** Initializers to be run before using the model. Typically sets {!Context} values. *) + val configure_ia: automaton -> vertex binder + (** Given an automaton, return a vertex's binder. + Currently used by the automata compiler to bind current vertex. + See {!StmtSemantics}. *) + val datatype : string (** For projectification. Must be unique among models. *) diff --git a/src/plugins/wp/StmtSemantics.ml b/src/plugins/wp/StmtSemantics.ml index dcfe6882c457142db1f40bb156ea742e8f894c3e..968c460cb2b5941bbe21304fc8ea819281bf9330 100644 --- a/src/plugins/wp/StmtSemantics.ml +++ b/src/plugins/wp/StmtSemantics.ml @@ -66,6 +66,7 @@ struct (* --- Env Utilities --- *) (* -------------------------------------------------------------------------- *) + let result env = env.result let bind l n env = @@ -575,6 +576,8 @@ struct let automaton : env -> Interpreted_automata.automaton -> paths = fun env a -> let open Interpreted_automata in + let binder = M.configure_ia a in + let bind = binder.bind in let wto = WTO.partition ~pref ~init:a.entry_point ~succs:(G.succ a.graph) in let index = Compute.build_wto_index_table wto in @@ -620,26 +623,30 @@ struct do_list ~fresh_nodes paths nodes n2 l in let rec component nodes paths = function - | Wto.Node v -> do_node nodes v paths - | Wto.Component (v,l) -> - assert (not (Automata.Map.mem v nodes.local)); - let invariants,l = get_invariants g v l in - let n = get_node {nodes with local = Automata.Map.empty} v in - (* initialization *) - let n,paths = do_list ~fresh_nodes:true paths nodes n invariants in - (* preservation *) - let n_loop = Cfg.node () in - let _,paths = do_list ~fresh_nodes:true paths nodes n_loop invariants in - (* arbitrary number of loop *) - let n_havoc = Cfg.node () in - let havoc = Cfg.havoc n ~effects:{pre=n_havoc;post=n_loop} n_havoc in - let paths = (havoc |> paths_of_cfg) @^ paths in - (* body *) - let invariants_as_assumes = as_assumes invariants in - let _,paths = - do_list ~fresh_nodes:false paths (add_local nodes v n_havoc) - n_havoc invariants_as_assumes in - partition (add_local nodes v n_loop) paths l + | Wto.Node ((n, _) as v) -> bind n (do_node nodes v) paths + | Wto.Component ((n, _) as v, l) -> + let do_component (v, l) = + assert (not (Automata.Map.mem v nodes.local)); + let invariants,l = get_invariants g v l in + let n = get_node {nodes with local = Automata.Map.empty} v in + (* initialization *) + let n,paths = do_list ~fresh_nodes:true paths nodes n invariants in + (* preservation *) + let n_loop = Cfg.node () in + let _,paths = do_list ~fresh_nodes:true paths nodes n_loop invariants in + (* arbitrary number of loop *) + let n_havoc = Cfg.node () in + let havoc = Cfg.havoc n ~effects:{pre=n_havoc;post=n_loop} n_havoc in + let paths = (havoc |> paths_of_cfg) @^ paths in + (* body *) + let invariants_as_assumes = as_assumes invariants in + let _,paths = + do_list ~fresh_nodes:false paths (add_local nodes v n_havoc) + n_havoc invariants_as_assumes in + partition (add_local nodes v n_loop) paths l + in + bind n do_component (v, l) + and partition nodes paths l = List.fold_left (component nodes) paths l in @@ -744,21 +751,34 @@ struct let compute_kf kf = - let autom = Interpreted_automata.Compute.get_automaton ~annotations:true kf in + let open Interpreted_automata in + let autom = Compute.get_automaton ~annotations:true kf in (* let cout = open_out (Format.sprintf "/tmp/cfg_automata_%s.dot" (Kernel_function.get_name kf)) in * Interpreted_automata.Compute.output_to_dot cout autom; * close_out cout; *) - let nprepre = Cfg.node () in - let npre = Cfg.node () in - let npost = Cfg.node () in - let npostpost = Cfg.node () in - let env = empty_env kf in - let env = env @* [Clabels.pre,npre;Clabels.post,npost] in + let binder = M.configure_ia autom in + let bind = binder.bind in + let spec = Annotations.funspec kf in + (* start and end nodes of pre(resp. post)-conditions. *) + let pres = { pre = Cfg.node (); post = Cfg.node () } in + let posts = { pre = Cfg.node (); post = Cfg.node () } in + let env = empty_env kf @* [Clabels.pre,pres.post;Clabels.post,posts.pre] in + (* initialization *) let init = init ~is_pre_main:(WpStrategy.is_main_init kf) - (env @* [Clabels.here,nprepre]) in - let kf_spec = Annotations.funspec kf in - let pre = pre_spec (env @* [Clabels.here,nprepre;Clabels.next,npre]) kf_spec in - let paths = automaton (env @* [Clabels.here,npre;Clabels.next,npost]) autom in - let post = post_normal_spec (env @* [Clabels.here,npost;Clabels.next,npostpost]) kf_spec in - init @^ pre @^ paths @^ post, env @: Clabels.init + (env @* [Clabels.here,pres.pre]) in + (* pre-condition *) + let pre = + bind autom.entry_point @@ + pre_spec (env @* [Clabels.here,pres.pre;Clabels.next,pres.post]) + in + (* code *) + let paths = + automaton (env @* [Clabels.here,pres.post;Clabels.next,posts.pre]) autom + in + (* post-condition *) + let post = + bind autom.return_point @@ + post_normal_spec (env @* [Clabels.here,posts.pre;Clabels.next,posts.post]) + in + init @^ pre spec @^ paths @^ post spec, env @: Clabels.init end diff --git a/src/plugins/wp/TacInstance.ml b/src/plugins/wp/TacInstance.ml index 967dcf535d0331c4ccd7702d875e4f1bc242e02a..ea227ab18ef8b10f42a02a49126f5baadf28f2cd 100644 --- a/src/plugins/wp/TacInstance.ml +++ b/src/plugins/wp/TacInstance.ml @@ -134,8 +134,10 @@ let filter x e = try F.Tau.equal (F.tau_of_var x) (F.typeof e) with Not_found -> true (* allowed to not restrict usage *) -let fieldname k x = - Pretty_utils.sfprintf "%s (%a)" (descr k) F.Tau.pretty (F.tau_of_var x) +let fieldname ~range k x = + Pretty_utils.sfprintf "%s (%a)%t" + (descr k) F.Tau.pretty (F.tau_of_var x) + (fun fmt -> if range then Format.pp_print_string fmt "(accept range)") class instance = object(self) @@ -151,14 +153,13 @@ class instance = let bindings,property = self#wrap env p fields in bindings, F.e_imply hs property | L.Bind(q,tau,phi) , fd :: fields when q = env.binder -> + env.index <- succ env.index ; let x = F.fresh env.pool tau in let v = self#get_field fd in - env.index <- succ env.index ; + let range = match tau with L.Int -> true | _ -> false in + let tooltip = fieldname ~range env.index x in env.feedback#update_field - ~tooltip:(fieldname env.index x) - ~enabled:true - ~range:(match tau with L.Int -> true | _ -> false) - ~filter:(filter x) fd ; + ~tooltip ~range ~enabled:true ~filter:(filter x) fd ; let lemma = F.QED.lc_open x phi in let bindings,property = self#wrap env lemma fields in (x,v) :: bindings , property diff --git a/src/plugins/wp/TacShift.ml b/src/plugins/wp/TacShift.ml index f0ac610edabdee568aaba4a00ca715d89e63ea1f..fff37a69094cfad98a268ab90100b7834634d576 100644 --- a/src/plugins/wp/TacShift.ml +++ b/src/plugins/wp/TacShift.ml @@ -22,15 +22,13 @@ open Lang - let select_op f = - let rewrite descr u v = Tactical.rewrite [ descr , F.p_true , u , v ] - in + let rewrite descr u v = Tactical.rewrite [ descr , F.p_true , u , v ] in let rewrite_lsl e a n = (* from selection e='a<<n', rewrites the sequent 'Hs |- G' into: - Hs[e := a*2^n] |- G[e := a*2^n)] *) let b = F.e_mul a (F.e_int (1 lsl n)) in - rewrite "left shift into mult" e b + rewrite "shift" e b in let rewrite_lsr e a n = (* from selection e='a>>n', rewrites the sequent 'Hs |- G' into: @@ -38,7 +36,7 @@ let select_op f = - Hs[e := a*2^n] |- G[e := a*2^n] *) let b = F.e_div a (F.e_int (1 lsl n)) in (fun seq -> ("positive" , (fst seq , F.p_leq F.e_zero a)) :: - rewrite "right shift into div" e b seq) + rewrite "shift" e b seq) in if f == Cint.f_lsl then rewrite_lsl else if f == Cint.f_lsr then rewrite_lsr else diff --git a/src/plugins/wp/Tactical.ml b/src/plugins/wp/Tactical.ml index ea1ddb3e2204769773cda32649bbe1cb7f37c1a4..0b1c0175fcfb8fe35aa8fbdb0a5f05b9c21aaa79 100644 --- a/src/plugins/wp/Tactical.ml +++ b/src/plugins/wp/Tactical.ml @@ -106,6 +106,17 @@ let selected = function | Clause c -> e_prop (head c) | Compose code -> composed code +let get_int_z z = + try Some (Integer.to_int z) with Z.Overflow -> None + +let get_int = function + | Empty -> None + | Compose(Cint a) -> get_int_z a + | s -> + match Lang.F.repr (selected s) with + | Qed.Logic.Kint z -> get_int_z z + | _ -> None + let subclause clause p = match clause with | Step s -> diff --git a/src/plugins/wp/Tactical.mli b/src/plugins/wp/Tactical.mli index 33be0f4754ba4e587bd2f95763aab2a23695d491..f501602f64a148c810dcb1e447c33a779389a02c 100644 --- a/src/plugins/wp/Tactical.mli +++ b/src/plugins/wp/Tactical.mli @@ -51,6 +51,7 @@ val int : int -> selection val cint : Integer.t -> selection val range : int -> int -> selection val compose : string -> selection list -> selection +val get_int : selection -> int option val destruct : selection -> selection list val head : clause -> pred diff --git a/src/plugins/wp/VC.ml b/src/plugins/wp/VC.ml index e6d5f44f65d2efa3e7833864dd417ea8144a30a7..eb42ed0d9e5fdadf978ca356b6884831224686ee 100644 --- a/src/plugins/wp/VC.ml +++ b/src/plugins/wp/VC.ml @@ -93,6 +93,7 @@ let generate_call ?model stmt = let prove = Prover.prove let spawn = Prover.spawn ~delayed:true + let server = ProverTask.server let command vcs = Register.do_wp_proofs_iter (fun f -> Bag.iter f vcs) diff --git a/src/plugins/wp/cfgWP.ml b/src/plugins/wp/cfgWP.ml index 85897e1e65142736d1c019c05f54bf5b72c36a53..604c97700aac03d1b923e498ff741cd4dd0383fb 100644 --- a/src/plugins/wp/cfgWP.ml +++ b/src/plugins/wp/cfgWP.ml @@ -559,9 +559,10 @@ struct Gmap.add target group vcs ) effects vcs - let do_assigns ?descr ?stmt ~source ?hpid ?warn sequence region effects vcs = - let vcs = check_assigns stmt source ?warn region effects vcs in - let eqmem = A.apply_assigns sequence region in + let do_assigns ?descr ?stmt ~source ?hpid ?warn sequence + ~assigned ?(unfolded=assigned) effects vcs = + let vcs = check_assigns stmt source ?warn unfolded effects vcs in + let eqmem = A.apply_assigns sequence assigned in gmap (assume_vc ?descr ?hpid ?stmt ?warn eqmem) vcs let do_assigns_everything ?stmt ?warn effects vcs = @@ -574,9 +575,13 @@ struct add_vc target ?warn F.p_false vcs) effects vcs + let cc_region ~unfold cc data = + let assigned = cc ~unfold:false data in + assigned , if unfold then cc ~unfold:true data else assigned + let cc_assigned env ~unfold kind froms = let dummy = Sigma.create () in - let r0 = L.assigned_of_froms ~unfold (L.move_at env dummy) froms in + let r0 = L.assigned_of_froms ~unfold:false (L.move_at env dummy) froms in let d0 = A.domain r0 in let s1 = L.current env in let s0 = Sigma.havoc s1 d0 in @@ -584,9 +589,10 @@ struct | StmtAssigns -> s0 | LoopAssigns -> s1 in - let assigned = L.assigned_of_froms ~unfold (L.move_at env sref) froms in + let cc_assigned = L.assigned_of_froms (L.move_at env sref) in + let assigned,unfolded = cc_region ~unfold cc_assigned froms in let sequence = { pre=s0 ; post=s1 } in - sequence , assigned + sequence , assigned , unfolded let use_assigns wenv stmt hpid ainfo wp = in_wenv wenv wp begin fun env wp -> @@ -605,10 +611,12 @@ struct (cc_assigned env ~unfold kind) froms in match outcome with - | Warning.Result(warn,(sequence,assigned)) -> + | Warning.Result(warn,(sequence,assigned,unfolded)) -> let vcs = do_assigns ~source:FromCode - ?hpid ?stmt ~warn sequence assigned wp.effects wp.vcs in + ?hpid ?stmt ~warn sequence + ~assigned ~unfolded + wp.effects wp.vcs in { sigma = Some sequence.pre ; vcs=vcs ; effects = wp.effects } | Warning.Failed warn -> let sigma = Sigma.havoc_any ~call:false (L.current env) in @@ -698,7 +706,7 @@ struct (* R-Value is unknown or L-Value is volatile *) let warn = Warning.Set.union l_warn r_warn in let vcs = do_assigns ~source:FromCode - ~stmt ~warn seq region wp.effects wp.vcs in + ~stmt ~warn seq ~assigned:region wp.effects wp.vcs in { sigma = Some seq.pre ; vcs=vcs ; effects = wp.effects } | Warning.Result(r_warn,Some stored) -> (* R-Value and effects has been translated *) @@ -1055,19 +1063,21 @@ struct | Writes froms -> let env = L.move_at env0 cenv.sigma_pre in let unfold = Wp_parameters.UnfoldAssigns.get () in - let call_region = L.in_frame cenv.frame_pre - (L.assigned_of_froms env ~unfold) froms in + let assigned,unfolded = L.in_frame cenv.frame_pre + (cc_region ~unfold (L.assigned_of_froms env)) + froms in let vcs_post = do_assigns ~descr:"Call Effects" ~source:FromCall - ~stmt cenv.seq_post call_region wpost.effects wpost.vcs in + ~stmt cenv.seq_post ~assigned ~unfolded wpost.effects wpost.vcs in let vcs_exit = do_assigns ~descr:"Exit Effects" ~source:FromCall - ~stmt cenv.seq_exit call_region wexit.effects wexit.vcs in + ~stmt cenv.seq_exit ~assigned ~unfolded wexit.effects wexit.vcs in let vcs_result = match cenv.loc_result with | None -> vcs_post (* no result *) | Some(_,obj,loc) -> - let res_region = [obj,Sloc loc] in - do_assigns ~descr:"Return Effects" ~source:FromReturn - ~stmt cenv.seq_result res_region wpost.effects vcs_post + let assigned = [obj,Sloc loc] in + do_assigns ~descr:"Return Effects" + ~source:FromReturn ~stmt cenv.seq_result + ~assigned wpost.effects vcs_post in { vcs_post = vcs_result ; vcs_exit = vcs_exit } @@ -1274,6 +1284,7 @@ struct po_pid = pid ; po_sid = "" ; po_gid = "" ; + po_leg = "" ; po_name = "" ; po_idx = index ; po_formula = GoalAnnot vcq ; @@ -1332,10 +1343,12 @@ struct WpAnnot.split begin fun po_pid wpo -> let po_sid = WpPropId.get_propid po_pid in + let po_leg = WpPropId.get_legacy po_pid in let po_gid = Printf.sprintf "%s_%s" mid po_sid in + let po_leg = Printf.sprintf "%s_%s" mid po_leg in let po_name = Pretty_utils.to_string WpPropId.pretty_local pid in let wpo = - { wpo with po_pid ; po_sid ; po_gid ; po_name } + { wpo with po_pid ; po_sid ; po_gid ; po_leg ; po_name } in Wpo.add wpo ; collection := Bag.append !collection wpo ; @@ -1366,9 +1379,11 @@ struct | LogicUsage.Axiomatic a -> Wpo.Axiomatic (Some a.ax_name) in let mid = Model.get_id model in let sid = WpPropId.get_propid id in + let leg = WpPropId.get_legacy id in let wpo = { Wpo.po_model = model ; Wpo.po_gid = Printf.sprintf "%s_%s" mid sid ; + Wpo.po_leg = Printf.sprintf "%s_%s" mid leg ; Wpo.po_sid = sid ; Wpo.po_name = Printf.sprintf "Lemma '%s'" l.lem_name ; Wpo.po_idx = index ; @@ -1395,6 +1410,7 @@ let add_qed_check collection model ~qed ~raw ~goal = let vck = let open VC_Check in { raw ; qed ; goal } in let w = let open Wpo in { po_gid = id ; + po_leg = "" ; (* no use for legacy checks *) po_sid = id ; po_name = id ; po_idx = Axiomatic None ; diff --git a/src/plugins/wp/proof.ml b/src/plugins/wp/proof.ml index 3726f133c873b1434f5f7282b1d064b8af8fcb7a..129c0aad1eef0dae724859a24e95067287cecfc3 100644 --- a/src/plugins/wp/proof.ml +++ b/src/plugins/wp/proof.ml @@ -31,14 +31,6 @@ let needback = ref false (* file script need backup before modification *) let needsave = ref false (* file script need to be saved *) let needwarn = ref false (* user should be prompted for chosen scriptfile *) -let clear () = - begin - Hashtbl.clear scriptbase ; - scriptfile := None ; - needback := false ; - needsave := false ; - end - let sanitize hint = try let n = String.length hint in @@ -54,8 +46,8 @@ let register_script goal hints proof closing = let hints = List.sort String.compare (List.filter sanitize hints) in Hashtbl.replace scriptbase goal (hints,proof,closing) -let delete_script goal = - Hashtbl.remove scriptbase goal +let delete_script_for ~gid = + Hashtbl.remove scriptbase gid (* -------------------------------------------------------------------------- *) (* --- Proof Scripts Parsers --- *) @@ -63,7 +55,7 @@ let delete_script goal = open Script -let is_empty script = +let is_empty_script script = try for i=0 to String.length script - 1 do match script.[i] with '\n' | ' ' | '\t' -> () | _ -> raise Exit @@ -213,12 +205,21 @@ let loadscripts () = end end -let find_script_for_goal goal = +let find_script_for_goal ~gid ~legacy = loadscripts () ; try - let _,proof,qed = Hashtbl.find scriptbase goal in + let _,proof,qed = Hashtbl.find scriptbase gid in + Some(proof,qed) + with Not_found -> + try + let (_,proof,qed) as entry = Hashtbl.find scriptbase legacy in + Wp_parameters.feedback "Upgrading Coq script for '%s'" gid ; + Hashtbl.add scriptbase gid entry ; + Hashtbl.remove scriptbase legacy ; + needsave := true ; Some(proof,qed) - with Not_found -> None + with Not_found -> + None let update_hints_for_goal goal hints = try @@ -268,21 +269,20 @@ let find_script_with_hints required hints = scriptbase [] end -let add_script goal hints proof = - needsave := true ; register_script goal hints proof +let add_script_for ~gid hints proof = + needsave := true ; register_script gid hints proof (* -------------------------------------------------------------------------- *) (* --- Prover API --- *) (* -------------------------------------------------------------------------- *) -let script_for ~pid ~gid = - match find_script_for_goal gid with - | None -> None - | (Some _) as script -> +let script_for ~pid ~gid ~legacy = + let found = find_script_for_goal ~gid ~legacy in + ( if found <> None then let required,hints = WpPropId.prop_id_keys pid in let all = List.merge String.compare required hints in - update_hints_for_goal gid all ; - script + update_hints_for_goal gid all ) ; + found let rec head n = function [] -> [] | x::xs -> if n > 0 then x :: head (pred n) xs else [] @@ -301,8 +301,8 @@ let hints_for ~pid = else default else default -let script_for_ide ~pid ~gid = - match find_script_for_goal gid with +let script_for_ide ~pid ~gid ~legacy = + match find_script_for_goal ~gid ~legacy with | Some script -> script | None -> let required,hints = WpPropId.prop_id_keys pid in diff --git a/src/plugins/wp/proof.mli b/src/plugins/wp/proof.mli index 21937e8fc7add30c49e1a3d2f633d1123c7ac390..14a0f7e97e1ea091a97106c3e712184d0fbe1285 100644 --- a/src/plugins/wp/proof.mli +++ b/src/plugins/wp/proof.mli @@ -21,58 +21,28 @@ (**************************************************************************) (* -------------------------------------------------------------------------- *) -(** Proof Script Database *) +(** Coq Proof Scripts *) (* -------------------------------------------------------------------------- *) -(** {2 Database} *) - -val delete_script : string -> unit -val add_script : string -> string list -> string -> string -> unit -(** [new_script goal keys proof qed] registers the script [proof] terminated by [qed] - for goal [goal] and keywords [keys] *) - -val find_script_for_goal : string -> (string * string) option -(** Retrieve script file for one specific goal. - The file specified by [-wp-script f] is loaded if necessary. *) +open WpPropId -val update_hints_for_goal : string -> string list -> unit -(** Update the hints for one specific goal. The script file will be saved if hints - are different. *) +val is_empty_script : string -> bool +(** Check a proof script text for emptyness *) -val find_script_with_hints : string list -> string list -> (int * string * string * string) list -(** Retrieve matchable script files for w.r.t provided required and hints keywords. - Most suitable scripts comes first, with format [(n,g,p,q)] where [p,q] is a script - matching [n] hints from possibly deprecated goal [g]. *) +val delete_script_for : gid:string -> unit +(** [delete_script ~gid] remove known script for goal. *) -val clear : unit -> unit +val add_script_for : gid:string -> string list -> string -> string -> unit +(** [new_script goal keys proof qed] registers the script [proof] + terminated by [qed] for goal [gid] and keywords [keys] *) -val loadscripts : unit -> unit -(** Load scripts from [-wp-script f]. Automatically invoked by [find_xxx] unless - [loadscripts] flags is unset. *) +val parse_coqproof : string -> (string * string) option +(** [parse_coqproof f] parses a coq-file [f] and fetch the first proof. *) val savescripts : unit -> unit (** If necessary, dump the scripts database into the file specified by [-wp-script f]. *) -(** {2 Low-level Parsers and Printers} *) - -val is_empty : string -> bool - -val parse_coqproof : string -> (string * string) option -(** [parse_coqproof f] parses a coq-file [f] and fetch the first proof. *) - -val parse_scripts : string -> unit -(** [parse_scripts f] parses all scripts from file [f] and put them in the database. *) - -val dump_scripts : string -> unit -(** [dump_scripts f] saves all scripts from the database into file [f]. *) - -(* -------------------------------------------------------------------------- *) -(** Proof Script Interaction *) -(* -------------------------------------------------------------------------- *) - -open WpPropId - -val script_for : pid:prop_id -> gid:string -> (string * string) option -val script_for_ide : pid:prop_id -> gid:string -> string * string +val script_for : pid:prop_id -> gid:string -> legacy:string -> (string * string) option +val script_for_ide : pid:prop_id -> gid:string -> legacy:string -> string * string val hints_for : pid:prop_id -> (string * string * string) list diff --git a/src/plugins/wp/share/Makefile b/src/plugins/wp/share/Makefile index 8834bbe28cdb4252efc102cc0eb44d6ddf50686d..c4adc837f46a4ccf1f637fef636155f891c86489 100644 --- a/src/plugins/wp/share/Makefile +++ b/src/plugins/wp/share/Makefile @@ -32,6 +32,7 @@ WPLSHARE=$(Wp_DIR)/share wp-coq-clean: find $(Wp_DIR) \( -name "*.vo" -or -name "*.glob" \) -print -delete rm -f $(WPLSHARE)/coqwp/.depend $(WPLSHARE)/why3/.depend +clean:: wp-coq-clean clean:: wp-coq-clean @@ -81,7 +82,7 @@ COQWPINCLUDES= -R $(WPLSHARE)/coqwp '' $(WPLSHARE)/coqwp/%.vo: $(WPLSHARE)/coqwp/%.v echo "Coqc $<" - @coqc -w none $(COQWPINCLUDES) $< + coqc -w none $(COQWPINCLUDES) $< $(WPLSHARE)/coqwp/.depend: $(addprefix $(WPLSHARE)/, $(WP_COQ_SOURCES)) echo "Coqdep for $(WPLSHARE)/coqwp" diff --git a/src/plugins/wp/share/coqwp/Cfloat.v b/src/plugins/wp/share/coqwp/Cfloat.v index 32ac89fe1bf3daaed70a51033e4d5ba6220b9d10..f25c72b7027de53cfb3377ab0f3d139ac51f6538 100644 --- a/src/plugins/wp/share/coqwp/Cfloat.v +++ b/src/plugins/wp/share/coqwp/Cfloat.v @@ -27,9 +27,11 @@ Require Reals.Rbasic_fun. Require Reals.R_sqrt. Require BuiltIn. Require bool.Bool. +Require int.Int. Require real.Real. Require real.RealInfix. Require real.Abs. +Require real.FromInt. Require real.Square. (* Why3 goal *) @@ -56,6 +58,22 @@ Admitted. Definition of_f64: f64 -> R. Admitted. +(* Why3 goal *) +Lemma to_f32_zero : ((of_f32 (to_f32 0%R)) = 0%R). +Admitted. + +(* Why3 goal *) +Lemma to_f32_one : ((of_f32 (to_f32 1%R)) = 1%R). +Admitted. + +(* Why3 goal *) +Lemma to_f64_zero : ((of_f64 (to_f64 0%R)) = 0%R). +Admitted. + +(* Why3 goal *) +Lemma to_f64_one : ((of_f64 (to_f64 1%R)) = 1%R). +Admitted. + (* Why3 assumption *) Inductive rounding_mode := | Up : rounding_mode @@ -118,7 +136,7 @@ Definition is_infinite_f32 (f:f32): Prop := ((classify_f32 f) = Inf_pos) \/ ((classify_f32 f) = Inf_neg). (* Why3 assumption *) -Definition is_infinite_f36 (d:f64): Prop := ((classify_f64 d) = Inf_pos) \/ +Definition is_infinite_f64 (d:f64): Prop := ((classify_f64 d) = Inf_pos) \/ ((classify_f64 d) = Inf_neg). (* Why3 assumption *) diff --git a/src/plugins/wp/share/ergo/Cfloat.mlw b/src/plugins/wp/share/ergo/Cfloat.mlw index 206b283868c9233d5da92b0301b17dc3586aa410..3c0e03b4c0baa4c6eae2075a10ba292df73c66c2 100644 --- a/src/plugins/wp/share/ergo/Cfloat.mlw +++ b/src/plugins/wp/share/ergo/Cfloat.mlw @@ -24,9 +24,11 @@ (** The theory BuiltIn_ must be appended to this file*) (** The theory Bool_ must be appended to this file*) (** The theory bool_Bool_ must be appended to this file*) +(** The theory int_Int_ must be appended to this file*) (** The theory real_Real_ must be appended to this file*) (** The theory real_RealInfix_ must be appended to this file*) (** The theory real_Abs_ must be appended to this file*) +(** The theory real_FromInt_ must be appended to this file*) (** The theory real_Square_ must be appended to this file*) type f32 @@ -40,6 +42,14 @@ logic to_f64 : real -> f64 logic of_f64 : f64 -> real +axiom to_f32_zero : (of_f32(to_f32(0.0)) = 0.0) + +axiom to_f32_one : (of_f32(to_f32(1.0)) = 1.0) + +axiom to_f64_zero : (of_f64(to_f64(0.0)) = 0.0) + +axiom to_f64_one : (of_f64(to_f64(1.0)) = 1.0) + type rounding_mode = Up | Down | ToZero | NearestTiesToAway | NearestTiesToEven @@ -112,7 +122,7 @@ predicate is_NaN_f64(d: f64) = (classify_f64(d) = NaN) predicate is_infinite_f32(f: f32) = ((classify_f32(f) = Inf_pos) or (classify_f32(f) = Inf_neg)) -predicate is_infinite_f36(d: f64) = ((classify_f64(d) = Inf_pos) or +predicate is_infinite_f64(d: f64) = ((classify_f64(d) = Inf_pos) or (classify_f64(d) = Inf_neg)) predicate is_positive_infinite_f32(f: f32) = (classify_f32(f) = Inf_pos) diff --git a/src/plugins/wp/share/src/Cfloat.v b/src/plugins/wp/share/src/Cfloat.v index f6ec365e55954b2ea213cdcde24579f61a166396..722da22037a3075a09cbcae763e225ebb9d371a1 100644 --- a/src/plugins/wp/share/src/Cfloat.v +++ b/src/plugins/wp/share/src/Cfloat.v @@ -5,9 +5,11 @@ Require Reals.Rbasic_fun. Require Reals.R_sqrt. Require BuiltIn. Require bool.Bool. +Require int.Int. Require real.Real. Require real.RealInfix. Require real.Abs. +Require real.FromInt. Require real.Square. (* Why3 goal *) @@ -34,6 +36,22 @@ Admitted. Definition of_f64: f64 -> R. Admitted. +(* Why3 goal *) +Lemma to_f32_zero : ((of_f32 (to_f32 0%R)) = 0%R). +Admitted. + +(* Why3 goal *) +Lemma to_f32_one : ((of_f32 (to_f32 1%R)) = 1%R). +Admitted. + +(* Why3 goal *) +Lemma to_f64_zero : ((of_f64 (to_f64 0%R)) = 0%R). +Admitted. + +(* Why3 goal *) +Lemma to_f64_one : ((of_f64 (to_f64 1%R)) = 1%R). +Admitted. + (* Why3 assumption *) Inductive rounding_mode := | Up : rounding_mode @@ -96,7 +114,7 @@ Definition is_infinite_f32 (f:f32): Prop := ((classify_f32 f) = Inf_pos) \/ ((classify_f32 f) = Inf_neg). (* Why3 assumption *) -Definition is_infinite_f36 (d:f64): Prop := ((classify_f64 d) = Inf_pos) \/ +Definition is_infinite_f64 (d:f64): Prop := ((classify_f64 d) = Inf_pos) \/ ((classify_f64 d) = Inf_neg). (* Why3 assumption *) diff --git a/src/plugins/wp/share/src/alt_ergo_why3_stdlib.drv b/src/plugins/wp/share/src/alt_ergo_why3_stdlib.drv index 2d442b749a10bd60569cffa72dba96a50549ee61..c913ef7afd438b8c45c5d8c3fdb321452a272de9 100644 --- a/src/plugins/wp/share/src/alt_ergo_why3_stdlib.drv +++ b/src/plugins/wp/share/src/alt_ergo_why3_stdlib.drv @@ -21,7 +21,7 @@ (**************************************************************************) theory int.Int - remove prop CompatOrderMult + remove prop CompatOrderMult end theory int.Abs @@ -44,7 +44,7 @@ theory int.ComputerDivision end theory real.Real - remove prop CompatOrderMult + remove prop CompatOrderMult end theory real.Abs diff --git a/src/plugins/wp/share/src/cfloat.why b/src/plugins/wp/share/src/cfloat.why index 711a803b32eab70a51cc93d9f5d22534c97c7c4f..f8bc5732032cd50db77121543f388a9ec3c721f0 100644 --- a/src/plugins/wp/share/src/cfloat.why +++ b/src/plugins/wp/share/src/cfloat.why @@ -30,6 +30,7 @@ theory Cfloat use import real.RealInfix use import real.Abs use import real.Square + use import real.FromInt (* -------------------------------------------------------------------------- *) (* --- C-Integer Arithmetics for Alt-Ergo --- *) @@ -46,6 +47,11 @@ theory Cfloat function to_f64 real : f64 function of_f64 f64 : real + axiom to_f32_zero: of_f32 (to_f32 0.0) = 0.0 + axiom to_f32_one: of_f32 (to_f32 1.0) = 1.0 + axiom to_f64_zero: of_f64 (to_f64 0.0) = 0.0 + axiom to_f64_one: of_f64 (to_f64 1.0) = 1.0 + (* C-Float Rounding Modes *) type rounding_mode = Up | Down | ToZero | NearestTiesToAway | NearestTiesToEven @@ -113,7 +119,6 @@ theory Cfloat function eq_f64b (x:f64) (y:f64) : bool predicate eq_f32 (x:f32) (y:f32) = (eq_f32b x y = true) predicate eq_f64 (x:f64) (y:f64) = (eq_f64b x y = true) - axiom eq_finite_f32 : forall x,y:f32 [eq_f32 x y]. is_finite_f32 x -> is_finite_f32 y -> eq_f32 x y <-> of_f32 x = of_f32 y diff --git a/src/plugins/wp/share/src/logs/Cbits.coq_BACKUP_6706.err b/src/plugins/wp/share/src/logs/Cbits.coq_BACKUP_6706.err new file mode 100644 index 0000000000000000000000000000000000000000..fb2d1d57a8f4d66263b04e818b12a116c91cc100 --- /dev/null +++ b/src/plugins/wp/share/src/logs/Cbits.coq_BACKUP_6706.err @@ -0,0 +1,400 @@ +<<<<<<< HEAD +[Config] reading extra configuration file realization.conf +File "SHARE/./qed.why", line 79, characters 8-19: +warning: axiom c_euclidian does not contain any local abstract symbol +File "SHARE/./qed.why", line 94, characters 8-22: +warning: axiom cmod_remainder does not contain any local abstract symbol +File "SHARE/./qed.why", line 100, characters 8-20: +warning: axiom cdiv_neutral does not contain any local abstract symbol +File "SHARE/./qed.why", line 101, characters 8-16: +warning: axiom cdiv_inv does not contain any local abstract symbol +File "SHARE/./cmath.why", line 33, characters 8-15: +warning: axiom abs_def does not contain any local abstract symbol +File "SHARE/./cmath.why", line 37, characters 8-17: +warning: axiom sqrt_lin1 does not contain any local abstract symbol +File "SHARE/./cmath.why", line 38, characters 8-17: +warning: axiom sqrt_lin0 does not contain any local abstract symbol +File "SHARE/./cmath.why", line 39, characters 8-14: +warning: axiom sqrt_0 does not contain any local abstract symbol +File "SHARE/./cmath.why", line 40, characters 8-14: +warning: axiom sqrt_1 does not contain any local abstract symbol +File "SHARE/./cbits.why", line 37, characters 8-20: +warning: axiom bit_test_def does not contain any local abstract symbol +File "SHARE/./cbits.why", line 44, characters 8-27: +warning: axiom bit_test_extraction does not contain any local abstract symbol +File "SHARE/./cbits.why", line 50, characters 8-15: +warning: axiom lsl_1_0 does not contain any local abstract symbol +File "SHARE/./cbits.why", line 52, characters 8-31: +warning: axiom bit_test_extraction_bis does not contain any local abstract symbol +File "SHARE/./cbits.why", line 54, characters 8-34: +warning: axiom bit_test_extraction_bis_eq does not contain any local abstract symbol +File "SHARE/./cbits.why", line 59, characters 8-23: +warning: axiom lnot_extraction does not contain any local abstract symbol +File "SHARE/./cbits.why", line 65, characters 8-23: +warning: axiom land_extraction does not contain any local abstract symbol +File "SHARE/./cbits.why", line 71, characters 8-22: +warning: axiom lor_extraction does not contain any local abstract symbol +File "SHARE/./cbits.why", line 77, characters 8-23: +warning: axiom lxor_extraction does not contain any local abstract symbol +File "SHARE/./cbits.why", line 85, characters 8-20: +warning: axiom land_1_lsl_1 does not contain any local abstract symbol +File "SHARE/./cbits.why", line 90, characters 8-26: +warning: axiom lsl_extraction_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 96, characters 8-26: +warning: axiom lsl_extraction_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 102, characters 8-23: +warning: axiom lsr_extractionl does not contain any local abstract symbol +File "SHARE/./cbits.why", line 108, characters 8-23: +warning: axiom lsl1_extraction does not contain any local abstract symbol +File "SHARE/./cbits.why", line 139, characters 8-31: +warning: axiom to_uint8_extraction_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 144, characters 8-31: +warning: axiom to_uint8_extraction_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 155, characters 8-32: +warning: axiom to_uint16_extraction_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 160, characters 8-32: +warning: axiom to_uint16_extraction_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 171, characters 8-32: +warning: axiom to_uint32_extraction_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 176, characters 8-32: +warning: axiom to_uint32_extraction_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 187, characters 8-32: +warning: axiom to_uint64_extraction_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 192, characters 8-32: +warning: axiom to_uint64_extraction_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 219, characters 8-31: +warning: axiom to_sint8_extraction_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 224, characters 8-31: +warning: axiom to_sint8_extraction_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 235, characters 8-32: +warning: axiom to_sint16_extraction_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 240, characters 8-32: +warning: axiom to_sint16_extraction_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 251, characters 8-32: +warning: axiom to_sint32_extraction_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 256, characters 8-32: +warning: axiom to_sint32_extraction_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 267, characters 8-32: +warning: axiom to_sint64_extraction_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 272, characters 8-32: +warning: axiom to_sint64_extraction_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 299, characters 8-21: +warning: axiom to_uint32_lor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 329, characters 8-21: +warning: axiom is_uint8_lxor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 332, characters 8-20: +warning: axiom is_uint8_lor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 335, characters 8-21: +warning: axiom is_uint8_land does not contain any local abstract symbol +File "SHARE/./cbits.why", line 338, characters 8-20: +warning: axiom is_uint8_lsr does not contain any local abstract symbol +File "SHARE/./cbits.why", line 341, characters 8-25: +warning: axiom is_uint8_lsl1_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 344, characters 8-25: +warning: axiom is_uint8_lsl1_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 348, characters 8-22: +warning: axiom is_uint16_lxor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 351, characters 8-21: +warning: axiom is_uint16_lor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 354, characters 8-22: +warning: axiom is_uint16_land does not contain any local abstract symbol +File "SHARE/./cbits.why", line 357, characters 8-21: +warning: axiom is_uint16_lsr does not contain any local abstract symbol +File "SHARE/./cbits.why", line 360, characters 8-26: +warning: axiom is_uint16_lsl1_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 363, characters 8-26: +warning: axiom is_uint16_lsl1_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 367, characters 8-22: +warning: axiom is_uint32_lxor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 370, characters 8-21: +warning: axiom is_uint32_lor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 373, characters 8-22: +warning: axiom is_uint32_land does not contain any local abstract symbol +File "SHARE/./cbits.why", line 376, characters 8-21: +warning: axiom is_uint32_lsr does not contain any local abstract symbol +File "SHARE/./cbits.why", line 379, characters 8-26: +warning: axiom is_uint32_lsl1_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 382, characters 8-26: +warning: axiom is_uint32_lsl1_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 386, characters 8-22: +warning: axiom is_uint64_lxor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 389, characters 8-21: +warning: axiom is_uint64_lor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 392, characters 8-22: +warning: axiom is_uint64_land does not contain any local abstract symbol +File "SHARE/./cbits.why", line 395, characters 8-21: +warning: axiom is_uint64_lsr does not contain any local abstract symbol +File "SHARE/./cbits.why", line 398, characters 8-26: +warning: axiom is_uint64_lsl1_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 401, characters 8-26: +warning: axiom is_uint64_lsl1_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 428, characters 8-21: +warning: axiom is_sint8_lnot does not contain any local abstract symbol +File "SHARE/./cbits.why", line 431, characters 8-21: +warning: axiom is_sint8_lxor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 434, characters 8-20: +warning: axiom is_sint8_lor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 437, characters 8-21: +warning: axiom is_sint8_land does not contain any local abstract symbol +File "SHARE/./cbits.why", line 440, characters 8-20: +warning: axiom is_sint8_lsr does not contain any local abstract symbol +File "SHARE/./cbits.why", line 443, characters 8-21: +warning: axiom is_sint8_lsl1 does not contain any local abstract symbol +File "SHARE/./cbits.why", line 446, characters 8-25: +warning: axiom is_sint8_lsl1_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 449, characters 8-25: +warning: axiom is_sint8_lsl1_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 453, characters 8-22: +warning: axiom is_sint16_lnot does not contain any local abstract symbol +File "SHARE/./cbits.why", line 456, characters 8-22: +warning: axiom is_sint16_lxor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 459, characters 8-21: +warning: axiom is_sint16_lor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 462, characters 8-22: +warning: axiom is_sint16_land does not contain any local abstract symbol +File "SHARE/./cbits.why", line 465, characters 8-21: +warning: axiom is_sint16_lsr does not contain any local abstract symbol +File "SHARE/./cbits.why", line 468, characters 8-22: +warning: axiom is_sint16_lsl1 does not contain any local abstract symbol +File "SHARE/./cbits.why", line 471, characters 8-26: +warning: axiom is_sint16_lsl1_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 474, characters 8-26: +warning: axiom is_sint16_lsl1_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 478, characters 8-22: +warning: axiom is_sint32_lnot does not contain any local abstract symbol +File "SHARE/./cbits.why", line 481, characters 8-22: +warning: axiom is_sint32_lxor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 484, characters 8-21: +warning: axiom is_sint32_lor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 487, characters 8-22: +warning: axiom is_sint32_land does not contain any local abstract symbol +File "SHARE/./cbits.why", line 490, characters 8-21: +warning: axiom is_sint32_lsr does not contain any local abstract symbol +File "SHARE/./cbits.why", line 493, characters 8-22: +warning: axiom is_sint32_lsl1 does not contain any local abstract symbol +File "SHARE/./cbits.why", line 496, characters 8-26: +warning: axiom is_sint32_lsl1_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 499, characters 8-26: +warning: axiom is_sint32_lsl1_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 503, characters 8-22: +warning: axiom is_sint64_lnot does not contain any local abstract symbol +File "SHARE/./cbits.why", line 506, characters 8-22: +warning: axiom is_sint64_lxor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 509, characters 8-21: +warning: axiom is_sint64_lor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 512, characters 8-22: +warning: axiom is_sint64_land does not contain any local abstract symbol +File "SHARE/./cbits.why", line 515, characters 8-21: +warning: axiom is_sint64_lsr does not contain any local abstract symbol +File "SHARE/./cbits.why", line 518, characters 8-22: +warning: axiom is_sint64_lsl1 does not contain any local abstract symbol +File "SHARE/./cbits.why", line 521, characters 8-26: +warning: axiom is_sint64_lsl1_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 524, characters 8-26: +warning: axiom is_sint64_lsl1_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 549, characters 8-20: +warning: axiom lor_addition does not contain any local abstract symbol +File "SHARE/./cbits.why", line 552, characters 8-21: +warning: axiom lxor_addition does not contain any local abstract symbol +||||||| merged common ancestors +======= +[Config] reading extra configuration file realization.conf +File "WP-SHARE/src/./qed.why", line 76, characters 8-19: +warning: axiom c_euclidian does not contain any local abstract symbol +File "WP-SHARE/src/./qed.why", line 91, characters 8-22: +warning: axiom cmod_remainder does not contain any local abstract symbol +File "WP-SHARE/src/./qed.why", line 97, characters 8-20: +warning: axiom cdiv_neutral does not contain any local abstract symbol +File "WP-SHARE/src/./qed.why", line 98, characters 8-16: +warning: axiom cdiv_inv does not contain any local abstract symbol +File "WP-SHARE/src/./cmath.why", line 32, characters 8-15: +warning: axiom abs_def does not contain any local abstract symbol +File "WP-SHARE/src/./cmath.why", line 43, characters 8-17: +warning: axiom sqrt_lin1 does not contain any local abstract symbol +File "WP-SHARE/src/./cmath.why", line 44, characters 8-17: +warning: axiom sqrt_lin0 does not contain any local abstract symbol +File "WP-SHARE/src/./cmath.why", line 45, characters 8-14: +warning: axiom sqrt_0 does not contain any local abstract symbol +File "WP-SHARE/src/./cmath.why", line 46, characters 8-14: +warning: axiom sqrt_1 does not contain any local abstract symbol +File "WP-SHARE/src/./cmath.why", line 55, characters 8-15: +warning: axiom exp_pos does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 37, characters 8-20: +warning: axiom bit_test_def does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 44, characters 8-27: +warning: axiom bit_test_extraction does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 50, characters 8-15: +warning: axiom lsl_1_0 does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 52, characters 8-31: +warning: axiom bit_test_extraction_bis does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 54, characters 8-34: +warning: axiom bit_test_extraction_bis_eq does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 59, characters 8-23: +warning: axiom lnot_extraction does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 65, characters 8-23: +warning: axiom land_extraction does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 71, characters 8-22: +warning: axiom lor_extraction does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 77, characters 8-23: +warning: axiom lxor_extraction does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 85, characters 8-20: +warning: axiom land_1_lsl_1 does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 90, characters 8-26: +warning: axiom lsl_extraction_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 96, characters 8-26: +warning: axiom lsl_extraction_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 102, characters 8-23: +warning: axiom lsr_extractionl does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 108, characters 8-23: +warning: axiom lsl1_extraction does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 139, characters 8-31: +warning: axiom to_uint8_extraction_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 144, characters 8-31: +warning: axiom to_uint8_extraction_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 155, characters 8-32: +warning: axiom to_uint16_extraction_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 160, characters 8-32: +warning: axiom to_uint16_extraction_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 171, characters 8-32: +warning: axiom to_uint32_extraction_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 176, characters 8-32: +warning: axiom to_uint32_extraction_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 187, characters 8-32: +warning: axiom to_uint64_extraction_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 192, characters 8-32: +warning: axiom to_uint64_extraction_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 219, characters 8-31: +warning: axiom to_sint8_extraction_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 224, characters 8-31: +warning: axiom to_sint8_extraction_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 235, characters 8-32: +warning: axiom to_sint16_extraction_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 240, characters 8-32: +warning: axiom to_sint16_extraction_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 251, characters 8-32: +warning: axiom to_sint32_extraction_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 256, characters 8-32: +warning: axiom to_sint32_extraction_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 267, characters 8-32: +warning: axiom to_sint64_extraction_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 272, characters 8-32: +warning: axiom to_sint64_extraction_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 299, characters 8-21: +warning: axiom to_uint32_lor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 329, characters 8-21: +warning: axiom is_uint8_lxor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 332, characters 8-20: +warning: axiom is_uint8_lor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 335, characters 8-21: +warning: axiom is_uint8_land does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 338, characters 8-20: +warning: axiom is_uint8_lsr does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 341, characters 8-25: +warning: axiom is_uint8_lsl1_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 344, characters 8-25: +warning: axiom is_uint8_lsl1_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 348, characters 8-22: +warning: axiom is_uint16_lxor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 351, characters 8-21: +warning: axiom is_uint16_lor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 354, characters 8-22: +warning: axiom is_uint16_land does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 357, characters 8-21: +warning: axiom is_uint16_lsr does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 360, characters 8-26: +warning: axiom is_uint16_lsl1_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 363, characters 8-26: +warning: axiom is_uint16_lsl1_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 367, characters 8-22: +warning: axiom is_uint32_lxor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 370, characters 8-21: +warning: axiom is_uint32_lor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 373, characters 8-22: +warning: axiom is_uint32_land does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 376, characters 8-21: +warning: axiom is_uint32_lsr does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 379, characters 8-26: +warning: axiom is_uint32_lsl1_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 382, characters 8-26: +warning: axiom is_uint32_lsl1_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 386, characters 8-22: +warning: axiom is_uint64_lxor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 389, characters 8-21: +warning: axiom is_uint64_lor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 392, characters 8-22: +warning: axiom is_uint64_land does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 395, characters 8-21: +warning: axiom is_uint64_lsr does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 398, characters 8-26: +warning: axiom is_uint64_lsl1_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 401, characters 8-26: +warning: axiom is_uint64_lsl1_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 428, characters 8-21: +warning: axiom is_sint8_lnot does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 431, characters 8-21: +warning: axiom is_sint8_lxor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 434, characters 8-20: +warning: axiom is_sint8_lor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 437, characters 8-21: +warning: axiom is_sint8_land does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 440, characters 8-20: +warning: axiom is_sint8_lsr does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 443, characters 8-21: +warning: axiom is_sint8_lsl1 does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 446, characters 8-25: +warning: axiom is_sint8_lsl1_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 449, characters 8-25: +warning: axiom is_sint8_lsl1_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 453, characters 8-22: +warning: axiom is_sint16_lnot does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 456, characters 8-22: +warning: axiom is_sint16_lxor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 459, characters 8-21: +warning: axiom is_sint16_lor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 462, characters 8-22: +warning: axiom is_sint16_land does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 465, characters 8-21: +warning: axiom is_sint16_lsr does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 468, characters 8-22: +warning: axiom is_sint16_lsl1 does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 471, characters 8-26: +warning: axiom is_sint16_lsl1_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 474, characters 8-26: +warning: axiom is_sint16_lsl1_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 478, characters 8-22: +warning: axiom is_sint32_lnot does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 481, characters 8-22: +warning: axiom is_sint32_lxor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 484, characters 8-21: +warning: axiom is_sint32_lor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 487, characters 8-22: +warning: axiom is_sint32_land does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 490, characters 8-21: +warning: axiom is_sint32_lsr does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 493, characters 8-22: +warning: axiom is_sint32_lsl1 does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 496, characters 8-26: +warning: axiom is_sint32_lsl1_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 499, characters 8-26: +warning: axiom is_sint32_lsl1_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 503, characters 8-22: +warning: axiom is_sint64_lnot does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 506, characters 8-22: +warning: axiom is_sint64_lxor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 509, characters 8-21: +warning: axiom is_sint64_lor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 512, characters 8-22: +warning: axiom is_sint64_land does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 515, characters 8-21: +warning: axiom is_sint64_lsr does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 518, characters 8-22: +warning: axiom is_sint64_lsl1 does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 521, characters 8-26: +warning: axiom is_sint64_lsl1_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 524, characters 8-26: +warning: axiom is_sint64_lsl1_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 549, characters 8-20: +warning: axiom lor_addition does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 552, characters 8-21: +warning: axiom lxor_addition does not contain any local abstract symbol +>>>>>>> master diff --git a/src/plugins/wp/share/src/logs/Cbits.coq_BASE_6706.err b/src/plugins/wp/share/src/logs/Cbits.coq_BASE_6706.err new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/plugins/wp/share/src/logs/Cbits.coq_LOCAL_6706.err b/src/plugins/wp/share/src/logs/Cbits.coq_LOCAL_6706.err new file mode 100644 index 0000000000000000000000000000000000000000..bbdad5a73c9d8255f18628f6eec72fe43b1a5a22 --- /dev/null +++ b/src/plugins/wp/share/src/logs/Cbits.coq_LOCAL_6706.err @@ -0,0 +1,197 @@ +[Config] reading extra configuration file realization.conf +File "SHARE/./qed.why", line 79, characters 8-19: +warning: axiom c_euclidian does not contain any local abstract symbol +File "SHARE/./qed.why", line 94, characters 8-22: +warning: axiom cmod_remainder does not contain any local abstract symbol +File "SHARE/./qed.why", line 100, characters 8-20: +warning: axiom cdiv_neutral does not contain any local abstract symbol +File "SHARE/./qed.why", line 101, characters 8-16: +warning: axiom cdiv_inv does not contain any local abstract symbol +File "SHARE/./cmath.why", line 33, characters 8-15: +warning: axiom abs_def does not contain any local abstract symbol +File "SHARE/./cmath.why", line 37, characters 8-17: +warning: axiom sqrt_lin1 does not contain any local abstract symbol +File "SHARE/./cmath.why", line 38, characters 8-17: +warning: axiom sqrt_lin0 does not contain any local abstract symbol +File "SHARE/./cmath.why", line 39, characters 8-14: +warning: axiom sqrt_0 does not contain any local abstract symbol +File "SHARE/./cmath.why", line 40, characters 8-14: +warning: axiom sqrt_1 does not contain any local abstract symbol +File "SHARE/./cbits.why", line 37, characters 8-20: +warning: axiom bit_test_def does not contain any local abstract symbol +File "SHARE/./cbits.why", line 44, characters 8-27: +warning: axiom bit_test_extraction does not contain any local abstract symbol +File "SHARE/./cbits.why", line 50, characters 8-15: +warning: axiom lsl_1_0 does not contain any local abstract symbol +File "SHARE/./cbits.why", line 52, characters 8-31: +warning: axiom bit_test_extraction_bis does not contain any local abstract symbol +File "SHARE/./cbits.why", line 54, characters 8-34: +warning: axiom bit_test_extraction_bis_eq does not contain any local abstract symbol +File "SHARE/./cbits.why", line 59, characters 8-23: +warning: axiom lnot_extraction does not contain any local abstract symbol +File "SHARE/./cbits.why", line 65, characters 8-23: +warning: axiom land_extraction does not contain any local abstract symbol +File "SHARE/./cbits.why", line 71, characters 8-22: +warning: axiom lor_extraction does not contain any local abstract symbol +File "SHARE/./cbits.why", line 77, characters 8-23: +warning: axiom lxor_extraction does not contain any local abstract symbol +File "SHARE/./cbits.why", line 85, characters 8-20: +warning: axiom land_1_lsl_1 does not contain any local abstract symbol +File "SHARE/./cbits.why", line 90, characters 8-26: +warning: axiom lsl_extraction_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 96, characters 8-26: +warning: axiom lsl_extraction_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 102, characters 8-23: +warning: axiom lsr_extractionl does not contain any local abstract symbol +File "SHARE/./cbits.why", line 108, characters 8-23: +warning: axiom lsl1_extraction does not contain any local abstract symbol +File "SHARE/./cbits.why", line 139, characters 8-31: +warning: axiom to_uint8_extraction_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 144, characters 8-31: +warning: axiom to_uint8_extraction_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 155, characters 8-32: +warning: axiom to_uint16_extraction_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 160, characters 8-32: +warning: axiom to_uint16_extraction_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 171, characters 8-32: +warning: axiom to_uint32_extraction_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 176, characters 8-32: +warning: axiom to_uint32_extraction_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 187, characters 8-32: +warning: axiom to_uint64_extraction_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 192, characters 8-32: +warning: axiom to_uint64_extraction_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 219, characters 8-31: +warning: axiom to_sint8_extraction_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 224, characters 8-31: +warning: axiom to_sint8_extraction_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 235, characters 8-32: +warning: axiom to_sint16_extraction_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 240, characters 8-32: +warning: axiom to_sint16_extraction_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 251, characters 8-32: +warning: axiom to_sint32_extraction_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 256, characters 8-32: +warning: axiom to_sint32_extraction_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 267, characters 8-32: +warning: axiom to_sint64_extraction_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 272, characters 8-32: +warning: axiom to_sint64_extraction_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 299, characters 8-21: +warning: axiom to_uint32_lor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 329, characters 8-21: +warning: axiom is_uint8_lxor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 332, characters 8-20: +warning: axiom is_uint8_lor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 335, characters 8-21: +warning: axiom is_uint8_land does not contain any local abstract symbol +File "SHARE/./cbits.why", line 338, characters 8-20: +warning: axiom is_uint8_lsr does not contain any local abstract symbol +File "SHARE/./cbits.why", line 341, characters 8-25: +warning: axiom is_uint8_lsl1_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 344, characters 8-25: +warning: axiom is_uint8_lsl1_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 348, characters 8-22: +warning: axiom is_uint16_lxor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 351, characters 8-21: +warning: axiom is_uint16_lor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 354, characters 8-22: +warning: axiom is_uint16_land does not contain any local abstract symbol +File "SHARE/./cbits.why", line 357, characters 8-21: +warning: axiom is_uint16_lsr does not contain any local abstract symbol +File "SHARE/./cbits.why", line 360, characters 8-26: +warning: axiom is_uint16_lsl1_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 363, characters 8-26: +warning: axiom is_uint16_lsl1_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 367, characters 8-22: +warning: axiom is_uint32_lxor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 370, characters 8-21: +warning: axiom is_uint32_lor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 373, characters 8-22: +warning: axiom is_uint32_land does not contain any local abstract symbol +File "SHARE/./cbits.why", line 376, characters 8-21: +warning: axiom is_uint32_lsr does not contain any local abstract symbol +File "SHARE/./cbits.why", line 379, characters 8-26: +warning: axiom is_uint32_lsl1_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 382, characters 8-26: +warning: axiom is_uint32_lsl1_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 386, characters 8-22: +warning: axiom is_uint64_lxor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 389, characters 8-21: +warning: axiom is_uint64_lor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 392, characters 8-22: +warning: axiom is_uint64_land does not contain any local abstract symbol +File "SHARE/./cbits.why", line 395, characters 8-21: +warning: axiom is_uint64_lsr does not contain any local abstract symbol +File "SHARE/./cbits.why", line 398, characters 8-26: +warning: axiom is_uint64_lsl1_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 401, characters 8-26: +warning: axiom is_uint64_lsl1_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 428, characters 8-21: +warning: axiom is_sint8_lnot does not contain any local abstract symbol +File "SHARE/./cbits.why", line 431, characters 8-21: +warning: axiom is_sint8_lxor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 434, characters 8-20: +warning: axiom is_sint8_lor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 437, characters 8-21: +warning: axiom is_sint8_land does not contain any local abstract symbol +File "SHARE/./cbits.why", line 440, characters 8-20: +warning: axiom is_sint8_lsr does not contain any local abstract symbol +File "SHARE/./cbits.why", line 443, characters 8-21: +warning: axiom is_sint8_lsl1 does not contain any local abstract symbol +File "SHARE/./cbits.why", line 446, characters 8-25: +warning: axiom is_sint8_lsl1_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 449, characters 8-25: +warning: axiom is_sint8_lsl1_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 453, characters 8-22: +warning: axiom is_sint16_lnot does not contain any local abstract symbol +File "SHARE/./cbits.why", line 456, characters 8-22: +warning: axiom is_sint16_lxor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 459, characters 8-21: +warning: axiom is_sint16_lor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 462, characters 8-22: +warning: axiom is_sint16_land does not contain any local abstract symbol +File "SHARE/./cbits.why", line 465, characters 8-21: +warning: axiom is_sint16_lsr does not contain any local abstract symbol +File "SHARE/./cbits.why", line 468, characters 8-22: +warning: axiom is_sint16_lsl1 does not contain any local abstract symbol +File "SHARE/./cbits.why", line 471, characters 8-26: +warning: axiom is_sint16_lsl1_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 474, characters 8-26: +warning: axiom is_sint16_lsl1_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 478, characters 8-22: +warning: axiom is_sint32_lnot does not contain any local abstract symbol +File "SHARE/./cbits.why", line 481, characters 8-22: +warning: axiom is_sint32_lxor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 484, characters 8-21: +warning: axiom is_sint32_lor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 487, characters 8-22: +warning: axiom is_sint32_land does not contain any local abstract symbol +File "SHARE/./cbits.why", line 490, characters 8-21: +warning: axiom is_sint32_lsr does not contain any local abstract symbol +File "SHARE/./cbits.why", line 493, characters 8-22: +warning: axiom is_sint32_lsl1 does not contain any local abstract symbol +File "SHARE/./cbits.why", line 496, characters 8-26: +warning: axiom is_sint32_lsl1_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 499, characters 8-26: +warning: axiom is_sint32_lsl1_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 503, characters 8-22: +warning: axiom is_sint64_lnot does not contain any local abstract symbol +File "SHARE/./cbits.why", line 506, characters 8-22: +warning: axiom is_sint64_lxor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 509, characters 8-21: +warning: axiom is_sint64_lor does not contain any local abstract symbol +File "SHARE/./cbits.why", line 512, characters 8-22: +warning: axiom is_sint64_land does not contain any local abstract symbol +File "SHARE/./cbits.why", line 515, characters 8-21: +warning: axiom is_sint64_lsr does not contain any local abstract symbol +File "SHARE/./cbits.why", line 518, characters 8-22: +warning: axiom is_sint64_lsl1 does not contain any local abstract symbol +File "SHARE/./cbits.why", line 521, characters 8-26: +warning: axiom is_sint64_lsl1_inf does not contain any local abstract symbol +File "SHARE/./cbits.why", line 524, characters 8-26: +warning: axiom is_sint64_lsl1_sup does not contain any local abstract symbol +File "SHARE/./cbits.why", line 549, characters 8-20: +warning: axiom lor_addition does not contain any local abstract symbol +File "SHARE/./cbits.why", line 552, characters 8-21: +warning: axiom lxor_addition does not contain any local abstract symbol diff --git a/src/plugins/wp/share/src/logs/Cbits.coq_REMOTE_6706.err b/src/plugins/wp/share/src/logs/Cbits.coq_REMOTE_6706.err new file mode 100644 index 0000000000000000000000000000000000000000..0ef883890f35911f4abdc5a61b0d9dbaa48b22cf --- /dev/null +++ b/src/plugins/wp/share/src/logs/Cbits.coq_REMOTE_6706.err @@ -0,0 +1,199 @@ +[Config] reading extra configuration file realization.conf +File "WP-SHARE/src/./qed.why", line 76, characters 8-19: +warning: axiom c_euclidian does not contain any local abstract symbol +File "WP-SHARE/src/./qed.why", line 91, characters 8-22: +warning: axiom cmod_remainder does not contain any local abstract symbol +File "WP-SHARE/src/./qed.why", line 97, characters 8-20: +warning: axiom cdiv_neutral does not contain any local abstract symbol +File "WP-SHARE/src/./qed.why", line 98, characters 8-16: +warning: axiom cdiv_inv does not contain any local abstract symbol +File "WP-SHARE/src/./cmath.why", line 32, characters 8-15: +warning: axiom abs_def does not contain any local abstract symbol +File "WP-SHARE/src/./cmath.why", line 43, characters 8-17: +warning: axiom sqrt_lin1 does not contain any local abstract symbol +File "WP-SHARE/src/./cmath.why", line 44, characters 8-17: +warning: axiom sqrt_lin0 does not contain any local abstract symbol +File "WP-SHARE/src/./cmath.why", line 45, characters 8-14: +warning: axiom sqrt_0 does not contain any local abstract symbol +File "WP-SHARE/src/./cmath.why", line 46, characters 8-14: +warning: axiom sqrt_1 does not contain any local abstract symbol +File "WP-SHARE/src/./cmath.why", line 55, characters 8-15: +warning: axiom exp_pos does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 37, characters 8-20: +warning: axiom bit_test_def does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 44, characters 8-27: +warning: axiom bit_test_extraction does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 50, characters 8-15: +warning: axiom lsl_1_0 does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 52, characters 8-31: +warning: axiom bit_test_extraction_bis does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 54, characters 8-34: +warning: axiom bit_test_extraction_bis_eq does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 59, characters 8-23: +warning: axiom lnot_extraction does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 65, characters 8-23: +warning: axiom land_extraction does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 71, characters 8-22: +warning: axiom lor_extraction does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 77, characters 8-23: +warning: axiom lxor_extraction does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 85, characters 8-20: +warning: axiom land_1_lsl_1 does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 90, characters 8-26: +warning: axiom lsl_extraction_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 96, characters 8-26: +warning: axiom lsl_extraction_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 102, characters 8-23: +warning: axiom lsr_extractionl does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 108, characters 8-23: +warning: axiom lsl1_extraction does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 139, characters 8-31: +warning: axiom to_uint8_extraction_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 144, characters 8-31: +warning: axiom to_uint8_extraction_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 155, characters 8-32: +warning: axiom to_uint16_extraction_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 160, characters 8-32: +warning: axiom to_uint16_extraction_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 171, characters 8-32: +warning: axiom to_uint32_extraction_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 176, characters 8-32: +warning: axiom to_uint32_extraction_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 187, characters 8-32: +warning: axiom to_uint64_extraction_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 192, characters 8-32: +warning: axiom to_uint64_extraction_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 219, characters 8-31: +warning: axiom to_sint8_extraction_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 224, characters 8-31: +warning: axiom to_sint8_extraction_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 235, characters 8-32: +warning: axiom to_sint16_extraction_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 240, characters 8-32: +warning: axiom to_sint16_extraction_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 251, characters 8-32: +warning: axiom to_sint32_extraction_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 256, characters 8-32: +warning: axiom to_sint32_extraction_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 267, characters 8-32: +warning: axiom to_sint64_extraction_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 272, characters 8-32: +warning: axiom to_sint64_extraction_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 299, characters 8-21: +warning: axiom to_uint32_lor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 329, characters 8-21: +warning: axiom is_uint8_lxor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 332, characters 8-20: +warning: axiom is_uint8_lor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 335, characters 8-21: +warning: axiom is_uint8_land does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 338, characters 8-20: +warning: axiom is_uint8_lsr does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 341, characters 8-25: +warning: axiom is_uint8_lsl1_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 344, characters 8-25: +warning: axiom is_uint8_lsl1_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 348, characters 8-22: +warning: axiom is_uint16_lxor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 351, characters 8-21: +warning: axiom is_uint16_lor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 354, characters 8-22: +warning: axiom is_uint16_land does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 357, characters 8-21: +warning: axiom is_uint16_lsr does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 360, characters 8-26: +warning: axiom is_uint16_lsl1_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 363, characters 8-26: +warning: axiom is_uint16_lsl1_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 367, characters 8-22: +warning: axiom is_uint32_lxor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 370, characters 8-21: +warning: axiom is_uint32_lor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 373, characters 8-22: +warning: axiom is_uint32_land does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 376, characters 8-21: +warning: axiom is_uint32_lsr does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 379, characters 8-26: +warning: axiom is_uint32_lsl1_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 382, characters 8-26: +warning: axiom is_uint32_lsl1_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 386, characters 8-22: +warning: axiom is_uint64_lxor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 389, characters 8-21: +warning: axiom is_uint64_lor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 392, characters 8-22: +warning: axiom is_uint64_land does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 395, characters 8-21: +warning: axiom is_uint64_lsr does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 398, characters 8-26: +warning: axiom is_uint64_lsl1_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 401, characters 8-26: +warning: axiom is_uint64_lsl1_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 428, characters 8-21: +warning: axiom is_sint8_lnot does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 431, characters 8-21: +warning: axiom is_sint8_lxor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 434, characters 8-20: +warning: axiom is_sint8_lor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 437, characters 8-21: +warning: axiom is_sint8_land does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 440, characters 8-20: +warning: axiom is_sint8_lsr does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 443, characters 8-21: +warning: axiom is_sint8_lsl1 does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 446, characters 8-25: +warning: axiom is_sint8_lsl1_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 449, characters 8-25: +warning: axiom is_sint8_lsl1_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 453, characters 8-22: +warning: axiom is_sint16_lnot does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 456, characters 8-22: +warning: axiom is_sint16_lxor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 459, characters 8-21: +warning: axiom is_sint16_lor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 462, characters 8-22: +warning: axiom is_sint16_land does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 465, characters 8-21: +warning: axiom is_sint16_lsr does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 468, characters 8-22: +warning: axiom is_sint16_lsl1 does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 471, characters 8-26: +warning: axiom is_sint16_lsl1_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 474, characters 8-26: +warning: axiom is_sint16_lsl1_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 478, characters 8-22: +warning: axiom is_sint32_lnot does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 481, characters 8-22: +warning: axiom is_sint32_lxor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 484, characters 8-21: +warning: axiom is_sint32_lor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 487, characters 8-22: +warning: axiom is_sint32_land does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 490, characters 8-21: +warning: axiom is_sint32_lsr does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 493, characters 8-22: +warning: axiom is_sint32_lsl1 does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 496, characters 8-26: +warning: axiom is_sint32_lsl1_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 499, characters 8-26: +warning: axiom is_sint32_lsl1_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 503, characters 8-22: +warning: axiom is_sint64_lnot does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 506, characters 8-22: +warning: axiom is_sint64_lxor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 509, characters 8-21: +warning: axiom is_sint64_lor does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 512, characters 8-22: +warning: axiom is_sint64_land does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 515, characters 8-21: +warning: axiom is_sint64_lsr does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 518, characters 8-22: +warning: axiom is_sint64_lsl1 does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 521, characters 8-26: +warning: axiom is_sint64_lsl1_inf does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 524, characters 8-26: +warning: axiom is_sint64_lsl1_sup does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 549, characters 8-20: +warning: axiom lor_addition does not contain any local abstract symbol +File "WP-SHARE/src/./cbits.why", line 552, characters 8-21: +warning: axiom lxor_addition does not contain any local abstract symbol diff --git a/src/plugins/wp/share/why3/Cfloat.v b/src/plugins/wp/share/why3/Cfloat.v index 32ac89fe1bf3daaed70a51033e4d5ba6220b9d10..f25c72b7027de53cfb3377ab0f3d139ac51f6538 100644 --- a/src/plugins/wp/share/why3/Cfloat.v +++ b/src/plugins/wp/share/why3/Cfloat.v @@ -27,9 +27,11 @@ Require Reals.Rbasic_fun. Require Reals.R_sqrt. Require BuiltIn. Require bool.Bool. +Require int.Int. Require real.Real. Require real.RealInfix. Require real.Abs. +Require real.FromInt. Require real.Square. (* Why3 goal *) @@ -56,6 +58,22 @@ Admitted. Definition of_f64: f64 -> R. Admitted. +(* Why3 goal *) +Lemma to_f32_zero : ((of_f32 (to_f32 0%R)) = 0%R). +Admitted. + +(* Why3 goal *) +Lemma to_f32_one : ((of_f32 (to_f32 1%R)) = 1%R). +Admitted. + +(* Why3 goal *) +Lemma to_f64_zero : ((of_f64 (to_f64 0%R)) = 0%R). +Admitted. + +(* Why3 goal *) +Lemma to_f64_one : ((of_f64 (to_f64 1%R)) = 1%R). +Admitted. + (* Why3 assumption *) Inductive rounding_mode := | Up : rounding_mode @@ -118,7 +136,7 @@ Definition is_infinite_f32 (f:f32): Prop := ((classify_f32 f) = Inf_pos) \/ ((classify_f32 f) = Inf_neg). (* Why3 assumption *) -Definition is_infinite_f36 (d:f64): Prop := ((classify_f64 d) = Inf_pos) \/ +Definition is_infinite_f64 (d:f64): Prop := ((classify_f64 d) = Inf_pos) \/ ((classify_f64 d) = Inf_neg). (* Why3 assumption *) diff --git a/src/plugins/wp/share/why3/Cfloat.why b/src/plugins/wp/share/why3/Cfloat.why index 531862713d2a2f20d0c462425b50a876846e2c15..f6493d5b5818307c2d411d8b064a0469d17e4a2f 100644 --- a/src/plugins/wp/share/why3/Cfloat.why +++ b/src/plugins/wp/share/why3/Cfloat.why @@ -22,8 +22,10 @@ theory Cfloat use bool.Bool as Bool +use int.Int as Int use real.Real as Real use real.Abs as Abs +use real.FromInt as FromInt use real.Square as Square type f32 @@ -38,6 +40,14 @@ function to_f64 real : f64 function of_f64 f64 : real +axiom to_f32_zero : ((of_f32 (to_f32 0.0)) = (0.0)) + +axiom to_f32_one : ((of_f32 (to_f32 1.0)) = (1.0)) + +axiom to_f64_zero : ((of_f64 (to_f64 0.0)) = (0.0)) + +axiom to_f64_one : ((of_f64 (to_f64 1.0)) = (1.0)) + type rounding_mode = | Up | Down @@ -76,7 +86,7 @@ predicate is_NaN_f64 (d:f64) = ((classify_f64 d) = (NaN)) predicate is_infinite_f32 (f:f32) = ("asym_split" ((classify_f32 f) = (Inf_pos))) || ((classify_f32 f) = (Inf_neg)) -predicate is_infinite_f36 (d:f64) = ("asym_split" ((classify_f64 +predicate is_infinite_f64 (d:f64) = ("asym_split" ((classify_f64 d) = (Inf_pos))) || ((classify_f64 d) = (Inf_neg)) predicate is_positive_infinite_f32 (f:f32) = ((classify_f32 f) = (Inf_pos)) diff --git a/src/plugins/wp/tests/wp/oracle/sharing.res.oracle b/src/plugins/wp/tests/wp/oracle/sharing.res.oracle index a0d983a2b87ba821477e9d9c565efca9970df679..33ccf33c4b4de07a852143364aa4b4bf0277534d 100644 --- a/src/plugins/wp/tests/wp/oracle/sharing.res.oracle +++ b/src/plugins/wp/tests/wp/oracle/sharing.res.oracle @@ -5,12 +5,12 @@ [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp:print-generated] - "WPOUT/typed/f_post.ergo" + "WPOUT/typed/f_ensures.ergo" (* ---------------------------------------------------------- *) (* --- Post-condition (file tests/wp/sharing.c, line 8) in 'f' --- *) (* ---------------------------------------------------------- *) - goal f_post: + goal f_ensures: forall i_1,i : int. forall t : int farray. forall t_1 : (addr,int) farray. diff --git a/src/plugins/wp/tests/wp/oracle/wp_eqb.res.oracle b/src/plugins/wp/tests/wp/oracle/wp_eqb.res.oracle index 191de1ee13455a16f3cf455b3277454fb8a28ebb..f9360746b680f16c9895df394646273b82570572 100644 --- a/src/plugins/wp/tests/wp/oracle/wp_eqb.res.oracle +++ b/src/plugins/wp/tests/wp/oracle/wp_eqb.res.oracle @@ -5,12 +5,12 @@ [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp:print-generated] - "WPOUT/typed/f_post.ergo" + "WPOUT/typed/f_ensures.ergo" (* ---------------------------------------------------------- *) (* --- Post-condition (file tests/wp/wp_eqb.i, line 8) in 'f' --- *) (* ---------------------------------------------------------- *) - goal f_post: + goal f_ensures: forall i_3,i_2,i_1,i : int. ((match_bool((eqb(i_3, i_2)), 1, 0)) = (match_bool((eqb(i_1, i)), 1, 0))) -> is_sint32(i) -> diff --git a/src/plugins/wp/tests/wp/oracle_qualif/sharing.res.oracle b/src/plugins/wp/tests/wp/oracle_qualif/sharing.res.oracle index 7988ff2ccb6da01de8db30aeb0fb8a1186753fa5..981c1640a089eb28da93becc26b57a8c94ce8f96 100644 --- a/src/plugins/wp/tests/wp/oracle_qualif/sharing.res.oracle +++ b/src/plugins/wp/tests/wp/oracle_qualif/sharing.res.oracle @@ -4,12 +4,12 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Alt-Ergo] Goal typed_f_post : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures : Valid [wp] Proved goals: 1 / 1 Qed: 0 Alt-Ergo: 1 [wp] Report 'tests/wp/sharing.c.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -f - 1 (44..56) 1 100% +f - 1 (48..60) 1 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp/oracle_qualif/stmtcompiler_test.res.oracle b/src/plugins/wp/tests/wp/oracle_qualif/stmtcompiler_test.res.oracle index 8f1cd7083055e2712a599239a2bb5cbba4665706..d2ce6cd6a429ef0dfa80b108ed4773ad1fc56dff 100644 --- a/src/plugins/wp/tests/wp/oracle_qualif/stmtcompiler_test.res.oracle +++ b/src/plugins/wp/tests/wp/oracle_qualif/stmtcompiler_test.res.oracle @@ -30,9 +30,9 @@ [wp] [Qed] Goal typed_one_if_assert : Valid [wp] [Qed] Goal typed_some_seq_assert : Valid [wp] [Qed] Goal typed_some_seq_assert_2 : Valid -[wp] [Qed] Goal typed_zloop_post : Valid -[wp] [Alt-Ergo] Goal typed_zloop_loop_inv_preserved : Unknown -[wp] [Qed] Goal typed_zloop_loop_inv_established : Valid +[wp] [Qed] Goal typed_zloop_ensures : Valid +[wp] [Alt-Ergo] Goal typed_zloop_loop_invariant_preserved : Unknown +[wp] [Qed] Goal typed_zloop_loop_invariant_established : Valid [wp] [Qed] Goal typed_zloop_assert : Valid [wp] [Qed] Goal typed_zloop_assert_2 : Valid [wp] [Alt-Ergo] Goal typed_zloop_assert_3 : Unknown @@ -56,6 +56,6 @@ behavior2 1 - 1 100% behavior3 1 - 1 100% behavior4 1 - 1 100% behavior5 - - 1 0.0% -if_assert 1 1 (1..12) 4 50.0% +if_assert 1 1 (4..16) 4 50.0% compare 1 - 1 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp/oracle_qualif/wp_behav.0.res.oracle b/src/plugins/wp/tests/wp/oracle_qualif/wp_behav.0.res.oracle index 624ee703375823c18012b2a40e57dd5e369e5ff1..1b6f43fb505c53f5a984707b26ff1a6153372581 100644 --- a/src/plugins/wp/tests/wp/oracle_qualif/wp_behav.0.res.oracle +++ b/src/plugins/wp/tests/wp/oracle_qualif/wp_behav.0.res.oracle @@ -17,41 +17,41 @@ [wp] [Alt-Ergo] Goal typed_assert_needed_assert_ko : Unknown [wp] [Qed] Goal typed_assert_needed_assert_qed_ok_ok_with_hyp : Valid [wp] [Alt-Ergo] Goal typed_bhv_complete_pos_neg : Valid -[wp] [Qed] Goal typed_bhv_neg_post_qed_ok : Valid -[wp] [Qed] Goal typed_bhv_pos_post_qed_ok : Valid -[wp] [Alt-Ergo] Goal typed_bts0513_post_ko1 : Unknown -[wp] [Alt-Ergo] Goal typed_bts0513_post_ko2 : Unknown -[wp] [Qed] Goal typed_f_post_qed_ok : Valid -[wp] [Qed] Goal typed_f_x1_post_qed_ok : Valid -[wp] [Qed] Goal typed_f_assert_qed_ok_for_x1 : Valid -[wp] [Qed] Goal typed_f_x2_post_qed_ok : Valid -[wp] [Qed] Goal typed_f_assert_qed_ok_for_x2 : Valid -[wp] [Qed] Goal typed_local_named_behavior_stmt_xpos_post_qed_ok : Valid -[wp] [Qed] Goal typed_local_named_behavior_stmt_xpos_post_qed_ok_2 : Valid +[wp] [Qed] Goal typed_bhv_neg_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_bhv_pos_ensures_qed_ok : Valid +[wp] [Alt-Ergo] Goal typed_bts0513_ensures_ko1 : Unknown +[wp] [Alt-Ergo] Goal typed_bts0513_ensures_ko2 : Unknown +[wp] [Qed] Goal typed_f_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_f_x1_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_f_assert_qed_ok : Valid +[wp] [Qed] Goal typed_f_x2_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_f_assert_qed_ok_2 : Valid +[wp] [Qed] Goal typed_local_named_behavior_xpos_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_local_named_behavior_xpos_ensures_qed_ok_2 : Valid [wp] [Qed] Goal typed_min_complete_bx_by : Valid [wp] [Qed] Goal typed_min_disjoint_bx_by : Valid -[wp] [Qed] Goal typed_min_bx_post_qed_ok : Valid -[wp] [Qed] Goal typed_min_by_post_qed_ok : Valid -[wp] [Qed] Goal typed_more_stmt_assigns_post_qed_ok_ok_with_hoare : Valid -[wp] [Qed] Goal typed_more_stmt_assigns_stmt_blk_assign_part1 : Valid -[wp] [Qed] Goal typed_more_stmt_assigns_stmt_blk_assign_part2 : Valid -[wp] [Qed] Goal typed_part_stmt_bhv_b1_post_qed_ok : Valid -[wp] [Alt-Ergo] Goal typed_part_stmt_bhv_stmt_bs_post : Unknown -[wp] [Alt-Ergo] Goal typed_razT_loop_inv_qed_ok_preserved : Valid -[wp] [Qed] Goal typed_razT_loop_inv_qed_ok_established : Valid -[wp] [Alt-Ergo] Goal typed_razT_b1_post_e1 : Unknown -[wp] [Qed] Goal typed_stmt_assigns_post : Valid -[wp] [Alt-Ergo] Goal typed_stmt_assigns_stmt_assign : Unknown -[wp] [Qed] Goal typed_stmt_contract_stmt_pre_qed_ok : Valid -[wp] [Qed] Goal typed_stmt_contract_stmt_post_qed_ok : Valid -[wp] [Qed] Goal typed_stmt_contract_ok_post_qed_ok : Valid -[wp] [Qed] Goal typed_stmt_contract_assigns_stmt_pre_qed_ok : Valid -[wp] [Qed] Goal typed_stmt_contract_assigns_stmt_post_qed_ok : Valid -[wp] [Qed] Goal typed_stmt_contract_assigns_stmt_assign : Valid -[wp] [Qed] Goal typed_stmt_contract_assigns_ok_post_qed_ok : Valid -[wp] [Qed] Goal typed_stmt_contract_assigns_ok_asgn_post_qed_ok : Valid -[wp] [Qed] Goal typed_stmt_contract_label_post_qed_ok : Valid -[wp] [Qed] Goal typed_stmt_contract_label_stmt_post_qed_ok : Valid +[wp] [Qed] Goal typed_min_bx_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_min_by_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_more_stmt_assigns_ensures_qed_ok_ok_with_hoare : Valid +[wp] [Qed] Goal typed_more_stmt_assigns_blk_assigns_part1 : Valid +[wp] [Qed] Goal typed_more_stmt_assigns_blk_assigns_part2 : Valid +[wp] [Qed] Goal typed_part_stmt_bhv_b1_ensures_qed_ok : Valid +[wp] [Alt-Ergo] Goal typed_part_stmt_bhv_bs_ensures : Unknown +[wp] [Alt-Ergo] Goal typed_razT_loop_invariant_qed_ok_preserved : Valid +[wp] [Qed] Goal typed_razT_loop_invariant_qed_ok_established : Valid +[wp] [Alt-Ergo] Goal typed_razT_b1_ensures_e1 : Unknown +[wp] [Qed] Goal typed_stmt_assigns_ensures : Valid +[wp] [Alt-Ergo] Goal typed_stmt_assigns_assigns : Unknown +[wp] [Qed] Goal typed_stmt_contract_requires_qed_ok : Valid +[wp] [Qed] Goal typed_stmt_contract_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_stmt_contract_ok_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_stmt_contract_assigns_requires_qed_ok : Valid +[wp] [Qed] Goal typed_stmt_contract_assigns_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_stmt_contract_assigns_assigns : Valid +[wp] [Qed] Goal typed_stmt_contract_assigns_ok_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_stmt_contract_assigns_ok_asgn_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_stmt_contract_label_ensures_qed_ok_2 : Valid +[wp] [Qed] Goal typed_stmt_contract_label_ensures_qed_ok : Valid [wp] Proved goals: 32 / 38 Qed: 30 Alt-Ergo: 2 (unknown: 6) @@ -60,7 +60,7 @@ Functions WP Alt-Ergo Total Success f 5 - 5 100% min 4 - 4 100% -bhv 2 1 (1..12) 3 100% +bhv 2 1 (8..20) 3 100% stmt_contract 3 - 3 100% stmt_contract_label 2 - 2 100% stmt_contract_assigns 5 - 5 100% @@ -68,7 +68,7 @@ local_named_behavior 2 - 2 100% assert_needed 1 - 2 50.0% bts0513 - - 2 0.0% stmt_assigns 1 - 2 50.0% -razT 1 1 (8..20) 3 66.7% +razT 1 1 (12..24) 3 66.7% more_stmt_assigns 3 - 3 100% part_stmt_bhv 1 - 2 50.0% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp/oracle_qualif/wp_behav.1.res.oracle b/src/plugins/wp/tests/wp/oracle_qualif/wp_behav.1.res.oracle index 83792030946b5942b66307d7f9c27588b8cd62b2..745a17600fa3965aa0a10b658d65edde47f6910e 100644 --- a/src/plugins/wp/tests/wp/oracle_qualif/wp_behav.1.res.oracle +++ b/src/plugins/wp/tests/wp/oracle_qualif/wp_behav.1.res.oracle @@ -8,14 +8,14 @@ [wp] tests/wp/wp_behav.c:69: Warning: Missing assigns clause (assigns 'everything' instead) [wp] 8 goals scheduled -[wp] [Alt-Ergo] Goal typed_f_post_qed_ko : Unknown -[wp] [Alt-Ergo] Goal typed_f_x1_post_qed_ko : Unknown -[wp] [Alt-Ergo] Goal typed_f_x2_post_qed_ko : Unknown -[wp] [Alt-Ergo] Goal typed_min_bx_post_qed_ko : Unknown -[wp] [Alt-Ergo] Goal typed_min_by_post_qed_ko : Unknown -[wp] [Alt-Ergo] Goal typed_stmt_contract_ko_post_qed_ko : Unknown -[wp] [Alt-Ergo] Goal typed_stmt_contract_ko_without_asgn_post_qed_ko : Unknown -[wp] [Alt-Ergo] Goal typed_stmt_contract_assigns_ko_post_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_f_ensures_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_f_x1_ensures_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_f_x2_ensures_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_min_bx_ensures_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_min_by_ensures_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_stmt_contract_ko_ensures_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_stmt_contract_ko_without_asgn_ensures_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_stmt_contract_assigns_ko_ensures_qed_ko : Unknown [wp] Proved goals: 0 / 8 Alt-Ergo: 0 (unknown: 8) [wp] Report 'tests/wp/wp_behav.c.1.report.json' 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 bec840af1d64d50e33124d68757fedde515e086e..a61b5e65e10962836fd6e80269d7b38b84b0126a 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,16 +8,16 @@ No code nor implicit assigns clause for function f, generating default assigns from the prototype [wp] Warning: Missing RTE guards [wp] 10 goals scheduled -[wp] [Qed] Goal typed_call_g_call_g_pre_qed_ok_Rga : Valid -[wp] [Qed] Goal typed_call_g_call_g_pre_Rgb : Valid -[wp] [Qed] Goal typed_call_main_post_qed_ok : Valid -[wp] [Qed] Goal typed_call_main_call_main_pre_qed_ok_Rmain : Valid -[wp] [Qed] Goal typed_double_call_call_f_pre_qed_ok_Rf : Valid -[wp] [Alt-Ergo] Goal typed_double_call_call_f_pre_qed_ok_Rf_2 : Valid -[wp] [Qed] Goal typed_main_pre_qed_ok_Rmain : Valid -[wp] [Qed] Goal typed_main_post_qed_ok_Emain : Valid -[wp] [Qed] Goal typed_main_call_f_pre_qed_ok_Rf : Valid -[wp] [Qed] Goal typed_stmt_pre_stmt_pre_qed_ok_Rstmt : Valid +[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] [Qed] Goal typed_call_main_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_call_main_call_main_requires_qed_ok_Rmain : Valid +[wp] [Qed] Goal typed_double_call_call_f_requires_qed_ok_Rf : Valid +[wp] [Alt-Ergo] Goal typed_double_call_call_f_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 +[wp] [Qed] Goal typed_stmt_pre_requires_qed_ok_Rstmt : Valid [wp] Proved goals: 10 / 10 Qed: 9 Alt-Ergo: 1 diff --git a/src/plugins/wp/tests/wp/oracle_qualif/wp_eqb.res.oracle b/src/plugins/wp/tests/wp/oracle_qualif/wp_eqb.res.oracle index a08574adb8811eed37ff05686640fcc24d3205f1..e838815abc14a013119915deda971041887722ba 100644 --- a/src/plugins/wp/tests/wp/oracle_qualif/wp_eqb.res.oracle +++ b/src/plugins/wp/tests/wp/oracle_qualif/wp_eqb.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Alt-Ergo] Goal typed_f_post : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures : Valid [wp] Proved goals: 1 / 1 Qed: 0 Alt-Ergo: 1 diff --git a/src/plugins/wp/tests/wp/oracle_qualif/wp_strategy.res.oracle b/src/plugins/wp/tests/wp/oracle_qualif/wp_strategy.res.oracle index 2e5b53af9fcf2c34f57e8dd073f418cd261527b2..8dfdb335c2b8ed73c162e80ac9d560a08bbabc39 100644 --- a/src/plugins/wp/tests/wp/oracle_qualif/wp_strategy.res.oracle +++ b/src/plugins/wp/tests/wp/oracle_qualif/wp_strategy.res.oracle @@ -11,31 +11,31 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] 25 goals scheduled -[wp] [Alt-Ergo] Goal hoare_bts0513_post_qed_ko_ko1 : Unknown -[wp] [Alt-Ergo] Goal hoare_bts0513_post_qed_ko_ko2 : Unknown +[wp] [Alt-Ergo] Goal hoare_bts0513_ensures_qed_ko_ko1 : Unknown +[wp] [Alt-Ergo] Goal hoare_bts0513_ensures_qed_ko_ko2 : Unknown [wp] [Alt-Ergo] Goal hoare_bts0513_bis_assert_qed_ko_ko1 : Unknown [wp] [Qed] Goal hoare_bts0513_bis_assert_qed_ok_ok : Valid -[wp] [Qed] Goal hoare_default_behaviors_post_qed_ok : Valid +[wp] [Qed] Goal hoare_default_behaviors_ensures_qed_ok : Valid [wp] [Qed] Goal hoare_default_behaviors_assert_qed_ok_2 : Valid -[wp] [Qed] Goal hoare_default_behaviors_stmt_post_qed_ok_stmt_p : Valid +[wp] [Qed] Goal hoare_default_behaviors_ensures_qed_ok_stmt_p : Valid [wp] [Qed] Goal hoare_default_behaviors_assert_qed_ok : Valid [wp] [Alt-Ergo] Goal hoare_default_behaviors_assert_rte_signed_overflow : Unknown -[wp] [Qed] Goal hoare_default_behaviors_stmt_assign : Valid +[wp] [Qed] Goal hoare_default_behaviors_assigns : Valid [wp] [Qed] Goal hoare_dpd1_assert_qed_ok_A : Valid -[wp] [Alt-Ergo] Goal hoare_dpd1_stmt_post_qed_ko_Eko : Unknown -[wp] [Qed] Goal hoare_dpd1_stmt_assign : Valid -[wp] [Qed] Goal hoare_dpd2_assert_qed_ok_A_for_P : Valid -[wp] [Alt-Ergo] Goal hoare_dpd2_stmt_post_qed_ko_Eko : Unknown -[wp] [Qed] Goal hoare_dpd2_stmt_assign : Valid -[wp] [Qed] Goal hoare_spec_if_post_qed_ok : Valid -[wp] [Qed] Goal hoare_spec_if_stmt_post_qed_ok : Valid -[wp] [Qed] Goal hoare_spec_if_stmt_assign : Valid +[wp] [Alt-Ergo] Goal hoare_dpd1_ensures_qed_ko_Eko : Unknown +[wp] [Qed] Goal hoare_dpd1_assigns : Valid +[wp] [Qed] Goal hoare_dpd2_assert_qed_ok_A : Valid +[wp] [Alt-Ergo] Goal hoare_dpd2_ensures_qed_ko_Eko : Unknown +[wp] [Qed] Goal hoare_dpd2_assigns : Valid +[wp] [Qed] Goal hoare_spec_if_ensures_qed_ok_2 : Valid +[wp] [Qed] Goal hoare_spec_if_ensures_qed_ok : Valid +[wp] [Qed] Goal hoare_spec_if_assigns : Valid [wp] [Alt-Ergo] Goal hoare_spec_if_assert_rte_signed_overflow : Unknown -[wp] [Qed] Goal hoare_spec_if_stmt_assign_2 : Valid +[wp] [Qed] Goal hoare_spec_if_assigns_2 : Valid [wp] [Alt-Ergo] Goal hoare_spec_if_assert_rte_signed_overflow_2 : Unknown -[wp] [Qed] Goal hoare_spec_if_stmt_assign_3 : Valid -[wp] [Qed] Goal hoare_spec_if_cond_stmt_post_qed_ok : Valid -[wp] [Qed] Goal hoare_spec_if_not_cond_stmt_post_qed_ok : Valid +[wp] [Qed] Goal hoare_spec_if_assigns_3 : Valid +[wp] [Qed] Goal hoare_spec_if_cond_ensures_qed_ok : Valid +[wp] [Qed] Goal hoare_spec_if_not_cond_ensures_qed_ok : Valid [wp] Proved goals: 17 / 25 Qed: 17 Alt-Ergo: 0 (unknown: 8) diff --git a/src/plugins/wp/tests/wp/sharing.c.0.report.json b/src/plugins/wp/tests/wp/sharing.c.0.report.json index 4a51520be5395c49e07f447760b60b7c76508885..17a701f571cf6dbe5cfed605ec9b9613c7b168d2 100644 --- a/src/plugins/wp/tests/wp/sharing.c.0.report.json +++ b/src/plugins/wp/tests/wp/sharing.c.0.report.json @@ -1,12 +1,14 @@ -{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 12 }, - "wp:main": { "total": 1, "valid": 1, "rank": 12 } }, - "wp:functions": { "f": { "f_post": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 12 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 12 } }, +{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 13 }, + "wp:main": { "total": 1, "valid": 1, "rank": 13 } }, + "wp:functions": { "f": { "f_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 13 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 13 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 12 }, + "rank": 13 }, "wp:main": { "total": 1, "valid": 1, - "rank": 12 } } } } } + "rank": 13 } } } } } diff --git a/src/plugins/wp/tests/wp/stmtcompiler_test.i.0.report.json b/src/plugins/wp/tests/wp/stmtcompiler_test.i.0.report.json index 542d6fa1e57e7a7467757a22b7c5932a113c3365..23c6014c8c98bb6ceee65521782a49f50bd479a8 100644 --- a/src/plugins/wp/tests/wp/stmtcompiler_test.i.0.report.json +++ b/src/plugins/wp/tests/wp/stmtcompiler_test.i.0.report.json @@ -1,8 +1,8 @@ { "wp:global": { "alt-ergo": { "total": 9, "valid": 1, "unknown": 8, - "rank": 1 }, + "rank": 2 }, "qed": { "total": 18, "valid": 18 }, "wp:main": { "total": 27, "valid": 19, "unknown": 8, - "rank": 1 } }, + "rank": 2 } }, "wp:functions": { "empty": { "empty_assert": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, @@ -108,17 +108,18 @@ "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "zloop_loop_inv": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 1, - "unknown": 1 } }, - "zloop_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "zloop_loop_invariant": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 1, + "unknown": 1 } }, + "zloop_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 3, "unknown": 3 }, "qed": { "total": 4, @@ -179,20 +180,20 @@ "if_assert_assert": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, + "rank": 2 }, "wp:main": { "total": 1, "valid": 1, - "rank": 1 } }, + "rank": 2 } }, "wp:section": { "alt-ergo": { "total": 3, "valid": 1, "unknown": 2, - "rank": 1 }, + "rank": 2 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 4, "valid": 2, "unknown": 2, - "rank": 1 } } }, + "rank": 2 } } }, "compare": { "compare_assert": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp/stmtcompiler_test.ml b/src/plugins/wp/tests/wp/stmtcompiler_test.ml index 416f4e48137c375177750486711f2ae6ee39506e..320ad154cdac77a26b1768685510442f460ebc05 100644 --- a/src/plugins/wp/tests/wp/stmtcompiler_test.ml +++ b/src/plugins/wp/tests/wp/stmtcompiler_test.ml @@ -53,7 +53,7 @@ let run () = effect = None; } in let po = Wpo.{ - po_gid = ""; po_sid = ""; po_name = ""; + po_gid = ""; po_sid = ""; po_name = ""; po_leg = ""; po_idx = Function(kf, None); po_model = model; po_pid = prop_id; po_formula = Wpo.GoalAnnot vc_annot; diff --git a/src/plugins/wp/tests/wp/wp_behav.c.0.report.json b/src/plugins/wp/tests/wp/wp_behav.c.0.report.json index 2ad0a05fcc3dc7c7eaba88253214719169bc3013..ca3a13935420937acbc8b0085343a38838deb755 100644 --- a/src/plugins/wp/tests/wp/wp_behav.c.0.report.json +++ b/src/plugins/wp/tests/wp/wp_behav.c.0.report.json @@ -1,28 +1,28 @@ { "wp:global": { "alt-ergo": { "total": 8, "valid": 2, "unknown": 6, - "rank": 3 }, + "rank": 4 }, "qed": { "total": 30, "valid": 30 }, "wp:main": { "total": 38, "valid": 32, "unknown": 6, - "rank": 3 } }, - "wp:functions": { "f": { "f_assert_qed_ok_for_x2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_assert_qed_ok_for_x1": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_x2_post_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_x1_post_qed_ok": { "qed": { "total": 1, + "rank": 4 } }, + "wp:functions": { "f": { "f_assert_qed_ok_2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_assert_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_x2_ensures_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_x1_ensures_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "f_post_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, "wp:section": { "qed": { "total": 5, "valid": 5 }, "wp:main": { "total": 5, "valid": 5 } } }, @@ -34,49 +34,49 @@ "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "min_by_post_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "min_bx_post_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "min_by_ensures_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "min_bx_ensures_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 4, "valid": 4 } } }, "bhv": { "bhv_complete_pos_neg": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, + "rank": 3 }, "wp:main": { "total": 1, "valid": 1, - "rank": 1 } }, - "bhv_neg_post_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "bhv_pos_post_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "rank": 3 } }, + "bhv_neg_ensures_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "bhv_pos_ensures_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, + "rank": 3 }, "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 3, "valid": 3, - "rank": 1 } } }, - "stmt_contract": { "stmt_contract_stmt_post_qed_ok": + "rank": 3 } } }, + "stmt_contract": { "stmt_contract_ensures_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "stmt_contract_stmt_pre_qed_ok": + "stmt_contract_requires_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "stmt_contract_ok_post_qed_ok": + "stmt_contract_ok_ensures_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, @@ -84,12 +84,12 @@ "valid": 3 }, "wp:main": { "total": 3, "valid": 3 } } }, - "stmt_contract_label": { "stmt_contract_label_stmt_post_qed_ok": + "stmt_contract_label": { "stmt_contract_label_ensures_qed_ok_2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "stmt_contract_label_post_qed_ok": + "stmt_contract_label_ensures_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, @@ -99,27 +99,27 @@ "wp:main": { "total": 2, "valid": 2 } } }, - "stmt_contract_assigns": { "stmt_contract_assigns_stmt_assign": + "stmt_contract_assigns": { "stmt_contract_assigns_assigns": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "stmt_contract_assigns_stmt_post_qed_ok": + "stmt_contract_assigns_ensures_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "stmt_contract_assigns_stmt_pre_qed_ok": + "stmt_contract_assigns_requires_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "stmt_contract_assigns_ok_asgn_post_qed_ok": + "stmt_contract_assigns_ok_asgn_ensures_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "stmt_contract_assigns_ok_post_qed_ok": + "stmt_contract_assigns_ok_ensures_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, @@ -130,12 +130,12 @@ "wp:main": { "total": 5, "valid": 5 } } }, - "local_named_behavior": { "local_named_behavior_stmt_xpos_post_qed_ok_2": + "local_named_behavior": { "local_named_behavior_xpos_ensures_qed_ok_2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "local_named_behavior_stmt_xpos_post_qed_ok": + "local_named_behavior_xpos_ensures_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, @@ -163,29 +163,34 @@ "wp:main": { "total": 2, "valid": 1, "unknown": 1 } } }, - "bts0513": { "bts0513_post_ko2": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "bts0513_post_ko1": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "bts0513": { "bts0513_ensures_ko2": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "bts0513_ensures_ko1": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": { "total": 2, "unknown": 2 } } }, - "stmt_assigns": { "stmt_assigns_stmt_assign": { "alt-ergo": - { "total": 1, + "stmt_assigns": { "stmt_assigns_assigns": { "alt-ergo": + { "total": 1, "unknown": 1 }, - "wp:main": - { "total": 1, + "wp:main": + { "total": 1, "unknown": 1 } }, - "stmt_assigns_post": { "qed": { "total": 1, + "stmt_assigns_ensures": { "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 1, @@ -193,34 +198,37 @@ "wp:main": { "total": 2, "valid": 1, "unknown": 1 } } }, - "razT": { "razT_loop_inv_qed_ok": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 3 } }, - "razT_b1_post_e1": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "razT": { "razT_loop_invariant_qed_ok": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 4 }, + "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 4 } }, + "razT_b1_ensures_e1": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 1, "unknown": 1, - "rank": 3 }, + "rank": 4 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 3, "valid": 2, "unknown": 1, - "rank": 3 } } }, - "more_stmt_assigns": { "more_stmt_assigns_stmt_blk_assign": + "rank": 4 } } }, + "more_stmt_assigns": { "more_stmt_assigns_blk_assigns": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "more_stmt_assigns_post_qed_ok_ok_with_hoare": + "more_stmt_assigns_ensures_qed_ok_ok_with_hoare": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, @@ -230,12 +238,13 @@ "wp:main": { "total": 3, "valid": 3 } } }, - "part_stmt_bhv": { "part_stmt_bhv_stmt_bs_post": - { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "part_stmt_bhv_b1_post_qed_ok": + "part_stmt_bhv": { "part_stmt_bhv_bs_ensures": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "part_stmt_bhv_b1_ensures_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, diff --git a/src/plugins/wp/tests/wp/wp_behav.c.1.report.json b/src/plugins/wp/tests/wp/wp_behav.c.1.report.json index 5179dc51e1f5a05ee8b4d95ff5496e2888964a4b..ca159cdef949ee9378ea7b68912908a313217b80 100644 --- a/src/plugins/wp/tests/wp/wp_behav.c.1.report.json +++ b/src/plugins/wp/tests/wp/wp_behav.c.1.report.json @@ -1,39 +1,39 @@ { "wp:global": { "alt-ergo": { "total": 8, "unknown": 8 }, "wp:main": { "total": 8, "unknown": 8 } }, - "wp:functions": { "f": { "f_x2_post_qed_ko": { "alt-ergo": { "total": 1, + "wp:functions": { "f": { "f_x2_ensures_qed_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "f_x1_ensures_qed_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "f_ensures_qed_ko": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "f_x1_post_qed_ko": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "f_post_qed_ko": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 3, "unknown": 3 }, "wp:main": { "total": 3, "unknown": 3 } } }, - "min": { "min_by_post_qed_ko": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "min_bx_post_qed_ko": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "min": { "min_by_ensures_qed_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "min_bx_ensures_qed_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": { "total": 2, "unknown": 2 } } }, - "stmt_contract": { "stmt_contract_ko_without_asgn_post_qed_ko": + "stmt_contract": { "stmt_contract_ko_without_asgn_ensures_qed_ko": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "stmt_contract_ko_post_qed_ko": + "stmt_contract_ko_ensures_qed_ko": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, @@ -42,7 +42,7 @@ "unknown": 2 }, "wp:main": { "total": 2, "unknown": 2 } } }, - "stmt_contract_assigns": { "stmt_contract_assigns_ko_post_qed_ko": + "stmt_contract_assigns": { "stmt_contract_assigns_ko_ensures_qed_ko": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp/wp_call_pre.c.0.report.json b/src/plugins/wp/tests/wp/wp_call_pre.c.0.report.json index e906db69b8c2655f456b55e33646bb6049ea674f..46ef943fa3849d7d744ad29bea8228c6e290fc7a 100644 --- a/src/plugins/wp/tests/wp/wp_call_pre.c.0.report.json +++ b/src/plugins/wp/tests/wp/wp_call_pre.c.0.report.json @@ -1,16 +1,20 @@ { "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 2 }, "qed": { "total": 9, "valid": 9 }, "wp:main": { "total": 10, "valid": 10, "rank": 2 } }, - "wp:functions": { "double_call": { "specialization_f_pre_qed_ok_Rf_at_double_call_stmt_2": - { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 2 } }, - "specialization_f_pre_qed_ok_Rf_at_double_call_stmt_1": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "double_call": { "f_requires_qed_ok_Rf_2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_requires_qed_ok_Rf": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 2 }, @@ -19,36 +23,43 @@ "wp:main": { "total": 2, "valid": 2, "rank": 2 } } }, - "main": { "specialization_f_pre_qed_ok_Rf_at_main_stmt_6": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "main_post_qed_ok_Emain": { "qed": { "total": 1, + "main": { "f_requires_qed_ok_Rf_3": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "main_pre_qed_ok_Rmain": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "wp:section": { "qed": { "total": 3, - "valid": 3 }, - "wp:main": { "total": 3, - "valid": 3 } } }, - "call_main": { "specialization_main_pre_qed_ok_Rmain_at_call_main_stmt_11": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "call_main_post_qed_ok": { "qed": + "main_ensures_qed_ok_Emain": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "main_requires_qed_ok_Rmain": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, + "wp:section": { "qed": { "total": 3, + "valid": 3 }, + "wp:main": { "total": 3, + "valid": 3 } } }, + "call_main": { "main_requires_qed_ok_Rmain_2": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "call_main_ensures_qed_ok": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "stmt_pre": { "stmt_pre_stmt_pre_qed_ok_Rstmt": { "qed": + "stmt_pre": { "stmt_pre_requires_qed_ok_Rstmt": { "qed": { "total": 1, "valid": 1 }, "wp:main": @@ -58,12 +69,15 @@ "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "call_g": { "specialization_g_pre_Rgb_at_call_g_stmt_22": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "specialization_g_pre_qed_ok_Rga_at_call_g_stmt_22": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "call_g": { "g_requires_Rgb": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "g_requires_qed_ok_Rga": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, diff --git a/src/plugins/wp/tests/wp/wp_eqb.i.0.report.json b/src/plugins/wp/tests/wp/wp_eqb.i.0.report.json index 31678b1201a677a977dd04902eddb54caa33f639..61ebcf4782f55aad4236e4abfd5a7be592f4c998 100644 --- a/src/plugins/wp/tests/wp/wp_eqb.i.0.report.json +++ b/src/plugins/wp/tests/wp/wp_eqb.i.0.report.json @@ -1,9 +1,11 @@ { "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 9 }, "wp:main": { "total": 1, "valid": 1, "rank": 9 } }, - "wp:functions": { "f": { "f_post": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 9 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 9 } }, + "wp:functions": { "f": { "f_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 10 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 10 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 9 }, diff --git a/src/plugins/wp/tests/wp/wp_strategy.c.0.report.json b/src/plugins/wp/tests/wp/wp_strategy.c.0.report.json index 40f46e25467a95082221a53bb85c3ce8a04dce22..e49918bd0f45b613e0f363eafb042208dae7952a 100644 --- a/src/plugins/wp/tests/wp/wp_strategy.c.0.report.json +++ b/src/plugins/wp/tests/wp/wp_strategy.c.0.report.json @@ -1,18 +1,18 @@ { "wp:global": { "alt-ergo": { "total": 8, "unknown": 8 }, "qed": { "total": 17, "valid": 17 }, "wp:main": { "total": 25, "valid": 17, "unknown": 8 } }, - "wp:functions": { "bts0513": { "bts0513_post_qed_ko_ko2": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, - "bts0513_post_qed_ko_ko1": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, + "wp:functions": { "bts0513": { "bts0513_ensures_qed_ko_ko2": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "bts0513_ensures_qed_ko_ko1": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": { "total": 2, @@ -37,16 +37,16 @@ "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "dpd1_stmt_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "dpd1_stmt_post_qed_ko_Eko": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, + "dpd1_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "dpd1_ensures_qed_ko_Eko": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 2, @@ -54,22 +54,20 @@ "wp:main": { "total": 3, "valid": 2, "unknown": 1 } } }, - "dpd2": { "dpd2_assert_qed_ok_A_for_P": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "dpd2_stmt_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "dpd2_stmt_post_qed_ko_Eko": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, + "dpd2": { "dpd2_assert_qed_ok_A": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "dpd2_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "dpd2_ensures_qed_ko_Eko": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 2, @@ -83,32 +81,29 @@ "spec_if_assert_rte_signed_overflow": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "spec_if_stmt_assign_3": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "spec_if_stmt_assign_2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "spec_if_stmt_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "spec_if_stmt_post_qed_ok": { "qed": + "spec_if_assigns_3": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "spec_if_assigns_2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "spec_if_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "spec_if_ensures_qed_ok_2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "spec_if_post_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "spec_if_ensures_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "unknown": 2 }, "qed": { "total": 5, @@ -116,7 +111,7 @@ "wp:main": { "total": 7, "valid": 5, "unknown": 2 } } }, - "spec_if_cond": { "spec_if_cond_stmt_post_qed_ok": + "spec_if_cond": { "spec_if_cond_ensures_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, @@ -124,7 +119,7 @@ "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "spec_if_not_cond": { "spec_if_not_cond_stmt_post_qed_ok": + "spec_if_not_cond": { "spec_if_not_cond_ensures_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, @@ -149,17 +144,17 @@ "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "default_behaviors_stmt_assign": + "default_behaviors_assigns": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "default_behaviors_stmt_post_qed_ok_stmt_p": + "default_behaviors_ensures_qed_ok_stmt_p": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "default_behaviors_post_qed_ok": + "default_behaviors_ensures_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_acsl/arith.i.0.report.json b/src/plugins/wp/tests/wp_acsl/arith.i.0.report.json index 613f84813e258b26e25ef8f2db1f40d10206834a..13a54c0355915f6c11c608baf0017341de6d51ad 100644 --- a/src/plugins/wp/tests/wp_acsl/arith.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/arith.i.0.report.json @@ -1,6 +1,6 @@ -{ "wp:global": { "alt-ergo": { "total": 3, "valid": 3, "rank": 3 }, +{ "wp:global": { "alt-ergo": { "total": 3, "valid": 3, "rank": 4 }, "qed": { "total": 21, "valid": 21 }, - "wp:main": { "total": 24, "valid": 24, "rank": 3 } }, + "wp:main": { "total": 24, "valid": 24, "rank": 4 } }, "wp:axiomatics": { "": { "lemma_ucN2_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, @@ -106,7 +106,7 @@ "wp:main": { "total": 21, "valid": 21, "rank": 0 } } } }, - "wp:functions": { "cast_sgn_usgn": { "cast_sgn_usgn_post_qed_ok_nat": + "wp:functions": { "cast_sgn_usgn": { "cast_sgn_usgn_ensures_qed_ok_nat": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, @@ -117,18 +117,18 @@ "uchar_range": { "uchar_range_assert_qed_ok_A2": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "rank": 4 } }, "uchar_range_assert_qed_ok_A1": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 2, "valid": 2, - "rank": 3 } } } } } + "rank": 4 } } } } } diff --git a/src/plugins/wp/tests/wp_acsl/arith.i.1.report.json b/src/plugins/wp/tests/wp_acsl/arith.i.1.report.json index 5d5263c3f330fa7ee13c1252c37d23dec9c81519..d2cc0ea1c99088084f9c0d3f60a86defa91a9008 100644 --- a/src/plugins/wp/tests/wp_acsl/arith.i.1.report.json +++ b/src/plugins/wp/tests/wp_acsl/arith.i.1.report.json @@ -1,6 +1,6 @@ { "wp:global": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "wp:functions": { "cast_sgn_usgn": { "cast_sgn_usgn_post_qed_ko_KO": + "wp:functions": { "cast_sgn_usgn": { "cast_sgn_usgn_ensures_qed_ko_KO": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_acsl/assign_array.i.0.report.json b/src/plugins/wp/tests/wp_acsl/assign_array.i.0.report.json index 0ed6cda82f4f07ee74997ae359be44570d4ec148..c9b4abc0b34fba30c01071e1f47fe4f2e8c8ce92 100644 --- a/src/plugins/wp/tests/wp_acsl/assign_array.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/assign_array.i.0.report.json @@ -1,17 +1,17 @@ { "wp:global": { "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 4, "valid": 4 } }, - "wp:functions": { "jobA": { "jobA_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, + "wp:functions": { "jobA": { "jobA_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "jobG": { "jobG_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, + "jobG": { "jobG_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, diff --git a/src/plugins/wp/tests/wp_acsl/assigns_path.i.0.report.json b/src/plugins/wp/tests/wp_acsl/assigns_path.i.0.report.json index 2866dccc60d1584dfa4b3b0f120c0806543c8969..a3e18b8a1f10b2629a4c2dcfc0d7d34e0c338e01 100644 --- a/src/plugins/wp/tests/wp_acsl/assigns_path.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/assigns_path.i.0.report.json @@ -1,45 +1,45 @@ -{ "wp:global": { "alt-ergo": { "total": 3, "valid": 3, "rank": 5 }, +{ "wp:global": { "alt-ergo": { "total": 3, "valid": 3, "rank": 6 }, "qed": { "total": 6, "valid": 6 }, - "wp:main": { "total": 9, "valid": 9, "rank": 5 } }, - "wp:functions": { "job": { "job_loop_inv_2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 5 } }, - "job_loop_inv": { "alt-ergo": { "total": 1, + "wp:main": { "total": 9, "valid": 9, "rank": 6 } }, + "wp:functions": { "job": { "job_loop_invariant_2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 6 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 6 } }, + "job_loop_invariant": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 4 } }, + "job_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "job_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_A": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, "valid": 1, - "rank": 3 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 3 } }, - "job_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "job_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_A": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, - "job_post_N": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "rank": 5 } }, + "job_ensures_N": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 3, "valid": 3, - "rank": 5 }, + "rank": 6 }, "qed": { "total": 6, "valid": 6 }, "wp:main": { "total": 9, "valid": 9, - "rank": 5 } } } } } + "rank": 6 } } } } } diff --git a/src/plugins/wp/tests/wp_acsl/assigns_range.i.0.report.json b/src/plugins/wp/tests/wp_acsl/assigns_range.i.0.report.json index 1fe78dc9d29e99b87af197f1f38cff8e938a55a7..bc9e60bf5444a59032712016285245540003092b 100644 --- a/src/plugins/wp/tests/wp_acsl/assigns_range.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/assigns_range.i.0.report.json @@ -1,31 +1,31 @@ -{ "wp:global": { "alt-ergo": { "total": 5, "valid": 5, "rank": 2 }, +{ "wp:global": { "alt-ergo": { "total": 5, "valid": 5, "rank": 3 }, "qed": { "total": 12, "valid": 12 }, - "wp:main": { "total": 17, "valid": 17, "rank": 2 } }, - "wp:functions": { "call_assigns_all": { "specialization_assigns_t4_sup_bound_pre_at_call_assigns_all_stmt_4": + "wp:main": { "total": 17, "valid": 17, "rank": 3 } }, + "wp:functions": { "call_assigns_all": { "assigns_t4_sup_bound_requires": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 2 }, + "rank": 3 }, "wp:main": { "total": 1, "valid": 1, - "rank": 2 } }, - "specialization_assigns_t3_inf_bound_pre_at_call_assigns_all_stmt_3": + "rank": 3 } }, + "assigns_t3_inf_bound_requires": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "specialization_assigns_t2_bound_pre_at_call_assigns_all_stmt_2": + "assigns_t2_bound_requires": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "specialization_assigns_t1_an_element_pre_at_call_assigns_all_stmt_1": + "assigns_t1_an_element_requires": { "alt-ergo": { "total": 1, "valid": 1, "rank": 2 }, "wp:main": { "total": 1, "valid": 1, "rank": 2 } }, - "call_assigns_all_assign": + "call_assigns_all_assigns": { "qed": { "total": 10, "valid": 10 }, "wp:main": { "total": 10, @@ -33,42 +33,42 @@ "wp:section": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 2 }, + "rank": 3 }, "qed": { "total": 12, "valid": 12 }, "wp:main": { "total": 14, "valid": 14, - "rank": 2 } } }, - "call_assigns_t1": { "specialization_assigns_t1_an_element_pre_at_call_assigns_t1_stmt_8": + "rank": 3 } } }, + "call_assigns_t1": { "assigns_t1_an_element_requires_2": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, + "rank": 2 }, "wp:main": { "total": 1, "valid": 1, - "rank": 1 } }, + "rank": 2 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, + "rank": 2 }, "wp:main": { "total": 1, "valid": 1, - "rank": 1 } } }, - "call_assigns_t2": { "specialization_assigns_t2_bound_pre_at_call_assigns_t2_stmt_11": + "rank": 2 } } }, + "call_assigns_t2": { "assigns_t2_bound_requires_2": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, + "rank": 2 }, "wp:main": { "total": 1, "valid": 1, - "rank": 1 } }, + "rank": 2 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, + "rank": 2 }, "wp:main": { "total": 1, "valid": 1, - "rank": 1 } } }, - "call_assigns_t4": { "specialization_assigns_t4_sup_bound_pre_at_call_assigns_t4_stmt_14": + "rank": 2 } } }, + "call_assigns_t4": { "assigns_t4_sup_bound_requires_2": { "alt-ergo": { "total": 1, "valid": 1, "rank": 2 }, diff --git a/src/plugins/wp/tests/wp_acsl/assigns_range.i.1.report.json b/src/plugins/wp/tests/wp_acsl/assigns_range.i.1.report.json index 95a3aef7e5be5982ddce042f7aeae17967b2fce4..e68efa739414de5aa88ca2c6c6b080ceb01e4d97 100644 --- a/src/plugins/wp/tests/wp_acsl/assigns_range.i.1.report.json +++ b/src/plugins/wp/tests/wp_acsl/assigns_range.i.1.report.json @@ -1,6 +1,6 @@ { "wp:global": { "alt-ergo": { "total": 6, "unknown": 6 }, "wp:main": { "total": 6, "unknown": 6 } }, - "wp:functions": { "call_assigns_t1": { "call_assigns_t1_assign": { "alt-ergo": + "wp:functions": { "call_assigns_t1": { "call_assigns_t1_assigns": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": @@ -11,7 +11,7 @@ "unknown": 2 }, "wp:main": { "total": 2, "unknown": 2 } } }, - "call_assigns_t2": { "call_assigns_t2_assign": { "alt-ergo": + "call_assigns_t2": { "call_assigns_t2_assigns": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": @@ -22,7 +22,7 @@ "unknown": 2 }, "wp:main": { "total": 2, "unknown": 2 } } }, - "call_assigns_t4": { "call_assigns_t4_assign": { "alt-ergo": + "call_assigns_t4": { "call_assigns_t4_assigns": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": diff --git a/src/plugins/wp/tests/wp_acsl/axioms.i.0.report.json b/src/plugins/wp/tests/wp_acsl/axioms.i.0.report.json index 04cbcf21bd93fe950ca4f1c2bf0e56d13bebae5b..eefcca4016015985dcbd4d79d14b610a9901b67e 100644 --- a/src/plugins/wp/tests/wp_acsl/axioms.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/axioms.i.0.report.json @@ -3,41 +3,44 @@ "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 10, "valid": 8, "unknown": 2, "rank": 22 } }, - "wp:functions": { "f": { "f_loop_inv_Positive": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 8 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 8 } }, - "f_loop_inv_Index": { "alt-ergo": { "total": 2, - "valid": 2, - "rank": 5 }, - "wp:main": { "total": 2, + "wp:functions": { "f": { "f_loop_invariant_Positive": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 9 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, "valid": 2, - "rank": 5 } }, - "f_assign": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "f_loop_assign": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 22 }, - "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 3, - "valid": 3, - "rank": 22 } }, - "f_post_Q": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 12 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 12 } }, - "f_post_P_todo": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "rank": 9 } }, + "f_loop_invariant_Index": { "alt-ergo": { "total": 2, + "valid": 2, + "rank": 5 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 5 } }, + "f_assigns": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "f_loop_assigns": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 22 }, + "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 3, + "valid": 3, + "rank": 22 } }, + "f_ensures_Q": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 12 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 12 } }, + "f_ensures_P_todo": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 7, "valid": 5, "unknown": 2, diff --git a/src/plugins/wp/tests/wp_acsl/base_offset.i.0.report.json b/src/plugins/wp/tests/wp_acsl/base_offset.i.0.report.json index b89a535bdd006c8874e52faed199900d732a2999..00e56d6163eb0a3226a058f7518a6b315a27e255 100644 --- a/src/plugins/wp/tests/wp_acsl/base_offset.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/base_offset.i.0.report.json @@ -1,16 +1,18 @@ { "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 3 }, "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 3, "valid": 3, "rank": 3 } }, - "wp:functions": { "f": { "f_post_3": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, - "f_post_2": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "wp:functions": { "f": { "f_ensures_3": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 3 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 3 } }, + "f_ensures_2": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 3 }, diff --git a/src/plugins/wp/tests/wp_acsl/bitwise.i.0.report.json b/src/plugins/wp/tests/wp_acsl/bitwise.i.0.report.json index c59febe4d379e2ecc4dfabe44e015b836b47ec35..65c0f07e3beca29399fdfe4d87c64f9a48c965b0 100644 --- a/src/plugins/wp/tests/wp_acsl/bitwise.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/bitwise.i.0.report.json @@ -3,139 +3,150 @@ "qed": { "total": 25, "valid": 25 }, "wp:main": { "total": 29, "valid": 26, "unknown": 3, "rank": 2 } }, - "wp:functions": { "band": { "band_bit4_post_band6": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "band_bit3_post_band5": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "band_bit2_post_band4": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "band_bit1_post_band3": { "qed": { "total": 1, + "wp:functions": { "band": { "band_bit4_ensures_band6": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "band_bit3_ensures_band5": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "band_bit2_ensures_band4": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "band_bit1_ensures_band3": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "band_bit0_ensures_band2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "band_bit0_ensures_band1": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "band_ensures_band0": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "band_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "wp:section": { "qed": { "total": 8, + "valid": 8 }, + "wp:main": { "total": 8, + "valid": 8 } } }, + "bor": { "bor_bit3_ensures_bor3": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "band_bit0_post_band2": { "qed": { "total": 1, + "bor_bit2_ensures_bor2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "band_bit0_post_band1": { "qed": { "total": 1, + "bor_bit1_ensures_bor1": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "band_post_band0": { "qed": { "total": 1, + "bor_ensures_bor0": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "band_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "wp:section": { "qed": { "total": 8, - "valid": 8 }, - "wp:main": { "total": 8, - "valid": 8 } } }, - "bor": { "bor_bit3_post_bor3": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "bor_bit2_post_bor2": { "qed": { "total": 1, + "bor_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "wp:section": { "qed": { "total": 5, + "valid": 5 }, + "wp:main": { "total": 5, + "valid": 5 } } }, + "bxor": { "bxor_bit2_ensures": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "bor_bit1_post_bor1": { "qed": { "total": 1, + "bxor_bit1_ensures": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "bor_post_bor0": { "qed": { "total": 1, + "bxor_ensures": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "bor_post": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "wp:section": { "qed": { "total": 5, - "valid": 5 }, - "wp:main": { "total": 5, - "valid": 5 } } }, - "bxor": { "bxor_bit2_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "bxor_bit1_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "bxor_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, "wp:section": { "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 3, "valid": 3 } } }, - "bnot": { "bnot_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "bnot": { "bnot_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "lshift": { "lshift_shift2_post_lsl3": { "qed": { "total": 1, + "lshift": { "lshift_shift2_ensures_lsl3": { "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "lshift_shift1_post_lsl2": { "qed": { "total": 1, + "wp:main": + { "total": 1, + "valid": 1 } }, + "lshift_shift1_ensures_lsl2": { "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "lshift_shift1_post_lsl1": { "qed": { "total": 1, + "wp:main": + { "total": 1, + "valid": 1 } }, + "lshift_shift1_ensures_lsl1": { "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, + "wp:main": + { "total": 1, + "valid": 1 } }, + "lshift_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, - "lshift_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, "wp:section": { "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 4, "valid": 4 } } }, - "rshift": { "rshift_shift1_post_lsr1": { "qed": { "total": 1, + "rshift": { "rshift_shift1_ensures_lsr1": { "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, + "wp:main": + { "total": 1, + "valid": 1 } }, + "rshift_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, - "rshift_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "bor_bool": { "bor_bool_false_post": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, - "bor_bool_true_post": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 2 } }, + "bor_bool": { "bor_bool_false_ensures": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "bor_bool_true_ensures": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 2 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 1, "unknown": 1, @@ -144,17 +155,18 @@ "valid": 1, "unknown": 1, "rank": 2 } } }, - "band_bool": { "band_bool_false_post": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, - "band_bool_true_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "band_bool": { "band_bool_false_ensures": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "band_bool_true_ensures": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 1, @@ -162,17 +174,18 @@ "wp:main": { "total": 2, "valid": 1, "unknown": 1 } } }, - "bxor_bool": { "bxor_bool_false_post": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, - "bxor_bool_true_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "bxor_bool": { "bxor_bool_false_ensures": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "bxor_bool_true_ensures": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 1, diff --git a/src/plugins/wp/tests/wp_acsl/bitwise2.i b/src/plugins/wp/tests/wp_acsl/bitwise2.i new file mode 100644 index 0000000000000000000000000000000000000000..55db7e757ca41c4394e36a5a416685c4733d42fb --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/bitwise2.i @@ -0,0 +1,25 @@ + +//@ ensures \result == ((unsigned)(A & (0x7FFFFE00 >> 9))) ; +unsigned job1(unsigned A) { + return A & 0x7FFFFE00 >> 9 ; +} + +//@ ensures \result == (A & 0x7FFFFE00 >> 9) ; +unsigned job1bis(unsigned A) { + return A & 0x7FFFFE00 >> 9 ; +} + +//@ ensures \result == (((unsigned)(A & 0x7FFFFE00)) >> 9) ; +unsigned job2(unsigned A) { + return (A & 0x7FFFFE00) >> 9 ; +} + +//@ ensures \result == ((unsigned)(A & (0x7FFFFE00 >> 9))) ; +unsigned job3(unsigned A) { + return A & (0x7FFFFE00 >> 9) ; +} + +//@ ensures \result == (A & (unsigned long)(0x7FFFFE00ul >> 9)) ; +unsigned job4(unsigned A) { + return A & (0x7FFFFE00 >> 9) ; +} diff --git a/src/plugins/wp/tests/wp_acsl/bitwise2.i.0.report.json b/src/plugins/wp/tests/wp_acsl/bitwise2.i.0.report.json new file mode 100644 index 0000000000000000000000000000000000000000..80f3747514082652f99e49c34a3b92ac8f7c16f2 --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/bitwise2.i.0.report.json @@ -0,0 +1,42 @@ +{ "wp:global": { "qed": { "total": 5, "valid": 5 }, + "wp:main": { "total": 5, "valid": 5 } }, + "wp:functions": { "job1": { "job1_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "wp:section": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } } }, + "job1bis": { "job1bis_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "wp:section": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } } }, + "job2": { "job2_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "wp:section": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } } }, + "job3": { "job3_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "wp:section": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } } }, + "job4": { "job4_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "wp:section": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } } } } } diff --git a/src/plugins/wp/tests/wp_acsl/block_length.i.0.report.json b/src/plugins/wp/tests/wp_acsl/block_length.i.0.report.json index fb673ed5ab9532f8584ec65e285bd2a3be38b28c..20266136120270c069fde403de99a3b22be7845e 100644 --- a/src/plugins/wp/tests/wp_acsl/block_length.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/block_length.i.0.report.json @@ -1,40 +1,45 @@ { "wp:global": { "qed": { "total": 10, "valid": 10 }, "wp:main": { "total": 10, "valid": 10 } }, - "wp:functions": { "f": { "f_post_Pts1": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_Pmat12": { "qed": { "total": 1, + "wp:functions": { "f": { "f_ensures_Pts1": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_Pmat12": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_Pt1": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "f_post_Pt1": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_Pts": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_Ps": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_Pmat2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_Psiz2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_Pmat1": { "qed": { "total": 1, + "f_ensures_Pts": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_Ps": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "f_post_Psiz1": { "qed": { "total": 1, + "f_ensures_Pmat2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_Psiz2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_Pmat1": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_Psiz1": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_Pt": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "f_post_Pt": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, "wp:section": { "qed": { "total": 10, "valid": 10 }, "wp:main": { "total": 10, diff --git a/src/plugins/wp/tests/wp_acsl/cnf.i.0.report.json b/src/plugins/wp/tests/wp_acsl/cnf.i.0.report.json index 67e7a7e8eb88868ae70419c0b6878abdf09e6605..02bbe2c305041e6d908733978e4dc5c0bf4eb7cf 100644 --- a/src/plugins/wp/tests/wp_acsl/cnf.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/cnf.i.0.report.json @@ -1,231 +1,242 @@ { "wp:global": { "alt-ergo": { "total": 32, "valid": 32, "rank": 42 }, "qed": { "total": 11, "valid": 11 }, "wp:main": { "total": 43, "valid": 43, "rank": 42 } }, - "wp:functions": { "f": { "f_post_e2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "f_post_e1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "f_post_e0": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "f_post_d9": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 6 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 6 } }, - "f_post_d8": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "f_post_d7": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "f_post_d6": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 5 } }, - "f_post_d5": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 3 } }, - "f_post_d4": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 5 } }, - "f_post_d3": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 5 } }, - "f_post_d2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, - "f_post_d1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, - "f_post_d0": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 5 } }, - "f_post_c9": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_c8": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_c7": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 12 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 12 } }, - "f_post_c6": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 9 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 9 } }, - "f_post_c5": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 12 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 12 } }, - "f_post_c4": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 3 } }, - "f_post_c3": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 3 } }, - "f_post_c2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "f_post_c1": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_c0": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 3 } }, - "f_post_b9": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_b8": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_b7": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_b6": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_b5": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_b4": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_b3": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_b2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_b1": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_b0": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_a9": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 42 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 42 } }, - "f_post_a8": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 22 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 22 } }, - "f_post_a7": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 13 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 13 } }, - "f_post_a6": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, - "f_post_a5": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 7 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 7 } }, - "f_post_a4": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_a3": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_a2": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_a1": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_a0": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "f": { "f_ensures_e2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 1 } }, + "f_ensures_e1": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 1 } }, + "f_ensures_e0": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 1 } }, + "f_ensures_d9": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 6 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 6 } }, + "f_ensures_d8": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_d7": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_d6": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, + "f_ensures_d5": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 3 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 3 } }, + "f_ensures_d4": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, + "f_ensures_d3": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, + "f_ensures_d2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } }, + "f_ensures_d1": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } }, + "f_ensures_d0": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, + "f_ensures_c9": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_c8": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_c7": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 12 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 12 } }, + "f_ensures_c6": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 9 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 9 } }, + "f_ensures_c5": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 12 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 12 } }, + "f_ensures_c4": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 3 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 3 } }, + "f_ensures_c3": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 3 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 3 } }, + "f_ensures_c2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_c1": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_c0": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 3 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 3 } }, + "f_ensures_b9": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_b8": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_b7": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_b6": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_b5": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_b4": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_b3": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_b2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_b1": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_b0": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_a9": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 42 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 42 } }, + "f_ensures_a8": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 22 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 22 } }, + "f_ensures_a7": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 13 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 13 } }, + "f_ensures_a6": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } }, + "f_ensures_a5": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 7 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 7 } }, + "f_ensures_a4": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_a3": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_a2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_a1": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_a0": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 32, "valid": 32, "rank": 42 }, diff --git a/src/plugins/wp/tests/wp_acsl/div_mod.i.0.report.json b/src/plugins/wp/tests/wp_acsl/div_mod.i.0.report.json index a6918d2a8a054472d9f3d9a8b4649459216a1972..bd91b0af271e22d5b60297c2d1082bc1896541c7 100644 --- a/src/plugins/wp/tests/wp_acsl/div_mod.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/div_mod.i.0.report.json @@ -1,140 +1,168 @@ -{ "wp:global": { "alt-ergo": { "total": 22, "valid": 22, "rank": 2 }, - "wp:main": { "total": 22, "valid": 22, "rank": 2 } }, - "wp:functions": { "f": { "f_post_sm3_mod_neg_neg": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "f_post_sm2_mod_pos_neg": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "f_post_sm1_mod_neg_pos": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "f_post_sm0_mod_pos_pos": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "f_post_m6_mod_0_x": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "f_post_m5_mod_x_minus1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "f_post_m4_mod_x_1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "f_post_m3_mod_neg_neg": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, +{ "wp:global": { "alt-ergo": { "total": 22, "valid": 22, "rank": 3 }, + "wp:main": { "total": 22, "valid": 22, "rank": 3 } }, + "wp:functions": { "f": { "f_ensures_sm3_mod_neg_neg": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_sm2_mod_pos_neg": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_sm1_mod_neg_pos": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_sm0_mod_pos_pos": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_m6_mod_0_x": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 } }, - "f_post_m2_mod_pos_neg": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "f_post_m1_mod_neg_pos": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, + "rank": 3 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 3 } }, + "f_ensures_m5_mod_x_minus1": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 3 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 3 } }, + "f_ensures_m4_mod_x_1": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 } }, - "f_post_m0_mod_pos_pos": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "f_post_sd3_div_neg_neg": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "f_post_sd2_div_pos_neg": { "alt-ergo": { "total": 1, + "rank": 1 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 1 } }, + "f_ensures_m3_mod_neg_neg": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "f_post_sd1_div_neg_pos": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "f_post_sd0_div_pos_pos": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "f_post_d6_div_0_x": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "f_post_d5_div_x_minus1": { "alt-ergo": { "total": 1, + "rank": 1 } }, + "f_ensures_m2_mod_pos_neg": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, + "rank": 1 } }, + "f_ensures_m1_mod_neg_pos": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, "valid": 1, "rank": 1 } }, - "f_post_d4_div_x_1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "f_post_d3_div_neg_neg": { "alt-ergo": { "total": 1, + "f_ensures_m0_mod_pos_pos": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, + "rank": 1 } }, + "f_ensures_sd3_div_neg_neg": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_sd2_div_pos_neg": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_sd1_div_neg_pos": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_sd0_div_pos_pos": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_d6_div_0_x": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 } }, - "f_post_d2_div_pos_neg": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, + "rank": 3 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 3 } }, + "f_ensures_d5_div_x_minus1": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_d4_div_x_1": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 } }, - "f_post_d1_div_neg_pos": { "alt-ergo": { "total": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_d3_div_neg_neg": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "f_post_d0_div_pos_pos": { "alt-ergo": { "total": 1, + "rank": 1 } }, + "f_ensures_d2_div_pos_neg": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, + "rank": 1 } }, + "f_ensures_d1_div_neg_pos": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 1 } }, + "f_ensures_d0_div_pos_pos": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 1 } }, "wp:section": { "alt-ergo": { "total": 22, "valid": 22, - "rank": 2 }, + "rank": 3 }, "wp:main": { "total": 22, "valid": 22, - "rank": 2 } } } } } + "rank": 3 } } } } } diff --git a/src/plugins/wp/tests/wp_acsl/div_mod.i.1.report.json b/src/plugins/wp/tests/wp_acsl/div_mod.i.1.report.json index 42f37807207f7895f6b56751c5c1cab33f6cc17e..ce944a4be8c1f241fab89018a588b755f5b8a56d 100644 --- a/src/plugins/wp/tests/wp_acsl/div_mod.i.1.report.json +++ b/src/plugins/wp/tests/wp_acsl/div_mod.i.1.report.json @@ -1,111 +1,125 @@ { "wp:global": { "why3:alt-ergo": { "total": 22, "valid": 22 }, "wp:main": { "total": 22, "valid": 22 } }, - "wp:functions": { "f": { "f_post_sm3_mod_neg_neg": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, + "wp:functions": { "f": { "f_ensures_sm3_mod_neg_neg": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_ensures_sm2_mod_pos_neg": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_ensures_sm1_mod_neg_pos": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_ensures_sm0_mod_pos_pos": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_ensures_m6_mod_0_x": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_m5_mod_x_minus1": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_ensures_m4_mod_x_1": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_m3_mod_neg_neg": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, - "f_post_sm2_mod_pos_neg": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, + "f_ensures_m2_mod_pos_neg": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, - "f_post_sm1_mod_neg_pos": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, + "f_ensures_m1_mod_neg_pos": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, - "f_post_sm0_mod_pos_pos": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, + "f_ensures_m0_mod_pos_pos": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, - "f_post_m6_mod_0_x": { "why3:alt-ergo": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_m5_mod_x_minus1": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, + "f_ensures_sd3_div_neg_neg": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_ensures_sd2_div_pos_neg": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_ensures_sd1_div_neg_pos": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_ensures_sd0_div_pos_pos": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_ensures_d6_div_0_x": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_d5_div_x_minus1": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_ensures_d4_div_x_1": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_d3_div_neg_neg": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, - "f_post_m4_mod_x_1": { "why3:alt-ergo": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_m3_mod_neg_neg": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_m2_mod_pos_neg": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_m1_mod_neg_pos": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_m0_mod_pos_pos": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_sd3_div_neg_neg": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, + "f_ensures_d2_div_pos_neg": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, - "f_post_sd2_div_pos_neg": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, + "f_ensures_d1_div_neg_pos": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, - "f_post_sd1_div_neg_pos": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, + "f_ensures_d0_div_pos_pos": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, - "f_post_sd0_div_pos_pos": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_d6_div_0_x": { "why3:alt-ergo": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_d5_div_x_minus1": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_d4_div_x_1": { "why3:alt-ergo": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_d3_div_neg_neg": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_d2_div_pos_neg": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_d1_div_neg_pos": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_d0_div_pos_pos": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, "wp:section": { "why3:alt-ergo": { "total": 22, "valid": 22 }, "wp:main": { "total": 22, diff --git a/src/plugins/wp/tests/wp_acsl/div_mod.i.2.report.json b/src/plugins/wp/tests/wp_acsl/div_mod.i.2.report.json index 2296ef2855715d7f43c75faf36c55c4f2ebe4cb8..0488ae3aa58aa498aaea1c450afe90a1dc670377 100644 --- a/src/plugins/wp/tests/wp_acsl/div_mod.i.2.report.json +++ b/src/plugins/wp/tests/wp_acsl/div_mod.i.2.report.json @@ -1,13 +1,13 @@ { "wp:global": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": { "total": 2, "unknown": 2 } }, - "wp:functions": { "f": { "f_post_m7_mod_0_x_ko": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "f_post_d7_div_0_x_ko": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "wp:functions": { "f": { "f_ensures_m7_mod_0_x_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "f_ensures_d7_div_0_x_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": { "total": 2, diff --git a/src/plugins/wp/tests/wp_acsl/e_imply.i.0.report.json b/src/plugins/wp/tests/wp_acsl/e_imply.i.0.report.json index 764dbf0656bc0529dec4b6b2dae21d9668c2a7d4..3fc1468e9cae9d96c9159c092a6025ccae28afbf 100644 --- a/src/plugins/wp/tests/wp_acsl/e_imply.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/e_imply.i.0.report.json @@ -1,702 +1,633 @@ { "wp:global": { "alt-ergo": { "total": 111, "valid": 111, "rank": 3 }, "qed": { "total": 8, "valid": 8 }, "wp:main": { "total": 119, "valid": 119, "rank": 3 } }, - "wp:axiomatics": { "": { "global_Qed_0077": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0076": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "global_Qed_0075": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "global_Qed_0074": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0073": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0072": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0071": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0070": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0069": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0068": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0067": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0066": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0065": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0064": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0063": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0062": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0061": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0060": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0059": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0058": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0057": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0056": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "global_Qed_0055": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "global_Qed_0054": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "global_Qed_0053": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "global_Qed_0052": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 3 } }, - "global_Qed_0051": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0050": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "global_Qed_0049": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0048": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "global_Qed_0047": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0046": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0045": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0044": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0043": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0042": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0041": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "global_Qed_0040": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0039": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "global_Qed_0038": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0037": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "global_Qed_0036": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0035": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0034": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0033": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "global_Qed_0032": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "global_Qed_0031": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0030": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0029": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "global_Qed_0028": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0027": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0026": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0025": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0024": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0023": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0022": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0021": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0020": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0019": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0018": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0017": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0016": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0015": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "global_Qed_0014": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0013": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "global_Qed_0012": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "global_Qed_0011": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0010": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0009": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0008": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "global_Qed_0007": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0006": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "global_Qed_0005": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0004": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0003": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0002": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0001": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, + "wp:axiomatics": { "": { "Qed_0077": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0076": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 2 } }, + "Qed_0075": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 2 } }, + "Qed_0074": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0073": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0072": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0071": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0070": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0069": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0068": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0067": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0066": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0065": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0064": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0063": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0062": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0061": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0060": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0059": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0058": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0057": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0056": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 1 } }, + "Qed_0055": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 2 } }, + "Qed_0054": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 2 } }, + "Qed_0053": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 2 } }, + "Qed_0052": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 3 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 3 } }, + "Qed_0051": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0050": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 1 } }, + "Qed_0049": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0048": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 2 } }, + "Qed_0047": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0046": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0045": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0044": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0043": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0042": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0041": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 2 } }, + "Qed_0040": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0039": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 2 } }, + "Qed_0038": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0037": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 2 } }, + "Qed_0036": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0035": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0034": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0033": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 2 } }, + "Qed_0032": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 2 } }, + "Qed_0031": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0030": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0029": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 2 } }, + "Qed_0028": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0027": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0026": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0025": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0024": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0023": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0022": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0021": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0020": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0019": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0018": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0017": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0016": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0015": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 1 } }, + "Qed_0014": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0013": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 1 } }, + "Qed_0012": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 1 } }, + "Qed_0011": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0010": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0009": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0008": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 2 } }, + "Qed_0007": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0006": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 2 } }, + "Qed_0005": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0004": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0003": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0002": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0001": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, "wp:section": { "alt-ergo": { "total": 77, "valid": 77, "rank": 3 }, "wp:main": { "total": 77, "valid": 77, "rank": 3 } } } }, - "wp:functions": { "f": { "f_post_f1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "f_post_f0": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "f_post_o9": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_o8": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_o7": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_o6": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_o5": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_o4": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_o3": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_o2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_o1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_o0": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_a9": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_a8": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_a7": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_a6": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_a5": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_a4": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_a3": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_a2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_a1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_a0": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_i9": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_i8": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_i7": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "f_post_i6": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "f_post_i5": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_i4": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_i3": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "f_post_i2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_i1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "f_post_i0": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_p9": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_p8": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "f_post_p7": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_p6": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_p5": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "f_post_p4": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_p3": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_p2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_p1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "f_post_p0": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, + "wp:functions": { "f": { "f_ensures_f1": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_f0": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_o9": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_o8": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_o7": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_o6": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_o5": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_o4": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_o3": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_o2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_o1": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_o0": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_a9": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_a8": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_a7": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_a6": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_a5": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_a4": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_a3": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_a2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_a1": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 1 } }, + "f_ensures_a0": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_i9": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_i8": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_i7": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_i6": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_i5": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_i4": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_i3": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_i2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_i1": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_i0": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_p9": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_p8": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_p7": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_p6": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_p5": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_p4": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_p3": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_p2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_p1": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_p0": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 1 } }, "wp:section": { "alt-ergo": { "total": 34, "valid": 34, "rank": 2 }, diff --git a/src/plugins/wp/tests/wp_acsl/equal.i.0.report.json b/src/plugins/wp/tests/wp_acsl/equal.i.0.report.json index df2fc6fa43a89a0724d706d43dda02153146db91..2afde0a0ad7a95fae27abec86f30384ead3f0c52 100644 --- a/src/plugins/wp/tests/wp_acsl/equal.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/equal.i.0.report.json @@ -1,75 +1,75 @@ -{ "wp:global": { "alt-ergo": { "total": 5, "valid": 5, "rank": 7 }, +{ "wp:global": { "alt-ergo": { "total": 5, "valid": 5, "rank": 8 }, "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 6, "valid": 6, "rank": 7 } }, - "wp:functions": { "simple_struct": { "simple_struct_post": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "wp:main": { "total": 6, "valid": 6, "rank": 8 } }, + "wp:functions": { "simple_struct": { "simple_struct_ensures": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "simple_array": { "simple_array_post": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 4 } }, + "simple_array": { "simple_array_ensures": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, "wp:main": { "total": 1, "valid": 1, "rank": 4 } } }, - "with_array_struct": { "with_array_struct_post": + "with_array_struct": { "with_array_struct_ensures": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } } }, - "with_ptr_struct": { "with_ptr_struct_post": { "alt-ergo": + "rank": 4 } } }, + "with_ptr_struct": { "with_ptr_struct_ensures": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, - "wp:main": + "rank": 3 }, + "wp:main": { "total": 1, "valid": 1, - "rank": 1 } }, + "rank": 3 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, + "rank": 3 }, "wp:main": { "total": 1, "valid": 1, - "rank": 1 } } }, - "with_ptr_array": { "with_ptr_array_post": { "alt-ergo": - { "total": 1, + "rank": 3 } } }, + "with_ptr_array": { "with_ptr_array_ensures": { "alt-ergo": + { "total": 1, "valid": 1, - "rank": 3 }, - "wp:main": - { "total": 1, + "rank": 4 }, + "wp:main": + { "total": 1, "valid": 1, - "rank": 3 } }, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } } }, - "with_ptr_and_array_struct": { "with_ptr_and_array_struct_post": + "rank": 4 } } }, + "with_ptr_and_array_struct": { "with_ptr_and_array_struct_ensures": { "alt-ergo": { "total": 1, "valid": 1, "rank": 7 }, diff --git a/src/plugins/wp/tests/wp_acsl/funvar_inv.i.0.report.json b/src/plugins/wp/tests/wp_acsl/funvar_inv.i.0.report.json index 3983dfdf97939afea2aea6a13b13249858667c74..798d459f646ea58a686252d9745495b2787cbbe6 100644 --- a/src/plugins/wp/tests/wp_acsl/funvar_inv.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/funvar_inv.i.0.report.json @@ -1,23 +1,23 @@ { "wp:global": { "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 3, "valid": 3 } }, - "wp:functions": { "f": { "f_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "f": { "f_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "f2": { "f2_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "f2": { "f2_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "g": { "g_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "g": { "g_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } } } } diff --git a/src/plugins/wp/tests/wp_acsl/implicit_enum_cast.i.0.report.json b/src/plugins/wp/tests/wp_acsl/implicit_enum_cast.i.0.report.json index f374dc090cf064d168175b01954a44a584a9dc3b..ed396bf7e2986b4e9eee657b6c51541ae3c34d3d 100644 --- a/src/plugins/wp/tests/wp_acsl/implicit_enum_cast.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/implicit_enum_cast.i.0.report.json @@ -1,12 +1,13 @@ { "wp:global": { "qed": { "total": 9, "valid": 9 }, "wp:main": { "total": 9, "valid": 9 } }, - "wp:functions": { "bar": { "bar_assign": { "qed": { "total": 8, - "valid": 8 }, - "wp:main": { "total": 8, - "valid": 8 } }, - "bar_post": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "bar": { "bar_assigns": { "qed": { "total": 8, + "valid": 8 }, + "wp:main": { "total": 8, + "valid": 8 } }, + "bar_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 9, "valid": 9 }, "wp:main": { "total": 9, diff --git a/src/plugins/wp/tests/wp_acsl/init_label.i.0.report.json b/src/plugins/wp/tests/wp_acsl/init_label.i.0.report.json index 81a337fa1fbd2bfb2c9372356b869ed194937958..3d33c8c50aa7c8d908c3718f8ff99be5e4a3bac1 100644 --- a/src/plugins/wp/tests/wp_acsl/init_label.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/init_label.i.0.report.json @@ -3,38 +3,38 @@ "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 4, "valid": 3, "unknown": 1, "rank": 5 } }, - "wp:functions": { "main": { "main_pre_OK": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "main": { "main_requires_OK": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "job": { "job_post_OK": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 5 } }, + "job": { "job_ensures_OK": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 5 }, "wp:main": { "total": 1, "valid": 1, "rank": 5 } } }, - "foreign": { "foreign_post_OK": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "foreign": { "foreign_ensures_OK": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "extra": { "extra_post_KO": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "extra": { "extra_ensures_KO": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_acsl/init_value.i b/src/plugins/wp/tests/wp_acsl/init_value.i index 382ae866678afdd2183fd0ef54a7f9a2e88625e0..b9d9caeabadd4510e4a64607a265906f70f4274c 100644 --- a/src/plugins/wp/tests/wp_acsl/init_value.i +++ b/src/plugins/wp/tests/wp_acsl/init_value.i @@ -1,9 +1,9 @@ /* run.config - OPT: - OPT: -main main_ko + OPT: -wp-init-const -wp-no-let + OPT: -main main_ko -wp-no-let */ /* run.config_qualif - OPT: -wp -wp-par 1 -wp-prop="-qed_ko" + OPT: -wp-init-const -wp -wp-par 1 -wp-prop="-qed_ko" OPT: -main main_ko -wp-par 1 -wp-prop qed_ko -wp-steps 50 */ @@ -11,25 +11,33 @@ /* --- GOAL: partial and complete initialization of value --- */ /* -------------------------------------------------------------------------- */ -struct S { int a; int b;}; +struct S { int a; int b;}; struct S s = {2}; int t[2] = {1}; +int t1[9+1] = {[5 ... 6]=2, [0 ... 3 ]=1 }; -struct St {int tab[10];}; +struct St {int tab[9+1];}; struct St st = {{1,2,3,4}}; -struct Sc {int a; int b[3]; int c;}; +struct Sc {int a; int b[2+1]; int c;}; struct Sc sc0 = {1,{2,3,4},5}; struct Sc sc1 = {1,2,3,4,5}; -struct Sc sc2 = {1,{2,3},4}; +struct Sc sc2 = {1,{2,3},4}; struct Sc sc3 = {1,2,3,4}; +struct Sc sq0 = {2,{2,2},2}; +struct Sc sq1 = {.b={2,2}}; + unsigned char tab[32]; -int u []; +union U { + short t[4]; + short a; + long long b; +} u = {.a=-1 }; /*@ requires qed_ok: Struct_Simple_a: s.a == 2 ; requires qed_ok: Struct_Simple_b: s.b == 0 ; @@ -44,8 +52,15 @@ int u []; requires qed_ok: Sc_c_3 : sc3.c == 0; requires qed_ok: Tab_no_init : tab[5] == 0 ; requires qed_ok: Tab_todo : \forall int i; 0 <= i <= 31 ==> tab[i] <= 255; + requires qed_ok: sq0.b[1]==2; + requires qed_ok: sq0.b[2]==0; + requires qed_ok: \forall integer i; 0 <= i <= 3 ==> t1[i] == 1; + requires qed_ok: todo: t1[4] == 0; + requires qed_ok: \forall integer i; 5 < i <= 6 ==> t1[i] == 2; + requires qed_ok: \forall integer i; 6 < i <= 9 ==> t1[i] == 0; + requires qed_ok: direct_init_union: u.a == -1; */ -void main (void){return;} +void main (int a){return;}; /*@ requires qed_ko: Sc_eq_ko : sc2 == sc3; requires qed_ko: Sc_t : sc3.b[2] == 3 ; @@ -53,6 +68,33 @@ void main (void){return;} requires qed_ko: Tab_no_init : tab[5] == 1 ; requires qed_ko: With_Array_Struct_3 : st.tab[3] == 3 ; requires qed_ko: Simple_Array_1 : t[1] == 1 ; + requires qed_ko: T1_6: t1[6] == 0; + requires qed_ko: indirect_init_union_b: u.b == 0; + requires qed_ko: indirect_init_union_t: u.t[0] == 0; */ void main_ko (void){return;} +const int ta1[5] = { [2]=1,[4]=1 }; +/*@ ensures qed_ok: ta1[0]==ta1[1] && ta1[1]==ta1[3]; + @ ensures qed_ko: ta1[4]==0; + @ ensures qed_ko: ta1[3]==1; */ +void fa1(void) {return ;} + +const int ta2[5] = { [2 ... 3]=1 }; +/*@ ensures qed_ok: ta2[0]==ta2[1] && ta2[1]==ta2[4]; + @ ensures qed_ko: ta2[4]==1; + @ ensures qed_ko: ta2[1]==1; */ +void fa2(void) {return ;} + +const int ta3[5] = { [1]=1, [3]=1}; +/*@ ensures qed_ok: ta3[0]==ta3[2] && ta1[2]==ta1[4]; + @ ensures qed_ko: ta3[0]==1; + @ ensures qed_ko: ta3[2]==1; + @ ensures qed_ko: ta2[4]==1; */ +void fa3(void) {return ;} + +const struct { int a, b, c; } ts1[4] = { [2].a=1, [2].b=1 }; +/*@ ensures qed_ok: ts1[0]==ts1[1] && ts1[1]==ts1[3] && ts1[2].a ==ts1[2].b; + @ ensures qed_ko: ts1[2].c==1; + @ ensures qed_ko: ts1[0].a==1;*/ +void fs1(void) {return ;} diff --git a/src/plugins/wp/tests/wp_acsl/init_value.i.0.report.json b/src/plugins/wp/tests/wp_acsl/init_value.i.0.report.json index 24349b32c01b0a4eff5f6e5927b4825c7cf3f059..577a3f779da8f885a59f3b5dc6353e0b41ac3db5 100644 --- a/src/plugins/wp/tests/wp_acsl/init_value.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/init_value.i.0.report.json @@ -1,83 +1,153 @@ -{ "wp:global": { "alt-ergo": { "total": 3, "valid": 3, "rank": 8 }, - "qed": { "total": 10, "valid": 10 }, - "wp:main": { "total": 13, "valid": 13, "rank": 8 } }, - "wp:functions": { "main": { "main_pre_qed_ok_Tab_todo": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 2 } }, - "main_pre_qed_ok_Tab_no_init": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "main_pre_qed_ok_Sc_c_3": { "qed": { "total": 1, - "valid": 1 }, +{ "wp:global": { "alt-ergo": { "total": 7, "valid": 7, "rank": 29 }, + "qed": { "total": 17, "valid": 17 }, + "wp:main": { "total": 24, "valid": 24, "rank": 29 } }, + "wp:functions": { "main": { "main_requires_qed_ok_direct_init_union": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "main_requires_qed_ok_5": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 2 }, "wp:main": { "total": 1, - "valid": 1 } }, - "main_pre_qed_ok_Sc_c_2": { "qed": { "total": 1, - "valid": 1 }, + "valid": 1, + "rank": 2 } }, + "main_requires_qed_ok_4": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 2 }, "wp:main": { "total": 1, - "valid": 1 } }, - "main_pre_qed_ok_Sc_t_2": { "qed": { "total": 1, + "valid": 1, + "rank": 2 } }, + "main_requires_qed_ok_todo": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "main_requires_qed_ok_3": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 2 } }, + "main_requires_qed_ok_2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "main_pre_qed_ok_Sc_t": { "qed": { "total": 1, + "main_requires_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "main_pre_qed_ok_Sc_eq": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 8 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 8 } }, - "main_pre_qed_ok_With_Array_Struct_3": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "main_pre_qed_ok_With_Array_Struct_5": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "main_pre_qed_ok_Simple_Array_1": { "alt-ergo": - { "total": 1, + "main_requires_qed_ok_Tab_todo": { "alt-ergo": + { "total": 1, "valid": 1, - "rank": 3 }, - "wp:main": - { "total": 1, + "rank": 2 }, + "wp:main": + { "total": 1, "valid": 1, - "rank": 3 } }, - "main_pre_qed_ok_Simple_Array_0": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "main_pre_qed_ok_Struct_Simple_b": { "qed": + "rank": 2 } }, + "main_requires_qed_ok_Tab_no_init": { "qed": { "total": 1, "valid": 1 }, - "wp:main": + "wp:main": { "total": 1, "valid": 1 } }, - "main_pre_qed_ok_Struct_Simple_a": { "qed": - { "total": 1, + "main_requires_qed_ok_Sc_c_3": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "main_requires_qed_ok_Sc_c_2": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "main_requires_qed_ok_Sc_t_2": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "main_requires_qed_ok_Sc_t": { "qed": { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "wp:section": { "alt-ergo": { "total": 3, - "valid": 3, + "wp:main": + { "total": 1, + "valid": 1 } }, + "main_requires_qed_ok_Sc_eq": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 8 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 8 } }, + "main_requires_qed_ok_With_Array_Struct_3": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "main_requires_qed_ok_With_Array_Struct_5": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "main_requires_qed_ok_Simple_Array_1": + { "alt-ergo": { "total": 1, "valid": 1, + "rank": 3 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 3 } }, + "main_requires_qed_ok_Simple_Array_0": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "main_requires_qed_ok_Struct_Simple_b": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "main_requires_qed_ok_Struct_Simple_a": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "wp:section": { "alt-ergo": { "total": 6, + "valid": 6, "rank": 8 }, - "qed": { "total": 10, - "valid": 10 }, - "wp:main": { "total": 13, - "valid": 13, - "rank": 8 } } } } } + "qed": { "total": 14, + "valid": 14 }, + "wp:main": { "total": 20, + "valid": 20, + "rank": 8 } } }, + "fa1": { "fa1_ensures_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "wp:section": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } } }, + "fa2": { "fa2_ensures_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "wp:section": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } } }, + "fa3": { "fa3_ensures_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "wp:section": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } } }, + "fs1": { "fs1_ensures_qed_ok": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 29 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 29 } }, + "wp:section": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 29 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 29 } } } } } diff --git a/src/plugins/wp/tests/wp_acsl/init_value.i.1.report.json b/src/plugins/wp/tests/wp_acsl/init_value.i.1.report.json index 7c26ecf79edec8169bee2869e3b2fa07bb08e876..890d8170ecfaf478cb43e8608883a3bb550a2ed6 100644 --- a/src/plugins/wp/tests/wp_acsl/init_value.i.1.report.json +++ b/src/plugins/wp/tests/wp_acsl/init_value.i.1.report.json @@ -1,36 +1,94 @@ -{ "wp:global": { "alt-ergo": { "total": 6, "unknown": 6 }, - "wp:main": { "total": 6, "unknown": 6 } }, - "wp:functions": { "main_ko": { "main_ko_pre_qed_ko_Simple_Array_1": +{ "wp:global": { "alt-ergo": { "total": 18, "unknown": 18 }, + "wp:main": { "total": 18, "unknown": 18 } }, + "wp:functions": { "main_ko": { "main_ko_requires_qed_ko_indirect_init_union_t": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "main_ko_pre_qed_ko_With_Array_Struct_3": + "main_ko_requires_qed_ko_indirect_init_union_b": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "main_ko_pre_qed_ko_Tab_no_init": { "alt-ergo": + "main_ko_requires_qed_ko_T1_6": { "alt-ergo": { "total": 1, "unknown": 1 }, - "wp:main": + "wp:main": { "total": 1, "unknown": 1 } }, - "main_ko_pre_qed_ko_Sc_c_2": { "alt-ergo": - { "total": 1, + "main_ko_requires_qed_ko_Simple_Array_1": + { "alt-ergo": { "total": 1, "unknown": 1 }, + "wp:main": { "total": 1, "unknown": 1 } }, + "main_ko_requires_qed_ko_With_Array_Struct_3": + { "alt-ergo": { "total": 1, "unknown": 1 }, + "wp:main": { "total": 1, "unknown": 1 } }, + "main_ko_requires_qed_ko_Tab_no_init": + { "alt-ergo": { "total": 1, "unknown": 1 }, + "wp:main": { "total": 1, "unknown": 1 } }, + "main_ko_requires_qed_ko_Sc_c_2": { "alt-ergo": + { "total": 1, "unknown": 1 }, - "wp:main": - { "total": 1, + "wp:main": + { "total": 1, "unknown": 1 } }, - "main_ko_pre_qed_ko_Sc_t": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, - "main_ko_pre_qed_ko_Sc_eq_ko": { "alt-ergo": + "main_ko_requires_qed_ko_Sc_t": { "alt-ergo": { "total": 1, "unknown": 1 }, - "wp:main": + "wp:main": { "total": 1, "unknown": 1 } }, - "wp:section": { "alt-ergo": { "total": 6, - "unknown": 6 }, - "wp:main": { "total": 6, - "unknown": 6 } } } } } + "main_ko_requires_qed_ko_Sc_eq_ko": + { "alt-ergo": { "total": 1, "unknown": 1 }, + "wp:main": { "total": 1, "unknown": 1 } }, + "wp:section": { "alt-ergo": { "total": 9, + "unknown": 9 }, + "wp:main": { "total": 9, + "unknown": 9 } } }, + "fa1": { "fa1_ensures_qed_ko_2": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "fa1_ensures_qed_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "wp:section": { "alt-ergo": { "total": 2, + "unknown": 2 }, + "wp:main": { "total": 2, + "unknown": 2 } } }, + "fa2": { "fa2_ensures_qed_ko_2": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "fa2_ensures_qed_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "wp:section": { "alt-ergo": { "total": 2, + "unknown": 2 }, + "wp:main": { "total": 2, + "unknown": 2 } } }, + "fa3": { "fa3_ensures_qed_ko_3": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "fa3_ensures_qed_ko_2": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "fa3_ensures_qed_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "wp:section": { "alt-ergo": { "total": 3, + "unknown": 3 }, + "wp:main": { "total": 3, + "unknown": 3 } } }, + "fs1": { "fs1_ensures_qed_ko_2": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "fs1_ensures_qed_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "wp:section": { "alt-ergo": { "total": 2, + "unknown": 2 }, + "wp:main": { "total": 2, + "unknown": 2 } } } } } diff --git a/src/plugins/wp/tests/wp_acsl/init_value_mem.i.0.report.json b/src/plugins/wp/tests/wp_acsl/init_value_mem.i.0.report.json index fa64194949c99b5e31929add92629ff42a7cf8bf..f632d90bac4a00dab996baa5f396d338ffffa3cc 100644 --- a/src/plugins/wp/tests/wp_acsl/init_value_mem.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/init_value_mem.i.0.report.json @@ -1,20 +1,20 @@ -{ "wp:global": { "alt-ergo": { "total": 2, "valid": 2, "rank": 9 }, - "wp:main": { "total": 2, "valid": 2, "rank": 9 } }, - "wp:functions": { "main": { "main_post_Q": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 9 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 9 } }, - "main_post_P": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 9 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 9 } }, +{ "wp:global": { "alt-ergo": { "total": 2, "valid": 2, "rank": 10 }, + "wp:main": { "total": 2, "valid": 2, "rank": 10 } }, + "wp:functions": { "main": { "main_ensures_Q": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 10 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 10 } }, + "main_ensures_P": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 10 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 10 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 9 }, + "rank": 10 }, "wp:main": { "total": 2, "valid": 2, - "rank": 9 } } } } } + "rank": 10 } } } } } diff --git a/src/plugins/wp/tests/wp_acsl/intbool.i.0.report.json b/src/plugins/wp/tests/wp_acsl/intbool.i.0.report.json index c599a4ddfcf992126d7af0205c32897aab8216d9..4ed4a7c4e6305b0311d13850278f63d06912e2c8 100644 --- a/src/plugins/wp/tests/wp_acsl/intbool.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/intbool.i.0.report.json @@ -1,8 +1,9 @@ { "wp:global": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "wp:functions": { "bug": { "bug_post": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "bug": { "bug_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_acsl/logic.i.0.report.json b/src/plugins/wp/tests/wp_acsl/logic.i.0.report.json index 0ca5753d2884ec797d09eebcde0005178ca5263a..badcee8deb06c806b1e1fba397198f03ad075183 100644 --- a/src/plugins/wp/tests/wp_acsl/logic.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/logic.i.0.report.json @@ -1,104 +1,138 @@ { "wp:global": { "alt-ergo": { "total": 18, "valid": 2, "unknown": 16, - "rank": 15 }, + "rank": 16 }, "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 21, "valid": 5, "unknown": 16, - "rank": 15 } }, - "wp:functions": { "h": { "h_assign": { "qed": { "total": 2, "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "h_post": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "rank": 16 } }, + "wp:functions": { "h": { "h_assigns": { "qed": { "total": 2, "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "h_ensures": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 3, "valid": 2, "unknown": 1 } } }, - "main": { "main_pre_qed_ok_18": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "main_pre_qed_ok_17": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "main_pre_qed_ok_16": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "main_pre_qed_ok_15": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "main_pre_qed_ok_14": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "main_pre_qed_ok_13": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "main_pre_qed_ok_12": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "main_pre_qed_ok_11": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "main_pre_qed_ok_10": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "main_pre_qed_ok_9": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "main_pre_qed_ok_8": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "main_pre_qed_ok_7": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "main_pre_qed_ok_6": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "main_pre_qed_ok_5": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "main_pre_qed_ok_4": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "main_pre_qed_ok_3": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 15 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 15 } }, - "main_pre_qed_ok_2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 15 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 15 } }, - "main_pre_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "main": { "main_requires_qed_ok_18": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "main_requires_qed_ok_17": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "main_requires_qed_ok_16": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "main_requires_qed_ok_15": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "main_requires_qed_ok_14": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "main_requires_qed_ok_13": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "main_requires_qed_ok_12": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "main_requires_qed_ok_11": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "main_requires_qed_ok_10": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "main_requires_qed_ok_9": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "main_requires_qed_ok_8": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "main_requires_qed_ok_7": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "main_requires_qed_ok_6": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "main_requires_qed_ok_5": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "main_requires_qed_ok_4": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "main_requires_qed_ok_3": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 16 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 16 } }, + "main_requires_qed_ok_2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 16 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 16 } }, + "main_requires_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 17, "valid": 2, "unknown": 15, - "rank": 15 }, + "rank": 16 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 18, "valid": 3, "unknown": 15, - "rank": 15 } } } } } + "rank": 16 } } } } } diff --git a/src/plugins/wp/tests/wp_acsl/looplabels.i.0.report.json b/src/plugins/wp/tests/wp_acsl/looplabels.i.0.report.json index 8f3eb9da0a166c92a08a1298fa6d7848805ab18c..f0d59fc2862ebf81510504550ab40baa6a97d258 100644 --- a/src/plugins/wp/tests/wp_acsl/looplabels.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/looplabels.i.0.report.json @@ -1,38 +1,39 @@ { "wp:global": { "alt-ergo": { "total": 5, "valid": 5, "rank": 37 }, "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 8, "valid": 8, "rank": 37 } }, - "wp:functions": { "copy": { "copy_loop_inv_2": { "alt-ergo": { "total": 2, - "valid": 2, - "rank": 37 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 37 } }, - "copy_loop_inv": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 5 } }, - "copy_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "copy_loop_assign": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 22 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 22 } }, - "copy_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 5 } }, + "wp:functions": { "copy": { "copy_loop_invariant_2": { "alt-ergo": + { "total": 2, + "valid": 2, + "rank": 37 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 37 } }, + "copy_loop_invariant": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 5 } }, + "copy_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "copy_loop_assigns": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 22 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 22 } }, + "copy_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 5, "valid": 5, "rank": 37 }, diff --git a/src/plugins/wp/tests/wp_acsl/null.c.0.report.json b/src/plugins/wp/tests/wp_acsl/null.c.0.report.json index 0a50deb53ababb68938d44c46fc84e8d7365844a..79fbcb44621bbe66323dc1c13c9b7b044015f84a 100644 --- a/src/plugins/wp/tests/wp_acsl/null.c.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/null.c.0.report.json @@ -21,11 +21,12 @@ "wp:main": { "total": 2, "valid": 2, "rank": 1 } } } }, - "wp:functions": { "null_is_zero": { "null_is_zero_post": { "qed": { "total": 1, + "wp:functions": { "null_is_zero": { "null_is_zero_ensures": { "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_acsl/oracle/bitwise2.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/bitwise2.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..93a098b82182b131c38a3fba3754d8b758c02d10 --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle/bitwise2.res.oracle @@ -0,0 +1,45 @@ +# frama-c -wp [...] +[kernel] Parsing tests/wp_acsl/bitwise2.i (no preprocessing) +[wp] Running WP plugin... +[wp] Loading driver 'share/wp.driver' +[wp] Warning: Missing RTE guards +------------------------------------------------------------ + Function job1 +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_acsl/bitwise2.i, line 2) in 'job1': +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function job1bis +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_acsl/bitwise2.i, line 7) in 'job1bis': +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function job2 +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_acsl/bitwise2.i, line 12) in 'job2': +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function job3 +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_acsl/bitwise2.i, line 17) in 'job3': +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function job4 +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_acsl/bitwise2.i, line 22) in 'job4': +Prove: true. + +------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_acsl/oracle/init_value.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/init_value.0.res.oracle index ad4d9f1ea971d2c837da496bee9cee9a1fa814ba..bcd9a305a139c01b26fa11ccc56af7dbdfd3c080 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/init_value.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/init_value.0.res.oracle @@ -1,47 +1,386 @@ -# frama-c -wp [...] +# frama-c -wp -wp-no-let [...] [kernel] Parsing tests/wp_acsl/init_value.i (no preprocessing) [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards +------------------------------------------------------------ + Function fa1 +------------------------------------------------------------ + +Goal Post-condition 'qed_ok' in 'fa1': +Let x = ta1_0[4]. +Let x_1 = ta1_0[0]. +Let x_2 = ta1_0[1]. +Let x_3 = ta1_0[3]. +Assume { + Type: is_sint32(x_1) /\ is_sint32(x_2) /\ is_sint32(x_3) /\ is_sint32(x). + (* Initializer *) + Init: forall i : Z. ((0 <= i) -> ((i <= 1) -> (ta1_0[i] = 0))). + (* Initializer *) + Init: ta1_0[2] = 1. + (* Initializer *) + Init: x = 1. + (* Initializer *) + Init: forall i : Z. ((3 <= i) -> ((i <= 3) -> (ta1_0[i] = 0))). +} +Prove: (x_2 = x_1) /\ (x_3 = x_2). + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fa1': +Let x = ta1_0[4]. +Assume { + Type: is_sint32(ta1_0[0]) /\ is_sint32(ta1_0[1]) /\ is_sint32(ta1_0[3]) /\ + is_sint32(x). + (* Initializer *) + Init: forall i : Z. ((0 <= i) -> ((i <= 1) -> (ta1_0[i] = 0))). + (* Initializer *) + Init: ta1_0[2] = 1. + (* Initializer *) + Init: x = 1. + (* Initializer *) + Init: forall i : Z. ((3 <= i) -> ((i <= 3) -> (ta1_0[i] = 0))). +} +Prove: x = 0. + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fa1': +Let x = ta1_0[4]. +Let x_1 = ta1_0[3]. +Assume { + Type: is_sint32(ta1_0[0]) /\ is_sint32(ta1_0[1]) /\ is_sint32(x_1) /\ + is_sint32(x). + (* Initializer *) + Init: forall i : Z. ((0 <= i) -> ((i <= 1) -> (ta1_0[i] = 0))). + (* Initializer *) + Init: ta1_0[2] = 1. + (* Initializer *) + Init: x = 1. + (* Initializer *) + Init: forall i : Z. ((3 <= i) -> ((i <= 3) -> (ta1_0[i] = 0))). +} +Prove: x_1 = 1. + +------------------------------------------------------------ +------------------------------------------------------------ + Function fa2 +------------------------------------------------------------ + +Goal Post-condition 'qed_ok' in 'fa2': +Let x = ta2_0[0]. +Let x_1 = ta2_0[1]. +Let x_2 = ta2_0[4]. +Assume { + Type: is_sint32(x) /\ is_sint32(x_1) /\ is_sint32(x_2). + (* Initializer *) + Init: forall i : Z. ((0 <= i) -> ((i <= 1) -> (ta2_0[i] = 0))). + (* Initializer *) + Init: forall i : Z. ((2 <= i) -> ((i <= 3) -> (ta2_0[i] = 1))). + (* Initializer *) + Init: forall i : Z. ((4 <= i) -> ((i <= 4) -> (ta2_0[i] = 0))). +} +Prove: (x_1 = x) /\ (x_2 = x_1). + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fa2': +Let x = ta2_0[4]. +Assume { + Type: is_sint32(ta2_0[0]) /\ is_sint32(ta2_0[1]) /\ is_sint32(x). + (* Initializer *) + Init: forall i : Z. ((0 <= i) -> ((i <= 1) -> (ta2_0[i] = 0))). + (* Initializer *) + Init: forall i : Z. ((2 <= i) -> ((i <= 3) -> (ta2_0[i] = 1))). + (* Initializer *) + Init: forall i : Z. ((4 <= i) -> ((i <= 4) -> (ta2_0[i] = 0))). +} +Prove: x = 1. + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fa2': +Let x = ta2_0[1]. +Assume { + Type: is_sint32(ta2_0[0]) /\ is_sint32(x) /\ is_sint32(ta2_0[4]). + (* Initializer *) + Init: forall i : Z. ((0 <= i) -> ((i <= 1) -> (ta2_0[i] = 0))). + (* Initializer *) + Init: forall i : Z. ((2 <= i) -> ((i <= 3) -> (ta2_0[i] = 1))). + (* Initializer *) + Init: forall i : Z. ((4 <= i) -> ((i <= 4) -> (ta2_0[i] = 0))). +} +Prove: x = 1. + +------------------------------------------------------------ +------------------------------------------------------------ + Function fa3 +------------------------------------------------------------ + +Goal Post-condition 'qed_ok' in 'fa3': +Let x = ta1_0[4]. +Let x_1 = ta1_0[2]. +Let x_2 = ta3_0[0]. +Let x_3 = ta3_0[2]. +Assume { + Type: is_sint32(x_1) /\ is_sint32(x) /\ is_sint32(x_2) /\ is_sint32(x_3). + (* Initializer *) + Init: forall i : Z. ((i <= 0) -> ((0 <= i) -> (ta3_0[i] = 0))). + (* Initializer *) + Init: ta3_0[1] = 1. + (* Initializer *) + Init: ta3_0[3] = 1. + (* Initializer *) + Init: forall i : Z. ((2 <= i) -> ((i <= 2) -> (ta3_0[i] = 0))). + (* Initializer *) + Init: forall i : Z. ((4 <= i) -> ((i <= 4) -> (ta3_0[i] = 0))). + (* Initializer *) + Init: forall i : Z. ((0 <= i) -> ((i <= 1) -> (ta1_0[i] = 0))). + (* Initializer *) + Init: x_1 = 1. + (* Initializer *) + Init: x = 1. + (* Initializer *) + Init: forall i : Z. ((3 <= i) -> ((i <= 3) -> (ta1_0[i] = 0))). +} +Prove: (x = x_1) /\ (x_3 = x_2). + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fa3': +Let x = ta3_0[0]. +Assume { + Type: is_sint32(x) /\ is_sint32(ta3_0[2]). + (* Initializer *) + Init: forall i : Z. ((i <= 0) -> ((0 <= i) -> (ta3_0[i] = 0))). + (* Initializer *) + Init: ta3_0[1] = 1. + (* Initializer *) + Init: ta3_0[3] = 1. + (* Initializer *) + Init: forall i : Z. ((2 <= i) -> ((i <= 2) -> (ta3_0[i] = 0))). + (* Initializer *) + Init: forall i : Z. ((4 <= i) -> ((i <= 4) -> (ta3_0[i] = 0))). +} +Prove: x = 1. + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fa3': +Let x = ta3_0[2]. +Assume { + Type: is_sint32(ta3_0[0]) /\ is_sint32(x). + (* Initializer *) + Init: forall i : Z. ((i <= 0) -> ((0 <= i) -> (ta3_0[i] = 0))). + (* Initializer *) + Init: ta3_0[1] = 1. + (* Initializer *) + Init: ta3_0[3] = 1. + (* Initializer *) + Init: forall i : Z. ((2 <= i) -> ((i <= 2) -> (ta3_0[i] = 0))). + (* Initializer *) + Init: forall i : Z. ((4 <= i) -> ((i <= 4) -> (ta3_0[i] = 0))). +} +Prove: x = 1. + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fa3': +Let x = ta2_0[4]. +Assume { + Type: is_sint32(x). + (* Initializer *) + Init: forall i : Z. ((0 <= i) -> ((i <= 1) -> (ta2_0[i] = 0))). + (* Initializer *) + Init: forall i : Z. ((2 <= i) -> ((i <= 3) -> (ta2_0[i] = 1))). + (* Initializer *) + Init: forall i : Z. ((4 <= i) -> ((i <= 4) -> (ta2_0[i] = 0))). +} +Prove: x = 1. + +------------------------------------------------------------ +------------------------------------------------------------ + Function fs1 +------------------------------------------------------------ + +Goal Post-condition 'qed_ok' in 'fs1': +Let a = ts1_0[2]. +Let x = a.F5_c. +Let x_1 = a.F5_b. +Let x_2 = a.F5_a. +Let a_1 = ts1_0[0]. +Let a_2 = ts1_0[1]. +Let a_3 = ts1_0[3]. +Assume { + Type: IsS5(a_1) /\ IsS5(a_2) /\ IsS5(a_3) /\ is_sint32(a_1.F5_a) /\ + is_sint32(x_2) /\ is_sint32(x_1) /\ is_sint32(x). + (* Initializer *) + Init: forall i : Z. let a_4 = ts1_0[i] in ((0 <= i) -> ((i <= 1) -> + (((a_4.F5_a) = 0) /\ ((a_4.F5_b) = 0) /\ ((a_4.F5_c) = 0)))). + (* Initializer *) + Init: x_2 = 1. + (* Initializer *) + Init: x_1 = 1. + (* Initializer *) + Init: x = 0. + (* Initializer *) + Init: forall i : Z. let a_4 = ts1_0[i] in ((3 <= i) -> ((i <= 3) -> + (((a_4.F5_a) = 0) /\ ((a_4.F5_b) = 0) /\ ((a_4.F5_c) = 0)))). +} +Prove: (x_1 = x_2) /\ EqS5(a_1, a_2) /\ EqS5(a_2, a_3). + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fs1': +Let a = ts1_0[2]. +Let x = a.F5_c. +Let x_1 = a.F5_b. +Let x_2 = a.F5_a. +Let a_1 = ts1_0[0]. +Assume { + Type: IsS5(a_1) /\ IsS5(ts1_0[1]) /\ IsS5(ts1_0[3]) /\ + is_sint32(a_1.F5_a) /\ is_sint32(x_2) /\ is_sint32(x_1) /\ + is_sint32(x). + (* Initializer *) + Init: forall i : Z. let a_2 = ts1_0[i] in ((0 <= i) -> ((i <= 1) -> + (((a_2.F5_a) = 0) /\ ((a_2.F5_b) = 0) /\ ((a_2.F5_c) = 0)))). + (* Initializer *) + Init: x_2 = 1. + (* Initializer *) + Init: x_1 = 1. + (* Initializer *) + Init: x = 0. + (* Initializer *) + Init: forall i : Z. let a_2 = ts1_0[i] in ((3 <= i) -> ((i <= 3) -> + (((a_2.F5_a) = 0) /\ ((a_2.F5_b) = 0) /\ ((a_2.F5_c) = 0)))). +} +Prove: x = 1. + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fs1': +Let a = ts1_0[2]. +Let x = a.F5_c. +Let x_1 = a.F5_b. +Let x_2 = a.F5_a. +Let a_1 = ts1_0[0]. +Let x_3 = a_1.F5_a. +Assume { + Type: IsS5(a_1) /\ IsS5(ts1_0[1]) /\ IsS5(ts1_0[3]) /\ is_sint32(x_3) /\ + is_sint32(x_2) /\ is_sint32(x_1) /\ is_sint32(x). + (* Initializer *) + Init: forall i : Z. let a_2 = ts1_0[i] in ((0 <= i) -> ((i <= 1) -> + (((a_2.F5_a) = 0) /\ ((a_2.F5_b) = 0) /\ ((a_2.F5_c) = 0)))). + (* Initializer *) + Init: x_2 = 1. + (* Initializer *) + Init: x_1 = 1. + (* Initializer *) + Init: x = 0. + (* Initializer *) + Init: forall i : Z. let a_2 = ts1_0[i] in ((3 <= i) -> ((i <= 3) -> + (((a_2.F5_a) = 0) /\ ((a_2.F5_b) = 0) /\ ((a_2.F5_c) = 0)))). +} +Prove: x_3 = 1. + +------------------------------------------------------------ ------------------------------------------------------------ Function main ------------------------------------------------------------ Goal Pre-condition 'qed_ok,Struct_Simple_a' in 'main': -Prove: true. +Let x = s.F1_S_b. +Let x_1 = s.F1_S_a. +Assume { + Type: is_sint32(x_1) /\ is_sint32(x). + (* Initializer *) + Init: x_1 = 2. + (* Initializer *) + Init: x = 0. +} +Prove: x_1 = 2. ------------------------------------------------------------ Goal Pre-condition 'qed_ok,Struct_Simple_b' in 'main': -Prove: true. +Let x = s.F1_S_b. +Let x_1 = s.F1_S_a. +Assume { + Type: is_sint32(x_1) /\ is_sint32(x). + (* Initializer *) + Init: x_1 = 2. + (* Initializer *) + Init: x = 0. +} +Prove: x = 0. ------------------------------------------------------------ Goal Pre-condition 'qed_ok,Simple_Array_0' in 'main': -Prove: true. +Let x = t[0]. +Assume { + Type: is_sint32(x) /\ is_sint32(t[1]). + (* Initializer *) + Init: x = 1. + (* Initializer *) + Init: forall i : Z. ((0 < i) -> ((i <= 1) -> (t[i] = 0))). +} +Prove: x = 1. ------------------------------------------------------------ Goal Pre-condition 'qed_ok,Simple_Array_1' in 'main': -Let x = t[1]. +Let x = t[0]. +Let x_1 = t[1]. Assume { - Type: is_sint32(x). + Type: is_sint32(x) /\ is_sint32(x_1). (* Initializer *) - Init: t[0] = 1. + Init: x = 1. (* Initializer *) Init: forall i : Z. ((0 < i) -> ((i <= 1) -> (t[i] = 0))). } -Prove: x = 0. +Prove: x_1 = 0. ------------------------------------------------------------ Goal Pre-condition 'qed_ok,With_Array_Struct_5' in 'main': -Prove: true. +Let a = st_0.F2_St_tab. +Let a_1 = a[3]. +Let a_2 = a[5]. +Assume { + Type: is_sint32(a_1) /\ is_sint32(a_2). + (* Initializer *) + Init: a[0] = 1. + (* Initializer *) + Init: a[1] = 2. + (* Initializer *) + Init: a[2] = 3. + (* Initializer *) + Init: a_1 = 4. + (* Initializer *) + Init: forall i : Z. ((4 <= i) -> ((i <= 9) -> (a[i] = 0))). +} +Prove: a_2 = 0. ------------------------------------------------------------ Goal Pre-condition 'qed_ok,With_Array_Struct_3' in 'main': -Prove: true. +Let a = st_0.F2_St_tab. +Let a_1 = a[3]. +Assume { + Type: is_sint32(a_1) /\ is_sint32(a[5]). + (* Initializer *) + Init: a[0] = 1. + (* Initializer *) + Init: a[1] = 2. + (* Initializer *) + Init: a[2] = 3. + (* Initializer *) + Init: a_1 = 4. + (* Initializer *) + Init: forall i : Z. ((4 <= i) -> ((i <= 9) -> (a[i] = 0))). +} +Prove: a_1 = 4. ------------------------------------------------------------ @@ -76,27 +415,96 @@ Prove: EqS3_Sc(sc1_0, sc0_0). ------------------------------------------------------------ Goal Pre-condition 'qed_ok,Sc_t' in 'main': -Prove: true. +Let x = sc2_0.F3_Sc_c. +Let a = sc2_0.F3_Sc_b. +Let a_1 = a[2]. +Assume { + Type: is_sint32(x) /\ is_sint32(a_1). + (* Initializer *) + Init: (sc2_0.F3_Sc_a) = 1. + (* Initializer *) + Init: a[0] = 2. + (* Initializer *) + Init: a[1] = 3. + (* Initializer *) + Init: forall i : Z. ((2 <= i) -> ((i <= 2) -> (a[i] = 0))). + (* Initializer *) + Init: x = 4. +} +Prove: a_1 = 0. ------------------------------------------------------------ Goal Pre-condition 'qed_ok,Sc_t' in 'main': -Prove: true. +Let x = sc3_0.F3_Sc_c. +Let a = sc3_0.F3_Sc_b. +Let a_1 = a[2]. +Assume { + Type: is_sint32(x) /\ is_sint32(a_1). + (* Initializer *) + Init: (sc3_0.F3_Sc_a) = 1. + (* Initializer *) + Init: a[0] = 2. + (* Initializer *) + Init: a[1] = 3. + (* Initializer *) + Init: a_1 = 4. + (* Initializer *) + Init: x = 0. +} +Prove: a_1 = 4. ------------------------------------------------------------ Goal Pre-condition 'qed_ok,Sc_c_2' in 'main': -Prove: true. +Let x = sc2_0.F3_Sc_c. +Let a = sc2_0.F3_Sc_b. +Assume { + Type: is_sint32(x) /\ is_sint32(a[2]). + (* Initializer *) + Init: (sc2_0.F3_Sc_a) = 1. + (* Initializer *) + Init: a[0] = 2. + (* Initializer *) + Init: a[1] = 3. + (* Initializer *) + Init: forall i : Z. ((2 <= i) -> ((i <= 2) -> (a[i] = 0))). + (* Initializer *) + Init: x = 4. +} +Prove: x = 4. ------------------------------------------------------------ Goal Pre-condition 'qed_ok,Sc_c_3' in 'main': -Prove: true. +Let x = sc3_0.F3_Sc_c. +Let a = sc3_0.F3_Sc_b. +Let a_1 = a[2]. +Assume { + Type: is_sint32(x) /\ is_sint32(a_1). + (* Initializer *) + Init: (sc3_0.F3_Sc_a) = 1. + (* Initializer *) + Init: a[0] = 2. + (* Initializer *) + Init: a[1] = 3. + (* Initializer *) + Init: a_1 = 4. + (* Initializer *) + Init: x = 0. +} +Prove: x = 0. ------------------------------------------------------------ Goal Pre-condition 'qed_ok,Tab_no_init' in 'main': -Prove: true. +Let x = tab_0[5]. +Assume { + Type: is_uint8(x). + (* Initializer *) + Init: forall i : Z. ((0 <= i) -> ((i <= 31) -> (tab_0[i] = 0))). +} +Prove: x = 0. ------------------------------------------------------------ @@ -111,3 +519,117 @@ Assume { Prove: tab_0[i] <= 255. ------------------------------------------------------------ + +Goal Pre-condition 'qed_ok' in 'main': +Let a = sq0_0.F3_Sc_b. +Let a_1 = a[1]. +Assume { + Type: is_sint32(a_1) /\ is_sint32(a[2]). + (* Initializer *) + Init: (sq0_0.F3_Sc_a) = 2. + (* Initializer *) + Init: forall i : Z. ((0 <= i) -> ((i <= 1) -> (a[i] = 2))). + (* Initializer *) + Init: forall i : Z. ((2 <= i) -> ((i <= 2) -> (a[i] = 0))). + (* Initializer *) + Init: (sq0_0.F3_Sc_c) = 2. +} +Prove: a_1 = 2. + +------------------------------------------------------------ + +Goal Pre-condition 'qed_ok' in 'main': +Let a = sq0_0.F3_Sc_b. +Let a_1 = a[2]. +Assume { + Type: is_sint32(a[1]) /\ is_sint32(a_1). + (* Initializer *) + Init: (sq0_0.F3_Sc_a) = 2. + (* Initializer *) + Init: forall i : Z. ((0 <= i) -> ((i <= 1) -> (a[i] = 2))). + (* Initializer *) + Init: forall i : Z. ((2 <= i) -> ((i <= 2) -> (a[i] = 0))). + (* Initializer *) + Init: (sq0_0.F3_Sc_c) = 2. +} +Prove: a_1 = 0. + +------------------------------------------------------------ + +Goal Pre-condition 'qed_ok' in 'main': +Assume { + Type: is_sint32(t1_0[4]). + (* Goal *) + When: (0 <= i) /\ (i <= 3). + (* Initializer *) + Init: forall i_1 : Z. ((0 <= i_1) -> ((i_1 <= 3) -> (t1_0[i_1] = 1))). + (* Initializer *) + Init: forall i_1 : Z. ((5 <= i_1) -> ((i_1 <= 6) -> (t1_0[i_1] = 2))). + (* Initializer *) + Init: forall i_1 : Z. ((4 <= i_1) -> ((i_1 <= 4) -> (t1_0[i_1] = 0))). + (* Initializer *) + Init: forall i_1 : Z. ((7 <= i_1) -> ((i_1 <= 9) -> (t1_0[i_1] = 0))). +} +Prove: t1_0[i] = 1. + +------------------------------------------------------------ + +Goal Pre-condition 'qed_ok,todo' in 'main': +Let x = t1_0[4]. +Assume { + Type: is_sint32(x). + (* Initializer *) + Init: forall i : Z. ((0 <= i) -> ((i <= 3) -> (t1_0[i] = 1))). + (* Initializer *) + Init: forall i : Z. ((5 <= i) -> ((i <= 6) -> (t1_0[i] = 2))). + (* Initializer *) + Init: forall i : Z. ((4 <= i) -> ((i <= 4) -> (t1_0[i] = 0))). + (* Initializer *) + Init: forall i : Z. ((7 <= i) -> ((i <= 9) -> (t1_0[i] = 0))). +} +Prove: x = 0. + +------------------------------------------------------------ + +Goal Pre-condition 'qed_ok' in 'main': +Assume { + Type: is_sint32(t1_0[4]). + (* Goal *) + When: (6 <= i) /\ (i <= 6). + (* Initializer *) + Init: forall i_1 : Z. ((0 <= i_1) -> ((i_1 <= 3) -> (t1_0[i_1] = 1))). + (* Initializer *) + Init: forall i_1 : Z. ((5 <= i_1) -> ((i_1 <= 6) -> (t1_0[i_1] = 2))). + (* Initializer *) + Init: forall i_1 : Z. ((4 <= i_1) -> ((i_1 <= 4) -> (t1_0[i_1] = 0))). + (* Initializer *) + Init: forall i_1 : Z. ((7 <= i_1) -> ((i_1 <= 9) -> (t1_0[i_1] = 0))). +} +Prove: t1_0[i] = 2. + +------------------------------------------------------------ + +Goal Pre-condition 'qed_ok' in 'main': +Assume { + Type: is_sint32(t1_0[4]). + (* Goal *) + When: (7 <= i) /\ (i <= 9). + (* Initializer *) + Init: forall i_1 : Z. ((0 <= i_1) -> ((i_1 <= 3) -> (t1_0[i_1] = 1))). + (* Initializer *) + Init: forall i_1 : Z. ((5 <= i_1) -> ((i_1 <= 6) -> (t1_0[i_1] = 2))). + (* Initializer *) + Init: forall i_1 : Z. ((4 <= i_1) -> ((i_1 <= 4) -> (t1_0[i_1] = 0))). + (* Initializer *) + Init: forall i_1 : Z. ((7 <= i_1) -> ((i_1 <= 9) -> (t1_0[i_1] = 0))). +} +Prove: t1_0[i] = 0. + +------------------------------------------------------------ + +Goal Pre-condition 'qed_ok,direct_init_union' in 'main': +Let x = u.F4_U_a. +Assume { Type: is_sint16(x). (* Initializer *) Init: x = (-1). } +Prove: x = (-1). + +------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_acsl/oracle/init_value.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/init_value.1.res.oracle index a95fc1f3809f0317d6310d97e8de7e9b290253c0..125cf6eebc17d9a97091d3c08a58f882d44e2219 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/init_value.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/init_value.1.res.oracle @@ -1,17 +1,155 @@ -# frama-c -wp [...] +# frama-c -wp -wp-no-let [...] [kernel] Parsing tests/wp_acsl/init_value.i (no preprocessing) [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards +------------------------------------------------------------ + Function fa1 +------------------------------------------------------------ + +Goal Post-condition 'qed_ok' in 'fa1': +Let x = ta1_0[0]. +Let x_1 = ta1_0[1]. +Let x_2 = ta1_0[3]. +Assume { + Type: is_sint32(x) /\ is_sint32(x_1) /\ is_sint32(x_2) /\ + is_sint32(ta1_0[4]). +} +Prove: (x_1 = x) /\ (x_2 = x_1). + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fa1': +Let x = ta1_0[4]. +Assume { + Type: is_sint32(ta1_0[0]) /\ is_sint32(ta1_0[1]) /\ is_sint32(ta1_0[3]) /\ + is_sint32(x). +} +Prove: x = 0. + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fa1': +Let x = ta1_0[3]. +Assume { + Type: is_sint32(ta1_0[0]) /\ is_sint32(ta1_0[1]) /\ is_sint32(x) /\ + is_sint32(ta1_0[4]). +} +Prove: x = 1. + +------------------------------------------------------------ +------------------------------------------------------------ + Function fa2 +------------------------------------------------------------ + +Goal Post-condition 'qed_ok' in 'fa2': +Let x = ta2_0[0]. +Let x_1 = ta2_0[1]. +Let x_2 = ta2_0[4]. +Assume { Type: is_sint32(x) /\ is_sint32(x_1) /\ is_sint32(x_2). } +Prove: (x_1 = x) /\ (x_2 = x_1). + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fa2': +Let x = ta2_0[4]. +Assume { Type: is_sint32(ta2_0[0]) /\ is_sint32(ta2_0[1]) /\ is_sint32(x). } +Prove: x = 1. + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fa2': +Let x = ta2_0[1]. +Assume { Type: is_sint32(ta2_0[0]) /\ is_sint32(x) /\ is_sint32(ta2_0[4]). } +Prove: x = 1. + +------------------------------------------------------------ +------------------------------------------------------------ + Function fa3 +------------------------------------------------------------ + +Goal Post-condition 'qed_ok' in 'fa3': +Let x = ta1_0[2]. +Let x_1 = ta1_0[4]. +Let x_2 = ta3_0[0]. +Let x_3 = ta3_0[2]. +Assume { + Type: is_sint32(x) /\ is_sint32(x_1) /\ is_sint32(x_2) /\ is_sint32(x_3). +} +Prove: (x_1 = x) /\ (x_3 = x_2). + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fa3': +Let x = ta3_0[0]. Assume { Type: is_sint32(x) /\ is_sint32(ta3_0[2]). } +Prove: x = 1. + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fa3': +Let x = ta3_0[2]. Assume { Type: is_sint32(ta3_0[0]) /\ is_sint32(x). } +Prove: x = 1. + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fa3': +Let x = ta2_0[4]. Assume { Type: is_sint32(x). } +Prove: x = 1. + +------------------------------------------------------------ +------------------------------------------------------------ + Function fs1 +------------------------------------------------------------ + +Goal Post-condition 'qed_ok' in 'fs1': +Let a = ts1_0[0]. +Let a_1 = ts1_0[1]. +Let a_2 = ts1_0[3]. +Let a_3 = ts1_0[2]. +Let x = a_3.F5_a. +Let x_1 = a_3.F5_b. +Assume { + Type: IsS5(a) /\ IsS5(a_1) /\ IsS5(a_2) /\ is_sint32(a.F5_a) /\ + is_sint32(x) /\ is_sint32(x_1) /\ is_sint32(a_3.F5_c). +} +Prove: (x_1 = x) /\ EqS5(a, a_1) /\ EqS5(a_1, a_2). + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fs1': +Let a = ts1_0[0]. +Let a_1 = ts1_0[2]. +Let x = a_1.F5_c. +Assume { + Type: IsS5(a) /\ IsS5(ts1_0[1]) /\ IsS5(ts1_0[3]) /\ is_sint32(a.F5_a) /\ + is_sint32(a_1.F5_a) /\ is_sint32(a_1.F5_b) /\ is_sint32(x). +} +Prove: x = 1. + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fs1': +Let a = ts1_0[0]. +Let x = a.F5_a. +Let a_1 = ts1_0[2]. +Assume { + Type: IsS5(a) /\ IsS5(ts1_0[1]) /\ IsS5(ts1_0[3]) /\ is_sint32(x) /\ + is_sint32(a_1.F5_a) /\ is_sint32(a_1.F5_b) /\ is_sint32(a_1.F5_c). +} +Prove: x = 1. + +------------------------------------------------------------ ------------------------------------------------------------ Function main_ko ------------------------------------------------------------ Goal Pre-condition 'qed_ko,Sc_eq_ko' in 'main_ko': +Let x = sc2_0.F3_Sc_c. Let a = sc2_0.F3_Sc_b. Let a_1 = sc3_0.F3_Sc_b. +Let a_2 = a_1[2]. Assume { - Type: IsS3_Sc(sc2_0) /\ IsS3_Sc(sc3_0). + Type: IsS3_Sc(sc2_0) /\ IsS3_Sc(sc3_0) /\ is_sint32(x) /\ is_sint32(a_2). (* Initializer *) Init: (sc3_0.F3_Sc_a) = 1. (* Initializer *) @@ -19,7 +157,7 @@ Assume { (* Initializer *) Init: a_1[1] = 3. (* Initializer *) - Init: a_1[2] = 4. + Init: a_2 = 4. (* Initializer *) Init: (sc3_0.F3_Sc_c) = 0. (* Initializer *) @@ -31,29 +169,80 @@ Assume { (* Initializer *) Init: forall i : Z. ((2 <= i) -> ((i <= 2) -> (a[i] = 0))). (* Initializer *) - Init: (sc2_0.F3_Sc_c) = 4. + Init: x = 4. } Prove: EqS3_Sc(sc2_0, sc3_0). ------------------------------------------------------------ Goal Pre-condition 'qed_ko,Sc_t' in 'main_ko': -Prove: false. +Let a = sc3_0.F3_Sc_b. +Let a_1 = a[2]. +Assume { + Type: IsS3_Sc(sc3_0) /\ is_sint32(a_1). + (* Initializer *) + Init: (sc3_0.F3_Sc_a) = 1. + (* Initializer *) + Init: a[0] = 2. + (* Initializer *) + Init: a[1] = 3. + (* Initializer *) + Init: a_1 = 4. + (* Initializer *) + Init: (sc3_0.F3_Sc_c) = 0. +} +Prove: a_1 = 3. ------------------------------------------------------------ Goal Pre-condition 'qed_ko,Sc_c_2' in 'main_ko': -Prove: false. +Let x = sc2_0.F3_Sc_c. +Let a = sc2_0.F3_Sc_b. +Assume { + Type: IsS3_Sc(sc2_0) /\ is_sint32(x). + (* Initializer *) + Init: (sc2_0.F3_Sc_a) = 1. + (* Initializer *) + Init: a[0] = 2. + (* Initializer *) + Init: a[1] = 3. + (* Initializer *) + Init: forall i : Z. ((2 <= i) -> ((i <= 2) -> (a[i] = 0))). + (* Initializer *) + Init: x = 4. +} +Prove: x = 2. ------------------------------------------------------------ Goal Pre-condition 'qed_ko,Tab_no_init' in 'main_ko': -Prove: false. +Let x = tab_0[5]. +Assume { + Type: is_uint8(x). + (* Initializer *) + Init: forall i : Z. ((0 <= i) -> ((i <= 31) -> (tab_0[i] = 0))). +} +Prove: x = 1. ------------------------------------------------------------ Goal Pre-condition 'qed_ko,With_Array_Struct_3' in 'main_ko': -Prove: false. +Let a = st_0.F2_St_tab. +Let a_1 = a[3]. +Assume { + Type: is_sint32(a_1). + (* Initializer *) + Init: a[0] = 1. + (* Initializer *) + Init: a[1] = 2. + (* Initializer *) + Init: a[2] = 3. + (* Initializer *) + Init: a_1 = 4. + (* Initializer *) + Init: forall i : Z. ((4 <= i) -> ((i <= 9) -> (a[i] = 0))). +} +Prove: a_1 = 3. ------------------------------------------------------------ @@ -69,3 +258,42 @@ Assume { Prove: x = 1. ------------------------------------------------------------ + +Goal Pre-condition 'qed_ko,T1_6' in 'main_ko': +Let x = t1_0[6]. +Assume { + Type: is_sint32(x). + (* Initializer *) + Init: forall i : Z. ((0 <= i) -> ((i <= 3) -> (t1_0[i] = 1))). + (* Initializer *) + Init: forall i : Z. ((5 <= i) -> ((i <= 6) -> (t1_0[i] = 2))). + (* Initializer *) + Init: forall i : Z. ((4 <= i) -> ((i <= 4) -> (t1_0[i] = 0))). + (* Initializer *) + Init: forall i : Z. ((7 <= i) -> ((i <= 9) -> (t1_0[i] = 0))). +} +Prove: x = 0. + +------------------------------------------------------------ + +Goal Pre-condition 'qed_ko,indirect_init_union_b' in 'main_ko': +Let x = u.F4_U_b. +Assume { + Type: is_sint64(x) /\ is_sint16((u.F4_U_t)[0]). + (* Initializer *) + Init: (u.F4_U_a) = (-1). +} +Prove: x = 0. + +------------------------------------------------------------ + +Goal Pre-condition 'qed_ko,indirect_init_union_t' in 'main_ko': +Let a = (u.F4_U_t)[0]. +Assume { + Type: is_sint64(u.F4_U_b) /\ is_sint16(a). + (* Initializer *) + Init: (u.F4_U_a) = (-1). +} +Prove: a = 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 07d06584686e232c0f532a6753c680eb5cfb9c90..e9dcd2c5a7a2cb592854cd7ce39ab81f151403c8 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,7 +25,7 @@ [wp] [Qed] Goal typed_lemma_ucL4_qed_ok : Valid [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_post_qed_ok_nat : 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] Proved goals: 24 / 24 @@ -38,5 +38,5 @@ Lemma 20 1 (1..8) 21 100% ------------------------------------------------------------- Functions WP Alt-Ergo Total Success cast_sgn_usgn 1 - 1 100% -uchar_range - 2 (8..20) 2 100% +uchar_range - 2 (12..24) 2 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/arith.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/arith.1.res.oracle index a08d1132de31a1100db53a8cf6a5a067f2ff2ef5..473a012c3e21722c774d5dde8a1d77be84ef94ee 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/arith.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/arith.1.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Alt-Ergo] Goal typed_cast_sgn_usgn_post_qed_ko_KO : Unknown +[wp] [Alt-Ergo] Goal typed_cast_sgn_usgn_ensures_qed_ko_KO : Unknown [wp] Proved goals: 0 / 1 Alt-Ergo: 0 (unknown: 1) [wp] Report 'tests/wp_acsl/arith.i.1.report.json' diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assign_array.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assign_array.res.oracle index 9f7b8911db6db6d8cd8add3e31df51ff7a2c7384..cb994356b5b0a1d0d6dfab1cf301f3069c5c05f7 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assign_array.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assign_array.res.oracle @@ -4,10 +4,10 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 4 goals scheduled -[wp] [Qed] Goal typed_jobA_assign_exit : Valid -[wp] [Qed] Goal typed_jobA_assign_normal : Valid -[wp] [Qed] Goal typed_jobG_assign_exit : Valid -[wp] [Qed] Goal typed_jobG_assign_normal : Valid +[wp] [Qed] Goal typed_jobA_assigns_exit : Valid +[wp] [Qed] Goal typed_jobA_assigns_normal : Valid +[wp] [Qed] Goal typed_jobG_assigns_exit : Valid +[wp] [Qed] Goal typed_jobG_assigns_normal : Valid [wp] Proved goals: 4 / 4 Qed: 4 [wp] Report 'tests/wp_acsl/assign_array.i.0.report.json' 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 ee214135b6cbf6302dc3b6db7e95dc9f36064b97..898e9cdc2f924828edf032058bd9a72fc90f9ed8 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 @@ -4,22 +4,22 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 9 goals scheduled -[wp] [Qed] Goal typed_job_post_N : Valid -[wp] [Alt-Ergo] Goal typed_job_post_A : Valid -[wp] [Alt-Ergo] Goal typed_job_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_job_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_job_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_job_loop_inv_2_established : Valid -[wp] [Qed] Goal typed_job_loop_assign : Valid -[wp] [Qed] Goal typed_job_assign_part1 : Valid -[wp] [Qed] Goal typed_job_assign_part2 : Valid +[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_established : Valid +[wp] [Alt-Ergo] Goal typed_job_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_job_loop_invariant_2_established : Valid +[wp] [Qed] Goal typed_job_loop_assigns : Valid +[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 [wp] Report 'tests/wp_acsl/assigns_path.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -job 6 3 (16..28) 9 100% +job 6 3 (20..32) 9 100% ------------------------------------------------------------- [wp] Warning: Memory model hypotheses for function 'job': /*@ behavior typed: requires \separated(&p,b+(..)); */ 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 5c7e54e44313cf946824b880f2542ab5a05ed509..c2e202de26b33c5638730e308d0680514e515639 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 @@ -4,31 +4,31 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 17 goals scheduled -[wp] [Qed] Goal typed_call_assigns_all_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_call_assigns_all_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_call_assigns_all_assign_exit_part3 : Valid -[wp] [Qed] Goal typed_call_assigns_all_assign_exit_part4 : Valid -[wp] [Qed] Goal typed_call_assigns_all_assign_exit_part5 : Valid -[wp] [Qed] Goal typed_call_assigns_all_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_call_assigns_all_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_call_assigns_all_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_call_assigns_all_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_call_assigns_all_assign_normal_part5 : Valid -[wp] [Alt-Ergo] Goal typed_call_assigns_all_call_assigns_t1_an_element_pre : Valid -[wp] [Qed] Goal typed_call_assigns_all_call_assigns_t2_bound_pre : Valid -[wp] [Qed] Goal typed_call_assigns_all_call_assigns_t3_inf_bound_pre : Valid -[wp] [Alt-Ergo] Goal typed_call_assigns_all_call_assigns_t4_sup_bound_pre : Valid -[wp] [Alt-Ergo] Goal typed_call_assigns_t1_call_assigns_t1_an_element_pre : Valid -[wp] [Alt-Ergo] Goal typed_call_assigns_t2_call_assigns_t2_bound_pre : Valid -[wp] [Alt-Ergo] Goal typed_call_assigns_t4_call_assigns_t4_sup_bound_pre : Valid +[wp] [Qed] Goal typed_call_assigns_all_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_call_assigns_all_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_call_assigns_all_assigns_exit_part3 : Valid +[wp] [Qed] Goal typed_call_assigns_all_assigns_exit_part4 : Valid +[wp] [Qed] Goal typed_call_assigns_all_assigns_exit_part5 : Valid +[wp] [Qed] Goal typed_call_assigns_all_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_call_assigns_all_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_call_assigns_all_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_call_assigns_all_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_call_assigns_all_assigns_normal_part5 : Valid +[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] [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] Proved goals: 17 / 17 Qed: 12 Alt-Ergo: 5 [wp] Report 'tests/wp_acsl/assigns_range.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -call_assigns_all 12 2 (4..16) 14 100% -call_assigns_t1 - 1 (1..12) 1 100% -call_assigns_t2 - 1 (1..12) 1 100% +call_assigns_all 12 2 (8..20) 14 100% +call_assigns_t1 - 1 (4..16) 1 100% +call_assigns_t2 - 1 (4..16) 1 100% call_assigns_t4 - 1 (4..16) 1 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_range.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_range.1.res.oracle index 84e3f10f0efe53d104098b94a57cf534ff117f4f..73d00d5b60c654dd9afa4677e6010add74322230 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_range.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_range.1.res.oracle @@ -4,12 +4,12 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled -[wp] [Alt-Ergo] Goal typed_call_assigns_t1_assign_exit : Unknown -[wp] [Alt-Ergo] Goal typed_call_assigns_t1_assign_normal : Unknown -[wp] [Alt-Ergo] Goal typed_call_assigns_t2_assign_exit : Unknown -[wp] [Alt-Ergo] Goal typed_call_assigns_t2_assign_normal : Unknown -[wp] [Alt-Ergo] Goal typed_call_assigns_t4_assign_exit : Unknown -[wp] [Alt-Ergo] Goal typed_call_assigns_t4_assign_normal : Unknown +[wp] [Alt-Ergo] Goal typed_call_assigns_t1_assigns_exit : Unknown +[wp] [Alt-Ergo] Goal typed_call_assigns_t1_assigns_normal : Unknown +[wp] [Alt-Ergo] Goal typed_call_assigns_t2_assigns_exit : Unknown +[wp] [Alt-Ergo] Goal typed_call_assigns_t2_assigns_normal : Unknown +[wp] [Alt-Ergo] Goal typed_call_assigns_t4_assigns_exit : Unknown +[wp] [Alt-Ergo] Goal typed_call_assigns_t4_assigns_normal : Unknown [wp] Proved goals: 0 / 6 Alt-Ergo: 0 (unknown: 6) [wp] Report 'tests/wp_acsl/assigns_range.i.1.report.json' diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/axioms.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/axioms.res.oracle index 9f0c0ed6dfd4dc51ec6a27508ac7c19efc112a66..f5638f7fcd190c69e8182ab88bdc7c4b6dcff689 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/axioms.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/axioms.res.oracle @@ -4,16 +4,16 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 10 goals scheduled -[wp] [Alt-Ergo] Goal typed_f_post_P_todo : Unknown -[wp] [Alt-Ergo] Goal typed_f_post_Q : Valid -[wp] [Alt-Ergo] Goal typed_f_loop_inv_Index_preserved : Valid -[wp] [Alt-Ergo] Goal typed_f_loop_inv_Index_established : Valid -[wp] [Alt-Ergo] Goal typed_f_loop_inv_Positive_preserved : Valid -[wp] [Qed] Goal typed_f_loop_inv_Positive_established : Valid -[wp] [Qed] Goal typed_f_loop_assign_part1 : Valid -[wp] [Qed] Goal typed_f_loop_assign_part2 : Valid -[wp] [Alt-Ergo] Goal typed_f_loop_assign_part3 : Valid -[wp] [Alt-Ergo] Goal typed_f_assign : Unknown +[wp] [Alt-Ergo] Goal typed_f_ensures_P_todo : Unknown +[wp] [Alt-Ergo] Goal typed_f_ensures_Q : Valid +[wp] [Alt-Ergo] Goal typed_f_loop_invariant_Index_preserved : Valid +[wp] [Alt-Ergo] Goal typed_f_loop_invariant_Index_established : Valid +[wp] [Alt-Ergo] Goal typed_f_loop_invariant_Positive_preserved : Valid +[wp] [Qed] Goal typed_f_loop_invariant_Positive_established : Valid +[wp] [Qed] Goal typed_f_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_f_loop_assigns_part2 : Valid +[wp] [Alt-Ergo] Goal typed_f_loop_assigns_part3 : Valid +[wp] [Alt-Ergo] Goal typed_f_assigns : Unknown [wp] Proved goals: 8 / 10 Qed: 3 Alt-Ergo: 5 (unknown: 2) diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/base_offset.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/base_offset.res.oracle index 5cca1ab7358a312f7bab570a0cf48b14de209f7d..4db477821a2d5675f28755aca8f3efd79f3afa9b 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/base_offset.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/base_offset.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Qed] Goal typed_f_post : Valid -[wp] [Qed] Goal typed_f_post_2 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_3 : Valid +[wp] [Qed] Goal typed_f_ensures : Valid +[wp] [Qed] Goal typed_f_ensures_2 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_3 : Valid [wp] Proved goals: 3 / 3 Qed: 2 Alt-Ergo: 1 diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/bitwise.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/bitwise.res.oracle index 2fa1eca8458955a096b6d3c49920c29621e3a793..3e2273eac8354bdd6fb8fdb663d0c28f8e47bc6c 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/bitwise.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/bitwise.res.oracle @@ -4,35 +4,35 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 29 goals scheduled -[wp] [Qed] Goal typed_band_post : Valid -[wp] [Qed] Goal typed_band_post_band0 : Valid -[wp] [Qed] Goal typed_band_bit0_post_band1 : Valid -[wp] [Qed] Goal typed_band_bit0_post_band2 : Valid -[wp] [Qed] Goal typed_band_bit1_post_band3 : Valid -[wp] [Qed] Goal typed_band_bit2_post_band4 : Valid -[wp] [Qed] Goal typed_band_bit3_post_band5 : Valid -[wp] [Qed] Goal typed_band_bit4_post_band6 : Valid -[wp] [Alt-Ergo] Goal typed_band_bool_false_post : Unknown -[wp] [Qed] Goal typed_band_bool_true_post : Valid -[wp] [Qed] Goal typed_bnot_post : Valid -[wp] [Qed] Goal typed_bor_post : Valid -[wp] [Qed] Goal typed_bor_post_bor0 : Valid -[wp] [Qed] Goal typed_bor_bit1_post_bor1 : Valid -[wp] [Qed] Goal typed_bor_bit2_post_bor2 : Valid -[wp] [Qed] Goal typed_bor_bit3_post_bor3 : Valid -[wp] [Alt-Ergo] Goal typed_bor_bool_false_post : Unknown -[wp] [Alt-Ergo] Goal typed_bor_bool_true_post : Valid -[wp] [Qed] Goal typed_bxor_post : Valid -[wp] [Qed] Goal typed_bxor_bit1_post : Valid -[wp] [Qed] Goal typed_bxor_bit2_post : Valid -[wp] [Alt-Ergo] Goal typed_bxor_bool_false_post : Unknown -[wp] [Qed] Goal typed_bxor_bool_true_post : Valid -[wp] [Qed] Goal typed_lshift_post : Valid -[wp] [Qed] Goal typed_lshift_shift1_post_lsl1 : Valid -[wp] [Qed] Goal typed_lshift_shift1_post_lsl2 : Valid -[wp] [Qed] Goal typed_lshift_shift2_post_lsl3 : Valid -[wp] [Qed] Goal typed_rshift_post : Valid -[wp] [Qed] Goal typed_rshift_shift1_post_lsr1 : Valid +[wp] [Qed] Goal typed_band_ensures : Valid +[wp] [Qed] Goal typed_band_ensures_band0 : Valid +[wp] [Qed] Goal typed_band_bit0_ensures_band1 : Valid +[wp] [Qed] Goal typed_band_bit0_ensures_band2 : Valid +[wp] [Qed] Goal typed_band_bit1_ensures_band3 : Valid +[wp] [Qed] Goal typed_band_bit2_ensures_band4 : Valid +[wp] [Qed] Goal typed_band_bit3_ensures_band5 : Valid +[wp] [Qed] Goal typed_band_bit4_ensures_band6 : Valid +[wp] [Alt-Ergo] Goal typed_band_bool_false_ensures : Unknown +[wp] [Qed] Goal typed_band_bool_true_ensures : Valid +[wp] [Qed] Goal typed_bnot_ensures : Valid +[wp] [Qed] Goal typed_bor_ensures : Valid +[wp] [Qed] Goal typed_bor_ensures_bor0 : Valid +[wp] [Qed] Goal typed_bor_bit1_ensures_bor1 : Valid +[wp] [Qed] Goal typed_bor_bit2_ensures_bor2 : Valid +[wp] [Qed] Goal typed_bor_bit3_ensures_bor3 : Valid +[wp] [Alt-Ergo] Goal typed_bor_bool_false_ensures : Unknown +[wp] [Alt-Ergo] Goal typed_bor_bool_true_ensures : Valid +[wp] [Qed] Goal typed_bxor_ensures : Valid +[wp] [Qed] Goal typed_bxor_bit1_ensures : Valid +[wp] [Qed] Goal typed_bxor_bit2_ensures : Valid +[wp] [Alt-Ergo] Goal typed_bxor_bool_false_ensures : Unknown +[wp] [Qed] Goal typed_bxor_bool_true_ensures : Valid +[wp] [Qed] Goal typed_lshift_ensures : Valid +[wp] [Qed] Goal typed_lshift_shift1_ensures_lsl1 : Valid +[wp] [Qed] Goal typed_lshift_shift1_ensures_lsl2 : Valid +[wp] [Qed] Goal typed_lshift_shift2_ensures_lsl3 : Valid +[wp] [Qed] Goal typed_rshift_ensures : Valid +[wp] [Qed] Goal typed_rshift_shift1_ensures_lsr1 : Valid [wp] Proved goals: 26 / 29 Qed: 25 Alt-Ergo: 1 (unknown: 3) diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/bitwise2.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/bitwise2.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..9a78b68f273bf6996386d03a365069f903433e68 --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/bitwise2.res.oracle @@ -0,0 +1,22 @@ +# frama-c -wp -wp-timeout 90 -wp-steps 1500 [...] +[kernel] Parsing tests/wp_acsl/bitwise2.i (no preprocessing) +[wp] Running WP plugin... +[wp] Loading driver 'share/wp.driver' +[wp] Warning: Missing RTE guards +[wp] 5 goals scheduled +[wp] [Qed] Goal typed_job1_ensures : Valid +[wp] [Qed] Goal typed_job1bis_ensures : Valid +[wp] [Qed] Goal typed_job2_ensures : Valid +[wp] [Qed] Goal typed_job3_ensures : Valid +[wp] [Qed] Goal typed_job4_ensures : Valid +[wp] Proved goals: 5 / 5 + Qed: 5 +[wp] Report 'tests/wp_acsl/bitwise2.i.0.report.json' +------------------------------------------------------------- +Functions WP Alt-Ergo Total Success +job1 1 - 1 100% +job1bis 1 - 1 100% +job2 1 - 1 100% +job3 1 - 1 100% +job4 1 - 1 100% +------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/block_length.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/block_length.res.oracle index a602ae20ac0c4038302d93be1e5d770b7baca9bf..6033f7105e78cd4d628f8150f778cbaf3f2b1b0c 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/block_length.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/block_length.res.oracle @@ -4,16 +4,16 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 10 goals scheduled -[wp] [Qed] Goal typed_f_post_Pt : Valid -[wp] [Qed] Goal typed_f_post_Psiz1 : Valid -[wp] [Qed] Goal typed_f_post_Pmat1 : Valid -[wp] [Qed] Goal typed_f_post_Psiz2 : Valid -[wp] [Qed] Goal typed_f_post_Pmat2 : Valid -[wp] [Qed] Goal typed_f_post_Ps : Valid -[wp] [Qed] Goal typed_f_post_Pts : Valid -[wp] [Qed] Goal typed_f_post_Pt1 : Valid -[wp] [Qed] Goal typed_f_post_Pmat12 : Valid -[wp] [Qed] Goal typed_f_post_Pts1 : Valid +[wp] [Qed] Goal typed_f_ensures_Pt : Valid +[wp] [Qed] Goal typed_f_ensures_Psiz1 : Valid +[wp] [Qed] Goal typed_f_ensures_Pmat1 : Valid +[wp] [Qed] Goal typed_f_ensures_Psiz2 : Valid +[wp] [Qed] Goal typed_f_ensures_Pmat2 : Valid +[wp] [Qed] Goal typed_f_ensures_Ps : Valid +[wp] [Qed] Goal typed_f_ensures_Pts : Valid +[wp] [Qed] Goal typed_f_ensures_Pt1 : Valid +[wp] [Qed] Goal typed_f_ensures_Pmat12 : Valid +[wp] [Qed] Goal typed_f_ensures_Pts1 : Valid [wp] Proved goals: 10 / 10 Qed: 10 [wp] Report 'tests/wp_acsl/block_length.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/cnf.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/cnf.res.oracle index ca4bd42b039922e733543429316587d83a3560da..6ebd97b44fdd765b8aca8b5bbeca9eadb450e4ac 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/cnf.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/cnf.res.oracle @@ -5,20 +5,20 @@ [wp] Warning: Missing RTE guards [wp] 43 goals scheduled [wp:cnf] CNF=P_A /\ P_A1 /\ P_A2 -[wp] [Qed] Goal typed_f_post_a0 : Valid +[wp] [Qed] Goal typed_f_ensures_a0 : Valid [wp:cnf] CNF=P_A \/ P_A1 \/ P_A2 -[wp] [Qed] Goal typed_f_post_a1 : Valid +[wp] [Qed] Goal typed_f_ensures_a1 : Valid [wp:cnf] CNF=P_A2 -[wp] [Qed] Goal typed_f_post_a2 : Valid +[wp] [Qed] Goal typed_f_ensures_a2 : Valid [wp:cnf] CNF=((not P_A1) \/ P_A2) /\ (P_A1 \/ (not P_A2)) -[wp] [Alt-Ergo] Goal typed_f_post_a3 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a3 : Valid [wp:cnf] CNF=((not P_A) \/ P_A1) /\ (P_A \/ P_A2) -[wp] [Alt-Ergo] Goal typed_f_post_a4 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a4 : Valid [wp:cnf] CNF=(P_A \/ P_B) /\ (P_A \/ P_B1) /\ (P_A \/ P_B2) /\ (P_A \/ P_C) /\ (P_A1 \/ P_B) /\ (P_A1 \/ P_B1) /\ (P_A1 \/ P_B2) /\ (P_A1 \/ P_C) /\ (P_A2 \/ P_B) /\ (P_A2 \/ P_B1) /\ (P_A2 \/ P_B2) /\ (P_A2 \/ P_C) -[wp] [Alt-Ergo] Goal typed_f_post_a5 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a5 : Valid [wp:cnf] CNF=(P_A \/ P_A1 \/ P_A2 \/ P_C) /\ (P_A \/ P_A1 \/ P_A2 \/ P_B \/ P_C) /\ (P_A \/ P_A1 \/ P_A2 \/ P_B1 \/ P_C) @@ -27,7 +27,7 @@ /\ (P_A \/ P_A1 \/ P_A2 \/ P_B \/ P_B1 \/ P_C) /\ (P_A \/ P_A1 \/ P_A2 \/ P_B \/ P_B2 \/ P_C) /\ (P_A \/ P_A1 \/ P_A2 \/ P_B1 \/ P_B2 \/ P_C) -[wp] [Alt-Ergo] Goal typed_f_post_a6 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a6 : Valid [wp:cnf] CNF=((not P_A) \/ (not P_A1) \/ P_A2 \/ P_C) /\ ((not P_A) \/ (not P_A1) \/ P_A2 \/ (not P_B) \/ P_C) @@ -37,7 +37,7 @@ /\ ((not P_A) \/ (not P_A1) \/ P_A2 \/ (not P_B) \/ (not P_B1) \/ P_C) /\ ((not P_A) \/ (not P_A1) \/ P_A2 \/ (not P_B) \/ P_B2 \/ P_C) /\ ((not P_A) \/ (not P_A1) \/ P_A2 \/ (not P_B1) \/ P_B2 \/ P_C) -[wp] [Alt-Ergo] Goal typed_f_post_a7 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a7 : Valid [wp:cnf] CNF=((not P_A1) \/ P_A2 \/ P_C) /\ (P_A1 \/ (not P_A2) \/ P_C) /\ ((not P_A1) \/ P_A2 \/ (not P_B1) \/ P_B2) @@ -60,7 +60,7 @@ /\ (P_A1 \/ (not P_A2) \/ (not P_B1) \/ P_B2 \/ P_C) /\ (P_A1 \/ (not P_A2) \/ P_B1 \/ (not P_B2) \/ P_C) /\ (P_A1 \/ (not P_A2) \/ P_B1 \/ P_B2 \/ P_C) -[wp] [Alt-Ergo] Goal typed_f_post_a8 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a8 : Valid [wp:cnf] CNF=((not P_A) \/ P_A1 \/ P_C) /\ (P_A \/ P_A2 \/ P_C) /\ ((not P_A) \/ P_A1 \/ (not P_B) \/ P_B1) @@ -122,37 +122,37 @@ /\ ((not P_A) \/ P_A1 \/ P_A2 \/ P_B \/ P_B1 \/ P_B2 \/ P_C) /\ (P_A \/ P_A1 \/ P_A2 \/ (not P_B) \/ P_B1 \/ P_B2 \/ P_C) /\ (P_A \/ P_A1 \/ P_A2 \/ P_B \/ P_B1 \/ P_B2 \/ P_C) -[wp] [Alt-Ergo] Goal typed_f_post_a9 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a9 : Valid [wp:cnf] CNF=P_B /\ P_B1 /\ P_B2 /\ P_C -[wp] [Qed] Goal typed_f_post_b0 : Valid +[wp] [Qed] Goal typed_f_ensures_b0 : Valid [wp:cnf] CNF=P_C /\ (P_B \/ P_B1 \/ P_B2) -[wp] [Qed] Goal typed_f_post_b1 : Valid +[wp] [Qed] Goal typed_f_ensures_b1 : Valid [wp:cnf] CNF=P_C /\ ((not P_B) \/ (not P_B1) \/ P_B2) -[wp] [Alt-Ergo] Goal typed_f_post_b2 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_b2 : Valid [wp:cnf] CNF=P_C /\ ((not P_B1) \/ P_B2) /\ (P_B1 \/ (not P_B2)) -[wp] [Alt-Ergo] Goal typed_f_post_b3 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_b3 : Valid [wp:cnf] CNF=P_C /\ ((not P_B) \/ P_B1) /\ (P_B \/ P_B2) -[wp] [Alt-Ergo] Goal typed_f_post_b4 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_b4 : Valid [wp:cnf] CNF=true -[wp] [Qed] Goal typed_f_post_b5 : Valid +[wp] [Qed] Goal typed_f_ensures_b5 : Valid [wp:cnf] CNF=P_B \/ P_B1 \/ P_B2 \/ P_C1 -[wp] [Qed] Goal typed_f_post_b6 : Valid -[wp] [Qed] Goal typed_f_post_b7 : Valid -[wp] [Qed] Goal typed_f_post_b8 : Valid +[wp] [Qed] Goal typed_f_ensures_b6 : Valid +[wp] [Qed] Goal typed_f_ensures_b7 : Valid +[wp] [Qed] Goal typed_f_ensures_b8 : Valid [wp:cnf] CNF=true -[wp] [Qed] Goal typed_f_post_b9 : Valid +[wp] [Qed] Goal typed_f_ensures_b9 : Valid [wp:cnf] CNF=(P_B \/ P_C) /\ (P_B1 \/ P_C) /\ (P_B2 \/ P_C) -[wp] [Alt-Ergo] Goal typed_f_post_c0 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_c0 : Valid [wp:cnf] CNF=P_B \/ P_B1 \/ P_B2 \/ P_C -[wp] [Qed] Goal typed_f_post_c1 : Valid +[wp] [Qed] Goal typed_f_ensures_c1 : Valid [wp:cnf] CNF=(not P_B) \/ (not P_B1) \/ P_B2 \/ P_C -[wp] [Alt-Ergo] Goal typed_f_post_c2 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_c2 : Valid [wp:cnf] CNF=((not P_B1) \/ P_B2 \/ P_C) /\ (P_B1 \/ (not P_B2) \/ P_C) -[wp] [Alt-Ergo] Goal typed_f_post_c3 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_c3 : Valid [wp:cnf] CNF=((not P_B) \/ P_B1 \/ P_C) /\ (P_B \/ P_B2 \/ P_C) /\ ((not P_B) \/ P_B1 \/ P_B2 \/ P_C) /\ (P_B \/ P_B1 \/ P_B2 \/ P_C) -[wp] [Alt-Ergo] Goal typed_f_post_c4 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_c4 : Valid [wp:cnf] CNF=(P_B \/ (not P_C) \/ (not P_C1)) /\ (P_B \/ P_C \/ P_C1) /\ (P_B1 \/ (not P_C) \/ (not P_C1)) /\ (P_B1 \/ P_C \/ P_C1) @@ -181,7 +181,7 @@ /\ (P_B \/ (not P_B1) \/ (not P_B2) \/ P_C \/ P_C1) /\ (P_B \/ (not P_B1) \/ P_B2 \/ P_C \/ P_C1) /\ (P_B \/ P_B1 \/ (not P_B2) \/ P_C \/ P_C1) -[wp] [Alt-Ergo] Goal typed_f_post_c5 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_c5 : Valid [wp:cnf] CNF=((not P_B) \/ P_C1) /\ ((not P_B1) \/ P_C1) /\ ((not P_B2) \/ P_C1) /\ ((not P_B) \/ (not P_B1) \/ P_C1) @@ -208,7 +208,7 @@ /\ (P_B \/ P_B1 \/ (not P_B2) \/ (not P_C) \/ P_C1) /\ (P_B \/ P_B1 \/ P_B2 \/ (not P_C) \/ (not P_C1)) /\ (P_B \/ P_B1 \/ P_B2 \/ P_C \/ P_C1) -[wp] [Alt-Ergo] Goal typed_f_post_c6 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_c6 : Valid [wp:cnf] CNF=((not P_B2) \/ P_C1) /\ (P_B \/ P_C1) /\ (P_B1 \/ P_C1) /\ ((not P_B) \/ (not P_B2) \/ P_C1) /\ ((not P_B) \/ P_B1 \/ P_C1) @@ -234,72 +234,72 @@ /\ ((not P_B) \/ (not P_B1) \/ P_B2 \/ P_C \/ P_C1) /\ ((not P_B) \/ P_B1 \/ P_B2 \/ (not P_C) \/ P_C1) /\ (P_B \/ (not P_B1) \/ P_B2 \/ (not P_C) \/ P_C1) -[wp] [Alt-Ergo] Goal typed_f_post_c7 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_c7 : Valid [wp:cnf] Too big CNF/DNF [wp:cnf] CNF=((P_C \/ (P_B2 <-> P_B1)) -> ((P_B2 <-> P_B1) <-> P_C1)) /\ (((P_B2 <-> P_B1) <-> P_C1) -> (P_C \/ (P_B2 <-> P_B1))) -[wp] [Alt-Ergo] Goal typed_f_post_c8 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_c8 : Valid [wp:cnf] Too big CNF/DNF [wp:cnf] CNF=((P_C \/ ((P_B -> P_B1) /\ ((not P_B) -> P_B2))) -> ((P_B2 <-> P_B1) <-> P_C1)) /\ (((P_B2 <-> P_B1) <-> P_C1) -> (P_C \/ ((P_B -> P_B1) /\ ((not P_B) -> P_B2)))) -[wp] [Alt-Ergo] Goal typed_f_post_c9 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_c9 : Valid [wp:cnf] CNF=(P_B \/ (not P_C)) /\ (P_B1 \/ (not P_C)) /\ (P_B2 \/ (not P_C)) /\ ((not P_B) \/ (not P_B1) \/ (not P_B2) \/ P_C) -[wp] [Alt-Ergo] Goal typed_f_post_d0 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d0 : Valid [wp:cnf] CNF=((not P_B) \/ P_C) /\ ((not P_B1) \/ P_C) /\ ((not P_B2) \/ P_C) /\ (P_B \/ P_B1 \/ P_B2 \/ (not P_C)) -[wp] [Alt-Ergo] Goal typed_f_post_d1 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d1 : Valid [wp:cnf] CNF=((not P_B2) \/ P_C) /\ (P_B \/ P_C) /\ (P_B1 \/ P_C) /\ ((not P_B) \/ (not P_B1) \/ P_B2 \/ (not P_C)) -[wp] [Alt-Ergo] Goal typed_f_post_d2 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d2 : Valid [wp:cnf] CNF=((not P_B1) \/ (not P_B2) \/ P_C) /\ ((not P_B1) \/ P_B2 \/ (not P_C)) /\ (P_B1 \/ (not P_B2) \/ (not P_C)) /\ (P_B1 \/ P_B2 \/ P_C) -[wp] [Alt-Ergo] Goal typed_f_post_d3 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d3 : Valid [wp:cnf] CNF=((not P_B) \/ (not P_B1) \/ P_C) /\ ((not P_B) \/ P_B1 \/ (not P_C)) /\ ((not P_B1) \/ (not P_B2) \/ P_C) /\ (P_B \/ (not P_B2) \/ P_C) /\ (P_B \/ P_B2 \/ (not P_C)) /\ ((not P_B) \/ P_B1 \/ P_B2 \/ (not P_C)) /\ (P_B \/ P_B1 \/ P_B2 \/ (not P_C)) -[wp] [Alt-Ergo] Goal typed_f_post_d4 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d4 : Valid [wp:cnf] CNF=((not P_B1) \/ P_B2) /\ (P_B \/ (not P_B1)) /\ (P_B \/ (not P_B2)) /\ (P_B \/ (not P_C)) /\ (P_B1 \/ (not P_B2)) /\ (P_B1 \/ (not P_C)) /\ (P_B2 \/ (not P_C)) -[wp] [Alt-Ergo] Goal typed_f_post_d5 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d5 : Valid [wp:cnf] CNF=((not P_B) \/ P_B1 \/ P_B2 \/ P_C) /\ (P_B \/ P_B1 \/ P_B2 \/ (not P_C)) -[wp] [Alt-Ergo] Goal typed_f_post_d6 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d6 : Valid [wp:cnf] CNF=((not P_B) \/ (not P_B1) \/ P_B2) /\ (P_B1 \/ P_B2 \/ P_C) /\ ((not P_B) \/ (not P_B1) \/ P_B2 \/ (not P_C)) /\ (P_B \/ P_B1 \/ P_B2 \/ P_C) -[wp] [Alt-Ergo] Goal typed_f_post_d7 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d7 : Valid [wp:cnf] CNF=((not P_B1) \/ P_B2) /\ (P_B1 \/ (not P_B2)) /\ ((not P_B1) \/ P_B2 \/ (not P_C)) /\ (P_B1 \/ (not P_B2) \/ (not P_C)) /\ (P_B1 \/ P_B2 \/ P_C) -[wp] [Alt-Ergo] Goal typed_f_post_d8 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d8 : Valid [wp:cnf] CNF=((not P_B) \/ P_B1 \/ (not P_B2)) /\ ((not P_B) \/ P_B1 \/ (not P_C)) /\ (P_B \/ (not P_B1) \/ P_B2) /\ (P_B \/ P_B2 \/ (not P_C)) /\ ((not P_B) \/ P_B1 \/ P_B2 \/ (not P_C)) /\ (P_B \/ P_B1 \/ P_B2 \/ (not P_C)) -[wp] [Alt-Ergo] Goal typed_f_post_d9 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d9 : Valid [wp:cnf] CNF=P_A /\ ((not P_B) \/ P_C) /\ ((not P_A) \/ (not P_B) \/ P_C) -[wp] [Alt-Ergo] Goal typed_f_post_e0 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_e0 : Valid [wp:cnf] CNF=P_B /\ ((not P_B) \/ P_C) /\ ((not P_A) \/ (not P_B) \/ P_C) -[wp] [Alt-Ergo] Goal typed_f_post_e1 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_e1 : Valid [wp:cnf] CNF=P_C /\ ((not P_B) \/ P_C) /\ ((not P_A) \/ (not P_B) \/ P_C) -[wp] [Alt-Ergo] Goal typed_f_post_e2 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_e2 : Valid [wp] Proved goals: 43 / 43 Qed: 11 Alt-Ergo: 32 diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.0.res.oracle index 2319800e301920f9b30018999c78d1c7d0f4554e..1e773b52273de86d9f36b4e825be5eaec60f0c93 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.0.res.oracle @@ -4,33 +4,33 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 22 goals scheduled -[wp] [Alt-Ergo] Goal typed_f_post_d0_div_pos_pos : Valid -[wp] [Alt-Ergo] Goal typed_f_post_d1_div_neg_pos : Valid -[wp] [Alt-Ergo] Goal typed_f_post_d2_div_pos_neg : Valid -[wp] [Alt-Ergo] Goal typed_f_post_d3_div_neg_neg : Valid -[wp] [Alt-Ergo] Goal typed_f_post_d4_div_x_1 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_d5_div_x_minus1 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_d6_div_0_x : Valid -[wp] [Alt-Ergo] Goal typed_f_post_sd0_div_pos_pos : Valid -[wp] [Alt-Ergo] Goal typed_f_post_sd1_div_neg_pos : Valid -[wp] [Alt-Ergo] Goal typed_f_post_sd2_div_pos_neg : Valid -[wp] [Alt-Ergo] Goal typed_f_post_sd3_div_neg_neg : Valid -[wp] [Alt-Ergo] Goal typed_f_post_m0_mod_pos_pos : Valid -[wp] [Alt-Ergo] Goal typed_f_post_m1_mod_neg_pos : Valid -[wp] [Alt-Ergo] Goal typed_f_post_m2_mod_pos_neg : Valid -[wp] [Alt-Ergo] Goal typed_f_post_m3_mod_neg_neg : Valid -[wp] [Alt-Ergo] Goal typed_f_post_m4_mod_x_1 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_m5_mod_x_minus1 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_m6_mod_0_x : Valid -[wp] [Alt-Ergo] Goal typed_f_post_sm0_mod_pos_pos : Valid -[wp] [Alt-Ergo] Goal typed_f_post_sm1_mod_neg_pos : Valid -[wp] [Alt-Ergo] Goal typed_f_post_sm2_mod_pos_neg : Valid -[wp] [Alt-Ergo] Goal typed_f_post_sm3_mod_neg_neg : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d0_div_pos_pos : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d1_div_neg_pos : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d2_div_pos_neg : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d3_div_neg_neg : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d4_div_x_1 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d5_div_x_minus1 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d6_div_0_x : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_sd0_div_pos_pos : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_sd1_div_neg_pos : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_sd2_div_pos_neg : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_sd3_div_neg_neg : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_m0_mod_pos_pos : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_m1_mod_neg_pos : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_m2_mod_pos_neg : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_m3_mod_neg_neg : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_m4_mod_x_1 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_m5_mod_x_minus1 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_m6_mod_0_x : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_sm0_mod_pos_pos : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_sm1_mod_neg_pos : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_sm2_mod_pos_neg : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_sm3_mod_neg_neg : Valid [wp] Proved goals: 22 / 22 Qed: 0 Alt-Ergo: 22 [wp] Report 'tests/wp_acsl/div_mod.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -f - 22 (4..16) 22 100% +f - 22 (8..20) 22 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.1.res.oracle index 75e57bd9f16a32b1bb132837a6f25cb69f01a106..6e34345f147116099c1622515dd63fb4e3e7de30 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.1.res.oracle @@ -4,28 +4,28 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 22 goals scheduled -[wp] [alt-ergo] Goal typed_f_post_d0_div_pos_pos : Valid -[wp] [alt-ergo] Goal typed_f_post_d1_div_neg_pos : Valid -[wp] [alt-ergo] Goal typed_f_post_d2_div_pos_neg : Valid -[wp] [alt-ergo] Goal typed_f_post_d3_div_neg_neg : Valid -[wp] [alt-ergo] Goal typed_f_post_d4_div_x_1 : Valid -[wp] [alt-ergo] Goal typed_f_post_d5_div_x_minus1 : Valid -[wp] [alt-ergo] Goal typed_f_post_d6_div_0_x : Valid -[wp] [alt-ergo] Goal typed_f_post_sd0_div_pos_pos : Valid -[wp] [alt-ergo] Goal typed_f_post_sd1_div_neg_pos : Valid -[wp] [alt-ergo] Goal typed_f_post_sd2_div_pos_neg : Valid -[wp] [alt-ergo] Goal typed_f_post_sd3_div_neg_neg : Valid -[wp] [alt-ergo] Goal typed_f_post_m0_mod_pos_pos : Valid -[wp] [alt-ergo] Goal typed_f_post_m1_mod_neg_pos : Valid -[wp] [alt-ergo] Goal typed_f_post_m2_mod_pos_neg : Valid -[wp] [alt-ergo] Goal typed_f_post_m3_mod_neg_neg : Valid -[wp] [alt-ergo] Goal typed_f_post_m4_mod_x_1 : Valid -[wp] [alt-ergo] Goal typed_f_post_m5_mod_x_minus1 : Valid -[wp] [alt-ergo] Goal typed_f_post_m6_mod_0_x : Valid -[wp] [alt-ergo] Goal typed_f_post_sm0_mod_pos_pos : Valid -[wp] [alt-ergo] Goal typed_f_post_sm1_mod_neg_pos : Valid -[wp] [alt-ergo] Goal typed_f_post_sm2_mod_pos_neg : Valid -[wp] [alt-ergo] Goal typed_f_post_sm3_mod_neg_neg : Valid +[wp] [alt-ergo] Goal typed_f_ensures_d0_div_pos_pos : Valid +[wp] [alt-ergo] Goal typed_f_ensures_d1_div_neg_pos : Valid +[wp] [alt-ergo] Goal typed_f_ensures_d2_div_pos_neg : Valid +[wp] [alt-ergo] Goal typed_f_ensures_d3_div_neg_neg : Valid +[wp] [alt-ergo] Goal typed_f_ensures_d4_div_x_1 : Valid +[wp] [alt-ergo] Goal typed_f_ensures_d5_div_x_minus1 : Valid +[wp] [alt-ergo] Goal typed_f_ensures_d6_div_0_x : Valid +[wp] [alt-ergo] Goal typed_f_ensures_sd0_div_pos_pos : Valid +[wp] [alt-ergo] Goal typed_f_ensures_sd1_div_neg_pos : Valid +[wp] [alt-ergo] Goal typed_f_ensures_sd2_div_pos_neg : Valid +[wp] [alt-ergo] Goal typed_f_ensures_sd3_div_neg_neg : Valid +[wp] [alt-ergo] Goal typed_f_ensures_m0_mod_pos_pos : Valid +[wp] [alt-ergo] Goal typed_f_ensures_m1_mod_neg_pos : Valid +[wp] [alt-ergo] Goal typed_f_ensures_m2_mod_pos_neg : Valid +[wp] [alt-ergo] Goal typed_f_ensures_m3_mod_neg_neg : Valid +[wp] [alt-ergo] Goal typed_f_ensures_m4_mod_x_1 : Valid +[wp] [alt-ergo] Goal typed_f_ensures_m5_mod_x_minus1 : Valid +[wp] [alt-ergo] Goal typed_f_ensures_m6_mod_0_x : Valid +[wp] [alt-ergo] Goal typed_f_ensures_sm0_mod_pos_pos : Valid +[wp] [alt-ergo] Goal typed_f_ensures_sm1_mod_neg_pos : Valid +[wp] [alt-ergo] Goal typed_f_ensures_sm2_mod_pos_neg : Valid +[wp] [alt-ergo] Goal typed_f_ensures_sm3_mod_neg_neg : Valid [wp] Proved goals: 22 / 22 Qed: 0 alt-ergo: 22 diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.2.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.2.res.oracle index 2136cd8449ea6524b1638468f4126ae482863824..dd6bba2a7058bbc80cd6555bf7a31ae028ce1e13 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.2.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.2.res.oracle @@ -4,8 +4,8 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Alt-Ergo] Goal typed_f_post_d7_div_0_x_ko : Unknown -[wp] [Alt-Ergo] Goal typed_f_post_m7_mod_0_x_ko : Unknown +[wp] [Alt-Ergo] Goal typed_f_ensures_d7_div_0_x_ko : Unknown +[wp] [Alt-Ergo] Goal typed_f_ensures_m7_mod_0_x_ko : Unknown [wp] Proved goals: 0 / 2 Alt-Ergo: 0 (unknown: 2) [wp] Report 'tests/wp_acsl/div_mod.i.2.report.json' diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/e_imply.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/e_imply.res.oracle index 981bfaf3a377d967a9662d41f2348fc3e77c06f3..e7b1cca13f1c7f69fbf490a84061ed866318994f 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/e_imply.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/e_imply.res.oracle @@ -5,48 +5,48 @@ [wp] Warning: Missing RTE guards [wp] Computing [100 goals...] [wp] 119 goals scheduled -[wp] [Alt-Ergo] Goal typed_f_post_p0 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_p1 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_p2 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_p3 : Valid -[wp] [Qed] Goal typed_f_post_p4 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_p5 : Valid -[wp] [Qed] Goal typed_f_post_p6 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_p7 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_p8 : Valid -[wp] [Qed] Goal typed_f_post_p9 : Valid -[wp] [Qed] Goal typed_f_post_i0 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_i1 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_i2 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_i3 : Valid -[wp] [Qed] Goal typed_f_post_i4 : Valid -[wp] [Qed] Goal typed_f_post_i5 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_i6 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_i7 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_i8 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_i9 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_a0 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_a1 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_a2 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_a3 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_a4 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_a5 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_a6 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_a7 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_a8 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_a9 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_o0 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_o1 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_o2 : Valid -[wp] [Qed] Goal typed_f_post_o3 : Valid -[wp] [Qed] Goal typed_f_post_o4 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_o5 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_o6 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_o7 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_o8 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_o9 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_f0 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_f1 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_p0 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_p1 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_p2 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_p3 : Valid +[wp] [Qed] Goal typed_f_ensures_p4 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_p5 : Valid +[wp] [Qed] Goal typed_f_ensures_p6 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_p7 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_p8 : Valid +[wp] [Qed] Goal typed_f_ensures_p9 : Valid +[wp] [Qed] Goal typed_f_ensures_i0 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_i1 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_i2 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_i3 : Valid +[wp] [Qed] Goal typed_f_ensures_i4 : Valid +[wp] [Qed] Goal typed_f_ensures_i5 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_i6 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_i7 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_i8 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_i9 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a0 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a1 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a2 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a3 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a4 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a5 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a6 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a7 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a8 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a9 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_o0 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_o1 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_o2 : Valid +[wp] [Qed] Goal typed_f_ensures_o3 : Valid +[wp] [Qed] Goal typed_f_ensures_o4 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_o5 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_o6 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_o7 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_o8 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_o9 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_f0 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_f1 : Valid [wp] Proved goals: 119 / 119 Qed: 8 Alt-Ergo: 111 diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/equal.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/equal.res.oracle index 023b79add824fb2e8a201c35c0ce6dbd6535c0cd..445532eb63d57b2cfa5489a3454ad2859ac54eed 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/equal.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/equal.res.oracle @@ -4,12 +4,12 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled -[wp] [Alt-Ergo] Goal typed_simple_array_post : Valid -[wp] [Qed] Goal typed_simple_struct_post : Valid -[wp] [Alt-Ergo] Goal typed_with_array_struct_post : Valid -[wp] [Alt-Ergo] Goal typed_with_ptr_and_array_struct_post : Valid -[wp] [Alt-Ergo] Goal typed_with_ptr_array_post : Valid -[wp] [Alt-Ergo] Goal typed_with_ptr_struct_post : Valid +[wp] [Alt-Ergo] Goal typed_simple_array_ensures : Valid +[wp] [Qed] Goal typed_simple_struct_ensures : Valid +[wp] [Alt-Ergo] Goal typed_with_array_struct_ensures : Valid +[wp] [Alt-Ergo] Goal typed_with_ptr_and_array_struct_ensures : Valid +[wp] [Alt-Ergo] Goal typed_with_ptr_array_ensures : Valid +[wp] [Alt-Ergo] Goal typed_with_ptr_struct_ensures : Valid [wp] Proved goals: 6 / 6 Qed: 1 Alt-Ergo: 5 @@ -18,8 +18,8 @@ Functions WP Alt-Ergo Total Success simple_struct 1 - 1 100% simple_array - 1 (12..24) 1 100% -with_array_struct - 1 (8..20) 1 100% -with_ptr_struct - 1 (1..12) 1 100% -with_ptr_array - 1 (8..20) 1 100% +with_array_struct - 1 (12..24) 1 100% +with_ptr_struct - 1 (8..20) 1 100% +with_ptr_array - 1 (12..24) 1 100% with_ptr_and_array_struct - 1 (24..36) 1 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/funvar_inv.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/funvar_inv.res.oracle index 01ff9f7bec5f551c82f6476a701ef8ac26af11f2..4710a979b9fec752a3813171ab64bef7cab9603a 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/funvar_inv.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/funvar_inv.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Qed] Goal typed_ref_f_loop_assign : Valid -[wp] [Qed] Goal typed_ref_f2_loop_assign : Valid -[wp] [Qed] Goal typed_ref_g_loop_assign : Valid +[wp] [Qed] Goal typed_ref_f_loop_assigns : Valid +[wp] [Qed] Goal typed_ref_f2_loop_assigns : Valid +[wp] [Qed] Goal typed_ref_g_loop_assigns : Valid [wp] Proved goals: 3 / 3 Qed: 3 [wp] Report 'tests/wp_acsl/funvar_inv.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/implicit_enum_cast.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/implicit_enum_cast.res.oracle index 9ed0b0beac94694fe09623eef691536cc711ddc0..33a7efd8bc0ee2889c1b612813747638acc9c1ea 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/implicit_enum_cast.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/implicit_enum_cast.res.oracle @@ -4,15 +4,15 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 9 goals scheduled -[wp] [Qed] Goal typed_bar_post : Valid -[wp] [Qed] Goal typed_bar_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_bar_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_bar_assign_exit_part3 : Valid -[wp] [Qed] Goal typed_bar_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_bar_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_bar_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_bar_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_bar_assign_normal_part5 : Valid +[wp] [Qed] Goal typed_bar_ensures : Valid +[wp] [Qed] Goal typed_bar_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_bar_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_bar_assigns_exit_part3 : Valid +[wp] [Qed] Goal typed_bar_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_bar_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_bar_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_bar_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_bar_assigns_normal_part5 : Valid [wp] Proved goals: 9 / 9 Qed: 9 [wp] Report 'tests/wp_acsl/implicit_enum_cast.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_label.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_label.res.oracle index fe45ccb3d654892e61686211c0102f8c154f8e6a..c3f090839d60777287c9ef82e5ad5055ba596528 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_label.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_label.res.oracle @@ -6,10 +6,10 @@ No code nor implicit assigns clause for function main, generating default assigns from the prototype [wp] Warning: Missing RTE guards [wp] 4 goals scheduled -[wp] [Alt-Ergo] Goal typed_extra_post_KO : Unknown -[wp] [Qed] Goal typed_foreign_post_OK : Valid -[wp] [Alt-Ergo] Goal typed_job_post_OK : Valid -[wp] [Qed] Goal typed_main_pre_OK : Valid +[wp] [Alt-Ergo] Goal typed_extra_ensures_KO : Unknown +[wp] [Qed] Goal typed_foreign_ensures_OK : Valid +[wp] [Alt-Ergo] Goal typed_job_ensures_OK : Valid +[wp] [Qed] Goal typed_main_requires_OK : Valid [wp] Proved goals: 3 / 4 Qed: 2 Alt-Ergo: 1 (unknown: 1) diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value.0.res.oracle index 87c51d12edc17d9360bd1aef0ebd6ccc5fa192cd..0619f73d418710651fd29071598ac152e5d46f4e 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value.0.res.oracle @@ -3,25 +3,40 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards -[wp] 13 goals scheduled -[wp] [Qed] Goal typed_main_pre_qed_ok_Struct_Simple_a : Valid -[wp] [Qed] Goal typed_main_pre_qed_ok_Struct_Simple_b : Valid -[wp] [Qed] Goal typed_main_pre_qed_ok_Simple_Array_0 : Valid -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_Simple_Array_1 : Valid -[wp] [Qed] Goal typed_main_pre_qed_ok_With_Array_Struct_5 : Valid -[wp] [Qed] Goal typed_main_pre_qed_ok_With_Array_Struct_3 : Valid -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_Sc_eq : Valid -[wp] [Qed] Goal typed_main_pre_qed_ok_Sc_t : Valid -[wp] [Qed] Goal typed_main_pre_qed_ok_Sc_t_2 : Valid -[wp] [Qed] Goal typed_main_pre_qed_ok_Sc_c_2 : Valid -[wp] [Qed] Goal typed_main_pre_qed_ok_Sc_c_3 : Valid -[wp] [Qed] Goal typed_main_pre_qed_ok_Tab_no_init : Valid -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_Tab_todo : Valid -[wp] Proved goals: 13 / 13 - Qed: 10 - Alt-Ergo: 3 +[wp] 24 goals scheduled +[wp] [Qed] Goal typed_fa1_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_fa2_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_fa3_ensures_qed_ok : Valid +[wp] [Alt-Ergo] Goal typed_fs1_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_main_requires_qed_ok_Struct_Simple_a : Valid +[wp] [Qed] Goal typed_main_requires_qed_ok_Struct_Simple_b : Valid +[wp] [Qed] Goal typed_main_requires_qed_ok_Simple_Array_0 : Valid +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_Simple_Array_1 : Valid +[wp] [Qed] Goal typed_main_requires_qed_ok_With_Array_Struct_5 : Valid +[wp] [Qed] Goal typed_main_requires_qed_ok_With_Array_Struct_3 : Valid +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_Sc_eq : Valid +[wp] [Qed] Goal typed_main_requires_qed_ok_Sc_t : Valid +[wp] [Qed] Goal typed_main_requires_qed_ok_Sc_t_2 : Valid +[wp] [Qed] Goal typed_main_requires_qed_ok_Sc_c_2 : Valid +[wp] [Qed] Goal typed_main_requires_qed_ok_Sc_c_3 : Valid +[wp] [Qed] Goal typed_main_requires_qed_ok_Tab_no_init : Valid +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_Tab_todo : Valid +[wp] [Qed] Goal typed_main_requires_qed_ok : Valid +[wp] [Qed] Goal typed_main_requires_qed_ok_2 : Valid +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_3 : Valid +[wp] [Qed] Goal typed_main_requires_qed_ok_todo : Valid +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_4 : Valid +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_5 : Valid +[wp] [Qed] Goal typed_main_requires_qed_ok_direct_init_union : Valid +[wp] Proved goals: 24 / 24 + Qed: 17 + Alt-Ergo: 7 [wp] Report 'tests/wp_acsl/init_value.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -main 10 3 (28..40) 13 100% +main 14 6 (28..40) 20 100% +fa1 1 - 1 100% +fa2 1 - 1 100% +fa3 1 - 1 100% +fs1 - 1 (160..184) 1 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value.1.res.oracle index 9ca602f4ad9efda7c9c0c3e9cfc48d54109d812f..6fd6542afa8361c5a6836072b77949b948416ead 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value.1.res.oracle @@ -3,17 +3,33 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards -[wp] 6 goals scheduled -[wp] [Alt-Ergo] Goal typed_main_ko_pre_qed_ko_Sc_eq_ko : Unknown -[wp] [Alt-Ergo] Goal typed_main_ko_pre_qed_ko_Sc_t : Unknown -[wp] [Alt-Ergo] Goal typed_main_ko_pre_qed_ko_Sc_c_2 : Unknown -[wp] [Alt-Ergo] Goal typed_main_ko_pre_qed_ko_Tab_no_init : Unknown -[wp] [Alt-Ergo] Goal typed_main_ko_pre_qed_ko_With_Array_Struct_3 : Unknown -[wp] [Alt-Ergo] Goal typed_main_ko_pre_qed_ko_Simple_Array_1 : Unknown -[wp] Proved goals: 0 / 6 - Alt-Ergo: 0 (unknown: 6) +[wp] 18 goals scheduled +[wp] [Alt-Ergo] Goal typed_fa1_ensures_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_fa1_ensures_qed_ko_2 : Unknown +[wp] [Alt-Ergo] Goal typed_fa2_ensures_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_fa2_ensures_qed_ko_2 : Unknown +[wp] [Alt-Ergo] Goal typed_fa3_ensures_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_fa3_ensures_qed_ko_2 : Unknown +[wp] [Alt-Ergo] Goal typed_fa3_ensures_qed_ko_3 : Unknown +[wp] [Alt-Ergo] Goal typed_fs1_ensures_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_fs1_ensures_qed_ko_2 : Unknown +[wp] [Alt-Ergo] Goal typed_main_ko_requires_qed_ko_Sc_eq_ko : Unknown +[wp] [Alt-Ergo] Goal typed_main_ko_requires_qed_ko_Sc_t : Unknown +[wp] [Alt-Ergo] Goal typed_main_ko_requires_qed_ko_Sc_c_2 : Unknown +[wp] [Alt-Ergo] Goal typed_main_ko_requires_qed_ko_Tab_no_init : Unknown +[wp] [Alt-Ergo] Goal typed_main_ko_requires_qed_ko_With_Array_Struct_3 : Unknown +[wp] [Alt-Ergo] Goal typed_main_ko_requires_qed_ko_Simple_Array_1 : Unknown +[wp] [Alt-Ergo] Goal typed_main_ko_requires_qed_ko_T1_6 : Unknown +[wp] [Alt-Ergo] Goal typed_main_ko_requires_qed_ko_indirect_init_union_b : Unknown +[wp] [Alt-Ergo] Goal typed_main_ko_requires_qed_ko_indirect_init_union_t : Unknown +[wp] Proved goals: 0 / 18 + Alt-Ergo: 0 (unknown: 18) [wp] Report 'tests/wp_acsl/init_value.i.1.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -main_ko - - 6 0.0% +main_ko - - 9 0.0% +fa1 - - 2 0.0% +fa2 - - 2 0.0% +fa3 - - 3 0.0% +fs1 - - 2 0.0% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value_mem.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value_mem.res.oracle index 06e2445b2a07f8686ecd2cb49302d6a94991f8db..aeadf11adb3ff7326101e7ced83584da67ca0ab7 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value_mem.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value_mem.res.oracle @@ -4,13 +4,13 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Alt-Ergo] Goal typed_main_post_P : Valid -[wp] [Alt-Ergo] Goal typed_main_post_Q : Valid +[wp] [Alt-Ergo] Goal typed_main_ensures_P : Valid +[wp] [Alt-Ergo] Goal typed_main_ensures_Q : Valid [wp] Proved goals: 2 / 2 Qed: 0 Alt-Ergo: 2 [wp] Report 'tests/wp_acsl/init_value_mem.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -main - 2 (32..44) 2 100% +main - 2 (36..48) 2 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/intbool.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/intbool.res.oracle index 1863f3ab49f2bd301a30a76a427a88d3abceac74..aa952f482657fa24e4a8d422a41045c85f63defa 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/intbool.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/intbool.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Qed] Goal typed_bug_post : Valid +[wp] [Qed] Goal typed_bug_ensures : Valid [wp] Proved goals: 1 / 1 Qed: 1 [wp] Report 'tests/wp_acsl/intbool.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.res.oracle index 9aa246a2736630707b73b86901adcaca0d4596bf..d22e02bbbd1cbe7cd09d5e8f0b635136c58655b7 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.res.oracle @@ -41,27 +41,27 @@ [wp] tests/wp_acsl/logic.i:62: Warning: Logic cast to struct (Tint2) from (int [6]) not implemented yet [wp] 21 goals scheduled -[wp] [Alt-Ergo] Goal typed_h_post : Unknown (Stronger) -[wp] [Qed] Goal typed_h_assign_exit : Valid -[wp] [Qed] Goal typed_h_assign_normal : Valid -[wp] [Qed] Goal typed_main_pre_qed_ok : Valid -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_2 : Valid -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_3 : Valid -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_4 : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_5 : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_6 : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_7 : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_8 : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_9 : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_10 : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_11 : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_12 : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_13 : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_14 : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_15 : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_16 : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_17 : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_18 : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_h_ensures : Unknown (Stronger) +[wp] [Qed] Goal typed_h_assigns_exit : Valid +[wp] [Qed] Goal typed_h_assigns_normal : Valid +[wp] [Qed] Goal typed_main_requires_qed_ok : Valid +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_2 : Valid +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_3 : Valid +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_4 : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_5 : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_6 : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_7 : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_8 : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_9 : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_10 : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_11 : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_12 : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_13 : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_14 : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_15 : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_16 : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_17 : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_18 : Unknown (Stronger) [wp] Proved goals: 5 / 21 Qed: 3 Alt-Ergo: 2 (unknown: 16) @@ -69,5 +69,5 @@ ------------------------------------------------------------- Functions WP Alt-Ergo Total Success h 2 - 3 66.7% -main 1 2 (56..68) 18 16.7% +main 1 2 (56..80) 18 16.7% ------------------------------------------------------------- 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 77cdf82dbbd7f0285c166b0471c02e50b21fc5fb..26c8030d9dac191617788700e6e1cdd7118eb509 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,14 +4,14 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 8 goals scheduled -[wp] [Alt-Ergo] Goal typed_copy_post : Valid -[wp] [Alt-Ergo] Goal typed_copy_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_copy_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_copy_loop_inv_2_preserved : Valid -[wp] [Alt-Ergo] Goal typed_copy_loop_inv_2_established : Valid -[wp] [Qed] Goal typed_copy_loop_assign_part1 : Valid -[wp] [Alt-Ergo] Goal typed_copy_loop_assign_part2 : Valid -[wp] [Qed] Goal typed_copy_assign : Valid +[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_established : Valid +[wp] [Alt-Ergo] Goal typed_copy_loop_invariant_2_preserved : Valid +[wp] [Alt-Ergo] Goal typed_copy_loop_invariant_2_established : Valid +[wp] [Qed] Goal typed_copy_loop_assigns_part1 : Valid +[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 diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/null.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/null.res.oracle index dacdfd4c992379bde9e6c0efe492641d11254806..1d6e4b7c5b2eb68d7ca0b4629b29969acf284380 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/null.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/null.res.oracle @@ -6,7 +6,7 @@ [wp] 3 goals scheduled [wp] [Alt-Ergo] Goal typed_lemma_valid_non_null : Valid [wp] [Alt-Ergo] Goal typed_lemma_valid_read_non_null : Valid -[wp] [Qed] Goal typed_null_is_zero_post : Valid +[wp] [Qed] Goal typed_null_is_zero_ensures : Valid [wp] Proved goals: 3 / 3 Qed: 1 Alt-Ergo: 2 diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.0.res.oracle index a567ce67a3445906ea27d5af544c925b5efe6cf2..7c36192fd7af34f0c6f8d194d94f4307d5195843 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.0.res.oracle @@ -6,15 +6,15 @@ [wp] tests/wp_acsl/pointer.i:50: Warning: Uncomparable locations p_0 and mem:t [wp] tests/wp_acsl/pointer.i:49: Warning: Uncomparable locations p_0 and mem:t [wp] 9 goals scheduled -[wp] [Alt-Ergo] Goal typed_ref_absurd_post_qed_ko_Base_oracle_ko : Unknown -[wp] [Alt-Ergo] Goal typed_ref_absurd_post_qed_ko_Comp_oracle_ko : Unknown -[wp] [Qed] Goal typed_ref_array_post_Lt : Valid -[wp] [Qed] Goal typed_ref_array_post_Le : Valid -[wp] [Qed] Goal typed_ref_array_post_Eq : Valid -[wp] [Alt-Ergo] Goal typed_ref_mixed_array_pointer_post_qed_ko_Le_oracle_ko : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_ref_mixed_array_pointer_post_qed_ko_Lt_oracle_ko : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_ref_pointer_post_qed_ko_Le_oracle_ko : Unknown -[wp] [Alt-Ergo] Goal typed_ref_pointer_post_qed_ko_Eq_oracle_ko : Unknown +[wp] [Alt-Ergo] Goal typed_ref_absurd_ensures_qed_ko_Base_oracle_ko : Unknown +[wp] [Alt-Ergo] Goal typed_ref_absurd_ensures_qed_ko_Comp_oracle_ko : Unknown +[wp] [Qed] Goal typed_ref_array_ensures_Lt : Valid +[wp] [Qed] Goal typed_ref_array_ensures_Le : Valid +[wp] [Qed] Goal typed_ref_array_ensures_Eq : Valid +[wp] [Alt-Ergo] Goal typed_ref_mixed_array_pointer_ensures_qed_ko_Le_oracle_ko : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_ref_mixed_array_pointer_ensures_qed_ko_Lt_oracle_ko : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_ref_pointer_ensures_qed_ko_Le_oracle_ko : Unknown +[wp] [Alt-Ergo] Goal typed_ref_pointer_ensures_qed_ko_Eq_oracle_ko : Unknown [wp] Proved goals: 3 / 9 Qed: 3 Alt-Ergo: 0 (unknown: 6) diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.1.res.oracle index b17fbb3bd877ca7296c953e5d4a3c00e03d95781..ae8ae26c94ab00e62049da1bfbe6c2ba3b3b546b 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.1.res.oracle @@ -6,15 +6,15 @@ [wp] tests/wp_acsl/pointer.i:50: Warning: Uncomparable locations p_0 and mem:t [wp] tests/wp_acsl/pointer.i:49: Warning: Uncomparable locations p_0 and mem:t [wp] 9 goals scheduled -[wp] [Alt-Ergo] Goal typed_absurd_post_qed_ko_Base_oracle_ko : Unknown -[wp] [Alt-Ergo] Goal typed_absurd_post_qed_ko_Comp_oracle_ko : Unknown -[wp] [Qed] Goal typed_array_post_Lt : Valid -[wp] [Qed] Goal typed_array_post_Le : Valid -[wp] [Qed] Goal typed_array_post_Eq : Valid -[wp] [Alt-Ergo] Goal typed_mixed_array_pointer_post_qed_ko_Le_oracle_ko : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_mixed_array_pointer_post_qed_ko_Lt_oracle_ko : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_pointer_post_qed_ko_Le_oracle_ko : Unknown -[wp] [Alt-Ergo] Goal typed_pointer_post_qed_ko_Eq_oracle_ko : Unknown +[wp] [Alt-Ergo] Goal typed_absurd_ensures_qed_ko_Base_oracle_ko : Unknown +[wp] [Alt-Ergo] Goal typed_absurd_ensures_qed_ko_Comp_oracle_ko : Unknown +[wp] [Qed] Goal typed_array_ensures_Lt : Valid +[wp] [Qed] Goal typed_array_ensures_Le : Valid +[wp] [Qed] Goal typed_array_ensures_Eq : Valid +[wp] [Alt-Ergo] Goal typed_mixed_array_pointer_ensures_qed_ko_Le_oracle_ko : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_mixed_array_pointer_ensures_qed_ko_Lt_oracle_ko : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_pointer_ensures_qed_ko_Le_oracle_ko : Unknown +[wp] [Alt-Ergo] Goal typed_pointer_ensures_qed_ko_Eq_oracle_ko : Unknown [wp] Proved goals: 3 / 9 Qed: 3 Alt-Ergo: 0 (unknown: 6) diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/precedence.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/precedence.0.res.oracle index cd608ff8c72d15f5af4d9b76bc195802dd5f93ae..6326d96688ad9b8c8e24017e0a793f78510c8d54 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/precedence.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/precedence.0.res.oracle @@ -40,58 +40,58 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 52 goals scheduled -[wp] [Qed] Goal typed_bitwise_post_r_precedence_and_xor : Valid -[wp] [Qed] Goal typed_bitwise_post_l_precedence_and_xor : Valid -[wp] [Qed] Goal typed_bitwise_post_r_precedence_xor_or : Valid -[wp] [Qed] Goal typed_bitwise_post_l_precedence_xor_or : Valid -[wp] [Qed] Goal typed_bitwise_post_r_precedence_or_implies : Valid -[wp] [Qed] Goal typed_bitwise_post_l_precedence_or_implies : Valid -[wp] [Qed] Goal typed_bitwise_post_ok_r_precedence_implies_or : Valid -[wp] [Qed] Goal typed_bitwise_post_ok_since : Valid -[wp] [Qed] Goal typed_bitwise_post_r_assoc_implies : Valid -[wp] [Qed] Goal typed_bitwise_post_r_precedence_implies_equiv : Valid -[wp] [Qed] Goal typed_bitwise_post_l_precedence_implies_equiv : Valid -[wp] [Qed] Goal typed_comparison_post_chainable_lt_lt : Valid -[wp] [Qed] Goal typed_comparison_post_chainable_le_le : Valid -[wp] [Qed] Goal typed_comparison_post_chainable_gt_gt : Valid -[wp] [Qed] Goal typed_comparison_post_chainable_ge_ge : Valid -[wp] [Qed] Goal typed_comparison_post_chainable_eq_eq : Valid -[wp] [Qed] Goal typed_comparison_post_r_precedence_eq_and : Valid -[wp] [Qed] Goal typed_comparison_post_l_precedence_eq_and : Valid -[wp] [Qed] Goal typed_comparison_post_r_precedence_neq_and : Valid -[wp] [Qed] Goal typed_comparison_post_l_precedence_neq_and : Valid -[wp] [Qed] Goal typed_predicate_post_r_precedence_and_xor : Valid -[wp] [Qed] Goal typed_predicate_post_l_precedence_and_xor : Valid -[wp] [Qed] Goal typed_predicate_post_r_precedence_xor_or : Valid -[wp] [Qed] Goal typed_predicate_post_l_precedence_xor_or : Valid -[wp] [Qed] Goal typed_predicate_post_r_precedence_or_implies : Valid -[wp] [Qed] Goal typed_predicate_post_l_precedence_or_implies : Valid -[wp] [Alt-Ergo] Goal typed_predicate_post_ok_r_precedence_implies_or : Valid -[wp] [Qed] Goal typed_predicate_post_ok_since : Valid -[wp] [Qed] Goal typed_predicate_post_r_assoc_implies : Valid -[wp] [Qed] Goal typed_predicate_post_r_precedence_implies_equiv : Valid -[wp] [Qed] Goal typed_predicate_post_l_precedence_implies_equiv : Valid -[wp] [Qed] Goal typed_predicate_post_r_precedence_equiv_ite : Valid -[wp] [Qed] Goal typed_predicate_post_m_precedence_equiv_ite : Valid -[wp] [Qed] Goal typed_predicate_post_l_precedence_equiv_ite : Valid -[wp] [Qed] Goal typed_predicate_post_r_assoc_ite : Valid -[wp] [Qed] Goal typed_predicate_post_r_precedence_ite_forall : Valid -[wp] [Qed] Goal typed_predicate_post_m_precedence_ite_forall : Valid -[wp] [Qed] Goal typed_predicate_post_l_precedence_ite_forall : Valid -[wp] [Qed] Goal typed_predicate_post_r_assoc_forall : Valid -[wp] [Qed] Goal typed_predicate_post_r_precedence_ite_exists : Valid -[wp] [Qed] Goal typed_predicate_post_m_precedence_ite_exists : Valid -[wp] [Qed] Goal typed_predicate_post_l_precedence_ite_exists : Valid -[wp] [Qed] Goal typed_predicate_post_r_assoc_exist : Valid -[wp] [Qed] Goal typed_predicate_post_r_precedence_ite_let : Valid -[wp] [Qed] Goal typed_predicate_post_m_precedence_ite_let : Valid -[wp] [Qed] Goal typed_predicate_post_l_precedence_ite_let : Valid -[wp] [Qed] Goal typed_predicate_post_r_assoc_let : Valid -[wp] [Qed] Goal typed_predicate_post_scope_let : Valid -[wp] [Qed] Goal typed_predicate_post_scope_let_2 : Valid -[wp] [Qed] Goal typed_predicate_post_r_precedence_ite_naming : Valid -[wp] [Qed] Goal typed_predicate_bitwise_post_r_precedence_equiv_Pand : Valid -[wp] [Qed] Goal typed_predicate_bitwise_post_l_precedence_equiv_Pand : Valid +[wp] [Qed] Goal typed_bitwise_ensures_r_precedence_and_xor : Valid +[wp] [Qed] Goal typed_bitwise_ensures_l_precedence_and_xor : Valid +[wp] [Qed] Goal typed_bitwise_ensures_r_precedence_xor_or : Valid +[wp] [Qed] Goal typed_bitwise_ensures_l_precedence_xor_or : Valid +[wp] [Qed] Goal typed_bitwise_ensures_r_precedence_or_implies : Valid +[wp] [Qed] Goal typed_bitwise_ensures_l_precedence_or_implies : Valid +[wp] [Qed] Goal typed_bitwise_ensures_ok_r_precedence_implies_or : Valid +[wp] [Qed] Goal typed_bitwise_ensures_ok_since : Valid +[wp] [Qed] Goal typed_bitwise_ensures_r_assoc_implies : Valid +[wp] [Qed] Goal typed_bitwise_ensures_r_precedence_implies_equiv : Valid +[wp] [Qed] Goal typed_bitwise_ensures_l_precedence_implies_equiv : Valid +[wp] [Qed] Goal typed_comparison_ensures_chainable_lt_lt : Valid +[wp] [Qed] Goal typed_comparison_ensures_chainable_le_le : Valid +[wp] [Qed] Goal typed_comparison_ensures_chainable_gt_gt : Valid +[wp] [Qed] Goal typed_comparison_ensures_chainable_ge_ge : Valid +[wp] [Qed] Goal typed_comparison_ensures_chainable_eq_eq : Valid +[wp] [Qed] Goal typed_comparison_ensures_r_precedence_eq_and : Valid +[wp] [Qed] Goal typed_comparison_ensures_l_precedence_eq_and : Valid +[wp] [Qed] Goal typed_comparison_ensures_r_precedence_neq_and : Valid +[wp] [Qed] Goal typed_comparison_ensures_l_precedence_neq_and : Valid +[wp] [Qed] Goal typed_predicate_ensures_r_precedence_and_xor : Valid +[wp] [Qed] Goal typed_predicate_ensures_l_precedence_and_xor : Valid +[wp] [Qed] Goal typed_predicate_ensures_r_precedence_xor_or : Valid +[wp] [Qed] Goal typed_predicate_ensures_l_precedence_xor_or : Valid +[wp] [Qed] Goal typed_predicate_ensures_r_precedence_or_implies : Valid +[wp] [Qed] Goal typed_predicate_ensures_l_precedence_or_implies : Valid +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ok_r_precedence_implies_or : Valid +[wp] [Qed] Goal typed_predicate_ensures_ok_since : Valid +[wp] [Qed] Goal typed_predicate_ensures_r_assoc_implies : Valid +[wp] [Qed] Goal typed_predicate_ensures_r_precedence_implies_equiv : Valid +[wp] [Qed] Goal typed_predicate_ensures_l_precedence_implies_equiv : Valid +[wp] [Qed] Goal typed_predicate_ensures_r_precedence_equiv_ite : Valid +[wp] [Qed] Goal typed_predicate_ensures_m_precedence_equiv_ite : Valid +[wp] [Qed] Goal typed_predicate_ensures_l_precedence_equiv_ite : Valid +[wp] [Qed] Goal typed_predicate_ensures_r_assoc_ite : Valid +[wp] [Qed] Goal typed_predicate_ensures_r_precedence_ite_forall : Valid +[wp] [Qed] Goal typed_predicate_ensures_m_precedence_ite_forall : Valid +[wp] [Qed] Goal typed_predicate_ensures_l_precedence_ite_forall : Valid +[wp] [Qed] Goal typed_predicate_ensures_r_assoc_forall : Valid +[wp] [Qed] Goal typed_predicate_ensures_r_precedence_ite_exists : Valid +[wp] [Qed] Goal typed_predicate_ensures_m_precedence_ite_exists : Valid +[wp] [Qed] Goal typed_predicate_ensures_l_precedence_ite_exists : Valid +[wp] [Qed] Goal typed_predicate_ensures_r_assoc_exist : Valid +[wp] [Qed] Goal typed_predicate_ensures_r_precedence_ite_let : Valid +[wp] [Qed] Goal typed_predicate_ensures_m_precedence_ite_let : Valid +[wp] [Qed] Goal typed_predicate_ensures_l_precedence_ite_let : Valid +[wp] [Qed] Goal typed_predicate_ensures_r_assoc_let : Valid +[wp] [Qed] Goal typed_predicate_ensures_scope_let : Valid +[wp] [Qed] Goal typed_predicate_ensures_scope_let_2 : Valid +[wp] [Qed] Goal typed_predicate_ensures_r_precedence_ite_naming : Valid +[wp] [Qed] Goal typed_predicate_bitwise_ensures_r_precedence_equiv_Pand : Valid +[wp] [Qed] Goal typed_predicate_bitwise_ensures_l_precedence_equiv_Pand : Valid [wp] Proved goals: 52 / 52 Qed: 51 Alt-Ergo: 1 diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/precedence.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/precedence.1.res.oracle index 13603360f9df78991446d692a107ee35c1cbf1c7..b5d9d479c01f387417e3f2800de0874cecf618f7 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/precedence.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/precedence.1.res.oracle @@ -40,43 +40,43 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 37 goals scheduled -[wp] [Alt-Ergo] Goal typed_bitwise_post_ko_l_precedence_xor_and : Unknown -[wp] [Alt-Ergo] Goal typed_bitwise_post_ko_r_precedence_xor_and : Unknown -[wp] [Alt-Ergo] Goal typed_bitwise_post_ko_l_precedence_or_xor : Unknown -[wp] [Alt-Ergo] Goal typed_bitwise_post_ko_r_precedence_or_xor : Unknown -[wp] [Alt-Ergo] Goal typed_bitwise_post_ko_l_precedence_implies_or : Unknown -[wp] [Alt-Ergo] Goal typed_bitwise_post_ko_l_assoc_implies : Unknown -[wp] [Alt-Ergo] Goal typed_bitwise_post_ko_r_precedence_equiv_implies : Unknown -[wp] [Alt-Ergo] Goal typed_bitwise_post_ko_l_precedence_equiv_implies : Unknown -[wp] [Alt-Ergo] Goal typed_comparison_post_ko_r_precedence_and_eq : Unknown -[wp] [Alt-Ergo] Goal typed_comparison_post_ko_l_precedence_and_eq : Unknown -[wp] [Alt-Ergo] Goal typed_comparison_post_ko_l_nonassoc_eq : Unknown -[wp] [Alt-Ergo] Goal typed_comparison_post_ko_r_nonassoc_eq : Unknown -[wp] [Alt-Ergo] Goal typed_comparison_post_ko_r_precedence_and_neq : Unknown -[wp] [Alt-Ergo] Goal typed_comparison_post_ko_l_precedence_and_neq : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_l_precedence_xor_and : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_r_precedence_xor_and : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_l_precedence_or_xor : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_r_precedence_or_xor : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_l_precedence_implies_or : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_l_assoc_implies : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_r_precedence_equiv_implies : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_l_precedence_equiv_implies : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_r_precedence_ite_equiv : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_l_precedence_ite_equiv : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_l_assoc_ite : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_r_precedence_forall_ite : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_m_precedence_forall_ite : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_l_precedence_forall_ite : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_r_assoc_forall : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_r_precedence_exists_ite : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_m_precedence_exists_ite : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_l_precedence_exists_ite : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_r_assoc_exist : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_r_precedence_let_ite : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_m_precedence_let_ite : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_l_precedence_let_ite : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_l_assoc_naming : Unknown +[wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_l_precedence_xor_and : Unknown +[wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_r_precedence_xor_and : Unknown +[wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_l_precedence_or_xor : Unknown +[wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_r_precedence_or_xor : Unknown +[wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_l_precedence_implies_or : Unknown +[wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_l_assoc_implies : Unknown +[wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_r_precedence_equiv_implies : Unknown +[wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_l_precedence_equiv_implies : Unknown +[wp] [Alt-Ergo] Goal typed_comparison_ensures_ko_r_precedence_and_eq : Unknown +[wp] [Alt-Ergo] Goal typed_comparison_ensures_ko_l_precedence_and_eq : Unknown +[wp] [Alt-Ergo] Goal typed_comparison_ensures_ko_l_nonassoc_eq : Unknown +[wp] [Alt-Ergo] Goal typed_comparison_ensures_ko_r_nonassoc_eq : Unknown +[wp] [Alt-Ergo] Goal typed_comparison_ensures_ko_r_precedence_and_neq : Unknown +[wp] [Alt-Ergo] Goal typed_comparison_ensures_ko_l_precedence_and_neq : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_l_precedence_xor_and : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_r_precedence_xor_and : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_l_precedence_or_xor : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_r_precedence_or_xor : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_l_precedence_implies_or : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_l_assoc_implies : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_r_precedence_equiv_implies : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_l_precedence_equiv_implies : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_r_precedence_ite_equiv : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_l_precedence_ite_equiv : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_l_assoc_ite : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_r_precedence_forall_ite : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_m_precedence_forall_ite : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_l_precedence_forall_ite : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_r_assoc_forall : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_r_precedence_exists_ite : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_m_precedence_exists_ite : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_l_precedence_exists_ite : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_r_assoc_exist : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_r_precedence_let_ite : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_m_precedence_let_ite : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_l_precedence_let_ite : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_l_assoc_naming : Unknown [wp] Proved goals: 0 / 37 Alt-Ergo: 0 (unknown: 37) [wp] Report 'tests/wp_acsl/precedence.i.1.report.json' diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/range.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/range.res.oracle index a3ac45cef648087747780c8102a707bcd3d35880..cf9b98a9f724f9762c4a7cfe28c19da16a5f7014 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/range.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/range.res.oracle @@ -4,10 +4,10 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 4 goals scheduled -[wp] [Qed] Goal typed_test_post_P1_ok : Valid -[wp] [Qed] Goal typed_test_post_P2_ok : Valid -[wp] [Qed] Goal typed_test_call_val_assigns_p_pre_HP_ok : Valid -[wp] [Qed] Goal typed_test_call_val_assigns_q_pre_HQ_ok : Valid +[wp] [Qed] Goal typed_test_ensures_P1_ok : Valid +[wp] [Qed] Goal typed_test_ensures_P2_ok : Valid +[wp] [Qed] Goal typed_test_call_val_assigns_p_requires_HP_ok : Valid +[wp] [Qed] Goal typed_test_call_val_assigns_q_requires_HQ_ok : Valid [wp] Proved goals: 4 / 4 Qed: 4 [wp] Report 'tests/wp_acsl/range.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/reads.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/reads.0.res.oracle index b9820c5fc668f07c45d573cc977ca87992aa673a..1134f87973041a8458dc62fa39859376138ef84f 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/reads.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/reads.0.res.oracle @@ -4,21 +4,21 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 7 goals scheduled -[wp] [Alt-Ergo] Goal typed_f_post_qed_ok : Valid -[wp] [Alt-Ergo] Goal typed_g_post_qed_ok : Valid -[wp] [Qed] Goal typed_modifies_x_post_qed_ok_F_OK : Valid -[wp] [Alt-Ergo] Goal typed_modifies_x_post_qed_ok_W_OK_todo : Unknown -[wp] [Qed] Goal typed_modifies_y_post_qed_ok_F_OK : Valid -[wp] [Qed] Goal typed_modifies_y_post_qed_ok_G_OK : Valid -[wp] [Alt-Ergo] Goal typed_modifies_y_post_qed_ok_W_OK_todo : Unknown +[wp] [Alt-Ergo] Goal typed_f_ensures_qed_ok : Valid +[wp] [Alt-Ergo] Goal typed_g_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_modifies_x_ensures_qed_ok_F_OK : Valid +[wp] [Alt-Ergo] Goal typed_modifies_x_ensures_qed_ok_W_OK_todo : Unknown +[wp] [Qed] Goal typed_modifies_y_ensures_qed_ok_F_OK : Valid +[wp] [Qed] Goal typed_modifies_y_ensures_qed_ok_G_OK : Valid +[wp] [Alt-Ergo] Goal typed_modifies_y_ensures_qed_ok_W_OK_todo : Unknown [wp] Proved goals: 5 / 7 Qed: 3 Alt-Ergo: 2 (unknown: 2) [wp] Report 'tests/wp_acsl/reads.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -f - 1 (8..20) 1 100% -g - 1 (16..28) 1 100% +f - 1 (12..24) 1 100% +g - 1 (20..32) 1 100% modifies_y 2 - 3 66.7% modifies_x 1 - 2 50.0% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/reads.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/reads.1.res.oracle index df2151ee5ac0385ea2ab9a5b8cb204730fed21b3..d35f0f34da7689d26651e64ae1adf2cb9de89f6d 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/reads.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/reads.1.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Alt-Ergo] Goal typed_modifies_x_post_qed_ko_G_KO : Unknown -[wp] [Alt-Ergo] Goal typed_modifies_x_post_qed_ko_H_KO : Unknown -[wp] [Alt-Ergo] Goal typed_modifies_y_post_qed_ko_H_KO : Unknown +[wp] [Alt-Ergo] Goal typed_modifies_x_ensures_qed_ko_G_KO : Unknown +[wp] [Alt-Ergo] Goal typed_modifies_x_ensures_qed_ko_H_KO : Unknown +[wp] [Alt-Ergo] Goal typed_modifies_y_ensures_qed_ko_H_KO : Unknown [wp] Proved goals: 0 / 3 Alt-Ergo: 0 (unknown: 3) [wp] Report 'tests/wp_acsl/reads.i.1.report.json' diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/record.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/record.0.res.oracle index 78f64842093f63d9177b70abd9eb1bdb5515d13c..a2ea10ac9b80001466ddd948bed20efb069c0c0c 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/record.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/record.0.res.oracle @@ -4,22 +4,22 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 11 goals scheduled -[wp] [Alt-Ergo] Goal typed_f_post_M1_qed_ok : Valid -[wp] [Qed] Goal typed_f_post_M2_qed_ok : Valid -[wp] [Qed] Goal typed_f_post_M3_qed_ok : Valid -[wp] [Qed] Goal typed_f_post_M4_qed_ok : Valid -[wp] [Qed] Goal typed_f_post_M5_qed_ok : Valid -[wp] [Qed] Goal typed_f_post_M6_qed_ok : Valid -[wp] [Qed] Goal typed_f_post_P1_qed_ok : Valid -[wp] [Alt-Ergo] Goal typed_f_post_P2_qed_ok : Valid -[wp] [Qed] Goal typed_f_post_P3_qed_ok : Valid -[wp] [Qed] Goal typed_f_post_P4_qed_ok : Valid -[wp] [Qed] Goal typed_f_post_P5_qed_ok : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_M1_qed_ok : Valid +[wp] [Qed] Goal typed_f_ensures_M2_qed_ok : Valid +[wp] [Qed] Goal typed_f_ensures_M3_qed_ok : Valid +[wp] [Qed] Goal typed_f_ensures_M4_qed_ok : Valid +[wp] [Qed] Goal typed_f_ensures_M5_qed_ok : Valid +[wp] [Qed] Goal typed_f_ensures_M6_qed_ok : Valid +[wp] [Qed] Goal typed_f_ensures_P1_qed_ok : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_P2_qed_ok : Valid +[wp] [Qed] Goal typed_f_ensures_P3_qed_ok : Valid +[wp] [Qed] Goal typed_f_ensures_P4_qed_ok : Valid +[wp] [Qed] Goal typed_f_ensures_P5_qed_ok : Valid [wp] Proved goals: 11 / 11 Qed: 9 Alt-Ergo: 2 [wp] Report 'tests/wp_acsl/record.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -f 9 2 (8..20) 11 100% +f 9 2 (12..24) 11 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/record.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/record.1.res.oracle index 8a8174e1563a87d8dbe78fbefdc9098565e0bdb7..72d59398c6be91dad9e49ad0527e4fbe318b36ab 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/record.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/record.1.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Alt-Ergo] Goal typed_f_post_KP5_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_f_ensures_KP5_qed_ko : Unknown [wp] Proved goals: 0 / 1 Alt-Ergo: 0 (unknown: 1) [wp] Report 'tests/wp_acsl/record.i.1.report.json' 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 c7337043ba717ec108b1534c6fdf2e328e8eb160..715daac305cf3a7f9bd3862f3a5fbdf07cf4968f 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,21 +4,21 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 15 goals scheduled -[wp] [Alt-Ergo] Goal typed_f_post : Valid -[wp] [Alt-Ergo] Goal typed_f_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_f_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_f_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_f_loop_inv_2_established : Valid -[wp] [Alt-Ergo] Goal typed_f_loop_inv_3_preserved : Valid -[wp] [Alt-Ergo] Goal typed_f_loop_inv_3_established : Valid -[wp] [Qed] Goal typed_f_loop_assign_part1 : Valid -[wp] [Alt-Ergo] Goal typed_f_loop_assign_part2 : Valid -[wp] [Alt-Ergo] Goal typed_g_post : Valid -[wp] [Alt-Ergo] Goal typed_g_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_g_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_g_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_g_loop_inv_2_established : Valid -[wp] [Qed] Goal typed_g_loop_assign : Valid +[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_established : Valid +[wp] [Alt-Ergo] Goal typed_f_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_f_loop_invariant_2_established : Valid +[wp] [Alt-Ergo] Goal typed_f_loop_invariant_3_preserved : Valid +[wp] [Alt-Ergo] Goal typed_f_loop_invariant_3_established : Valid +[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_established : Valid +[wp] [Alt-Ergo] Goal typed_g_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_g_loop_invariant_2_established : Valid +[wp] [Qed] Goal typed_g_loop_assigns : Valid [wp] Proved goals: 15 / 15 Qed: 6 Alt-Ergo: 9 @@ -26,5 +26,5 @@ ------------------------------------------------------------- Functions WP Alt-Ergo Total Success f 3 6 (88..112) 9 100% -g 3 3 (32..44) 6 100% +g 3 3 (36..48) 6 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/struct_use_case.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/struct_use_case.0.res.oracle index bc2da4692e74afd2351380a01b1d5d6773a82118..ef6763632888b42c9e772ebbe7129a1d918ce1b5 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/struct_use_case.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/struct_use_case.0.res.oracle @@ -4,14 +4,14 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Alt-Ergo] Goal typed_caveat_f_post_ok : Valid -[wp] [Qed] Goal typed_caveat_g_post_ok : Valid +[wp] [Alt-Ergo] Goal typed_caveat_f_ensures_ok : Valid +[wp] [Qed] Goal typed_caveat_g_ensures_ok : Valid [wp] Proved goals: 2 / 2 Qed: 1 Alt-Ergo: 1 [wp] Report 'tests/wp_acsl/struct_use_case.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -f - 1 (12..24) 1 100% +f - 1 (16..28) 1 100% g 1 - 1 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/struct_use_case.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/struct_use_case.1.res.oracle index aa9dcc7c838b295eba14bdfefcf06087c73b0da0..c79e18f32beff0106a9501e7819fa5cd7491182e 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/struct_use_case.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/struct_use_case.1.res.oracle @@ -4,8 +4,8 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Alt-Ergo] Goal typed_caveat_f_post_ko : Unknown -[wp] [Alt-Ergo] Goal typed_caveat_g_post_ko : Unknown +[wp] [Alt-Ergo] Goal typed_caveat_f_ensures_ko : Unknown +[wp] [Alt-Ergo] Goal typed_caveat_g_ensures_ko : Unknown [wp] Proved goals: 0 / 2 Alt-Ergo: 0 (unknown: 2) [wp] Report 'tests/wp_acsl/struct_use_case.i.1.report.json' diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/type_guard.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/type_guard.0.res.oracle index a6ea9f4aee35b72f24c5892b641b421f3e1ecb29..3ba6b703c8f482e68d1c1f9ea2710c9d22b62720 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/type_guard.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/type_guard.0.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Alt-Ergo] Goal typed_f_post_qed_ok : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_qed_ok : Valid [wp] Proved goals: 1 / 1 Qed: 0 Alt-Ergo: 1 diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/type_guard.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/type_guard.1.res.oracle index 8744936bcc14ad243102625fe6ae9731f71e5d77..4c0a4a82d065b3f536d0d7f827695ee0651a7645 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/type_guard.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/type_guard.1.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Alt-Ergo] Goal typed_f_post_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_f_ensures_qed_ko : Unknown [wp] Proved goals: 0 / 1 Alt-Ergo: 0 (unknown: 1) [wp] Report 'tests/wp_acsl/type_guard.i.1.report.json' diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/unit_bit_test.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/unit_bit_test.res.oracle index d7e86c63e7d8693f991c8fef5366b7b241c04641..ee02448280b4c73aa34876eb3a4874e1c0502ffe 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/unit_bit_test.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/unit_bit_test.res.oracle @@ -4,10 +4,10 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 4 goals scheduled -[wp] [Qed] Goal typed_rotate_left_post_bit_zero : Valid -[wp] [Alt-Ergo] Goal typed_rotate_left_post_other_bits : Valid -[wp] [Qed] Goal typed_sum_post_ok : Valid -[wp] [Alt-Ergo] Goal typed_sum_post_ko : Unknown +[wp] [Qed] Goal typed_rotate_left_ensures_bit_zero : Valid +[wp] [Alt-Ergo] Goal typed_rotate_left_ensures_other_bits : Valid +[wp] [Qed] Goal typed_sum_ensures_ok : Valid +[wp] [Alt-Ergo] Goal typed_sum_ensures_ko : Unknown [wp] Proved goals: 3 / 4 Qed: 2 Alt-Ergo: 1 (unknown: 1) @@ -15,5 +15,5 @@ ------------------------------------------------------------- Functions WP Alt-Ergo Total Success sum 1 - 2 50.0% -rotate_left 1 1 (44..56) 2 100% +rotate_left 1 1 (48..60) 2 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/user_def_type_guard.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/user_def_type_guard.0.res.oracle index 1f5420c4053fa980ede1d4ea9050af8a1d59606f..e3c4552cbe9e0350037d723724eb26bf370a4e81 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/user_def_type_guard.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/user_def_type_guard.0.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Alt-Ergo] Goal typed_f_post_qed_ok : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_qed_ok : Valid [wp] Proved goals: 1 / 1 Qed: 0 Alt-Ergo: 1 diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/user_def_type_guard.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/user_def_type_guard.1.res.oracle index 4295e2a6211fcbc7d2b230b393e4f0bd2df74e2b..25a1b0cae037d1c7fb6fdbbfff453344fa380fc0 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/user_def_type_guard.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/user_def_type_guard.1.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Alt-Ergo] Goal typed_f_post_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_f_ensures_qed_ko : Unknown [wp] Proved goals: 0 / 1 Alt-Ergo: 0 (unknown: 1) [wp] Report 'tests/wp_acsl/user_def_type_guard.i.1.report.json' diff --git a/src/plugins/wp/tests/wp_acsl/pointer.i.0.report.json b/src/plugins/wp/tests/wp_acsl/pointer.i.0.report.json index 84a062bbe53b9f468efbf2d33bf8ffdf25666d69..24bc2e2f049ee646bdbf708aa854c519013da8e6 100644 --- a/src/plugins/wp/tests/wp_acsl/pointer.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/pointer.i.0.report.json @@ -1,38 +1,38 @@ { "wp:global": { "alt-ergo": { "total": 6, "unknown": 6 }, "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 9, "valid": 3, "unknown": 6 } }, - "wp:functions": { "array": { "array_post_Eq": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "array_post_Le": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "array_post_Lt": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "array": { "array_ensures_Eq": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "array_ensures_Le": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "array_ensures_Lt": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 3, "valid": 3 } } }, - "pointer": { "pointer_post_qed_ko_Eq_oracle_ko": + "pointer": { "pointer_ensures_qed_ko_Eq_oracle_ko": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "pointer_post_qed_ko_Le_oracle_ko": + "pointer_ensures_qed_ko_Le_oracle_ko": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": { "total": 2, "unknown": 2 } } }, - "mixed_array_pointer": { "mixed_array_pointer_post_qed_ko_Lt_oracle_ko": + "mixed_array_pointer": { "mixed_array_pointer_ensures_qed_ko_Lt_oracle_ko": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "mixed_array_pointer_post_qed_ko_Le_oracle_ko": + "mixed_array_pointer_ensures_qed_ko_Le_oracle_ko": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, @@ -43,10 +43,10 @@ "wp:main": { "total": 2, "unknown": 2 } } }, - "absurd": { "absurd_post_qed_ko_Comp_oracle_ko": + "absurd": { "absurd_ensures_qed_ko_Comp_oracle_ko": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "absurd_post_qed_ko_Base_oracle_ko": + "absurd_ensures_qed_ko_Base_oracle_ko": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 2, diff --git a/src/plugins/wp/tests/wp_acsl/pointer.i.1.report.json b/src/plugins/wp/tests/wp_acsl/pointer.i.1.report.json index 84a062bbe53b9f468efbf2d33bf8ffdf25666d69..24bc2e2f049ee646bdbf708aa854c519013da8e6 100644 --- a/src/plugins/wp/tests/wp_acsl/pointer.i.1.report.json +++ b/src/plugins/wp/tests/wp_acsl/pointer.i.1.report.json @@ -1,38 +1,38 @@ { "wp:global": { "alt-ergo": { "total": 6, "unknown": 6 }, "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 9, "valid": 3, "unknown": 6 } }, - "wp:functions": { "array": { "array_post_Eq": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "array_post_Le": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "array_post_Lt": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "array": { "array_ensures_Eq": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "array_ensures_Le": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "array_ensures_Lt": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 3, "valid": 3 } } }, - "pointer": { "pointer_post_qed_ko_Eq_oracle_ko": + "pointer": { "pointer_ensures_qed_ko_Eq_oracle_ko": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "pointer_post_qed_ko_Le_oracle_ko": + "pointer_ensures_qed_ko_Le_oracle_ko": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": { "total": 2, "unknown": 2 } } }, - "mixed_array_pointer": { "mixed_array_pointer_post_qed_ko_Lt_oracle_ko": + "mixed_array_pointer": { "mixed_array_pointer_ensures_qed_ko_Lt_oracle_ko": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "mixed_array_pointer_post_qed_ko_Le_oracle_ko": + "mixed_array_pointer_ensures_qed_ko_Le_oracle_ko": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, @@ -43,10 +43,10 @@ "wp:main": { "total": 2, "unknown": 2 } } }, - "absurd": { "absurd_post_qed_ko_Comp_oracle_ko": + "absurd": { "absurd_ensures_qed_ko_Comp_oracle_ko": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "absurd_post_qed_ko_Base_oracle_ko": + "absurd_ensures_qed_ko_Base_oracle_ko": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 2, diff --git a/src/plugins/wp/tests/wp_acsl/precedence.i.0.report.json b/src/plugins/wp/tests/wp_acsl/precedence.i.0.report.json index e6f56a33ce42a5132d53ef846fd4e743a142c83e..db09e8ac05f0bb0ebc86fa1be39a1bd8f8333434 100644 --- a/src/plugins/wp/tests/wp_acsl/precedence.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/precedence.i.0.report.json @@ -1,117 +1,111 @@ { "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 2 }, "qed": { "total": 51, "valid": 51 }, "wp:main": { "total": 52, "valid": 52, "rank": 2 } }, - "wp:functions": { "predicate": { "predicate_post_r_precedence_ite_naming": + "wp:functions": { "predicate": { "predicate_ensures_r_precedence_ite_naming": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_scope_let_2": { "qed": + "predicate_ensures_scope_let_2": { "qed": { "total": 1, "valid": 1 }, - "wp:main": + "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_scope_let": { "qed": - { "total": 1, + "predicate_ensures_scope_let": { "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, + "wp:main": + { "total": 1, "valid": 1 } }, - "predicate_post_r_assoc_let": { "qed": + "predicate_ensures_r_assoc_let": { "qed": { "total": 1, "valid": 1 }, - "wp:main": + "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_l_precedence_ite_let": + "predicate_ensures_l_precedence_ite_let": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_m_precedence_ite_let": + "predicate_ensures_m_precedence_ite_let": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_r_precedence_ite_let": + "predicate_ensures_r_precedence_ite_let": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_r_assoc_exist": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "predicate_post_l_precedence_ite_exists": + "predicate_ensures_r_assoc_exist": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_m_precedence_ite_exists": + "predicate_ensures_l_precedence_ite_exists": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_r_precedence_ite_exists": + "predicate_ensures_m_precedence_ite_exists": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_r_assoc_forall": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "predicate_post_l_precedence_ite_forall": + "predicate_ensures_r_precedence_ite_exists": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "predicate_ensures_r_assoc_forall": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_m_precedence_ite_forall": + "predicate_ensures_l_precedence_ite_forall": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_r_precedence_ite_forall": + "predicate_ensures_m_precedence_ite_forall": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_r_assoc_ite": { "qed": + "predicate_ensures_r_precedence_ite_forall": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "predicate_ensures_r_assoc_ite": { "qed": { "total": 1, "valid": 1 }, - "wp:main": + "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_l_precedence_equiv_ite": + "predicate_ensures_l_precedence_equiv_ite": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_m_precedence_equiv_ite": + "predicate_ensures_m_precedence_equiv_ite": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_r_precedence_equiv_ite": + "predicate_ensures_r_precedence_equiv_ite": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_l_precedence_implies_equiv": + "predicate_ensures_l_precedence_implies_equiv": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_r_precedence_implies_equiv": + "predicate_ensures_r_precedence_implies_equiv": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_r_assoc_implies": + "predicate_ensures_r_assoc_implies": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_ok_since": { "qed": - { "total": 1, + "predicate_ensures_ok_since": { "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, + "wp:main": + { "total": 1, "valid": 1 } }, - "predicate_post_ok_r_precedence_implies_or": + "predicate_ensures_ok_r_precedence_implies_or": { "alt-ergo": { "total": 1, "valid": 1, "rank": 2 }, "wp:main": { "total": 1, "valid": 1, "rank": 2 } }, - "predicate_post_l_precedence_or_implies": + "predicate_ensures_l_precedence_or_implies": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_r_precedence_or_implies": + "predicate_ensures_r_precedence_or_implies": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_l_precedence_xor_or": + "predicate_ensures_l_precedence_xor_or": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_r_precedence_xor_or": + "predicate_ensures_r_precedence_xor_or": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_l_precedence_and_xor": + "predicate_ensures_l_precedence_and_xor": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_r_precedence_and_xor": + "predicate_ensures_r_precedence_and_xor": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, @@ -122,85 +116,86 @@ "wp:main": { "total": 30, "valid": 30, "rank": 2 } } }, - "comparison": { "comparison_post_l_precedence_neq_and": + "comparison": { "comparison_ensures_l_precedence_neq_and": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "comparison_post_r_precedence_neq_and": + "comparison_ensures_r_precedence_neq_and": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "comparison_post_l_precedence_eq_and": + "comparison_ensures_l_precedence_eq_and": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "comparison_post_r_precedence_eq_and": + "comparison_ensures_r_precedence_eq_and": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "comparison_post_chainable_eq_eq": + "comparison_ensures_chainable_eq_eq": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "comparison_post_chainable_ge_ge": + "comparison_ensures_chainable_ge_ge": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "comparison_post_chainable_gt_gt": + "comparison_ensures_chainable_gt_gt": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "comparison_post_chainable_le_le": + "comparison_ensures_chainable_le_le": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "comparison_post_chainable_lt_lt": + "comparison_ensures_chainable_lt_lt": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, "wp:section": { "qed": { "total": 9, "valid": 9 }, "wp:main": { "total": 9, "valid": 9 } } }, - "bitwise": { "bitwise_post_l_precedence_implies_equiv": + "bitwise": { "bitwise_ensures_l_precedence_implies_equiv": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "bitwise_post_r_precedence_implies_equiv": + "bitwise_ensures_r_precedence_implies_equiv": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "bitwise_post_r_assoc_implies": { "qed": + "bitwise_ensures_r_assoc_implies": { "qed": { "total": 1, "valid": 1 }, - "wp:main": + "wp:main": { "total": 1, "valid": 1 } }, - "bitwise_post_ok_since": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "bitwise_post_ok_r_precedence_implies_or": + "bitwise_ensures_ok_since": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "bitwise_ensures_ok_r_precedence_implies_or": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "bitwise_post_l_precedence_or_implies": + "bitwise_ensures_l_precedence_or_implies": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "bitwise_post_r_precedence_or_implies": + "bitwise_ensures_r_precedence_or_implies": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "bitwise_post_l_precedence_xor_or": + "bitwise_ensures_l_precedence_xor_or": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "bitwise_post_r_precedence_xor_or": + "bitwise_ensures_r_precedence_xor_or": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "bitwise_post_l_precedence_and_xor": + "bitwise_ensures_l_precedence_and_xor": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "bitwise_post_r_precedence_and_xor": + "bitwise_ensures_r_precedence_and_xor": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, "wp:section": { "qed": { "total": 11, "valid": 11 }, "wp:main": { "total": 11, "valid": 11 } } }, - "predicate_bitwise": { "predicate_bitwise_post_l_precedence_equiv_Pand": + "predicate_bitwise": { "predicate_bitwise_ensures_l_precedence_equiv_Pand": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_bitwise_post_r_precedence_equiv_Pand": + "predicate_bitwise_ensures_r_precedence_equiv_Pand": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_acsl/precedence.i.1.report.json b/src/plugins/wp/tests/wp_acsl/precedence.i.1.report.json index f4ee809d7dcb9c42b674bb7cf680480c684e0e7f..47bc323909bc169c81bdfa3e75ab33a9d4e89e85 100644 --- a/src/plugins/wp/tests/wp_acsl/precedence.i.1.report.json +++ b/src/plugins/wp/tests/wp_acsl/precedence.i.1.report.json @@ -1,117 +1,116 @@ { "wp:global": { "alt-ergo": { "total": 37, "unknown": 37 }, "wp:main": { "total": 37, "unknown": 37 } }, - "wp:functions": { "predicate": { "predicate_post_ko_l_assoc_naming": + "wp:functions": { "predicate": { "predicate_ensures_ko_l_assoc_naming": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_l_precedence_let_ite": + "predicate_ensures_ko_l_precedence_let_ite": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_m_precedence_let_ite": + "predicate_ensures_ko_m_precedence_let_ite": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_r_precedence_let_ite": + "predicate_ensures_ko_r_precedence_let_ite": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_r_assoc_exist": + "predicate_ensures_ko_r_assoc_exist": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_l_precedence_exists_ite": + "predicate_ensures_ko_l_precedence_exists_ite": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_m_precedence_exists_ite": + "predicate_ensures_ko_m_precedence_exists_ite": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_r_precedence_exists_ite": + "predicate_ensures_ko_r_precedence_exists_ite": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_r_assoc_forall": + "predicate_ensures_ko_r_assoc_forall": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_l_precedence_forall_ite": + "predicate_ensures_ko_l_precedence_forall_ite": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_m_precedence_forall_ite": + "predicate_ensures_ko_m_precedence_forall_ite": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_r_precedence_forall_ite": + "predicate_ensures_ko_r_precedence_forall_ite": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_l_assoc_ite": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, - "predicate_post_ko_l_precedence_ite_equiv": + "predicate_ensures_ko_l_assoc_ite": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_r_precedence_ite_equiv": + "predicate_ensures_ko_l_precedence_ite_equiv": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_l_precedence_equiv_implies": + "predicate_ensures_ko_r_precedence_ite_equiv": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_r_precedence_equiv_implies": + "predicate_ensures_ko_l_precedence_equiv_implies": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_l_assoc_implies": + "predicate_ensures_ko_r_precedence_equiv_implies": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_l_precedence_implies_or": + "predicate_ensures_ko_l_assoc_implies": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_r_precedence_or_xor": + "predicate_ensures_ko_l_precedence_implies_or": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_l_precedence_or_xor": + "predicate_ensures_ko_r_precedence_or_xor": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_r_precedence_xor_and": + "predicate_ensures_ko_l_precedence_or_xor": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_l_precedence_xor_and": + "predicate_ensures_ko_r_precedence_xor_and": + { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "predicate_ensures_ko_l_precedence_xor_and": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, @@ -120,32 +119,32 @@ "unknown": 23 }, "wp:main": { "total": 23, "unknown": 23 } } }, - "comparison": { "comparison_post_ko_l_precedence_and_neq": + "comparison": { "comparison_ensures_ko_l_precedence_and_neq": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "comparison_post_ko_r_precedence_and_neq": + "comparison_ensures_ko_r_precedence_and_neq": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "comparison_post_ko_r_nonassoc_eq": + "comparison_ensures_ko_r_nonassoc_eq": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "comparison_post_ko_l_nonassoc_eq": + "comparison_ensures_ko_l_nonassoc_eq": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "comparison_post_ko_l_precedence_and_eq": + "comparison_ensures_ko_l_precedence_and_eq": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "comparison_post_ko_r_precedence_and_eq": + "comparison_ensures_ko_r_precedence_and_eq": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, @@ -154,31 +153,28 @@ "unknown": 6 }, "wp:main": { "total": 6, "unknown": 6 } } }, - "bitwise": { "bitwise_post_ko_l_precedence_equiv_implies": + "bitwise": { "bitwise_ensures_ko_l_precedence_equiv_implies": + { "alt-ergo": { "total": 1, "unknown": 1 }, + "wp:main": { "total": 1, "unknown": 1 } }, + "bitwise_ensures_ko_r_precedence_equiv_implies": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "bitwise_post_ko_r_precedence_equiv_implies": + "bitwise_ensures_ko_l_assoc_implies": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "bitwise_post_ko_l_assoc_implies": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, - "bitwise_post_ko_l_precedence_implies_or": + "bitwise_ensures_ko_l_precedence_implies_or": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "bitwise_post_ko_r_precedence_or_xor": + "bitwise_ensures_ko_r_precedence_or_xor": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "bitwise_post_ko_l_precedence_or_xor": + "bitwise_ensures_ko_l_precedence_or_xor": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "bitwise_post_ko_r_precedence_xor_and": + "bitwise_ensures_ko_r_precedence_xor_and": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "bitwise_post_ko_l_precedence_xor_and": + "bitwise_ensures_ko_l_precedence_xor_and": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 8, diff --git a/src/plugins/wp/tests/wp_acsl/range.i.0.report.json b/src/plugins/wp/tests/wp_acsl/range.i.0.report.json index 8c826553edf4f3838808c7a0b7ba2b3bd8cab80c..d2f9a6999e9c03657fb5523f99bafc0a85eefb0f 100644 --- a/src/plugins/wp/tests/wp_acsl/range.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/range.i.0.report.json @@ -1,19 +1,25 @@ { "wp:global": { "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 4, "valid": 4 } }, - "wp:functions": { "test": { "specialization_val_assigns_q_pre_HQ_ok_at_test_stmt_2": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "specialization_val_assigns_p_pre_HP_ok_at_test_stmt_1": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "test_post_P2_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "test_post_P1_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "test": { "val_assigns_q_requires_HQ_ok": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "val_assigns_p_requires_HP_ok": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "test_ensures_P2_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "test_ensures_P1_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 4, diff --git a/src/plugins/wp/tests/wp_acsl/reads.i.0.report.json b/src/plugins/wp/tests/wp_acsl/reads.i.0.report.json index f94728bb3726fd7c91bb967d9ca076fe1d0d1559..1cf27c3b07a3485d1473914e6544469b28ba09ee 100644 --- a/src/plugins/wp/tests/wp_acsl/reads.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/reads.i.0.report.json @@ -1,49 +1,43 @@ { "wp:global": { "alt-ergo": { "total": 4, "valid": 2, "unknown": 2, - "rank": 5 }, + "rank": 6 }, "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 7, "valid": 5, "unknown": 2, - "rank": 5 } }, - "wp:functions": { "f": { "f_post_qed_ok": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 3 } }, + "rank": 6 } }, + "wp:functions": { "f": { "f_ensures_qed_ok": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } } }, - "g": { "g_post_qed_ok": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 5 } }, + "rank": 4 } } }, + "g": { "g_ensures_qed_ok": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 6 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 6 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 5 }, + "rank": 6 }, "wp:main": { "total": 1, "valid": 1, - "rank": 5 } } }, - "modifies_y": { "modifies_y_post_qed_ok_W_OK_todo": + "rank": 6 } } }, + "modifies_y": { "modifies_y_ensures_qed_ok_W_OK_todo": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "modifies_y_post_qed_ok_G_OK": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "modifies_y_post_qed_ok_F_OK": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "modifies_y_ensures_qed_ok_G_OK": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "modifies_y_ensures_qed_ok_F_OK": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 2, @@ -51,17 +45,14 @@ "wp:main": { "total": 3, "valid": 2, "unknown": 1 } } }, - "modifies_x": { "modifies_x_post_qed_ok_W_OK_todo": + "modifies_x": { "modifies_x_ensures_qed_ok_W_OK_todo": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "modifies_x_post_qed_ok_F_OK": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "modifies_x_ensures_qed_ok_F_OK": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 1, diff --git a/src/plugins/wp/tests/wp_acsl/reads.i.1.report.json b/src/plugins/wp/tests/wp_acsl/reads.i.1.report.json index f4ac0417345e052a2ad213c9e4446977997fd652..f145905f3f1bb235dd361b41335a53c980721505 100644 --- a/src/plugins/wp/tests/wp_acsl/reads.i.1.report.json +++ b/src/plugins/wp/tests/wp_acsl/reads.i.1.report.json @@ -1,27 +1,24 @@ { "wp:global": { "alt-ergo": { "total": 3, "unknown": 3 }, "wp:main": { "total": 3, "unknown": 3 } }, - "wp:functions": { "modifies_y": { "modifies_y_post_qed_ko_H_KO": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, + "wp:functions": { "modifies_y": { "modifies_y_ensures_qed_ko_H_KO": + { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } } }, - "modifies_x": { "modifies_x_post_qed_ko_H_KO": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, - "modifies_x_post_qed_ko_G_KO": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, + "modifies_x": { "modifies_x_ensures_qed_ko_H_KO": + { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "modifies_x_ensures_qed_ko_G_KO": + { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": { "total": 2, diff --git a/src/plugins/wp/tests/wp_acsl/record.i.0.report.json b/src/plugins/wp/tests/wp_acsl/record.i.0.report.json index 9088827e1204b21214c522863bc94621babe2eda..9b9a9693c3054b91ddd8401b4698d45450a429da 100644 --- a/src/plugins/wp/tests/wp_acsl/record.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/record.i.0.report.json @@ -1,58 +1,58 @@ -{ "wp:global": { "alt-ergo": { "total": 2, "valid": 2, "rank": 3 }, +{ "wp:global": { "alt-ergo": { "total": 2, "valid": 2, "rank": 4 }, "qed": { "total": 9, "valid": 9 }, - "wp:main": { "total": 11, "valid": 11, "rank": 3 } }, - "wp:functions": { "f": { "f_post_P5_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_P4_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_P3_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_P2_qed_ok": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 3 } }, - "f_post_P1_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_M6_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_M5_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_M4_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_M3_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_M2_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_M1_qed_ok": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 3 } }, + "wp:main": { "total": 11, "valid": 11, "rank": 4 } }, + "wp:functions": { "f": { "f_ensures_P5_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_P4_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_P3_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_P2_qed_ok": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } }, + "f_ensures_P1_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_M6_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_M5_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_M4_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_M3_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_M2_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_M1_qed_ok": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 3 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 3 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 3 }, + "rank": 4 }, "qed": { "total": 9, "valid": 9 }, "wp:main": { "total": 11, "valid": 11, - "rank": 3 } } } } } + "rank": 4 } } } } } diff --git a/src/plugins/wp/tests/wp_acsl/record.i.1.report.json b/src/plugins/wp/tests/wp_acsl/record.i.1.report.json index cb6c705d66e39d531179b6c6e67dfc466d62534d..51e5dfebbb711da48275cf971ae5002909811134 100644 --- a/src/plugins/wp/tests/wp_acsl/record.i.1.report.json +++ b/src/plugins/wp/tests/wp_acsl/record.i.1.report.json @@ -1,9 +1,9 @@ { "wp:global": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "wp:functions": { "f": { "f_post_KP5_qed_ko": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "wp:functions": { "f": { "f_ensures_KP5_qed_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_acsl/simpl_is_type.i.0.report.json b/src/plugins/wp/tests/wp_acsl/simpl_is_type.i.0.report.json index d38e69542c69f1b4a84bb4639d1e59834a9094f5..d07adcf774b224f941c13beee90765584afdb8a1 100644 --- a/src/plugins/wp/tests/wp_acsl/simpl_is_type.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/simpl_is_type.i.0.report.json @@ -1,39 +1,42 @@ { "wp:global": { "alt-ergo": { "total": 9, "valid": 9, "rank": 20 }, "qed": { "total": 6, "valid": 6 }, "wp:main": { "total": 15, "valid": 15, "rank": 20 } }, - "wp:functions": { "f": { "f_loop_inv_3": { "alt-ergo": { "total": 2, - "valid": 2, - "rank": 20 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 20 } }, - "f_loop_inv_2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 14 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 14 } }, - "f_loop_inv": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 4 } }, - "f_loop_assign": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 19 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 19 } }, - "f_post": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 5 } }, + "wp:functions": { "f": { "f_loop_invariant_3": { "alt-ergo": { "total": 2, + "valid": 2, + "rank": 20 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 20 } }, + "f_loop_invariant_2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 15 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 15 } }, + "f_loop_invariant": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 4 } }, + "f_loop_assigns": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 19 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 19 } }, + "f_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 6 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 6 } }, "wp:section": { "alt-ergo": { "total": 6, "valid": 6, "rank": 20 }, @@ -41,33 +44,36 @@ "wp:main": { "total": 9, "valid": 9, "rank": 20 } } }, - "g": { "g_loop_inv_2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 9 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 9 } }, - "g_loop_inv": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 4 } }, - "g_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "g_post": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 6 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 6 } }, + "g": { "g_loop_invariant_2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 9 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 9 } }, + "g_loop_invariant": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 4 } }, + "g_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "g_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 7 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 7 } }, "wp:section": { "alt-ergo": { "total": 3, "valid": 3, - "rank": 9 }, + "rank": 10 }, "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 6, "valid": 6, - "rank": 9 } } } } } + "rank": 10 } } } } } diff --git a/src/plugins/wp/tests/wp_acsl/struct_use_case.i.0.report.json b/src/plugins/wp/tests/wp_acsl/struct_use_case.i.0.report.json index 9c63f9c8cb36650f0966a0ebfa79d7cb96b2383e..aaae37ff8f878420384af3259e3bfb78d22109dd 100644 --- a/src/plugins/wp/tests/wp_acsl/struct_use_case.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/struct_use_case.i.0.report.json @@ -1,21 +1,22 @@ -{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, +{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 5 }, "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 2, "valid": 2, "rank": 4 } }, - "wp:functions": { "f": { "f_post_ok": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, + "wp:main": { "total": 2, "valid": 2, "rank": 5 } }, + "wp:functions": { "f": { "f_ensures_ok": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 4 }, + "rank": 5 }, "wp:main": { "total": 1, "valid": 1, - "rank": 4 } } }, - "g": { "g_post_ok": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "rank": 5 } } }, + "g": { "g_ensures_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } } } } diff --git a/src/plugins/wp/tests/wp_acsl/struct_use_case.i.1.report.json b/src/plugins/wp/tests/wp_acsl/struct_use_case.i.1.report.json index 94840d490cdf280942961010b08c1ce7db56ac7b..6b4d6768aebd25c56a7bf0771169de61d601e9ff 100644 --- a/src/plugins/wp/tests/wp_acsl/struct_use_case.i.1.report.json +++ b/src/plugins/wp/tests/wp_acsl/struct_use_case.i.1.report.json @@ -1,17 +1,17 @@ { "wp:global": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": { "total": 2, "unknown": 2 } }, - "wp:functions": { "f": { "f_post_ko": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "wp:functions": { "f": { "f_ensures_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } } }, - "g": { "g_post_ko": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "g": { "g_ensures_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_acsl/type_guard.i.0.report.json b/src/plugins/wp/tests/wp_acsl/type_guard.i.0.report.json index fb064203528e5eee25162196cbba807898464150..0618799784165be7c5a9c17185f4d7324684eaef 100644 --- a/src/plugins/wp/tests/wp_acsl/type_guard.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/type_guard.i.0.report.json @@ -1,11 +1,11 @@ { "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, "wp:main": { "total": 1, "valid": 1, "rank": 4 } }, - "wp:functions": { "f": { "f_post_qed_ok": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, + "wp:functions": { "f": { "f_ensures_qed_ok": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, diff --git a/src/plugins/wp/tests/wp_acsl/type_guard.i.1.report.json b/src/plugins/wp/tests/wp_acsl/type_guard.i.1.report.json index 4610ea6500e483923af7be7db0f4a28e975cc4b2..2bc163cf605feecdbd36d9f76487a13ff5787b88 100644 --- a/src/plugins/wp/tests/wp_acsl/type_guard.i.1.report.json +++ b/src/plugins/wp/tests/wp_acsl/type_guard.i.1.report.json @@ -1,9 +1,9 @@ { "wp:global": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "wp:functions": { "f": { "f_post_qed_ko": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "wp:functions": { "f": { "f_ensures_qed_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_acsl/unit_bit_test.c.0.report.json b/src/plugins/wp/tests/wp_acsl/unit_bit_test.c.0.report.json index 4cfd17d42d781fa75239484b5f21aef5f83682e6..6c8cdc3f855be7fa51140fe38517e7171e44eb05 100644 --- a/src/plugins/wp/tests/wp_acsl/unit_bit_test.c.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/unit_bit_test.c.0.report.json @@ -1,16 +1,16 @@ { "wp:global": { "alt-ergo": { "total": 2, "valid": 1, "unknown": 1, - "rank": 12 }, + "rank": 13 }, "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 4, "valid": 3, "unknown": 1, - "rank": 12 } }, - "wp:functions": { "sum": { "sum_post_ko": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "sum_post_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "rank": 13 } }, + "wp:functions": { "sum": { "sum_ensures_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "sum_ensures_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 1, @@ -18,25 +18,21 @@ "wp:main": { "total": 2, "valid": 1, "unknown": 1 } } }, - "rotate_left": { "rotate_left_post_other_bits": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 12 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 12 } }, - "rotate_left_post_bit_zero": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "rotate_left": { "rotate_left_ensures_other_bits": + { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 13 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 13 } }, + "rotate_left_ensures_bit_zero": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 12 }, + "rank": 13 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 12 } } } } } + "rank": 13 } } } } } diff --git a/src/plugins/wp/tests/wp_acsl/user_def_type_guard.i.0.report.json b/src/plugins/wp/tests/wp_acsl/user_def_type_guard.i.0.report.json index fb064203528e5eee25162196cbba807898464150..0618799784165be7c5a9c17185f4d7324684eaef 100644 --- a/src/plugins/wp/tests/wp_acsl/user_def_type_guard.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/user_def_type_guard.i.0.report.json @@ -1,11 +1,11 @@ { "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, "wp:main": { "total": 1, "valid": 1, "rank": 4 } }, - "wp:functions": { "f": { "f_post_qed_ok": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, + "wp:functions": { "f": { "f_ensures_qed_ok": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, diff --git a/src/plugins/wp/tests/wp_acsl/user_def_type_guard.i.1.report.json b/src/plugins/wp/tests/wp_acsl/user_def_type_guard.i.1.report.json index 4610ea6500e483923af7be7db0f4a28e975cc4b2..2bc163cf605feecdbd36d9f76487a13ff5787b88 100644 --- a/src/plugins/wp/tests/wp_acsl/user_def_type_guard.i.1.report.json +++ b/src/plugins/wp/tests/wp_acsl/user_def_type_guard.i.1.report.json @@ -1,9 +1,9 @@ { "wp:global": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "wp:functions": { "f": { "f_post_qed_ko": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "wp:functions": { "f": { "f_ensures_qed_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_bts/bts0708.i.0.report.json b/src/plugins/wp/tests/wp_bts/bts0708.i.0.report.json index 27c215485f0ca0b5e26cf2faf090f5fe7d6203ed..9b21c57e6764f83c8106e8bdcba457980dd363e9 100644 --- a/src/plugins/wp/tests/wp_bts/bts0708.i.0.report.json +++ b/src/plugins/wp/tests/wp_bts/bts0708.i.0.report.json @@ -1,15 +1,17 @@ { "wp:global": { "alt-ergo": { "total": 2, "valid": 2, "rank": 2 }, "wp:main": { "total": 2, "valid": 2, "rank": 2 } }, - "wp:functions": { "f": { "f_post_B": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 2 } }, - "f_post_A": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 2 } }, + "wp:functions": { "f": { "f_ensures_B": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_A": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, "rank": 2 }, diff --git a/src/plugins/wp/tests/wp_bts/bts0843.i.0.report.json b/src/plugins/wp/tests/wp_bts/bts0843.i.0.report.json index 98fac150243c88f138f6b09847411550ae262f18..f84577519767591971bbc20da35fe4f852aae130 100644 --- a/src/plugins/wp/tests/wp_bts/bts0843.i.0.report.json +++ b/src/plugins/wp/tests/wp_bts/bts0843.i.0.report.json @@ -1,24 +1,22 @@ { "wp:global": { "alt-ergo": { "total": 2, "valid": 2, "rank": 3 }, "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 4, "valid": 4, "rank": 3 } }, - "wp:functions": { "f3": { "f3_assign": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "f3": { "f3_assigns": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "g3": { "specialization_f3_pre_at_g3_stmt_4": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "g3_assign": { "alt-ergo": { "total": 2, + "g3": { "f3_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "g3_assigns": { "alt-ergo": { "total": 2, + "valid": 2, + "rank": 3 }, + "wp:main": { "total": 2, "valid": 2, - "rank": 3 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 3 } }, + "rank": 3 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, "rank": 3 }, diff --git a/src/plugins/wp/tests/wp_bts/bts788.i.0.report.json b/src/plugins/wp/tests/wp_bts/bts788.i.0.report.json index 88377a5be5690138764ea88265c25891193ad7c0..b18ac612571ac4ffa33fa11a0c96b7265de6be08 100644 --- a/src/plugins/wp/tests/wp_bts/bts788.i.0.report.json +++ b/src/plugins/wp/tests/wp_bts/bts788.i.0.report.json @@ -1,22 +1,22 @@ { "wp:global": { "alt-ergo": { "total": 2, "valid": 2, "rank": 3 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 3, "valid": 3, "rank": 3 } }, - "wp:functions": { "main": { "main_post_I2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 3 } }, - "main_post_I1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 3 } }, - "main_post_I0": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "main": { "main_ensures_I2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 3 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 3 } }, + "main_ensures_I1": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 3 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 3 } }, + "main_ensures_I0": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, "rank": 3 }, diff --git a/src/plugins/wp/tests/wp_bts/bts_1360.i.0.report.json b/src/plugins/wp/tests/wp_bts/bts_1360.i.0.report.json index 6a79ffdefbfbe2beb018b7888d35cb07a7bf0f63..94487efbf272d7019456522624b242efb432604c 100644 --- a/src/plugins/wp/tests/wp_bts/bts_1360.i.0.report.json +++ b/src/plugins/wp/tests/wp_bts/bts_1360.i.0.report.json @@ -14,14 +14,16 @@ "foo_wrong_assert_rte_mem_access": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "foo_wrong_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "foo_wrong_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "foo_wrong_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "foo_wrong_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 4, @@ -43,16 +45,18 @@ "rank": 4 }, "wp:main": { "total": 1, "valid": 1, "rank": 4 } }, - "foo_correct_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "foo_correct_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "foo_correct_assigns": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "foo_correct_ensures": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, diff --git a/src/plugins/wp/tests/wp_bts/bts_1462.i.0.report.json b/src/plugins/wp/tests/wp_bts/bts_1462.i.0.report.json index b7594892d85855829ee677051fabf893258ee369..0719103e8bc1d5263f550516f702cf3c0b923272 100644 --- a/src/plugins/wp/tests/wp_bts/bts_1462.i.0.report.json +++ b/src/plugins/wp/tests/wp_bts/bts_1462.i.0.report.json @@ -8,21 +8,26 @@ "rank": 2 }, "wp:main": { "total": 1, "valid": 1, "rank": 2 } }, - "wrong_loop_inv_C": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "wrong_loop_inv_B": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "wrong_loop_inv_A_KO": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 1, - "unknown": 1 } }, + "wrong_loop_invariant_C": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": + { "total": 2, + "valid": 2 } }, + "wrong_loop_invariant_B": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": + { "total": 2, + "valid": 2 } }, + "wrong_loop_invariant_A_KO": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 1, + "unknown": 1 } }, "wrong_assert_for_value": { "alt-ergo": { "total": 1, "valid": 1, @@ -31,10 +36,10 @@ { "total": 1, "valid": 1, "rank": 1 } }, - "wrong_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wrong_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 3, "valid": 2, "unknown": 1, @@ -45,14 +50,14 @@ "valid": 8, "unknown": 1, "rank": 2 } } }, - "local": { "local_loop_inv": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "local_loop_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, + "local": { "local_loop_invariant": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "local_loop_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, "wp:section": { "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 4, diff --git a/src/plugins/wp/tests/wp_bts/bts_1586.i.0.report.json b/src/plugins/wp/tests/wp_bts/bts_1586.i.0.report.json index 9b65d383251243503724bec1e5dbb1df40266956..c8f7254db678407b637fbbd5630ad7138b8d784f 100644 --- a/src/plugins/wp/tests/wp_bts/bts_1586.i.0.report.json +++ b/src/plugins/wp/tests/wp_bts/bts_1586.i.0.report.json @@ -1,7 +1,7 @@ { "wp:global": { "alt-ergo": { "total": 2, "unknown": 2 }, "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 4, "valid": 2, "unknown": 2 } }, - "wp:functions": { "compute_bizarre": { "compute_bizarre_Bizarre_post_TRANS": + "wp:functions": { "compute_bizarre": { "compute_bizarre_Bizarre_ensures_TRANS": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, @@ -10,7 +10,7 @@ "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "compute_normal": { "compute_normal_Normal_post_TRANS": + "compute_normal": { "compute_normal_Normal_ensures_TRANS": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, diff --git a/src/plugins/wp/tests/wp_bts/bts_1588.i.0.report.json b/src/plugins/wp/tests/wp_bts/bts_1588.i.0.report.json index 599915d2f1099c20e57378f12c8b7650869f021d..20f18a7e95a515ebdf59eef3ef5be2c0db1a115a 100644 --- a/src/plugins/wp/tests/wp_bts/bts_1588.i.0.report.json +++ b/src/plugins/wp/tests/wp_bts/bts_1588.i.0.report.json @@ -3,10 +3,10 @@ "wp:functions": { "f": { "f_assert_a1": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "f_loop_inv_l1_2": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, + "f_loop_invariant_l1_2": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, "wp:section": { "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 3, "valid": 3 } } } } } diff --git a/src/plugins/wp/tests/wp_bts/bts_1601.c.0.report.json b/src/plugins/wp/tests/wp_bts/bts_1601.c.0.report.json index 43baa1f072a617efb65c27d8f4b662a8327e8b92..406e1c61d89ad35e2df5c92b839eec586460153d 100644 --- a/src/plugins/wp/tests/wp_bts/bts_1601.c.0.report.json +++ b/src/plugins/wp/tests/wp_bts/bts_1601.c.0.report.json @@ -1,6 +1,6 @@ -{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, +{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 5 }, "qed": { "total": 7, "valid": 7 }, - "wp:main": { "total": 8, "valid": 8, "rank": 4 } }, + "wp:main": { "total": 8, "valid": 8, "rank": 5 } }, "wp:functions": { "foo": { "foo_assert_7": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, @@ -27,19 +27,19 @@ "valid": 1 } }, "foo_assert": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 4 }, + "rank": 5 }, "wp:main": { "total": 1, "valid": 1, - "rank": 4 } }, - "foo_basic_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "rank": 5 } }, + "foo_basic_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 4 }, + "rank": 5 }, "qed": { "total": 7, "valid": 7 }, "wp:main": { "total": 8, "valid": 8, - "rank": 4 } } } } } + "rank": 5 } } } } } diff --git a/src/plugins/wp/tests/wp_bts/bts_1828.i.0.report.json b/src/plugins/wp/tests/wp_bts/bts_1828.i.0.report.json index db6b667f02bcfbfa38ed9f12bbd73782bdd9d252..2e19c0ff7adfbea3e83cdfe089a417b6f604525c 100644 --- a/src/plugins/wp/tests/wp_bts/bts_1828.i.0.report.json +++ b/src/plugins/wp/tests/wp_bts/bts_1828.i.0.report.json @@ -1,22 +1,22 @@ { "wp:global": { "alt-ergo": { "total": 3, "valid": 1, "unknown": 2, - "rank": 1 }, + "rank": 3 }, "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 6, "valid": 4, "unknown": 2, - "rank": 1 } }, + "rank": 3 } }, "wp:functions": { "local_frame": { "local_frame_assert_ok": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, + "rank": 3 }, "wp:main": { "total": 1, "valid": 1, - "rank": 1 } }, + "rank": 3 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, + "rank": 3 }, "wp:main": { "total": 1, "valid": 1, - "rank": 1 } } }, + "rank": 3 } } }, "global_frame": { "global_frame_assert_ok_2": { "qed": { "total": 1, "valid": 1 }, @@ -29,16 +29,16 @@ "wp:main": { "total": 1, "valid": 1 } }, - "global_frame_post_zero_always": + "global_frame_ensures_zero_always": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "global_frame_post_one_iff_ref": + "global_frame_ensures_one_iff_ref": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "global_frame_post_sep_iff_ref": + "global_frame_ensures_sep_iff_ref": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_bts/bts_1828.i.1.report.json b/src/plugins/wp/tests/wp_bts/bts_1828.i.1.report.json index 46519328dff46dbbeb462ab1b6bba198aa1735ef..4df401a00378c91fe19b8cc3c1b21d09785e0fdb 100644 --- a/src/plugins/wp/tests/wp_bts/bts_1828.i.1.report.json +++ b/src/plugins/wp/tests/wp_bts/bts_1828.i.1.report.json @@ -1,20 +1,20 @@ -{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 1 }, +{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 3 }, "qed": { "total": 5, "valid": 5 }, - "wp:main": { "total": 6, "valid": 6, "rank": 1 } }, + "wp:main": { "total": 6, "valid": 6, "rank": 3 } }, "wp:functions": { "local_frame": { "local_frame_assert_ok": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, + "rank": 3 }, "wp:main": { "total": 1, "valid": 1, - "rank": 1 } }, + "rank": 3 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, + "rank": 3 }, "wp:main": { "total": 1, "valid": 1, - "rank": 1 } } }, + "rank": 3 } } }, "global_frame": { "global_frame_assert_ok_2": { "qed": { "total": 1, "valid": 1 }, @@ -27,15 +27,15 @@ "wp:main": { "total": 1, "valid": 1 } }, - "global_frame_post_zero_always": + "global_frame_ensures_zero_always": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "global_frame_post_one_iff_ref": + "global_frame_ensures_one_iff_ref": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "global_frame_post_sep_iff_ref": + "global_frame_ensures_sep_iff_ref": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, diff --git a/src/plugins/wp/tests/wp_bts/bts_2079.i.0.report.json b/src/plugins/wp/tests/wp_bts/bts_2079.i.0.report.json index 91b04794d8fc2b59c8aa87d6ffba87124a3faeec..8cfd69611e5ac5a6ed8fc5814df083844b6d6ce6 100644 --- a/src/plugins/wp/tests/wp_bts/bts_2079.i.0.report.json +++ b/src/plugins/wp/tests/wp_bts/bts_2079.i.0.report.json @@ -1,13 +1,13 @@ { "wp:global": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "wp:functions": { "main": { "main_post_Eval_Q": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "main_post_Eval_P": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "main": { "main_ensures_Eval_Q": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "main_ensures_Eval_P": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, diff --git a/src/plugins/wp/tests/wp_bts/bts_2159.i.0.report.json b/src/plugins/wp/tests/wp_bts/bts_2159.i.0.report.json index 347952823a27fa01d362e7dd660290022854acda..ed70bf1a3deddc7b7e49837020eda032ac920b4c 100644 --- a/src/plugins/wp/tests/wp_bts/bts_2159.i.0.report.json +++ b/src/plugins/wp/tests/wp_bts/bts_2159.i.0.report.json @@ -1,11 +1,11 @@ { "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 15 }, "wp:main": { "total": 1, "valid": 1, "rank": 15 } }, - "wp:functions": { "job": { "job_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 15 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 15 } }, + "wp:functions": { "job": { "job_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 15 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 15 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 15 }, diff --git a/src/plugins/wp/tests/wp_bts/ergo_typecheck.i.0.report.json b/src/plugins/wp/tests/wp_bts/ergo_typecheck.i.0.report.json index 0f182e121aaa382e8853679df82b3daff9bc22aa..414c3cf94d8eb41a5b1a4767cdfbacd5c6e2fc60 100644 --- a/src/plugins/wp/tests/wp_bts/ergo_typecheck.i.0.report.json +++ b/src/plugins/wp/tests/wp_bts/ergo_typecheck.i.0.report.json @@ -1,36 +1,36 @@ { "wp:global": { "qed": { "total": 8, "valid": 8 }, "wp:main": { "total": 8, "valid": 8 } }, - "wp:functions": { "f": { "f_assign": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_var_unit4": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_var_unit3": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_var_unit2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_var_unit1": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_var_unit0": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_var_inline": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_var_divded": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "f": { "f_assigns": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_var_unit4": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_var_unit3": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_var_unit2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_var_unit1": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_var_unit0": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_var_inline": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_var_divded": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 8, "valid": 8 }, "wp:main": { "total": 8, "valid": 8 } } } } } diff --git a/src/plugins/wp/tests/wp_bts/issue_198.i.0.report.json b/src/plugins/wp/tests/wp_bts/issue_198.i.0.report.json index 0275e393424287f885ce511bcf1055b0939898ff..8add84a6b5d7f48c762f4162d0a1f437623fe410 100644 --- a/src/plugins/wp/tests/wp_bts/issue_198.i.0.report.json +++ b/src/plugins/wp/tests/wp_bts/issue_198.i.0.report.json @@ -1,14 +1,14 @@ -{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 1 }, - "wp:main": { "total": 1, "valid": 1, "rank": 1 } }, +{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 2 }, + "wp:main": { "total": 1, "valid": 1, "rank": 2 } }, "wp:axiomatics": { "": { "lemma_broken": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, + "rank": 2 }, "wp:main": { "total": 1, "valid": 1, - "rank": 1 } }, + "rank": 2 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, + "rank": 2 }, "wp:main": { "total": 1, "valid": 1, - "rank": 1 } } } } } + "rank": 2 } } } } } diff --git a/src/plugins/wp/tests/wp_bts/issue_453.i.0.report.json b/src/plugins/wp/tests/wp_bts/issue_453.i.0.report.json index f2f5e9296957994d1c41554f1adc9c70f3f7fe25..6deccb7f511907d2da384a9fb2bb7691f959eb63 100644 --- a/src/plugins/wp/tests/wp_bts/issue_453.i.0.report.json +++ b/src/plugins/wp/tests/wp_bts/issue_453.i.0.report.json @@ -1,32 +1,30 @@ { "wp:global": { "qed": { "total": 6, "valid": 6 }, "wp:main": { "total": 6, "valid": 6 } }, - "wp:functions": { "f1": { "f1_stmt_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f1_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f1_stmt_post_Sincr": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "f1": { "f1_assigns": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f1_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f1_ensures_Sincr": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 3, "valid": 3 } } }, - "f2": { "f2_stmt_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f2_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f2_stmt_post_Sincr": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "f2": { "f2_assigns": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f2_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f2_ensures_Sincr": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 3, "valid": 3 } } } } } diff --git a/src/plugins/wp/tests/wp_bts/issue_494.i.0.report.json b/src/plugins/wp/tests/wp_bts/issue_494.i.0.report.json index 0d7cba60afdf053abe9306b5535bbe1baaa860bd..d2c13e606a02ea298d5cecf7a69d686f94725326 100644 --- a/src/plugins/wp/tests/wp_bts/issue_494.i.0.report.json +++ b/src/plugins/wp/tests/wp_bts/issue_494.i.0.report.json @@ -2,10 +2,12 @@ "rank": 3 }, "wp:main": { "total": 3, "valid": 1, "unknown": 2, "rank": 3 } }, - "wp:functions": { "f": { "f_post": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "wp:functions": { "f": { "f_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 3 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 3 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 3 }, diff --git a/src/plugins/wp/tests/wp_bts/issue_508.c.0.report.json b/src/plugins/wp/tests/wp_bts/issue_508.c.0.report.json index f560b0badc636d31085540dc1622a41f5718bf87..4c75c284f8a45dc0d2ca538514549cbdc3238e7b 100644 --- a/src/plugins/wp/tests/wp_bts/issue_508.c.0.report.json +++ b/src/plugins/wp/tests/wp_bts/issue_508.c.0.report.json @@ -1,14 +1,14 @@ { "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 14 }, "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 3, "valid": 3, "rank": 14 } }, - "wp:functions": { "add": { "add_assign": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 14 }, - "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 3, - "valid": 3, - "rank": 14 } }, + "wp:functions": { "add": { "add_assigns": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 14 }, + "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 3, + "valid": 3, + "rank": 14 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 14 }, diff --git a/src/plugins/wp/tests/wp_bts/nupw-bcl-bts1120.i.0.report.json b/src/plugins/wp/tests/wp_bts/nupw-bcl-bts1120.i.0.report.json index d6bedb812b340702a1509a59c9e1f74bf26cdd3f..4c4cf67940252aa7f1e4b328dfa5f41b385fc87f 100644 --- a/src/plugins/wp/tests/wp_bts/nupw-bcl-bts1120.i.0.report.json +++ b/src/plugins/wp/tests/wp_bts/nupw-bcl-bts1120.i.0.report.json @@ -1,25 +1,25 @@ { "wp:global": { "qed": { "total": 8, "valid": 8 }, "wp:main": { "total": 8, "valid": 8 } }, - "wp:functions": { "g": { "g_assign": { "qed": { "total": 4, "valid": 4 }, - "wp:main": { "total": 4, - "valid": 4 } }, - "g_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "g_exit_ok": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "g": { "g_assigns": { "qed": { "total": 4, "valid": 4 }, + "wp:main": { "total": 4, + "valid": 4 } }, + "g_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "g_exits_ok": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 6, "valid": 6 }, "wp:main": { "total": 6, "valid": 6 } } }, - "unreachable_smt_with_contract": { "specialization_f_with_precond_pre_ok_at_unreachable_smt_with_contract_stmt_10": + "unreachable_smt_with_contract": { "f_with_precond_requires_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "unreachable_smt_with_contract_post_ok": + "unreachable_smt_with_contract_ensures_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts_2110.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts_2110.res.oracle index 2b5900b11b1f7a65384e20c101e23e19a203241d..9ca77b0609a0f99d2701bffd22be5ee5f20b4acf 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts_2110.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts_2110.res.oracle @@ -5,13 +5,13 @@ [wp] Warning: Missing RTE guards [wp] 2 goals scheduled --------------------------------------------- ---- File 'typed/myMain_stmt_assign.ergo' +--- File 'typed/myMain_assigns.ergo' --------------------------------------------- (* ---------------------------------------------------------- *) (* --- Assigns 'KO' at call 'myRead' (file tests/wp_bts/bts_2110.i, line 36) --- *) (* ---------------------------------------------------------- *) -goal myMain_stmt_assign: +goal myMain_assigns: forall i : int. forall t : int farray. forall t_1 : (addr,int) farray. @@ -82,13 +82,13 @@ predicate IsS2_A(S:S2_A) = is_sint32(S.F2_A_dummy) predicate EqS2_A(S:S2_A, S_1:S2_A) = (S_1.F2_A_dummy) = (S.F2_A_dummy) --------------------------------------------- ---- File 'typed/myMain_post_KO.ergo' +--- File 'typed/myMain_ensures_KO.ergo' --------------------------------------------- (* ---------------------------------------------------------- *) (* --- Post-condition 'KO' in 'myMain' --- *) (* ---------------------------------------------------------- *) -goal myMain_post_KO: +goal myMain_ensures_KO: forall t_1,t : (addr,int) farray. forall a_1,a : addr. let a_2 = Load_S2_A(a_1, t_1) : S2_A in diff --git a/src/plugins/wp/tests/wp_bts/oracle/nupw-bcl-bts1120.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/nupw-bcl-bts1120.res.oracle index b13aeff75c9ead8782c619e090f770f7136b2857..094d64fd5cc15c062e1c9bf26f9235d9517c3538 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/nupw-bcl-bts1120.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/nupw-bcl-bts1120.res.oracle @@ -6,12 +6,12 @@ [cfg] Forget exits clause of node <blkIn-stmt:26> [wp] tests/wp_bts/nupw-bcl-bts1120.i:54: Warning: [cfg] Forget exits clause of node <blkIn-stmt:26> -[wp] [CFG] Goal unreachable_smt_with_contract_stmt_assign : Valid (Unreachable) -[wp] [CFG] Goal unreachable_smt_with_contract_stmt_exit_ok : Valid (Unreachable) -[wp] [CFG] Goal unreachable_smt_with_contract_stmt_post_ok : Valid (Unreachable) -[wp] [CFG] Goal unreachable_smt_with_contract_stmt_pre_ok : Valid (Unreachable) +[wp] [CFG] Goal unreachable_smt_with_contract_assigns : Valid (Unreachable) +[wp] [CFG] Goal unreachable_smt_with_contract_exits_ok : Valid (Unreachable) +[wp] [CFG] Goal unreachable_smt_with_contract_ensures_ok : Valid (Unreachable) +[wp] [CFG] Goal unreachable_smt_with_contract_requires_ok : Valid (Unreachable) [wp] [CFG] Goal unreachable_smt_with_contract_assert_ok : Valid (Unreachable) -[wp] [CFG] Goal unreachable_smt_with_contract_call_f_with_precond_pre_ok : Valid (Unreachable) +[wp] [CFG] Goal unreachable_smt_with_contract_call_f_with_precond_requires_ok : Valid (Unreachable) [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function cfg_domination_problem diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0708.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0708.res.oracle index c189064e79fbeb2b9833a83ddfde2be4c9997dc3..7c13800bcbd80cc30eb3e33e45c258442803897a 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0708.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0708.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Alt-Ergo] Goal typed_f_post_A : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_A : Valid [wp] Proved goals: 1 / 1 Qed: 0 Alt-Ergo: 1 @@ -15,8 +15,8 @@ f - 1 (4..16) 1 100% ------------------------------------------------------------- [wp] Running WP plugin... [wp] 2 goals scheduled -[wp] [Alt-Ergo] Goal typed_f_post_A : Valid -[wp] [Alt-Ergo] Goal typed_f_post_B : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_A : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_B : Valid [wp] Proved goals: 2 / 2 Qed: 0 Alt-Ergo: 2 diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle index 9afec415109fccc41ffb7759ee0c7a09d4b1c559..a0f8a4094b891dde4708856b9d9314693778c2d0 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle @@ -4,10 +4,10 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 4 goals scheduled -[wp] [Qed] Goal typed_f3_assign : Valid -[wp] [Alt-Ergo] Goal typed_g3_assign_exit : Valid -[wp] [Alt-Ergo] Goal typed_g3_assign_normal : Valid -[wp] [Qed] Goal typed_g3_call_f3_pre : Valid +[wp] [Qed] Goal typed_f3_assigns : Valid +[wp] [Alt-Ergo] Goal typed_g3_assigns_exit : Valid +[wp] [Alt-Ergo] Goal typed_g3_assigns_normal : Valid +[wp] [Qed] Goal typed_g3_call_f3_requires : Valid [wp] Proved goals: 4 / 4 Qed: 2 Alt-Ergo: 2 diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts788.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts788.res.oracle index 494a0a1dc78a5b0ae770c8b252fcbd76acfff6d2..a85d715c3e10b2255d810a9265e8cc28f6b25a69 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts788.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts788.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Qed] Goal typed_ref_main_post_I0 : Valid -[wp] [Alt-Ergo] Goal typed_ref_main_post_I1 : Valid -[wp] [Alt-Ergo] Goal typed_ref_main_post_I2 : Valid +[wp] [Qed] Goal typed_ref_main_ensures_I0 : Valid +[wp] [Alt-Ergo] Goal typed_ref_main_ensures_I1 : Valid +[wp] [Alt-Ergo] Goal typed_ref_main_ensures_I2 : Valid [wp] Proved goals: 3 / 3 Qed: 1 Alt-Ergo: 2 diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1360.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1360.res.oracle index df7117a225383f6a525440c1c97ddeceae063236..286ecc0a8dee3fb7dba30c53a896e206bf001fc9 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1360.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1360.res.oracle @@ -5,16 +5,16 @@ [rte] annotating function foo_correct [rte] annotating function foo_wrong [wp] 10 goals scheduled -[wp] [Qed] Goal typed_foo_correct_post : Valid +[wp] [Qed] Goal typed_foo_correct_ensures : Valid [wp] [Alt-Ergo] Goal typed_foo_correct_assert_rte_mem_access : Valid [wp] [Qed] Goal typed_foo_correct_assert_rte_mem_access_2 : Valid [wp] [Qed] Goal typed_foo_correct_assert_rte_mem_access_3 : Valid -[wp] [Qed] Goal typed_foo_correct_assign : Valid -[wp] [Qed] Goal typed_foo_wrong_post : Valid +[wp] [Qed] Goal typed_foo_correct_assigns : Valid +[wp] [Qed] Goal typed_foo_wrong_ensures : Valid [wp] [Qed] Goal typed_foo_wrong_assert_rte_mem_access : Valid [wp] [Qed] Goal typed_foo_wrong_assert_rte_mem_access_2 : Valid [wp] [Alt-Ergo] Goal typed_foo_wrong_assert_rte_mem_access_3 : Unknown -[wp] [Qed] Goal typed_foo_wrong_assign : Valid +[wp] [Qed] Goal typed_foo_wrong_assigns : Valid [wp] Proved goals: 9 / 10 Qed: 8 Alt-Ergo: 1 (unknown: 1) diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1462.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1462.res.oracle index e0d6ae4d84a66b2865261f2e280f083a463279b9..fcbb90261d3d8c3ab690bfc37fec3a81edc9ac22 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1462.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1462.res.oracle @@ -4,19 +4,19 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 13 goals scheduled -[wp] [Qed] Goal typed_local_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_local_loop_inv_established : Valid -[wp] [Qed] Goal typed_local_loop_assign_part1 : Valid -[wp] [Qed] Goal typed_local_loop_assign_part2 : Valid +[wp] [Qed] Goal typed_local_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_local_loop_invariant_established : Valid +[wp] [Qed] Goal typed_local_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_local_loop_assigns_part2 : Valid [wp] [Alt-Ergo] Goal typed_wrong_assert_for_value : Valid -[wp] [Alt-Ergo] Goal typed_wrong_loop_inv_A_KO_preserved : Unknown -[wp] [Qed] Goal typed_wrong_loop_inv_A_KO_established : Valid -[wp] [Qed] Goal typed_wrong_loop_inv_B_preserved : Valid -[wp] [Qed] Goal typed_wrong_loop_inv_B_established : Valid -[wp] [Qed] Goal typed_wrong_loop_inv_C_preserved : Valid -[wp] [Qed] Goal typed_wrong_loop_inv_C_established : Valid +[wp] [Alt-Ergo] Goal typed_wrong_loop_invariant_A_KO_preserved : Unknown +[wp] [Qed] Goal typed_wrong_loop_invariant_A_KO_established : Valid +[wp] [Qed] Goal typed_wrong_loop_invariant_B_preserved : Valid +[wp] [Qed] Goal typed_wrong_loop_invariant_B_established : Valid +[wp] [Qed] Goal typed_wrong_loop_invariant_C_preserved : Valid +[wp] [Qed] Goal typed_wrong_loop_invariant_C_established : Valid [wp] [Alt-Ergo] Goal typed_wrong_assert_consequence_of_false_invariant : Valid -[wp] [Qed] Goal typed_wrong_loop_assign : Valid +[wp] [Qed] Goal typed_wrong_loop_assigns : Valid [wp] Proved goals: 12 / 13 Qed: 10 Alt-Ergo: 2 (unknown: 1) diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1586.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1586.res.oracle index c6dc535715192dd6d8dc57aa4755b27c88ab9854..2dd381f40d3f750773b19857a69fc1372df87e55 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1586.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1586.res.oracle @@ -4,8 +4,8 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 4 goals scheduled -[wp] [Qed] Goal typed_compute_bizarre_Bizarre_post_TRANS : Valid -[wp] [Qed] Goal typed_compute_normal_Normal_post_TRANS : Valid +[wp] [Qed] Goal typed_compute_bizarre_Bizarre_ensures_TRANS : Valid +[wp] [Qed] Goal typed_compute_normal_Normal_ensures_TRANS : Valid [wp] [Alt-Ergo] Goal typed_main_bizarre_KO_assert_FALSE : Unknown [wp] [Alt-Ergo] Goal typed_main_normal_KO_assert_FALSE : Unknown [wp] Proved goals: 2 / 4 diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1588.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1588.res.oracle index 21d7b22fe7f1119d4e75af13d3481dcbe3c01424..6a9e1f868ab48a70637f17c7d4da18ed230d449f 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1588.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1588.res.oracle @@ -8,8 +8,8 @@ [wp] tests/wp_bts/bts_1588.i:5: Warning: Missing assigns clause (assigns 'everything' instead) [wp] 3 goals scheduled -[wp] [Qed] Goal typed_f_loop_inv_l1_2_preserved : Valid -[wp] [Qed] Goal typed_f_loop_inv_l1_2_established : Valid +[wp] [Qed] Goal typed_f_loop_invariant_l1_2_preserved : Valid +[wp] [Qed] Goal typed_f_loop_invariant_l1_2_established : Valid [wp] [Qed] Goal typed_f_assert_a1 : Valid [wp] Proved goals: 3 / 3 Qed: 3 diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1601.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1601.res.oracle index cbeaaa512abdc92f2b4dd7e7eeaf7142b02da934..8ab82c08dc1961b269d2d78d86397a7c496ce66f 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1601.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1601.res.oracle @@ -11,12 +11,12 @@ [wp] [Qed] Goal typed_foo_assert_5 : Valid [wp] [Qed] Goal typed_foo_assert_6 : Valid [wp] [Qed] Goal typed_foo_assert_7 : Valid -[wp] [Qed] Goal typed_foo_basic_post : Valid +[wp] [Qed] Goal typed_foo_basic_ensures : Valid [wp] Proved goals: 8 / 8 Qed: 7 Alt-Ergo: 1 [wp] Report 'tests/wp_bts/bts_1601.c.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -foo 7 1 (12..24) 8 100% +foo 7 1 (16..28) 8 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.0.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.0.res.oracle index daac899dba8e1ebd61023923a86bb93f77d98a22..d9d788c7c7b07fb0911308c1b3170d9051a90d17 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.0.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.0.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled -[wp] [Alt-Ergo] Goal typed_global_frame_post_sep_iff_ref : Unknown -[wp] [Alt-Ergo] Goal typed_global_frame_post_one_iff_ref : Unknown -[wp] [Qed] Goal typed_global_frame_post_zero_always : Valid +[wp] [Alt-Ergo] Goal typed_global_frame_ensures_sep_iff_ref : Unknown +[wp] [Alt-Ergo] Goal typed_global_frame_ensures_one_iff_ref : Unknown +[wp] [Qed] Goal typed_global_frame_ensures_zero_always : Valid [wp] [Qed] Goal typed_global_frame_assert_ok : Valid [wp] [Qed] Goal typed_global_frame_assert_ok_2 : Valid [wp] [Alt-Ergo] Goal typed_local_frame_assert_ok : Valid @@ -16,7 +16,7 @@ [wp] Report 'tests/wp_bts/bts_1828.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -local_frame - 1 (1..12) 1 100% +local_frame - 1 (8..20) 1 100% global_frame 3 - 5 60.0% ------------------------------------------------------------- [wp] Warning: Memory model hypotheses for function 'global_frame': diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.1.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.1.res.oracle index 9bfc329b04f3bceac5f7cb718e76edf85fb4f0f3..c751f5eeda12d3bbc8a6df3537a65426a0f122a0 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.1.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.1.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled -[wp] [Qed] Goal typed_ref_global_frame_post_sep_iff_ref : Valid -[wp] [Qed] Goal typed_ref_global_frame_post_one_iff_ref : Valid -[wp] [Qed] Goal typed_ref_global_frame_post_zero_always : Valid +[wp] [Qed] Goal typed_ref_global_frame_ensures_sep_iff_ref : Valid +[wp] [Qed] Goal typed_ref_global_frame_ensures_one_iff_ref : Valid +[wp] [Qed] Goal typed_ref_global_frame_ensures_zero_always : Valid [wp] [Qed] Goal typed_ref_global_frame_assert_ok : Valid [wp] [Qed] Goal typed_ref_global_frame_assert_ok_2 : Valid [wp] [Alt-Ergo] Goal typed_ref_local_frame_assert_ok : Valid @@ -16,7 +16,7 @@ [wp] Report 'tests/wp_bts/bts_1828.i.1.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -local_frame - 1 (1..12) 1 100% +local_frame - 1 (8..20) 1 100% global_frame 5 - 5 100% ------------------------------------------------------------- [wp] Warning: Memory model hypotheses for function 'global_frame': diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2079.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2079.res.oracle index 3ba5702535af18f419b1d86a6f840deb6f64bae9..1677f2005a81d60cebb275c80788ae36d70017ed 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2079.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2079.res.oracle @@ -4,8 +4,8 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Qed] Goal typed_main_post_Eval_P : Valid -[wp] [Qed] Goal typed_main_post_Eval_Q : Valid +[wp] [Qed] Goal typed_main_ensures_Eval_P : Valid +[wp] [Qed] Goal typed_main_ensures_Eval_Q : Valid [wp] Proved goals: 2 / 2 Qed: 2 [wp] Report 'tests/wp_bts/bts_2079.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2159.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2159.res.oracle index def33bf37ab2f28dc3fb8cc0bddbc7c8e5ba022a..5957c25a9913e5dc7ea2f26f7e16a3c8b80cb32d 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2159.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2159.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Alt-Ergo] Goal typed_job_post : Valid +[wp] [Alt-Ergo] Goal typed_job_ensures : Valid [wp] Proved goals: 1 / 1 Qed: 0 Alt-Ergo: 1 diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/ergo_typecheck.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/ergo_typecheck.res.oracle index 32b111fa7242d905d8a2a8cdd63379dc734744a5..adbf79dec6e616503039969d0cb93e2a77983207 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/ergo_typecheck.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/ergo_typecheck.res.oracle @@ -4,14 +4,14 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 8 goals scheduled -[wp] [Qed] Goal typed_f_post_var_divded : Valid -[wp] [Qed] Goal typed_f_post_var_inline : Valid -[wp] [Qed] Goal typed_f_post_var_unit0 : Valid -[wp] [Qed] Goal typed_f_post_var_unit1 : Valid -[wp] [Qed] Goal typed_f_post_var_unit2 : Valid -[wp] [Qed] Goal typed_f_post_var_unit3 : Valid -[wp] [Qed] Goal typed_f_post_var_unit4 : Valid -[wp] [Qed] Goal typed_f_assign : Valid +[wp] [Qed] Goal typed_f_ensures_var_divded : Valid +[wp] [Qed] Goal typed_f_ensures_var_inline : Valid +[wp] [Qed] Goal typed_f_ensures_var_unit0 : Valid +[wp] [Qed] Goal typed_f_ensures_var_unit1 : Valid +[wp] [Qed] Goal typed_f_ensures_var_unit2 : Valid +[wp] [Qed] Goal typed_f_ensures_var_unit3 : Valid +[wp] [Qed] Goal typed_f_ensures_var_unit4 : Valid +[wp] [Qed] Goal typed_f_assigns : Valid [wp] Proved goals: 8 / 8 Qed: 8 [wp] Report 'tests/wp_bts/ergo_typecheck.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_198.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_198.res.oracle index 0b7a9377868233e596dab18cd5b9f6fb1fa21559..e99621a4bbbab527db5d28c33f75b1b83ec2b54e 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_198.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_198.res.oracle @@ -10,5 +10,5 @@ [wp] Report 'tests/wp_bts/issue_198.i.0.report.json' ------------------------------------------------------------- Axiomatics WP Alt-Ergo Total Success -Lemma - 1 (1..12) 1 100% +Lemma - 1 (4..16) 1 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_453.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_453.res.oracle index 9eebd963d56bcb00ccab07c4510bfb82d656a283..ac1e7341c077c06f0af0001fcadce668af855ad1 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_453.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_453.res.oracle @@ -4,12 +4,12 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled -[wp] [Qed] Goal typed_f1_loop_assign : Valid -[wp] [Qed] Goal typed_f1_stmt_post_Sincr : Valid -[wp] [Qed] Goal typed_f1_stmt_assign : Valid -[wp] [Qed] Goal typed_f2_loop_assign : Valid -[wp] [Qed] Goal typed_f2_stmt_post_Sincr : Valid -[wp] [Qed] Goal typed_f2_stmt_assign : Valid +[wp] [Qed] Goal typed_f1_loop_assigns : Valid +[wp] [Qed] Goal typed_f1_ensures_Sincr : Valid +[wp] [Qed] Goal typed_f1_assigns : Valid +[wp] [Qed] Goal typed_f2_loop_assigns : Valid +[wp] [Qed] Goal typed_f2_ensures_Sincr : Valid +[wp] [Qed] Goal typed_f2_assigns : Valid [wp] Proved goals: 6 / 6 Qed: 6 [wp] Report 'tests/wp_bts/issue_453.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_494.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_494.res.oracle index 8289108ae0e286572f4685dbe161f6edfaf59610..88a873c857cfc22dfeccbc23a480d184dae469b5 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_494.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_494.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Alt-Ergo] Goal typed_f_post : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures : Valid [wp] [Alt-Ergo] Goal typed_job_ko_fixed_assert_Wrong : Unknown [wp] [Alt-Ergo] Goal typed_job_ko_success_assert_Wrong : Unknown [wp] Proved goals: 1 / 3 diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_508.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_508.res.oracle index 45cd077d06209cf8c051250cd592ff5154d9d7cd..e91fa5af17342cd08086ab3298ca3811c62d36f5 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_508.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_508.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Alt-Ergo] Goal typed_add_assign_part1 : Valid -[wp] [Qed] Goal typed_add_assign_part2 : Valid -[wp] [Qed] Goal typed_add_assign_part3 : Valid +[wp] [Alt-Ergo] Goal typed_add_assigns_part1 : Valid +[wp] [Qed] Goal typed_add_assigns_part2 : Valid +[wp] [Qed] Goal typed_add_assigns_part3 : Valid [wp] Proved goals: 3 / 3 Qed: 2 Alt-Ergo: 1 diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/nupw-bcl-bts1120.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/nupw-bcl-bts1120.res.oracle index 5d5d798ea5d9b1883dab371915dc5181911db479..1588ce4deb13e41cba58c14064dd7b84d43979a9 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/nupw-bcl-bts1120.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/nupw-bcl-bts1120.res.oracle @@ -2,22 +2,22 @@ [kernel] Parsing tests/wp_bts/nupw-bcl-bts1120.i (no preprocessing) [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' -[wp] [CFG] Goal unreachable_smt_with_contract_stmt_assign : Valid (Unreachable) -[wp] [CFG] Goal unreachable_smt_with_contract_stmt_exit_ok : Valid (Unreachable) -[wp] [CFG] Goal unreachable_smt_with_contract_stmt_post_ok : Valid (Unreachable) -[wp] [CFG] Goal unreachable_smt_with_contract_stmt_pre_ok : Valid (Unreachable) +[wp] [CFG] Goal unreachable_smt_with_contract_assigns : Valid (Unreachable) +[wp] [CFG] Goal unreachable_smt_with_contract_exits_ok : Valid (Unreachable) +[wp] [CFG] Goal unreachable_smt_with_contract_ensures_ok : Valid (Unreachable) +[wp] [CFG] Goal unreachable_smt_with_contract_requires_ok : Valid (Unreachable) [wp] [CFG] Goal unreachable_smt_with_contract_assert_ok : Valid (Unreachable) -[wp] [CFG] Goal unreachable_smt_with_contract_call_f_with_precond_pre_ok : Valid (Unreachable) +[wp] [CFG] Goal unreachable_smt_with_contract_call_f_with_precond_requires_ok : Valid (Unreachable) [wp] Warning: Missing RTE guards [wp] 8 goals scheduled -[wp] [Qed] Goal typed_g_exit_ok : Valid -[wp] [Qed] Goal typed_g_loop_assign : Valid -[wp] [Qed] Goal typed_g_assign_exit : Valid -[wp] [Qed] Goal typed_g_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_g_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_g_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_unreachable_smt_with_contract_post_ok : Valid -[wp] [Qed] Goal typed_unreachable_smt_with_contract_call_f_with_precond_pre_ok_2 : Valid +[wp] [Qed] Goal typed_g_exits_ok : Valid +[wp] [Qed] Goal typed_g_loop_assigns : Valid +[wp] [Qed] Goal typed_g_assigns_exit : Valid +[wp] [Qed] Goal typed_g_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_g_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_g_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_unreachable_smt_with_contract_ensures_ok_2 : Valid +[wp] [Qed] Goal typed_unreachable_smt_with_contract_call_f_with_precond_requires_ok : Valid [wp] Proved goals: 8 / 8 Qed: 8 [wp] Report 'tests/wp_bts/nupw-bcl-bts1120.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_gallery/binary-multiplication-without-overflow.c.0.report.json b/src/plugins/wp/tests/wp_gallery/binary-multiplication-without-overflow.c.0.report.json index 6e041751ae90f16c4e4ac1a37c7c29d34b40f54a..e5cea006b893c57b97b6bce5b539a95158f1c2a9 100644 --- a/src/plugins/wp/tests/wp_gallery/binary-multiplication-without-overflow.c.0.report.json +++ b/src/plugins/wp/tests/wp_gallery/binary-multiplication-without-overflow.c.0.report.json @@ -1,6 +1,6 @@ -{ "wp:global": { "alt-ergo": { "total": 10, "valid": 10, "rank": 16 }, +{ "wp:global": { "alt-ergo": { "total": 10, "valid": 10, "rank": 17 }, "qed": { "total": 3, "valid": 3 }, - "wp:main": { "total": 13, "valid": 13, "rank": 16 } }, + "wp:main": { "total": 13, "valid": 13, "rank": 17 } }, "wp:axiomatics": { "mult": { "lemma_sizeof_uint64_t_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": @@ -43,7 +43,7 @@ "wp:main": { "total": 1, "valid": 1, "rank": 5 } }, - "BinaryMultiplication_loop_inv_inv2_ok_deductible": + "BinaryMultiplication_loop_invariant_inv2_ok_deductible": { "alt-ergo": { "total": 2, "valid": 2, "rank": 10 }, @@ -57,19 +57,19 @@ "wp:main": { "total": 1, "valid": 1, "rank": 3 } }, - "BinaryMultiplication_loop_term": + "BinaryMultiplication_loop_variant": { "alt-ergo": { "total": 2, "valid": 2, "rank": 8 }, "wp:main": { "total": 2, "valid": 2, "rank": 8 } }, - "BinaryMultiplication_loop_assign": + "BinaryMultiplication_loop_assigns": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "BinaryMultiplication_post_product": + "BinaryMultiplication_ensures_product": { "alt-ergo": { "total": 1, "valid": 1, "rank": 16 }, @@ -79,11 +79,11 @@ "wp:section": { "alt-ergo": { "total": 10, "valid": 10, - "rank": 16 }, + "rank": 17 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 11, "valid": 11, - "rank": 16 } } } } } + "rank": 17 } } } } } diff --git a/src/plugins/wp/tests/wp_gallery/binary-multiplication.c.0.report.json b/src/plugins/wp/tests/wp_gallery/binary-multiplication.c.0.report.json index 5ea485d2a0af12d325a0cb524608845346664671..c033820912ee4cc581d52e26d70abe6b30d842df 100644 --- a/src/plugins/wp/tests/wp_gallery/binary-multiplication.c.0.report.json +++ b/src/plugins/wp/tests/wp_gallery/binary-multiplication.c.0.report.json @@ -52,19 +52,19 @@ "wp:main": { "total": 1, "valid": 1, "rank": 3 } }, - "BinaryMultiplication_loop_term": + "BinaryMultiplication_loop_variant": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 20 }, + "rank": 19 }, "wp:main": { "total": 2, "valid": 2, - "rank": 20 } }, - "BinaryMultiplication_loop_assign": + "rank": 19 } }, + "BinaryMultiplication_loop_assigns": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "BinaryMultiplication_post_product": + "BinaryMultiplication_ensures_product": { "alt-ergo": { "total": 1, "valid": 1, "rank": 34 }, diff --git a/src/plugins/wp/tests/wp_gallery/frama_c_exo1_solved.c.0.report.json b/src/plugins/wp/tests/wp_gallery/frama_c_exo1_solved.c.0.report.json index 35328b8f662304169588f86edc22b36e39809b3c..0296ba8fb132318ca314eafccff82c1685359d9e 100644 --- a/src/plugins/wp/tests/wp_gallery/frama_c_exo1_solved.c.0.report.json +++ b/src/plugins/wp/tests/wp_gallery/frama_c_exo1_solved.c.0.report.json @@ -1,6 +1,6 @@ -{ "wp:global": { "alt-ergo": { "total": 9, "valid": 9, "rank": 31 }, +{ "wp:global": { "alt-ergo": { "total": 9, "valid": 9, "rank": 32 }, "qed": { "total": 6, "valid": 6 }, - "wp:main": { "total": 15, "valid": 15, "rank": 31 } }, + "wp:main": { "total": 15, "valid": 15, "rank": 32 } }, "wp:functions": { "exo1": { "exo1_assert_rte_signed_overflow_3": { "alt-ergo": { "total": 1, "valid": 1, @@ -41,51 +41,52 @@ { "total": 1, "valid": 1, "rank": 3 } }, - "exo1_loop_inv_2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 31 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 31 } }, - "exo1_loop_inv": { "alt-ergo": { "total": 1, + "exo1_loop_invariant_2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 32 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 32 } }, + "exo1_loop_invariant": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 10 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 10 } }, + "exo1_loop_variant": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "exo1_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "exo1_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "exo1_ensures_2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 8 }, + "wp:main": { "total": 1, "valid": 1, - "rank": 10 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 10 } }, - "exo1_loop_term": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "exo1_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "exo1_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "exo1_post_2": { "alt-ergo": { "total": 1, + "rank": 8 } }, + "exo1_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, "valid": 1, - "rank": 7 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 7 } }, - "exo1_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, + "rank": 5 } }, "wp:section": { "alt-ergo": { "total": 9, "valid": 9, - "rank": 31 }, + "rank": 32 }, "qed": { "total": 6, "valid": 6 }, "wp:main": { "total": 15, "valid": 15, - "rank": 31 } } } } } + "rank": 32 } } } } } diff --git a/src/plugins/wp/tests/wp_gallery/frama_c_exo2_solved.c.0.report.json b/src/plugins/wp/tests/wp_gallery/frama_c_exo2_solved.c.0.report.json index 7250532e2b57e0d0d2feadb78e0c413848eebc50..993bf347380d1f8f1b29ab1e163e76a2265c44b9 100644 --- a/src/plugins/wp/tests/wp_gallery/frama_c_exo2_solved.c.0.report.json +++ b/src/plugins/wp/tests/wp_gallery/frama_c_exo2_solved.c.0.report.json @@ -1,6 +1,6 @@ -{ "wp:global": { "alt-ergo": { "total": 14, "valid": 14, "rank": 37 }, +{ "wp:global": { "alt-ergo": { "total": 14, "valid": 14, "rank": 38 }, "qed": { "total": 9, "valid": 9 }, - "wp:main": { "total": 23, "valid": 23, "rank": 37 } }, + "wp:main": { "total": 23, "valid": 23, "rank": 38 } }, "wp:functions": { "max_subarray": { "max_subarray_assert_rte_mem_access": { "alt-ergo": { "total": 1, "valid": 1, @@ -8,116 +8,101 @@ "wp:main": { "total": 1, "valid": 1, "rank": 26 } }, - "max_subarray_loop_inv_8": { "alt-ergo": - { "total": 2, - "valid": 2, - "rank": 37 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 37 } }, - "max_subarray_loop_inv_7": { "alt-ergo": - { "total": 2, - "valid": 2, - "rank": 26 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 26 } }, - "max_subarray_loop_inv_6": { "alt-ergo": - { "total": 2, - "valid": 2, - "rank": 13 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 13 } }, - "max_subarray_loop_inv_5": { "alt-ergo": - { "total": 2, - "valid": 2, - "rank": 13 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 13 } }, - "max_subarray_loop_inv_4": { "qed": + "max_subarray_loop_invariant_8": + { "alt-ergo": { "total": 2, + "valid": 2, + "rank": 38 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 38 } }, + "max_subarray_loop_invariant_7": + { "alt-ergo": { "total": 2, + "valid": 2, + "rank": 27 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 27 } }, + "max_subarray_loop_invariant_6": + { "alt-ergo": { "total": 2, + "valid": 2, + "rank": 14 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 14 } }, + "max_subarray_loop_invariant_5": + { "alt-ergo": { "total": 2, + "valid": 2, + "rank": 14 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 14 } }, + "max_subarray_loop_invariant_4": + { "qed": { "total": 2, "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "max_subarray_loop_invariant_3": + { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 12 }, + "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 12 } }, + "max_subarray_loop_invariant_2": + { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 15 }, + "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 15 } }, + "max_subarray_loop_invariant": + { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 9 }, + "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 9 } }, + "max_subarray_loop_variant": { "qed": { "total": 2, "valid": 2 }, - "wp:main": + "wp:main": { "total": 2, "valid": 2 } }, - "max_subarray_loop_inv_3": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 11 }, - "qed": + "max_subarray_assigns": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "max_subarray_loop_assigns": { "qed": { "total": 1, "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 11 } }, - "max_subarray_loop_inv_2": { "alt-ergo": + "wp:main": { "total": 1, - "valid": 1, - "rank": 14 }, - "qed": + "valid": 1 } }, + "max_subarray_ensures_2": { "alt-ergo": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 14 } }, - "max_subarray_loop_inv": { "alt-ergo": - { "total": 1, "valid": 1, - "rank": 8 }, - "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 8 } }, - "max_subarray_loop_term": { "qed": - { "total": 2, - "valid": 2 }, + "rank": 20 }, "wp:main": - { "total": 2, - "valid": 2 } }, - "max_subarray_assign": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "max_subarray_loop_assign": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "max_subarray_post_2": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 20 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 20 } }, - "max_subarray_post": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 8 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 8 } }, + "valid": 1, + "rank": 20 } }, + "max_subarray_ensures": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 9 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 9 } }, "wp:section": { "alt-ergo": { "total": 14, "valid": 14, - "rank": 37 }, + "rank": 38 }, "qed": { "total": 9, "valid": 9 }, "wp:main": { "total": 23, "valid": 23, - "rank": 37 } } } } } + "rank": 38 } } } } } diff --git a/src/plugins/wp/tests/wp_gallery/frama_c_exo3_solved.old.c.0.report.json b/src/plugins/wp/tests/wp_gallery/frama_c_exo3_solved.old.c.0.report.json index a83c2c21e3ba443f38ae38fd4a100f39486dc8b0..b7940a83d5ccde38dfd58269ad683b0360911e29 100644 --- a/src/plugins/wp/tests/wp_gallery/frama_c_exo3_solved.old.c.0.report.json +++ b/src/plugins/wp/tests/wp_gallery/frama_c_exo3_solved.old.c.0.report.json @@ -83,11 +83,11 @@ "equal_elements_assert_2": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 45 }, + "rank": 46 }, "wp:main": { "total": 1, "valid": 1, - "rank": 45 } }, + "rank": 46 } }, "equal_elements_assert": { "alt-ergo": { "total": 1, "valid": 1, @@ -96,14 +96,14 @@ { "total": 1, "valid": 1, "rank": 32 } }, - "equal_elements_loop_inv_10": + "equal_elements_loop_invariant_10": { "alt-ergo": { "total": 2, "valid": 2, "rank": 51 }, "wp:main": { "total": 2, "valid": 2, "rank": 51 } }, - "equal_elements_loop_inv_9": + "equal_elements_loop_invariant_9": { "alt-ergo": { "total": 1, "valid": 1, "rank": 43 }, @@ -111,22 +111,22 @@ "wp:main": { "total": 2, "valid": 2, "rank": 43 } }, - "equal_elements_loop_inv_8": + "equal_elements_loop_invariant_8": { "alt-ergo": { "total": 2, "valid": 2, "rank": 38 }, "wp:main": { "total": 2, "valid": 2, "rank": 38 } }, - "equal_elements_loop_inv_7": + "equal_elements_loop_invariant_7": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 21 }, + "rank": 22 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 21 } }, - "equal_elements_loop_inv_6": + "rank": 22 } }, + "equal_elements_loop_invariant_6": { "alt-ergo": { "total": 1, "valid": 1, "rank": 50 }, @@ -134,7 +134,7 @@ "wp:main": { "total": 2, "valid": 2, "rank": 50 } }, - "equal_elements_loop_inv_5": + "equal_elements_loop_invariant_5": { "alt-ergo": { "total": 1, "valid": 1, "rank": 56 }, @@ -142,83 +142,78 @@ "wp:main": { "total": 2, "valid": 2, "rank": 56 } }, - "equal_elements_loop_inv_4": + "equal_elements_loop_invariant_4": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "equal_elements_loop_inv_3": + "equal_elements_loop_invariant_3": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 8 }, + "rank": 9 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 8 } }, - "equal_elements_loop_inv_2": + "rank": 9 } }, + "equal_elements_loop_invariant_2": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 18 }, + "rank": 19 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 18 } }, - "equal_elements_loop_inv": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 4 }, - "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 4 } }, - "equal_elements_loop_term_2": + "rank": 19 } }, + "equal_elements_loop_invariant": + { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 5 } }, + "equal_elements_loop_variant_2": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "equal_elements_loop_term": { "qed": - { "total": 2, - "valid": 2 }, - "wp:main": - { "total": 2, - "valid": 2 } }, - "equal_elements_assign": { "qed": + "equal_elements_loop_variant": + { "qed": { "total": 2, "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "equal_elements_assigns": { "qed": { "total": 3, "valid": 3 }, - "wp:main": + "wp:main": { "total": 3, "valid": 3 } }, - "equal_elements_loop_assign_2": + "equal_elements_loop_assigns_2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "equal_elements_loop_assign": + "equal_elements_loop_assigns": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "equal_elements_post_3": { "alt-ergo": + "equal_elements_ensures_3": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 23 }, - "wp:main": + "rank": 24 }, + "wp:main": { "total": 1, "valid": 1, - "rank": 23 } }, - "equal_elements_post_2": { "alt-ergo": + "rank": 24 } }, + "equal_elements_ensures_2": { "alt-ergo": { "total": 1, "valid": 1, "rank": 32 }, - "wp:main": + "wp:main": { "total": 1, "valid": 1, "rank": 32 } }, - "equal_elements_post": { "alt-ergo": - { "total": 1, + "equal_elements_ensures": { "alt-ergo": + { "total": 1, "valid": 1, "rank": 28 }, - "wp:main": - { "total": 1, + "wp:main": + { "total": 1, "valid": 1, "rank": 28 } }, "wp:section": { "alt-ergo": { "total": 21, diff --git a/src/plugins/wp/tests/wp_gallery/frama_c_exo3_solved.old.v2.c.0.report.json b/src/plugins/wp/tests/wp_gallery/frama_c_exo3_solved.old.v2.c.0.report.json index faf2646774a9fb497970774b004dab29bd512597..862d85527133d13b445534d58184c0857b573160 100644 --- a/src/plugins/wp/tests/wp_gallery/frama_c_exo3_solved.old.v2.c.0.report.json +++ b/src/plugins/wp/tests/wp_gallery/frama_c_exo3_solved.old.v2.c.0.report.json @@ -1,6 +1,6 @@ -{ "wp:global": { "alt-ergo": { "total": 23, "valid": 23, "rank": 38 }, +{ "wp:global": { "alt-ergo": { "total": 23, "valid": 23, "rank": 39 }, "qed": { "total": 28, "valid": 28 }, - "wp:main": { "total": 51, "valid": 51, "rank": 38 } }, + "wp:main": { "total": 51, "valid": 51, "rank": 39 } }, "wp:functions": { "equal_elements": { "equal_elements_assert_rte_signed_overflow_2": { "alt-ergo": { "total": 1, "valid": 1, @@ -80,35 +80,35 @@ { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "equal_elements_loop_inv_v2_sound2": + "equal_elements_loop_invariant_v2_sound2": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 36 }, + "rank": 37 }, "wp:main": { "total": 2, "valid": 2, - "rank": 36 } }, - "equal_elements_loop_inv_v1_sound2": + "rank": 37 } }, + "equal_elements_loop_invariant_v1_sound2": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 20 }, + "rank": 22 }, "wp:main": { "total": 2, "valid": 2, - "rank": 20 } }, - "equal_elements_loop_inv_seen_sound2": + "rank": 22 } }, + "equal_elements_loop_invariant_seen_sound2": { "alt-ergo": { "total": 2, "valid": 2, "rank": 32 }, "wp:main": { "total": 2, "valid": 2, "rank": 32 } }, - "equal_elements_loop_inv_seen_sound1": + "equal_elements_loop_invariant_seen_sound1": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 38 }, + "rank": 39 }, "wp:main": { "total": 2, "valid": 2, - "rank": 38 } }, - "equal_elements_loop_inv_v1_v2_diff": + "rank": 39 } }, + "equal_elements_loop_invariant_v1_v2_diff": { "alt-ergo": { "total": 1, "valid": 1, "rank": 15 }, @@ -116,7 +116,7 @@ "wp:main": { "total": 2, "valid": 2, "rank": 15 } }, - "equal_elements_loop_inv_v2_sound1": + "equal_elements_loop_invariant_v2_sound1": { "alt-ergo": { "total": 1, "valid": 1, "rank": 32 }, @@ -124,26 +124,26 @@ "wp:main": { "total": 2, "valid": 2, "rank": 32 } }, - "equal_elements_loop_inv_v1_sound1": + "equal_elements_loop_invariant_v1_sound1": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 24 }, + "rank": 25 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 24 } }, - "equal_elements_loop_inv_v1_first": + "rank": 25 } }, + "equal_elements_loop_invariant_v1_first": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "equal_elements_loop_inv_bound": + "equal_elements_loop_invariant_bound": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 10 }, + "rank": 11 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 10 } }, + "rank": 11 } }, "equal_elements_assert_set_at_1": { "alt-ergo": { "total": 1, "valid": 1, @@ -151,7 +151,7 @@ "wp:main": { "total": 1, "valid": 1, "rank": 7 } }, - "equal_elements_loop_inv_set_at_0": + "equal_elements_loop_invariant_set_at_0": { "alt-ergo": { "total": 1, "valid": 1, "rank": 10 }, @@ -159,67 +159,62 @@ "wp:main": { "total": 2, "valid": 2, "rank": 10 } }, - "equal_elements_loop_inv": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 7 }, - "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 7 } }, - "equal_elements_loop_term_2": + "equal_elements_loop_invariant": + { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 7 }, + "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 7 } }, + "equal_elements_loop_variant_2": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "equal_elements_loop_term": { "qed": - { "total": 2, - "valid": 2 }, - "wp:main": - { "total": 2, - "valid": 2 } }, - "equal_elements_assign": { "qed": + "equal_elements_loop_variant": + { "qed": { "total": 2, "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "equal_elements_assigns": { "qed": { "total": 3, "valid": 3 }, - "wp:main": + "wp:main": { "total": 3, "valid": 3 } }, - "equal_elements_loop_assign_2": + "equal_elements_loop_assigns_2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "equal_elements_loop_assign": + "equal_elements_loop_assigns": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "equal_elements_post_v1_v2_diff": + "equal_elements_ensures_v1_v2_diff": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 11 }, + "rank": 12 }, "wp:main": { "total": 1, "valid": 1, - "rank": 11 } }, - "equal_elements_post_v2_good": + "rank": 12 } }, + "equal_elements_ensures_v2_good": { "alt-ergo": { "total": 1, "valid": 1, "rank": 25 }, "wp:main": { "total": 1, "valid": 1, "rank": 25 } }, - "equal_elements_post_v1_good": + "equal_elements_ensures_v1_good": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 13 }, + "rank": 14 }, "wp:main": { "total": 1, "valid": 1, - "rank": 13 } }, + "rank": 14 } }, "wp:section": { "alt-ergo": { "total": 23, "valid": 23, - "rank": 38 }, + "rank": 39 }, "qed": { "total": 28, "valid": 28 }, "wp:main": { "total": 51, "valid": 51, - "rank": 38 } } } } } + "rank": 39 } } } } } diff --git a/src/plugins/wp/tests/wp_gallery/frama_c_exo3_solved.simplified.c.0.report.json b/src/plugins/wp/tests/wp_gallery/frama_c_exo3_solved.simplified.c.0.report.json index 980ed8a65818b5a813533a5d28ba6546c4d7f9e1..3d5440b7b470cca3e5fdd813dcb47a16db43fa96 100644 --- a/src/plugins/wp/tests/wp_gallery/frama_c_exo3_solved.simplified.c.0.report.json +++ b/src/plugins/wp/tests/wp_gallery/frama_c_exo3_solved.simplified.c.0.report.json @@ -77,82 +77,88 @@ "wp:main": { "total": 1, "valid": 1 } }, - "pair_loop_inv_6": { "alt-ergo": { "total": 2, - "valid": 2, - "rank": 17 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 17 } }, - "pair_loop_inv_5": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 16 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 16 } }, - "pair_loop_inv_4": { "alt-ergo": { "total": 2, - "valid": 2, - "rank": 17 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 17 } }, - "pair_loop_inv_3": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 6 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 6 } }, - "pair_loop_inv_2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 5 } }, - "pair_loop_inv": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 4 } }, - "pair_loop_term_2": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "pair_loop_term": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "pair_assign": { "qed": { "total": 4, - "valid": 4 }, - "wp:main": { "total": 4, - "valid": 4 } }, - "pair_loop_assign_2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "pair_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "pair_has_pair_post": { "alt-ergo": { "total": 1, + "pair_loop_invariant_6": { "alt-ergo": + { "total": 2, + "valid": 2, + "rank": 17 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 17 } }, + "pair_loop_invariant_5": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 17 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 17 } }, + "pair_loop_invariant_4": { "alt-ergo": + { "total": 2, + "valid": 2, + "rank": 17 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 17 } }, + "pair_loop_invariant_3": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 6 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 6 } }, + "pair_loop_invariant_2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 5 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 5 } }, + "pair_loop_invariant": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 22 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 22 } }, - "pair_no_pair_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 15 }, + "rank": 4 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 4 } }, + "pair_loop_variant_2": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "pair_loop_variant": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "pair_assigns": { "qed": { "total": 4, + "valid": 4 }, + "wp:main": { "total": 4, + "valid": 4 } }, + "pair_loop_assigns_2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "pair_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, "wp:main": { "total": 1, - "valid": 1, - "rank": 15 } }, + "valid": 1 } }, + "pair_has_pair_ensures": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 22 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 22 } }, + "pair_no_pair_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 16 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 16 } }, "wp:section": { "alt-ergo": { "total": 15, "valid": 15, "rank": 22 }, diff --git a/src/plugins/wp/tests/wp_gallery/frama_c_hashtbl_solved.c.0.report.json b/src/plugins/wp/tests/wp_gallery/frama_c_hashtbl_solved.c.0.report.json index 0efdbfb59cd974c0adeee48a35a8aff5257e2987..d8f60814f9c19800a8cc2cdf8ff7f90a526ab71b 100644 --- a/src/plugins/wp/tests/wp_gallery/frama_c_hashtbl_solved.c.0.report.json +++ b/src/plugins/wp/tests/wp_gallery/frama_c_hashtbl_solved.c.0.report.json @@ -28,57 +28,61 @@ "rank": 23 }, "wp:main": { "total": 1, "valid": 1, "rank": 23 } }, - "eq_string_loop_inv_2": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 9 }, - "qed": { "total": 1, + "eq_string_loop_invariant_2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 10 }, + "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 9 } }, - "eq_string_loop_inv": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 5 }, - "qed": { "total": 1, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 10 } }, + "eq_string_loop_invariant": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 6 }, + "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 5 } }, - "eq_string_loop_term": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": - { "total": 2, - "valid": 2 } }, - "eq_string_assign": { "qed": { "total": 4, - "valid": 4 }, - "wp:main": { "total": 4, - "valid": 4 } }, - "eq_string_loop_assign": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "eq_string_not_eq_post": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 13 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 13 } }, - "eq_string_eq_post": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 11 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 6 } }, + "eq_string_loop_variant": { "qed": + { "total": 2, + "valid": 2 }, + "wp:main": + { "total": 2, + "valid": 2 } }, + "eq_string_assigns": { "qed": { "total": 4, + "valid": 4 }, "wp:main": - { "total": 1, - "valid": 1, - "rank": 11 } }, + { "total": 4, + "valid": 4 } }, + "eq_string_loop_assigns": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "eq_string_not_eq_ensures": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 13 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 13 } }, + "eq_string_eq_ensures": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 12 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 12 } }, "wp:section": { "alt-ergo": { "total": 7, "valid": 7, "rank": 23 }, @@ -109,26 +113,26 @@ { "total": 1, "valid": 1, "rank": 18 } }, - "hash_loop_inv": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 4 } }, - "hash_loop_term": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "hash_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "hash_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "hash_loop_invariant": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 4 } }, + "hash_loop_variant": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "hash_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "hash_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 3, "valid": 3, "rank": 18 }, @@ -145,14 +149,14 @@ { "total": 1, "valid": 1, "rank": 8 } }, - "size_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "size_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "size_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "size_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 8 }, @@ -197,50 +201,51 @@ { "total": 1, "valid": 1, "rank": 16 } }, - "init_loop_inv_2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 8 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 8 } }, - "init_loop_inv": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 4 } }, - "init_loop_term": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "init_assign": { "alt-ergo": { "total": 1, + "init_loop_invariant_2": { "alt-ergo": + { "total": 1, "valid": 1, - "rank": 11 }, - "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 3, - "valid": 3, - "rank": 11 } }, - "init_loop_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "init_post_2": { "alt-ergo": { "total": 1, + "rank": 9 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 9 } }, + "init_loop_invariant": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 4 } }, + "init_loop_variant": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "init_assigns": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 12 }, + "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 3, + "valid": 3, + "rank": 12 } }, + "init_loop_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "init_ensures_2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 8 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 8 } }, + "init_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 18 }, + "wp:main": { "total": 1, "valid": 1, - "rank": 7 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 7 } }, - "init_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 18 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 18 } }, + "rank": 18 } }, "wp:section": { "alt-ergo": { "total": 8, "valid": 8, "rank": 31 }, @@ -249,9 +254,10 @@ "wp:main": { "total": 18, "valid": 18, "rank": 31 } } }, - "add": { "specialization_hash_pre_at_add_stmt_42": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "add": { "hash_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "add_disjoint_full_nominal": { "alt-ergo": { "total": 1, "valid": 1, @@ -376,66 +382,66 @@ { "total": 1, "valid": 1, "rank": 16 } }, - "add_nominal_assign": { "alt-ergo": { "total": 2, - "valid": 2, - "rank": 21 }, - "qed": { "total": 8, - "valid": 8 }, - "wp:main": { "total": 10, - "valid": 10, - "rank": 21 } }, - "add_full_assign": { "alt-ergo": { "total": 3, - "valid": 3, - "rank": 19 }, - "qed": { "total": 7, - "valid": 7 }, - "wp:main": { "total": 10, - "valid": 10, - "rank": 19 } }, - "add_assign": { "alt-ergo": { "total": 2, - "valid": 2, - "rank": 20 }, - "qed": { "total": 8, - "valid": 8 }, - "wp:main": { "total": 10, - "valid": 10, - "rank": 20 } }, - "add_full_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 16 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 16 } }, - "add_nominal_post_5": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 45 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 45 } }, - "add_nominal_post_4": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 23 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 23 } }, - "add_nominal_post_3": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 32 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 32 } }, - "add_nominal_post_2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 35 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 35 } }, - "add_nominal_post": { "alt-ergo": { "total": 1, + "add_nominal_assigns": { "alt-ergo": { "total": 2, + "valid": 2, + "rank": 21 }, + "qed": { "total": 8, + "valid": 8 }, + "wp:main": { "total": 10, + "valid": 10, + "rank": 21 } }, + "add_full_assigns": { "alt-ergo": { "total": 3, + "valid": 3, + "rank": 19 }, + "qed": { "total": 7, + "valid": 7 }, + "wp:main": { "total": 10, + "valid": 10, + "rank": 19 } }, + "add_assigns": { "alt-ergo": { "total": 2, + "valid": 2, + "rank": 21 }, + "qed": { "total": 8, + "valid": 8 }, + "wp:main": { "total": 10, + "valid": 10, + "rank": 21 } }, + "add_full_ensures": { "alt-ergo": { "total": 1, "valid": 1, "rank": 16 }, "wp:main": { "total": 1, "valid": 1, "rank": 16 } }, + "add_nominal_ensures_5": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 45 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 45 } }, + "add_nominal_ensures_4": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 24 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 24 } }, + "add_nominal_ensures_3": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 33 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 33 } }, + "add_nominal_ensures_2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 35 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 35 } }, + "add_nominal_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 16 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 16 } }, "wp:section": { "alt-ergo": { "total": 24, "valid": 24, "rank": 45 }, @@ -444,20 +450,24 @@ "wp:main": { "total": 54, "valid": 54, "rank": 45 } } }, - "mem_binding": { "specialization_eq_string_pre_at_mem_binding_stmt_63_2": - { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 27 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 27 } }, - "specialization_eq_string_pre_at_mem_binding_stmt_63": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "specialization_hash_pre_at_mem_binding_stmt_55": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "mem_binding": { "eq_string_requires_2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 27 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 27 } }, + "eq_string_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "hash_requires_2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "mem_binding_disjoint_not_found_found": { "alt-ergo": { "total": 1, "valid": 1, @@ -467,9 +477,9 @@ "mem_binding_complete_not_found_found": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 18 }, + "rank": 19 }, "wp:main": { "total": 1, "valid": 1, - "rank": 18 } }, + "rank": 19 } }, "mem_binding_assert_rte_signed_overflow": { "alt-ergo": { "total": 1, "valid": 1, @@ -540,56 +550,51 @@ "rank": 18 }, "wp:main": { "total": 1, "valid": 1, "rank": 18 } }, - "mem_binding_loop_inv_2": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 30 }, - "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 2, + "mem_binding_loop_invariant_2": + { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 31 }, + "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 2, "valid": 2, + "rank": 31 } }, + "mem_binding_loop_invariant": { "alt-ergo": + { "total": 2, "valid": 2, - "rank": 30 } }, - "mem_binding_loop_inv": { "alt-ergo": - { "total": 2, - "valid": 2, - "rank": 16 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 16 } }, - "mem_binding_loop_term": { "qed": - { "total": 2, + "rank": 16 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 16 } }, + "mem_binding_loop_variant": { "qed": + { "total": 2, "valid": 2 }, - "wp:main": - { "total": 2, + "wp:main": + { "total": 2, "valid": 2 } }, - "mem_binding_assign": { "qed": { "total": 11, - "valid": 11 }, - "wp:main": - { "total": 11, - "valid": 11 } }, - "mem_binding_loop_assign": { "qed": + "mem_binding_assigns": { "qed": + { "total": 11, + "valid": 11 }, + "wp:main": + { "total": 11, + "valid": 11 } }, + "mem_binding_loop_assigns": { "qed": { "total": 2, "valid": 2 }, - "wp:main": + "wp:main": { "total": 2, "valid": 2 } }, - "mem_binding_not_found_post": { "alt-ergo": + "mem_binding_not_found_ensures": + { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 33 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 33 } }, + "mem_binding_found_ensures": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 33 }, + "rank": 25 }, "wp:main": { "total": 1, - "valid": 1, - "rank": 33 } }, - "mem_binding_found_post": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 25 }, - "wp:main": - { "total": 1, "valid": 1, "rank": 25 } }, "wp:section": { "alt-ergo": { "total": 15, diff --git a/src/plugins/wp/tests/wp_gallery/loop-statement.c.0.report.json b/src/plugins/wp/tests/wp_gallery/loop-statement.c.0.report.json index 9de36f06f2317a3e97249529bc9d9467c084fbcd..e5e6355b5298cca1ed29dedf64ed513b9657913a 100644 --- a/src/plugins/wp/tests/wp_gallery/loop-statement.c.0.report.json +++ b/src/plugins/wp/tests/wp_gallery/loop-statement.c.0.report.json @@ -13,47 +13,49 @@ "wp:main": { "total": 1, "valid": 1, "rank": 31 } } } }, - "wp:functions": { "loop_statement": { "loop_statement_loop_inv_Iloop": + "wp:functions": { "loop_statement": { "loop_statement_loop_invariant_Iloop": { "alt-ergo": { "total": 2, "valid": 2, "rank": 16 }, "wp:main": { "total": 2, "valid": 2, "rank": 16 } }, - "loop_statement_assign": { "qed": + "loop_statement_assigns_2": { "qed": { "total": 4, "valid": 4 }, - "wp:main": + "wp:main": { "total": 4, "valid": 4 } }, - "loop_statement_stmt_assign": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "loop_statement_loop_assign": + "loop_statement_assigns": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "loop_statement_loop_assigns": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "loop_statement_stmt_post_Sbody": + "loop_statement_ensures_Sbody": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "loop_statement_stmt_pre_Scond": + "loop_statement_requires_Scond": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "loop_statement_stmt_pre_Rinv": + "loop_statement_requires_Rinv": { "alt-ergo": { "total": 1, "valid": 1, "rank": 20 }, "wp:main": { "total": 1, "valid": 1, "rank": 20 } }, - "loop_statement_post_Sloop": + "loop_statement_ensures_Sloop": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "loop_statement_post_Scond": + "loop_statement_ensures_Scond": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, diff --git a/src/plugins/wp/tests/wp_gallery/oracle/binary-multiplication-without-overflow.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/binary-multiplication-without-overflow.res.oracle index a9c881e3400da1b7777942e5a5014b0d86060399..5b136a7658cd0354170f2f4419e8b46fc2ab56bf 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/binary-multiplication-without-overflow.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/binary-multiplication-without-overflow.res.oracle @@ -7,16 +7,16 @@ [wp] Goal typed_lemma_ax2_lack : not tried [wp] Goal typed_lemma_sizeof_uint32_t_ok : trivial [wp] Goal typed_lemma_sizeof_uint64_t_ok : trivial -[wp] Goal typed_BinaryMultiplication_post_product : not tried +[wp] Goal typed_BinaryMultiplication_ensures_product : not tried [wp] Goal typed_BinaryMultiplication_assert_a1_ok_deductible : not tried -[wp] Goal typed_BinaryMultiplication_loop_inv_inv1_lack_preserved : not tried -[wp] Goal typed_BinaryMultiplication_loop_inv_inv1_lack_established : not tried -[wp] Goal typed_BinaryMultiplication_loop_inv_inv2_ok_deductible_preserved : not tried -[wp] Goal typed_BinaryMultiplication_loop_inv_inv2_ok_deductible_established : not tried +[wp] Goal typed_BinaryMultiplication_loop_invariant_inv1_lack_preserved : not tried +[wp] Goal typed_BinaryMultiplication_loop_invariant_inv1_lack_established : not tried +[wp] Goal typed_BinaryMultiplication_loop_invariant_inv2_ok_deductible_preserved : not tried +[wp] Goal typed_BinaryMultiplication_loop_invariant_inv2_ok_deductible_established : not tried [wp] Goal typed_BinaryMultiplication_assert_rte_unsigned_overflow : not tried [wp] Goal typed_BinaryMultiplication_assert_rte_unsigned_overflow_2 : not tried [wp] Goal typed_BinaryMultiplication_assert_rte_unsigned_overflow_3 : not tried [wp] Goal typed_BinaryMultiplication_assert_rte_unsigned_overflow_4 : not tried -[wp] Goal typed_BinaryMultiplication_loop_assign : trivial -[wp] Goal typed_BinaryMultiplication_loop_term_decrease : not tried -[wp] Goal typed_BinaryMultiplication_loop_term_positive : not tried +[wp] Goal typed_BinaryMultiplication_loop_assigns : trivial +[wp] Goal typed_BinaryMultiplication_loop_variant_decrease : not tried +[wp] Goal typed_BinaryMultiplication_loop_variant_positive : not tried diff --git a/src/plugins/wp/tests/wp_gallery/oracle/binary-multiplication.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/binary-multiplication.res.oracle index 7fd3bb8ff05a49b5acc35acebb185ea38f58a533..d37e8c31f601efd5331dd29b2cd443a53cf41528 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/binary-multiplication.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/binary-multiplication.res.oracle @@ -11,14 +11,14 @@ [wp] Goal typed_lemma_ax6_ok : not tried [wp] Goal typed_lemma_sizeof_uint32_t_ok : trivial [wp] Goal typed_lemma_sizeof_uint64_t_ok : trivial -[wp] Goal typed_BinaryMultiplication_post_product : not tried +[wp] Goal typed_BinaryMultiplication_ensures_product : not tried [wp] Goal typed_BinaryMultiplication_assert_a1_ok_deductible : not tried -[wp] Goal typed_BinaryMultiplication_loop_inv_inv1_lack_preserved : not tried -[wp] Goal typed_BinaryMultiplication_loop_inv_inv1_lack_established : not tried -[wp] Goal typed_BinaryMultiplication_loop_inv_inv2_lack_preserved : not tried -[wp] Goal typed_BinaryMultiplication_loop_inv_inv2_lack_established : not tried +[wp] Goal typed_BinaryMultiplication_loop_invariant_inv1_lack_preserved : not tried +[wp] Goal typed_BinaryMultiplication_loop_invariant_inv1_lack_established : not tried +[wp] Goal typed_BinaryMultiplication_loop_invariant_inv2_lack_preserved : not tried +[wp] Goal typed_BinaryMultiplication_loop_invariant_inv2_lack_established : not tried [wp] Goal typed_BinaryMultiplication_assert_a2_ok : not tried [wp] Goal typed_BinaryMultiplication_assert_a3_ok : not tried -[wp] Goal typed_BinaryMultiplication_loop_assign : trivial -[wp] Goal typed_BinaryMultiplication_loop_term_decrease : not tried -[wp] Goal typed_BinaryMultiplication_loop_term_positive : not tried +[wp] Goal typed_BinaryMultiplication_loop_assigns : trivial +[wp] Goal typed_BinaryMultiplication_loop_variant_decrease : not tried +[wp] Goal typed_BinaryMultiplication_loop_variant_positive : not tried diff --git a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo1_solved.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo1_solved.res.oracle index 43de8f0e4f5d0ee51d194883c2fccd4b1de93318..388a5387f67843dbacafd4aad8d4615860dbde18 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo1_solved.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo1_solved.res.oracle @@ -3,18 +3,18 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [rte] annotating function exo1 -[wp] Goal typed_exo1_post : not tried -[wp] Goal typed_exo1_post_2 : not tried +[wp] Goal typed_exo1_ensures : not tried +[wp] Goal typed_exo1_ensures_2 : not tried [wp] Goal typed_exo1_assert_rte_signed_overflow : not tried -[wp] Goal typed_exo1_loop_inv_preserved : not tried -[wp] Goal typed_exo1_loop_inv_established : not tried -[wp] Goal typed_exo1_loop_inv_2_preserved : not tried -[wp] Goal typed_exo1_loop_inv_2_established : not tried +[wp] Goal typed_exo1_loop_invariant_preserved : not tried +[wp] Goal typed_exo1_loop_invariant_established : not tried +[wp] Goal typed_exo1_loop_invariant_2_preserved : not tried +[wp] Goal typed_exo1_loop_invariant_2_established : not tried [wp] Goal typed_exo1_assert_rte_mem_access : not tried [wp] Goal typed_exo1_assert_rte_mem_access_2 : not tried [wp] Goal typed_exo1_assert_rte_signed_overflow_2 : not tried [wp] Goal typed_exo1_assert_rte_signed_overflow_3 : not tried -[wp] Goal typed_exo1_loop_assign : trivial -[wp] Goal typed_exo1_assign : not tried -[wp] Goal typed_exo1_loop_term_decrease : not tried -[wp] Goal typed_exo1_loop_term_positive : not tried +[wp] Goal typed_exo1_loop_assigns : trivial +[wp] Goal typed_exo1_assigns : not tried +[wp] Goal typed_exo1_loop_variant_decrease : not tried +[wp] Goal typed_exo1_loop_variant_positive : not tried diff --git a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo2_solved.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo2_solved.res.oracle index eafea03cce000bed408fac65ef413143b057a335..01cfab82cf38c1afd040a1dda9d285e2ab0317ab 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo2_solved.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo2_solved.res.oracle @@ -3,26 +3,26 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [rte] annotating function max_subarray -[wp] Goal typed_max_subarray_post : not tried -[wp] Goal typed_max_subarray_post_2 : not tried -[wp] Goal typed_max_subarray_loop_inv_preserved : not tried -[wp] Goal typed_max_subarray_loop_inv_established : not tried -[wp] Goal typed_max_subarray_loop_inv_2_preserved : not tried -[wp] Goal typed_max_subarray_loop_inv_2_established : not tried -[wp] Goal typed_max_subarray_loop_inv_3_preserved : not tried -[wp] Goal typed_max_subarray_loop_inv_3_established : not tried -[wp] Goal typed_max_subarray_loop_inv_4_preserved : not tried -[wp] Goal typed_max_subarray_loop_inv_4_established : not tried -[wp] Goal typed_max_subarray_loop_inv_5_preserved : not tried -[wp] Goal typed_max_subarray_loop_inv_5_established : not tried -[wp] Goal typed_max_subarray_loop_inv_6_preserved : not tried -[wp] Goal typed_max_subarray_loop_inv_6_established : not tried -[wp] Goal typed_max_subarray_loop_inv_7_preserved : not tried -[wp] Goal typed_max_subarray_loop_inv_7_established : not tried -[wp] Goal typed_max_subarray_loop_inv_8_preserved : not tried -[wp] Goal typed_max_subarray_loop_inv_8_established : not tried +[wp] Goal typed_max_subarray_ensures : not tried +[wp] Goal typed_max_subarray_ensures_2 : not tried +[wp] Goal typed_max_subarray_loop_invariant_preserved : not tried +[wp] Goal typed_max_subarray_loop_invariant_established : not tried +[wp] Goal typed_max_subarray_loop_invariant_2_preserved : not tried +[wp] Goal typed_max_subarray_loop_invariant_2_established : not tried +[wp] Goal typed_max_subarray_loop_invariant_3_preserved : not tried +[wp] Goal typed_max_subarray_loop_invariant_3_established : not tried +[wp] Goal typed_max_subarray_loop_invariant_4_preserved : not tried +[wp] Goal typed_max_subarray_loop_invariant_4_established : not tried +[wp] Goal typed_max_subarray_loop_invariant_5_preserved : not tried +[wp] Goal typed_max_subarray_loop_invariant_5_established : not tried +[wp] Goal typed_max_subarray_loop_invariant_6_preserved : not tried +[wp] Goal typed_max_subarray_loop_invariant_6_established : not tried +[wp] Goal typed_max_subarray_loop_invariant_7_preserved : not tried +[wp] Goal typed_max_subarray_loop_invariant_7_established : not tried +[wp] Goal typed_max_subarray_loop_invariant_8_preserved : not tried +[wp] Goal typed_max_subarray_loop_invariant_8_established : not tried [wp] Goal typed_max_subarray_assert_rte_mem_access : not tried -[wp] Goal typed_max_subarray_loop_assign : trivial -[wp] Goal typed_max_subarray_assign : not tried -[wp] Goal typed_max_subarray_loop_term_decrease : not tried -[wp] Goal typed_max_subarray_loop_term_positive : not tried +[wp] Goal typed_max_subarray_loop_assigns : trivial +[wp] Goal typed_max_subarray_assigns : not tried +[wp] Goal typed_max_subarray_loop_variant_decrease : not tried +[wp] Goal typed_max_subarray_loop_variant_positive : not tried diff --git a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.res.oracle index 6f7ae4b7e7cc5def01cb8ec771f88e5db660f898..d0d68abc9caadab4d4002d9a8bd206d5e529a233 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.res.oracle @@ -3,34 +3,34 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [rte] annotating function equal_elements -[wp] Goal typed_ref_equal_elements_post : not tried -[wp] Goal typed_ref_equal_elements_post_2 : not tried -[wp] Goal typed_ref_equal_elements_post_3 : not tried +[wp] Goal typed_ref_equal_elements_ensures : not tried +[wp] Goal typed_ref_equal_elements_ensures_2 : not tried +[wp] Goal typed_ref_equal_elements_ensures_3 : not tried [wp] Goal typed_ref_equal_elements_assert_rte_mem_access : trivial [wp] Goal typed_ref_equal_elements_assert_rte_mem_access_2 : trivial -[wp] Goal typed_ref_equal_elements_loop_inv_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_2_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_2_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_2_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_2_established : not tried [wp] Goal typed_ref_equal_elements_assert_rte_index_bound : not tried [wp] Goal typed_ref_equal_elements_assert_rte_index_bound_2 : not tried [wp] Goal typed_ref_equal_elements_assert_rte_signed_overflow : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_3_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_3_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_4_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_4_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_5_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_5_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_6_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_6_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_7_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_7_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_8_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_8_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_9_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_9_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_10_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_10_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_3_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_3_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_4_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_4_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_5_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_5_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_6_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_6_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_7_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_7_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_8_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_8_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_9_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_9_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_10_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_10_established : not tried [wp] Goal typed_ref_equal_elements_assert_rte_mem_access_3 : not tried [wp] Goal typed_ref_equal_elements_assert_rte_index_bound_3 : not tried [wp] Goal typed_ref_equal_elements_assert_rte_index_bound_4 : not tried @@ -44,15 +44,15 @@ [wp] Goal typed_ref_equal_elements_assert_rte_index_bound_6 : not tried [wp] Goal typed_ref_equal_elements_assert_2 : not tried [wp] Goal typed_ref_equal_elements_assert_rte_signed_overflow_2 : not tried -[wp] Goal typed_ref_equal_elements_loop_assign : trivial -[wp] Goal typed_ref_equal_elements_loop_assign_2 : trivial -[wp] Goal typed_ref_equal_elements_assign_part1 : trivial -[wp] Goal typed_ref_equal_elements_assign_part2 : not tried -[wp] Goal typed_ref_equal_elements_assign_part3 : not tried -[wp] Goal typed_ref_equal_elements_loop_term_decrease : not tried -[wp] Goal typed_ref_equal_elements_loop_term_positive : not tried -[wp] Goal typed_ref_equal_elements_loop_term_2_decrease : not tried -[wp] Goal typed_ref_equal_elements_loop_term_2_positive : not tried +[wp] Goal typed_ref_equal_elements_loop_assigns : trivial +[wp] Goal typed_ref_equal_elements_loop_assigns_2 : trivial +[wp] Goal typed_ref_equal_elements_assigns_part1 : trivial +[wp] Goal typed_ref_equal_elements_assigns_part2 : not tried +[wp] Goal typed_ref_equal_elements_assigns_part3 : not tried +[wp] Goal typed_ref_equal_elements_loop_variant_decrease : not tried +[wp] Goal typed_ref_equal_elements_loop_variant_positive : not tried +[wp] Goal typed_ref_equal_elements_loop_variant_2_decrease : not tried +[wp] Goal typed_ref_equal_elements_loop_variant_2_positive : not tried [wp] Warning: Memory model hypotheses for function 'equal_elements': /*@ behavior typed_ref: diff --git a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.v2.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.v2.res.oracle index cb8edd308b62fcdf4334ea512d87749bc39e176f..8b40acb3f436b766feb9fef4bb8d7b960945d098 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.v2.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.v2.res.oracle @@ -3,37 +3,37 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [rte] annotating function equal_elements -[wp] Goal typed_ref_equal_elements_post_v1_good : not tried -[wp] Goal typed_ref_equal_elements_post_v2_good : not tried -[wp] Goal typed_ref_equal_elements_post_v1_v2_diff : not tried +[wp] Goal typed_ref_equal_elements_ensures_v1_good : not tried +[wp] Goal typed_ref_equal_elements_ensures_v2_good : not tried +[wp] Goal typed_ref_equal_elements_ensures_v1_v2_diff : not tried [wp] Goal typed_ref_equal_elements_assert_rte_mem_access : trivial [wp] Goal typed_ref_equal_elements_assert_rte_mem_access_2 : trivial -[wp] Goal typed_ref_equal_elements_loop_inv_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_set_at_0_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_set_at_0_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_set_at_0_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_set_at_0_established : not tried [wp] Goal typed_ref_equal_elements_assert_rte_index_bound : not tried [wp] Goal typed_ref_equal_elements_assert_rte_index_bound_2 : not tried [wp] Goal typed_ref_equal_elements_assert_set_at_1 : not tried [wp] Goal typed_ref_equal_elements_assert_rte_signed_overflow : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_bound_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_bound_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_seen_sound1_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_seen_sound1_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_seen_sound2_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_seen_sound2_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_v1_first_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_v1_first_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_v1_sound1_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_v1_sound1_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_v1_sound2_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_v1_sound2_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_v1_v2_diff_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_v1_v2_diff_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_v2_sound1_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_v2_sound1_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_v2_sound2_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_v2_sound2_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_bound_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_bound_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_seen_sound1_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_seen_sound1_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_seen_sound2_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_seen_sound2_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_v1_first_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_v1_first_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_v1_sound1_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_v1_sound1_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_v1_sound2_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_v1_sound2_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_v1_v2_diff_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_v1_v2_diff_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_v2_sound1_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_v2_sound1_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_v2_sound2_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_v2_sound2_established : not tried [wp] Goal typed_ref_equal_elements_assert_rte_mem_access_3 : not tried [wp] Goal typed_ref_equal_elements_assert_rte_index_bound_3 : not tried [wp] Goal typed_ref_equal_elements_assert_rte_index_bound_4 : not tried @@ -45,15 +45,15 @@ [wp] Goal typed_ref_equal_elements_assert_rte_index_bound_5 : not tried [wp] Goal typed_ref_equal_elements_assert_rte_index_bound_6 : not tried [wp] Goal typed_ref_equal_elements_assert_rte_signed_overflow_2 : not tried -[wp] Goal typed_ref_equal_elements_loop_assign : trivial -[wp] Goal typed_ref_equal_elements_loop_assign_2 : trivial -[wp] Goal typed_ref_equal_elements_assign_part1 : trivial -[wp] Goal typed_ref_equal_elements_assign_part2 : not tried -[wp] Goal typed_ref_equal_elements_assign_part3 : not tried -[wp] Goal typed_ref_equal_elements_loop_term_decrease : not tried -[wp] Goal typed_ref_equal_elements_loop_term_positive : not tried -[wp] Goal typed_ref_equal_elements_loop_term_2_decrease : not tried -[wp] Goal typed_ref_equal_elements_loop_term_2_positive : not tried +[wp] Goal typed_ref_equal_elements_loop_assigns : trivial +[wp] Goal typed_ref_equal_elements_loop_assigns_2 : trivial +[wp] Goal typed_ref_equal_elements_assigns_part1 : trivial +[wp] Goal typed_ref_equal_elements_assigns_part2 : not tried +[wp] Goal typed_ref_equal_elements_assigns_part3 : not tried +[wp] Goal typed_ref_equal_elements_loop_variant_decrease : not tried +[wp] Goal typed_ref_equal_elements_loop_variant_positive : not tried +[wp] Goal typed_ref_equal_elements_loop_variant_2_decrease : not tried +[wp] Goal typed_ref_equal_elements_loop_variant_2_positive : not tried [wp] Warning: Memory model hypotheses for function 'equal_elements': /*@ behavior typed_ref: diff --git a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.simplified.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.simplified.res.oracle index c580a3411d9bb5e4717da9ec3f938b4b2c9798f0..d19091020e7771f01268a28a7d9a158e21d88c20 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.simplified.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.simplified.res.oracle @@ -5,36 +5,36 @@ [rte] annotating function pair [wp] Goal typed_pair_complete_has_pair_no_pair : trivial [wp] Goal typed_pair_disjoint_has_pair_no_pair : trivial -[wp] Goal typed_pair_loop_inv_preserved : not tried -[wp] Goal typed_pair_loop_inv_established : not tried -[wp] Goal typed_pair_loop_inv_2_preserved : not tried -[wp] Goal typed_pair_loop_inv_2_established : not tried +[wp] Goal typed_pair_loop_invariant_preserved : not tried +[wp] Goal typed_pair_loop_invariant_established : not tried +[wp] Goal typed_pair_loop_invariant_2_preserved : not tried +[wp] Goal typed_pair_loop_invariant_2_established : not tried [wp] Goal typed_pair_assert_rte_index_bound : not tried [wp] Goal typed_pair_assert_rte_index_bound_2 : not tried [wp] Goal typed_pair_assert_rte_signed_overflow : not tried -[wp] Goal typed_pair_loop_inv_3_preserved : not tried -[wp] Goal typed_pair_loop_inv_3_established : not tried -[wp] Goal typed_pair_loop_inv_4_preserved : not tried -[wp] Goal typed_pair_loop_inv_4_established : not tried -[wp] Goal typed_pair_loop_inv_5_preserved : not tried -[wp] Goal typed_pair_loop_inv_5_established : not tried -[wp] Goal typed_pair_loop_inv_6_preserved : not tried -[wp] Goal typed_pair_loop_inv_6_established : not tried +[wp] Goal typed_pair_loop_invariant_3_preserved : not tried +[wp] Goal typed_pair_loop_invariant_3_established : not tried +[wp] Goal typed_pair_loop_invariant_4_preserved : not tried +[wp] Goal typed_pair_loop_invariant_4_established : not tried +[wp] Goal typed_pair_loop_invariant_5_preserved : not tried +[wp] Goal typed_pair_loop_invariant_5_established : not tried +[wp] Goal typed_pair_loop_invariant_6_preserved : not tried +[wp] Goal typed_pair_loop_invariant_6_established : not tried [wp] Goal typed_pair_assert_rte_mem_access : not tried [wp] Goal typed_pair_assert_rte_index_bound_3 : not tried [wp] Goal typed_pair_assert_rte_index_bound_4 : not tried [wp] Goal typed_pair_assert_rte_index_bound_5 : not tried [wp] Goal typed_pair_assert_rte_index_bound_6 : not tried [wp] Goal typed_pair_assert_rte_signed_overflow_2 : not tried -[wp] Goal typed_pair_loop_assign : trivial -[wp] Goal typed_pair_loop_assign_2 : trivial -[wp] Goal typed_pair_assign_part1 : not tried -[wp] Goal typed_pair_assign_part2 : not tried -[wp] Goal typed_pair_assign_part3 : not tried -[wp] Goal typed_pair_assign_part4 : not tried -[wp] Goal typed_pair_loop_term_decrease : not tried -[wp] Goal typed_pair_loop_term_positive : not tried -[wp] Goal typed_pair_loop_term_2_decrease : not tried -[wp] Goal typed_pair_loop_term_2_positive : not tried -[wp] Goal typed_pair_has_pair_post : not tried -[wp] Goal typed_pair_no_pair_post : not tried +[wp] Goal typed_pair_loop_assigns : trivial +[wp] Goal typed_pair_loop_assigns_2 : trivial +[wp] Goal typed_pair_assigns_part1 : not tried +[wp] Goal typed_pair_assigns_part2 : not tried +[wp] Goal typed_pair_assigns_part3 : not tried +[wp] Goal typed_pair_assigns_part4 : not tried +[wp] Goal typed_pair_loop_variant_decrease : not tried +[wp] Goal typed_pair_loop_variant_positive : not tried +[wp] Goal typed_pair_loop_variant_2_decrease : not tried +[wp] Goal typed_pair_loop_variant_2_positive : not tried +[wp] Goal typed_pair_has_pair_ensures : not tried +[wp] Goal typed_pair_no_pair_ensures : not tried diff --git a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_hashtbl_solved.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_hashtbl_solved.res.oracle index 858d5fb5abcd6833d1bd5df3a470b6fd41b7b9b9..00a8df49e163c00104c97b7203e10f9e6f4accfa 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_hashtbl_solved.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_hashtbl_solved.res.oracle @@ -26,96 +26,96 @@ [wp] Goal typed_add_assert_rte_mem_access_6 : not tried [wp] Goal typed_add_assert_rte_mem_access_7 : not tried [wp] Goal typed_add_assert_rte_signed_overflow_2 : not tried -[wp] Goal typed_add_assign_exit : trivial -[wp] Goal typed_add_assign_normal_part1 : trivial -[wp] Goal typed_add_assign_normal_part2 : not tried -[wp] Goal typed_add_assign_normal_part3 : not tried -[wp] Goal typed_add_assign_normal_part4 : not tried -[wp] Goal typed_add_assign_normal_part5 : not tried -[wp] Goal typed_add_assign_normal_part6 : not tried -[wp] Goal typed_add_assign_normal_part7 : not tried -[wp] Goal typed_add_assign_normal_part8 : not tried -[wp] Goal typed_add_assign_normal_part9 : not tried -[wp] Goal typed_add_call_hash_pre : not tried -[wp] Goal typed_add_full_post : not tried -[wp] Goal typed_add_full_assign_exit : trivial -[wp] Goal typed_add_full_assign_normal_part1 : trivial -[wp] Goal typed_add_full_assign_normal_part2 : not tried -[wp] Goal typed_add_full_assign_normal_part3 : not tried -[wp] Goal typed_add_full_assign_normal_part4 : not tried -[wp] Goal typed_add_full_assign_normal_part5 : not tried -[wp] Goal typed_add_full_assign_normal_part6 : not tried -[wp] Goal typed_add_full_assign_normal_part7 : not tried -[wp] Goal typed_add_full_assign_normal_part8 : not tried -[wp] Goal typed_add_full_assign_normal_part9 : not tried -[wp] Goal typed_add_nominal_post : not tried -[wp] Goal typed_add_nominal_post_2 : not tried -[wp] Goal typed_add_nominal_post_3 : not tried -[wp] Goal typed_add_nominal_post_4 : not tried -[wp] Goal typed_add_nominal_post_5 : not tried -[wp] Goal typed_add_nominal_assign_exit : trivial -[wp] Goal typed_add_nominal_assign_normal_part1 : trivial -[wp] Goal typed_add_nominal_assign_normal_part2 : not tried -[wp] Goal typed_add_nominal_assign_normal_part3 : not tried -[wp] Goal typed_add_nominal_assign_normal_part4 : not tried -[wp] Goal typed_add_nominal_assign_normal_part5 : not tried -[wp] Goal typed_add_nominal_assign_normal_part6 : not tried -[wp] Goal typed_add_nominal_assign_normal_part7 : not tried -[wp] Goal typed_add_nominal_assign_normal_part8 : not tried -[wp] Goal typed_add_nominal_assign_normal_part9 : not tried +[wp] Goal typed_add_assigns_exit : trivial +[wp] Goal typed_add_assigns_normal_part1 : trivial +[wp] Goal typed_add_assigns_normal_part2 : not tried +[wp] Goal typed_add_assigns_normal_part3 : not tried +[wp] Goal typed_add_assigns_normal_part4 : not tried +[wp] Goal typed_add_assigns_normal_part5 : not tried +[wp] Goal typed_add_assigns_normal_part6 : not tried +[wp] Goal typed_add_assigns_normal_part7 : not tried +[wp] Goal typed_add_assigns_normal_part8 : not tried +[wp] Goal typed_add_assigns_normal_part9 : not tried +[wp] Goal typed_add_call_hash_requires : not tried +[wp] Goal typed_add_full_ensures : not tried +[wp] Goal typed_add_full_assigns_exit : trivial +[wp] Goal typed_add_full_assigns_normal_part1 : trivial +[wp] Goal typed_add_full_assigns_normal_part2 : not tried +[wp] Goal typed_add_full_assigns_normal_part3 : not tried +[wp] Goal typed_add_full_assigns_normal_part4 : not tried +[wp] Goal typed_add_full_assigns_normal_part5 : not tried +[wp] Goal typed_add_full_assigns_normal_part6 : not tried +[wp] Goal typed_add_full_assigns_normal_part7 : not tried +[wp] Goal typed_add_full_assigns_normal_part8 : not tried +[wp] Goal typed_add_full_assigns_normal_part9 : not tried +[wp] Goal typed_add_nominal_ensures : not tried +[wp] Goal typed_add_nominal_ensures_2 : not tried +[wp] Goal typed_add_nominal_ensures_3 : not tried +[wp] Goal typed_add_nominal_ensures_4 : not tried +[wp] Goal typed_add_nominal_ensures_5 : not tried +[wp] Goal typed_add_nominal_assigns_exit : trivial +[wp] Goal typed_add_nominal_assigns_normal_part1 : trivial +[wp] Goal typed_add_nominal_assigns_normal_part2 : not tried +[wp] Goal typed_add_nominal_assigns_normal_part3 : not tried +[wp] Goal typed_add_nominal_assigns_normal_part4 : not tried +[wp] Goal typed_add_nominal_assigns_normal_part5 : not tried +[wp] Goal typed_add_nominal_assigns_normal_part6 : not tried +[wp] Goal typed_add_nominal_assigns_normal_part7 : not tried +[wp] Goal typed_add_nominal_assigns_normal_part8 : not tried +[wp] Goal typed_add_nominal_assigns_normal_part9 : not tried [wp] Goal typed_eq_string_complete_not_eq_eq : trivial [wp] Goal typed_eq_string_disjoint_not_eq_eq : trivial -[wp] Goal typed_eq_string_loop_inv_preserved : not tried -[wp] Goal typed_eq_string_loop_inv_established : not tried -[wp] Goal typed_eq_string_loop_inv_2_preserved : not tried -[wp] Goal typed_eq_string_loop_inv_2_established : not tried +[wp] Goal typed_eq_string_loop_invariant_preserved : not tried +[wp] Goal typed_eq_string_loop_invariant_established : not tried +[wp] Goal typed_eq_string_loop_invariant_2_preserved : not tried +[wp] Goal typed_eq_string_loop_invariant_2_established : not tried [wp] Goal typed_eq_string_assert_rte_mem_access : not tried [wp] Goal typed_eq_string_assert_rte_mem_access_2 : not tried [wp] Goal typed_eq_string_assert_rte_signed_overflow : not tried -[wp] Goal typed_eq_string_loop_assign : trivial -[wp] Goal typed_eq_string_assign_part1 : not tried -[wp] Goal typed_eq_string_assign_part2 : not tried -[wp] Goal typed_eq_string_assign_part3 : not tried -[wp] Goal typed_eq_string_assign_part4 : not tried -[wp] Goal typed_eq_string_loop_term_decrease : not tried -[wp] Goal typed_eq_string_loop_term_positive : not tried -[wp] Goal typed_eq_string_eq_post : not tried -[wp] Goal typed_eq_string_not_eq_post : not tried -[wp] Goal typed_hash_post_left_unproved : not tried -[wp] Goal typed_hash_loop_inv_preserved : not tried -[wp] Goal typed_hash_loop_inv_established : not tried +[wp] Goal typed_eq_string_loop_assigns : trivial +[wp] Goal typed_eq_string_assigns_part1 : not tried +[wp] Goal typed_eq_string_assigns_part2 : not tried +[wp] Goal typed_eq_string_assigns_part3 : not tried +[wp] Goal typed_eq_string_assigns_part4 : not tried +[wp] Goal typed_eq_string_loop_variant_decrease : not tried +[wp] Goal typed_eq_string_loop_variant_positive : not tried +[wp] Goal typed_eq_string_eq_ensures : not tried +[wp] Goal typed_eq_string_not_eq_ensures : not tried +[wp] Goal typed_hash_ensures_left_unproved : not tried +[wp] Goal typed_hash_loop_invariant_preserved : not tried +[wp] Goal typed_hash_loop_invariant_established : not tried [wp] Goal typed_hash_assert_rte_mem_access : not tried [wp] Goal typed_hash_assert_rte_mem_access_2 : not tried [wp] Goal typed_hash_assert_rte_signed_overflow : not tried -[wp] Goal typed_hash_loop_assign : trivial -[wp] Goal typed_hash_assign_part1 : not tried -[wp] Goal typed_hash_assign_part2 : not tried -[wp] Goal typed_hash_loop_term_decrease : not tried -[wp] Goal typed_hash_loop_term_positive : not tried -[wp] Goal typed_init_post : not tried -[wp] Goal typed_init_post_2 : not tried +[wp] Goal typed_hash_loop_assigns : trivial +[wp] Goal typed_hash_assigns_part1 : not tried +[wp] Goal typed_hash_assigns_part2 : not tried +[wp] Goal typed_hash_loop_variant_decrease : not tried +[wp] Goal typed_hash_loop_variant_positive : not tried +[wp] Goal typed_init_ensures : not tried +[wp] Goal typed_init_ensures_2 : not tried [wp] Goal typed_init_assert_rte_mem_access : not tried -[wp] Goal typed_init_loop_inv_preserved : not tried -[wp] Goal typed_init_loop_inv_established : not tried -[wp] Goal typed_init_loop_inv_2_preserved : not tried -[wp] Goal typed_init_loop_inv_2_established : not tried +[wp] Goal typed_init_loop_invariant_preserved : not tried +[wp] Goal typed_init_loop_invariant_established : not tried +[wp] Goal typed_init_loop_invariant_2_preserved : not tried +[wp] Goal typed_init_loop_invariant_2_established : not tried [wp] Goal typed_init_assert_rte_index_bound : not tried [wp] Goal typed_init_assert_rte_index_bound_2 : not tried [wp] Goal typed_init_assert_rte_mem_access_2 : not tried [wp] Goal typed_init_assert_rte_signed_overflow : not tried -[wp] Goal typed_init_loop_assign_part1 : trivial -[wp] Goal typed_init_loop_assign_part2 : not tried -[wp] Goal typed_init_assign_part1 : not tried -[wp] Goal typed_init_assign_part2 : not tried -[wp] Goal typed_init_assign_part3 : not tried -[wp] Goal typed_init_loop_term_decrease : not tried -[wp] Goal typed_init_loop_term_positive : not tried +[wp] Goal typed_init_loop_assigns_part1 : trivial +[wp] Goal typed_init_loop_assigns_part2 : not tried +[wp] Goal typed_init_assigns_part1 : not tried +[wp] Goal typed_init_assigns_part2 : not tried +[wp] Goal typed_init_assigns_part3 : not tried +[wp] Goal typed_init_loop_variant_decrease : not tried +[wp] Goal typed_init_loop_variant_positive : not tried [wp] Goal typed_mem_binding_complete_not_found_found : not tried [wp] Goal typed_mem_binding_disjoint_not_found_found : not tried -[wp] Goal typed_mem_binding_loop_inv_preserved : not tried -[wp] Goal typed_mem_binding_loop_inv_established : not tried -[wp] Goal typed_mem_binding_loop_inv_2_preserved : not tried -[wp] Goal typed_mem_binding_loop_inv_2_established : not tried +[wp] Goal typed_mem_binding_loop_invariant_preserved : not tried +[wp] Goal typed_mem_binding_loop_invariant_established : not tried +[wp] Goal typed_mem_binding_loop_invariant_2_preserved : not tried +[wp] Goal typed_mem_binding_loop_invariant_2_established : not tried [wp] Goal typed_mem_binding_assert_rte_index_bound : not tried [wp] Goal typed_mem_binding_assert_rte_index_bound_2 : not tried [wp] Goal typed_mem_binding_assert_rte_mem_access : not tried @@ -130,26 +130,26 @@ [wp] Goal typed_mem_binding_assert_rte_index_bound_10 : not tried [wp] Goal typed_mem_binding_assert_rte_mem_access_3 : not tried [wp] Goal typed_mem_binding_assert_rte_signed_overflow : not tried -[wp] Goal typed_mem_binding_loop_assign_part1 : trivial -[wp] Goal typed_mem_binding_loop_assign_part2 : not tried -[wp] Goal typed_mem_binding_assign_exit_part1 : trivial -[wp] Goal typed_mem_binding_assign_exit_part2 : not tried -[wp] Goal typed_mem_binding_assign_exit_part3 : not tried -[wp] Goal typed_mem_binding_assign_exit_part4 : not tried -[wp] Goal typed_mem_binding_assign_normal_part1 : trivial -[wp] Goal typed_mem_binding_assign_normal_part2 : not tried -[wp] Goal typed_mem_binding_assign_normal_part3 : not tried -[wp] Goal typed_mem_binding_assign_normal_part4 : not tried -[wp] Goal typed_mem_binding_assign_normal_part5 : not tried -[wp] Goal typed_mem_binding_assign_normal_part6 : not tried -[wp] Goal typed_mem_binding_assign_normal_part7 : not tried -[wp] Goal typed_mem_binding_loop_term_decrease : not tried -[wp] Goal typed_mem_binding_loop_term_positive : not tried -[wp] Goal typed_mem_binding_call_hash_pre : not tried -[wp] Goal typed_mem_binding_call_eq_string_pre : not tried -[wp] Goal typed_mem_binding_call_eq_string_pre_2 : not tried -[wp] Goal typed_mem_binding_found_post : not tried -[wp] Goal typed_mem_binding_not_found_post : not tried -[wp] Goal typed_size_post : not tried +[wp] Goal typed_mem_binding_loop_assigns_part1 : trivial +[wp] Goal typed_mem_binding_loop_assigns_part2 : not tried +[wp] Goal typed_mem_binding_assigns_exit_part1 : trivial +[wp] Goal typed_mem_binding_assigns_exit_part2 : not tried +[wp] Goal typed_mem_binding_assigns_exit_part3 : not tried +[wp] Goal typed_mem_binding_assigns_exit_part4 : not tried +[wp] Goal typed_mem_binding_assigns_normal_part1 : trivial +[wp] Goal typed_mem_binding_assigns_normal_part2 : not tried +[wp] Goal typed_mem_binding_assigns_normal_part3 : not tried +[wp] Goal typed_mem_binding_assigns_normal_part4 : not tried +[wp] Goal typed_mem_binding_assigns_normal_part5 : not tried +[wp] Goal typed_mem_binding_assigns_normal_part6 : not tried +[wp] Goal typed_mem_binding_assigns_normal_part7 : not tried +[wp] Goal typed_mem_binding_loop_variant_decrease : not tried +[wp] Goal typed_mem_binding_loop_variant_positive : not tried +[wp] Goal typed_mem_binding_call_hash_requires : not tried +[wp] Goal typed_mem_binding_call_eq_string_requires : not tried +[wp] Goal typed_mem_binding_call_eq_string_requires_2 : not tried +[wp] Goal typed_mem_binding_found_ensures : not tried +[wp] Goal typed_mem_binding_not_found_ensures : not tried +[wp] Goal typed_size_ensures : not tried [wp] Goal typed_size_assert_rte_mem_access : not tried -[wp] Goal typed_size_assign : not tried +[wp] Goal typed_size_assigns : not tried diff --git a/src/plugins/wp/tests/wp_gallery/oracle/loop-statement.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/loop-statement.res.oracle index 5b5e59d368048c9ece0eede0c84e73dfe835037a..52b5a0ec02f3a5baff3c2969562156e94d7035b8 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/loop-statement.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/loop-statement.res.oracle @@ -4,17 +4,17 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Goal typed_lemma_Lb : not tried -[wp] Goal typed_loop_statement_post_Scond : not tried -[wp] Goal typed_loop_statement_post_Sloop : not tried -[wp] Goal typed_loop_statement_loop_inv_Iloop_preserved : not tried -[wp] Goal typed_loop_statement_loop_inv_Iloop_established : not tried -[wp] Goal typed_loop_statement_loop_assign_part1 : trivial -[wp] Goal typed_loop_statement_loop_assign_part2 : not tried -[wp] Goal typed_loop_statement_assign_exit_part1 : trivial -[wp] Goal typed_loop_statement_assign_exit_part2 : not tried -[wp] Goal typed_loop_statement_assign_normal_part1 : trivial -[wp] Goal typed_loop_statement_assign_normal_part2 : not tried -[wp] Goal typed_loop_statement_stmt_pre_Rinv : not tried -[wp] Goal typed_loop_statement_stmt_pre_Scond : not tried -[wp] Goal typed_loop_statement_stmt_post_Sbody : not tried -[wp] Goal typed_loop_statement_stmt_assign : trivial +[wp] Goal typed_loop_statement_ensures_Scond : not tried +[wp] Goal typed_loop_statement_ensures_Sloop : not tried +[wp] Goal typed_loop_statement_loop_invariant_Iloop_preserved : not tried +[wp] Goal typed_loop_statement_loop_invariant_Iloop_established : not tried +[wp] Goal typed_loop_statement_loop_assigns_part1 : trivial +[wp] Goal typed_loop_statement_loop_assigns_part2 : not tried +[wp] Goal typed_loop_statement_assigns_2_exit_part1 : trivial +[wp] Goal typed_loop_statement_assigns_2_exit_part2 : not tried +[wp] Goal typed_loop_statement_assigns_2_normal_part1 : trivial +[wp] Goal typed_loop_statement_assigns_2_normal_part2 : not tried +[wp] Goal typed_loop_statement_requires_Rinv : not tried +[wp] Goal typed_loop_statement_requires_Scond : not tried +[wp] Goal typed_loop_statement_ensures_Sbody : not tried +[wp] Goal typed_loop_statement_assigns : trivial 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 90daf4367f29931b21f53b977b681d9b4bf0fa37..9ff5c4e14638d08ecbd7961498b5e8d1016a00c4 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 @@ -6,13 +6,13 @@ [wp] 9 goals scheduled [wp] [Qed] Goal typed_lemma_sizeof_uint32_t_ok : Valid [wp] [Qed] Goal typed_lemma_sizeof_uint64_t_ok : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_post_product : Valid +[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_ensures_product : Valid [wp] [Alt-Ergo] Goal typed_BinaryMultiplication_assert_a1_ok_deductible : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_loop_inv_inv2_ok_deductible_preserved : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_loop_inv_inv2_ok_deductible_established : Valid -[wp] [Qed] Goal typed_BinaryMultiplication_loop_assign : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_loop_term_decrease : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_loop_term_positive : Valid +[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_loop_invariant_inv2_ok_deductible_preserved : Valid +[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_loop_invariant_inv2_ok_deductible_established : 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] Proved goals: 9 / 9 Qed: 3 Alt-Ergo: 6 @@ -22,24 +22,24 @@ Axiomatics WP Alt-Ergo Total Success Axiomatic mult 2 - 2 100% ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -BinaryMultiplication 1 6 (56..80) 7 100% +BinaryMultiplication 1 6 (64..88) 7 100% ------------------------------------------------------------- [wp] Running WP plugin... [rte] annotating function BinaryMultiplication [wp] 13 goals scheduled [wp] [Qed] Goal typed_lemma_sizeof_uint32_t_ok : Valid [wp] [Qed] Goal typed_lemma_sizeof_uint64_t_ok : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_post_product : Valid +[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_ensures_product : Valid [wp] [Alt-Ergo] Goal typed_BinaryMultiplication_assert_a1_ok_deductible : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_loop_inv_inv2_ok_deductible_preserved : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_loop_inv_inv2_ok_deductible_established : Valid +[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_loop_invariant_inv2_ok_deductible_preserved : Valid +[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_loop_invariant_inv2_ok_deductible_established : 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] [Alt-Ergo] Goal typed_BinaryMultiplication_assert_rte_unsigned_overflow_4 : Valid -[wp] [Qed] Goal typed_BinaryMultiplication_loop_assign : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_loop_term_decrease : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_loop_term_positive : 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] Proved goals: 10 / 13 Qed: 0 Alt-Ergo: 10 @@ -49,5 +49,5 @@ Axiomatics WP Alt-Ergo Total Success Axiomatic mult 2 - 2 100% ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -BinaryMultiplication 1 10 (56..80) 11 100% +BinaryMultiplication 1 10 (64..88) 11 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication.res.oracle index eece2d7e9c0f602a2df9c25328eebbd3a0cd4b01..4ed3a30466c56941d1f80920b99c2a74bf8b43bd 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication.res.oracle @@ -8,13 +8,13 @@ [wp] [Alt-Ergo] Goal typed_lemma_ax6_ok : Valid [wp] [Qed] Goal typed_lemma_sizeof_uint32_t_ok : Valid [wp] [Qed] Goal typed_lemma_sizeof_uint64_t_ok : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_post_product : Valid +[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_ensures_product : Valid [wp] [Alt-Ergo] Goal typed_BinaryMultiplication_assert_a1_ok_deductible : Valid [wp] [Alt-Ergo] Goal typed_BinaryMultiplication_assert_a2_ok : Valid [wp] [Alt-Ergo] Goal typed_BinaryMultiplication_assert_a3_ok : Valid -[wp] [Qed] Goal typed_BinaryMultiplication_loop_assign : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_loop_term_decrease : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_loop_term_positive : 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] Proved goals: 11 / 11 Qed: 3 Alt-Ergo: 8 @@ -33,13 +33,13 @@ BinaryMultiplication 1 6 (208..256) 7 100% [wp] [Alt-Ergo] Goal typed_lemma_ax6_ok : Valid [wp] [Qed] Goal typed_lemma_sizeof_uint32_t_ok : Valid [wp] [Qed] Goal typed_lemma_sizeof_uint64_t_ok : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_post_product : Valid +[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_ensures_product : Valid [wp] [Alt-Ergo] Goal typed_BinaryMultiplication_assert_a1_ok_deductible : Valid [wp] [Alt-Ergo] Goal typed_BinaryMultiplication_assert_a2_ok : Valid [wp] [Alt-Ergo] Goal typed_BinaryMultiplication_assert_a3_ok : Valid -[wp] [Qed] Goal typed_BinaryMultiplication_loop_assign : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_loop_term_decrease : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_loop_term_positive : 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] Proved goals: 8 / 11 Qed: 0 Alt-Ergo: 8 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 18a6191913b029b426e431a9887fffd983c768cb..ce30257121484b2aec47784e9ff25785521a9566 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 @@ -4,47 +4,47 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 10 goals scheduled -[wp] [Alt-Ergo] Goal typed_exo1_post : Valid -[wp] [Alt-Ergo] Goal typed_exo1_post_2 : Valid -[wp] [Alt-Ergo] Goal typed_exo1_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_exo1_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_exo1_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_exo1_loop_inv_2_established : Valid -[wp] [Qed] Goal typed_exo1_loop_assign : Valid -[wp] [Qed] Goal typed_exo1_assign : Valid -[wp] [Qed] Goal typed_exo1_loop_term_decrease : Valid -[wp] [Qed] Goal typed_exo1_loop_term_positive : Valid +[wp] [Alt-Ergo] Goal typed_exo1_ensures : Valid +[wp] [Alt-Ergo] Goal typed_exo1_ensures_2 : Valid +[wp] [Alt-Ergo] Goal typed_exo1_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_exo1_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_exo1_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_exo1_loop_invariant_2_established : Valid +[wp] [Qed] Goal typed_exo1_loop_assigns : Valid +[wp] [Qed] Goal typed_exo1_assigns : Valid +[wp] [Qed] Goal typed_exo1_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_exo1_loop_variant_positive : Valid [wp] Proved goals: 10 / 10 Qed: 6 Alt-Ergo: 4 [wp] Report 'tests/wp_gallery/frama_c_exo1_solved.c.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -exo1 6 4 (176..200) 10 100% +exo1 6 4 (176..224) 10 100% ------------------------------------------------------------- [wp] Running WP plugin... [rte] annotating function exo1 [wp] 15 goals scheduled -[wp] [Alt-Ergo] Goal typed_exo1_post : Valid -[wp] [Alt-Ergo] Goal typed_exo1_post_2 : Valid +[wp] [Alt-Ergo] Goal typed_exo1_ensures : Valid +[wp] [Alt-Ergo] Goal typed_exo1_ensures_2 : Valid [wp] [Alt-Ergo] Goal typed_exo1_assert_rte_signed_overflow : Valid -[wp] [Alt-Ergo] Goal typed_exo1_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_exo1_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_exo1_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_exo1_loop_inv_2_established : Valid +[wp] [Alt-Ergo] Goal typed_exo1_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_exo1_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_exo1_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_exo1_loop_invariant_2_established : 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_loop_assign : Valid -[wp] [Qed] Goal typed_exo1_assign : Valid -[wp] [Qed] Goal typed_exo1_loop_term_decrease : Valid -[wp] [Qed] Goal typed_exo1_loop_term_positive : Valid +[wp] [Qed] Goal typed_exo1_loop_assigns : Valid +[wp] [Qed] Goal typed_exo1_assigns : Valid +[wp] [Qed] Goal typed_exo1_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_exo1_loop_variant_positive : Valid [wp] Proved goals: 9 / 15 Qed: 0 Alt-Ergo: 9 [wp] Report 'tests/wp_gallery/frama_c_exo1_solved.c.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -exo1 6 9 (176..200) 15 100% +exo1 6 9 (176..224) 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 41e2e2c8dbcf9809137d9471457e976477730fa3..f2115310be12c73ff806d20a362e3eeabfcb6637 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 @@ -4,67 +4,67 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 22 goals scheduled -[wp] [Alt-Ergo] Goal typed_max_subarray_post : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_post_2 : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_max_subarray_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_max_subarray_loop_inv_2_established : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_3_preserved : Valid -[wp] [Qed] Goal typed_max_subarray_loop_inv_3_established : Valid -[wp] [Qed] Goal typed_max_subarray_loop_inv_4_preserved : Valid -[wp] [Qed] Goal typed_max_subarray_loop_inv_4_established : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_5_preserved : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_5_established : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_6_preserved : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_6_established : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_7_preserved : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_7_established : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_8_preserved : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_8_established : Valid -[wp] [Qed] Goal typed_max_subarray_loop_assign : Valid -[wp] [Qed] Goal typed_max_subarray_assign : Valid -[wp] [Qed] Goal typed_max_subarray_loop_term_decrease : Valid -[wp] [Qed] Goal typed_max_subarray_loop_term_positive : Valid +[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_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 +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_3_preserved : Valid +[wp] [Qed] Goal typed_max_subarray_loop_invariant_3_established : Valid +[wp] [Qed] Goal typed_max_subarray_loop_invariant_4_preserved : Valid +[wp] [Qed] Goal typed_max_subarray_loop_invariant_4_established : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_5_preserved : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_5_established : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_6_preserved : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_6_established : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_7_preserved : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_7_established : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_8_preserved : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_8_established : Valid +[wp] [Qed] Goal typed_max_subarray_loop_assigns : Valid +[wp] [Qed] Goal typed_max_subarray_assigns : Valid +[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: 9 Alt-Ergo: 13 [wp] Report 'tests/wp_gallery/frama_c_exo2_solved.c.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -max_subarray 9 13 (256..304) 22 100% +max_subarray 9 13 (272..320) 22 100% ------------------------------------------------------------- [wp] Running WP plugin... [rte] annotating function max_subarray [wp] 23 goals scheduled -[wp] [Alt-Ergo] Goal typed_max_subarray_post : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_post_2 : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_max_subarray_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_max_subarray_loop_inv_2_established : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_3_preserved : Valid -[wp] [Qed] Goal typed_max_subarray_loop_inv_3_established : Valid -[wp] [Qed] Goal typed_max_subarray_loop_inv_4_preserved : Valid -[wp] [Qed] Goal typed_max_subarray_loop_inv_4_established : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_5_preserved : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_5_established : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_6_preserved : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_6_established : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_7_preserved : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_7_established : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_8_preserved : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_8_established : Valid +[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_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 +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_3_preserved : Valid +[wp] [Qed] Goal typed_max_subarray_loop_invariant_3_established : Valid +[wp] [Qed] Goal typed_max_subarray_loop_invariant_4_preserved : Valid +[wp] [Qed] Goal typed_max_subarray_loop_invariant_4_established : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_5_preserved : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_5_established : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_6_preserved : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_6_established : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_7_preserved : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_7_established : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_8_preserved : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_8_established : Valid [wp] [Alt-Ergo] Goal typed_max_subarray_assert_rte_mem_access : Valid -[wp] [Qed] Goal typed_max_subarray_loop_assign : Valid -[wp] [Qed] Goal typed_max_subarray_assign : Valid -[wp] [Qed] Goal typed_max_subarray_loop_term_decrease : Valid -[wp] [Qed] Goal typed_max_subarray_loop_term_positive : Valid +[wp] [Qed] Goal typed_max_subarray_loop_assigns : Valid +[wp] [Qed] Goal typed_max_subarray_assigns : Valid +[wp] [Qed] Goal typed_max_subarray_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_max_subarray_loop_variant_positive : Valid [wp] Proved goals: 14 / 23 Qed: 0 Alt-Ergo: 14 [wp] Report 'tests/wp_gallery/frama_c_exo2_solved.c.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -max_subarray 9 14 (256..304) 23 100% +max_subarray 9 14 (272..320) 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 4f585ac10bd9c239defe67670e5d4bfebc4a8efa..1ff95155e5ec31109591b89fd9b36878a684d65c 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 @@ -4,40 +4,40 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 34 goals scheduled -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_post : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_post_2 : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_post_3 : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_2_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_3_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_3_established : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_4_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_4_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_5_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_5_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_6_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_6_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_7_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_7_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_8_preserved : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_8_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_9_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_9_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_10_preserved : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_10_established : Valid +[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_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_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 +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_5_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_5_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_6_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_6_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_7_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_7_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_8_preserved : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_8_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_9_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_9_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_10_preserved : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_10_established : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_2 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_assign : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_assign_2 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_assign_part1 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_assign_part2 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_assign_part3 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_term_decrease : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_term_positive : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_term_2_decrease : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_term_2_positive : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_assigns : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_assigns_2 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_assigns_part1 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_assigns_part2 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_assigns_part3 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_variant_positive : Valid +[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: 18 Alt-Ergo: 16 @@ -57,34 +57,34 @@ equal_elements 18 16 (672..768) 34 100% [wp] Running WP plugin... [rte] annotating function equal_elements [wp] 50 goals scheduled -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_post : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_post_2 : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_post_3 : Valid +[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] [Qed] Goal typed_ref_equal_elements_assert_rte_mem_access : Valid [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_mem_access_2 : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_2_established : Valid +[wp] [Alt-Ergo] 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] [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] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_3_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_3_established : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_4_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_4_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_5_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_5_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_6_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_6_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_7_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_7_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_8_preserved : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_8_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_9_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_9_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_10_preserved : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_10_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_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 +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_5_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_5_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_6_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_6_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_7_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_7_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_8_preserved : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_8_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_9_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_9_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_10_preserved : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_10_established : 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 @@ -98,15 +98,15 @@ equal_elements 18 16 (672..768) 34 100% [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_index_bound_6 : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_2 : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_rte_signed_overflow_2 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_assign : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_assign_2 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_assign_part1 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_assign_part2 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_assign_part3 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_term_decrease : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_term_positive : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_term_2_decrease : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_term_2_positive : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_assigns : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_assigns_2 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_assigns_part1 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_assigns_part2 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_assigns_part3 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_variant_positive : Valid +[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: 32 / 50 Qed: 11 Alt-Ergo: 21 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 ae82b12cf62368d6acd8de25ce308e5079c54ebb..6de56a443e7b37ed645b49c6286cfd31314cc2ed 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 @@ -4,48 +4,48 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 35 goals scheduled -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_post_v1_good : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_post_v2_good : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_post_v1_v2_diff : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_set_at_0_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_set_at_0_established : Valid +[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_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_inv_bound_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_bound_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_seen_sound1_preserved : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_seen_sound1_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_seen_sound2_preserved : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_seen_sound2_established : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_v1_first_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_v1_first_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_v1_sound1_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_v1_sound1_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_v1_sound2_preserved : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_v1_sound2_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_v1_v2_diff_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_v1_v2_diff_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_v2_sound1_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_v2_sound1_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_v2_sound2_preserved : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_v2_sound2_established : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_assign : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_assign_2 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_assign_part1 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_assign_part2 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_assign_part3 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_term_decrease : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_term_positive : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_term_2_decrease : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_term_2_positive : Valid +[wp] [Alt-Ergo] 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 +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_seen_sound2_preserved : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_seen_sound2_established : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_v1_first_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_v1_first_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v1_sound1_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_v1_sound1_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v1_sound2_preserved : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v1_sound2_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v1_v2_diff_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_v1_v2_diff_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v2_sound1_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_v2_sound1_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v2_sound2_preserved : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v2_sound2_established : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_assigns : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_assigns_2 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_assigns_part1 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_assigns_part2 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_assigns_part3 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_variant_positive : Valid +[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: 17 Alt-Ergo: 18 [wp] Report 'tests/wp_gallery/frama_c_exo3_solved.old.v2.c.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -equal_elements 17 18 (272..320) 35 100% +equal_elements 17 18 (288..336) 35 100% ------------------------------------------------------------- [wp] Warning: Memory model hypotheses for function 'equal_elements': /*@ @@ -58,37 +58,37 @@ equal_elements 17 18 (272..320) 35 100% [wp] Running WP plugin... [rte] annotating function equal_elements [wp] 51 goals scheduled -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_post_v1_good : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_post_v2_good : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_post_v1_v2_diff : Valid +[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] [Qed] Goal typed_ref_equal_elements_assert_rte_mem_access : Valid [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_mem_access_2 : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_set_at_0_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_set_at_0_established : Valid +[wp] [Alt-Ergo] 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] [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_set_at_1 : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_rte_signed_overflow : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_bound_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_bound_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_seen_sound1_preserved : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_seen_sound1_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_seen_sound2_preserved : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_seen_sound2_established : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_v1_first_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_v1_first_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_v1_sound1_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_v1_sound1_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_v1_sound2_preserved : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_v1_sound2_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_v1_v2_diff_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_v1_v2_diff_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_v2_sound1_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_v2_sound1_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_v2_sound2_preserved : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_v2_sound2_established : Valid +[wp] [Alt-Ergo] 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 +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_seen_sound2_preserved : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_seen_sound2_established : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_v1_first_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_v1_first_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v1_sound1_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_v1_sound1_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v1_sound2_preserved : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v1_sound2_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v1_v2_diff_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_v1_v2_diff_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v2_sound1_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_v2_sound1_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v2_sound2_preserved : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v2_sound2_established : 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 @@ -100,22 +100,22 @@ equal_elements 17 18 (272..320) 35 100% [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_loop_assign : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_assign_2 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_assign_part1 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_assign_part2 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_assign_part3 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_term_decrease : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_term_positive : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_term_2_decrease : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_term_2_positive : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_assigns : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_assigns_2 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_assigns_part1 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_assigns_part2 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_assigns_part3 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_variant_positive : Valid +[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 / 51 Qed: 11 Alt-Ergo: 23 [wp] Report 'tests/wp_gallery/frama_c_exo3_solved.old.v2.c.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -equal_elements 28 23 (272..320) 51 100% +equal_elements 28 23 (288..336) 51 100% ------------------------------------------------------------- [wp] Warning: Memory model hypotheses for function 'equal_elements': /*@ 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 eb2c20378e2742333db4d15f36ba2c14221399c3..8abf274c23d8b98c9a657d251645fee49e57786a 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 @@ -6,30 +6,30 @@ [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_inv_preserved : Valid -[wp] [Qed] Goal typed_pair_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_pair_loop_inv_2_established : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_inv_3_preserved : Valid -[wp] [Qed] Goal typed_pair_loop_inv_3_established : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_inv_4_preserved : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_inv_4_established : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_inv_5_preserved : Valid -[wp] [Qed] Goal typed_pair_loop_inv_5_established : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_inv_6_preserved : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_inv_6_established : Valid -[wp] [Qed] Goal typed_pair_loop_assign : Valid -[wp] [Qed] Goal typed_pair_loop_assign_2 : Valid -[wp] [Qed] Goal typed_pair_assign_part1 : Valid -[wp] [Qed] Goal typed_pair_assign_part2 : Valid -[wp] [Qed] Goal typed_pair_assign_part3 : Valid -[wp] [Qed] Goal typed_pair_assign_part4 : Valid -[wp] [Qed] Goal typed_pair_loop_term_decrease : Valid -[wp] [Qed] Goal typed_pair_loop_term_positive : Valid -[wp] [Qed] Goal typed_pair_loop_term_2_decrease : Valid -[wp] [Qed] Goal typed_pair_loop_term_2_positive : Valid -[wp] [Alt-Ergo] Goal typed_pair_has_pair_post : Valid -[wp] [Alt-Ergo] Goal typed_pair_no_pair_post : Valid +[wp] [Alt-Ergo] 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_established : Valid +[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_4_preserved : Valid +[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_4_established : Valid +[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_5_preserved : Valid +[wp] [Qed] Goal typed_pair_loop_invariant_5_established : Valid +[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_6_preserved : Valid +[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_6_established : Valid +[wp] [Qed] Goal typed_pair_loop_assigns : Valid +[wp] [Qed] Goal typed_pair_loop_assigns_2 : Valid +[wp] [Qed] Goal typed_pair_assigns_part1 : Valid +[wp] [Qed] Goal typed_pair_assigns_part2 : Valid +[wp] [Qed] Goal typed_pair_assigns_part3 : Valid +[wp] [Qed] Goal typed_pair_assigns_part4 : Valid +[wp] [Qed] Goal typed_pair_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_pair_loop_variant_positive : Valid +[wp] [Qed] Goal typed_pair_loop_variant_2_decrease : Valid +[wp] [Qed] Goal typed_pair_loop_variant_2_positive : Valid +[wp] [Alt-Ergo] Goal typed_pair_has_pair_ensures : Valid +[wp] [Alt-Ergo] Goal typed_pair_no_pair_ensures : Valid [wp] Proved goals: 26 / 26 Qed: 16 Alt-Ergo: 10 @@ -43,39 +43,39 @@ pair 16 10 (104..128) 26 100% [wp] 35 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_inv_preserved : Valid -[wp] [Qed] Goal typed_pair_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_pair_loop_inv_2_established : Valid +[wp] [Alt-Ergo] 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] [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] [Alt-Ergo] Goal typed_pair_loop_inv_3_preserved : Valid -[wp] [Qed] Goal typed_pair_loop_inv_3_established : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_inv_4_preserved : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_inv_4_established : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_inv_5_preserved : Valid -[wp] [Qed] Goal typed_pair_loop_inv_5_established : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_inv_6_preserved : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_inv_6_established : Valid +[wp] [Alt-Ergo] 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 +[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_5_preserved : Valid +[wp] [Qed] Goal typed_pair_loop_invariant_5_established : Valid +[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_6_preserved : Valid +[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_6_established : 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_loop_assign : Valid -[wp] [Qed] Goal typed_pair_loop_assign_2 : Valid -[wp] [Qed] Goal typed_pair_assign_part1 : Valid -[wp] [Qed] Goal typed_pair_assign_part2 : Valid -[wp] [Qed] Goal typed_pair_assign_part3 : Valid -[wp] [Qed] Goal typed_pair_assign_part4 : Valid -[wp] [Qed] Goal typed_pair_loop_term_decrease : Valid -[wp] [Qed] Goal typed_pair_loop_term_positive : Valid -[wp] [Qed] Goal typed_pair_loop_term_2_decrease : Valid -[wp] [Qed] Goal typed_pair_loop_term_2_positive : Valid -[wp] [Alt-Ergo] Goal typed_pair_has_pair_post : Valid -[wp] [Alt-Ergo] Goal typed_pair_no_pair_post : Valid +[wp] [Qed] Goal typed_pair_loop_assigns : Valid +[wp] [Qed] Goal typed_pair_loop_assigns_2 : Valid +[wp] [Qed] Goal typed_pair_assigns_part1 : Valid +[wp] [Qed] Goal typed_pair_assigns_part2 : Valid +[wp] [Qed] Goal typed_pair_assigns_part3 : Valid +[wp] [Qed] Goal typed_pair_assigns_part4 : Valid +[wp] [Qed] Goal typed_pair_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_pair_loop_variant_positive : Valid +[wp] [Qed] Goal typed_pair_loop_variant_2_decrease : Valid +[wp] [Qed] Goal typed_pair_loop_variant_2_positive : Valid +[wp] [Alt-Ergo] Goal typed_pair_has_pair_ensures : Valid +[wp] [Alt-Ergo] Goal typed_pair_no_pair_ensures : Valid [wp] Proved goals: 19 / 35 Qed: 4 Alt-Ergo: 15 diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.res.oracle index 6fecd32f1cd6c95f9a64aa720bae5c699968fbd6..10e32d116c68418a93daaafd59a6a14c5a1030c4 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.res.oracle @@ -7,106 +7,106 @@ [wp] 102 goals scheduled [wp] [Alt-Ergo] Goal typed_add_complete_full_nominal : Valid [wp] [Alt-Ergo] Goal typed_add_disjoint_full_nominal : Valid -[wp] [Qed] Goal typed_add_assign_exit : Valid -[wp] [Qed] Goal typed_add_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_add_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_add_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_add_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_add_assign_normal_part5 : Valid -[wp] [Alt-Ergo] Goal typed_add_assign_normal_part6 : Valid -[wp] [Alt-Ergo] Goal typed_add_assign_normal_part7 : Valid -[wp] [Qed] Goal typed_add_assign_normal_part8 : Valid -[wp] [Qed] Goal typed_add_assign_normal_part9 : Valid -[wp] [Qed] Goal typed_add_call_hash_pre : Valid -[wp] [Alt-Ergo] Goal typed_add_full_post : Valid -[wp] [Qed] Goal typed_add_full_assign_exit : Valid -[wp] [Qed] Goal typed_add_full_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_add_full_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_add_full_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_add_full_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_add_full_assign_normal_part5 : Valid -[wp] [Alt-Ergo] Goal typed_add_full_assign_normal_part6 : Valid -[wp] [Alt-Ergo] Goal typed_add_full_assign_normal_part7 : Valid -[wp] [Alt-Ergo] Goal typed_add_full_assign_normal_part8 : Valid -[wp] [Qed] Goal typed_add_full_assign_normal_part9 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_post : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_post_2 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_post_3 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_post_4 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_post_5 : Valid -[wp] [Qed] Goal typed_add_nominal_assign_exit : Valid -[wp] [Qed] Goal typed_add_nominal_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_add_nominal_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_add_nominal_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_add_nominal_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_add_nominal_assign_normal_part5 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_assign_normal_part6 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_assign_normal_part7 : Valid -[wp] [Qed] Goal typed_add_nominal_assign_normal_part8 : Valid -[wp] [Qed] Goal typed_add_nominal_assign_normal_part9 : Valid +[wp] [Qed] Goal typed_add_assigns_exit : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part5 : Valid +[wp] [Alt-Ergo] Goal typed_add_assigns_normal_part6 : Valid +[wp] [Alt-Ergo] Goal typed_add_assigns_normal_part7 : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part8 : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part9 : Valid +[wp] [Qed] Goal typed_add_call_hash_requires : Valid +[wp] [Alt-Ergo] Goal typed_add_full_ensures : Valid +[wp] [Qed] Goal typed_add_full_assigns_exit : Valid +[wp] [Qed] Goal typed_add_full_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_add_full_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_add_full_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_add_full_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_add_full_assigns_normal_part5 : Valid +[wp] [Alt-Ergo] Goal typed_add_full_assigns_normal_part6 : Valid +[wp] [Alt-Ergo] Goal typed_add_full_assigns_normal_part7 : Valid +[wp] [Alt-Ergo] Goal typed_add_full_assigns_normal_part8 : Valid +[wp] [Qed] Goal typed_add_full_assigns_normal_part9 : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_ensures : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_ensures_2 : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_ensures_3 : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_ensures_4 : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_ensures_5 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_exit : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part5 : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_assigns_normal_part6 : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_assigns_normal_part7 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part8 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part9 : Valid [wp] [Qed] Goal typed_eq_string_complete_not_eq_eq : Valid [wp] [Qed] Goal typed_eq_string_disjoint_not_eq_eq : Valid -[wp] [Alt-Ergo] Goal typed_eq_string_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_eq_string_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_eq_string_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_eq_string_loop_inv_2_established : Valid -[wp] [Qed] Goal typed_eq_string_loop_assign : Valid -[wp] [Qed] Goal typed_eq_string_assign_part1 : Valid -[wp] [Qed] Goal typed_eq_string_assign_part2 : Valid -[wp] [Qed] Goal typed_eq_string_assign_part3 : Valid -[wp] [Qed] Goal typed_eq_string_assign_part4 : Valid -[wp] [Qed] Goal typed_eq_string_loop_term_decrease : Valid -[wp] [Qed] Goal typed_eq_string_loop_term_positive : Valid -[wp] [Alt-Ergo] Goal typed_eq_string_eq_post : Valid -[wp] [Alt-Ergo] Goal typed_eq_string_not_eq_post : Valid -[wp] [Alt-Ergo] Goal typed_hash_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_hash_loop_inv_established : Valid -[wp] [Qed] Goal typed_hash_loop_assign : Valid -[wp] [Qed] Goal typed_hash_assign_part1 : Valid -[wp] [Qed] Goal typed_hash_assign_part2 : Valid -[wp] [Qed] Goal typed_hash_loop_term_decrease : Valid -[wp] [Qed] Goal typed_hash_loop_term_positive : Valid -[wp] [Alt-Ergo] Goal typed_init_post : Valid -[wp] [Alt-Ergo] Goal typed_init_post_2 : Valid -[wp] [Alt-Ergo] Goal typed_init_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_init_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_init_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_init_loop_inv_2_established : Valid -[wp] [Qed] Goal typed_init_loop_assign_part1 : Valid -[wp] [Qed] Goal typed_init_loop_assign_part2 : Valid -[wp] [Qed] Goal typed_init_assign_part1 : Valid -[wp] [Qed] Goal typed_init_assign_part2 : Valid -[wp] [Alt-Ergo] Goal typed_init_assign_part3 : Valid -[wp] [Qed] Goal typed_init_loop_term_decrease : Valid -[wp] [Qed] Goal typed_init_loop_term_positive : Valid +[wp] [Alt-Ergo] Goal typed_eq_string_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_eq_string_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_eq_string_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_eq_string_loop_invariant_2_established : Valid +[wp] [Qed] Goal typed_eq_string_loop_assigns : Valid +[wp] [Qed] Goal typed_eq_string_assigns_part1 : Valid +[wp] [Qed] Goal typed_eq_string_assigns_part2 : Valid +[wp] [Qed] Goal typed_eq_string_assigns_part3 : Valid +[wp] [Qed] Goal typed_eq_string_assigns_part4 : Valid +[wp] [Qed] Goal typed_eq_string_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_eq_string_loop_variant_positive : Valid +[wp] [Alt-Ergo] Goal typed_eq_string_eq_ensures : Valid +[wp] [Alt-Ergo] Goal typed_eq_string_not_eq_ensures : Valid +[wp] [Alt-Ergo] Goal typed_hash_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_hash_loop_invariant_established : Valid +[wp] [Qed] Goal typed_hash_loop_assigns : Valid +[wp] [Qed] Goal typed_hash_assigns_part1 : Valid +[wp] [Qed] Goal typed_hash_assigns_part2 : Valid +[wp] [Qed] Goal typed_hash_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_hash_loop_variant_positive : Valid +[wp] [Alt-Ergo] Goal typed_init_ensures : Valid +[wp] [Alt-Ergo] Goal typed_init_ensures_2 : Valid +[wp] [Alt-Ergo] Goal typed_init_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_init_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_init_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_init_loop_invariant_2_established : Valid +[wp] [Qed] Goal typed_init_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_init_loop_assigns_part2 : Valid +[wp] [Qed] Goal typed_init_assigns_part1 : Valid +[wp] [Qed] Goal typed_init_assigns_part2 : Valid +[wp] [Alt-Ergo] Goal typed_init_assigns_part3 : Valid +[wp] [Qed] Goal typed_init_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_init_loop_variant_positive : Valid [wp] [Alt-Ergo] Goal typed_mem_binding_complete_not_found_found : Valid [wp] [Alt-Ergo] Goal typed_mem_binding_disjoint_not_found_found : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_loop_inv_preserved : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_mem_binding_loop_inv_2_established : Valid -[wp] [Qed] Goal typed_mem_binding_loop_assign_part1 : Valid -[wp] [Qed] Goal typed_mem_binding_loop_assign_part2 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_exit_part3 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_exit_part4 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_normal_part5 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_normal_part6 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_normal_part7 : Valid -[wp] [Qed] Goal typed_mem_binding_loop_term_decrease : Valid -[wp] [Qed] Goal typed_mem_binding_loop_term_positive : Valid -[wp] [Qed] Goal typed_mem_binding_call_hash_pre : Valid -[wp] [Qed] Goal typed_mem_binding_call_eq_string_pre : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_call_eq_string_pre_2 : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_found_post : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_not_found_post : Valid -[wp] [Qed] Goal typed_size_post : Valid -[wp] [Qed] Goal typed_size_assign : Valid +[wp] [Alt-Ergo] Goal typed_mem_binding_loop_invariant_preserved : Valid +[wp] [Alt-Ergo] Goal typed_mem_binding_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_mem_binding_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_mem_binding_loop_invariant_2_established : Valid +[wp] [Qed] Goal typed_mem_binding_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_mem_binding_loop_assigns_part2 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_exit_part3 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_exit_part4 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_normal_part5 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_normal_part6 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_normal_part7 : Valid +[wp] [Qed] Goal typed_mem_binding_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_mem_binding_loop_variant_positive : Valid +[wp] [Qed] Goal typed_mem_binding_call_hash_requires : Valid +[wp] [Qed] Goal typed_mem_binding_call_eq_string_requires : Valid +[wp] [Alt-Ergo] Goal typed_mem_binding_call_eq_string_requires_2 : Valid +[wp] [Alt-Ergo] Goal typed_mem_binding_found_ensures : Valid +[wp] [Alt-Ergo] Goal typed_mem_binding_not_found_ensures : Valid +[wp] [Qed] Goal typed_size_ensures : Valid +[wp] [Qed] Goal typed_size_assigns : Valid [wp] Proved goals: 102 / 102 Qed: 69 Alt-Ergo: 33 @@ -145,95 +145,95 @@ mem_binding 18 8 (192..240) 26 100% [wp] [Alt-Ergo] Goal typed_add_assert_rte_mem_access_6 : Valid [wp] [Alt-Ergo] Goal typed_add_assert_rte_mem_access_7 : Valid [wp] [Alt-Ergo] Goal typed_add_assert_rte_signed_overflow_2 : Valid -[wp] [Qed] Goal typed_add_assign_exit : Valid -[wp] [Qed] Goal typed_add_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_add_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_add_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_add_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_add_assign_normal_part5 : Valid -[wp] [Alt-Ergo] Goal typed_add_assign_normal_part6 : Valid -[wp] [Alt-Ergo] Goal typed_add_assign_normal_part7 : Valid -[wp] [Qed] Goal typed_add_assign_normal_part8 : Valid -[wp] [Qed] Goal typed_add_assign_normal_part9 : Valid -[wp] [Qed] Goal typed_add_call_hash_pre : Valid -[wp] [Alt-Ergo] Goal typed_add_full_post : Valid -[wp] [Qed] Goal typed_add_full_assign_exit : Valid -[wp] [Qed] Goal typed_add_full_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_add_full_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_add_full_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_add_full_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_add_full_assign_normal_part5 : Valid -[wp] [Alt-Ergo] Goal typed_add_full_assign_normal_part6 : Valid -[wp] [Alt-Ergo] Goal typed_add_full_assign_normal_part7 : Valid -[wp] [Alt-Ergo] Goal typed_add_full_assign_normal_part8 : Valid -[wp] [Qed] Goal typed_add_full_assign_normal_part9 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_post : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_post_2 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_post_3 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_post_4 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_post_5 : Valid -[wp] [Qed] Goal typed_add_nominal_assign_exit : Valid -[wp] [Qed] Goal typed_add_nominal_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_add_nominal_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_add_nominal_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_add_nominal_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_add_nominal_assign_normal_part5 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_assign_normal_part6 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_assign_normal_part7 : Valid -[wp] [Qed] Goal typed_add_nominal_assign_normal_part8 : Valid -[wp] [Qed] Goal typed_add_nominal_assign_normal_part9 : Valid +[wp] [Qed] Goal typed_add_assigns_exit : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part5 : Valid +[wp] [Alt-Ergo] Goal typed_add_assigns_normal_part6 : Valid +[wp] [Alt-Ergo] Goal typed_add_assigns_normal_part7 : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part8 : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part9 : Valid +[wp] [Qed] Goal typed_add_call_hash_requires : Valid +[wp] [Alt-Ergo] Goal typed_add_full_ensures : Valid +[wp] [Qed] Goal typed_add_full_assigns_exit : Valid +[wp] [Qed] Goal typed_add_full_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_add_full_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_add_full_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_add_full_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_add_full_assigns_normal_part5 : Valid +[wp] [Alt-Ergo] Goal typed_add_full_assigns_normal_part6 : Valid +[wp] [Alt-Ergo] Goal typed_add_full_assigns_normal_part7 : Valid +[wp] [Alt-Ergo] Goal typed_add_full_assigns_normal_part8 : Valid +[wp] [Qed] Goal typed_add_full_assigns_normal_part9 : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_ensures : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_ensures_2 : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_ensures_3 : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_ensures_4 : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_ensures_5 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_exit : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part5 : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_assigns_normal_part6 : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_assigns_normal_part7 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part8 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part9 : Valid [wp] [Qed] Goal typed_eq_string_complete_not_eq_eq : Valid [wp] [Qed] Goal typed_eq_string_disjoint_not_eq_eq : Valid -[wp] [Alt-Ergo] Goal typed_eq_string_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_eq_string_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_eq_string_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_eq_string_loop_inv_2_established : Valid +[wp] [Alt-Ergo] Goal typed_eq_string_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_eq_string_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_eq_string_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_eq_string_loop_invariant_2_established : Valid [wp] [Alt-Ergo] Goal typed_eq_string_assert_rte_mem_access : Valid [wp] [Alt-Ergo] Goal typed_eq_string_assert_rte_mem_access_2 : Valid [wp] [Alt-Ergo] Goal typed_eq_string_assert_rte_signed_overflow : Valid -[wp] [Qed] Goal typed_eq_string_loop_assign : Valid -[wp] [Qed] Goal typed_eq_string_assign_part1 : Valid -[wp] [Qed] Goal typed_eq_string_assign_part2 : Valid -[wp] [Qed] Goal typed_eq_string_assign_part3 : Valid -[wp] [Qed] Goal typed_eq_string_assign_part4 : Valid -[wp] [Qed] Goal typed_eq_string_loop_term_decrease : Valid -[wp] [Qed] Goal typed_eq_string_loop_term_positive : Valid -[wp] [Alt-Ergo] Goal typed_eq_string_eq_post : Valid -[wp] [Alt-Ergo] Goal typed_eq_string_not_eq_post : Valid -[wp] [Alt-Ergo] Goal typed_hash_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_hash_loop_inv_established : Valid +[wp] [Qed] Goal typed_eq_string_loop_assigns : Valid +[wp] [Qed] Goal typed_eq_string_assigns_part1 : Valid +[wp] [Qed] Goal typed_eq_string_assigns_part2 : Valid +[wp] [Qed] Goal typed_eq_string_assigns_part3 : Valid +[wp] [Qed] Goal typed_eq_string_assigns_part4 : Valid +[wp] [Qed] Goal typed_eq_string_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_eq_string_loop_variant_positive : Valid +[wp] [Alt-Ergo] Goal typed_eq_string_eq_ensures : Valid +[wp] [Alt-Ergo] Goal typed_eq_string_not_eq_ensures : Valid +[wp] [Alt-Ergo] Goal typed_hash_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_hash_loop_invariant_established : Valid [wp] [Alt-Ergo] Goal typed_hash_assert_rte_mem_access : Valid [wp] [Qed] Goal typed_hash_assert_rte_mem_access_2 : Valid [wp] [Alt-Ergo] Goal typed_hash_assert_rte_signed_overflow : Valid -[wp] [Qed] Goal typed_hash_loop_assign : Valid -[wp] [Qed] Goal typed_hash_assign_part1 : Valid -[wp] [Qed] Goal typed_hash_assign_part2 : Valid -[wp] [Qed] Goal typed_hash_loop_term_decrease : Valid -[wp] [Qed] Goal typed_hash_loop_term_positive : Valid -[wp] [Alt-Ergo] Goal typed_init_post : Valid -[wp] [Alt-Ergo] Goal typed_init_post_2 : Valid +[wp] [Qed] Goal typed_hash_loop_assigns : Valid +[wp] [Qed] Goal typed_hash_assigns_part1 : Valid +[wp] [Qed] Goal typed_hash_assigns_part2 : Valid +[wp] [Qed] Goal typed_hash_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_hash_loop_variant_positive : Valid +[wp] [Alt-Ergo] Goal typed_init_ensures : Valid +[wp] [Alt-Ergo] Goal typed_init_ensures_2 : Valid [wp] [Alt-Ergo] Goal typed_init_assert_rte_mem_access : Valid -[wp] [Alt-Ergo] Goal typed_init_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_init_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_init_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_init_loop_inv_2_established : Valid +[wp] [Alt-Ergo] Goal typed_init_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_init_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_init_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_init_loop_invariant_2_established : Valid [wp] [Qed] Goal typed_init_assert_rte_index_bound : Valid [wp] [Qed] Goal typed_init_assert_rte_index_bound_2 : Valid [wp] [Alt-Ergo] Goal typed_init_assert_rte_mem_access_2 : Valid [wp] [Alt-Ergo] Goal typed_init_assert_rte_signed_overflow : Valid -[wp] [Qed] Goal typed_init_loop_assign_part1 : Valid -[wp] [Qed] Goal typed_init_loop_assign_part2 : Valid -[wp] [Qed] Goal typed_init_assign_part1 : Valid -[wp] [Qed] Goal typed_init_assign_part2 : Valid -[wp] [Alt-Ergo] Goal typed_init_assign_part3 : Valid -[wp] [Qed] Goal typed_init_loop_term_decrease : Valid -[wp] [Qed] Goal typed_init_loop_term_positive : Valid +[wp] [Qed] Goal typed_init_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_init_loop_assigns_part2 : Valid +[wp] [Qed] Goal typed_init_assigns_part1 : Valid +[wp] [Qed] Goal typed_init_assigns_part2 : Valid +[wp] [Alt-Ergo] Goal typed_init_assigns_part3 : Valid +[wp] [Qed] Goal typed_init_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_init_loop_variant_positive : Valid [wp] [Alt-Ergo] Goal typed_mem_binding_complete_not_found_found : Valid [wp] [Alt-Ergo] Goal typed_mem_binding_disjoint_not_found_found : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_loop_inv_preserved : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_mem_binding_loop_inv_2_established : Valid +[wp] [Alt-Ergo] Goal typed_mem_binding_loop_invariant_preserved : Valid +[wp] [Alt-Ergo] Goal typed_mem_binding_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_mem_binding_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_mem_binding_loop_invariant_2_established : Valid [wp] [Alt-Ergo] Goal typed_mem_binding_assert_rte_index_bound : Valid [wp] [Alt-Ergo] Goal typed_mem_binding_assert_rte_index_bound_2 : Valid [wp] [Alt-Ergo] Goal typed_mem_binding_assert_rte_mem_access : Valid @@ -248,29 +248,29 @@ mem_binding 18 8 (192..240) 26 100% [wp] [Qed] Goal typed_mem_binding_assert_rte_index_bound_10 : Valid [wp] [Alt-Ergo] Goal typed_mem_binding_assert_rte_mem_access_3 : Valid [wp] [Alt-Ergo] Goal typed_mem_binding_assert_rte_signed_overflow : Valid -[wp] [Qed] Goal typed_mem_binding_loop_assign_part1 : Valid -[wp] [Qed] Goal typed_mem_binding_loop_assign_part2 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_exit_part3 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_exit_part4 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_normal_part5 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_normal_part6 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_normal_part7 : Valid -[wp] [Qed] Goal typed_mem_binding_loop_term_decrease : Valid -[wp] [Qed] Goal typed_mem_binding_loop_term_positive : Valid -[wp] [Qed] Goal typed_mem_binding_call_hash_pre : Valid -[wp] [Qed] Goal typed_mem_binding_call_eq_string_pre : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_call_eq_string_pre_2 : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_found_post : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_not_found_post : Valid -[wp] [Qed] Goal typed_size_post : Valid +[wp] [Qed] Goal typed_mem_binding_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_mem_binding_loop_assigns_part2 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_exit_part3 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_exit_part4 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_normal_part5 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_normal_part6 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_normal_part7 : Valid +[wp] [Qed] Goal typed_mem_binding_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_mem_binding_loop_variant_positive : Valid +[wp] [Qed] Goal typed_mem_binding_call_hash_requires : Valid +[wp] [Qed] Goal typed_mem_binding_call_eq_string_requires : Valid +[wp] [Alt-Ergo] Goal typed_mem_binding_call_eq_string_requires_2 : Valid +[wp] [Alt-Ergo] Goal typed_mem_binding_found_ensures : Valid +[wp] [Alt-Ergo] Goal typed_mem_binding_not_found_ensures : Valid +[wp] [Qed] Goal typed_size_ensures : Valid [wp] [Alt-Ergo] Goal typed_size_assert_rte_mem_access : Valid -[wp] [Qed] Goal typed_size_assign : Valid +[wp] [Qed] Goal typed_size_assigns : Valid [wp] Proved goals: 74 / 143 Qed: 16 Alt-Ergo: 58 diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/loop-statement.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/loop-statement.res.oracle index 3115cf8cb4745cf898196236e88078d64baeec3a..26816b946bcc170a939be8353db3629ba7f9c343 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/loop-statement.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/loop-statement.res.oracle @@ -5,20 +5,20 @@ [wp] Warning: Missing RTE guards [wp] 15 goals scheduled [wp] [Alt-Ergo] Goal typed_lemma_Lb : Valid -[wp] [Qed] Goal typed_loop_statement_post_Scond : Valid -[wp] [Qed] Goal typed_loop_statement_post_Sloop : Valid -[wp] [Alt-Ergo] Goal typed_loop_statement_loop_inv_Iloop_preserved : Valid -[wp] [Alt-Ergo] Goal typed_loop_statement_loop_inv_Iloop_established : Valid -[wp] [Qed] Goal typed_loop_statement_loop_assign_part1 : Valid -[wp] [Qed] Goal typed_loop_statement_loop_assign_part2 : Valid -[wp] [Qed] Goal typed_loop_statement_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_loop_statement_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_loop_statement_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_loop_statement_assign_normal_part2 : Valid -[wp] [Alt-Ergo] Goal typed_loop_statement_stmt_pre_Rinv : Valid -[wp] [Qed] Goal typed_loop_statement_stmt_pre_Scond : Valid -[wp] [Qed] Goal typed_loop_statement_stmt_post_Sbody : Valid -[wp] [Qed] Goal typed_loop_statement_stmt_assign : Valid +[wp] [Qed] Goal typed_loop_statement_ensures_Scond : Valid +[wp] [Qed] Goal typed_loop_statement_ensures_Sloop : Valid +[wp] [Alt-Ergo] Goal typed_loop_statement_loop_invariant_Iloop_preserved : Valid +[wp] [Alt-Ergo] Goal typed_loop_statement_loop_invariant_Iloop_established : Valid +[wp] [Qed] Goal typed_loop_statement_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_loop_statement_loop_assigns_part2 : Valid +[wp] [Qed] Goal typed_loop_statement_assigns_2_exit_part1 : Valid +[wp] [Qed] Goal typed_loop_statement_assigns_2_exit_part2 : Valid +[wp] [Qed] Goal typed_loop_statement_assigns_2_normal_part1 : Valid +[wp] [Qed] Goal typed_loop_statement_assigns_2_normal_part2 : Valid +[wp] [Alt-Ergo] Goal typed_loop_statement_requires_Rinv : Valid +[wp] [Qed] Goal typed_loop_statement_requires_Scond : Valid +[wp] [Qed] Goal typed_loop_statement_ensures_Sbody : Valid +[wp] [Qed] Goal typed_loop_statement_assigns : Valid [wp] Proved goals: 15 / 15 Qed: 11 Alt-Ergo: 4 diff --git a/src/plugins/wp/tests/wp_hoare/byref.i.0.report.json b/src/plugins/wp/tests/wp_hoare/byref.i.0.report.json index a7a3f8fa494867151bce0d02eaf63fa6c56f223b..ca2beb3fcb1d5d4fafbf0a16c23afcebbdd94fb3 100644 --- a/src/plugins/wp/tests/wp_hoare/byref.i.0.report.json +++ b/src/plugins/wp/tests/wp_hoare/byref.i.0.report.json @@ -1,20 +1,22 @@ { "wp:global": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 11, "valid": 11 }, "wp:main": { "total": 12, "valid": 11, "unknown": 1 } }, - "wp:functions": { "f": { "f_assign": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "wp:functions": { "f": { "f_assigns": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "wrong_without_ref": { "specialization_f_pre_at_wrong_without_ref_stmt_4": - { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "wrong_without_ref_post": + "wrong_without_ref": { "f_requires": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "wrong_without_ref_ensures": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, @@ -28,46 +30,50 @@ { "total": 2, "valid": 1, "unknown": 1 } } }, - "pointer": { "specialization_f_pre_at_pointer_stmt_8": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "pointer_post": { "qed": { "total": 1, + "pointer": { "f_requires_2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, + "pointer_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "local": { "specialization_f_pre_at_local_stmt_12": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "local_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "local": { "f_requires_3": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "local_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "formal": { "specialization_f_pre_at_formal_stmt_16": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "formal_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "formal": { "f_requires_4": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "formal_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "global": { "specialization_f_pre_at_global_stmt_20": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "global_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "global": { "f_requires_5": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "global_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, diff --git a/src/plugins/wp/tests/wp_hoare/byref.i.1.report.json b/src/plugins/wp/tests/wp_hoare/byref.i.1.report.json index 59457803d9be0263fd583785326743b516a5993f..dae2cb882d8a0824f51d63d5a0db103b114041b4 100644 --- a/src/plugins/wp/tests/wp_hoare/byref.i.1.report.json +++ b/src/plugins/wp/tests/wp_hoare/byref.i.1.report.json @@ -1,19 +1,20 @@ { "wp:global": { "qed": { "total": 12, "valid": 12 }, "wp:main": { "total": 12, "valid": 12 } }, - "wp:functions": { "f": { "f_assign": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "wp:functions": { "f": { "f_assigns": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "wrong_without_ref": { "specialization_f_pre_at_wrong_without_ref_stmt_4": - { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "wrong_without_ref_post": + "wrong_without_ref": { "f_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "wrong_without_ref_ensures": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, @@ -23,46 +24,50 @@ "wp:main": { "total": 2, "valid": 2 } } }, - "pointer": { "specialization_f_pre_at_pointer_stmt_8": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "pointer_post": { "qed": { "total": 1, + "pointer": { "f_requires_2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, + "pointer_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "local": { "specialization_f_pre_at_local_stmt_12": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "local_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "local": { "f_requires_3": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "local_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "formal": { "specialization_f_pre_at_formal_stmt_16": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "formal_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "formal": { "f_requires_4": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "formal_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "global": { "specialization_f_pre_at_global_stmt_20": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "global_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "global": { "f_requires_5": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "global_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, diff --git a/src/plugins/wp/tests/wp_hoare/dispatch_var.i.0.report.json b/src/plugins/wp/tests/wp_hoare/dispatch_var.i.0.report.json index 90636e9b45b12301d8f6b619fae7dbd2db95c8bc..9354117a174bb82e9a53c4982f073ec6553a896e 100644 --- a/src/plugins/wp/tests/wp_hoare/dispatch_var.i.0.report.json +++ b/src/plugins/wp/tests/wp_hoare/dispatch_var.i.0.report.json @@ -1,95 +1,94 @@ { "wp:global": { "qed": { "total": 78, "valid": 78 }, "wp:main": { "total": 78, "valid": 78 } }, - "wp:functions": { "call_ref_ctr": { "call_ref_ctr_assign": { "qed": - { "total": 3, - "valid": 3 }, - "wp:main": - { "total": 3, - "valid": 3 } }, - "call_ref_ctr_post_Ref_r1": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "wp:functions": { "call_ref_ctr": { "call_ref_ctr_assigns": { "qed": + { "total": 3, + "valid": 3 }, + "wp:main": + { "total": 3, + "valid": 3 } }, + "call_ref_ctr_ensures_Ref_r1": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 4, "valid": 4 } } }, - "call_ref_ctr2": { "call_ref_ctr2_assign": { "qed": - { "total": 7, + "call_ref_ctr2": { "call_ref_ctr2_assigns": { "qed": + { "total": 7, "valid": 7 }, - "wp:main": - { "total": 7, + "wp:main": + { "total": 7, "valid": 7 } }, - "call_ref_ctr2_post_Mem_n1": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "call_ref_ctr2_ensures_Mem_n1": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 8, "valid": 8 }, "wp:main": { "total": 8, "valid": 8 } } }, - "ref_bd": { "ref_bd_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "ref_bd_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "ref_bd": { "ref_bd_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "ref_bd_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "call_ref_bd": { "call_ref_bd_assign": { "qed": { "total": 3, - "valid": 3 }, - "wp:main": - { "total": 3, - "valid": 3 } }, - "call_ref_bd_post_Ref_r2": { "qed": + "call_ref_bd": { "call_ref_bd_assigns": { "qed": + { "total": 3, + "valid": 3 }, + "wp:main": + { "total": 3, + "valid": 3 } }, + "call_ref_bd_ensures_Ref_r2": { "qed": { "total": 1, "valid": 1 }, - "wp:main": + "wp:main": { "total": 1, "valid": 1 } }, "wp:section": { "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 4, "valid": 4 } } }, - "call_ref_bd2": { "call_ref_bd2_assign": { "qed": - { "total": 7, - "valid": 7 }, - "wp:main": - { "total": 7, - "valid": 7 } }, - "call_ref_bd2_post_Mem_n2": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "call_ref_bd2": { "call_ref_bd2_assigns": { "qed": + { "total": 7, + "valid": 7 }, + "wp:main": + { "total": 7, + "valid": 7 } }, + "call_ref_bd2_ensures_Mem_n2": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 8, "valid": 8 }, "wp:main": { "total": 8, "valid": 8 } } }, - "call_ref_valid": { "specialization_ref_valid_pre_at_call_ref_valid_stmt_35": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "specialization_ref_valid_pre_at_call_ref_valid_stmt_34": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "call_ref_valid_assign": { "qed": + "call_ref_valid": { "ref_valid_requires_2": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "ref_valid_requires": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "call_ref_valid_assigns": { "qed": { "total": 8, "valid": 8 }, - "wp:main": + "wp:main": { "total": 8, "valid": 8 } }, - "call_ref_valid_post_R7_N4": + "call_ref_valid_ensures_R7_N4": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, @@ -97,25 +96,27 @@ "valid": 11 }, "wp:main": { "total": 11, "valid": 11 } } }, - "no_ref_bd": { "no_ref_bd_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "no_ref_bd_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "no_ref_bd": { "no_ref_bd_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": + { "total": 2, + "valid": 2 } }, + "no_ref_bd_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 3, "valid": 3 } } }, - "call_no_ref_bd": { "call_no_ref_bd_assign": { "qed": + "call_no_ref_bd": { "call_no_ref_bd_assigns": { "qed": { "total": 8, "valid": 8 }, - "wp:main": + "wp:main": { "total": 8, "valid": 8 } }, - "call_no_ref_bd_post_Mem_n5_nr6": + "call_no_ref_bd_ensures_Mem_n5_nr6": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, @@ -123,23 +124,24 @@ "valid": 9 }, "wp:main": { "total": 9, "valid": 9 } } }, - "call_ref_ctr_nr": { "specialization_ref_ctr_nr_pre_at_call_ref_ctr_nr_stmt_57": - { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "call_ref_ctr_nr_assign": { "qed": + "call_ref_ctr_nr": { "ref_ctr_nr_requires": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "call_ref_ctr_nr_assigns": { "qed": { "total": 7, "valid": 7 }, "wp:main": { "total": 7, "valid": 7 } }, - "call_ref_ctr_nr_post_R_R_R_2": + "call_ref_ctr_nr_ensures_R_R_R_2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "call_ref_ctr_nr_post_R_R_R": + "call_ref_ctr_nr_ensures_R_R_R": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, @@ -148,12 +150,12 @@ "valid": 10 }, "wp:main": { "total": 10, "valid": 10 } } }, - "call_ref_ctr_nstars": { "call_ref_ctr_nstars_assign": + "call_ref_ctr_nstars": { "call_ref_ctr_nstars_assigns": { "qed": { "total": 5, "valid": 5 }, "wp:main": { "total": 5, "valid": 5 } }, - "call_ref_ctr_nstars_post": + "call_ref_ctr_nstars_ensures": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, @@ -163,35 +165,37 @@ "wp:main": { "total": 6, "valid": 6 } } }, - "call_two_ref": { "call_two_ref_assign": { "qed": - { "total": 6, - "valid": 6 }, - "wp:main": - { "total": 6, - "valid": 6 } }, - "call_two_ref_post": { "qed": { "total": 1, + "call_two_ref": { "call_two_ref_assigns": { "qed": + { "total": 6, + "valid": 6 }, + "wp:main": + { "total": 6, + "valid": 6 } }, + "call_two_ref_ensures": { "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 7, "valid": 7 }, "wp:main": { "total": 7, "valid": 7 } } }, - "g": { "g_assign": { "qed": { "total": 3, "valid": 3 }, - "wp:main": { "total": 3, - "valid": 3 } }, - "g_post": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "g": { "g_assigns": { "qed": { "total": 3, "valid": 3 }, + "wp:main": { "total": 3, + "valid": 3 } }, + "g_ensures": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 4, "valid": 4 } } }, - "array_in_struct_param": { "array_in_struct_param_assign": + "array_in_struct_param": { "array_in_struct_param_assigns": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "array_in_struct_param_post_Pload2": + "array_in_struct_param_ensures_Pload2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_hoare/dispatch_var2.i.0.report.json b/src/plugins/wp/tests/wp_hoare/dispatch_var2.i.0.report.json index 3114d267431c447b8ade2a3b9670d8382ff923d7..94f2026a9e3162f83d877b905ec4a1bd61b39d0c 100644 --- a/src/plugins/wp/tests/wp_hoare/dispatch_var2.i.0.report.json +++ b/src/plugins/wp/tests/wp_hoare/dispatch_var2.i.0.report.json @@ -1,120 +1,133 @@ { "wp:global": { "qed": { "total": 34, "valid": 34 }, "wp:main": { "total": 34, "valid": 34 } }, - "wp:functions": { "reset": { "reset_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "reset_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "reset": { "reset_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "reset_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "incr": { "incr_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "incr_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "incr": { "incr_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "incr_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "load": { "load_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "load_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "load": { "load_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "load_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "call_global": { "specialization_load_pre_at_call_global_stmt_11": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "specialization_reset_pre_at_call_global_stmt_10": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "call_global_assign": { "qed": { "total": 3, - "valid": 3 }, - "wp:main": - { "total": 3, - "valid": 3 } }, - "call_global_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "call_global": { "load_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "reset_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "call_global_assigns": { "qed": + { "total": 3, + "valid": 3 }, + "wp:main": + { "total": 3, + "valid": 3 } }, + "call_global_ensures": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 6, "valid": 6 }, "wp:main": { "total": 6, "valid": 6 } } }, - "call_param": { "specialization_load_pre_at_call_param_stmt_15": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "specialization_reset_pre_at_call_param_stmt_14": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "call_param_assign": { "qed": { "total": 5, - "valid": 5 }, - "wp:main": - { "total": 5, - "valid": 5 } }, - "call_param_post": { "qed": { "total": 1, + "call_param": { "load_requires_2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, + "reset_requires_2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "call_param_assigns": { "qed": { "total": 5, + "valid": 5 }, + "wp:main": + { "total": 5, + "valid": 5 } }, + "call_param_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 8, "valid": 8 }, "wp:main": { "total": 8, "valid": 8 } } }, - "call_local": { "specialization_load_pre_at_call_local_stmt_19": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "specialization_reset_pre_at_call_local_stmt_18": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "call_local_assign": { "qed": { "total": 5, - "valid": 5 }, - "wp:main": - { "total": 5, - "valid": 5 } }, - "call_local_post": { "qed": { "total": 1, + "call_local": { "load_requires_3": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, + "reset_requires_3": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "call_local_assigns": { "qed": { "total": 5, + "valid": 5 }, + "wp:main": + { "total": 5, + "valid": 5 } }, + "call_local_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 8, "valid": 8 }, "wp:main": { "total": 8, "valid": 8 } } }, - "call_param_ref": { "specialization_load_pre_at_call_param_ref_stmt_23": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "specialization_reset_pre_at_call_param_ref_stmt_22": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "call_param_ref_assign": { "qed": + "call_param_ref": { "load_requires_4": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "reset_requires_4": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "call_param_ref_assigns": { "qed": { "total": 3, "valid": 3 }, - "wp:main": + "wp:main": { "total": 3, "valid": 3 } }, - "call_param_ref_post": { "qed": - { "total": 1, + "call_param_ref_ensures": { "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, + "wp:main": + { "total": 1, "valid": 1 } }, "wp:section": { "qed": { "total": 6, "valid": 6 }, diff --git a/src/plugins/wp/tests/wp_hoare/dispatch_var2.i.1.report.json b/src/plugins/wp/tests/wp_hoare/dispatch_var2.i.1.report.json index 3114d267431c447b8ade2a3b9670d8382ff923d7..94f2026a9e3162f83d877b905ec4a1bd61b39d0c 100644 --- a/src/plugins/wp/tests/wp_hoare/dispatch_var2.i.1.report.json +++ b/src/plugins/wp/tests/wp_hoare/dispatch_var2.i.1.report.json @@ -1,120 +1,133 @@ { "wp:global": { "qed": { "total": 34, "valid": 34 }, "wp:main": { "total": 34, "valid": 34 } }, - "wp:functions": { "reset": { "reset_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "reset_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "reset": { "reset_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "reset_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "incr": { "incr_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "incr_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "incr": { "incr_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "incr_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "load": { "load_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "load_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "load": { "load_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "load_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "call_global": { "specialization_load_pre_at_call_global_stmt_11": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "specialization_reset_pre_at_call_global_stmt_10": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "call_global_assign": { "qed": { "total": 3, - "valid": 3 }, - "wp:main": - { "total": 3, - "valid": 3 } }, - "call_global_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "call_global": { "load_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "reset_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "call_global_assigns": { "qed": + { "total": 3, + "valid": 3 }, + "wp:main": + { "total": 3, + "valid": 3 } }, + "call_global_ensures": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 6, "valid": 6 }, "wp:main": { "total": 6, "valid": 6 } } }, - "call_param": { "specialization_load_pre_at_call_param_stmt_15": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "specialization_reset_pre_at_call_param_stmt_14": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "call_param_assign": { "qed": { "total": 5, - "valid": 5 }, - "wp:main": - { "total": 5, - "valid": 5 } }, - "call_param_post": { "qed": { "total": 1, + "call_param": { "load_requires_2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, + "reset_requires_2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "call_param_assigns": { "qed": { "total": 5, + "valid": 5 }, + "wp:main": + { "total": 5, + "valid": 5 } }, + "call_param_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 8, "valid": 8 }, "wp:main": { "total": 8, "valid": 8 } } }, - "call_local": { "specialization_load_pre_at_call_local_stmt_19": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "specialization_reset_pre_at_call_local_stmt_18": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "call_local_assign": { "qed": { "total": 5, - "valid": 5 }, - "wp:main": - { "total": 5, - "valid": 5 } }, - "call_local_post": { "qed": { "total": 1, + "call_local": { "load_requires_3": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, + "reset_requires_3": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "call_local_assigns": { "qed": { "total": 5, + "valid": 5 }, + "wp:main": + { "total": 5, + "valid": 5 } }, + "call_local_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 8, "valid": 8 }, "wp:main": { "total": 8, "valid": 8 } } }, - "call_param_ref": { "specialization_load_pre_at_call_param_ref_stmt_23": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "specialization_reset_pre_at_call_param_ref_stmt_22": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "call_param_ref_assign": { "qed": + "call_param_ref": { "load_requires_4": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "reset_requires_4": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "call_param_ref_assigns": { "qed": { "total": 3, "valid": 3 }, - "wp:main": + "wp:main": { "total": 3, "valid": 3 } }, - "call_param_ref_post": { "qed": - { "total": 1, + "call_param_ref_ensures": { "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, + "wp:main": + { "total": 1, "valid": 1 } }, "wp:section": { "qed": { "total": 6, "valid": 6 }, diff --git a/src/plugins/wp/tests/wp_hoare/isHoare.i.0.report.json b/src/plugins/wp/tests/wp_hoare/isHoare.i.0.report.json index e871e1e248100ceb7b7c8494701ee38faf3f01a5..0455cf705ec214e88499f4c30723f07b92edb11a 100644 --- a/src/plugins/wp/tests/wp_hoare/isHoare.i.0.report.json +++ b/src/plugins/wp/tests/wp_hoare/isHoare.i.0.report.json @@ -1,6 +1,6 @@ { "wp:global": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "wp:functions": { "cmp_invalid_addr_as_int": { "cmp_invalid_addr_as_int_post_ok": + "wp:functions": { "cmp_invalid_addr_as_int": { "cmp_invalid_addr_as_int_ensures_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_hoare/logicarr.i.0.report.json b/src/plugins/wp/tests/wp_hoare/logicarr.i.0.report.json index d0320c3b7a513fffbbf48233832fa50de01c3f17..1b506f1c00b11fc3342a972f785d4472d9702fd8 100644 --- a/src/plugins/wp/tests/wp_hoare/logicarr.i.0.report.json +++ b/src/plugins/wp/tests/wp_hoare/logicarr.i.0.report.json @@ -1,23 +1,23 @@ { "wp:global": { "alt-ergo": { "total": 3, "valid": 3, "rank": 17 }, "wp:main": { "total": 3, "valid": 3, "rank": 17 } }, - "wp:functions": { "job": { "job_post_DUM": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 17 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 17 } }, - "job_post_ARR": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 17 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 17 } }, - "job_post_PTR": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 15 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 15 } }, + "wp:functions": { "job": { "job_ensures_DUM": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 17 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 17 } }, + "job_ensures_ARR": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 17 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 17 } }, + "job_ensures_PTR": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 16 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 16 } }, "wp:section": { "alt-ergo": { "total": 3, "valid": 3, "rank": 17 }, diff --git a/src/plugins/wp/tests/wp_hoare/logicref.i.0.report.json b/src/plugins/wp/tests/wp_hoare/logicref.i.0.report.json index 4156f842cc6d45e448fab3db26b60c6ae073de6c..d145ce7d5dae7345d0301367c7b0ed318d11138e 100644 --- a/src/plugins/wp/tests/wp_hoare/logicref.i.0.report.json +++ b/src/plugins/wp/tests/wp_hoare/logicref.i.0.report.json @@ -1,36 +1,39 @@ -{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 20 }, +{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 21 }, "qed": { "total": 4, "valid": 4 }, - "wp:main": { "total": 5, "valid": 5, "rank": 20 } }, + "wp:main": { "total": 5, "valid": 5, "rank": 21 } }, "wp:functions": { "fvrange_n": { "fvrange_n_assert": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 20 }, + "rank": 21 }, "wp:main": { "total": 1, "valid": 1, - "rank": 20 } }, - "fvrange_n_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "fvrange_n_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "rank": 21 } }, + "fvrange_n_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "fvrange_n_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 20 }, + "rank": 21 }, "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 3, "valid": 3, - "rank": 20 } } }, - "gcd": { "gcd_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "gcd_post": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "rank": 21 } } }, + "gcd": { "gcd_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "gcd_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, diff --git a/src/plugins/wp/tests/wp_hoare/logicref_simple.i.0.report.json b/src/plugins/wp/tests/wp_hoare/logicref_simple.i.0.report.json index b221a03eb88df353b473d8299230198a0e56f976..cf9352bbb5ffd0fb2e0b4746fb4fe2bd1154126b 100644 --- a/src/plugins/wp/tests/wp_hoare/logicref_simple.i.0.report.json +++ b/src/plugins/wp/tests/wp_hoare/logicref_simple.i.0.report.json @@ -1,16 +1,16 @@ -{ "wp:global": { "alt-ergo": { "total": 4, "valid": 4, "rank": 7 }, +{ "wp:global": { "alt-ergo": { "total": 4, "valid": 4, "rank": 8 }, "qed": { "total": 5, "valid": 5 }, - "wp:main": { "total": 9, "valid": 9, "rank": 7 } }, - "wp:functions": { "fsimple": { "fsimple_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "fsimple_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 3 } }, + "wp:main": { "total": 9, "valid": 9, "rank": 8 } }, + "wp:functions": { "fsimple": { "fsimple_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "fsimple_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 3 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 3 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 3 }, @@ -19,46 +19,49 @@ "wp:main": { "total": 2, "valid": 2, "rank": 3 } } }, - "fsimple_array": { "fsimple_array_assign": { "qed": - { "total": 1, + "fsimple_array": { "fsimple_array_assigns": { "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, + "wp:main": + { "total": 1, "valid": 1 } }, - "fsimple_array_post": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 7 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 7 } }, + "fsimple_array_ensures": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 8 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 8 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 7 }, + "rank": 8 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 7 } } }, - "ftwo_star": { "ftwo_star_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "ftwo_star_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 3 } }, + "rank": 8 } } }, + "ftwo_star": { "ftwo_star_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "ftwo_star_ensures": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 3 } } }, + "rank": 4 } } }, "fvpositive": { "fvpositive_assert_OK": { "alt-ergo": { "total": 1, "valid": 1, @@ -67,15 +70,16 @@ { "total": 1, "valid": 1, "rank": 2 } }, - "fvpositive_assign": { "qed": { "total": 1, + "fvpositive_assigns": { "qed": { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "fvpositive_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "fvpositive_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 2 }, diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.0.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.0.res.oracle index 7cd3266acecc64c7cca9ffe807c6fe06c3bca170..bfdcf78517ee881e901469d2e70c43bc0d3b37db 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.0.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.0.res.oracle @@ -4,18 +4,18 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 12 goals scheduled -[wp] [Qed] Goal typed_f_post : Valid -[wp] [Qed] Goal typed_f_assign : Valid -[wp] [Qed] Goal typed_formal_post : Valid -[wp] [Qed] Goal typed_formal_call_f_pre : Valid -[wp] [Qed] Goal typed_global_post : Valid -[wp] [Qed] Goal typed_global_call_f_pre : Valid -[wp] [Qed] Goal typed_local_post : Valid -[wp] [Qed] Goal typed_local_call_f_pre : Valid -[wp] [Qed] Goal typed_pointer_post : Valid -[wp] [Qed] Goal typed_pointer_call_f_pre : Valid -[wp] [Qed] Goal typed_wrong_without_ref_post : Valid -[wp] [Alt-Ergo] Goal typed_wrong_without_ref_call_f_pre : Unknown +[wp] [Qed] Goal typed_f_ensures : Valid +[wp] [Qed] Goal typed_f_assigns : Valid +[wp] [Qed] Goal typed_formal_ensures : Valid +[wp] [Qed] Goal typed_formal_call_f_requires : Valid +[wp] [Qed] Goal typed_global_ensures : Valid +[wp] [Qed] Goal typed_global_call_f_requires : Valid +[wp] [Qed] Goal typed_local_ensures : Valid +[wp] [Qed] Goal typed_local_call_f_requires : Valid +[wp] [Qed] Goal typed_pointer_ensures : Valid +[wp] [Qed] Goal typed_pointer_call_f_requires : Valid +[wp] [Qed] Goal typed_wrong_without_ref_ensures : Valid +[wp] [Alt-Ergo] Goal typed_wrong_without_ref_call_f_requires : Unknown [wp] Proved goals: 11 / 12 Qed: 11 Alt-Ergo: 0 (unknown: 1) diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.1.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.1.res.oracle index d324a299b64cf870ec61e6691c6ca8100df09f67..f6c7d899a1f37a9561682e1ec34d18b4ef2cbde9 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.1.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.1.res.oracle @@ -4,18 +4,18 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 12 goals scheduled -[wp] [Qed] Goal typed_ref_f_post : Valid -[wp] [Qed] Goal typed_ref_f_assign : Valid -[wp] [Qed] Goal typed_ref_formal_post : Valid -[wp] [Qed] Goal typed_ref_formal_call_f_pre : Valid -[wp] [Qed] Goal typed_ref_global_post : Valid -[wp] [Qed] Goal typed_ref_global_call_f_pre : Valid -[wp] [Qed] Goal typed_ref_local_post : Valid -[wp] [Qed] Goal typed_ref_local_call_f_pre : Valid -[wp] [Qed] Goal typed_ref_pointer_post : Valid -[wp] [Qed] Goal typed_ref_pointer_call_f_pre : Valid -[wp] [Qed] Goal typed_ref_wrong_without_ref_post : Valid -[wp] [Qed] Goal typed_ref_wrong_without_ref_call_f_pre : Valid +[wp] [Qed] Goal typed_ref_f_ensures : Valid +[wp] [Qed] Goal typed_ref_f_assigns : Valid +[wp] [Qed] Goal typed_ref_formal_ensures : Valid +[wp] [Qed] Goal typed_ref_formal_call_f_requires : Valid +[wp] [Qed] Goal typed_ref_global_ensures : Valid +[wp] [Qed] Goal typed_ref_global_call_f_requires : Valid +[wp] [Qed] Goal typed_ref_local_ensures : Valid +[wp] [Qed] Goal typed_ref_local_call_f_requires : Valid +[wp] [Qed] Goal typed_ref_pointer_ensures : Valid +[wp] [Qed] Goal typed_ref_pointer_call_f_requires : Valid +[wp] [Qed] Goal typed_ref_wrong_without_ref_ensures : Valid +[wp] [Qed] Goal typed_ref_wrong_without_ref_call_f_requires : Valid [wp] Proved goals: 12 / 12 Qed: 12 [wp] Report 'tests/wp_hoare/byref.i.1.report.json' diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var.res.oracle index 1e532b7bfe9437d223ff5d0716ee81b6ad65add2..9f3c90d052e8a448ea99c80edf454c9ae947581f 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var.res.oracle @@ -4,84 +4,84 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 78 goals scheduled -[wp] [Qed] Goal typed_ref_array_in_struct_param_post_Pload2 : Valid -[wp] [Qed] Goal typed_ref_array_in_struct_param_assign : Valid -[wp] [Qed] Goal typed_ref_call_no_ref_bd_post_Mem_n5_nr6 : Valid -[wp] [Qed] Goal typed_ref_call_no_ref_bd_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_call_no_ref_bd_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_ref_call_no_ref_bd_assign_exit_part3 : Valid -[wp] [Qed] Goal typed_ref_call_no_ref_bd_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_no_ref_bd_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_no_ref_bd_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_call_no_ref_bd_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_ref_call_no_ref_bd_assign_normal_part5 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd_post_Ref_r2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd_assign_exit : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd2_post_Mem_n2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd2_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd2_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd2_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd2_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd2_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd2_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd2_assign_normal_part5 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_post_Ref_r1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_assign_exit : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr2_post_Mem_n1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr2_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr2_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr2_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr2_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr2_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr2_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr2_assign_normal_part5 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_post_R_R_R : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_post_R_R_R_2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_assign_exit_part3 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_call_ref_ctr_nr_pre : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_nstars_post : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_nstars_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_nstars_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_nstars_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_nstars_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_nstars_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_post_R7_N4 : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_assign_exit_part3 : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_assign_normal_part5 : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_call_ref_valid_pre : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_call_ref_valid_pre_2 : Valid -[wp] [Qed] Goal typed_ref_call_two_ref_post : Valid -[wp] [Qed] Goal typed_ref_call_two_ref_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_call_two_ref_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_ref_call_two_ref_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_two_ref_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_two_ref_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_call_two_ref_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_ref_g_post : Valid -[wp] [Qed] Goal typed_ref_g_assign_exit : Valid -[wp] [Qed] Goal typed_ref_g_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_g_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_no_ref_bd_post : Valid -[wp] [Qed] Goal typed_ref_no_ref_bd_assign_part1 : Valid -[wp] [Qed] Goal typed_ref_no_ref_bd_assign_part2 : Valid -[wp] [Qed] Goal typed_ref_ref_bd_post : Valid -[wp] [Qed] Goal typed_ref_ref_bd_assign : Valid +[wp] [Qed] Goal typed_ref_array_in_struct_param_ensures_Pload2 : Valid +[wp] [Qed] Goal typed_ref_array_in_struct_param_assigns : Valid +[wp] [Qed] Goal typed_ref_call_no_ref_bd_ensures_Mem_n5_nr6 : Valid +[wp] [Qed] Goal typed_ref_call_no_ref_bd_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_call_no_ref_bd_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_ref_call_no_ref_bd_assigns_exit_part3 : Valid +[wp] [Qed] Goal typed_ref_call_no_ref_bd_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_no_ref_bd_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_no_ref_bd_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_ref_call_no_ref_bd_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_ref_call_no_ref_bd_assigns_normal_part5 : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd_ensures_Ref_r2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd2_ensures_Mem_n2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd2_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd2_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd2_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd2_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd2_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd2_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd2_assigns_normal_part5 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_ensures_Ref_r1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr2_ensures_Mem_n1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr2_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr2_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr2_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr2_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr2_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr2_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr2_assigns_normal_part5 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_ensures_R_R_R : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_ensures_R_R_R_2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_assigns_exit_part3 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_call_ref_ctr_nr_requires : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_nstars_ensures : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_nstars_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_nstars_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_nstars_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_nstars_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_nstars_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_ensures_R7_N4 : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_assigns_exit_part3 : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_assigns_normal_part5 : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_call_ref_valid_requires : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_call_ref_valid_requires : Valid +[wp] [Qed] Goal typed_ref_call_two_ref_ensures : Valid +[wp] [Qed] Goal typed_ref_call_two_ref_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_call_two_ref_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_ref_call_two_ref_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_two_ref_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_two_ref_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_ref_call_two_ref_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_ref_g_ensures : Valid +[wp] [Qed] Goal typed_ref_g_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_g_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_g_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_no_ref_bd_ensures : Valid +[wp] [Qed] Goal typed_ref_no_ref_bd_assigns_part1 : Valid +[wp] [Qed] Goal typed_ref_no_ref_bd_assigns_part2 : Valid +[wp] [Qed] Goal typed_ref_ref_bd_ensures : Valid +[wp] [Qed] Goal typed_ref_ref_bd_assigns : Valid [wp] Proved goals: 78 / 78 Qed: 78 [wp] Report 'tests/wp_hoare/dispatch_var.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.0.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.0.res.oracle index f777eb27ac129e93f851517de4b9bb6bbbf5de7d..d0dfe75fac52c9efcdae60e06be6da8e14e485d0 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.0.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.0.res.oracle @@ -4,40 +4,40 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 34 goals scheduled -[wp] [Qed] Goal typed_ref_call_global_post : Valid -[wp] [Qed] Goal typed_ref_call_global_assign_exit : Valid -[wp] [Qed] Goal typed_ref_call_global_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_global_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_global_call_reset_pre : Valid -[wp] [Qed] Goal typed_ref_call_global_call_load_pre : Valid -[wp] [Qed] Goal typed_ref_call_local_post : Valid -[wp] [Qed] Goal typed_ref_call_local_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_call_local_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_ref_call_local_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_local_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_local_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_call_local_call_reset_pre : Valid -[wp] [Qed] Goal typed_ref_call_local_call_load_pre : Valid -[wp] [Qed] Goal typed_ref_call_param_post : Valid -[wp] [Qed] Goal typed_ref_call_param_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_call_param_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_ref_call_param_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_param_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_param_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_call_param_call_reset_pre : Valid -[wp] [Qed] Goal typed_ref_call_param_call_load_pre : Valid -[wp] [Qed] Goal typed_ref_call_param_ref_post : Valid -[wp] [Qed] Goal typed_ref_call_param_ref_assign_exit : Valid -[wp] [Qed] Goal typed_ref_call_param_ref_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_param_ref_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_param_ref_call_reset_pre : Valid -[wp] [Qed] Goal typed_ref_call_param_ref_call_load_pre : Valid -[wp] [Qed] Goal typed_ref_incr_post : Valid -[wp] [Qed] Goal typed_ref_incr_assign : Valid -[wp] [Qed] Goal typed_ref_load_post : Valid -[wp] [Qed] Goal typed_ref_load_assign : Valid -[wp] [Qed] Goal typed_ref_reset_post : Valid -[wp] [Qed] Goal typed_ref_reset_assign : Valid +[wp] [Qed] Goal typed_ref_call_global_ensures : Valid +[wp] [Qed] Goal typed_ref_call_global_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_global_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_global_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_global_call_reset_requires : Valid +[wp] [Qed] Goal typed_ref_call_global_call_load_requires : Valid +[wp] [Qed] Goal typed_ref_call_local_ensures : Valid +[wp] [Qed] Goal typed_ref_call_local_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_call_local_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_ref_call_local_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_local_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_local_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_ref_call_local_call_reset_requires : Valid +[wp] [Qed] Goal typed_ref_call_local_call_load_requires : Valid +[wp] [Qed] Goal typed_ref_call_param_ensures : Valid +[wp] [Qed] Goal typed_ref_call_param_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_call_param_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_ref_call_param_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_param_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_param_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_ref_call_param_call_reset_requires : Valid +[wp] [Qed] Goal typed_ref_call_param_call_load_requires : Valid +[wp] [Qed] Goal typed_ref_call_param_ref_ensures : Valid +[wp] [Qed] Goal typed_ref_call_param_ref_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_param_ref_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_param_ref_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_param_ref_call_reset_requires : Valid +[wp] [Qed] Goal typed_ref_call_param_ref_call_load_requires : Valid +[wp] [Qed] Goal typed_ref_incr_ensures : Valid +[wp] [Qed] Goal typed_ref_incr_assigns : Valid +[wp] [Qed] Goal typed_ref_load_ensures : Valid +[wp] [Qed] Goal typed_ref_load_assigns : Valid +[wp] [Qed] Goal typed_ref_reset_ensures : Valid +[wp] [Qed] Goal typed_ref_reset_assigns : Valid [wp] Proved goals: 34 / 34 Qed: 34 [wp] Report 'tests/wp_hoare/dispatch_var2.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.1.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.1.res.oracle index d388c3c99107c31cbfd7fec2c111e21e28d144ca..a161e9ffe1ac8e3a7b642b9b709488ac42de314d 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.1.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.1.res.oracle @@ -4,40 +4,40 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 34 goals scheduled -[wp] [Qed] Goal typed_ref_call_global_post : Valid -[wp] [Qed] Goal typed_ref_call_global_assign_exit : Valid -[wp] [Qed] Goal typed_ref_call_global_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_global_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_global_call_reset_pre : Valid -[wp] [Qed] Goal typed_ref_call_global_call_load_pre : Valid -[wp] [Qed] Goal typed_ref_call_local_post : Valid -[wp] [Qed] Goal typed_ref_call_local_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_call_local_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_ref_call_local_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_local_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_local_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_call_local_call_reset_pre : Valid -[wp] [Qed] Goal typed_ref_call_local_call_load_pre : Valid -[wp] [Qed] Goal typed_ref_call_param_post : Valid -[wp] [Qed] Goal typed_ref_call_param_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_call_param_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_ref_call_param_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_param_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_param_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_call_param_call_reset_pre : Valid -[wp] [Qed] Goal typed_ref_call_param_call_load_pre : Valid -[wp] [Qed] Goal typed_ref_call_param_ref_post : Valid -[wp] [Qed] Goal typed_ref_call_param_ref_assign_exit : Valid -[wp] [Qed] Goal typed_ref_call_param_ref_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_param_ref_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_param_ref_call_reset_pre : Valid -[wp] [Qed] Goal typed_ref_call_param_ref_call_load_pre : Valid -[wp] [Qed] Goal typed_ref_incr_post : Valid -[wp] [Qed] Goal typed_ref_incr_assign : Valid -[wp] [Qed] Goal typed_ref_load_post : Valid -[wp] [Qed] Goal typed_ref_load_assign : Valid -[wp] [Qed] Goal typed_ref_reset_post : Valid -[wp] [Qed] Goal typed_ref_reset_assign : Valid +[wp] [Qed] Goal typed_ref_call_global_ensures : Valid +[wp] [Qed] Goal typed_ref_call_global_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_global_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_global_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_global_call_reset_requires : Valid +[wp] [Qed] Goal typed_ref_call_global_call_load_requires : Valid +[wp] [Qed] Goal typed_ref_call_local_ensures : Valid +[wp] [Qed] Goal typed_ref_call_local_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_call_local_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_ref_call_local_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_local_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_local_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_ref_call_local_call_reset_requires : Valid +[wp] [Qed] Goal typed_ref_call_local_call_load_requires : Valid +[wp] [Qed] Goal typed_ref_call_param_ensures : Valid +[wp] [Qed] Goal typed_ref_call_param_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_call_param_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_ref_call_param_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_param_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_param_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_ref_call_param_call_reset_requires : Valid +[wp] [Qed] Goal typed_ref_call_param_call_load_requires : Valid +[wp] [Qed] Goal typed_ref_call_param_ref_ensures : Valid +[wp] [Qed] Goal typed_ref_call_param_ref_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_param_ref_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_param_ref_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_param_ref_call_reset_requires : Valid +[wp] [Qed] Goal typed_ref_call_param_ref_call_load_requires : Valid +[wp] [Qed] Goal typed_ref_incr_ensures : Valid +[wp] [Qed] Goal typed_ref_incr_assigns : Valid +[wp] [Qed] Goal typed_ref_load_ensures : Valid +[wp] [Qed] Goal typed_ref_load_assigns : Valid +[wp] [Qed] Goal typed_ref_reset_ensures : Valid +[wp] [Qed] Goal typed_ref_reset_assigns : Valid [wp] Proved goals: 34 / 34 Qed: 34 [wp] Report 'tests/wp_hoare/dispatch_var2.i.1.report.json' diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/isHoare.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/isHoare.res.oracle index f4ee4d53421d203dc19631f8b4c574d829c5da19..9a06ba323da0f3b3a58310313fea680ea1ea3bcd 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/isHoare.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/isHoare.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Qed] Goal typed_ref_cmp_invalid_addr_as_int_post_ok : Valid +[wp] [Qed] Goal typed_ref_cmp_invalid_addr_as_int_ensures_ok : Valid [wp] Proved goals: 1 / 1 Qed: 1 [wp] Report 'tests/wp_hoare/isHoare.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.res.oracle index 0e64daa2ac2a55d7310daf78bff3e2d73a5df040..47e4dd7697ad9feb12aac921891fdf9f55510036 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Alt-Ergo] Goal typed_job_post_PTR : Valid -[wp] [Alt-Ergo] Goal typed_job_post_ARR : Valid -[wp] [Alt-Ergo] Goal typed_job_post_DUM : Valid +[wp] [Alt-Ergo] Goal typed_job_ensures_PTR : Valid +[wp] [Alt-Ergo] Goal typed_job_ensures_ARR : Valid +[wp] [Alt-Ergo] Goal typed_job_ensures_DUM : Valid [wp] Proved goals: 3 / 3 Qed: 0 Alt-Ergo: 3 diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicref.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicref.res.oracle index 5f5fa6ead779b5faa9fa7f2b37a9fd75f2d61308..f2a287c6cab427d1267d03d387c447b8b77e2a90 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicref.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicref.res.oracle @@ -4,17 +4,17 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 5 goals scheduled -[wp] [Qed] Goal typed_ref_fvrange_n_post : Valid +[wp] [Qed] Goal typed_ref_fvrange_n_ensures : Valid [wp] [Alt-Ergo] Goal typed_ref_fvrange_n_assert : Valid -[wp] [Qed] Goal typed_ref_fvrange_n_assign : Valid -[wp] [Qed] Goal typed_ref_gcd_post : Valid -[wp] [Qed] Goal typed_ref_gcd_assign : Valid +[wp] [Qed] Goal typed_ref_fvrange_n_assigns : Valid +[wp] [Qed] Goal typed_ref_gcd_ensures : Valid +[wp] [Qed] Goal typed_ref_gcd_assigns : Valid [wp] Proved goals: 5 / 5 Qed: 4 Alt-Ergo: 1 [wp] Report 'tests/wp_hoare/logicref.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -fvrange_n 2 1 (88..112) 3 100% +fvrange_n 2 1 (96..120) 3 100% gcd 2 - 2 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicref_simple.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicref_simple.res.oracle index 8955595fa0c36e6103c862b053d39934e2ab00bc..8233499c143b401b5d27b82a69923b76ad01c976 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicref_simple.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicref_simple.res.oracle @@ -4,15 +4,15 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 9 goals scheduled -[wp] [Alt-Ergo] Goal typed_ref_fsimple_post : Valid -[wp] [Qed] Goal typed_ref_fsimple_assign : Valid -[wp] [Alt-Ergo] Goal typed_ref_fsimple_array_post : Valid -[wp] [Qed] Goal typed_ref_fsimple_array_assign : Valid -[wp] [Alt-Ergo] Goal typed_ref_ftwo_star_post : Valid -[wp] [Qed] Goal typed_ref_ftwo_star_assign : Valid -[wp] [Qed] Goal typed_ref_fvpositive_post : Valid +[wp] [Alt-Ergo] Goal typed_ref_fsimple_ensures : Valid +[wp] [Qed] Goal typed_ref_fsimple_assigns : Valid +[wp] [Alt-Ergo] Goal typed_ref_fsimple_array_ensures : Valid +[wp] [Qed] Goal typed_ref_fsimple_array_assigns : Valid +[wp] [Alt-Ergo] Goal typed_ref_ftwo_star_ensures : Valid +[wp] [Qed] Goal typed_ref_ftwo_star_assigns : Valid +[wp] [Qed] Goal typed_ref_fvpositive_ensures : Valid [wp] [Alt-Ergo] Goal typed_ref_fvpositive_assert_OK : Valid -[wp] [Qed] Goal typed_ref_fvpositive_assign : Valid +[wp] [Qed] Goal typed_ref_fvpositive_assigns : Valid [wp] Proved goals: 9 / 9 Qed: 5 Alt-Ergo: 4 @@ -20,7 +20,7 @@ ------------------------------------------------------------- Functions WP Alt-Ergo Total Success fsimple 1 1 (8..20) 2 100% -fsimple_array 1 1 (24..36) 2 100% -ftwo_star 1 1 (8..20) 2 100% +fsimple_array 1 1 (28..40) 2 100% +ftwo_star 1 1 (12..24) 2 100% fvpositive 2 1 (4..16) 3 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference.res.oracle index d94ce8d9aa90fa1378fcb30e3345a47651344896..c33ec4bf50b7ab3be30245accec6b646e6b73cf1 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference.res.oracle @@ -4,29 +4,29 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 23 goals scheduled -[wp] [Qed] Goal typed_ref_call_f2_post : Valid -[wp] [Qed] Goal typed_ref_call_f2_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_call_f2_assign_exit_part2 : Valid -[wp] [Alt-Ergo] Goal typed_ref_call_f2_assign_exit_part3 : Unknown -[wp] [Qed] Goal typed_ref_call_f2_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_f2_assign_normal_part2 : Valid -[wp] [Alt-Ergo] Goal typed_ref_call_f2_assign_normal_part3 : Unknown -[wp] [Qed] Goal typed_ref_call_f2_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_ref_call_f2_call_f2_pre : Valid -[wp] [Qed] Goal typed_ref_call_global_post : Valid -[wp] [Qed] Goal typed_ref_call_global_assign_exit : Valid -[wp] [Qed] Goal typed_ref_call_global_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_global_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_global_call_f_pre : Valid -[wp] [Qed] Goal typed_ref_g_post : Valid -[wp] [Qed] Goal typed_ref_g_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_g_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_ref_g_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_g_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_g_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_g_call_f_pre : Valid -[wp] [Qed] Goal typed_ref_write_post : Valid -[wp] [Qed] Goal typed_ref_write_assign : Valid +[wp] [Qed] Goal typed_ref_call_f2_ensures : Valid +[wp] [Qed] Goal typed_ref_call_f2_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_call_f2_assigns_exit_part2 : Valid +[wp] [Alt-Ergo] Goal typed_ref_call_f2_assigns_exit_part3 : Unknown +[wp] [Qed] Goal typed_ref_call_f2_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_f2_assigns_normal_part2 : Valid +[wp] [Alt-Ergo] Goal typed_ref_call_f2_assigns_normal_part3 : Unknown +[wp] [Qed] Goal typed_ref_call_f2_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_ref_call_f2_call_f2_requires : Valid +[wp] [Qed] Goal typed_ref_call_global_ensures : Valid +[wp] [Qed] Goal typed_ref_call_global_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_global_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_global_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_global_call_f_requires : Valid +[wp] [Qed] Goal typed_ref_g_ensures : Valid +[wp] [Qed] Goal typed_ref_g_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_g_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_ref_g_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_g_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_g_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_ref_g_call_f_requires : Valid +[wp] [Qed] Goal typed_ref_write_ensures : Valid +[wp] [Qed] Goal typed_ref_write_assigns : Valid [wp] Proved goals: 21 / 23 Qed: 21 Alt-Ergo: 0 (unknown: 2) diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle index 3726ef5b31be6035baae6da3fcebe61045f937f9..67424143d7c240bb97b18c1e09e9776d83c403c7 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle @@ -4,38 +4,38 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 32 goals scheduled -[wp] [Qed] Goal typed_ref_call_array_in_struct_param_post_Pload2 : Valid -[wp] [Qed] Goal typed_ref_call_array_in_struct_param_post_Pload3 : Valid -[wp] [Qed] Goal typed_ref_call_array_in_struct_param_assign_exit : Valid -[wp] [Qed] Goal typed_ref_call_array_in_struct_param_assign_normal : Valid -[wp] [Qed] Goal typed_ref_call_array_in_struct_param_call_load_5_pre : Valid -[wp] [Alt-Ergo] Goal typed_ref_call_on_array_in_struct_global_post_Pload : Valid -[wp] [Qed] Goal typed_ref_call_on_array_in_struct_global_assign_exit : Valid -[wp] [Qed] Goal typed_ref_call_on_array_in_struct_global_assign_normal : Valid -[wp] [Qed] Goal typed_ref_call_on_array_in_struct_global_call_load_5_pre : Valid -[wp] [Qed] Goal typed_ref_call_reset_post : Valid -[wp] [Qed] Goal typed_ref_call_reset_assign_exit : Valid -[wp] [Qed] Goal typed_ref_call_reset_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_reset_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_reset_call_reset_pre : Valid -[wp] [Alt-Ergo] Goal typed_ref_call_reset_1_5_post_Presset_mat : Valid -[wp] [Qed] Goal typed_ref_call_reset_1_5_assign_exit : Valid -[wp] [Qed] Goal typed_ref_call_reset_1_5_assign_normal : Valid -[wp] [Qed] Goal typed_ref_call_reset_1_5_call_reset_1_5_pre : Valid -[wp] [Alt-Ergo] Goal typed_ref_call_reset_5_post_Preset_5 : Valid -[wp] [Qed] Goal typed_ref_call_reset_5_assign_exit : Valid -[wp] [Qed] Goal typed_ref_call_reset_5_assign_normal : Valid -[wp] [Qed] Goal typed_ref_call_reset_5_call_reset_5_pre : Valid -[wp] [Alt-Ergo] Goal typed_ref_call_reset_5_dim2_post_Presset_mat : Valid -[wp] [Qed] Goal typed_ref_call_reset_5_dim2_assign_exit : Valid -[wp] [Qed] Goal typed_ref_call_reset_5_dim2_assign_normal : Valid -[wp] [Qed] Goal typed_ref_call_reset_5_dim2_call_reset_5_pre : Valid -[wp] [Alt-Ergo] Goal typed_ref_call_reset_5_tps_post_Preset_5_tps : Valid -[wp] [Qed] Goal typed_ref_call_reset_5_tps_assign_exit : Valid -[wp] [Qed] Goal typed_ref_call_reset_5_tps_assign_normal : Valid -[wp] [Qed] Goal typed_ref_call_reset_5_tps_call_reset_5_pre : Valid -[wp] [Qed] Goal typed_ref_reset_post : Valid -[wp] [Qed] Goal typed_ref_reset_assign : Valid +[wp] [Qed] Goal typed_ref_call_array_in_struct_param_ensures_Pload2 : Valid +[wp] [Qed] Goal typed_ref_call_array_in_struct_param_ensures_Pload3 : Valid +[wp] [Qed] Goal typed_ref_call_array_in_struct_param_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_array_in_struct_param_assigns_normal : Valid +[wp] [Qed] Goal typed_ref_call_array_in_struct_param_call_load_5_requires : Valid +[wp] [Alt-Ergo] Goal typed_ref_call_on_array_in_struct_global_ensures_Pload : Valid +[wp] [Qed] Goal typed_ref_call_on_array_in_struct_global_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_on_array_in_struct_global_assigns_normal : Valid +[wp] [Qed] Goal typed_ref_call_on_array_in_struct_global_call_load_5_requires : Valid +[wp] [Qed] Goal typed_ref_call_reset_ensures : Valid +[wp] [Qed] Goal typed_ref_call_reset_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_reset_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_reset_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_reset_call_reset_requires : Valid +[wp] [Alt-Ergo] Goal typed_ref_call_reset_1_5_ensures_Presset_mat : Valid +[wp] [Qed] Goal typed_ref_call_reset_1_5_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_reset_1_5_assigns_normal : Valid +[wp] [Qed] Goal typed_ref_call_reset_1_5_call_reset_1_5_requires : Valid +[wp] [Alt-Ergo] Goal typed_ref_call_reset_5_ensures_Preset_5 : Valid +[wp] [Qed] Goal typed_ref_call_reset_5_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_reset_5_assigns_normal : Valid +[wp] [Qed] Goal typed_ref_call_reset_5_call_reset_5_requires : Valid +[wp] [Alt-Ergo] Goal typed_ref_call_reset_5_dim2_ensures_Presset_mat : Valid +[wp] [Qed] Goal typed_ref_call_reset_5_dim2_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_reset_5_dim2_assigns_normal : Valid +[wp] [Qed] Goal typed_ref_call_reset_5_dim2_call_reset_5_requires : Valid +[wp] [Alt-Ergo] Goal typed_ref_call_reset_5_tps_ensures_Preset_5_tps : Valid +[wp] [Qed] Goal typed_ref_call_reset_5_tps_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_reset_5_tps_assigns_normal : Valid +[wp] [Qed] Goal typed_ref_call_reset_5_tps_call_reset_5_requires : Valid +[wp] [Qed] Goal typed_ref_reset_ensures : Valid +[wp] [Qed] Goal typed_ref_reset_assigns : Valid [wp] Proved goals: 32 / 32 Qed: 27 Alt-Ergo: 5 diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array.res.oracle index 39470242b57424fd4870ac9069708ed7ee0c11f8..9b452f762f81e2e35b836d347646f75c95a9b113 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array.res.oracle @@ -4,42 +4,42 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 36 goals scheduled -[wp] [Alt-Ergo] Goal typed_ref_add_1_5_post : Valid -[wp] [Qed] Goal typed_ref_add_1_5_assign_exit : Valid -[wp] [Qed] Goal typed_ref_add_1_5_assign_normal : Valid -[wp] [Qed] Goal typed_ref_add_1_5_call_add_5_pre : Valid -[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_1_post_Pload : Valid -[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_1_post_Preset : Valid -[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_1_post_Padd : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_1_assign_exit : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_1_assign_normal : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_1_call_load_5_pre : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_1_call_reset_5_pre : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_1_call_add_5_pre : Valid -[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_post_Pload : Valid -[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_post_Preset : Valid -[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_post_Padd : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_assign_exit : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_assign_normal : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_call_load_1_5_pre : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_call_reset_1_5_pre : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_call_add_1_5_pre : Valid -[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_to_1_post_Pload : Valid -[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_to_1_post_Preset : Valid -[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_to_1_post_Padd : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_to_1_assign_exit : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_to_1_assign_normal : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_to_1_call_load_5_pre : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_to_1_call_reset_5_pre : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_to_1_call_add_5_pre : Valid -[wp] [Alt-Ergo] Goal typed_ref_load_1_5_post : Valid -[wp] [Qed] Goal typed_ref_load_1_5_assign_exit : Valid -[wp] [Qed] Goal typed_ref_load_1_5_assign_normal : Valid -[wp] [Qed] Goal typed_ref_load_1_5_call_load_5_pre : Valid -[wp] [Alt-Ergo] Goal typed_ref_reset_1_5_post : Valid -[wp] [Qed] Goal typed_ref_reset_1_5_assign_exit : Valid -[wp] [Qed] Goal typed_ref_reset_1_5_assign_normal : Valid -[wp] [Qed] Goal typed_ref_reset_1_5_call_reset_5_pre : Valid +[wp] [Alt-Ergo] Goal typed_ref_add_1_5_ensures : Valid +[wp] [Qed] Goal typed_ref_add_1_5_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_add_1_5_assigns_normal : Valid +[wp] [Qed] Goal typed_ref_add_1_5_call_add_5_requires : Valid +[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_1_ensures_Pload : Valid +[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_1_ensures_Preset : Valid +[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_1_ensures_Padd : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_1_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_1_assigns_normal : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_1_call_load_5_requires : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_1_call_reset_5_requires : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_1_call_add_5_requires : Valid +[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_ensures_Pload : Valid +[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_ensures_Preset : Valid +[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_ensures_Padd : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_assigns_normal : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_call_load_1_5_requires : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_call_reset_1_5_requires : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_call_add_1_5_requires : Valid +[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_to_1_ensures_Pload : Valid +[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_to_1_ensures_Preset : Valid +[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_to_1_ensures_Padd : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_to_1_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_to_1_assigns_normal : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_to_1_call_load_5_requires : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_to_1_call_reset_5_requires : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_to_1_call_add_5_requires : Valid +[wp] [Alt-Ergo] Goal typed_ref_load_1_5_ensures : Valid +[wp] [Qed] Goal typed_ref_load_1_5_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_load_1_5_assigns_normal : Valid +[wp] [Qed] Goal typed_ref_load_1_5_call_load_5_requires : Valid +[wp] [Alt-Ergo] Goal typed_ref_reset_1_5_ensures : Valid +[wp] [Qed] Goal typed_ref_reset_1_5_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_reset_1_5_assigns_normal : Valid +[wp] [Qed] Goal typed_ref_reset_1_5_call_reset_5_requires : Valid [wp] Proved goals: 36 / 36 Qed: 24 Alt-Ergo: 12 diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array_simple.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array_simple.res.oracle index 8c86a8bb1b80125182c189f52444839a002ba361..bcc5f4a414b76a056d92bef7d68d196490e655cc 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array_simple.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array_simple.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Qed] Goal typed_ref_call_f1_post : Valid -[wp] [Qed] Goal typed_ref_call_f2_post : Valid -[wp] [Qed] Goal typed_ref_call_f3_post : Valid +[wp] [Qed] Goal typed_ref_call_f1_ensures : Valid +[wp] [Qed] Goal typed_ref_call_f2_ensures : Valid +[wp] [Qed] Goal typed_ref_call_f3_ensures : Valid [wp] Proved goals: 3 / 3 Qed: 3 [wp] Report 'tests/wp_hoare/reference_array_simple.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/refguards.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/refguards.res.oracle index 9de80150645392fb22ad29543132c435288683d7..07afbfc11d90ae4148f52336769ac7e05eea9240 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/refguards.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/refguards.res.oracle @@ -4,15 +4,15 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 9 goals scheduled -[wp] [Qed] Goal typed_ref_f_post : Valid -[wp] [Alt-Ergo] Goal typed_ref_g_post : Valid -[wp] [Qed] Goal typed_ref_h_post : Valid -[wp] [Qed] Goal typed_ref_s_post : Valid -[wp] [Qed] Goal typed_ref_s_post_2 : Valid -[wp] [Qed] Goal typed_ref_s_post_3 : Valid -[wp] [Qed] Goal typed_ref_s_post_4 : Valid -[wp] [Qed] Goal typed_ref_s_post_5 : Valid -[wp] [Alt-Ergo] Goal typed_ref_s_post_KO : Unknown +[wp] [Qed] Goal typed_ref_f_ensures : Valid +[wp] [Alt-Ergo] Goal typed_ref_g_ensures : Valid +[wp] [Qed] Goal typed_ref_h_ensures : Valid +[wp] [Qed] Goal typed_ref_s_ensures : Valid +[wp] [Qed] Goal typed_ref_s_ensures_2 : Valid +[wp] [Qed] Goal typed_ref_s_ensures_3 : Valid +[wp] [Qed] Goal typed_ref_s_ensures_4 : Valid +[wp] [Qed] Goal typed_ref_s_ensures_5 : Valid +[wp] [Alt-Ergo] Goal typed_ref_s_ensures_KO : Unknown [wp] Proved goals: 8 / 9 Qed: 7 Alt-Ergo: 1 (unknown: 1) @@ -20,7 +20,7 @@ ------------------------------------------------------------- Functions WP Alt-Ergo Total Success f 1 - 1 100% -g - 1 (8..20) 1 100% +g - 1 (12..24) 1 100% h 1 - 1 100% s 5 - 6 83.3% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_hoare/reference.i.0.report.json b/src/plugins/wp/tests/wp_hoare/reference.i.0.report.json index 231def588235a60e73a1cce5db0a4fc4fedeb3c4..ed8e2217b49af5a7d61dfad0b45457b1af1b44de 100644 --- a/src/plugins/wp/tests/wp_hoare/reference.i.0.report.json +++ b/src/plugins/wp/tests/wp_hoare/reference.i.0.report.json @@ -1,34 +1,33 @@ { "wp:global": { "alt-ergo": { "total": 2, "unknown": 2 }, "qed": { "total": 21, "valid": 21 }, "wp:main": { "total": 23, "valid": 21, "unknown": 2 } }, - "wp:functions": { "g": { "specialization_f_pre_at_g_stmt_2": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "g_assign": { "qed": { "total": 5, "valid": 5 }, - "wp:main": { "total": 5, - "valid": 5 } }, - "g_post": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "wp:functions": { "g": { "f_requires": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "g_assigns": { "qed": { "total": 5, "valid": 5 }, + "wp:main": { "total": 5, + "valid": 5 } }, + "g_ensures": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 7, "valid": 7 }, "wp:main": { "total": 7, "valid": 7 } } }, - "call_f2": { "specialization_f2_pre_at_call_f2_stmt_7": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "call_f2_assign": { "alt-ergo": { "total": 2, - "unknown": 2 }, - "qed": { "total": 5, - "valid": 5 }, - "wp:main": { "total": 7, - "valid": 5, - "unknown": 2 } }, - "call_f2_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "call_f2": { "f2_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "call_f2_assigns": { "alt-ergo": { "total": 2, + "unknown": 2 }, + "qed": { "total": 5, + "valid": 5 }, + "wp:main": { "total": 7, + "valid": 5, + "unknown": 2 } }, + "call_f2_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "unknown": 2 }, "qed": { "total": 7, @@ -36,32 +35,34 @@ "wp:main": { "total": 9, "valid": 7, "unknown": 2 } } }, - "call_global": { "specialization_f_pre_at_call_global_stmt_10": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "call_global_assign": { "qed": { "total": 3, - "valid": 3 }, - "wp:main": - { "total": 3, - "valid": 3 } }, - "call_global_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "call_global": { "f_requires_2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "call_global_assigns": { "qed": + { "total": 3, + "valid": 3 }, + "wp:main": + { "total": 3, + "valid": 3 } }, + "call_global_ensures": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 5, "valid": 5 }, "wp:main": { "total": 5, "valid": 5 } } }, - "write": { "write_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "write_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "write": { "write_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "write_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, diff --git a/src/plugins/wp/tests/wp_hoare/reference_and_struct.i.0.report.json b/src/plugins/wp/tests/wp_hoare/reference_and_struct.i.0.report.json index c0d973f42303dd00e7f376e03e406681ad1b2c3f..11e6e2f6c10926d5cc561994ff53fffd24d4730d 100644 --- a/src/plugins/wp/tests/wp_hoare/reference_and_struct.i.0.report.json +++ b/src/plugins/wp/tests/wp_hoare/reference_and_struct.i.0.report.json @@ -1,52 +1,54 @@ { "wp:global": { "alt-ergo": { "total": 5, "valid": 5, "rank": 5 }, "qed": { "total": 27, "valid": 27 }, "wp:main": { "total": 32, "valid": 32, "rank": 5 } }, - "wp:functions": { "reset": { "reset_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "reset_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "reset": { "reset_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "reset_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "call_reset": { "specialization_reset_pre_at_call_reset_stmt_4": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "call_reset_assign": { "qed": { "total": 3, - "valid": 3 }, - "wp:main": - { "total": 3, - "valid": 3 } }, - "call_reset_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, + "call_reset": { "reset_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "call_reset_assigns": { "qed": { "total": 3, + "valid": 3 }, + "wp:main": + { "total": 3, + "valid": 3 } }, + "call_reset_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 5, "valid": 5 }, "wp:main": { "total": 5, "valid": 5 } } }, - "call_reset_5": { "specialization_reset_5_pre_at_call_reset_5_stmt_8": - { "qed": { "total": 1, "valid": 1 }, + "call_reset_5": { "reset_5_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "call_reset_5_assigns": { "qed": + { "total": 2, + "valid": 2 }, + "wp:main": + { "total": 2, + "valid": 2 } }, + "call_reset_5_ensures_Preset_5": + { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 1 }, "wp:main": { "total": 1, - "valid": 1 } }, - "call_reset_5_assign": { "qed": - { "total": 2, - "valid": 2 }, - "wp:main": - { "total": 2, - "valid": 2 } }, - "call_reset_5_post_Preset_5": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 1 } }, + "valid": 1, + "rank": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 1 }, @@ -55,17 +57,18 @@ "wp:main": { "total": 4, "valid": 4, "rank": 1 } } }, - "call_reset_5_tps": { "specialization_reset_5_pre_at_call_reset_5_tps_stmt_11": - { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "call_reset_5_tps_assign": + "call_reset_5_tps": { "reset_5_requires_2": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "call_reset_5_tps_assigns": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "call_reset_5_tps_post_Preset_5_tps": + "call_reset_5_tps_ensures_Preset_5_tps": { "alt-ergo": { "total": 1, "valid": 1, "rank": 5 }, @@ -82,17 +85,19 @@ { "total": 4, "valid": 4, "rank": 5 } } }, - "call_reset_1_5": { "specialization_reset_1_5_pre_at_call_reset_1_5_stmt_14": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "call_reset_1_5_assign": { "qed": + "call_reset_1_5": { "reset_1_5_requires": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "call_reset_1_5_assigns": { "qed": { "total": 2, "valid": 2 }, - "wp:main": + "wp:main": { "total": 2, "valid": 2 } }, - "call_reset_1_5_post_Presset_mat": + "call_reset_1_5_ensures_Presset_mat": { "alt-ergo": { "total": 1, "valid": 1, "rank": 1 }, @@ -107,17 +112,18 @@ "wp:main": { "total": 4, "valid": 4, "rank": 1 } } }, - "call_reset_5_dim2": { "specialization_reset_5_pre_at_call_reset_5_dim2_stmt_17": - { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "call_reset_5_dim2_assign": + "call_reset_5_dim2": { "reset_5_requires_3": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "call_reset_5_dim2_assigns": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "call_reset_5_dim2_post_Presset_mat": + "call_reset_5_dim2_ensures_Presset_mat": { "alt-ergo": { "total": 1, "valid": 1, "rank": 1 }, @@ -134,19 +140,19 @@ { "total": 4, "valid": 4, "rank": 1 } } }, - "call_on_array_in_struct_global": { "specialization_load_5_pre_at_call_on_array_in_struct_global_stmt_20": + "call_on_array_in_struct_global": { "load_5_requires": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "call_on_array_in_struct_global_assign": + "call_on_array_in_struct_global_assigns": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "call_on_array_in_struct_global_post_Pload": + "call_on_array_in_struct_global_ensures_Pload": { "alt-ergo": { "total": 1, "valid": 1, @@ -166,22 +172,22 @@ { "total": 4, "valid": 4, "rank": 2 } } }, - "call_array_in_struct_param": { "specialization_load_5_pre_at_call_array_in_struct_param_stmt_23": + "call_array_in_struct_param": { "load_5_requires_2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "call_array_in_struct_param_assign": + "call_array_in_struct_param_assigns": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "call_array_in_struct_param_post_Pload3": + "call_array_in_struct_param_ensures_Pload3": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "call_array_in_struct_param_post_Pload2": + "call_array_in_struct_param_ensures_Pload2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_hoare/reference_array.i.0.report.json b/src/plugins/wp/tests/wp_hoare/reference_array.i.0.report.json index f08df5e1a234c84644e65d9e64b2b661987a969f..afc36a6dd83fa10a701a7381c560cb30d233ecdc 100644 --- a/src/plugins/wp/tests/wp_hoare/reference_array.i.0.report.json +++ b/src/plugins/wp/tests/wp_hoare/reference_array.i.0.report.json @@ -1,19 +1,23 @@ { "wp:global": { "alt-ergo": { "total": 12, "valid": 12, "rank": 5 }, "qed": { "total": 24, "valid": 24 }, "wp:main": { "total": 36, "valid": 36, "rank": 5 } }, - "wp:functions": { "reset_1_5": { "specialization_reset_5_pre_at_reset_1_5_stmt_1": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "reset_1_5_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "reset_1_5_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 5 } }, + "wp:functions": { "reset_1_5": { "reset_5_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "reset_1_5_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": + { "total": 2, + "valid": 2 } }, + "reset_1_5_ensures": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 5 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 5 }, @@ -22,19 +26,20 @@ "wp:main": { "total": 4, "valid": 4, "rank": 5 } } }, - "load_1_5": { "specialization_load_5_pre_at_load_1_5_stmt_4": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "load_1_5_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, + "load_1_5": { "load_5_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "load_1_5_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, "valid": 2 } }, - "load_1_5_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, + "load_1_5_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, @@ -43,19 +48,20 @@ "wp:main": { "total": 4, "valid": 4, "rank": 4 } } }, - "add_1_5": { "specialization_add_5_pre_at_add_1_5_stmt_7": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "add_1_5_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "add_1_5_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, + "add_1_5": { "add_5_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "add_1_5_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "add_1_5_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, @@ -64,41 +70,44 @@ "wp:main": { "total": 4, "valid": 4, "rank": 4 } } }, - "calls_on_array_dim_1": { "specialization_add_5_pre_at_calls_on_array_dim_1_stmt_12": - { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "specialization_reset_5_pre_at_calls_on_array_dim_1_stmt_11": - { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "specialization_load_5_pre_at_calls_on_array_dim_1_stmt_10": - { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "calls_on_array_dim_1_assign": + "calls_on_array_dim_1": { "add_5_requires_2": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "reset_5_requires_2": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "load_5_requires_2": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "calls_on_array_dim_1_assigns": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "calls_on_array_dim_1_post_Padd": + "calls_on_array_dim_1_ensures_Padd": { "alt-ergo": { "total": 1, "valid": 1, "rank": 3 }, "wp:main": { "total": 1, "valid": 1, "rank": 3 } }, - "calls_on_array_dim_1_post_Preset": + "calls_on_array_dim_1_ensures_Preset": { "alt-ergo": { "total": 1, "valid": 1, "rank": 1 }, "wp:main": { "total": 1, "valid": 1, "rank": 1 } }, - "calls_on_array_dim_1_post_Pload": + "calls_on_array_dim_1_ensures_Pload": { "alt-ergo": { "total": 1, "valid": 1, "rank": 1 }, @@ -116,41 +125,41 @@ { "total": 8, "valid": 8, "rank": 3 } } }, - "calls_on_array_dim_2_to_1": { "specialization_add_5_pre_at_calls_on_array_dim_2_to_1_stmt_17": + "calls_on_array_dim_2_to_1": { "add_5_requires_3": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "specialization_reset_5_pre_at_calls_on_array_dim_2_to_1_stmt_16": + "reset_5_requires_3": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "specialization_load_5_pre_at_calls_on_array_dim_2_to_1_stmt_15": + "load_5_requires_3": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "calls_on_array_dim_2_to_1_assign": + "calls_on_array_dim_2_to_1_assigns": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "calls_on_array_dim_2_to_1_post_Padd": + "calls_on_array_dim_2_to_1_ensures_Padd": { "alt-ergo": { "total": 1, "valid": 1, "rank": 3 }, "wp:main": { "total": 1, "valid": 1, "rank": 3 } }, - "calls_on_array_dim_2_to_1_post_Preset": + "calls_on_array_dim_2_to_1_ensures_Preset": { "alt-ergo": { "total": 1, "valid": 1, "rank": 2 }, "wp:main": { "total": 1, "valid": 1, "rank": 2 } }, - "calls_on_array_dim_2_to_1_post_Pload": + "calls_on_array_dim_2_to_1_ensures_Pload": { "alt-ergo": { "total": 1, "valid": 1, "rank": 2 }, @@ -168,41 +177,44 @@ { "total": 8, "valid": 8, "rank": 3 } } }, - "calls_on_array_dim_2": { "specialization_add_1_5_pre_at_calls_on_array_dim_2_stmt_22": - { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "specialization_reset_1_5_pre_at_calls_on_array_dim_2_stmt_21": - { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "specialization_load_1_5_pre_at_calls_on_array_dim_2_stmt_20": - { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "calls_on_array_dim_2_assign": + "calls_on_array_dim_2": { "add_1_5_requires": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "reset_1_5_requires": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "load_1_5_requires": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "calls_on_array_dim_2_assigns": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "calls_on_array_dim_2_post_Padd": + "calls_on_array_dim_2_ensures_Padd": { "alt-ergo": { "total": 1, "valid": 1, "rank": 2 }, "wp:main": { "total": 1, "valid": 1, "rank": 2 } }, - "calls_on_array_dim_2_post_Preset": + "calls_on_array_dim_2_ensures_Preset": { "alt-ergo": { "total": 1, "valid": 1, "rank": 1 }, "wp:main": { "total": 1, "valid": 1, "rank": 1 } }, - "calls_on_array_dim_2_post_Pload": + "calls_on_array_dim_2_ensures_Pload": { "alt-ergo": { "total": 1, "valid": 1, "rank": 1 }, diff --git a/src/plugins/wp/tests/wp_hoare/reference_array_simple.i.0.report.json b/src/plugins/wp/tests/wp_hoare/reference_array_simple.i.0.report.json index d0cb543fa661ca129665804fc149c1e6fa7028d8..141e4abc28d6c2dd4cb136fb06f3a734b4a33a0d 100644 --- a/src/plugins/wp/tests/wp_hoare/reference_array_simple.i.0.report.json +++ b/src/plugins/wp/tests/wp_hoare/reference_array_simple.i.0.report.json @@ -1,25 +1,25 @@ { "wp:global": { "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 3, "valid": 3 } }, - "wp:functions": { "call_f1": { "call_f1_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "call_f1": { "call_f1_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "call_f2": { "call_f2_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "call_f2": { "call_f2_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "call_f3": { "call_f3_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "call_f3": { "call_f3_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_hoare/refguards.i.0.report.json b/src/plugins/wp/tests/wp_hoare/refguards.i.0.report.json index 88f4779426b0fa72d0eea82493ed95404b7457fd..02d281f75bfcfef691acc66dd7f28ed4b95baee6 100644 --- a/src/plugins/wp/tests/wp_hoare/refguards.i.0.report.json +++ b/src/plugins/wp/tests/wp_hoare/refguards.i.0.report.json @@ -1,46 +1,51 @@ { "wp:global": { "alt-ergo": { "total": 2, "valid": 1, "unknown": 1, - "rank": 3 }, + "rank": 4 }, "qed": { "total": 7, "valid": 7 }, "wp:main": { "total": 9, "valid": 8, "unknown": 1, - "rank": 3 } }, - "wp:functions": { "f": { "f_post": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "rank": 4 } }, + "wp:functions": { "f": { "f_ensures": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "g": { "g_post": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "g": { "g_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } } }, - "h": { "h_post": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "rank": 4 } } }, + "h": { "h_ensures": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "s": { "s_post_KO": { "alt-ergo": { "total": 1, - "unknown": 1 }, + "s": { "s_ensures_KO": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "s_ensures_5": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "s_ensures_4": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "s_ensures_3": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "s_ensures_2": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "s_ensures": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, - "unknown": 1 } }, - "s_post_5": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "s_post_4": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "s_post_3": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "s_post_2": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "s_post": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 5, "valid": 5 }, diff --git a/src/plugins/wp/tests/wp_manual/manual.i.0.report.json b/src/plugins/wp/tests/wp_manual/manual.i.0.report.json index 62c79a858389498c09fa6c359bb4ade661400b99..56d70788f4a0e66431a39e3c53a69b41dfa3637e 100644 --- a/src/plugins/wp/tests/wp_manual/manual.i.0.report.json +++ b/src/plugins/wp/tests/wp_manual/manual.i.0.report.json @@ -1,21 +1,21 @@ -{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 3 }, +{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 2, "valid": 2, "rank": 3 } }, - "wp:functions": { "swap": { "swap_post_B": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "swap_post_A": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 3 } }, + "wp:main": { "total": 2, "valid": 2, "rank": 4 } }, + "wp:functions": { "swap": { "swap_ensures_B": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "swap_ensures_A": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 3 } } } } } + "rank": 4 } } } } } diff --git a/src/plugins/wp/tests/wp_manual/manual.i.1.report.json b/src/plugins/wp/tests/wp_manual/manual.i.1.report.json index efbb2d39bc1807b27fa1d09c7e0b1499dd5c8579..46e1782afb0298f8138bb4284be77678fd69093c 100644 --- a/src/plugins/wp/tests/wp_manual/manual.i.1.report.json +++ b/src/plugins/wp/tests/wp_manual/manual.i.1.report.json @@ -29,20 +29,20 @@ { "total": 1, "valid": 1, "rank": 4 } }, - "swap_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "swap_post_B": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "swap_post_A": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 5 } }, + "swap_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "swap_ensures_B": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "swap_ensures_A": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, "wp:section": { "alt-ergo": { "total": 3, "valid": 3, "rank": 5 }, diff --git a/src/plugins/wp/tests/wp_manual/manual.i.2.report.json b/src/plugins/wp/tests/wp_manual/manual.i.2.report.json index efbb2d39bc1807b27fa1d09c7e0b1499dd5c8579..46e1782afb0298f8138bb4284be77678fd69093c 100644 --- a/src/plugins/wp/tests/wp_manual/manual.i.2.report.json +++ b/src/plugins/wp/tests/wp_manual/manual.i.2.report.json @@ -29,20 +29,20 @@ { "total": 1, "valid": 1, "rank": 4 } }, - "swap_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "swap_post_B": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "swap_post_A": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 5 } }, + "swap_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "swap_ensures_B": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "swap_ensures_A": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, "wp:section": { "alt-ergo": { "total": 3, "valid": 3, "rank": 5 }, diff --git a/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.0.res.oracle b/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.0.res.oracle index 544488b6ffeabfb22b20a9f6edf1ee77a916fe5e..86b06c6e37c50d57f64e004b89391ceee3552108 100644 --- a/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.0.res.oracle +++ b/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.0.res.oracle @@ -6,13 +6,13 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Alt-Ergo] Goal typed_swap_post_A : Valid -[wp] [Qed] Goal typed_swap_post_B : Valid +[wp] [Alt-Ergo] Goal typed_swap_ensures_A : Valid +[wp] [Qed] Goal typed_swap_ensures_B : Valid [wp] Proved goals: 2 / 2 Qed: 1 Alt-Ergo: 1 [wp] Report 'tests/wp_manual/manual.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -swap 1 1 (8..20) 2 100% +swap 1 1 (12..24) 2 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.1.res.oracle b/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.1.res.oracle index ce53f53550afbe73654e48a60ffee65575721761..7380ed072cd7b881d8ce63f92d4a61f2d6980a1d 100644 --- a/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.1.res.oracle +++ b/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.1.res.oracle @@ -6,14 +6,14 @@ [wp] Loading driver 'share/wp.driver' [rte] annotating function swap [wp] 8 goals scheduled -[wp] [Alt-Ergo] Goal typed_swap_post_A : Valid -[wp] [Qed] Goal typed_swap_post_B : Valid +[wp] [Alt-Ergo] Goal typed_swap_ensures_A : Valid +[wp] [Qed] Goal typed_swap_ensures_B : Valid [wp] [Alt-Ergo] Goal typed_swap_assert_rte_mem_access : Valid [wp] [Qed] Goal typed_swap_assert_rte_mem_access_2 : Valid [wp] [Alt-Ergo] Goal typed_swap_assert_rte_mem_access_3 : Valid [wp] [Qed] Goal typed_swap_assert_rte_mem_access_4 : Valid -[wp] [Qed] Goal typed_swap_assign_part1 : Valid -[wp] [Qed] Goal typed_swap_assign_part2 : Valid +[wp] [Qed] Goal typed_swap_assigns_part1 : Valid +[wp] [Qed] Goal typed_swap_assigns_part2 : Valid [wp] Proved goals: 8 / 8 Qed: 5 Alt-Ergo: 3 diff --git a/src/plugins/wp/tests/wp_plugin/abs.i.0.report.json b/src/plugins/wp/tests/wp_plugin/abs.i.0.report.json index d49378e2cfe226f518e0b7ab11465a8d7c7b9ef6..a80a2d1beca3dd9464d3a58c09fde1529bcb255b 100644 --- a/src/plugins/wp/tests/wp_plugin/abs.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/abs.i.0.report.json @@ -1,11 +1,11 @@ { "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 2 }, "wp:main": { "total": 1, "valid": 1, "rank": 2 } }, - "wp:functions": { "abs": { "abs_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, + "wp:functions": { "abs": { "abs_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 2 }, diff --git a/src/plugins/wp/tests/wp_plugin/abs.i.1.report.json b/src/plugins/wp/tests/wp_plugin/abs.i.1.report.json index 27343d990c515b76cc77f026eb2a7de2885e4c86..615d8ae63ebf4d3fccadd739c10ae1950a5e07e3 100644 --- a/src/plugins/wp/tests/wp_plugin/abs.i.1.report.json +++ b/src/plugins/wp/tests/wp_plugin/abs.i.1.report.json @@ -1,8 +1,9 @@ { "wp:global": { "coq": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "wp:functions": { "abs": { "abs_post": { "coq": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "abs": { "abs_ensures": { "coq": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "coq": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_plugin/abs.i.2.report.json b/src/plugins/wp/tests/wp_plugin/abs.i.2.report.json index fed0840ce12d0b93fe41b8992c82069801a6d03e..5944569879bbc4a26e7e36baafcebf4d3ad9fd30 100644 --- a/src/plugins/wp/tests/wp_plugin/abs.i.2.report.json +++ b/src/plugins/wp/tests/wp_plugin/abs.i.2.report.json @@ -1,9 +1,9 @@ { "wp:global": { "why3:alt-ergo": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "wp:functions": { "abs": { "abs_post": { "why3:alt-ergo": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "abs": { "abs_ensures": { "why3:alt-ergo": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "why3:alt-ergo": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_plugin/abs.script b/src/plugins/wp/tests/wp_plugin/abs.script index d00a1a3f2935dad4ea4579e27314b7dc2ab20ed6..9cd057bc899e0c3eb3e7285df7c5edf7f9e736f5 100644 --- a/src/plugins/wp/tests/wp_plugin/abs.script +++ b/src/plugins/wp/tests/wp_plugin/abs.script @@ -1,6 +1,6 @@ (* Generated by Frama-C WP *) -Goal typed_abs_abs_post. +Goal typed_abs_abs_ensures. Hint abs,default,property. Proof. intro n. intros. subst. diff --git a/src/plugins/wp/tests/wp_plugin/asm.i.0.report.json b/src/plugins/wp/tests/wp_plugin/asm.i.0.report.json index b9104446f42b30ae70b732be612bf00fc2e61fd1..f12a169da4eebf3f8cc384e0249786c3c213bd82 100644 --- a/src/plugins/wp/tests/wp_plugin/asm.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/asm.i.0.report.json @@ -9,10 +9,10 @@ "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "main_stmt_assign": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "main_assigns": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "unknown": 2 }, "qed": { "total": 1, diff --git a/src/plugins/wp/tests/wp_plugin/bool.i.0.report.json b/src/plugins/wp/tests/wp_plugin/bool.i.0.report.json index 54525d65b41036b914ebf2d11d08d60d63f7adcd..ed33644f6dfc6d57962bddc5fa958e5a0d8773b3 100644 --- a/src/plugins/wp/tests/wp_plugin/bool.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/bool.i.0.report.json @@ -3,28 +3,28 @@ "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 7, "valid": 3, "unknown": 4, "rank": 2 } }, - "wp:functions": { "job": { "job_post": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "wp:functions": { "job": { "job_ensures": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } } }, - "bor_bool": { "bor_bool_false_post": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, - "bor_bool_true_post": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 2 } }, + "bor_bool": { "bor_bool_false_ensures": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "bor_bool_true_ensures": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 2 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 1, "unknown": 1, @@ -33,17 +33,18 @@ "valid": 1, "unknown": 1, "rank": 2 } } }, - "band_bool": { "band_bool_false_post": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, - "band_bool_true_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "band_bool": { "band_bool_false_ensures": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "band_bool_true_ensures": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 1, @@ -51,17 +52,18 @@ "wp:main": { "total": 2, "valid": 1, "unknown": 1 } } }, - "bxor_bool": { "bxor_bool_false_post": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, - "bxor_bool_true_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "bxor_bool": { "bxor_bool_false_ensures": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "bxor_bool_true_ensures": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 1, diff --git a/src/plugins/wp/tests/wp_plugin/bool.i.1.report.json b/src/plugins/wp/tests/wp_plugin/bool.i.1.report.json index be8efece9311f9f62736287e7eefb1046b6b18e4..0b7598a6d212be3766522e4f696fa917f304c3ce 100644 --- a/src/plugins/wp/tests/wp_plugin/bool.i.1.report.json +++ b/src/plugins/wp/tests/wp_plugin/bool.i.1.report.json @@ -1,53 +1,54 @@ { "wp:global": { "alt-ergo": { "total": 5, "valid": 5, "rank": 6 }, "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 7, "valid": 7, "rank": 6 } }, - "wp:functions": { "job": { "job_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, + "wp:functions": { "job": { "job_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, "wp:main": { "total": 1, "valid": 1, "rank": 4 } } }, - "bor_bool": { "bor_bool_false_post": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 2 } }, - "bor_bool_true_post": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 2 } }, - "wp:section": { "alt-ergo": { "total": 2, - "valid": 2, - "rank": 2 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 2 } } }, - "band_bool": { "band_bool_false_post": { "alt-ergo": + "bor_bool": { "bor_bool_false_ensures": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 4 } }, + "bor_bool_true_ensures": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 6 }, + "rank": 2 }, "wp:main": { "total": 1, "valid": 1, - "rank": 6 } }, - "band_bool_true_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "rank": 2 } }, + "wp:section": { "alt-ergo": { "total": 2, + "valid": 2, + "rank": 4 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 4 } } }, + "band_bool": { "band_bool_false_ensures": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 6 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 6 } }, + "band_bool_true_ensures": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 6 }, @@ -56,24 +57,25 @@ "wp:main": { "total": 2, "valid": 2, "rank": 6 } } }, - "bxor_bool": { "bxor_bool_false_post": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 2 } }, - "bxor_bool_true_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "bxor_bool": { "bxor_bool_false_ensures": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 3 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 3 } }, + "bxor_bool_true_ensures": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 2 }, + "rank": 3 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 2 } } } } } + "rank": 3 } } } } } diff --git a/src/plugins/wp/tests/wp_plugin/copy.i.0.report.json b/src/plugins/wp/tests/wp_plugin/copy.i.0.report.json index a0aeba66b5723e0d660ec68c6b67280a7e2800b8..d943dafe4f35ffaeeadcdf96fcc9080f4d7132dd 100644 --- a/src/plugins/wp/tests/wp_plugin/copy.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/copy.i.0.report.json @@ -1,57 +1,61 @@ -{ "wp:global": { "alt-ergo": { "total": 6, "valid": 6, "rank": 38 }, +{ "wp:global": { "alt-ergo": { "total": 6, "valid": 6, "rank": 39 }, "qed": { "total": 4, "valid": 4 }, - "wp:main": { "total": 10, "valid": 10, "rank": 38 } }, + "wp:main": { "total": 10, "valid": 10, "rank": 39 } }, "wp:functions": { "copy": { "copy_assert_B": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 38 }, + "rank": 39 }, "wp:main": { "total": 1, "valid": 1, - "rank": 38 } }, + "rank": 39 } }, "copy_assert_A": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 31 }, + "rank": 32 }, "wp:main": { "total": 1, "valid": 1, - "rank": 31 } }, - "copy_loop_inv_Copy": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 7 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 7 } }, - "copy_loop_inv_Range": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 5 } }, - "copy_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "copy_loop_assign": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 22 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, + "rank": 32 } }, + "copy_loop_invariant_Copy": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 8 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 8 } }, + "copy_loop_invariant_Range": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 5 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, "valid": 2, - "rank": 22 } }, - "copy_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 5 } }, + "rank": 5 } }, + "copy_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "copy_loop_assigns": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 22 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 22 } }, + "copy_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 6 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 6 } }, "wp:section": { "alt-ergo": { "total": 6, "valid": 6, - "rank": 38 }, + "rank": 39 }, "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 10, "valid": 10, - "rank": 38 } } } } } + "rank": 39 } } } } } diff --git a/src/plugins/wp/tests/wp_plugin/dynamic.i.0.report.json b/src/plugins/wp/tests/wp_plugin/dynamic.i.0.report.json index 5bc84b3ea34cd84e44029eedc2e50d44af10ee4d..4fe7283df198bbb5837161eee37f648eecdb48e6 100644 --- a/src/plugins/wp/tests/wp_plugin/dynamic.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/dynamic.i.0.report.json @@ -1,22 +1,22 @@ { "wp:global": { "alt-ergo": { "total": 3, "valid": 3, "rank": 14 }, "qed": { "total": 10, "valid": 10 }, "wp:main": { "total": 13, "valid": 13, "rank": 14 } }, - "wp:functions": { "call": { "specialization_f1_pre_at_call_stmt_3": - { "alt-ergo": { "total": 1, "valid": 1, - "rank": 14 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 14 } }, - "call_stmt_calls_f1_f2": { "alt-ergo": - { "total": 1, + "wp:functions": { "call": { "f1_requires": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 6 }, - "wp:main": { "total": 1, + "rank": 14 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 14 } }, + "call_calls_f1_f2_s3": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 6 }, + "wp:main": { "total": 1, "valid": 1, "rank": 6 } }, - "call_post": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, + "call_ensures": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, "rank": 14 }, @@ -25,46 +25,52 @@ "wp:main": { "total": 4, "valid": 4, "rank": 14 } } }, - "guarded_call": { "guarded_call_stmt_calls_g": { "qed": + "guarded_call": { "guarded_call_calls_g_s9": { "qed": { "total": 1, "valid": 1 }, - "wp:main": + "wp:main": { "total": 1, "valid": 1 } }, - "guarded_call_post_2": { "qed": - { "total": 2, - "valid": 2 }, - "wp:main": - { "total": 2, - "valid": 2 } }, - "guarded_call_post": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 3 }, - "qed": { "total": 1, + "guarded_call_ensures_2": { "qed": + { "total": 2, + "valid": 2 }, + "wp:main": + { "total": 2, + "valid": 2 } }, + "guarded_call_ensures": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 4 }, + "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 3 } }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 5, "valid": 5, - "rank": 3 } } }, - "no_call": { "specialization_unreachable_g_pre_at_no_call_stmt_17": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "no_call_stmt_calls_unreachable_g": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "no_call_post": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, + "rank": 4 } } }, + "no_call": { "unreachable_g_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "no_call_calls_unreachable_g_s17": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "no_call_ensures": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, "wp:section": { "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 4, diff --git a/src/plugins/wp/tests/wp_plugin/flash.c.0.report.json b/src/plugins/wp/tests/wp_plugin/flash.c.0.report.json index b60ab62c9d51f86f09e60623621ef1114d85e3af..b56ae23d547912581057352e2f5d14d84957b77e 100644 --- a/src/plugins/wp/tests/wp_plugin/flash.c.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/flash.c.0.report.json @@ -1,30 +1,33 @@ { "wp:global": { "alt-ergo": { "total": 5, "unknown": 5 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 6, "valid": 1, "unknown": 5 } }, - "wp:functions": { "job": { "job_post_WriteValues": { "alt-ergo": { "total": 1, + "wp:functions": { "job": { "job_ensures_WriteValues": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "job_ensures_ReadValues": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "job_ensures_B_writes": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "job_post_ReadValues": { "alt-ergo": { "total": 1, + "job_ensures_B_reads": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "job_ensures_A_reads": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "job_post_B_writes": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "job_post_B_reads": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "job_post_A_reads": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "job_post_Events": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "job_ensures_Events": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 5, "unknown": 5 }, "qed": { "total": 1, diff --git a/src/plugins/wp/tests/wp_plugin/flash.c.1.report.json b/src/plugins/wp/tests/wp_plugin/flash.c.1.report.json index 12b5c0544d98610b133b1a24790be69584814694..63cb5905a73bef4a1486cafaa1d5b2366af44f2d 100644 --- a/src/plugins/wp/tests/wp_plugin/flash.c.1.report.json +++ b/src/plugins/wp/tests/wp_plugin/flash.c.1.report.json @@ -1,40 +1,43 @@ { "wp:global": { "alt-ergo": { "total": 5, "valid": 5, "rank": 20 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 6, "valid": 6, "rank": 20 } }, - "wp:functions": { "job": { "job_post_WriteValues": { "alt-ergo": { "total": 1, + "wp:functions": { "job": { "job_ensures_WriteValues": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 20 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 20 } }, + "job_ensures_ReadValues": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 20 }, + "wp:main": { "total": 1, "valid": 1, - "rank": 19 }, + "rank": 20 } }, + "job_ensures_B_writes": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 13 }, "wp:main": { "total": 1, "valid": 1, - "rank": 19 } }, - "job_post_ReadValues": { "alt-ergo": { "total": 1, + "rank": 13 } }, + "job_ensures_B_reads": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 20 }, + "rank": 19 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 19 } }, + "job_ensures_A_reads": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 19 }, "wp:main": { "total": 1, "valid": 1, - "rank": 20 } }, - "job_post_B_writes": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 12 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 12 } }, - "job_post_B_reads": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 19 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 19 } }, - "job_post_A_reads": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 19 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 19 } }, - "job_post_Events": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "rank": 19 } }, + "job_ensures_Events": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 5, "valid": 5, "rank": 20 }, diff --git a/src/plugins/wp/tests/wp_plugin/flash.c.2.report.json b/src/plugins/wp/tests/wp_plugin/flash.c.2.report.json index e2d2199289ff6b8531bc832c72433cbda0dca578..cd22f13467b2d496800380d03037041750402e62 100644 --- a/src/plugins/wp/tests/wp_plugin/flash.c.2.report.json +++ b/src/plugins/wp/tests/wp_plugin/flash.c.2.report.json @@ -1,29 +1,30 @@ { "wp:global": { "qed": { "total": 6, "valid": 6 }, "wp:main": { "total": 6, "valid": 6 } }, - "wp:functions": { "job": { "job_post_WriteValues": { "qed": { "total": 1, + "wp:functions": { "job": { "job_ensures_WriteValues": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "job_ensures_ReadValues": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_B_writes": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "job_post_ReadValues": { "qed": { "total": 1, + "job_ensures_B_reads": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_A_reads": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "job_post_B_writes": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_B_reads": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_A_reads": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_Events": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "job_ensures_Events": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 6, "valid": 6 }, "wp:main": { "total": 6, diff --git a/src/plugins/wp/tests/wp_plugin/flash.mlw b/src/plugins/wp/tests/wp_plugin/flash.mlw new file mode 100644 index 0000000000000000000000000000000000000000..0034ada0257c4ad689e61ecf2792b81f81681ff4 --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/flash.mlw @@ -0,0 +1,3 @@ +logic const : 'b -> ('a,'b) farray +axiom const_access : forall k:'a,v:'b. const(v)[k] = v + diff --git a/src/plugins/wp/tests/wp_plugin/float_format.i.0.report.json b/src/plugins/wp/tests/wp_plugin/float_format.i.0.report.json index 065d8730e68d2af1d1e0781bf374aeb17f134f0c..2a3ca74e5152ebcd6c9370afa410a213cb6b99b8 100644 --- a/src/plugins/wp/tests/wp_plugin/float_format.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/float_format.i.0.report.json @@ -1,9 +1,9 @@ { "wp:global": { "coq": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "wp:functions": { "output": { "output_post_KO": { "coq": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "wp:functions": { "output": { "output_ensures_KO": { "coq": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "coq": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_plugin/float_format.i.1.report.json b/src/plugins/wp/tests/wp_plugin/float_format.i.1.report.json index 10a449c5b8758c535d754b3b46df0f92aba67c74..1f1c00faadb72419707c193d451c8560cc4d49c8 100644 --- a/src/plugins/wp/tests/wp_plugin/float_format.i.1.report.json +++ b/src/plugins/wp/tests/wp_plugin/float_format.i.1.report.json @@ -1,9 +1,9 @@ { "wp:global": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "wp:functions": { "output": { "output_post_KO": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "wp:functions": { "output": { "output_ensures_KO": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_plugin/float_format.i.2.report.json b/src/plugins/wp/tests/wp_plugin/float_format.i.2.report.json index b2ba13fe0e9545624c766a053030583f6bfa22ee..80aed7d64259207bf03ec54f0bef74316858c086 100644 --- a/src/plugins/wp/tests/wp_plugin/float_format.i.2.report.json +++ b/src/plugins/wp/tests/wp_plugin/float_format.i.2.report.json @@ -1,10 +1,10 @@ { "wp:global": { "why3:alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "wp:functions": { "output": { "output_post_KO": { "why3:alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "wp:functions": { "output": { "output_ensures_KO": { "why3:alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "why3:alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_plugin/float_model.i b/src/plugins/wp/tests/wp_plugin/float_model.i new file mode 100644 index 0000000000000000000000000000000000000000..bef36ee872e1caeed67ad71211630cd9239c7e28 --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/float_model.i @@ -0,0 +1,32 @@ +/* run.config + OPT: -wp-model +real + OPT: -wp-model +float +*/ + +/* run.config_qualif + DONTRUN: +*/ + +//@ predicate P(real x); + +float FD,FF ; +double DD,DF ; + +/*@ + ensures ACSL_R: P( 2.1 ); + ensures ACSL_F: P( 2.1f ); + ensures ACSL_FR: P( (float) 2.1 ); + ensures ACSL_DR: P( (double) 2.1 ); + ensures ACSL_DF: P( (double) 2.1f ); + ensures C_FD: P( FD ); + ensures C_FF: P( FF ); + ensures C_DD: P( DD ); + ensures C_DF: P( DF ); + */ +void job(void) +{ + FD = 2.1 ; + FF = 2.1f ; + DD = 2.1 ; + DF = 2.1f ; +} diff --git a/src/plugins/wp/tests/wp_plugin/float_real.i b/src/plugins/wp/tests/wp_plugin/float_real.i new file mode 100644 index 0000000000000000000000000000000000000000..b2c011c359d13eb9e026361415888ced6235affd --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/float_real.i @@ -0,0 +1,23 @@ +/* run.config + OPT: -wp-model +real + OPT: -wp-model +float +*/ + +/* run.config_qualif + OPT: -wp-model +real + OPT: -wp-model +float +*/ + +// OK with +real, KO with +float + +/*@ + ensures \result <==> (\abs(x-y) < 1e-5) ; +*/ +static int dequal(double const x, double const y) +{ + double tmp = x-y ; + if ( tmp < 1e-5 && tmp > -1e-5 ) + return 1; + else + return 0; +} diff --git a/src/plugins/wp/tests/wp_plugin/float_real.i.0.report.json b/src/plugins/wp/tests/wp_plugin/float_real.i.0.report.json new file mode 100644 index 0000000000000000000000000000000000000000..78c912e04623b9511f9b989807c956e0e777b0ba --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/float_real.i.0.report.json @@ -0,0 +1,14 @@ +{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, + "wp:main": { "total": 1, "valid": 1, "rank": 4 } }, + "wp:functions": { "dequal": { "dequal_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } }, + "wp:section": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } } } } } diff --git a/src/plugins/wp/tests/wp_plugin/float_real.i.1.report.json b/src/plugins/wp/tests/wp_plugin/float_real.i.1.report.json new file mode 100644 index 0000000000000000000000000000000000000000..1cdc9d2ba20526f33e1d312a775df2f16f49b7a0 --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/float_real.i.1.report.json @@ -0,0 +1,10 @@ +{ "wp:global": { "alt-ergo": { "total": 1, "unknown": 1 }, + "wp:main": { "total": 1, "unknown": 1 } }, + "wp:functions": { "dequal": { "dequal_ensures": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "wp:section": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } } } } } diff --git a/src/plugins/wp/tests/wp_plugin/frame.i.0.report.json b/src/plugins/wp/tests/wp_plugin/frame.i.0.report.json index 239c2603e123e4b4fd49da9a364de1b66a3878a3..993d6f800871b136aa491a8594e86226bb0f56c8 100644 --- a/src/plugins/wp/tests/wp_plugin/frame.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/frame.i.0.report.json @@ -1,14 +1,14 @@ { "wp:global": { "alt-ergo": { "total": 4, "unknown": 4 }, "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 6, "valid": 2, "unknown": 4 } }, - "wp:functions": { "local": { "local_post_KO": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "local_post_FRAMED": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "local": { "local_ensures_KO": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "local_ensures_FRAMED": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 1, @@ -16,10 +16,10 @@ "wp:main": { "total": 2, "valid": 1, "unknown": 1 } } }, - "global": { "global_post_KO": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "global": { "global_ensures_KO": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, @@ -30,10 +30,12 @@ "wp:main": { "total": 1, "valid": 1 } }, - "localref_post_KO": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "localref_ensures_KO": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 1, @@ -41,10 +43,10 @@ "wp:main": { "total": 2, "valid": 1, "unknown": 1 } } }, - "alias": { "alias_post_KO": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "alias": { "alias_ensures_KO": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_plugin/init_const.i.0.report.json b/src/plugins/wp/tests/wp_plugin/init_const.i.0.report.json index 5bb2bdf0416fc76cc2710c45263160a27998ad0c..8a6814a1eb58c0ae9410d4affc0ba34ad072deb3 100644 --- a/src/plugins/wp/tests/wp_plugin/init_const.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/init_const.i.0.report.json @@ -1,31 +1,33 @@ { "wp:global": { "alt-ergo": { "total": 2, "unknown": 2 }, "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 4, "valid": 2, "unknown": 2 } }, - "wp:functions": { "fA": { "fA_post_KO": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "wp:functions": { "fA": { "fA_ensures_KO": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } } }, - "fB": { "fB_post_OK": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "fB": { "fB_ensures_OK": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "fC": { "fC_post_KO": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "fC": { "fC_ensures_KO": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } } }, - "fD": { "fD_post_OK": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "fD": { "fD_ensures_OK": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } } } } diff --git a/src/plugins/wp/tests/wp_plugin/init_const_guard.i.0.report.json b/src/plugins/wp/tests/wp_plugin/init_const_guard.i.0.report.json index 36168d14b6d3bf1314aff9a747f654c2ed3e4c51..1af70a2c767b4cb06af11aa877eb5e353fadb726 100644 --- a/src/plugins/wp/tests/wp_plugin/init_const_guard.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/init_const_guard.i.0.report.json @@ -1,26 +1,26 @@ { "wp:global": { "alt-ergo": { "total": 3, "valid": 2, "unknown": 1, - "rank": 5 }, + "rank": 6 }, "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 7, "valid": 6, "unknown": 1, - "rank": 5 } }, - "wp:functions": { "f": { "f_post_Q_NotWrite": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_Q_ReadOnly": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_Pointed_Valid": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, + "rank": 6 } }, + "wp:functions": { "f": { "f_ensures_Q_NotWrite": { "qed": { "total": 1, + "valid": 1 }, "wp:main": { "total": 1, - "valid": 1, - "rank": 5 } }, - "f_post_Const": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "valid": 1 } }, + "f_ensures_Q_ReadOnly": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_Pointed_Valid": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, + "f_ensures_Const": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 5 }, @@ -36,20 +36,20 @@ "unknown": 1 } }, "g_assert_Read": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 5 }, + "rank": 6 }, "wp:main": { "total": 1, "valid": 1, - "rank": 5 } }, - "g_post_P_not_Const": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "rank": 6 } }, + "g_ensures_P_not_Const": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 1, "unknown": 1, - "rank": 5 }, + "rank": 6 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 3, "valid": 2, "unknown": 1, - "rank": 5 } } } } } + "rank": 6 } } } } } diff --git a/src/plugins/wp/tests/wp_plugin/init_extern.i.0.report.json b/src/plugins/wp/tests/wp_plugin/init_extern.i.0.report.json index e1653744eccdb1f9c049ad5611f36bf5e6b5ea7b..f4ea47634b8ba4c26ee71bbea25b3e575dcf5ede 100644 --- a/src/plugins/wp/tests/wp_plugin/init_extern.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/init_extern.i.0.report.json @@ -1,17 +1,18 @@ { "wp:global": { "alt-ergo": { "total": 2, "unknown": 2 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 3, "valid": 1, "unknown": 2 } }, - "wp:functions": { "f": { "f_post_KO_2": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "f_post_KO": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "f_post_OK": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "f": { "f_ensures_KO_2": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "f_ensures_KO": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "f_ensures_OK": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "unknown": 2 }, "qed": { "total": 1, "valid": 1 }, diff --git a/src/plugins/wp/tests/wp_plugin/initarr.i.0.report.json b/src/plugins/wp/tests/wp_plugin/initarr.i.0.report.json index de547fd6b4cf5a3df3246978cd16e306af11b9d1..a8c942a4d5cdfc7760f313a9bf0607cad5f558e5 100644 --- a/src/plugins/wp/tests/wp_plugin/initarr.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/initarr.i.0.report.json @@ -1,20 +1,20 @@ -{ "wp:global": { "alt-ergo": { "total": 2, "valid": 2, "rank": 10 }, - "wp:main": { "total": 2, "valid": 2, "rank": 10 } }, - "wp:functions": { "job": { "job_post_ALT": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 7 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 7 } }, - "job_post_SEP": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 10 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 10 } }, +{ "wp:global": { "alt-ergo": { "total": 2, "valid": 2, "rank": 11 }, + "wp:main": { "total": 2, "valid": 2, "rank": 11 } }, + "wp:functions": { "job": { "job_ensures_ALT": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 8 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 8 } }, + "job_ensures_SEP": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 11 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 11 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 10 }, + "rank": 11 }, "wp:main": { "total": 2, "valid": 2, - "rank": 10 } } } } } + "rank": 11 } } } } } diff --git a/src/plugins/wp/tests/wp_plugin/injector.c.0.report.json b/src/plugins/wp/tests/wp_plugin/injector.c.0.report.json index 46f939a9b6a76b4e0fa73148789b118d834f3e4b..99b5f8d49875fb80633b93b63962ee3e3c29daab 100644 --- a/src/plugins/wp/tests/wp_plugin/injector.c.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/injector.c.0.report.json @@ -1,61 +1,66 @@ { "wp:global": { "qed": { "total": 13, "valid": 13 }, "wp:main": { "total": 13, "valid": 13 } }, - "wp:functions": { "f": { "specialization_g_pre_at_f_stmt_6": { "qed": - { "total": 1, + "wp:functions": { "f": { "g_requires_2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "g_requires": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_SUCCESS_ensures_qed_ok_4": { "qed": { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "specialization_g_pre_at_f_stmt_1": { "qed": - { "total": 1, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_SUCCESS_ensures_qed_ok_3": { "qed": { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "f_SUCCESS_post_qed_ok_4": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_SUCCESS_post_qed_ok_3": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_SUCCESS_post_qed_ok_2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_SUCCESS_post_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_SND_FAIL_post_qed_ok_4": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_SND_FAIL_post_qed_ok_3": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_SND_FAIL_post_qed_ok_2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_SND_FAIL_post_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_FST_FAIL_post_qed_ok_3": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_FST_FAIL_post_qed_ok_2": { "qed": { "total": 1, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_SUCCESS_ensures_qed_ok_2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_SUCCESS_ensures_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "f_FST_FAIL_post_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "f_SND_FAIL_ensures_qed_ok_4": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_SND_FAIL_ensures_qed_ok_3": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_SND_FAIL_ensures_qed_ok_2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_SND_FAIL_ensures_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_FST_FAIL_ensures_qed_ok_3": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_FST_FAIL_ensures_qed_ok_2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_FST_FAIL_ensures_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 13, "valid": 13 }, "wp:main": { "total": 13, diff --git a/src/plugins/wp/tests/wp_plugin/injector.c.1.report.json b/src/plugins/wp/tests/wp_plugin/injector.c.1.report.json index 14d1b1583505defd7ca97fdec940d474c88df079..11e14caec9175fbcf551491b247fd494e7a06f69 100644 --- a/src/plugins/wp/tests/wp_plugin/injector.c.1.report.json +++ b/src/plugins/wp/tests/wp_plugin/injector.c.1.report.json @@ -1,21 +1,21 @@ { "wp:global": { "alt-ergo": { "total": 4, "unknown": 4 }, "wp:main": { "total": 4, "unknown": 4 } }, - "wp:functions": { "f": { "f_ko_1_post_qed_ko_3": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "f_ko_1_post_qed_ko_2": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "f_ko_1_post_qed_ko": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "f_ko_post_qed_ko": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "wp:functions": { "f": { "f_ko_1_ensures_qed_ko_3": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "f_ko_1_ensures_qed_ko_2": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "f_ko_1_ensures_qed_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "f_ko_ensures_qed_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 4, "unknown": 4 }, "wp:main": { "total": 4, diff --git a/src/plugins/wp/tests/wp_plugin/loop.i.0.report.json b/src/plugins/wp/tests/wp_plugin/loop.i.0.report.json index 6efb013fc8c1784279234cd4dd7f896577a77ab8..90c05cb3581e0b536eaae2101da836538cada344 100644 --- a/src/plugins/wp/tests/wp_plugin/loop.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/loop.i.0.report.json @@ -3,40 +3,43 @@ "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 9, "valid": 8, "unknown": 1, "rank": 22 } }, - "wp:functions": { "init": { "init_loop_inv_qed_ok_2": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 8 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 8 } }, - "init_loop_inv_qed_ok": { "alt-ergo": { "total": 2, + "wp:functions": { "init": { "init_loop_invariant_qed_ok_2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 9 }, + "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, "valid": 2, - "rank": 5 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 5 } }, - "init_assign": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "init_loop_assign": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 22 }, - "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 3, - "valid": 3, - "rank": 22 } }, - "init_post_qed_ok": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 7 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 7 } }, + "rank": 9 } }, + "init_loop_invariant_qed_ok": { "alt-ergo": + { "total": 2, + "valid": 2, + "rank": 5 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 5 } }, + "init_assigns": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "init_loop_assigns": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 22 }, + "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 3, + "valid": 3, + "rank": 22 } }, + "init_ensures_qed_ok": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 8 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 8 } }, "wp:section": { "alt-ergo": { "total": 6, "valid": 5, "unknown": 1, diff --git a/src/plugins/wp/tests/wp_plugin/loopcurrent.i.0.report.json b/src/plugins/wp/tests/wp_plugin/loopcurrent.i.0.report.json index b40be97730851728a5b6fcdaa218e34354e2ea47..a4b1808ed9992cba37a7296ea0dc3c6e31d556e3 100644 --- a/src/plugins/wp/tests/wp_plugin/loopcurrent.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/loopcurrent.i.0.report.json @@ -1,12 +1,13 @@ { "wp:global": { "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 4, "valid": 4 } }, - "wp:functions": { "f": { "f_loop_inv_2": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "f_loop_inv": { "qed": { "total": 2, "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, + "wp:functions": { "f": { "f_loop_invariant_2": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "f_loop_invariant": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, "wp:section": { "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 4, "valid": 4 } } } } } diff --git a/src/plugins/wp/tests/wp_plugin/loopentry.i.0.report.json b/src/plugins/wp/tests/wp_plugin/loopentry.i.0.report.json index b40be97730851728a5b6fcdaa218e34354e2ea47..a4b1808ed9992cba37a7296ea0dc3c6e31d556e3 100644 --- a/src/plugins/wp/tests/wp_plugin/loopentry.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/loopentry.i.0.report.json @@ -1,12 +1,13 @@ { "wp:global": { "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 4, "valid": 4 } }, - "wp:functions": { "f": { "f_loop_inv_2": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "f_loop_inv": { "qed": { "total": 2, "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, + "wp:functions": { "f": { "f_loop_invariant_2": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "f_loop_invariant": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, "wp:section": { "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 4, "valid": 4 } } } } } diff --git a/src/plugins/wp/tests/wp_plugin/mask.i.0.report.json b/src/plugins/wp/tests/wp_plugin/mask.i.0.report.json index c26b682a42f6d29b0f7a90feb45381e43f5542ed..b6fbb01b2b7c160c1fa6a3c1e53cb7c5cbb51084 100644 --- a/src/plugins/wp/tests/wp_plugin/mask.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/mask.i.0.report.json @@ -1,13 +1,13 @@ { "wp:global": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "wp:functions": { "compute": { "compute_post_B": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "compute_post_A": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "compute": { "compute_ensures_B": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "compute_ensures_A": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, diff --git a/src/plugins/wp/tests/wp_plugin/oracle/float_model.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/float_model.0.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..a711e372d35c558c31793e43e593b585c74d4731 --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/oracle/float_model.0.res.oracle @@ -0,0 +1,58 @@ +# frama-c -wp -wp-model 'Typed (Real)' [...] +[kernel] Parsing tests/wp_plugin/float_model.i (no preprocessing) +[kernel] tests/wp_plugin/float_model.i:10: Warning: + parsing obsolete ACSL construct 'logic declaration'. 'an axiomatic block' should be used instead. +[kernel:parser:decimal-float] tests/wp_plugin/float_model.i:28: Warning: + Floating-point constant 2.1 is not represented exactly. Will use 0x1.0cccccccccccdp1. + (warn-once: no further messages from category 'parser:decimal-float' will be emitted) +[wp] Running WP plugin... +[wp] Loading driver 'share/wp.driver' +[wp] Warning: Missing RTE guards +------------------------------------------------------------ + Function job +------------------------------------------------------------ + +Goal Post-condition 'ACSL_R' in 'job': +Prove: P_P((21.0/10)). + +------------------------------------------------------------ + +Goal Post-condition 'ACSL_F' in 'job': +Prove: P_P((21.0/10)). + +------------------------------------------------------------ + +Goal Post-condition 'ACSL_FR' in 'job': +Prove: P_P((21.0/10)). + +------------------------------------------------------------ + +Goal Post-condition 'ACSL_DR' in 'job': +Prove: P_P((21.0/10)). + +------------------------------------------------------------ + +Goal Post-condition 'ACSL_DF' in 'job': +Prove: P_P((21.0/10)). + +------------------------------------------------------------ + +Goal Post-condition 'C_FD' in 'job': +Prove: P_P((21.0/10)). + +------------------------------------------------------------ + +Goal Post-condition 'C_FF' in 'job': +Prove: P_P((21.0/10)). + +------------------------------------------------------------ + +Goal Post-condition 'C_DD' in 'job': +Prove: P_P((21.0/10)). + +------------------------------------------------------------ + +Goal Post-condition 'C_DF' in 'job': +Prove: P_P((21.0/10)). + +------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle/float_model.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/float_model.1.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..55eefc41f89dc07ca8ef43882bed889ce252e363 --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/oracle/float_model.1.res.oracle @@ -0,0 +1,58 @@ +# frama-c -wp -wp-model 'Typed' [...] +[kernel] Parsing tests/wp_plugin/float_model.i (no preprocessing) +[kernel] tests/wp_plugin/float_model.i:10: Warning: + parsing obsolete ACSL construct 'logic declaration'. 'an axiomatic block' should be used instead. +[kernel:parser:decimal-float] tests/wp_plugin/float_model.i:28: Warning: + Floating-point constant 2.1 is not represented exactly. Will use 0x1.0cccccccccccdp1. + (warn-once: no further messages from category 'parser:decimal-float' will be emitted) +[wp] Running WP plugin... +[wp] Loading driver 'share/wp.driver' +[wp] Warning: Missing RTE guards +------------------------------------------------------------ + Function job +------------------------------------------------------------ + +Goal Post-condition 'ACSL_R' in 'job': +Prove: P_P((21.0/10)). + +------------------------------------------------------------ + +Goal Post-condition 'ACSL_F' in 'job': +Prove: P_P((4404019.0/2097152)). + +------------------------------------------------------------ + +Goal Post-condition 'ACSL_FR' in 'job': +Prove: P_P((4404019.0/2097152)). + +------------------------------------------------------------ + +Goal Post-condition 'ACSL_DR' in 'job': +Prove: P_P((4728779608739021.0/2251799813685248)). + +------------------------------------------------------------ + +Goal Post-condition 'ACSL_DF' in 'job': +Prove: P_P((4404019.0/2097152)). + +------------------------------------------------------------ + +Goal Post-condition 'C_FD' in 'job': +Prove: P_P((4404019.0/2097152)). + +------------------------------------------------------------ + +Goal Post-condition 'C_FF' in 'job': +Prove: P_P((4404019.0/2097152)). + +------------------------------------------------------------ + +Goal Post-condition 'C_DD' in 'job': +Prove: P_P((4728779608739021.0/2251799813685248)). + +------------------------------------------------------------ + +Goal Post-condition 'C_DF' in 'job': +Prove: P_P((4404019.0/2097152)). + +------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle/float_real.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/float_real.0.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..7e9d87ee00d3dd9b55bebc69d8dca822bcc85c19 --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/oracle/float_real.0.res.oracle @@ -0,0 +1,26 @@ +# frama-c -wp -wp-model 'Typed (Real)' [...] +[kernel] Parsing tests/wp_plugin/float_real.i (no preprocessing) +[kernel:parser:decimal-float] tests/wp_plugin/float_real.i:19: Warning: + Floating-point constant 1e-5 is not represented exactly. Will use 0x1.4f8b588e368f1p-17. + (warn-once: no further messages from category 'parser:decimal-float' will be emitted) +[wp] Running WP plugin... +[wp] Loading driver 'share/wp.driver' +[wp] Warning: Missing RTE guards +------------------------------------------------------------ + Function dequal +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_plugin/float_real.i, line 14) in 'dequal': +Assume { + Type: is_sint32(dequal_0). + If x < ((1.0/100000) + y) + Then { + If y < ((1.0/100000) + x) + Then { (* Return *) Have: dequal_0 = 1. } + Else { (* Return *) Have: dequal_0 = 0. } + } + Else { (* Return *) Have: dequal_0 = 0. } +} +Prove: (abs_real(x - y) < (1.0/100000)) <-> (dequal_0 != 0). + +------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle/float_real.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/float_real.1.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..bd279cccc874f2274d8dfb05d4b76eb7d82e8dac --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/oracle/float_real.1.res.oracle @@ -0,0 +1,28 @@ +# frama-c -wp -wp-model 'Typed' [...] +[kernel] Parsing tests/wp_plugin/float_real.i (no preprocessing) +[kernel:parser:decimal-float] tests/wp_plugin/float_real.i:19: Warning: + Floating-point constant 1e-5 is not represented exactly. Will use 0x1.4f8b588e368f1p-17. + (warn-once: no further messages from category 'parser:decimal-float' will be emitted) +[wp] Running WP plugin... +[wp] Loading driver 'share/wp.driver' +[wp] Warning: Missing RTE guards +------------------------------------------------------------ + Function dequal +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_plugin/float_real.i, line 14) in 'dequal': +Assume { + Type: is_sint32(dequal_0). + If lt_f64(add_f64(x, neg_f64(y)), + to_f64((5902958103587057.0/590295810358705651712))) + Then { + If lt_f64(to_f64((-5902958103587057.0/590295810358705651712)), + add_f64(x, neg_f64(y))) + Then { (* Return *) Have: dequal_0 = 1. } + Else { (* Return *) Have: dequal_0 = 0. } + } + Else { (* Return *) Have: dequal_0 = 0. } +} +Prove: (abs_real(of_f64(x) - of_f64(y)) < (1.0/100000)) <-> (dequal_0 != 0). + +------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle/model.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/model.res.oracle index e4895b6ff2085b7d10103a85a0dbccf3fdc42cbc..020f948d3ecbda05e4fd61ae4029351442ec5c5f 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/model.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/model.res.oracle @@ -7,13 +7,13 @@ [wp] Warning: Missing RTE guards [wp] 1 goal scheduled --------------------------------------------- ---- File 'typed/f_post.ergo' +--- File 'typed/f_ensures.ergo' --------------------------------------------- (* ---------------------------------------------------------- *) (* --- Post-condition (file tests/wp_plugin/model.i, line 13) in 'f' --- *) (* ---------------------------------------------------------- *) -goal f_post: +goal f_ensures: forall i : int. forall t : (addr,int) farray. forall a : addr. @@ -59,13 +59,13 @@ Prove: P_P(x). [wp] Running WP plugin... [wp] 2 goals scheduled --------------------------------------------- ---- File 'typed_ref/f_post.ergo' +--- File 'typed_ref/f_ensures.ergo' --------------------------------------------- (* ---------------------------------------------------------- *) (* --- Post-condition (file tests/wp_plugin/model.i, line 13) in 'f' --- *) (* ---------------------------------------------------------- *) -goal f_post: +goal f_ensures: forall i : int. forall t : (addr,int) farray. forall a : addr. @@ -94,13 +94,13 @@ function shift_sint32(p:addr, k:int) : addr = shift(p, k) logic P_P : int -> prop --------------------------------------------- ---- File 'typed/f_post.ergo' +--- File 'typed/f_ensures.ergo' --------------------------------------------- (* ---------------------------------------------------------- *) (* --- Post-condition (file tests/wp_plugin/model.i, line 13) in 'f' --- *) (* ---------------------------------------------------------- *) -goal f_post: +goal f_ensures: forall i : int. forall t : (addr,int) farray. forall a : addr. diff --git a/src/plugins/wp/tests/wp_plugin/oracle/rte.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/rte.0.res.oracle index 62e3a1148bd59a3258e2d20b4fbc23e2892bfb13..00dfe9f2904865a995c497204fcbe1dee0d229d1 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/rte.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/rte.0.res.oracle @@ -18,14 +18,14 @@ Option -wp-bool-range incompatiable with RTE (ignored) [wp] tests/wp_plugin/rte.i:34: Warning: Option -wp-bool-range incompatiable with RTE (ignored) -[wp] Goal typed_job_post : not tried +[wp] Goal typed_job_ensures : not tried [wp] Goal typed_job_assert_rte_mem_access : not tried [wp] Goal typed_job_assert_rte_mem_access_2 : not tried [wp] Goal typed_job_assert_rte_signed_overflow : not tried [wp] Goal typed_job_assert_rte_signed_overflow_2 : not tried [wp] Goal typed_job_assert_rte_mem_access_3 : not tried -[wp] Goal typed_job2_post : not tried -[wp] Goal typed_job3_post : not tried +[wp] Goal typed_job2_ensures : not tried +[wp] Goal typed_job3_ensures : not tried [wp] Goal typed_job3_assert_rte_bool_value : not tried /* Generated by Frama-C */ /*@ axiomatic Obs { diff --git a/src/plugins/wp/tests/wp_plugin/oracle/rte.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/rte.1.res.oracle index 374febf67ef7f9ac074f99bc77cc5b7c6752ce58..6468854c8f02b824a96b9c98a8e5475e265b11d2 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/rte.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/rte.1.res.oracle @@ -11,12 +11,12 @@ [wp:rte] function job3: generate rte for memory access [wp:rte] function job3: generate rte for division by zero [rte] annotating function job3 -[wp] Goal typed_job_post : not tried +[wp] Goal typed_job_ensures : not tried [wp] Goal typed_job_assert_rte_mem_access : not tried [wp] Goal typed_job_assert_rte_mem_access_2 : not tried [wp] Goal typed_job_assert_rte_mem_access_3 : not tried -[wp] Goal typed_job2_post : not tried -[wp] Goal typed_job3_post : not tried +[wp] Goal typed_job2_ensures : not tried +[wp] Goal typed_job3_ensures : not tried [wp] Goal typed_job3_assert_rte_bool_value : not tried /* Generated by Frama-C */ /*@ axiomatic Obs { diff --git a/src/plugins/wp/tests/wp_plugin/oracle/rte.2.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/rte.2.res.oracle index 200d47c9730cbfcf6a813961a0d4c00ad29ae977..435bd15de2dd4548bf68167a5c121096acbf0443 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/rte.2.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/rte.2.res.oracle @@ -17,16 +17,16 @@ [wp:rte] function job3: generate rte for signed overflow [wp:rte] function job3: generate rte for unsigned overflow [rte] annotating function job3 -[wp] Goal typed_job_post : not tried +[wp] Goal typed_job_ensures : not tried [wp] Goal typed_job_assert_rte_mem_access : not tried [wp] Goal typed_job_assert_rte_mem_access_2 : not tried [wp] Goal typed_job_assert_rte_signed_overflow : not tried [wp] Goal typed_job_assert_rte_signed_overflow_2 : not tried [wp] Goal typed_job_assert_rte_mem_access_3 : not tried -[wp] Goal typed_job2_post : not tried +[wp] Goal typed_job2_ensures : not tried [wp] Goal typed_job2_assert_rte_unsigned_overflow : not tried [wp] Goal typed_job2_assert_rte_unsigned_overflow_2 : not tried -[wp] Goal typed_job3_post : not tried +[wp] Goal typed_job3_ensures : not tried [wp] Goal typed_job3_assert_rte_bool_value : not tried /* Generated by Frama-C */ /*@ axiomatic Obs { diff --git a/src/plugins/wp/tests/wp_plugin/oracle/rte.3.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/rte.3.res.oracle index 96369633975b7b27cd790672bb88d1710a4a81e2..0f7bf5b438530ec71343d9ad13f7699f140ff179 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/rte.3.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/rte.3.res.oracle @@ -17,14 +17,14 @@ [wp:rte] function job3: generate rte for division by zero [wp:rte] function job3: generate rte for signed overflow [rte] annotating function job3 -[wp] Goal typed_nat_job_post : not tried +[wp] Goal typed_nat_job_ensures : not tried [wp] Goal typed_nat_job_assert_rte_mem_access : not tried [wp] Goal typed_nat_job_assert_rte_mem_access_2 : not tried [wp] Goal typed_nat_job_assert_rte_signed_overflow : not tried [wp] Goal typed_nat_job_assert_rte_signed_overflow_2 : not tried [wp] Goal typed_nat_job_assert_rte_mem_access_3 : not tried -[wp] Goal typed_nat_job2_post : not tried -[wp] Goal typed_nat_job3_post : not tried +[wp] Goal typed_nat_job2_ensures : not tried +[wp] Goal typed_nat_job3_ensures : not tried [wp] Goal typed_nat_job3_assert_rte_bool_value : not tried /* Generated by Frama-C */ /*@ axiomatic Obs { diff --git a/src/plugins/wp/tests/wp_plugin/oracle/rte.4.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/rte.4.res.oracle index c02378921b3db46b641883a0f71d05aede70e598..f2b78e1cab7eadf8dd166e940fe39f17721e4a3c 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/rte.4.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/rte.4.res.oracle @@ -19,16 +19,16 @@ [wp:rte] function job3: generate rte for signed overflow [wp:rte] function job3: generate rte for unsigned overflow [rte] annotating function job3 -[wp] Goal typed_nat_job_post : not tried +[wp] Goal typed_nat_job_ensures : not tried [wp] Goal typed_nat_job_assert_rte_mem_access : not tried [wp] Goal typed_nat_job_assert_rte_mem_access_2 : not tried [wp] Goal typed_nat_job_assert_rte_signed_overflow : not tried [wp] Goal typed_nat_job_assert_rte_signed_overflow_2 : not tried [wp] Goal typed_nat_job_assert_rte_mem_access_3 : not tried -[wp] Goal typed_nat_job2_post : not tried +[wp] Goal typed_nat_job2_ensures : not tried [wp] Goal typed_nat_job2_assert_rte_unsigned_overflow : not tried [wp] Goal typed_nat_job2_assert_rte_unsigned_overflow_2 : not tried -[wp] Goal typed_nat_job3_post : not tried +[wp] Goal typed_nat_job3_ensures : not tried [wp] Goal typed_nat_job3_assert_rte_bool_value : not tried /* Generated by Frama-C */ /*@ axiomatic Obs { diff --git a/src/plugins/wp/tests/wp_plugin/oracle/rte.5.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/rte.5.res.oracle index cf241996746da52a0c09d24fc474eebb95833238..f171879c60095d87502ac5e2b4cfaf1d27783e91 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/rte.5.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/rte.5.res.oracle @@ -12,6 +12,6 @@ [wp:rte] function job3: missing rte for memory access [wp:rte] function job3: missing rte for division by zero [wp:rte] function job3: missing rte for signed overflow -[wp] Goal typed_nat_job_post : not tried -[wp] Goal typed_nat_job2_post : not tried -[wp] Goal typed_nat_job3_post : not tried +[wp] Goal typed_nat_job_ensures : not tried +[wp] Goal typed_nat_job2_ensures : not tried +[wp] Goal typed_nat_job3_ensures : not tried diff --git a/src/plugins/wp/tests/wp_plugin/oracle/rte.6.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/rte.6.res.oracle index 0bd8710d2eebd5cc2fd12ceb51ecd5d461707d88..892f3d6443df55894205cbbb0aefde7cd301ec57 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/rte.6.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/rte.6.res.oracle @@ -16,9 +16,9 @@ [wp:rte] function job3: generate rte for signed overflow [rte] annotating function job3 [wp] Warning: Missing RTE guards -[wp] Goal typed_nat_job_post : not tried +[wp] Goal typed_nat_job_ensures : not tried [wp] Goal typed_nat_job_assert_rte_signed_overflow : not tried [wp] Goal typed_nat_job_assert_rte_signed_overflow_2 : not tried -[wp] Goal typed_nat_job2_post : not tried -[wp] Goal typed_nat_job3_post : not tried +[wp] Goal typed_nat_job2_ensures : not tried +[wp] Goal typed_nat_job3_ensures : not tried [wp] Goal typed_nat_job3_assert_rte_bool_value : not tried diff --git a/src/plugins/wp/tests/wp_plugin/oracle/stmt.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/stmt.res.oracle index 26fb0eb1308e23b0df7b48901f24934b2563c490..9b3f58137ab19c66fa595e002fc86b4c5e998843 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/stmt.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/stmt.res.oracle @@ -2,15 +2,15 @@ [kernel] Parsing tests/wp_plugin/stmt.c (with preprocessing) [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' -[wp] [CFG] Goal f_stmt_exit : Valid (Unreachable) -[wp] [CFG] Goal g_stmt_exit : Valid (Unreachable) -[wp] [CFG] Goal g_stmt_assign : Valid (Unreachable) -[wp] [CFG] Goal g_stmt_post : Valid (Unreachable) -[wp] [CFG] Goal g_stmt_exit : Valid (Unreachable) -[wp] [CFG] Goal h_stmt_exit : Valid (Unreachable) -[wp] [CFG] Goal h_stmt_assign : Valid (Unreachable) -[wp] [CFG] Goal h_stmt_post : Valid (Unreachable) -[wp] [CFG] Goal h_stmt_exit : Valid (Unreachable) +[wp] [CFG] Goal f_exits : Valid (Unreachable) +[wp] [CFG] Goal g_exits : Valid (Unreachable) +[wp] [CFG] Goal g_assigns : Valid (Unreachable) +[wp] [CFG] Goal g_ensures : Valid (Unreachable) +[wp] [CFG] Goal g_exits : Valid (Unreachable) +[wp] [CFG] Goal h_exits : Valid (Unreachable) +[wp] [CFG] Goal h_assigns : Valid (Unreachable) +[wp] [CFG] Goal h_ensures : Valid (Unreachable) +[wp] [CFG] Goal h_exits : Valid (Unreachable) [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_plugin/oracle/unfold_assigns.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/unfold_assigns.0.res.oracle index 4d7fcca6dd0af490ee9c9e908e7e1ccda32129a1..562b4a5e1cf94fc4de3fe2fbc20a460ffff3e85b 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/unfold_assigns.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/unfold_assigns.0.res.oracle @@ -75,3 +75,73 @@ Call Effect at line 30 Prove: true. ------------------------------------------------------------ +------------------------------------------------------------ + Function USE_ASSIGN_UNFOLD_KO +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_plugin/unfold_assigns.i, line 48) in 'USE_ASSIGN_UNFOLD_KO': +Let a = Load_S1_S(q, Mint_0). +Let a_1 = Load_S1_S(q, havoc(Mint_undef_0, Mint_0, p, 2)). +Assume { + Type: IsS1_S(a) /\ IsS1_S(a_1). + (* Goal *) + When: separated(p, 2, q, 2). + (* Heap *) + Have: (region(p.base) <= 0) /\ (region(q.base) <= 0) /\ linked(Malloc_0). +} +Prove: EqS1_S(a_1, a). + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_plugin/unfold_assigns.i, line 49) in 'USE_ASSIGN_UNFOLD_KO': +Call Effect at line 53 +Assume { + (* Goal *) + When: !invalid(Malloc_0, p, 2). + (* Heap *) + Have: (region(p.base) <= 0) /\ (region(q.base) <= 0) /\ linked(Malloc_0). +} +Prove: false. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_plugin/unfold_assigns.i, line 49) in 'USE_ASSIGN_UNFOLD_KO': +Call Effect at line 53 +Assume { + (* Goal *) + When: !invalid(Malloc_0, p, 2). + (* Heap *) + Have: (region(p.base) <= 0) /\ (region(q.base) <= 0) /\ linked(Malloc_0). +} +Prove: false. + +------------------------------------------------------------ +------------------------------------------------------------ + Function USE_ASSIGN_UNFOLD_OK +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_plugin/unfold_assigns.i, line 39) in 'USE_ASSIGN_UNFOLD_OK': +Let a = Load_S1_S(q, Mint_0). +Let a_1 = Load_S1_S(q, havoc(Mint_undef_0, Mint_0, p, 2)). +Assume { + Type: IsS1_S(a) /\ IsS1_S(a_1). + (* Goal *) + When: separated(p, 2, q, 2). + (* Heap *) + Have: (region(p.base) <= 0) /\ (region(q.base) <= 0) /\ linked(Malloc_0). +} +Prove: EqS1_S(a_1, a). + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_plugin/unfold_assigns.i, line 40) in 'USE_ASSIGN_UNFOLD_OK': +Call Effect at line 44 +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_plugin/unfold_assigns.i, line 40) in 'USE_ASSIGN_UNFOLD_OK': +Call Effect at line 44 +Prove: true. + +------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle/unfold_assigns.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/unfold_assigns.1.res.oracle index f4621effcb5bb8ca8d375a4465554ec20f05bb1c..b4b3786d454804de4c7b204358f23839982a9fd0 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/unfold_assigns.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/unfold_assigns.1.res.oracle @@ -63,3 +63,61 @@ Call Effect at line 30 Prove: true. ------------------------------------------------------------ +------------------------------------------------------------ + Function USE_ASSIGN_UNFOLD_KO +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_plugin/unfold_assigns.i, line 48) in 'USE_ASSIGN_UNFOLD_KO': +Let a = Load_S1_S(q, Mint_0). +Let a_1 = Load_S1_S(q, havoc(Mint_undef_0, Mint_0, p, 2)). +Assume { + Type: IsS1_S(a) /\ IsS1_S(a_1). + (* Goal *) + When: separated(p, 2, q, 2). + (* Heap *) + Have: (region(p.base) <= 0) /\ (region(q.base) <= 0) /\ linked(Malloc_0). +} +Prove: EqS1_S(a_1, a). + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_plugin/unfold_assigns.i, line 49) in 'USE_ASSIGN_UNFOLD_KO': +Call Effect at line 53 +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_plugin/unfold_assigns.i, line 49) in 'USE_ASSIGN_UNFOLD_KO': +Call Effect at line 53 +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function USE_ASSIGN_UNFOLD_OK +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_plugin/unfold_assigns.i, line 39) in 'USE_ASSIGN_UNFOLD_OK': +Let a = Load_S1_S(q, Mint_0). +Let a_1 = Load_S1_S(q, havoc(Mint_undef_0, Mint_0, p, 2)). +Assume { + Type: IsS1_S(a) /\ IsS1_S(a_1). + (* Goal *) + When: separated(p, 2, q, 2). + (* Heap *) + Have: (region(p.base) <= 0) /\ (region(q.base) <= 0) /\ linked(Malloc_0). +} +Prove: EqS1_S(a_1, a). + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_plugin/unfold_assigns.i, line 40) in 'USE_ASSIGN_UNFOLD_OK': +Call Effect at line 44 +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_plugin/unfold_assigns.i, line 40) in 'USE_ASSIGN_UNFOLD_OK': +Call Effect at line 44 +Prove: true. + +------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle/unroll.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/unroll.res.oracle index 8d5a5a6770c0b497d5a7918fbe3d00673793a296..77e0cc1a55cb4eb7c18dd43d751316168bfc3385 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/unroll.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/unroll.res.oracle @@ -6,7 +6,7 @@ [wp] tests/wp_plugin/unroll.i:20: Warning: Missing assigns clause (assigns 'everything' instead) [wp] 1 goal scheduled -[wp] [Tactical] Goal typed_unrolled_loop_post_zero : Valid +[wp] [Tactical] Goal typed_unrolled_loop_ensures_zero : Valid [wp] Proved goals: 1 / 1 Qed: 0 Script: 1 diff --git a/src/plugins/wp/tests/wp_plugin/oracle/unsigned.err.oracle b/src/plugins/wp/tests/wp_plugin/oracle/unsigned.err.oracle new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/plugins/wp/tests/wp_plugin/oracle/unsigned.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/unsigned.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..e7238623044f48af8abeae9895e9a68e455001b3 --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/oracle/unsigned.res.oracle @@ -0,0 +1,18 @@ +# frama-c -wp [...] +[kernel] Parsing tests/wp_plugin/unsigned.i (no preprocessing) +[wp] Running WP plugin... +[wp] Loading driver 'share/wp.driver' +[wp] 1 goal scheduled +[wp] [Tactical] Goal typed_lemma_U32 : Valid +[wp] Proved goals: 1 / 1 + Qed: 0 + Script: 1 +------------------------------------------------------------ + Global +------------------------------------------------------------ + +Lemma U32: +Prove: (is_uint32 x_0) -> ((land 4294967295 x_0)=x_0) +Prover Tactical returns Valid + +------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.0.res.oracle index 73c826cc4aaee140fd1f5d17f2b9fb6a130f2af1..1e817d3077d7487693e557b8bf7f1a0eef442725 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.0.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Alt-Ergo] Goal typed_abs_abs_post : Valid +[wp] [Alt-Ergo] Goal typed_abs_abs_ensures : Valid [wp] Proved goals: 1 / 1 Qed: 0 Alt-Ergo: 1 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.1.res.oracle index 550fd580113eb35c870f99aa7b587150385abc78..da2e3b662c963251c7f6ac368a2714607b8ec0e6 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.1.res.oracle @@ -4,8 +4,8 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Coq] Goal typed_abs_abs_post : Saved script -[wp] [Coq] Goal typed_abs_abs_post : Valid +[wp] [Coq] Goal typed_abs_abs_ensures : Saved script +[wp] [Coq] Goal typed_abs_abs_ensures : Valid [wp] Proved goals: 1 / 1 Qed: 0 Coq: 1 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.2.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.2.res.oracle index 6e07f21393a348fdad690c8d460a82006f7a38a2..45650ee45adf5e7a651050fc1fe87b9707e005a0 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.2.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.2.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [alt-ergo] Goal typed_abs_abs_post : Valid +[wp] [alt-ergo] Goal typed_abs_abs_ensures : Valid [wp] Proved goals: 1 / 1 Qed: 0 alt-ergo: 1 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/asm.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/asm.res.oracle index b59e4faa7521d1ba61dd5a788b4f4ad052ba83c7..07c476c9ce818006974d6ddf657ad7642b753f66 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/asm.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/asm.res.oracle @@ -6,7 +6,7 @@ [wp] 3 goals scheduled [wp] [Qed] Goal typed_main_assert_OK : Valid [wp] [Alt-Ergo] Goal typed_main_assert_KO : Unknown -[wp] [Alt-Ergo] Goal typed_main_stmt_assign : Unknown +[wp] [Alt-Ergo] Goal typed_main_assigns : Unknown [wp] Proved goals: 1 / 3 Qed: 1 Alt-Ergo: 0 (unknown: 2) diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.0.res.oracle index b2cf1f74ad09c98dcbaf3dd2fde40af3a49d9b03..606944d6c95ef7f41701f7baf4198e97d50990d0 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.0.res.oracle @@ -4,13 +4,13 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 7 goals scheduled -[wp] [Alt-Ergo] Goal typed_band_bool_false_post : Unknown -[wp] [Qed] Goal typed_band_bool_true_post : Valid -[wp] [Alt-Ergo] Goal typed_bor_bool_false_post : Unknown -[wp] [Alt-Ergo] Goal typed_bor_bool_true_post : Valid -[wp] [Alt-Ergo] Goal typed_bxor_bool_false_post : Unknown -[wp] [Qed] Goal typed_bxor_bool_true_post : Valid -[wp] [Alt-Ergo] Goal typed_job_post : Unknown +[wp] [Alt-Ergo] Goal typed_band_bool_false_ensures : Unknown +[wp] [Qed] Goal typed_band_bool_true_ensures : Valid +[wp] [Alt-Ergo] Goal typed_bor_bool_false_ensures : Unknown +[wp] [Alt-Ergo] Goal typed_bor_bool_true_ensures : Valid +[wp] [Alt-Ergo] Goal typed_bxor_bool_false_ensures : Unknown +[wp] [Qed] Goal typed_bxor_bool_true_ensures : Valid +[wp] [Alt-Ergo] Goal typed_job_ensures : Unknown [wp] Proved goals: 3 / 7 Qed: 2 Alt-Ergo: 1 (unknown: 4) diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.1.res.oracle index a6b16bfedbd049b2da448bce1fa5c59a00d89009..6bcbed6d8bc5e7a4504e35264367d7194cb802e2 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.1.res.oracle @@ -4,13 +4,13 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 7 goals scheduled -[wp] [Alt-Ergo] Goal typed_band_bool_false_post : Valid -[wp] [Qed] Goal typed_band_bool_true_post : Valid -[wp] [Alt-Ergo] Goal typed_bor_bool_false_post : Valid -[wp] [Alt-Ergo] Goal typed_bor_bool_true_post : Valid -[wp] [Alt-Ergo] Goal typed_bxor_bool_false_post : Valid -[wp] [Qed] Goal typed_bxor_bool_true_post : Valid -[wp] [Alt-Ergo] Goal typed_job_post : Valid +[wp] [Alt-Ergo] Goal typed_band_bool_false_ensures : Valid +[wp] [Qed] Goal typed_band_bool_true_ensures : Valid +[wp] [Alt-Ergo] Goal typed_bor_bool_false_ensures : Valid +[wp] [Alt-Ergo] Goal typed_bor_bool_true_ensures : Valid +[wp] [Alt-Ergo] Goal typed_bxor_bool_false_ensures : Valid +[wp] [Qed] Goal typed_bxor_bool_true_ensures : Valid +[wp] [Alt-Ergo] Goal typed_job_ensures : Valid [wp] Proved goals: 7 / 7 Qed: 2 Alt-Ergo: 5 @@ -18,7 +18,7 @@ ------------------------------------------------------------- Functions WP Alt-Ergo Total Success job - 1 (12..24) 1 100% -bor_bool - 2 (4..16) 2 100% +bor_bool - 2 (12..24) 2 100% band_bool 1 1 (20..32) 2 100% -bxor_bool 1 1 (4..16) 2 100% +bxor_bool 1 1 (8..20) 2 100% ------------------------------------------------------------- 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 1da7721953e4da02dcf419d942580116477d2c09..7f5deafd0c144b5123461d94624167bcb8bf78b4 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 @@ -4,21 +4,21 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 10 goals scheduled -[wp] [Alt-Ergo] Goal typed_copy_post : Valid -[wp] [Alt-Ergo] Goal typed_copy_loop_inv_Copy_preserved : Valid -[wp] [Qed] Goal typed_copy_loop_inv_Copy_established : Valid -[wp] [Alt-Ergo] Goal typed_copy_loop_inv_Range_preserved : Valid -[wp] [Qed] Goal typed_copy_loop_inv_Range_established : Valid +[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_established : Valid [wp] [Alt-Ergo] Goal typed_copy_assert_A : Valid [wp] [Alt-Ergo] Goal typed_copy_assert_B : Valid -[wp] [Qed] Goal typed_copy_loop_assign_part1 : Valid -[wp] [Alt-Ergo] Goal typed_copy_loop_assign_part2 : Valid -[wp] [Qed] Goal typed_copy_assign : Valid +[wp] [Qed] Goal typed_copy_loop_assigns_part1 : Valid +[wp] [Alt-Ergo] Goal typed_copy_loop_assigns_part2 : Valid +[wp] [Qed] Goal typed_copy_assigns : Valid [wp] Proved goals: 10 / 10 Qed: 4 Alt-Ergo: 6 [wp] Report 'tests/wp_plugin/copy.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -copy 4 6 (272..320) 10 100% +copy 4 6 (288..336) 10 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/dynamic.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/dynamic.res.oracle index 56ccd9a1c6bde78f47a6ac79c3e07806204b9979..15f401314ed824e3543507ac6c947915f700648a 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/dynamic.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/dynamic.res.oracle @@ -6,19 +6,19 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 13 goals scheduled -[wp] [Alt-Ergo] Goal typed_call_stmt_calls_f1_f2 : Valid -[wp] [Qed] Goal typed_call_post_part1 : Valid -[wp] [Qed] Goal typed_call_post_part2 : Valid -[wp] [Alt-Ergo] Goal typed_call_call_f1_pre : Valid -[wp] [Qed] Goal typed_guarded_call_stmt_calls_g : Valid -[wp] [Alt-Ergo] Goal typed_guarded_call_post_part1 : Valid -[wp] [Qed] Goal typed_guarded_call_post_part2 : Valid -[wp] [Qed] Goal typed_guarded_call_post_2_part1 : Valid -[wp] [Qed] Goal typed_guarded_call_post_2_part2 : Valid -[wp] [Qed] Goal typed_no_call_stmt_calls_unreachable_g : Valid -[wp] [Qed] Goal typed_no_call_post_part1 : Valid -[wp] [Qed] Goal typed_no_call_post_part2 : Valid -[wp] [Qed] Goal typed_no_call_call_unreachable_g_pre : Valid +[wp] [Alt-Ergo] Goal typed_call_calls_f1_f2_s3 : Valid +[wp] [Qed] Goal typed_call_ensures_part1 : Valid +[wp] [Qed] Goal typed_call_ensures_part2 : Valid +[wp] [Alt-Ergo] Goal typed_call_call_f1_requires : Valid +[wp] [Qed] Goal typed_guarded_call_calls_g_s9 : Valid +[wp] [Alt-Ergo] Goal typed_guarded_call_ensures_part1 : Valid +[wp] [Qed] Goal typed_guarded_call_ensures_part2 : Valid +[wp] [Qed] Goal typed_guarded_call_ensures_2_part1 : Valid +[wp] [Qed] Goal typed_guarded_call_ensures_2_part2 : Valid +[wp] [Qed] Goal typed_no_call_calls_unreachable_g_s17 : Valid +[wp] [Qed] Goal typed_no_call_ensures_part1 : Valid +[wp] [Qed] Goal typed_no_call_ensures_part2 : Valid +[wp] [Qed] Goal typed_no_call_call_unreachable_g_requires : Valid [wp] Proved goals: 13 / 13 Qed: 10 Alt-Ergo: 3 @@ -26,7 +26,7 @@ ------------------------------------------------------------- Functions WP Alt-Ergo Total Success call 2 2 (52..64) 4 100% -guarded_call 4 1 (8..20) 5 100% +guarded_call 4 1 (12..24) 5 100% no_call 4 - 4 100% ------------------------------------------------------------- [wp] Warning: Memory model hypotheses for function 'guarded_call': diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/f.dot b/src/plugins/wp/tests/wp_plugin/oracle_qualif/f.dot index 839228da72b6c217e33f6e9d92482736bbb08ed3..9b4f1de3952bd66b028d1df4dd8ce7f4c147085a 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/f.dot +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/f.dot @@ -2,9 +2,9 @@ digraph f { rankdir = TB ; node [ style = filled, shape = box ] ; N000 [ color = red, shape = circle, label = "*" ] ; - N074 [ color=red , label="Prove f_post" ] ; + N074 [ color=red , label="Prove f_ensures" ] ; N074 -> N000 [ style=dotted ] ; - N075 [ color=red , label="Prove f_post_2" ] ; + N075 [ color=red , label="Prove f_ensures_2" ] ; N075 -> N074 [ style=dotted ] ; N076 [ label="" , shape=circle ] ; N076 -> N075 ; @@ -54,9 +54,9 @@ digraph f { N097 -> N096 ; N098 [ label="Label wp:sid8 (Stmt s8)" ] ; N098 -> N097 ; - N099 [ color=green , label="Assume f_stmt_post" ] ; + N099 [ color=green , label="Assume f_ensures_3" ] ; N099 -> N098 ; - N100 [ color=orange , label="Havoc f_stmt_assign: + N100 [ color=orange , label="Havoc f_assigns: assigns __retres;" ] ; N100 -> N099 ; N101 [ color=lightblue , label="B-in { }" ] ; diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/f_default_for_stmt_2.dot b/src/plugins/wp/tests/wp_plugin/oracle_qualif/f_default_for_stmt_2.dot index 614347c28971929363dd0c265f44c4e874f00fc4..e5347d619f1af81ecddd15d1235eea49dbb1e2b1 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/f_default_for_stmt_2.dot +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/f_default_for_stmt_2.dot @@ -42,13 +42,13 @@ digraph f { N132 -> N131 ; N133 [ label="Label wp:sid8 (Stmt s8)" ] ; N133 -> N132 ; - N134 [ color=green , label="Assume f_stmt_post" ] ; + N134 [ color=green , label="Assume f_ensures_3" ] ; N134 -> N133 ; - N135 [ color=red , label="Assigns f_stmt_assign" ] ; + N135 [ color=red , label="Assigns f_assigns" ] ; N136 [ label="" , shape=circle ] ; N136 -> N135 ; N136 -> N134 ; - N137 [ color=red , label="Prove f_stmt_post" ] ; + N137 [ color=red , label="Prove f_ensures_3" ] ; N137 -> N136 [ style=dotted ] ; N138 [ label="" , shape=circle ] ; N138 -> N137 ; diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.0.res.oracle index 463183dead7dac70e70770e6da7273668891eb4c..94e4b5d38162d1674edec315e1a9a287d5455566 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.0.res.oracle @@ -4,12 +4,12 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled -[wp] [Qed] Goal typed_job_post_Events : Valid -[wp] [Alt-Ergo] Goal typed_job_post_A_reads : Unknown -[wp] [Alt-Ergo] Goal typed_job_post_B_reads : Unknown -[wp] [Alt-Ergo] Goal typed_job_post_B_writes : Unknown -[wp] [Alt-Ergo] Goal typed_job_post_ReadValues : Unknown -[wp] [Alt-Ergo] Goal typed_job_post_WriteValues : Unknown +[wp] [Qed] Goal typed_job_ensures_Events : Valid +[wp] [Alt-Ergo] Goal typed_job_ensures_A_reads : Unknown +[wp] [Alt-Ergo] Goal typed_job_ensures_B_reads : Unknown +[wp] [Alt-Ergo] Goal typed_job_ensures_B_writes : Unknown +[wp] [Alt-Ergo] Goal typed_job_ensures_ReadValues : Unknown +[wp] [Alt-Ergo] Goal typed_job_ensures_WriteValues : Unknown [wp] Proved goals: 1 / 6 Qed: 1 Alt-Ergo: 0 (unknown: 5) diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.1.res.oracle index 195117fbb5e473dab77f363f433995edace86afc..0526455b58b5dc46bc8f17946d407ab15427b10b 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.1.res.oracle @@ -6,12 +6,12 @@ Redefinition of logic INDEX_init [wp] Warning: Missing RTE guards [wp] 6 goals scheduled -[wp] [Qed] Goal typed_flash_flash-ergo_job_post_Events : Valid -[wp] [Alt-Ergo] Goal typed_flash_flash-ergo_job_post_A_reads : Valid -[wp] [Alt-Ergo] Goal typed_flash_flash-ergo_job_post_B_reads : Valid -[wp] [Alt-Ergo] Goal typed_flash_flash-ergo_job_post_B_writes : Valid -[wp] [Alt-Ergo] Goal typed_flash_flash-ergo_job_post_ReadValues : Valid -[wp] [Alt-Ergo] Goal typed_flash_flash-ergo_job_post_WriteValues : Valid +[wp] [Qed] Goal typed_flash_flash-ergo_job_ensures_Events : Valid +[wp] [Alt-Ergo] Goal typed_flash_flash-ergo_job_ensures_A_reads : Valid +[wp] [Alt-Ergo] Goal typed_flash_flash-ergo_job_ensures_B_reads : Valid +[wp] [Alt-Ergo] Goal typed_flash_flash-ergo_job_ensures_B_writes : Valid +[wp] [Alt-Ergo] Goal typed_flash_flash-ergo_job_ensures_ReadValues : Valid +[wp] [Alt-Ergo] Goal typed_flash_flash-ergo_job_ensures_WriteValues : Valid [wp] Proved goals: 6 / 6 Qed: 1 Alt-Ergo: 5 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.2.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.2.res.oracle index 9ebb3f526971847ed12410241e8a78634c96e214..93ab36295ede189b5f83413707fe2f79f5e44939 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.2.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.2.res.oracle @@ -4,12 +4,12 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled -[wp] [Qed] Goal typed_flash_job_post_Events : Valid -[wp] [Qed] Goal typed_flash_job_post_A_reads : Valid -[wp] [Qed] Goal typed_flash_job_post_B_reads : Valid -[wp] [Qed] Goal typed_flash_job_post_B_writes : Valid -[wp] [Qed] Goal typed_flash_job_post_ReadValues : Valid -[wp] [Qed] Goal typed_flash_job_post_WriteValues : Valid +[wp] [Qed] Goal typed_flash_job_ensures_Events : Valid +[wp] [Qed] Goal typed_flash_job_ensures_A_reads : Valid +[wp] [Qed] Goal typed_flash_job_ensures_B_reads : Valid +[wp] [Qed] Goal typed_flash_job_ensures_B_writes : Valid +[wp] [Qed] Goal typed_flash_job_ensures_ReadValues : Valid +[wp] [Qed] Goal typed_flash_job_ensures_WriteValues : Valid [wp] Proved goals: 6 / 6 Qed: 6 [wp] Report 'tests/wp_plugin/flash.c.2.report.json' diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.0.res.oracle index 7d048ababa304bb178ea39ab34550c7cab67870e..b7b96a6671885c7a7520af8435f44eae9e3e2e4a 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.0.res.oracle @@ -7,8 +7,8 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Coq] Goal typed_output_post_KO : Default tactic -[wp] [Coq] Goal typed_output_post_KO : Unknown +[wp] [Coq] Goal typed_output_ensures_KO : Default tactic +[wp] [Coq] Goal typed_output_ensures_KO : Unknown [wp] Proved goals: 0 / 1 Coq: 0 (unknown: 1) [wp] Report 'tests/wp_plugin/float_format.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.1.res.oracle index 51150b389c4802c954416c1f7b1e6e8a25c3a578..97b86f838a739b903ae5c37ab8f562360e1d342d 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.1.res.oracle @@ -7,7 +7,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Alt-Ergo] Goal typed_output_post_KO : Step limit +[wp] [Alt-Ergo] Goal typed_output_ensures_KO : Step limit [wp] Proved goals: 0 / 1 Alt-Ergo: 0 (interrupted: 1) [wp] Report 'tests/wp_plugin/float_format.i.1.report.json' diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.2.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.2.res.oracle index fd1797d19c215be15bc8976cbeb6a2e1ca89bbbc..d5a6e2d19b65c96884d80ee6a92158063f4b2a35 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.2.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.2.res.oracle @@ -7,7 +7,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [alt-ergo] Goal typed_output_post_KO : Unknown +[wp] [alt-ergo] Goal typed_output_ensures_KO : Unknown [wp] Proved goals: 0 / 1 alt-ergo: 0 (unknown: 1) [wp] Report 'tests/wp_plugin/float_format.i.2.report.json' diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_real.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_real.0.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..374012968858e66f768f7d9849c4718d417c7403 --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_real.0.res.oracle @@ -0,0 +1,18 @@ +# frama-c -wp -wp-model 'Typed (Real)' -wp-timeout 90 -wp-steps 1500 [...] +[kernel] Parsing tests/wp_plugin/float_real.i (no preprocessing) +[kernel:parser:decimal-float] tests/wp_plugin/float_real.i:19: Warning: + Floating-point constant 1e-5 is not represented exactly. Will use 0x1.4f8b588e368f1p-17. + (warn-once: no further messages from category 'parser:decimal-float' will be emitted) +[wp] Running WP plugin... +[wp] Loading driver 'share/wp.driver' +[wp] Warning: Missing RTE guards +[wp] 1 goal scheduled +[wp] [Alt-Ergo] Goal typed_real_dequal_ensures : Valid +[wp] Proved goals: 1 / 1 + Qed: 0 + Alt-Ergo: 1 +[wp] Report 'tests/wp_plugin/float_real.i.0.report.json' +------------------------------------------------------------- +Functions WP Alt-Ergo Total Success +dequal - 1 (12..24) 1 100% +------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_real.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_real.1.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..9d641a24aef9385bf3e0db628e475248c80f9187 --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_real.1.res.oracle @@ -0,0 +1,17 @@ +# frama-c -wp -wp-model 'Typed' -wp-timeout 90 -wp-steps 1500 [...] +[kernel] Parsing tests/wp_plugin/float_real.i (no preprocessing) +[kernel:parser:decimal-float] tests/wp_plugin/float_real.i:19: Warning: + Floating-point constant 1e-5 is not represented exactly. Will use 0x1.4f8b588e368f1p-17. + (warn-once: no further messages from category 'parser:decimal-float' will be emitted) +[wp] Running WP plugin... +[wp] Loading driver 'share/wp.driver' +[wp] Warning: Missing RTE guards +[wp] 1 goal scheduled +[wp] [Alt-Ergo] Goal typed_dequal_ensures : Unknown +[wp] Proved goals: 0 / 1 + Alt-Ergo: 0 (unknown: 1) +[wp] Report 'tests/wp_plugin/float_real.i.1.report.json' +------------------------------------------------------------- +Functions WP Alt-Ergo Total Success +dequal - - 1 0.0% +------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/frame.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/frame.res.oracle index b8b11e348c6abdb2091e66cd7e7245c797c257bc..1ada5c75caf4987e62c791656845dd4e79966209 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/frame.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/frame.res.oracle @@ -4,11 +4,11 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled -[wp] [Alt-Ergo] Goal typed_alias_post_KO : Unknown -[wp] [Alt-Ergo] Goal typed_global_post_KO : Unknown -[wp] [Qed] Goal typed_local_post_FRAMED : Valid -[wp] [Alt-Ergo] Goal typed_local_post_KO : Unknown -[wp] [Alt-Ergo] Goal typed_localref_post_KO : Unknown +[wp] [Alt-Ergo] Goal typed_alias_ensures_KO : Unknown +[wp] [Alt-Ergo] Goal typed_global_ensures_KO : Unknown +[wp] [Qed] Goal typed_local_ensures_FRAMED : Valid +[wp] [Alt-Ergo] Goal typed_local_ensures_KO : Unknown +[wp] [Alt-Ergo] Goal typed_localref_ensures_KO : Unknown [wp] [Qed] Goal typed_localref_assert_FRAMED : Valid [wp] Proved goals: 2 / 6 Qed: 2 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/g.dot b/src/plugins/wp/tests/wp_plugin/oracle_qualif/g.dot index 02cc6ec3138039fb4911139704e924eeeecbff2c..5cdbeab832713294f78f544c2edaf44cee84135c 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/g.dot +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/g.dot @@ -2,7 +2,7 @@ digraph g { rankdir = TB ; node [ style = filled, shape = box ] ; N000 [ color = red, shape = circle, label = "*" ] ; - N049 [ color=red , label="Prove g_post" ] ; + N049 [ color=red , label="Prove g_ensures_2" ] ; N049 -> N000 [ style=dotted ] ; N050 [ color=lightblue , label="F-out { a b }" ] ; N050 -> N049 ; diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_const.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_const.res.oracle index f22d561a37d82210a1d5463a115a000c4bbf4d0e..55dfd7a78b60b76a1adbec7ce6a6e88586a8ebc7 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_const.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_const.res.oracle @@ -4,10 +4,10 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 4 goals scheduled -[wp] [Alt-Ergo] Goal typed_fA_post_KO : Unknown -[wp] [Qed] Goal typed_fB_post_OK : Valid -[wp] [Alt-Ergo] Goal typed_fC_post_KO : Unknown -[wp] [Qed] Goal typed_fD_post_OK : Valid +[wp] [Alt-Ergo] Goal typed_fA_ensures_KO : Unknown +[wp] [Qed] Goal typed_fB_ensures_OK : Valid +[wp] [Alt-Ergo] Goal typed_fC_ensures_KO : Unknown +[wp] [Qed] Goal typed_fD_ensures_OK : Valid [wp] Proved goals: 2 / 4 Qed: 2 Alt-Ergo: 0 (unknown: 2) diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_const_guard.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_const_guard.res.oracle index 6e9a97a491f9e5f6d8cc98cd2408b959e8b85c15..37a5407fe0cc5eb006eb192b74540eb830370947 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_const_guard.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_const_guard.res.oracle @@ -4,11 +4,11 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 7 goals scheduled -[wp] [Qed] Goal typed_f_post_Const : Valid -[wp] [Alt-Ergo] Goal typed_f_post_Pointed_Valid : Valid -[wp] [Qed] Goal typed_f_post_Q_ReadOnly : Valid -[wp] [Qed] Goal typed_f_post_Q_NotWrite : Valid -[wp] [Qed] Goal typed_g_post_P_not_Const : Valid +[wp] [Qed] Goal typed_f_ensures_Const : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_Pointed_Valid : Valid +[wp] [Qed] Goal typed_f_ensures_Q_ReadOnly : Valid +[wp] [Qed] Goal typed_f_ensures_Q_NotWrite : Valid +[wp] [Qed] Goal typed_g_ensures_P_not_Const : Valid [wp] [Alt-Ergo] Goal typed_g_assert_Read : Valid [wp] [Alt-Ergo] Goal typed_g_assert_Guard_against_Const : Unknown [wp] Proved goals: 6 / 7 @@ -18,5 +18,5 @@ ------------------------------------------------------------- Functions WP Alt-Ergo Total Success f 3 1 (16..28) 4 100% -g 1 1 (16..28) 3 66.7% +g 1 1 (20..32) 3 66.7% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_extern.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_extern.res.oracle index 276d436a9d02dda81164774b0d4a1108e7408e2d..56d58accfc3dde00676746ecc7c2bf6879d04976 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_extern.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_extern.res.oracle @@ -5,9 +5,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Qed] Goal typed_f_post_OK : Valid -[wp] [Alt-Ergo] Goal typed_f_post_KO : Unknown -[wp] [Alt-Ergo] Goal typed_f_post_KO_2 : Unknown +[wp] [Qed] Goal typed_f_ensures_OK : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_KO : Unknown +[wp] [Alt-Ergo] Goal typed_f_ensures_KO_2 : Unknown [wp] Proved goals: 1 / 3 Qed: 1 Alt-Ergo: 0 (unknown: 2) diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/initarr.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/initarr.res.oracle index 0c04cc403b389a1d243d0bb7fa85a52581300dde..fdaf378128c2a1d26a9c3c4bcef66b3f95b3f653 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/initarr.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/initarr.res.oracle @@ -4,13 +4,13 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Alt-Ergo] Goal typed_job_post_SEP : Valid -[wp] [Alt-Ergo] Goal typed_job_post_ALT : Valid +[wp] [Alt-Ergo] Goal typed_job_ensures_SEP : Valid +[wp] [Alt-Ergo] Goal typed_job_ensures_ALT : Valid [wp] Proved goals: 2 / 2 Qed: 0 Alt-Ergo: 2 [wp] Report 'tests/wp_plugin/initarr.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -job - 2 (36..48) 2 100% +job - 2 (40..52) 2 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/injector.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/injector.0.res.oracle index b8f21b1a87b71d00a07c970692909bb9ff61cf18..7cbec9994f85d3b9a87ec5b66316298e3c4402b9 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/injector.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/injector.0.res.oracle @@ -4,19 +4,19 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 13 goals scheduled -[wp] [Qed] Goal typed_f_call_g_pre : Valid -[wp] [Qed] Goal typed_f_call_g_pre_2 : Valid -[wp] [Qed] Goal typed_f_FST_FAIL_post_qed_ok : Valid -[wp] [Qed] Goal typed_f_FST_FAIL_post_qed_ok_2 : Valid -[wp] [Qed] Goal typed_f_FST_FAIL_post_qed_ok_3 : Valid -[wp] [Qed] Goal typed_f_SND_FAIL_post_qed_ok : Valid -[wp] [Qed] Goal typed_f_SND_FAIL_post_qed_ok_2 : Valid -[wp] [Qed] Goal typed_f_SND_FAIL_post_qed_ok_3 : Valid -[wp] [Qed] Goal typed_f_SND_FAIL_post_qed_ok_4 : Valid -[wp] [Qed] Goal typed_f_SUCCESS_post_qed_ok : Valid -[wp] [Qed] Goal typed_f_SUCCESS_post_qed_ok_2 : Valid -[wp] [Qed] Goal typed_f_SUCCESS_post_qed_ok_3 : Valid -[wp] [Qed] Goal typed_f_SUCCESS_post_qed_ok_4 : Valid +[wp] [Qed] Goal typed_f_call_g_requires : Valid +[wp] [Qed] Goal typed_f_call_g_requires : Valid +[wp] [Qed] Goal typed_f_FST_FAIL_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_f_FST_FAIL_ensures_qed_ok_2 : Valid +[wp] [Qed] Goal typed_f_FST_FAIL_ensures_qed_ok_3 : Valid +[wp] [Qed] Goal typed_f_SND_FAIL_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_f_SND_FAIL_ensures_qed_ok_2 : Valid +[wp] [Qed] Goal typed_f_SND_FAIL_ensures_qed_ok_3 : Valid +[wp] [Qed] Goal typed_f_SND_FAIL_ensures_qed_ok_4 : Valid +[wp] [Qed] Goal typed_f_SUCCESS_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_f_SUCCESS_ensures_qed_ok_2 : Valid +[wp] [Qed] Goal typed_f_SUCCESS_ensures_qed_ok_3 : Valid +[wp] [Qed] Goal typed_f_SUCCESS_ensures_qed_ok_4 : Valid [wp] Proved goals: 13 / 13 Qed: 13 [wp] Report 'tests/wp_plugin/injector.c.0.report.json' diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/injector.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/injector.1.res.oracle index 14b022f52b2429ebff0d3e7bf1695169ebed68ed..4862a74bd900b08f9b57715585fe92acc38bc5de 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/injector.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/injector.1.res.oracle @@ -4,10 +4,10 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 4 goals scheduled -[wp] [Alt-Ergo] Goal typed_f_ko_post_qed_ko : Unknown -[wp] [Alt-Ergo] Goal typed_f_ko_1_post_qed_ko : Unknown -[wp] [Alt-Ergo] Goal typed_f_ko_1_post_qed_ko_2 : Unknown -[wp] [Alt-Ergo] Goal typed_f_ko_1_post_qed_ko_3 : Unknown +[wp] [Alt-Ergo] Goal typed_f_ko_ensures_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_f_ko_1_ensures_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_f_ko_1_ensures_qed_ko_2 : Unknown +[wp] [Alt-Ergo] Goal typed_f_ko_1_ensures_qed_ko_3 : Unknown [wp] Proved goals: 0 / 4 Alt-Ergo: 0 (unknown: 4) [wp] Report 'tests/wp_plugin/injector.c.1.report.json' diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/loop.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/loop.res.oracle index 9825fad01fb3143eb07b83ae3de24a4e3bd491cf..31fb187436c43ad82a36d338ba9a42aa110a0aaf 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/loop.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/loop.res.oracle @@ -4,15 +4,15 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 9 goals scheduled -[wp] [Alt-Ergo] Goal typed_init_post_qed_ok : Valid -[wp] [Alt-Ergo] Goal typed_init_loop_inv_qed_ok_preserved : Valid -[wp] [Alt-Ergo] Goal typed_init_loop_inv_qed_ok_established : Valid -[wp] [Alt-Ergo] Goal typed_init_loop_inv_qed_ok_2_preserved : Valid -[wp] [Qed] Goal typed_init_loop_inv_qed_ok_2_established : Valid -[wp] [Qed] Goal typed_init_loop_assign_part1 : Valid -[wp] [Qed] Goal typed_init_loop_assign_part2 : Valid -[wp] [Alt-Ergo] Goal typed_init_loop_assign_part3 : Valid -[wp] [Alt-Ergo] Goal typed_init_assign : Unknown +[wp] [Alt-Ergo] Goal typed_init_ensures_qed_ok : Valid +[wp] [Alt-Ergo] Goal typed_init_loop_invariant_qed_ok_preserved : Valid +[wp] [Alt-Ergo] Goal typed_init_loop_invariant_qed_ok_established : Valid +[wp] [Alt-Ergo] Goal typed_init_loop_invariant_qed_ok_2_preserved : Valid +[wp] [Qed] Goal typed_init_loop_invariant_qed_ok_2_established : Valid +[wp] [Qed] Goal typed_init_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_init_loop_assigns_part2 : Valid +[wp] [Alt-Ergo] Goal typed_init_loop_assigns_part3 : Valid +[wp] [Alt-Ergo] Goal typed_init_assigns : Unknown [wp] Proved goals: 8 / 9 Qed: 3 Alt-Ergo: 5 (unknown: 1) diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/loopcurrent.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/loopcurrent.res.oracle index c175e6344679409963f39207e3f6c4f1524125dc..0eb100dcd2f23c19775b47cc46664a0e8c4d85d8 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/loopcurrent.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/loopcurrent.res.oracle @@ -6,10 +6,10 @@ [wp] tests/wp_plugin/loopcurrent.i:12: Warning: Missing assigns clause (assigns 'everything' instead) [wp] 4 goals scheduled -[wp] [Qed] Goal typed_f_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_f_loop_inv_established : Valid -[wp] [Qed] Goal typed_f_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_f_loop_inv_2_established : Valid +[wp] [Qed] Goal typed_f_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_f_loop_invariant_established : Valid +[wp] [Qed] Goal typed_f_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_f_loop_invariant_2_established : Valid [wp] Proved goals: 4 / 4 Qed: 4 [wp] Report 'tests/wp_plugin/loopcurrent.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/loopentry.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/loopentry.res.oracle index 0706b9a7b8fa3c192b50d938b6f2ec94db53dd35..42b8084aefbaca04e2ef438c16c01e6c3bbc72c4 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/loopentry.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/loopentry.res.oracle @@ -6,10 +6,10 @@ [wp] tests/wp_plugin/loopentry.i:12: Warning: Missing assigns clause (assigns 'everything' instead) [wp] 4 goals scheduled -[wp] [Qed] Goal typed_f_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_f_loop_inv_established : Valid -[wp] [Qed] Goal typed_f_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_f_loop_inv_2_established : Valid +[wp] [Qed] Goal typed_f_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_f_loop_invariant_established : Valid +[wp] [Qed] Goal typed_f_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_f_loop_invariant_2_established : Valid [wp] Proved goals: 4 / 4 Qed: 4 [wp] Report 'tests/wp_plugin/loopentry.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/mask.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/mask.res.oracle index 46ec9a2dfacb0335cd853da1942b9f00bec683fb..e0af8eb53799fbef86d2bfdd619a92a101474602 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/mask.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/mask.res.oracle @@ -4,8 +4,8 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Qed] Goal typed_compute_post_A : Valid -[wp] [Qed] Goal typed_compute_post_B : Valid +[wp] [Qed] Goal typed_compute_ensures_A : Valid +[wp] [Qed] Goal typed_compute_ensures_B : Valid [wp] Proved goals: 2 / 2 Qed: 2 [wp] Report 'tests/wp_plugin/mask.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.0.res.oracle index fa8da06b1ecdcf410d98f33faa173d5292af677b..dcc82cab512cdb04e5906b915ee3a10e5f6ff968 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.0.res.oracle @@ -23,17 +23,17 @@ [wp] [Alt-Ergo] Goal typed_lemma_sqrt_mono : Valid [wp] [Alt-Ergo] Goal typed_lemma_sqrt_pos : Valid [wp] [Alt-Ergo] Goal typed_lemma_tanh_opp : Valid -[wp] [Alt-Ergo] Goal typed_ok_post_sin_asin : Valid -[wp] [Alt-Ergo] Goal typed_ok_post_sin_asin_in_range : Valid -[wp] [Alt-Ergo] Goal typed_ok_post_cos_acos : Valid -[wp] [Alt-Ergo] Goal typed_ok_post_cos_acos_in_range : Valid -[wp] [Qed] Goal typed_ok_post_tan_atan : Valid -[wp] [Alt-Ergo] Goal typed_ok_post_log_pow : Valid -[wp] [Qed] Goal typed_ok_post_log_exp : Valid -[wp] [Alt-Ergo] Goal typed_ok_post_exp_log : Valid -[wp] [Alt-Ergo] Goal typed_ok_post_min_plus_distrib : Valid -[wp] [Alt-Ergo] Goal typed_ok_post_sqrt_pos : Valid -[wp] [Alt-Ergo] Goal typed_ok_post_sqrt_pos0 : Valid +[wp] [Alt-Ergo] Goal typed_ok_ensures_sin_asin : Valid +[wp] [Alt-Ergo] Goal typed_ok_ensures_sin_asin_in_range : Valid +[wp] [Alt-Ergo] Goal typed_ok_ensures_cos_acos : Valid +[wp] [Alt-Ergo] Goal typed_ok_ensures_cos_acos_in_range : Valid +[wp] [Qed] Goal typed_ok_ensures_tan_atan : Valid +[wp] [Alt-Ergo] Goal typed_ok_ensures_log_pow : Valid +[wp] [Qed] Goal typed_ok_ensures_log_exp : Valid +[wp] [Alt-Ergo] Goal typed_ok_ensures_exp_log : Valid +[wp] [Alt-Ergo] Goal typed_ok_ensures_min_plus_distrib : Valid +[wp] [Alt-Ergo] Goal typed_ok_ensures_sqrt_pos : Valid +[wp] [Alt-Ergo] Goal typed_ok_ensures_sqrt_pos0 : Valid [wp] Proved goals: 30 / 30 Qed: 5 Alt-Ergo: 25 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.1.res.oracle index fc1ca3b86f37c771d6d3e2e679052ed22a31eab4..bf2477d381d6f7b5ff8ba62a2a2c42c38ecb3b38 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.1.res.oracle @@ -23,17 +23,17 @@ [wp] [alt-ergo] Goal typed_lemma_sqrt_mono : Valid [wp] [alt-ergo] Goal typed_lemma_sqrt_pos : Valid [wp] [alt-ergo] Goal typed_lemma_tanh_opp : Valid -[wp] [alt-ergo] Goal typed_ok_post_sin_asin : Valid -[wp] [alt-ergo] Goal typed_ok_post_sin_asin_in_range : Valid -[wp] [alt-ergo] Goal typed_ok_post_cos_acos : Valid -[wp] [alt-ergo] Goal typed_ok_post_cos_acos_in_range : Valid -[wp] [Qed] Goal typed_ok_post_tan_atan : Valid -[wp] [alt-ergo] Goal typed_ok_post_log_pow : Valid -[wp] [Qed] Goal typed_ok_post_log_exp : Valid -[wp] [alt-ergo] Goal typed_ok_post_exp_log : Valid -[wp] [alt-ergo] Goal typed_ok_post_min_plus_distrib : Valid -[wp] [alt-ergo] Goal typed_ok_post_sqrt_pos : Valid -[wp] [alt-ergo] Goal typed_ok_post_sqrt_pos0 : Valid +[wp] [alt-ergo] Goal typed_ok_ensures_sin_asin : Valid +[wp] [alt-ergo] Goal typed_ok_ensures_sin_asin_in_range : Valid +[wp] [alt-ergo] Goal typed_ok_ensures_cos_acos : Valid +[wp] [alt-ergo] Goal typed_ok_ensures_cos_acos_in_range : Valid +[wp] [Qed] Goal typed_ok_ensures_tan_atan : Valid +[wp] [alt-ergo] Goal typed_ok_ensures_log_pow : Valid +[wp] [Qed] Goal typed_ok_ensures_log_exp : Valid +[wp] [alt-ergo] Goal typed_ok_ensures_exp_log : Valid +[wp] [alt-ergo] Goal typed_ok_ensures_min_plus_distrib : Valid +[wp] [alt-ergo] Goal typed_ok_ensures_sqrt_pos : Valid +[wp] [alt-ergo] Goal typed_ok_ensures_sqrt_pos0 : Valid [wp] Proved goals: 30 / 30 Qed: 5 alt-ergo: 25 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.2.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.2.res.oracle index 748344d32e340ec15a96c327367db443de5e02d2..820740cac730923d31743afa06ad43224d7120d5 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.2.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.2.res.oracle @@ -4,15 +4,15 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 9 goals scheduled -[wp] [Alt-Ergo] Goal typed_ko_post_ko_sin_asin : Step limit -[wp] [Alt-Ergo] Goal typed_ko_post_ko_cos_acos : Step limit -[wp] [Alt-Ergo] Goal typed_ko_post_ko_asin_sin : Step limit -[wp] [Alt-Ergo] Goal typed_ko_post_ko_acos_cos : Step limit -[wp] [Alt-Ergo] Goal typed_ko_post_ko_atan_tan : Step limit -[wp] [Alt-Ergo] Goal typed_ko_post_ko_log_pow : Step limit -[wp] [Alt-Ergo] Goal typed_ko_post_ko_exp_log : Step limit -[wp] [Alt-Ergo] Goal typed_ko_post_ko_exp_log_add_mul : Step limit -[wp] [Alt-Ergo] Goal typed_ko_post_ko_sqrt_pos : Step limit +[wp] [Alt-Ergo] Goal typed_ko_ensures_ko_sin_asin : Step limit +[wp] [Alt-Ergo] Goal typed_ko_ensures_ko_cos_acos : Step limit +[wp] [Alt-Ergo] Goal typed_ko_ensures_ko_asin_sin : Step limit +[wp] [Alt-Ergo] Goal typed_ko_ensures_ko_acos_cos : Step limit +[wp] [Alt-Ergo] Goal typed_ko_ensures_ko_atan_tan : Step limit +[wp] [Alt-Ergo] Goal typed_ko_ensures_ko_log_pow : Step limit +[wp] [Alt-Ergo] Goal typed_ko_ensures_ko_exp_log : Step limit +[wp] [Alt-Ergo] Goal typed_ko_ensures_ko_exp_log_add_mul : Step limit +[wp] [Alt-Ergo] Goal typed_ko_ensures_ko_sqrt_pos : Step limit [wp] Proved goals: 0 / 9 Alt-Ergo: 0 (interrupted: 9) ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.3.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.3.res.oracle index 7360397142c48447aadc1d683210e910fed62baa..bb249beaf01e222a7b5c8e2a99309eb00701e68f 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.3.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.3.res.oracle @@ -4,15 +4,15 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 9 goals scheduled -[wp] [alt-ergo] Goal typed_ko_post_ko_sin_asin : Timeout -[wp] [alt-ergo] Goal typed_ko_post_ko_cos_acos : Timeout -[wp] [alt-ergo] Goal typed_ko_post_ko_asin_sin : Timeout -[wp] [alt-ergo] Goal typed_ko_post_ko_acos_cos : Timeout -[wp] [alt-ergo] Goal typed_ko_post_ko_atan_tan : Timeout -[wp] [alt-ergo] Goal typed_ko_post_ko_log_pow : Timeout -[wp] [alt-ergo] Goal typed_ko_post_ko_exp_log : Timeout -[wp] [alt-ergo] Goal typed_ko_post_ko_exp_log_add_mul : Timeout -[wp] [alt-ergo] Goal typed_ko_post_ko_sqrt_pos : Timeout +[wp] [alt-ergo] Goal typed_ko_ensures_ko_sin_asin : Timeout +[wp] [alt-ergo] Goal typed_ko_ensures_ko_cos_acos : Timeout +[wp] [alt-ergo] Goal typed_ko_ensures_ko_asin_sin : Timeout +[wp] [alt-ergo] Goal typed_ko_ensures_ko_acos_cos : Timeout +[wp] [alt-ergo] Goal typed_ko_ensures_ko_atan_tan : Timeout +[wp] [alt-ergo] Goal typed_ko_ensures_ko_log_pow : Timeout +[wp] [alt-ergo] Goal typed_ko_ensures_ko_exp_log : Timeout +[wp] [alt-ergo] Goal typed_ko_ensures_ko_exp_log_add_mul : Timeout +[wp] [alt-ergo] Goal typed_ko_ensures_ko_sqrt_pos : Timeout [wp] Proved goals: 0 / 9 alt-ergo: 0 (interrupted: 9) ---------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/model.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/model.res.oracle index d1c12a1b3404429d3368dd441260c2283dd3fb4c..208ec05840fd62dfe9f543bf720c8318cf83b06b 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/model.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/model.res.oracle @@ -7,13 +7,13 @@ [wp] Warning: Missing RTE guards [wp] 1 goal scheduled --------------------------------------------- ---- File 'typed/f_post.ergo' +--- File 'typed/f_ensures.ergo' --------------------------------------------- (* ---------------------------------------------------------- *) (* --- Post-condition (file tests/wp_plugin/model.i, line 13) in 'f' --- *) (* ---------------------------------------------------------- *) -goal f_post: +goal f_ensures: forall i : int. forall t : (addr,int) farray. forall a : addr. @@ -41,19 +41,19 @@ function shift_sint32(p:addr, k:int) : addr = shift(p, k) logic P_P : int -> prop -[wp] [Alt-Ergo] Goal typed_f_post : Typechecked +[wp] [Alt-Ergo] Goal typed_f_ensures : Typechecked [wp] Proved goals: 0 / 1 Alt-Ergo: 0 (unknown: 1) [wp] Running WP plugin... [wp] 2 goals scheduled --------------------------------------------- ---- File 'typed/f_post.ergo' +--- File 'typed/f_ensures.ergo' --------------------------------------------- (* ---------------------------------------------------------- *) (* --- Post-condition (file tests/wp_plugin/model.i, line 13) in 'f' --- *) (* ---------------------------------------------------------- *) -goal f_post: +goal f_ensures: forall i : int. forall t : (addr,int) farray. forall a : addr. @@ -63,15 +63,15 @@ goal f_post: is_sint32(x) -> P_P(x) -[wp] [Alt-Ergo] Goal typed_f_post : Typechecked +[wp] [Alt-Ergo] Goal typed_f_ensures : Typechecked --------------------------------------------- ---- File 'typed_ref/f_post.ergo' +--- File 'typed_ref/f_ensures.ergo' --------------------------------------------- (* ---------------------------------------------------------- *) (* --- Post-condition (file tests/wp_plugin/model.i, line 13) in 'f' --- *) (* ---------------------------------------------------------- *) -goal f_post: +goal f_ensures: forall i : int. forall t : (addr,int) farray. forall a : addr. @@ -99,6 +99,6 @@ function shift_sint32(p:addr, k:int) : addr = shift(p, k) logic P_P : int -> prop -[wp] [Alt-Ergo] Goal typed_ref_f_post : Typechecked +[wp] [Alt-Ergo] Goal typed_ref_f_ensures : Typechecked [wp] Proved goals: 0 / 2 Alt-Ergo: 0 (unknown: 2) diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/overarray.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/overarray.res.oracle index 5ac8f29ffc882856883ba31378066d3eda026010..4e444f5c792756e54ecde7d9d12f951091879771 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/overarray.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/overarray.res.oracle @@ -4,18 +4,18 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 12 goals scheduled -[wp] [Qed] Goal typed_f1_ok_assign_exit : Valid -[wp] [Qed] Goal typed_f1_ok_assign_normal : Valid -[wp] [Qed] Goal typed_f2_ok_assign_exit : Valid -[wp] [Qed] Goal typed_f2_ok_assign_normal : Valid -[wp] [Qed] Goal typed_f3_ok_assign_exit : Valid -[wp] [Qed] Goal typed_f3_ok_assign_normal : Valid -[wp] [Qed] Goal typed_f4_ok_assign_exit : Valid -[wp] [Qed] Goal typed_f4_ok_assign_normal : Valid -[wp] [Alt-Ergo] Goal typed_f5_ko_assign_exit : Unknown -[wp] [Alt-Ergo] Goal typed_f5_ko_assign_normal : Unknown -[wp] [Alt-Ergo] Goal typed_f6_ko_assign_exit : Unknown -[wp] [Alt-Ergo] Goal typed_f6_ko_assign_normal : Unknown +[wp] [Qed] Goal typed_f1_ok_assigns_exit : Valid +[wp] [Qed] Goal typed_f1_ok_assigns_normal : Valid +[wp] [Qed] Goal typed_f2_ok_assigns_exit : Valid +[wp] [Qed] Goal typed_f2_ok_assigns_normal : Valid +[wp] [Qed] Goal typed_f3_ok_assigns_exit : Valid +[wp] [Qed] Goal typed_f3_ok_assigns_normal : Valid +[wp] [Qed] Goal typed_f4_ok_assigns_exit : Valid +[wp] [Qed] Goal typed_f4_ok_assigns_normal : Valid +[wp] [Alt-Ergo] Goal typed_f5_ko_assigns_exit : Unknown +[wp] [Alt-Ergo] Goal typed_f5_ko_assigns_normal : Unknown +[wp] [Alt-Ergo] Goal typed_f6_ko_assigns_exit : Unknown +[wp] [Alt-Ergo] Goal typed_f6_ko_assigns_normal : Unknown [wp] Proved goals: 8 / 12 Qed: 8 Alt-Ergo: 0 (unknown: 4) diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/overassign.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/overassign.res.oracle index a01baabf0813e1f0c2dcefe4370c1842e12c329b..16f6ce465df500059dfbd2359c7787d47e02d660 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/overassign.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/overassign.res.oracle @@ -4,18 +4,18 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 12 goals scheduled -[wp] [Qed] Goal typed_f1_ok_assign_exit : Valid -[wp] [Qed] Goal typed_f1_ok_assign_normal : Valid -[wp] [Qed] Goal typed_f2_ok_assign_exit : Valid -[wp] [Qed] Goal typed_f2_ok_assign_normal : Valid -[wp] [Alt-Ergo] Goal typed_f3_ok_assign_exit : Valid -[wp] [Alt-Ergo] Goal typed_f3_ok_assign_normal : Valid -[wp] [Alt-Ergo] Goal typed_f4_ok_assign_exit : Valid -[wp] [Alt-Ergo] Goal typed_f4_ok_assign_normal : Valid -[wp] [Alt-Ergo] Goal typed_f5_ko_assign_exit : Unknown -[wp] [Alt-Ergo] Goal typed_f5_ko_assign_normal : Unknown -[wp] [Alt-Ergo] Goal typed_f6_ko_assign_exit : Unknown -[wp] [Alt-Ergo] Goal typed_f6_ko_assign_normal : Unknown +[wp] [Qed] Goal typed_f1_ok_assigns_exit : Valid +[wp] [Qed] Goal typed_f1_ok_assigns_normal : Valid +[wp] [Qed] Goal typed_f2_ok_assigns_exit : Valid +[wp] [Qed] Goal typed_f2_ok_assigns_normal : Valid +[wp] [Alt-Ergo] Goal typed_f3_ok_assigns_exit : Valid +[wp] [Alt-Ergo] Goal typed_f3_ok_assigns_normal : Valid +[wp] [Alt-Ergo] Goal typed_f4_ok_assigns_exit : Valid +[wp] [Alt-Ergo] Goal typed_f4_ok_assigns_normal : Valid +[wp] [Alt-Ergo] Goal typed_f5_ko_assigns_exit : Unknown +[wp] [Alt-Ergo] Goal typed_f5_ko_assigns_normal : Unknown +[wp] [Alt-Ergo] Goal typed_f6_ko_assigns_exit : Unknown +[wp] [Alt-Ergo] Goal typed_f6_ko_assigns_normal : Unknown [wp] Proved goals: 8 / 12 Qed: 4 Alt-Ergo: 4 (unknown: 4) @@ -25,7 +25,7 @@ Functions WP Alt-Ergo Total Success f1_ok 2 - 2 100% f2_ok 2 - 2 100% f3_ok - 2 (20..32) 2 100% -f4_ok - 2 (12..24) 2 100% +f4_ok - 2 (16..28) 2 100% f5_ko - - 2 0.0% f6_ko - - 2 0.0% ------------------------------------------------------------- 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 cee0e2ca5745d1c2933ac736f07e86195491a124..f5023a17dc26e36ee3e34f50e5fbb11f897a7313 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,23 +4,23 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 12 goals scheduled -[wp] [Alt-Ergo] Goal typed_diag_post : Valid -[wp] [Alt-Ergo] Goal typed_diag_loop_inv_I_preserved : Valid -[wp] [Qed] Goal typed_diag_loop_inv_I_established : Valid -[wp] [Alt-Ergo] Goal typed_diag_loop_inv_PI_preserved : Valid -[wp] [Qed] Goal typed_diag_loop_inv_PI_established : Valid -[wp] [Alt-Ergo] Goal typed_diag_loop_inv_J_preserved : Valid -[wp] [Qed] Goal typed_diag_loop_inv_J_established : Valid -[wp] [Alt-Ergo] Goal typed_diag_loop_inv_PJ_preserved : Valid -[wp] [Qed] Goal typed_diag_loop_inv_PJ_established : Valid -[wp] [Qed] Goal typed_diag_loop_assign_part1 : Valid -[wp] [Qed] Goal typed_diag_loop_assign_part2 : Valid -[wp] [Qed] Goal typed_diag_loop_assign_2 : Valid +[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_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_established : Valid +[wp] [Alt-Ergo] Goal typed_diag_loop_invariant_PJ_preserved : Valid +[wp] [Qed] Goal typed_diag_loop_invariant_PJ_established : Valid +[wp] [Qed] Goal typed_diag_loop_assigns_part1 : Valid +[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 [wp] Report 'tests/wp_plugin/prenex.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -diag 7 5 (56..80) 12 100% +diag 7 5 (64..88) 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 80fdaff1401fc1bc02144b2af5ef226d41bb87a0..c1c8354536c7f9ab00785d857bc8efc610538785 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 @@ -6,53 +6,53 @@ [wp] tests/wp_plugin/repeat.c:47: Warning: Missing assigns clause (assigns 'everything' instead) [wp] 47 goals scheduled -[wp] [Qed] Goal typed_induction_post : Valid -[wp] [Alt-Ergo] Goal typed_induction_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_induction_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_induction_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_induction_loop_inv_2_established : Valid -[wp] [Qed] Goal typed_induction_loop_assign : Valid -[wp] [Qed] Goal typed_induction_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_induction_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_induction_assign_normal : Valid -[wp] [Qed] Goal typed_master_post : Valid -[wp] [Qed] Goal typed_master_assign_exit : Valid -[wp] [Qed] Goal typed_master_assign_normal : Valid -[wp] [Alt-Ergo] Goal typed_shifted_post : Valid -[wp] [Alt-Ergo] Goal typed_shifted_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_shifted_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_shifted_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_shifted_loop_inv_2_established : Valid -[wp] [Qed] Goal typed_shifted_loop_assign : Valid -[wp] [Qed] Goal typed_shifted_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_shifted_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_shifted_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_shifted_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_unroll_post : Valid -[wp] [Qed] Goal typed_unroll_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_unroll_loop_inv_established : Valid -[wp] [Qed] Goal typed_unroll_assign_exit_part01 : Valid -[wp] [Qed] Goal typed_unroll_assign_exit_part02 : Valid -[wp] [Qed] Goal typed_unroll_assign_exit_part03 : Valid -[wp] [Qed] Goal typed_unroll_assign_exit_part04 : Valid -[wp] [Qed] Goal typed_unroll_assign_exit_part05 : Valid -[wp] [Qed] Goal typed_unroll_assign_exit_part06 : Valid -[wp] [Qed] Goal typed_unroll_assign_exit_part07 : Valid -[wp] [Qed] Goal typed_unroll_assign_exit_part08 : Valid -[wp] [Qed] Goal typed_unroll_assign_exit_part09 : Valid -[wp] [Qed] Goal typed_unroll_assign_exit_part10 : Valid -[wp] [Qed] Goal typed_unroll_assign_exit_part11 : Valid -[wp] [Qed] Goal typed_unroll_assign_normal_part01 : Valid -[wp] [Qed] Goal typed_unroll_assign_normal_part02 : Valid -[wp] [Qed] Goal typed_unroll_assign_normal_part03 : Valid -[wp] [Qed] Goal typed_unroll_assign_normal_part04 : Valid -[wp] [Qed] Goal typed_unroll_assign_normal_part05 : Valid -[wp] [Qed] Goal typed_unroll_assign_normal_part06 : Valid -[wp] [Qed] Goal typed_unroll_assign_normal_part07 : Valid -[wp] [Qed] Goal typed_unroll_assign_normal_part08 : Valid -[wp] [Qed] Goal typed_unroll_assign_normal_part09 : Valid -[wp] [Qed] Goal typed_unroll_assign_normal_part10 : Valid -[wp] [Qed] Goal typed_unroll_assign_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_established : Valid +[wp] [Alt-Ergo] Goal typed_induction_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_induction_loop_invariant_2_established : Valid +[wp] [Qed] Goal typed_induction_loop_assigns : Valid +[wp] [Qed] Goal typed_induction_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_induction_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_induction_assigns_normal : Valid +[wp] [Qed] Goal typed_master_ensures : Valid +[wp] [Qed] Goal typed_master_assigns_exit : Valid +[wp] [Qed] Goal typed_master_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_established : Valid +[wp] [Alt-Ergo] Goal typed_shifted_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_shifted_loop_invariant_2_established : Valid +[wp] [Qed] Goal typed_shifted_loop_assigns : Valid +[wp] [Qed] Goal typed_shifted_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_shifted_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_shifted_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_shifted_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_unroll_ensures : Valid +[wp] [Qed] Goal typed_unroll_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_unroll_loop_invariant_established : Valid +[wp] [Qed] Goal typed_unroll_assigns_exit_part01 : Valid +[wp] [Qed] Goal typed_unroll_assigns_exit_part02 : Valid +[wp] [Qed] Goal typed_unroll_assigns_exit_part03 : Valid +[wp] [Qed] Goal typed_unroll_assigns_exit_part04 : Valid +[wp] [Qed] Goal typed_unroll_assigns_exit_part05 : Valid +[wp] [Qed] Goal typed_unroll_assigns_exit_part06 : Valid +[wp] [Qed] Goal typed_unroll_assigns_exit_part07 : Valid +[wp] [Qed] Goal typed_unroll_assigns_exit_part08 : Valid +[wp] [Qed] Goal typed_unroll_assigns_exit_part09 : Valid +[wp] [Qed] Goal typed_unroll_assigns_exit_part10 : Valid +[wp] [Qed] Goal typed_unroll_assigns_exit_part11 : Valid +[wp] [Qed] Goal typed_unroll_assigns_normal_part01 : Valid +[wp] [Qed] Goal typed_unroll_assigns_normal_part02 : Valid +[wp] [Qed] Goal typed_unroll_assigns_normal_part03 : Valid +[wp] [Qed] Goal typed_unroll_assigns_normal_part04 : Valid +[wp] [Qed] Goal typed_unroll_assigns_normal_part05 : Valid +[wp] [Qed] Goal typed_unroll_assigns_normal_part06 : Valid +[wp] [Qed] Goal typed_unroll_assigns_normal_part07 : Valid +[wp] [Qed] Goal typed_unroll_assigns_normal_part08 : Valid +[wp] [Qed] Goal typed_unroll_assigns_normal_part09 : Valid +[wp] [Qed] Goal typed_unroll_assigns_normal_part10 : Valid +[wp] [Qed] Goal typed_unroll_assigns_normal_part11 : Valid [wp] Proved goals: 47 / 47 Qed: 42 Alt-Ergo: 5 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 8173a1d3abea309a752faaabd8be4693cfe0359f..5a6a837e1f40fb311ab80e1027efac39f016df83 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 @@ -4,52 +4,52 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 39 goals scheduled -[wp] [Qed] Goal typed_caveat_loops_post_ok_first : Valid -[wp] [Alt-Ergo] Goal typed_caveat_loops_post_ok_last : Valid -[wp] [Alt-Ergo] Goal typed_caveat_loops_loop_inv_ok_id_max_preserved : Valid -[wp] [Qed] Goal typed_caveat_loops_loop_inv_ok_id_max_established : Valid -[wp] [Alt-Ergo] Goal typed_caveat_loops_loop_inv_ok_id_min_preserved : Valid -[wp] [Qed] Goal typed_caveat_loops_loop_inv_ok_id_min_established : Valid -[wp] [Alt-Ergo] Goal typed_caveat_loops_loop_inv_ok_inv_preserved : Valid -[wp] [Qed] Goal typed_caveat_loops_loop_inv_ok_inv_established : Valid -[wp] [Qed] Goal typed_caveat_loops_loop_assign : Valid -[wp] [Qed] Goal typed_caveat_loops_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_caveat_loops_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_caveat_loops_assign_exit_part3 : Valid -[wp] [Qed] Goal typed_caveat_loops_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_caveat_loops_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_caveat_loops_assign_normal_part3 : Valid -[wp] [Alt-Ergo] Goal typed_caveat_loops_g_called_post_ok_u1 : Valid -[wp] [Qed] Goal typed_caveat_loops_g_called_post_ok_u2 : Valid -[wp] [Alt-Ergo] Goal typed_caveat_loops_g_not_called_post_ok_v1 : Valid -[wp] [Alt-Ergo] Goal typed_caveat_loops_g_not_called_post_ok_v2 : Valid -[wp] [Qed] Goal typed_caveat_no_calls_post_ok_m1 : Valid -[wp] [Alt-Ergo] Goal typed_caveat_no_calls_post_ok_m2 : Valid -[wp] [Qed] Goal typed_caveat_no_calls_post_ok_bug_why3_n1 : Valid -[wp] [Alt-Ergo] Goal typed_caveat_no_calls_post_ok_n2 : Valid -[wp] [Alt-Ergo] Goal typed_caveat_no_calls_post_ok_n3 : Valid -[wp] [Alt-Ergo] Goal typed_caveat_no_calls_post_ok_bug_why3_n5 : Valid -[wp] [Qed] Goal typed_caveat_no_calls_post_ok_bug_why3_n6 : Valid -[wp] [Alt-Ergo] Goal typed_caveat_no_calls_post_ok_bug_why3_n5_ok : Valid -[wp] [Qed] Goal typed_caveat_no_calls_post_ok_bug_why3_n6_ok : Valid -[wp] [Qed] Goal typed_caveat_no_calls_assign : Valid -[wp] [Qed] Goal typed_caveat_sequence_assign_exit : Valid -[wp] [Qed] Goal typed_caveat_sequence_assign_normal : Valid -[wp] [Qed] Goal typed_caveat_sequence_g_called_post_ok_o1 : Valid -[wp] [Qed] Goal typed_caveat_sequence_g_called_post_ok_p1 : Valid -[wp] [Qed] Goal typed_caveat_sequence_g_called_post_ok_p2 : Valid -[wp] [Alt-Ergo] Goal typed_caveat_sequence_g_called_post_ok_p3 : Valid -[wp] [Qed] Goal typed_caveat_sequence_g_not_called_post_ok_o2 : Valid -[wp] [Qed] Goal typed_caveat_sequence_g_not_called_post_ok_q1 : Valid -[wp] [Qed] Goal typed_caveat_sequence_g_not_called_post_ok_q2 : Valid -[wp] [Alt-Ergo] Goal typed_caveat_sequence_g_not_called_post_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_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_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 +[wp] [Qed] Goal typed_caveat_loops_loop_assigns : Valid +[wp] [Qed] Goal typed_caveat_loops_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_caveat_loops_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_caveat_loops_assigns_exit_part3 : Valid +[wp] [Qed] Goal typed_caveat_loops_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_caveat_loops_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_caveat_loops_assigns_normal_part3 : Valid +[wp] [Alt-Ergo] Goal typed_caveat_loops_g_called_ensures_ok_u1 : Valid +[wp] [Qed] Goal typed_caveat_loops_g_called_ensures_ok_u2 : Valid +[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] [Qed] Goal typed_caveat_no_calls_ensures_ok_m1 : Valid +[wp] [Alt-Ergo] Goal typed_caveat_no_calls_ensures_ok_m2 : Valid +[wp] [Qed] Goal typed_caveat_no_calls_ensures_ok_bug_why3_n1 : Valid +[wp] [Alt-Ergo] Goal typed_caveat_no_calls_ensures_ok_n2 : Valid +[wp] [Alt-Ergo] Goal typed_caveat_no_calls_ensures_ok_n3 : Valid +[wp] [Alt-Ergo] Goal typed_caveat_no_calls_ensures_ok_bug_why3_n5 : Valid +[wp] [Qed] Goal typed_caveat_no_calls_ensures_ok_bug_why3_n6 : Valid +[wp] [Alt-Ergo] Goal typed_caveat_no_calls_ensures_ok_bug_why3_n5_ok : Valid +[wp] [Qed] Goal typed_caveat_no_calls_ensures_ok_bug_why3_n6_ok : Valid +[wp] [Qed] Goal typed_caveat_no_calls_assigns : Valid +[wp] [Qed] Goal typed_caveat_sequence_assigns_exit : Valid +[wp] [Qed] Goal typed_caveat_sequence_assigns_normal : Valid +[wp] [Qed] Goal typed_caveat_sequence_g_called_ensures_ok_o1 : Valid +[wp] [Qed] Goal typed_caveat_sequence_g_called_ensures_ok_p1 : Valid +[wp] [Qed] Goal typed_caveat_sequence_g_called_ensures_ok_p2 : Valid +[wp] [Alt-Ergo] Goal typed_caveat_sequence_g_called_ensures_ok_p3 : Valid +[wp] [Qed] Goal typed_caveat_sequence_g_not_called_ensures_ok_o2 : Valid +[wp] [Qed] Goal typed_caveat_sequence_g_not_called_ensures_ok_q1 : Valid +[wp] [Qed] Goal typed_caveat_sequence_g_not_called_ensures_ok_q2 : Valid +[wp] [Alt-Ergo] Goal typed_caveat_sequence_g_not_called_ensures_ok_q3 : Valid [wp] Proved goals: 39 / 39 Qed: 25 Alt-Ergo: 14 [wp] Report 'tests/wp_plugin/sequence.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -no_calls 5 5 (4..16) 10 100% +no_calls 5 5 (8..20) 10 100% sequence 8 2 (12..24) 10 100% loops 12 7 (48..60) 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 0a59b8081a5e1b3848998d71fab69d5b3df74101..1c817abc79dab4752323fb0bbc7f40d711070d22 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 @@ -4,40 +4,40 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 34 goals scheduled -[wp] [Qed] Goal typed_caveat_loops_post_ok_first : Valid -[wp] [alt-ergo] Goal typed_caveat_loops_post_ok_last : Valid -[wp] [alt-ergo] Goal typed_caveat_loops_loop_inv_ok_id_max_preserved : Valid -[wp] [Qed] Goal typed_caveat_loops_loop_inv_ok_id_max_established : Valid -[wp] [alt-ergo] Goal typed_caveat_loops_loop_inv_ok_id_min_preserved : Valid -[wp] [Qed] Goal typed_caveat_loops_loop_inv_ok_id_min_established : Valid -[wp] [alt-ergo] Goal typed_caveat_loops_loop_inv_ok_inv_preserved : Valid -[wp] [Qed] Goal typed_caveat_loops_loop_inv_ok_inv_established : Valid -[wp] [Qed] Goal typed_caveat_loops_loop_assign : Valid -[wp] [Qed] Goal typed_caveat_loops_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_caveat_loops_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_caveat_loops_assign_exit_part3 : Valid -[wp] [Qed] Goal typed_caveat_loops_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_caveat_loops_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_caveat_loops_assign_normal_part3 : Valid -[wp] [alt-ergo] Goal typed_caveat_loops_g_called_post_ok_u1 : Valid -[wp] [Qed] Goal typed_caveat_loops_g_called_post_ok_u2 : Valid -[wp] [alt-ergo] Goal typed_caveat_loops_g_not_called_post_ok_v1 : Valid -[wp] [alt-ergo] Goal typed_caveat_loops_g_not_called_post_ok_v2 : Valid -[wp] [Qed] Goal typed_caveat_no_calls_post_ok_m1 : Valid -[wp] [alt-ergo] Goal typed_caveat_no_calls_post_ok_m2 : Valid -[wp] [alt-ergo] Goal typed_caveat_no_calls_post_ok_n2 : Valid -[wp] [alt-ergo] Goal typed_caveat_no_calls_post_ok_n3 : Valid -[wp] [Qed] Goal typed_caveat_no_calls_assign : Valid -[wp] [Qed] Goal typed_caveat_sequence_assign_exit : Valid -[wp] [Qed] Goal typed_caveat_sequence_assign_normal : Valid -[wp] [Qed] Goal typed_caveat_sequence_g_called_post_ok_o1 : Valid -[wp] [Qed] Goal typed_caveat_sequence_g_called_post_ok_p1 : Valid -[wp] [Qed] Goal typed_caveat_sequence_g_called_post_ok_p2 : Valid -[wp] [alt-ergo] Goal typed_caveat_sequence_g_called_post_ok_p3 : Valid -[wp] [Qed] Goal typed_caveat_sequence_g_not_called_post_ok_o2 : Valid -[wp] [Qed] Goal typed_caveat_sequence_g_not_called_post_ok_q1 : Valid -[wp] [Qed] Goal typed_caveat_sequence_g_not_called_post_ok_q2 : Valid -[wp] [alt-ergo] Goal typed_caveat_sequence_g_not_called_post_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_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_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 +[wp] [Qed] Goal typed_caveat_loops_loop_assigns : Valid +[wp] [Qed] Goal typed_caveat_loops_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_caveat_loops_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_caveat_loops_assigns_exit_part3 : Valid +[wp] [Qed] Goal typed_caveat_loops_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_caveat_loops_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_caveat_loops_assigns_normal_part3 : Valid +[wp] [alt-ergo] Goal typed_caveat_loops_g_called_ensures_ok_u1 : Valid +[wp] [Qed] Goal typed_caveat_loops_g_called_ensures_ok_u2 : Valid +[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] [Qed] Goal typed_caveat_no_calls_ensures_ok_m1 : Valid +[wp] [alt-ergo] Goal typed_caveat_no_calls_ensures_ok_m2 : Valid +[wp] [alt-ergo] Goal typed_caveat_no_calls_ensures_ok_n2 : Valid +[wp] [alt-ergo] Goal typed_caveat_no_calls_ensures_ok_n3 : Valid +[wp] [Qed] Goal typed_caveat_no_calls_assigns : Valid +[wp] [Qed] Goal typed_caveat_sequence_assigns_exit : Valid +[wp] [Qed] Goal typed_caveat_sequence_assigns_normal : Valid +[wp] [Qed] Goal typed_caveat_sequence_g_called_ensures_ok_o1 : Valid +[wp] [Qed] Goal typed_caveat_sequence_g_called_ensures_ok_p1 : Valid +[wp] [Qed] Goal typed_caveat_sequence_g_called_ensures_ok_p2 : Valid +[wp] [alt-ergo] Goal typed_caveat_sequence_g_called_ensures_ok_p3 : Valid +[wp] [Qed] Goal typed_caveat_sequence_g_not_called_ensures_ok_o2 : Valid +[wp] [Qed] Goal typed_caveat_sequence_g_not_called_ensures_ok_q1 : Valid +[wp] [Qed] Goal typed_caveat_sequence_g_not_called_ensures_ok_q2 : Valid +[wp] [alt-ergo] Goal typed_caveat_sequence_g_not_called_ensures_ok_q3 : Valid [wp] Proved goals: 34 / 34 Qed: 22 alt-ergo: 12 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/stmt.log b/src/plugins/wp/tests/wp_plugin/oracle_qualif/stmt.log index c5ef6b5c8fd1ca8556fed9433f41937c0a6ff440..a4c5684758293a710da3057a4b6d1a219bcc4541 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/stmt.log +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/stmt.log @@ -1,14 +1,14 @@ [kernel] Parsing tests/wp_plugin/stmt.c (with preprocessing) [wp] Running WP plugin... -[wp] [CFG] Goal f_stmt_exit : Valid (Unreachable) -[wp] [CFG] Goal g_stmt_exit : Valid (Unreachable) -[wp] [CFG] Goal g_stmt_assign : Valid (Unreachable) -[wp] [CFG] Goal g_stmt_post : Valid (Unreachable) -[wp] [CFG] Goal g_stmt_exit : Valid (Unreachable) -[wp] [CFG] Goal h_stmt_exit : Valid (Unreachable) -[wp] [CFG] Goal h_stmt_assign : Valid (Unreachable) -[wp] [CFG] Goal h_stmt_post : Valid (Unreachable) -[wp] [CFG] Goal h_stmt_exit : Valid (Unreachable) +[wp] [CFG] Goal f_exits : Valid (Unreachable) +[wp] [CFG] Goal g_exits : Valid (Unreachable) +[wp] [CFG] Goal g_assigns : Valid (Unreachable) +[wp] [CFG] Goal g_ensures : Valid (Unreachable) +[wp] [CFG] Goal g_exits : Valid (Unreachable) +[wp] [CFG] Goal h_exits : Valid (Unreachable) +[wp] [CFG] Goal h_assigns : Valid (Unreachable) +[wp] [CFG] Goal h_ensures : Valid (Unreachable) +[wp] [CFG] Goal h_exits : Valid (Unreachable) [wp] CFG h -> h [wp] CFG h -> h_NEG_stmt_15 [wp] CFG h -> h_POS_stmt_15 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/stmt.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/stmt.res.oracle index 97b554ede989e2f597a21c145e87e9fa58989697..b891bec1a72b0dcb219f3c43738bfe781322f85a 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/stmt.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/stmt.res.oracle @@ -2,25 +2,25 @@ [kernel] Parsing tests/wp_plugin/stmt.c (with preprocessing) [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' -[wp] [CFG] Goal f_stmt_exit : Valid (Unreachable) -[wp] [CFG] Goal g_stmt_exit : Valid (Unreachable) -[wp] [CFG] Goal g_stmt_assign : Valid (Unreachable) -[wp] [CFG] Goal g_stmt_post : Valid (Unreachable) -[wp] [CFG] Goal g_stmt_exit : Valid (Unreachable) -[wp] [CFG] Goal h_stmt_exit : Valid (Unreachable) -[wp] [CFG] Goal h_stmt_assign : Valid (Unreachable) -[wp] [CFG] Goal h_stmt_post : Valid (Unreachable) -[wp] [CFG] Goal h_stmt_exit : Valid (Unreachable) +[wp] [CFG] Goal f_exits : Valid (Unreachable) +[wp] [CFG] Goal g_exits : Valid (Unreachable) +[wp] [CFG] Goal g_assigns : Valid (Unreachable) +[wp] [CFG] Goal g_ensures : Valid (Unreachable) +[wp] [CFG] Goal g_exits : Valid (Unreachable) +[wp] [CFG] Goal h_exits : Valid (Unreachable) +[wp] [CFG] Goal h_assigns : Valid (Unreachable) +[wp] [CFG] Goal h_ensures : Valid (Unreachable) +[wp] [CFG] Goal h_exits : Valid (Unreachable) [wp] Warning: Missing RTE guards [wp] 10 goals scheduled -[wp] [Qed] Goal typed_f_post : Valid -[wp] [Qed] Goal typed_f_post_2 : Valid +[wp] [Qed] Goal typed_f_ensures_2 : Valid +[wp] [Qed] Goal typed_f_ensures_3 : Valid [wp] [Qed] Goal typed_f_assert : Valid -[wp] [Qed] Goal typed_f_stmt_post : Valid -[wp] [Qed] Goal typed_f_stmt_assign : Valid -[wp] [Qed] Goal typed_g_post : Valid +[wp] [Qed] Goal typed_f_ensures : Valid +[wp] [Qed] Goal typed_f_assigns : Valid +[wp] [Qed] Goal typed_g_ensures_2 : Valid [wp] [Qed] Goal typed_g_assert : Valid -[wp] [Qed] Goal typed_h_post : Valid +[wp] [Qed] Goal typed_h_ensures_2 : Valid [wp] [Qed] Goal typed_h_assert : Valid [wp] [Qed] Goal typed_h_assert_2 : Valid [wp] Proved goals: 10 / 10 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 d4b8d167e8841ec4fef132c958997151a3903665..cd836f893d9450075f4900dc7dde4b8def2dc3b2 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 @@ -4,50 +4,50 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 44 goals scheduled -[wp] [Alt-Ergo] Goal typed_memcpy_post_copied_contents : Valid -[wp] [Qed] Goal typed_memcpy_post_result_ptr : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_loop_inv_no_eva_preserved : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_loop_inv_no_eva_established : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_loop_inv_no_eva_2_preserved : Valid -[wp] [Qed] Goal typed_memcpy_loop_inv_no_eva_2_established : Valid -[wp] [Qed] Goal typed_memcpy_loop_assign_part1 : Valid -[wp] [Qed] Goal typed_memcpy_loop_assign_part2 : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_loop_assign_part3 : Valid -[wp] [Qed] Goal typed_memcpy_assign : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_loop_term_decrease : Valid -[wp] [Qed] Goal typed_memcpy_loop_term_positive : Valid -[wp] [Alt-Ergo] Goal typed_memmove_post_copied_contents : Valid -[wp] [Qed] Goal typed_memmove_post_result_ptr : Valid -[wp] [Alt-Ergo] Goal typed_memmove_loop_inv_no_eva_preserved : Valid -[wp] [Alt-Ergo] Goal typed_memmove_loop_inv_no_eva_established : Valid -[wp] [Alt-Ergo] Goal typed_memmove_loop_inv_no_eva_2_preserved : Valid -[wp] [Qed] Goal typed_memmove_loop_inv_no_eva_2_established : Valid -[wp] [Alt-Ergo] Goal typed_memmove_loop_inv_no_eva_3_preserved : Valid -[wp] [Qed] Goal typed_memmove_loop_inv_no_eva_3_established : Valid -[wp] [Alt-Ergo] Goal typed_memmove_loop_inv_no_eva_4_preserved : Valid -[wp] [Alt-Ergo] Goal typed_memmove_loop_inv_no_eva_4_established : Valid -[wp] [Alt-Ergo] Goal typed_memmove_loop_inv_no_eva_5_preserved : Valid -[wp] [Alt-Ergo] Goal typed_memmove_loop_inv_no_eva_5_established : Valid -[wp] [Alt-Ergo] Goal typed_memmove_loop_inv_no_eva_6_preserved : Valid -[wp] [Qed] Goal typed_memmove_loop_inv_no_eva_6_established : Valid -[wp] [Qed] Goal typed_memmove_loop_assign_part1 : Valid -[wp] [Qed] Goal typed_memmove_loop_assign_part2 : Valid -[wp] [Alt-Ergo] Goal typed_memmove_loop_assign_part3 : Valid -[wp] [Qed] Goal typed_memmove_loop_assign_2_part1 : Valid -[wp] [Qed] Goal typed_memmove_loop_assign_2_part2 : Valid -[wp] [Alt-Ergo] Goal typed_memmove_loop_assign_2_part3 : Valid -[wp] [Qed] Goal typed_memmove_assign_exit : Valid -[wp] [Qed] Goal typed_memmove_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_memmove_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_memmove_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_memmove_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_memmove_assign_normal_part5 : Valid -[wp] [Alt-Ergo] Goal typed_memmove_assign_normal_part6 : Valid -[wp] [Qed] Goal typed_memmove_assign_normal_part7 : Valid -[wp] [Alt-Ergo] Goal typed_memmove_loop_term_decrease : Valid -[wp] [Qed] Goal typed_memmove_loop_term_positive : Valid -[wp] [Alt-Ergo] Goal typed_memmove_loop_term_2_decrease : Valid -[wp] [Qed] Goal typed_memmove_loop_term_2_positive : Valid +[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] [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 +[wp] [Qed] Goal typed_memcpy_loop_assigns_part2 : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_loop_assigns_part3 : Valid +[wp] [Qed] Goal typed_memcpy_assigns : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_memcpy_loop_variant_positive : Valid +[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] [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 +[wp] [Qed] Goal typed_memmove_loop_invariant_no_eva_3_established : Valid +[wp] [Alt-Ergo] Goal typed_memmove_loop_invariant_no_eva_4_preserved : Valid +[wp] [Alt-Ergo] Goal typed_memmove_loop_invariant_no_eva_4_established : Valid +[wp] [Alt-Ergo] Goal typed_memmove_loop_invariant_no_eva_5_preserved : Valid +[wp] [Alt-Ergo] Goal typed_memmove_loop_invariant_no_eva_5_established : Valid +[wp] [Alt-Ergo] Goal typed_memmove_loop_invariant_no_eva_6_preserved : Valid +[wp] [Qed] Goal typed_memmove_loop_invariant_no_eva_6_established : Valid +[wp] [Qed] Goal typed_memmove_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_memmove_loop_assigns_part2 : Valid +[wp] [Alt-Ergo] Goal typed_memmove_loop_assigns_part3 : Valid +[wp] [Qed] Goal typed_memmove_loop_assigns_2_part1 : Valid +[wp] [Qed] Goal typed_memmove_loop_assigns_2_part2 : Valid +[wp] [Alt-Ergo] Goal typed_memmove_loop_assigns_2_part3 : Valid +[wp] [Qed] Goal typed_memmove_assigns_exit : Valid +[wp] [Qed] Goal typed_memmove_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_memmove_assigns_normal_part2 : Valid +[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_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 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/struct.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/struct.res.oracle index ececd4dbdc753c429893457c4d853ea936e9aac4..5d5925a673ed1be9f1420df468cdb4b363b26237 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/struct.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/struct.res.oracle @@ -4,24 +4,24 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 18 goals scheduled -[wp] [Qed] Goal typed_f_post_qed_ok_E0 : Valid -[wp] [Qed] Goal typed_f_post_qed_ok_E1 : Valid -[wp] [Qed] Goal typed_f_post_qed_ok_E2 : Valid -[wp] [Qed] Goal typed_f_post_qed_ok_E3 : Valid -[wp] [Qed] Goal typed_f_post_qed_ok_E4 : Valid -[wp] [Qed] Goal typed_f_post_qed_ok_E5 : Valid -[wp] [Qed] Goal typed_f_post_qed_ok_E6 : Valid -[wp] [Qed] Goal typed_f_post_qed_ok_E7 : Valid -[wp] [Qed] Goal typed_f_post_qed_ok_E8 : Valid -[wp] [Qed] Goal typed_f_post_qed_ok_E9 : Valid -[wp] [Qed] Goal typed_f_post_qed_ok_E10 : Valid -[wp] [Qed] Goal typed_f_post_qed_ok_E11 : Valid -[wp] [Qed] Goal typed_g_post_qed_ok_P3 : Valid -[wp] [Qed] Goal typed_g_post_qed_ok_P4 : Valid -[wp] [Qed] Goal typed_g_post_qed_ok_P5 : Valid -[wp] [Qed] Goal typed_g_assign : Valid -[wp] [Qed] Goal typed_id_post_qed_ok_P1 : Valid -[wp] [Qed] Goal typed_id_post_qed_ok_P2 : Valid +[wp] [Qed] Goal typed_f_ensures_qed_ok_E0 : Valid +[wp] [Qed] Goal typed_f_ensures_qed_ok_E1 : Valid +[wp] [Qed] Goal typed_f_ensures_qed_ok_E2 : Valid +[wp] [Qed] Goal typed_f_ensures_qed_ok_E3 : Valid +[wp] [Qed] Goal typed_f_ensures_qed_ok_E4 : Valid +[wp] [Qed] Goal typed_f_ensures_qed_ok_E5 : Valid +[wp] [Qed] Goal typed_f_ensures_qed_ok_E6 : Valid +[wp] [Qed] Goal typed_f_ensures_qed_ok_E7 : Valid +[wp] [Qed] Goal typed_f_ensures_qed_ok_E8 : Valid +[wp] [Qed] Goal typed_f_ensures_qed_ok_E9 : Valid +[wp] [Qed] Goal typed_f_ensures_qed_ok_E10 : Valid +[wp] [Qed] Goal typed_f_ensures_qed_ok_E11 : Valid +[wp] [Qed] Goal typed_g_ensures_qed_ok_P3 : Valid +[wp] [Qed] Goal typed_g_ensures_qed_ok_P4 : Valid +[wp] [Qed] Goal typed_g_ensures_qed_ok_P5 : Valid +[wp] [Qed] Goal typed_g_assigns : Valid +[wp] [Qed] Goal typed_id_ensures_qed_ok_P1 : Valid +[wp] [Qed] Goal typed_id_ensures_qed_ok_P2 : Valid [wp] Proved goals: 18 / 18 Qed: 18 [wp] Report 'tests/wp_plugin/struct.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/struct_hack.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/struct_hack.res.oracle index 1a60c2772c855913d23492e0e5633641795f1335..14cfd26a07272ceb668fc4d14781895b05cbb320 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/struct_hack.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/struct_hack.res.oracle @@ -10,22 +10,22 @@ [wp] tests/wp_plugin/struct_hack.i:53: Warning: Missing assigns clause (assigns 'everything' instead) [wp] 10 goals scheduled -[wp] [Alt-Ergo] Goal typed_f0_loop_inv_qed_ok_preserved : Valid -[wp] [Qed] Goal typed_f0_loop_inv_qed_ok_established : Valid +[wp] [Alt-Ergo] Goal typed_f0_loop_invariant_qed_ok_preserved : Valid +[wp] [Qed] Goal typed_f0_loop_invariant_qed_ok_established : Valid [wp] [Alt-Ergo] Goal typed_f0_assert_qed_ok : Valid -[wp] [Qed] Goal typed_f0_loop_term_decrease : Valid -[wp] [Qed] Goal typed_f0_loop_term_positive : Valid -[wp] [Alt-Ergo] Goal typed_f1_loop_inv_qed_ok_preserved : Valid -[wp] [Qed] Goal typed_f1_loop_inv_qed_ok_established : Valid +[wp] [Qed] Goal typed_f0_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_f0_loop_variant_positive : Valid +[wp] [Alt-Ergo] Goal typed_f1_loop_invariant_qed_ok_preserved : Valid +[wp] [Qed] Goal typed_f1_loop_invariant_qed_ok_established : Valid [wp] [Alt-Ergo] Goal typed_f1_assert_qed_ok : Valid -[wp] [Qed] Goal typed_f1_loop_term_decrease : Valid -[wp] [Qed] Goal typed_f1_loop_term_positive : Valid +[wp] [Qed] Goal typed_f1_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_f1_loop_variant_positive : Valid [wp] Proved goals: 10 / 10 Qed: 6 Alt-Ergo: 4 [wp] Report 'tests/wp_plugin/struct_hack.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -f0 3 2 (20..32) 5 100% +f0 3 2 (24..36) 5 100% f1 3 2 (16..28) 5 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/subset.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/subset.res.oracle index e8606daa876ec7efc765b12bf8edaf2b63de535d..bf2ffa73ad31c0478dd9788517833a3f646b4659 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/subset.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/subset.res.oracle @@ -4,12 +4,12 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Alt-Ergo] Goal typed_mem_post : Valid +[wp] [Alt-Ergo] Goal typed_mem_ensures : Valid [wp] Proved goals: 1 / 1 Qed: 0 Alt-Ergo: 1 [wp] Report 'tests/wp_plugin/subset.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -mem - 1 (112..136) 1 100% +mem - 1 (128..152) 1 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/trig.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/trig.res.oracle index d4b8f0fc30206a4473541a5e4226c233bf971427..13c1a6e92193642c657b9833e30ce9351c426c54 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/trig.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/trig.res.oracle @@ -7,12 +7,12 @@ [wp] [Alt-Ergo] Goal typed_foo_assert_qed_ok_S : Valid [wp] [Alt-Ergo] Goal typed_foo_assert_qed_ok_A : Valid [wp] [Alt-Ergo] Goal typed_foo_assert_qed_ok_B : Unknown -[wp] [Qed] Goal typed_foo_call_fconcat_pre_qed_ok : Valid +[wp] [Qed] Goal typed_foo_call_fconcat_requires_qed_ok : Valid [wp] Proved goals: 3 / 4 Qed: 1 Alt-Ergo: 2 (unknown: 1) [wp] Report 'tests/wp_plugin/trig.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -foo 1 2 (44..56) 4 75.0% +foo 1 2 (48..60) 4 75.0% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/unsafe-arrays.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/unsafe-arrays.res.oracle index d093141e585916c6b6ac1f1753c36549cfd159c5..6ce8eaf3651a1fb1b04a513c56de8fd3e36fe498 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/unsafe-arrays.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/unsafe-arrays.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Qed] Goal typed_f_post_ARRAYS : Valid -[wp] [Qed] Goal typed_f_post_STRUCT : Valid -[wp] [Alt-Ergo] Goal typed_f_post_INDIRP : Valid +[wp] [Qed] Goal typed_f_ensures_ARRAYS : Valid +[wp] [Qed] Goal typed_f_ensures_STRUCT : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_INDIRP : Valid [wp] Proved goals: 3 / 3 Qed: 2 Alt-Ergo: 1 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/unsupported_init.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/unsupported_init.res.oracle index 512b6a9775dca1032030781db5f07faba19e53ce..5cb5f531ab2cff415b146d2960bb24cd8a29737e 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/unsupported_init.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/unsupported_init.res.oracle @@ -8,7 +8,7 @@ (r1: \initialized(Y + (0 .. 99))) [wp] 2 goals scheduled [wp] [Qed] Goal typed_f_assert_a1 : Valid -[wp] [Alt-Ergo] Goal typed_f_call_cp_pre_r1 : Unknown (Degenerated) +[wp] [Alt-Ergo] Goal typed_f_call_cp_requires_r1 : Unknown (Degenerated) [wp] Proved goals: 1 / 2 Qed: 1 Alt-Ergo: 0 (unknown: 1) diff --git a/src/plugins/wp/tests/wp_plugin/overarray.i.0.report.json b/src/plugins/wp/tests/wp_plugin/overarray.i.0.report.json index 720746c5196416ef4898a24124ec3ac9d1e21bc7..dbda73ffeddfd55206f94a3f1e8d23e4b278c486 100644 --- a/src/plugins/wp/tests/wp_plugin/overarray.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/overarray.i.0.report.json @@ -1,50 +1,50 @@ { "wp:global": { "alt-ergo": { "total": 4, "unknown": 4 }, "qed": { "total": 8, "valid": 8 }, "wp:main": { "total": 12, "valid": 8, "unknown": 4 } }, - "wp:functions": { "f1_ok": { "f1_ok_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, + "wp:functions": { "f1_ok": { "f1_ok_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "f2_ok": { "f2_ok_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, + "f2_ok": { "f2_ok_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "f3_ok": { "f3_ok_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, + "f3_ok": { "f3_ok_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "f4_ok": { "f4_ok_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, + "f4_ok": { "f4_ok_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "f5_ko": { "f5_ko_assign": { "alt-ergo": { "total": 2, - "unknown": 2 }, - "wp:main": { "total": 2, - "unknown": 2 } }, + "f5_ko": { "f5_ko_assigns": { "alt-ergo": { "total": 2, + "unknown": 2 }, + "wp:main": { "total": 2, + "unknown": 2 } }, "wp:section": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": { "total": 2, "unknown": 2 } } }, - "f6_ko": { "f6_ko_assign": { "alt-ergo": { "total": 2, - "unknown": 2 }, - "wp:main": { "total": 2, - "unknown": 2 } }, + "f6_ko": { "f6_ko_assigns": { "alt-ergo": { "total": 2, + "unknown": 2 }, + "wp:main": { "total": 2, + "unknown": 2 } }, "wp:section": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": { "total": 2, diff --git a/src/plugins/wp/tests/wp_plugin/overassign.i.0.report.json b/src/plugins/wp/tests/wp_plugin/overassign.i.0.report.json index 80848c1eee23b93d767419b34800a6444c9f6ff4..71511e374d5cd66fb7c663cd5ed201c7ef5af01b 100644 --- a/src/plugins/wp/tests/wp_plugin/overassign.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/overassign.i.0.report.json @@ -3,58 +3,58 @@ "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 12, "valid": 8, "unknown": 4, "rank": 6 } }, - "wp:functions": { "f1_ok": { "f1_ok_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, + "wp:functions": { "f1_ok": { "f1_ok_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "f2_ok": { "f2_ok_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, + "f2_ok": { "f2_ok_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "f3_ok": { "f3_ok_assign": { "alt-ergo": { "total": 2, + "f3_ok": { "f3_ok_assigns": { "alt-ergo": { "total": 2, + "valid": 2, + "rank": 6 }, + "wp:main": { "total": 2, "valid": 2, - "rank": 6 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 6 } }, + "rank": 6 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, "rank": 6 }, "wp:main": { "total": 2, "valid": 2, "rank": 6 } } }, - "f4_ok": { "f4_ok_assign": { "alt-ergo": { "total": 2, + "f4_ok": { "f4_ok_assigns": { "alt-ergo": { "total": 2, + "valid": 2, + "rank": 5 }, + "wp:main": { "total": 2, "valid": 2, - "rank": 4 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 4 } }, + "rank": 5 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 4 }, + "rank": 5 }, "wp:main": { "total": 2, "valid": 2, - "rank": 4 } } }, - "f5_ko": { "f5_ko_assign": { "alt-ergo": { "total": 2, - "unknown": 2 }, - "wp:main": { "total": 2, - "unknown": 2 } }, + "rank": 5 } } }, + "f5_ko": { "f5_ko_assigns": { "alt-ergo": { "total": 2, + "unknown": 2 }, + "wp:main": { "total": 2, + "unknown": 2 } }, "wp:section": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": { "total": 2, "unknown": 2 } } }, - "f6_ko": { "f6_ko_assign": { "alt-ergo": { "total": 2, - "unknown": 2 }, - "wp:main": { "total": 2, - "unknown": 2 } }, + "f6_ko": { "f6_ko_assigns": { "alt-ergo": { "total": 2, + "unknown": 2 }, + "wp:main": { "total": 2, + "unknown": 2 } }, "wp:section": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": { "total": 2, diff --git a/src/plugins/wp/tests/wp_plugin/prenex.i.0.report.json b/src/plugins/wp/tests/wp_plugin/prenex.i.0.report.json index 0f3f71f56e14c84f708b839a9782131ddb51b081..87caa6954e8ecacf82c65b0285dd8aea904d0ee6 100644 --- a/src/plugins/wp/tests/wp_plugin/prenex.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/prenex.i.0.report.json @@ -1,57 +1,63 @@ -{ "wp:global": { "alt-ergo": { "total": 5, "valid": 5, "rank": 16 }, +{ "wp:global": { "alt-ergo": { "total": 5, "valid": 5, "rank": 17 }, "qed": { "total": 7, "valid": 7 }, - "wp:main": { "total": 12, "valid": 12, "rank": 16 } }, - "wp:functions": { "diag": { "diag_loop_inv_PJ": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 7 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 7 } }, - "diag_loop_inv_J": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 6 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 6 } }, - "diag_loop_inv_PI": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 7 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 7 } }, - "diag_loop_inv_I": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 5 } }, - "diag_loop_assign_2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "diag_loop_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "diag_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 16 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 16 } }, + "wp:main": { "total": 12, "valid": 12, "rank": 17 } }, + "wp:functions": { "diag": { "diag_loop_invariant_PJ": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 8 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 8 } }, + "diag_loop_invariant_J": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 7 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 7 } }, + "diag_loop_invariant_PI": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 8 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 8 } }, + "diag_loop_invariant_I": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 6 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 6 } }, + "diag_loop_assigns_2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "diag_loop_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "diag_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 17 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 17 } }, "wp:section": { "alt-ergo": { "total": 5, "valid": 5, - "rank": 16 }, + "rank": 17 }, "qed": { "total": 7, "valid": 7 }, "wp:main": { "total": 12, "valid": 12, - "rank": 16 } } } } } + "rank": 17 } } } } } diff --git a/src/plugins/wp/tests/wp_plugin/repeat.c.0.report.json b/src/plugins/wp/tests/wp_plugin/repeat.c.0.report.json index e96b420e99acab6cb9a1086562ba4ba76c0d8c75..5fd1e03fce302fe36b4d29c14803969ccbfa3782 100644 --- a/src/plugins/wp/tests/wp_plugin/repeat.c.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/repeat.c.0.report.json @@ -1,68 +1,73 @@ { "wp:global": { "alt-ergo": { "total": 5, "valid": 5, "rank": 12 }, "qed": { "total": 42, "valid": 42 }, "wp:main": { "total": 47, "valid": 47, "rank": 12 } }, - "wp:functions": { "master": { "master_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "master_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "master": { "master_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "master_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 3, "valid": 3 } } }, - "unroll": { "unroll_loop_inv": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "unroll_assign": { "qed": { "total": 22, - "valid": 22 }, - "wp:main": { "total": 22, - "valid": 22 } }, - "unroll_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "unroll": { "unroll_loop_invariant": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": + { "total": 2, + "valid": 2 } }, + "unroll_assigns": { "qed": { "total": 22, + "valid": 22 }, + "wp:main": { "total": 22, + "valid": 22 } }, + "unroll_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 25, "valid": 25 }, "wp:main": { "total": 25, "valid": 25 } } }, - "induction": { "induction_loop_inv_2": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 12 }, - "qed": { "total": 1, + "induction": { "induction_loop_invariant_2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 12 }, + "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 12 } }, - "induction_loop_inv": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 4 }, - "qed": { "total": 1, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 12 } }, + "induction_loop_invariant": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 4 }, + "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 4 } }, - "induction_assign": { "qed": { "total": 3, - "valid": 3 }, - "wp:main": { "total": 3, - "valid": 3 } }, - "induction_loop_assign": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "induction_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 4 } }, + "induction_assigns": { "qed": { "total": 3, + "valid": 3 }, + "wp:main": + { "total": 3, + "valid": 3 } }, + "induction_loop_assigns": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "induction_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, "rank": 12 }, @@ -71,38 +76,42 @@ "wp:main": { "total": 9, "valid": 9, "rank": 12 } } }, - "shifted": { "shifted_loop_inv_2": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 12 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 12 } }, - "shifted_loop_inv": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 5 } }, - "shifted_assign": { "qed": { "total": 4, - "valid": 4 }, - "wp:main": { "total": 4, - "valid": 4 } }, - "shifted_loop_assign": { "qed": { "total": 1, + "shifted": { "shifted_loop_invariant_2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 12 }, + "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "shifted_post": { "alt-ergo": { "total": 1, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 12 } }, + "shifted_loop_invariant": { "alt-ergo": + { "total": 1, "valid": 1, - "rank": 11 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 11 } }, + "rank": 5 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 5 } }, + "shifted_assigns": { "qed": { "total": 4, + "valid": 4 }, + "wp:main": { "total": 4, + "valid": 4 } }, + "shifted_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "shifted_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 11 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 11 } }, "wp:section": { "alt-ergo": { "total": 3, "valid": 3, "rank": 12 }, diff --git a/src/plugins/wp/tests/wp_plugin/sequence.i.0.report.json b/src/plugins/wp/tests/wp_plugin/sequence.i.0.report.json index 817a0ff84b007f0bcdcf5b9317a0f356cda307d9..ae0f326bdbae62d9931abc55c0301c9f487d6d85 100644 --- a/src/plugins/wp/tests/wp_plugin/sequence.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/sequence.i.0.report.json @@ -1,119 +1,99 @@ { "wp:global": { "alt-ergo": { "total": 14, "valid": 14, "rank": 13 }, "qed": { "total": 25, "valid": 25 }, "wp:main": { "total": 39, "valid": 39, "rank": 13 } }, - "wp:functions": { "no_calls": { "no_calls_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, + "wp:functions": { "no_calls": { "no_calls_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, - "no_calls_post_ok_bug_why3_n6_ok": + "no_calls_ensures_ok_bug_why3_n6_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "no_calls_post_ok_bug_why3_n5_ok": + "no_calls_ensures_ok_bug_why3_n5_ok": { "alt-ergo": { "total": 1, "valid": 1, "rank": 2 }, "wp:main": { "total": 1, "valid": 1, "rank": 2 } }, - "no_calls_post_ok_bug_why3_n6": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "no_calls_post_ok_bug_why3_n5": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 2 } }, - "no_calls_post_ok_n3": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 1 } }, - "no_calls_post_ok_n2": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 1 } }, - "no_calls_post_ok_bug_why3_n1": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "no_calls_post_ok_m2": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 1 } }, - "no_calls_post_ok_m1": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "no_calls_ensures_ok_bug_why3_n6": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "no_calls_ensures_ok_bug_why3_n5": + { "alt-ergo": { "total": 1, "valid": 1, + "rank": 3 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 3 } }, + "no_calls_ensures_ok_n3": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 1 } }, + "no_calls_ensures_ok_n2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 1 } }, + "no_calls_ensures_ok_bug_why3_n1": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "no_calls_ensures_ok_m2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 1 } }, + "no_calls_ensures_ok_m1": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 5, "valid": 5, - "rank": 2 }, + "rank": 3 }, "qed": { "total": 5, "valid": 5 }, "wp:main": { "total": 10, "valid": 10, - "rank": 2 } } }, - "sequence": { "sequence_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, + "rank": 3 } } }, + "sequence": { "sequence_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, "valid": 2 } }, - "sequence_g_not_called_post_ok_q3": + "sequence_g_not_called_ensures_ok_q3": { "alt-ergo": { "total": 1, "valid": 1, "rank": 3 }, "wp:main": { "total": 1, "valid": 1, "rank": 3 } }, - "sequence_g_not_called_post_ok_q2": + "sequence_g_not_called_ensures_ok_q2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "sequence_g_not_called_post_ok_q1": + "sequence_g_not_called_ensures_ok_q1": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "sequence_g_not_called_post_ok_o2": + "sequence_g_not_called_ensures_ok_o2": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "sequence_g_called_ensures_ok_p3": + { "alt-ergo": { "total": 1, "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 4 } }, + "sequence_g_called_ensures_ok_p2": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "sequence_g_called_ensures_ok_p1": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "sequence_g_called_ensures_ok_o1": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "sequence_g_called_post_ok_p3": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 4 } }, - "sequence_g_called_post_ok_p2": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "sequence_g_called_post_ok_p1": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "sequence_g_called_post_ok_o1": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, "rank": 4 }, @@ -122,84 +102,90 @@ "wp:main": { "total": 10, "valid": 10, "rank": 4 } } }, - "loops": { "loops_loop_inv_ok_inv": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 13 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 13 } }, - "loops_loop_inv_ok_id_max": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 4 }, - "qed": { "total": 1, + "loops": { "loops_loop_invariant_ok_inv": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 13 }, + "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 4 } }, - "loops_loop_inv_ok_id_min": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 4 }, - "qed": { "total": 1, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 13 } }, + "loops_loop_invariant_ok_id_max": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 4 }, + "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 4 } }, + "loops_loop_invariant_ok_id_min": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 4 }, + "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 4 } }, - "loops_assign": { "qed": { "total": 6, - "valid": 6 }, - "wp:main": { "total": 6, - "valid": 6 } }, - "loops_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "loops_g_not_called_post_ok_v2": { "alt-ergo": + "wp:main": + { "total": 2, + "valid": 2, + "rank": 4 } }, + "loops_assigns": { "qed": { "total": 6, + "valid": 6 }, + "wp:main": { "total": 6, + "valid": 6 } }, + "loops_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "loops_g_not_called_ensures_ok_v2": { "alt-ergo": { "total": 1, "valid": 1, "rank": 5 }, - "wp:main": + "wp:main": { "total": 1, "valid": 1, "rank": 5 } }, - "loops_g_not_called_post_ok_v1": { "alt-ergo": + "loops_g_not_called_ensures_ok_v1": { "alt-ergo": { "total": 1, "valid": 1, "rank": 13 }, - "wp:main": + "wp:main": { "total": 1, "valid": 1, "rank": 13 } }, - "loops_g_called_post_ok_u2": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "loops_g_called_post_ok_u1": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 11 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 11 } }, - "loops_post_ok_last": { "alt-ergo": { "total": 1, + "loops_g_called_ensures_ok_u2": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "loops_g_called_ensures_ok_u1": { "alt-ergo": + { "total": 1, "valid": 1, - "rank": 12 }, - "wp:main": { "total": 1, + "rank": 11 }, + "wp:main": + { "total": 1, "valid": 1, - "rank": 12 } }, - "loops_post_ok_first": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "rank": 11 } }, + "loops_ensures_ok_last": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 12 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 12 } }, + "loops_ensures_ok_first": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 7, "valid": 7, "rank": 13 }, diff --git a/src/plugins/wp/tests/wp_plugin/sequence.i.1.report.json b/src/plugins/wp/tests/wp_plugin/sequence.i.1.report.json index 2ccebef6433af46638e3b7a1ac76a65a4b166ef4..6bc196531e7db3fa49259a7199057378abf93923 100644 --- a/src/plugins/wp/tests/wp_plugin/sequence.i.1.report.json +++ b/src/plugins/wp/tests/wp_plugin/sequence.i.1.report.json @@ -1,151 +1,146 @@ { "wp:global": { "why3:alt-ergo": { "total": 12, "valid": 12 }, "qed": { "total": 22, "valid": 22 }, "wp:main": { "total": 34, "valid": 34 } }, - "wp:functions": { "no_calls": { "no_calls_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, + "wp:functions": { "no_calls": { "no_calls_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, - "no_calls_post_ok_n3": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "no_calls_post_ok_n2": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "no_calls_post_ok_m2": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "no_calls_post_ok_m1": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "no_calls_ensures_ok_n3": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "no_calls_ensures_ok_n2": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "no_calls_ensures_ok_m2": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "no_calls_ensures_ok_m1": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "why3:alt-ergo": { "total": 3, "valid": 3 }, "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 5, "valid": 5 } } }, - "sequence": { "sequence_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, + "sequence": { "sequence_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, "valid": 2 } }, - "sequence_g_not_called_post_ok_q3": + "sequence_g_not_called_ensures_ok_q3": { "why3:alt-ergo": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "sequence_g_not_called_post_ok_q2": + "sequence_g_not_called_ensures_ok_q2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "sequence_g_not_called_post_ok_q1": + "sequence_g_not_called_ensures_ok_q1": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "sequence_g_not_called_post_ok_o2": + "sequence_g_not_called_ensures_ok_o2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "sequence_g_called_post_ok_p3": { "why3:alt-ergo": + "sequence_g_called_ensures_ok_p3": + { "why3:alt-ergo": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "sequence_g_called_ensures_ok_p2": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "sequence_g_called_ensures_ok_p1": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "sequence_g_called_ensures_ok_o1": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "wp:section": { "why3:alt-ergo": { "total": 2, + "valid": 2 }, + "qed": { "total": 8, + "valid": 8 }, + "wp:main": { "total": 10, + "valid": 10 } } }, + "loops": { "loops_loop_invariant_ok_inv": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2 } }, + "loops_loop_invariant_ok_id_max": { "why3:alt-ergo": { "total": 1, "valid": 1 }, - "wp:main": + "qed": { "total": 1, - "valid": 1 } }, - "sequence_g_called_post_ok_p2": { "qed": + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2 } }, + "loops_loop_invariant_ok_id_min": { "why3:alt-ergo": { "total": 1, "valid": 1 }, - "wp:main": + "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2 } }, + "loops_assigns": { "qed": { "total": 6, + "valid": 6 }, + "wp:main": { "total": 6, + "valid": 6 } }, + "loops_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, - "sequence_g_called_post_ok_p1": { "qed": + "loops_g_not_called_ensures_ok_v2": { "why3:alt-ergo": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "sequence_g_called_post_ok_o1": { "qed": + "loops_g_not_called_ensures_ok_v1": { "why3:alt-ergo": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "wp:section": { "why3:alt-ergo": { "total": 2, - "valid": 2 }, - "qed": { "total": 8, - "valid": 8 }, - "wp:main": { "total": 10, - "valid": 10 } } }, - "loops": { "loops_loop_inv_ok_inv": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2 } }, - "loops_loop_inv_ok_id_max": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2 } }, - "loops_loop_inv_ok_id_min": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2 } }, - "loops_assign": { "qed": { "total": 6, - "valid": 6 }, - "wp:main": { "total": 6, - "valid": 6 } }, - "loops_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "loops_g_not_called_post_ok_v2": { "why3:alt-ergo": - { "total": 1, + "loops_g_called_ensures_ok_u2": { "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, + "wp:main": + { "total": 1, "valid": 1 } }, - "loops_g_not_called_post_ok_v1": { "why3:alt-ergo": - { "total": 1, + "loops_g_called_ensures_ok_u1": { "why3:alt-ergo": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "loops_g_called_post_ok_u2": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "loops_g_called_post_ok_u1": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "loops_post_ok_last": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "loops_post_ok_first": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, + "wp:main": + { "total": 1, "valid": 1 } }, + "loops_ensures_ok_last": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "loops_ensures_ok_first": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "why3:alt-ergo": { "total": 7, "valid": 7 }, "qed": { "total": 12, diff --git a/src/plugins/wp/tests/wp_plugin/stmt.c.0.report.json b/src/plugins/wp/tests/wp_plugin/stmt.c.0.report.json index e6d8869043e24351111a710d430f3358203e6482..3031787356bdaecf2c9a3d976bfc3b2182a0f737 100644 --- a/src/plugins/wp/tests/wp_plugin/stmt.c.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/stmt.c.0.report.json @@ -3,37 +3,39 @@ "wp:functions": { "f": { "f_assert": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "f_stmt_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_stmt_post": { "qed": { "total": 1, "valid": 1 }, + "f_assigns": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_3": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "f_post_2": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "f_ensures_2": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 5, "valid": 5 }, "wp:main": { "total": 5, "valid": 5 } } }, "g": { "g_assert": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "g_post": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "g_ensures": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "h": { "h_assert": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "h_assert_2": { "qed": { "total": 1, "valid": 1 }, + "h": { "h_assert_2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "h_post": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "h_assert": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "h_ensures": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 3, "valid": 3 } } } } } diff --git a/src/plugins/wp/tests/wp_plugin/string_c.c.0.report.json b/src/plugins/wp/tests/wp_plugin/string_c.c.0.report.json index a4d745460b88f693b10e7b28968614fc8fe5225a..c36b874055fa6135a97ad7aadb2b4b37f77cca50 100644 --- a/src/plugins/wp/tests/wp_plugin/string_c.c.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/string_c.c.0.report.json @@ -1,56 +1,59 @@ { "wp:global": { "alt-ergo": { "total": 21, "valid": 21, "rank": 81 }, "qed": { "total": 23, "valid": 23 }, "wp:main": { "total": 44, "valid": 44, "rank": 81 } }, - "wp:functions": { "memcpy": { "memcpy_loop_inv_no_eva_2": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 62 }, - "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 62 } }, - "memcpy_loop_inv_no_eva": { "alt-ergo": - { "total": 2, - "valid": 2, - "rank": 16 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 16 } }, - "memcpy_loop_term": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 16 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 16 } }, - "memcpy_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "memcpy_loop_assign": { "alt-ergo": { "total": 1, + "wp:functions": { "memcpy": { "memcpy_loop_invariant_no_eva_2": { "alt-ergo": + { "total": 1, "valid": 1, - "rank": 40 }, - "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 3, + "rank": 62 }, + "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 62 } }, + "memcpy_loop_invariant_no_eva": { "alt-ergo": + { "total": 2, + "valid": 2, + "rank": 17 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 17 } }, + "memcpy_loop_variant": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 17 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 17 } }, + "memcpy_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "memcpy_loop_assigns": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 40 }, + "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 3, "valid": 3, "rank": 40 } }, - "memcpy_post_result_ptr": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "memcpy_post_copied_contents": { "alt-ergo": - { "total": 1, + "memcpy_ensures_result_ptr": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "memcpy_ensures_copied_contents": { "alt-ergo": + { "total": 1, "valid": 1, "rank": 48 }, - "wp:main": - { "total": 1, + "wp:main": + { "total": 1, "valid": 1, "rank": 48 } }, "wp:section": { "alt-ergo": { "total": 6, @@ -61,120 +64,122 @@ "wp:main": { "total": 12, "valid": 12, "rank": 62 } } }, - "memmove": { "memmove_loop_inv_no_eva_6": { "alt-ergo": - { "total": 1, + "memmove": { "memmove_loop_invariant_no_eva_6": { "alt-ergo": + { "total": 1, "valid": 1, "rank": 54 }, - "qed": - { "total": 1, + "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 2, + "wp:main": + { "total": 2, "valid": 2, "rank": 54 } }, - "memmove_loop_inv_no_eva_5": { "alt-ergo": - { "total": 2, + "memmove_loop_invariant_no_eva_5": { "alt-ergo": + { "total": 2, "valid": 2, "rank": 39 }, - "wp:main": - { "total": 2, + "wp:main": + { "total": 2, "valid": 2, "rank": 39 } }, - "memmove_loop_inv_no_eva_4": { "alt-ergo": - { "total": 2, + "memmove_loop_invariant_no_eva_4": { "alt-ergo": + { "total": 2, "valid": 2, "rank": 18 }, - "wp:main": - { "total": 2, + "wp:main": + { "total": 2, "valid": 2, "rank": 18 } }, - "memmove_loop_inv_no_eva_3": { "alt-ergo": - { "total": 1, + "memmove_loop_invariant_no_eva_3": { "alt-ergo": + { "total": 1, "valid": 1, - "rank": 81 }, - "qed": - { "total": 1, + "rank": 82 }, + "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 2, + "wp:main": + { "total": 2, "valid": 2, - "rank": 81 } }, - "memmove_loop_inv_no_eva_2": { "alt-ergo": - { "total": 1, + "rank": 82 } }, + "memmove_loop_invariant_no_eva_2": { "alt-ergo": + { "total": 1, "valid": 1, "rank": 38 }, - "qed": - { "total": 1, + "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 2, + "wp:main": + { "total": 2, "valid": 2, "rank": 38 } }, - "memmove_loop_inv_no_eva": { "alt-ergo": - { "total": 2, - "valid": 2, - "rank": 18 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 18 } }, - "memmove_loop_term_2": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 18 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 18 } }, - "memmove_loop_term": { "alt-ergo": { "total": 1, - "valid": 1, + "memmove_loop_invariant_no_eva": { "alt-ergo": + { "total": 2, + "valid": 2, "rank": 18 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, + "wp:main": + { "total": 2, "valid": 2, "rank": 18 } }, - "memmove_assign": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 6 }, - "qed": { "total": 7, - "valid": 7 }, - "wp:main": { "total": 8, - "valid": 8, - "rank": 6 } }, - "memmove_loop_assign_2": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 48 }, - "qed": { "total": 2, + "memmove_loop_variant_2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 18 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 18 } }, + "memmove_loop_variant": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 18 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 18 } }, + "memmove_assigns": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 6 }, + "qed": { "total": 7, + "valid": 7 }, + "wp:main": { "total": 8, + "valid": 8, + "rank": 6 } }, + "memmove_loop_assigns_2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 48 }, + "qed": { "total": 2, "valid": 2 }, - "wp:main": - { "total": 3, - "valid": 3, - "rank": 48 } }, - "memmove_loop_assign": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 56 }, - "qed": { "total": 2, - "valid": 2 }, - "wp:main": - { "total": 3, - "valid": 3, - "rank": 56 } }, - "memmove_post_result_ptr": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "memmove_post_copied_contents": { "alt-ergo": + "wp:main": + { "total": 3, + "valid": 3, + "rank": 48 } }, + "memmove_loop_assigns": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 57 }, + "qed": { "total": 2, + "valid": 2 }, + "wp:main": + { "total": 3, + "valid": 3, + "rank": 57 } }, + "memmove_ensures_result_ptr": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "memmove_ensures_copied_contents": { "alt-ergo": { "total": 1, "valid": 1, "rank": 63 }, - "wp:main": + "wp:main": { "total": 1, "valid": 1, "rank": 63 } }, diff --git a/src/plugins/wp/tests/wp_plugin/struct.i.0.report.json b/src/plugins/wp/tests/wp_plugin/struct.i.0.report.json index 092956c8375f940c46b72b5015fdbf139b087243..43c32102c1f0e9af55d4e9e6ccf1e0cbfd0e7a2e 100644 --- a/src/plugins/wp/tests/wp_plugin/struct.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/struct.i.0.report.json @@ -1,82 +1,82 @@ { "wp:global": { "qed": { "total": 18, "valid": 18 }, "wp:main": { "total": 18, "valid": 18 } }, - "wp:functions": { "id": { "id_post_qed_ok_P2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "id_post_qed_ok_P1": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "id": { "id_ensures_qed_ok_P2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "id_ensures_qed_ok_P1": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "g": { "g_assign": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "g_post_qed_ok_P5": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "g_post_qed_ok_P4": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "g_post_qed_ok_P3": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "g": { "g_assigns": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "g_ensures_qed_ok_P5": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "g_ensures_qed_ok_P4": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "g_ensures_qed_ok_P3": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 4, "valid": 4 } } }, - "f": { "f_post_qed_ok_E11": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_qed_ok_E10": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_qed_ok_E9": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_qed_ok_E8": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_qed_ok_E7": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_qed_ok_E6": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_qed_ok_E5": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_qed_ok_E4": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_qed_ok_E3": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_qed_ok_E2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_qed_ok_E1": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_qed_ok_E0": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "f": { "f_ensures_qed_ok_E11": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_qed_ok_E10": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_qed_ok_E9": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_qed_ok_E8": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_qed_ok_E7": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_qed_ok_E6": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_qed_ok_E5": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_qed_ok_E4": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_qed_ok_E3": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_qed_ok_E2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_qed_ok_E1": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_qed_ok_E0": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 12, "valid": 12 }, "wp:main": { "total": 12, diff --git a/src/plugins/wp/tests/wp_plugin/struct_hack.i.0.report.json b/src/plugins/wp/tests/wp_plugin/struct_hack.i.0.report.json index dc8d720b4ff807ae874736d30e52a21d2641c07d..4523e8814247f341638ecec89a9d3168b229b2f1 100644 --- a/src/plugins/wp/tests/wp_plugin/struct_hack.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/struct_hack.i.0.report.json @@ -1,49 +1,53 @@ -{ "wp:global": { "alt-ergo": { "total": 4, "valid": 4, "rank": 6 }, +{ "wp:global": { "alt-ergo": { "total": 4, "valid": 4, "rank": 7 }, "qed": { "total": 6, "valid": 6 }, - "wp:main": { "total": 10, "valid": 10, "rank": 6 } }, + "wp:main": { "total": 10, "valid": 10, "rank": 7 } }, "wp:functions": { "f0": { "f0_assert_qed_ok": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 5 }, + "rank": 6 }, "wp:main": { "total": 1, "valid": 1, - "rank": 5 } }, - "f0_loop_inv_qed_ok": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 6 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 6 } }, - "f0_loop_term": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, + "rank": 6 } }, + "f0_loop_invariant_qed_ok": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 7 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 7 } }, + "f0_loop_variant": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 6 }, + "rank": 7 }, "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 5, "valid": 5, - "rank": 6 } } }, + "rank": 7 } } }, "f1": { "f1_assert_qed_ok": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 4 }, + "rank": 5 }, "wp:main": { "total": 1, "valid": 1, - "rank": 4 } }, - "f1_loop_inv_qed_ok": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 5 } }, - "f1_loop_term": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, + "rank": 5 } }, + "f1_loop_invariant_qed_ok": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 5 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 5 } }, + "f1_loop_variant": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, "rank": 5 }, diff --git a/src/plugins/wp/tests/wp_plugin/subset.i.0.report.json b/src/plugins/wp/tests/wp_plugin/subset.i.0.report.json index 84b9b06872f8191626bdf6cb5d1b7d6513ac7fcf..ef1d646d8e32ce0c1919efc2786351e5bf8f3337 100644 --- a/src/plugins/wp/tests/wp_plugin/subset.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/subset.i.0.report.json @@ -1,14 +1,14 @@ -{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 23 }, - "wp:main": { "total": 1, "valid": 1, "rank": 23 } }, - "wp:functions": { "mem": { "mem_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 23 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 23 } }, +{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 25 }, + "wp:main": { "total": 1, "valid": 1, "rank": 25 } }, + "wp:functions": { "mem": { "mem_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 25 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 25 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 23 }, + "rank": 25 }, "wp:main": { "total": 1, "valid": 1, - "rank": 23 } } } } } + "rank": 25 } } } } } diff --git a/src/plugins/wp/tests/wp_plugin/trig.i.0.report.json b/src/plugins/wp/tests/wp_plugin/trig.i.0.report.json index 7ec6077cd80563bbd58be58da477887fabab9522..fd1831d59b5b4fcc02b93c1bafeeb7ab2c967df9 100644 --- a/src/plugins/wp/tests/wp_plugin/trig.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/trig.i.0.report.json @@ -1,34 +1,36 @@ { "wp:global": { "alt-ergo": { "total": 3, "valid": 2, "unknown": 1, - "rank": 12 }, + "rank": 13 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 4, "valid": 3, "unknown": 1, - "rank": 12 } }, - "wp:functions": { "foo": { "specialization_fconcat_pre_qed_ok_at_foo_stmt_1": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "rank": 13 } }, + "wp:functions": { "foo": { "fconcat_requires_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "foo_assert_qed_ok_B": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, "foo_assert_qed_ok_A": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 12 }, + "rank": 13 }, "wp:main": { "total": 1, "valid": 1, - "rank": 12 } }, + "rank": 13 } }, "foo_assert_qed_ok_S": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 12 }, + "rank": 13 }, "wp:main": { "total": 1, "valid": 1, - "rank": 12 } }, + "rank": 13 } }, "wp:section": { "alt-ergo": { "total": 3, "valid": 2, "unknown": 1, - "rank": 12 }, + "rank": 13 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 4, "valid": 3, "unknown": 1, - "rank": 12 } } } } } + "rank": 13 } } } } } diff --git a/src/plugins/wp/tests/wp_plugin/unfold_assigns.i b/src/plugins/wp/tests/wp_plugin/unfold_assigns.i index 10292c05425a2aa9ac5569352a282e7f64d8448d..67134bd987e4cf9f93eb8fa70081da03988cd864 100644 --- a/src/plugins/wp/tests/wp_plugin/unfold_assigns.i +++ b/src/plugins/wp/tests/wp_plugin/unfold_assigns.i @@ -34,3 +34,21 @@ void NO_UNFOLD_OK_3(struct S *s) { void NO_UNFOLD_KO(struct S *s) { f(s); } + +/*@ + ensures \separated(p,q) ==> (*q == \old(*q)); + assigns (*p) ; +*/ +void USE_ASSIGN_UNFOLD_OK(struct S *p , struct S *q) +{ + f(p); +} + +/*@ + ensures \separated(p,q) ==> (*q == \old(*q)); + assigns p->a, p->b ; +*/ +void USE_ASSIGN_UNFOLD_KO(struct S *p , struct S *q) +{ + f(p); +} diff --git a/src/plugins/wp/tests/wp_plugin/unroll/wp/typed/typed_unrolled_loop_post_zero.json b/src/plugins/wp/tests/wp_plugin/unroll/wp/typed/typed_unrolled_loop_ensures_zero.json similarity index 100% rename from src/plugins/wp/tests/wp_plugin/unroll/wp/typed/typed_unrolled_loop_post_zero.json rename to src/plugins/wp/tests/wp_plugin/unroll/wp/typed/typed_unrolled_loop_ensures_zero.json diff --git a/src/plugins/wp/tests/wp_plugin/unsafe-arrays.i.0.report.json b/src/plugins/wp/tests/wp_plugin/unsafe-arrays.i.0.report.json index 60c80faeb37a877685fb79a153f15f2a5c03eb35..b967bd53ad6fbf82e01cbb737f76c074cf36dbfa 100644 --- a/src/plugins/wp/tests/wp_plugin/unsafe-arrays.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/unsafe-arrays.i.0.report.json @@ -1,20 +1,20 @@ { "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 5 }, "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 3, "valid": 3, "rank": 5 } }, - "wp:functions": { "f": { "f_post_INDIRP": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 5 } }, - "f_post_STRUCT": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_ARRAYS": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "f": { "f_ensures_INDIRP": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, + "f_ensures_STRUCT": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_ARRAYS": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 5 }, diff --git a/src/plugins/wp/tests/wp_plugin/unsupported_init.i.0.report.json b/src/plugins/wp/tests/wp_plugin/unsupported_init.i.0.report.json index b5b21453ac5a522bd278670b0769ac9d494ab5b5..8d566a55f49681c4d13c773501c3210ad075c9e9 100644 --- a/src/plugins/wp/tests/wp_plugin/unsupported_init.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/unsupported_init.i.0.report.json @@ -1,12 +1,10 @@ { "wp:global": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 1, "unknown": 1 } }, - "wp:functions": { "f": { "specialization_cp_pre_r1_at_f_stmt_1": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, + "wp:functions": { "f": { "cp_requires_r1": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "f_assert_a1": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, diff --git a/src/plugins/wp/tests/wp_store/array.i.0.report.json b/src/plugins/wp/tests/wp_store/array.i.0.report.json index 4309fe970dbe945e01f1cc99c005029a50cef273..c86162e95a5989e56b6aef1c30cc7356377e1d0f 100644 --- a/src/plugins/wp/tests/wp_store/array.i.0.report.json +++ b/src/plugins/wp/tests/wp_store/array.i.0.report.json @@ -1,14 +1,16 @@ { "wp:global": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "wp:functions": { "g": { "g_post_P_addr_shift_qed_ok": { "qed": { "total": 1, + "wp:functions": { "g": { "g_ensures_P_addr_shift_qed_ok": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "g_ensures_P_startof_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "g_post_P_startof_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } } } } diff --git a/src/plugins/wp/tests/wp_store/natural.i.0.report.json b/src/plugins/wp/tests/wp_store/natural.i.0.report.json index 3f8bb47038d33292999ecc0f24905a9307d32217..c8fc7843294bb16b26a3bd0c4c054cd60a220604 100644 --- a/src/plugins/wp/tests/wp_store/natural.i.0.report.json +++ b/src/plugins/wp/tests/wp_store/natural.i.0.report.json @@ -1,12 +1,12 @@ { "wp:global": { "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 3, "valid": 3 } }, - "wp:functions": { "f": { "f_assign": { "qed": { "total": 2, "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "f_post_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "f": { "f_assigns": { "qed": { "total": 2, "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "f_ensures_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 3, "valid": 3 } } } } } diff --git a/src/plugins/wp/tests/wp_store/nonaliasing.i.0.report.json b/src/plugins/wp/tests/wp_store/nonaliasing.i.0.report.json index d0bf1a680b6835e4be56336c6dd6268620f51553..13c17773a9d2999f8a2d7f9fb714724423dfe2bb 100644 --- a/src/plugins/wp/tests/wp_store/nonaliasing.i.0.report.json +++ b/src/plugins/wp/tests/wp_store/nonaliasing.i.0.report.json @@ -1,17 +1,17 @@ { "wp:global": { "alt-ergo": { "total": 2, "valid": 2, "rank": 7 }, "wp:main": { "total": 2, "valid": 2, "rank": 7 } }, - "wp:functions": { "f": { "f_post_qed_ok_Q": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 6 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 6 } }, - "f_post_qed_ok_P": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 7 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 7 } }, + "wp:functions": { "f": { "f_ensures_qed_ok_Q": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 7 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 7 } }, + "f_ensures_qed_ok_P": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 7 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 7 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, "rank": 7 }, diff --git a/src/plugins/wp/tests/wp_store/nonaliasing.i.1.report.json b/src/plugins/wp/tests/wp_store/nonaliasing.i.1.report.json index c5b3f509659b635b748e26d66e5727a13a719992..7e0f92281c03ed4539a3d83a083f522d0dbbf1c8 100644 --- a/src/plugins/wp/tests/wp_store/nonaliasing.i.1.report.json +++ b/src/plugins/wp/tests/wp_store/nonaliasing.i.1.report.json @@ -1,17 +1,17 @@ { "wp:global": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": { "total": 2, "unknown": 2 } }, - "wp:functions": { "f": { "f_post_qed_ko_Q_oracle_ko": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, - "f_post_qed_ko_P_oracle_ko": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, + "wp:functions": { "f": { "f_ensures_qed_ko_Q_oracle_ko": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "f_ensures_qed_ko_P_oracle_ko": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": { "total": 2, diff --git a/src/plugins/wp/tests/wp_store/oracle_qualif/array.res.oracle b/src/plugins/wp/tests/wp_store/oracle_qualif/array.res.oracle index 7b12e86c3c98e107a44194eb0f2ddfc3e3d972f0..1106baba2b2508b2d93a9bbadc0f80d9923d922e 100644 --- a/src/plugins/wp/tests/wp_store/oracle_qualif/array.res.oracle +++ b/src/plugins/wp/tests/wp_store/oracle_qualif/array.res.oracle @@ -4,8 +4,8 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Qed] Goal typed_g_post_P_startof_qed_ok : Valid -[wp] [Qed] Goal typed_g_post_P_addr_shift_qed_ok : Valid +[wp] [Qed] Goal typed_g_ensures_P_startof_qed_ok : Valid +[wp] [Qed] Goal typed_g_ensures_P_addr_shift_qed_ok : Valid [wp] Proved goals: 2 / 2 Qed: 2 [wp] Report 'tests/wp_store/array.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_store/oracle_qualif/natural.res.oracle b/src/plugins/wp/tests/wp_store/oracle_qualif/natural.res.oracle index 0110b935966dfecd8915719e669039543d64b3f9..66190d57ab983a44e2f9f0832eaecc922d9601d1 100644 --- a/src/plugins/wp/tests/wp_store/oracle_qualif/natural.res.oracle +++ b/src/plugins/wp/tests/wp_store/oracle_qualif/natural.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Qed] Goal typed_f_post_qed_ok : Valid -[wp] [Qed] Goal typed_f_assign_part1 : Valid -[wp] [Qed] Goal typed_f_assign_part2 : Valid +[wp] [Qed] Goal typed_f_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_f_assigns_part1 : Valid +[wp] [Qed] Goal typed_f_assigns_part2 : Valid [wp] Proved goals: 3 / 3 Qed: 3 [wp] Report 'tests/wp_store/natural.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_store/oracle_qualif/nonaliasing.0.res.oracle b/src/plugins/wp/tests/wp_store/oracle_qualif/nonaliasing.0.res.oracle index 29a849b906773f864b9fdb6390253a9226ef013f..3dc493d3e125df62da6e67c67b416ffa02179d8b 100644 --- a/src/plugins/wp/tests/wp_store/oracle_qualif/nonaliasing.0.res.oracle +++ b/src/plugins/wp/tests/wp_store/oracle_qualif/nonaliasing.0.res.oracle @@ -4,8 +4,8 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Alt-Ergo] Goal typed_f_post_qed_ok_P : Valid -[wp] [Alt-Ergo] Goal typed_f_post_qed_ok_Q : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_qed_ok_P : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_qed_ok_Q : Valid [wp] Proved goals: 2 / 2 Qed: 0 Alt-Ergo: 2 diff --git a/src/plugins/wp/tests/wp_store/oracle_qualif/nonaliasing.1.res.oracle b/src/plugins/wp/tests/wp_store/oracle_qualif/nonaliasing.1.res.oracle index 6a6b87c415d7bc0c1465c0f2b5a76570fa9a2e65..53b6eb42b5afa2a59847fd1eb7a5f60f29705402 100644 --- a/src/plugins/wp/tests/wp_store/oracle_qualif/nonaliasing.1.res.oracle +++ b/src/plugins/wp/tests/wp_store/oracle_qualif/nonaliasing.1.res.oracle @@ -4,8 +4,8 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Alt-Ergo] Goal typed_f_post_qed_ko_P_oracle_ko : Step limit -[wp] [Alt-Ergo] Goal typed_f_post_qed_ko_Q_oracle_ko : Step limit +[wp] [Alt-Ergo] Goal typed_f_ensures_qed_ko_P_oracle_ko : Step limit +[wp] [Alt-Ergo] Goal typed_f_ensures_qed_ko_Q_oracle_ko : Step limit [wp] Proved goals: 0 / 2 Alt-Ergo: 0 (interrupted: 2) [wp] Report 'tests/wp_store/nonaliasing.i.1.report.json' diff --git a/src/plugins/wp/tests/wp_store/oracle_qualif/struct.res.oracle b/src/plugins/wp/tests/wp_store/oracle_qualif/struct.res.oracle index e7e39cce7cebc3cd822fb9f4b326578b7145fb85..f024426f2efb92f729f5a8d479f90290696787d8 100644 --- a/src/plugins/wp/tests/wp_store/oracle_qualif/struct.res.oracle +++ b/src/plugins/wp/tests/wp_store/oracle_qualif/struct.res.oracle @@ -5,11 +5,11 @@ [wp] Warning: Missing RTE guards [wp] 6 goals scheduled [wp] [Qed] Goal typed_f_assert_qed_ok : Valid -[wp] [Alt-Ergo] Goal typed_f_call_g_pre : Valid -[wp] [Qed] Goal typed_g_post : Valid -[wp] [Qed] Goal typed_g_assign : Valid -[wp] [Alt-Ergo] Goal typed_main_post_P_qed_ok : Valid -[wp] [Alt-Ergo] Goal typed_main_post_Q_qed_ok : Valid +[wp] [Alt-Ergo] Goal typed_f_call_g_requires : Valid +[wp] [Qed] Goal typed_g_ensures : Valid +[wp] [Qed] Goal typed_g_assigns : Valid +[wp] [Alt-Ergo] Goal typed_main_ensures_P_qed_ok : Valid +[wp] [Alt-Ergo] Goal typed_main_ensures_Q_qed_ok : Valid [wp] Proved goals: 6 / 6 Qed: 3 Alt-Ergo: 3 @@ -17,6 +17,6 @@ ------------------------------------------------------------- Functions WP Alt-Ergo Total Success g 2 - 2 100% -f 1 1 (12..24) 2 100% -main - 2 (32..44) 2 100% +f 1 1 (20..32) 2 100% +main - 2 (36..48) 2 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_store/struct.i.0.report.json b/src/plugins/wp/tests/wp_store/struct.i.0.report.json index 7d428c35c5aa845d866abe33d07a7c1f2cde7996..95af43d1bdf38f9f17374287bf20aed57d053532 100644 --- a/src/plugins/wp/tests/wp_store/struct.i.0.report.json +++ b/src/plugins/wp/tests/wp_store/struct.i.0.report.json @@ -1,48 +1,49 @@ -{ "wp:global": { "alt-ergo": { "total": 3, "valid": 3, "rank": 9 }, +{ "wp:global": { "alt-ergo": { "total": 3, "valid": 3, "rank": 10 }, "qed": { "total": 3, "valid": 3 }, - "wp:main": { "total": 6, "valid": 6, "rank": 9 } }, - "wp:functions": { "g": { "g_assign": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "g_post": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "wp:main": { "total": 6, "valid": 6, "rank": 10 } }, + "wp:functions": { "g": { "g_assigns": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "g_ensures": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "f": { "specialization_g_pre_at_f_stmt_4": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 4 } }, + "f": { "g_requires": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 6 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 6 } }, "f_assert_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 4 }, + "rank": 6 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 4 } } }, - "main": { "main_post_Q_qed_ok": { "alt-ergo": { "total": 1, + "rank": 6 } } }, + "main": { "main_ensures_Q_qed_ok": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 10 }, + "wp:main": { "total": 1, "valid": 1, - "rank": 9 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 9 } }, - "main_post_P_qed_ok": { "alt-ergo": { "total": 1, + "rank": 10 } }, + "main_ensures_P_qed_ok": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 10 }, + "wp:main": { "total": 1, "valid": 1, - "rank": 9 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 9 } }, + "rank": 10 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 9 }, + "rank": 10 }, "wp:main": { "total": 2, "valid": 2, - "rank": 9 } } } } } + "rank": 10 } } } } } diff --git a/src/plugins/wp/tests/wp_tip/oracle_qualif/tac_split_quantifiers.res.oracle b/src/plugins/wp/tests/wp_tip/oracle_qualif/tac_split_quantifiers.res.oracle index 0d18591704383c84f2857adeca5e6167aef6acea..b1263cdfe2943478bfb771d4ac1f794c4fee5daf 100644 --- a/src/plugins/wp/tests/wp_tip/oracle_qualif/tac_split_quantifiers.res.oracle +++ b/src/plugins/wp/tests/wp_tip/oracle_qualif/tac_split_quantifiers.res.oracle @@ -4,11 +4,11 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 5 goals scheduled -[wp] [Tactical] Goal typed_split_post_Goal_Exist_Or : Unknown -[wp] [Tactical] Goal typed_split_post_Goal_Exist_And : Unknown -[wp] [Tactical] Goal typed_split_post_Goal_Exist_And_bis : Unknown -[wp] [Tactical] Goal typed_split_post_Hyp_Forall_And : Unknown -[wp] [Tactical] Goal typed_split_post_Hyp_Forall_Or_bis : Unknown +[wp] [Tactical] Goal typed_split_ensures_Goal_Exist_Or : Unknown +[wp] [Tactical] Goal typed_split_ensures_Goal_Exist_And : Unknown +[wp] [Tactical] Goal typed_split_ensures_Goal_Exist_And_bis : Unknown +[wp] [Tactical] Goal typed_split_ensures_Hyp_Forall_And : Unknown +[wp] [Tactical] Goal typed_split_ensures_Hyp_Forall_Or_bis : Unknown [wp] Proved goals: 0 / 5 [wp] Report 'tests/wp_tip/tac_split_quantifiers.i.0.report.json' ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_tip/tac_split_quantifiers.i.0.report.json b/src/plugins/wp/tests/wp_tip/tac_split_quantifiers.i.0.report.json index 077e3eeea9cd555a4944ea9b17a4b35e8b7c0b7f..c7343abe87df4acb37fc99e4213b907f9ec4b188 100644 --- a/src/plugins/wp/tests/wp_tip/tac_split_quantifiers.i.0.report.json +++ b/src/plugins/wp/tests/wp_tip/tac_split_quantifiers.i.0.report.json @@ -1,35 +1,35 @@ { "wp:global": { "script": { "total": 5, "unknown": 5 }, "wp:main": { "total": 5, "unknown": 5 } }, - "wp:functions": { "split": { "split_post_Hyp_Forall_Or_bis": { "script": + "wp:functions": { "split": { "split_ensures_Hyp_Forall_Or_bis": { "script": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "split_ensures_Hyp_Forall_And": { "script": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "split_post_Hyp_Forall_And": { "script": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, - "split_post_Goal_Exist_And_bis": { "script": + "split_ensures_Goal_Exist_And_bis": { "script": { "total": 1, "unknown": 1 }, - "wp:main": + "wp:main": { "total": 1, "unknown": 1 } }, - "split_post_Goal_Exist_And": { "script": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, - "split_post_Goal_Exist_Or": { "script": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, + "split_ensures_Goal_Exist_And": { "script": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "split_ensures_Goal_Exist_Or": { "script": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, "wp:section": { "script": { "total": 5, "unknown": 5 }, "wp:main": { "total": 5, diff --git a/src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_post_Goal_Exist_And.json b/src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_ensures_Goal_Exist_And.json similarity index 100% rename from src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_post_Goal_Exist_And.json rename to src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_ensures_Goal_Exist_And.json diff --git a/src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_post_Goal_Exist_And_bis.json b/src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_ensures_Goal_Exist_And_bis.json similarity index 100% rename from src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_post_Goal_Exist_And_bis.json rename to src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_ensures_Goal_Exist_And_bis.json diff --git a/src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_post_Goal_Exist_Or.json b/src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_ensures_Goal_Exist_Or.json similarity index 100% rename from src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_post_Goal_Exist_Or.json rename to src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_ensures_Goal_Exist_Or.json diff --git a/src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_post_Hyp_Forall_And.json b/src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_ensures_Hyp_Forall_And.json similarity index 100% rename from src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_post_Hyp_Forall_And.json rename to src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_ensures_Hyp_Forall_And.json diff --git a/src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_post_Hyp_Forall_Or_bis.json b/src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_ensures_Hyp_Forall_Or_bis.json similarity index 100% rename from src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_post_Hyp_Forall_Or_bis.json rename to src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_ensures_Hyp_Forall_Or_bis.json diff --git a/src/plugins/wp/tests/wp_typed/array_initialized.c.0.report.json b/src/plugins/wp/tests/wp_typed/array_initialized.c.0.report.json index e623d1cea9408acff38877a51e026beb402b79f9..0a32f1d88d086e8c62c1f953143a1138a2367b01 100644 --- a/src/plugins/wp/tests/wp_typed/array_initialized.c.0.report.json +++ b/src/plugins/wp/tests/wp_typed/array_initialized.c.0.report.json @@ -47,15 +47,15 @@ "wp:main": { "total": 1, "valid": 1, "rank": 10 } } }, - "simpl": { "simpl_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, + "simpl": { "simpl_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 4 }, + "rank": 5 }, "wp:main": { "total": 1, "valid": 1, - "rank": 4 } } } } } + "rank": 5 } } } } } diff --git a/src/plugins/wp/tests/wp_typed/array_initialized.c.1.report.json b/src/plugins/wp/tests/wp_typed/array_initialized.c.1.report.json index 6eca195283b626848bcfcd2943a41fd4c0ddada6..d92ae09acaf07155d3b3936699f13d6d3a796e6f 100644 --- a/src/plugins/wp/tests/wp_typed/array_initialized.c.1.report.json +++ b/src/plugins/wp/tests/wp_typed/array_initialized.c.1.report.json @@ -36,26 +36,26 @@ "main_pointer": { "main_pointer_assert": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 16 }, + "rank": 18 }, "wp:main": { "total": 1, "valid": 1, - "rank": 16 } }, + "rank": 18 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 16 }, + "rank": 18 }, "wp:main": { "total": 1, "valid": 1, - "rank": 16 } } }, - "simpl": { "simpl_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, + "rank": 18 } } }, + "simpl": { "simpl_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 4 }, + "rank": 5 }, "wp:main": { "total": 1, "valid": 1, - "rank": 4 } } } } } + "rank": 5 } } } } } diff --git a/src/plugins/wp/tests/wp_typed/avar.i.0.report.json b/src/plugins/wp/tests/wp_typed/avar.i.0.report.json index f29b108a2994725b97662aa5af32e6f019242847..4497f6d5e8d209a556521cb6c092103e5968ccc9 100644 --- a/src/plugins/wp/tests/wp_typed/avar.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/avar.i.0.report.json @@ -1,11 +1,8 @@ { "wp:global": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "wp:functions": { "g": { "specialization_f_pre_at_g_stmt_1": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "wp:functions": { "g": { "f_requires": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } } } } diff --git a/src/plugins/wp/tests/wp_typed/oracle/struct_array_type.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/struct_array_type.res.oracle index 6247f9349b2f81641088d068f7873ec595402e60..0fd6e8fdb49bf3a49a5b8ff9894c01fc8d0fa691 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/struct_array_type.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/struct_array_type.res.oracle @@ -5,12 +5,12 @@ [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp:print-generated] - "WPOUT/typed/f_post.ergo" + "WPOUT/typed/f_ensures.ergo" (* ---------------------------------------------------------- *) (* --- Post-condition (file tests/wp_typed/struct_array_type.i, line 16) in 'f' --- *) (* ---------------------------------------------------------- *) - goal f_post: + goal f_ensures: forall i : int. forall t : S1_s farray. let a = t[i] : S1_s in diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/array_initialized.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/array_initialized.0.res.oracle index 9a98e84f0d4bedc9ae109c667a27713ade69d3e3..55bc508f1a96391f8b5e8b3406c870b63b80a93f 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/array_initialized.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/array_initialized.0.res.oracle @@ -10,7 +10,7 @@ [wp] [Alt-Ergo] Goal typed_main2_assert : Valid [wp] [Qed] Goal typed_main3_assert : Valid [wp] [Alt-Ergo] Goal typed_main_pointer_assert : Valid -[wp] [Alt-Ergo] Goal typed_simpl_post : Valid +[wp] [Alt-Ergo] Goal typed_simpl_ensures : Valid [wp] Proved goals: 5 / 5 Qed: 1 Alt-Ergo: 4 @@ -21,5 +21,5 @@ main1 - 1 (1..12) 1 100% main2 - 1 (96..120) 1 100% main3 1 - 1 100% main_pointer - 1 (36..48) 1 100% -simpl - 1 (12..24) 1 100% +simpl - 1 (16..28) 1 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/array_initialized.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/array_initialized.1.res.oracle index def88c75b757cca27f85105bd4d7c0adca739ef1..87594e50f05a223f6f149c05b3225c34f67e5f5c 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/array_initialized.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/array_initialized.1.res.oracle @@ -10,7 +10,7 @@ [wp] [Alt-Ergo] Goal typed_main2_assert : Valid [wp] [Qed] Goal typed_main3_assert : Valid [wp] [Alt-Ergo] Goal typed_main_pointer_assert : Valid -[wp] [Alt-Ergo] Goal typed_simpl_post : Valid +[wp] [Alt-Ergo] Goal typed_simpl_ensures : Valid [wp] Proved goals: 5 / 5 Qed: 1 Alt-Ergo: 4 @@ -20,6 +20,6 @@ Functions WP Alt-Ergo Total Success main1 - 1 (16..28) 1 100% main2 - 1 (112..136) 1 100% main3 1 - 1 100% -main_pointer - 1 (56..80) 1 100% -simpl - 1 (12..24) 1 100% +main_pointer - 1 (72..96) 1 100% +simpl - 1 (16..28) 1 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/avar.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/avar.res.oracle index efa2372cf106975f04ca4df7dea7fdbfa5ab1532..ea8b44d41a6028c7b9384312669efae2c618bb68 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/avar.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/avar.res.oracle @@ -6,7 +6,7 @@ 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] [Qed] Goal typed_g_call_f_pre : Valid +[wp] [Qed] Goal typed_g_call_f_requires : Valid [wp] Proved goals: 1 / 1 Qed: 1 [wp] Report 'tests/wp_typed/avar.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/shift_lemma.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/shift_lemma.res.oracle index 7d8c0dd30f14e0eef991620398db4052d9e2895a..bc4d77cc431790076dbb90c61072acdb5f86a902 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/shift_lemma.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/shift_lemma.res.oracle @@ -15,5 +15,5 @@ [wp] Report 'tests/wp_typed/shift_lemma.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -f 2 3 (16..28) 5 100% +f 2 3 (20..32) 5 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/struct_array_type.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/struct_array_type.res.oracle index 70b3096605936bacfc2adb4c2dd8416319dde980..2ef7db89cdd4f28c0e01042bb9d4c958f3cdaf5f 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/struct_array_type.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/struct_array_type.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Alt-Ergo] Goal typed_f_post : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures : Valid [wp] Proved goals: 1 / 1 Qed: 0 Alt-Ergo: 1 diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_alloc.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_alloc.0.res.oracle index 2995594dd251456cf11c71dacec3b056084bcc43..afbfa61d8da8bc9c3ef4cf1f1ed99ae5ca36ea28 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_alloc.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_alloc.0.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 7 goals scheduled -[wp] [Qed] Goal typed_f_assign : Valid -[wp] [Qed] Goal typed_g_assign : Valid -[wp] [Alt-Ergo] Goal typed_h_post : Valid +[wp] [Qed] Goal typed_f_assigns : Valid +[wp] [Qed] Goal typed_g_assigns : Valid +[wp] [Alt-Ergo] Goal typed_h_ensures : Valid [wp] [Qed] Goal typed_job_assert : Valid [wp] [Alt-Ergo] Goal typed_job_assert_2 : Valid [wp] [Qed] Goal typed_job_assert_3 : Valid diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_alloc.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_alloc.1.res.oracle index a01f97f9a20f7f16bdbacfe5629737fc3a25e2bd..7a194c5adbf9c96f8495e0d8e9581a0a37ae53b5 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_alloc.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_alloc.1.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 7 goals scheduled -[wp] [Qed] Goal typed_ref_f_assign : Valid -[wp] [Qed] Goal typed_ref_g_assign : Valid -[wp] [Alt-Ergo] Goal typed_ref_h_post : Valid +[wp] [Qed] Goal typed_ref_f_assigns : Valid +[wp] [Qed] Goal typed_ref_g_assigns : Valid +[wp] [Alt-Ergo] Goal typed_ref_h_ensures : Valid [wp] [Qed] Goal typed_ref_job_assert : Valid [wp] [Alt-Ergo] Goal typed_ref_job_assert_2 : Valid [wp] [Qed] Goal typed_ref_job_assert_3 : Valid diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_bitwise.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_bitwise.0.res.oracle index ccce12a56f885be3046607951ca617b1457ac648..a595a3d3871839388679af679265d1bb0c8c12c8 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_bitwise.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_bitwise.0.res.oracle @@ -30,26 +30,26 @@ [wp] [Alt-Ergo] Goal typed_band1_ulong_assert_ok_2 : Valid [wp] [Qed] Goal typed_band1_ushort_assert_ok : Valid [wp] [Alt-Ergo] Goal typed_band1_ushort_assert_ok_2 : Valid -[wp] [Alt-Ergo] Goal typed_band_char_post_ok : Valid -[wp] [Qed] Goal typed_band_int_post_ok : Valid +[wp] [Alt-Ergo] Goal typed_band_char_ensures_ok : Valid +[wp] [Qed] Goal typed_band_int_ensures_ok : Valid [wp] [Qed] Goal typed_band_int_assert_ok : Valid -[wp] [Alt-Ergo] Goal typed_band_uchar_post_ok : Valid -[wp] [Qed] Goal typed_band_uint_post_ok : Valid -[wp] [Alt-Ergo] Goal typed_bnot_char_post_ok : Valid -[wp] [Qed] Goal typed_bnot_int_post_ok : Valid -[wp] [Qed] Goal typed_bnot_uchar_post_ok : Valid -[wp] [Qed] Goal typed_bnot_uint_post_ok : Valid -[wp] [Alt-Ergo] Goal typed_bor_char_post_ok : Valid -[wp] [Qed] Goal typed_bor_int_post_ok : Valid -[wp] [Qed] Goal typed_bor_uchar_post_ok : Valid -[wp] [Qed] Goal typed_bor_uint_post_ok : Valid -[wp] [Alt-Ergo] Goal typed_bxor_char_post_ok : Valid -[wp] [Qed] Goal typed_bxor_int_post_ok : Valid -[wp] [Qed] Goal typed_bxor_uchar_post_ok : Valid -[wp] [Alt-Ergo] Goal typed_bxor_uchar_post_ok_2 : Valid -[wp] [Qed] Goal typed_bxor_uint_post_ok : Valid -[wp] [Alt-Ergo] Goal typed_bxor_uint_post_ok_2 : Valid -[wp] [Qed] Goal typed_cast_post_ok : Valid +[wp] [Alt-Ergo] Goal typed_band_uchar_ensures_ok : Valid +[wp] [Qed] Goal typed_band_uint_ensures_ok : Valid +[wp] [Alt-Ergo] Goal typed_bnot_char_ensures_ok : Valid +[wp] [Qed] Goal typed_bnot_int_ensures_ok : Valid +[wp] [Qed] Goal typed_bnot_uchar_ensures_ok : Valid +[wp] [Qed] Goal typed_bnot_uint_ensures_ok : Valid +[wp] [Alt-Ergo] Goal typed_bor_char_ensures_ok : Valid +[wp] [Qed] Goal typed_bor_int_ensures_ok : Valid +[wp] [Qed] Goal typed_bor_uchar_ensures_ok : Valid +[wp] [Qed] Goal typed_bor_uint_ensures_ok : Valid +[wp] [Alt-Ergo] Goal typed_bxor_char_ensures_ok : Valid +[wp] [Qed] Goal typed_bxor_int_ensures_ok : Valid +[wp] [Qed] Goal typed_bxor_uchar_ensures_ok : Valid +[wp] [Alt-Ergo] Goal typed_bxor_uchar_ensures_ok_2 : Valid +[wp] [Qed] Goal typed_bxor_uint_ensures_ok : Valid +[wp] [Alt-Ergo] Goal typed_bxor_uint_ensures_ok_2 : Valid +[wp] [Qed] Goal typed_cast_ensures_ok : Valid [wp] [Qed] Goal typed_cast_assert_ok : Valid [wp] [Qed] Goal typed_cast_assert_ok_2 : Valid [wp] [Qed] Goal typed_cast_assert_ok_3 : Valid @@ -57,14 +57,14 @@ [wp] [Qed] Goal typed_cast_assert_ok_5 : Valid [wp] [Qed] Goal typed_cast_assert_ok_6 : Valid [wp] [Qed] Goal typed_cast_assert_ok_7 : Valid -[wp] [Qed] Goal typed_lshift_char_post_ok : Valid -[wp] [Qed] Goal typed_lshift_int_post_ok : Valid -[wp] [Qed] Goal typed_lshift_uchar_post_ok : Valid -[wp] [Qed] Goal typed_lshift_uint_post_ok : Valid -[wp] [Qed] Goal typed_rshift_char_post_ok : Valid -[wp] [Qed] Goal typed_rshift_int_post_ok : Valid -[wp] [Alt-Ergo] Goal typed_rshift_uchar_post_ok : Valid -[wp] [Qed] Goal typed_rshift_uint_post_ok : Valid +[wp] [Qed] Goal typed_lshift_char_ensures_ok : Valid +[wp] [Qed] Goal typed_lshift_int_ensures_ok : Valid +[wp] [Qed] Goal typed_lshift_uchar_ensures_ok : Valid +[wp] [Qed] Goal typed_lshift_uint_ensures_ok : Valid +[wp] [Qed] Goal typed_rshift_char_ensures_ok : Valid +[wp] [Qed] Goal typed_rshift_int_ensures_ok : Valid +[wp] [Alt-Ergo] Goal typed_rshift_uchar_ensures_ok : Valid +[wp] [Qed] Goal typed_rshift_uint_ensures_ok : Valid [wp] Proved goals: 61 / 61 Qed: 41 Alt-Ergo: 20 @@ -80,27 +80,27 @@ bxor_int 1 - 1 100% bnot_int 1 - 1 100% lshift_int 1 - 1 100% rshift_int 1 - 1 100% -band1_uint 1 1 (8..20) 2 100% +band1_uint 1 1 (12..24) 2 100% band_uint 1 - 1 100% bor_uint 1 - 1 100% -bxor_uint 1 1 (8..20) 2 100% +bxor_uint 1 1 (12..24) 2 100% bnot_uint 1 - 1 100% lshift_uint 1 - 1 100% rshift_uint 1 - 1 100% -band_char - 1 (8..20) 1 100% -bor_char - 1 (8..20) 1 100% -bxor_char - 1 (8..20) 1 100% -bnot_char - 1 (8..20) 1 100% +band_char - 1 (12..24) 1 100% +bor_char - 1 (12..24) 1 100% +bxor_char - 1 (12..24) 1 100% +bnot_char - 1 (12..24) 1 100% lshift_char 1 - 1 100% rshift_char 1 - 1 100% -band1_uchar 1 1 (8..20) 2 100% -band_uchar - 1 (8..20) 1 100% +band1_uchar 1 1 (12..24) 2 100% +band_uchar - 1 (12..24) 1 100% bor_uchar 1 - 1 100% -bxor_uchar 1 1 (8..20) 2 100% +bxor_uchar 1 1 (12..24) 2 100% bnot_uchar 1 - 1 100% lshift_uchar 1 - 1 100% -rshift_uchar - 1 (16..28) 1 100% -band1_ushort 1 1 (8..20) 2 100% -band1_ulong 1 1 (8..20) 2 100% +rshift_uchar - 1 (24..36) 1 100% +band1_ushort 1 1 (12..24) 2 100% +band1_ulong 1 1 (12..24) 2 100% cast 8 - 8 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_bitwise.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_bitwise.1.res.oracle index 6e4e81ca16ed79f2618df3c096921f7ae70dfb33..a2caebabd5becd1830646d5aab478094978856a4 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_bitwise.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_bitwise.1.res.oracle @@ -5,8 +5,8 @@ [wp] Warning: Missing RTE guards [wp] 4 goals scheduled [wp] [Alt-Ergo] Goal typed_band_int_assert_ko : Unknown -[wp] [Alt-Ergo] Goal typed_bnot_uchar_post_ko : Unknown -[wp] [Alt-Ergo] Goal typed_bnot_uint_post_ko : Unknown +[wp] [Alt-Ergo] Goal typed_bnot_uchar_ensures_ko : Unknown +[wp] [Alt-Ergo] Goal typed_bnot_uint_ensures_ko : Unknown [wp] [Alt-Ergo] Goal typed_cast_assert_ko : Unknown [wp] Proved goals: 0 / 4 Alt-Ergo: 0 (unknown: 4) 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 5301dafeda2ae40eee92008fe2e6d8d4768f92d6..67b88136c1a976993c2693f338f304b817fae021 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 @@ -13,5 +13,5 @@ [wp] Report 'tests/wp_typed/unit_cast.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -f - 1 (12..24) 1 100% +f - 1 (20..32) 1 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_cst.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_cst.res.oracle index 5498e02d849c598a8b9d60c6c1999cbf889713b8..0bc7e2733a382db0f26543c61fb90b1017700553 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_cst.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_cst.res.oracle @@ -4,8 +4,8 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Qed] Goal typed_f_post_A : Valid -[wp] [Qed] Goal typed_f_post_B : Valid +[wp] [Qed] Goal typed_f_ensures_A : Valid +[wp] [Qed] Goal typed_f_ensures_B : Valid [wp] Proved goals: 2 / 2 Qed: 2 [wp] Report 'tests/wp_typed/unit_cst.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_float.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_float.res.oracle index 1231de6e7feabd5cdf451917f0cf9259b611b021..8e9d20e5c7387bf1c1a5a36137a9a7353329aa1f 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_float.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_float.res.oracle @@ -7,12 +7,12 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled -[wp] [Qed] Goal typed_main_post_CST_F : Valid -[wp] [Qed] Goal typed_main_post_CST_D : Valid -[wp] [Qed] Goal typed_main_post_CNV_F : Valid -[wp] [Qed] Goal typed_main_post_CNV_D : Valid -[wp] [Qed] Goal typed_main_post_VAR_F : Valid -[wp] [Qed] Goal typed_main_post_VAR_D : Valid +[wp] [Qed] Goal typed_main_ensures_CST_F : Valid +[wp] [Qed] Goal typed_main_ensures_CST_D : Valid +[wp] [Qed] Goal typed_main_ensures_CNV_F : Valid +[wp] [Qed] Goal typed_main_ensures_CNV_D : Valid +[wp] [Qed] Goal typed_main_ensures_VAR_F : Valid +[wp] [Qed] Goal typed_main_ensures_VAR_D : Valid [wp] Proved goals: 6 / 6 Qed: 6 [wp] Report 'tests/wp_typed/unit_float.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_hard.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_hard.res.oracle index 75ce14ece7b1b71d4c70fd7480221283b870c4ff..9f608e372b6afc911ba866a11fb091dedc7bf480 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_hard.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_hard.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Qed] Goal typed_main_pre_p_is_33FF : Valid -[wp] [Qed] Goal typed_main_pre_q_is_66F0 : Valid -[wp] [Alt-Ergo] Goal typed_main_pre_r_is_q1_ko : Unknown +[wp] [Qed] Goal typed_main_requires_p_is_33FF : Valid +[wp] [Qed] Goal typed_main_requires_q_is_66F0 : Valid +[wp] [Alt-Ergo] Goal typed_main_requires_r_is_q1_ko : Unknown [wp] Proved goals: 2 / 3 Qed: 2 Alt-Ergo: 0 (unknown: 1) diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_ite.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_ite.res.oracle index 133ef86e7ba4d5f5a7a7c5288926e10e2eac1dc7..2bf33e40c9f2eac3d57bcd02040efbae8ab93899 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_ite.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_ite.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Qed] Goal typed_check_post : Valid +[wp] [Qed] Goal typed_check_ensures : Valid [wp] Proved goals: 1 / 1 Qed: 1 [wp] Report 'tests/wp_typed/unit_ite.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_labels.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_labels.res.oracle index adbf31f89a8f903cfc77a7882fc3dec7c5087b41..7e46e25582e8429d100714ee198f8b908d97bdfd 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_labels.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_labels.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Alt-Ergo] Goal typed_duplet_post : Valid +[wp] [Alt-Ergo] Goal typed_duplet_ensures : Valid [wp] [Alt-Ergo] Goal typed_duplet_assert_PI : Valid [wp] [Alt-Ergo] Goal typed_duplet_assert_PJ : Valid [wp] Proved goals: 3 / 3 diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_local.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_local.0.res.oracle index b745a6959fa51fba82d3b8cbe34a0f36bfd33e25..7227cb987de43a153c9ed0c16e54ffe88f7b972f 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_local.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_local.0.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Qed] Goal typed_bar_assign : Valid -[wp] [Qed] Goal typed_foo_assign_part1 : Valid -[wp] [Alt-Ergo] Goal typed_foo_assign_part2 : Valid +[wp] [Qed] Goal typed_bar_assigns : Valid +[wp] [Qed] Goal typed_foo_assigns_part1 : Valid +[wp] [Alt-Ergo] Goal typed_foo_assigns_part2 : Valid [wp] Proved goals: 3 / 3 Qed: 2 Alt-Ergo: 1 diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_local.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_local.1.res.oracle index 78ec67483d3acdfde7ca5820114b77a1d689e0e6..3d3c8a01300184dcaea4550d2fd3a2d11f8ad975 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_local.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_local.1.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Alt-Ergo] Goal typed_raw_bar_assign : Valid -[wp] [Alt-Ergo] Goal typed_raw_foo_assign_part1 : Valid -[wp] [Alt-Ergo] Goal typed_raw_foo_assign_part2 : Valid +[wp] [Alt-Ergo] Goal typed_raw_bar_assigns : Valid +[wp] [Alt-Ergo] Goal typed_raw_foo_assigns_part1 : Valid +[wp] [Alt-Ergo] Goal typed_raw_foo_assigns_part2 : Valid [wp] Proved goals: 3 / 3 Qed: 0 Alt-Ergo: 3 diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_loopscope.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_loopscope.0.res.oracle index a675b0321f47aa997488709002241e089530cd42..b2061aaf772d9df676fc6447432bc1abb323a55a 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_loopscope.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_loopscope.0.res.oracle @@ -6,8 +6,8 @@ [wp] tests/wp_typed/unit_loopscope.i:14: Warning: Missing assigns clause (assigns 'everything' instead) [wp] 2 goals scheduled -[wp] [Qed] Goal typed_f_loop_inv_preserved : Valid -[wp] [Alt-Ergo] Goal typed_f_loop_inv_established : Unknown +[wp] [Qed] Goal typed_f_loop_invariant_preserved : Valid +[wp] [Alt-Ergo] Goal typed_f_loop_invariant_established : Unknown [wp] Proved goals: 1 / 2 Qed: 1 Alt-Ergo: 0 (unknown: 1) diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_loopscope.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_loopscope.1.res.oracle index a3cbbc8f420d320a28e3bc44cbeae791c150bba4..d703b7baa1c6cab1069eaf5fe9262a112f81e35b 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_loopscope.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_loopscope.1.res.oracle @@ -6,8 +6,8 @@ [wp] tests/wp_typed/unit_loopscope.i:14: Warning: Missing assigns clause (assigns 'everything' instead) [wp] 2 goals scheduled -[wp] [Qed] Goal typed_ref_f_loop_inv_preserved : Valid -[wp] [Alt-Ergo] Goal typed_ref_f_loop_inv_established : Unknown +[wp] [Qed] Goal typed_ref_f_loop_invariant_preserved : Valid +[wp] [Alt-Ergo] Goal typed_ref_f_loop_invariant_established : Unknown [wp] Proved goals: 1 / 2 Qed: 1 Alt-Ergo: 0 (unknown: 1) diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_matrix.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_matrix.res.oracle index 90dcaaae65b8ee59320705559744d27186da405a..2f2abe5fd490075164b369f079aebb42299febfe 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_matrix.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_matrix.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Alt-Ergo] Goal typed_make_post_OK1 : Valid -[wp] [Qed] Goal typed_make_post_OK2 : Valid -[wp] [Alt-Ergo] Goal typed_make_post_KO : Unknown +[wp] [Alt-Ergo] Goal typed_make_ensures_OK1 : Valid +[wp] [Qed] Goal typed_make_ensures_OK2 : Valid +[wp] [Alt-Ergo] Goal typed_make_ensures_KO : Unknown [wp] Proved goals: 2 / 3 Qed: 1 Alt-Ergo: 1 (unknown: 1) diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_string.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_string.res.oracle index a50f64d5bc92af38c5ad8d5c44f473a6ebc4599a..93cfd59ec4c2bfbea470e88d39c0e2542fb7424a 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_string.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_string.res.oracle @@ -16,5 +16,5 @@ [wp] Report 'tests/wp_typed/unit_string.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -f - 6 (120..144) 6 100% +f - 6 (128..152) 6 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_tset.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_tset.res.oracle index 92f9519eb50f9387583b7216946e751244b72fb9..27f38791eabe7e1acc381b905d9a26eeb0f7d48c 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_tset.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_tset.res.oracle @@ -4,8 +4,8 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Qed] Goal typed_complex_call_job_pre : Valid -[wp] [Qed] Goal typed_complex_stmt_assign : Valid +[wp] [Qed] Goal typed_complex_call_job_requires : Valid +[wp] [Qed] Goal typed_complex_assigns : Valid [wp] Proved goals: 2 / 2 Qed: 2 [wp] Report 'tests/wp_typed/unit_tset.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_bitwise.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_bitwise.0.res.oracle index cb76492cf52a2c06f9ff9486d2cb585ff7fcd10a..fd7d9e0c8a0ebfa438db6fea1f129d4742391219 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_bitwise.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_bitwise.0.res.oracle @@ -4,28 +4,28 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 12 goals scheduled -[wp] [Qed] Goal typed_ref_rl1_post_b0 : Valid -[wp] [Alt-Ergo] Goal typed_ref_rl1_post_bk : Valid -[wp] [Alt-Ergo] Goal typed_ref_rln32_post_b1 : Valid -[wp] [Alt-Ergo] Goal typed_ref_rln32_post_b2 : Valid -[wp] [Alt-Ergo] Goal typed_ref_rln64_post_b1 : Valid -[wp] [Alt-Ergo] Goal typed_ref_rln64_post_b2 : Valid -[wp] [Alt-Ergo] Goal typed_ref_rr1_post_b0 : Valid -[wp] [Alt-Ergo] Goal typed_ref_rr1_post_bk : Valid -[wp] [Alt-Ergo] Goal typed_ref_rrn32_post_b1 : Valid -[wp] [Alt-Ergo] Goal typed_ref_rrn32_post_b2 : Valid -[wp] [Alt-Ergo] Goal typed_ref_rrn64_post_b1 : Valid -[wp] [Alt-Ergo] Goal typed_ref_rrn64_post_b2 : Valid +[wp] [Qed] Goal typed_ref_rl1_ensures_b0 : Valid +[wp] [Alt-Ergo] Goal typed_ref_rl1_ensures_bk : Valid +[wp] [Alt-Ergo] Goal typed_ref_rln32_ensures_b1 : Valid +[wp] [Alt-Ergo] Goal typed_ref_rln32_ensures_b2 : Valid +[wp] [Alt-Ergo] Goal typed_ref_rln64_ensures_b1 : Valid +[wp] [Alt-Ergo] Goal typed_ref_rln64_ensures_b2 : Valid +[wp] [Alt-Ergo] Goal typed_ref_rr1_ensures_b0 : Valid +[wp] [Alt-Ergo] Goal typed_ref_rr1_ensures_bk : Valid +[wp] [Alt-Ergo] Goal typed_ref_rrn32_ensures_b1 : Valid +[wp] [Alt-Ergo] Goal typed_ref_rrn32_ensures_b2 : Valid +[wp] [Alt-Ergo] Goal typed_ref_rrn64_ensures_b1 : Valid +[wp] [Alt-Ergo] Goal typed_ref_rrn64_ensures_b2 : Valid [wp] Proved goals: 12 / 12 Qed: 1 Alt-Ergo: 11 [wp] Report 'tests/wp_typed/user_bitwise.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -rl1 1 1 (44..56) 2 100% -rr1 - 2 (40..52) 2 100% -rln32 - 2 (48..60) 2 100% -rrn32 - 2 (48..60) 2 100% -rln64 - 2 (48..60) 2 100% -rrn64 - 2 (48..60) 2 100% +rl1 1 1 (48..60) 2 100% +rr1 - 2 (44..56) 2 100% +rln32 - 2 (52..64) 2 100% +rrn32 - 2 (52..64) 2 100% +rln64 - 2 (52..64) 2 100% +rrn64 - 2 (52..64) 2 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 fc2732f1a63caca9f53bd29ecd40aa9ed056f5c2..849e9f492f0adecf9aeadf786c6cfc72d2c870ae 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 @@ -4,38 +4,38 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 32 goals scheduled -[wp] [Qed] Goal typed_caller_post_K : Valid -[wp] [Alt-Ergo] Goal typed_caller_post_P1 : Valid -[wp] [Alt-Ergo] Goal typed_caller_post_P2 : Valid -[wp] [Alt-Ergo] Goal typed_caller_call_job_pre : Valid -[wp] [Alt-Ergo] Goal typed_caller_call_job_pre_2 : Valid -[wp] [Qed] Goal typed_caller2_post_K : Valid -[wp] [Alt-Ergo] Goal typed_caller2_post_Q1 : Valid -[wp] [Alt-Ergo] Goal typed_caller2_post_Q2 : Valid -[wp] [Alt-Ergo] Goal typed_caller2_post_R : Valid -[wp] [Alt-Ergo] Goal typed_caller2_call_job2_pre : Valid -[wp] [Alt-Ergo] Goal typed_caller2_call_job2_pre_2 : Valid -[wp] [Qed] Goal typed_caller3_post_K : Valid -[wp] [Alt-Ergo] Goal typed_caller3_post_Q1 : Valid -[wp] [Alt-Ergo] Goal typed_caller3_post_Q2 : Valid -[wp] [Alt-Ergo] Goal typed_caller3_post_R : Valid -[wp] [Alt-Ergo] Goal typed_caller3_call_job3_pre : Valid -[wp] [Alt-Ergo] Goal typed_caller3_call_job3_pre_2 : Valid -[wp] [Qed] Goal typed_job_post_K : Valid -[wp] [Qed] Goal typed_job_post_P : Valid -[wp] [Qed] Goal typed_job_assign_part1 : Valid -[wp] [Qed] Goal typed_job_assign_part2 : Valid -[wp] [Qed] Goal typed_job_assign_part3 : Valid -[wp] [Qed] Goal typed_job2_post_K : Valid -[wp] [Qed] Goal typed_job2_post_Q : Valid -[wp] [Qed] Goal typed_job2_assign_part1 : Valid -[wp] [Qed] Goal typed_job2_assign_part2 : Valid -[wp] [Qed] Goal typed_job2_assign_part3 : Valid -[wp] [Qed] Goal typed_job3_post_K : Valid -[wp] [Alt-Ergo] Goal typed_job3_post_Q : Valid -[wp] [Qed] Goal typed_job3_assign_part1 : Valid -[wp] [Qed] Goal typed_job3_assign_part2 : Valid -[wp] [Qed] Goal typed_job3_assign_part3 : Valid +[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_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_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_requires : Valid +[wp] [Qed] Goal typed_job_ensures_K : Valid +[wp] [Qed] Goal typed_job_ensures_P : Valid +[wp] [Qed] Goal typed_job_assigns_part1 : Valid +[wp] [Qed] Goal typed_job_assigns_part2 : Valid +[wp] [Qed] Goal typed_job_assigns_part3 : Valid +[wp] [Qed] Goal typed_job2_ensures_K : Valid +[wp] [Qed] Goal typed_job2_ensures_Q : Valid +[wp] [Qed] Goal typed_job2_assigns_part1 : Valid +[wp] [Qed] Goal typed_job2_assigns_part2 : Valid +[wp] [Qed] Goal typed_job2_assigns_part3 : Valid +[wp] [Qed] Goal typed_job3_ensures_K : Valid +[wp] [Alt-Ergo] Goal typed_job3_ensures_Q : Valid +[wp] [Qed] Goal typed_job3_assigns_part1 : Valid +[wp] [Qed] Goal typed_job3_assigns_part2 : Valid +[wp] [Qed] Goal typed_job3_assigns_part3 : Valid [wp] Proved goals: 32 / 32 Qed: 17 Alt-Ergo: 15 @@ -46,6 +46,6 @@ job 5 - 5 100% job2 5 - 5 100% job3 4 1 (16..28) 5 100% caller 1 4 (32..44) 5 100% -caller2 1 5 (44..56) 6 100% -caller3 1 5 (44..56) 6 100% +caller2 1 5 (48..60) 6 100% +caller3 1 5 (48..60) 6 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.res.oracle index 44668e5e973c7de919e3d2c9665164aff4f534f1..4f2b39175f74f0cfd99af1fef3f3e369e2dc8310 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.res.oracle @@ -4,14 +4,14 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 8 goals scheduled -[wp] [Alt-Ergo] Goal typed_init_post : Valid -[wp] [Alt-Ergo] Goal typed_init_loop_inv_Partial_preserved : Valid -[wp] [Qed] Goal typed_init_loop_inv_Partial_established : Valid -[wp] [Alt-Ergo] Goal typed_init_loop_inv_Range_preserved : Valid -[wp] [Qed] Goal typed_init_loop_inv_Range_established : Valid -[wp] [Qed] Goal typed_init_loop_assign_part1 : Valid -[wp] [Alt-Ergo] Goal typed_init_loop_assign_part2 : Valid -[wp] [Qed] Goal typed_init_assign : Valid +[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_established : Valid +[wp] [Qed] Goal typed_init_loop_assigns_part1 : Valid +[wp] [Alt-Ergo] Goal typed_init_loop_assigns_part2 : Valid +[wp] [Qed] Goal typed_init_assigns : Valid [wp] Proved goals: 8 / 8 Qed: 4 Alt-Ergo: 4 diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.0.res.oracle index c8109017fd2ef717deeed3b47704c49fed865024..6f0d6cc19cc8713e8e96e37c4d9ac57c90256bd9 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.0.res.oracle @@ -4,26 +4,26 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 20 goals scheduled -[wp] [Qed] Goal typed_job_post_SEQ : Valid -[wp] [Qed] Goal typed_job_post_ID1 : Valid -[wp] [Qed] Goal typed_job_post_ID2 : Valid -[wp] [Qed] Goal typed_job_post_R1 : Valid -[wp] [Qed] Goal typed_job_post_R2 : Valid -[wp] [Qed] Goal typed_job_post_R0 : Valid -[wp] [Qed] Goal typed_job_post_E1 : Valid -[wp] [Qed] Goal typed_job_post_E2 : Valid -[wp] [Qed] Goal typed_job_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_job_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_job_assign_exit_part3 : Valid -[wp] [Qed] Goal typed_job_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_job_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_job_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_job_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_job_assign_normal_part5 : Valid -[wp] [Qed] Goal typed_job_assign_normal_part6 : Valid -[wp] [Qed] Goal typed_job_assign_normal_part7 : Valid -[wp] [Qed] Goal typed_job_assign_normal_part8 : Valid -[wp] [Qed] Goal typed_job_assign_normal_part9 : Valid +[wp] [Qed] Goal typed_job_ensures_SEQ : Valid +[wp] [Qed] Goal typed_job_ensures_ID1 : Valid +[wp] [Qed] Goal typed_job_ensures_ID2 : Valid +[wp] [Qed] Goal typed_job_ensures_R1 : Valid +[wp] [Qed] Goal typed_job_ensures_R2 : Valid +[wp] [Qed] Goal typed_job_ensures_R0 : Valid +[wp] [Qed] Goal typed_job_ensures_E1 : Valid +[wp] [Qed] Goal typed_job_ensures_E2 : Valid +[wp] [Qed] Goal typed_job_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_job_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_job_assigns_exit_part3 : Valid +[wp] [Qed] Goal typed_job_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_job_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_job_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_job_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_job_assigns_normal_part5 : Valid +[wp] [Qed] Goal typed_job_assigns_normal_part6 : Valid +[wp] [Qed] Goal typed_job_assigns_normal_part7 : Valid +[wp] [Qed] Goal typed_job_assigns_normal_part8 : Valid +[wp] [Qed] Goal typed_job_assigns_normal_part9 : Valid [wp] Proved goals: 20 / 20 Qed: 20 [wp] Report 'tests/wp_typed/user_injector.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.1.res.oracle index 5a96fa0d2d8772681a35250dc3f3e9588ca2dccb..c2931cef0f2e16299f2fd4670d21c35a6468007e 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.1.res.oracle @@ -4,22 +4,22 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 16 goals scheduled -[wp] [Qed] Goal typed_ref_job_post_SEQ : Valid -[wp] [Qed] Goal typed_ref_job_post_ID1 : Valid -[wp] [Qed] Goal typed_ref_job_post_ID2 : Valid -[wp] [Qed] Goal typed_ref_job_post_R1 : Valid -[wp] [Qed] Goal typed_ref_job_post_R2 : Valid -[wp] [Qed] Goal typed_ref_job_post_R0 : Valid -[wp] [Qed] Goal typed_ref_job_post_E1 : Valid -[wp] [Qed] Goal typed_ref_job_post_E2 : Valid -[wp] [Qed] Goal typed_ref_job_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_job_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_ref_job_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_job_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_job_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_job_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_ref_job_assign_normal_part5 : Valid -[wp] [Qed] Goal typed_ref_job_assign_normal_part6 : Valid +[wp] [Qed] Goal typed_ref_job_ensures_SEQ : Valid +[wp] [Qed] Goal typed_ref_job_ensures_ID1 : Valid +[wp] [Qed] Goal typed_ref_job_ensures_ID2 : Valid +[wp] [Qed] Goal typed_ref_job_ensures_R1 : Valid +[wp] [Qed] Goal typed_ref_job_ensures_R2 : Valid +[wp] [Qed] Goal typed_ref_job_ensures_R0 : Valid +[wp] [Qed] Goal typed_ref_job_ensures_E1 : Valid +[wp] [Qed] Goal typed_ref_job_ensures_E2 : Valid +[wp] [Qed] Goal typed_ref_job_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_job_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_ref_job_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_job_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_job_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_ref_job_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_ref_job_assigns_normal_part5 : Valid +[wp] [Qed] Goal typed_ref_job_assigns_normal_part6 : Valid [wp] Proved goals: 16 / 16 Qed: 16 [wp] Report 'tests/wp_typed/user_injector.i.1.report.json' 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 cea18d8d736c4e364422bbec20a221c0191d20ed..5661eb3f32c1555b8971f937cf7337c7edb420e6 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,24 +4,24 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 18 goals scheduled -[wp] [Alt-Ergo] Goal typed_F1_post : Valid -[wp] [Alt-Ergo] Goal typed_F1_loop_inv_preserved : Valid -[wp] [Alt-Ergo] Goal typed_F1_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_F1_loop_inv_2_preserved : Valid -[wp] [Alt-Ergo] Goal typed_F1_loop_inv_2_established : Valid -[wp] [Qed] Goal typed_F1_loop_assign : Valid -[wp] [Alt-Ergo] Goal typed_F2_post : Valid -[wp] [Alt-Ergo] Goal typed_F2_loop_inv_PART_preserved : Valid -[wp] [Alt-Ergo] Goal typed_F2_loop_inv_PART_established : Valid -[wp] [Alt-Ergo] Goal typed_F2_loop_inv_RANGE_preserved : Valid -[wp] [Alt-Ergo] Goal typed_F2_loop_inv_RANGE_established : Valid -[wp] [Qed] Goal typed_F2_loop_assign : Valid -[wp] [Alt-Ergo] Goal typed_F4_post : Valid -[wp] [Alt-Ergo] Goal typed_F4_loop_inv_NEVER_preserved : Valid -[wp] [Alt-Ergo] Goal typed_F4_loop_inv_NEVER_established : Valid -[wp] [Alt-Ergo] Goal typed_F4_loop_inv_RANGE_preserved : Valid -[wp] [Alt-Ergo] Goal typed_F4_loop_inv_RANGE_established : Valid -[wp] [Qed] Goal typed_F4_loop_assign : Valid +[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] [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 +[wp] [Alt-Ergo] Goal typed_F2_ensures : Valid +[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_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_assigns : Valid [wp] Proved goals: 18 / 18 Qed: 3 Alt-Ergo: 15 diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_string.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_string.res.oracle index 7897a72d1b43a469d846e4f6c7edad15eb3f302f..cf3e048e553914572b5690448ec6824fc6df3fe0 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_string.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_string.res.oracle @@ -4,19 +4,19 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 13 goals scheduled -[wp] [Qed] Goal typed_strlen_post : Valid -[wp] [Qed] Goal typed_strlen_loop_inv_BASE_preserved : Valid -[wp] [Qed] Goal typed_strlen_loop_inv_BASE_established : Valid -[wp] [Alt-Ergo] Goal typed_strlen_loop_inv_RANGE_preserved : Valid -[wp] [Alt-Ergo] Goal typed_strlen_loop_inv_RANGE_established : Valid -[wp] [Alt-Ergo] Goal typed_strlen_loop_inv_ZERO_preserved : Valid -[wp] [Qed] Goal typed_strlen_loop_inv_ZERO_established : Valid +[wp] [Qed] Goal typed_strlen_ensures : Valid +[wp] [Qed] Goal typed_strlen_loop_invariant_BASE_preserved : Valid +[wp] [Qed] Goal typed_strlen_loop_invariant_BASE_established : Valid +[wp] [Alt-Ergo] Goal typed_strlen_loop_invariant_RANGE_preserved : Valid +[wp] [Alt-Ergo] Goal typed_strlen_loop_invariant_RANGE_established : Valid +[wp] [Alt-Ergo] Goal typed_strlen_loop_invariant_ZERO_preserved : Valid +[wp] [Qed] Goal typed_strlen_loop_invariant_ZERO_established : Valid [wp] [Alt-Ergo] Goal typed_strlen_assert_END : Valid -[wp] [Qed] Goal typed_strlen_loop_assign : Valid -[wp] [Qed] Goal typed_strlen_assign_part1 : Valid -[wp] [Qed] Goal typed_strlen_assign_part2 : Valid -[wp] [Qed] Goal typed_strlen_loop_term_decrease : Valid -[wp] [Alt-Ergo] Goal typed_strlen_loop_term_positive : Valid +[wp] [Qed] Goal typed_strlen_loop_assigns : Valid +[wp] [Qed] Goal typed_strlen_assigns_part1 : Valid +[wp] [Qed] Goal typed_strlen_assigns_part2 : Valid +[wp] [Qed] Goal typed_strlen_loop_variant_decrease : Valid +[wp] [Alt-Ergo] Goal typed_strlen_loop_variant_positive : Valid [wp] Proved goals: 13 / 13 Qed: 8 Alt-Ergo: 5 diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.0.res.oracle index f9004eeb05a8982faabb8392d0d4bed05ddf93df..356adba64938e304be0caacaa490824307ccac05 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.0.res.oracle @@ -5,18 +5,18 @@ [wp] Warning: Missing RTE guards [wp] 7 goals scheduled [wp] [Qed] Goal typed_main_assert : Valid -[wp] [Qed] Goal typed_main_call_swap_pre : Valid -[wp] [Qed] Goal typed_main_call_swap_pre_2 : Valid -[wp] [Alt-Ergo] Goal typed_swap_post_A : Valid -[wp] [Qed] Goal typed_swap_post_B : Valid -[wp] [Qed] Goal typed_swap_assign_part1 : Valid -[wp] [Qed] Goal typed_swap_assign_part2 : Valid +[wp] [Qed] Goal typed_main_call_swap_requires : Valid +[wp] [Qed] Goal typed_main_call_swap_requires_2 : Valid +[wp] [Alt-Ergo] Goal typed_swap_ensures_A : Valid +[wp] [Qed] Goal typed_swap_ensures_B : Valid +[wp] [Qed] Goal typed_swap_assigns_part1 : Valid +[wp] [Qed] Goal typed_swap_assigns_part2 : Valid [wp] Proved goals: 7 / 7 Qed: 6 Alt-Ergo: 1 [wp] Report 'tests/wp_typed/user_swap.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -swap 3 1 (12..24) 4 100% +swap 3 1 (16..28) 4 100% main 3 - 3 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.1.res.oracle index a0ff47387b176bda1772889cb54ff272d9a5fd1b..906d590a10fc8344139ea08b1193f85600b1aa05 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.1.res.oracle @@ -5,11 +5,11 @@ [wp] Warning: Missing RTE guards [wp] 6 goals scheduled [wp] [Qed] Goal typed_ref_main_assert : Valid -[wp] [Qed] Goal typed_ref_main_call_swap_pre : Valid -[wp] [Qed] Goal typed_ref_main_call_swap_pre_2 : Valid -[wp] [Qed] Goal typed_ref_swap_post_A : Valid -[wp] [Qed] Goal typed_ref_swap_post_B : Valid -[wp] [Qed] Goal typed_ref_swap_assign : Valid +[wp] [Qed] Goal typed_ref_main_call_swap_requires : Valid +[wp] [Qed] Goal typed_ref_main_call_swap_requires_2 : Valid +[wp] [Qed] Goal typed_ref_swap_ensures_A : Valid +[wp] [Qed] Goal typed_ref_swap_ensures_B : Valid +[wp] [Qed] Goal typed_ref_swap_assigns : Valid [wp] Proved goals: 6 / 6 Qed: 6 [wp] Report 'tests/wp_typed/user_swap.i.1.report.json' diff --git a/src/plugins/wp/tests/wp_typed/shift_lemma.i.0.report.json b/src/plugins/wp/tests/wp_typed/shift_lemma.i.0.report.json index f16f0c3c6d94b40f8e3185f34e9196aba097c4f2..57fb10b150427ac2a1e2193406b66f389eef9364 100644 --- a/src/plugins/wp/tests/wp_typed/shift_lemma.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/shift_lemma.i.0.report.json @@ -1,6 +1,6 @@ -{ "wp:global": { "alt-ergo": { "total": 3, "valid": 3, "rank": 5 }, +{ "wp:global": { "alt-ergo": { "total": 3, "valid": 3, "rank": 6 }, "qed": { "total": 2, "valid": 2 }, - "wp:main": { "total": 5, "valid": 5, "rank": 5 } }, + "wp:main": { "total": 5, "valid": 5, "rank": 6 } }, "wp:functions": { "f": { "f_assert_5": { "alt-ergo": { "total": 1, "valid": 1, "rank": 3 }, @@ -15,19 +15,19 @@ "valid": 1 } }, "f_assert_2": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 5 }, + "rank": 6 }, "wp:main": { "total": 1, "valid": 1, - "rank": 5 } }, + "rank": 6 } }, "f_assert": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 3, "valid": 3, - "rank": 5 }, + "rank": 6 }, "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 5, "valid": 5, - "rank": 5 } } } } } + "rank": 6 } } } } } diff --git a/src/plugins/wp/tests/wp_typed/struct_array_type.i.0.report.json b/src/plugins/wp/tests/wp_typed/struct_array_type.i.0.report.json index afebc5ba97d76ae2533a123540e2b909764ed269..dd93aaefdcd9cbd417e007a68943ff879919456a 100644 --- a/src/plugins/wp/tests/wp_typed/struct_array_type.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/struct_array_type.i.0.report.json @@ -1,9 +1,11 @@ { "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 3 }, "wp:main": { "total": 1, "valid": 1, "rank": 3 } }, - "wp:functions": { "f": { "f_post": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "wp:functions": { "f": { "f_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 3 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 3 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 3 }, diff --git a/src/plugins/wp/tests/wp_typed/unit_alloc.i.0.report.json b/src/plugins/wp/tests/wp_typed/unit_alloc.i.0.report.json index 9f812ec52f0d14edb82c0d7a39c29c182b2888c0..772fd8424c99598ffe886aa4cbd955425709bf68 100644 --- a/src/plugins/wp/tests/wp_typed/unit_alloc.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_alloc.i.0.report.json @@ -29,22 +29,24 @@ "wp:main": { "total": 4, "valid": 4, "rank": 6 } } }, - "f": { "f_assign": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "f": { "f_assigns": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "g": { "g_assign": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "g": { "g_assigns": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "h": { "h_post": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 4 } }, + "h": { "h_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, diff --git a/src/plugins/wp/tests/wp_typed/unit_alloc.i.1.report.json b/src/plugins/wp/tests/wp_typed/unit_alloc.i.1.report.json index 9f812ec52f0d14edb82c0d7a39c29c182b2888c0..772fd8424c99598ffe886aa4cbd955425709bf68 100644 --- a/src/plugins/wp/tests/wp_typed/unit_alloc.i.1.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_alloc.i.1.report.json @@ -29,22 +29,24 @@ "wp:main": { "total": 4, "valid": 4, "rank": 6 } } }, - "f": { "f_assign": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "f": { "f_assigns": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "g": { "g_assign": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "g": { "g_assigns": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "h": { "h_post": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 4 } }, + "h": { "h_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, diff --git a/src/plugins/wp/tests/wp_typed/unit_bitwise.c.0.report.json b/src/plugins/wp/tests/wp_typed/unit_bitwise.c.0.report.json index f2a9a5a5550085dc73c5d68e7e570eab09b312bf..446a637c35fd9fba8ea92ea1bbeb4bd085dfd95d 100644 --- a/src/plugins/wp/tests/wp_typed/unit_bitwise.c.0.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_bitwise.c.0.report.json @@ -43,10 +43,10 @@ "valid": 1 } }, "lemma_bxor_sint8": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "rank": 4 } }, "lemma_bor_uint8": { "alt-ergo": { "total": 1, "valid": 1, "rank": 8 }, @@ -55,40 +55,40 @@ "rank": 8 } }, "lemma_bor_sint8": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "rank": 4 } }, "lemma_bnot_sint8": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "rank": 4 } }, "lemma_blsr_uint8": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "rank": 4 } }, "lemma_blsr_sint8": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "rank": 4 } }, "lemma_band_uint8": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "rank": 4 } }, "lemma_band_sint8": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 8, "valid": 8, "rank": 8 }, @@ -102,52 +102,57 @@ "wp:main": { "total": 1, "valid": 1 } }, - "band_int_post_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "band_int_ensures_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "bor_int": { "bor_int_post_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "bor_int": { "bor_int_ensures_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "bxor_int": { "bxor_int_post_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "bxor_int": { "bxor_int_ensures_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "bnot_int": { "bnot_int_post_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "bnot_int": { "bnot_int_ensures_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "lshift_int": { "lshift_int_post_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "lshift_int": { "lshift_int_ensures_ok": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "rshift_int": { "rshift_int_post_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "rshift_int": { "rshift_int_ensures_ok": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, @@ -155,11 +160,11 @@ "band1_uint": { "band1_uint_assert_ok_2": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "rank": 4 } }, "band1_uint_assert_ok": { "qed": { "total": 1, "valid": 1 }, @@ -168,149 +173,152 @@ "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 3 } } }, - "band_uint": { "band_uint_post_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "rank": 4 } } }, + "band_uint": { "band_uint_ensures_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "bor_uint": { "bor_uint_post_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "bor_uint": { "bor_uint_ensures_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "bxor_uint": { "bxor_uint_post_ok_2": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 3 } }, - "bxor_uint_post_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "bxor_uint": { "bxor_uint_ensures_ok_2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 4 } }, + "bxor_uint_ensures_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 3 } } }, - "bnot_uint": { "bnot_uint_post_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "rank": 4 } } }, + "bnot_uint": { "bnot_uint_ensures_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "lshift_uint": { "lshift_uint_post_ok": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "lshift_uint": { "lshift_uint_ensures_ok": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "rshift_uint": { "rshift_uint_post_ok": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "rshift_uint": { "rshift_uint_ensures_ok": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "band_char": { "band_char_post_ok": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 3 } }, + "band_char": { "band_char_ensures_ok": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } } }, - "bor_char": { "bor_char_post_ok": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 3 } }, + "rank": 4 } } }, + "bor_char": { "bor_char_ensures_ok": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } } }, - "bxor_char": { "bxor_char_post_ok": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 3 } }, + "rank": 4 } } }, + "bxor_char": { "bxor_char_ensures_ok": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } } }, - "bnot_char": { "bnot_char_post_ok": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 3 } }, + "rank": 4 } } }, + "bnot_char": { "bnot_char_ensures_ok": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } } }, - "lshift_char": { "lshift_char_post_ok": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "rank": 4 } } }, + "lshift_char": { "lshift_char_ensures_ok": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "rshift_char": { "rshift_char_post_ok": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "rshift_char": { "rshift_char_ensures_ok": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, @@ -318,11 +326,11 @@ "band1_uchar": { "band1_uchar_assert_ok_2": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "rank": 4 } }, "band1_uchar_assert_ok": { "qed": { "total": 1, "valid": 1 }, @@ -331,97 +339,99 @@ "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 3 } } }, - "band_uchar": { "band_uchar_post_ok": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 3 } }, + "rank": 4 } } }, + "band_uchar": { "band_uchar_ensures_ok": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } } }, - "bor_uchar": { "bor_uchar_post_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "rank": 4 } } }, + "bor_uchar": { "bor_uchar_ensures_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "bxor_uchar": { "bxor_uchar_post_ok_2": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 3 } }, - "bxor_uchar_post_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "bxor_uchar": { "bxor_uchar_ensures_ok_2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 4 } }, + "bxor_uchar_ensures_ok": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 3 } } }, - "bnot_uchar": { "bnot_uchar_post_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "rank": 4 } } }, + "bnot_uchar": { "bnot_uchar_ensures_ok": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "lshift_uchar": { "lshift_uchar_post_ok": { "qed": - { "total": 1, + "lshift_uchar": { "lshift_uchar_ensures_ok": { "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, + "wp:main": + { "total": 1, "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "rshift_uchar": { "rshift_uchar_post_ok": { "alt-ergo": - { "total": 1, + "rshift_uchar": { "rshift_uchar_ensures_ok": { "alt-ergo": + { "total": 1, "valid": 1, - "rank": 5 }, - "wp:main": - { "total": 1, + "rank": 7 }, + "wp:main": + { "total": 1, "valid": 1, - "rank": 5 } }, + "rank": 7 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 5 }, + "rank": 7 }, "wp:main": { "total": 1, "valid": 1, - "rank": 5 } } }, + "rank": 7 } } }, "band1_ushort": { "band1_ushort_assert_ok_2": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "rank": 4 } }, "band1_ushort_assert_ok": { "qed": { "total": 1, "valid": 1 }, @@ -430,20 +440,20 @@ "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 3 } } }, + "rank": 4 } } }, "band1_ulong": { "band1_ulong_assert_ok_2": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "rank": 4 } }, "band1_ulong_assert_ok": { "qed": { "total": 1, "valid": 1 }, @@ -452,12 +462,12 @@ "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 3 } } }, + "rank": 4 } } }, "cast": { "cast_assert_ok_7": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, @@ -486,10 +496,10 @@ "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "cast_post_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "cast_ensures_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 8, "valid": 8 }, "wp:main": { "total": 8, diff --git a/src/plugins/wp/tests/wp_typed/unit_bitwise.c.1.report.json b/src/plugins/wp/tests/wp_typed/unit_bitwise.c.1.report.json index 82debd45425e5560c3e94b7890cc0d859fb82beb..0dc8275e431c8779fb5273a028f84ea7320b4bd4 100644 --- a/src/plugins/wp/tests/wp_typed/unit_bitwise.c.1.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_bitwise.c.1.report.json @@ -10,22 +10,22 @@ "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } } }, - "bnot_uint": { "bnot_uint_post_ko": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, + "bnot_uint": { "bnot_uint_ensures_ko": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } } }, - "bnot_uchar": { "bnot_uchar_post_ko": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, + "bnot_uchar": { "bnot_uchar_ensures_ko": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_typed/unit_cast.i.0.report.json b/src/plugins/wp/tests/wp_typed/unit_cast.i.0.report.json index 03ba88877b73b7a8b2a5bbb2a828305b6d929939..601602a129d0f5488189d354167cf10c25bca385 100644 --- a/src/plugins/wp/tests/wp_typed/unit_cast.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_cast.i.0.report.json @@ -1,14 +1,14 @@ -{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, - "wp:main": { "total": 1, "valid": 1, "rank": 4 } }, +{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 6 }, + "wp:main": { "total": 1, "valid": 1, "rank": 6 } }, "wp:functions": { "f": { "f_assert_OUT": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 4 }, + "rank": 6 }, "wp:main": { "total": 1, "valid": 1, - "rank": 4 } }, + "rank": 6 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 4 }, + "rank": 6 }, "wp:main": { "total": 1, "valid": 1, - "rank": 4 } } } } } + "rank": 6 } } } } } diff --git a/src/plugins/wp/tests/wp_typed/unit_cst.i.0.report.json b/src/plugins/wp/tests/wp_typed/unit_cst.i.0.report.json index 19abe51ae5f1d3004dca2f972917b6dc3faeaf05..f7399a08a68535d5112bcf985aa8a7a4d07d590c 100644 --- a/src/plugins/wp/tests/wp_typed/unit_cst.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_cst.i.0.report.json @@ -1,11 +1,11 @@ { "wp:global": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "wp:functions": { "f": { "f_post_B": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_A": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "f": { "f_ensures_B": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_A": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } } } } diff --git a/src/plugins/wp/tests/wp_typed/unit_float.i.0.report.json b/src/plugins/wp/tests/wp_typed/unit_float.i.0.report.json index 48e38898c29124597df19af76138c2b007f7e982..536ff3635c35862a1401cb1dfb316e27fe42f39e 100644 --- a/src/plugins/wp/tests/wp_typed/unit_float.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_float.i.0.report.json @@ -1,29 +1,29 @@ { "wp:global": { "qed": { "total": 6, "valid": 6 }, "wp:main": { "total": 6, "valid": 6 } }, - "wp:functions": { "main": { "main_post_VAR_D": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "main_post_VAR_F": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "main_post_CNV_D": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "main_post_CNV_F": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "main_post_CST_D": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "main_post_CST_F": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "main": { "main_ensures_VAR_D": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "main_ensures_VAR_F": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "main_ensures_CNV_D": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "main_ensures_CNV_F": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "main_ensures_CST_D": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "main_ensures_CST_F": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 6, "valid": 6 }, "wp:main": { "total": 6, diff --git a/src/plugins/wp/tests/wp_typed/unit_hard.i.0.report.json b/src/plugins/wp/tests/wp_typed/unit_hard.i.0.report.json index def0b114235c4868a75ade8d3e60487865c60ec3..94fcb00c3cbadaa18a5c6cefcd550c33b094e592 100644 --- a/src/plugins/wp/tests/wp_typed/unit_hard.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_hard.i.0.report.json @@ -1,18 +1,22 @@ { "wp:global": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 3, "valid": 2, "unknown": 1 } }, - "wp:functions": { "main": { "main_pre_r_is_q1_ko": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "main_pre_q_is_66F0": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "main_pre_p_is_33FF": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "main": { "main_requires_r_is_q1_ko": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "main_requires_q_is_66F0": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "main_requires_p_is_33FF": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 2, diff --git a/src/plugins/wp/tests/wp_typed/unit_ite.i.0.report.json b/src/plugins/wp/tests/wp_typed/unit_ite.i.0.report.json index a2a5440758b06da4cba3fa3534f395d4f477b263..015bc871fc4ca3961f0f6378b2f719cd527944b2 100644 --- a/src/plugins/wp/tests/wp_typed/unit_ite.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_ite.i.0.report.json @@ -1,9 +1,9 @@ { "wp:global": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "wp:functions": { "check": { "check_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "check": { "check_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_typed/unit_labels.i.0.report.json b/src/plugins/wp/tests/wp_typed/unit_labels.i.0.report.json index c78bc8e3f70c205991e30bf1fc5463bfd15d9f8a..5215469f919da58581780b418da0f8bb4851f890 100644 --- a/src/plugins/wp/tests/wp_typed/unit_labels.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_labels.i.0.report.json @@ -12,12 +12,12 @@ "wp:main": { "total": 1, "valid": 1, "rank": 5 } }, - "duplet_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 6 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 6 } }, + "duplet_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 6 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 6 } }, "wp:section": { "alt-ergo": { "total": 3, "valid": 3, "rank": 6 }, diff --git a/src/plugins/wp/tests/wp_typed/unit_local.c.0.report.json b/src/plugins/wp/tests/wp_typed/unit_local.c.0.report.json index 6b4e6e25a64cb01cfd095b6a46e4da074cf72236..01dc25dd6b4c17afba83c647f0d77588c0d80244 100644 --- a/src/plugins/wp/tests/wp_typed/unit_local.c.0.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_local.c.0.report.json @@ -1,14 +1,14 @@ { "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 5 }, "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 3, "valid": 3, "rank": 5 } }, - "wp:functions": { "foo": { "foo_assign": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 5 } }, + "wp:functions": { "foo": { "foo_assigns": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 5 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 5 }, @@ -17,10 +17,10 @@ "wp:main": { "total": 2, "valid": 2, "rank": 5 } } }, - "bar": { "bar_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "bar": { "bar_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_typed/unit_local.c.1.report.json b/src/plugins/wp/tests/wp_typed/unit_local.c.1.report.json index 087968c1f056049609a9ce78677ed02b6749128c..181a37649080708f5b74e8b1e8b08fc58651611e 100644 --- a/src/plugins/wp/tests/wp_typed/unit_local.c.1.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_local.c.1.report.json @@ -1,23 +1,23 @@ { "wp:global": { "alt-ergo": { "total": 3, "valid": 3, "rank": 6 }, "wp:main": { "total": 3, "valid": 3, "rank": 6 } }, - "wp:functions": { "foo": { "foo_assign": { "alt-ergo": { "total": 2, + "wp:functions": { "foo": { "foo_assigns": { "alt-ergo": { "total": 2, + "valid": 2, + "rank": 6 }, + "wp:main": { "total": 2, "valid": 2, - "rank": 6 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 6 } }, + "rank": 6 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, "rank": 6 }, "wp:main": { "total": 2, "valid": 2, "rank": 6 } } }, - "bar": { "bar_assign": { "alt-ergo": { "total": 1, + "bar": { "bar_assigns": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 6 }, + "wp:main": { "total": 1, "valid": 1, - "rank": 6 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 6 } }, + "rank": 6 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 6 }, diff --git a/src/plugins/wp/tests/wp_typed/unit_loopscope.i.0.report.json b/src/plugins/wp/tests/wp_typed/unit_loopscope.i.0.report.json index 9def0061da04715a453e1bb0798df65b7df0e784..0df540f56d402e36948e0ff3d0ee2349bba231ac 100644 --- a/src/plugins/wp/tests/wp_typed/unit_loopscope.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_loopscope.i.0.report.json @@ -1,12 +1,13 @@ { "wp:global": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 1, "unknown": 1 } }, - "wp:functions": { "f": { "f_loop_inv": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 2, - "valid": 1, - "unknown": 1 } }, + "wp:functions": { "f": { "f_loop_invariant": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 1, "valid": 1 }, diff --git a/src/plugins/wp/tests/wp_typed/unit_loopscope.i.1.report.json b/src/plugins/wp/tests/wp_typed/unit_loopscope.i.1.report.json index 9def0061da04715a453e1bb0798df65b7df0e784..0df540f56d402e36948e0ff3d0ee2349bba231ac 100644 --- a/src/plugins/wp/tests/wp_typed/unit_loopscope.i.1.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_loopscope.i.1.report.json @@ -1,12 +1,13 @@ { "wp:global": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 1, "unknown": 1 } }, - "wp:functions": { "f": { "f_loop_inv": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 2, - "valid": 1, - "unknown": 1 } }, + "wp:functions": { "f": { "f_loop_invariant": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 1, "valid": 1 }, diff --git a/src/plugins/wp/tests/wp_typed/unit_matrix.i.0.report.json b/src/plugins/wp/tests/wp_typed/unit_matrix.i.0.report.json index 15d636ed8ba9c60692d41a9678acd22a6fc3bcae..468e2635821f7ad20427d9ad8e769224e74815b2 100644 --- a/src/plugins/wp/tests/wp_typed/unit_matrix.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_matrix.i.0.report.json @@ -3,20 +3,20 @@ "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 3, "valid": 2, "unknown": 1, "rank": 3 } }, - "wp:functions": { "make": { "make_post_KO": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "make_post_OK2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "make_post_OK1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 3 } }, + "wp:functions": { "make": { "make_ensures_KO": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "make_ensures_OK2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "make_ensures_OK1": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 3 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 3 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 1, "unknown": 1, diff --git a/src/plugins/wp/tests/wp_typed/unit_string.i.0.report.json b/src/plugins/wp/tests/wp_typed/unit_string.i.0.report.json index 2b72ca1e2750f4ad9003102d710df69690797602..c6197129cb4c49e1b91dddc00b391f9d0fa1f6aa 100644 --- a/src/plugins/wp/tests/wp_typed/unit_string.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_string.i.0.report.json @@ -1,5 +1,5 @@ -{ "wp:global": { "alt-ergo": { "total": 6, "valid": 6, "rank": 24 }, - "wp:main": { "total": 6, "valid": 6, "rank": 24 } }, +{ "wp:global": { "alt-ergo": { "total": 6, "valid": 6, "rank": 25 }, + "wp:main": { "total": 6, "valid": 6, "rank": 25 } }, "wp:functions": { "f": { "f_assert_VAL": { "alt-ergo": { "total": 1, "valid": 1, "rank": 15 }, @@ -8,10 +8,10 @@ "rank": 15 } }, "f_assert_B_rw": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 15 }, + "rank": 16 }, "wp:main": { "total": 1, "valid": 1, - "rank": 15 } }, + "rank": 16 } }, "f_assert_B_out": { "alt-ergo": { "total": 1, "valid": 1, "rank": 16 }, @@ -20,16 +20,16 @@ "rank": 16 } }, "f_assert_B_end": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 24 }, + "rank": 25 }, "wp:main": { "total": 1, "valid": 1, - "rank": 24 } }, + "rank": 25 } }, "f_assert_B_valid": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 18 }, + "rank": 19 }, "wp:main": { "total": 1, "valid": 1, - "rank": 18 } }, + "rank": 19 } }, "f_assert_AB": { "alt-ergo": { "total": 1, "valid": 1, "rank": 8 }, @@ -38,7 +38,7 @@ "rank": 8 } }, "wp:section": { "alt-ergo": { "total": 6, "valid": 6, - "rank": 24 }, + "rank": 25 }, "wp:main": { "total": 6, "valid": 6, - "rank": 24 } } } } } + "rank": 25 } } } } } diff --git a/src/plugins/wp/tests/wp_typed/unit_tset.i.0.report.json b/src/plugins/wp/tests/wp_typed/unit_tset.i.0.report.json index 3f28cf0730281c2972e955ff30ae254cff1089e0..6295efbe91c8fdd5bbfd579b2f85613242aa4e3a 100644 --- a/src/plugins/wp/tests/wp_typed/unit_tset.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_tset.i.0.report.json @@ -1,13 +1,13 @@ { "wp:global": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "wp:functions": { "complex": { "specialization_job_pre_at_complex_stmt_2": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "complex_stmt_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "wp:functions": { "complex": { "job_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "complex_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, diff --git a/src/plugins/wp/tests/wp_typed/user_bitwise.i.0.report.json b/src/plugins/wp/tests/wp_typed/user_bitwise.i.0.report.json index ebd102c4e466b40f5d8613d62a48361b856fc0a3..a800dbccfc29820414bfc8335879f7e6605f7b28 100644 --- a/src/plugins/wp/tests/wp_typed/user_bitwise.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/user_bitwise.i.0.report.json @@ -1,111 +1,111 @@ -{ "wp:global": { "alt-ergo": { "total": 11, "valid": 11, "rank": 13 }, +{ "wp:global": { "alt-ergo": { "total": 11, "valid": 11, "rank": 14 }, "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 12, "valid": 12, "rank": 13 } }, - "wp:functions": { "rl1": { "rl1_post_bk": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 12 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 12 } }, - "rl1_post_b0": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:main": { "total": 12, "valid": 12, "rank": 14 } }, + "wp:functions": { "rl1": { "rl1_ensures_bk": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 13 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 13 } }, + "rl1_ensures_b0": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 12 }, + "rank": 13 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 12 } } }, - "rr1": { "rr1_post_bk": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 11 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 11 } }, - "rr1_post_b0": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, + "rank": 13 } } }, + "rr1": { "rr1_ensures_bk": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 12 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 12 } }, + "rr1_ensures_b0": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 11 }, + "rank": 12 }, "wp:main": { "total": 2, "valid": 2, - "rank": 11 } } }, - "rln32": { "rln32_post_b2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 13 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 13 } }, - "rln32_post_b1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 13 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 13 } }, + "rank": 12 } } }, + "rln32": { "rln32_ensures_b2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 14 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 14 } }, + "rln32_ensures_b1": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 14 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 14 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 13 }, + "rank": 14 }, "wp:main": { "total": 2, "valid": 2, - "rank": 13 } } }, - "rrn32": { "rrn32_post_b2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 12 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 12 } }, - "rrn32_post_b1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 13 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 13 } }, + "rank": 14 } } }, + "rrn32": { "rrn32_ensures_b2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 13 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 13 } }, + "rrn32_ensures_b1": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 14 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 14 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 13 }, + "rank": 14 }, "wp:main": { "total": 2, "valid": 2, - "rank": 13 } } }, - "rln64": { "rln64_post_b2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 13 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 13 } }, - "rln64_post_b1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 13 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 13 } }, + "rank": 14 } } }, + "rln64": { "rln64_ensures_b2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 14 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 14 } }, + "rln64_ensures_b1": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 14 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 14 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 13 }, + "rank": 14 }, "wp:main": { "total": 2, "valid": 2, - "rank": 13 } } }, - "rrn64": { "rrn64_post_b2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 12 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 12 } }, - "rrn64_post_b1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 13 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 13 } }, + "rank": 14 } } }, + "rrn64": { "rrn64_ensures_b2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 13 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 13 } }, + "rrn64_ensures_b1": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 14 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 14 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 13 }, + "rank": 14 }, "wp:main": { "total": 2, "valid": 2, - "rank": 13 } } } } } + "rank": 14 } } } } } diff --git a/src/plugins/wp/tests/wp_typed/user_collect.i.0.report.json b/src/plugins/wp/tests/wp_typed/user_collect.i.0.report.json index 25b10ccb148706c2318ad6cc96155cab7db206c3..070ac4e1cbf553f8b2a40a93aa88dddd3fb9733c 100644 --- a/src/plugins/wp/tests/wp_typed/user_collect.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/user_collect.i.0.report.json @@ -1,52 +1,52 @@ -{ "wp:global": { "alt-ergo": { "total": 15, "valid": 15, "rank": 12 }, +{ "wp:global": { "alt-ergo": { "total": 15, "valid": 15, "rank": 13 }, "qed": { "total": 17, "valid": 17 }, - "wp:main": { "total": 32, "valid": 32, "rank": 12 } }, - "wp:functions": { "job": { "job_assign": { "qed": { "total": 3, - "valid": 3 }, - "wp:main": { "total": 3, - "valid": 3 } }, - "job_post_P": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_K": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:main": { "total": 32, "valid": 32, "rank": 13 } }, + "wp:functions": { "job": { "job_assigns": { "qed": { "total": 3, + "valid": 3 }, + "wp:main": { "total": 3, + "valid": 3 } }, + "job_ensures_P": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_K": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 5, "valid": 5 }, "wp:main": { "total": 5, "valid": 5 } } }, - "job2": { "job2_assign": { "qed": { "total": 3, - "valid": 3 }, - "wp:main": { "total": 3, - "valid": 3 } }, - "job2_post_Q": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job2_post_K": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "job2": { "job2_assigns": { "qed": { "total": 3, + "valid": 3 }, + "wp:main": { "total": 3, + "valid": 3 } }, + "job2_ensures_Q": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job2_ensures_K": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 5, "valid": 5 }, "wp:main": { "total": 5, "valid": 5 } } }, - "job3": { "job3_assign": { "qed": { "total": 3, - "valid": 3 }, - "wp:main": { "total": 3, - "valid": 3 } }, - "job3_post_Q": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 5 } }, - "job3_post_K": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "job3": { "job3_assigns": { "qed": { "total": 3, + "valid": 3 }, + "wp:main": { "total": 3, + "valid": 3 } }, + "job3_ensures_Q": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, + "job3_ensures_K": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 5 }, @@ -55,32 +55,34 @@ "wp:main": { "total": 5, "valid": 5, "rank": 5 } } }, - "caller": { "specialization_job_pre_at_caller_stmt_19": - { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, - "specialization_job_pre_at_caller_stmt_18": - { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 1 } }, - "caller_post_P2": { "alt-ergo": { "total": 1, + "caller": { "job_requires_2": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 9 }, + "rank": 3 }, "wp:main": { "total": 1, "valid": 1, - "rank": 9 } }, - "caller_post_P1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 9 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 9 } }, - "caller_post_K": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "rank": 3 } }, + "job_requires": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "caller_ensures_P2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 9 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 9 } }, + "caller_ensures_P1": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 9 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 9 } }, + "caller_ensures_K": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 4, "valid": 4, "rank": 9 }, @@ -89,83 +91,91 @@ "wp:main": { "total": 5, "valid": 5, "rank": 9 } } }, - "caller2": { "specialization_job2_pre_at_caller2_stmt_23": - { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, - "specialization_job2_pre_at_caller2_stmt_22": - { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 1 } }, - "caller2_post_R": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 12 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 12 } }, - "caller2_post_Q2": { "alt-ergo": { "total": 1, + "caller2": { "job2_requires_2": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 12 }, + "rank": 3 }, "wp:main": { "total": 1, "valid": 1, - "rank": 12 } }, - "caller2_post_Q1": { "alt-ergo": { "total": 1, + "rank": 3 } }, + "job2_requires": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "caller2_ensures_R": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 12 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 12 } }, - "caller2_post_K": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "rank": 13 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 13 } }, + "caller2_ensures_Q2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 13 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 13 } }, + "caller2_ensures_Q1": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 13 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 13 } }, + "caller2_ensures_K": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 5, "valid": 5, - "rank": 12 }, + "rank": 13 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 6, "valid": 6, - "rank": 12 } } }, - "caller3": { "specialization_job3_pre_at_caller3_stmt_27": - { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, - "specialization_job3_pre_at_caller3_stmt_26": - { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 1 } }, - "caller3_post_R": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 12 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 12 } }, - "caller3_post_Q2": { "alt-ergo": { "total": 1, + "rank": 13 } } }, + "caller3": { "job3_requires_2": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 12 }, + "rank": 3 }, "wp:main": { "total": 1, "valid": 1, - "rank": 12 } }, - "caller3_post_Q1": { "alt-ergo": { "total": 1, + "rank": 3 } }, + "job3_requires": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "caller3_ensures_R": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 12 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 12 } }, - "caller3_post_K": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "rank": 13 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 13 } }, + "caller3_ensures_Q2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 13 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 13 } }, + "caller3_ensures_Q1": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 13 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 13 } }, + "caller3_ensures_K": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 5, "valid": 5, - "rank": 12 }, + "rank": 13 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 6, "valid": 6, - "rank": 12 } } } } } + "rank": 13 } } } } } diff --git a/src/plugins/wp/tests/wp_typed/user_init.i.0.report.json b/src/plugins/wp/tests/wp_typed/user_init.i.0.report.json index dbef37c6533a5ff6e6a4ab33ac7856aee3ca312e..1651d4db1362d3b7af4041cfded35531c28aef00 100644 --- a/src/plugins/wp/tests/wp_typed/user_init.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/user_init.i.0.report.json @@ -1,41 +1,45 @@ { "wp:global": { "alt-ergo": { "total": 4, "valid": 4, "rank": 19 }, "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 8, "valid": 8, "rank": 19 } }, - "wp:functions": { "init": { "init_loop_inv_Partial": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 8 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 8 } }, - "init_loop_inv_Range": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 4 } }, - "init_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "init_loop_assign": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 19 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, + "wp:functions": { "init": { "init_loop_invariant_Partial": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 9 }, + "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 9 } }, + "init_loop_invariant_Range": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 4 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, "valid": 2, - "rank": 19 } }, - "init_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 7 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 7 } }, + "rank": 4 } }, + "init_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "init_loop_assigns": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 19 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 19 } }, + "init_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 7 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 7 } }, "wp:section": { "alt-ergo": { "total": 4, "valid": 4, "rank": 19 }, diff --git a/src/plugins/wp/tests/wp_typed/user_injector.i.0.report.json b/src/plugins/wp/tests/wp_typed/user_injector.i.0.report.json index 0eb062947507876aa0ebe0d56d3194c841bf9953..8d5dde5103a4191f2d9676e23e2d9bc4b6b73927 100644 --- a/src/plugins/wp/tests/wp_typed/user_injector.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/user_injector.i.0.report.json @@ -1,41 +1,41 @@ { "wp:global": { "qed": { "total": 20, "valid": 20 }, "wp:main": { "total": 20, "valid": 20 } }, - "wp:functions": { "job": { "job_assign": { "qed": { "total": 12, - "valid": 12 }, - "wp:main": { "total": 12, - "valid": 12 } }, - "job_post_E2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_E1": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_R0": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_R2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_R1": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_ID2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_ID1": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_SEQ": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "job": { "job_assigns": { "qed": { "total": 12, + "valid": 12 }, + "wp:main": { "total": 12, + "valid": 12 } }, + "job_ensures_E2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_E1": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_R0": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_R2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_R1": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_ID2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_ID1": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_SEQ": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 20, "valid": 20 }, "wp:main": { "total": 20, diff --git a/src/plugins/wp/tests/wp_typed/user_injector.i.1.report.json b/src/plugins/wp/tests/wp_typed/user_injector.i.1.report.json index 37ae88313d205bfb7319a52ac8b355d17d19d315..3bd17fdbbd541cbfa62396baffba2c440804229a 100644 --- a/src/plugins/wp/tests/wp_typed/user_injector.i.1.report.json +++ b/src/plugins/wp/tests/wp_typed/user_injector.i.1.report.json @@ -1,41 +1,41 @@ { "wp:global": { "qed": { "total": 16, "valid": 16 }, "wp:main": { "total": 16, "valid": 16 } }, - "wp:functions": { "job": { "job_assign": { "qed": { "total": 8, - "valid": 8 }, - "wp:main": { "total": 8, - "valid": 8 } }, - "job_post_E2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_E1": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_R0": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_R2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_R1": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_ID2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_ID1": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_SEQ": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "job": { "job_assigns": { "qed": { "total": 8, + "valid": 8 }, + "wp:main": { "total": 8, + "valid": 8 } }, + "job_ensures_E2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_E1": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_R0": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_R2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_R1": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_ID2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_ID1": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_SEQ": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 16, "valid": 16 }, "wp:main": { "total": 16, diff --git a/src/plugins/wp/tests/wp_typed/user_rec.i.0.report.json b/src/plugins/wp/tests/wp_typed/user_rec.i.0.report.json index afe3bad05a28d6a40a660ff4abe9511449cbddd1..c1aa3308c9e10ee4a705ba99085a15fc24ed725c 100644 --- a/src/plugins/wp/tests/wp_typed/user_rec.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/user_rec.i.0.report.json @@ -1,27 +1,28 @@ { "wp:global": { "alt-ergo": { "total": 15, "valid": 15, "rank": 16 }, "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 18, "valid": 18, "rank": 16 } }, - "wp:functions": { "F1": { "F1_loop_inv_2": { "alt-ergo": { "total": 2, - "valid": 2, - "rank": 7 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 7 } }, - "F1_loop_inv": { "alt-ergo": { "total": 2, - "valid": 2, - "rank": 3 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 3 } }, - "F1_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "F1_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 5 } }, + "wp:functions": { "F1": { "F1_loop_invariant_2": { "alt-ergo": { "total": 2, + "valid": 2, + "rank": 7 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 7 } }, + "F1_loop_invariant": { "alt-ergo": { "total": 2, + "valid": 2, + "rank": 3 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 3 } }, + "F1_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "F1_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, "wp:section": { "alt-ergo": { "total": 5, "valid": 5, "rank": 7 }, @@ -29,27 +30,29 @@ "wp:main": { "total": 6, "valid": 6, "rank": 7 } } }, - "F2": { "F2_loop_inv_PART": { "alt-ergo": { "total": 2, - "valid": 2, - "rank": 9 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 9 } }, - "F2_loop_inv_RANGE": { "alt-ergo": { "total": 2, - "valid": 2, - "rank": 2 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 2 } }, - "F2_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "F2_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 5 } }, + "F2": { "F2_loop_invariant_PART": { "alt-ergo": { "total": 2, + "valid": 2, + "rank": 9 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 9 } }, + "F2_loop_invariant_RANGE": { "alt-ergo": + { "total": 2, + "valid": 2, + "rank": 3 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 3 } }, + "F2_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "F2_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 6 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 6 } }, "wp:section": { "alt-ergo": { "total": 5, "valid": 5, "rank": 9 }, @@ -57,27 +60,30 @@ "wp:main": { "total": 6, "valid": 6, "rank": 9 } } }, - "F4": { "F4_loop_inv_NEVER": { "alt-ergo": { "total": 2, - "valid": 2, - "rank": 7 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 7 } }, - "F4_loop_inv_RANGE": { "alt-ergo": { "total": 2, - "valid": 2, - "rank": 3 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 3 } }, - "F4_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "F4_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 16 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 16 } }, + "F4": { "F4_loop_invariant_NEVER": { "alt-ergo": + { "total": 2, + "valid": 2, + "rank": 7 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 7 } }, + "F4_loop_invariant_RANGE": { "alt-ergo": + { "total": 2, + "valid": 2, + "rank": 3 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 3 } }, + "F4_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "F4_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 16 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 16 } }, "wp:section": { "alt-ergo": { "total": 5, "valid": 5, "rank": 16 }, diff --git a/src/plugins/wp/tests/wp_typed/user_string.i.0.report.json b/src/plugins/wp/tests/wp_typed/user_string.i.0.report.json index 23485a321193b5feab617a65ff48bfa7fae5470a..03b9b859c363714d26ec33bd353dbec9dc169ee3 100644 --- a/src/plugins/wp/tests/wp_typed/user_string.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/user_string.i.0.report.json @@ -7,49 +7,52 @@ "wp:main": { "total": 1, "valid": 1, "rank": 19 } }, - "strlen_loop_inv_ZERO": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 10 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 10 } }, - "strlen_loop_inv_RANGE": { "alt-ergo": - { "total": 2, - "valid": 2, - "rank": 33 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 33 } }, - "strlen_loop_inv_BASE": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": - { "total": 2, - "valid": 2 } }, - "strlen_loop_term": { "alt-ergo": { "total": 1, + "strlen_loop_invariant_ZERO": { "alt-ergo": + { "total": 1, "valid": 1, - "rank": 13 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 13 } }, - "strlen_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "strlen_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, + "rank": 11 }, + "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 11 } }, + "strlen_loop_invariant_RANGE": { "alt-ergo": + { "total": 2, + "valid": 2, + "rank": 34 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 34 } }, + "strlen_loop_invariant_BASE": { "qed": + { "total": 2, + "valid": 2 }, + "wp:main": + { "total": 2, + "valid": 2 } }, + "strlen_loop_variant": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 14 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 14 } }, + "strlen_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "strlen_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, - "strlen_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "strlen_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 5, "valid": 5, "rank": 33 }, diff --git a/src/plugins/wp/tests/wp_typed/user_swap.i.0.report.json b/src/plugins/wp/tests/wp_typed/user_swap.i.0.report.json index bbcfce18995cc28aba5560cb7b66216501699aa4..23293874328be7845bbddcd7c8b4f29958b7df54 100644 --- a/src/plugins/wp/tests/wp_typed/user_swap.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/user_swap.i.0.report.json @@ -1,34 +1,36 @@ -{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, +{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 5 }, "qed": { "total": 6, "valid": 6 }, - "wp:main": { "total": 7, "valid": 7, "rank": 4 } }, - "wp:functions": { "swap": { "swap_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "swap_post_B": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "swap_post_A": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, + "wp:main": { "total": 7, "valid": 7, "rank": 5 } }, + "wp:functions": { "swap": { "swap_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "swap_ensures_B": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "swap_ensures_A": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 4 }, + "rank": 5 }, "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 4, "valid": 4, - "rank": 4 } } }, - "main": { "specialization_swap_pre_at_main_stmt_8_2": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "specialization_swap_pre_at_main_stmt_8": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "rank": 5 } } }, + "main": { "swap_requires_2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "swap_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "main_assert": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_typed/user_swap.i.1.report.json b/src/plugins/wp/tests/wp_typed/user_swap.i.1.report.json index 2456de029198634d215e4bda90a02994594031d4..12e82ab9342fba0cc7abe963eaf047ee6db62b43 100644 --- a/src/plugins/wp/tests/wp_typed/user_swap.i.1.report.json +++ b/src/plugins/wp/tests/wp_typed/user_swap.i.1.report.json @@ -1,27 +1,29 @@ { "wp:global": { "qed": { "total": 6, "valid": 6 }, "wp:main": { "total": 6, "valid": 6 } }, - "wp:functions": { "swap": { "swap_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "swap_post_B": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "swap_post_A": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "swap": { "swap_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "swap_ensures_B": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "swap_ensures_A": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 3, "valid": 3 } } }, - "main": { "specialization_swap_pre_at_main_stmt_8_2": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "specialization_swap_pre_at_main_stmt_8": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "main": { "swap_requires_2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "swap_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "main_assert": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_usage/caveat2.i.0.report.json b/src/plugins/wp/tests/wp_usage/caveat2.i.0.report.json index 6a36efb5d4ce000204ce3e992fe7c90fc3511c9b..a3e18b8a1f10b2629a4c2dcfc0d7d34e0c338e01 100644 --- a/src/plugins/wp/tests/wp_usage/caveat2.i.0.report.json +++ b/src/plugins/wp/tests/wp_usage/caveat2.i.0.report.json @@ -1,45 +1,45 @@ -{ "wp:global": { "alt-ergo": { "total": 3, "valid": 3, "rank": 5 }, +{ "wp:global": { "alt-ergo": { "total": 3, "valid": 3, "rank": 6 }, "qed": { "total": 6, "valid": 6 }, - "wp:main": { "total": 9, "valid": 9, "rank": 5 } }, - "wp:functions": { "job": { "job_loop_inv_2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 5 } }, - "job_loop_inv": { "alt-ergo": { "total": 1, + "wp:main": { "total": 9, "valid": 9, "rank": 6 } }, + "wp:functions": { "job": { "job_loop_invariant_2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 6 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 6 } }, + "job_loop_invariant": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 4 } }, + "job_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "job_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_A": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, "valid": 1, - "rank": 4 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 4 } }, - "job_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "job_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_A": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 5 } }, - "job_post_N": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "rank": 5 } }, + "job_ensures_N": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 3, "valid": 3, - "rank": 5 }, + "rank": 6 }, "qed": { "total": 6, "valid": 6 }, "wp:main": { "total": 9, "valid": 9, - "rank": 5 } } } } } + "rank": 6 } } } } } diff --git a/src/plugins/wp/tests/wp_usage/caveat_range.i.0.report.json b/src/plugins/wp/tests/wp_usage/caveat_range.i.0.report.json index 81d81829d0c88dfdc99ca1f1ac0fb26bed53afef..e18c5908331be672c0d67f70b5d8edcec7ff1d1d 100644 --- a/src/plugins/wp/tests/wp_usage/caveat_range.i.0.report.json +++ b/src/plugins/wp/tests/wp_usage/caveat_range.i.0.report.json @@ -1,55 +1,60 @@ -{ "wp:global": { "alt-ergo": { "total": 5, "valid": 5, "rank": 11 }, +{ "wp:global": { "alt-ergo": { "total": 5, "valid": 5, "rank": 13 }, "qed": { "total": 7, "valid": 7 }, - "wp:main": { "total": 12, "valid": 12, "rank": 11 } }, - "wp:functions": { "reset": { "reset_loop_inv_3": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 11 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 11 } }, - "reset_loop_inv_2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 6 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 6 } }, - "reset_loop_inv": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 3 } }, - "reset_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "reset_loop_assign": { "qed": { "total": 3, - "valid": 3 }, - "wp:main": { "total": 3, - "valid": 3 } }, - "reset_post_2": { "alt-ergo": { "total": 1, + "wp:main": { "total": 12, "valid": 12, "rank": 13 } }, + "wp:functions": { "reset": { "reset_loop_invariant_3": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 13 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 13 } }, + "reset_loop_invariant_2": { "alt-ergo": + { "total": 1, "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, - "reset_post": { "alt-ergo": { "total": 1, + "rank": 7 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 7 } }, + "reset_loop_invariant": { "alt-ergo": + { "total": 1, "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, + "rank": 5 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 5 } }, + "reset_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "reset_loop_assigns": { "qed": { "total": 3, + "valid": 3 }, + "wp:main": { "total": 3, + "valid": 3 } }, + "reset_ensures_2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, + "reset_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, "wp:section": { "alt-ergo": { "total": 5, "valid": 5, - "rank": 11 }, + "rank": 13 }, "qed": { "total": 7, "valid": 7 }, "wp:main": { "total": 12, "valid": 12, - "rank": 11 } } } } } + "rank": 13 } } } } } diff --git a/src/plugins/wp/tests/wp_usage/issue-189-bis.i.0.report.json b/src/plugins/wp/tests/wp_usage/issue-189-bis.i.0.report.json index d3ab34173fd8fec9791fd66f74a4f67a60876404..7e80c837977f33b894882a0482c547eb0d007860 100644 --- a/src/plugins/wp/tests/wp_usage/issue-189-bis.i.0.report.json +++ b/src/plugins/wp/tests/wp_usage/issue-189-bis.i.0.report.json @@ -1,7 +1,7 @@ { "wp:global": { "alt-ergo": { "total": 10, "valid": 10, "rank": 52 }, "qed": { "total": 20, "valid": 20 }, "wp:main": { "total": 30, "valid": 30, "rank": 52 } }, - "wp:functions": { "memcpy_alias_vars": { "memcpy_alias_vars_loop_inv_cpy": + "wp:functions": { "memcpy_alias_vars": { "memcpy_alias_vars_loop_invariant_cpy": { "alt-ergo": { "total": 1, "valid": 1, "rank": 52 }, @@ -10,17 +10,17 @@ "wp:main": { "total": 2, "valid": 2, "rank": 52 } }, - "memcpy_alias_vars_loop_inv_dst": + "memcpy_alias_vars_loop_invariant_dst": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "memcpy_alias_vars_loop_inv_src": + "memcpy_alias_vars_loop_invariant_src": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "memcpy_alias_vars_loop_inv_len": + "memcpy_alias_vars_loop_invariant_len": { "alt-ergo": { "total": 1, "valid": 1, "rank": 8 }, @@ -29,12 +29,12 @@ "wp:main": { "total": 2, "valid": 2, "rank": 8 } }, - "memcpy_alias_vars_assign": + "memcpy_alias_vars_assigns": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "memcpy_alias_vars_loop_assign": + "memcpy_alias_vars_loop_assigns": { "alt-ergo": { "total": 1, "valid": 1, "rank": 28 }, @@ -43,14 +43,14 @@ "wp:main": { "total": 4, "valid": 4, "rank": 28 } }, - "memcpy_alias_vars_post_unmodified": + "memcpy_alias_vars_ensures_unmodified": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 31 }, + "rank": 29 }, "wp:main": { "total": 1, "valid": 1, - "rank": 31 } }, - "memcpy_alias_vars_post_memcpy": + "rank": 29 } }, + "memcpy_alias_vars_ensures_memcpy": { "alt-ergo": { "total": 1, "valid": 1, "rank": 39 }, @@ -67,7 +67,7 @@ { "total": 15, "valid": 15, "rank": 52 } } }, - "memcpy_context_vars": { "memcpy_context_vars_loop_inv_ok_cpy": + "memcpy_context_vars": { "memcpy_context_vars_loop_invariant_ok_cpy": { "alt-ergo": { "total": 1, "valid": 1, "rank": 52 }, @@ -76,17 +76,17 @@ "wp:main": { "total": 2, "valid": 2, "rank": 52 } }, - "memcpy_context_vars_loop_inv_ok_dst": + "memcpy_context_vars_loop_invariant_ok_dst": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "memcpy_context_vars_loop_inv_ok_src": + "memcpy_context_vars_loop_invariant_ok_src": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "memcpy_context_vars_loop_inv_ok_len": + "memcpy_context_vars_loop_invariant_ok_len": { "alt-ergo": { "total": 1, "valid": 1, "rank": 8 }, @@ -95,12 +95,12 @@ "wp:main": { "total": 2, "valid": 2, "rank": 8 } }, - "memcpy_context_vars_assign": + "memcpy_context_vars_assigns": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "memcpy_context_vars_loop_assign": + "memcpy_context_vars_loop_assigns": { "alt-ergo": { "total": 1, "valid": 1, "rank": 28 }, @@ -109,14 +109,14 @@ "wp:main": { "total": 4, "valid": 4, "rank": 28 } }, - "memcpy_context_vars_post_unmodified_ok": + "memcpy_context_vars_ensures_unmodified_ok": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 31 }, + "rank": 29 }, "wp:main": { "total": 1, "valid": 1, - "rank": 31 } }, - "memcpy_context_vars_post_memcpy_ok": + "rank": 29 } }, + "memcpy_context_vars_ensures_memcpy_ok": { "alt-ergo": { "total": 1, "valid": 1, "rank": 39 }, diff --git a/src/plugins/wp/tests/wp_usage/issue-189-bis.i.1.report.json b/src/plugins/wp/tests/wp_usage/issue-189-bis.i.1.report.json index 1a25c3207ac1d6d7d8910f4988a0e68eb5c9d749..07976c7b36c328ea72d1ff3d0e2d9da71711d2b9 100644 --- a/src/plugins/wp/tests/wp_usage/issue-189-bis.i.1.report.json +++ b/src/plugins/wp/tests/wp_usage/issue-189-bis.i.1.report.json @@ -1,26 +1,26 @@ -{ "wp:global": { "alt-ergo": { "total": 3, "valid": 3, "rank": 20 }, +{ "wp:global": { "alt-ergo": { "total": 3, "valid": 3, "rank": 21 }, "qed": { "total": 7, "valid": 7 }, - "wp:main": { "total": 10, "valid": 10, "rank": 20 } }, - "wp:functions": { "memcpy_context_vars": { "memcpy_context_vars_loop_inv_ok_cpy": + "wp:main": { "total": 10, "valid": 10, "rank": 21 } }, + "wp:functions": { "memcpy_context_vars": { "memcpy_context_vars_loop_invariant_ok_cpy": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 20 }, + "rank": 21 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 20 } }, - "memcpy_context_vars_loop_inv_ok_dst": + "rank": 21 } }, + "memcpy_context_vars_loop_invariant_ok_dst": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "memcpy_context_vars_loop_inv_ok_src": + "memcpy_context_vars_loop_invariant_ok_src": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "memcpy_context_vars_loop_inv_ok_len": + "memcpy_context_vars_loop_invariant_ok_len": { "alt-ergo": { "total": 1, "valid": 1, "rank": 5 }, @@ -29,25 +29,25 @@ "wp:main": { "total": 2, "valid": 2, "rank": 5 } }, - "memcpy_context_vars_post_unmodified_ok": + "memcpy_context_vars_ensures_unmodified_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "memcpy_context_vars_post_memcpy_ok": + "memcpy_context_vars_ensures_memcpy_ok": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 5 }, + "rank": 6 }, "wp:main": { "total": 1, "valid": 1, - "rank": 5 } }, + "rank": 6 } }, "wp:section": { "alt-ergo": { "total": 3, "valid": 3, - "rank": 20 }, + "rank": 21 }, "qed": { "total": 7, "valid": 7 }, "wp:main": { "total": 10, "valid": 10, - "rank": 20 } } } } } + "rank": 21 } } } } } diff --git a/src/plugins/wp/tests/wp_usage/oracle/code_spec.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/code_spec.res.oracle index f37910af083ba1968571a0e00547c24378a7f084..e4ad3f5e78b698aeef68ea6f228af4669314c44f 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/code_spec.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/code_spec.res.oracle @@ -40,7 +40,7 @@ Function cup: { val *ref &addr array[] &addr_value val_ref array_ref[] value_array[] } ................................................. [wp] Loading driver 'share/wp.driver' -[wp] [CFG] Goal by_addr_in_code_annotation_stmt_pre : Valid (Unreachable) -[wp] [CFG] Goal by_reference_in_code_annotation_no_exit_exit : Valid (Unreachable) +[wp] [CFG] Goal by_addr_in_code_annotation_requires : Valid (Unreachable) +[wp] [CFG] Goal by_reference_in_code_annotation_no_exit_exits : Valid (Unreachable) [wp] Warning: Missing RTE guards [wp] No proof obligations 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 83e2c39a2ce3c42e289cdb365ef1eac73275bd17..eb0898c7235b24479b7dcae99ec585a2bdaf16ef 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 @@ -5,22 +5,22 @@ [wp] Warning: Missing RTE guards [wp] tests/wp_usage/caveat2.i:22: Warning: Undefined array-size (sint32[]) [wp] 9 goals scheduled -[wp] [Qed] Goal typed_caveat_job_post_N : Valid -[wp] [Alt-Ergo] Goal typed_caveat_job_post_A : Valid -[wp] [Alt-Ergo] Goal typed_caveat_job_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_caveat_job_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_caveat_job_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_caveat_job_loop_inv_2_established : Valid -[wp] [Qed] Goal typed_caveat_job_loop_assign : Valid -[wp] [Qed] Goal typed_caveat_job_assign_part1 : Valid -[wp] [Qed] Goal typed_caveat_job_assign_part2 : Valid +[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_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 +[wp] [Qed] Goal typed_caveat_job_loop_assigns : Valid +[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 [wp] Report 'tests/wp_usage/caveat2.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -job 6 3 (16..28) 9 100% +job 6 3 (20..32) 9 100% ------------------------------------------------------------- [wp] 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 a28dae7f4155561b6560d6e6e20ee50807857ab0..fbb344e827fa5dfd38b923032eb6904c1d32a5e4 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 @@ -4,25 +4,25 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 12 goals scheduled -[wp] [Alt-Ergo] Goal typed_caveat_reset_post : Valid -[wp] [Alt-Ergo] Goal typed_caveat_reset_post_2 : Valid -[wp] [Alt-Ergo] Goal typed_caveat_reset_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_caveat_reset_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_caveat_reset_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_caveat_reset_loop_inv_2_established : Valid -[wp] [Alt-Ergo] Goal typed_caveat_reset_loop_inv_3_preserved : Valid -[wp] [Qed] Goal typed_caveat_reset_loop_inv_3_established : Valid -[wp] [Qed] Goal typed_caveat_reset_loop_assign_part1 : Valid -[wp] [Qed] Goal typed_caveat_reset_loop_assign_part2 : Valid -[wp] [Qed] Goal typed_caveat_reset_loop_assign_part3 : Valid -[wp] [Qed] Goal typed_caveat_reset_assign : Valid +[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_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 +[wp] [Alt-Ergo] Goal typed_caveat_reset_loop_invariant_3_preserved : Valid +[wp] [Qed] Goal typed_caveat_reset_loop_invariant_3_established : Valid +[wp] [Qed] Goal typed_caveat_reset_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_caveat_reset_loop_assigns_part2 : Valid +[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 [wp] Report 'tests/wp_usage/caveat_range.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -reset 7 5 (40..52) 12 100% +reset 7 5 (48..60) 12 100% ------------------------------------------------------------- [wp] Warning: Memory model hypotheses for function 'reset': /*@ behavior typed_caveat: requires \valid(p+(..)); */ diff --git a/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.0.res.oracle b/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.0.res.oracle index a2a33c2ab85afe989472d7a1e9e626d19ab39667..9e0dd0e1713a5e0b06fd9241ffe1ddbc67d80c72 100644 --- a/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.0.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.0.res.oracle @@ -4,36 +4,36 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 30 goals scheduled -[wp] [Alt-Ergo] Goal typed_memcpy_alias_vars_post_memcpy : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_alias_vars_post_unmodified : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_alias_vars_loop_inv_cpy_preserved : Valid -[wp] [Qed] Goal typed_memcpy_alias_vars_loop_inv_cpy_established : Valid -[wp] [Qed] Goal typed_memcpy_alias_vars_loop_inv_dst_preserved : Valid -[wp] [Qed] Goal typed_memcpy_alias_vars_loop_inv_dst_established : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_alias_vars_loop_inv_len_preserved : Valid -[wp] [Qed] Goal typed_memcpy_alias_vars_loop_inv_len_established : Valid -[wp] [Qed] Goal typed_memcpy_alias_vars_loop_inv_src_preserved : Valid -[wp] [Qed] Goal typed_memcpy_alias_vars_loop_inv_src_established : Valid -[wp] [Qed] Goal typed_memcpy_alias_vars_loop_assign_part1 : Valid -[wp] [Qed] Goal typed_memcpy_alias_vars_loop_assign_part2 : Valid -[wp] [Qed] Goal typed_memcpy_alias_vars_loop_assign_part3 : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_alias_vars_loop_assign_part4 : Valid -[wp] [Qed] Goal typed_memcpy_alias_vars_assign : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_context_vars_post_memcpy_ok : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_context_vars_post_unmodified_ok : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_context_vars_loop_inv_ok_cpy_preserved : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_loop_inv_ok_cpy_established : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_loop_inv_ok_dst_preserved : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_loop_inv_ok_dst_established : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_context_vars_loop_inv_ok_len_preserved : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_loop_inv_ok_len_established : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_loop_inv_ok_src_preserved : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_loop_inv_ok_src_established : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_loop_assign_part1 : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_loop_assign_part2 : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_loop_assign_part3 : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_context_vars_loop_assign_part4 : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_assign : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_alias_vars_ensures_memcpy : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_alias_vars_ensures_unmodified : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_alias_vars_loop_invariant_cpy_preserved : Valid +[wp] [Qed] Goal typed_memcpy_alias_vars_loop_invariant_cpy_established : Valid +[wp] [Qed] Goal typed_memcpy_alias_vars_loop_invariant_dst_preserved : Valid +[wp] [Qed] Goal typed_memcpy_alias_vars_loop_invariant_dst_established : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_alias_vars_loop_invariant_len_preserved : Valid +[wp] [Qed] Goal typed_memcpy_alias_vars_loop_invariant_len_established : Valid +[wp] [Qed] Goal typed_memcpy_alias_vars_loop_invariant_src_preserved : Valid +[wp] [Qed] Goal typed_memcpy_alias_vars_loop_invariant_src_established : Valid +[wp] [Qed] Goal typed_memcpy_alias_vars_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_memcpy_alias_vars_loop_assigns_part2 : Valid +[wp] [Qed] Goal typed_memcpy_alias_vars_loop_assigns_part3 : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_alias_vars_loop_assigns_part4 : Valid +[wp] [Qed] Goal typed_memcpy_alias_vars_assigns : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_context_vars_ensures_memcpy_ok : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_context_vars_ensures_unmodified_ok : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_context_vars_loop_invariant_ok_cpy_preserved : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_loop_invariant_ok_cpy_established : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_loop_invariant_ok_dst_preserved : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_loop_invariant_ok_dst_established : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_context_vars_loop_invariant_ok_len_preserved : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_loop_invariant_ok_len_established : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_loop_invariant_ok_src_preserved : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_loop_invariant_ok_src_established : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_loop_assigns_part2 : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_loop_assigns_part3 : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_context_vars_loop_assigns_part4 : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_assigns : Valid [wp] Proved goals: 30 / 30 Qed: 20 Alt-Ergo: 10 diff --git a/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.1.res.oracle b/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.1.res.oracle index 37d098c44c8daaf3e9e1ed3f779a8d2e32578831..94fca76c2fe618788f35b401717eb76847b78f12 100644 --- a/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.1.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.1.res.oracle @@ -4,23 +4,23 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 10 goals scheduled -[wp] [Alt-Ergo] Goal typed_memcpy_context_vars_post_memcpy_ok : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_post_unmodified_ok : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_context_vars_loop_inv_ok_cpy_preserved : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_loop_inv_ok_cpy_established : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_loop_inv_ok_dst_preserved : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_loop_inv_ok_dst_established : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_context_vars_loop_inv_ok_len_preserved : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_loop_inv_ok_len_established : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_loop_inv_ok_src_preserved : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_loop_inv_ok_src_established : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_context_vars_ensures_memcpy_ok : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_ensures_unmodified_ok : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_context_vars_loop_invariant_ok_cpy_preserved : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_loop_invariant_ok_cpy_established : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_loop_invariant_ok_dst_preserved : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_loop_invariant_ok_dst_established : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_context_vars_loop_invariant_ok_len_preserved : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_loop_invariant_ok_len_established : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_loop_invariant_ok_src_preserved : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_loop_invariant_ok_src_established : Valid [wp] Proved goals: 10 / 10 Qed: 7 Alt-Ergo: 3 [wp] Report 'tests/wp_usage/issue-189-bis.i.1.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -memcpy_context_vars 7 3 (88..112) 10 100% +memcpy_context_vars 7 3 (96..120) 10 100% ------------------------------------------------------------- [wp] Warning: Memory model hypotheses for function 'memcpy_context_vars': /*@ diff --git a/src/plugins/wp/wpPropId.ml b/src/plugins/wp/wpPropId.ml index f29dbe5e66748716ac4f5013351fc94a474273fd..7ee846ce041899d1ccc150f7655f6304006de089 100644 --- a/src/plugins/wp/wpPropId.ml +++ b/src/plugins/wp/wpPropId.ml @@ -228,10 +228,15 @@ module PropId = let varname = Datatype.undefined end) -module Names: +(* -------------------------------------------------------------------------- *) +(* --- Lagacy Naming --- *) +(* -------------------------------------------------------------------------- *) + +module LegacyNames : sig val get_prop_id_name: prop_id -> string end = struct + module NamesTbl = State_builder.Hashtbl(Datatype.String.Hashtbl)(Datatype.Int) (struct let name = "WpPropertyNames" @@ -253,7 +258,7 @@ end = struct let size = 97 end) - let base_id_prop_txt = Property.Names.get_prop_name_id + let base_id_prop_txt = Property.LegacyNames.get_prop_name_id let basename_of_prop_id p = match p.p_kind , p.p_prop with @@ -317,6 +322,90 @@ end = struct end +(* -------------------------------------------------------------------------- *) +(* --- Naming Properties --- *) +(* -------------------------------------------------------------------------- *) + +module Names: +sig + val get_prop_id_name: prop_id -> string +end = +struct + + module NamesTbl = State_builder.Hashtbl(Datatype.String.Hashtbl)(Datatype.Int) + (struct + let name = "Wp.WpPropId.Names.NamesTbl" + let dependencies = [ ] + let size = 97 + end) + + module IndexTbl = + State_builder.Hashtbl(Property.Hashtbl)(Datatype.String) + (struct + let name = "Wp.WpPropId.Names.IndexTbl" + let dependencies = + [ Ast.self; + NamesTbl.self; + Globals.Functions.self; + Annotations.code_annot_state; + Annotations.funspec_state; + Annotations.global_state ] + let size = 97 + end) + + let compute_ip ip = + let truncate = max 20 (Wp_parameters.TruncPropIdFileName.get ()) in + let basename = Property.Names.get_prop_basename ~truncate ip in + try + let speed_up_start = NamesTbl.find basename in + let n,unique_name = Extlib.make_unique_name + NamesTbl.mem ~sep:"_" ~start:speed_up_start basename + in NamesTbl.replace basename (succ n) ; + unique_name + with Not_found -> (* first time that basename is reserved *) + NamesTbl.add basename 2 ; basename + + let get_ip ip = + try IndexTbl.find ip + with Not_found -> (* first time we are asking for a name for that [ip] *) + let unique_name = compute_ip ip in + IndexTbl.add ip unique_name ; + unique_name + + let get_prop_id_base p = + match p.p_kind , p.p_prop with + | (PKTactic | PKCheck | PKProp | PKPropLoop) , p -> get_ip p + | PKEstablished , p -> get_ip p ^ "_established" + | PKPreserved , p -> get_ip p ^ "_preserved" + | PKVarDecr , p -> get_ip p ^ "_decrease" + | PKVarPos , p -> get_ip p ^ "_positive" + | PKAFctOut , p -> get_ip p ^ "_normal" + | PKAFctExit , p -> get_ip p ^ "_exit" + | PKPre(_kf,stmt,pre) , _ -> + let kf_name_of_stmt = + Kernel_function.get_name + (Kernel_function.find_englobing_kf stmt) + in Printf.sprintf "%s_call_%s" kf_name_of_stmt (get_ip pre) + + let get_prop_id_name p = + let basename = get_prop_id_base p in + match p.p_part with + | None -> basename + | Some(k,n) -> + if n < 10 then Printf.sprintf "%s_part%d" basename (succ k) else + if n < 100 then Printf.sprintf "%s_part%02d" basename (succ k) else + if n < 1000 then Printf.sprintf "%s_part%03d" basename (succ k) else + Printf.sprintf "%s_part%06d" basename (succ k) + +end + +(* -------------------------------------------------------------------------- *) +(* --- Naming Accessors --- *) +(* -------------------------------------------------------------------------- *) + +let get_legacy = LegacyNames.get_prop_id_name +(** Legacy property PO name *) + let get_propid = Names.get_prop_id_name (** Name related to a property PO *) @@ -334,38 +423,31 @@ let code_annot_names ca = match ca.annot_content with | AAssert (_, named_pred) -> "@assert"::(ident_names named_pred.pred_name) | AInvariant (_,_,named_pred) -> "@invariant"::(ident_names named_pred.pred_name) | AVariant (term, _) -> "@variant"::(ident_names term.term_name) + | AExtended(_,_,(_,name,_,_)) -> [Printf.sprintf "@%s" name] | _ -> [] (* TODO : add some more names ? *) (** This is used to give the name of the property that the user can give * to select it from the command line (-wp-prop option) *) let user_prop_names p = match p with | Property.IPPredicate (kind,_,_,idp) -> - let kind_name = - Format.asprintf "%c%a" '@' Property.pretty_predicate_kind kind - in - kind_name::idp.ip_content.pred_name - | Property.IPExtended(_,(_,name,_,_)) -> - let kind_name = Format.asprintf "%s_extension" name in [kind_name] + Format.asprintf "@@%a" Property.pretty_predicate_kind kind :: + idp.ip_content.pred_name + | Property.IPExtended(_,(_,name,_,_)) -> [ Printf.sprintf "@%s" name ] | Property.IPCodeAnnot (_,_, ca) -> code_annot_names ca | Property.IPComplete (_, _,_,lb) -> let kind_name = "@complete_behaviors" in - let name = - Format.asprintf "complete_behaviors%a" pp_names lb + let name = Format.asprintf "complete_behaviors%a" pp_names lb in kind_name::[name] | Property.IPDisjoint (_, _,_, lb) -> let kind_name = "@disjoint_behaviors" in - let name = Format.asprintf "disjoint_behaviors%a" pp_names lb + let name = Format.asprintf "disjoint_behaviors%a" pp_names lb in kind_name::[name] | Property.IPAssigns (_, _, _, l) -> - let kind_name = "@assigns" in List.fold_left - (fun acc (t,_) -> (ident_names t.it_content.term_name) @ acc) [kind_name] l - | Property.IPDecrease (_,_, Some ca,_) -> - let kind_name = "@decreases" - in kind_name::code_annot_names ca - | Property.IPDecrease _ -> - let kind_name = "@decreases" - in kind_name::[] (*TODO: add more names ? *) + (fun acc (t,_) -> (ident_names t.it_content.term_name) @ acc) + ["@assigns"] l + | Property.IPDecrease (_,_, Some ca,_) -> "@decreases"::code_annot_names ca + | Property.IPDecrease _ -> [ "@decreases" ] | Property.IPLemma (a,_,_,l,_) -> let names = "@lemma"::a::(ident_names l.pred_name) in begin diff --git a/src/plugins/wp/wpPropId.mli b/src/plugins/wp/wpPropId.mli index 0fd74fd18426f90f9a7665a1e66e81899f3cab77..16b42ff8adc916777fbc0510f968b4f8d83a58eb 100644 --- a/src/plugins/wp/wpPropId.mli +++ b/src/plugins/wp/wpPropId.mli @@ -68,6 +68,7 @@ val select_call_pre : stmt -> Property.t option -> prop_id -> bool val prop_id_keys : prop_id -> string list * string list (* required , hints *) val get_propid : prop_id -> string (** Unique identifier of [prop_id] *) +val get_legacy : prop_id -> string (** Unique legacy identifier of [prop_id] *) val pp_propid : Format.formatter -> prop_id -> unit (** Print unique id of [prop_id] *) type prop_kind = diff --git a/src/plugins/wp/wpo.ml b/src/plugins/wp/wpo.ml index 3e341d382e7f61044f9a19e85a30f3d1e898939f..8a20407e53338db5485ec741ba9092b980ec6bbe 100644 --- a/src/plugins/wp/wpo.ml +++ b/src/plugins/wp/wpo.ml @@ -380,6 +380,7 @@ type formula = type po = t and t = { po_gid : string ; (* goal identifier *) + po_leg : string ; (* legacy goal identifier *) po_sid : string ; (* goal short identifier (without model) *) po_name : string ; (* goal informal name *) po_idx : index ; (* goal index *) @@ -453,8 +454,9 @@ module S = [{ po_idx = Function(List.hd Kernel_function.reprs,Some "default") ; po_pid = List.hd WpPropId.PropId.reprs; - po_sid = "xxx"; - po_gid = "xxx"; + po_sid = ""; + po_gid = ""; + po_leg = ""; po_model = Model.repr ; po_name = "dummy"; po_formula = GoalAnnot VC_Annot.repr ; diff --git a/src/plugins/wp/wpo.mli b/src/plugins/wp/wpo.mli index a9d554454e2ccf10fc233f492bedec697b4fb472..9413c844b02e32eb94e06c950d0af43196378001 100644 --- a/src/plugins/wp/wpo.mli +++ b/src/plugins/wp/wpo.mli @@ -116,6 +116,7 @@ type formula = type po = t and t = { po_gid : string ; (** goal identifier *) + po_leg : string ; (** legacy goal identifier *) po_sid : string ; (** goal short identifier (without model) *) po_name : string ; (** goal informal name *) po_idx : index ; (** goal index *) diff --git a/tests/jcdb/oracle/jcdb.0.res.oracle b/tests/jcdb/oracle/jcdb.0.res.oracle index fc6e678e7541aa6336f91a8044e67d6ac8a685c6..1a80090d55b0c602628524a47fa26ba90e0cf493 100644 --- a/tests/jcdb/oracle/jcdb.0.res.oracle +++ b/tests/jcdb/oracle/jcdb.0.res.oracle @@ -1,7 +1,8 @@ [kernel:pp:compilation-db] Warning: - found duplicate flags for 'tests/jcdb/jcdb.c'. - Previous flags: -DDUPLICATE_FLAGS_THAT_WILL_BE_OVERWRITTEN - New flags: -D'MSG="a \" \"b"' -D'SINGLE_DOUBLE(a)="a \"with spaces and tab "' -DSOMEDEF="With spaces, quotes and \-es." -D"DOUBLE_SINGLE(a)=a \"macro with spaces and non-escaped \\'\"" -DEMPTY='' -DEMPTY2= -DTEST=42 -D'MACRO_FOR_INCR(s)=s+1' -DTOUNDEF -UTOUNDEF + found duplicate flags for 'tests/jcdb/jcdb.c', replacing old flags. + Old flags no longer present: -D'MSG="a \" \"b"' -D'SINGLE_DOUBLE(a)="a \"with spaces and tab "' -DSOMEDEF="With spaces, quotes and \-es." -D"DOUBLE_SINGLE(a)=a \"macro with spaces and non-escaped \\'\"" -DEMPTY='' -DEMPTY2= -DTEST=42 -D'MACRO_FOR_INCR(s)=s+1' -DTOUNDEF -UTOUNDEF + New flags not previously present: -DDUPLICATE_FLAGS_THAT_WILL_BE_OVERWRITTEN + (warn-once: no further messages from category 'pp:compilation-db' will be emitted) [kernel] Parsing tests/jcdb/jcdb.c (with preprocessing) /* Generated by Frama-C */ #include "errno.h" diff --git a/tests/misc/oracle/pp_int.res.oracle b/tests/misc/oracle/pp_int.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..f544e754a18043056e60b1d7a5eb0535289b3f07 --- /dev/null +++ b/tests/misc/oracle/pp_int.res.oracle @@ -0,0 +1,479 @@ +====================================================================== +Nbits: 0 Sep: "," +---------------------------------------------------------------------- +value '65537' '10001' +refhex '0x0001,0001' +pp_hex '0x0001,0001' +refbin '0b0000,0000,0000,0001,0000,0000,0000,0001' +pp_bin ' 0b0001,0000,0000,0000,0001' +pp_neg ' 1b1110,1111,1111,1111,1110' +---------------------------------------------------------------------- +value '65536' '10000' +refhex '0x0001,0000' +pp_hex '0x0001,0000' +refbin '0b0000,0000,0000,0001,0000,0000,0000,0000' +pp_bin ' 0b0001,0000,0000,0000,0000' +pp_neg ' 1b1110,1111,1111,1111,1111' +---------------------------------------------------------------------- +value '65335' 'ff37' +refhex '0x0000,FF37' +pp_hex ' 0xFF37' +refbin '0b0000,0000,0000,0000,1111,1111,0011,0111' +pp_bin ' 0b1111,1111,0011,0111' +pp_neg ' 1b0000,0000,1100,1000' +---------------------------------------------------------------------- +value '65534' 'fffe' +refhex '0x0000,FFFE' +pp_hex ' 0xFFFE' +refbin '0b0000,0000,0000,0000,1111,1111,1111,1110' +pp_bin ' 0b1111,1111,1111,1110' +pp_neg ' 1b0000,0000,0000,0001' +---------------------------------------------------------------------- +value '127' '7f' +refhex '0x0000,007F' +pp_hex ' 0x007F' +refbin '0b0000,0000,0000,0000,0000,0000,0111,1111' +pp_bin ' 0b0111,1111' +pp_neg ' 1b1000,0000' +---------------------------------------------------------------------- +value '128' '80' +refhex '0x0000,0080' +pp_hex ' 0x0080' +refbin '0b0000,0000,0000,0000,0000,0000,1000,0000' +pp_bin ' 0b1000,0000' +pp_neg ' 1b0111,1111' +---------------------------------------------------------------------- +value '129' '81' +refhex '0x0000,0081' +pp_hex ' 0x0081' +refbin '0b0000,0000,0000,0000,0000,0000,1000,0001' +pp_bin ' 0b1000,0001' +pp_neg ' 1b0111,1110' +---------------------------------------------------------------------- +value '2' '2' +refhex '0x0000,0002' +pp_hex ' 0x0002' +refbin '0b0000,0000,0000,0000,0000,0000,0000,0010' +pp_bin ' 0b0010' +pp_neg ' 1b1101' +---------------------------------------------------------------------- +value '1' '1' +refhex '0x0000,0001' +pp_hex ' 0x0001' +refbin '0b0000,0000,0000,0000,0000,0000,0000,0001' +pp_bin ' 0b0001' +pp_neg ' 1b1110' +---------------------------------------------------------------------- +value '0' '0' +refhex '0x0000,0000' +pp_hex ' 0x0000' +refbin '0b0000,0000,0000,0000,0000,0000,0000,0000' +pp_bin ' 0b0000' +pp_neg ' 1b1111' +---------------------------------------------------------------------- +value '-1' '7fffffffffffffff' +refhex '1xFFFF,FFFF' +pp_hex ' 1xFFFF' +refbin '1b1111,1111,1111,1111,1111,1111,1111,1111' +pp_bin ' 1b1111' +pp_neg ' 0b0000' +---------------------------------------------------------------------- +value '-2' '7ffffffffffffffe' +refhex '1xFFFF,FFFE' +pp_hex ' 1xFFFE' +refbin '1b1111,1111,1111,1111,1111,1111,1111,1110' +pp_bin ' 1b1110' +pp_neg ' 0b0001' +---------------------------------------------------------------------- +value '-3' '7ffffffffffffffd' +refhex '1xFFFF,FFFD' +pp_hex ' 1xFFFD' +refbin '1b1111,1111,1111,1111,1111,1111,1111,1101' +pp_bin ' 1b1101' +pp_neg ' 0b0010' +---------------------------------------------------------------------- +value '-126' '7fffffffffffff82' +refhex '1xFFFF,FF82' +pp_hex ' 1xFF82' +refbin '1b1111,1111,1111,1111,1111,1111,1000,0010' +pp_bin ' 1b1000,0010' +pp_neg ' 0b0111,1101' +---------------------------------------------------------------------- +value '-127' '7fffffffffffff81' +refhex '1xFFFF,FF81' +pp_hex ' 1xFF81' +refbin '1b1111,1111,1111,1111,1111,1111,1000,0001' +pp_bin ' 1b1000,0001' +pp_neg ' 0b0111,1110' +---------------------------------------------------------------------- +value '-128' '7fffffffffffff80' +refhex '1xFFFF,FF80' +pp_hex ' 1xFF80' +refbin '1b1111,1111,1111,1111,1111,1111,1000,0000' +pp_bin ' 1b1000,0000' +pp_neg ' 0b0111,1111' +---------------------------------------------------------------------- +value '-129' '7fffffffffffff7f' +refhex '1xFFFF,FF7F' +pp_hex ' 1xFF7F' +refbin '1b1111,1111,1111,1111,1111,1111,0111,1111' +pp_bin ' 1b0111,1111' +pp_neg ' 0b1000,0000' +---------------------------------------------------------------------- +value '-130' '7fffffffffffff7e' +refhex '1xFFFF,FF7E' +pp_hex ' 1xFF7E' +refbin '1b1111,1111,1111,1111,1111,1111,0111,1110' +pp_bin ' 1b0111,1110' +pp_neg ' 0b1000,0001' +---------------------------------------------------------------------- +value '-254' '7fffffffffffff02' +refhex '1xFFFF,FF02' +pp_hex ' 1xFF02' +refbin '1b1111,1111,1111,1111,1111,1111,0000,0010' +pp_bin ' 1b0000,0010' +pp_neg ' 0b1111,1101' +---------------------------------------------------------------------- +value '-255' '7fffffffffffff01' +refhex '1xFFFF,FF01' +pp_hex ' 1xFF01' +refbin '1b1111,1111,1111,1111,1111,1111,0000,0001' +pp_bin ' 1b0000,0001' +pp_neg ' 0b1111,1110' +---------------------------------------------------------------------- +value '-256' '7fffffffffffff00' +refhex '1xFFFF,FF00' +pp_hex ' 1xFF00' +refbin '1b1111,1111,1111,1111,1111,1111,0000,0000' +pp_bin ' 1b0000,0000' +pp_neg ' 0b1111,1111' +---------------------------------------------------------------------- +value '-257' '7ffffffffffffeff' +refhex '1xFFFF,FEFF' +pp_hex ' 1xFEFF' +refbin '1b1111,1111,1111,1111,1111,1110,1111,1111' +pp_bin ' 1b1110,1111,1111' +pp_neg ' 0b0001,0000,0000' +---------------------------------------------------------------------- +value '-258' '7ffffffffffffefe' +refhex '1xFFFF,FEFE' +pp_hex ' 1xFEFE' +refbin '1b1111,1111,1111,1111,1111,1110,1111,1110' +pp_bin ' 1b1110,1111,1110' +pp_neg ' 0b0001,0000,0001' +---------------------------------------------------------------------- +value '-65534' '7fffffffffff0002' +refhex '1xFFFF,0002' +pp_hex ' 1x0002' +refbin '1b1111,1111,1111,1111,0000,0000,0000,0010' +pp_bin ' 1b0000,0000,0000,0010' +pp_neg ' 0b1111,1111,1111,1101' +---------------------------------------------------------------------- +value '-65535' '7fffffffffff0001' +refhex '1xFFFF,0001' +pp_hex ' 1x0001' +refbin '1b1111,1111,1111,1111,0000,0000,0000,0001' +pp_bin ' 1b0000,0000,0000,0001' +pp_neg ' 0b1111,1111,1111,1110' +---------------------------------------------------------------------- +value '-65536' '7fffffffffff0000' +refhex '1xFFFF,0000' +pp_hex ' 1x0000' +refbin '1b1111,1111,1111,1111,0000,0000,0000,0000' +pp_bin ' 1b0000,0000,0000,0000' +pp_neg ' 0b1111,1111,1111,1111' +---------------------------------------------------------------------- +value '-65537' '7ffffffffffeffff' +refhex '1xFFFE,FFFF' +pp_hex '1xFFFE,FFFF' +refbin '1b1111,1111,1111,1110,1111,1111,1111,1111' +pp_bin ' 1b1110,1111,1111,1111,1111' +pp_neg ' 0b0001,0000,0000,0000,0000' +---------------------------------------------------------------------- +value '-65538' '7ffffffffffefffe' +refhex '1xFFFE,FFFE' +pp_hex '1xFFFE,FFFE' +refbin '1b1111,1111,1111,1110,1111,1111,1111,1110' +pp_bin ' 1b1110,1111,1111,1111,1110' +pp_neg ' 0b0001,0000,0000,0000,0001' +====================================================================== +Nbits: 8 Sep: "" +---------------------------------------------------------------------- +value '65335' 'ff37' +refhex '0x0000FF37' +pp_hex ' 0xFF37' +refbin '0b00000000000000001111111100110111' +pp_bin ' 0b1111111100110111' +pp_neg ' 1b0000000011001000' +---------------------------------------------------------------------- +value '65534' 'fffe' +refhex '0x0000FFFE' +pp_hex ' 0xFFFE' +refbin '0b00000000000000001111111111111110' +pp_bin ' 0b1111111111111110' +pp_neg ' 1b0000000000000001' +---------------------------------------------------------------------- +value '2' '2' +refhex '0x00000002' +pp_hex ' 0x0002' +refbin '0b00000000000000000000000000000010' +pp_bin ' 0b00000010' +pp_neg ' 1b11111101' +---------------------------------------------------------------------- +value '1' '1' +refhex '0x00000001' +pp_hex ' 0x0001' +refbin '0b00000000000000000000000000000001' +pp_bin ' 0b00000001' +pp_neg ' 1b11111110' +---------------------------------------------------------------------- +value '0' '0' +refhex '0x00000000' +pp_hex ' 0x0000' +refbin '0b00000000000000000000000000000000' +pp_bin ' 0b00000000' +pp_neg ' 1b11111111' +---------------------------------------------------------------------- +value '-1' '7fffffffffffffff' +refhex '1xFFFFFFFF' +pp_hex ' 1xFFFF' +refbin '1b11111111111111111111111111111111' +pp_bin ' 1b11111111' +pp_neg ' 0b00000000' +---------------------------------------------------------------------- +value '-2' '7ffffffffffffffe' +refhex '1xFFFFFFFE' +pp_hex ' 1xFFFE' +refbin '1b11111111111111111111111111111110' +pp_bin ' 1b11111110' +pp_neg ' 0b00000001' +---------------------------------------------------------------------- +value '-254' '7fffffffffffff02' +refhex '1xFFFFFF02' +pp_hex ' 1xFF02' +refbin '1b11111111111111111111111100000010' +pp_bin ' 1b00000010' +pp_neg ' 0b11111101' +---------------------------------------------------------------------- +value '-255' '7fffffffffffff01' +refhex '1xFFFFFF01' +pp_hex ' 1xFF01' +refbin '1b11111111111111111111111100000001' +pp_bin ' 1b00000001' +pp_neg ' 0b11111110' +---------------------------------------------------------------------- +value '-256' '7fffffffffffff00' +refhex '1xFFFFFF00' +pp_hex ' 1xFF00' +refbin '1b11111111111111111111111100000000' +pp_bin ' 1b00000000' +pp_neg ' 0b11111111' +---------------------------------------------------------------------- +value '-65534' '7fffffffffff0002' +refhex '1xFFFF0002' +pp_hex ' 1x0002' +refbin '1b11111111111111110000000000000010' +pp_bin ' 1b0000000000000010' +pp_neg ' 0b1111111111111101' +---------------------------------------------------------------------- +value '-65535' '7fffffffffff0001' +refhex '1xFFFF0001' +pp_hex ' 1x0001' +refbin '1b11111111111111110000000000000001' +pp_bin ' 1b0000000000000001' +pp_neg ' 0b1111111111111110' +---------------------------------------------------------------------- +value '-65536' '7fffffffffff0000' +refhex '1xFFFF0000' +pp_hex ' 1x0000' +refbin '1b11111111111111110000000000000000' +pp_bin ' 1b0000000000000000' +pp_neg ' 0b1111111111111111' +====================================================================== +Nbits: 10 Sep: "" +---------------------------------------------------------------------- +value '65335' 'ff37' +refhex '0x0000FF37' +pp_hex ' 0xFF37' +refbin '0b00000000000000001111111100110111' +pp_bin ' 0b1111111100110111' +pp_neg ' 1b0000000011001000' +---------------------------------------------------------------------- +value '65534' 'fffe' +refhex '0x0000FFFE' +pp_hex ' 0xFFFE' +refbin '0b00000000000000001111111111111110' +pp_bin ' 0b1111111111111110' +pp_neg ' 1b0000000000000001' +---------------------------------------------------------------------- +value '2' '2' +refhex '0x00000002' +pp_hex ' 0x0002' +refbin '0b00000000000000000000000000000010' +pp_bin ' 0b000000000010' +pp_neg ' 1b111111111101' +---------------------------------------------------------------------- +value '1' '1' +refhex '0x00000001' +pp_hex ' 0x0001' +refbin '0b00000000000000000000000000000001' +pp_bin ' 0b000000000001' +pp_neg ' 1b111111111110' +---------------------------------------------------------------------- +value '0' '0' +refhex '0x00000000' +pp_hex ' 0x0000' +refbin '0b00000000000000000000000000000000' +pp_bin ' 0b000000000000' +pp_neg ' 1b111111111111' +---------------------------------------------------------------------- +value '-1' '7fffffffffffffff' +refhex '1xFFFFFFFF' +pp_hex ' 1xFFFF' +refbin '1b11111111111111111111111111111111' +pp_bin ' 1b111111111111' +pp_neg ' 0b000000000000' +---------------------------------------------------------------------- +value '-2' '7ffffffffffffffe' +refhex '1xFFFFFFFE' +pp_hex ' 1xFFFE' +refbin '1b11111111111111111111111111111110' +pp_bin ' 1b111111111110' +pp_neg ' 0b000000000001' +---------------------------------------------------------------------- +value '-254' '7fffffffffffff02' +refhex '1xFFFFFF02' +pp_hex ' 1xFF02' +refbin '1b11111111111111111111111100000010' +pp_bin ' 1b111100000010' +pp_neg ' 0b000011111101' +---------------------------------------------------------------------- +value '-255' '7fffffffffffff01' +refhex '1xFFFFFF01' +pp_hex ' 1xFF01' +refbin '1b11111111111111111111111100000001' +pp_bin ' 1b111100000001' +pp_neg ' 0b000011111110' +---------------------------------------------------------------------- +value '-256' '7fffffffffffff00' +refhex '1xFFFFFF00' +pp_hex ' 1xFF00' +refbin '1b11111111111111111111111100000000' +pp_bin ' 1b111100000000' +pp_neg ' 0b000011111111' +---------------------------------------------------------------------- +value '-65534' '7fffffffffff0002' +refhex '1xFFFF0002' +pp_hex ' 1x0002' +refbin '1b11111111111111110000000000000010' +pp_bin ' 1b0000000000000010' +pp_neg ' 0b1111111111111101' +---------------------------------------------------------------------- +value '-65535' '7fffffffffff0001' +refhex '1xFFFF0001' +pp_hex ' 1x0001' +refbin '1b11111111111111110000000000000001' +pp_bin ' 1b0000000000000001' +pp_neg ' 0b1111111111111110' +---------------------------------------------------------------------- +value '-65536' '7fffffffffff0000' +refhex '1xFFFF0000' +pp_hex ' 1x0000' +refbin '1b11111111111111110000000000000000' +pp_bin ' 1b0000000000000000' +pp_neg ' 0b1111111111111111' +====================================================================== +Nbits: 10 Sep: "." +---------------------------------------------------------------------- +value '65335' 'ff37' +refhex '0x0000.FF37' +pp_hex ' 0xFF37' +refbin '0b0000.0000.0000.0000.1111.1111.0011.0111' +pp_bin ' 0b1111.1111.0011.0111' +pp_neg ' 1b0000.0000.1100.1000' +---------------------------------------------------------------------- +value '65534' 'fffe' +refhex '0x0000.FFFE' +pp_hex ' 0xFFFE' +refbin '0b0000.0000.0000.0000.1111.1111.1111.1110' +pp_bin ' 0b1111.1111.1111.1110' +pp_neg ' 1b0000.0000.0000.0001' +---------------------------------------------------------------------- +value '2' '2' +refhex '0x0000.0002' +pp_hex ' 0x0002' +refbin '0b0000.0000.0000.0000.0000.0000.0000.0010' +pp_bin ' 0b0000.0000.0010' +pp_neg ' 1b1111.1111.1101' +---------------------------------------------------------------------- +value '1' '1' +refhex '0x0000.0001' +pp_hex ' 0x0001' +refbin '0b0000.0000.0000.0000.0000.0000.0000.0001' +pp_bin ' 0b0000.0000.0001' +pp_neg ' 1b1111.1111.1110' +---------------------------------------------------------------------- +value '0' '0' +refhex '0x0000.0000' +pp_hex ' 0x0000' +refbin '0b0000.0000.0000.0000.0000.0000.0000.0000' +pp_bin ' 0b0000.0000.0000' +pp_neg ' 1b1111.1111.1111' +---------------------------------------------------------------------- +value '-1' '7fffffffffffffff' +refhex '1xFFFF.FFFF' +pp_hex ' 1xFFFF' +refbin '1b1111.1111.1111.1111.1111.1111.1111.1111' +pp_bin ' 1b1111.1111.1111' +pp_neg ' 0b0000.0000.0000' +---------------------------------------------------------------------- +value '-2' '7ffffffffffffffe' +refhex '1xFFFF.FFFE' +pp_hex ' 1xFFFE' +refbin '1b1111.1111.1111.1111.1111.1111.1111.1110' +pp_bin ' 1b1111.1111.1110' +pp_neg ' 0b0000.0000.0001' +---------------------------------------------------------------------- +value '-254' '7fffffffffffff02' +refhex '1xFFFF.FF02' +pp_hex ' 1xFF02' +refbin '1b1111.1111.1111.1111.1111.1111.0000.0010' +pp_bin ' 1b1111.0000.0010' +pp_neg ' 0b0000.1111.1101' +---------------------------------------------------------------------- +value '-255' '7fffffffffffff01' +refhex '1xFFFF.FF01' +pp_hex ' 1xFF01' +refbin '1b1111.1111.1111.1111.1111.1111.0000.0001' +pp_bin ' 1b1111.0000.0001' +pp_neg ' 0b0000.1111.1110' +---------------------------------------------------------------------- +value '-256' '7fffffffffffff00' +refhex '1xFFFF.FF00' +pp_hex ' 1xFF00' +refbin '1b1111.1111.1111.1111.1111.1111.0000.0000' +pp_bin ' 1b1111.0000.0000' +pp_neg ' 0b0000.1111.1111' +---------------------------------------------------------------------- +value '-65534' '7fffffffffff0002' +refhex '1xFFFF.0002' +pp_hex ' 1x0002' +refbin '1b1111.1111.1111.1111.0000.0000.0000.0010' +pp_bin ' 1b0000.0000.0000.0010' +pp_neg ' 0b1111.1111.1111.1101' +---------------------------------------------------------------------- +value '-65535' '7fffffffffff0001' +refhex '1xFFFF.0001' +pp_hex ' 1x0001' +refbin '1b1111.1111.1111.1111.0000.0000.0000.0001' +pp_bin ' 1b0000.0000.0000.0001' +pp_neg ' 0b1111.1111.1111.1110' +---------------------------------------------------------------------- +value '-65536' '7fffffffffff0000' +refhex '1xFFFF.0000' +pp_hex ' 1x0000' +refbin '1b1111.1111.1111.1111.0000.0000.0000.0000' +pp_bin ' 1b0000.0000.0000.0000' +pp_neg ' 0b1111.1111.1111.1111' +---------------------------------------------------------------------- +[kernel] Parsing tests/misc/pp_int.i (no preprocessing) diff --git a/tests/misc/pp_int.i b/tests/misc/pp_int.i new file mode 100644 index 0000000000000000000000000000000000000000..d6da6546ebd7eceeb7f3e589508b388adc949278 --- /dev/null +++ b/tests/misc/pp_int.i @@ -0,0 +1,4 @@ +/* run.config + COMMENT: test of Integer.pp_bin and Integer.pp_hex + OPT: -load-script tests/misc/pp_int.ml + */ diff --git a/tests/misc/pp_int.ml b/tests/misc/pp_int.ml new file mode 100644 index 0000000000000000000000000000000000000000..ef2d83bd0b7037492702c6398e5a7f2252c753c3 --- /dev/null +++ b/tests/misc/pp_int.ml @@ -0,0 +1,90 @@ +(* -------------------------------------------------------------------------- *) +(* --- Test for Integer.pp_int and Integer.pp_hex --- *) +(* -------------------------------------------------------------------------- *) + +let pp_bin_naive ~sep fmt x = + Format.pp_print_string fmt (if 0 <= x then "0b" else "1b") ; + for i = 31 downto 0 do + let b = (x land (1 lsl i)) <> 0 in + Format.pp_print_char fmt (if b then '1' else '0') ; + if i > 0 && i mod 4 = 0 then Format.pp_print_string fmt sep ; + done + +let pp_hex_naive ~sep fmt x = + let m = Printf.sprintf "%08X" x in + let n = String.length m in + let m = if n < 8 then m else String.sub m (n-8) 8 in + let n = String.length m in + Format.pp_print_string fmt (if 0 <= x then "0x" else "1x") ; + for i = n - 1 downto 0 do + Format.pp_print_char fmt m.[n-1-i] ; + if i > 0 && i mod 4 = 0 then Format.pp_print_string fmt sep ; + done + +let pp_bar fmt c = + Format.fprintf fmt "%s@\n" (String.make 70 c) + +let testvalue ~nbits ~sep ~tbin ~thex fmt x = + begin + let v = Integer.of_int x in + let v2 = Integer.(lognot v) in + pp_bar fmt '-' ; + Format.fprintf fmt "value '%d' '%x'@\n" x x ; + Format.fprintf fmt "refhex '%a'@\n" (pp_hex_naive ~sep) x ; + Format.fprintf fmt "pp_hex '%s%a'@\n" thex (Integer.pp_hex ~nbits ~sep) v ; + Format.fprintf fmt "refbin '%a'@\n" (pp_bin_naive ~sep) x ; + Format.fprintf fmt "pp_bin '%s%a'@\n" tbin (Integer.pp_bin ~nbits ~sep) v ; + Format.fprintf fmt "pp_neg '%s%a'@\n" tbin (Integer.pp_bin ~nbits ~sep) v2 ; + end + +let testdata data fmt = + begin + List.iter + (fun (nbits,sep,values) -> + pp_bar fmt '=' ; + Format.fprintf fmt "Nbits: %d Sep: %S@\n" nbits sep ; + List.iter + (fun (nhex,nbin,values) -> + let tbin = String.make nbin ' ' in + let thex = String.make nhex ' ' in + List.iter (testvalue ~nbits ~sep ~tbin ~thex fmt) values + ) values ; + ) data ; + pp_bar fmt '-' ; + end + +let () = + Format.printf "%t" + begin testdata [ + 0, "," , [ + 0 , 15 , [ 65537;65536 ] ; + 5 , 20 , [ 65335;65534 ] ; + 5 , 30 , [ 127;128;129 ] ; + 5 , 35 , [ 2;1;0;-1;-2;-3 ] ; + 5 , 30 , [ -126;-127;-128;-129;-130 ] ; + 5 , 30 , [ -254;-255;-256 ] ; + 5 , 25 , [ -257;-258 ] ; + 5 , 20 , [ -65534;-65535;-65536 ] ; + 0 , 15 , [ -65537;-65538 ] ; + ] ; + 8, "" , [ + 4 , 16 , [ 65335;65534 ] ; + 4 , 24 , [ 2;1;0;-1;-2 ] ; + 4 , 20 , [ -254;-255;-256 ] ; + 4 , 16 , [ -65534;-65535;-65536 ] ; + ] ; + 10, "" , [ + 4 , 16 , [ 65335;65534 ] ; + 4 , 20 , [ 2;1;0;-1;-2 ] ; + 4 , 20 , [ -254;-255;-256 ] ; + 4 , 16 , [ -65534;-65535;-65536 ] ; + ] ; + 10, "." , [ + 5 , 20 , [ 65335;65534 ] ; + 5 , 25 , [ 2;1;0;-1;-2 ] ; + 5 , 25 , [ -254;-255;-256 ] ; + 5 , 20 , [ -65534;-65535;-65536 ] ; + ] ; + ] + end +