Commit Graph

3 Commits

Author SHA1 Message Date
David Raymond Christiansen
e5bc47eec3 Distinguish postulate providers and type providers at use site
This is not backwards compatible, but as far as I know, there are no
users of postulate providers who are not me.

The old system allowed both the definition of the provider and the use
site to be involved in the determination of what is a postulate and what
is not. This is not good - users should always be in full control of
this.

The new implementation has two syntaxes:

%provide (x : t) with p

%provide postulate x with p

The first is the type provider syntax we know and love. The second
requires that the provider in fact return a type, which is then made
into the type of the resulting postulate.
2014-06-05 13:53:03 +02:00
David Raymond Christiansen
0875310e69 Control whether provider decls accept postulates
Extends the provider syntax to accept an optional "what" parameter,
which controls if it can be satisfied with just proof terms, just
postulates, or either.
2014-02-26 15:01:01 +01:00
David Raymond Christiansen
53659771ae Postulate providers
Now, type providers don't need to return a proof - they can postulate
new axioms. The intention is to connect this both to QuickCheck and to
external proof oracles, such as SMT solvers.
2014-02-26 11:37:21 +01:00