jrh13 / hol-light Goto Github PK
View Code? Open in Web Editor NEWThe HOL Light theorem prover
License: Other
The HOL Light theorem prover
License: Other
Documentation of new_type's FAILURE CONDITIONS contains a grammar error (or a
grammar mistake): "Fails if HOL is there is already a type operator..."
Original issue reported on code.google.com by [email protected]
on 23 Jul 2014 at 7:54
I have adapted HOL Light
to compile natively. Now one is no longer restricted to a particular version of OCaml!
However it is just a start. For details see the holnat project.
Any feedback welcome in this thread or over at the new repo.
This causes user pretty-printers to print directly to the console, instead of
the correct destination known to the formatter (e.g., a target string in
string_of_term).
I attach a patchfile that fixes this that can be applied using the command
patch -p0 < patchfile
Note: it changes the type of user pretty-printers by adding the formatter as an
argument, so existing user pretty-printers will need to be updated.
Original issue reported on code.google.com by [email protected]
on 3 Mar 2014 at 12:31
Attachments:
in transc.ml lime 2605 :
let TAN_ADD = prove(
!x y. ~(cos(x) = &0) /\ ~(cos(y) = &0) /\ ~(cos(x + y) = &0) ==> (tan(x + y) = (tan(x) + tan(y)) / (&1 - tan(x) * tan(y)))
,
the assumption ~(cos(x + y) = &0) seems unnecessary.
Hi. Is there any plan to have hol-light working with recent versions of ocaml and camlp5? See #71.
Hello,
hol-light fails with camlp5 7.11 because of a change in its AST. In Debian, I had to apply the following patch to make the package compile again:
I changed pa_j_4.xx_7.xx.ml directly, but probably a new pa_j_xx.ml should be created, and the logic for picking the right pa_j.ml adapted.
Cheers,
Stéphane
What steps will reproduce the problem?
1. Install OCaml 3.12.0 on Mac OS X 10.5.8 from prebuilt binaries
2. Download camlp5-6.02.2, apply two patches, and build.
3. Check out most recent verson of HOL Light with svn, and do make.
What is the expected output? What do you see instead?
I get this error message from make:
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
What version of the product are you using? On what operating system?
Revision 83 on Mac OS 10.5.8.
Please provide any additional information below.
Can you tell me a combination of a version of HOL Light and a version of camlp5
that work together? I had other problems when I tried building the 10 Jan 2010
snapshot you have on the HOL Light home page.
Original issue reported on code.google.com by [email protected]
on 19 Mar 2011 at 3:19
Several code examples in documentation contain extra space after "#" char.
Patch attached.
Original issue reported on code.google.com by [email protected]
on 23 Jul 2014 at 8:49
Attachments:
HOL Light is mostly working okay on OCaml 5, but features that require update_database.ml
are still missing.
The placeholder file is here: https://github.com/jrh13/hol-light/blob/master/update_database_5.ml
What steps will reproduce the problem?
1. Install the Windows version of OCaml
2. Download Camlp5 and apply all 3 patches, "configure", "make" and "make
install"
3. Download the HOL Light source and try to "make" it
What is the expected output? What do you see instead?
File "pa_j.ml", line 112, characters 72-74:
Error: This expression has type (string * MLast.ctyp) list
but is here used with type ('a * MLast.ctyp) list Ploc.vala
make: *** [pa_j.cmo] Error 2
What version of the product are you using? On what operating system?
Windows 7 Professional
OCaml: 3.11.0, MinGW port
Camlp5: 6.02.2-3
HOL Light: revision 86
MSys to run patch, make etc.
Please provide any additional information below.
Original issue reported on code.google.com by [email protected]
on 2 Apr 2011 at 4:31
Chapter 11 (Page 74, file 'tutorial_220.pdf'); is "far from a a simple", should
be "far from a simple".
Original issue reported on code.google.com by [email protected]
on 29 Jul 2014 at 10:24
http://www.cl.cam.ac.uk/~jrh13/hol-light/tutorial.pdf
section 8.1 page 45
git clone https://github.com/jrh13/hol-light.git
cd ./hol-light
make
let hol_dir = "/home/martin/Downloads/hol-light";;
tutorial page 45
g '2 <= n /\ n <= 2 ==> f(2,2) + n < f(n,n) + 7';;
e DISCH_TAC;;
^
Parse error: ';;' expected after [str_item](in [top_phrase])
I'm not familiar with the Ocaml tool-chain. Following the instructions in the README, I got the following problem:
$ make
$ ocaml
# #use "hol.ml";;
val hol_version : string = "2.20++"
val hol_dir : string ref = {contents = "/home/asr/src/hol-light"}
val temp_path : string ref = {contents = "/tmp"}
Cannot find file camlp5o.cma.
- : unit = ()
Exception: Symtable.Error _.
From this and this comments (I don't know in which language these comments were written), I could fix my problem by running
$ ocaml -I `camlp5 -where` camlp5o.cma
instead of
$ ocaml
Is there something missing in the Makefile?
$ ocaml --version
The OCaml toplevel, version 4.03.0
$ camlp5 -v
Camlp5 version 6.16 (ocaml 4.03.0)
LIM_CONG_WITHIN has an extra antecedent since 90f37b2, which is missing in the statement of the theorem in https://github.com/jrh13/hol-light/blob/master/Multivariate/flyspeck.ml#L7086. The rule ends up getting filtered out entirely from basic_congs().
How do I get out of this without necessarily have to open a new OCaml prompt and reload HOL libs?
;;
‘(a * x + b * y + a * y) EXP 3 + (b * x) EXP 3 +
( a * x + b * y + b * x) EXP 3 + (a * y) EXP 3 = (a * x + a * y + b * x) EXP 3 + (b * y) EXP 3 + (a * y + b * y + b * x) EXP 3 + (a * x) EXP 3‘;;
;;
^[
^[[D
^[[C
end
;;
For example:
utop # t1;;
- : term = `\x. s x`
utop # x1, type_of x1;;
- : term * hol_type = (`x`, `:A->bool`)
utop # let s1 = frees t1 |> hd;;
val s1 : term = `s`
utop # instantiate (term_match [] s1 x1) t1;;
- : term = `\x. x x`
The last term is semantically (and type-wise) okay but will not be accepted by the parser (even with explicit type annotations). The reason is that the two x
s have different types so the bound variable is not renamed. On the other hand the following sequence produces the correct renaming:
utop # t2;;
- : term = `\x. s + x`
utop # x2, type_of x2;;
- : term * hol_type = (`x`, `:num`)
utop # let s2 = frees t2 |> hd;;
val s2 : term = `s`
utop # instantiate (term_match [] s2 x2) t2;;
- : term = `\x'. x + x'`
What steps will reproduce the problem?
1. svn checkout http://hol-light.googlecode.com/svn/trunk/ hol-light-read-only
2. make
3.
What is the expected output? What do you see instead?
I get the error message:
File "pa_j.ml", line 1918, characters 35-43:
While expanding quotation "str_item":
Parse error: antiquot "_" or antiquot "" or [ident] expected after 'type' (in
[str_item])
File "pa_j.ml", line 1:
Error: Preprocessor error
make: *** [pa_j.cmo] Error 2
What version of the product are you using? On what operating system?
OCaml 4.00.1
Linux Fedora 18
Please provide any additional information below.
I am trying to build HOL Light with OCaml 4, but the build bombs out with the
above error message.
Original issue reported on code.google.com by [email protected]
on 27 Oct 2013 at 7:39
The attached patch documents failure conditions of 'is_hidden'.
Original issue reported on code.google.com by [email protected]
on 24 Jul 2014 at 8:24
Attachments:
What steps will reproduce the problem?
1. svn checkout
2. make
3.
What is the expected output? What do you see instead?
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)
What version of the product are you using? On what operating system?
camlp5 6.06
Please provide any additional information below.
This patch seems to solve the problem
Index: Makefile
===================================================================
--- Makefile (revision 146)
+++ Makefile (working copy)
@@ -56,7 +56,7 @@
then cp pa_j_${OCAML_VERSION}.ml pa_j.ml ; \
else if test ${CAMLP5_VERSION} = "6.02.1" ; \
then cp pa_j_3.1x_6.02.1.ml pa_j.ml; \
- else if test ${CAMLP5_VERSION} = "6.02.2" -o ${CAMLP5_VERSION} =
"6.02.3" -o ${CAMLP5_VERSION} = "6.05" ; \
+ else if test ${CAMLP5_VERSION} = "6.02.2" -o ${CAMLP5_VERSION} =
"6.02.3" -o ${CAMLP5_VERSION} = "6.05" -o ${CAMLP5_VERSION} = "6.06" ; \
then cp pa_j_3.1x_6.02.2.ml pa_j.ml; \
else cp pa_j_3.1x_${CAMLP5_BINARY_VERSION}.xx.ml pa_j.ml; \
fi \
Original issue reported on code.google.com by [email protected]
on 20 Aug 2012 at 4:42
What steps will reproduce the problem?
1. Install the Windows version of OCaml
2. Download Camlp5 and apply all 3 patches, "configure", "make" and "make
install"
3. Download the HOL Light source and try to "make" it
What is the expected output? What do you see instead?
File "pa_j.ml", line 112, characters 72-74:
Error: This expression has type (string * MLast.ctyp) list
but is here used with type ('a * MLast.ctyp) list Ploc.vala
make: *** [pa_j.cmo] Error 2
What version of the product are you using? On what operating system?
Windows 7 Professional
OCaml: 3.11.0, MinGW port
Camlp5: 6.02.2-3
HOL Light: revision 86
MSys to run patch, make etc.
Please provide any additional information below.
Original issue reported on code.google.com by [email protected]
on 2 Apr 2011 at 4:31
The attached patch fixes a minor issue in two help descriptions.
Original issue reported on code.google.com by [email protected]
on 16 Aug 2014 at 8:15
Attachments:
I installed OCaml 4.00.0 and camlp5 using GODI a while back. Today, I checked
out the hol-light sources, but when I tried building them I got the following
error:
File "pa_j.ml", line 13, characters 0-10:
Error: Unbound module Pcaml
make: *** [pa_j.cmo] Error 2
After a bit of searching, I found that ocamlc treats the `-I +foo` argument as
`-I /usr/lib/ocaml/foo`:
http://stackoverflow.com/questions/3848897/unbound-modules-in-ocaml
As it turns out, GODI installs camlp5 in a non-standard location. On this
machine (Ubuntu 12.04.1 x86), `which camlp5` returns:
/opt/godi/bin/camlp5
So, I tweaked the Makefile a bit to make it more robust (see the attached
diff). camlp4 and camlp5 both support the "-where" option, so I've used that
within backticks along with the -I option when invoking ocamlc. This makes it
so camlp4/camlp5 will be included properly no matter where it's installed on
the system.
Cheers,
Jack
Original issue reported on code.google.com by [email protected]
on 14 Feb 2013 at 9:22
Attachments:
I got similar errors in these two environments:
cd hol-light && make
cp: cannot stat ‘pa_j_3.1x_8.xx.ml’: No such file or directory
make: *** [Makefile:67: pa_j.ml] Error 1
The error seems related to #7
Here's a patch to the print_to_string function that accesses the current line
length using a call to get_margin before printing the argument to a string. I
also recoded the print_to_string function in terms of ocaml buffers, instead of
a string reference.
The patchfile can be applied using the command
patch -p0 < patchfile
Original issue reported on code.google.com by [email protected]
on 3 Mar 2014 at 12:37
Attachments:
In few places in the documentation "i.e." is followed by extra comma (,).
Attached patch makes the punctuation consistent with "e.g." and other uses
"i.e.".
Original issue reported on code.google.com by [email protected]
on 23 Jul 2014 at 8:13
Attachments:
What is the best way to communicate questions and collaborations for HOL Light?
For example Coq has:
Does HOL Light have something like this?
Or just stackoverflow?
Its presence here https://github.com/jbem/dead-souls suggests that the project
is abandoned. The link on the hol-light home page (and google code page) is
broken.
Original issue reported on code.google.com by [email protected]
on 4 Sep 2011 at 10:31
I am trying to install Hol light on macos. I downloaded the hol-light package and typed ¨make¨ but I got the following error:
File "pa_j.ml", line 1:
Error: Error while running external preprocessor
Command line: camlp5r pa_lexer.cmo pa_extend.cmo q_MLast.cmo 'pa_j.ml' > /var/folders/sy/0_3rx36s29d7zb8504hj9fkm0000gn/T/ocamlpp5d527d
make: *** [pa_j.cmo] Error 2
I use camlp5 version 7.10 and ocaml version 4.05
I would be glad of any advice.
There are some minor issues with set_goal package documentation, e.g. missing
cross-references and extra space. Patch attached.
Original issue reported on code.google.com by [email protected]
on 24 Jul 2014 at 10:41
Attachments:
Probably a naive question: can hol-light be installed as an opam pacakge? If not, why?
When I tried to do inference on the whole validation dataset, I encounter an error caused by receive_int() inside the sandboxee, it always occurs several hours after I start the inference. Does anyone know what caused this issue? and how to solve it? Below is the error screen:
Traceback (most recent call last):
File "/mnt/lustre/zhoujingqiu/./deepmath_bin/main.runfiles/deepmath/deepmath/deephol/main.py", line 28, in
tf.app.run(main)
File "/mnt/lustre/zhoujingqiu/deepmath_bin/main.runfiles/org_tensorflow/tensorflow/python/platform/app.py", line 40, in run
_run(main=main, argv=argv, flags_parser=_parse_flags_tolerate_undef)
File "/mnt/lustre/zhoujingqiu/deepmath_bin/main.runfiles/absl_py/absl/app.py", line 300, in run
_run_main(main, args)
File "/mnt/lustre/zhoujingqiu/deepmath_bin/main.runfiles/absl_py/absl/app.py", line 251, in _run_main
sys.exit(main(argv))
File "/mnt/lustre/zhoujingqiu/./deepmath_bin/main.runfiles/deepmath/deepmath/deephol/main.py", line 24, in main
prover_runner.run_pipeline(*prover_flags.process_prover_flags())
File "/mnt/lustre/zhoujingqiu/deepmath_bin/main.runfiles/deepmath/deepmath/deephol/prover_runner.py", line 56, in run_pipeline
proof_log = this_prover.prove(task)
File "/mnt/lustre/zhoujingqiu/deepmath_bin/main.runfiles/deepmath/deepmath/deephol/prover.py", line 130, in prove
return self.prove_one_wrapper(task)
File "/mnt/lustre/zhoujingqiu/deepmath_bin/main.runfiles/deepmath/deepmath/deephol/prover.py", line 159, in prove_one_wrapper
error_message = self.prove_one(tree, task)
File "/mnt/lustre/zhoujingqiu/deepmath_bin/main.runfiles/deepmath/deepmath/deephol/prover.py", line 284, in prove_one
self.prover_options.tactic_timeout_ms)
File "/mnt/lustre/zhoujingqiu/deepmath_bin/main.runfiles/deepmath/deepmath/deephol/prover_util.py", line 179, in try_tactics
request, score)
File "/mnt/lustre/zhoujingqiu/deepmath_bin/main.runfiles/deepmath/deepmath/deephol/proof_search_tree.py", line 240, in init
response = tree.proof_assistant.ApplyTactic(request)
File "/mnt/lustre/zhoujingqiu/deepmath_bin/main.runfiles/deepmath/deepmath/deephol/public/proof_assistant.py", line 34, in ApplyTactic
return self.stub.ApplyTactic(request)
File "/mnt/lustre/zhoujingqiu/.conda/envs/deephol/lib/python3.5/site-packages/grpc/_channel.py", line 826, in call
return _end_unary_response_blocking(state, call, False, None)
File "/mnt/lustre/zhoujingqiu/.conda/envs/deephol/lib/python3.5/site-packages/grpc/_channel.py", line 729, in _end_unary_response_blocking
raise _InactiveRpcError(state)
grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
status = StatusCode.INTERNAL
details = "Failure("Comms::Receive failed")"
debug_error_string = "{"created":"@1595325578.814092705","description":"Error received from peer ipv4:0.0.0.0:2080","file":"src/core/lib/surface/call.cc","file_line":1055,"grpc_message":"Failure("Comms::Receive failed")","grpc_sta
tus":13}"
What steps will reproduce the problem?
1. load ocaml and hol.ml as usual
2. loadt "Library/analysis.ml";;
3. loadt "Multivariate/vectors.ml";;
What is the expected output? What do you see instead?
Expecting exit with no problems. Instead, it exits with the final lines:
val DOT_RMUL : thm = |- !c x y. x dot c % y = c * (x dot y)
Warning: inventing type variables
Exception: Failure "GEN_TAC".
Error in included file
/home/ivan/Dropbox/ReadSterling/hol_light/Multivariate/vectors.ml
val it : unit = ()
What version of the product are you using? On what operating system?
2.20++ , Linux Mint
Please provide any additional information below.
It appears that the "--" defined in analysis.ml conflicts somehow with the "--"
defined in realax.ml , or I may be completely off.
Original issue reported on code.google.com by [email protected]
on 2 Mar 2014 at 10:52
Documentation for GEN_REWRITE_TAC seems to be copied from HOL4, but in HOL
Light this tactic takes only two arguments, not three. Patch attached.
Original issue reported on code.google.com by [email protected]
on 7 Sep 2014 at 10:26
Attachments:
What steps will reproduce the problem?
Execute these commands:
# needs "Examples/prog.ml";;
# install_parser ("correct",parse_program_assertion);;
# g `correct
T
var x;
x := 1
end
x > 0`;;
# e VC_TAC;;
What is the expected output? What do you see instead?
VC_TAC should generate verification conditions `1 > 0`, but it leaves the goal
unmodified.
What version of the product are you using? On what operating system?
HOL Light from SVN, revision 200; ocaml 4.01.0, Linux
Please provide any additional information below.
VC_TAC works as expected if I introduce a dummy variable:
# g `correct T var x, dummy; x := 1 end x > 0`;;
Original issue reported on code.google.com by [email protected]
on 20 Oct 2014 at 9:50
pa_j.ml: parse error after upgrade to ocaml 3.12 and camlp5 6.02
kx@linux:~/tmp/hol_light_svn> make
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 1689, characters 37-56:
While expanding quotation "class_expr":
Parse error: ']' or [expr] expected after '[' (in [expr])
File "pa_j.ml", line 1, characters 0-1:
Error: Preprocessor error
make: *** [pa_j.cmo] Error 2
Original issue reported on code.google.com by [email protected]
on 16 Nov 2010 at 11:00
I checked out from the subversion repository (r146) and executed make in the
root directory and got the error message above returned. A quick look at the
directory showed that it is really not there:
[user@hostname hol-light-read-only]$ ls -1 pa_j*
pa_j_3.07.ml
pa_j_3.08.ml
pa_j_3.09.ml
pa_j_3.1x_5.xx.ml
pa_j_3.1x_6.02.1.ml
pa_j_3.1x_6.02.2.ml
pa_j_3.1x_6.xx.ml
as far as i could see, these files are not automatically generated - is it
possible that they are only missing in the repository or am I doing something
wrong? Thanks in advance, Martin
Original issue reported on code.google.com by [email protected]
on 29 Aug 2012 at 2:12
As in the summary.
Original issue reported on code.google.com by [email protected]
on 24 Jul 2014 at 11:29
What steps will reproduce the problem?
1. Install camlp5-6.12 (released 2014-09-19)
2. Checkout the source of hol-light (revision 199)
3. Run `make`
What is the expected output? What do you see instead?
The compilation fails, because the wrong file was copied to `pa_j.ml`.
What version of the product are you using? On what operating system?
hol-light r199 on linux x86_64 with ocaml 4.01.0 and camlp5 6.12
Please provide any additional information below.
Original issue reported on code.google.com by [email protected]
on 30 Sep 2014 at 11:59
Attachments:
Hi all.
I'm getting a similar issue to #7. Here is the output after running make:
[jt273@lancing hol-light]$ make
\
if test `ocamlc -version | cut -c1-3` = "3.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" -o `camlp5 -v 2>&1 | cut -f3 -d' ' | cut -f1-3 -d'.' | cut -c1-6` = "6.03" -o `camlp5 -v 2>&1 | cut -f3 -d' ' | cut -f1-3 -d'.' | cut -c1-6` = "6.04" -o `camlp5 -v 2>&1 | cut -f3 -d' ' | cut -f1-3 -d'.' | cut -c1-6` = "6.05" -o `camlp5 -v 2>&1 | cut -f3 -d' ' | cut -f1-3 -d'.' | cut -c1-6` = "6.06" ; \
then cp pa_j_3.1x_6.02.2.ml pa_j.ml; \
else if test `camlp5 -v 2>&1 | cut -f3 -d' ' | cut -f1-3 -d'.' | cut -c1-6` = "6.06" -o `camlp5 -v 2>&1 | cut -f3 -d' ' | cut -f1-3 -d'.' | cut -c1-6` = "6.07" -o `camlp5 -v 2>&1 | cut -f3 -d' ' | cut -f1-3 -d'.' | cut -c1-6` = "6.08" -o `camlp5 -v 2>&1 | cut -f3 -d' ' | cut -f1-3 -d'.' | cut -c1-6` = "6.09" -o `camlp5 -v 2>&1 | cut -f3 -d' ' | cut -f1-3 -d'.' | cut -c1-6` = "6.10" -o `camlp5 -v 2>&1 | cut -f3 -d' ' | cut -f1-3 -d'.' | cut -c1-6` = "6.11" -o `camlp5 -v 2>&1 | cut -f3 -d' ' | cut -f1-3 -d'.' | cut -c1-6` = "6.12" -o `camlp5 -v 2>&1 | cut -f3 -d' ' | cut -f1-3 -d'.' | cut -c1-6` = "6.13" -o `camlp5 -v 2>&1 | cut -f3 -d' ' | cut -f1-3 -d'.' | cut -c1-6` = "6.14" -o `camlp5 -v 2>&1 | cut -f3 -d' ' | cut -f1-3 -d'.' | cut -c1-6` = "6.15" ; \
then cp pa_j_3.1x_6.11.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 \
fi
cp: cannot stat ‘pa_j_3.1x_9.xx.ml’: No such file or directory
Makefile:58: recipe for target 'pa_j.ml' failed
make: *** [pa_j.ml] Error 1
I've tried running make clean first, but no joy. My system runs Fedora 23, and my ocamlc version is 4.02.2, from the Fedora repository. I'm using hol-light master branch, commit c9ee18f.
All the best,
James.
The README links to the ckpt
program at http://www.cs.wisc.edu/~zandy/ckpt. Unfortunately, that's a broken link. Does it have a new webpage elsewhere?
When I input " 'x+1' " in hol-light system , it responses "Illegal begin of top_parse", whats wrong with it ?, Thanks.
Reference manual of REWRITE_CONV points to undocumented SUBST_CONV.
Original issue reported on code.google.com by [email protected]
on 24 Jul 2014 at 1:27
how does one install it for MAC OS?
Line 734 in 7381e2e
This line should be [VC_UNPACK_TAC; VC_UNPACK_TAC; GEN_TAC];(same as 728)
When matching a pattern which already contains MEASURE, GEN_TAC should be used instead.
Example:
`correct
T
var m,n;
do [invariant 0<=m ; measure m]
(if 0<n then n:=0;
m:= PRE m)
while 0<m
end
n=0`;;
With e VC_TAC, it outputs:
`m' = m /\ n' = n /\ ~(0 < n)
==> 0 <= PRE m /\ MEASURE (\(m,n). m) (PRE m,n) (m',n')`
`m' = m /\ n' = n /\ 0 < n
==> 0 <= PRE m /\ MEASURE (\(m,n). m) (PRE m,0) (m',n')`
`~(0 < m) /\ 0 <= m ==> n = 0`
`WF (MEASURE (\(m,n). m))`
This is because the match to correct p (ADO i (MEASURE m) c e) q
failed, correct p (ADO i v c e) q
was used instead,
With e (MATCH_MP_TAC VC_ADO_MEASURE THEN REPEAT CONJ_TAC THENL [VC_UNPACK_TAC; VC_UNPACK_TAC; GEN_TAC]), the output is:
`correct ((\(m,n). T) AND (\s. X = (\(m,n). m) s))
(IF (\(m,n). 0 < n) (Assign (\(m,n). m,0)) Seq Assign (\(m,n). PRE m,n))
((\(m,n). 0 <= m) AND (\s. (\(m,n). m) s < X))`
`~(0 < m) /\ 0 <= m ==> n = 0`
Where no MEASURE is found, and continue with VC_TAC, all VC goals will be generated normally
Patch attached.
Original issue reported on code.google.com by [email protected]
on 7 Sep 2014 at 8:48
Attachments:
The version 7.07 of camlp5
was released a few days ago. Unfortunately, it breaks HOL-light:
File "pa_j.ml", line 571, characters 6-18:
Error: The constructor StTyp expects 3 argument(s),
but is applied here to 2 argument(s)
Are there any plans to make the twain compatible again? Thanks.
Hello. Using ocaml.4.02.3 and campl5.6.17 I get the following problem:
#use "hol.ml";;
# module OrdInt = struct type t = int let compare = (-) end;;
Toplevel input:
# module OrdInt = struct type t = int let compare = (-) end;;
^^^^^^
Parse error: 'type' or 'rec' expected after 'module' (in [str_item])
Why can't I define modules anymore? How do I do to build maps on integers (Map.Make(OrdInt))?
File "pa_j.ml", line 413, characters 6-24:
413 | | MtFun loc x1 x2 x3 →
^^^^^^^^^^^^^^^^^^
Error: The constructor MtFun expects 3 argument(s),
but is applied here to 4 argument(s)
make: *** [Makefile:49: pa_j.cmo] Error 2
I received this error when running make in ~/hol-light.
There are three semicolons instead of two in the documentation of SPECL (typo).
Patch attached.
Original issue reported on code.google.com by [email protected]
on 30 Jul 2014 at 10:08
Attachments:
Exception: Failure "new_definition: term not closed: V, Fn".
Error in included file /home/blanqui/src/hol-light/Logic/canon.ml
real 1m4,107s
I am using the current version of HOL-Light, OCaml 4.14.1 and Camlp5 8.00.05.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.