caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Lukasz Stafiniak <lukstafi@gmail.com>
To: Caml <caml-list@inria.fr>
Subject: [Caml-list] [ANN] InvarGenT v1.2: GADTs for invariants and postconditions
Date: Tue, 18 Feb 2014 20:02:45 +0100	[thread overview]
Message-ID: <CAJMfKEWya8G1x3=_60kBsippQ6iYkgBAOGp3pnH5W1NQKRyWvw@mail.gmail.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 1306 bytes --]

I am pleased to release version 1.2 of InvarGenT, a system that infers
invariants and postconditions, and exports the corresponding GADTs-based
OCaml code.
https://github.com/lukstafi/invargent/releases

The highlight of this release is the AVL trees example see:
https://github.com/lukstafi/invargent/blob/master/examples/avl_tree.gadt
https://github.com/lukstafi/invargent/blob/master/examples/avl_tree.gadti.target
InvarGenT finds out that the height of a rotated tree can be the same as
original tree or one bigger, the same fact for the tree with added element,
that the height of merger of two trees is at most one bigger than that of
the larger tree, and that removing an element can decrease the height of a
tree, by at most 1.

Changes:
* Several bug fixes.
* So-called "opti" relations: "k=min(m,n)" and "k=max(m,n)" in the
numerical sort.
* So-called "subopti" relations "k<=max(m,n)" and "min(m,n)<=k" in the
numerical sort.
* Less confusing syntax for existential types, "datatype" and "datacons"
keywords.
* Pattern-matching guards "when e1 <= e2", where e1 and "e2 are expressions
of type "Num".
* Positive assert clauses, "assert num e1 <= e2; ..." and "assert type e1 =
e2; ...".
* Flagship example: AVL trees with imbalance of 2 (based on the
implementation from OCaml standard library).

[-- Attachment #2: Type: text/html, Size: 4344 bytes --]

                 reply	other threads:[~2014-02-18 19:03 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAJMfKEWya8G1x3=_60kBsippQ6iYkgBAOGp3pnH5W1NQKRyWvw@mail.gmail.com' \
    --to=lukstafi@gmail.com \
    --cc=caml-list@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).