1. 03 Nov, 2017 2 commits
  2. 19 Oct, 2017 1 commit
  3. 03 Oct, 2017 1 commit
  4. 29 Sep, 2017 1 commit
  5. 26 Sep, 2017 1 commit
  6. 24 May, 2017 1 commit
    • MARCHE Claude's avatar
      allow relative pathnames for drivers stored in the Why3 config file · eb751c1b
      MARCHE Claude authored
      If drivers in why3.conf are simple names like "alt_ergo", then the driver file
      is search as <datadir>/drivers/alt_ergo.drv
      
      This behavior is now the same as when a driver is given with option -D on the
      command line for why3prove, why3replay or why3extract
      
      Reminder: the datadir is either given as
      1) the environment variable WHY3DATA
      2) the field "datadir" of the [main] section of the
         why3 config file if exists
      3) or by default the compile-time datadir
      eb751c1b
  7. 12 Apr, 2017 1 commit
  8. 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 :
        t'int
        t''real
      
        and the predicate :
        t''isFinite
      
      * 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
        valid:
      
        t'
        toto'0''
        toto'_phi
      
        whereas toto'phi is not.
      
      Note: we do not yet support negative numbers in range declaration
      and casting of a literal.
      f0547868
  9. 03 Jan, 2017 1 commit
  10. 20 Apr, 2016 1 commit
    • Andrei Paskevich's avatar
      Call_provers: simplify API · 8159c0d7
      Andrei Paskevich authored
      Call_provers:
      
      - drop closures "pre_prover_call" and "post_prover_call". They were
        intended to be used for synchronous interaction with provers from
        multiple threads. This is now responsibility of the proof server:
        (a) any Call_prover.call_on_[file|buffer] submits the proof task
            immediately to the server;
        (b) all proof results are handled in the working Why3 thread.
      
      - Call_provers.query_call returns a tri-state "prover_update" type
        which can be one of: "ProverStarted" (returned after the proof
        server informs Why3 that a prover was started), "ProverFinished"
        (returned after the proof server returns the prover result), and
        "NoUpdates" (returned when the proof server has not sent any new
        updates concerning the proof task in question).
      
          IMPORTANT: query_call does not maintain the state of a given
        prover call. In a normal use case, "ProverFinished" is returned
        _exactly_ once, and "ProverStarted" _at_most_ once (never for
        an editor call or when rapidly overwritten by "ProverFinished").
      
          TODO: extend the proof server protocol and implementation to
        send "ProverStarted" events back to Why3.
      8159c0d7
  11. 14 Apr, 2016 1 commit
  12. 15 Mar, 2016 2 commits
  13. 08 Mar, 2016 1 commit
  14. 25 Feb, 2016 2 commits
  15. 22 Feb, 2016 1 commit
  16. 05 Feb, 2016 1 commit
  17. 11 Dec, 2015 1 commit
  18. 12 Jun, 2015 2 commits
  19. 23 May, 2015 1 commit
  20. 23 Mar, 2015 1 commit
  21. 20 Mar, 2015 1 commit
  22. 19 Mar, 2015 1 commit
  23. 18 Feb, 2015 1 commit
  24. 17 Feb, 2015 1 commit
  25. 16 Feb, 2015 1 commit
  26. 02 Sep, 2014 1 commit
  27. 14 Mar, 2014 1 commit
  28. 14 Jan, 2014 1 commit
  29. 28 Oct, 2013 1 commit
  30. 22 Oct, 2013 1 commit
  31. 16 Apr, 2013 1 commit
  32. 09 Apr, 2013 2 commits
  33. 06 Mar, 2013 1 commit
  34. 04 Mar, 2013 1 commit
    • Andrei Paskevich's avatar
      whyml: match expression is ghost if we look inside ghost fields · 43b684d0
      Andrei Paskevich authored
      We store in every lsymbol a new integer field ls_constr,
      equal to zero if the lsymbol is not a constructor, and equal
      to the number of constructors of the lsymbol's type otherwise.
      It is allowed to declare or define an lsymbol with ls_constr > 0
      as an ordinary function (otherwise algebraic type elimination
      wouldn't work - though we might still check this in theories),
      but it is forbidden to use a wrong ls_constr in algebraic type
      definitions.
      
      The ghostness of a match expression is now determined as follows:
      
      If at least one branch expression is ghost,
        then the match is ghost;
      else if there is only one branch,
        then the match is not ghost;
      else if the matched expression is ghost,
        then the match is ghost;
      else if at least one pattern matches a ghost field
              against a constructor with ls_constr > 1
        then the match is ghost;
      else
        the match is not ghost.
      
      We do just enough to recognize obvious non-ghost cases, and
      make no attempt to handle redundant matches or to detect
      exhaustive or-patterns in subpatterns.
      43b684d0
  35. 08 Jan, 2013 1 commit