praxi three_is_beautiful (): BEAUTIFUL 3
praxi three_is_beautiful (): BEAUTIFUL 3 = B_3
praxi mul_istot {x, y: elt} (): [xy: elt] MUL (x, y, xy)
extern praxi three_is_beautiful (): BEAUTIFUL 3
You need the keyword 'extern':
extern praxi three_is_beautiful : () -> BEAUTIFUL (3)
In general, you need 'extern' when declaring a function in a DATS-file.
If you use praxi to introduce a proof function, then you basically
indicate that the proof function is not to be implemented (or proven).
By the way, even if you use 'prfun' to introduce a function, ATS2 does not enforce
that the proof function be implemented. In ATS1, there was a way to enforce it, but
it has been abandoned in ATS2.
Le mercredi 6 août 2014 23:33:41 UTC+2, gmhwxi a écrit :You need the keyword 'extern':
extern praxi three_is_beautiful : () -> BEAUTIFUL (3)We posted the same at the same time (cheese).In general, you need 'extern' when declaring a function in a DATS-file.
If you use praxi to introduce a proof function, then you basically
indicate that the proof function is not to be implemented (or proven).
By the way, even if you use 'prfun' to introduce a function, ATS2 does not enforce
that the proof function be implemented. In ATS1, there was a way to enforce it, but
it has been abandoned in ATS2.
Does that mean prfun, prfn and praxi are the same in that regards?Why was it abandoned in ATS2? (I feel it would be nice to be able to enforce it when one want)
--To view this discussion on the web visit https://groups.google.com/d/msgid/ats-lang-users/2fb81e59-a327-49a3-bbab-02b2e5d7a437%40googlegroups.com.
You received this message because you are subscribed to the Google Groups "ats-lang-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ats-lang-user...@googlegroups.com.
To post to this group, send email to ats-lan...@googlegroups.com.
Visit this group at http://groups.google.com/group/ats-lang-users.
Marginally related - what does the LF in ATS/LF stand for?
Does that mean prfun, prfn and praxi are the same in that regards?
Why was it abandoned in ATS2? (I feel it would be nice to be able to enforce it when one want)
You need the keyword 'extern':
extern praxi three_is_beautiful : () -> BEAUTIFUL (3)
praxi mul_make : {m,n:int} () -<prf> MUL (m, n, m*n)
praxi mul_elim : {m,n:int} {p:int} MUL (m, n, p) -<prf> [p == m*n] void
--
You received this message because you are subscribed to the Google Groups "ats-lang-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ats-lang-user...@googlegroups.com.
To post to this group, send email to ats-lan...@googlegroups.com.
Visit this group at http://groups.google.com/group/ats-lang-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/ats-lang-users/fc87478c-4bf8-431f-a954-3b120c38104d%40googlegroups.com.
arith_prf.sats: it is a SATS-file. So no 'extern' is needed.
patsopt -tc -d $SATS_FILE
--
You received this message because you are subscribed to the Google Groups "ats-lang-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ats-lang-user...@googlegroups.com.
To post to this group, send email to ats-lan...@googlegroups.com.
Visit this group at http://groups.google.com/group/ats-lang-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/ats-lang-users/0e52497f-12eb-400b-b90c-e49ca31cb3cb%40googlegroups.com.
patsopt -tc -s $SATS_FILE