[Hol-info] hol_light `make' failure with ocaml 3.12.1 camlp5

2012-05-13 Thread Bill Richter
John, here's my bug report for trying to install the latest ocaml &
camlp5.   `make' failed in hol_light (error message at the end).

I'm an 64 bit Dell Linux box running Scientific Linux:

(poisson)ocaml-3.12.1> uname -a
Linux poisson.math.northwestern.edu 2.6.32-220.4.1.el6.x86_64 #1 SMP
Mon Jan 23 17:20:44 CST 2012 x86_64 x86_64 x86_64 GNU/Linux

I untarred ocaml-3.12.1.tar.gz camlp5-6.05.tgz and

(poisson)ocaml-3.12.1> ./configure -prefix /rhome/2/richter/HOL-Light
(poisson)ocaml-3.12.1> make world > log.world 2>&1 &
(poisson)ocaml-3.12.1> make bootstrap > log.bootstrap 2>&1 
(poisson)ocaml-3.12.1> make world > log.world 2>&1 &
(poisson)ocaml-3.12.1> make bootstrap > log.bootstrap 2>&1 
(poisson)ocaml-3.12.1> make opt > log.opt 2>&1 
You have mail in /var/spool/mail/richter
(poisson)ocaml-3.12.1> make opt.opt
make install

Seemed to install fine.  

(poisson)camlp5-6.05> ./configure -prefix /rhome/2/richter/HOL-Light

Resulting configuration file (config/Makefile.cnf):

MODE=S
EXE=
OPT=.opt
EXT_OBJ=.o
EXT_LIB=.a
OVERSION=3.12.1
VERSION=6.05
VERSDIR=
OTOP=$(TOP)/ocaml_stuff/3.12.1
OCAMLC_W_Y="-w y"
WARNERR="-warn-error A"
NO_PR_DIR=--no-print-directory
OLIBDIR=/rhome/2/richter/HOL-Light/lib/ocaml
PREFIX=/rhome/2/richter/HOL-Light
BINDIR=$(PREFIX)/bin
LIBDIR=$(PREFIX)/lib/ocaml
MANDIR=$(PREFIX)/man
OCAMLN=ocaml
CAMLP5N=camlp5

=== strict mode ===

Strict is the default; I didn't know that.  We see ocaml is installed:

(poisson)camlp5-6.05> which ocaml
/rhome/2/richter/HOL-Light/bin/ocaml

(poisson)camlp5-6.05> make world.opt
seemed to work fine!  Now install:

(poisson)camlp5-6.05> make install

And it seems to have worked!

(poisson)camlp5-6.05> ls $HOME/HOL-Light/bin
camlp4* camlp4prof*camlp5sch*  ocamlcp*   ocamlobjinfo*
camlp4boot* camlp4r*   mkcamlp4*   ocamldebug*ocamlopt*
camlp4o*camlp4rf*  mkcamlp5*   ocamldep*  ocamlopt.opt*
camlp4of*   camlp4rf.opt*  mkcamlp5.opt*   ocamldep.opt*  ocamlprof*
camlp4of.opt*   camlp4r.opt*   ocaml*  ocamldoc*  ocamlrun*
camlp4oof*  camlp5*ocamlbuild* ocamldoc.opt*  ocamlyacc*
camlp4oof.opt*  camlp5o*   ocamlbuild.byte*ocamllex*  ocpp5*
camlp4o.opt*camlp5o.opt*   ocamlbuild.native*  ocamllex.opt*
camlp4orf*  camlp5r*   ocamlc* ocamlmklib*
camlp4orf.opt*  camlp5r.opt*   ocamlc.opt* ocamlmktop*

Now I'll build the latest version of HOL Light:


(poisson)~> svn checkout http://hol-light.googlecode.com/svn/trunk/ hol_light
[...]
Checked out revision 135.

(poisson)hol_light> export 
LD_LIBRARY_PATH=$HOME/HOL-Light/lib:/rhome/richter/Gambit/current/lib
(poisson)hol_light> make

(poisson)hol_light> make
\
if test `ocamlc -version | cut -c3` = "0" ; \
then cp pa_j_`ocamlc -version | cut -c1-4`.ml pa_j.ml ; \
else if test `camlp5 -v 2>&1 | cut -f3 -d' ' | cut -f1-3 -d'.' | cut 
-c1-6` = "6.02.1" ; \
 then cp pa_j_3.1x_6.02.1.ml pa_j.ml; \
 else if test `camlp5 -v 2>&1 | cut -f3 -d' ' | cut -f1-3 -d'.' | 
cut -c1-6` = "6.02.2" -o `camlp5 -v 2>&1 | cut -f3 -d' ' | cut -f1-3 -d'.' | 
cut -c1-6` = "6.02.3" ; \
  then cp pa_j_3.1x_6.02.2.ml pa_j.ml; \
  else cp pa_j_3.1x_`camlp5 -v 2>&1 | cut -f3 -d' ' | cut 
-c1`.xx.ml pa_j.ml; \
  fi \
 fi \
fi
if test `ocamlc -version | cut -c3` = "0" ; \
   then ocamlc -c -pp "camlp4r pa_extend.cmo q_MLast.cmo" -I 
+camlp4 pa_j.ml; \
   else ocamlc -c -pp "camlp5r pa_lexer.cmo pa_extend.cmo 
q_MLast.cmo" -I +camlp5 pa_j.ml; \
   fi
File "pa_j.ml", line 195, characters 6-21:
Error: The constructor PaLab expects 2 argument(s),
   but is applied here to 3 argument(s)
make: *** [pa_j.cmo] Error 2


I have no idea what that means.  Lines 195--7 of pa_j.ml are 

| PaLab loc x1 x2 ->
let loc = floc loc in
PaLab loc (self x1) (vala_map (option_map self) x2)

I'll go try this at home on an old 32 bit machine.

-- 
Best,
Bill 

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
hol-info mailing list
hol-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hol-info


[Hol-info] hol_light `make' failure with ocaml 3.12.1 camlp5

2012-05-13 Thread Bill Richter
John, just to check, on the same machine, I installed the earlier
version (ocaml 3.09.1 with presumably camlp4) without any trouble.

cd ocaml-3.09.1
./configure -prefix /rhome/2/richter/HOL-Light309
make world.opt  
make install

I put $HOME/HOL-Light309/bin and $HOME/HOL-Light309/lib on the front
of my PATH and  LD_LIBRARY_PATH variables.  Then 

cd hol_light
make
no error, so I ran my miz3 Tarski code
   hol_light> ocaml
   #use "hol.ml";;  
paste in file
[]
val ( I1_THM ) : thm =
  |- !a b x y.
 ~(a = b)
 ==> ~(x = y)
 ==> a on_line x,y
 ==> b on_line x,y
 ==> x,y equal_line a,b

I never get tired of looking that output!

-- 
Best,
Bill 

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
hol-info mailing list
hol-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hol-info


Re: [Hol-info] rigorous axiomatic geometry proof in HOL Light

2012-05-13 Thread Makarius
On Sun, 13 May 2012, Ramana Kumar wrote:

> On Sat, May 12, 2012 at 11:54 PM, John Harrison
> wrote:
>
>> | Does this mean unit lists in HOL Light? :)
>> | I'm thinking of adding a check that there are no more than 2^30-1 type
>> | variables in the input theorem.
>>
>> I don't exclude either possibility yet...
>>
>
> And what about switching to big integers? (for HOL Zero and/or HOL 
> Light) I thought HOL Zero might be switching to SML at some point 
> anyway?

With unit list John was probably hoping to have a precise model of natural 
numbers in OCaml.  This is not exactly the case, because datatype values 
can have loops in that language:

   let rec uuuh = () :: uuuh;;
   List.length uuuh;;

Anyway, I think we need to find an exit strategy from this endless thread.

Already in October 2009, I've tried to convince Mark that OCaml is not the 
right vehicle for extremely high trustability that he wants to have for 
HOL Zero.  And back then, I did not know all these nasty tricks yet that 
can be learned in the coffee room of LRI, with hardcore experts like 
Filiatre showing off all the boundary cases and neat tricks outside the 
normal mathematics of ML.

This is why SML never became very popular, because it spoils these games.


Makarius

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
hol-info mailing list
hol-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hol-info


Re: [Hol-info] rigorous axiomatic geometry proof in HOL Light

2012-05-13 Thread Mark
Hi John/Ramana,

John Harrison wrote:
> I shouldn't have tempted fate by mentioning you! But I'm not yet
> completely convinced. It's true that it would create a type operator
> with recorded arity 0, but (at least in the HOL Light implementation)
> it would still end up applied to the sorted list of type variables
> ("tyvars") as if it had arity 2^31. That's not to say this is an ideal
> situation, but it seems to fall into the "anomalous" cetegory rather
> than the actually inconsistent. Or am I missing something?

Ah yes, you're absolutely right - the theorem still has the correct arity
and so this is not a route to unsoundness.  Phew!

But I still get a fundamental sense of unease that types can be constructed
that are not well-formed (i.e. where the arities are wrong), so I'll adapt
HOL Zero to stop this.

John Harrison wrote:
> Mark wrote:
>> I always thought that this would be impossible to exploit in practice,
>> but now I'm thinking 2^31 =~ 2 billion, and this is perhaps doable ...
>
> Well, I hope that's impossible for pragmatic reasons: wraparound on
> 2^31 would only happen on a 32-bit platform, and then I don't think
> you could address enough memory directly to put this to the test since
> pointers are also 32-bit. And on a 64-bit machine the bar becomes
> much higher because integers won't wrap till 2^63. But perhaps there
> is some weird way of setting up OCaml where pointers are 64-bit but
> type int is 32-bit?

Yes, you're right again.  64-bit machines will have 63-bit integers unless
using special tricks, and 32-bit machines won't be able to address enough
RAM unless using special tricks.  So looks like it couldn't be a problem in
practice.  (note that my bounty qualification criteria aim to ban what I
mean by "special tricks")

Ramana Kumar wrote:
> And what about switching to big integers? (for HOL Zero and/or HOL Light)
> I thought HOL Zero might be switching to SML at some point anyway?

Yes, big integers is the other possibility.  I'm trying to do it as light
weight as possible, and yet keeping the user interface "conventional" (using
the classic types so that integer literals supplied by the user do not have
to be wrapped with 'Int').  However, the HOL Zero natural number syntax
functions already use big integers, and so there is already an inconsistency
in style here, and so maybe I should follow your suggestion.  And yes, I
will be switching to SML, but this is several months away, and in any case,
I want everything to be as watertight as possible in the OCaml
implementation.

Mark.

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
hol-info mailing list
hol-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hol-info


Re: [Hol-info] rigorous axiomatic geometry proof in HOL Light

2012-05-13 Thread Mark
Ramana Kumar wrote:
> Mark wrote:
>> Yes, big integers is the other possibility. ...
>
> Sounds good.
> For your information, I am currently working on a verified compiler for
> (currently a pure subset of) SML.
> But it is also probably several months away from completion :)

Yes, I heard about this.  Sounds great stuff!

Would be nice if it could have some sort of simple mechanism for disallowing
overwriting of certain ML and pretty printer bindings (e.g. a compiler
directive that could be applied for a given binding, which would set a
one-way flag on the binding).  This would stop 'thm' and its pretty printer
being overwritten by the user, for example, and would be an easy way of
eliminating this long-standing vulnerability of LCF-style systems that run
in a simple classic top level ML session.

Mark.

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
hol-info mailing list
hol-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hol-info


Re: [Hol-info] rigorous axiomatic geometry proof in HOL Light

2012-05-13 Thread Ramana Kumar
On Sun, May 13, 2012 at 1:07 PM, "Mark"  wrote:

> Yes, big integers is the other possibility.  I'm trying to do it as light
> weight as possible, and yet keeping the user interface "conventional"
> (using
> the classic types so that integer literals supplied by the user do not have
> to be wrapped with 'Int').  However, the HOL Zero natural number syntax
> functions already use big integers, and so there is already an
> inconsistency
> in style here, and so maybe I should follow your suggestion.  And yes, I
> will be switching to SML, but this is several months away, and in any case,
> I want everything to be as watertight as possible in the OCaml
> implementation.
>

Sounds good.
For your information, I am currently working on a verified compiler for
(currently a pure subset of) SML.
But it is also probably several months away from completion :)


>
> Mark.
>
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/___
hol-info mailing list
hol-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hol-info


Re: [Hol-info] rigorous axiomatic geometry proof in HOL Light

2012-05-13 Thread Ramana Kumar
On Sat, May 12, 2012 at 11:54 PM, John Harrison
wrote:

> | Does this mean unit lists in HOL Light? :)
> | I'm thinking of adding a check that there are no more than 2^30-1 type
> | variables in the input theorem.
>
> I don't exclude either possibility yet...
>

And what about switching to big integers? (for HOL Zero and/or HOL Light)
I thought HOL Zero might be switching to SML at some point anyway?


>
> John.
>
>
> --
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and
> threat landscape has changed and how IT managers can respond. Discussions
> will include endpoint security, mobile security and the latest in malware
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
> ___
> hol-info mailing list
> hol-info@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/hol-info
>
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/___
hol-info mailing list
hol-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hol-info