1. 31 Jan, 2012 1 commit
    • François Bobot's avatar
      Why3session : a new why3 program · da5b5d18
      François Bobot authored
      It's goal is to allow to view and modify sessions.
      
      Currently three sub-commands :
      info : can give the provers used, pretty-print in ascii a session,
           can give the corresponding directory
      mod : allow to set obsolete, or modify the archive state of proof attempt
          which corresponds to selected provers
      copy : copy a proof attempt by modifing its prover
      da5b5d18
  2. 17 Jan, 2012 3 commits
  3. 05 Jan, 2012 1 commit
  4. 03 Jan, 2012 1 commit
    • François Bobot's avatar
      new session · 49c19a38
      François Bobot authored
      Split session in two :
      Session : an API for managing session without running provers
      Session_scheduler : an API for running provers asynchronously
      
      All the global states have been removed.
      
      A session must be first read, which give a session without task.
      Afterward it must be updated to the current state of the files with
      some environnement and configuration.
      
      printer and iterator are provided for session.
      
      Session_tools : some useful functions on session.
      
      Smoke detector : not anymore integrated to session. Just add the
            transformation "smoke_detector_top" or "smoke_detector_deep" to
            all the valid proof attempt.
      
      prover_id are not yet removed but all is in place in session for that.
      49c19a38
  5. 27 Dec, 2011 1 commit
  6. 15 Dec, 2011 1 commit
  7. 14 Dec, 2011 1 commit
  8. 06 Dec, 2011 1 commit
  9. 01 Dec, 2011 1 commit
  10. 30 Nov, 2011 1 commit
  11. 24 Nov, 2011 1 commit
  12. 23 Nov, 2011 1 commit
  13. 19 Nov, 2011 4 commits
  14. 18 Nov, 2011 1 commit
  15. 16 Nov, 2011 1 commit
  16. 12 Nov, 2011 1 commit
  17. 11 Nov, 2011 4 commits
  18. 09 Nov, 2011 1 commit
  19. 02 Nov, 2011 1 commit
  20. 31 Oct, 2011 2 commits
  21. 20 Oct, 2011 1 commit
  22. 13 Oct, 2011 1 commit
  23. 29 Sep, 2011 1 commit
  24. 20 Sep, 2011 1 commit
  25. 18 Sep, 2011 1 commit
  26. 04 Sep, 2011 1 commit
  27. 02 Sep, 2011 2 commits
  28. 23 Aug, 2011 1 commit
    • Guillaume Melquiond's avatar
      Add a new transformation that instantiates the axioms marked with the · 4d7dd217
      Guillaume Melquiond authored
      meta "instantiate : auto" on as many terms as possible.
      
      The transformation is rather naive, since it doesn't look for term
      candidates under quantifiers, if-then-else, let-in, and so on. So it can
      only appear late in the transformation pipe.
      
      It is only enabled for Gappa and its target axioms are the ones that state
      that any floating-point value is bounded. It was the last transformation
      from Why2 still missing in Why3.
      
      Thanks to this transformation, Gappa is now able to prove all the safety
      obligations from the following code, including the ones about division and
      downcast, which is definitely frightening.
      
      /*@ assigns \nothing;
        @ ensures \result == \abs(x);
        @*/
      extern double fabs(double x);
      
      /*@ requires \valid(AB_Ptr) && \valid(CD_Ptr);
        @ assigns *AB_Ptr, *CD_Ptr;
        @ ensures \abs(*AB_Ptr) <= 6.111111e-2;
        @ ensures \abs(*CD_Ptr) <= 6.111111e-2;
        @ */
      void limitValue(float *AB_Ptr, float *CD_Ptr)
      {
         double Fabs_AB, Fabs_CD;
         double max;
      
         Fabs_AB = fabs (*AB_Ptr);
         Fabs_CD = fabs (*CD_Ptr);
      
         max = Fabs_AB;
         if (Fabs_CD > Fabs_AB)  max = Fabs_CD;
      
         if ( max > 6.111111e-2)
         {
            *AB_Ptr = (float) (((*AB_Ptr) * 6.111111e-2) / max);
            *CD_Ptr = (float) (((*CD_Ptr) * 6.111111e-2) / max);
         }
      }
      4d7dd217
  29. 11 Aug, 2011 1 commit
  30. 28 Jul, 2011 1 commit