1. 06 Dec, 2018 1 commit
  2. 03 Dec, 2018 1 commit
  3. 16 Nov, 2018 1 commit
  4. 09 Nov, 2018 1 commit
  5. 08 Nov, 2018 1 commit
  6. 26 Oct, 2018 1 commit
  7. 21 Oct, 2018 1 commit
    • Andrei Paskevich's avatar
      WhyML: reference variables · 79f564bd
      Andrei Paskevich authored
      caveat: pass-as-reference does not work in chain relations.
              That is, 0 < r += 12 will not typecheck even
              if x is autodereferencing and (+=) has the
              first parameter with the reference marker.
      
      todo: forbid reference markers in logic, in type definitions,
            over logical symbols, etc.
      
      todo: update extraction drivers.
            why3.Ref.Ref defines
              - type "ref",
              - constructor "mk ref" (never used in Typing)
              - projection "contents" (both val and function)
              - program function "ref" (alias for "mk ref")
            ref.Ref defines
              - let-function (!)
              - program function (:=)
      
            It is important to attribute the symbols to their
            respective modules, since a program with reference
            variables may never use ref.Ref and why3.Ref.Ref
            is imported automatically.
      79f564bd
  8. 16 Oct, 2018 3 commits
  9. 14 Oct, 2018 1 commit
  10. 18 Sep, 2018 1 commit
  11. 07 Sep, 2018 1 commit
  12. 14 Aug, 2018 1 commit
  13. 05 Jul, 2018 1 commit
  14. 04 Jul, 2018 1 commit
  15. 02 Jul, 2018 1 commit
  16. 23 Jun, 2018 1 commit
  17. 21 Jun, 2018 1 commit
  18. 17 Jun, 2018 1 commit
  19. 15 Jun, 2018 2 commits
  20. 14 Jun, 2018 5 commits
  21. 13 Jun, 2018 1 commit
  22. 07 Jun, 2018 1 commit
  23. 06 Jun, 2018 1 commit
  24. 05 Jun, 2018 1 commit
  25. 01 Jun, 2018 4 commits
  26. 31 May, 2018 2 commits
    • Jean-Christophe Filliatre's avatar
      new VC to prove well-foundedness of user-provided variants · 4af9081d
      Jean-Christophe Filliatre authored
      fixes issue #57
      
      a new theory relations.WellFounded is introduced for this purpose
      (and must be imported whenever one wants to make use of a custom
      relation for a variant)
      
      it defines, inductively, a notion of accessibility for a given
      predicate R (x is accessible whenever all elements smaller than x for R
      are alreay accessible)
      
      whenever one has to prove that a variant decreases, a new VC is also
      generated, to show that the old value of the variant is accessible
      for the order relation
      
      note: accessibility being defined inductively, proving well-foundedness
      is out of reach of SMT solvers; but at least this is sound now
      4af9081d
    • Jean-Christophe Filliatre's avatar
      Array63: added swap and init · e0cd1156
      Jean-Christophe Filliatre authored
      e0cd1156
  27. 24 May, 2018 1 commit
  28. 17 May, 2018 1 commit
    • Jean-Christophe Filliatre's avatar
      new module mach.array.ArrayInt63 for arrays of 63-bit integers · bdf87cce
      Jean-Christophe Filliatre authored
      the model is a sequence of integers, of type 'seq int'
      the idea is to lower the pollution of VCs with values of int63 (and
      subsequent to_int operations)
      
      drawbacks:
      - this new type of arrays is not compatible with the one
        from mach.array.Array63
      - when using both, we cannot use syntax [] and []<- for both types
        in programs (no overloading in programs) and thus we have to use
        A.([]) and A.([]<-) for one of them
      bdf87cce
  29. 16 May, 2018 1 commit