aboutsummaryrefslogtreecommitdiffstats
path: root/src/versions
diff options
context:
space:
mode:
Diffstat (limited to 'src/versions')
-rw-r--r--src/versions/standard/Array/PArray_standard.v2
-rw-r--r--src/versions/standard/Make23
-rw-r--r--src/versions/standard/Makefile202
-rw-r--r--src/versions/standard/g_smtcoq_standard.ml462
-rw-r--r--src/versions/standard/smtcoq_plugin_standard.ml48
-rw-r--r--src/versions/standard/smtcoq_plugin_standard.mlpack34
-rw-r--r--src/versions/standard/structures.ml11
7 files changed, 245 insertions, 97 deletions
diff --git a/src/versions/standard/Array/PArray_standard.v b/src/versions/standard/Array/PArray_standard.v
index 2cc8366..4bf5e7a 100644
--- a/src/versions/standard/Array/PArray_standard.v
+++ b/src/versions/standard/Array/PArray_standard.v
@@ -80,8 +80,6 @@ Notation "t '.[' i '<-' a ']'" := (set t i a) (at level 50) : array_scope.
Local Open Scope array_scope.
-Set Vm Optimize.
-
Definition max_array_length := 4194302%int31.
(** Axioms *)
diff --git a/src/versions/standard/Make b/src/versions/standard/Make
index 3834ee0..7c4497e 100644
--- a/src/versions/standard/Make
+++ b/src/versions/standard/Make
@@ -9,6 +9,8 @@
########################################################################
## To generate the Makefile: ##
## coq_makefile -f Make -o Makefile ##
+## Suppress the "Makefile" target ##
+
## Change the "all" target into: ##
## all: ml $(CMXFILES) $(CMXA) $(CMXS) $(VOFILES) ##
## Change the "install-natdynlink" target: change CMXSFILES into CMXS and add the same thing for CMXA. ##
@@ -21,6 +23,7 @@
-R . SMTCoq
+-I .
-I cnf
-I euf
-I lia
@@ -32,19 +35,16 @@
-I versions/standard/Int63
-I versions/standard/Array
--custom "cd ../unit-tests; make" "" "test"
--custom "cd ../unit-tests; make zchaff" "" "ztest"
--custom "cd ../unit-tests; make verit" "" "vtest"
+-I $(COQBIN)../plugins/micromega
--custom "$(CAMLLEX) $<" "%.mll" "%.ml"
--custom "$(CAMLYACC) $<" "%.mly" "%.ml %.mli"
--custom "" "verit/veritParser.ml verit/veritLexer.ml smtlib2/smtlib2_parse.ml smtlib2/smtlib2_lex.ml" "ml"
+# -extra "test" "" "cd ../unit-tests; make" ""
+# -extra "ztest" "" "cd ../unit-tests; make zchaff"
+# -extra "vtest" "" "cd ../unit-tests; make verit"
--custom "$(CAMLOPTLINK) $(ZFLAGS) -a -o $@ $^" "versions/standard/structures.cmx trace/smtMisc.cmx trace/coqTerms.cmx trace/smtForm.cmx trace/smtCertif.cmx trace/smtTrace.cmx trace/smtCnf.cmx trace/satAtom.cmx trace/smtAtom.cmx zchaff/satParser.cmx zchaff/zchaffParser.cmx zchaff/cnfParser.cmx zchaff/zchaff.cmx smtlib2/smtlib2_util.cmx smtlib2/smtlib2_ast.cmx smtlib2/smtlib2_parse.cmx smtlib2/smtlib2_lex.cmx lia/lia.cmx verit/veritSyntax.cmx verit/veritParser.cmx verit/veritLexer.cmx smtlib2/smtlib2_genConstr.cmx trace/smtCommands.cmx verit/verit.cmx smtcoq_plugin.cmx" "$(CMXA)"
--custom "$(CAMLOPTLINK) $(ZFLAGS) -o $@ -linkall -shared $^" "$(CMXA)" "$(CMXS)"
+-extra "%.ml" "%.mll" "$(CAMLLEX) $<"
+-extra "%.ml %.mli" "%.mly" "$(CAMLYACC) $<"
+-extra-phony "smtcoq_plugin.mlpack.d" "verit/veritParser.ml verit/veritLexer.ml smtlib2/smtlib2_parse.ml smtlib2/smtlib2_lex.ml" ""
-CMXA = smtcoq.cmxa
-CMXS = smtcoq_plugin.cmxs
CAMLLEX = $(CAMLBIN)ocamllex
CAMLYACC = $(CAMLBIN)ocamlyacc
@@ -107,4 +107,5 @@ SMT_terms.v
State.v
Trace.v
-smtcoq_plugin.ml4
+g_smtcoq.ml4
+smtcoq_plugin.mlpack
diff --git a/src/versions/standard/Makefile b/src/versions/standard/Makefile
index 43946bf..9fda4ea 100644
--- a/src/versions/standard/Makefile
+++ b/src/versions/standard/Makefile
@@ -2,7 +2,7 @@
## v # The Coq Proof Assistant ##
## <O___,, # INRIA - CNRS - LIX - LRI - PPS ##
## \VV/ # ##
-## // # Makefile automagically generated by coq_makefile V8.5pl2 ##
+## // # Makefile automagically generated by coq_makefile V8.6.1 ##
#############################################################################
# WARNING
@@ -25,6 +25,11 @@
# TIMED if non empty, use the default time command as TIMECMD;
# ZDEBUG/COQDEBUG to specify debug flags for ocamlc&ocamlopt/coqc;
# DSTROOT to specify a prefix to install path.
+# VERBOSE to disable the short display of compilation rules.
+
+VERBOSE?=
+SHOW := $(if $(VERBOSE),@true "",@echo "")
+HIDE := $(if $(VERBOSE),,@)
# Here is a hack to make $(eval $(shell works:
define donewline
@@ -34,8 +39,8 @@ endef
includecmdwithout@ = $(eval $(subst @,$(donewline),$(shell { $(1) | tr -d '\r' | tr '\n' '@'; })))
$(call includecmdwithout@,$(COQBIN)coqtop -config)
-TIMED=
-TIMECMD=
+TIMED?=
+TIMECMD?=
STDTIME?=/usr/bin/time -f "$* (user: %U mem: %M ko)"
TIMER=$(if $(TIMED), $(STDTIME), $(TIMECMD))
@@ -49,7 +54,8 @@ vo_to_obj = $(addsuffix .o,\
# #
##########################
-OCAMLLIBS?=-I "cnf"\
+OCAMLLIBS?=-I "."\
+ -I "cnf"\
-I "euf"\
-I "lia"\
-I "smtlib2"\
@@ -58,9 +64,11 @@ OCAMLLIBS?=-I "cnf"\
-I "zchaff"\
-I "versions/standard"\
-I "versions/standard/Int63"\
- -I "versions/standard/Array"
+ -I "versions/standard/Array"\
+ -I "$(COQBIN)../plugins/micromega"
COQLIBS?=\
-R "." SMTCoq\
+ -I "."\
-I "cnf"\
-I "euf"\
-I "lia"\
@@ -70,7 +78,8 @@ COQLIBS?=\
-I "zchaff"\
-I "versions/standard"\
-I "versions/standard/Int63"\
- -I "versions/standard/Array"
+ -I "versions/standard/Array"\
+ -I "$(COQBIN)../plugins/micromega"
COQCHKLIBS?=\
-R "." SMTCoq
COQDOCLIBS?=\
@@ -82,8 +91,6 @@ COQDOCLIBS?=\
# #
##########################
-CMXA=smtcoq.cmxa
-CMXS=smtcoq_plugin.cmxs
CAMLLEX=$(CAMLBIN)ocamllex
CAMLYACC=$(CAMLBIN)ocamlyacc
@@ -109,10 +116,13 @@ COQSRCLIBS?=-I "$(COQLIB)kernel" \
-I "$(COQLIB)proofs" \
-I "$(COQLIB)tactics" \
-I "$(COQLIB)tools" \
+-I "$(COQLIB)ltacprof" \
-I "$(COQLIB)toplevel" \
-I "$(COQLIB)stm" \
-I "$(COQLIB)grammar" \
-I "$(COQLIB)config" \
+-I "$(COQLIB)ltac" \
+-I "$(COQLIB)engine" \
\
-I "$(COQLIB)/plugins/btauto" \
-I "$(COQLIB)/plugins/cc" \
@@ -122,6 +132,7 @@ COQSRCLIBS?=-I "$(COQLIB)kernel" \
-I "$(COQLIB)/plugins/firstorder" \
-I "$(COQLIB)/plugins/fourier" \
-I "$(COQLIB)/plugins/funind" \
+ -I "$(COQLIB)/plugins/ltac" \
-I "$(COQLIB)/plugins/micromega" \
-I "$(COQLIB)/plugins/nsatz" \
-I "$(COQLIB)/plugins/omega" \
@@ -129,21 +140,24 @@ COQSRCLIBS?=-I "$(COQLIB)kernel" \
-I "$(COQLIB)/plugins/romega" \
-I "$(COQLIB)/plugins/rtauto" \
-I "$(COQLIB)/plugins/setoid_ring" \
+ -I "$(COQLIB)/plugins/ssrmatching" \
-I "$(COQLIB)/plugins/syntax" \
-I "$(COQLIB)/plugins/xml"
ZFLAGS=$(OCAMLLIBS) $(COQSRCLIBS) -I $(CAMLP4LIB)
-CAMLC?=$(OCAMLC) -c -rectypes -thread
-CAMLOPTC?=$(OCAMLOPT) -c -rectypes -thread
-CAMLLINK?=$(OCAMLC) -rectypes -thread
-CAMLOPTLINK?=$(OCAMLOPT) -rectypes -thread
+CAMLC?=$(OCAMLFIND) ocamlc -c -rectypes -thread
+CAMLOPTC?=$(OCAMLFIND) opt -c -rectypes -thread
+CAMLLINK?=$(OCAMLFIND) ocamlc -rectypes -thread
+CAMLOPTLINK?=$(OCAMLFIND) opt -rectypes -thread
+CAMLDEP?=$(OCAMLFIND) ocamldep -slash -ml-synonym .ml4 -ml-synonym .mlpack
+CAMLLIB?=$(shell $(OCAMLFIND) printconf stdlib)
GRAMMARS?=grammar.cma
ifeq ($(CAMLP4),camlp5)
-CAMLP4EXTEND=pa_extend.cmo q_MLast.cmo pa_macro.cmo unix.cma threads.cma
+CAMLP4EXTEND=pa_extend.cmo q_MLast.cmo pa_macro.cmo
else
-CAMLP4EXTEND=threads.cma
+CAMLP4EXTEND=
endif
-PP?=-pp '$(CAMLP4O) -I $(CAMLLIB) -I $(CAMLLIB)threads/ $(COQSRCLIBS) compat5.cmo \
+PP?=-pp '$(CAMLP4O) -I $(CAMLLIB) -I $(COQLIB)/grammar compat5.cmo \
$(CAMLP4EXTEND) $(GRAMMARS) $(CAMLP4OPTIONS) -impl'
##################
@@ -207,7 +221,7 @@ GHTMLFILES:=$(VFILES:.v=.g.html)
OBJFILES=$(call vo_to_obj,$(VOFILES))
ALLNATIVEFILES=$(OBJFILES:.o=.cmi) $(OBJFILES:.o=.cmo) $(OBJFILES:.o=.cmx) $(OBJFILES:.o=.cmxs)
NATIVEFILES=$(foreach f, $(ALLNATIVEFILES), $(wildcard $f))
-ML4FILES:=smtcoq_plugin.ml4
+ML4FILES:=g_smtcoq.ml4
ifneq ($(filter-out archclean clean cleanall printenv,$(MAKECMDGOALS)),)
-include $(addsuffix .d,$(ML4FILES))
@@ -254,6 +268,18 @@ endif
.SECONDARY: $(addsuffix .d,$(MLFILES))
+MLPACKFILES:=smtcoq_plugin.mlpack
+
+ifneq ($(filter-out archclean clean cleanall printenv,$(MAKECMDGOALS)),)
+-include $(addsuffix .d,$(MLPACKFILES))
+else
+ifeq ($(MAKECMDGOALS),)
+-include $(addsuffix .d,$(MLPACKFILES))
+endif
+endif
+
+.SECONDARY: $(addsuffix .d,$(MLPACKFILES))
+
MLIFILES:=trace/smtAtom.mli\
trace/smtForm.mli\
smtlib2/smtlib2_parse.mli\
@@ -270,7 +296,7 @@ endif
.SECONDARY: $(addsuffix .d,$(MLIFILES))
-ALLCMOFILES:=$(ML4FILES:.ml4=.cmo) $(MLFILES:.ml=.cmo)
+ALLCMOFILES:=$(ML4FILES:.ml4=.cmo) $(MLFILES:.ml=.cmo) $(MLPACKFILES:.mlpack=.cmo)
CMOFILES=$(filter-out $(addsuffix .cmo,$(foreach lib,$(MLLIBFILES:.mllib=_MLLIB_DEPENDENCIES) $(MLPACKFILES:.mlpack=_MLPACK_DEPENDENCIES),$($(lib)))),$(ALLCMOFILES))
CMXFILES=$(CMOFILES:.cmo=.cmx)
OFILES=$(CMXFILES:.cmx=.o)
@@ -288,14 +314,14 @@ endif
# #
#######################################
-all: ml $(CMXFILES) $(CMXA) $(CMXS) $(VOFILES)
+all: $(VOFILES) $(CMOFILES) $(if $(HASNATDYNLINK_OR_EMPTY),$(CMXSFILES))
mlihtml: $(MLIFILES:.mli=.cmi)
mkdir $@ || rm -rf $@/*
- $(OCAMLDOC) -html -rectypes -d $@ -m A $(ZDEBUG) $(ZFLAGS) $(^:.cmi=.mli)
+ $(OCAMLFIND) ocamldoc -html -rectypes -d $@ -m A $(ZDEBUG) $(ZFLAGS) $(^:.cmi=.mli)
all-mli.tex: $(MLIFILES:.mli=.cmi)
- $(OCAMLDOC) -latex -rectypes -o $@ -m A $(ZDEBUG) $(ZFLAGS) $(^:.cmi=.mli)
+ $(OCAMLFIND) ocamldoc -latex -rectypes -o $@ -m A $(ZDEBUG) $(ZFLAGS) $(^:.cmi=.mli)
quick: $(VOFILES:.vo=.vio)
@@ -333,7 +359,7 @@ beautify: $(VFILES:=.beautified)
@echo 'Do not do "make clean" until you are sure that everything went well!'
@echo 'If there were a problem, execute "for file in $$(find . -name \*.v.old -print); do mv $${file} $${file%.old}; done" in your shell/'
-.PHONY: all archclean beautify byte clean cleanall gallina gallinahtml html install install-doc install-natdynlink install-toploop opt printenv quick uninstall userinstall validate vio2vo
+.PHONY: all archclean beautify byte clean cleanall gallina gallinahtml html install install-doc install-natdynlink install-toploop opt printenv quick uninstall userinstall validate vio2vo smtcoq_plugin.mlpack.d
###################
# #
@@ -341,28 +367,27 @@ beautify: $(VFILES:=.beautified)
# #
###################
-test:
- cd ../unit-tests; make
-
-ztest:
- cd ../unit-tests; make zchaff
-
-vtest:
- cd ../unit-tests; make verit
-
%.ml: %.mll
$(CAMLLEX) $<
%.ml %.mli: %.mly
$(CAMLYACC) $<
-ml: verit/veritParser.ml verit/veritLexer.ml smtlib2/smtlib2_parse.ml smtlib2/smtlib2_lex.ml
+smtcoq_plugin.mlpack.d: verit/veritParser.ml verit/veritLexer.ml smtlib2/smtlib2_parse.ml smtlib2/smtlib2_lex.ml
+
+#####################################
+# #
+# Ad-hoc implicit rules for mlpack. #
+# #
+#####################################
-$(CMXA): versions/standard/structures.cmx trace/smtMisc.cmx trace/coqTerms.cmx trace/smtForm.cmx trace/smtCertif.cmx trace/smtTrace.cmx trace/smtCnf.cmx trace/satAtom.cmx trace/smtAtom.cmx zchaff/satParser.cmx zchaff/zchaffParser.cmx zchaff/cnfParser.cmx zchaff/zchaff.cmx smtlib2/smtlib2_util.cmx smtlib2/smtlib2_ast.cmx smtlib2/smtlib2_parse.cmx smtlib2/smtlib2_lex.cmx lia/lia.cmx verit/veritSyntax.cmx verit/veritParser.cmx verit/veritLexer.cmx smtlib2/smtlib2_genConstr.cmx trace/smtCommands.cmx verit/verit.cmx smtcoq_plugin.cmx
- $(CAMLOPTLINK) $(ZFLAGS) -a -o $@ $^
+$(addsuffix .cmx,$(filter $(basename $(MLFILES)),$(smtcoq_plugin_MLPACK_DEPENDENCIES))): %.cmx: %.ml
+ $(SHOW)'CAMLOPT -c -for-pack Smtcoq_plugin $<'
+ $(HIDE)$(CAMLOPTC) $(ZDEBUG) $(ZFLAGS) -for-pack Smtcoq_plugin $<
-$(CMXS): $(CMXA)
- $(CAMLOPTLINK) $(ZFLAGS) -o $@ -linkall -shared $^
+$(addsuffix .cmx,$(filter $(basename $(ML4FILES)),$(smtcoq_plugin_MLPACK_DEPENDENCIES))): %.cmx: %.ml4
+ $(SHOW)'CAMLOPT -c -pp -for-pack Smtcoq_plugin $<'
+ $(HIDE)$(CAMLOPTC) $(ZDEBUG) $(ZFLAGS) -for-pack Smtcoq_plugin $(PP) -impl $<
####################
# #
@@ -380,11 +405,7 @@ userinstall:
+$(MAKE) USERINSTALL=true install
install-natdynlink:
- cd "." && for i in $(CMXS); do \
- install -d "`dirname "$(DSTROOT)"$(COQLIBINSTALL)/SMTCoq/$$i`"; \
- install -m 0755 $$i "$(DSTROOT)"$(COQLIBINSTALL)/SMTCoq/$$i; \
- done
- cd "." && for i in $(CMXA); do \
+ cd "." && for i in $(CMXSFILES); do \
install -d "`dirname "$(DSTROOT)"$(COQLIBINSTALL)/SMTCoq/$$i`"; \
install -m 0755 $$i "$(DSTROOT)"$(COQLIBINSTALL)/SMTCoq/$$i; \
done
@@ -394,7 +415,7 @@ install-toploop: $(MLLIBFILES:.mllib=.cmxs)
install -m 0755 $? "$(DSTROOT)"$(COQTOPINSTALL)/
install:$(if $(HASNATDYNLINK_OR_EMPTY),install-natdynlink)
- cd "." && for i in $(VOFILES) $(VFILES) $(GLOBFILES) $(NATIVEFILES) $(CMXFILES) $(CMIFILES) $(CMAFILES); do \
+ cd "." && for i in $(VOFILES) $(VFILES) $(GLOBFILES) $(NATIVEFILES) $(CMOFILES) $(CMIFILES) $(CMAFILES); do \
install -d "`dirname "$(DSTROOT)"$(COQLIBINSTALL)/SMTCoq/$$i`"; \
install -m 0644 $$i "$(DSTROOT)"$(COQLIBINSTALL)/SMTCoq/$$i; \
done
@@ -426,21 +447,26 @@ uninstall: uninstall_me.sh
.merlin:
@echo 'FLG -rectypes' > .merlin
- @echo "B $(COQLIB) kernel" >> .merlin
- @echo "B $(COQLIB) lib" >> .merlin
- @echo "B $(COQLIB) library" >> .merlin
- @echo "B $(COQLIB) parsing" >> .merlin
- @echo "B $(COQLIB) pretyping" >> .merlin
- @echo "B $(COQLIB) interp" >> .merlin
- @echo "B $(COQLIB) printing" >> .merlin
- @echo "B $(COQLIB) intf" >> .merlin
- @echo "B $(COQLIB) proofs" >> .merlin
- @echo "B $(COQLIB) tactics" >> .merlin
- @echo "B $(COQLIB) tools" >> .merlin
- @echo "B $(COQLIB) toplevel" >> .merlin
- @echo "B $(COQLIB) stm" >> .merlin
- @echo "B $(COQLIB) grammar" >> .merlin
- @echo "B $(COQLIB) config" >> .merlin
+ @echo "B $(COQLIB)kernel" >> .merlin
+ @echo "B $(COQLIB)lib" >> .merlin
+ @echo "B $(COQLIB)library" >> .merlin
+ @echo "B $(COQLIB)parsing" >> .merlin
+ @echo "B $(COQLIB)pretyping" >> .merlin
+ @echo "B $(COQLIB)interp" >> .merlin
+ @echo "B $(COQLIB)printing" >> .merlin
+ @echo "B $(COQLIB)intf" >> .merlin
+ @echo "B $(COQLIB)proofs" >> .merlin
+ @echo "B $(COQLIB)tactics" >> .merlin
+ @echo "B $(COQLIB)tools" >> .merlin
+ @echo "B $(COQLIB)ltacprof" >> .merlin
+ @echo "B $(COQLIB)toplevel" >> .merlin
+ @echo "B $(COQLIB)stm" >> .merlin
+ @echo "B $(COQLIB)grammar" >> .merlin
+ @echo "B $(COQLIB)config" >> .merlin
+ @echo "B $(COQLIB)ltac" >> .merlin
+ @echo "B $(COQLIB)engine" >> .merlin
+ @echo "B /home/artemis/Recherche/Github/smtcoq/smtcoq/src/versions/standard" >> .merlin
+ @echo "S /home/artemis/Recherche/Github/smtcoq/smtcoq/src/versions/standard" >> .merlin
@echo "B cnf" >> .merlin
@echo "S cnf" >> .merlin
@echo "B euf" >> .merlin
@@ -461,6 +487,8 @@ uninstall: uninstall_me.sh
@echo "S versions/standard/Int63" >> .merlin
@echo "B versions/standard/Array" >> .merlin
@echo "S versions/standard/Array" >> .merlin
+ @echo "B $(COQBIN)../plugins/micromega" >> .merlin
+ @echo "S $(COQBIN)../plugins/micromega" >> .merlin
clean::
rm -f $(ALLCMOFILES) $(CMIFILES) $(CMAFILES)
@@ -471,30 +499,23 @@ clean::
rm -f $(VOFILES) $(VOFILES:.vo=.vio) $(GFILES) $(VFILES:.v=.v.d) $(VFILES:=.beautified) $(VFILES:=.old)
rm -f all.ps all-gal.ps all.pdf all-gal.pdf all.glob $(VFILES:.v=.glob) $(VFILES:.v=.tex) $(VFILES:.v=.g.tex) all-mli.tex
- rm -rf html mlihtml uninstall_me.sh
- - rm -rf test
- - rm -rf ztest
- - rm -rf vtest
- - rm -rf ml
- - rm -rf $(CMXA)
- - rm -rf $(CMXS)
- - rm -f ../unit-tests/*.vo ../unit-tests/*.zlog ../unit-tests/*.vtlog verit/veritParser.mli verit/veritParser.ml verit/veritLexer.ml smtlib2/smtlib2_parse.mli smtlib2/smtlib2_parse.ml smtlib2/smtlib2_lex.ml smtcoq.a
cleanall:: clean
- rm -f $(patsubst %.v,.%.aux,$(VFILES))
+ rm -f $(foreach f,$(VFILES:.v=),$(dir $(f)).$(notdir $(f)).aux)
archclean::
rm -f *.cmx *.o
printenv:
@"$(COQBIN)coqtop" -config
- @echo 'CAMLC = $(CAMLC)'
- @echo 'CAMLOPTC = $(CAMLOPTC)'
+ @echo 'OCAMLFIND = $(OCAMLFIND)'
@echo 'PP = $(PP)'
@echo 'COQFLAGS = $(COQFLAGS)'
@echo 'COQLIBINSTALL = $(COQLIBINSTALL)'
@echo 'COQDOCINSTALL = $(COQDOCINSTALL)'
+
###################
# #
# Implicit rules. #
@@ -502,34 +523,60 @@ printenv:
###################
$(MLIFILES:.mli=.cmi): %.cmi: %.mli
- $(CAMLC) $(ZDEBUG) $(ZFLAGS) $<
+ $(SHOW)'CAMLC -c $<'
+ $(HIDE)$(CAMLC) $(ZDEBUG) $(ZFLAGS) $<
$(addsuffix .d,$(MLIFILES)): %.mli.d: %.mli
- $(OCAMLDEP) -slash $(OCAMLLIBS) "$<" > "$@" || ( RV=$$?; rm -f "$@"; exit $${RV} )
+ $(SHOW)'CAMLDEP $<'
+ $(HIDE)$(CAMLDEP) $(OCAMLLIBS) "$<" > "$@" || ( RV=$$?; rm -f "$@"; exit $${RV} )
$(ML4FILES:.ml4=.cmo): %.cmo: %.ml4
- $(CAMLC) $(ZDEBUG) $(ZFLAGS) $(PP) -impl $<
+ $(SHOW)'CAMLC -pp -c $<'
+ $(HIDE)$(CAMLC) $(ZDEBUG) $(ZFLAGS) $(PP) -impl $<
$(filter-out $(addsuffix .cmx,$(foreach lib,$(MLPACKFILES:.mlpack=_MLPACK_DEPENDENCIES),$($(lib)))),$(ML4FILES:.ml4=.cmx)): %.cmx: %.ml4
- $(CAMLOPTC) $(ZDEBUG) $(ZFLAGS) $(PP) -impl $<
+ $(SHOW)'CAMLOPT -pp -c $<'
+ $(HIDE)$(CAMLOPTC) $(ZDEBUG) $(ZFLAGS) $(PP) -impl $<
$(addsuffix .d,$(ML4FILES)): %.ml4.d: %.ml4
- $(OCAMLDEP) -slash $(OCAMLLIBS) $(PP) -impl "$<" > "$@" || ( RV=$$?; rm -f "$@"; exit $${RV} )
+ $(SHOW)'CAMLDEP -pp $<'
+ $(HIDE)$(CAMLDEP) $(OCAMLLIBS) $(PP) -impl "$<" > "$@" || ( RV=$$?; rm -f "$@"; exit $${RV} )
$(MLFILES:.ml=.cmo): %.cmo: %.ml
- $(CAMLC) $(ZDEBUG) $(ZFLAGS) $<
+ $(SHOW)'CAMLC -c $<'
+ $(HIDE)$(CAMLC) $(ZDEBUG) $(ZFLAGS) $<
$(filter-out $(addsuffix .cmx,$(foreach lib,$(MLPACKFILES:.mlpack=_MLPACK_DEPENDENCIES),$($(lib)))),$(MLFILES:.ml=.cmx)): %.cmx: %.ml
- $(CAMLOPTC) $(ZDEBUG) $(ZFLAGS) $<
+ $(SHOW)'CAMLOPT -c $<'
+ $(HIDE)$(CAMLOPTC) $(ZDEBUG) $(ZFLAGS) $<
$(addsuffix .d,$(MLFILES)): %.ml.d: %.ml
- $(OCAMLDEP) -slash $(OCAMLLIBS) "$<" > "$@" || ( RV=$$?; rm -f "$@"; exit $${RV} )
+ $(SHOW)'CAMLDEP $<'
+ $(HIDE)$(CAMLDEP) $(OCAMLLIBS) "$<" > "$@" || ( RV=$$?; rm -f "$@"; exit $${RV} )
+
+$(filter-out $(MLLIBFILES:.mllib=.cmxs),$(MLFILES:.ml=.cmxs) $(ML4FILES:.ml4=.cmxs) $(MLPACKFILES:.mlpack=.cmxs)): %.cmxs: %.cmx
+ $(SHOW)'CAMLOPT -shared -o $@'
+ $(HIDE)$(CAMLOPTLINK) $(ZDEBUG) $(ZFLAGS) -shared -o $@ $<
$(MLLIBFILES:.mllib=.cmxs): %.cmxs: %.cmxa
- $(CAMLOPTLINK) $(ZDEBUG) $(ZFLAGS) -linkall -shared -o $@ $<
+ $(SHOW)'CAMLOPT -shared -o $@'
+ $(HIDE)$(CAMLOPTLINK) $(ZDEBUG) $(ZFLAGS) -linkall -shared -o $@ $<
+
+$(MLPACKFILES:.mlpack=.cmo): %.cmo: | %.mlpack
+ $(SHOW)'CAMLC -pack -o $@'
+ $(HIDE)$(CAMLLINK) $(ZDEBUG) $(ZFLAGS) -pack -o $@ $^
+
+$(MLPACKFILES:.mlpack=.cmx): %.cmx: | %.mlpack
+ $(SHOW)'CAMLOPT -pack -o $@'
+ $(HIDE)$(CAMLOPTLINK) $(ZDEBUG) $(ZFLAGS) -pack -o $@ $^
+
+$(addsuffix .d,$(MLPACKFILES)): %.mlpack.d: %.mlpack
+ $(SHOW)'COQDEP $<'
+ $(HIDE)$(COQDEP) $(OCAMLLIBS) -c "$<" > "$@" || ( RV=$$?; rm -f "$@"; exit $${RV} )
$(VOFILES): %.vo: %.v
- $(COQC) $(COQDEBUG) $(COQFLAGS) $<
+ $(SHOW)COQC $<
+ $(HIDE)$(COQC) $(COQDEBUG) $(COQFLAGS) $<
$(GLOBFILES): %.glob: %.v
$(COQC) $(COQDEBUG) $(COQFLAGS) $<
@@ -553,7 +600,8 @@ $(GHTMLFILES): %.g.html: %.v %.glob
$(COQDOC) $(COQDOCFLAGS) -html -g $< -o $@
$(addsuffix .d,$(VFILES)): %.v.d: %.v
- $(COQDEP) $(COQLIBS) "$<" > "$@" || ( RV=$$?; rm -f "$@"; exit $${RV} )
+ $(SHOW)'COQDEP $<'
+ $(HIDE)$(COQDEP) $(COQLIBS) "$<" > "$@" || ( RV=$$?; rm -f "$@"; exit $${RV} )
$(addsuffix .beautified,$(VFILES)): %.v.beautified:
$(COQC) $(COQDEBUG) $(COQFLAGS) -beautify $*.v
diff --git a/src/versions/standard/g_smtcoq_standard.ml4 b/src/versions/standard/g_smtcoq_standard.ml4
new file mode 100644
index 0000000..ab097a1
--- /dev/null
+++ b/src/versions/standard/g_smtcoq_standard.ml4
@@ -0,0 +1,62 @@
+(**************************************************************************)
+(* *)
+(* SMTCoq *)
+(* Copyright (C) 2011 - 2016 *)
+(* *)
+(* Michaël Armand *)
+(* Benjamin Grégoire *)
+(* Chantal Keller *)
+(* *)
+(* Inria - École Polytechnique - Université Paris-Sud *)
+(* *)
+(* This file is distributed under the terms of the CeCILL-C licence *)
+(* *)
+(**************************************************************************)
+
+
+DECLARE PLUGIN "smtcoq_plugin"
+
+open Genarg
+open Stdarg
+open Constrarg
+
+VERNAC COMMAND EXTEND Vernac_zchaff CLASSIFIED AS QUERY
+| [ "Parse_certif_zchaff"
+ ident(dimacs) ident(trace) string(fdimacs) string(fproof) ] ->
+ [
+ Zchaff.parse_certif dimacs trace fdimacs fproof
+ ]
+| [ "Zchaff_Checker" string(fdimacs) string(fproof) ] ->
+ [
+ Zchaff.checker fdimacs fproof
+ ]
+| [ "Zchaff_Theorem" ident(name) string(fdimacs) string(fproof) ] ->
+ [
+ Zchaff.theorem name fdimacs fproof
+ ]
+END
+
+VERNAC COMMAND EXTEND Vernac_verit CLASSIFIED AS QUERY
+| [ "Parse_certif_verit"
+ ident(t_i) ident(t_func) ident(t_atom) ident(t_form) ident(root) ident(used_roots) ident(trace) string(fsmt) string(fproof) ] ->
+ [
+ Verit.parse_certif t_i t_func t_atom t_form root used_roots trace fsmt fproof
+ ]
+| [ "Verit_Checker" string(fsmt) string(fproof) ] ->
+ [
+ Verit.checker fsmt fproof
+ ]
+| [ "Verit_Theorem" ident(name) string(fsmt) string(fproof) ] ->
+ [
+ Verit.theorem name fsmt fproof
+ ]
+END
+
+
+TACTIC EXTEND Tactic_zchaff
+| [ "zchaff" ] -> [ Zchaff.tactic () ]
+END
+
+TACTIC EXTEND Tactic_verit
+| [ "verit" ] -> [ Verit.tactic () ]
+END
diff --git a/src/versions/standard/smtcoq_plugin_standard.ml4 b/src/versions/standard/smtcoq_plugin_standard.ml4
index 6ae3545..ab097a1 100644
--- a/src/versions/standard/smtcoq_plugin_standard.ml4
+++ b/src/versions/standard/smtcoq_plugin_standard.ml4
@@ -16,7 +16,11 @@
DECLARE PLUGIN "smtcoq_plugin"
-VERNAC COMMAND EXTEND Vernac_zchaff
+open Genarg
+open Stdarg
+open Constrarg
+
+VERNAC COMMAND EXTEND Vernac_zchaff CLASSIFIED AS QUERY
| [ "Parse_certif_zchaff"
ident(dimacs) ident(trace) string(fdimacs) string(fproof) ] ->
[
@@ -32,7 +36,7 @@ VERNAC COMMAND EXTEND Vernac_zchaff
]
END
-VERNAC COMMAND EXTEND Vernac_verit
+VERNAC COMMAND EXTEND Vernac_verit CLASSIFIED AS QUERY
| [ "Parse_certif_verit"
ident(t_i) ident(t_func) ident(t_atom) ident(t_form) ident(root) ident(used_roots) ident(trace) string(fsmt) string(fproof) ] ->
[
diff --git a/src/versions/standard/smtcoq_plugin_standard.mlpack b/src/versions/standard/smtcoq_plugin_standard.mlpack
new file mode 100644
index 0000000..3ab358b
--- /dev/null
+++ b/src/versions/standard/smtcoq_plugin_standard.mlpack
@@ -0,0 +1,34 @@
+Structures
+
+SmtMisc
+CoqTerms
+SmtForm
+SmtCertif
+SmtTrace
+SmtCnf
+SatAtom
+SmtAtom
+
+SatParser
+ZchaffParser
+CnfParser
+Zchaff
+
+Smtlib2_util
+Smtlib2_ast
+Smtlib2_parse
+Smtlib2_lex
+
+Lia
+
+VeritSyntax
+VeritParser
+VeritLexer
+
+Smtlib2_genConstr
+
+SmtCommands
+
+Verit
+
+G_smtcoq
diff --git a/src/versions/standard/structures.ml b/src/versions/standard/structures.ml
index 19104fe..45a8ca4 100644
--- a/src/versions/standard/structures.ml
+++ b/src/versions/standard/structures.ml
@@ -111,7 +111,7 @@ let mkTConst c noc ty =
const_entry_opaque = false;
const_entry_inline_code = false }
-let error = Errors.error
+let error = CErrors.error
let coqtype = Future.from_val Term.mkSet
@@ -138,14 +138,15 @@ let lift = Vars.lift
let tclTHEN = Tacticals.New.tclTHEN
let tclTHENLAST = Tacticals.New.tclTHENLAST
let assert_before = Tactics.assert_before
-let vm_cast_no_check t = Proofview.V82.tactic (Tactics.vm_cast_no_check t)
+let vm_cast_no_check t = Tactics.vm_cast_no_check t
+(* let vm_cast_no_check t = Proofview.V82.tactic (Tactics.vm_cast_no_check t) *)
let mk_tactic tac =
- Proofview.Goal.nf_enter (fun gl ->
+ Proofview.Goal.nf_enter {enter = (fun gl ->
let env = Proofview.Goal.env gl in
- let sigma = Proofview.Goal.sigma gl in
+ let sigma = Tacmach.New.project gl in
let t = Proofview.Goal.concl gl in
tac env sigma t
- )
+ )}
let set_evars_tac noc =
mk_tactic (
fun env sigma _ ->