Using the same as in Prfn and prfun in ATS2
https://groups.google.com/forum/#!topic/ats-lang-users/8h5pqG6N0J0, I
can’t figure the syntax to be used with praxi
. I can get it validated by
patscc
, except not as an axiom, but as a proof, like with prfn
and
prfun
, while praxi
should not be the same, I believe:
praxi three_is_beautiful (): BEAUTIFUL 3
patscc
complains “the keyword [=] is needed”, which seems to suggest it
expects a proof. Indeed, if I do this:
praxi three_is_beautiful (): BEAUTIFUL 3 = B_3
then patscc
accepts it.
What disturbs me, is this: if praxi
is for axiomatizing, then why a proof
is needed? (I know axiomatizations are a dangerous beast to deal‑with with
care, but I still wish to understand)
The documentation gives its own other example in Example: Verified Fast
Exponentiation
http://www.ats-lang.org/DOCUMENT/INT2PROGINATS/HTML/x3168.html, which
does not compile neither:
praxi mul_istot {x, y: elt} (): [xy: elt] MUL (x, y, xy)
The same, it complains about a missing “=” which seems to mean it expects a
proof, not an axiom.
I can’t figure the syntax to be used, nor I can guess if axiomatization is
still allowed in ATS2 as it seems it was in ATS1.