> On 10 Feb 2016, at 17:01, Makarius <makar...@sketis.net> wrote:
> 
> On Wed, 10 Feb 2016, David Matthews wrote:
> 
> This reminds me of the situation in SML/NJ, before I spent some efforts to 
> force int = IntInf.int on it.  It includes a somewhat "patched" basis library 
> like this: 
> http://isabelle.in.tum.de/repos/isabelle/file/9343649abb09/src/Pure/RAW/proper_int.ML

ProofPower takes a different approach to this: it uses the compiler's native 
integers
except where logical soundness requires an IntInf, where it uses a type it 
defines
called INTEGER, which has its own operations @+, @-, @* etc. implemented
using  the operators of Int or IntInf as appropriate (selected at compile-time 
by
using a conditional compilation feature that is built into the way ProofPower
packages ML code into documents).

ProofPower builds and tests fine using poly built from the FixedPrecisionInt
branch after tweaking the conditionally compiled bits of code so that Poly/ML
is treated just like Standard ML of New Jersey in the definition of the type
INTEGER. (And tweaking a few tests that accidentally forgot that INTEGER
and int are not necessarily the same.)

>> I'm inclined to think that having a "configure" option would be the answer.
> 

I think that's a good idea, but it gives me a bit of problem as my conditial 
compilation
is based on the compiler and not how the compiler has been configured.

> That would greatly simplify the Isabelle setup, because we always provide a 
> separately compiled version of Poly/ML.

I can see why you do that, but I don't want to do it for ProofPower. So if we 
have
a "configure" option, then it would be good for me if there some well-defined 
way, e.g., using
"poly -v", for a build script to find out how a pre-installed Poly/ML 
installation has
been configured.

> 
> Since we are about to discontinue SML/NJ altogether, it would allow to remove 
> the above tricks, and not move them over to Poly/ML.

I can unerstand why you are doing that too, but in this case I'm really glad I 
tried
to maintain compatibility, as it meant I already had almost everything I needed 
to
accommodate the proposed change :-).

All that said, I would be surprised if the change made any significant 
performance
improvement on any of my code, because anything that is computationally 
intensive
in the theorem prover tends to be dealing with object language data, and, if
that data is numeric, it will be arbitrary precision. 

Regards,

Rob.

_______________________________________________
polyml mailing list
polyml@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/polyml

Reply via email to