1. 06 Nov, 2017 1 commit
  2. 30 Jun, 2017 1 commit
    • MARCHE Claude's avatar
      few improvements in CE bench · a229dcf0
      MARCHE Claude authored
      * time limit set to 1 sec. Quicker, and results are the same !
      * use Stdlib whenever possible
      * FIXME: the use of StringMap.bindings should not be useful, and wastes time and memory
  3. 28 Jun, 2017 1 commit
  4. 26 Jun, 2017 1 commit
    • Sylvain Dailler's avatar
      Q424-012 Parse z3s boolean expression and floating point value · 3a94474f
      Sylvain Dailler authored
      This commit adds parsing for boolean expression and floating point value
      which are returned by z3 on the last version. This adds floating point
      values in the collected data and JSON printed data. This does not add
      boolean expressions because it does not add information.
      Also added transformation eliminate epsilon in driver for Z3 ce.
      * drivers/z3_gnatprove_ce.drv
      (eliminate_epsilon): Added transformation eliminate epsilon in driver for
      counterex for z3.
      * src/core/model_parser.ml
      (float_type): Added a float_type and functions to send it as JSON data.
      * src/driver/collect_data_model.ml
      (convert_array_value): Explicit matching for error handling when adding
      (convert_float): Dummy conversion of float_type to avoid circular
      * src/driver/parse_smtv2_model_lexer.mll
      (token): Adding z3 specific boolean expressions. Also adding a way to
      parse all floating point value including those we don't want to print
      because we need to parse them even if we don't want to print them.
      * src/driver/parse_smtv2_model_parser.mly
      (smt_term): Adding floating point value case which is handled in the lexer.
      Added boolean_expression case.
      * src/driver/smt2_model_defs.ml
      (float_type): Adding a duplicated float_type for dependencies reasons.
      (print_float): Debugging print of float_type.
      (): Adding cases for float in remaining functions.
      Change-Id: I5baee2880a9843f0fec61b1bf3edb2a2f3e54bd1
  5. 12 Apr, 2017 2 commits
    • Sylvain Dailler's avatar
      Q217-025 Use get-model instead of get-values for CE · 1f6da25d
      Sylvain Dailler authored
      This commit allows parsing of the result of get-model from smtsolvers.
      It changes the communication between why3 and Spark for CE to communicate
      records and array as JSON values.
       * src/core/model_parser.ml
      (model_value): Adding boolean and record type to model values.
      (print_*): Changed printing functions to print arrays and records as JSON
      values not as strings.
       * src/driver/collect_data_model.ml
      (get_variables_*): collect all internal variables of a term and put them
      into a map.
      (add_all_cvc): Add all cvc4 variables in the model to a global map.
      (add_vars_to_table): Add values of variables that can be deduced from ITE
       to the table.
      (corres_else_element): Take the definitions of functions to_rep/of_rep
      and extract the values of internal CVC variables from it.
      (refine_*): Recursively replace internal variables in a term with values
      taken from the table.
      (convert_*): Convert to type model_value from model_parser.ml.
      (create_list): Combine the following to get a list of model_value from
      the parsing of the model.
      * src/driver/parse_smtv2_model.ml
      (parse): Changed the detected end of model.
      * src/driver/parse_smtv2_model_lexer.mll
      (rule): Added tokens related to model definitions and SPARK definitions of
      records, discriminants and ref.
      * src/driver/parse_smtv2_model_parser.mly
      (output): Changed the parser so that it can parse a model as returned by
      Cvc4 or z3.
      * src/driver/smt2_model_defs.ml
      (print_*): Added printing functions for terms.
      (make_local*): Changes the AST of terms to differentiate smtsolver
      internal variables, user-defined variables and local variables.
      (subst*): Removes the local let bindings introduced by z3.
      (build_record_discr): Put definitions of discriminants inside the record
       * src/printer/smtv2.ml
      (print_logic_decl): Removed get-values and added get-model.
      * src/transform/intro_projections_counterexmp.ml
      (intro_const_equal_to_term): Only allow projections for attributes first,
      last and field projections. Necessary when the field of a record is
      itself on array on which we want to get First and Last.
      * src/transform/intro_vc_vars_counterexmp.ml
      (do_intro): Some definitions moved to intro_projections_counterexmp.ml.
      Change-Id: Ib77fb66a2f7c53a9f54cfc300c8984e1fcec8087
    • MARCHE Claude's avatar
      update header for year 2017 · 216f2ecd
      MARCHE Claude authored
  6. 28 Feb, 2017 1 commit
    • Clément Fumex's avatar
      Add the ability to · f0547868
      Clément Fumex authored
      * declare range types and float types,
      * use integer (resp. real) literals for those types through casting,
      * specify how to print them in drivers.
      Change in syntax
      * use
        type t = < range 1 2 >   (* integers from 1 to 2 *)
        type t' = < float 4 12 > (* float with 4 bits in exponent and 12 in mantissa *)
        the two projections :
        and the predicate :
      * Restrict the use of "'" in whyml:
        Users are not allowed to introduce names where a quote symbol
        is followed by a letter. Thus, the following identifiers are
        whereas toto'phi is not.
      Note: we do not yet support negative numbers in range declaration
      and casting of a literal.
  7. 03 Jan, 2017 1 commit
  8. 19 Sep, 2016 1 commit
    • Sylvain Dailler's avatar
      Keeping keep_on_simp labels during wp generation. · 64b1fda4
      Sylvain Dailler authored
      We changed t_map_simp, track_values and the eval_match transformation
      in order to prevent them from removing terms whose head has label
       keep_on_simp. Note that simplification inside those terms is
      still possible.
      * src/core/term.ml
      (t_map_simp): Adding the case when f has label keep_on_simp.
      * src/transform/eval_match.ml
      (eval_match): Adding keep_on_simp as a stop label.
      * src/whyml/mlw_wp.ml
      (track_values): Stopping on keep_on_simp label.
  9. 02 Sep, 2016 1 commit
    • Sylvain Dailler's avatar
      Why3 counterex: Changing the way counterex value are get from prover. · 86ebcd21
      Sylvain Dailler authored
      This commit solve a problem raised by Mohamed Iguernlala. If provers give
      more values than asked, the results of counterex becomes inconsistent.
      We changed the way corresponding terms are associated to counterex value.
      Now we have a map containing the term corresponding to a counterex asked to
      a prover.
      * src/core/model_parser.ml
      (construct_name): Takes a string and create a model_name.
      (build_model_rec): Changed to use term_map which allow a name of asked
      counterex to correspond to the term asked.
      * src/core/printer.ml
      (printer_mapping): Changed type of queried_terms to store correspondance
      between names and terms.
      (printer_args): Changed initial value of queried_terms accordingly.
      * src/core/smtv2.ml
      (print_info_model): This function now returns the map of names to terms.
      (print_prop_decl): Changed variable model_list accordingly.
  10. 25 Jul, 2016 2 commits
  11. 10 Jun, 2016 1 commit
  12. 18 Apr, 2016 1 commit
  13. 15 Mar, 2016 3 commits
  14. 05 Feb, 2016 1 commit
  15. 01 Feb, 2016 1 commit
  16. 13 Jan, 2016 1 commit
  17. 10 Dec, 2015 1 commit
  18. 23 Oct, 2015 1 commit
    • David Hauzar's avatar
      Displaying of counterexamples enhanced. · d92706f7
      David Hauzar authored
      When counterexample is displayed interleaved with source code, only the
      part of the source code from the beginning to the line of the last
      counterexample element is displayed and the focus in the editor is on the
      end of that source code.
      Textual counterexample (without interleaving with source code) is not
      displayed by default. There is a debug flag debug_show_text_cntexmp that
      enables such display.
  19. 13 Oct, 2015 1 commit
  20. 08 Oct, 2015 1 commit
  21. 07 Oct, 2015 1 commit
  22. 06 Oct, 2015 2 commits
    • David Hauzar's avatar
      Not appending "." to names of record fields in counterexamples. · da802d43
      David Hauzar authored
      Previously, "." was automatically appended to names stored in
      model_trace label when creating variables corresponding to record
      fields in eval_match and when projecting record fields in the
      transformation intro_projections_counterexmp. Now, this is not done
      and "." must be given in model_trace label of the projection or
      record field.
      The reason is that for SPARK, character different from "." (e.g., "'"
      needs to be sometimes appended.
    • David Hauzar's avatar
      Parsing decimal numbers from CVC4 models. · ec173a2e
      David Hauzar authored
  23. 30 Sep, 2015 1 commit
    • David Hauzar's avatar
      Store counterexample information related to VC in a special index. · 924c3f18
      David Hauzar authored
      Since the exact line of the construct that triggers VC may not be
      known, the possibility to map the counterexample information related
      to this construct to dedicated index instead of mapping it to line
      number was added.
      Note that the line of the construct that triggers VC is guaranteed to
      be known only if  this construct does not span to multiple lines or if
      the VC is not split.
  24. 25 Sep, 2015 1 commit
  25. 22 Sep, 2015 1 commit
  26. 21 Sep, 2015 1 commit
    • David Hauzar's avatar
      The format of counterexample JSON output changed. · f3aa06e2
      David Hauzar authored
      Model elements in source code line are represented as list of JSON objects
      with attributes "name", "value", and "kind". The attribute "name" is a
      name of a counterexample element, the attribute "value" is the value of
      the counterexample element, and the attribute "kind" is the kind of
      counterexample element, currently one of "old", "result", "error_message",
      and "other".
  27. 11 Sep, 2015 1 commit
  28. 09 Sep, 2015 1 commit
  29. 08 Sep, 2015 2 commits
  30. 07 Sep, 2015 1 commit
  31. 04 Sep, 2015 2 commits
  32. 03 Sep, 2015 2 commits