aboutsummaryrefslogtreecommitdiff
path: root/test-suite
diff options
context:
space:
mode:
Diffstat (limited to 'test-suite')
-rw-r--r--test-suite/Makefile47
-rw-r--r--test-suite/README.md75
-rw-r--r--test-suite/bugs/closed/2245.v11
-rw-r--r--test-suite/bugs/closed/2378.v2
-rw-r--r--test-suite/bugs/closed/2850.v2
-rw-r--r--test-suite/bugs/closed/3125.v27
-rw-r--r--test-suite/bugs/closed/3481.v4
-rw-r--r--test-suite/bugs/closed/3513.v20
-rw-r--r--test-suite/bugs/closed/3520.v2
-rw-r--r--test-suite/bugs/closed/3559.v1
-rw-r--r--test-suite/bugs/closed/3662.v2
-rw-r--r--test-suite/bugs/closed/3690.v75
-rw-r--r--test-suite/bugs/closed/4390.v6
-rw-r--r--test-suite/bugs/closed/4717.v37
-rw-r--r--test-suite/bugs/closed/4785.v11
-rw-r--r--test-suite/bugs/closed/4785_compat_85.v46
-rw-r--r--test-suite/bugs/closed/4798.v2
-rw-r--r--test-suite/bugs/closed/4873.v1
-rw-r--r--test-suite/bugs/closed/5215.v286
-rw-r--r--test-suite/bugs/closed/5215_2.v8
-rw-r--r--test-suite/bugs/closed/5286.v9
-rw-r--r--test-suite/bugs/closed/5347.v10
-rw-r--r--test-suite/bugs/closed/5368.v6
-rw-r--r--test-suite/bugs/closed/5532.v15
-rw-r--r--test-suite/bugs/closed/5717.v5
-rw-r--r--test-suite/bugs/closed/5726.v34
-rw-r--r--test-suite/bugs/closed/5761.v126
-rw-r--r--test-suite/bugs/closed/5762.v6
-rw-r--r--test-suite/bugs/closed/5790.v7
-rw-r--r--test-suite/bugs/closed/6129.v9
-rw-r--r--test-suite/bugs/closed/6191.v16
-rw-r--r--test-suite/bugs/closed/6297.v8
-rw-r--r--test-suite/bugs/closed/6313.v64
-rw-r--r--test-suite/bugs/closed/6323.v9
-rw-r--r--test-suite/bugs/closed/6378.v18
-rw-r--r--test-suite/bugs/closed/6490.v4
-rw-r--r--test-suite/bugs/closed/6529.v16
-rw-r--r--test-suite/bugs/closed/6534.v7
-rw-r--r--test-suite/bugs/closed/6617.v34
-rw-r--r--test-suite/bugs/closed/6634.v6
-rw-r--r--test-suite/bugs/closed/6677.v5
-rw-r--r--test-suite/bugs/closed/6774.v7
-rw-r--r--test-suite/bugs/closed/6878.v8
-rw-r--r--test-suite/bugs/closed/6910.v5
-rw-r--r--test-suite/bugs/closed/HoTT_coq_064.v1
-rw-r--r--test-suite/bugs/closed/HoTT_coq_077.v2
-rw-r--r--test-suite/bugs/closed/HoTT_coq_104.v2
-rw-r--r--test-suite/bugs/closed/gh6165.v5
-rw-r--r--test-suite/bugs/closed/gh6384.v5
-rw-r--r--test-suite/bugs/closed/gh6385.v5
-rw-r--r--test-suite/bugs/opened/1596.v1
-rw-r--r--test-suite/bugs/opened/3926.v30
-rw-r--r--test-suite/bugs/opened/4717.v19
-rw-r--r--test-suite/bugs/opened/6393.v11
-rw-r--r--test-suite/bugs/opened/6602.v17
-rw-r--r--test-suite/coq-makefile/.gitignore1
-rw-r--r--test-suite/coq-makefile/emptyprefix/_CoqProject11
-rw-r--r--test-suite/coq-makefile/emptyprefix/_CoqProject.sub3
-rwxr-xr-xtest-suite/coq-makefile/emptyprefix/run.sh17
-rwxr-xr-xtest-suite/coq-makefile/plugin-reach-outside-API-and-fail/run.sh38
-rwxr-xr-xtest-suite/coq-makefile/plugin-reach-outside-API-and-succeed-by-bypassing-the-API/run.sh33
-rw-r--r--test-suite/coq-makefile/quick2vo/_CoqProject10
-rwxr-xr-xtest-suite/coq-makefile/quick2vo/run.sh12
-rwxr-xr-xtest-suite/coq-makefile/template/init.sh26
-rwxr-xr-xtest-suite/coq-makefile/template/path-init.sh5
-rw-r--r--test-suite/coq-makefile/template/src/test.ml41
-rw-r--r--test-suite/coq-makefile/template/src/test_aux.ml2
-rw-r--r--test-suite/coq-makefile/template/src/test_aux.mli2
-rw-r--r--test-suite/coq-makefile/timing/after/time-of-build-after.log.desired3
-rw-r--r--test-suite/coq-makefile/timing/after/time-of-build-before.log.desired3
-rw-r--r--test-suite/coq-makefile/timing/precomputed-time-tests/.gitattributes2
-rwxr-xr-xtest-suite/coq-makefile/timing/precomputed-time-tests/001-correct-diff-sorting-order/run.sh10
-rw-r--r--test-suite/coq-makefile/timing/precomputed-time-tests/001-correct-diff-sorting-order/time-of-build-after.log.in1760
-rw-r--r--test-suite/coq-makefile/timing/precomputed-time-tests/001-correct-diff-sorting-order/time-of-build-before.log.in1662
-rw-r--r--test-suite/coq-makefile/timing/precomputed-time-tests/001-correct-diff-sorting-order/time-of-build-both.log.expected26
-rwxr-xr-xtest-suite/coq-makefile/timing/precomputed-time-tests/002-single-file-sorting/run.sh10
-rw-r--r--test-suite/coq-makefile/timing/precomputed-time-tests/002-single-file-sorting/time-of-build-pretty.log.expected26
-rw-r--r--test-suite/coq-makefile/timing/precomputed-time-tests/002-single-file-sorting/time-of-build.log.in1760
-rwxr-xr-xtest-suite/coq-makefile/timing/precomputed-time-tests/run.sh10
-rwxr-xr-xtest-suite/coq-makefile/timing/run.sh45
-rw-r--r--test-suite/coq-makefile/vio2vo/_CoqProject10
-rwxr-xr-xtest-suite/coq-makefile/vio2vo/run.sh13
-rw-r--r--test-suite/coqchk/include.v11
-rw-r--r--test-suite/coqchk/primproj2.v10
-rw-r--r--test-suite/coqdoc/bug5648.html.out18
-rw-r--r--test-suite/coqdoc/bug5648.tex.out12
-rw-r--r--test-suite/coqdoc/bug5700.html.out2
-rw-r--r--test-suite/coqdoc/bug5700.tex.out12
-rw-r--r--test-suite/coqdoc/links.html.out8
-rw-r--r--test-suite/coqdoc/links.tex.out14
-rw-r--r--test-suite/failure/Tauto.v10
-rw-r--r--test-suite/failure/clash_cons.v10
-rw-r--r--test-suite/failure/fixpoint1.v10
-rw-r--r--test-suite/failure/fixpointeta.v70
-rw-r--r--test-suite/failure/guard.v10
-rw-r--r--test-suite/failure/illtype1.v10
-rw-r--r--test-suite/failure/positivity.v10
-rw-r--r--test-suite/failure/redef.v10
-rw-r--r--test-suite/failure/search.v10
-rw-r--r--test-suite/ideal-features/Apply.v10
-rw-r--r--test-suite/modules/SeveralWith.v12
-rw-r--r--test-suite/modules/WithDefUBinders.v15
-rw-r--r--test-suite/modules/cumpoly.v19
-rw-r--r--test-suite/output-modulo-time/ltacprof.out13
-rw-r--r--test-suite/output-modulo-time/ltacprof_abstract.out17
-rw-r--r--test-suite/output-modulo-time/ltacprof_abstract.v8
-rw-r--r--test-suite/output-modulo-time/ltacprof_cutoff.out40
-rw-r--r--test-suite/output-modulo-time/ltacprof_cutoff.v34
-rw-r--r--test-suite/output/Arguments_renaming.out2
-rw-r--r--test-suite/output/Cases.out51
-rw-r--r--test-suite/output/Cases.v32
-rw-r--r--test-suite/output/ErrorInCanonicalStructures.out5
-rw-r--r--test-suite/output/ErrorInCanonicalStructures.v3
-rw-r--r--test-suite/output/ErrorInCanonicalStructures2.out5
-rw-r--r--test-suite/output/ErrorInCanonicalStructures2.v3
-rw-r--r--test-suite/output/Existentials.out6
-rw-r--r--test-suite/output/Extraction_infix.out20
-rw-r--r--test-suite/output/Extraction_infix.v26
-rw-r--r--test-suite/output/Inductive.out4
-rw-r--r--test-suite/output/Inductive.v4
-rw-r--r--test-suite/output/InvalidDisjunctiveIntro.out16
-rw-r--r--test-suite/output/InvalidDisjunctiveIntro.v18
-rw-r--r--test-suite/output/Load.out6
-rw-r--r--test-suite/output/Load.v7
-rw-r--r--test-suite/output/MExtraction.v12
-rw-r--r--test-suite/output/Notations.out6
-rw-r--r--test-suite/output/Notations.v6
-rw-r--r--test-suite/output/Notations2.out26
-rw-r--r--test-suite/output/Notations2.v34
-rw-r--r--test-suite/output/Notations3.out115
-rw-r--r--test-suite/output/Notations3.v229
-rw-r--r--test-suite/output/PatternsInBinders.out8
-rw-r--r--test-suite/output/PatternsInBinders.v5
-rw-r--r--test-suite/output/PrintInfos.v1
-rw-r--r--test-suite/output/SearchPattern.out43
-rw-r--r--test-suite/output/UnivBinders.out171
-rw-r--r--test-suite/output/UnivBinders.v139
-rw-r--r--test-suite/output/bug5778.out4
-rw-r--r--test-suite/output/bug5778.v7
-rw-r--r--test-suite/output/bug6821.out2
-rw-r--r--test-suite/output/bug6821.v8
-rw-r--r--test-suite/output/inference.out8
-rw-r--r--test-suite/output/load/Load_noproof.v1
-rw-r--r--test-suite/output/load/Load_openproof.v1
-rw-r--r--test-suite/output/load/Load_proof.v2
-rw-r--r--test-suite/output/ltac.out9
-rw-r--r--test-suite/output/ltac.v11
-rw-r--r--test-suite/output/ltac_missing_args.out40
-rw-r--r--test-suite/output/optimize_heap.out8
-rw-r--r--test-suite/output/optimize_heap.v7
-rw-r--r--test-suite/prerequisite/bind_univs.v7
-rw-r--r--test-suite/success/BracketsWithGoalSelector.v16
-rw-r--r--test-suite/success/Check.v12
-rw-r--r--test-suite/success/Field.v10
-rw-r--r--test-suite/success/Hints.v11
-rw-r--r--test-suite/success/Inductive.v6
-rw-r--r--test-suite/success/Notations.v6
-rw-r--r--test-suite/success/Notations2.v36
-rw-r--r--test-suite/success/ShowExtraction.v31
-rw-r--r--test-suite/success/Tauto.v10
-rw-r--r--test-suite/success/TestRefine.v10
-rw-r--r--test-suite/success/Typeclasses.v17
-rw-r--r--test-suite/success/abstract_poly.v2
-rw-r--r--test-suite/success/bteauto.v1
-rw-r--r--test-suite/success/cumulativity.v57
-rw-r--r--test-suite/success/dtauto-let-deps.v24
-rw-r--r--test-suite/success/eauto.v10
-rw-r--r--test-suite/success/eqdecide.v10
-rw-r--r--test-suite/success/extraction.v12
-rw-r--r--test-suite/success/inds_type_sec.v10
-rw-r--r--test-suite/success/induct.v10
-rw-r--r--test-suite/success/letproj.v2
-rw-r--r--test-suite/success/mutual_ind.v10
-rw-r--r--test-suite/success/name_mangling.v192
-rw-r--r--test-suite/success/old_typeclass.v13
-rw-r--r--test-suite/success/polymorphism.v38
-rw-r--r--test-suite/success/primitiveproj.v2
-rw-r--r--test-suite/success/rewrite.v17
-rw-r--r--test-suite/success/shrink_abstract.v2
-rw-r--r--test-suite/success/unfold.v10
-rw-r--r--test-suite/success/unidecls.v121
-rw-r--r--test-suite/success/vm_evars.v23
-rw-r--r--test-suite/typeclasses/NewSetoid.v10
183 files changed, 8448 insertions, 514 deletions
diff --git a/test-suite/Makefile b/test-suite/Makefile
index 61e75fa5d3..8239600b1d 100644
--- a/test-suite/Makefile
+++ b/test-suite/Makefile
@@ -1,10 +1,12 @@
-#######################################################################
-# v # The Coq Proof Assistant / The Coq Development Team #
-# <O___,, # INRIA-Rocquencourt & CNRS-Universite Paris Diderot #
-# \VV/ #############################################################
-# // # This file is distributed under the terms of the #
-# # GNU Lesser General Public License Version 2.1 #
-#######################################################################
+##########################################################################
+## # The Coq Proof Assistant / The Coq Development Team ##
+## v # INRIA, CNRS and contributors - Copyright 1999-2018 ##
+## <O___,, # (see CREDITS file for the list of authors) ##
+## \VV/ ###############################################################
+## // # This file is distributed under the terms of the ##
+## # GNU Lesser General Public License Version 2.1 ##
+## # (see LICENSE file for the text of the license) ##
+##########################################################################
# This is a standalone Makefile to run the test-suite. It can be used
# outside of the Coq source tree (if BIN is overridden).
@@ -40,6 +42,7 @@ coqtopload := $(coqtop) -top Top -async-proofs-cache force -load-vernac-source
coqtopcompile := $(coqtop) -compile
coqdep := $(BIN)coqdep -coqlib $(LIB)
+VERBOSE?=
SHOW := $(if $(VERBOSE),@true,@echo)
HIDE := $(if $(VERBOSE),,@)
REDIR := $(if $(VERBOSE),,> /dev/null 2>&1)
@@ -95,7 +98,8 @@ VSUBSYSTEMS := prerequisite success failure $(BUGS) output \
SUBSYSTEMS := $(VSUBSYSTEMS) misc bugs ide vio coqchk coqwc coq-makefile
PREREQUISITELOG = prerequisite/admit.v.log \
- prerequisite/make_local.v.log prerequisite/make_notation.v.log
+ prerequisite/make_local.v.log prerequisite/make_notation.v.log \
+ prerequisite/bind_univs.v.log
#######################################################################
# Phony targets
@@ -173,10 +177,20 @@ summary.log:
# if not on travis we can get the log files (they're just there for a
# local build, and downloadable on GitLab)
+PRINT_LOGS?=
+TRAVIS?= # special because we want to print travis_fold directives
+ifdef APPVEYOR
+PRINT_LOGS:=APPVEYOR
+else
+ifdef CIRCLECI
+PRINT_LOGS:=CIRCLECI
+endif #CIRCLECI
+endif #APPVEYOR
+
report: summary.log
- $(HIDE)./save-logs.sh
+ $(HIDE)bash save-logs.sh
$(HIDE)if [ -n "${TRAVIS}" ]; then find logs/ -name '*.log' -not -name 'summary.log' -exec 'bash' '-c' 'echo "travis_fold:start:coq.logs.$$(echo '{}' | sed s,/,.,g)"' ';' -exec cat '{}' ';' -exec 'bash' '-c' 'echo "travis_fold:end:coq.logs.$$(echo '{}' | sed s,/,.,g)"' ';'; fi
- $(HIDE)if [ -n "${APPVEYOR}" ]; then find logs/ -name '*.log' -not -name 'summary.log' -exec 'bash' '-c' 'echo {}' ';' -exec cat '{}' ';' -exec 'bash' '-c' 'echo' ';'; fi
+ $(HIDE)if [ -n "${PRINT_LOGS}" ]; then find logs/ -name '*.log' -not -name 'summary.log' -exec 'bash' '-c' 'echo {}' ';' -exec cat '{}' ';' -exec 'bash' '-c' 'echo' ';'; fi
$(HIDE)if grep -q -F 'Error!' summary.log ; then echo FAILURES; grep -F 'Error!' summary.log; false; else echo NO FAILURES; fi
#######################################################################
@@ -311,6 +325,13 @@ $(addsuffix .log,$(wildcard output/*.v)): %.v.log: %.v %.out $(PREREQUISITELOG)
rm $$tmpoutput; \
} > "$@"
+# the expected output for the MExtraction test is
+# /plugins/micromega/micromega.ml except with additional newline
+output/MExtraction.out: ../plugins/micromega/micromega.ml
+ $(SHOW) GEN $@
+ $(HIDE) cp $< $@
+ $(HIDE) echo >> $@
+
$(addsuffix .log,$(wildcard output-modulo-time/*.v)): %.v.log: %.v %.out
@echo "TEST $< $(call get_coq_prog_args_in_parens,"$<")"
$(HIDE){ \
@@ -528,7 +549,7 @@ coq-makefile/%.log : coq-makefile/%/run.sh
$(HIDE)(\
export COQBIN=$(BIN);\
cd coq-makefile/$* && \
- ./run.sh 2>&1; \
+ bash run.sh 2>&1; \
if [ $$? = 0 ]; then \
echo $(log_success); \
echo " $<...Ok"; \
@@ -549,8 +570,8 @@ $(addsuffix .log,$(wildcard coqdoc/*.v)): %.v.log: %.v %.html.out %.tex.out $(PR
$(coqc) -R coqdoc Coqdoc $* 2>&1; \
cd coqdoc; \
f=`basename $*`; \
- $(coqdoc) -R . Coqdoc -coqlib http://coq.inria.fr/stdlib --html $$f.v; \
- $(coqdoc) -R . Coqdoc -coqlib http://coq.inria.fr/stdlib --latex $$f.v; \
+ $(coqdoc) -utf8 -R . Coqdoc -coqlib http://coq.inria.fr/stdlib --html $$f.v; \
+ $(coqdoc) -utf8 -R . Coqdoc -coqlib http://coq.inria.fr/stdlib --latex $$f.v; \
diff -u --strip-trailing-cr $$f.html.out Coqdoc.$$f.html 2>&1; R=$$?; times; \
grep -v "^%%" Coqdoc.$$f.tex | diff -u --strip-trailing-cr $$f.tex.out - 2>&1; S=$$?; times; \
if [ $$R = 0 -a $$S = 0 ]; then \
diff --git a/test-suite/README.md b/test-suite/README.md
new file mode 100644
index 0000000000..1d1195646e
--- /dev/null
+++ b/test-suite/README.md
@@ -0,0 +1,75 @@
+# Coq Test Suite
+
+The test suite can be run from the Coq root directory by `make test-suite`.
+This does a clean step first, so if you've already run it, then change something,
+you'll have to do a lot of work again.
+
+If you run `make` from the `test-suite` directory, there is no clean step.
+You can also run `make aaa/bbb/ccc.v.log` to build the log for one test,
+or `make ddd` where `ddd` is on of the sub-directories of `test-suite`
+to just build the logs for that directory.
+In these cases, a summary is not printed, but can be generated by `make summary`.
+
+`make -B` can be used to rerun tests ( -B meaning always remake).
+
+From the `test-suite` directory, `make report` (included in `make
+all`) prints a summary of which tests failed using the produced log
+files (this still works when only some tests are built as described
+above). Setting the `PRINT_LOGS` variable will make it print the logs
+of the failing tests.
+
+For instance, running the following in the `test-suite` directory:
+
+```bash
+$ echo Fail. > success/fail.v # make some failing test
+
+$ make
+TEST prerequisite/make_local.v
+...
+TEST success/fail.v
+...
+BUILDING SUMMARY FILE
+FAILURES
+ success/fail.v...Error! (should be accepted)
+Makefile:189: recipe for target 'all failed
+make: *** [report] Error 1
+
+$ make report PRINT_LOGS=1
+BUILDING SUMMARY FILE
+logs/success/fail.v.log
+==========> TESTING success/fail.v <==========
+Welcome to Coq (version information)
+Skipping rcfile loading.
+File "/path/to/success/fail.v", line 1, characters 4-5:
+Error:
+Syntax error: [vernac:Vernac.vernac_control] expected after 'Fail' (in [vernac:Vernac.vernac_control]).
+
+0m0.000000s 0m0.000000s
+0m0.040000s 0m0.000000s
+==========> FAILURE <==========
+ success/fail.v...Error! (should be accepted)
+
+FAILURES
+ success/fail.v...Error! (should be accepted)
+Makefile:189: recipe for target 'report' failed
+make: *** [report] Error 1
+
+$ echo 'Comments "foo".' > success/fail.v
+
+$ make
+TEST success/fail.v
+BUILDING SUMMARY FILE
+NO FAILURES
+```
+
+See [`test-suite/Makefile`](/test-suite/Makefile) for more information.
+
+## Adding a test
+
+Regression tests for closed bugs should be added to `test-suite/bugs/closed`, as `1234.v` where `1234` is the bug number.
+Files in this directory are tested for successful compilation.
+When you fix a bug, you should usually add a regression test here as well.
+
+The error "(bug seems to be opened, please check)" when running `make test-suite` means that a test in `bugs/closed` failed to compile.
+
+There are also output tests in `test-suite/output` which consist of a `.v` file and a `.out` file with the expected output.
diff --git a/test-suite/bugs/closed/2245.v b/test-suite/bugs/closed/2245.v
new file mode 100644
index 0000000000..f0162f3b27
--- /dev/null
+++ b/test-suite/bugs/closed/2245.v
@@ -0,0 +1,11 @@
+Module Type Test.
+
+Section Sec.
+Variables (A:Type).
+Context (B:Type).
+End Sec.
+
+Fail Check B. (* used to be found !!! *)
+Fail Check A.
+
+End Test.
diff --git a/test-suite/bugs/closed/2378.v b/test-suite/bugs/closed/2378.v
index 85ad41d1cf..23a58501f3 100644
--- a/test-suite/bugs/closed/2378.v
+++ b/test-suite/bugs/closed/2378.v
@@ -505,8 +505,6 @@ Qed.
Require Export Coq.Logic.FunctionalExtensionality.
Print PLanguage.
-Unset Standard Proposition Elimination Names.
-
Program Definition PTransfo l1 l2 (tr: Transformation l1 l2) (h: isSharedTransfo l1 l2 tr):
Transformation (PLanguage l1) (PLanguage l2) :=
mkTransformation (PLanguage l1) (PLanguage l2)
diff --git a/test-suite/bugs/closed/2850.v b/test-suite/bugs/closed/2850.v
deleted file mode 100644
index 64a93aeb00..0000000000
--- a/test-suite/bugs/closed/2850.v
+++ /dev/null
@@ -1,2 +0,0 @@
-Definition id {A} (x : A) := x.
-Fail Compute id.
diff --git a/test-suite/bugs/closed/3125.v b/test-suite/bugs/closed/3125.v
new file mode 100644
index 0000000000..797146174d
--- /dev/null
+++ b/test-suite/bugs/closed/3125.v
@@ -0,0 +1,27 @@
+(* Not considering singleton template-polymorphic inductive types as
+ propositions for injection/inversion *)
+
+(* This is also #4560 and #6273 *)
+
+Inductive foo := foo_1.
+
+Goal forall (a b : foo), Some a = Some b -> a = b.
+Proof.
+ intros a b H.
+ inversion H.
+ reflexivity.
+Qed.
+
+(* Check that Prop is not concerned *)
+
+Inductive bar : Prop := bar_1.
+
+Goal
+ forall (a b : bar),
+ Some a = Some b ->
+ a = b.
+Proof.
+ intros a b H.
+ inversion H.
+ Fail reflexivity.
+Abort.
diff --git a/test-suite/bugs/closed/3481.v b/test-suite/bugs/closed/3481.v
index 89d476dcb1..38f03b166b 100644
--- a/test-suite/bugs/closed/3481.v
+++ b/test-suite/bugs/closed/3481.v
@@ -3,7 +3,7 @@ Set Implicit Arguments.
Require Import Logic.
Module NonPrim.
-Local Set Record Elimination Schemes.
+Local Set Nonrecursive Elimination Schemes.
Record prodwithlet (A B : Type) : Type :=
pair' { fst : A; fst' := fst; snd : B }.
@@ -21,7 +21,7 @@ End NonPrim.
Global Set Universe Polymorphism.
Global Set Asymmetric Patterns.
-Local Set Record Elimination Schemes.
+Local Set Nonrecursive Elimination Schemes.
Local Set Primitive Projections.
Record prod (A B : Type) : Type :=
diff --git a/test-suite/bugs/closed/3513.v b/test-suite/bugs/closed/3513.v
index 5adc48215e..1f0f3b0da9 100644
--- a/test-suite/bugs/closed/3513.v
+++ b/test-suite/bugs/closed/3513.v
@@ -69,26 +69,6 @@ Goal forall (T : Type) (O0 : T -> OPred) (O1 : T -> PointedOPred)
refine (P _ _)
end; unfold Basics.flip.
Focus 2.
- Set Typeclasses Debug.
- Set Typeclasses Legacy Resolution.
- apply reflexivity.
- (* Debug: 1.1: apply @IsPointed_catOP on
-(IsPointed (exists x0 : Actions, (catOP ?Goal O2 : OPred) x0))
-Debug: 1.1.1.1: apply OPred_inhabited on (IsPointed (exists x0 : Actions, ?Goal x0))
-Debug: 1.1.2.1: apply OPred_inhabited on (IsPointed (exists x : Actions, O2 x))
-Debug: 2.1: apply @Equivalence_Reflexive on (Reflexive lentails)
-Debug: 2.1.1: no match for (Equivalence lentails) , 5 possibilities
-Debug: Backtracking after apply @Equivalence_Reflexive
-Debug: 2.2: apply @PreOrder_Reflexive on (Reflexive lentails)
-Debug: 2.2.1.1: apply @lentailsPre on (PreOrder lentails)
-Debug: 2.2.1.1.1.1: apply ILFun_ILogic on (ILogic OPred)
-*)
- Undo. Unset Typeclasses Legacy Resolution.
- Test Typeclasses Unique Solutions.
- Test Typeclasses Unique Instances.
- Show Existentials.
- Set Typeclasses Debug Verbosity 2.
- Set Printing All.
(* As in 8.5, allow a shelved subgoal to remain *)
apply reflexivity.
diff --git a/test-suite/bugs/closed/3520.v b/test-suite/bugs/closed/3520.v
index c981207e6b..ea122e521f 100644
--- a/test-suite/bugs/closed/3520.v
+++ b/test-suite/bugs/closed/3520.v
@@ -3,7 +3,7 @@ Set Primitive Projections.
Record foo (A : Type) :=
{ bar : Type ; baz := Set; bad : baz = bar }.
-Set Record Elimination Schemes.
+Set Nonrecursive Elimination Schemes.
Record notprim : Prop :=
{ irrel : True; relevant : nat }.
diff --git a/test-suite/bugs/closed/3559.v b/test-suite/bugs/closed/3559.v
index da12b68689..5210b27032 100644
--- a/test-suite/bugs/closed/3559.v
+++ b/test-suite/bugs/closed/3559.v
@@ -65,6 +65,7 @@ Axiom path_iff_hprop_uncurried : forall `{IsHProp A, IsHProp B}, (A <-> B) -> A
= B.
Inductive V : Type@{U'} := | set {A : Type@{U}} (f : A -> V) : V.
Axiom is0trunc_V : IsTrunc (trunc_S (trunc_S minus_two)) V.
+Existing Instance is0trunc_V.
Axiom bisimulation : V@{U' U} -> V@{U' U} -> hProp@{U'}.
Axiom bisimulation_refl : forall (v : V), bisimulation v v.
Axiom bisimulation_eq : forall (u v : V), bisimulation u v -> u = v.
diff --git a/test-suite/bugs/closed/3662.v b/test-suite/bugs/closed/3662.v
index bd53389b4f..b8754bce98 100644
--- a/test-suite/bugs/closed/3662.v
+++ b/test-suite/bugs/closed/3662.v
@@ -1,6 +1,6 @@
Set Primitive Projections.
Set Implicit Arguments.
-Set Record Elimination Schemes.
+Set Nonrecursive Elimination Schemes.
Record prod A B := pair { fst : A ; snd : B }.
Definition f : Set -> Type := fun x => x.
diff --git a/test-suite/bugs/closed/3690.v b/test-suite/bugs/closed/3690.v
index fd9640b890..fa30132ab5 100644
--- a/test-suite/bugs/closed/3690.v
+++ b/test-suite/bugs/closed/3690.v
@@ -3,49 +3,44 @@ Set Printing Universes.
Set Universe Polymorphism.
Definition foo (a := Type) (b := Type) (c := Type) := Type.
Print foo.
-(* foo =
-let a := Type@{Top.1} in
-let b := Type@{Top.2} in let c := Type@{Top.3} in Type@{Top.4}
- : Type@{Top.4+1}
-(* Top.1
- Top.2
- Top.3
- Top.4 |= *) *)
-Check @foo. (* foo@{Top.5 Top.6 Top.7
-Top.8}
- : Type@{Top.8+1}
-(* Top.5
- Top.6
- Top.7
- Top.8 |= *) *)
+(* foo@{Top.2 Top.3 Top.5 Top.6 Top.8 Top.9 Top.10} =
+let a := Type@{Top.2} in let b := Type@{Top.5} in let c := Type@{Top.8} in Type@{Top.10}
+ : Type@{Top.10+1}
+(* Top.2 Top.3 Top.5 Top.6 Top.8 Top.9 Top.10 |= Top.2 < Top.3
+ Top.5 < Top.6
+ Top.8 < Top.9
+ *)
+ *)
+Check @foo. (* foo@{Top.11 Top.12 Top.13 Top.14 Top.15 Top.16
+Top.17}
+ : Type@{Top.17+1}
+(* Top.11 Top.12 Top.13 Top.14 Top.15 Top.16 Top.17 |= Top.11 < Top.12
+ Top.13 < Top.14
+ Top.15 < Top.16
+ *)
+ *)
Definition bar := ltac:(let t := eval compute in foo in exact t).
-Check @bar. (* bar@{Top.13 Top.14 Top.15
-Top.16}
- : Type@{Top.16+1}
-(* Top.13
- Top.14
- Top.15
- Top.16 |= *) *)
-(* The following should fail, since [bar] should only need one universe. *)
-Check @bar@{i j}.
+Check @bar. (* bar@{Top.27}
+ : Type@{Top.27+1}
+(* Top.27 |= *) *)
+
+Check @bar@{i}.
Definition baz (a := Type) (b := Type : a) (c := Type : b) := a -> c.
Definition qux := Eval compute in baz.
-Check @qux. (* qux@{Top.24 Top.25
-Top.26}
- : Type@{max(Top.24+1, Top.26+1)}
-(* Top.24
- Top.25
- Top.26 |= Top.25 < Top.24
- Top.26 < Top.25
- *) *)
-Print qux. (* qux =
-Type@{Top.21} -> Type@{Top.23}
- : Type@{max(Top.21+1, Top.23+1)}
-(* Top.21
- Top.22
- Top.23 |= Top.22 < Top.21
- Top.23 < Top.22
- *) *)
+Check @qux. (* qux@{Top.38 Top.39 Top.40
+Top.41}
+ : Type@{max(Top.38+1, Top.41+1)}
+(* Top.38 Top.39 Top.40 Top.41 |= Top.38 < Top.39
+ Top.40 < Top.38
+ Top.41 < Top.40
+ *) *)
+Print qux. (* qux@{Top.34 Top.35 Top.36 Top.37} =
+Type@{Top.34} -> Type@{Top.37}
+ : Type@{max(Top.34+1, Top.37+1)}
+(* Top.34 Top.35 Top.36 Top.37 |= Top.34 < Top.35
+ Top.36 < Top.34
+ Top.37 < Top.36
+ *) *)
Fail Check @qux@{Set Set}.
Check @qux@{Type Type Type Type}.
(* [qux] should only need two universes *)
diff --git a/test-suite/bugs/closed/4390.v b/test-suite/bugs/closed/4390.v
index a96a137001..c069b2d9dc 100644
--- a/test-suite/bugs/closed/4390.v
+++ b/test-suite/bugs/closed/4390.v
@@ -8,16 +8,16 @@ Universe i.
End foo.
End M.
-Check Type@{i}.
+Check Type@{M.i}.
(* Succeeds *)
Fail Check Type@{j}.
(* Error: Undeclared universe: j *)
-Definition foo@{j} : Type@{i} := Type@{j}.
+Definition foo@{j} : Type@{M.i} := Type@{j}.
(* ok *)
End A.
-
+Import A. Import M.
Set Universe Polymorphism.
Fail Universes j.
Monomorphic Universe j.
diff --git a/test-suite/bugs/closed/4717.v b/test-suite/bugs/closed/4717.v
new file mode 100644
index 0000000000..1507fa4bf0
--- /dev/null
+++ b/test-suite/bugs/closed/4717.v
@@ -0,0 +1,37 @@
+(* Omega being smarter on recognizing nat and Z *)
+
+Require Import Omega.
+
+Definition nat' := nat.
+
+Theorem le_not_eq_lt : forall (n m:nat),
+ n <= m ->
+ n <> m :> nat' ->
+ n < m.
+Proof.
+ intros.
+ omega.
+Qed.
+
+Goal forall (x n : nat'), x = x + n - n.
+Proof.
+ intros.
+ omega.
+Qed.
+
+Require Import ZArith ROmega.
+
+Open Scope Z_scope.
+
+Definition Z' := Z.
+
+Theorem Zle_not_eq_lt : forall n m,
+ n <= m ->
+ n <> m :> Z' ->
+ n < m.
+Proof.
+ intros.
+ omega.
+ Undo.
+ romega.
+Qed.
diff --git a/test-suite/bugs/closed/4785.v b/test-suite/bugs/closed/4785.v
index c3c97d3f59..0d347b262d 100644
--- a/test-suite/bugs/closed/4785.v
+++ b/test-suite/bugs/closed/4785.v
@@ -1,5 +1,4 @@
Require Coq.Lists.List Coq.Vectors.Vector.
-Require Coq.Compat.Coq85.
Module A.
Import Coq.Lists.List Coq.Vectors.Vector.
@@ -21,12 +20,10 @@ Delimit Scope mylist_scope with mylist.
Bind Scope mylist_scope with mylist.
Arguments mynil {_}, _.
Arguments mycons {_} _ _.
-Notation " [] " := mynil (compat "8.5") : mylist_scope.
Notation " [ ] " := mynil (format "[ ]") : mylist_scope.
Notation " [ x ] " := (mycons x nil) : mylist_scope.
Notation " [ x ; y ; .. ; z ] " := (mycons x (mycons y .. (mycons z nil) ..)) : mylist_scope.
-Import Coq.Compat.Coq85.
Locate Module VectorNotations.
Import VectorDef.VectorNotations.
@@ -35,11 +32,3 @@ Check []%mylist : mylist _.
Check [ ]%mylist : mylist _.
Check [ ]%list : list _.
End A.
-
-Module B.
-Import Coq.Compat.Coq85.
-
-Goal True.
- idtac; []. (* Check that importing the compat file doesn't break the [ | .. | ] syntax of Ltac *)
-Abort.
-End B.
diff --git a/test-suite/bugs/closed/4785_compat_85.v b/test-suite/bugs/closed/4785_compat_85.v
deleted file mode 100644
index bbb34f465c..0000000000
--- a/test-suite/bugs/closed/4785_compat_85.v
+++ /dev/null
@@ -1,46 +0,0 @@
-(* -*- coq-prog-args: ("-compat" "8.5") -*- *)
-Require Coq.Lists.List Coq.Vectors.Vector.
-Require Coq.Compat.Coq85.
-
-Module A.
-Import Coq.Lists.List Coq.Vectors.Vector.
-Import ListNotations.
-Check [ ]%list : list _.
-Import VectorNotations ListNotations.
-Delimit Scope vector_scope with vector.
-Check [ ]%vector : Vector.t _ _.
-Check []%vector : Vector.t _ _.
-Check [ ]%list : list _.
-Fail Check []%list : list _.
-
-Goal True.
- idtac; [ ]. (* Note that vector notations break the [ | .. | ] syntax of Ltac *)
-Abort.
-
-Inductive mylist A := mynil | mycons (x : A) (xs : mylist A).
-Delimit Scope mylist_scope with mylist.
-Bind Scope mylist_scope with mylist.
-Arguments mynil {_}, _.
-Arguments mycons {_} _ _.
-Notation " [] " := mynil (compat "8.5") : mylist_scope.
-Notation " [ ] " := mynil (format "[ ]") : mylist_scope.
-Notation " [ x ] " := (mycons x nil) : mylist_scope.
-Notation " [ x ; y ; .. ; z ] " := (mycons x (mycons y .. (mycons z nil) ..)) : mylist_scope.
-
-Import Coq.Compat.Coq85.
-Locate Module VectorNotations.
-Import VectorDef.VectorNotations.
-
-Check []%vector : Vector.t _ _.
-Check []%mylist : mylist _.
-Check [ ]%mylist : mylist _.
-Check [ ]%list : list _.
-End A.
-
-Module B.
-Import Coq.Compat.Coq85.
-
-Goal True.
- idtac; []. (* Check that importing the compat file doesn't break the [ | .. | ] syntax of Ltac *)
-Abort.
-End B.
diff --git a/test-suite/bugs/closed/4798.v b/test-suite/bugs/closed/4798.v
index dbc3d46fce..6f2bcb9685 100644
--- a/test-suite/bugs/closed/4798.v
+++ b/test-suite/bugs/closed/4798.v
@@ -1,3 +1,3 @@
Check match 2 with 0 => 0 | S n => n end.
-Notation "|" := 1 (compat "8.4").
+Notation "|" := 1 (compat "8.6").
Check match 2 with 0 => 0 | S n => n end. (* fails *)
diff --git a/test-suite/bugs/closed/4873.v b/test-suite/bugs/closed/4873.v
index 3be36d8475..39299883ad 100644
--- a/test-suite/bugs/closed/4873.v
+++ b/test-suite/bugs/closed/4873.v
@@ -1,6 +1,5 @@
Require Import Coq.Classes.Morphisms.
Require Import Relation_Definitions.
-Require Import Coq.Compat.Coq85.
Fixpoint tuple' T n : Type :=
match n with
diff --git a/test-suite/bugs/closed/5215.v b/test-suite/bugs/closed/5215.v
new file mode 100644
index 0000000000..ecf5291596
--- /dev/null
+++ b/test-suite/bugs/closed/5215.v
@@ -0,0 +1,286 @@
+Require Import Coq.Logic.FunctionalExtensionality.
+Require Import Coq.Program.Tactics.
+
+Global Set Primitive Projections.
+
+Global Set Universe Polymorphism.
+
+Global Unset Universe Minimization ToSet.
+
+Class Category : Type :=
+{
+ Obj : Type;
+ Hom : Obj -> Obj -> Type;
+ compose : forall {a b c : Obj}, (Hom a b) -> (Hom b c) -> (Hom a c);
+ id : forall {a : Obj}, Hom a a;
+}.
+
+Arguments Obj {_}, _.
+Arguments id {_ _}, {_} _, _ _.
+Arguments Hom {_} _ _, _ _ _.
+Arguments compose {_} {_ _ _} _ _, _ {_ _ _} _ _, _ _ _ _ _ _.
+
+Coercion Obj : Category >-> Sortclass.
+
+Definition Opposite (C : Category) : Category :=
+{|
+
+ Obj := Obj C;
+ Hom := fun a b => Hom b a;
+ compose :=
+ fun a b c (f : Hom b a) (g : Hom c b) => compose C c b a g f;
+ id := fun c => id C c;
+|}.
+
+Record Functor (C C' : Category) : Type :=
+{
+ FO : C -> C';
+ FA : forall {a b}, Hom a b -> Hom (FO a) (FO b);
+}.
+
+Arguments FO {_ _} _ _.
+Arguments FA {_ _} _ {_ _} _, {_ _} _ _ _ _.
+
+Section Opposite_Functor.
+ Context {C D : Category} (F : Functor C D).
+
+ Program Definition Opposite_Functor : (Functor (Opposite C) (Opposite D)) :=
+ {|
+ FO := FO F;
+ FA := fun _ _ h => FA F h;
+ |}.
+
+End Opposite_Functor.
+
+Section Functor_Compose.
+ Context {C C' C'' : Category} (F : Functor C C') (F' : Functor C' C'').
+
+ Program Definition Functor_compose : Functor C C'' :=
+ {|
+ FO := fun c => FO F' (FO F c);
+ FA := fun c d f => FA F' (FA F f)
+ |}.
+
+End Functor_Compose.
+
+Section Algebras.
+ Context {C : Category} (T : Functor C C).
+ Record Algebra : Type :=
+ {
+ Alg_Carrier : C;
+ Constructors : Hom (FO T Alg_Carrier) Alg_Carrier
+ }.
+
+ Record Algebra_Hom (alg alg' : Algebra) : Type :=
+ {
+ Alg_map : Hom (Alg_Carrier alg) (Alg_Carrier alg');
+
+ Alg_map_com : compose (FA T Alg_map) (Constructors alg')
+ = compose (Constructors alg) Alg_map
+ }.
+
+ Arguments Alg_map {_ _} _.
+ Arguments Alg_map_com {_ _} _.
+ Program Definition Algebra_Hom_compose
+ {alg alg' alg'' : Algebra}
+ (h : Algebra_Hom alg alg')
+ (h' : Algebra_Hom alg' alg'')
+ : Algebra_Hom alg alg''
+ :=
+ {|
+ Alg_map := compose (Alg_map h) (Alg_map h')
+ |}.
+
+ Next Obligation. Proof. Admitted.
+
+ Lemma Algebra_Hom_eq_simplify (alg alg' : Algebra)
+ (ah ah' : Algebra_Hom alg alg')
+ : (Alg_map ah) = (Alg_map ah') -> ah = ah'.
+ Proof. Admitted.
+
+ Program Definition Algebra_Hom_id (alg : Algebra) : Algebra_Hom alg alg :=
+ {|
+ Alg_map := id
+ |}.
+
+ Next Obligation. Admitted.
+
+ Definition Algebra_Cat : Category :=
+ {|
+ Obj := Algebra;
+ Hom := Algebra_Hom;
+ compose := @Algebra_Hom_compose;
+ id := Algebra_Hom_id;
+ |}.
+
+End Algebras.
+
+Arguments Alg_Carrier {_ _} _.
+Arguments Constructors {_ _} _.
+Arguments Algebra_Hom {_ _} _ _.
+Arguments Alg_map {_ _ _ _} _.
+Arguments Alg_map_com {_ _ _ _} _.
+Arguments Algebra_Hom_id {_ _} _.
+
+Section CoAlgebras.
+ Context {C : Category}.
+
+ Definition CoAlgebra (T : Functor C C) :=
+ @Algebra (Opposite C) (Opposite_Functor T).
+
+ Definition CoAlgebra_Hom {T : Functor C C} :=
+ @Algebra_Hom (Opposite C) (Opposite_Functor T).
+
+ Definition CoAlgebra_Hom_id {T : Functor C C} :=
+ @Algebra_Hom_id (Opposite C) (Opposite_Functor T).
+
+ Definition CoAlgebra_Cat (T : Functor C C) :=
+ @Algebra_Cat (Opposite C) (Opposite_Functor T).
+
+End CoAlgebras.
+
+Program Definition Type_Cat : Category :=
+{|
+ Obj := Type;
+ Hom := (fun A B => A -> B);
+ compose := fun A B C (g : A -> B) (h : B -> C) => fun (x : A) => h (g x);
+ id := fun A => fun x => x
+|}.
+
+Local Obligation Tactic := idtac.
+
+Program Definition Prod_Cat (C C' : Category) : Category :=
+{|
+ Obj := C * C';
+ Hom :=
+ fun a b =>
+ ((Hom (fst a) (fst b)) * (Hom (snd a) (snd b)))%type;
+ compose :=
+ fun a b c f g =>
+ ((compose (fst f) (fst g)), (compose (snd f)(snd g)));
+ id := fun c => (id, id)
+|}.
+
+Class Terminal (C : Category) : Type :=
+{
+ terminal : C;
+ t_morph : forall (d : Obj), Hom d terminal;
+ t_morph_unique : forall (d : Obj) (f g : (Hom d terminal)), f = g
+}.
+
+Arguments terminal {_} _.
+Arguments t_morph {_} _ _.
+Arguments t_morph_unique {_} _ _ _ _.
+
+Coercion terminal : Terminal >-> Obj.
+
+Definition Initial (C : Category) := Terminal (Opposite C).
+Existing Class Initial.
+
+Record Product {C : Category} (c d : C) : Type :=
+{
+ product : C;
+ Pi_1 : Hom product c;
+ Pi_2 : Hom product d;
+ Prod_morph_ex : forall (p' : Obj) (r1 : Hom p' c) (r2 : Hom p' d), (Hom p' product);
+}.
+
+Arguments Product _ _ _, {_} _ _.
+
+Arguments Pi_1 {_ _ _ _}, {_ _ _} _.
+Arguments Pi_2 {_ _ _ _}, {_ _ _} _.
+Arguments Prod_morph_ex {_ _ _} _ _ _ _.
+
+Coercion product : Product >-> Obj.
+
+Definition Has_Products (C : Category) : Type := forall a b, Product a b.
+
+Existing Class Has_Products.
+
+Program Definition Prod_Func (C : Category) {HP : Has_Products C}
+ : Functor (Prod_Cat C C) C :=
+{|
+ FO := fun x => HP (fst x) (snd x);
+ FA := fun a b f => Prod_morph_ex _ _ (compose Pi_1 (fst f)) (compose Pi_2 (snd f))
+|}.
+
+Arguments Prod_Func _ _, _ {_}.
+
+Definition Sum (C : Category) := @Product (Opposite C).
+
+Arguments Sum _ _ _, {_} _ _.
+
+Definition Has_Sums (C : Category) : Type := forall (a b : C), (Sum a b).
+
+Existing Class Has_Sums.
+
+Program Definition sum_Sum (A B : Type) : (@Sum Type_Cat A B) :=
+{|
+ product := (A + B)%type;
+ Prod_morph_ex :=
+ fun (p' : Type)
+ (r1 : A -> p')
+ (r2 : B -> p')
+ (X : A + B) =>
+ match X return p' with
+ | inl a => r1 a
+ | inr b => r2 b
+ end
+|}.
+Next Obligation. simpl; auto. Defined.
+Next Obligation. simpl; auto. Defined.
+
+Program Instance Type_Cat_Has_Sums : Has_Sums Type_Cat := sum_Sum.
+
+Definition Sum_Func {C : Category} {HS : Has_Sums C} :
+ Functor (Prod_Cat C C) C := Opposite_Functor (Prod_Func (Opposite C) HS).
+
+Arguments Sum_Func _ _, _ {_}.
+
+Program Instance unit_Type_term : Terminal Type_Cat :=
+{
+ terminal := unit;
+ t_morph := fun _ _=> tt
+}.
+
+Next Obligation. Proof. Admitted.
+
+Program Definition term_id : Functor Type_Cat (Prod_Cat Type_Cat Type_Cat) :=
+{|
+ FO := fun a => (@terminal Type_Cat _, a);
+ FA := fun a b f => (@id _ (@terminal Type_Cat _), f)
+|}.
+
+Definition S_nat_func : Functor Type_Cat Type_Cat :=
+ Functor_compose term_id (Sum_Func Type_Cat _).
+
+Definition S_nat_alg_cat := Algebra_Cat S_nat_func.
+
+CoInductive CoNat : Set :=
+ | CoO : CoNat
+ | CoS : CoNat -> CoNat
+.
+
+Definition S_nat_coalg_cat := @CoAlgebra_Cat Type_Cat S_nat_func.
+
+Set Printing Universes.
+Program Definition CoNat_alg_term : Initial S_nat_coalg_cat :=
+{|
+ terminal := _;
+ t_morph := _
+|}.
+
+Next Obligation. Admitted.
+Next Obligation. Admitted.
+
+Axiom Admit : False.
+
+Next Obligation.
+Proof.
+ intros d f g.
+ assert(H1 := (@Alg_map_com _ _ _ _ f)). clear.
+ assert (inl tt = inr tt) by (exfalso; apply Admit).
+ discriminate.
+ all: exfalso; apply Admit.
+ Show Universes.
+Qed.
diff --git a/test-suite/bugs/closed/5215_2.v b/test-suite/bugs/closed/5215_2.v
new file mode 100644
index 0000000000..399947f00f
--- /dev/null
+++ b/test-suite/bugs/closed/5215_2.v
@@ -0,0 +1,8 @@
+Require Import Coq.Program.Tactics.
+Set Universe Polymorphism.
+Set Printing Universes.
+Definition typ := Type.
+
+Program Definition foo : typ := _ -> _.
+Next Obligation. Admitted.
+Next Obligation. exact typ. Show Proof. Show Universes. Defined.
diff --git a/test-suite/bugs/closed/5286.v b/test-suite/bugs/closed/5286.v
new file mode 100644
index 0000000000..98d4e5c968
--- /dev/null
+++ b/test-suite/bugs/closed/5286.v
@@ -0,0 +1,9 @@
+Set Primitive Projections.
+
+CoInductive R := mkR { p : unit }.
+
+CoFixpoint foo := mkR tt.
+
+Check (eq_refl tt : p foo = tt).
+Check (eq_refl tt <: p foo = tt).
+Check (eq_refl tt <<: p foo = tt).
diff --git a/test-suite/bugs/closed/5347.v b/test-suite/bugs/closed/5347.v
new file mode 100644
index 0000000000..9267b3eb69
--- /dev/null
+++ b/test-suite/bugs/closed/5347.v
@@ -0,0 +1,10 @@
+Set Universe Polymorphism.
+
+Axiom X : Type.
+(* Used to declare [x0@{u1 u2} : X@{u1}] and [x1@{} : X@{u2}] leaving
+ the type of x1 with undeclared universes. After PR #891 this should
+ error at declaration time. *)
+Axiom x₀ x₁ : X.
+Axiom Xᵢ : X -> Type.
+
+Check Xᵢ x₁. (* conversion test raised anomaly universe undefined *)
diff --git a/test-suite/bugs/closed/5368.v b/test-suite/bugs/closed/5368.v
new file mode 100644
index 0000000000..410fe1707d
--- /dev/null
+++ b/test-suite/bugs/closed/5368.v
@@ -0,0 +1,6 @@
+Set Universe Polymorphism.
+
+Record cantype := {T:Type; op:T -> unit}.
+Canonical Structure test (P:Type) := {| T := P -> Type; op := fun _ => tt|}.
+
+Check (op _ ((fun (_:unit) => Set):_)).
diff --git a/test-suite/bugs/closed/5532.v b/test-suite/bugs/closed/5532.v
new file mode 100644
index 0000000000..ee5446e548
--- /dev/null
+++ b/test-suite/bugs/closed/5532.v
@@ -0,0 +1,15 @@
+(* A wish granted by the new support for patterns in notations *)
+
+Local Notation mkmatch0 e p
+ := match e with
+ | p => true
+ | _ => false
+ end.
+Local Notation "'mkmatch' [[ e ]] [[ p ]]"
+ := match e with
+ | p => true
+ | _ => false
+ end
+ (at level 0, p pattern).
+Check mkmatch0 _ ((0, 0)%core).
+Check mkmatch [[ _ ]] [[ ((0, 0)%core) ]].
diff --git a/test-suite/bugs/closed/5717.v b/test-suite/bugs/closed/5717.v
new file mode 100644
index 0000000000..1bfd917d25
--- /dev/null
+++ b/test-suite/bugs/closed/5717.v
@@ -0,0 +1,5 @@
+Definition foo@{i} (A : Type@{i}) (l : list A) :=
+ match l with
+ | nil => nil
+ | cons _ t => t
+ end.
diff --git a/test-suite/bugs/closed/5726.v b/test-suite/bugs/closed/5726.v
new file mode 100644
index 0000000000..53ef473572
--- /dev/null
+++ b/test-suite/bugs/closed/5726.v
@@ -0,0 +1,34 @@
+Set Universe Polymorphism.
+Set Printing Universes.
+
+Module GlobalReference.
+
+ Definition type' := Type.
+ Notation type := type'.
+ Check type@{Set}.
+
+End GlobalReference.
+
+Module TypeLiteral.
+
+ Notation type := Type.
+ Check type@{Set}.
+ Check type@{Prop}.
+
+End TypeLiteral.
+
+Module ExplicitSort.
+ Monomorphic Universe u.
+ Notation foo := Type@{u}.
+ Fail Check foo@{Set}.
+ Fail Check foo@{u}.
+
+ Notation bar := Type.
+ Check bar@{u}.
+End ExplicitSort.
+
+Module PropNotationUnsupported.
+ Notation foo := Prop.
+ Fail Check foo@{Set}.
+ Fail Check foo@{Type}.
+End PropNotationUnsupported.
diff --git a/test-suite/bugs/closed/5761.v b/test-suite/bugs/closed/5761.v
new file mode 100644
index 0000000000..6f28d1981a
--- /dev/null
+++ b/test-suite/bugs/closed/5761.v
@@ -0,0 +1,126 @@
+Set Primitive Projections.
+Record mix := { a : nat ; b : a = a ; c : nat ; d : a = c ; e : nat ; f : nat }.
+Ltac strip_args T ctor :=
+ lazymatch type of ctor with
+ | context[T]
+ => match eval cbv beta in ctor with
+ | ?ctor _ => strip_args T ctor
+ | _ => ctor
+ end
+ end.
+Ltac get_ctor T :=
+ let full_ctor := constr:(ltac:(let x := fresh in intro x; econstructor; apply
+x) : T -> T) in
+ let ctor := constr:(fun x : T => ltac:(let v := strip_args T (full_ctor x) in
+exact v)) in
+ lazymatch ctor with
+ | fun _ => ?ctor => ctor
+ end.
+Ltac uncurry_domain f :=
+ lazymatch type of f with
+ | forall (a : ?A) (b : @ ?B a), _
+ => uncurry_domain (fun ab : { a : A & B a } => f (projT1 ab) (projT2 ab))
+ | _ => eval cbv beta in f
+ end.
+Ltac get_of_sigma T :=
+ let ctor := get_ctor T in
+ uncurry_domain ctor.
+Ltac repeat_existT :=
+ lazymatch goal with
+ | [ |- sigT _ ] => simple refine (existT _ _ _); [ repeat_existT | shelve ]
+ | _ => shelve
+ end.
+ Ltac prove_to_of_sigma_goal of_sigma :=
+ let v := fresh "v" in
+ simple refine (exist _ _ (fun v => _ : id _ (of_sigma v) = v));
+ try unfold of_sigma;
+ [ intro v; destruct v; repeat_existT
+ | cbv beta;
+ repeat match goal with
+ | [ |- context[projT2 ?k] ]
+ => let x := fresh "x" in
+ is_var k;
+ destruct k as [k x]; cbn [projT1 projT2]
+ end;
+ unfold id; reflexivity ].
+Ltac prove_to_of_sigma of_sigma :=
+ constr:(
+ ltac:(prove_to_of_sigma_goal of_sigma)
+ : { to_sigma : _ | forall v, id to_sigma (of_sigma v) = v }).
+Ltac get_to_sigma_gen of_sigma :=
+ let v := prove_to_of_sigma of_sigma in
+ eval hnf in (proj1_sig v).
+Ltac get_to_sigma T :=
+ let of_sigma := get_of_sigma T in
+ get_to_sigma_gen of_sigma.
+Definition to_sigma := ltac:(let v := get_to_sigma mix in exact v).
+(* Error:
+In nested Ltac calls to "get_to_sigma", "get_to_sigma_gen",
+"prove_to_of_sigma",
+"(_ : {to_sigma : _ | forall v, id to_sigma (of_sigma v) = v})" (with
+of_sigma:=fun
+ ab : {_
+ : {_
+ : {ab : {_ : {a : nat & a = a} & nat} &
+ projT1 (projT1 ab) = projT2 ab} & nat} & nat} =>
+ {|
+ a := projT1 (projT1 (projT1 (projT1 (projT1 ab))));
+ b := projT2 (projT1 (projT1 (projT1 (projT1 ab))));
+ c := projT2 (projT1 (projT1 (projT1 ab)));
+ d := projT2 (projT1 (projT1 ab));
+ e := projT2 (projT1 ab);
+ f := projT2 ab |}) and "prove_to_of_sigma_goal", last call failed.
+Anomaly "Uncaught exception Not_found." Please report at
+http://coq.inria.fr/bugs/.
+frame @ file "toplevel/coqtop.ml", line 640, characters 6-22
+frame @ file "list.ml", line 73, characters 12-15
+frame @ file "toplevel/vernac.ml", line 344, characters 2-13
+frame @ file "toplevel/vernac.ml", line 308, characters 14-75
+raise @ file "lib/exninfo.ml", line 63, characters 8-15
+frame @ file "lib/flags.ml", line 141, characters 19-40
+raise @ file "lib/exninfo.ml", line 63, characters 8-15
+frame @ file "lib/flags.ml", line 11, characters 15-18
+raise @ file "lib/exninfo.ml", line 63, characters 8-15
+frame @ file "toplevel/vernac.ml", line 167, characters 6-16
+frame @ file "toplevel/vernac.ml", line 151, characters 26-39
+frame @ file "stm/stm.ml", line 2365, characters 2-35
+raise @ file "lib/exninfo.ml", line 63, characters 8-15
+frame @ file "stm/stm.ml", line 2355, characters 4-48
+frame @ file "stm/stm.ml", line 2321, characters 4-100
+raise @ file "lib/exninfo.ml", line 63, characters 8-15
+frame @ file "stm/stm.ml", line 832, characters 6-10
+frame @ file "stm/stm.ml", line 2206, characters 10-32
+raise @ file "lib/exninfo.ml", line 63, characters 8-15
+frame @ file "stm/stm.ml", line 975, characters 8-81
+raise @ file "lib/exninfo.ml", line 63, characters 8-15
+frame @ file "vernac/vernacentries.ml", line 2216, characters 10-389
+frame @ file "lib/flags.ml", line 141, characters 19-40
+raise @ file "lib/exninfo.ml", line 63, characters 8-15
+frame @ file "lib/flags.ml", line 11, characters 15-18
+frame @ file "vernac/command.ml", line 150, characters 4-56
+frame @ file "interp/constrintern.ml", line 2046, characters 2-73
+frame @ file "pretyping/pretyping.ml", line 1194, characters 19-77
+frame @ file "pretyping/pretyping.ml", line 1155, characters 8-72
+frame @ file "pretyping/pretyping.ml", line 628, characters 23-65
+frame @ file "plugins/ltac/tacinterp.ml", line 2095, characters 21-61
+frame @ file "proofs/pfedit.ml", line 178, characters 6-22
+raise @ file "lib/exninfo.ml", line 63, characters 8-15
+frame @ file "proofs/pfedit.ml", line 174, characters 8-36
+frame @ file "proofs/proof.ml", line 351, characters 4-30
+raise @ file "lib/exninfo.ml", line 63, characters 8-15
+frame @ file "engine/proofview.ml", line 1222, characters 8-12
+frame @ file "plugins/ltac/tacinterp.ml", line 2020, characters 19-36
+frame @ file "plugins/ltac/tacinterp.ml", line 618, characters 4-70
+raise @ file "lib/exninfo.ml", line 63, characters 8-15
+frame @ file "plugins/ltac/tacinterp.ml", line 214, characters 6-9
+frame @ file "pretyping/pretyping.ml", line 1198, characters 19-62
+frame @ file "pretyping/pretyping.ml", line 1155, characters 8-72
+raise @ unknown
+frame @ file "pretyping/pretyping.ml", line 628, characters 23-65
+frame @ file "plugins/ltac/tacinterp.ml", line 2095, characters 21-61
+frame @ file "proofs/pfedit.ml", line 178, characters 6-22
+raise @ file "lib/exninfo.ml", line 63, characters 8-15
+frame @ file "proofs/pfedit.ml", line 174, characters 8-36
+frame @ file "proofs/proof.ml", line 351, characters 4-30
+raise @ file "lib/exninfo.ml", line 63, characters 8-15
+ *)
diff --git a/test-suite/bugs/closed/5762.v b/test-suite/bugs/closed/5762.v
index edd5c8d73d..55d36bd722 100644
--- a/test-suite/bugs/closed/5762.v
+++ b/test-suite/bugs/closed/5762.v
@@ -26,3 +26,9 @@ Reserved Notation "%% a" (at level 70).
Record R :=
{g : forall {A} (a:A), a=a where "%% x" := (g x);
k : %% 0 = eq_refl}.
+
+(* An extra example *)
+
+Module A.
+Inductive I {A:Type} := C : # 0 -> I where "# I" := (I = I) : I_scope.
+End A.
diff --git a/test-suite/bugs/closed/5790.v b/test-suite/bugs/closed/5790.v
new file mode 100644
index 0000000000..6c93a3906e
--- /dev/null
+++ b/test-suite/bugs/closed/5790.v
@@ -0,0 +1,7 @@
+Set Universe Polymorphism.
+Section foo.
+Context (v : Type).
+Axiom a : True <-> False.
+
+Hint Resolve -> a.
+End foo.
diff --git a/test-suite/bugs/closed/6129.v b/test-suite/bugs/closed/6129.v
new file mode 100644
index 0000000000..e4a2a2ba95
--- /dev/null
+++ b/test-suite/bugs/closed/6129.v
@@ -0,0 +1,9 @@
+(* Make definition of coercions compatible with local definitions. *)
+
+Record foo (x : Type) (y:=1) := { foo_nat :> nat }.
+Record foo2 (x : Type) (y:=1) (z t: Type) := { foo_nat2 :> nat }.
+Record foo3 (y:=1) (z t: Type) := { foo_nat3 :> nat }.
+
+Check fun x : foo nat => x + 1.
+Check fun x : foo2 nat nat nat => x + 1.
+Check fun x : foo3 nat nat => x + 1.
diff --git a/test-suite/bugs/closed/6191.v b/test-suite/bugs/closed/6191.v
new file mode 100644
index 0000000000..e0d912509b
--- /dev/null
+++ b/test-suite/bugs/closed/6191.v
@@ -0,0 +1,16 @@
+(* Check a 8.7.1 regression in ring_simplify *)
+
+Require Import ArithRing BinNat.
+Goal forall f x, (2+x+f (N.to_nat 2)+3=4).
+intros.
+ring_simplify (2+x+f (N.to_nat 2)+3).
+match goal with |- x + f (N.to_nat 2) + 5 = 4 => idtac end.
+Abort.
+
+Require Import ZArithRing BinInt.
+Open Scope Z_scope.
+Goal forall x, (2+x+3=4).
+intros.
+ring_simplify (2+x+3).
+match goal with |- x+5 = 4 => idtac end.
+Abort.
diff --git a/test-suite/bugs/closed/6297.v b/test-suite/bugs/closed/6297.v
new file mode 100644
index 0000000000..a28607058f
--- /dev/null
+++ b/test-suite/bugs/closed/6297.v
@@ -0,0 +1,8 @@
+Set Printing Universes.
+
+(* Error: Anomaly "Uncaught exception "Anomaly: Incorrect universe Set
+ declared for inductive type, inferred level is max(Prop, Set+1)."."
+ Please report at http://coq.inria.fr/bugs/. *)
+Fail Record LTS: Set :=
+ lts { St: Set;
+ init: St }.
diff --git a/test-suite/bugs/closed/6313.v b/test-suite/bugs/closed/6313.v
new file mode 100644
index 0000000000..4d263c5a82
--- /dev/null
+++ b/test-suite/bugs/closed/6313.v
@@ -0,0 +1,64 @@
+(* Former open goals in nested proofs were lost *)
+
+(* This used to fail with "Incorrect number of goals (expected 1 tactic)." *)
+
+Inductive foo := a | b | c.
+Goal foo -> foo.
+ intro x.
+ simple refine (match x with
+ | a => _
+ | b => ltac:(exact b)
+ | c => _
+ end); [exact a|exact c].
+Abort.
+
+(* This used to leave the goal on the shelf and fails at reflexivity *)
+
+Goal (True/\0=0 -> True) -> True.
+ intro f.
+ refine
+ (f ltac:(split; only 1:exact I)).
+ reflexivity.
+Qed.
+
+(* The "Unshelve" used to not see the explicitly "shelved" goal *)
+
+Lemma f (b:comparison) : b=b.
+refine (match b with
+ Eq => ltac:(shelve)
+ | Lt => ltac:(give_up)
+ | Gt => _
+ end).
+exact (eq_refl Gt).
+Unshelve.
+exact (eq_refl Eq).
+Fail auto. (* Check that there are no more regular subgoals *)
+Admitted.
+
+(* The "Unshelve" used to not see the explicitly "shelved" goal *)
+
+Lemma f2 (b:comparison) : b=b.
+refine (match b with
+ Eq => ltac:(shelve)
+ | Lt => ltac:(give_up)
+ | Gt => _
+ end).
+Unshelve. (* Note: Unshelve puts goals at the end *)
+exact (eq_refl Gt).
+exact (eq_refl Eq).
+Fail auto. (* Check that there are no more regular subgoals *)
+Admitted.
+
+(* The "unshelve" used to not see the explicitly "shelved" goal *)
+
+Lemma f3 (b:comparison) : b=b.
+unshelve refine (match b with
+ Eq => ltac:(shelve)
+ | Lt => ltac:(give_up)
+ | Gt => _
+ end).
+(* Note: unshelve puts goals at the beginning *)
+exact (eq_refl Eq).
+exact (eq_refl Gt).
+Fail auto. (* Check that there are no more regular subgoals *)
+Admitted.
diff --git a/test-suite/bugs/closed/6323.v b/test-suite/bugs/closed/6323.v
new file mode 100644
index 0000000000..fdc33befc6
--- /dev/null
+++ b/test-suite/bugs/closed/6323.v
@@ -0,0 +1,9 @@
+Goal True.
+ simple refine (let X : Type := _ in _);
+ [ abstract exact Set using Set'
+ | let X' := (eval cbv delta [X] in X) in
+ clear X;
+ simple refine (let id' : { x : X' | True } -> X' := _ in _);
+ [ abstract refine (@proj1_sig _ _) | ]
+ ].
+Abort.
diff --git a/test-suite/bugs/closed/6378.v b/test-suite/bugs/closed/6378.v
new file mode 100644
index 0000000000..68ae7961dd
--- /dev/null
+++ b/test-suite/bugs/closed/6378.v
@@ -0,0 +1,18 @@
+Require Import Coq.ZArith.ZArith.
+Ltac profile_constr tac :=
+ let dummy := match goal with _ => reset ltac profile; start ltac profiling end in
+ let ret := match goal with _ => tac () end in
+ let dummy := match goal with _ => stop ltac profiling; show ltac profile end in
+ pose 1.
+
+Ltac slow _ := eval vm_compute in (Z.div_eucl, Z.div_eucl, Z.div_eucl, Z.div_eucl, Z.div_eucl).
+
+Goal True.
+ start ltac profiling.
+ reset ltac profile.
+ reset ltac profile.
+ stop ltac profiling.
+ time profile_constr slow.
+ show ltac profile cutoff 0.
+ show ltac profile "slow".
+Abort.
diff --git a/test-suite/bugs/closed/6490.v b/test-suite/bugs/closed/6490.v
new file mode 100644
index 0000000000..dcf9ff29ed
--- /dev/null
+++ b/test-suite/bugs/closed/6490.v
@@ -0,0 +1,4 @@
+Inductive Foo (A' := I) (B : Type) := foo : Foo B.
+
+Goal Foo True. dtauto. Qed.
+Goal Foo True. firstorder. Qed.
diff --git a/test-suite/bugs/closed/6529.v b/test-suite/bugs/closed/6529.v
new file mode 100644
index 0000000000..8d90819998
--- /dev/null
+++ b/test-suite/bugs/closed/6529.v
@@ -0,0 +1,16 @@
+Require Import Vector Program.
+
+Program Definition append_nil_def :=
+ forall A n (ls: t A n), append ls (nil A) = ls. (* Works *)
+
+Lemma append_nil : append_nil_def. (* Works *)
+Proof.
+Admitted.
+
+Program Lemma append_nil' :
+ forall A n (ls: t A n), append ls (nil A) = ls.
+Abort.
+
+Fail Program Lemma append_nil'' :
+ forall A B n (ls: t A n), append ls (nil A) = ls.
+(* Error: Anomaly "Evar ?X25 was not declared." Please report at http://coq.inria.fr/bugs/. *)
diff --git a/test-suite/bugs/closed/6534.v b/test-suite/bugs/closed/6534.v
new file mode 100644
index 0000000000..f5013994c5
--- /dev/null
+++ b/test-suite/bugs/closed/6534.v
@@ -0,0 +1,7 @@
+Goal forall x : nat, x = x.
+Proof.
+intros x.
+refine ((fun x x => _ tt) tt tt).
+let t := match goal with [ |- ?P ] => P end in
+let _ := type of t in
+idtac.
diff --git a/test-suite/bugs/closed/6617.v b/test-suite/bugs/closed/6617.v
new file mode 100644
index 0000000000..9cabd62d48
--- /dev/null
+++ b/test-suite/bugs/closed/6617.v
@@ -0,0 +1,34 @@
+Definition MR {T M : Type} :=
+fun (R : M -> M -> Prop) (m : T -> M) (x y : T) => R (m x) (m y).
+
+Set Primitive Projections.
+
+Record sigma {A : Type} {B : A -> Type} : Type := sigmaI
+ { pr1 : A; pr2 : B pr1 }.
+
+Axiom F : forall {A : Type} {R : A -> A -> Prop},
+ (forall x, (forall y, R y x -> unit) -> unit) -> forall (x : A), unit.
+
+Definition foo (A : Type) (l : list A) :=
+ let y := {| pr1 := A; pr2 := l |} in
+ let bar := MR lt (fun p : sigma =>
+ (fix Ffix (x : list (pr1 p)) : nat :=
+ match x with
+ | nil => 0
+ | cons _ x1 => S (Ffix x1)
+ end) (pr2 p)) in
+fun (_ : bar y y) =>
+F (fun (r : sigma)
+ (X : forall q : sigma, bar q r -> unit) => tt).
+
+Definition fooT (A : Type) (l : list A) : Type :=
+ ltac:(let ty := type of (foo A l) in exact ty).
+Parameter P : forall A l, fooT A l -> Prop.
+
+Goal forall A l, P A l (foo A l).
+Proof.
+ intros; unfold foo.
+ Fail match goal with
+ | [ |- context [False]] => idtac
+ end.
+Admitted.
diff --git a/test-suite/bugs/closed/6634.v b/test-suite/bugs/closed/6634.v
new file mode 100644
index 0000000000..7f33afcc2f
--- /dev/null
+++ b/test-suite/bugs/closed/6634.v
@@ -0,0 +1,6 @@
+From Coq Require Import ssreflect.
+
+Lemma normalizeP (p : tt = tt) : p = p.
+Proof.
+Fail move: {2} tt p.
+Abort.
diff --git a/test-suite/bugs/closed/6677.v b/test-suite/bugs/closed/6677.v
new file mode 100644
index 0000000000..99e47bb87c
--- /dev/null
+++ b/test-suite/bugs/closed/6677.v
@@ -0,0 +1,5 @@
+Set Universe Polymorphism.
+
+Definition T@{i} := Type@{i}.
+Fail Definition U@{i} := (T@{i} <: Type@{i}).
+Fail Definition eqU@{i j} : @eq T@{j} U@{i} T@{i} := eq_refl.
diff --git a/test-suite/bugs/closed/6774.v b/test-suite/bugs/closed/6774.v
new file mode 100644
index 0000000000..9625af91f5
--- /dev/null
+++ b/test-suite/bugs/closed/6774.v
@@ -0,0 +1,7 @@
+(* Was an anomaly with ill-typed template polymorphism *)
+Definition huh (b:bool) := if b then Set else Prop.
+Definition lol b: huh b :=
+ if b return huh b then nat else True.
+Goal (lol true) * unit.
+Fail generalize true. (* should fail with error, not anomaly *)
+Abort.
diff --git a/test-suite/bugs/closed/6878.v b/test-suite/bugs/closed/6878.v
new file mode 100644
index 0000000000..70f1b3127a
--- /dev/null
+++ b/test-suite/bugs/closed/6878.v
@@ -0,0 +1,8 @@
+
+Set Universe Polymorphism.
+Module Type T.
+ Axiom foo : Prop.
+End T.
+
+(** Used to anomaly *)
+Fail Module M : T with Definition foo := Type.
diff --git a/test-suite/bugs/closed/6910.v b/test-suite/bugs/closed/6910.v
new file mode 100644
index 0000000000..5167a5364a
--- /dev/null
+++ b/test-suite/bugs/closed/6910.v
@@ -0,0 +1,5 @@
+From Coq Require Import ssreflect ssrfun.
+
+(* We should be able to use Some_inj as a view: *)
+Lemma foo (x y : nat) : Some x = Some y -> x = y.
+Proof. by move/Some_inj. Qed.
diff --git a/test-suite/bugs/closed/HoTT_coq_064.v b/test-suite/bugs/closed/HoTT_coq_064.v
index b4c745375f..d02a5f120c 100644
--- a/test-suite/bugs/closed/HoTT_coq_064.v
+++ b/test-suite/bugs/closed/HoTT_coq_064.v
@@ -178,6 +178,7 @@ Definition IsColimit `{Funext} C D (F : Functor D C)
Generalizable All Variables.
Axiom fs : Funext.
+Existing Instance fs.
Section bar.
diff --git a/test-suite/bugs/closed/HoTT_coq_077.v b/test-suite/bugs/closed/HoTT_coq_077.v
index 017780c1f3..f69c71a026 100644
--- a/test-suite/bugs/closed/HoTT_coq_077.v
+++ b/test-suite/bugs/closed/HoTT_coq_077.v
@@ -3,7 +3,7 @@ Set Implicit Arguments.
Require Import Logic.
Set Asymmetric Patterns.
-Set Record Elimination Schemes.
+Set Nonrecursive Elimination Schemes.
Set Primitive Projections.
Record prod (A B : Type) : Type :=
diff --git a/test-suite/bugs/closed/HoTT_coq_104.v b/test-suite/bugs/closed/HoTT_coq_104.v
index 5bb7fa8c12..a6ff78d127 100644
--- a/test-suite/bugs/closed/HoTT_coq_104.v
+++ b/test-suite/bugs/closed/HoTT_coq_104.v
@@ -4,7 +4,7 @@ Require Import Logic.
Global Set Universe Polymorphism.
Global Set Asymmetric Patterns.
-Local Set Record Elimination Schemes.
+Local Set Nonrecursive Elimination Schemes.
Local Set Primitive Projections.
Record prod (A B : Type) : Type :=
diff --git a/test-suite/bugs/closed/gh6165.v b/test-suite/bugs/closed/gh6165.v
new file mode 100644
index 0000000000..b87a7caaf2
--- /dev/null
+++ b/test-suite/bugs/closed/gh6165.v
@@ -0,0 +1,5 @@
+(* -*- mode: coq; coq-prog-args: ("-quick") -*- *)
+
+Goal True.
+ abstract exact I.
+Timeout 1 Defined.
diff --git a/test-suite/bugs/closed/gh6384.v b/test-suite/bugs/closed/gh6384.v
new file mode 100644
index 0000000000..cec84642fb
--- /dev/null
+++ b/test-suite/bugs/closed/gh6384.v
@@ -0,0 +1,5 @@
+Theorem test (A:Prop) : A \/ A -> A.
+ Fail intro H; destruct H as H.
+ (* Error: Disjunctive/conjunctive introduction pattern expected. *)
+ Fail intros H; destruct H as H.
+Abort.
diff --git a/test-suite/bugs/closed/gh6385.v b/test-suite/bugs/closed/gh6385.v
new file mode 100644
index 0000000000..3bbb664f4f
--- /dev/null
+++ b/test-suite/bugs/closed/gh6385.v
@@ -0,0 +1,5 @@
+Theorem test (A:Prop) : A \/ A -> A.
+ Fail let H := idtac in intros H; destruct H as H'.
+ (* Disjunctive/conjunctive introduction pattern expected. *)
+ Fail let H' := idtac in intros H; destruct H as H'.
+Abort.
diff --git a/test-suite/bugs/opened/1596.v b/test-suite/bugs/opened/1596.v
index 0b576db6b3..820022d995 100644
--- a/test-suite/bugs/opened/1596.v
+++ b/test-suite/bugs/opened/1596.v
@@ -2,7 +2,6 @@ Require Import Relations.
Require Import FSets.
Require Import Arith.
Require Import Omega.
-Unset Standard Proposition Elimination Names.
Set Keyed Unification.
diff --git a/test-suite/bugs/opened/3926.v b/test-suite/bugs/opened/3926.v
deleted file mode 100644
index cfad763572..0000000000
--- a/test-suite/bugs/opened/3926.v
+++ /dev/null
@@ -1,30 +0,0 @@
-Notation compose := (fun g f x => g (f x)).
-Notation "g 'o' f" := (compose g f) (at level 40, left associativity) : function_scope.
-Open Scope function_scope.
-Inductive paths {A : Type} (a : A) : A -> Type := idpath : paths a a where "x = y" := (@paths _ x y) : type_scope.
-Arguments idpath {A a} , [A] a.
-Definition ap {A B:Type} (f:A -> B) {x y:A} (p:x = y) : f x = f y := match p with idpath => idpath end.
-Class IsEquiv {A B : Type} (f : A -> B) := { equiv_inv : B -> A }.
-Notation "f ^-1" := (@equiv_inv _ _ f _) (at level 3, format "f '^-1'") : equiv_scope.
-Local Open Scope equiv_scope.
-Axiom eisretr : forall {A B} (f : A -> B) `{IsEquiv A B f} x, f (f^-1 x) = x.
-Generalizable Variables A B C f g.
-Global Instance isequiv_compose `{IsEquiv A B f} `{IsEquiv B C g} : IsEquiv (compose g f) | 1000
- := Build_IsEquiv A C (compose g f) (compose f^-1 g^-1).
-Definition isequiv_homotopic {A B} (f : A -> B) {g : A -> B} `{IsEquiv A B f} (h : forall x, f x = g x) : IsEquiv g
- := Build_IsEquiv _ _ g (f ^-1).
-Global Instance isequiv_inverse {A B} (f : A -> B) `{IsEquiv A B f} : IsEquiv f^-1 | 10000
- := Build_IsEquiv B A f^-1 f.
-Definition cancelR_isequiv {A B C} (f : A -> B) {g : B -> C}
- `{IsEquiv A B f} `{IsEquiv A C (g o f)}
- : IsEquiv g.
-Proof.
- Unset Typeclasses Modulo Eta.
- exact (isequiv_homotopic (compose (compose g f) f^-1)
- (fun b => ap g (eisretr f b))) || fail "too early".
- Undo.
- Set Typeclasses Modulo Eta.
- Set Typeclasses Dependency Order.
- Set Typeclasses Debug.
- Fail exact (isequiv_homotopic (compose (compose g f) f^-1)
- (fun b => ap g (eisretr f b))).
diff --git a/test-suite/bugs/opened/4717.v b/test-suite/bugs/opened/4717.v
deleted file mode 100644
index 9ad4746723..0000000000
--- a/test-suite/bugs/opened/4717.v
+++ /dev/null
@@ -1,19 +0,0 @@
-(*See below. They sometimes work, and sometimes do not. Is this a bug?*)
-
-Require Import Omega Psatz.
-
-Definition foo := nat.
-
-Goal forall (n : foo), 0 = n - n.
-Proof. intros. omega. (* works *) Qed.
-
-Goal forall (x n : foo), x = x + n - n.
-Proof.
- intros.
- Fail omega. (* Omega can't solve this system *)
- Fail lia. (* Cannot find witness. *)
- unfold foo in *.
- omega. (* works *)
-Qed.
-
-(* Guillaume Melquiond: What matters is the equality. In the first case, it is @eq nat. In the second case, it is @eq foo. The same issue exists for ring and field. So it is not a bug, but it is worth fixing.*)
diff --git a/test-suite/bugs/opened/6393.v b/test-suite/bugs/opened/6393.v
new file mode 100644
index 0000000000..8d5d092333
--- /dev/null
+++ b/test-suite/bugs/opened/6393.v
@@ -0,0 +1,11 @@
+(* These always worked. *)
+Goal prod True True. firstorder. Qed.
+Goal True -> @sigT True (fun _ => True). firstorder. Qed.
+Goal prod True True. dtauto. Qed.
+Goal prod True True. tauto. Qed.
+
+(* These should work. *)
+Goal @sigT True (fun _ => True). dtauto. Qed.
+(* These should work, but don't *)
+(* Goal @sigT True (fun _ => True). firstorder. Qed. *)
+(* Goal @sigT True (fun _ => True). tauto. Qed. *)
diff --git a/test-suite/bugs/opened/6602.v b/test-suite/bugs/opened/6602.v
new file mode 100644
index 0000000000..3690adf90a
--- /dev/null
+++ b/test-suite/bugs/opened/6602.v
@@ -0,0 +1,17 @@
+Require Import Omega.
+
+Lemma test_nat:
+ forall n, (5 + pred n <= 5 + n).
+Proof.
+ intros.
+ zify.
+ omega.
+Qed.
+
+Lemma test_N:
+ forall n, (5 + N.pred n <= 5 + n)%N.
+Proof.
+ intros.
+ zify.
+ omega.
+Qed.
diff --git a/test-suite/coq-makefile/.gitignore b/test-suite/coq-makefile/.gitignore
new file mode 100644
index 0000000000..e866161ceb
--- /dev/null
+++ b/test-suite/coq-makefile/.gitignore
@@ -0,0 +1 @@
+/*/_test
diff --git a/test-suite/coq-makefile/emptyprefix/_CoqProject b/test-suite/coq-makefile/emptyprefix/_CoqProject
new file mode 100644
index 0000000000..5678a8edbb
--- /dev/null
+++ b/test-suite/coq-makefile/emptyprefix/_CoqProject
@@ -0,0 +1,11 @@
+-R theories ""
+-R src ""
+-I src
+-arg "-w default"
+
+src/test_plugin.mlpack
+src/test.ml4
+src/test.mli
+src/test_aux.ml
+src/test_aux.mli
+theories/test.v
diff --git a/test-suite/coq-makefile/emptyprefix/_CoqProject.sub b/test-suite/coq-makefile/emptyprefix/_CoqProject.sub
new file mode 100644
index 0000000000..90ac541e04
--- /dev/null
+++ b/test-suite/coq-makefile/emptyprefix/_CoqProject.sub
@@ -0,0 +1,3 @@
+-R ../theories ""
+-I ../src
+testsub.v
diff --git a/test-suite/coq-makefile/emptyprefix/run.sh b/test-suite/coq-makefile/emptyprefix/run.sh
new file mode 100755
index 0000000000..a10e63b42e
--- /dev/null
+++ b/test-suite/coq-makefile/emptyprefix/run.sh
@@ -0,0 +1,17 @@
+#!/usr/bin/env bash
+
+set -e
+
+. ../template/init.sh
+
+mv theories/sub theories2
+
+coq_makefile -f _CoqProject -o Makefile
+cat Makefile.conf
+make
+
+cp ../_CoqProject.sub theories2/_CoqProject
+cd theories2
+coq_makefile -f _CoqProject -o Makefile
+cat Makefile.conf
+make
diff --git a/test-suite/coq-makefile/plugin-reach-outside-API-and-fail/run.sh b/test-suite/coq-makefile/plugin-reach-outside-API-and-fail/run.sh
deleted file mode 100755
index 88606cd473..0000000000
--- a/test-suite/coq-makefile/plugin-reach-outside-API-and-fail/run.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-git clean -dfx
-
-cat > _CoqProject <<EOT
--I src/
-
-./src/test_plugin.mllib
-./src/test.ml4
-./src/test.mli
-EOT
-
-mkdir src
-
-cat > src/test_plugin.mllib <<EOT
-Test
-EOT
-
-touch src/test.mli
-
-cat > src/test.ml4 <<EOT
-DECLARE PLUGIN "test"
-
-let _ = Pre_env.empty_env
-EOT
-
-${COQBIN}coq_makefile -f _CoqProject -o Makefile
-cat Makefile.conf
-
-if make VERBOSE=1; then
- # make command should have failed (but didn't)
- exit 1
-else
- # make command should have failed (and it indeed did)
- exit 0
-fi
diff --git a/test-suite/coq-makefile/plugin-reach-outside-API-and-succeed-by-bypassing-the-API/run.sh b/test-suite/coq-makefile/plugin-reach-outside-API-and-succeed-by-bypassing-the-API/run.sh
deleted file mode 100755
index 939ef9c7b7..0000000000
--- a/test-suite/coq-makefile/plugin-reach-outside-API-and-succeed-by-bypassing-the-API/run.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-git clean -dfx
-
-cat > _CoqProject <<EOT
--bypass-API
--I src/
-
-./src/test_plugin.mllib
-./src/test.ml4
-./src/test.mli
-EOT
-
-mkdir src
-
-cat > src/test_plugin.mllib <<EOT
-Test
-EOT
-
-touch src/test.mli
-
-cat > src/test.ml4 <<EOT
-DECLARE PLUGIN "test"
-
-let _ = Pre_env.empty_env
-EOT
-
-${COQBIN}coq_makefile -f _CoqProject -o Makefile
-cat Makefile.conf
-
-make VERBOSE=1
diff --git a/test-suite/coq-makefile/quick2vo/_CoqProject b/test-suite/coq-makefile/quick2vo/_CoqProject
new file mode 100644
index 0000000000..69f47302e1
--- /dev/null
+++ b/test-suite/coq-makefile/quick2vo/_CoqProject
@@ -0,0 +1,10 @@
+-R src test
+-R theories test
+-I src
+
+src/test_plugin.mlpack
+src/test.ml4
+src/test.mli
+src/test_aux.ml
+src/test_aux.mli
+theories/test.v
diff --git a/test-suite/coq-makefile/quick2vo/run.sh b/test-suite/coq-makefile/quick2vo/run.sh
new file mode 100755
index 0000000000..9e681223b4
--- /dev/null
+++ b/test-suite/coq-makefile/quick2vo/run.sh
@@ -0,0 +1,12 @@
+#!/usr/bin/env bash
+a=`uname`
+
+. ../template/init.sh
+
+coq_makefile -f _CoqProject -o Makefile
+# vio2vo is broken on Windows (#6720)
+if [ "$a" = "Darwin" -o "$a" = "Linux" ]; then
+ make quick2vo J=2
+ test -f theories/test.vo
+ make validate
+fi
diff --git a/test-suite/coq-makefile/template/init.sh b/test-suite/coq-makefile/template/init.sh
index c4bd11c57d..e19d168cf6 100755
--- a/test-suite/coq-makefile/template/init.sh
+++ b/test-suite/coq-makefile/template/init.sh
@@ -1,19 +1,17 @@
-set -e
-set -o pipefail
+. ../template/path-init.sh
-export PATH=$COQBIN:$PATH
-export LC_ALL=C
-
-rm -rf theories src Makefile Makefile.conf tmp
-git clean -dfx || true
+rm -rf _test
+mkdir _test
+find . -maxdepth 1 -not -name . -not -name _test -exec cp -r '{}' -t _test ';'
+cd _test
mkdir -p src
mkdir -p theories/sub
-cp ../template/theories/sub/testsub.v theories/sub
-cp ../template/theories/test.v theories
-cp ../template/src/test.ml4 src
-cp ../template/src/test_aux.mli src
-cp ../template/src/test.mli src
-cp ../template/src/test_plugin.mlpack src
-cp ../template/src/test_aux.ml src
+cp ../../template/theories/sub/testsub.v theories/sub
+cp ../../template/theories/test.v theories
+cp ../../template/src/test.ml4 src
+cp ../../template/src/test_aux.mli src
+cp ../../template/src/test.mli src
+cp ../../template/src/test_plugin.mlpack src
+cp ../../template/src/test_aux.ml src
diff --git a/test-suite/coq-makefile/template/path-init.sh b/test-suite/coq-makefile/template/path-init.sh
new file mode 100755
index 0000000000..dd19ab2b14
--- /dev/null
+++ b/test-suite/coq-makefile/template/path-init.sh
@@ -0,0 +1,5 @@
+set -e
+set -o pipefail
+
+export PATH="$COQBIN:$PATH"
+export LC_ALL=C
diff --git a/test-suite/coq-makefile/template/src/test.ml4 b/test-suite/coq-makefile/template/src/test.ml4
index e7d0bfe1f8..72765abe04 100644
--- a/test-suite/coq-makefile/template/src/test.ml4
+++ b/test-suite/coq-makefile/template/src/test.ml4
@@ -1,4 +1,3 @@
-open API
open Ltac_plugin
DECLARE PLUGIN "test_plugin"
let () = Mltop.add_known_plugin (fun () -> ()) "test_plugin";;
diff --git a/test-suite/coq-makefile/template/src/test_aux.ml b/test-suite/coq-makefile/template/src/test_aux.ml
index e134abd840..a01d0865a8 100644
--- a/test-suite/coq-makefile/template/src/test_aux.ml
+++ b/test-suite/coq-makefile/template/src/test_aux.ml
@@ -1 +1 @@
-let tac = API.Proofview.tclUNIT ()
+let tac = Proofview.tclUNIT ()
diff --git a/test-suite/coq-makefile/template/src/test_aux.mli b/test-suite/coq-makefile/template/src/test_aux.mli
index 2e7ad1529f..10020f27de 100644
--- a/test-suite/coq-makefile/template/src/test_aux.mli
+++ b/test-suite/coq-makefile/template/src/test_aux.mli
@@ -1 +1 @@
-val tac : unit API.Proofview.tactic
+val tac : unit Proofview.tactic
diff --git a/test-suite/coq-makefile/timing/after/time-of-build-after.log.desired b/test-suite/coq-makefile/timing/after/time-of-build-after.log.desired
index 729de2f366..7900c034da 100644
--- a/test-suite/coq-makefile/timing/after/time-of-build-after.log.desired
+++ b/test-suite/coq-makefile/timing/after/time-of-build-after.log.desired
@@ -1,7 +1,6 @@
Makefile:69: warning: undefined variable '*'
Makefile:204: warning: undefined variable 'DSTROOT'
-COQDEP Fast.v
-COQDEP Slow.v
+COQDEP VFILES
Makefile:69: warning: undefined variable '*'
Makefile:204: warning: undefined variable 'DSTROOT'
Makefile:69: warning: undefined variable '*'
diff --git a/test-suite/coq-makefile/timing/after/time-of-build-before.log.desired b/test-suite/coq-makefile/timing/after/time-of-build-before.log.desired
index b25bc3683c..7ab0bc75d9 100644
--- a/test-suite/coq-makefile/timing/after/time-of-build-before.log.desired
+++ b/test-suite/coq-makefile/timing/after/time-of-build-before.log.desired
@@ -1,7 +1,6 @@
Makefile:69: warning: undefined variable '*'
Makefile:204: warning: undefined variable 'DSTROOT'
-COQDEP Fast.v
-COQDEP Slow.v
+COQDEP VFILES
Makefile:69: warning: undefined variable '*'
Makefile:204: warning: undefined variable 'DSTROOT'
Makefile:69: warning: undefined variable '*'
diff --git a/test-suite/coq-makefile/timing/precomputed-time-tests/.gitattributes b/test-suite/coq-makefile/timing/precomputed-time-tests/.gitattributes
new file mode 100644
index 0000000000..e0596e614b
--- /dev/null
+++ b/test-suite/coq-makefile/timing/precomputed-time-tests/.gitattributes
@@ -0,0 +1,2 @@
+*.log.in -whitespace
+*.log.expected -whitespace
diff --git a/test-suite/coq-makefile/timing/precomputed-time-tests/001-correct-diff-sorting-order/run.sh b/test-suite/coq-makefile/timing/precomputed-time-tests/001-correct-diff-sorting-order/run.sh
new file mode 100755
index 0000000000..4a50759bdb
--- /dev/null
+++ b/test-suite/coq-makefile/timing/precomputed-time-tests/001-correct-diff-sorting-order/run.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+
+set -x
+set -e
+
+cd "$(dirname "${BASH_SOURCE[0]}")"
+
+"$COQLIB"/tools/make-both-time-files.py time-of-build-after.log.in time-of-build-before.log.in time-of-build-both.log
+
+diff -u time-of-build-both.log.expected time-of-build-both.log || exit $?
diff --git a/test-suite/coq-makefile/timing/precomputed-time-tests/001-correct-diff-sorting-order/time-of-build-after.log.in b/test-suite/coq-makefile/timing/precomputed-time-tests/001-correct-diff-sorting-order/time-of-build-after.log.in
new file mode 100644
index 0000000000..5757018e9b
--- /dev/null
+++ b/test-suite/coq-makefile/timing/precomputed-time-tests/001-correct-diff-sorting-order/time-of-build-after.log.in
@@ -0,0 +1,1760 @@
+COQDEP src/Compilers/Z/Bounds/Pipeline/ReflectiveTactics.v
+COQDEP src/Compilers/Z/Bounds/Pipeline/Definition.v
+/home/jgross/.local64/coq/coq-master/bin/coq_makefile -f _CoqProject INSTALLDEFAULTROOT = Crypto -o Makefile-old
+COQ_MAKEFILE -f _CoqProject > Makefile.coq
+make --no-print-directory -C coqprime
+make[1]: Nothing to be done for 'all'.
+ECHO > _CoqProject
+COQC src/Compilers/Z/Bounds/Pipeline/Definition.v
+src/Compilers/Z/Bounds/Pipeline/Definition (real: 7.33, user: 7.18, sys: 0.14, mem: 574388 ko)
+COQC src/Compilers/Z/Bounds/Pipeline/ReflectiveTactics.v
+src/Compilers/Z/Bounds/Pipeline/ReflectiveTactics (real: 1.93, user: 1.72, sys: 0.20, mem: 544172 ko)
+COQC src/Compilers/Z/Bounds/Pipeline.v
+src/Compilers/Z/Bounds/Pipeline (real: 1.38, user: 1.19, sys: 0.16, mem: 539808 ko)
+COQC src/Specific/Framework/SynthesisFramework.v
+src/Specific/Framework/SynthesisFramework (real: 1.85, user: 1.67, sys: 0.17, mem: 646300 ko)
+COQC src/Specific/X25519/C64/Synthesis.v
+src/Specific/X25519/C64/Synthesis (real: 11.15, user: 10.37, sys: 0.18, mem: 687760 ko)
+COQC src/Specific/NISTP256/AMD64/Synthesis.v
+src/Specific/NISTP256/AMD64/Synthesis (real: 13.45, user: 12.55, sys: 0.19, mem: 668216 ko)
+COQC src/Specific/X25519/C64/feadd.v
+Finished transaction in 2.814 secs (2.624u,0.s) (successful)
+total time: 2.576s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.2% 97.4% 1 2.508s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 66.9% 1 1.724s
+─ReflectiveTactics.solve_side_conditions 0.0% 65.5% 1 1.688s
+─ReflectiveTactics.solve_post_reified_si 1.2% 37.0% 1 0.952s
+─Glue.refine_to_reflective_glue' ------- 0.0% 30.3% 1 0.780s
+─ReflectiveTactics.do_reify ------------ 0.0% 28.6% 1 0.736s
+─Reify.Reify_rhs_gen ------------------- 2.2% 26.6% 1 0.684s
+─UnifyAbstractReflexivity.unify_transfor 20.3% 24.1% 7 0.164s
+─Glue.zrange_to_reflective ------------- 0.0% 20.3% 1 0.524s
+─Glue.zrange_to_reflective_goal -------- 9.5% 15.2% 1 0.392s
+─Reify.do_reify_abs_goal --------------- 13.7% 13.8% 2 0.356s
+─Reify.do_reifyf_goal ------------------ 12.4% 12.6% 16 0.324s
+─ReflectiveTactics.unify_abstract_cbv_in 8.4% 11.2% 1 0.288s
+─unify (constr) (constr) --------------- 5.7% 5.7% 6 0.072s
+─Glue.pattern_sig_sig_assoc ------------ 0.0% 5.4% 1 0.140s
+─assert (H : is_bounded_by' bounds (map' 4.8% 5.1% 2 0.072s
+─Glue.pattern_proj1_sig_in_sig --------- 1.7% 5.1% 1 0.132s
+─pose proof (pf : Interpretation.Bo 3.7% 3.7% 1 0.096s
+─Glue.split_BoundedWordToZ ------------- 0.3% 3.7% 1 0.096s
+─destruct_sig -------------------------- 0.2% 3.3% 4 0.044s
+─destruct x ---------------------------- 3.1% 3.1% 4 0.036s
+─eexact -------------------------------- 3.0% 3.0% 18 0.008s
+─clearbody (ne_var_list) --------------- 3.0% 3.0% 4 0.060s
+─prove_interp_compile_correct ---------- 0.0% 2.8% 1 0.072s
+─synthesize ---------------------------- 0.0% 2.6% 1 0.068s
+─rewrite ?EtaInterp.InterpExprEta ------ 2.5% 2.5% 1 0.064s
+─ClearbodyAll.clearbody_all ------------ 0.0% 2.3% 2 0.060s
+─rewrite H ----------------------------- 2.2% 2.2% 1 0.056s
+─reflexivity --------------------------- 2.2% 2.2% 7 0.032s
+─Reify.transitivity_tt ----------------- 0.0% 2.2% 2 0.032s
+─transitivity -------------------------- 2.0% 2.0% 5 0.024s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.2% 97.4% 1 2.508s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 66.9% 1 1.724s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 65.5% 1 1.688s
+ │ ├─ReflectiveTactics.solve_post_reifie 1.2% 37.0% 1 0.952s
+ │ │ ├─UnifyAbstractReflexivity.unify_tr 20.3% 24.1% 7 0.164s
+ │ │ │└unify (constr) (constr) --------- 3.0% 3.0% 5 0.028s
+ │ │ └─ReflectiveTactics.unify_abstract_ 8.4% 11.2% 1 0.288s
+ │ │ └unify (constr) (constr) --------- 2.8% 2.8% 1 0.072s
+ │ └─ReflectiveTactics.do_reify -------- 0.0% 28.6% 1 0.736s
+ │ └Reify.Reify_rhs_gen --------------- 2.2% 26.6% 1 0.684s
+ │ ├─Reify.do_reify_abs_goal --------- 13.7% 13.8% 2 0.356s
+ │ │└Reify.do_reifyf_goal ------------ 12.4% 12.6% 16 0.324s
+ │ │└eexact -------------------------- 2.6% 2.6% 16 0.008s
+ │ ├─prove_interp_compile_correct ---- 0.0% 2.8% 1 0.072s
+ │ │└rewrite ?EtaInterp.InterpExprEta 2.5% 2.5% 1 0.064s
+ │ ├─rewrite H ----------------------- 2.2% 2.2% 1 0.056s
+ │ └─Reify.transitivity_tt ----------- 0.0% 2.2% 2 0.032s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 30.3% 1 0.780s
+ ├─Glue.zrange_to_reflective --------- 0.0% 20.3% 1 0.524s
+ │ ├─Glue.zrange_to_reflective_goal -- 9.5% 15.2% 1 0.392s
+ │ │└pose proof (pf : Interpretat 3.7% 3.7% 1 0.096s
+ │ └─assert (H : is_bounded_by' bounds 4.8% 5.1% 2 0.072s
+ ├─Glue.pattern_sig_sig_assoc -------- 0.0% 5.4% 1 0.140s
+ │└Glue.pattern_proj1_sig_in_sig ----- 1.7% 5.1% 1 0.132s
+ │└ClearbodyAll.clearbody_all -------- 0.0% 2.3% 2 0.060s
+ │└clearbody (ne_var_list) ----------- 2.3% 2.3% 1 0.060s
+ └─Glue.split_BoundedWordToZ --------- 0.3% 3.7% 1 0.096s
+ └destruct_sig ---------------------- 0.2% 3.3% 4 0.044s
+ └destruct x ------------------------ 2.5% 2.5% 2 0.036s
+─synthesize ---------------------------- 0.0% 2.6% 1 0.068s
+
+Finished transaction in 5.021 secs (4.636u,0.s) (successful)
+Closed under the global context
+total time: 2.576s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.2% 97.4% 1 2.508s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 66.9% 1 1.724s
+─ReflectiveTactics.solve_side_conditions 0.0% 65.5% 1 1.688s
+─ReflectiveTactics.solve_post_reified_si 1.2% 37.0% 1 0.952s
+─Glue.refine_to_reflective_glue' ------- 0.0% 30.3% 1 0.780s
+─ReflectiveTactics.do_reify ------------ 0.0% 28.6% 1 0.736s
+─Reify.Reify_rhs_gen ------------------- 2.2% 26.6% 1 0.684s
+─UnifyAbstractReflexivity.unify_transfor 20.3% 24.1% 7 0.164s
+─Glue.zrange_to_reflective ------------- 0.0% 20.3% 1 0.524s
+─Glue.zrange_to_reflective_goal -------- 9.5% 15.2% 1 0.392s
+─Reify.do_reify_abs_goal --------------- 13.7% 13.8% 2 0.356s
+─Reify.do_reifyf_goal ------------------ 12.4% 12.6% 16 0.324s
+─ReflectiveTactics.unify_abstract_cbv_in 8.4% 11.2% 1 0.288s
+─unify (constr) (constr) --------------- 5.7% 5.7% 6 0.072s
+─Glue.pattern_sig_sig_assoc ------------ 0.0% 5.4% 1 0.140s
+─assert (H : is_bounded_by' bounds (map' 4.8% 5.1% 2 0.072s
+─Glue.pattern_proj1_sig_in_sig --------- 1.7% 5.1% 1 0.132s
+─pose proof (pf : Interpretation.Bo 3.7% 3.7% 1 0.096s
+─Glue.split_BoundedWordToZ ------------- 0.3% 3.7% 1 0.096s
+─destruct_sig -------------------------- 0.2% 3.3% 4 0.044s
+─destruct x ---------------------------- 3.1% 3.1% 4 0.036s
+─eexact -------------------------------- 3.0% 3.0% 18 0.008s
+─clearbody (ne_var_list) --------------- 3.0% 3.0% 4 0.060s
+─prove_interp_compile_correct ---------- 0.0% 2.8% 1 0.072s
+─synthesize ---------------------------- 0.0% 2.6% 1 0.068s
+─rewrite ?EtaInterp.InterpExprEta ------ 2.5% 2.5% 1 0.064s
+─ClearbodyAll.clearbody_all ------------ 0.0% 2.3% 2 0.060s
+─rewrite H ----------------------------- 2.2% 2.2% 1 0.056s
+─reflexivity --------------------------- 2.2% 2.2% 7 0.032s
+─Reify.transitivity_tt ----------------- 0.0% 2.2% 2 0.032s
+─transitivity -------------------------- 2.0% 2.0% 5 0.024s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.2% 97.4% 1 2.508s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 66.9% 1 1.724s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 65.5% 1 1.688s
+ │ ├─ReflectiveTactics.solve_post_reifie 1.2% 37.0% 1 0.952s
+ │ │ ├─UnifyAbstractReflexivity.unify_tr 20.3% 24.1% 7 0.164s
+ │ │ │└unify (constr) (constr) --------- 3.0% 3.0% 5 0.028s
+ │ │ └─ReflectiveTactics.unify_abstract_ 8.4% 11.2% 1 0.288s
+ │ │ └unify (constr) (constr) --------- 2.8% 2.8% 1 0.072s
+ │ └─ReflectiveTactics.do_reify -------- 0.0% 28.6% 1 0.736s
+ │ └Reify.Reify_rhs_gen --------------- 2.2% 26.6% 1 0.684s
+ │ ├─Reify.do_reify_abs_goal --------- 13.7% 13.8% 2 0.356s
+ │ │└Reify.do_reifyf_goal ------------ 12.4% 12.6% 16 0.324s
+ │ │└eexact -------------------------- 2.6% 2.6% 16 0.008s
+ │ ├─prove_interp_compile_correct ---- 0.0% 2.8% 1 0.072s
+ │ │└rewrite ?EtaInterp.InterpExprEta 2.5% 2.5% 1 0.064s
+ │ ├─rewrite H ----------------------- 2.2% 2.2% 1 0.056s
+ │ └─Reify.transitivity_tt ----------- 0.0% 2.2% 2 0.032s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 30.3% 1 0.780s
+ ├─Glue.zrange_to_reflective --------- 0.0% 20.3% 1 0.524s
+ │ ├─Glue.zrange_to_reflective_goal -- 9.5% 15.2% 1 0.392s
+ │ │└pose proof (pf : Interpretat 3.7% 3.7% 1 0.096s
+ │ └─assert (H : is_bounded_by' bounds 4.8% 5.1% 2 0.072s
+ ├─Glue.pattern_sig_sig_assoc -------- 0.0% 5.4% 1 0.140s
+ │└Glue.pattern_proj1_sig_in_sig ----- 1.7% 5.1% 1 0.132s
+ │└ClearbodyAll.clearbody_all -------- 0.0% 2.3% 2 0.060s
+ │└clearbody (ne_var_list) ----------- 2.3% 2.3% 1 0.060s
+ └─Glue.split_BoundedWordToZ --------- 0.3% 3.7% 1 0.096s
+ └destruct_sig ---------------------- 0.2% 3.3% 4 0.044s
+ └destruct x ------------------------ 2.5% 2.5% 2 0.036s
+─synthesize ---------------------------- 0.0% 2.6% 1 0.068s
+
+src/Specific/X25519/C64/feadd (real: 22.81, user: 20.93, sys: 0.25, mem: 766300 ko)
+COQC src/Specific/X25519/C64/fecarry.v
+Finished transaction in 4.343 secs (4.016u,0.004s) (successful)
+total time: 3.976s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 99.0% 1 3.936s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 87.9% 1 3.496s
+─ReflectiveTactics.solve_side_conditions 0.0% 86.9% 1 3.456s
+─ReflectiveTactics.do_reify ------------ 0.0% 56.9% 1 2.264s
+─Reify.Reify_rhs_gen ------------------- 1.8% 56.2% 1 2.236s
+─Reify.do_reify_abs_goal --------------- 36.1% 36.5% 2 1.452s
+─Reify.do_reifyf_goal ------------------ 34.8% 35.1% 29 1.396s
+─ReflectiveTactics.solve_post_reified_si 0.6% 30.0% 1 1.192s
+─UnifyAbstractReflexivity.unify_transfor 17.7% 21.7% 7 0.240s
+─Glue.refine_to_reflective_glue' ------- 0.0% 11.1% 1 0.440s
+─eexact -------------------------------- 10.9% 10.9% 31 0.024s
+─ReflectiveTactics.unify_abstract_cbv_in 5.2% 7.3% 1 0.292s
+─Glue.zrange_to_reflective ------------- 0.0% 7.1% 1 0.284s
+─prove_interp_compile_correct ---------- 0.0% 5.7% 1 0.228s
+─Glue.zrange_to_reflective_goal -------- 4.3% 5.5% 1 0.220s
+─unify (constr) (constr) --------------- 5.3% 5.3% 6 0.084s
+─rewrite ?EtaInterp.InterpExprEta ------ 5.2% 5.2% 1 0.208s
+─rewrite H ----------------------------- 3.5% 3.5% 1 0.140s
+─tac ----------------------------------- 1.9% 2.6% 2 0.104s
+─reflexivity --------------------------- 2.2% 2.2% 7 0.028s
+─Reify.transitivity_tt ----------------- 0.0% 2.2% 2 0.056s
+─transitivity -------------------------- 2.0% 2.0% 5 0.048s
+─Glue.split_BoundedWordToZ ------------- 0.1% 2.0% 1 0.080s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 99.0% 1 3.936s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 87.9% 1 3.496s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 86.9% 1 3.456s
+ │ ├─ReflectiveTactics.do_reify -------- 0.0% 56.9% 1 2.264s
+ │ │└Reify.Reify_rhs_gen --------------- 1.8% 56.2% 1 2.236s
+ │ │ ├─Reify.do_reify_abs_goal --------- 36.1% 36.5% 2 1.452s
+ │ │ │└Reify.do_reifyf_goal ------------ 34.8% 35.1% 29 1.396s
+ │ │ │└eexact -------------------------- 10.1% 10.1% 29 0.024s
+ │ │ ├─prove_interp_compile_correct ---- 0.0% 5.7% 1 0.228s
+ │ │ │└rewrite ?EtaInterp.InterpExprEta 5.2% 5.2% 1 0.208s
+ │ │ ├─rewrite H ----------------------- 3.5% 3.5% 1 0.140s
+ │ │ ├─tac ----------------------------- 1.9% 2.6% 1 0.104s
+ │ │ └─Reify.transitivity_tt ----------- 0.0% 2.2% 2 0.056s
+ │ │ └transitivity -------------------- 2.0% 2.0% 4 0.048s
+ │ └─ReflectiveTactics.solve_post_reifie 0.6% 30.0% 1 1.192s
+ │ ├─UnifyAbstractReflexivity.unify_tr 17.7% 21.7% 7 0.240s
+ │ │└unify (constr) (constr) --------- 3.2% 3.2% 5 0.048s
+ │ └─ReflectiveTactics.unify_abstract_ 5.2% 7.3% 1 0.292s
+ │ └unify (constr) (constr) --------- 2.1% 2.1% 1 0.084s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 11.1% 1 0.440s
+ ├─Glue.zrange_to_reflective --------- 0.0% 7.1% 1 0.284s
+ │└Glue.zrange_to_reflective_goal ---- 4.3% 5.5% 1 0.220s
+ └─Glue.split_BoundedWordToZ --------- 0.1% 2.0% 1 0.080s
+
+Finished transaction in 7.078 secs (6.728u,0.s) (successful)
+Closed under the global context
+total time: 3.976s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 99.0% 1 3.936s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 87.9% 1 3.496s
+─ReflectiveTactics.solve_side_conditions 0.0% 86.9% 1 3.456s
+─ReflectiveTactics.do_reify ------------ 0.0% 56.9% 1 2.264s
+─Reify.Reify_rhs_gen ------------------- 1.8% 56.2% 1 2.236s
+─Reify.do_reify_abs_goal --------------- 36.1% 36.5% 2 1.452s
+─Reify.do_reifyf_goal ------------------ 34.8% 35.1% 29 1.396s
+─ReflectiveTactics.solve_post_reified_si 0.6% 30.0% 1 1.192s
+─UnifyAbstractReflexivity.unify_transfor 17.7% 21.7% 7 0.240s
+─Glue.refine_to_reflective_glue' ------- 0.0% 11.1% 1 0.440s
+─eexact -------------------------------- 10.9% 10.9% 31 0.024s
+─ReflectiveTactics.unify_abstract_cbv_in 5.2% 7.3% 1 0.292s
+─Glue.zrange_to_reflective ------------- 0.0% 7.1% 1 0.284s
+─prove_interp_compile_correct ---------- 0.0% 5.7% 1 0.228s
+─Glue.zrange_to_reflective_goal -------- 4.3% 5.5% 1 0.220s
+─unify (constr) (constr) --------------- 5.3% 5.3% 6 0.084s
+─rewrite ?EtaInterp.InterpExprEta ------ 5.2% 5.2% 1 0.208s
+─rewrite H ----------------------------- 3.5% 3.5% 1 0.140s
+─tac ----------------------------------- 1.9% 2.6% 2 0.104s
+─reflexivity --------------------------- 2.2% 2.2% 7 0.028s
+─Reify.transitivity_tt ----------------- 0.0% 2.2% 2 0.056s
+─transitivity -------------------------- 2.0% 2.0% 5 0.048s
+─Glue.split_BoundedWordToZ ------------- 0.1% 2.0% 1 0.080s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 99.0% 1 3.936s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 87.9% 1 3.496s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 86.9% 1 3.456s
+ │ ├─ReflectiveTactics.do_reify -------- 0.0% 56.9% 1 2.264s
+ │ │└Reify.Reify_rhs_gen --------------- 1.8% 56.2% 1 2.236s
+ │ │ ├─Reify.do_reify_abs_goal --------- 36.1% 36.5% 2 1.452s
+ │ │ │└Reify.do_reifyf_goal ------------ 34.8% 35.1% 29 1.396s
+ │ │ │└eexact -------------------------- 10.1% 10.1% 29 0.024s
+ │ │ ├─prove_interp_compile_correct ---- 0.0% 5.7% 1 0.228s
+ │ │ │└rewrite ?EtaInterp.InterpExprEta 5.2% 5.2% 1 0.208s
+ │ │ ├─rewrite H ----------------------- 3.5% 3.5% 1 0.140s
+ │ │ ├─tac ----------------------------- 1.9% 2.6% 1 0.104s
+ │ │ └─Reify.transitivity_tt ----------- 0.0% 2.2% 2 0.056s
+ │ │ └transitivity -------------------- 2.0% 2.0% 4 0.048s
+ │ └─ReflectiveTactics.solve_post_reifie 0.6% 30.0% 1 1.192s
+ │ ├─UnifyAbstractReflexivity.unify_tr 17.7% 21.7% 7 0.240s
+ │ │└unify (constr) (constr) --------- 3.2% 3.2% 5 0.048s
+ │ └─ReflectiveTactics.unify_abstract_ 5.2% 7.3% 1 0.292s
+ │ └unify (constr) (constr) --------- 2.1% 2.1% 1 0.084s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 11.1% 1 0.440s
+ ├─Glue.zrange_to_reflective --------- 0.0% 7.1% 1 0.284s
+ │└Glue.zrange_to_reflective_goal ---- 4.3% 5.5% 1 0.220s
+ └─Glue.split_BoundedWordToZ --------- 0.1% 2.0% 1 0.080s
+
+src/Specific/X25519/C64/fecarry (real: 27.11, user: 24.99, sys: 0.21, mem: 786052 ko)
+COQC src/Specific/solinas32_2e255m765_12limbs/Synthesis.v
+src/Specific/solinas32_2e255m765_12limbs/Synthesis (real: 40.13, user: 36.92, sys: 0.26, mem: 728464 ko)
+COQC src/Specific/solinas32_2e255m765_13limbs/Synthesis.v
+src/Specific/solinas32_2e255m765_13limbs/Synthesis (real: 49.44, user: 45.75, sys: 0.18, mem: 744240 ko)
+COQC src/Specific/X25519/C64/femul.v
+Finished transaction in 8.415 secs (7.664u,0.015s) (successful)
+total time: 7.616s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 94.8% 1 7.220s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 85.0% 1 6.476s
+─ReflectiveTactics.solve_side_conditions 0.0% 84.2% 1 6.416s
+─ReflectiveTactics.do_reify ------------ 0.0% 50.3% 1 3.832s
+─Reify.Reify_rhs_gen ------------------- 1.8% 49.4% 1 3.760s
+─ReflectiveTactics.solve_post_reified_si 0.5% 33.9% 1 2.584s
+─Reify.do_reify_abs_goal --------------- 31.1% 31.4% 2 2.392s
+─Reify.do_reifyf_goal ------------------ 30.0% 30.3% 58 1.528s
+─UnifyAbstractReflexivity.unify_transfor 22.1% 27.3% 7 0.600s
+─Glue.refine_to_reflective_glue' ------- 0.0% 9.8% 1 0.744s
+─eexact -------------------------------- 8.2% 8.2% 60 0.024s
+─Glue.zrange_to_reflective ------------- 0.1% 6.8% 1 0.516s
+─unify (constr) (constr) --------------- 5.9% 5.9% 6 0.124s
+─prove_interp_compile_correct ---------- 0.0% 5.8% 1 0.444s
+─ReflectiveTactics.unify_abstract_cbv_in 3.9% 5.7% 1 0.432s
+─rewrite ?EtaInterp.InterpExprEta ------ 5.4% 5.4% 1 0.408s
+─synthesize ---------------------------- 0.0% 5.2% 1 0.396s
+─Glue.zrange_to_reflective_goal -------- 3.0% 5.0% 1 0.384s
+─IntegrationTestTemporaryMiscCommon.do_r 0.1% 4.8% 1 0.364s
+─change G' ----------------------------- 3.9% 3.9% 1 0.300s
+─rewrite H ----------------------------- 3.0% 3.0% 1 0.232s
+─tac ----------------------------------- 1.5% 2.3% 2 0.176s
+─Reify.transitivity_tt ----------------- 0.0% 2.1% 2 0.092s
+─reflexivity --------------------------- 2.0% 2.0% 7 0.052s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 94.8% 1 7.220s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 85.0% 1 6.476s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 84.2% 1 6.416s
+ │ ├─ReflectiveTactics.do_reify -------- 0.0% 50.3% 1 3.832s
+ │ │└Reify.Reify_rhs_gen --------------- 1.8% 49.4% 1 3.760s
+ │ │ ├─Reify.do_reify_abs_goal --------- 31.1% 31.4% 2 2.392s
+ │ │ │└Reify.do_reifyf_goal ------------ 30.0% 30.3% 58 1.528s
+ │ │ │└eexact -------------------------- 7.6% 7.6% 58 0.020s
+ │ │ ├─prove_interp_compile_correct ---- 0.0% 5.8% 1 0.444s
+ │ │ │└rewrite ?EtaInterp.InterpExprEta 5.4% 5.4% 1 0.408s
+ │ │ ├─rewrite H ----------------------- 3.0% 3.0% 1 0.232s
+ │ │ ├─tac ----------------------------- 1.5% 2.3% 1 0.176s
+ │ │ └─Reify.transitivity_tt ----------- 0.0% 2.1% 2 0.092s
+ │ └─ReflectiveTactics.solve_post_reifie 0.5% 33.9% 1 2.584s
+ │ ├─UnifyAbstractReflexivity.unify_tr 22.1% 27.3% 7 0.600s
+ │ │└unify (constr) (constr) --------- 4.3% 4.3% 5 0.096s
+ │ └─ReflectiveTactics.unify_abstract_ 3.9% 5.7% 1 0.432s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 9.8% 1 0.744s
+ └Glue.zrange_to_reflective ----------- 0.1% 6.8% 1 0.516s
+ └Glue.zrange_to_reflective_goal ------ 3.0% 5.0% 1 0.384s
+─synthesize ---------------------------- 0.0% 5.2% 1 0.396s
+└IntegrationTestTemporaryMiscCommon.do_r 0.1% 4.8% 1 0.364s
+└change G' ----------------------------- 3.9% 3.9% 1 0.300s
+
+Finished transaction in 14.616 secs (13.528u,0.008s) (successful)
+Closed under the global context
+total time: 7.616s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 94.8% 1 7.220s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 85.0% 1 6.476s
+─ReflectiveTactics.solve_side_conditions 0.0% 84.2% 1 6.416s
+─ReflectiveTactics.do_reify ------------ 0.0% 50.3% 1 3.832s
+─Reify.Reify_rhs_gen ------------------- 1.8% 49.4% 1 3.760s
+─ReflectiveTactics.solve_post_reified_si 0.5% 33.9% 1 2.584s
+─Reify.do_reify_abs_goal --------------- 31.1% 31.4% 2 2.392s
+─Reify.do_reifyf_goal ------------------ 30.0% 30.3% 58 1.528s
+─UnifyAbstractReflexivity.unify_transfor 22.1% 27.3% 7 0.600s
+─Glue.refine_to_reflective_glue' ------- 0.0% 9.8% 1 0.744s
+─eexact -------------------------------- 8.2% 8.2% 60 0.024s
+─Glue.zrange_to_reflective ------------- 0.1% 6.8% 1 0.516s
+─unify (constr) (constr) --------------- 5.9% 5.9% 6 0.124s
+─prove_interp_compile_correct ---------- 0.0% 5.8% 1 0.444s
+─ReflectiveTactics.unify_abstract_cbv_in 3.9% 5.7% 1 0.432s
+─rewrite ?EtaInterp.InterpExprEta ------ 5.4% 5.4% 1 0.408s
+─synthesize ---------------------------- 0.0% 5.2% 1 0.396s
+─Glue.zrange_to_reflective_goal -------- 3.0% 5.0% 1 0.384s
+─IntegrationTestTemporaryMiscCommon.do_r 0.1% 4.8% 1 0.364s
+─change G' ----------------------------- 3.9% 3.9% 1 0.300s
+─rewrite H ----------------------------- 3.0% 3.0% 1 0.232s
+─tac ----------------------------------- 1.5% 2.3% 2 0.176s
+─Reify.transitivity_tt ----------------- 0.0% 2.1% 2 0.092s
+─reflexivity --------------------------- 2.0% 2.0% 7 0.052s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 94.8% 1 7.220s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 85.0% 1 6.476s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 84.2% 1 6.416s
+ │ ├─ReflectiveTactics.do_reify -------- 0.0% 50.3% 1 3.832s
+ │ │└Reify.Reify_rhs_gen --------------- 1.8% 49.4% 1 3.760s
+ │ │ ├─Reify.do_reify_abs_goal --------- 31.1% 31.4% 2 2.392s
+ │ │ │└Reify.do_reifyf_goal ------------ 30.0% 30.3% 58 1.528s
+ │ │ │└eexact -------------------------- 7.6% 7.6% 58 0.020s
+ │ │ ├─prove_interp_compile_correct ---- 0.0% 5.8% 1 0.444s
+ │ │ │└rewrite ?EtaInterp.InterpExprEta 5.4% 5.4% 1 0.408s
+ │ │ ├─rewrite H ----------------------- 3.0% 3.0% 1 0.232s
+ │ │ ├─tac ----------------------------- 1.5% 2.3% 1 0.176s
+ │ │ └─Reify.transitivity_tt ----------- 0.0% 2.1% 2 0.092s
+ │ └─ReflectiveTactics.solve_post_reifie 0.5% 33.9% 1 2.584s
+ │ ├─UnifyAbstractReflexivity.unify_tr 22.1% 27.3% 7 0.600s
+ │ │└unify (constr) (constr) --------- 4.3% 4.3% 5 0.096s
+ │ └─ReflectiveTactics.unify_abstract_ 3.9% 5.7% 1 0.432s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 9.8% 1 0.744s
+ └Glue.zrange_to_reflective ----------- 0.1% 6.8% 1 0.516s
+ └Glue.zrange_to_reflective_goal ------ 3.0% 5.0% 1 0.384s
+─synthesize ---------------------------- 0.0% 5.2% 1 0.396s
+└IntegrationTestTemporaryMiscCommon.do_r 0.1% 4.8% 1 0.364s
+└change G' ----------------------------- 3.9% 3.9% 1 0.300s
+
+src/Specific/X25519/C64/femul (real: 39.72, user: 36.32, sys: 0.26, mem: 825448 ko)
+COQC src/Specific/X25519/C64/feaddDisplay > src/Specific/X25519/C64/feaddDisplay.log
+COQC src/Specific/X25519/C64/fecarryDisplay > src/Specific/X25519/C64/fecarryDisplay.log
+COQC src/Specific/X25519/C64/fesub.v
+Finished transaction in 3.513 secs (3.211u,0.s) (successful)
+total time: 3.164s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 97.6% 1 3.088s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 74.1% 1 2.344s
+─ReflectiveTactics.solve_side_conditions 0.0% 72.9% 1 2.308s
+─ReflectiveTactics.do_reify ------------ 0.0% 38.6% 1 1.220s
+─Reify.Reify_rhs_gen ------------------- 1.5% 37.2% 1 1.176s
+─ReflectiveTactics.solve_post_reified_si 0.9% 34.4% 1 1.088s
+─UnifyAbstractReflexivity.unify_transfor 19.2% 23.9% 7 0.204s
+─Glue.refine_to_reflective_glue' ------- 0.0% 23.5% 1 0.744s
+─Reify.do_reify_abs_goal --------------- 19.2% 19.5% 2 0.616s
+─Reify.do_reifyf_goal ------------------ 18.0% 18.3% 16 0.580s
+─Glue.zrange_to_reflective ------------- 0.1% 15.4% 1 0.488s
+─Glue.zrange_to_reflective_goal -------- 6.8% 11.5% 1 0.364s
+─ReflectiveTactics.unify_abstract_cbv_in 6.2% 9.0% 1 0.284s
+─unify (constr) (constr) --------------- 5.9% 5.9% 6 0.080s
+─Glue.pattern_sig_sig_assoc ------------ 0.0% 4.6% 1 0.144s
+─eexact -------------------------------- 4.4% 4.4% 18 0.012s
+─Glue.pattern_proj1_sig_in_sig --------- 1.4% 4.3% 1 0.136s
+─prove_interp_compile_correct ---------- 0.0% 3.9% 1 0.124s
+─rewrite H ----------------------------- 3.8% 3.8% 1 0.120s
+─assert (H : is_bounded_by' bounds (map' 3.8% 3.8% 2 0.064s
+─rewrite ?EtaInterp.InterpExprEta ------ 3.5% 3.5% 1 0.112s
+─pose proof (pf : Interpretation.Bo 2.9% 2.9% 1 0.092s
+─Glue.split_BoundedWordToZ ------------- 0.1% 2.8% 1 0.088s
+─tac ----------------------------------- 1.9% 2.5% 2 0.080s
+─reflexivity --------------------------- 2.4% 2.4% 7 0.028s
+─synthesize ---------------------------- 0.0% 2.4% 1 0.076s
+─destruct_sig -------------------------- 0.0% 2.4% 4 0.040s
+─destruct x ---------------------------- 2.4% 2.4% 4 0.032s
+─clearbody (ne_var_list) --------------- 2.3% 2.3% 4 0.060s
+─Reify.transitivity_tt ----------------- 0.1% 2.3% 2 0.036s
+─transitivity -------------------------- 2.1% 2.1% 5 0.032s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 97.6% 1 3.088s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 74.1% 1 2.344s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 72.9% 1 2.308s
+ │ ├─ReflectiveTactics.do_reify -------- 0.0% 38.6% 1 1.220s
+ │ │└Reify.Reify_rhs_gen --------------- 1.5% 37.2% 1 1.176s
+ │ │ ├─Reify.do_reify_abs_goal --------- 19.2% 19.5% 2 0.616s
+ │ │ │└Reify.do_reifyf_goal ------------ 18.0% 18.3% 16 0.580s
+ │ │ │└eexact -------------------------- 3.9% 3.9% 16 0.012s
+ │ │ ├─prove_interp_compile_correct ---- 0.0% 3.9% 1 0.124s
+ │ │ │└rewrite ?EtaInterp.InterpExprEta 3.5% 3.5% 1 0.112s
+ │ │ ├─rewrite H ----------------------- 3.8% 3.8% 1 0.120s
+ │ │ ├─tac ----------------------------- 1.9% 2.5% 1 0.080s
+ │ │ └─Reify.transitivity_tt ----------- 0.1% 2.3% 2 0.036s
+ │ │ └transitivity -------------------- 2.0% 2.0% 4 0.032s
+ │ └─ReflectiveTactics.solve_post_reifie 0.9% 34.4% 1 1.088s
+ │ ├─UnifyAbstractReflexivity.unify_tr 19.2% 23.9% 7 0.204s
+ │ │└unify (constr) (constr) --------- 3.4% 3.4% 5 0.036s
+ │ └─ReflectiveTactics.unify_abstract_ 6.2% 9.0% 1 0.284s
+ │ └unify (constr) (constr) --------- 2.5% 2.5% 1 0.080s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 23.5% 1 0.744s
+ ├─Glue.zrange_to_reflective --------- 0.1% 15.4% 1 0.488s
+ │ ├─Glue.zrange_to_reflective_goal -- 6.8% 11.5% 1 0.364s
+ │ │└pose proof (pf : Interpretat 2.9% 2.9% 1 0.092s
+ │ └─assert (H : is_bounded_by' bounds 3.8% 3.8% 2 0.064s
+ ├─Glue.pattern_sig_sig_assoc -------- 0.0% 4.6% 1 0.144s
+ │└Glue.pattern_proj1_sig_in_sig ----- 1.4% 4.3% 1 0.136s
+ └─Glue.split_BoundedWordToZ --------- 0.1% 2.8% 1 0.088s
+ └destruct_sig ---------------------- 0.0% 2.4% 4 0.040s
+─synthesize ---------------------------- 0.0% 2.4% 1 0.076s
+
+Finished transaction in 6.12 secs (5.64u,0.008s) (successful)
+Closed under the global context
+total time: 3.164s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 97.6% 1 3.088s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 74.1% 1 2.344s
+─ReflectiveTactics.solve_side_conditions 0.0% 72.9% 1 2.308s
+─ReflectiveTactics.do_reify ------------ 0.0% 38.6% 1 1.220s
+─Reify.Reify_rhs_gen ------------------- 1.5% 37.2% 1 1.176s
+─ReflectiveTactics.solve_post_reified_si 0.9% 34.4% 1 1.088s
+─UnifyAbstractReflexivity.unify_transfor 19.2% 23.9% 7 0.204s
+─Glue.refine_to_reflective_glue' ------- 0.0% 23.5% 1 0.744s
+─Reify.do_reify_abs_goal --------------- 19.2% 19.5% 2 0.616s
+─Reify.do_reifyf_goal ------------------ 18.0% 18.3% 16 0.580s
+─Glue.zrange_to_reflective ------------- 0.1% 15.4% 1 0.488s
+─Glue.zrange_to_reflective_goal -------- 6.8% 11.5% 1 0.364s
+─ReflectiveTactics.unify_abstract_cbv_in 6.2% 9.0% 1 0.284s
+─unify (constr) (constr) --------------- 5.9% 5.9% 6 0.080s
+─Glue.pattern_sig_sig_assoc ------------ 0.0% 4.6% 1 0.144s
+─eexact -------------------------------- 4.4% 4.4% 18 0.012s
+─Glue.pattern_proj1_sig_in_sig --------- 1.4% 4.3% 1 0.136s
+─prove_interp_compile_correct ---------- 0.0% 3.9% 1 0.124s
+─rewrite H ----------------------------- 3.8% 3.8% 1 0.120s
+─assert (H : is_bounded_by' bounds (map' 3.8% 3.8% 2 0.064s
+─rewrite ?EtaInterp.InterpExprEta ------ 3.5% 3.5% 1 0.112s
+─pose proof (pf : Interpretation.Bo 2.9% 2.9% 1 0.092s
+─Glue.split_BoundedWordToZ ------------- 0.1% 2.8% 1 0.088s
+─tac ----------------------------------- 1.9% 2.5% 2 0.080s
+─reflexivity --------------------------- 2.4% 2.4% 7 0.028s
+─synthesize ---------------------------- 0.0% 2.4% 1 0.076s
+─destruct_sig -------------------------- 0.0% 2.4% 4 0.040s
+─destruct x ---------------------------- 2.4% 2.4% 4 0.032s
+─clearbody (ne_var_list) --------------- 2.3% 2.3% 4 0.060s
+─Reify.transitivity_tt ----------------- 0.1% 2.3% 2 0.036s
+─transitivity -------------------------- 2.1% 2.1% 5 0.032s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 97.6% 1 3.088s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 74.1% 1 2.344s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 72.9% 1 2.308s
+ │ ├─ReflectiveTactics.do_reify -------- 0.0% 38.6% 1 1.220s
+ │ │└Reify.Reify_rhs_gen --------------- 1.5% 37.2% 1 1.176s
+ │ │ ├─Reify.do_reify_abs_goal --------- 19.2% 19.5% 2 0.616s
+ │ │ │└Reify.do_reifyf_goal ------------ 18.0% 18.3% 16 0.580s
+ │ │ │└eexact -------------------------- 3.9% 3.9% 16 0.012s
+ │ │ ├─prove_interp_compile_correct ---- 0.0% 3.9% 1 0.124s
+ │ │ │└rewrite ?EtaInterp.InterpExprEta 3.5% 3.5% 1 0.112s
+ │ │ ├─rewrite H ----------------------- 3.8% 3.8% 1 0.120s
+ │ │ ├─tac ----------------------------- 1.9% 2.5% 1 0.080s
+ │ │ └─Reify.transitivity_tt ----------- 0.1% 2.3% 2 0.036s
+ │ │ └transitivity -------------------- 2.0% 2.0% 4 0.032s
+ │ └─ReflectiveTactics.solve_post_reifie 0.9% 34.4% 1 1.088s
+ │ ├─UnifyAbstractReflexivity.unify_tr 19.2% 23.9% 7 0.204s
+ │ │└unify (constr) (constr) --------- 3.4% 3.4% 5 0.036s
+ │ └─ReflectiveTactics.unify_abstract_ 6.2% 9.0% 1 0.284s
+ │ └unify (constr) (constr) --------- 2.5% 2.5% 1 0.080s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 23.5% 1 0.744s
+ ├─Glue.zrange_to_reflective --------- 0.1% 15.4% 1 0.488s
+ │ ├─Glue.zrange_to_reflective_goal -- 6.8% 11.5% 1 0.364s
+ │ │└pose proof (pf : Interpretat 2.9% 2.9% 1 0.092s
+ │ └─assert (H : is_bounded_by' bounds 3.8% 3.8% 2 0.064s
+ ├─Glue.pattern_sig_sig_assoc -------- 0.0% 4.6% 1 0.144s
+ │└Glue.pattern_proj1_sig_in_sig ----- 1.4% 4.3% 1 0.136s
+ └─Glue.split_BoundedWordToZ --------- 0.1% 2.8% 1 0.088s
+ └destruct_sig ---------------------- 0.0% 2.4% 4 0.040s
+─synthesize ---------------------------- 0.0% 2.4% 1 0.076s
+
+src/Specific/X25519/C64/fesub (real: 24.71, user: 22.65, sys: 0.24, mem: 778792 ko)
+COQC src/Specific/X25519/C64/fesquare.v
+Finished transaction in 6.132 secs (5.516u,0.012s) (successful)
+total time: 5.480s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize ---------------------------- -0.0% 100.0% 1 5.480s
+─Pipeline.refine_reflectively_gen ------ 0.0% 95.7% 1 5.244s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 88.6% 1 4.856s
+─ReflectiveTactics.solve_side_conditions 0.0% 87.7% 1 4.804s
+─ReflectiveTactics.do_reify ------------ 0.0% 53.3% 1 2.920s
+─Reify.Reify_rhs_gen ------------------- 2.0% 52.5% 1 2.876s
+─ReflectiveTactics.solve_post_reified_si 0.6% 34.4% 1 1.884s
+─Reify.do_reify_abs_goal --------------- 33.2% 33.6% 2 1.844s
+─Reify.do_reifyf_goal ------------------ 31.5% 32.0% 47 1.392s
+─UnifyAbstractReflexivity.unify_transfor 21.9% 26.6% 7 0.400s
+─eexact -------------------------------- 10.0% 10.0% 49 0.028s
+─Glue.refine_to_reflective_glue' ------- 0.0% 7.1% 1 0.388s
+─ReflectiveTactics.unify_abstract_cbv_in 5.0% 6.9% 1 0.380s
+─unify (constr) (constr) --------------- 5.8% 5.8% 6 0.104s
+─prove_interp_compile_correct ---------- 0.0% 5.8% 1 0.316s
+─rewrite ?EtaInterp.InterpExprEta ------ 5.3% 5.3% 1 0.288s
+─Glue.zrange_to_reflective ------------- 0.1% 5.1% 1 0.280s
+─IntegrationTestTemporaryMiscCommon.do_r 0.1% 4.0% 1 0.220s
+─Glue.zrange_to_reflective_goal -------- 3.1% 3.9% 1 0.212s
+─change G' ----------------------------- 3.4% 3.4% 1 0.184s
+─tac ----------------------------------- 2.0% 2.8% 2 0.156s
+─rewrite H ----------------------------- 2.8% 2.8% 1 0.156s
+─reflexivity --------------------------- 2.8% 2.8% 7 0.064s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize ---------------------------- -0.0% 100.0% 1 5.480s
+ ├─Pipeline.refine_reflectively_gen ---- 0.0% 95.7% 1 5.244s
+ │ ├─ReflectiveTactics.do_reflective_pip 0.0% 88.6% 1 4.856s
+ │ │└ReflectiveTactics.solve_side_condit 0.0% 87.7% 1 4.804s
+ │ │ ├─ReflectiveTactics.do_reify ------ 0.0% 53.3% 1 2.920s
+ │ │ │└Reify.Reify_rhs_gen ------------- 2.0% 52.5% 1 2.876s
+ │ │ │ ├─Reify.do_reify_abs_goal ------- 33.2% 33.6% 2 1.844s
+ │ │ │ │└Reify.do_reifyf_goal ---------- 31.5% 32.0% 47 1.392s
+ │ │ │ │└eexact ------------------------ 9.1% 9.1% 47 0.024s
+ │ │ │ ├─prove_interp_compile_correct -- 0.0% 5.8% 1 0.316s
+ │ │ │ │└rewrite ?EtaInterp.InterpExprEt 5.3% 5.3% 1 0.288s
+ │ │ │ ├─tac --------------------------- 2.0% 2.8% 1 0.156s
+ │ │ │ └─rewrite H --------------------- 2.8% 2.8% 1 0.156s
+ │ │ └─ReflectiveTactics.solve_post_reif 0.6% 34.4% 1 1.884s
+ │ │ ├─UnifyAbstractReflexivity.unify_ 21.9% 26.6% 7 0.400s
+ │ │ │└unify (constr) (constr) ------- 3.9% 3.9% 5 0.072s
+ │ │ └─ReflectiveTactics.unify_abstrac 5.0% 6.9% 1 0.380s
+ │ └─Glue.refine_to_reflective_glue' --- 0.0% 7.1% 1 0.388s
+ │ └Glue.zrange_to_reflective --------- 0.1% 5.1% 1 0.280s
+ │ └Glue.zrange_to_reflective_goal ---- 3.1% 3.9% 1 0.212s
+ └─IntegrationTestTemporaryMiscCommon.do 0.1% 4.0% 1 0.220s
+ └change G' --------------------------- 3.4% 3.4% 1 0.184s
+
+Finished transaction in 10.475 secs (9.728u,0.007s) (successful)
+Closed under the global context
+total time: 5.480s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize ---------------------------- -0.0% 100.0% 1 5.480s
+─Pipeline.refine_reflectively_gen ------ 0.0% 95.7% 1 5.244s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 88.6% 1 4.856s
+─ReflectiveTactics.solve_side_conditions 0.0% 87.7% 1 4.804s
+─ReflectiveTactics.do_reify ------------ 0.0% 53.3% 1 2.920s
+─Reify.Reify_rhs_gen ------------------- 2.0% 52.5% 1 2.876s
+─ReflectiveTactics.solve_post_reified_si 0.6% 34.4% 1 1.884s
+─Reify.do_reify_abs_goal --------------- 33.2% 33.6% 2 1.844s
+─Reify.do_reifyf_goal ------------------ 31.5% 32.0% 47 1.392s
+─UnifyAbstractReflexivity.unify_transfor 21.9% 26.6% 7 0.400s
+─eexact -------------------------------- 10.0% 10.0% 49 0.028s
+─Glue.refine_to_reflective_glue' ------- 0.0% 7.1% 1 0.388s
+─ReflectiveTactics.unify_abstract_cbv_in 5.0% 6.9% 1 0.380s
+─unify (constr) (constr) --------------- 5.8% 5.8% 6 0.104s
+─prove_interp_compile_correct ---------- 0.0% 5.8% 1 0.316s
+─rewrite ?EtaInterp.InterpExprEta ------ 5.3% 5.3% 1 0.288s
+─Glue.zrange_to_reflective ------------- 0.1% 5.1% 1 0.280s
+─IntegrationTestTemporaryMiscCommon.do_r 0.1% 4.0% 1 0.220s
+─Glue.zrange_to_reflective_goal -------- 3.1% 3.9% 1 0.212s
+─change G' ----------------------------- 3.4% 3.4% 1 0.184s
+─tac ----------------------------------- 2.0% 2.8% 2 0.156s
+─rewrite H ----------------------------- 2.8% 2.8% 1 0.156s
+─reflexivity --------------------------- 2.8% 2.8% 7 0.064s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize ---------------------------- -0.0% 100.0% 1 5.480s
+ ├─Pipeline.refine_reflectively_gen ---- 0.0% 95.7% 1 5.244s
+ │ ├─ReflectiveTactics.do_reflective_pip 0.0% 88.6% 1 4.856s
+ │ │└ReflectiveTactics.solve_side_condit 0.0% 87.7% 1 4.804s
+ │ │ ├─ReflectiveTactics.do_reify ------ 0.0% 53.3% 1 2.920s
+ │ │ │└Reify.Reify_rhs_gen ------------- 2.0% 52.5% 1 2.876s
+ │ │ │ ├─Reify.do_reify_abs_goal ------- 33.2% 33.6% 2 1.844s
+ │ │ │ │└Reify.do_reifyf_goal ---------- 31.5% 32.0% 47 1.392s
+ │ │ │ │└eexact ------------------------ 9.1% 9.1% 47 0.024s
+ │ │ │ ├─prove_interp_compile_correct -- 0.0% 5.8% 1 0.316s
+ │ │ │ │└rewrite ?EtaInterp.InterpExprEt 5.3% 5.3% 1 0.288s
+ │ │ │ ├─tac --------------------------- 2.0% 2.8% 1 0.156s
+ │ │ │ └─rewrite H --------------------- 2.8% 2.8% 1 0.156s
+ │ │ └─ReflectiveTactics.solve_post_reif 0.6% 34.4% 1 1.884s
+ │ │ ├─UnifyAbstractReflexivity.unify_ 21.9% 26.6% 7 0.400s
+ │ │ │└unify (constr) (constr) ------- 3.9% 3.9% 5 0.072s
+ │ │ └─ReflectiveTactics.unify_abstrac 5.0% 6.9% 1 0.380s
+ │ └─Glue.refine_to_reflective_glue' --- 0.0% 7.1% 1 0.388s
+ │ └Glue.zrange_to_reflective --------- 0.1% 5.1% 1 0.280s
+ │ └Glue.zrange_to_reflective_goal ---- 3.1% 3.9% 1 0.212s
+ └─IntegrationTestTemporaryMiscCommon.do 0.1% 4.0% 1 0.220s
+ └change G' --------------------------- 3.4% 3.4% 1 0.184s
+
+src/Specific/X25519/C64/fesquare (real: 33.08, user: 30.13, sys: 0.24, mem: 799620 ko)
+COQC src/Specific/X25519/C64/femulDisplay > src/Specific/X25519/C64/femulDisplay.log
+COQC src/Specific/X25519/C64/freeze.v
+Finished transaction in 7.307 secs (6.763u,0.011s) (successful)
+total time: 6.732s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_freeze --------------------- 0.0% 100.0% 1 6.732s
+─Pipeline.refine_reflectively_gen ------ 0.0% 99.3% 1 6.684s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 92.8% 1 6.248s
+─ReflectiveTactics.solve_side_conditions 0.0% 92.0% 1 6.192s
+─ReflectiveTactics.do_reify ------------ -0.0% 60.3% 1 4.060s
+─Reify.Reify_rhs_gen ------------------- 1.5% 59.6% 1 4.012s
+─Reify.do_reify_abs_goal --------------- 42.4% 42.7% 2 2.876s
+─Reify.do_reifyf_goal ------------------ 41.3% 41.7% 129 2.804s
+─ReflectiveTactics.solve_post_reified_si 0.6% 31.7% 1 2.132s
+─UnifyAbstractReflexivity.unify_transfor 21.7% 25.8% 7 0.424s
+─eexact -------------------------------- 13.7% 13.7% 131 0.036s
+─Glue.refine_to_reflective_glue' ------- 0.0% 6.5% 1 0.436s
+─prove_interp_compile_correct ---------- 0.0% 5.1% 1 0.344s
+─ReflectiveTactics.unify_abstract_cbv_in 3.4% 5.0% 1 0.336s
+─rewrite ?EtaInterp.InterpExprEta ------ 4.7% 4.7% 1 0.316s
+─unify (constr) (constr) --------------- 4.6% 4.6% 6 0.100s
+─Glue.zrange_to_reflective ------------- 0.0% 4.2% 1 0.280s
+─Glue.zrange_to_reflective_goal -------- 2.4% 3.3% 1 0.220s
+─Reify.transitivity_tt ----------------- 0.1% 2.6% 2 0.116s
+─rewrite H ----------------------------- 2.6% 2.6% 1 0.172s
+─tac ----------------------------------- 1.5% 2.3% 2 0.156s
+─reflexivity --------------------------- 2.3% 2.3% 7 0.052s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_freeze --------------------- 0.0% 100.0% 1 6.732s
+└Pipeline.refine_reflectively_gen ------ 0.0% 99.3% 1 6.684s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 92.8% 1 6.248s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 92.0% 1 6.192s
+ │ ├─ReflectiveTactics.do_reify -------- -0.0% 60.3% 1 4.060s
+ │ │└Reify.Reify_rhs_gen --------------- 1.5% 59.6% 1 4.012s
+ │ │ ├─Reify.do_reify_abs_goal --------- 42.4% 42.7% 2 2.876s
+ │ │ │└Reify.do_reifyf_goal ------------ 41.3% 41.7% 129 2.804s
+ │ │ │└eexact -------------------------- 13.0% 13.0% 129 0.036s
+ │ │ ├─prove_interp_compile_correct ---- 0.0% 5.1% 1 0.344s
+ │ │ │└rewrite ?EtaInterp.InterpExprEta 4.7% 4.7% 1 0.316s
+ │ │ ├─Reify.transitivity_tt ----------- 0.1% 2.6% 2 0.116s
+ │ │ ├─rewrite H ----------------------- 2.6% 2.6% 1 0.172s
+ │ │ └─tac ----------------------------- 1.5% 2.3% 1 0.156s
+ │ └─ReflectiveTactics.solve_post_reifie 0.6% 31.7% 1 2.132s
+ │ ├─UnifyAbstractReflexivity.unify_tr 21.7% 25.8% 7 0.424s
+ │ │└unify (constr) (constr) --------- 3.1% 3.1% 5 0.084s
+ │ └─ReflectiveTactics.unify_abstract_ 3.4% 5.0% 1 0.336s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 6.5% 1 0.436s
+ └Glue.zrange_to_reflective ----------- 0.0% 4.2% 1 0.280s
+ └Glue.zrange_to_reflective_goal ------ 2.4% 3.3% 1 0.220s
+
+Finished transaction in 10.495 secs (9.756u,0.s) (successful)
+Closed under the global context
+total time: 6.732s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_freeze --------------------- 0.0% 100.0% 1 6.732s
+─Pipeline.refine_reflectively_gen ------ 0.0% 99.3% 1 6.684s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 92.8% 1 6.248s
+─ReflectiveTactics.solve_side_conditions 0.0% 92.0% 1 6.192s
+─ReflectiveTactics.do_reify ------------ -0.0% 60.3% 1 4.060s
+─Reify.Reify_rhs_gen ------------------- 1.5% 59.6% 1 4.012s
+─Reify.do_reify_abs_goal --------------- 42.4% 42.7% 2 2.876s
+─Reify.do_reifyf_goal ------------------ 41.3% 41.7% 129 2.804s
+─ReflectiveTactics.solve_post_reified_si 0.6% 31.7% 1 2.132s
+─UnifyAbstractReflexivity.unify_transfor 21.7% 25.8% 7 0.424s
+─eexact -------------------------------- 13.7% 13.7% 131 0.036s
+─Glue.refine_to_reflective_glue' ------- 0.0% 6.5% 1 0.436s
+─prove_interp_compile_correct ---------- 0.0% 5.1% 1 0.344s
+─ReflectiveTactics.unify_abstract_cbv_in 3.4% 5.0% 1 0.336s
+─rewrite ?EtaInterp.InterpExprEta ------ 4.7% 4.7% 1 0.316s
+─unify (constr) (constr) --------------- 4.6% 4.6% 6 0.100s
+─Glue.zrange_to_reflective ------------- 0.0% 4.2% 1 0.280s
+─Glue.zrange_to_reflective_goal -------- 2.4% 3.3% 1 0.220s
+─Reify.transitivity_tt ----------------- 0.1% 2.6% 2 0.116s
+─rewrite H ----------------------------- 2.6% 2.6% 1 0.172s
+─tac ----------------------------------- 1.5% 2.3% 2 0.156s
+─reflexivity --------------------------- 2.3% 2.3% 7 0.052s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_freeze --------------------- 0.0% 100.0% 1 6.732s
+└Pipeline.refine_reflectively_gen ------ 0.0% 99.3% 1 6.684s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 92.8% 1 6.248s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 92.0% 1 6.192s
+ │ ├─ReflectiveTactics.do_reify -------- -0.0% 60.3% 1 4.060s
+ │ │└Reify.Reify_rhs_gen --------------- 1.5% 59.6% 1 4.012s
+ │ │ ├─Reify.do_reify_abs_goal --------- 42.4% 42.7% 2 2.876s
+ │ │ │└Reify.do_reifyf_goal ------------ 41.3% 41.7% 129 2.804s
+ │ │ │└eexact -------------------------- 13.0% 13.0% 129 0.036s
+ │ │ ├─prove_interp_compile_correct ---- 0.0% 5.1% 1 0.344s
+ │ │ │└rewrite ?EtaInterp.InterpExprEta 4.7% 4.7% 1 0.316s
+ │ │ ├─Reify.transitivity_tt ----------- 0.1% 2.6% 2 0.116s
+ │ │ ├─rewrite H ----------------------- 2.6% 2.6% 1 0.172s
+ │ │ └─tac ----------------------------- 1.5% 2.3% 1 0.156s
+ │ └─ReflectiveTactics.solve_post_reifie 0.6% 31.7% 1 2.132s
+ │ ├─UnifyAbstractReflexivity.unify_tr 21.7% 25.8% 7 0.424s
+ │ │└unify (constr) (constr) --------- 3.1% 3.1% 5 0.084s
+ │ └─ReflectiveTactics.unify_abstract_ 3.4% 5.0% 1 0.336s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 6.5% 1 0.436s
+ └Glue.zrange_to_reflective ----------- 0.0% 4.2% 1 0.280s
+ └Glue.zrange_to_reflective_goal ------ 2.4% 3.3% 1 0.220s
+
+src/Specific/X25519/C64/freeze (real: 34.35, user: 31.50, sys: 0.24, mem: 828104 ko)
+COQC src/Specific/NISTP256/AMD64/feadd.v
+Finished transaction in 8.784 secs (8.176u,0.011s) (successful)
+total time: 8.140s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 52.4% 1 4.268s
+─synthesize_montgomery ----------------- 0.0% 47.6% 1 3.872s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 43.8% 1 3.568s
+─ReflectiveTactics.solve_side_conditions 0.0% 43.2% 1 3.520s
+─IntegrationTestTemporaryMiscCommon.fact 1.4% 23.6% 1 1.924s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 22.1% 1 1.796s
+─ReflectiveTactics.do_reify ------------ 0.1% 21.7% 1 1.768s
+─ReflectiveTactics.solve_post_reified_si 0.6% 21.5% 1 1.752s
+─Reify.Reify_rhs_gen ------------------- 1.0% 20.9% 1 1.704s
+─op_sig_side_conditions_t -------------- 0.0% 20.0% 1 1.624s
+─DestructHyps.do_all_matches_then ------ 0.0% 20.0% 8 0.244s
+─DestructHyps.do_one_match_then -------- 0.7% 19.9% 44 0.052s
+─do_tac -------------------------------- 0.0% 19.2% 36 0.052s
+─destruct H ---------------------------- 19.2% 19.2% 36 0.052s
+─rewrite <- (lem : lemT) by by_tac ltac: 0.2% 17.3% 1 1.408s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 17.3% 1 1.408s
+─by_tac -------------------------------- 0.0% 17.1% 4 0.504s
+─rewrite <- (ZRange.is_bounded_by_None_r 16.7% 16.7% 8 0.344s
+─UnifyAbstractReflexivity.unify_transfor 13.3% 16.1% 7 0.360s
+─Reify.do_reify_abs_goal --------------- 9.9% 10.1% 2 0.820s
+─Reify.do_reifyf_goal ------------------ 9.1% 9.3% 93 0.748s
+─Glue.refine_to_reflective_glue' ------- 0.0% 8.6% 1 0.700s
+─Glue.zrange_to_reflective ------------- 0.0% 5.3% 1 0.432s
+─IntegrationTestTemporaryMiscCommon.do_s 0.0% 4.8% 1 0.388s
+─<Crypto.Util.Tactics.MoveLetIn.with_uco 0.9% 4.6% 3 0.368s
+─ReflectiveTactics.unify_abstract_cbv_in 3.3% 4.5% 1 0.368s
+─Glue.zrange_to_reflective_goal -------- 2.6% 4.0% 1 0.324s
+─k ------------------------------------- 3.5% 3.6% 1 0.296s
+─unify (constr) (constr) --------------- 3.3% 3.3% 8 0.092s
+─rewrite H ----------------------------- 2.6% 2.6% 2 0.196s
+─eexact -------------------------------- 2.6% 2.6% 95 0.024s
+─prove_interp_compile_correct ---------- 0.0% 2.5% 1 0.204s
+─apply (fun f => MapProjections.proj2 2.4% 2.4% 2 0.120s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 52.4% 1 4.268s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 43.8% 1 3.568s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 43.2% 1 3.520s
+ │ ├─ReflectiveTactics.do_reify -------- 0.1% 21.7% 1 1.768s
+ │ │└Reify.Reify_rhs_gen --------------- 1.0% 20.9% 1 1.704s
+ │ │ ├─Reify.do_reify_abs_goal --------- 9.9% 10.1% 2 0.820s
+ │ │ │└Reify.do_reifyf_goal ------------ 9.1% 9.3% 93 0.748s
+ │ │ │└eexact -------------------------- 2.3% 2.3% 93 0.024s
+ │ │ ├─prove_interp_compile_correct ---- 0.0% 2.5% 1 0.204s
+ │ │ └─rewrite H ----------------------- 2.4% 2.4% 1 0.196s
+ │ └─ReflectiveTactics.solve_post_reifie 0.6% 21.5% 1 1.752s
+ │ ├─UnifyAbstractReflexivity.unify_tr 13.3% 16.1% 7 0.360s
+ │ │└unify (constr) (constr) --------- 2.2% 2.2% 5 0.064s
+ │ └─ReflectiveTactics.unify_abstract_ 3.3% 4.5% 1 0.368s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 8.6% 1 0.700s
+ └Glue.zrange_to_reflective ----------- 0.0% 5.3% 1 0.432s
+ └Glue.zrange_to_reflective_goal ------ 2.6% 4.0% 1 0.324s
+─synthesize_montgomery ----------------- 0.0% 47.6% 1 3.872s
+ ├─IntegrationTestTemporaryMiscCommon.fa 1.4% 23.6% 1 1.924s
+ │└op_sig_side_conditions_t ------------ 0.0% 20.0% 1 1.624s
+ │ ├─DestructHyps.do_all_matches_then -- 0.0% 11.4% 4 0.244s
+ │ │└DestructHyps.do_one_match_then ---- 0.3% 11.4% 24 0.052s
+ │ │└do_tac ---------------------------- 0.0% 11.1% 20 0.052s
+ │ │└destruct H ------------------------ 11.1% 11.1% 20 0.052s
+ │ └─rewrite <- (ZRange.is_bounded_by_No 8.4% 8.4% 4 0.328s
+ └─IntegrationTestTemporaryMiscCommon.do 0.0% 22.1% 1 1.796s
+ ├─IntegrationTestTemporaryMiscCommon. 0.0% 17.3% 1 1.408s
+ │└rewrite <- (lem : lemT) by by_tac l 0.2% 17.3% 1 1.408s
+ │└by_tac ---------------------------- 0.0% 17.1% 4 0.504s
+ │ ├─DestructHyps.do_all_matches_then 0.0% 8.6% 4 0.184s
+ │ │└DestructHyps.do_one_match_then -- 0.3% 8.5% 20 0.052s
+ │ │└do_tac -------------------------- 0.0% 8.2% 16 0.052s
+ │ │└destruct H ---------------------- 8.2% 8.2% 16 0.052s
+ │ └─rewrite <- (ZRange.is_bounded_by_ 8.3% 8.3% 4 0.344s
+ └─IntegrationTestTemporaryMiscCommon. 0.0% 4.8% 1 0.388s
+ └<Crypto.Util.Tactics.MoveLetIn.with 0.9% 4.6% 3 0.368s
+ └k --------------------------------- 3.5% 3.6% 1 0.296s
+
+Finished transaction in 13.363 secs (12.516u,0.008s) (successful)
+Closed under the global context
+total time: 8.140s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 52.4% 1 4.268s
+─synthesize_montgomery ----------------- 0.0% 47.6% 1 3.872s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 43.8% 1 3.568s
+─ReflectiveTactics.solve_side_conditions 0.0% 43.2% 1 3.520s
+─IntegrationTestTemporaryMiscCommon.fact 1.4% 23.6% 1 1.924s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 22.1% 1 1.796s
+─ReflectiveTactics.do_reify ------------ 0.1% 21.7% 1 1.768s
+─ReflectiveTactics.solve_post_reified_si 0.6% 21.5% 1 1.752s
+─Reify.Reify_rhs_gen ------------------- 1.0% 20.9% 1 1.704s
+─op_sig_side_conditions_t -------------- 0.0% 20.0% 1 1.624s
+─DestructHyps.do_all_matches_then ------ 0.0% 20.0% 8 0.244s
+─DestructHyps.do_one_match_then -------- 0.7% 19.9% 44 0.052s
+─do_tac -------------------------------- 0.0% 19.2% 36 0.052s
+─destruct H ---------------------------- 19.2% 19.2% 36 0.052s
+─rewrite <- (lem : lemT) by by_tac ltac: 0.2% 17.3% 1 1.408s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 17.3% 1 1.408s
+─by_tac -------------------------------- 0.0% 17.1% 4 0.504s
+─rewrite <- (ZRange.is_bounded_by_None_r 16.7% 16.7% 8 0.344s
+─UnifyAbstractReflexivity.unify_transfor 13.3% 16.1% 7 0.360s
+─Reify.do_reify_abs_goal --------------- 9.9% 10.1% 2 0.820s
+─Reify.do_reifyf_goal ------------------ 9.1% 9.3% 93 0.748s
+─Glue.refine_to_reflective_glue' ------- 0.0% 8.6% 1 0.700s
+─Glue.zrange_to_reflective ------------- 0.0% 5.3% 1 0.432s
+─IntegrationTestTemporaryMiscCommon.do_s 0.0% 4.8% 1 0.388s
+─<Crypto.Util.Tactics.MoveLetIn.with_uco 0.9% 4.6% 3 0.368s
+─ReflectiveTactics.unify_abstract_cbv_in 3.3% 4.5% 1 0.368s
+─Glue.zrange_to_reflective_goal -------- 2.6% 4.0% 1 0.324s
+─k ------------------------------------- 3.5% 3.6% 1 0.296s
+─unify (constr) (constr) --------------- 3.3% 3.3% 8 0.092s
+─rewrite H ----------------------------- 2.6% 2.6% 2 0.196s
+─eexact -------------------------------- 2.6% 2.6% 95 0.024s
+─prove_interp_compile_correct ---------- 0.0% 2.5% 1 0.204s
+─apply (fun f => MapProjections.proj2 2.4% 2.4% 2 0.120s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 52.4% 1 4.268s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 43.8% 1 3.568s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 43.2% 1 3.520s
+ │ ├─ReflectiveTactics.do_reify -------- 0.1% 21.7% 1 1.768s
+ │ │└Reify.Reify_rhs_gen --------------- 1.0% 20.9% 1 1.704s
+ │ │ ├─Reify.do_reify_abs_goal --------- 9.9% 10.1% 2 0.820s
+ │ │ │└Reify.do_reifyf_goal ------------ 9.1% 9.3% 93 0.748s
+ │ │ │└eexact -------------------------- 2.3% 2.3% 93 0.024s
+ │ │ ├─prove_interp_compile_correct ---- 0.0% 2.5% 1 0.204s
+ │ │ └─rewrite H ----------------------- 2.4% 2.4% 1 0.196s
+ │ └─ReflectiveTactics.solve_post_reifie 0.6% 21.5% 1 1.752s
+ │ ├─UnifyAbstractReflexivity.unify_tr 13.3% 16.1% 7 0.360s
+ │ │└unify (constr) (constr) --------- 2.2% 2.2% 5 0.064s
+ │ └─ReflectiveTactics.unify_abstract_ 3.3% 4.5% 1 0.368s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 8.6% 1 0.700s
+ └Glue.zrange_to_reflective ----------- 0.0% 5.3% 1 0.432s
+ └Glue.zrange_to_reflective_goal ------ 2.6% 4.0% 1 0.324s
+─synthesize_montgomery ----------------- 0.0% 47.6% 1 3.872s
+ ├─IntegrationTestTemporaryMiscCommon.fa 1.4% 23.6% 1 1.924s
+ │└op_sig_side_conditions_t ------------ 0.0% 20.0% 1 1.624s
+ │ ├─DestructHyps.do_all_matches_then -- 0.0% 11.4% 4 0.244s
+ │ │└DestructHyps.do_one_match_then ---- 0.3% 11.4% 24 0.052s
+ │ │└do_tac ---------------------------- 0.0% 11.1% 20 0.052s
+ │ │└destruct H ------------------------ 11.1% 11.1% 20 0.052s
+ │ └─rewrite <- (ZRange.is_bounded_by_No 8.4% 8.4% 4 0.328s
+ └─IntegrationTestTemporaryMiscCommon.do 0.0% 22.1% 1 1.796s
+ ├─IntegrationTestTemporaryMiscCommon. 0.0% 17.3% 1 1.408s
+ │└rewrite <- (lem : lemT) by by_tac l 0.2% 17.3% 1 1.408s
+ │└by_tac ---------------------------- 0.0% 17.1% 4 0.504s
+ │ ├─DestructHyps.do_all_matches_then 0.0% 8.6% 4 0.184s
+ │ │└DestructHyps.do_one_match_then -- 0.3% 8.5% 20 0.052s
+ │ │└do_tac -------------------------- 0.0% 8.2% 16 0.052s
+ │ │└destruct H ---------------------- 8.2% 8.2% 16 0.052s
+ │ └─rewrite <- (ZRange.is_bounded_by_ 8.3% 8.3% 4 0.344s
+ └─IntegrationTestTemporaryMiscCommon. 0.0% 4.8% 1 0.388s
+ └<Crypto.Util.Tactics.MoveLetIn.with 0.9% 4.6% 3 0.368s
+ └k --------------------------------- 3.5% 3.6% 1 0.296s
+
+src/Specific/NISTP256/AMD64/feadd (real: 38.19, user: 35.40, sys: 0.30, mem: 799216 ko)
+COQC src/Specific/NISTP256/AMD64/fenz.v
+Finished transaction in 6.356 secs (5.82u,0.004s) (successful)
+total time: 5.800s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_nonzero -------------------- 0.0% 100.0% 1 5.800s
+─IntegrationTestTemporaryMiscCommon.nonz 0.2% 85.5% 1 4.960s
+─destruct (Decidable.dec x), (Decidable. 37.4% 37.4% 1 2.168s
+─destruct (Decidable.dec x) as [H| H] -- 22.0% 22.0% 1 1.276s
+─Pipeline.refine_reflectively_gen ------ 0.0% 14.5% 1 0.840s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 10.9% 1 0.632s
+─ReflectiveTactics.solve_side_conditions 0.0% 10.6% 1 0.612s
+─ReflectiveTactics.solve_post_reified_si 0.3% 8.5% 1 0.492s
+─IntegrationTestTemporaryMiscCommon.op_s 0.1% 8.1% 2 0.368s
+─rewrite <- (ZRange.is_bounded_by_None_r 5.2% 5.2% 2 0.288s
+─UnifyAbstractReflexivity.unify_transfor 3.4% 4.3% 7 0.076s
+─ReflectiveTactics.unify_abstract_cbv_in 2.8% 3.8% 1 0.220s
+─Glue.refine_to_reflective_glue' ------- 0.1% 3.6% 1 0.208s
+─rewrite H' ---------------------------- 3.4% 3.4% 1 0.200s
+─generalize dependent (constr) --------- 3.0% 3.0% 4 0.060s
+─congruence ---------------------------- 2.8% 2.8% 1 0.160s
+─do_tac -------------------------------- 0.0% 2.6% 4 0.044s
+─destruct H ---------------------------- 2.6% 2.6% 4 0.044s
+─IntegrationTestTemporaryMiscCommon.do_s 0.1% 2.6% 1 0.152s
+─DestructHyps.do_one_match_then -------- 0.0% 2.6% 6 0.044s
+─DestructHyps.do_all_matches_then ------ 0.0% 2.6% 2 0.076s
+─<Crypto.Util.Tactics.MoveLetIn.with_uco 0.4% 2.5% 3 0.140s
+─Glue.zrange_to_reflective ------------- 0.0% 2.2% 1 0.128s
+─rewrite H ----------------------------- 1.9% 2.1% 3 0.112s
+─ReflectiveTactics.do_reify ------------ 0.0% 2.1% 1 0.120s
+─k ------------------------------------- 1.9% 2.0% 1 0.116s
+─Reify.Reify_rhs_gen ------------------- 0.1% 2.0% 1 0.116s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_nonzero -------------------- 0.0% 100.0% 1 5.800s
+ ├─IntegrationTestTemporaryMiscCommon.no 0.2% 85.5% 1 4.960s
+ │ ├─destruct (Decidable.dec x), (Decida 37.4% 37.4% 1 2.168s
+ │ ├─destruct (Decidable.dec x) as [H| H 22.0% 22.0% 1 1.276s
+ │ ├─IntegrationTestTemporaryMiscCommon. 0.1% 8.1% 2 0.368s
+ │ │ ├─rewrite <- (ZRange.is_bounded_by_ 5.2% 5.2% 2 0.288s
+ │ │ └─DestructHyps.do_all_matches_then 0.0% 2.6% 2 0.076s
+ │ │ └DestructHyps.do_one_match_then -- 0.0% 2.6% 6 0.044s
+ │ │ └do_tac -------------------------- 0.0% 2.6% 4 0.044s
+ │ │ └destruct H ---------------------- 2.6% 2.6% 4 0.044s
+ │ ├─rewrite H' ------------------------ 3.4% 3.4% 1 0.200s
+ │ ├─generalize dependent (constr) ----- 3.0% 3.0% 4 0.060s
+ │ ├─congruence ------------------------ 2.8% 2.8% 1 0.160s
+ │ ├─IntegrationTestTemporaryMiscCommon. 0.1% 2.6% 1 0.152s
+ │ │└<Crypto.Util.Tactics.MoveLetIn.with 0.4% 2.5% 3 0.140s
+ │ │└k --------------------------------- 1.9% 2.0% 1 0.116s
+ │ └─rewrite H ------------------------- 1.7% 2.0% 2 0.112s
+ └─Pipeline.refine_reflectively_gen ---- 0.0% 14.5% 1 0.840s
+ ├─ReflectiveTactics.do_reflective_pip 0.0% 10.9% 1 0.632s
+ │└ReflectiveTactics.solve_side_condit 0.0% 10.6% 1 0.612s
+ │ ├─ReflectiveTactics.solve_post_reif 0.3% 8.5% 1 0.492s
+ │ │ ├─UnifyAbstractReflexivity.unify_ 3.4% 4.3% 7 0.076s
+ │ │ └─ReflectiveTactics.unify_abstrac 2.8% 3.8% 1 0.220s
+ │ └─ReflectiveTactics.do_reify ------ 0.0% 2.1% 1 0.120s
+ │ └Reify.Reify_rhs_gen ------------- 0.1% 2.0% 1 0.116s
+ └─Glue.refine_to_reflective_glue' --- 0.1% 3.6% 1 0.208s
+ └Glue.zrange_to_reflective --------- 0.0% 2.2% 1 0.128s
+
+Finished transaction in 6.657 secs (6.299u,0.s) (successful)
+Closed under the global context
+total time: 5.800s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_nonzero -------------------- 0.0% 100.0% 1 5.800s
+─IntegrationTestTemporaryMiscCommon.nonz 0.2% 85.5% 1 4.960s
+─destruct (Decidable.dec x), (Decidable. 37.4% 37.4% 1 2.168s
+─destruct (Decidable.dec x) as [H| H] -- 22.0% 22.0% 1 1.276s
+─Pipeline.refine_reflectively_gen ------ 0.0% 14.5% 1 0.840s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 10.9% 1 0.632s
+─ReflectiveTactics.solve_side_conditions 0.0% 10.6% 1 0.612s
+─ReflectiveTactics.solve_post_reified_si 0.3% 8.5% 1 0.492s
+─IntegrationTestTemporaryMiscCommon.op_s 0.1% 8.1% 2 0.368s
+─rewrite <- (ZRange.is_bounded_by_None_r 5.2% 5.2% 2 0.288s
+─UnifyAbstractReflexivity.unify_transfor 3.4% 4.3% 7 0.076s
+─ReflectiveTactics.unify_abstract_cbv_in 2.8% 3.8% 1 0.220s
+─Glue.refine_to_reflective_glue' ------- 0.1% 3.6% 1 0.208s
+─rewrite H' ---------------------------- 3.4% 3.4% 1 0.200s
+─generalize dependent (constr) --------- 3.0% 3.0% 4 0.060s
+─congruence ---------------------------- 2.8% 2.8% 1 0.160s
+─do_tac -------------------------------- 0.0% 2.6% 4 0.044s
+─destruct H ---------------------------- 2.6% 2.6% 4 0.044s
+─IntegrationTestTemporaryMiscCommon.do_s 0.1% 2.6% 1 0.152s
+─DestructHyps.do_one_match_then -------- 0.0% 2.6% 6 0.044s
+─DestructHyps.do_all_matches_then ------ 0.0% 2.6% 2 0.076s
+─<Crypto.Util.Tactics.MoveLetIn.with_uco 0.4% 2.5% 3 0.140s
+─Glue.zrange_to_reflective ------------- 0.0% 2.2% 1 0.128s
+─rewrite H ----------------------------- 1.9% 2.1% 3 0.112s
+─ReflectiveTactics.do_reify ------------ 0.0% 2.1% 1 0.120s
+─k ------------------------------------- 1.9% 2.0% 1 0.116s
+─Reify.Reify_rhs_gen ------------------- 0.1% 2.0% 1 0.116s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_nonzero -------------------- 0.0% 100.0% 1 5.800s
+ ├─IntegrationTestTemporaryMiscCommon.no 0.2% 85.5% 1 4.960s
+ │ ├─destruct (Decidable.dec x), (Decida 37.4% 37.4% 1 2.168s
+ │ ├─destruct (Decidable.dec x) as [H| H 22.0% 22.0% 1 1.276s
+ │ ├─IntegrationTestTemporaryMiscCommon. 0.1% 8.1% 2 0.368s
+ │ │ ├─rewrite <- (ZRange.is_bounded_by_ 5.2% 5.2% 2 0.288s
+ │ │ └─DestructHyps.do_all_matches_then 0.0% 2.6% 2 0.076s
+ │ │ └DestructHyps.do_one_match_then -- 0.0% 2.6% 6 0.044s
+ │ │ └do_tac -------------------------- 0.0% 2.6% 4 0.044s
+ │ │ └destruct H ---------------------- 2.6% 2.6% 4 0.044s
+ │ ├─rewrite H' ------------------------ 3.4% 3.4% 1 0.200s
+ │ ├─generalize dependent (constr) ----- 3.0% 3.0% 4 0.060s
+ │ ├─congruence ------------------------ 2.8% 2.8% 1 0.160s
+ │ ├─IntegrationTestTemporaryMiscCommon. 0.1% 2.6% 1 0.152s
+ │ │└<Crypto.Util.Tactics.MoveLetIn.with 0.4% 2.5% 3 0.140s
+ │ │└k --------------------------------- 1.9% 2.0% 1 0.116s
+ │ └─rewrite H ------------------------- 1.7% 2.0% 2 0.112s
+ └─Pipeline.refine_reflectively_gen ---- 0.0% 14.5% 1 0.840s
+ ├─ReflectiveTactics.do_reflective_pip 0.0% 10.9% 1 0.632s
+ │└ReflectiveTactics.solve_side_condit 0.0% 10.6% 1 0.612s
+ │ ├─ReflectiveTactics.solve_post_reif 0.3% 8.5% 1 0.492s
+ │ │ ├─UnifyAbstractReflexivity.unify_ 3.4% 4.3% 7 0.076s
+ │ │ └─ReflectiveTactics.unify_abstrac 2.8% 3.8% 1 0.220s
+ │ └─ReflectiveTactics.do_reify ------ 0.0% 2.1% 1 0.120s
+ │ └Reify.Reify_rhs_gen ------------- 0.1% 2.0% 1 0.116s
+ └─Glue.refine_to_reflective_glue' --- 0.1% 3.6% 1 0.208s
+ └Glue.zrange_to_reflective --------- 0.0% 2.2% 1 0.128s
+
+src/Specific/NISTP256/AMD64/fenz (real: 27.81, user: 25.50, sys: 0.22, mem: 756080 ko)
+COQC src/Specific/NISTP256/AMD64/feopp.v
+Finished transaction in 7.73 secs (7.112u,0.008s) (successful)
+total time: 7.072s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_montgomery ----------------- 0.0% 62.5% 1 4.420s
+─IntegrationTestTemporaryMiscCommon.fact 18.7% 51.6% 1 3.648s
+─Pipeline.refine_reflectively_gen ------ 0.0% 37.5% 1 2.652s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 32.6% 1 2.308s
+─ReflectiveTactics.solve_side_conditions 0.0% 32.2% 1 2.276s
+─reflexivity --------------------------- 24.8% 24.8% 8 1.700s
+─ReflectiveTactics.solve_post_reified_si 0.5% 18.5% 1 1.308s
+─ReflectiveTactics.do_reify ------------ 0.0% 13.7% 1 0.968s
+─UnifyAbstractReflexivity.unify_transfor 11.2% 13.6% 7 0.284s
+─Reify.Reify_rhs_gen ------------------- 0.6% 13.4% 1 0.948s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 9.7% 1 0.684s
+─rewrite <- (ZRange.is_bounded_by_None_r 9.0% 9.0% 4 0.328s
+─op_sig_side_conditions_t -------------- 0.0% 7.8% 1 0.552s
+─rewrite <- (lem : lemT) by by_tac ltac: 0.1% 7.4% 1 0.520s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 7.4% 1 0.520s
+─by_tac -------------------------------- 0.0% 7.2% 2 0.404s
+─Reify.do_reify_abs_goal --------------- 7.1% 7.2% 2 0.512s
+─Reify.do_reifyf_goal ------------------ 6.6% 6.7% 62 0.472s
+─DestructHyps.do_one_match_then -------- 0.2% 5.8% 14 0.048s
+─DestructHyps.do_all_matches_then ------ 0.0% 5.8% 4 0.124s
+─do_tac -------------------------------- 0.0% 5.6% 10 0.048s
+─destruct H ---------------------------- 5.6% 5.6% 10 0.048s
+─Glue.refine_to_reflective_glue' ------- 0.0% 4.9% 1 0.344s
+─ReflectiveTactics.unify_abstract_cbv_in 2.9% 4.2% 1 0.300s
+─Glue.zrange_to_reflective ------------- 0.0% 3.3% 1 0.232s
+─unify (constr) (constr) --------------- 3.2% 3.2% 7 0.088s
+─Glue.zrange_to_reflective_goal -------- 1.9% 2.6% 1 0.184s
+─IntegrationTestTemporaryMiscCommon.do_s 0.0% 2.3% 1 0.164s
+─<Crypto.Util.Tactics.MoveLetIn.with_uco 0.4% 2.2% 3 0.152s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_montgomery ----------------- 0.0% 62.5% 1 4.420s
+ ├─IntegrationTestTemporaryMiscCommon.fa 18.7% 51.6% 1 3.648s
+ │ ├─reflexivity ----------------------- 24.0% 24.0% 1 1.700s
+ │ └─op_sig_side_conditions_t ---------- 0.0% 7.8% 1 0.552s
+ │ ├─rewrite <- (ZRange.is_bounded_by_ 4.2% 4.2% 2 0.284s
+ │ └─DestructHyps.do_all_matches_then 0.0% 3.5% 2 0.124s
+ │ └DestructHyps.do_one_match_then -- 0.2% 3.5% 8 0.044s
+ │ └do_tac -------------------------- 0.0% 3.3% 6 0.040s
+ │ └destruct H ---------------------- 3.3% 3.3% 6 0.040s
+ └─IntegrationTestTemporaryMiscCommon.do 0.0% 9.7% 1 0.684s
+ ├─IntegrationTestTemporaryMiscCommon. 0.0% 7.4% 1 0.520s
+ │└rewrite <- (lem : lemT) by by_tac l 0.1% 7.4% 1 0.520s
+ │└by_tac ---------------------------- 0.0% 7.2% 2 0.404s
+ │ ├─rewrite <- (ZRange.is_bounded_by_ 4.8% 4.8% 2 0.328s
+ │ └─DestructHyps.do_all_matches_then 0.0% 2.3% 2 0.088s
+ │ └DestructHyps.do_one_match_then -- 0.0% 2.3% 6 0.048s
+ │ └do_tac -------------------------- 0.0% 2.3% 4 0.048s
+ │ └destruct H ---------------------- 2.3% 2.3% 4 0.048s
+ └─IntegrationTestTemporaryMiscCommon. 0.0% 2.3% 1 0.164s
+ └<Crypto.Util.Tactics.MoveLetIn.with 0.4% 2.2% 3 0.152s
+─Pipeline.refine_reflectively_gen ------ 0.0% 37.5% 1 2.652s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 32.6% 1 2.308s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 32.2% 1 2.276s
+ │ ├─ReflectiveTactics.solve_post_reifie 0.5% 18.5% 1 1.308s
+ │ │ ├─UnifyAbstractReflexivity.unify_tr 11.2% 13.6% 7 0.284s
+ │ │ └─ReflectiveTactics.unify_abstract_ 2.9% 4.2% 1 0.300s
+ │ └─ReflectiveTactics.do_reify -------- 0.0% 13.7% 1 0.968s
+ │ └Reify.Reify_rhs_gen --------------- 0.6% 13.4% 1 0.948s
+ │ └Reify.do_reify_abs_goal ----------- 7.1% 7.2% 2 0.512s
+ │ └Reify.do_reifyf_goal -------------- 6.6% 6.7% 62 0.472s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 4.9% 1 0.344s
+ └Glue.zrange_to_reflective ----------- 0.0% 3.3% 1 0.232s
+ └Glue.zrange_to_reflective_goal ------ 1.9% 2.6% 1 0.184s
+
+Finished transaction in 7.732 secs (7.1u,0.003s) (successful)
+Closed under the global context
+total time: 7.072s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_montgomery ----------------- 0.0% 62.5% 1 4.420s
+─IntegrationTestTemporaryMiscCommon.fact 18.7% 51.6% 1 3.648s
+─Pipeline.refine_reflectively_gen ------ 0.0% 37.5% 1 2.652s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 32.6% 1 2.308s
+─ReflectiveTactics.solve_side_conditions 0.0% 32.2% 1 2.276s
+─reflexivity --------------------------- 24.8% 24.8% 8 1.700s
+─ReflectiveTactics.solve_post_reified_si 0.5% 18.5% 1 1.308s
+─ReflectiveTactics.do_reify ------------ 0.0% 13.7% 1 0.968s
+─UnifyAbstractReflexivity.unify_transfor 11.2% 13.6% 7 0.284s
+─Reify.Reify_rhs_gen ------------------- 0.6% 13.4% 1 0.948s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 9.7% 1 0.684s
+─rewrite <- (ZRange.is_bounded_by_None_r 9.0% 9.0% 4 0.328s
+─op_sig_side_conditions_t -------------- 0.0% 7.8% 1 0.552s
+─rewrite <- (lem : lemT) by by_tac ltac: 0.1% 7.4% 1 0.520s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 7.4% 1 0.520s
+─by_tac -------------------------------- 0.0% 7.2% 2 0.404s
+─Reify.do_reify_abs_goal --------------- 7.1% 7.2% 2 0.512s
+─Reify.do_reifyf_goal ------------------ 6.6% 6.7% 62 0.472s
+─DestructHyps.do_one_match_then -------- 0.2% 5.8% 14 0.048s
+─DestructHyps.do_all_matches_then ------ 0.0% 5.8% 4 0.124s
+─do_tac -------------------------------- 0.0% 5.6% 10 0.048s
+─destruct H ---------------------------- 5.6% 5.6% 10 0.048s
+─Glue.refine_to_reflective_glue' ------- 0.0% 4.9% 1 0.344s
+─ReflectiveTactics.unify_abstract_cbv_in 2.9% 4.2% 1 0.300s
+─Glue.zrange_to_reflective ------------- 0.0% 3.3% 1 0.232s
+─unify (constr) (constr) --------------- 3.2% 3.2% 7 0.088s
+─Glue.zrange_to_reflective_goal -------- 1.9% 2.6% 1 0.184s
+─IntegrationTestTemporaryMiscCommon.do_s 0.0% 2.3% 1 0.164s
+─<Crypto.Util.Tactics.MoveLetIn.with_uco 0.4% 2.2% 3 0.152s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_montgomery ----------------- 0.0% 62.5% 1 4.420s
+ ├─IntegrationTestTemporaryMiscCommon.fa 18.7% 51.6% 1 3.648s
+ │ ├─reflexivity ----------------------- 24.0% 24.0% 1 1.700s
+ │ └─op_sig_side_conditions_t ---------- 0.0% 7.8% 1 0.552s
+ │ ├─rewrite <- (ZRange.is_bounded_by_ 4.2% 4.2% 2 0.284s
+ │ └─DestructHyps.do_all_matches_then 0.0% 3.5% 2 0.124s
+ │ └DestructHyps.do_one_match_then -- 0.2% 3.5% 8 0.044s
+ │ └do_tac -------------------------- 0.0% 3.3% 6 0.040s
+ │ └destruct H ---------------------- 3.3% 3.3% 6 0.040s
+ └─IntegrationTestTemporaryMiscCommon.do 0.0% 9.7% 1 0.684s
+ ├─IntegrationTestTemporaryMiscCommon. 0.0% 7.4% 1 0.520s
+ │└rewrite <- (lem : lemT) by by_tac l 0.1% 7.4% 1 0.520s
+ │└by_tac ---------------------------- 0.0% 7.2% 2 0.404s
+ │ ├─rewrite <- (ZRange.is_bounded_by_ 4.8% 4.8% 2 0.328s
+ │ └─DestructHyps.do_all_matches_then 0.0% 2.3% 2 0.088s
+ │ └DestructHyps.do_one_match_then -- 0.0% 2.3% 6 0.048s
+ │ └do_tac -------------------------- 0.0% 2.3% 4 0.048s
+ │ └destruct H ---------------------- 2.3% 2.3% 4 0.048s
+ └─IntegrationTestTemporaryMiscCommon. 0.0% 2.3% 1 0.164s
+ └<Crypto.Util.Tactics.MoveLetIn.with 0.4% 2.2% 3 0.152s
+─Pipeline.refine_reflectively_gen ------ 0.0% 37.5% 1 2.652s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 32.6% 1 2.308s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 32.2% 1 2.276s
+ │ ├─ReflectiveTactics.solve_post_reifie 0.5% 18.5% 1 1.308s
+ │ │ ├─UnifyAbstractReflexivity.unify_tr 11.2% 13.6% 7 0.284s
+ │ │ └─ReflectiveTactics.unify_abstract_ 2.9% 4.2% 1 0.300s
+ │ └─ReflectiveTactics.do_reify -------- 0.0% 13.7% 1 0.968s
+ │ └Reify.Reify_rhs_gen --------------- 0.6% 13.4% 1 0.948s
+ │ └Reify.do_reify_abs_goal ----------- 7.1% 7.2% 2 0.512s
+ │ └Reify.do_reifyf_goal -------------- 6.6% 6.7% 62 0.472s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 4.9% 1 0.344s
+ └Glue.zrange_to_reflective ----------- 0.0% 3.3% 1 0.232s
+ └Glue.zrange_to_reflective_goal ------ 1.9% 2.6% 1 0.184s
+
+src/Specific/NISTP256/AMD64/feopp (real: 31.00, user: 28.51, sys: 0.20, mem: 765208 ko)
+COQC src/Specific/NISTP256/AMD64/fesub.v
+Finished transaction in 12.996 secs (12.091u,0.004s) (successful)
+total time: 12.048s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_montgomery ----------------- 0.0% 66.1% 1 7.964s
+─IntegrationTestTemporaryMiscCommon.fact 16.2% 50.9% 1 6.128s
+─Pipeline.refine_reflectively_gen ------ 0.0% 33.9% 1 4.084s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 28.3% 1 3.404s
+─ReflectiveTactics.solve_side_conditions 0.0% 27.8% 1 3.352s
+─reflexivity --------------------------- 21.7% 21.7% 8 2.480s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 14.1% 1 1.704s
+─ReflectiveTactics.solve_post_reified_si 0.4% 14.1% 1 1.696s
+─ReflectiveTactics.do_reify ------------ 0.0% 13.7% 1 1.656s
+─Reify.Reify_rhs_gen ------------------- 0.9% 13.2% 1 1.592s
+─DestructHyps.do_all_matches_then ------ 0.0% 12.9% 8 0.232s
+─DestructHyps.do_one_match_then -------- 0.6% 12.9% 44 0.052s
+─op_sig_side_conditions_t -------------- 0.0% 12.7% 1 1.528s
+─do_tac -------------------------------- 0.0% 12.3% 36 0.048s
+─destruct H ---------------------------- 12.3% 12.3% 36 0.048s
+─rewrite <- (lem : lemT) by by_tac ltac: 0.1% 11.2% 1 1.352s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 11.2% 1 1.352s
+─by_tac -------------------------------- 0.0% 11.1% 4 0.476s
+─UnifyAbstractReflexivity.unify_transfor 8.8% 10.6% 7 0.344s
+─rewrite <- (ZRange.is_bounded_by_None_r 10.5% 10.5% 8 0.316s
+─Reify.do_reify_abs_goal --------------- 6.0% 6.1% 2 0.732s
+─Glue.refine_to_reflective_glue' ------- 0.0% 5.6% 1 0.680s
+─Reify.do_reifyf_goal ------------------ 5.4% 5.5% 80 0.660s
+─Glue.zrange_to_reflective ------------- 0.0% 3.6% 1 0.428s
+─ReflectiveTactics.unify_abstract_cbv_in 2.2% 3.0% 1 0.360s
+─IntegrationTestTemporaryMiscCommon.do_s 0.0% 2.9% 1 0.348s
+─<Crypto.Util.Tactics.MoveLetIn.with_uco 0.5% 2.8% 3 0.332s
+─Glue.zrange_to_reflective_goal -------- 1.7% 2.6% 1 0.316s
+─k ------------------------------------- 2.1% 2.2% 1 0.268s
+─unify (constr) (constr) --------------- 2.1% 2.1% 8 0.092s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_montgomery ----------------- 0.0% 66.1% 1 7.964s
+ ├─IntegrationTestTemporaryMiscCommon.fa 16.2% 50.9% 1 6.128s
+ │ ├─reflexivity ----------------------- 20.6% 20.6% 1 2.480s
+ │ └─op_sig_side_conditions_t ---------- 0.0% 12.7% 1 1.528s
+ │ ├─DestructHyps.do_all_matches_then 0.0% 7.3% 4 0.232s
+ │ │└DestructHyps.do_one_match_then -- 0.3% 7.3% 24 0.052s
+ │ │└do_tac -------------------------- 0.0% 7.0% 20 0.048s
+ │ │└destruct H ---------------------- 6.9% 6.9% 20 0.048s
+ │ └─rewrite <- (ZRange.is_bounded_by_ 5.2% 5.2% 4 0.300s
+ └─IntegrationTestTemporaryMiscCommon.do 0.0% 14.1% 1 1.704s
+ ├─IntegrationTestTemporaryMiscCommon. 0.0% 11.2% 1 1.352s
+ │└rewrite <- (lem : lemT) by by_tac l 0.1% 11.2% 1 1.352s
+ │└by_tac ---------------------------- 0.0% 11.1% 4 0.476s
+ │ ├─DestructHyps.do_all_matches_then 0.0% 5.6% 4 0.176s
+ │ │└DestructHyps.do_one_match_then -- 0.2% 5.6% 20 0.052s
+ │ │└do_tac -------------------------- 0.0% 5.3% 16 0.048s
+ │ │└destruct H ---------------------- 5.3% 5.3% 16 0.048s
+ │ └─rewrite <- (ZRange.is_bounded_by_ 5.3% 5.3% 4 0.316s
+ └─IntegrationTestTemporaryMiscCommon. 0.0% 2.9% 1 0.348s
+ └<Crypto.Util.Tactics.MoveLetIn.with 0.5% 2.8% 3 0.332s
+ └k --------------------------------- 2.1% 2.2% 1 0.268s
+─Pipeline.refine_reflectively_gen ------ 0.0% 33.9% 1 4.084s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 28.3% 1 3.404s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 27.8% 1 3.352s
+ │ ├─ReflectiveTactics.solve_post_reifie 0.4% 14.1% 1 1.696s
+ │ │ ├─UnifyAbstractReflexivity.unify_tr 8.8% 10.6% 7 0.344s
+ │ │ └─ReflectiveTactics.unify_abstract_ 2.2% 3.0% 1 0.360s
+ │ └─ReflectiveTactics.do_reify -------- 0.0% 13.7% 1 1.656s
+ │ └Reify.Reify_rhs_gen --------------- 0.9% 13.2% 1 1.592s
+ │ └Reify.do_reify_abs_goal ----------- 6.0% 6.1% 2 0.732s
+ │ └Reify.do_reifyf_goal -------------- 5.4% 5.5% 80 0.660s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 5.6% 1 0.680s
+ └Glue.zrange_to_reflective ----------- 0.0% 3.6% 1 0.428s
+ └Glue.zrange_to_reflective_goal ------ 1.7% 2.6% 1 0.316s
+
+Finished transaction in 13.895 secs (12.78u,0.02s) (successful)
+Closed under the global context
+total time: 12.048s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_montgomery ----------------- 0.0% 66.1% 1 7.964s
+─IntegrationTestTemporaryMiscCommon.fact 16.2% 50.9% 1 6.128s
+─Pipeline.refine_reflectively_gen ------ 0.0% 33.9% 1 4.084s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 28.3% 1 3.404s
+─ReflectiveTactics.solve_side_conditions 0.0% 27.8% 1 3.352s
+─reflexivity --------------------------- 21.7% 21.7% 8 2.480s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 14.1% 1 1.704s
+─ReflectiveTactics.solve_post_reified_si 0.4% 14.1% 1 1.696s
+─ReflectiveTactics.do_reify ------------ 0.0% 13.7% 1 1.656s
+─Reify.Reify_rhs_gen ------------------- 0.9% 13.2% 1 1.592s
+─DestructHyps.do_all_matches_then ------ 0.0% 12.9% 8 0.232s
+─DestructHyps.do_one_match_then -------- 0.6% 12.9% 44 0.052s
+─op_sig_side_conditions_t -------------- 0.0% 12.7% 1 1.528s
+─do_tac -------------------------------- 0.0% 12.3% 36 0.048s
+─destruct H ---------------------------- 12.3% 12.3% 36 0.048s
+─rewrite <- (lem : lemT) by by_tac ltac: 0.1% 11.2% 1 1.352s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 11.2% 1 1.352s
+─by_tac -------------------------------- 0.0% 11.1% 4 0.476s
+─UnifyAbstractReflexivity.unify_transfor 8.8% 10.6% 7 0.344s
+─rewrite <- (ZRange.is_bounded_by_None_r 10.5% 10.5% 8 0.316s
+─Reify.do_reify_abs_goal --------------- 6.0% 6.1% 2 0.732s
+─Glue.refine_to_reflective_glue' ------- 0.0% 5.6% 1 0.680s
+─Reify.do_reifyf_goal ------------------ 5.4% 5.5% 80 0.660s
+─Glue.zrange_to_reflective ------------- 0.0% 3.6% 1 0.428s
+─ReflectiveTactics.unify_abstract_cbv_in 2.2% 3.0% 1 0.360s
+─IntegrationTestTemporaryMiscCommon.do_s 0.0% 2.9% 1 0.348s
+─<Crypto.Util.Tactics.MoveLetIn.with_uco 0.5% 2.8% 3 0.332s
+─Glue.zrange_to_reflective_goal -------- 1.7% 2.6% 1 0.316s
+─k ------------------------------------- 2.1% 2.2% 1 0.268s
+─unify (constr) (constr) --------------- 2.1% 2.1% 8 0.092s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_montgomery ----------------- 0.0% 66.1% 1 7.964s
+ ├─IntegrationTestTemporaryMiscCommon.fa 16.2% 50.9% 1 6.128s
+ │ ├─reflexivity ----------------------- 20.6% 20.6% 1 2.480s
+ │ └─op_sig_side_conditions_t ---------- 0.0% 12.7% 1 1.528s
+ │ ├─DestructHyps.do_all_matches_then 0.0% 7.3% 4 0.232s
+ │ │└DestructHyps.do_one_match_then -- 0.3% 7.3% 24 0.052s
+ │ │└do_tac -------------------------- 0.0% 7.0% 20 0.048s
+ │ │└destruct H ---------------------- 6.9% 6.9% 20 0.048s
+ │ └─rewrite <- (ZRange.is_bounded_by_ 5.2% 5.2% 4 0.300s
+ └─IntegrationTestTemporaryMiscCommon.do 0.0% 14.1% 1 1.704s
+ ├─IntegrationTestTemporaryMiscCommon. 0.0% 11.2% 1 1.352s
+ │└rewrite <- (lem : lemT) by by_tac l 0.1% 11.2% 1 1.352s
+ │└by_tac ---------------------------- 0.0% 11.1% 4 0.476s
+ │ ├─DestructHyps.do_all_matches_then 0.0% 5.6% 4 0.176s
+ │ │└DestructHyps.do_one_match_then -- 0.2% 5.6% 20 0.052s
+ │ │└do_tac -------------------------- 0.0% 5.3% 16 0.048s
+ │ │└destruct H ---------------------- 5.3% 5.3% 16 0.048s
+ │ └─rewrite <- (ZRange.is_bounded_by_ 5.3% 5.3% 4 0.316s
+ └─IntegrationTestTemporaryMiscCommon. 0.0% 2.9% 1 0.348s
+ └<Crypto.Util.Tactics.MoveLetIn.with 0.5% 2.8% 3 0.332s
+ └k --------------------------------- 2.1% 2.2% 1 0.268s
+─Pipeline.refine_reflectively_gen ------ 0.0% 33.9% 1 4.084s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 28.3% 1 3.404s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 27.8% 1 3.352s
+ │ ├─ReflectiveTactics.solve_post_reifie 0.4% 14.1% 1 1.696s
+ │ │ ├─UnifyAbstractReflexivity.unify_tr 8.8% 10.6% 7 0.344s
+ │ │ └─ReflectiveTactics.unify_abstract_ 2.2% 3.0% 1 0.360s
+ │ └─ReflectiveTactics.do_reify -------- 0.0% 13.7% 1 1.656s
+ │ └Reify.Reify_rhs_gen --------------- 0.9% 13.2% 1 1.592s
+ │ └Reify.do_reify_abs_goal ----------- 6.0% 6.1% 2 0.732s
+ │ └Reify.do_reifyf_goal -------------- 5.4% 5.5% 80 0.660s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 5.6% 1 0.680s
+ └Glue.zrange_to_reflective ----------- 0.0% 3.6% 1 0.428s
+ └Glue.zrange_to_reflective_goal ------ 1.7% 2.6% 1 0.316s
+
+src/Specific/NISTP256/AMD64/fesub (real: 43.34, user: 39.59, sys: 0.26, mem: 793376 ko)
+COQC src/Specific/NISTP256/AMD64/feaddDisplay > src/Specific/NISTP256/AMD64/feaddDisplay.log
+COQC src/Specific/NISTP256/AMD64/fenzDisplay > src/Specific/NISTP256/AMD64/fenzDisplay.log
+COQC src/Specific/solinas32_2e255m765_12limbs/femul.v
+Finished transaction in 50.426 secs (46.528u,0.072s) (successful)
+total time: 46.544s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ -0.0% 94.9% 1 44.164s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 87.1% 1 40.552s
+─ReflectiveTactics.solve_side_conditions 0.0% 86.7% 1 40.372s
+─ReflectiveTactics.do_reify ------------ 0.0% 59.6% 1 27.740s
+─Reify.Reify_rhs_gen ------------------- 1.6% 58.9% 1 27.432s
+─Reify.do_reify_abs_goal --------------- 43.3% 43.6% 2 20.312s
+─Reify.do_reifyf_goal ------------------ 42.5% 42.8% 108 10.328s
+─ReflectiveTactics.solve_post_reified_si 0.1% 27.1% 1 12.632s
+─UnifyAbstractReflexivity.unify_transfor 18.6% 23.5% 7 3.552s
+─eexact -------------------------------- 13.7% 13.7% 110 0.136s
+─Glue.refine_to_reflective_glue' ------- 0.0% 7.8% 1 3.612s
+─Glue.zrange_to_reflective ------------- 0.0% 7.2% 1 3.332s
+─Glue.zrange_to_reflective_goal -------- 1.7% 5.5% 1 2.544s
+─synthesize ---------------------------- 0.0% 5.1% 1 2.380s
+─unify (constr) (constr) --------------- 5.1% 5.1% 6 1.068s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 5.0% 1 2.320s
+─change G' ----------------------------- 4.8% 4.8% 1 2.252s
+─rewrite H ----------------------------- 3.8% 3.8% 1 1.748s
+─pose proof (pf : Interpretation.Bo 3.6% 3.6% 1 1.664s
+─prove_interp_compile_correct ---------- 0.0% 3.5% 1 1.616s
+─rewrite ?EtaInterp.InterpExprEta ------ 3.2% 3.2% 1 1.468s
+─ReflectiveTactics.unify_abstract_cbv_in 1.6% 2.4% 1 1.124s
+─reflexivity --------------------------- 2.1% 2.1% 7 0.396s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ -0.0% 94.9% 1 44.164s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 87.1% 1 40.552s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 86.7% 1 40.372s
+ │ ├─ReflectiveTactics.do_reify -------- 0.0% 59.6% 1 27.740s
+ │ │└Reify.Reify_rhs_gen --------------- 1.6% 58.9% 1 27.432s
+ │ │ ├─Reify.do_reify_abs_goal --------- 43.3% 43.6% 2 20.312s
+ │ │ │└Reify.do_reifyf_goal ------------ 42.5% 42.8% 108 10.328s
+ │ │ │└eexact -------------------------- 13.2% 13.2% 108 0.072s
+ │ │ ├─rewrite H ----------------------- 3.8% 3.8% 1 1.748s
+ │ │ └─prove_interp_compile_correct ---- 0.0% 3.5% 1 1.616s
+ │ │ └rewrite ?EtaInterp.InterpExprEta 3.2% 3.2% 1 1.468s
+ │ └─ReflectiveTactics.solve_post_reifie 0.1% 27.1% 1 12.632s
+ │ ├─UnifyAbstractReflexivity.unify_tr 18.6% 23.5% 7 3.552s
+ │ │└unify (constr) (constr) --------- 4.3% 4.3% 5 1.068s
+ │ └─ReflectiveTactics.unify_abstract_ 1.6% 2.4% 1 1.124s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 7.8% 1 3.612s
+ └Glue.zrange_to_reflective ----------- 0.0% 7.2% 1 3.332s
+ └Glue.zrange_to_reflective_goal ------ 1.7% 5.5% 1 2.544s
+ └pose proof (pf : Interpretation. 3.6% 3.6% 1 1.664s
+─synthesize ---------------------------- 0.0% 5.1% 1 2.380s
+└IntegrationTestTemporaryMiscCommon.do_r 0.0% 5.0% 1 2.320s
+└change G' ----------------------------- 4.8% 4.8% 1 2.252s
+
+Finished transaction in 80.129 secs (74.068u,0.024s) (successful)
+Closed under the global context
+total time: 46.544s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ -0.0% 94.9% 1 44.164s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 87.1% 1 40.552s
+─ReflectiveTactics.solve_side_conditions 0.0% 86.7% 1 40.372s
+─ReflectiveTactics.do_reify ------------ 0.0% 59.6% 1 27.740s
+─Reify.Reify_rhs_gen ------------------- 1.6% 58.9% 1 27.432s
+─Reify.do_reify_abs_goal --------------- 43.3% 43.6% 2 20.312s
+─Reify.do_reifyf_goal ------------------ 42.5% 42.8% 108 10.328s
+─ReflectiveTactics.solve_post_reified_si 0.1% 27.1% 1 12.632s
+─UnifyAbstractReflexivity.unify_transfor 18.6% 23.5% 7 3.552s
+─eexact -------------------------------- 13.7% 13.7% 110 0.136s
+─Glue.refine_to_reflective_glue' ------- 0.0% 7.8% 1 3.612s
+─Glue.zrange_to_reflective ------------- 0.0% 7.2% 1 3.332s
+─Glue.zrange_to_reflective_goal -------- 1.7% 5.5% 1 2.544s
+─synthesize ---------------------------- 0.0% 5.1% 1 2.380s
+─unify (constr) (constr) --------------- 5.1% 5.1% 6 1.068s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 5.0% 1 2.320s
+─change G' ----------------------------- 4.8% 4.8% 1 2.252s
+─rewrite H ----------------------------- 3.8% 3.8% 1 1.748s
+─pose proof (pf : Interpretation.Bo 3.6% 3.6% 1 1.664s
+─prove_interp_compile_correct ---------- 0.0% 3.5% 1 1.616s
+─rewrite ?EtaInterp.InterpExprEta ------ 3.2% 3.2% 1 1.468s
+─ReflectiveTactics.unify_abstract_cbv_in 1.6% 2.4% 1 1.124s
+─reflexivity --------------------------- 2.1% 2.1% 7 0.396s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ -0.0% 94.9% 1 44.164s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 87.1% 1 40.552s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 86.7% 1 40.372s
+ │ ├─ReflectiveTactics.do_reify -------- 0.0% 59.6% 1 27.740s
+ │ │└Reify.Reify_rhs_gen --------------- 1.6% 58.9% 1 27.432s
+ │ │ ├─Reify.do_reify_abs_goal --------- 43.3% 43.6% 2 20.312s
+ │ │ │└Reify.do_reifyf_goal ------------ 42.5% 42.8% 108 10.328s
+ │ │ │└eexact -------------------------- 13.2% 13.2% 108 0.072s
+ │ │ ├─rewrite H ----------------------- 3.8% 3.8% 1 1.748s
+ │ │ └─prove_interp_compile_correct ---- 0.0% 3.5% 1 1.616s
+ │ │ └rewrite ?EtaInterp.InterpExprEta 3.2% 3.2% 1 1.468s
+ │ └─ReflectiveTactics.solve_post_reifie 0.1% 27.1% 1 12.632s
+ │ ├─UnifyAbstractReflexivity.unify_tr 18.6% 23.5% 7 3.552s
+ │ │└unify (constr) (constr) --------- 4.3% 4.3% 5 1.068s
+ │ └─ReflectiveTactics.unify_abstract_ 1.6% 2.4% 1 1.124s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 7.8% 1 3.612s
+ └Glue.zrange_to_reflective ----------- 0.0% 7.2% 1 3.332s
+ └Glue.zrange_to_reflective_goal ------ 1.7% 5.5% 1 2.544s
+ └pose proof (pf : Interpretation. 3.6% 3.6% 1 1.664s
+─synthesize ---------------------------- 0.0% 5.1% 1 2.380s
+└IntegrationTestTemporaryMiscCommon.do_r 0.0% 5.0% 1 2.320s
+└change G' ----------------------------- 4.8% 4.8% 1 2.252s
+
+src/Specific/solinas32_2e255m765_12limbs/femul (real: 155.79, user: 143.70, sys: 0.32, mem: 1454696 ko)
+COQC src/Specific/NISTP256/AMD64/feoppDisplay > src/Specific/NISTP256/AMD64/feoppDisplay.log
+COQC src/Specific/NISTP256/AMD64/fesubDisplay > src/Specific/NISTP256/AMD64/fesubDisplay.log
+COQC src/Specific/X25519/C64/fesquareDisplay > src/Specific/X25519/C64/fesquareDisplay.log
+COQC src/Specific/X25519/C64/fesubDisplay > src/Specific/X25519/C64/fesubDisplay.log
+COQC src/Specific/X25519/C64/freezeDisplay > src/Specific/X25519/C64/freezeDisplay.log
+COQC src/Specific/solinas32_2e255m765_13limbs/femul.v
+Finished transaction in 61.854 secs (57.328u,0.079s) (successful)
+total time: 57.348s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 94.6% 1 54.224s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 86.2% 1 49.452s
+─ReflectiveTactics.solve_side_conditions 0.0% 85.9% 1 49.264s
+─ReflectiveTactics.do_reify ------------ -0.0% 57.6% 1 33.004s
+─Reify.Reify_rhs_gen ------------------- 1.3% 56.9% 1 32.608s
+─Reify.do_reify_abs_goal --------------- 43.1% 43.3% 2 24.840s
+─Reify.do_reifyf_goal ------------------ 42.3% 42.6% 117 12.704s
+─ReflectiveTactics.solve_post_reified_si 0.1% 28.4% 1 16.260s
+─UnifyAbstractReflexivity.unify_transfor 19.6% 25.0% 7 4.824s
+─eexact -------------------------------- 13.9% 13.9% 119 0.144s
+─Glue.refine_to_reflective_glue' ------- 0.0% 8.3% 1 4.772s
+─Glue.zrange_to_reflective ------------- 0.0% 7.8% 1 4.484s
+─Glue.zrange_to_reflective_goal -------- 1.7% 6.0% 1 3.464s
+─synthesize ---------------------------- 0.0% 5.4% 1 3.124s
+─unify (constr) (constr) --------------- 5.4% 5.4% 6 1.540s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 5.3% 1 3.040s
+─change G' ----------------------------- 5.2% 5.2% 1 2.964s
+─pose proof (pf : Interpretation.Bo 4.2% 4.2% 1 2.416s
+─prove_interp_compile_correct ---------- 0.0% 3.3% 1 1.904s
+─rewrite H ----------------------------- 3.3% 3.3% 1 1.896s
+─rewrite ?EtaInterp.InterpExprEta ------ 3.0% 3.0% 1 1.732s
+─ReflectiveTactics.unify_abstract_cbv_in 1.4% 2.1% 1 1.212s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 94.6% 1 54.224s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 86.2% 1 49.452s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 85.9% 1 49.264s
+ │ ├─ReflectiveTactics.do_reify -------- -0.0% 57.6% 1 33.004s
+ │ │└Reify.Reify_rhs_gen --------------- 1.3% 56.9% 1 32.608s
+ │ │ ├─Reify.do_reify_abs_goal --------- 43.1% 43.3% 2 24.840s
+ │ │ │└Reify.do_reifyf_goal ------------ 42.3% 42.6% 117 12.704s
+ │ │ │└eexact -------------------------- 13.4% 13.4% 117 0.084s
+ │ │ ├─prove_interp_compile_correct ---- 0.0% 3.3% 1 1.904s
+ │ │ │└rewrite ?EtaInterp.InterpExprEta 3.0% 3.0% 1 1.732s
+ │ │ └─rewrite H ----------------------- 3.3% 3.3% 1 1.896s
+ │ └─ReflectiveTactics.solve_post_reifie 0.1% 28.4% 1 16.260s
+ │ ├─UnifyAbstractReflexivity.unify_tr 19.6% 25.0% 7 4.824s
+ │ │└unify (constr) (constr) --------- 4.8% 4.8% 5 1.540s
+ │ └─ReflectiveTactics.unify_abstract_ 1.4% 2.1% 1 1.212s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 8.3% 1 4.772s
+ └Glue.zrange_to_reflective ----------- 0.0% 7.8% 1 4.484s
+ └Glue.zrange_to_reflective_goal ------ 1.7% 6.0% 1 3.464s
+ └pose proof (pf : Interpretation. 4.2% 4.2% 1 2.416s
+─synthesize ---------------------------- 0.0% 5.4% 1 3.124s
+└IntegrationTestTemporaryMiscCommon.do_r 0.0% 5.3% 1 3.040s
+└change G' ----------------------------- 5.2% 5.2% 1 2.964s
+
+Finished transaction in 94.432 secs (86.96u,0.02s) (successful)
+Closed under the global context
+total time: 57.348s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 94.6% 1 54.224s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 86.2% 1 49.452s
+─ReflectiveTactics.solve_side_conditions 0.0% 85.9% 1 49.264s
+─ReflectiveTactics.do_reify ------------ -0.0% 57.6% 1 33.004s
+─Reify.Reify_rhs_gen ------------------- 1.3% 56.9% 1 32.608s
+─Reify.do_reify_abs_goal --------------- 43.1% 43.3% 2 24.840s
+─Reify.do_reifyf_goal ------------------ 42.3% 42.6% 117 12.704s
+─ReflectiveTactics.solve_post_reified_si 0.1% 28.4% 1 16.260s
+─UnifyAbstractReflexivity.unify_transfor 19.6% 25.0% 7 4.824s
+─eexact -------------------------------- 13.9% 13.9% 119 0.144s
+─Glue.refine_to_reflective_glue' ------- 0.0% 8.3% 1 4.772s
+─Glue.zrange_to_reflective ------------- 0.0% 7.8% 1 4.484s
+─Glue.zrange_to_reflective_goal -------- 1.7% 6.0% 1 3.464s
+─synthesize ---------------------------- 0.0% 5.4% 1 3.124s
+─unify (constr) (constr) --------------- 5.4% 5.4% 6 1.540s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 5.3% 1 3.040s
+─change G' ----------------------------- 5.2% 5.2% 1 2.964s
+─pose proof (pf : Interpretation.Bo 4.2% 4.2% 1 2.416s
+─prove_interp_compile_correct ---------- 0.0% 3.3% 1 1.904s
+─rewrite H ----------------------------- 3.3% 3.3% 1 1.896s
+─rewrite ?EtaInterp.InterpExprEta ------ 3.0% 3.0% 1 1.732s
+─ReflectiveTactics.unify_abstract_cbv_in 1.4% 2.1% 1 1.212s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 94.6% 1 54.224s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 86.2% 1 49.452s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 85.9% 1 49.264s
+ │ ├─ReflectiveTactics.do_reify -------- -0.0% 57.6% 1 33.004s
+ │ │└Reify.Reify_rhs_gen --------------- 1.3% 56.9% 1 32.608s
+ │ │ ├─Reify.do_reify_abs_goal --------- 43.1% 43.3% 2 24.840s
+ │ │ │└Reify.do_reifyf_goal ------------ 42.3% 42.6% 117 12.704s
+ │ │ │└eexact -------------------------- 13.4% 13.4% 117 0.084s
+ │ │ ├─prove_interp_compile_correct ---- 0.0% 3.3% 1 1.904s
+ │ │ │└rewrite ?EtaInterp.InterpExprEta 3.0% 3.0% 1 1.732s
+ │ │ └─rewrite H ----------------------- 3.3% 3.3% 1 1.896s
+ │ └─ReflectiveTactics.solve_post_reifie 0.1% 28.4% 1 16.260s
+ │ ├─UnifyAbstractReflexivity.unify_tr 19.6% 25.0% 7 4.824s
+ │ │└unify (constr) (constr) --------- 4.8% 4.8% 5 1.540s
+ │ └─ReflectiveTactics.unify_abstract_ 1.4% 2.1% 1 1.212s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 8.3% 1 4.772s
+ └Glue.zrange_to_reflective ----------- 0.0% 7.8% 1 4.484s
+ └Glue.zrange_to_reflective_goal ------ 1.7% 6.0% 1 3.464s
+ └pose proof (pf : Interpretation. 4.2% 4.2% 1 2.416s
+─synthesize ---------------------------- 0.0% 5.4% 1 3.124s
+└IntegrationTestTemporaryMiscCommon.do_r 0.0% 5.3% 1 3.040s
+└change G' ----------------------------- 5.2% 5.2% 1 2.964s
+
+src/Specific/solinas32_2e255m765_13limbs/femul (real: 181.77, user: 168.52, sys: 0.40, mem: 1589516 ko)
+COQC src/Specific/NISTP256/AMD64/femul.v
+Finished transaction in 119.257 secs (109.936u,0.256s) (successful)
+total time: 110.140s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 97.1% 1 106.964s
+─ReflectiveTactics.do_reflective_pipelin -0.0% 96.4% 1 106.196s
+─ReflectiveTactics.solve_side_conditions 0.0% 96.2% 1 105.992s
+─ReflectiveTactics.do_reify ------------ -0.0% 83.7% 1 92.208s
+─Reify.Reify_rhs_gen ------------------- 0.7% 83.5% 1 91.960s
+─Reify.do_reify_abs_goal --------------- 77.7% 77.8% 2 85.708s
+─Reify.do_reifyf_goal ------------------ 77.4% 77.5% 901 85.364s
+─eexact -------------------------------- 17.9% 17.9% 903 0.136s
+─ReflectiveTactics.solve_post_reified_si 0.3% 12.5% 1 13.784s
+─UnifyAbstractReflexivity.unify_transfor 9.8% 11.2% 7 3.356s
+─synthesize_montgomery ----------------- 0.0% 2.9% 1 3.176s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 97.1% 1 106.964s
+└ReflectiveTactics.do_reflective_pipelin -0.0% 96.4% 1 106.196s
+└ReflectiveTactics.solve_side_conditions 0.0% 96.2% 1 105.992s
+ ├─ReflectiveTactics.do_reify ---------- -0.0% 83.7% 1 92.208s
+ │└Reify.Reify_rhs_gen ----------------- 0.7% 83.5% 1 91.960s
+ │└Reify.do_reify_abs_goal ------------- 77.7% 77.8% 2 85.708s
+ │└Reify.do_reifyf_goal ---------------- 77.4% 77.5% 901 85.364s
+ │└eexact ------------------------------ 17.7% 17.7% 901 0.136s
+ └─ReflectiveTactics.solve_post_reified_ 0.3% 12.5% 1 13.784s
+ └UnifyAbstractReflexivity.unify_transf 9.8% 11.2% 7 3.356s
+─synthesize_montgomery ----------------- 0.0% 2.9% 1 3.176s
+
+Finished transaction in 61.452 secs (58.503u,0.055s) (successful)
+Closed under the global context
+total time: 110.140s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 97.1% 1 106.964s
+─ReflectiveTactics.do_reflective_pipelin -0.0% 96.4% 1 106.196s
+─ReflectiveTactics.solve_side_conditions 0.0% 96.2% 1 105.992s
+─ReflectiveTactics.do_reify ------------ -0.0% 83.7% 1 92.208s
+─Reify.Reify_rhs_gen ------------------- 0.7% 83.5% 1 91.960s
+─Reify.do_reify_abs_goal --------------- 77.7% 77.8% 2 85.708s
+─Reify.do_reifyf_goal ------------------ 77.4% 77.5% 901 85.364s
+─eexact -------------------------------- 17.9% 17.9% 903 0.136s
+─ReflectiveTactics.solve_post_reified_si 0.3% 12.5% 1 13.784s
+─UnifyAbstractReflexivity.unify_transfor 9.8% 11.2% 7 3.356s
+─synthesize_montgomery ----------------- 0.0% 2.9% 1 3.176s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 97.1% 1 106.964s
+└ReflectiveTactics.do_reflective_pipelin -0.0% 96.4% 1 106.196s
+└ReflectiveTactics.solve_side_conditions 0.0% 96.2% 1 105.992s
+ ├─ReflectiveTactics.do_reify ---------- -0.0% 83.7% 1 92.208s
+ │└Reify.Reify_rhs_gen ----------------- 0.7% 83.5% 1 91.960s
+ │└Reify.do_reify_abs_goal ------------- 77.7% 77.8% 2 85.708s
+ │└Reify.do_reifyf_goal ---------------- 77.4% 77.5% 901 85.364s
+ │└eexact ------------------------------ 17.7% 17.7% 901 0.136s
+ └─ReflectiveTactics.solve_post_reified_ 0.3% 12.5% 1 13.784s
+ └UnifyAbstractReflexivity.unify_transf 9.8% 11.2% 7 3.356s
+─synthesize_montgomery ----------------- 0.0% 2.9% 1 3.176s
+
+src/Specific/NISTP256/AMD64/femul (real: 202.96, user: 189.62, sys: 0.64, mem: 3302508 ko)
+COQC src/Specific/NISTP256/AMD64/femulDisplay > src/Specific/NISTP256/AMD64/femulDisplay.log
+COQC src/Specific/X25519/C64/ladderstep.v
+total time: 52.080s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_xzladderstep --------------- 0.0% 100.0% 1 52.080s
+─Pipeline.refine_reflectively_gen ------ 0.0% 98.5% 1 51.320s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 93.8% 1 48.872s
+─ReflectiveTactics.solve_side_conditions 0.0% 93.7% 1 48.776s
+─ReflectiveTactics.solve_post_reified_si 0.2% 56.5% 1 29.412s
+─UnifyAbstractReflexivity.unify_transfor 44.7% 49.1% 7 6.968s
+─ReflectiveTactics.do_reify ------------ 0.0% 37.2% 1 19.364s
+─Reify.Reify_rhs_gen ------------------- 2.1% 23.4% 1 12.200s
+─Reify.do_reifyf_goal ------------------ 11.2% 11.3% 138 1.884s
+─Compilers.Reify.reify_context_variables 0.1% 9.2% 1 4.808s
+─rewrite H ----------------------------- 7.3% 7.3% 1 3.816s
+─ReflectiveTactics.unify_abstract_cbv_in 4.7% 6.4% 1 3.336s
+─Glue.refine_to_reflective_glue' ------- 0.0% 4.7% 1 2.448s
+─Glue.zrange_to_reflective ------------- 0.0% 4.0% 1 2.068s
+─Reify.transitivity_tt ----------------- 0.1% 3.7% 2 0.984s
+─transitivity -------------------------- 3.5% 3.5% 10 0.880s
+─reflexivity --------------------------- 3.4% 3.4% 11 0.772s
+─Glue.zrange_to_reflective_goal -------- 2.4% 3.3% 1 1.728s
+─eexact -------------------------------- 3.2% 3.2% 140 0.032s
+─unify (constr) (constr) --------------- 3.1% 3.1% 6 0.852s
+─clear (var_list) ---------------------- 3.1% 3.1% 98 0.584s
+─UnfoldArg.unfold_second_arg ----------- 0.4% 3.0% 2 1.576s
+─tac ----------------------------------- 2.1% 3.0% 2 1.564s
+─ClearAll.clear_all -------------------- 0.2% 2.8% 7 0.584s
+─ChangeInAll.change_with_compute_in_all 0.0% 2.6% 221 0.012s
+─change c with c' in * ----------------- 2.5% 2.5% 221 0.012s
+─Reify.do_reify_abs_goal --------------- 2.4% 2.5% 2 1.276s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_xzladderstep --------------- 0.0% 100.0% 1 52.080s
+└Pipeline.refine_reflectively_gen ------ 0.0% 98.5% 1 51.320s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 93.8% 1 48.872s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 93.7% 1 48.776s
+ │ ├─ReflectiveTactics.solve_post_reifie 0.2% 56.5% 1 29.412s
+ │ │ ├─UnifyAbstractReflexivity.unify_tr 44.7% 49.1% 7 6.968s
+ │ │ │└ClearAll.clear_all -------------- 0.2% 2.8% 7 0.584s
+ │ │ │└clear (var_list) ---------------- 2.7% 2.7% 65 0.584s
+ │ │ └─ReflectiveTactics.unify_abstract_ 4.7% 6.4% 1 3.336s
+ │ └─ReflectiveTactics.do_reify -------- 0.0% 37.2% 1 19.364s
+ │ ├─Reify.Reify_rhs_gen ------------- 2.1% 23.4% 1 12.200s
+ │ │ ├─rewrite H --------------------- 7.3% 7.3% 1 3.816s
+ │ │ ├─Reify.transitivity_tt --------- 0.1% 3.7% 2 0.984s
+ │ │ │└transitivity ------------------ 3.4% 3.4% 4 0.880s
+ │ │ ├─tac --------------------------- 2.1% 3.0% 1 1.564s
+ │ │ └─Reify.do_reify_abs_goal ------- 2.4% 2.5% 2 1.276s
+ │ │ └Reify.do_reifyf_goal ---------- 2.2% 2.2% 25 1.148s
+ │ ├─Compilers.Reify.reify_context_var 0.1% 9.2% 1 4.808s
+ │ │└Reify.do_reifyf_goal ------------ 9.0% 9.1% 113 1.884s
+ │ │└eexact -------------------------- 2.4% 2.4% 113 0.032s
+ │ └─UnfoldArg.unfold_second_arg ----- 0.4% 3.0% 2 1.576s
+ │ └ChangeInAll.change_with_compute_i 0.0% 2.6% 221 0.012s
+ │ └change c with c' in * ----------- 2.5% 2.5% 221 0.012s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 4.7% 1 2.448s
+ └Glue.zrange_to_reflective ----------- 0.0% 4.0% 1 2.068s
+ └Glue.zrange_to_reflective_goal ------ 2.4% 3.3% 1 1.728s
+
+Finished transaction in 171.122 secs (161.392u,0.039s) (successful)
+Closed under the global context
+total time: 52.080s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_xzladderstep --------------- 0.0% 100.0% 1 52.080s
+─Pipeline.refine_reflectively_gen ------ 0.0% 98.5% 1 51.320s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 93.8% 1 48.872s
+─ReflectiveTactics.solve_side_conditions 0.0% 93.7% 1 48.776s
+─ReflectiveTactics.solve_post_reified_si 0.2% 56.5% 1 29.412s
+─UnifyAbstractReflexivity.unify_transfor 44.7% 49.1% 7 6.968s
+─ReflectiveTactics.do_reify ------------ 0.0% 37.2% 1 19.364s
+─Reify.Reify_rhs_gen ------------------- 2.1% 23.4% 1 12.200s
+─Reify.do_reifyf_goal ------------------ 11.2% 11.3% 138 1.884s
+─Compilers.Reify.reify_context_variables 0.1% 9.2% 1 4.808s
+─rewrite H ----------------------------- 7.3% 7.3% 1 3.816s
+─ReflectiveTactics.unify_abstract_cbv_in 4.7% 6.4% 1 3.336s
+─Glue.refine_to_reflective_glue' ------- 0.0% 4.7% 1 2.448s
+─Glue.zrange_to_reflective ------------- 0.0% 4.0% 1 2.068s
+─Reify.transitivity_tt ----------------- 0.1% 3.7% 2 0.984s
+─transitivity -------------------------- 3.5% 3.5% 10 0.880s
+─reflexivity --------------------------- 3.4% 3.4% 11 0.772s
+─Glue.zrange_to_reflective_goal -------- 2.4% 3.3% 1 1.728s
+─eexact -------------------------------- 3.2% 3.2% 140 0.032s
+─unify (constr) (constr) --------------- 3.1% 3.1% 6 0.852s
+─clear (var_list) ---------------------- 3.1% 3.1% 98 0.584s
+─UnfoldArg.unfold_second_arg ----------- 0.4% 3.0% 2 1.576s
+─tac ----------------------------------- 2.1% 3.0% 2 1.564s
+─ClearAll.clear_all -------------------- 0.2% 2.8% 7 0.584s
+─ChangeInAll.change_with_compute_in_all 0.0% 2.6% 221 0.012s
+─change c with c' in * ----------------- 2.5% 2.5% 221 0.012s
+─Reify.do_reify_abs_goal --------------- 2.4% 2.5% 2 1.276s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_xzladderstep --------------- 0.0% 100.0% 1 52.080s
+└Pipeline.refine_reflectively_gen ------ 0.0% 98.5% 1 51.320s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 93.8% 1 48.872s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 93.7% 1 48.776s
+ │ ├─ReflectiveTactics.solve_post_reifie 0.2% 56.5% 1 29.412s
+ │ │ ├─UnifyAbstractReflexivity.unify_tr 44.7% 49.1% 7 6.968s
+ │ │ │└ClearAll.clear_all -------------- 0.2% 2.8% 7 0.584s
+ │ │ │└clear (var_list) ---------------- 2.7% 2.7% 65 0.584s
+ │ │ └─ReflectiveTactics.unify_abstract_ 4.7% 6.4% 1 3.336s
+ │ └─ReflectiveTactics.do_reify -------- 0.0% 37.2% 1 19.364s
+ │ ├─Reify.Reify_rhs_gen ------------- 2.1% 23.4% 1 12.200s
+ │ │ ├─rewrite H --------------------- 7.3% 7.3% 1 3.816s
+ │ │ ├─Reify.transitivity_tt --------- 0.1% 3.7% 2 0.984s
+ │ │ │└transitivity ------------------ 3.4% 3.4% 4 0.880s
+ │ │ ├─tac --------------------------- 2.1% 3.0% 1 1.564s
+ │ │ └─Reify.do_reify_abs_goal ------- 2.4% 2.5% 2 1.276s
+ │ │ └Reify.do_reifyf_goal ---------- 2.2% 2.2% 25 1.148s
+ │ ├─Compilers.Reify.reify_context_var 0.1% 9.2% 1 4.808s
+ │ │└Reify.do_reifyf_goal ------------ 9.0% 9.1% 113 1.884s
+ │ │└eexact -------------------------- 2.4% 2.4% 113 0.032s
+ │ └─UnfoldArg.unfold_second_arg ----- 0.4% 3.0% 2 1.576s
+ │ └ChangeInAll.change_with_compute_i 0.0% 2.6% 221 0.012s
+ │ └change c with c' in * ----------- 2.5% 2.5% 221 0.012s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 4.7% 1 2.448s
+ └Glue.zrange_to_reflective ----------- 0.0% 4.0% 1 2.068s
+ └Glue.zrange_to_reflective_goal ------ 2.4% 3.3% 1 1.728s
+
+src/Specific/X25519/C64/ladderstep (real: 256.77, user: 241.34, sys: 0.45, mem: 1617000 ko)
+COQC src/Specific/X25519/C64/ladderstepDisplay > src/Specific/X25519/C64/ladderstepDisplay.log
diff --git a/test-suite/coq-makefile/timing/precomputed-time-tests/001-correct-diff-sorting-order/time-of-build-before.log.in b/test-suite/coq-makefile/timing/precomputed-time-tests/001-correct-diff-sorting-order/time-of-build-before.log.in
new file mode 100644
index 0000000000..14102902b1
--- /dev/null
+++ b/test-suite/coq-makefile/timing/precomputed-time-tests/001-correct-diff-sorting-order/time-of-build-before.log.in
@@ -0,0 +1,1662 @@
+COQDEP src/Compilers/Z/Bounds/Pipeline/Definition.v
+COQDEP src/Compilers/Z/Bounds/Pipeline/ReflectiveTactics.v
+/home/jgross/.local64/coq/coq-master/bin/coq_makefile -f _CoqProject INSTALLDEFAULTROOT = Crypto -o Makefile-old
+COQ_MAKEFILE -f _CoqProject > Makefile.coq
+make --no-print-directory -C coqprime
+make[1]: Nothing to be done for 'all'.
+ECHO > _CoqProject
+COQC src/Compilers/Z/Bounds/Pipeline/Definition.v
+src/Compilers/Z/Bounds/Pipeline/Definition (real: 7.40, user: 7.22, sys: 0.15, mem: 578344 ko)
+COQC src/Compilers/Z/Bounds/Pipeline/ReflectiveTactics.v
+src/Compilers/Z/Bounds/Pipeline/ReflectiveTactics (real: 1.73, user: 1.58, sys: 0.14, mem: 546112 ko)
+COQC src/Compilers/Z/Bounds/Pipeline.v
+src/Compilers/Z/Bounds/Pipeline (real: 1.18, user: 1.04, sys: 0.14, mem: 539160 ko)
+COQC src/Specific/Framework/SynthesisFramework.v
+src/Specific/Framework/SynthesisFramework (real: 1.95, user: 1.72, sys: 0.22, mem: 648632 ko)
+COQC src/Specific/X25519/C64/Synthesis.v
+src/Specific/X25519/C64/Synthesis (real: 11.23, user: 10.30, sys: 0.19, mem: 687812 ko)
+COQC src/Specific/NISTP256/AMD64/Synthesis.v
+src/Specific/NISTP256/AMD64/Synthesis (real: 13.74, user: 12.54, sys: 0.23, mem: 667664 ko)
+COQC src/Specific/X25519/C64/feadd.v
+Finished transaction in 2.852 secs (2.699u,0.012s) (successful)
+total time: 2.664s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 97.4% 1 2.596s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 70.9% 1 1.888s
+─ReflectiveTactics.solve_side_conditions 0.0% 69.5% 1 1.852s
+─ReflectiveTactics.solve_post_reified_si 1.4% 43.7% 1 1.164s
+─UnifyAbstractReflexivity.unify_transfor 27.0% 31.7% 8 0.256s
+─Glue.refine_to_reflective_glue' ------- 0.0% 26.6% 1 0.708s
+─ReflectiveTactics.do_reify ------------ 0.0% 25.8% 1 0.688s
+─Reify.Reify_rhs_gen ------------------- 2.0% 24.0% 1 0.640s
+─Glue.zrange_to_reflective ------------- 0.0% 17.9% 1 0.476s
+─Glue.zrange_to_reflective_goal -------- 8.1% 13.1% 1 0.348s
+─Reify.do_reify_abs_goal --------------- 12.8% 12.9% 2 0.344s
+─Reify.do_reifyf_goal ------------------ 11.7% 11.9% 16 0.316s
+─ReflectiveTactics.unify_abstract_cbv_in 7.7% 10.2% 1 0.272s
+─unify (constr) (constr) --------------- 6.0% 6.0% 7 0.064s
+─Glue.pattern_sig_sig_assoc ------------ 0.0% 5.0% 1 0.132s
+─assert (H : is_bounded_by' bounds (map' 4.5% 4.7% 2 0.068s
+─Glue.pattern_proj1_sig_in_sig --------- 1.5% 4.7% 1 0.124s
+─pose proof (pf : Interpretation.Bo 3.3% 3.3% 1 0.088s
+─Glue.split_BoundedWordToZ ------------- 0.2% 3.0% 1 0.080s
+─destruct x ---------------------------- 2.7% 2.7% 4 0.032s
+─clearbody (ne_var_list) --------------- 2.7% 2.7% 4 0.056s
+─destruct_sig -------------------------- 0.0% 2.7% 4 0.040s
+─synthesize ---------------------------- 0.0% 2.6% 1 0.068s
+─prove_interp_compile_correct ---------- 0.0% 2.4% 1 0.064s
+─reflexivity --------------------------- 2.3% 2.3% 7 0.028s
+─rewrite ?EtaInterp.InterpExprEta ------ 2.3% 2.3% 1 0.060s
+─ClearbodyAll.clearbody_all ------------ 0.0% 2.1% 2 0.056s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 97.4% 1 2.596s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 70.9% 1 1.888s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 69.5% 1 1.852s
+ │ ├─ReflectiveTactics.solve_post_reifie 1.4% 43.7% 1 1.164s
+ │ │ ├─UnifyAbstractReflexivity.unify_tr 27.0% 31.7% 8 0.256s
+ │ │ │└unify (constr) (constr) --------- 3.6% 3.6% 6 0.028s
+ │ │ └─ReflectiveTactics.unify_abstract_ 7.7% 10.2% 1 0.272s
+ │ │ └unify (constr) (constr) --------- 2.4% 2.4% 1 0.064s
+ │ └─ReflectiveTactics.do_reify -------- 0.0% 25.8% 1 0.688s
+ │ └Reify.Reify_rhs_gen --------------- 2.0% 24.0% 1 0.640s
+ │ ├─Reify.do_reify_abs_goal --------- 12.8% 12.9% 2 0.344s
+ │ │└Reify.do_reifyf_goal ------------ 11.7% 11.9% 16 0.316s
+ │ └─prove_interp_compile_correct ---- 0.0% 2.4% 1 0.064s
+ │ └rewrite ?EtaInterp.InterpExprEta 2.3% 2.3% 1 0.060s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 26.6% 1 0.708s
+ ├─Glue.zrange_to_reflective --------- 0.0% 17.9% 1 0.476s
+ │ ├─Glue.zrange_to_reflective_goal -- 8.1% 13.1% 1 0.348s
+ │ │└pose proof (pf : Interpretat 3.3% 3.3% 1 0.088s
+ │ └─assert (H : is_bounded_by' bounds 4.5% 4.7% 2 0.068s
+ ├─Glue.pattern_sig_sig_assoc -------- 0.0% 5.0% 1 0.132s
+ │└Glue.pattern_proj1_sig_in_sig ----- 1.5% 4.7% 1 0.124s
+ │└ClearbodyAll.clearbody_all -------- 0.0% 2.1% 2 0.056s
+ │└clearbody (ne_var_list) ----------- 2.1% 2.1% 1 0.056s
+ └─Glue.split_BoundedWordToZ --------- 0.2% 3.0% 1 0.080s
+ └destruct_sig ---------------------- 0.0% 2.7% 4 0.040s
+ └destruct x ------------------------ 2.1% 2.1% 2 0.032s
+─synthesize ---------------------------- 0.0% 2.6% 1 0.068s
+
+Finished transaction in 5.46 secs (5.068u,0.003s) (successful)
+Closed under the global context
+total time: 2.664s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 97.4% 1 2.596s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 70.9% 1 1.888s
+─ReflectiveTactics.solve_side_conditions 0.0% 69.5% 1 1.852s
+─ReflectiveTactics.solve_post_reified_si 1.4% 43.7% 1 1.164s
+─UnifyAbstractReflexivity.unify_transfor 27.0% 31.7% 8 0.256s
+─Glue.refine_to_reflective_glue' ------- 0.0% 26.6% 1 0.708s
+─ReflectiveTactics.do_reify ------------ 0.0% 25.8% 1 0.688s
+─Reify.Reify_rhs_gen ------------------- 2.0% 24.0% 1 0.640s
+─Glue.zrange_to_reflective ------------- 0.0% 17.9% 1 0.476s
+─Glue.zrange_to_reflective_goal -------- 8.1% 13.1% 1 0.348s
+─Reify.do_reify_abs_goal --------------- 12.8% 12.9% 2 0.344s
+─Reify.do_reifyf_goal ------------------ 11.7% 11.9% 16 0.316s
+─ReflectiveTactics.unify_abstract_cbv_in 7.7% 10.2% 1 0.272s
+─unify (constr) (constr) --------------- 6.0% 6.0% 7 0.064s
+─Glue.pattern_sig_sig_assoc ------------ 0.0% 5.0% 1 0.132s
+─assert (H : is_bounded_by' bounds (map' 4.5% 4.7% 2 0.068s
+─Glue.pattern_proj1_sig_in_sig --------- 1.5% 4.7% 1 0.124s
+─pose proof (pf : Interpretation.Bo 3.3% 3.3% 1 0.088s
+─Glue.split_BoundedWordToZ ------------- 0.2% 3.0% 1 0.080s
+─destruct x ---------------------------- 2.7% 2.7% 4 0.032s
+─clearbody (ne_var_list) --------------- 2.7% 2.7% 4 0.056s
+─destruct_sig -------------------------- 0.0% 2.7% 4 0.040s
+─synthesize ---------------------------- 0.0% 2.6% 1 0.068s
+─prove_interp_compile_correct ---------- 0.0% 2.4% 1 0.064s
+─reflexivity --------------------------- 2.3% 2.3% 7 0.028s
+─rewrite ?EtaInterp.InterpExprEta ------ 2.3% 2.3% 1 0.060s
+─ClearbodyAll.clearbody_all ------------ 0.0% 2.1% 2 0.056s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 97.4% 1 2.596s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 70.9% 1 1.888s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 69.5% 1 1.852s
+ │ ├─ReflectiveTactics.solve_post_reifie 1.4% 43.7% 1 1.164s
+ │ │ ├─UnifyAbstractReflexivity.unify_tr 27.0% 31.7% 8 0.256s
+ │ │ │└unify (constr) (constr) --------- 3.6% 3.6% 6 0.028s
+ │ │ └─ReflectiveTactics.unify_abstract_ 7.7% 10.2% 1 0.272s
+ │ │ └unify (constr) (constr) --------- 2.4% 2.4% 1 0.064s
+ │ └─ReflectiveTactics.do_reify -------- 0.0% 25.8% 1 0.688s
+ │ └Reify.Reify_rhs_gen --------------- 2.0% 24.0% 1 0.640s
+ │ ├─Reify.do_reify_abs_goal --------- 12.8% 12.9% 2 0.344s
+ │ │└Reify.do_reifyf_goal ------------ 11.7% 11.9% 16 0.316s
+ │ └─prove_interp_compile_correct ---- 0.0% 2.4% 1 0.064s
+ │ └rewrite ?EtaInterp.InterpExprEta 2.3% 2.3% 1 0.060s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 26.6% 1 0.708s
+ ├─Glue.zrange_to_reflective --------- 0.0% 17.9% 1 0.476s
+ │ ├─Glue.zrange_to_reflective_goal -- 8.1% 13.1% 1 0.348s
+ │ │└pose proof (pf : Interpretat 3.3% 3.3% 1 0.088s
+ │ └─assert (H : is_bounded_by' bounds 4.5% 4.7% 2 0.068s
+ ├─Glue.pattern_sig_sig_assoc -------- 0.0% 5.0% 1 0.132s
+ │└Glue.pattern_proj1_sig_in_sig ----- 1.5% 4.7% 1 0.124s
+ │└ClearbodyAll.clearbody_all -------- 0.0% 2.1% 2 0.056s
+ │└clearbody (ne_var_list) ----------- 2.1% 2.1% 1 0.056s
+ └─Glue.split_BoundedWordToZ --------- 0.2% 3.0% 1 0.080s
+ └destruct_sig ---------------------- 0.0% 2.7% 4 0.040s
+ └destruct x ------------------------ 2.1% 2.1% 2 0.032s
+─synthesize ---------------------------- 0.0% 2.6% 1 0.068s
+
+src/Specific/X25519/C64/feadd (real: 23.43, user: 21.41, sys: 0.26, mem: 766168 ko)
+COQC src/Specific/solinas32_2e255m765_12limbs/Synthesis.v
+src/Specific/solinas32_2e255m765_12limbs/Synthesis (real: 39.53, user: 36.64, sys: 0.21, mem: 729464 ko)
+COQC src/Specific/X25519/C64/fecarry.v
+Finished transaction in 4.798 secs (4.375u,0.003s) (successful)
+total time: 4.332s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.1% 99.0% 1 4.288s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 89.2% 1 3.864s
+─ReflectiveTactics.solve_side_conditions 0.0% 88.1% 1 3.816s
+─ReflectiveTactics.do_reify ------------ 0.0% 53.2% 1 2.304s
+─Reify.Reify_rhs_gen ------------------- 1.8% 52.6% 1 2.280s
+─ReflectiveTactics.solve_post_reified_si 0.6% 34.9% 1 1.512s
+─Reify.do_reify_abs_goal --------------- 33.5% 33.9% 2 1.468s
+─Reify.do_reifyf_goal ------------------ 32.1% 32.5% 29 1.408s
+─UnifyAbstractReflexivity.unify_transfor 22.5% 27.1% 8 0.316s
+─Glue.refine_to_reflective_glue' ------- 0.1% 9.7% 1 0.420s
+─eexact -------------------------------- 9.3% 9.3% 31 0.024s
+─ReflectiveTactics.unify_abstract_cbv_in 5.2% 7.0% 1 0.304s
+─Glue.zrange_to_reflective ------------- 0.1% 6.2% 1 0.268s
+─prove_interp_compile_correct ---------- 0.0% 5.6% 1 0.244s
+─rewrite ?EtaInterp.InterpExprEta ------ 5.3% 5.3% 1 0.228s
+─unify (constr) (constr) --------------- 5.3% 5.3% 7 0.076s
+─Glue.zrange_to_reflective_goal -------- 4.0% 4.9% 1 0.212s
+─rewrite H ----------------------------- 3.4% 3.4% 1 0.148s
+─tac ----------------------------------- 1.8% 2.6% 2 0.112s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.1% 99.0% 1 4.288s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 89.2% 1 3.864s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 88.1% 1 3.816s
+ │ ├─ReflectiveTactics.do_reify -------- 0.0% 53.2% 1 2.304s
+ │ │└Reify.Reify_rhs_gen --------------- 1.8% 52.6% 1 2.280s
+ │ │ ├─Reify.do_reify_abs_goal --------- 33.5% 33.9% 2 1.468s
+ │ │ │└Reify.do_reifyf_goal ------------ 32.1% 32.5% 29 1.408s
+ │ │ │└eexact -------------------------- 8.6% 8.6% 29 0.024s
+ │ │ ├─prove_interp_compile_correct ---- 0.0% 5.6% 1 0.244s
+ │ │ │└rewrite ?EtaInterp.InterpExprEta 5.3% 5.3% 1 0.228s
+ │ │ ├─rewrite H ----------------------- 3.4% 3.4% 1 0.148s
+ │ │ └─tac ----------------------------- 1.8% 2.6% 1 0.112s
+ │ └─ReflectiveTactics.solve_post_reifie 0.6% 34.9% 1 1.512s
+ │ ├─UnifyAbstractReflexivity.unify_tr 22.5% 27.1% 8 0.316s
+ │ │└unify (constr) (constr) --------- 3.5% 3.5% 6 0.044s
+ │ └─ReflectiveTactics.unify_abstract_ 5.2% 7.0% 1 0.304s
+ └─Glue.refine_to_reflective_glue' ----- 0.1% 9.7% 1 0.420s
+ └Glue.zrange_to_reflective ----------- 0.1% 6.2% 1 0.268s
+ └Glue.zrange_to_reflective_goal ------ 4.0% 4.9% 1 0.212s
+
+Finished transaction in 8.342 secs (7.604u,0.008s) (successful)
+Closed under the global context
+total time: 4.332s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.1% 99.0% 1 4.288s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 89.2% 1 3.864s
+─ReflectiveTactics.solve_side_conditions 0.0% 88.1% 1 3.816s
+─ReflectiveTactics.do_reify ------------ 0.0% 53.2% 1 2.304s
+─Reify.Reify_rhs_gen ------------------- 1.8% 52.6% 1 2.280s
+─ReflectiveTactics.solve_post_reified_si 0.6% 34.9% 1 1.512s
+─Reify.do_reify_abs_goal --------------- 33.5% 33.9% 2 1.468s
+─Reify.do_reifyf_goal ------------------ 32.1% 32.5% 29 1.408s
+─UnifyAbstractReflexivity.unify_transfor 22.5% 27.1% 8 0.316s
+─Glue.refine_to_reflective_glue' ------- 0.1% 9.7% 1 0.420s
+─eexact -------------------------------- 9.3% 9.3% 31 0.024s
+─ReflectiveTactics.unify_abstract_cbv_in 5.2% 7.0% 1 0.304s
+─Glue.zrange_to_reflective ------------- 0.1% 6.2% 1 0.268s
+─prove_interp_compile_correct ---------- 0.0% 5.6% 1 0.244s
+─rewrite ?EtaInterp.InterpExprEta ------ 5.3% 5.3% 1 0.228s
+─unify (constr) (constr) --------------- 5.3% 5.3% 7 0.076s
+─Glue.zrange_to_reflective_goal -------- 4.0% 4.9% 1 0.212s
+─rewrite H ----------------------------- 3.4% 3.4% 1 0.148s
+─tac ----------------------------------- 1.8% 2.6% 2 0.112s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.1% 99.0% 1 4.288s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 89.2% 1 3.864s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 88.1% 1 3.816s
+ │ ├─ReflectiveTactics.do_reify -------- 0.0% 53.2% 1 2.304s
+ │ │└Reify.Reify_rhs_gen --------------- 1.8% 52.6% 1 2.280s
+ │ │ ├─Reify.do_reify_abs_goal --------- 33.5% 33.9% 2 1.468s
+ │ │ │└Reify.do_reifyf_goal ------------ 32.1% 32.5% 29 1.408s
+ │ │ │└eexact -------------------------- 8.6% 8.6% 29 0.024s
+ │ │ ├─prove_interp_compile_correct ---- 0.0% 5.6% 1 0.244s
+ │ │ │└rewrite ?EtaInterp.InterpExprEta 5.3% 5.3% 1 0.228s
+ │ │ ├─rewrite H ----------------------- 3.4% 3.4% 1 0.148s
+ │ │ └─tac ----------------------------- 1.8% 2.6% 1 0.112s
+ │ └─ReflectiveTactics.solve_post_reifie 0.6% 34.9% 1 1.512s
+ │ ├─UnifyAbstractReflexivity.unify_tr 22.5% 27.1% 8 0.316s
+ │ │└unify (constr) (constr) --------- 3.5% 3.5% 6 0.044s
+ │ └─ReflectiveTactics.unify_abstract_ 5.2% 7.0% 1 0.304s
+ └─Glue.refine_to_reflective_glue' ----- 0.1% 9.7% 1 0.420s
+ └Glue.zrange_to_reflective ----------- 0.1% 6.2% 1 0.268s
+ └Glue.zrange_to_reflective_goal ------ 4.0% 4.9% 1 0.212s
+
+src/Specific/X25519/C64/fecarry (real: 28.85, user: 26.31, sys: 0.25, mem: 787148 ko)
+COQC src/Specific/solinas32_2e255m765_13limbs/Synthesis.v
+src/Specific/solinas32_2e255m765_13limbs/Synthesis (real: 49.50, user: 45.58, sys: 0.18, mem: 744472 ko)
+COQC src/Specific/X25519/C64/femul.v
+Finished transaction in 9.325 secs (8.62u,0.016s) (successful)
+total time: 8.576s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 95.8% 1 8.220s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 87.7% 1 7.524s
+─ReflectiveTactics.solve_side_conditions 0.0% 87.0% 1 7.460s
+─ReflectiveTactics.do_reify ------------ 0.0% 43.8% 1 3.760s
+─ReflectiveTactics.solve_post_reified_si 0.6% 43.1% 1 3.700s
+─Reify.Reify_rhs_gen ------------------- 1.4% 43.0% 1 3.688s
+─UnifyAbstractReflexivity.unify_transfor 31.1% 36.7% 8 1.096s
+─Reify.do_reify_abs_goal --------------- 26.3% 26.6% 2 2.284s
+─Reify.do_reifyf_goal ------------------ 25.3% 25.6% 58 1.440s
+─Glue.refine_to_reflective_glue' ------- 0.0% 8.1% 1 0.696s
+─eexact -------------------------------- 7.6% 7.6% 60 0.032s
+─unify (constr) (constr) --------------- 5.8% 5.8% 7 0.128s
+─Glue.zrange_to_reflective ------------- 0.0% 5.7% 1 0.488s
+─ReflectiveTactics.unify_abstract_cbv_in 3.8% 5.5% 1 0.468s
+─prove_interp_compile_correct ---------- 0.0% 5.2% 1 0.448s
+─rewrite ?EtaInterp.InterpExprEta ------ 4.9% 4.9% 1 0.416s
+─Glue.zrange_to_reflective_goal -------- 2.6% 4.2% 1 0.364s
+─synthesize ---------------------------- 0.0% 4.2% 1 0.356s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 3.8% 1 0.328s
+─rewrite H ----------------------------- 3.2% 3.2% 1 0.276s
+─change G' ----------------------------- 3.2% 3.2% 1 0.272s
+─tac ----------------------------------- 1.4% 2.1% 2 0.180s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 95.8% 1 8.220s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 87.7% 1 7.524s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 87.0% 1 7.460s
+ │ ├─ReflectiveTactics.do_reify -------- 0.0% 43.8% 1 3.760s
+ │ │└Reify.Reify_rhs_gen --------------- 1.4% 43.0% 1 3.688s
+ │ │ ├─Reify.do_reify_abs_goal --------- 26.3% 26.6% 2 2.284s
+ │ │ │└Reify.do_reifyf_goal ------------ 25.3% 25.6% 58 1.440s
+ │ │ │└eexact -------------------------- 6.9% 6.9% 58 0.032s
+ │ │ ├─prove_interp_compile_correct ---- 0.0% 5.2% 1 0.448s
+ │ │ │└rewrite ?EtaInterp.InterpExprEta 4.9% 4.9% 1 0.416s
+ │ │ ├─rewrite H ----------------------- 3.2% 3.2% 1 0.276s
+ │ │ └─tac ----------------------------- 1.4% 2.1% 1 0.180s
+ │ └─ReflectiveTactics.solve_post_reifie 0.6% 43.1% 1 3.700s
+ │ ├─UnifyAbstractReflexivity.unify_tr 31.1% 36.7% 8 1.096s
+ │ │└unify (constr) (constr) --------- 4.3% 4.3% 6 0.092s
+ │ └─ReflectiveTactics.unify_abstract_ 3.8% 5.5% 1 0.468s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 8.1% 1 0.696s
+ └Glue.zrange_to_reflective ----------- 0.0% 5.7% 1 0.488s
+ └Glue.zrange_to_reflective_goal ------ 2.6% 4.2% 1 0.364s
+─synthesize ---------------------------- 0.0% 4.2% 1 0.356s
+└IntegrationTestTemporaryMiscCommon.do_r 0.0% 3.8% 1 0.328s
+└change G' ----------------------------- 3.2% 3.2% 1 0.272s
+
+Finished transaction in 16.611 secs (15.352u,0.s) (successful)
+Closed under the global context
+total time: 8.576s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 95.8% 1 8.220s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 87.7% 1 7.524s
+─ReflectiveTactics.solve_side_conditions 0.0% 87.0% 1 7.460s
+─ReflectiveTactics.do_reify ------------ 0.0% 43.8% 1 3.760s
+─ReflectiveTactics.solve_post_reified_si 0.6% 43.1% 1 3.700s
+─Reify.Reify_rhs_gen ------------------- 1.4% 43.0% 1 3.688s
+─UnifyAbstractReflexivity.unify_transfor 31.1% 36.7% 8 1.096s
+─Reify.do_reify_abs_goal --------------- 26.3% 26.6% 2 2.284s
+─Reify.do_reifyf_goal ------------------ 25.3% 25.6% 58 1.440s
+─Glue.refine_to_reflective_glue' ------- 0.0% 8.1% 1 0.696s
+─eexact -------------------------------- 7.6% 7.6% 60 0.032s
+─unify (constr) (constr) --------------- 5.8% 5.8% 7 0.128s
+─Glue.zrange_to_reflective ------------- 0.0% 5.7% 1 0.488s
+─ReflectiveTactics.unify_abstract_cbv_in 3.8% 5.5% 1 0.468s
+─prove_interp_compile_correct ---------- 0.0% 5.2% 1 0.448s
+─rewrite ?EtaInterp.InterpExprEta ------ 4.9% 4.9% 1 0.416s
+─Glue.zrange_to_reflective_goal -------- 2.6% 4.2% 1 0.364s
+─synthesize ---------------------------- 0.0% 4.2% 1 0.356s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 3.8% 1 0.328s
+─rewrite H ----------------------------- 3.2% 3.2% 1 0.276s
+─change G' ----------------------------- 3.2% 3.2% 1 0.272s
+─tac ----------------------------------- 1.4% 2.1% 2 0.180s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 95.8% 1 8.220s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 87.7% 1 7.524s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 87.0% 1 7.460s
+ │ ├─ReflectiveTactics.do_reify -------- 0.0% 43.8% 1 3.760s
+ │ │└Reify.Reify_rhs_gen --------------- 1.4% 43.0% 1 3.688s
+ │ │ ├─Reify.do_reify_abs_goal --------- 26.3% 26.6% 2 2.284s
+ │ │ │└Reify.do_reifyf_goal ------------ 25.3% 25.6% 58 1.440s
+ │ │ │└eexact -------------------------- 6.9% 6.9% 58 0.032s
+ │ │ ├─prove_interp_compile_correct ---- 0.0% 5.2% 1 0.448s
+ │ │ │└rewrite ?EtaInterp.InterpExprEta 4.9% 4.9% 1 0.416s
+ │ │ ├─rewrite H ----------------------- 3.2% 3.2% 1 0.276s
+ │ │ └─tac ----------------------------- 1.4% 2.1% 1 0.180s
+ │ └─ReflectiveTactics.solve_post_reifie 0.6% 43.1% 1 3.700s
+ │ ├─UnifyAbstractReflexivity.unify_tr 31.1% 36.7% 8 1.096s
+ │ │└unify (constr) (constr) --------- 4.3% 4.3% 6 0.092s
+ │ └─ReflectiveTactics.unify_abstract_ 3.8% 5.5% 1 0.468s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 8.1% 1 0.696s
+ └Glue.zrange_to_reflective ----------- 0.0% 5.7% 1 0.488s
+ └Glue.zrange_to_reflective_goal ------ 2.6% 4.2% 1 0.364s
+─synthesize ---------------------------- 0.0% 4.2% 1 0.356s
+└IntegrationTestTemporaryMiscCommon.do_r 0.0% 3.8% 1 0.328s
+└change G' ----------------------------- 3.2% 3.2% 1 0.272s
+
+src/Specific/X25519/C64/femul (real: 42.98, user: 39.50, sys: 0.29, mem: 839624 ko)
+COQC src/Specific/X25519/C64/feaddDisplay > src/Specific/X25519/C64/feaddDisplay.log
+COQC src/Specific/X25519/C64/fecarryDisplay > src/Specific/X25519/C64/fecarryDisplay.log
+COQC src/Specific/X25519/C64/fesub.v
+Finished transaction in 3.729 secs (3.48u,0.012s) (successful)
+total time: 3.444s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 98.0% 1 3.376s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 77.1% 1 2.656s
+─ReflectiveTactics.solve_side_conditions 0.0% 75.8% 1 2.612s
+─ReflectiveTactics.solve_post_reified_si 1.2% 40.1% 1 1.380s
+─ReflectiveTactics.do_reify ------------ 0.0% 35.8% 1 1.232s
+─Reify.Reify_rhs_gen ------------------- 1.4% 34.4% 1 1.184s
+─UnifyAbstractReflexivity.unify_transfor 25.7% 30.5% 8 0.324s
+─Glue.refine_to_reflective_glue' ------- 0.0% 20.9% 1 0.720s
+─Reify.do_reify_abs_goal --------------- 18.5% 18.8% 2 0.648s
+─Reify.do_reifyf_goal ------------------ 17.3% 17.5% 16 0.604s
+─Glue.zrange_to_reflective ------------- 0.0% 14.2% 1 0.488s
+─Glue.zrange_to_reflective_goal -------- 6.5% 10.6% 1 0.364s
+─ReflectiveTactics.unify_abstract_cbv_in 5.8% 8.0% 1 0.276s
+─unify (constr) (constr) --------------- 5.8% 5.8% 7 0.076s
+─eexact -------------------------------- 4.4% 4.4% 18 0.012s
+─Glue.pattern_sig_sig_assoc ------------ 0.0% 3.8% 1 0.132s
+─assert (H : is_bounded_by' bounds (map' 3.6% 3.6% 2 0.064s
+─Glue.pattern_proj1_sig_in_sig --------- 1.2% 3.6% 1 0.124s
+─prove_interp_compile_correct ---------- 0.0% 3.5% 1 0.120s
+─rewrite H ----------------------------- 3.4% 3.4% 1 0.116s
+─rewrite ?EtaInterp.InterpExprEta ------ 3.1% 3.1% 1 0.108s
+─pose proof (pf : Interpretation.Bo 2.7% 2.7% 1 0.092s
+─reflexivity --------------------------- 2.6% 2.6% 7 0.032s
+─Glue.split_BoundedWordToZ ------------- 0.2% 2.4% 1 0.084s
+─tac ----------------------------------- 1.7% 2.2% 2 0.076s
+─Reify.transitivity_tt ----------------- 0.1% 2.2% 2 0.040s
+─transitivity -------------------------- 2.1% 2.1% 5 0.032s
+─clearbody (ne_var_list) --------------- 2.1% 2.1% 4 0.056s
+─destruct_sig -------------------------- 0.0% 2.1% 4 0.040s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 98.0% 1 3.376s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 77.1% 1 2.656s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 75.8% 1 2.612s
+ │ ├─ReflectiveTactics.solve_post_reifie 1.2% 40.1% 1 1.380s
+ │ │ ├─UnifyAbstractReflexivity.unify_tr 25.7% 30.5% 8 0.324s
+ │ │ │└unify (constr) (constr) --------- 3.6% 3.6% 6 0.040s
+ │ │ └─ReflectiveTactics.unify_abstract_ 5.8% 8.0% 1 0.276s
+ │ │ └unify (constr) (constr) --------- 2.2% 2.2% 1 0.076s
+ │ └─ReflectiveTactics.do_reify -------- 0.0% 35.8% 1 1.232s
+ │ └Reify.Reify_rhs_gen --------------- 1.4% 34.4% 1 1.184s
+ │ ├─Reify.do_reify_abs_goal --------- 18.5% 18.8% 2 0.648s
+ │ │└Reify.do_reifyf_goal ------------ 17.3% 17.5% 16 0.604s
+ │ │└eexact -------------------------- 3.8% 3.8% 16 0.012s
+ │ ├─prove_interp_compile_correct ---- 0.0% 3.5% 1 0.120s
+ │ │└rewrite ?EtaInterp.InterpExprEta 3.1% 3.1% 1 0.108s
+ │ ├─rewrite H ----------------------- 3.4% 3.4% 1 0.116s
+ │ ├─tac ----------------------------- 1.7% 2.2% 1 0.076s
+ │ └─Reify.transitivity_tt ----------- 0.1% 2.2% 2 0.040s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 20.9% 1 0.720s
+ ├─Glue.zrange_to_reflective --------- 0.0% 14.2% 1 0.488s
+ │ ├─Glue.zrange_to_reflective_goal -- 6.5% 10.6% 1 0.364s
+ │ │└pose proof (pf : Interpretat 2.7% 2.7% 1 0.092s
+ │ └─assert (H : is_bounded_by' bounds 3.6% 3.6% 2 0.064s
+ ├─Glue.pattern_sig_sig_assoc -------- 0.0% 3.8% 1 0.132s
+ │└Glue.pattern_proj1_sig_in_sig ----- 1.2% 3.6% 1 0.124s
+ └─Glue.split_BoundedWordToZ --------- 0.2% 2.4% 1 0.084s
+ └destruct_sig ---------------------- 0.0% 2.1% 4 0.040s
+
+Finished transaction in 6.763 secs (6.183u,0.s) (successful)
+Closed under the global context
+total time: 3.444s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 98.0% 1 3.376s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 77.1% 1 2.656s
+─ReflectiveTactics.solve_side_conditions 0.0% 75.8% 1 2.612s
+─ReflectiveTactics.solve_post_reified_si 1.2% 40.1% 1 1.380s
+─ReflectiveTactics.do_reify ------------ 0.0% 35.8% 1 1.232s
+─Reify.Reify_rhs_gen ------------------- 1.4% 34.4% 1 1.184s
+─UnifyAbstractReflexivity.unify_transfor 25.7% 30.5% 8 0.324s
+─Glue.refine_to_reflective_glue' ------- 0.0% 20.9% 1 0.720s
+─Reify.do_reify_abs_goal --------------- 18.5% 18.8% 2 0.648s
+─Reify.do_reifyf_goal ------------------ 17.3% 17.5% 16 0.604s
+─Glue.zrange_to_reflective ------------- 0.0% 14.2% 1 0.488s
+─Glue.zrange_to_reflective_goal -------- 6.5% 10.6% 1 0.364s
+─ReflectiveTactics.unify_abstract_cbv_in 5.8% 8.0% 1 0.276s
+─unify (constr) (constr) --------------- 5.8% 5.8% 7 0.076s
+─eexact -------------------------------- 4.4% 4.4% 18 0.012s
+─Glue.pattern_sig_sig_assoc ------------ 0.0% 3.8% 1 0.132s
+─assert (H : is_bounded_by' bounds (map' 3.6% 3.6% 2 0.064s
+─Glue.pattern_proj1_sig_in_sig --------- 1.2% 3.6% 1 0.124s
+─prove_interp_compile_correct ---------- 0.0% 3.5% 1 0.120s
+─rewrite H ----------------------------- 3.4% 3.4% 1 0.116s
+─rewrite ?EtaInterp.InterpExprEta ------ 3.1% 3.1% 1 0.108s
+─pose proof (pf : Interpretation.Bo 2.7% 2.7% 1 0.092s
+─reflexivity --------------------------- 2.6% 2.6% 7 0.032s
+─Glue.split_BoundedWordToZ ------------- 0.2% 2.4% 1 0.084s
+─tac ----------------------------------- 1.7% 2.2% 2 0.076s
+─Reify.transitivity_tt ----------------- 0.1% 2.2% 2 0.040s
+─transitivity -------------------------- 2.1% 2.1% 5 0.032s
+─clearbody (ne_var_list) --------------- 2.1% 2.1% 4 0.056s
+─destruct_sig -------------------------- 0.0% 2.1% 4 0.040s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 98.0% 1 3.376s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 77.1% 1 2.656s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 75.8% 1 2.612s
+ │ ├─ReflectiveTactics.solve_post_reifie 1.2% 40.1% 1 1.380s
+ │ │ ├─UnifyAbstractReflexivity.unify_tr 25.7% 30.5% 8 0.324s
+ │ │ │└unify (constr) (constr) --------- 3.6% 3.6% 6 0.040s
+ │ │ └─ReflectiveTactics.unify_abstract_ 5.8% 8.0% 1 0.276s
+ │ │ └unify (constr) (constr) --------- 2.2% 2.2% 1 0.076s
+ │ └─ReflectiveTactics.do_reify -------- 0.0% 35.8% 1 1.232s
+ │ └Reify.Reify_rhs_gen --------------- 1.4% 34.4% 1 1.184s
+ │ ├─Reify.do_reify_abs_goal --------- 18.5% 18.8% 2 0.648s
+ │ │└Reify.do_reifyf_goal ------------ 17.3% 17.5% 16 0.604s
+ │ │└eexact -------------------------- 3.8% 3.8% 16 0.012s
+ │ ├─prove_interp_compile_correct ---- 0.0% 3.5% 1 0.120s
+ │ │└rewrite ?EtaInterp.InterpExprEta 3.1% 3.1% 1 0.108s
+ │ ├─rewrite H ----------------------- 3.4% 3.4% 1 0.116s
+ │ ├─tac ----------------------------- 1.7% 2.2% 1 0.076s
+ │ └─Reify.transitivity_tt ----------- 0.1% 2.2% 2 0.040s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 20.9% 1 0.720s
+ ├─Glue.zrange_to_reflective --------- 0.0% 14.2% 1 0.488s
+ │ ├─Glue.zrange_to_reflective_goal -- 6.5% 10.6% 1 0.364s
+ │ │└pose proof (pf : Interpretat 2.7% 2.7% 1 0.092s
+ │ └─assert (H : is_bounded_by' bounds 3.6% 3.6% 2 0.064s
+ ├─Glue.pattern_sig_sig_assoc -------- 0.0% 3.8% 1 0.132s
+ │└Glue.pattern_proj1_sig_in_sig ----- 1.2% 3.6% 1 0.124s
+ └─Glue.split_BoundedWordToZ --------- 0.2% 2.4% 1 0.084s
+ └destruct_sig ---------------------- 0.0% 2.1% 4 0.040s
+
+src/Specific/X25519/C64/fesub (real: 26.11, user: 23.72, sys: 0.24, mem: 781808 ko)
+COQC src/Specific/X25519/C64/fesquare.v
+Finished transaction in 6.477 secs (6.044u,0.008s) (successful)
+total time: 6.012s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize ---------------------------- 0.0% 100.0% 1 6.012s
+─Pipeline.refine_reflectively_gen ------ 0.0% 95.9% 1 5.764s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 89.6% 1 5.388s
+─ReflectiveTactics.solve_side_conditions 0.0% 88.8% 1 5.340s
+─ReflectiveTactics.do_reify ------------ 0.0% 47.0% 1 2.828s
+─Reify.Reify_rhs_gen ------------------- 1.5% 46.3% 1 2.784s
+─ReflectiveTactics.solve_post_reified_si 0.5% 41.8% 1 2.512s
+─UnifyAbstractReflexivity.unify_transfor 28.5% 34.1% 8 0.552s
+─Reify.do_reify_abs_goal --------------- 28.7% 29.1% 2 1.752s
+─Reify.do_reifyf_goal ------------------ 27.6% 27.9% 47 1.320s
+─eexact -------------------------------- 8.4% 8.4% 49 0.024s
+─ReflectiveTactics.unify_abstract_cbv_in 5.0% 6.9% 1 0.412s
+─unify (constr) (constr) --------------- 6.3% 6.3% 7 0.104s
+─Glue.refine_to_reflective_glue' ------- 0.0% 6.3% 1 0.376s
+─prove_interp_compile_correct ---------- 0.0% 5.3% 1 0.316s
+─rewrite ?EtaInterp.InterpExprEta ------ 4.8% 4.8% 1 0.288s
+─Glue.zrange_to_reflective ------------- 0.0% 4.4% 1 0.264s
+─IntegrationTestTemporaryMiscCommon.do_r 0.1% 3.7% 1 0.224s
+─Glue.zrange_to_reflective_goal -------- 2.6% 3.3% 1 0.196s
+─change G' ----------------------------- 3.1% 3.1% 1 0.188s
+─rewrite H ----------------------------- 3.0% 3.0% 1 0.180s
+─tac ----------------------------------- 1.9% 2.7% 2 0.160s
+─reflexivity --------------------------- 2.4% 2.4% 7 0.060s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize ---------------------------- 0.0% 100.0% 1 6.012s
+ ├─Pipeline.refine_reflectively_gen ---- 0.0% 95.9% 1 5.764s
+ │ ├─ReflectiveTactics.do_reflective_pip 0.0% 89.6% 1 5.388s
+ │ │└ReflectiveTactics.solve_side_condit 0.0% 88.8% 1 5.340s
+ │ │ ├─ReflectiveTactics.do_reify ------ 0.0% 47.0% 1 2.828s
+ │ │ │└Reify.Reify_rhs_gen ------------- 1.5% 46.3% 1 2.784s
+ │ │ │ ├─Reify.do_reify_abs_goal ------- 28.7% 29.1% 2 1.752s
+ │ │ │ │└Reify.do_reifyf_goal ---------- 27.6% 27.9% 47 1.320s
+ │ │ │ │└eexact ------------------------ 7.7% 7.7% 47 0.024s
+ │ │ │ ├─prove_interp_compile_correct -- 0.0% 5.3% 1 0.316s
+ │ │ │ │└rewrite ?EtaInterp.InterpExprEt 4.8% 4.8% 1 0.288s
+ │ │ │ ├─rewrite H --------------------- 3.0% 3.0% 1 0.180s
+ │ │ │ └─tac --------------------------- 1.9% 2.7% 1 0.160s
+ │ │ └─ReflectiveTactics.solve_post_reif 0.5% 41.8% 1 2.512s
+ │ │ ├─UnifyAbstractReflexivity.unify_ 28.5% 34.1% 8 0.552s
+ │ │ │└unify (constr) (constr) ------- 4.6% 4.6% 6 0.076s
+ │ │ └─ReflectiveTactics.unify_abstrac 5.0% 6.9% 1 0.412s
+ │ └─Glue.refine_to_reflective_glue' --- 0.0% 6.3% 1 0.376s
+ │ └Glue.zrange_to_reflective --------- 0.0% 4.4% 1 0.264s
+ │ └Glue.zrange_to_reflective_goal ---- 2.6% 3.3% 1 0.196s
+ └─IntegrationTestTemporaryMiscCommon.do 0.1% 3.7% 1 0.224s
+ └change G' --------------------------- 3.1% 3.1% 1 0.188s
+
+Finished transaction in 12.356 secs (11.331u,0.004s) (successful)
+Closed under the global context
+total time: 6.012s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize ---------------------------- 0.0% 100.0% 1 6.012s
+─Pipeline.refine_reflectively_gen ------ 0.0% 95.9% 1 5.764s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 89.6% 1 5.388s
+─ReflectiveTactics.solve_side_conditions 0.0% 88.8% 1 5.340s
+─ReflectiveTactics.do_reify ------------ 0.0% 47.0% 1 2.828s
+─Reify.Reify_rhs_gen ------------------- 1.5% 46.3% 1 2.784s
+─ReflectiveTactics.solve_post_reified_si 0.5% 41.8% 1 2.512s
+─UnifyAbstractReflexivity.unify_transfor 28.5% 34.1% 8 0.552s
+─Reify.do_reify_abs_goal --------------- 28.7% 29.1% 2 1.752s
+─Reify.do_reifyf_goal ------------------ 27.6% 27.9% 47 1.320s
+─eexact -------------------------------- 8.4% 8.4% 49 0.024s
+─ReflectiveTactics.unify_abstract_cbv_in 5.0% 6.9% 1 0.412s
+─unify (constr) (constr) --------------- 6.3% 6.3% 7 0.104s
+─Glue.refine_to_reflective_glue' ------- 0.0% 6.3% 1 0.376s
+─prove_interp_compile_correct ---------- 0.0% 5.3% 1 0.316s
+─rewrite ?EtaInterp.InterpExprEta ------ 4.8% 4.8% 1 0.288s
+─Glue.zrange_to_reflective ------------- 0.0% 4.4% 1 0.264s
+─IntegrationTestTemporaryMiscCommon.do_r 0.1% 3.7% 1 0.224s
+─Glue.zrange_to_reflective_goal -------- 2.6% 3.3% 1 0.196s
+─change G' ----------------------------- 3.1% 3.1% 1 0.188s
+─rewrite H ----------------------------- 3.0% 3.0% 1 0.180s
+─tac ----------------------------------- 1.9% 2.7% 2 0.160s
+─reflexivity --------------------------- 2.4% 2.4% 7 0.060s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize ---------------------------- 0.0% 100.0% 1 6.012s
+ ├─Pipeline.refine_reflectively_gen ---- 0.0% 95.9% 1 5.764s
+ │ ├─ReflectiveTactics.do_reflective_pip 0.0% 89.6% 1 5.388s
+ │ │└ReflectiveTactics.solve_side_condit 0.0% 88.8% 1 5.340s
+ │ │ ├─ReflectiveTactics.do_reify ------ 0.0% 47.0% 1 2.828s
+ │ │ │└Reify.Reify_rhs_gen ------------- 1.5% 46.3% 1 2.784s
+ │ │ │ ├─Reify.do_reify_abs_goal ------- 28.7% 29.1% 2 1.752s
+ │ │ │ │└Reify.do_reifyf_goal ---------- 27.6% 27.9% 47 1.320s
+ │ │ │ │└eexact ------------------------ 7.7% 7.7% 47 0.024s
+ │ │ │ ├─prove_interp_compile_correct -- 0.0% 5.3% 1 0.316s
+ │ │ │ │└rewrite ?EtaInterp.InterpExprEt 4.8% 4.8% 1 0.288s
+ │ │ │ ├─rewrite H --------------------- 3.0% 3.0% 1 0.180s
+ │ │ │ └─tac --------------------------- 1.9% 2.7% 1 0.160s
+ │ │ └─ReflectiveTactics.solve_post_reif 0.5% 41.8% 1 2.512s
+ │ │ ├─UnifyAbstractReflexivity.unify_ 28.5% 34.1% 8 0.552s
+ │ │ │└unify (constr) (constr) ------- 4.6% 4.6% 6 0.076s
+ │ │ └─ReflectiveTactics.unify_abstrac 5.0% 6.9% 1 0.412s
+ │ └─Glue.refine_to_reflective_glue' --- 0.0% 6.3% 1 0.376s
+ │ └Glue.zrange_to_reflective --------- 0.0% 4.4% 1 0.264s
+ │ └Glue.zrange_to_reflective_goal ---- 2.6% 3.3% 1 0.196s
+ └─IntegrationTestTemporaryMiscCommon.do 0.1% 3.7% 1 0.224s
+ └change G' --------------------------- 3.1% 3.1% 1 0.188s
+
+src/Specific/X25519/C64/fesquare (real: 35.23, user: 32.24, sys: 0.26, mem: 802776 ko)
+COQC src/Specific/X25519/C64/femulDisplay > src/Specific/X25519/C64/femulDisplay.log
+COQC src/Specific/X25519/C64/freeze.v
+Finished transaction in 7.785 secs (7.139u,0.019s) (successful)
+total time: 7.112s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_freeze --------------------- -0.0% 100.0% 1 7.112s
+─Pipeline.refine_reflectively_gen ------ 0.0% 99.2% 1 7.056s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 92.8% 1 6.600s
+─ReflectiveTactics.solve_side_conditions -0.0% 91.8% 1 6.532s
+─ReflectiveTactics.do_reify ------------ 0.0% 57.1% 1 4.060s
+─Reify.Reify_rhs_gen ------------------- 1.5% 56.4% 1 4.012s
+─Reify.do_reify_abs_goal --------------- 40.1% 40.3% 2 2.868s
+─Reify.do_reifyf_goal ------------------ 39.1% 39.4% 129 2.800s
+─ReflectiveTactics.solve_post_reified_si 0.6% 34.8% 1 2.472s
+─UnifyAbstractReflexivity.unify_transfor 25.2% 29.4% 8 0.428s
+─eexact -------------------------------- 12.9% 12.9% 131 0.028s
+─Glue.refine_to_reflective_glue' ------- 0.1% 6.4% 1 0.456s
+─prove_interp_compile_correct ---------- 0.0% 4.7% 1 0.332s
+─unify (constr) (constr) --------------- 4.6% 4.6% 7 0.096s
+─ReflectiveTactics.unify_abstract_cbv_in 3.1% 4.6% 1 0.324s
+─rewrite ?EtaInterp.InterpExprEta ------ 4.3% 4.3% 1 0.308s
+─Glue.zrange_to_reflective ------------- 0.0% 4.1% 1 0.292s
+─Glue.zrange_to_reflective_goal -------- 2.6% 3.2% 1 0.228s
+─rewrite H ----------------------------- 3.0% 3.0% 1 0.212s
+─reflexivity --------------------------- 2.3% 2.3% 7 0.064s
+─Reify.transitivity_tt ----------------- 0.0% 2.1% 2 0.096s
+─transitivity -------------------------- 2.1% 2.1% 5 0.084s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_freeze --------------------- -0.0% 100.0% 1 7.112s
+└Pipeline.refine_reflectively_gen ------ 0.0% 99.2% 1 7.056s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 92.8% 1 6.600s
+ │└ReflectiveTactics.solve_side_conditio -0.0% 91.8% 1 6.532s
+ │ ├─ReflectiveTactics.do_reify -------- 0.0% 57.1% 1 4.060s
+ │ │└Reify.Reify_rhs_gen --------------- 1.5% 56.4% 1 4.012s
+ │ │ ├─Reify.do_reify_abs_goal --------- 40.1% 40.3% 2 2.868s
+ │ │ │└Reify.do_reifyf_goal ------------ 39.1% 39.4% 129 2.800s
+ │ │ │└eexact -------------------------- 12.4% 12.4% 129 0.028s
+ │ │ ├─prove_interp_compile_correct ---- 0.0% 4.7% 1 0.332s
+ │ │ │└rewrite ?EtaInterp.InterpExprEta 4.3% 4.3% 1 0.308s
+ │ │ ├─rewrite H ----------------------- 3.0% 3.0% 1 0.212s
+ │ │ └─Reify.transitivity_tt ----------- 0.0% 2.1% 2 0.096s
+ │ │ └transitivity -------------------- 2.0% 2.0% 4 0.084s
+ │ └─ReflectiveTactics.solve_post_reifie 0.6% 34.8% 1 2.472s
+ │ ├─UnifyAbstractReflexivity.unify_tr 25.2% 29.4% 8 0.428s
+ │ │└unify (constr) (constr) --------- 3.2% 3.2% 6 0.068s
+ │ └─ReflectiveTactics.unify_abstract_ 3.1% 4.6% 1 0.324s
+ └─Glue.refine_to_reflective_glue' ----- 0.1% 6.4% 1 0.456s
+ └Glue.zrange_to_reflective ----------- 0.0% 4.1% 1 0.292s
+ └Glue.zrange_to_reflective_goal ------ 2.6% 3.2% 1 0.228s
+
+Finished transaction in 12.063 secs (11.036u,0.012s) (successful)
+Closed under the global context
+total time: 7.112s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_freeze --------------------- -0.0% 100.0% 1 7.112s
+─Pipeline.refine_reflectively_gen ------ 0.0% 99.2% 1 7.056s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 92.8% 1 6.600s
+─ReflectiveTactics.solve_side_conditions -0.0% 91.8% 1 6.532s
+─ReflectiveTactics.do_reify ------------ 0.0% 57.1% 1 4.060s
+─Reify.Reify_rhs_gen ------------------- 1.5% 56.4% 1 4.012s
+─Reify.do_reify_abs_goal --------------- 40.1% 40.3% 2 2.868s
+─Reify.do_reifyf_goal ------------------ 39.1% 39.4% 129 2.800s
+─ReflectiveTactics.solve_post_reified_si 0.6% 34.8% 1 2.472s
+─UnifyAbstractReflexivity.unify_transfor 25.2% 29.4% 8 0.428s
+─eexact -------------------------------- 12.9% 12.9% 131 0.028s
+─Glue.refine_to_reflective_glue' ------- 0.1% 6.4% 1 0.456s
+─prove_interp_compile_correct ---------- 0.0% 4.7% 1 0.332s
+─unify (constr) (constr) --------------- 4.6% 4.6% 7 0.096s
+─ReflectiveTactics.unify_abstract_cbv_in 3.1% 4.6% 1 0.324s
+─rewrite ?EtaInterp.InterpExprEta ------ 4.3% 4.3% 1 0.308s
+─Glue.zrange_to_reflective ------------- 0.0% 4.1% 1 0.292s
+─Glue.zrange_to_reflective_goal -------- 2.6% 3.2% 1 0.228s
+─rewrite H ----------------------------- 3.0% 3.0% 1 0.212s
+─reflexivity --------------------------- 2.3% 2.3% 7 0.064s
+─Reify.transitivity_tt ----------------- 0.0% 2.1% 2 0.096s
+─transitivity -------------------------- 2.1% 2.1% 5 0.084s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_freeze --------------------- -0.0% 100.0% 1 7.112s
+└Pipeline.refine_reflectively_gen ------ 0.0% 99.2% 1 7.056s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 92.8% 1 6.600s
+ │└ReflectiveTactics.solve_side_conditio -0.0% 91.8% 1 6.532s
+ │ ├─ReflectiveTactics.do_reify -------- 0.0% 57.1% 1 4.060s
+ │ │└Reify.Reify_rhs_gen --------------- 1.5% 56.4% 1 4.012s
+ │ │ ├─Reify.do_reify_abs_goal --------- 40.1% 40.3% 2 2.868s
+ │ │ │└Reify.do_reifyf_goal ------------ 39.1% 39.4% 129 2.800s
+ │ │ │└eexact -------------------------- 12.4% 12.4% 129 0.028s
+ │ │ ├─prove_interp_compile_correct ---- 0.0% 4.7% 1 0.332s
+ │ │ │└rewrite ?EtaInterp.InterpExprEta 4.3% 4.3% 1 0.308s
+ │ │ ├─rewrite H ----------------------- 3.0% 3.0% 1 0.212s
+ │ │ └─Reify.transitivity_tt ----------- 0.0% 2.1% 2 0.096s
+ │ │ └transitivity -------------------- 2.0% 2.0% 4 0.084s
+ │ └─ReflectiveTactics.solve_post_reifie 0.6% 34.8% 1 2.472s
+ │ ├─UnifyAbstractReflexivity.unify_tr 25.2% 29.4% 8 0.428s
+ │ │└unify (constr) (constr) --------- 3.2% 3.2% 6 0.068s
+ │ └─ReflectiveTactics.unify_abstract_ 3.1% 4.6% 1 0.324s
+ └─Glue.refine_to_reflective_glue' ----- 0.1% 6.4% 1 0.456s
+ └Glue.zrange_to_reflective ----------- 0.0% 4.1% 1 0.292s
+ └Glue.zrange_to_reflective_goal ------ 2.6% 3.2% 1 0.228s
+
+src/Specific/X25519/C64/freeze (real: 36.42, user: 33.24, sys: 0.26, mem: 826476 ko)
+COQC src/Specific/NISTP256/AMD64/feadd.v
+Finished transaction in 9.065 secs (8.452u,0.004s) (successful)
+total time: 8.408s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 56.0% 1 4.712s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 47.7% 1 4.012s
+─ReflectiveTactics.solve_side_conditions 0.0% 47.1% 1 3.960s
+─synthesize_montgomery ----------------- 0.0% 44.0% 1 3.696s
+─ReflectiveTactics.solve_post_reified_si 0.6% 26.4% 1 2.220s
+─UnifyAbstractReflexivity.unify_transfor 18.0% 21.3% 8 0.508s
+─IntegrationTestTemporaryMiscCommon.fact 1.3% 21.3% 1 1.788s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 21.0% 1 1.768s
+─ReflectiveTactics.do_reify ------------ 0.0% 20.7% 1 1.740s
+─Reify.Reify_rhs_gen ------------------- 1.0% 20.0% 1 1.684s
+─DestructHyps.do_all_matches_then ------ 0.1% 18.6% 8 0.220s
+─DestructHyps.do_one_match_then -------- 0.8% 18.5% 44 0.056s
+─op_sig_side_conditions_t -------------- 0.0% 17.9% 1 1.504s
+─do_tac -------------------------------- 0.0% 17.7% 43 0.052s
+─destruct H ---------------------------- 17.7% 17.7% 36 0.052s
+─rewrite <- (lem : lemT) by by_tac ltac: 0.3% 17.3% 1 1.452s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 17.3% 1 1.452s
+─by_tac -------------------------------- 0.0% 17.0% 4 0.532s
+─rewrite <- (ZRange.is_bounded_by_None_r 15.7% 15.8% 8 0.360s
+─Reify.do_reify_abs_goal --------------- 9.1% 9.3% 2 0.780s
+─Reify.do_reifyf_goal ------------------ 8.5% 8.6% 93 0.716s
+─Glue.refine_to_reflective_glue' ------- 0.0% 8.3% 1 0.700s
+─Glue.zrange_to_reflective ------------- 0.0% 5.3% 1 0.444s
+─ReflectiveTactics.unify_abstract_cbv_in 2.9% 4.3% 1 0.360s
+─Glue.zrange_to_reflective_goal -------- 2.5% 4.0% 1 0.336s
+─unify (constr) (constr) --------------- 3.9% 3.9% 9 0.108s
+─IntegrationTestTemporaryMiscCommon.do_s 0.0% 3.8% 1 0.316s
+─<Crypto.Util.Tactics.MoveLetIn.with_uco 0.8% 3.6% 3 0.300s
+─k ------------------------------------- 2.6% 2.8% 1 0.232s
+─rewrite H ----------------------------- 2.4% 2.4% 2 0.192s
+─prove_interp_compile_correct ---------- 0.0% 2.4% 1 0.200s
+─rewrite ?EtaInterp.InterpExprEta ------ 2.2% 2.2% 1 0.188s
+─apply (fun f => MapProjections.proj2 2.1% 2.1% 2 0.108s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 56.0% 1 4.712s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 47.7% 1 4.012s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 47.1% 1 3.960s
+ │ ├─ReflectiveTactics.solve_post_reifie 0.6% 26.4% 1 2.220s
+ │ │ ├─UnifyAbstractReflexivity.unify_tr 18.0% 21.3% 8 0.508s
+ │ │ │└unify (constr) (constr) --------- 2.6% 2.6% 6 0.064s
+ │ │ └─ReflectiveTactics.unify_abstract_ 2.9% 4.3% 1 0.360s
+ │ └─ReflectiveTactics.do_reify -------- 0.0% 20.7% 1 1.740s
+ │ └Reify.Reify_rhs_gen --------------- 1.0% 20.0% 1 1.684s
+ │ ├─Reify.do_reify_abs_goal --------- 9.1% 9.3% 2 0.780s
+ │ │└Reify.do_reifyf_goal ------------ 8.5% 8.6% 93 0.716s
+ │ ├─prove_interp_compile_correct ---- 0.0% 2.4% 1 0.200s
+ │ │└rewrite ?EtaInterp.InterpExprEta 2.2% 2.2% 1 0.188s
+ │ └─rewrite H ----------------------- 2.3% 2.3% 1 0.192s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 8.3% 1 0.700s
+ └Glue.zrange_to_reflective ----------- 0.0% 5.3% 1 0.444s
+ └Glue.zrange_to_reflective_goal ------ 2.5% 4.0% 1 0.336s
+─synthesize_montgomery ----------------- 0.0% 44.0% 1 3.696s
+ ├─IntegrationTestTemporaryMiscCommon.fa 1.3% 21.3% 1 1.788s
+ │└op_sig_side_conditions_t ------------ 0.0% 17.9% 1 1.504s
+ │ ├─DestructHyps.do_all_matches_then -- 0.1% 10.1% 4 0.220s
+ │ │└DestructHyps.do_one_match_then ---- 0.4% 10.0% 24 0.052s
+ │ │└do_tac ---------------------------- 0.0% 9.6% 20 0.048s
+ │ │└destruct H ------------------------ 9.6% 9.6% 20 0.048s
+ │ └─rewrite <- (ZRange.is_bounded_by_No 7.5% 7.6% 4 0.308s
+ └─IntegrationTestTemporaryMiscCommon.do 0.0% 21.0% 1 1.768s
+ ├─IntegrationTestTemporaryMiscCommon. 0.0% 17.3% 1 1.452s
+ │└rewrite <- (lem : lemT) by by_tac l 0.3% 17.3% 1 1.452s
+ │└by_tac ---------------------------- 0.0% 17.0% 4 0.532s
+ │ ├─DestructHyps.do_all_matches_then 0.0% 8.5% 4 0.184s
+ │ │└DestructHyps.do_one_match_then -- 0.3% 8.5% 20 0.056s
+ │ │└do_tac -------------------------- 0.0% 8.2% 16 0.052s
+ │ │└destruct H ---------------------- 8.2% 8.2% 16 0.052s
+ │ └─rewrite <- (ZRange.is_bounded_by_ 8.2% 8.3% 4 0.360s
+ └─IntegrationTestTemporaryMiscCommon. 0.0% 3.8% 1 0.316s
+ └<Crypto.Util.Tactics.MoveLetIn.with 0.8% 3.6% 3 0.300s
+ └k --------------------------------- 2.6% 2.8% 1 0.232s
+
+Finished transaction in 15.052 secs (13.947u,0.003s) (successful)
+Closed under the global context
+total time: 8.408s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 56.0% 1 4.712s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 47.7% 1 4.012s
+─ReflectiveTactics.solve_side_conditions 0.0% 47.1% 1 3.960s
+─synthesize_montgomery ----------------- 0.0% 44.0% 1 3.696s
+─ReflectiveTactics.solve_post_reified_si 0.6% 26.4% 1 2.220s
+─UnifyAbstractReflexivity.unify_transfor 18.0% 21.3% 8 0.508s
+─IntegrationTestTemporaryMiscCommon.fact 1.3% 21.3% 1 1.788s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 21.0% 1 1.768s
+─ReflectiveTactics.do_reify ------------ 0.0% 20.7% 1 1.740s
+─Reify.Reify_rhs_gen ------------------- 1.0% 20.0% 1 1.684s
+─DestructHyps.do_all_matches_then ------ 0.1% 18.6% 8 0.220s
+─DestructHyps.do_one_match_then -------- 0.8% 18.5% 44 0.056s
+─op_sig_side_conditions_t -------------- 0.0% 17.9% 1 1.504s
+─do_tac -------------------------------- 0.0% 17.7% 43 0.052s
+─destruct H ---------------------------- 17.7% 17.7% 36 0.052s
+─rewrite <- (lem : lemT) by by_tac ltac: 0.3% 17.3% 1 1.452s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 17.3% 1 1.452s
+─by_tac -------------------------------- 0.0% 17.0% 4 0.532s
+─rewrite <- (ZRange.is_bounded_by_None_r 15.7% 15.8% 8 0.360s
+─Reify.do_reify_abs_goal --------------- 9.1% 9.3% 2 0.780s
+─Reify.do_reifyf_goal ------------------ 8.5% 8.6% 93 0.716s
+─Glue.refine_to_reflective_glue' ------- 0.0% 8.3% 1 0.700s
+─Glue.zrange_to_reflective ------------- 0.0% 5.3% 1 0.444s
+─ReflectiveTactics.unify_abstract_cbv_in 2.9% 4.3% 1 0.360s
+─Glue.zrange_to_reflective_goal -------- 2.5% 4.0% 1 0.336s
+─unify (constr) (constr) --------------- 3.9% 3.9% 9 0.108s
+─IntegrationTestTemporaryMiscCommon.do_s 0.0% 3.8% 1 0.316s
+─<Crypto.Util.Tactics.MoveLetIn.with_uco 0.8% 3.6% 3 0.300s
+─k ------------------------------------- 2.6% 2.8% 1 0.232s
+─rewrite H ----------------------------- 2.4% 2.4% 2 0.192s
+─prove_interp_compile_correct ---------- 0.0% 2.4% 1 0.200s
+─rewrite ?EtaInterp.InterpExprEta ------ 2.2% 2.2% 1 0.188s
+─apply (fun f => MapProjections.proj2 2.1% 2.1% 2 0.108s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 56.0% 1 4.712s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 47.7% 1 4.012s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 47.1% 1 3.960s
+ │ ├─ReflectiveTactics.solve_post_reifie 0.6% 26.4% 1 2.220s
+ │ │ ├─UnifyAbstractReflexivity.unify_tr 18.0% 21.3% 8 0.508s
+ │ │ │└unify (constr) (constr) --------- 2.6% 2.6% 6 0.064s
+ │ │ └─ReflectiveTactics.unify_abstract_ 2.9% 4.3% 1 0.360s
+ │ └─ReflectiveTactics.do_reify -------- 0.0% 20.7% 1 1.740s
+ │ └Reify.Reify_rhs_gen --------------- 1.0% 20.0% 1 1.684s
+ │ ├─Reify.do_reify_abs_goal --------- 9.1% 9.3% 2 0.780s
+ │ │└Reify.do_reifyf_goal ------------ 8.5% 8.6% 93 0.716s
+ │ ├─prove_interp_compile_correct ---- 0.0% 2.4% 1 0.200s
+ │ │└rewrite ?EtaInterp.InterpExprEta 2.2% 2.2% 1 0.188s
+ │ └─rewrite H ----------------------- 2.3% 2.3% 1 0.192s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 8.3% 1 0.700s
+ └Glue.zrange_to_reflective ----------- 0.0% 5.3% 1 0.444s
+ └Glue.zrange_to_reflective_goal ------ 2.5% 4.0% 1 0.336s
+─synthesize_montgomery ----------------- 0.0% 44.0% 1 3.696s
+ ├─IntegrationTestTemporaryMiscCommon.fa 1.3% 21.3% 1 1.788s
+ │└op_sig_side_conditions_t ------------ 0.0% 17.9% 1 1.504s
+ │ ├─DestructHyps.do_all_matches_then -- 0.1% 10.1% 4 0.220s
+ │ │└DestructHyps.do_one_match_then ---- 0.4% 10.0% 24 0.052s
+ │ │└do_tac ---------------------------- 0.0% 9.6% 20 0.048s
+ │ │└destruct H ------------------------ 9.6% 9.6% 20 0.048s
+ │ └─rewrite <- (ZRange.is_bounded_by_No 7.5% 7.6% 4 0.308s
+ └─IntegrationTestTemporaryMiscCommon.do 0.0% 21.0% 1 1.768s
+ ├─IntegrationTestTemporaryMiscCommon. 0.0% 17.3% 1 1.452s
+ │└rewrite <- (lem : lemT) by by_tac l 0.3% 17.3% 1 1.452s
+ │└by_tac ---------------------------- 0.0% 17.0% 4 0.532s
+ │ ├─DestructHyps.do_all_matches_then 0.0% 8.5% 4 0.184s
+ │ │└DestructHyps.do_one_match_then -- 0.3% 8.5% 20 0.056s
+ │ │└do_tac -------------------------- 0.0% 8.2% 16 0.052s
+ │ │└destruct H ---------------------- 8.2% 8.2% 16 0.052s
+ │ └─rewrite <- (ZRange.is_bounded_by_ 8.2% 8.3% 4 0.360s
+ └─IntegrationTestTemporaryMiscCommon. 0.0% 3.8% 1 0.316s
+ └<Crypto.Util.Tactics.MoveLetIn.with 0.8% 3.6% 3 0.300s
+ └k --------------------------------- 2.6% 2.8% 1 0.232s
+
+src/Specific/NISTP256/AMD64/feadd (real: 40.48, user: 37.21, sys: 0.27, mem: 797944 ko)
+COQC src/Specific/NISTP256/AMD64/fenz.v
+Finished transaction in 6.724 secs (6.196u,0.007s) (successful)
+total time: 6.180s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_nonzero -------------------- 0.0% 100.0% 1 6.180s
+─IntegrationTestTemporaryMiscCommon.nonz 0.1% 84.5% 1 5.224s
+─destruct (Decidable.dec x), (Decidable. 36.7% 36.7% 1 2.268s
+─destruct (Decidable.dec x) as [H| H] -- 21.6% 21.6% 1 1.336s
+─Pipeline.refine_reflectively_gen ------ 0.1% 15.5% 1 0.956s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 11.9% 1 0.736s
+─ReflectiveTactics.solve_side_conditions 0.0% 11.6% 1 0.716s
+─ReflectiveTactics.solve_post_reified_si 0.3% 9.6% 1 0.592s
+─IntegrationTestTemporaryMiscCommon.op_s 0.1% 7.9% 2 0.392s
+─rewrite <- (ZRange.is_bounded_by_None_r 5.2% 5.2% 2 0.308s
+─UnifyAbstractReflexivity.unify_transfor 4.2% 5.2% 8 0.076s
+─ReflectiveTactics.unify_abstract_cbv_in 3.0% 4.0% 1 0.248s
+─Glue.refine_to_reflective_glue' ------- 0.0% 3.5% 1 0.216s
+─rewrite H' ---------------------------- 3.4% 3.4% 1 0.208s
+─generalize dependent (constr) --------- 3.1% 3.1% 4 0.068s
+─congruence ---------------------------- 2.8% 2.8% 1 0.176s
+─IntegrationTestTemporaryMiscCommon.do_s 0.0% 2.7% 1 0.164s
+─<Crypto.Util.Tactics.MoveLetIn.with_uco 0.5% 2.6% 3 0.156s
+─DestructHyps.do_one_match_then -------- 0.1% 2.5% 6 0.048s
+─DestructHyps.do_all_matches_then ------ 0.0% 2.5% 2 0.084s
+─do_tac -------------------------------- 0.0% 2.5% 7 0.044s
+─destruct H ---------------------------- 2.5% 2.5% 4 0.044s
+─Glue.zrange_to_reflective ------------- 0.1% 2.1% 1 0.132s
+─rewrite H ----------------------------- 1.9% 2.1% 3 0.116s
+─k ------------------------------------- 1.9% 2.0% 1 0.124s
+─ReflectiveTactics.do_reify ------------ 0.0% 2.0% 1 0.124s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_nonzero -------------------- 0.0% 100.0% 1 6.180s
+ ├─IntegrationTestTemporaryMiscCommon.no 0.1% 84.5% 1 5.224s
+ │ ├─destruct (Decidable.dec x), (Decida 36.7% 36.7% 1 2.268s
+ │ ├─destruct (Decidable.dec x) as [H| H 21.6% 21.6% 1 1.336s
+ │ ├─IntegrationTestTemporaryMiscCommon. 0.1% 7.9% 2 0.392s
+ │ │ ├─rewrite <- (ZRange.is_bounded_by_ 5.2% 5.2% 2 0.308s
+ │ │ └─DestructHyps.do_all_matches_then 0.0% 2.5% 2 0.084s
+ │ │ └DestructHyps.do_one_match_then -- 0.1% 2.5% 6 0.048s
+ │ │ └do_tac -------------------------- 0.0% 2.5% 4 0.044s
+ │ │ └destruct H ---------------------- 2.5% 2.5% 4 0.044s
+ │ ├─rewrite H' ------------------------ 3.4% 3.4% 1 0.208s
+ │ ├─generalize dependent (constr) ----- 3.1% 3.1% 4 0.068s
+ │ ├─congruence ------------------------ 2.8% 2.8% 1 0.176s
+ │ └─IntegrationTestTemporaryMiscCommon. 0.0% 2.7% 1 0.164s
+ │ └<Crypto.Util.Tactics.MoveLetIn.with 0.5% 2.6% 3 0.156s
+ │ └k --------------------------------- 1.9% 2.0% 1 0.124s
+ └─Pipeline.refine_reflectively_gen ---- 0.1% 15.5% 1 0.956s
+ ├─ReflectiveTactics.do_reflective_pip 0.0% 11.9% 1 0.736s
+ │└ReflectiveTactics.solve_side_condit 0.0% 11.6% 1 0.716s
+ │ ├─ReflectiveTactics.solve_post_reif 0.3% 9.6% 1 0.592s
+ │ │ ├─UnifyAbstractReflexivity.unify_ 4.2% 5.2% 8 0.076s
+ │ │ └─ReflectiveTactics.unify_abstrac 3.0% 4.0% 1 0.248s
+ │ └─ReflectiveTactics.do_reify ------ 0.0% 2.0% 1 0.124s
+ └─Glue.refine_to_reflective_glue' --- 0.0% 3.5% 1 0.216s
+ └Glue.zrange_to_reflective --------- 0.1% 2.1% 1 0.132s
+
+Finished transaction in 7.301 secs (6.731u,0.s) (successful)
+Closed under the global context
+total time: 6.180s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_nonzero -------------------- 0.0% 100.0% 1 6.180s
+─IntegrationTestTemporaryMiscCommon.nonz 0.1% 84.5% 1 5.224s
+─destruct (Decidable.dec x), (Decidable. 36.7% 36.7% 1 2.268s
+─destruct (Decidable.dec x) as [H| H] -- 21.6% 21.6% 1 1.336s
+─Pipeline.refine_reflectively_gen ------ 0.1% 15.5% 1 0.956s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 11.9% 1 0.736s
+─ReflectiveTactics.solve_side_conditions 0.0% 11.6% 1 0.716s
+─ReflectiveTactics.solve_post_reified_si 0.3% 9.6% 1 0.592s
+─IntegrationTestTemporaryMiscCommon.op_s 0.1% 7.9% 2 0.392s
+─rewrite <- (ZRange.is_bounded_by_None_r 5.2% 5.2% 2 0.308s
+─UnifyAbstractReflexivity.unify_transfor 4.2% 5.2% 8 0.076s
+─ReflectiveTactics.unify_abstract_cbv_in 3.0% 4.0% 1 0.248s
+─Glue.refine_to_reflective_glue' ------- 0.0% 3.5% 1 0.216s
+─rewrite H' ---------------------------- 3.4% 3.4% 1 0.208s
+─generalize dependent (constr) --------- 3.1% 3.1% 4 0.068s
+─congruence ---------------------------- 2.8% 2.8% 1 0.176s
+─IntegrationTestTemporaryMiscCommon.do_s 0.0% 2.7% 1 0.164s
+─<Crypto.Util.Tactics.MoveLetIn.with_uco 0.5% 2.6% 3 0.156s
+─DestructHyps.do_one_match_then -------- 0.1% 2.5% 6 0.048s
+─DestructHyps.do_all_matches_then ------ 0.0% 2.5% 2 0.084s
+─do_tac -------------------------------- 0.0% 2.5% 7 0.044s
+─destruct H ---------------------------- 2.5% 2.5% 4 0.044s
+─Glue.zrange_to_reflective ------------- 0.1% 2.1% 1 0.132s
+─rewrite H ----------------------------- 1.9% 2.1% 3 0.116s
+─k ------------------------------------- 1.9% 2.0% 1 0.124s
+─ReflectiveTactics.do_reify ------------ 0.0% 2.0% 1 0.124s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_nonzero -------------------- 0.0% 100.0% 1 6.180s
+ ├─IntegrationTestTemporaryMiscCommon.no 0.1% 84.5% 1 5.224s
+ │ ├─destruct (Decidable.dec x), (Decida 36.7% 36.7% 1 2.268s
+ │ ├─destruct (Decidable.dec x) as [H| H 21.6% 21.6% 1 1.336s
+ │ ├─IntegrationTestTemporaryMiscCommon. 0.1% 7.9% 2 0.392s
+ │ │ ├─rewrite <- (ZRange.is_bounded_by_ 5.2% 5.2% 2 0.308s
+ │ │ └─DestructHyps.do_all_matches_then 0.0% 2.5% 2 0.084s
+ │ │ └DestructHyps.do_one_match_then -- 0.1% 2.5% 6 0.048s
+ │ │ └do_tac -------------------------- 0.0% 2.5% 4 0.044s
+ │ │ └destruct H ---------------------- 2.5% 2.5% 4 0.044s
+ │ ├─rewrite H' ------------------------ 3.4% 3.4% 1 0.208s
+ │ ├─generalize dependent (constr) ----- 3.1% 3.1% 4 0.068s
+ │ ├─congruence ------------------------ 2.8% 2.8% 1 0.176s
+ │ └─IntegrationTestTemporaryMiscCommon. 0.0% 2.7% 1 0.164s
+ │ └<Crypto.Util.Tactics.MoveLetIn.with 0.5% 2.6% 3 0.156s
+ │ └k --------------------------------- 1.9% 2.0% 1 0.124s
+ └─Pipeline.refine_reflectively_gen ---- 0.1% 15.5% 1 0.956s
+ ├─ReflectiveTactics.do_reflective_pip 0.0% 11.9% 1 0.736s
+ │└ReflectiveTactics.solve_side_condit 0.0% 11.6% 1 0.716s
+ │ ├─ReflectiveTactics.solve_post_reif 0.3% 9.6% 1 0.592s
+ │ │ ├─UnifyAbstractReflexivity.unify_ 4.2% 5.2% 8 0.076s
+ │ │ └─ReflectiveTactics.unify_abstrac 3.0% 4.0% 1 0.248s
+ │ └─ReflectiveTactics.do_reify ------ 0.0% 2.0% 1 0.124s
+ └─Glue.refine_to_reflective_glue' --- 0.0% 3.5% 1 0.216s
+ └Glue.zrange_to_reflective --------- 0.1% 2.1% 1 0.132s
+
+src/Specific/NISTP256/AMD64/fenz (real: 28.91, user: 26.41, sys: 0.19, mem: 756216 ko)
+COQC src/Specific/NISTP256/AMD64/feopp.v
+Finished transaction in 7.716 secs (7.216u,0.s) (successful)
+total time: 7.168s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_montgomery ----------------- 0.0% 59.8% 1 4.284s
+─IntegrationTestTemporaryMiscCommon.fact 17.6% 49.1% 1 3.516s
+─Pipeline.refine_reflectively_gen ------ 0.0% 40.2% 1 2.884s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 35.3% 1 2.528s
+─ReflectiveTactics.solve_side_conditions 0.0% 34.8% 1 2.492s
+─reflexivity --------------------------- 23.8% 23.8% 8 1.660s
+─ReflectiveTactics.solve_post_reified_si 0.4% 21.0% 1 1.504s
+─UnifyAbstractReflexivity.unify_transfor 13.8% 16.4% 8 0.268s
+─ReflectiveTactics.do_reify ------------ 0.1% 13.8% 1 0.988s
+─Reify.Reify_rhs_gen ------------------- 0.8% 13.6% 1 0.972s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 9.5% 1 0.680s
+─rewrite <- (ZRange.is_bounded_by_None_r 8.7% 8.7% 4 0.332s
+─rewrite <- (lem : lemT) by by_tac ltac: 0.1% 7.3% 1 0.520s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 7.3% 1 0.520s
+─op_sig_side_conditions_t -------------- 0.0% 7.2% 1 0.516s
+─by_tac -------------------------------- 0.0% 7.1% 2 0.412s
+─Reify.do_reify_abs_goal --------------- 6.9% 7.0% 2 0.500s
+─Reify.do_reifyf_goal ------------------ 6.3% 6.5% 62 0.460s
+─DestructHyps.do_one_match_then -------- 0.3% 5.4% 14 0.044s
+─DestructHyps.do_all_matches_then ------ 0.0% 5.4% 4 0.116s
+─do_tac -------------------------------- 0.0% 5.1% 13 0.044s
+─destruct H ---------------------------- 5.1% 5.1% 10 0.044s
+─Glue.refine_to_reflective_glue' ------- 0.0% 5.0% 1 0.356s
+─ReflectiveTactics.unify_abstract_cbv_in 3.1% 4.1% 1 0.292s
+─Glue.zrange_to_reflective ------------- 0.0% 3.4% 1 0.244s
+─unify (constr) (constr) --------------- 3.1% 3.1% 8 0.072s
+─Glue.zrange_to_reflective_goal -------- 2.1% 2.7% 1 0.196s
+─IntegrationTestTemporaryMiscCommon.do_s 0.0% 2.2% 1 0.160s
+─<Crypto.Util.Tactics.MoveLetIn.with_uco 0.3% 2.2% 3 0.152s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_montgomery ----------------- 0.0% 59.8% 1 4.284s
+ ├─IntegrationTestTemporaryMiscCommon.fa 17.6% 49.1% 1 3.516s
+ │ ├─reflexivity ----------------------- 23.2% 23.2% 1 1.660s
+ │ └─op_sig_side_conditions_t ---------- 0.0% 7.2% 1 0.516s
+ │ ├─rewrite <- (ZRange.is_bounded_by_ 3.9% 3.9% 2 0.272s
+ │ └─DestructHyps.do_all_matches_then 0.0% 3.2% 2 0.116s
+ │ └DestructHyps.do_one_match_then -- 0.2% 3.2% 8 0.044s
+ │ └do_tac -------------------------- 0.0% 3.0% 6 0.040s
+ │ └destruct H ---------------------- 3.0% 3.0% 6 0.040s
+ └─IntegrationTestTemporaryMiscCommon.do 0.0% 9.5% 1 0.680s
+ ├─IntegrationTestTemporaryMiscCommon. 0.0% 7.3% 1 0.520s
+ │└rewrite <- (lem : lemT) by by_tac l 0.1% 7.3% 1 0.520s
+ │└by_tac ---------------------------- 0.0% 7.1% 2 0.412s
+ │ ├─rewrite <- (ZRange.is_bounded_by_ 4.8% 4.8% 2 0.332s
+ │ └─DestructHyps.do_all_matches_then 0.0% 2.2% 2 0.080s
+ │ └DestructHyps.do_one_match_then -- 0.1% 2.2% 6 0.044s
+ │ └do_tac -------------------------- 0.0% 2.2% 4 0.044s
+ │ └destruct H ---------------------- 2.2% 2.2% 4 0.044s
+ └─IntegrationTestTemporaryMiscCommon. 0.0% 2.2% 1 0.160s
+ └<Crypto.Util.Tactics.MoveLetIn.with 0.3% 2.2% 3 0.152s
+─Pipeline.refine_reflectively_gen ------ 0.0% 40.2% 1 2.884s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 35.3% 1 2.528s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 34.8% 1 2.492s
+ │ ├─ReflectiveTactics.solve_post_reifie 0.4% 21.0% 1 1.504s
+ │ │ ├─UnifyAbstractReflexivity.unify_tr 13.8% 16.4% 8 0.268s
+ │ │ │└unify (constr) (constr) --------- 2.1% 2.1% 6 0.048s
+ │ │ └─ReflectiveTactics.unify_abstract_ 3.1% 4.1% 1 0.292s
+ │ └─ReflectiveTactics.do_reify -------- 0.1% 13.8% 1 0.988s
+ │ └Reify.Reify_rhs_gen --------------- 0.8% 13.6% 1 0.972s
+ │ └Reify.do_reify_abs_goal ----------- 6.9% 7.0% 2 0.500s
+ │ └Reify.do_reifyf_goal -------------- 6.3% 6.5% 62 0.460s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 5.0% 1 0.356s
+ └Glue.zrange_to_reflective ----------- 0.0% 3.4% 1 0.244s
+ └Glue.zrange_to_reflective_goal ------ 2.1% 2.7% 1 0.196s
+
+Finished transaction in 8.918 secs (8.116u,0.004s) (successful)
+Closed under the global context
+total time: 7.168s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_montgomery ----------------- 0.0% 59.8% 1 4.284s
+─IntegrationTestTemporaryMiscCommon.fact 17.6% 49.1% 1 3.516s
+─Pipeline.refine_reflectively_gen ------ 0.0% 40.2% 1 2.884s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 35.3% 1 2.528s
+─ReflectiveTactics.solve_side_conditions 0.0% 34.8% 1 2.492s
+─reflexivity --------------------------- 23.8% 23.8% 8 1.660s
+─ReflectiveTactics.solve_post_reified_si 0.4% 21.0% 1 1.504s
+─UnifyAbstractReflexivity.unify_transfor 13.8% 16.4% 8 0.268s
+─ReflectiveTactics.do_reify ------------ 0.1% 13.8% 1 0.988s
+─Reify.Reify_rhs_gen ------------------- 0.8% 13.6% 1 0.972s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 9.5% 1 0.680s
+─rewrite <- (ZRange.is_bounded_by_None_r 8.7% 8.7% 4 0.332s
+─rewrite <- (lem : lemT) by by_tac ltac: 0.1% 7.3% 1 0.520s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 7.3% 1 0.520s
+─op_sig_side_conditions_t -------------- 0.0% 7.2% 1 0.516s
+─by_tac -------------------------------- 0.0% 7.1% 2 0.412s
+─Reify.do_reify_abs_goal --------------- 6.9% 7.0% 2 0.500s
+─Reify.do_reifyf_goal ------------------ 6.3% 6.5% 62 0.460s
+─DestructHyps.do_one_match_then -------- 0.3% 5.4% 14 0.044s
+─DestructHyps.do_all_matches_then ------ 0.0% 5.4% 4 0.116s
+─do_tac -------------------------------- 0.0% 5.1% 13 0.044s
+─destruct H ---------------------------- 5.1% 5.1% 10 0.044s
+─Glue.refine_to_reflective_glue' ------- 0.0% 5.0% 1 0.356s
+─ReflectiveTactics.unify_abstract_cbv_in 3.1% 4.1% 1 0.292s
+─Glue.zrange_to_reflective ------------- 0.0% 3.4% 1 0.244s
+─unify (constr) (constr) --------------- 3.1% 3.1% 8 0.072s
+─Glue.zrange_to_reflective_goal -------- 2.1% 2.7% 1 0.196s
+─IntegrationTestTemporaryMiscCommon.do_s 0.0% 2.2% 1 0.160s
+─<Crypto.Util.Tactics.MoveLetIn.with_uco 0.3% 2.2% 3 0.152s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_montgomery ----------------- 0.0% 59.8% 1 4.284s
+ ├─IntegrationTestTemporaryMiscCommon.fa 17.6% 49.1% 1 3.516s
+ │ ├─reflexivity ----------------------- 23.2% 23.2% 1 1.660s
+ │ └─op_sig_side_conditions_t ---------- 0.0% 7.2% 1 0.516s
+ │ ├─rewrite <- (ZRange.is_bounded_by_ 3.9% 3.9% 2 0.272s
+ │ └─DestructHyps.do_all_matches_then 0.0% 3.2% 2 0.116s
+ │ └DestructHyps.do_one_match_then -- 0.2% 3.2% 8 0.044s
+ │ └do_tac -------------------------- 0.0% 3.0% 6 0.040s
+ │ └destruct H ---------------------- 3.0% 3.0% 6 0.040s
+ └─IntegrationTestTemporaryMiscCommon.do 0.0% 9.5% 1 0.680s
+ ├─IntegrationTestTemporaryMiscCommon. 0.0% 7.3% 1 0.520s
+ │└rewrite <- (lem : lemT) by by_tac l 0.1% 7.3% 1 0.520s
+ │└by_tac ---------------------------- 0.0% 7.1% 2 0.412s
+ │ ├─rewrite <- (ZRange.is_bounded_by_ 4.8% 4.8% 2 0.332s
+ │ └─DestructHyps.do_all_matches_then 0.0% 2.2% 2 0.080s
+ │ └DestructHyps.do_one_match_then -- 0.1% 2.2% 6 0.044s
+ │ └do_tac -------------------------- 0.0% 2.2% 4 0.044s
+ │ └destruct H ---------------------- 2.2% 2.2% 4 0.044s
+ └─IntegrationTestTemporaryMiscCommon. 0.0% 2.2% 1 0.160s
+ └<Crypto.Util.Tactics.MoveLetIn.with 0.3% 2.2% 3 0.152s
+─Pipeline.refine_reflectively_gen ------ 0.0% 40.2% 1 2.884s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 35.3% 1 2.528s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 34.8% 1 2.492s
+ │ ├─ReflectiveTactics.solve_post_reifie 0.4% 21.0% 1 1.504s
+ │ │ ├─UnifyAbstractReflexivity.unify_tr 13.8% 16.4% 8 0.268s
+ │ │ │└unify (constr) (constr) --------- 2.1% 2.1% 6 0.048s
+ │ │ └─ReflectiveTactics.unify_abstract_ 3.1% 4.1% 1 0.292s
+ │ └─ReflectiveTactics.do_reify -------- 0.1% 13.8% 1 0.988s
+ │ └Reify.Reify_rhs_gen --------------- 0.8% 13.6% 1 0.972s
+ │ └Reify.do_reify_abs_goal ----------- 6.9% 7.0% 2 0.500s
+ │ └Reify.do_reifyf_goal -------------- 6.3% 6.5% 62 0.460s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 5.0% 1 0.356s
+ └Glue.zrange_to_reflective ----------- 0.0% 3.4% 1 0.244s
+ └Glue.zrange_to_reflective_goal ------ 2.1% 2.7% 1 0.196s
+
+src/Specific/NISTP256/AMD64/feopp (real: 32.08, user: 29.46, sys: 0.25, mem: 765212 ko)
+COQC src/Specific/NISTP256/AMD64/fesub.v
+Finished transaction in 12.83 secs (11.988u,0.019s) (successful)
+total time: 11.956s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_montgomery ----------------- 0.0% 63.2% 1 7.560s
+─IntegrationTestTemporaryMiscCommon.fact 15.6% 48.5% 1 5.796s
+─Pipeline.refine_reflectively_gen ------ 0.0% 36.8% 1 4.396s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 31.0% 1 3.712s
+─ReflectiveTactics.solve_side_conditions 0.0% 30.6% 1 3.656s
+─reflexivity --------------------------- 20.3% 20.3% 8 2.312s
+─ReflectiveTactics.solve_post_reified_si 0.5% 17.3% 1 2.064s
+─UnifyAbstractReflexivity.unify_transfor 11.8% 13.9% 8 0.452s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 13.7% 1 1.636s
+─ReflectiveTactics.do_reify ------------ 0.0% 13.3% 1 1.592s
+─Reify.Reify_rhs_gen ------------------- 0.9% 12.8% 1 1.536s
+─DestructHyps.do_all_matches_then ------ 0.1% 12.6% 8 0.224s
+─DestructHyps.do_one_match_then -------- 0.5% 12.5% 44 0.056s
+─op_sig_side_conditions_t -------------- 0.0% 12.2% 1 1.456s
+─do_tac -------------------------------- 0.0% 12.0% 43 0.052s
+─destruct H ---------------------------- 11.9% 11.9% 36 0.052s
+─rewrite <- (lem : lemT) by by_tac ltac: 0.2% 11.1% 1 1.324s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 11.1% 1 1.324s
+─by_tac -------------------------------- 0.0% 10.9% 4 0.488s
+─rewrite <- (ZRange.is_bounded_by_None_r 10.1% 10.2% 8 0.328s
+─Reify.do_reify_abs_goal --------------- 6.0% 6.1% 2 0.724s
+─Glue.refine_to_reflective_glue' ------- 0.0% 5.7% 1 0.680s
+─Reify.do_reifyf_goal ------------------ 5.5% 5.6% 80 0.660s
+─Glue.zrange_to_reflective ------------- 0.0% 3.6% 1 0.432s
+─ReflectiveTactics.unify_abstract_cbv_in 2.0% 2.8% 1 0.340s
+─Glue.zrange_to_reflective_goal -------- 1.7% 2.7% 1 0.324s
+─IntegrationTestTemporaryMiscCommon.do_s 0.0% 2.6% 1 0.312s
+─<Crypto.Util.Tactics.MoveLetIn.with_uco 0.5% 2.5% 3 0.300s
+─unify (constr) (constr) --------------- 2.4% 2.4% 9 0.100s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_montgomery ----------------- 0.0% 63.2% 1 7.560s
+ ├─IntegrationTestTemporaryMiscCommon.fa 15.6% 48.5% 1 5.796s
+ │ ├─reflexivity ----------------------- 19.3% 19.3% 1 2.312s
+ │ └─op_sig_side_conditions_t ---------- 0.0% 12.2% 1 1.456s
+ │ ├─DestructHyps.do_all_matches_then 0.1% 7.1% 4 0.224s
+ │ │└DestructHyps.do_one_match_then -- 0.3% 7.1% 24 0.056s
+ │ │└do_tac -------------------------- 0.0% 6.7% 20 0.052s
+ │ │└destruct H ---------------------- 6.7% 6.7% 20 0.052s
+ │ └─rewrite <- (ZRange.is_bounded_by_ 4.9% 4.9% 4 0.292s
+ └─IntegrationTestTemporaryMiscCommon.do 0.0% 13.7% 1 1.636s
+ ├─IntegrationTestTemporaryMiscCommon. 0.0% 11.1% 1 1.324s
+ │└rewrite <- (lem : lemT) by by_tac l 0.2% 11.1% 1 1.324s
+ │└by_tac ---------------------------- 0.0% 10.9% 4 0.488s
+ │ ├─DestructHyps.do_all_matches_then 0.0% 5.5% 4 0.176s
+ │ │└DestructHyps.do_one_match_then -- 0.2% 5.5% 20 0.048s
+ │ │└do_tac -------------------------- 0.0% 5.3% 16 0.048s
+ │ │└destruct H ---------------------- 5.2% 5.2% 16 0.048s
+ │ └─rewrite <- (ZRange.is_bounded_by_ 5.3% 5.3% 4 0.328s
+ └─IntegrationTestTemporaryMiscCommon. 0.0% 2.6% 1 0.312s
+ └<Crypto.Util.Tactics.MoveLetIn.with 0.5% 2.5% 3 0.300s
+─Pipeline.refine_reflectively_gen ------ 0.0% 36.8% 1 4.396s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 31.0% 1 3.712s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 30.6% 1 3.656s
+ │ ├─ReflectiveTactics.solve_post_reifie 0.5% 17.3% 1 2.064s
+ │ │ ├─UnifyAbstractReflexivity.unify_tr 11.8% 13.9% 8 0.452s
+ │ │ └─ReflectiveTactics.unify_abstract_ 2.0% 2.8% 1 0.340s
+ │ └─ReflectiveTactics.do_reify -------- 0.0% 13.3% 1 1.592s
+ │ └Reify.Reify_rhs_gen --------------- 0.9% 12.8% 1 1.536s
+ │ └Reify.do_reify_abs_goal ----------- 6.0% 6.1% 2 0.724s
+ │ └Reify.do_reifyf_goal -------------- 5.5% 5.6% 80 0.660s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 5.7% 1 0.680s
+ └Glue.zrange_to_reflective ----------- 0.0% 3.6% 1 0.432s
+ └Glue.zrange_to_reflective_goal ------ 1.7% 2.7% 1 0.324s
+
+Finished transaction in 14.576 secs (13.372u,0.004s) (successful)
+Closed under the global context
+total time: 11.956s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_montgomery ----------------- 0.0% 63.2% 1 7.560s
+─IntegrationTestTemporaryMiscCommon.fact 15.6% 48.5% 1 5.796s
+─Pipeline.refine_reflectively_gen ------ 0.0% 36.8% 1 4.396s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 31.0% 1 3.712s
+─ReflectiveTactics.solve_side_conditions 0.0% 30.6% 1 3.656s
+─reflexivity --------------------------- 20.3% 20.3% 8 2.312s
+─ReflectiveTactics.solve_post_reified_si 0.5% 17.3% 1 2.064s
+─UnifyAbstractReflexivity.unify_transfor 11.8% 13.9% 8 0.452s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 13.7% 1 1.636s
+─ReflectiveTactics.do_reify ------------ 0.0% 13.3% 1 1.592s
+─Reify.Reify_rhs_gen ------------------- 0.9% 12.8% 1 1.536s
+─DestructHyps.do_all_matches_then ------ 0.1% 12.6% 8 0.224s
+─DestructHyps.do_one_match_then -------- 0.5% 12.5% 44 0.056s
+─op_sig_side_conditions_t -------------- 0.0% 12.2% 1 1.456s
+─do_tac -------------------------------- 0.0% 12.0% 43 0.052s
+─destruct H ---------------------------- 11.9% 11.9% 36 0.052s
+─rewrite <- (lem : lemT) by by_tac ltac: 0.2% 11.1% 1 1.324s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 11.1% 1 1.324s
+─by_tac -------------------------------- 0.0% 10.9% 4 0.488s
+─rewrite <- (ZRange.is_bounded_by_None_r 10.1% 10.2% 8 0.328s
+─Reify.do_reify_abs_goal --------------- 6.0% 6.1% 2 0.724s
+─Glue.refine_to_reflective_glue' ------- 0.0% 5.7% 1 0.680s
+─Reify.do_reifyf_goal ------------------ 5.5% 5.6% 80 0.660s
+─Glue.zrange_to_reflective ------------- 0.0% 3.6% 1 0.432s
+─ReflectiveTactics.unify_abstract_cbv_in 2.0% 2.8% 1 0.340s
+─Glue.zrange_to_reflective_goal -------- 1.7% 2.7% 1 0.324s
+─IntegrationTestTemporaryMiscCommon.do_s 0.0% 2.6% 1 0.312s
+─<Crypto.Util.Tactics.MoveLetIn.with_uco 0.5% 2.5% 3 0.300s
+─unify (constr) (constr) --------------- 2.4% 2.4% 9 0.100s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_montgomery ----------------- 0.0% 63.2% 1 7.560s
+ ├─IntegrationTestTemporaryMiscCommon.fa 15.6% 48.5% 1 5.796s
+ │ ├─reflexivity ----------------------- 19.3% 19.3% 1 2.312s
+ │ └─op_sig_side_conditions_t ---------- 0.0% 12.2% 1 1.456s
+ │ ├─DestructHyps.do_all_matches_then 0.1% 7.1% 4 0.224s
+ │ │└DestructHyps.do_one_match_then -- 0.3% 7.1% 24 0.056s
+ │ │└do_tac -------------------------- 0.0% 6.7% 20 0.052s
+ │ │└destruct H ---------------------- 6.7% 6.7% 20 0.052s
+ │ └─rewrite <- (ZRange.is_bounded_by_ 4.9% 4.9% 4 0.292s
+ └─IntegrationTestTemporaryMiscCommon.do 0.0% 13.7% 1 1.636s
+ ├─IntegrationTestTemporaryMiscCommon. 0.0% 11.1% 1 1.324s
+ │└rewrite <- (lem : lemT) by by_tac l 0.2% 11.1% 1 1.324s
+ │└by_tac ---------------------------- 0.0% 10.9% 4 0.488s
+ │ ├─DestructHyps.do_all_matches_then 0.0% 5.5% 4 0.176s
+ │ │└DestructHyps.do_one_match_then -- 0.2% 5.5% 20 0.048s
+ │ │└do_tac -------------------------- 0.0% 5.3% 16 0.048s
+ │ │└destruct H ---------------------- 5.2% 5.2% 16 0.048s
+ │ └─rewrite <- (ZRange.is_bounded_by_ 5.3% 5.3% 4 0.328s
+ └─IntegrationTestTemporaryMiscCommon. 0.0% 2.6% 1 0.312s
+ └<Crypto.Util.Tactics.MoveLetIn.with 0.5% 2.5% 3 0.300s
+─Pipeline.refine_reflectively_gen ------ 0.0% 36.8% 1 4.396s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 31.0% 1 3.712s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 30.6% 1 3.656s
+ │ ├─ReflectiveTactics.solve_post_reifie 0.5% 17.3% 1 2.064s
+ │ │ ├─UnifyAbstractReflexivity.unify_tr 11.8% 13.9% 8 0.452s
+ │ │ └─ReflectiveTactics.unify_abstract_ 2.0% 2.8% 1 0.340s
+ │ └─ReflectiveTactics.do_reify -------- 0.0% 13.3% 1 1.592s
+ │ └Reify.Reify_rhs_gen --------------- 0.9% 12.8% 1 1.536s
+ │ └Reify.do_reify_abs_goal ----------- 6.0% 6.1% 2 0.724s
+ │ └Reify.do_reifyf_goal -------------- 5.5% 5.6% 80 0.660s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 5.7% 1 0.680s
+ └Glue.zrange_to_reflective ----------- 0.0% 3.6% 1 0.432s
+ └Glue.zrange_to_reflective_goal ------ 1.7% 2.7% 1 0.324s
+
+src/Specific/NISTP256/AMD64/fesub (real: 43.78, user: 40.09, sys: 0.30, mem: 799668 ko)
+COQC src/Specific/NISTP256/AMD64/feaddDisplay > src/Specific/NISTP256/AMD64/feaddDisplay.log
+COQC src/Specific/NISTP256/AMD64/fenzDisplay > src/Specific/NISTP256/AMD64/fenzDisplay.log
+COQC src/Specific/NISTP256/AMD64/feoppDisplay > src/Specific/NISTP256/AMD64/feoppDisplay.log
+COQC src/Specific/NISTP256/AMD64/fesubDisplay > src/Specific/NISTP256/AMD64/fesubDisplay.log
+COQC src/Specific/X25519/C64/fesquareDisplay > src/Specific/X25519/C64/fesquareDisplay.log
+COQC src/Specific/solinas32_2e255m765_12limbs/femul.v
+Finished transaction in 60.265 secs (55.388u,0.103s) (successful)
+total time: 55.440s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 95.9% 1 53.156s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 89.2% 1 49.464s
+─ReflectiveTactics.solve_side_conditions 0.0% 88.9% 1 49.288s
+─ReflectiveTactics.do_reify ------------ -0.0% 49.9% 1 27.684s
+─Reify.Reify_rhs_gen ------------------- 1.3% 49.3% 1 27.348s
+─ReflectiveTactics.solve_post_reified_si 0.1% 39.0% 1 21.604s
+─Reify.do_reify_abs_goal --------------- 36.3% 36.6% 2 20.272s
+─UnifyAbstractReflexivity.unify_transfor 30.8% 36.1% 8 8.636s
+─Reify.do_reifyf_goal ------------------ 35.7% 35.9% 108 10.356s
+─eexact -------------------------------- 11.5% 11.5% 110 0.128s
+─Glue.refine_to_reflective_glue' ------- 0.0% 6.7% 1 3.692s
+─Glue.zrange_to_reflective ------------- 0.0% 6.2% 1 3.424s
+─unify (constr) (constr) --------------- 4.9% 4.9% 7 1.140s
+─Glue.zrange_to_reflective_goal -------- 1.4% 4.7% 1 2.592s
+─synthesize ---------------------------- 0.0% 4.1% 1 2.284s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 4.0% 1 2.220s
+─change G' ----------------------------- 3.9% 3.9% 1 2.148s
+─pose proof (pf : Interpretation.Bo 3.1% 3.1% 1 1.736s
+─rewrite H ----------------------------- 3.1% 3.1% 1 1.692s
+─prove_interp_compile_correct ---------- 0.0% 3.0% 1 1.636s
+─rewrite ?EtaInterp.InterpExprEta ------ 2.7% 2.7% 1 1.484s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 95.9% 1 53.156s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 89.2% 1 49.464s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 88.9% 1 49.288s
+ │ ├─ReflectiveTactics.do_reify -------- -0.0% 49.9% 1 27.684s
+ │ │└Reify.Reify_rhs_gen --------------- 1.3% 49.3% 1 27.348s
+ │ │ ├─Reify.do_reify_abs_goal --------- 36.3% 36.6% 2 20.272s
+ │ │ │└Reify.do_reifyf_goal ------------ 35.7% 35.9% 108 10.356s
+ │ │ │└eexact -------------------------- 11.1% 11.1% 108 0.072s
+ │ │ ├─rewrite H ----------------------- 3.1% 3.1% 1 1.692s
+ │ │ └─prove_interp_compile_correct ---- 0.0% 3.0% 1 1.636s
+ │ │ └rewrite ?EtaInterp.InterpExprEta 2.7% 2.7% 1 1.484s
+ │ └─ReflectiveTactics.solve_post_reifie 0.1% 39.0% 1 21.604s
+ │ └UnifyAbstractReflexivity.unify_tran 30.8% 36.1% 8 8.636s
+ │ └unify (constr) (constr) ----------- 4.4% 4.4% 6 1.140s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 6.7% 1 3.692s
+ └Glue.zrange_to_reflective ----------- 0.0% 6.2% 1 3.424s
+ └Glue.zrange_to_reflective_goal ------ 1.4% 4.7% 1 2.592s
+ └pose proof (pf : Interpretation. 3.1% 3.1% 1 1.736s
+─synthesize ---------------------------- 0.0% 4.1% 1 2.284s
+└IntegrationTestTemporaryMiscCommon.do_r 0.0% 4.0% 1 2.220s
+└change G' ----------------------------- 3.9% 3.9% 1 2.148s
+
+Finished transaction in 92.046 secs (84.315u,0.032s) (successful)
+Closed under the global context
+total time: 55.440s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 95.9% 1 53.156s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 89.2% 1 49.464s
+─ReflectiveTactics.solve_side_conditions 0.0% 88.9% 1 49.288s
+─ReflectiveTactics.do_reify ------------ -0.0% 49.9% 1 27.684s
+─Reify.Reify_rhs_gen ------------------- 1.3% 49.3% 1 27.348s
+─ReflectiveTactics.solve_post_reified_si 0.1% 39.0% 1 21.604s
+─Reify.do_reify_abs_goal --------------- 36.3% 36.6% 2 20.272s
+─UnifyAbstractReflexivity.unify_transfor 30.8% 36.1% 8 8.636s
+─Reify.do_reifyf_goal ------------------ 35.7% 35.9% 108 10.356s
+─eexact -------------------------------- 11.5% 11.5% 110 0.128s
+─Glue.refine_to_reflective_glue' ------- 0.0% 6.7% 1 3.692s
+─Glue.zrange_to_reflective ------------- 0.0% 6.2% 1 3.424s
+─unify (constr) (constr) --------------- 4.9% 4.9% 7 1.140s
+─Glue.zrange_to_reflective_goal -------- 1.4% 4.7% 1 2.592s
+─synthesize ---------------------------- 0.0% 4.1% 1 2.284s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 4.0% 1 2.220s
+─change G' ----------------------------- 3.9% 3.9% 1 2.148s
+─pose proof (pf : Interpretation.Bo 3.1% 3.1% 1 1.736s
+─rewrite H ----------------------------- 3.1% 3.1% 1 1.692s
+─prove_interp_compile_correct ---------- 0.0% 3.0% 1 1.636s
+─rewrite ?EtaInterp.InterpExprEta ------ 2.7% 2.7% 1 1.484s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 95.9% 1 53.156s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 89.2% 1 49.464s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 88.9% 1 49.288s
+ │ ├─ReflectiveTactics.do_reify -------- -0.0% 49.9% 1 27.684s
+ │ │└Reify.Reify_rhs_gen --------------- 1.3% 49.3% 1 27.348s
+ │ │ ├─Reify.do_reify_abs_goal --------- 36.3% 36.6% 2 20.272s
+ │ │ │└Reify.do_reifyf_goal ------------ 35.7% 35.9% 108 10.356s
+ │ │ │└eexact -------------------------- 11.1% 11.1% 108 0.072s
+ │ │ ├─rewrite H ----------------------- 3.1% 3.1% 1 1.692s
+ │ │ └─prove_interp_compile_correct ---- 0.0% 3.0% 1 1.636s
+ │ │ └rewrite ?EtaInterp.InterpExprEta 2.7% 2.7% 1 1.484s
+ │ └─ReflectiveTactics.solve_post_reifie 0.1% 39.0% 1 21.604s
+ │ └UnifyAbstractReflexivity.unify_tran 30.8% 36.1% 8 8.636s
+ │ └unify (constr) (constr) ----------- 4.4% 4.4% 6 1.140s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 6.7% 1 3.692s
+ └Glue.zrange_to_reflective ----------- 0.0% 6.2% 1 3.424s
+ └Glue.zrange_to_reflective_goal ------ 1.4% 4.7% 1 2.592s
+ └pose proof (pf : Interpretation. 3.1% 3.1% 1 1.736s
+─synthesize ---------------------------- 0.0% 4.1% 1 2.284s
+└IntegrationTestTemporaryMiscCommon.do_r 0.0% 4.0% 1 2.220s
+└change G' ----------------------------- 3.9% 3.9% 1 2.148s
+
+src/Specific/solinas32_2e255m765_12limbs/femul (real: 179.21, user: 164.11, sys: 0.42, mem: 1549104 ko)
+COQC src/Specific/X25519/C64/fesubDisplay > src/Specific/X25519/C64/fesubDisplay.log
+COQC src/Specific/X25519/C64/freezeDisplay > src/Specific/X25519/C64/freezeDisplay.log
+COQC src/Specific/solinas32_2e255m765_13limbs/femul.v
+Finished transaction in 74.548 secs (68.928u,0.079s) (successful)
+total time: 68.948s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 95.7% 1 65.956s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 88.7% 1 61.172s
+─ReflectiveTactics.solve_side_conditions 0.0% 88.4% 1 60.944s
+─ReflectiveTactics.do_reify ------------ 0.0% 48.5% 1 33.408s
+─Reify.Reify_rhs_gen ------------------- 1.3% 47.9% 1 33.020s
+─ReflectiveTactics.solve_post_reified_si 0.1% 39.9% 1 27.536s
+─UnifyAbstractReflexivity.unify_transfor 32.0% 37.2% 8 11.528s
+─Reify.do_reify_abs_goal --------------- 36.0% 36.2% 2 24.960s
+─Reify.do_reifyf_goal ------------------ 35.3% 35.5% 117 12.840s
+─eexact -------------------------------- 11.4% 11.4% 119 0.160s
+─Glue.refine_to_reflective_glue' ------- 0.0% 6.9% 1 4.784s
+─Glue.zrange_to_reflective ------------- 0.0% 6.5% 1 4.512s
+─Glue.zrange_to_reflective_goal -------- 1.3% 4.9% 1 3.396s
+─unify (constr) (constr) --------------- 4.9% 4.9% 7 1.524s
+─synthesize ---------------------------- 0.0% 4.3% 1 2.992s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 4.2% 1 2.912s
+─change G' ----------------------------- 4.1% 4.1% 1 2.840s
+─pose proof (pf : Interpretation.Bo 3.5% 3.5% 1 2.420s
+─rewrite H ----------------------------- 3.0% 3.0% 1 2.084s
+─prove_interp_compile_correct ---------- 0.0% 2.7% 1 1.856s
+─rewrite ?EtaInterp.InterpExprEta ------ 2.5% 2.5% 1 1.692s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 95.7% 1 65.956s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 88.7% 1 61.172s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 88.4% 1 60.944s
+ │ ├─ReflectiveTactics.do_reify -------- 0.0% 48.5% 1 33.408s
+ │ │└Reify.Reify_rhs_gen --------------- 1.3% 47.9% 1 33.020s
+ │ │ ├─Reify.do_reify_abs_goal --------- 36.0% 36.2% 2 24.960s
+ │ │ │└Reify.do_reifyf_goal ------------ 35.3% 35.5% 117 12.840s
+ │ │ │└eexact -------------------------- 10.9% 10.9% 117 0.088s
+ │ │ ├─rewrite H ----------------------- 3.0% 3.0% 1 2.084s
+ │ │ └─prove_interp_compile_correct ---- 0.0% 2.7% 1 1.856s
+ │ │ └rewrite ?EtaInterp.InterpExprEta 2.5% 2.5% 1 1.692s
+ │ └─ReflectiveTactics.solve_post_reifie 0.1% 39.9% 1 27.536s
+ │ └UnifyAbstractReflexivity.unify_tran 32.0% 37.2% 8 11.528s
+ │ └unify (constr) (constr) ----------- 4.3% 4.3% 6 1.524s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 6.9% 1 4.784s
+ └Glue.zrange_to_reflective ----------- 0.0% 6.5% 1 4.512s
+ └Glue.zrange_to_reflective_goal ------ 1.3% 4.9% 1 3.396s
+ └pose proof (pf : Interpretation. 3.5% 3.5% 1 2.420s
+─synthesize ---------------------------- 0.0% 4.3% 1 2.992s
+└IntegrationTestTemporaryMiscCommon.do_r 0.0% 4.2% 1 2.912s
+└change G' ----------------------------- 4.1% 4.1% 1 2.840s
+
+Finished transaction in 105.62 secs (97.6u,0.02s) (successful)
+Closed under the global context
+total time: 68.948s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 95.7% 1 65.956s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 88.7% 1 61.172s
+─ReflectiveTactics.solve_side_conditions 0.0% 88.4% 1 60.944s
+─ReflectiveTactics.do_reify ------------ 0.0% 48.5% 1 33.408s
+─Reify.Reify_rhs_gen ------------------- 1.3% 47.9% 1 33.020s
+─ReflectiveTactics.solve_post_reified_si 0.1% 39.9% 1 27.536s
+─UnifyAbstractReflexivity.unify_transfor 32.0% 37.2% 8 11.528s
+─Reify.do_reify_abs_goal --------------- 36.0% 36.2% 2 24.960s
+─Reify.do_reifyf_goal ------------------ 35.3% 35.5% 117 12.840s
+─eexact -------------------------------- 11.4% 11.4% 119 0.160s
+─Glue.refine_to_reflective_glue' ------- 0.0% 6.9% 1 4.784s
+─Glue.zrange_to_reflective ------------- 0.0% 6.5% 1 4.512s
+─Glue.zrange_to_reflective_goal -------- 1.3% 4.9% 1 3.396s
+─unify (constr) (constr) --------------- 4.9% 4.9% 7 1.524s
+─synthesize ---------------------------- 0.0% 4.3% 1 2.992s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 4.2% 1 2.912s
+─change G' ----------------------------- 4.1% 4.1% 1 2.840s
+─pose proof (pf : Interpretation.Bo 3.5% 3.5% 1 2.420s
+─rewrite H ----------------------------- 3.0% 3.0% 1 2.084s
+─prove_interp_compile_correct ---------- 0.0% 2.7% 1 1.856s
+─rewrite ?EtaInterp.InterpExprEta ------ 2.5% 2.5% 1 1.692s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 95.7% 1 65.956s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 88.7% 1 61.172s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 88.4% 1 60.944s
+ │ ├─ReflectiveTactics.do_reify -------- 0.0% 48.5% 1 33.408s
+ │ │└Reify.Reify_rhs_gen --------------- 1.3% 47.9% 1 33.020s
+ │ │ ├─Reify.do_reify_abs_goal --------- 36.0% 36.2% 2 24.960s
+ │ │ │└Reify.do_reifyf_goal ------------ 35.3% 35.5% 117 12.840s
+ │ │ │└eexact -------------------------- 10.9% 10.9% 117 0.088s
+ │ │ ├─rewrite H ----------------------- 3.0% 3.0% 1 2.084s
+ │ │ └─prove_interp_compile_correct ---- 0.0% 2.7% 1 1.856s
+ │ │ └rewrite ?EtaInterp.InterpExprEta 2.5% 2.5% 1 1.692s
+ │ └─ReflectiveTactics.solve_post_reifie 0.1% 39.9% 1 27.536s
+ │ └UnifyAbstractReflexivity.unify_tran 32.0% 37.2% 8 11.528s
+ │ └unify (constr) (constr) ----------- 4.3% 4.3% 6 1.524s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 6.9% 1 4.784s
+ └Glue.zrange_to_reflective ----------- 0.0% 6.5% 1 4.512s
+ └Glue.zrange_to_reflective_goal ------ 1.3% 4.9% 1 3.396s
+ └pose proof (pf : Interpretation. 3.5% 3.5% 1 2.420s
+─synthesize ---------------------------- 0.0% 4.3% 1 2.992s
+└IntegrationTestTemporaryMiscCommon.do_r 0.0% 4.2% 1 2.912s
+└change G' ----------------------------- 4.1% 4.1% 1 2.840s
+
+src/Specific/solinas32_2e255m765_13limbs/femul (real: 207.94, user: 192.95, sys: 0.48, mem: 1656912 ko)
+COQC src/Specific/NISTP256/AMD64/femul.v
+Finished transaction in 122.29 secs (111.972u,0.239s) (successful)
+total time: 112.164s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 97.1% 1 108.944s
+─ReflectiveTactics.do_reflective_pipelin -0.0% 96.5% 1 108.236s
+─ReflectiveTactics.solve_side_conditions 0.0% 96.3% 1 108.000s
+─ReflectiveTactics.do_reify ------------ 0.0% 81.8% 1 91.740s
+─Reify.Reify_rhs_gen ------------------- 0.7% 81.6% 1 91.504s
+─Reify.do_reify_abs_goal --------------- 75.6% 75.7% 2 84.892s
+─Reify.do_reifyf_goal ------------------ 75.2% 75.4% 901 84.532s
+─eexact -------------------------------- 17.1% 17.1% 903 0.140s
+─ReflectiveTactics.solve_post_reified_si 0.2% 14.5% 1 16.260s
+─UnifyAbstractReflexivity.unify_transfor 11.7% 13.3% 8 3.152s
+─synthesize_montgomery ----------------- 0.0% 2.9% 1 3.220s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 97.1% 1 108.944s
+└ReflectiveTactics.do_reflective_pipelin -0.0% 96.5% 1 108.236s
+└ReflectiveTactics.solve_side_conditions 0.0% 96.3% 1 108.000s
+ ├─ReflectiveTactics.do_reify ---------- 0.0% 81.8% 1 91.740s
+ │└Reify.Reify_rhs_gen ----------------- 0.7% 81.6% 1 91.504s
+ │└Reify.do_reify_abs_goal ------------- 75.6% 75.7% 2 84.892s
+ │└Reify.do_reifyf_goal ---------------- 75.2% 75.4% 901 84.532s
+ │└eexact ------------------------------ 16.9% 16.9% 901 0.140s
+ └─ReflectiveTactics.solve_post_reified_ 0.2% 14.5% 1 16.260s
+ └UnifyAbstractReflexivity.unify_transf 11.7% 13.3% 8 3.152s
+─synthesize_montgomery ----------------- 0.0% 2.9% 1 3.220s
+
+Finished transaction in 72.408 secs (68.432u,0.064s) (successful)
+Closed under the global context
+total time: 112.164s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 97.1% 1 108.944s
+─ReflectiveTactics.do_reflective_pipelin -0.0% 96.5% 1 108.236s
+─ReflectiveTactics.solve_side_conditions 0.0% 96.3% 1 108.000s
+─ReflectiveTactics.do_reify ------------ 0.0% 81.8% 1 91.740s
+─Reify.Reify_rhs_gen ------------------- 0.7% 81.6% 1 91.504s
+─Reify.do_reify_abs_goal --------------- 75.6% 75.7% 2 84.892s
+─Reify.do_reifyf_goal ------------------ 75.2% 75.4% 901 84.532s
+─eexact -------------------------------- 17.1% 17.1% 903 0.140s
+─ReflectiveTactics.solve_post_reified_si 0.2% 14.5% 1 16.260s
+─UnifyAbstractReflexivity.unify_transfor 11.7% 13.3% 8 3.152s
+─synthesize_montgomery ----------------- 0.0% 2.9% 1 3.220s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 97.1% 1 108.944s
+└ReflectiveTactics.do_reflective_pipelin -0.0% 96.5% 1 108.236s
+└ReflectiveTactics.solve_side_conditions 0.0% 96.3% 1 108.000s
+ ├─ReflectiveTactics.do_reify ---------- 0.0% 81.8% 1 91.740s
+ │└Reify.Reify_rhs_gen ----------------- 0.7% 81.6% 1 91.504s
+ │└Reify.do_reify_abs_goal ------------- 75.6% 75.7% 2 84.892s
+ │└Reify.do_reifyf_goal ---------------- 75.2% 75.4% 901 84.532s
+ │└eexact ------------------------------ 16.9% 16.9% 901 0.140s
+ └─ReflectiveTactics.solve_post_reified_ 0.2% 14.5% 1 16.260s
+ └UnifyAbstractReflexivity.unify_transf 11.7% 13.3% 8 3.152s
+─synthesize_montgomery ----------------- 0.0% 2.9% 1 3.220s
+
+src/Specific/NISTP256/AMD64/femul (real: 217.80, user: 202.52, sys: 0.53, mem: 3307052 ko)
+COQC src/Specific/NISTP256/AMD64/femulDisplay > src/Specific/NISTP256/AMD64/femulDisplay.log
+COQC src/Specific/X25519/C64/ladderstep.v
+total time: 82.012s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_xzladderstep --------------- 0.0% 100.0% 1 82.012s
+─Pipeline.refine_reflectively_gen ------ 0.0% 99.0% 1 81.228s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 96.1% 1 78.784s
+─ReflectiveTactics.solve_side_conditions 0.0% 95.9% 1 78.684s
+─ReflectiveTactics.solve_post_reified_si 0.1% 72.6% 1 59.540s
+─UnifyAbstractReflexivity.unify_transfor 64.6% 68.0% 8 30.740s
+─ReflectiveTactics.do_reify ------------ 0.0% 23.3% 1 19.144s
+─Reify.Reify_rhs_gen ------------------- 1.2% 14.5% 1 11.860s
+─Reify.do_reifyf_goal ------------------ 7.1% 7.2% 138 1.908s
+─Compilers.Reify.reify_context_variables 0.0% 5.9% 1 4.828s
+─rewrite H ----------------------------- 4.4% 4.4% 1 3.600s
+─ReflectiveTactics.unify_abstract_cbv_in 2.9% 4.0% 1 3.288s
+─Glue.refine_to_reflective_glue' ------- 0.0% 3.0% 1 2.444s
+─Glue.zrange_to_reflective ------------- 0.0% 2.5% 1 2.060s
+─reflexivity --------------------------- 2.3% 2.3% 11 0.816s
+─Reify.transitivity_tt ----------------- 0.0% 2.1% 2 0.968s
+─Glue.zrange_to_reflective_goal -------- 1.4% 2.1% 1 1.720s
+─clear (var_list) ---------------------- 2.0% 2.0% 159 0.584s
+─eexact -------------------------------- 2.0% 2.0% 140 0.032s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_xzladderstep --------------- 0.0% 100.0% 1 82.012s
+└Pipeline.refine_reflectively_gen ------ 0.0% 99.0% 1 81.228s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 96.1% 1 78.784s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 95.9% 1 78.684s
+ │ ├─ReflectiveTactics.solve_post_reifie 0.1% 72.6% 1 59.540s
+ │ │ ├─UnifyAbstractReflexivity.unify_tr 64.6% 68.0% 8 30.740s
+ │ │ └─ReflectiveTactics.unify_abstract_ 2.9% 4.0% 1 3.288s
+ │ └─ReflectiveTactics.do_reify -------- 0.0% 23.3% 1 19.144s
+ │ ├─Reify.Reify_rhs_gen ------------- 1.2% 14.5% 1 11.860s
+ │ │ ├─rewrite H --------------------- 4.4% 4.4% 1 3.600s
+ │ │ └─Reify.transitivity_tt --------- 0.0% 2.1% 2 0.968s
+ │ └─Compilers.Reify.reify_context_var 0.0% 5.9% 1 4.828s
+ │ └Reify.do_reifyf_goal ------------ 5.7% 5.8% 113 1.908s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 3.0% 1 2.444s
+ └Glue.zrange_to_reflective ----------- 0.0% 2.5% 1 2.060s
+ └Glue.zrange_to_reflective_goal ------ 1.4% 2.1% 1 1.720s
+
+Finished transaction in 194.903 secs (185.732u,0.043s) (successful)
+Closed under the global context
+total time: 82.012s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_xzladderstep --------------- 0.0% 100.0% 1 82.012s
+─Pipeline.refine_reflectively_gen ------ 0.0% 99.0% 1 81.228s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 96.1% 1 78.784s
+─ReflectiveTactics.solve_side_conditions 0.0% 95.9% 1 78.684s
+─ReflectiveTactics.solve_post_reified_si 0.1% 72.6% 1 59.540s
+─UnifyAbstractReflexivity.unify_transfor 64.6% 68.0% 8 30.740s
+─ReflectiveTactics.do_reify ------------ 0.0% 23.3% 1 19.144s
+─Reify.Reify_rhs_gen ------------------- 1.2% 14.5% 1 11.860s
+─Reify.do_reifyf_goal ------------------ 7.1% 7.2% 138 1.908s
+─Compilers.Reify.reify_context_variables 0.0% 5.9% 1 4.828s
+─rewrite H ----------------------------- 4.4% 4.4% 1 3.600s
+─ReflectiveTactics.unify_abstract_cbv_in 2.9% 4.0% 1 3.288s
+─Glue.refine_to_reflective_glue' ------- 0.0% 3.0% 1 2.444s
+─Glue.zrange_to_reflective ------------- 0.0% 2.5% 1 2.060s
+─reflexivity --------------------------- 2.3% 2.3% 11 0.816s
+─Reify.transitivity_tt ----------------- 0.0% 2.1% 2 0.968s
+─Glue.zrange_to_reflective_goal -------- 1.4% 2.1% 1 1.720s
+─clear (var_list) ---------------------- 2.0% 2.0% 159 0.584s
+─eexact -------------------------------- 2.0% 2.0% 140 0.032s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_xzladderstep --------------- 0.0% 100.0% 1 82.012s
+└Pipeline.refine_reflectively_gen ------ 0.0% 99.0% 1 81.228s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 96.1% 1 78.784s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 95.9% 1 78.684s
+ │ ├─ReflectiveTactics.solve_post_reifie 0.1% 72.6% 1 59.540s
+ │ │ ├─UnifyAbstractReflexivity.unify_tr 64.6% 68.0% 8 30.740s
+ │ │ └─ReflectiveTactics.unify_abstract_ 2.9% 4.0% 1 3.288s
+ │ └─ReflectiveTactics.do_reify -------- 0.0% 23.3% 1 19.144s
+ │ ├─Reify.Reify_rhs_gen ------------- 1.2% 14.5% 1 11.860s
+ │ │ ├─rewrite H --------------------- 4.4% 4.4% 1 3.600s
+ │ │ └─Reify.transitivity_tt --------- 0.0% 2.1% 2 0.968s
+ │ └─Compilers.Reify.reify_context_var 0.0% 5.9% 1 4.828s
+ │ └Reify.do_reifyf_goal ------------ 5.7% 5.8% 113 1.908s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 3.0% 1 2.444s
+ └Glue.zrange_to_reflective ----------- 0.0% 2.5% 1 2.060s
+ └Glue.zrange_to_reflective_goal ------ 1.4% 2.1% 1 1.720s
+
+src/Specific/X25519/C64/ladderstep (real: 316.83, user: 299.49, sys: 0.52, mem: 1621500 ko)
+COQC src/Specific/X25519/C64/ladderstepDisplay > src/Specific/X25519/C64/ladderstepDisplay.log
diff --git a/test-suite/coq-makefile/timing/precomputed-time-tests/001-correct-diff-sorting-order/time-of-build-both.log.expected b/test-suite/coq-makefile/timing/precomputed-time-tests/001-correct-diff-sorting-order/time-of-build-both.log.expected
new file mode 100644
index 0000000000..975e359b78
--- /dev/null
+++ b/test-suite/coq-makefile/timing/precomputed-time-tests/001-correct-diff-sorting-order/time-of-build-both.log.expected
@@ -0,0 +1,26 @@
+After | File Name | Before || Change | % Change
+----------------------------------------------------------------------------------------------
+19m16.05s | Total | 21m25.28s || -2m09.23s | -10.05%
+----------------------------------------------------------------------------------------------
+4m01.34s | Specific/X25519/C64/ladderstep | 4m59.49s || -0m58.15s | -19.41%
+2m48.52s | Specific/solinas32_2e255m765_13limbs/femul | 3m12.95s || -0m24.42s | -12.66%
+2m23.70s | Specific/solinas32_2e255m765_12limbs/femul | 2m44.11s || -0m20.41s | -12.43%
+3m09.62s | Specific/NISTP256/AMD64/femul | 3m22.52s || -0m12.90s | -6.36%
+0m36.32s | Specific/X25519/C64/femul | 0m39.50s || -0m03.17s | -8.05%
+0m30.13s | Specific/X25519/C64/fesquare | 0m32.24s || -0m02.11s | -6.54%
+0m35.40s | Specific/NISTP256/AMD64/feadd | 0m37.21s || -0m01.81s | -4.86%
+0m31.50s | Specific/X25519/C64/freeze | 0m33.24s || -0m01.74s | -5.23%
+0m24.99s | Specific/X25519/C64/fecarry | 0m26.31s || -0m01.32s | -5.01%
+0m22.65s | Specific/X25519/C64/fesub | 0m23.72s || -0m01.07s | -4.51%
+0m45.75s | Specific/solinas32_2e255m765_13limbs/Synthesis | 0m45.58s || +0m00.17s | +0.37%
+0m39.59s | Specific/NISTP256/AMD64/fesub | 0m40.09s || -0m00.50s | -1.24%
+0m36.92s | Specific/solinas32_2e255m765_12limbs/Synthesis | 0m36.64s || +0m00.28s | +0.76%
+0m28.51s | Specific/NISTP256/AMD64/feopp | 0m29.46s || -0m00.94s | -3.22%
+0m25.50s | Specific/NISTP256/AMD64/fenz | 0m26.41s || -0m00.91s | -3.44%
+0m20.93s | Specific/X25519/C64/feadd | 0m21.41s || -0m00.48s | -2.24%
+0m12.55s | Specific/NISTP256/AMD64/Synthesis | 0m12.54s || +0m00.01s | +0.07%
+0m10.37s | Specific/X25519/C64/Synthesis | 0m10.30s || +0m00.06s | +0.67%
+0m07.18s | Compilers/Z/Bounds/Pipeline/Definition | 0m07.22s || -0m00.04s | -0.55%
+0m01.72s | Compilers/Z/Bounds/Pipeline/ReflectiveTactics | 0m01.58s || +0m00.13s | +8.86%
+0m01.67s | Specific/Framework/SynthesisFramework | 0m01.72s || -0m00.05s | -2.90%
+0m01.19s | Compilers/Z/Bounds/Pipeline | 0m01.04s || +0m00.14s | +14.42% \ No newline at end of file
diff --git a/test-suite/coq-makefile/timing/precomputed-time-tests/002-single-file-sorting/run.sh b/test-suite/coq-makefile/timing/precomputed-time-tests/002-single-file-sorting/run.sh
new file mode 100755
index 0000000000..4f39b3ce7e
--- /dev/null
+++ b/test-suite/coq-makefile/timing/precomputed-time-tests/002-single-file-sorting/run.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+
+set -x
+set -e
+
+cd "$(dirname "${BASH_SOURCE[0]}")"
+
+"$COQLIB"/tools/make-one-time-file.py time-of-build.log.in time-of-build-pretty.log
+
+diff -u time-of-build-pretty.log.expected time-of-build-pretty.log || exit $?
diff --git a/test-suite/coq-makefile/timing/precomputed-time-tests/002-single-file-sorting/time-of-build-pretty.log.expected b/test-suite/coq-makefile/timing/precomputed-time-tests/002-single-file-sorting/time-of-build-pretty.log.expected
new file mode 100644
index 0000000000..fdd5ec21d6
--- /dev/null
+++ b/test-suite/coq-makefile/timing/precomputed-time-tests/002-single-file-sorting/time-of-build-pretty.log.expected
@@ -0,0 +1,26 @@
+Time | File Name
+----------------------------------------------------------
+19m16.05s | Total
+----------------------------------------------------------
+4m01.34s | Specific/X25519/C64/ladderstep
+3m09.62s | Specific/NISTP256/AMD64/femul
+2m48.52s | Specific/solinas32_2e255m765_13limbs/femul
+2m23.70s | Specific/solinas32_2e255m765_12limbs/femul
+0m45.75s | Specific/solinas32_2e255m765_13limbs/Synthesis
+0m39.59s | Specific/NISTP256/AMD64/fesub
+0m36.92s | Specific/solinas32_2e255m765_12limbs/Synthesis
+0m36.32s | Specific/X25519/C64/femul
+0m35.40s | Specific/NISTP256/AMD64/feadd
+0m31.50s | Specific/X25519/C64/freeze
+0m30.13s | Specific/X25519/C64/fesquare
+0m28.51s | Specific/NISTP256/AMD64/feopp
+0m25.50s | Specific/NISTP256/AMD64/fenz
+0m24.99s | Specific/X25519/C64/fecarry
+0m22.65s | Specific/X25519/C64/fesub
+0m20.93s | Specific/X25519/C64/feadd
+0m12.55s | Specific/NISTP256/AMD64/Synthesis
+0m10.37s | Specific/X25519/C64/Synthesis
+0m07.18s | Compilers/Z/Bounds/Pipeline/Definition
+0m01.72s | Compilers/Z/Bounds/Pipeline/ReflectiveTactics
+0m01.67s | Specific/Framework/SynthesisFramework
+0m01.19s | Compilers/Z/Bounds/Pipeline \ No newline at end of file
diff --git a/test-suite/coq-makefile/timing/precomputed-time-tests/002-single-file-sorting/time-of-build.log.in b/test-suite/coq-makefile/timing/precomputed-time-tests/002-single-file-sorting/time-of-build.log.in
new file mode 100644
index 0000000000..5757018e9b
--- /dev/null
+++ b/test-suite/coq-makefile/timing/precomputed-time-tests/002-single-file-sorting/time-of-build.log.in
@@ -0,0 +1,1760 @@
+COQDEP src/Compilers/Z/Bounds/Pipeline/ReflectiveTactics.v
+COQDEP src/Compilers/Z/Bounds/Pipeline/Definition.v
+/home/jgross/.local64/coq/coq-master/bin/coq_makefile -f _CoqProject INSTALLDEFAULTROOT = Crypto -o Makefile-old
+COQ_MAKEFILE -f _CoqProject > Makefile.coq
+make --no-print-directory -C coqprime
+make[1]: Nothing to be done for 'all'.
+ECHO > _CoqProject
+COQC src/Compilers/Z/Bounds/Pipeline/Definition.v
+src/Compilers/Z/Bounds/Pipeline/Definition (real: 7.33, user: 7.18, sys: 0.14, mem: 574388 ko)
+COQC src/Compilers/Z/Bounds/Pipeline/ReflectiveTactics.v
+src/Compilers/Z/Bounds/Pipeline/ReflectiveTactics (real: 1.93, user: 1.72, sys: 0.20, mem: 544172 ko)
+COQC src/Compilers/Z/Bounds/Pipeline.v
+src/Compilers/Z/Bounds/Pipeline (real: 1.38, user: 1.19, sys: 0.16, mem: 539808 ko)
+COQC src/Specific/Framework/SynthesisFramework.v
+src/Specific/Framework/SynthesisFramework (real: 1.85, user: 1.67, sys: 0.17, mem: 646300 ko)
+COQC src/Specific/X25519/C64/Synthesis.v
+src/Specific/X25519/C64/Synthesis (real: 11.15, user: 10.37, sys: 0.18, mem: 687760 ko)
+COQC src/Specific/NISTP256/AMD64/Synthesis.v
+src/Specific/NISTP256/AMD64/Synthesis (real: 13.45, user: 12.55, sys: 0.19, mem: 668216 ko)
+COQC src/Specific/X25519/C64/feadd.v
+Finished transaction in 2.814 secs (2.624u,0.s) (successful)
+total time: 2.576s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.2% 97.4% 1 2.508s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 66.9% 1 1.724s
+─ReflectiveTactics.solve_side_conditions 0.0% 65.5% 1 1.688s
+─ReflectiveTactics.solve_post_reified_si 1.2% 37.0% 1 0.952s
+─Glue.refine_to_reflective_glue' ------- 0.0% 30.3% 1 0.780s
+─ReflectiveTactics.do_reify ------------ 0.0% 28.6% 1 0.736s
+─Reify.Reify_rhs_gen ------------------- 2.2% 26.6% 1 0.684s
+─UnifyAbstractReflexivity.unify_transfor 20.3% 24.1% 7 0.164s
+─Glue.zrange_to_reflective ------------- 0.0% 20.3% 1 0.524s
+─Glue.zrange_to_reflective_goal -------- 9.5% 15.2% 1 0.392s
+─Reify.do_reify_abs_goal --------------- 13.7% 13.8% 2 0.356s
+─Reify.do_reifyf_goal ------------------ 12.4% 12.6% 16 0.324s
+─ReflectiveTactics.unify_abstract_cbv_in 8.4% 11.2% 1 0.288s
+─unify (constr) (constr) --------------- 5.7% 5.7% 6 0.072s
+─Glue.pattern_sig_sig_assoc ------------ 0.0% 5.4% 1 0.140s
+─assert (H : is_bounded_by' bounds (map' 4.8% 5.1% 2 0.072s
+─Glue.pattern_proj1_sig_in_sig --------- 1.7% 5.1% 1 0.132s
+─pose proof (pf : Interpretation.Bo 3.7% 3.7% 1 0.096s
+─Glue.split_BoundedWordToZ ------------- 0.3% 3.7% 1 0.096s
+─destruct_sig -------------------------- 0.2% 3.3% 4 0.044s
+─destruct x ---------------------------- 3.1% 3.1% 4 0.036s
+─eexact -------------------------------- 3.0% 3.0% 18 0.008s
+─clearbody (ne_var_list) --------------- 3.0% 3.0% 4 0.060s
+─prove_interp_compile_correct ---------- 0.0% 2.8% 1 0.072s
+─synthesize ---------------------------- 0.0% 2.6% 1 0.068s
+─rewrite ?EtaInterp.InterpExprEta ------ 2.5% 2.5% 1 0.064s
+─ClearbodyAll.clearbody_all ------------ 0.0% 2.3% 2 0.060s
+─rewrite H ----------------------------- 2.2% 2.2% 1 0.056s
+─reflexivity --------------------------- 2.2% 2.2% 7 0.032s
+─Reify.transitivity_tt ----------------- 0.0% 2.2% 2 0.032s
+─transitivity -------------------------- 2.0% 2.0% 5 0.024s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.2% 97.4% 1 2.508s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 66.9% 1 1.724s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 65.5% 1 1.688s
+ │ ├─ReflectiveTactics.solve_post_reifie 1.2% 37.0% 1 0.952s
+ │ │ ├─UnifyAbstractReflexivity.unify_tr 20.3% 24.1% 7 0.164s
+ │ │ │└unify (constr) (constr) --------- 3.0% 3.0% 5 0.028s
+ │ │ └─ReflectiveTactics.unify_abstract_ 8.4% 11.2% 1 0.288s
+ │ │ └unify (constr) (constr) --------- 2.8% 2.8% 1 0.072s
+ │ └─ReflectiveTactics.do_reify -------- 0.0% 28.6% 1 0.736s
+ │ └Reify.Reify_rhs_gen --------------- 2.2% 26.6% 1 0.684s
+ │ ├─Reify.do_reify_abs_goal --------- 13.7% 13.8% 2 0.356s
+ │ │└Reify.do_reifyf_goal ------------ 12.4% 12.6% 16 0.324s
+ │ │└eexact -------------------------- 2.6% 2.6% 16 0.008s
+ │ ├─prove_interp_compile_correct ---- 0.0% 2.8% 1 0.072s
+ │ │└rewrite ?EtaInterp.InterpExprEta 2.5% 2.5% 1 0.064s
+ │ ├─rewrite H ----------------------- 2.2% 2.2% 1 0.056s
+ │ └─Reify.transitivity_tt ----------- 0.0% 2.2% 2 0.032s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 30.3% 1 0.780s
+ ├─Glue.zrange_to_reflective --------- 0.0% 20.3% 1 0.524s
+ │ ├─Glue.zrange_to_reflective_goal -- 9.5% 15.2% 1 0.392s
+ │ │└pose proof (pf : Interpretat 3.7% 3.7% 1 0.096s
+ │ └─assert (H : is_bounded_by' bounds 4.8% 5.1% 2 0.072s
+ ├─Glue.pattern_sig_sig_assoc -------- 0.0% 5.4% 1 0.140s
+ │└Glue.pattern_proj1_sig_in_sig ----- 1.7% 5.1% 1 0.132s
+ │└ClearbodyAll.clearbody_all -------- 0.0% 2.3% 2 0.060s
+ │└clearbody (ne_var_list) ----------- 2.3% 2.3% 1 0.060s
+ └─Glue.split_BoundedWordToZ --------- 0.3% 3.7% 1 0.096s
+ └destruct_sig ---------------------- 0.2% 3.3% 4 0.044s
+ └destruct x ------------------------ 2.5% 2.5% 2 0.036s
+─synthesize ---------------------------- 0.0% 2.6% 1 0.068s
+
+Finished transaction in 5.021 secs (4.636u,0.s) (successful)
+Closed under the global context
+total time: 2.576s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.2% 97.4% 1 2.508s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 66.9% 1 1.724s
+─ReflectiveTactics.solve_side_conditions 0.0% 65.5% 1 1.688s
+─ReflectiveTactics.solve_post_reified_si 1.2% 37.0% 1 0.952s
+─Glue.refine_to_reflective_glue' ------- 0.0% 30.3% 1 0.780s
+─ReflectiveTactics.do_reify ------------ 0.0% 28.6% 1 0.736s
+─Reify.Reify_rhs_gen ------------------- 2.2% 26.6% 1 0.684s
+─UnifyAbstractReflexivity.unify_transfor 20.3% 24.1% 7 0.164s
+─Glue.zrange_to_reflective ------------- 0.0% 20.3% 1 0.524s
+─Glue.zrange_to_reflective_goal -------- 9.5% 15.2% 1 0.392s
+─Reify.do_reify_abs_goal --------------- 13.7% 13.8% 2 0.356s
+─Reify.do_reifyf_goal ------------------ 12.4% 12.6% 16 0.324s
+─ReflectiveTactics.unify_abstract_cbv_in 8.4% 11.2% 1 0.288s
+─unify (constr) (constr) --------------- 5.7% 5.7% 6 0.072s
+─Glue.pattern_sig_sig_assoc ------------ 0.0% 5.4% 1 0.140s
+─assert (H : is_bounded_by' bounds (map' 4.8% 5.1% 2 0.072s
+─Glue.pattern_proj1_sig_in_sig --------- 1.7% 5.1% 1 0.132s
+─pose proof (pf : Interpretation.Bo 3.7% 3.7% 1 0.096s
+─Glue.split_BoundedWordToZ ------------- 0.3% 3.7% 1 0.096s
+─destruct_sig -------------------------- 0.2% 3.3% 4 0.044s
+─destruct x ---------------------------- 3.1% 3.1% 4 0.036s
+─eexact -------------------------------- 3.0% 3.0% 18 0.008s
+─clearbody (ne_var_list) --------------- 3.0% 3.0% 4 0.060s
+─prove_interp_compile_correct ---------- 0.0% 2.8% 1 0.072s
+─synthesize ---------------------------- 0.0% 2.6% 1 0.068s
+─rewrite ?EtaInterp.InterpExprEta ------ 2.5% 2.5% 1 0.064s
+─ClearbodyAll.clearbody_all ------------ 0.0% 2.3% 2 0.060s
+─rewrite H ----------------------------- 2.2% 2.2% 1 0.056s
+─reflexivity --------------------------- 2.2% 2.2% 7 0.032s
+─Reify.transitivity_tt ----------------- 0.0% 2.2% 2 0.032s
+─transitivity -------------------------- 2.0% 2.0% 5 0.024s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.2% 97.4% 1 2.508s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 66.9% 1 1.724s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 65.5% 1 1.688s
+ │ ├─ReflectiveTactics.solve_post_reifie 1.2% 37.0% 1 0.952s
+ │ │ ├─UnifyAbstractReflexivity.unify_tr 20.3% 24.1% 7 0.164s
+ │ │ │└unify (constr) (constr) --------- 3.0% 3.0% 5 0.028s
+ │ │ └─ReflectiveTactics.unify_abstract_ 8.4% 11.2% 1 0.288s
+ │ │ └unify (constr) (constr) --------- 2.8% 2.8% 1 0.072s
+ │ └─ReflectiveTactics.do_reify -------- 0.0% 28.6% 1 0.736s
+ │ └Reify.Reify_rhs_gen --------------- 2.2% 26.6% 1 0.684s
+ │ ├─Reify.do_reify_abs_goal --------- 13.7% 13.8% 2 0.356s
+ │ │└Reify.do_reifyf_goal ------------ 12.4% 12.6% 16 0.324s
+ │ │└eexact -------------------------- 2.6% 2.6% 16 0.008s
+ │ ├─prove_interp_compile_correct ---- 0.0% 2.8% 1 0.072s
+ │ │└rewrite ?EtaInterp.InterpExprEta 2.5% 2.5% 1 0.064s
+ │ ├─rewrite H ----------------------- 2.2% 2.2% 1 0.056s
+ │ └─Reify.transitivity_tt ----------- 0.0% 2.2% 2 0.032s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 30.3% 1 0.780s
+ ├─Glue.zrange_to_reflective --------- 0.0% 20.3% 1 0.524s
+ │ ├─Glue.zrange_to_reflective_goal -- 9.5% 15.2% 1 0.392s
+ │ │└pose proof (pf : Interpretat 3.7% 3.7% 1 0.096s
+ │ └─assert (H : is_bounded_by' bounds 4.8% 5.1% 2 0.072s
+ ├─Glue.pattern_sig_sig_assoc -------- 0.0% 5.4% 1 0.140s
+ │└Glue.pattern_proj1_sig_in_sig ----- 1.7% 5.1% 1 0.132s
+ │└ClearbodyAll.clearbody_all -------- 0.0% 2.3% 2 0.060s
+ │└clearbody (ne_var_list) ----------- 2.3% 2.3% 1 0.060s
+ └─Glue.split_BoundedWordToZ --------- 0.3% 3.7% 1 0.096s
+ └destruct_sig ---------------------- 0.2% 3.3% 4 0.044s
+ └destruct x ------------------------ 2.5% 2.5% 2 0.036s
+─synthesize ---------------------------- 0.0% 2.6% 1 0.068s
+
+src/Specific/X25519/C64/feadd (real: 22.81, user: 20.93, sys: 0.25, mem: 766300 ko)
+COQC src/Specific/X25519/C64/fecarry.v
+Finished transaction in 4.343 secs (4.016u,0.004s) (successful)
+total time: 3.976s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 99.0% 1 3.936s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 87.9% 1 3.496s
+─ReflectiveTactics.solve_side_conditions 0.0% 86.9% 1 3.456s
+─ReflectiveTactics.do_reify ------------ 0.0% 56.9% 1 2.264s
+─Reify.Reify_rhs_gen ------------------- 1.8% 56.2% 1 2.236s
+─Reify.do_reify_abs_goal --------------- 36.1% 36.5% 2 1.452s
+─Reify.do_reifyf_goal ------------------ 34.8% 35.1% 29 1.396s
+─ReflectiveTactics.solve_post_reified_si 0.6% 30.0% 1 1.192s
+─UnifyAbstractReflexivity.unify_transfor 17.7% 21.7% 7 0.240s
+─Glue.refine_to_reflective_glue' ------- 0.0% 11.1% 1 0.440s
+─eexact -------------------------------- 10.9% 10.9% 31 0.024s
+─ReflectiveTactics.unify_abstract_cbv_in 5.2% 7.3% 1 0.292s
+─Glue.zrange_to_reflective ------------- 0.0% 7.1% 1 0.284s
+─prove_interp_compile_correct ---------- 0.0% 5.7% 1 0.228s
+─Glue.zrange_to_reflective_goal -------- 4.3% 5.5% 1 0.220s
+─unify (constr) (constr) --------------- 5.3% 5.3% 6 0.084s
+─rewrite ?EtaInterp.InterpExprEta ------ 5.2% 5.2% 1 0.208s
+─rewrite H ----------------------------- 3.5% 3.5% 1 0.140s
+─tac ----------------------------------- 1.9% 2.6% 2 0.104s
+─reflexivity --------------------------- 2.2% 2.2% 7 0.028s
+─Reify.transitivity_tt ----------------- 0.0% 2.2% 2 0.056s
+─transitivity -------------------------- 2.0% 2.0% 5 0.048s
+─Glue.split_BoundedWordToZ ------------- 0.1% 2.0% 1 0.080s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 99.0% 1 3.936s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 87.9% 1 3.496s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 86.9% 1 3.456s
+ │ ├─ReflectiveTactics.do_reify -------- 0.0% 56.9% 1 2.264s
+ │ │└Reify.Reify_rhs_gen --------------- 1.8% 56.2% 1 2.236s
+ │ │ ├─Reify.do_reify_abs_goal --------- 36.1% 36.5% 2 1.452s
+ │ │ │└Reify.do_reifyf_goal ------------ 34.8% 35.1% 29 1.396s
+ │ │ │└eexact -------------------------- 10.1% 10.1% 29 0.024s
+ │ │ ├─prove_interp_compile_correct ---- 0.0% 5.7% 1 0.228s
+ │ │ │└rewrite ?EtaInterp.InterpExprEta 5.2% 5.2% 1 0.208s
+ │ │ ├─rewrite H ----------------------- 3.5% 3.5% 1 0.140s
+ │ │ ├─tac ----------------------------- 1.9% 2.6% 1 0.104s
+ │ │ └─Reify.transitivity_tt ----------- 0.0% 2.2% 2 0.056s
+ │ │ └transitivity -------------------- 2.0% 2.0% 4 0.048s
+ │ └─ReflectiveTactics.solve_post_reifie 0.6% 30.0% 1 1.192s
+ │ ├─UnifyAbstractReflexivity.unify_tr 17.7% 21.7% 7 0.240s
+ │ │└unify (constr) (constr) --------- 3.2% 3.2% 5 0.048s
+ │ └─ReflectiveTactics.unify_abstract_ 5.2% 7.3% 1 0.292s
+ │ └unify (constr) (constr) --------- 2.1% 2.1% 1 0.084s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 11.1% 1 0.440s
+ ├─Glue.zrange_to_reflective --------- 0.0% 7.1% 1 0.284s
+ │└Glue.zrange_to_reflective_goal ---- 4.3% 5.5% 1 0.220s
+ └─Glue.split_BoundedWordToZ --------- 0.1% 2.0% 1 0.080s
+
+Finished transaction in 7.078 secs (6.728u,0.s) (successful)
+Closed under the global context
+total time: 3.976s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 99.0% 1 3.936s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 87.9% 1 3.496s
+─ReflectiveTactics.solve_side_conditions 0.0% 86.9% 1 3.456s
+─ReflectiveTactics.do_reify ------------ 0.0% 56.9% 1 2.264s
+─Reify.Reify_rhs_gen ------------------- 1.8% 56.2% 1 2.236s
+─Reify.do_reify_abs_goal --------------- 36.1% 36.5% 2 1.452s
+─Reify.do_reifyf_goal ------------------ 34.8% 35.1% 29 1.396s
+─ReflectiveTactics.solve_post_reified_si 0.6% 30.0% 1 1.192s
+─UnifyAbstractReflexivity.unify_transfor 17.7% 21.7% 7 0.240s
+─Glue.refine_to_reflective_glue' ------- 0.0% 11.1% 1 0.440s
+─eexact -------------------------------- 10.9% 10.9% 31 0.024s
+─ReflectiveTactics.unify_abstract_cbv_in 5.2% 7.3% 1 0.292s
+─Glue.zrange_to_reflective ------------- 0.0% 7.1% 1 0.284s
+─prove_interp_compile_correct ---------- 0.0% 5.7% 1 0.228s
+─Glue.zrange_to_reflective_goal -------- 4.3% 5.5% 1 0.220s
+─unify (constr) (constr) --------------- 5.3% 5.3% 6 0.084s
+─rewrite ?EtaInterp.InterpExprEta ------ 5.2% 5.2% 1 0.208s
+─rewrite H ----------------------------- 3.5% 3.5% 1 0.140s
+─tac ----------------------------------- 1.9% 2.6% 2 0.104s
+─reflexivity --------------------------- 2.2% 2.2% 7 0.028s
+─Reify.transitivity_tt ----------------- 0.0% 2.2% 2 0.056s
+─transitivity -------------------------- 2.0% 2.0% 5 0.048s
+─Glue.split_BoundedWordToZ ------------- 0.1% 2.0% 1 0.080s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 99.0% 1 3.936s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 87.9% 1 3.496s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 86.9% 1 3.456s
+ │ ├─ReflectiveTactics.do_reify -------- 0.0% 56.9% 1 2.264s
+ │ │└Reify.Reify_rhs_gen --------------- 1.8% 56.2% 1 2.236s
+ │ │ ├─Reify.do_reify_abs_goal --------- 36.1% 36.5% 2 1.452s
+ │ │ │└Reify.do_reifyf_goal ------------ 34.8% 35.1% 29 1.396s
+ │ │ │└eexact -------------------------- 10.1% 10.1% 29 0.024s
+ │ │ ├─prove_interp_compile_correct ---- 0.0% 5.7% 1 0.228s
+ │ │ │└rewrite ?EtaInterp.InterpExprEta 5.2% 5.2% 1 0.208s
+ │ │ ├─rewrite H ----------------------- 3.5% 3.5% 1 0.140s
+ │ │ ├─tac ----------------------------- 1.9% 2.6% 1 0.104s
+ │ │ └─Reify.transitivity_tt ----------- 0.0% 2.2% 2 0.056s
+ │ │ └transitivity -------------------- 2.0% 2.0% 4 0.048s
+ │ └─ReflectiveTactics.solve_post_reifie 0.6% 30.0% 1 1.192s
+ │ ├─UnifyAbstractReflexivity.unify_tr 17.7% 21.7% 7 0.240s
+ │ │└unify (constr) (constr) --------- 3.2% 3.2% 5 0.048s
+ │ └─ReflectiveTactics.unify_abstract_ 5.2% 7.3% 1 0.292s
+ │ └unify (constr) (constr) --------- 2.1% 2.1% 1 0.084s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 11.1% 1 0.440s
+ ├─Glue.zrange_to_reflective --------- 0.0% 7.1% 1 0.284s
+ │└Glue.zrange_to_reflective_goal ---- 4.3% 5.5% 1 0.220s
+ └─Glue.split_BoundedWordToZ --------- 0.1% 2.0% 1 0.080s
+
+src/Specific/X25519/C64/fecarry (real: 27.11, user: 24.99, sys: 0.21, mem: 786052 ko)
+COQC src/Specific/solinas32_2e255m765_12limbs/Synthesis.v
+src/Specific/solinas32_2e255m765_12limbs/Synthesis (real: 40.13, user: 36.92, sys: 0.26, mem: 728464 ko)
+COQC src/Specific/solinas32_2e255m765_13limbs/Synthesis.v
+src/Specific/solinas32_2e255m765_13limbs/Synthesis (real: 49.44, user: 45.75, sys: 0.18, mem: 744240 ko)
+COQC src/Specific/X25519/C64/femul.v
+Finished transaction in 8.415 secs (7.664u,0.015s) (successful)
+total time: 7.616s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 94.8% 1 7.220s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 85.0% 1 6.476s
+─ReflectiveTactics.solve_side_conditions 0.0% 84.2% 1 6.416s
+─ReflectiveTactics.do_reify ------------ 0.0% 50.3% 1 3.832s
+─Reify.Reify_rhs_gen ------------------- 1.8% 49.4% 1 3.760s
+─ReflectiveTactics.solve_post_reified_si 0.5% 33.9% 1 2.584s
+─Reify.do_reify_abs_goal --------------- 31.1% 31.4% 2 2.392s
+─Reify.do_reifyf_goal ------------------ 30.0% 30.3% 58 1.528s
+─UnifyAbstractReflexivity.unify_transfor 22.1% 27.3% 7 0.600s
+─Glue.refine_to_reflective_glue' ------- 0.0% 9.8% 1 0.744s
+─eexact -------------------------------- 8.2% 8.2% 60 0.024s
+─Glue.zrange_to_reflective ------------- 0.1% 6.8% 1 0.516s
+─unify (constr) (constr) --------------- 5.9% 5.9% 6 0.124s
+─prove_interp_compile_correct ---------- 0.0% 5.8% 1 0.444s
+─ReflectiveTactics.unify_abstract_cbv_in 3.9% 5.7% 1 0.432s
+─rewrite ?EtaInterp.InterpExprEta ------ 5.4% 5.4% 1 0.408s
+─synthesize ---------------------------- 0.0% 5.2% 1 0.396s
+─Glue.zrange_to_reflective_goal -------- 3.0% 5.0% 1 0.384s
+─IntegrationTestTemporaryMiscCommon.do_r 0.1% 4.8% 1 0.364s
+─change G' ----------------------------- 3.9% 3.9% 1 0.300s
+─rewrite H ----------------------------- 3.0% 3.0% 1 0.232s
+─tac ----------------------------------- 1.5% 2.3% 2 0.176s
+─Reify.transitivity_tt ----------------- 0.0% 2.1% 2 0.092s
+─reflexivity --------------------------- 2.0% 2.0% 7 0.052s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 94.8% 1 7.220s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 85.0% 1 6.476s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 84.2% 1 6.416s
+ │ ├─ReflectiveTactics.do_reify -------- 0.0% 50.3% 1 3.832s
+ │ │└Reify.Reify_rhs_gen --------------- 1.8% 49.4% 1 3.760s
+ │ │ ├─Reify.do_reify_abs_goal --------- 31.1% 31.4% 2 2.392s
+ │ │ │└Reify.do_reifyf_goal ------------ 30.0% 30.3% 58 1.528s
+ │ │ │└eexact -------------------------- 7.6% 7.6% 58 0.020s
+ │ │ ├─prove_interp_compile_correct ---- 0.0% 5.8% 1 0.444s
+ │ │ │└rewrite ?EtaInterp.InterpExprEta 5.4% 5.4% 1 0.408s
+ │ │ ├─rewrite H ----------------------- 3.0% 3.0% 1 0.232s
+ │ │ ├─tac ----------------------------- 1.5% 2.3% 1 0.176s
+ │ │ └─Reify.transitivity_tt ----------- 0.0% 2.1% 2 0.092s
+ │ └─ReflectiveTactics.solve_post_reifie 0.5% 33.9% 1 2.584s
+ │ ├─UnifyAbstractReflexivity.unify_tr 22.1% 27.3% 7 0.600s
+ │ │└unify (constr) (constr) --------- 4.3% 4.3% 5 0.096s
+ │ └─ReflectiveTactics.unify_abstract_ 3.9% 5.7% 1 0.432s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 9.8% 1 0.744s
+ └Glue.zrange_to_reflective ----------- 0.1% 6.8% 1 0.516s
+ └Glue.zrange_to_reflective_goal ------ 3.0% 5.0% 1 0.384s
+─synthesize ---------------------------- 0.0% 5.2% 1 0.396s
+└IntegrationTestTemporaryMiscCommon.do_r 0.1% 4.8% 1 0.364s
+└change G' ----------------------------- 3.9% 3.9% 1 0.300s
+
+Finished transaction in 14.616 secs (13.528u,0.008s) (successful)
+Closed under the global context
+total time: 7.616s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 94.8% 1 7.220s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 85.0% 1 6.476s
+─ReflectiveTactics.solve_side_conditions 0.0% 84.2% 1 6.416s
+─ReflectiveTactics.do_reify ------------ 0.0% 50.3% 1 3.832s
+─Reify.Reify_rhs_gen ------------------- 1.8% 49.4% 1 3.760s
+─ReflectiveTactics.solve_post_reified_si 0.5% 33.9% 1 2.584s
+─Reify.do_reify_abs_goal --------------- 31.1% 31.4% 2 2.392s
+─Reify.do_reifyf_goal ------------------ 30.0% 30.3% 58 1.528s
+─UnifyAbstractReflexivity.unify_transfor 22.1% 27.3% 7 0.600s
+─Glue.refine_to_reflective_glue' ------- 0.0% 9.8% 1 0.744s
+─eexact -------------------------------- 8.2% 8.2% 60 0.024s
+─Glue.zrange_to_reflective ------------- 0.1% 6.8% 1 0.516s
+─unify (constr) (constr) --------------- 5.9% 5.9% 6 0.124s
+─prove_interp_compile_correct ---------- 0.0% 5.8% 1 0.444s
+─ReflectiveTactics.unify_abstract_cbv_in 3.9% 5.7% 1 0.432s
+─rewrite ?EtaInterp.InterpExprEta ------ 5.4% 5.4% 1 0.408s
+─synthesize ---------------------------- 0.0% 5.2% 1 0.396s
+─Glue.zrange_to_reflective_goal -------- 3.0% 5.0% 1 0.384s
+─IntegrationTestTemporaryMiscCommon.do_r 0.1% 4.8% 1 0.364s
+─change G' ----------------------------- 3.9% 3.9% 1 0.300s
+─rewrite H ----------------------------- 3.0% 3.0% 1 0.232s
+─tac ----------------------------------- 1.5% 2.3% 2 0.176s
+─Reify.transitivity_tt ----------------- 0.0% 2.1% 2 0.092s
+─reflexivity --------------------------- 2.0% 2.0% 7 0.052s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 94.8% 1 7.220s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 85.0% 1 6.476s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 84.2% 1 6.416s
+ │ ├─ReflectiveTactics.do_reify -------- 0.0% 50.3% 1 3.832s
+ │ │└Reify.Reify_rhs_gen --------------- 1.8% 49.4% 1 3.760s
+ │ │ ├─Reify.do_reify_abs_goal --------- 31.1% 31.4% 2 2.392s
+ │ │ │└Reify.do_reifyf_goal ------------ 30.0% 30.3% 58 1.528s
+ │ │ │└eexact -------------------------- 7.6% 7.6% 58 0.020s
+ │ │ ├─prove_interp_compile_correct ---- 0.0% 5.8% 1 0.444s
+ │ │ │└rewrite ?EtaInterp.InterpExprEta 5.4% 5.4% 1 0.408s
+ │ │ ├─rewrite H ----------------------- 3.0% 3.0% 1 0.232s
+ │ │ ├─tac ----------------------------- 1.5% 2.3% 1 0.176s
+ │ │ └─Reify.transitivity_tt ----------- 0.0% 2.1% 2 0.092s
+ │ └─ReflectiveTactics.solve_post_reifie 0.5% 33.9% 1 2.584s
+ │ ├─UnifyAbstractReflexivity.unify_tr 22.1% 27.3% 7 0.600s
+ │ │└unify (constr) (constr) --------- 4.3% 4.3% 5 0.096s
+ │ └─ReflectiveTactics.unify_abstract_ 3.9% 5.7% 1 0.432s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 9.8% 1 0.744s
+ └Glue.zrange_to_reflective ----------- 0.1% 6.8% 1 0.516s
+ └Glue.zrange_to_reflective_goal ------ 3.0% 5.0% 1 0.384s
+─synthesize ---------------------------- 0.0% 5.2% 1 0.396s
+└IntegrationTestTemporaryMiscCommon.do_r 0.1% 4.8% 1 0.364s
+└change G' ----------------------------- 3.9% 3.9% 1 0.300s
+
+src/Specific/X25519/C64/femul (real: 39.72, user: 36.32, sys: 0.26, mem: 825448 ko)
+COQC src/Specific/X25519/C64/feaddDisplay > src/Specific/X25519/C64/feaddDisplay.log
+COQC src/Specific/X25519/C64/fecarryDisplay > src/Specific/X25519/C64/fecarryDisplay.log
+COQC src/Specific/X25519/C64/fesub.v
+Finished transaction in 3.513 secs (3.211u,0.s) (successful)
+total time: 3.164s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 97.6% 1 3.088s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 74.1% 1 2.344s
+─ReflectiveTactics.solve_side_conditions 0.0% 72.9% 1 2.308s
+─ReflectiveTactics.do_reify ------------ 0.0% 38.6% 1 1.220s
+─Reify.Reify_rhs_gen ------------------- 1.5% 37.2% 1 1.176s
+─ReflectiveTactics.solve_post_reified_si 0.9% 34.4% 1 1.088s
+─UnifyAbstractReflexivity.unify_transfor 19.2% 23.9% 7 0.204s
+─Glue.refine_to_reflective_glue' ------- 0.0% 23.5% 1 0.744s
+─Reify.do_reify_abs_goal --------------- 19.2% 19.5% 2 0.616s
+─Reify.do_reifyf_goal ------------------ 18.0% 18.3% 16 0.580s
+─Glue.zrange_to_reflective ------------- 0.1% 15.4% 1 0.488s
+─Glue.zrange_to_reflective_goal -------- 6.8% 11.5% 1 0.364s
+─ReflectiveTactics.unify_abstract_cbv_in 6.2% 9.0% 1 0.284s
+─unify (constr) (constr) --------------- 5.9% 5.9% 6 0.080s
+─Glue.pattern_sig_sig_assoc ------------ 0.0% 4.6% 1 0.144s
+─eexact -------------------------------- 4.4% 4.4% 18 0.012s
+─Glue.pattern_proj1_sig_in_sig --------- 1.4% 4.3% 1 0.136s
+─prove_interp_compile_correct ---------- 0.0% 3.9% 1 0.124s
+─rewrite H ----------------------------- 3.8% 3.8% 1 0.120s
+─assert (H : is_bounded_by' bounds (map' 3.8% 3.8% 2 0.064s
+─rewrite ?EtaInterp.InterpExprEta ------ 3.5% 3.5% 1 0.112s
+─pose proof (pf : Interpretation.Bo 2.9% 2.9% 1 0.092s
+─Glue.split_BoundedWordToZ ------------- 0.1% 2.8% 1 0.088s
+─tac ----------------------------------- 1.9% 2.5% 2 0.080s
+─reflexivity --------------------------- 2.4% 2.4% 7 0.028s
+─synthesize ---------------------------- 0.0% 2.4% 1 0.076s
+─destruct_sig -------------------------- 0.0% 2.4% 4 0.040s
+─destruct x ---------------------------- 2.4% 2.4% 4 0.032s
+─clearbody (ne_var_list) --------------- 2.3% 2.3% 4 0.060s
+─Reify.transitivity_tt ----------------- 0.1% 2.3% 2 0.036s
+─transitivity -------------------------- 2.1% 2.1% 5 0.032s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 97.6% 1 3.088s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 74.1% 1 2.344s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 72.9% 1 2.308s
+ │ ├─ReflectiveTactics.do_reify -------- 0.0% 38.6% 1 1.220s
+ │ │└Reify.Reify_rhs_gen --------------- 1.5% 37.2% 1 1.176s
+ │ │ ├─Reify.do_reify_abs_goal --------- 19.2% 19.5% 2 0.616s
+ │ │ │└Reify.do_reifyf_goal ------------ 18.0% 18.3% 16 0.580s
+ │ │ │└eexact -------------------------- 3.9% 3.9% 16 0.012s
+ │ │ ├─prove_interp_compile_correct ---- 0.0% 3.9% 1 0.124s
+ │ │ │└rewrite ?EtaInterp.InterpExprEta 3.5% 3.5% 1 0.112s
+ │ │ ├─rewrite H ----------------------- 3.8% 3.8% 1 0.120s
+ │ │ ├─tac ----------------------------- 1.9% 2.5% 1 0.080s
+ │ │ └─Reify.transitivity_tt ----------- 0.1% 2.3% 2 0.036s
+ │ │ └transitivity -------------------- 2.0% 2.0% 4 0.032s
+ │ └─ReflectiveTactics.solve_post_reifie 0.9% 34.4% 1 1.088s
+ │ ├─UnifyAbstractReflexivity.unify_tr 19.2% 23.9% 7 0.204s
+ │ │└unify (constr) (constr) --------- 3.4% 3.4% 5 0.036s
+ │ └─ReflectiveTactics.unify_abstract_ 6.2% 9.0% 1 0.284s
+ │ └unify (constr) (constr) --------- 2.5% 2.5% 1 0.080s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 23.5% 1 0.744s
+ ├─Glue.zrange_to_reflective --------- 0.1% 15.4% 1 0.488s
+ │ ├─Glue.zrange_to_reflective_goal -- 6.8% 11.5% 1 0.364s
+ │ │└pose proof (pf : Interpretat 2.9% 2.9% 1 0.092s
+ │ └─assert (H : is_bounded_by' bounds 3.8% 3.8% 2 0.064s
+ ├─Glue.pattern_sig_sig_assoc -------- 0.0% 4.6% 1 0.144s
+ │└Glue.pattern_proj1_sig_in_sig ----- 1.4% 4.3% 1 0.136s
+ └─Glue.split_BoundedWordToZ --------- 0.1% 2.8% 1 0.088s
+ └destruct_sig ---------------------- 0.0% 2.4% 4 0.040s
+─synthesize ---------------------------- 0.0% 2.4% 1 0.076s
+
+Finished transaction in 6.12 secs (5.64u,0.008s) (successful)
+Closed under the global context
+total time: 3.164s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 97.6% 1 3.088s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 74.1% 1 2.344s
+─ReflectiveTactics.solve_side_conditions 0.0% 72.9% 1 2.308s
+─ReflectiveTactics.do_reify ------------ 0.0% 38.6% 1 1.220s
+─Reify.Reify_rhs_gen ------------------- 1.5% 37.2% 1 1.176s
+─ReflectiveTactics.solve_post_reified_si 0.9% 34.4% 1 1.088s
+─UnifyAbstractReflexivity.unify_transfor 19.2% 23.9% 7 0.204s
+─Glue.refine_to_reflective_glue' ------- 0.0% 23.5% 1 0.744s
+─Reify.do_reify_abs_goal --------------- 19.2% 19.5% 2 0.616s
+─Reify.do_reifyf_goal ------------------ 18.0% 18.3% 16 0.580s
+─Glue.zrange_to_reflective ------------- 0.1% 15.4% 1 0.488s
+─Glue.zrange_to_reflective_goal -------- 6.8% 11.5% 1 0.364s
+─ReflectiveTactics.unify_abstract_cbv_in 6.2% 9.0% 1 0.284s
+─unify (constr) (constr) --------------- 5.9% 5.9% 6 0.080s
+─Glue.pattern_sig_sig_assoc ------------ 0.0% 4.6% 1 0.144s
+─eexact -------------------------------- 4.4% 4.4% 18 0.012s
+─Glue.pattern_proj1_sig_in_sig --------- 1.4% 4.3% 1 0.136s
+─prove_interp_compile_correct ---------- 0.0% 3.9% 1 0.124s
+─rewrite H ----------------------------- 3.8% 3.8% 1 0.120s
+─assert (H : is_bounded_by' bounds (map' 3.8% 3.8% 2 0.064s
+─rewrite ?EtaInterp.InterpExprEta ------ 3.5% 3.5% 1 0.112s
+─pose proof (pf : Interpretation.Bo 2.9% 2.9% 1 0.092s
+─Glue.split_BoundedWordToZ ------------- 0.1% 2.8% 1 0.088s
+─tac ----------------------------------- 1.9% 2.5% 2 0.080s
+─reflexivity --------------------------- 2.4% 2.4% 7 0.028s
+─synthesize ---------------------------- 0.0% 2.4% 1 0.076s
+─destruct_sig -------------------------- 0.0% 2.4% 4 0.040s
+─destruct x ---------------------------- 2.4% 2.4% 4 0.032s
+─clearbody (ne_var_list) --------------- 2.3% 2.3% 4 0.060s
+─Reify.transitivity_tt ----------------- 0.1% 2.3% 2 0.036s
+─transitivity -------------------------- 2.1% 2.1% 5 0.032s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 97.6% 1 3.088s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 74.1% 1 2.344s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 72.9% 1 2.308s
+ │ ├─ReflectiveTactics.do_reify -------- 0.0% 38.6% 1 1.220s
+ │ │└Reify.Reify_rhs_gen --------------- 1.5% 37.2% 1 1.176s
+ │ │ ├─Reify.do_reify_abs_goal --------- 19.2% 19.5% 2 0.616s
+ │ │ │└Reify.do_reifyf_goal ------------ 18.0% 18.3% 16 0.580s
+ │ │ │└eexact -------------------------- 3.9% 3.9% 16 0.012s
+ │ │ ├─prove_interp_compile_correct ---- 0.0% 3.9% 1 0.124s
+ │ │ │└rewrite ?EtaInterp.InterpExprEta 3.5% 3.5% 1 0.112s
+ │ │ ├─rewrite H ----------------------- 3.8% 3.8% 1 0.120s
+ │ │ ├─tac ----------------------------- 1.9% 2.5% 1 0.080s
+ │ │ └─Reify.transitivity_tt ----------- 0.1% 2.3% 2 0.036s
+ │ │ └transitivity -------------------- 2.0% 2.0% 4 0.032s
+ │ └─ReflectiveTactics.solve_post_reifie 0.9% 34.4% 1 1.088s
+ │ ├─UnifyAbstractReflexivity.unify_tr 19.2% 23.9% 7 0.204s
+ │ │└unify (constr) (constr) --------- 3.4% 3.4% 5 0.036s
+ │ └─ReflectiveTactics.unify_abstract_ 6.2% 9.0% 1 0.284s
+ │ └unify (constr) (constr) --------- 2.5% 2.5% 1 0.080s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 23.5% 1 0.744s
+ ├─Glue.zrange_to_reflective --------- 0.1% 15.4% 1 0.488s
+ │ ├─Glue.zrange_to_reflective_goal -- 6.8% 11.5% 1 0.364s
+ │ │└pose proof (pf : Interpretat 2.9% 2.9% 1 0.092s
+ │ └─assert (H : is_bounded_by' bounds 3.8% 3.8% 2 0.064s
+ ├─Glue.pattern_sig_sig_assoc -------- 0.0% 4.6% 1 0.144s
+ │└Glue.pattern_proj1_sig_in_sig ----- 1.4% 4.3% 1 0.136s
+ └─Glue.split_BoundedWordToZ --------- 0.1% 2.8% 1 0.088s
+ └destruct_sig ---------------------- 0.0% 2.4% 4 0.040s
+─synthesize ---------------------------- 0.0% 2.4% 1 0.076s
+
+src/Specific/X25519/C64/fesub (real: 24.71, user: 22.65, sys: 0.24, mem: 778792 ko)
+COQC src/Specific/X25519/C64/fesquare.v
+Finished transaction in 6.132 secs (5.516u,0.012s) (successful)
+total time: 5.480s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize ---------------------------- -0.0% 100.0% 1 5.480s
+─Pipeline.refine_reflectively_gen ------ 0.0% 95.7% 1 5.244s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 88.6% 1 4.856s
+─ReflectiveTactics.solve_side_conditions 0.0% 87.7% 1 4.804s
+─ReflectiveTactics.do_reify ------------ 0.0% 53.3% 1 2.920s
+─Reify.Reify_rhs_gen ------------------- 2.0% 52.5% 1 2.876s
+─ReflectiveTactics.solve_post_reified_si 0.6% 34.4% 1 1.884s
+─Reify.do_reify_abs_goal --------------- 33.2% 33.6% 2 1.844s
+─Reify.do_reifyf_goal ------------------ 31.5% 32.0% 47 1.392s
+─UnifyAbstractReflexivity.unify_transfor 21.9% 26.6% 7 0.400s
+─eexact -------------------------------- 10.0% 10.0% 49 0.028s
+─Glue.refine_to_reflective_glue' ------- 0.0% 7.1% 1 0.388s
+─ReflectiveTactics.unify_abstract_cbv_in 5.0% 6.9% 1 0.380s
+─unify (constr) (constr) --------------- 5.8% 5.8% 6 0.104s
+─prove_interp_compile_correct ---------- 0.0% 5.8% 1 0.316s
+─rewrite ?EtaInterp.InterpExprEta ------ 5.3% 5.3% 1 0.288s
+─Glue.zrange_to_reflective ------------- 0.1% 5.1% 1 0.280s
+─IntegrationTestTemporaryMiscCommon.do_r 0.1% 4.0% 1 0.220s
+─Glue.zrange_to_reflective_goal -------- 3.1% 3.9% 1 0.212s
+─change G' ----------------------------- 3.4% 3.4% 1 0.184s
+─tac ----------------------------------- 2.0% 2.8% 2 0.156s
+─rewrite H ----------------------------- 2.8% 2.8% 1 0.156s
+─reflexivity --------------------------- 2.8% 2.8% 7 0.064s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize ---------------------------- -0.0% 100.0% 1 5.480s
+ ├─Pipeline.refine_reflectively_gen ---- 0.0% 95.7% 1 5.244s
+ │ ├─ReflectiveTactics.do_reflective_pip 0.0% 88.6% 1 4.856s
+ │ │└ReflectiveTactics.solve_side_condit 0.0% 87.7% 1 4.804s
+ │ │ ├─ReflectiveTactics.do_reify ------ 0.0% 53.3% 1 2.920s
+ │ │ │└Reify.Reify_rhs_gen ------------- 2.0% 52.5% 1 2.876s
+ │ │ │ ├─Reify.do_reify_abs_goal ------- 33.2% 33.6% 2 1.844s
+ │ │ │ │└Reify.do_reifyf_goal ---------- 31.5% 32.0% 47 1.392s
+ │ │ │ │└eexact ------------------------ 9.1% 9.1% 47 0.024s
+ │ │ │ ├─prove_interp_compile_correct -- 0.0% 5.8% 1 0.316s
+ │ │ │ │└rewrite ?EtaInterp.InterpExprEt 5.3% 5.3% 1 0.288s
+ │ │ │ ├─tac --------------------------- 2.0% 2.8% 1 0.156s
+ │ │ │ └─rewrite H --------------------- 2.8% 2.8% 1 0.156s
+ │ │ └─ReflectiveTactics.solve_post_reif 0.6% 34.4% 1 1.884s
+ │ │ ├─UnifyAbstractReflexivity.unify_ 21.9% 26.6% 7 0.400s
+ │ │ │└unify (constr) (constr) ------- 3.9% 3.9% 5 0.072s
+ │ │ └─ReflectiveTactics.unify_abstrac 5.0% 6.9% 1 0.380s
+ │ └─Glue.refine_to_reflective_glue' --- 0.0% 7.1% 1 0.388s
+ │ └Glue.zrange_to_reflective --------- 0.1% 5.1% 1 0.280s
+ │ └Glue.zrange_to_reflective_goal ---- 3.1% 3.9% 1 0.212s
+ └─IntegrationTestTemporaryMiscCommon.do 0.1% 4.0% 1 0.220s
+ └change G' --------------------------- 3.4% 3.4% 1 0.184s
+
+Finished transaction in 10.475 secs (9.728u,0.007s) (successful)
+Closed under the global context
+total time: 5.480s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize ---------------------------- -0.0% 100.0% 1 5.480s
+─Pipeline.refine_reflectively_gen ------ 0.0% 95.7% 1 5.244s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 88.6% 1 4.856s
+─ReflectiveTactics.solve_side_conditions 0.0% 87.7% 1 4.804s
+─ReflectiveTactics.do_reify ------------ 0.0% 53.3% 1 2.920s
+─Reify.Reify_rhs_gen ------------------- 2.0% 52.5% 1 2.876s
+─ReflectiveTactics.solve_post_reified_si 0.6% 34.4% 1 1.884s
+─Reify.do_reify_abs_goal --------------- 33.2% 33.6% 2 1.844s
+─Reify.do_reifyf_goal ------------------ 31.5% 32.0% 47 1.392s
+─UnifyAbstractReflexivity.unify_transfor 21.9% 26.6% 7 0.400s
+─eexact -------------------------------- 10.0% 10.0% 49 0.028s
+─Glue.refine_to_reflective_glue' ------- 0.0% 7.1% 1 0.388s
+─ReflectiveTactics.unify_abstract_cbv_in 5.0% 6.9% 1 0.380s
+─unify (constr) (constr) --------------- 5.8% 5.8% 6 0.104s
+─prove_interp_compile_correct ---------- 0.0% 5.8% 1 0.316s
+─rewrite ?EtaInterp.InterpExprEta ------ 5.3% 5.3% 1 0.288s
+─Glue.zrange_to_reflective ------------- 0.1% 5.1% 1 0.280s
+─IntegrationTestTemporaryMiscCommon.do_r 0.1% 4.0% 1 0.220s
+─Glue.zrange_to_reflective_goal -------- 3.1% 3.9% 1 0.212s
+─change G' ----------------------------- 3.4% 3.4% 1 0.184s
+─tac ----------------------------------- 2.0% 2.8% 2 0.156s
+─rewrite H ----------------------------- 2.8% 2.8% 1 0.156s
+─reflexivity --------------------------- 2.8% 2.8% 7 0.064s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize ---------------------------- -0.0% 100.0% 1 5.480s
+ ├─Pipeline.refine_reflectively_gen ---- 0.0% 95.7% 1 5.244s
+ │ ├─ReflectiveTactics.do_reflective_pip 0.0% 88.6% 1 4.856s
+ │ │└ReflectiveTactics.solve_side_condit 0.0% 87.7% 1 4.804s
+ │ │ ├─ReflectiveTactics.do_reify ------ 0.0% 53.3% 1 2.920s
+ │ │ │└Reify.Reify_rhs_gen ------------- 2.0% 52.5% 1 2.876s
+ │ │ │ ├─Reify.do_reify_abs_goal ------- 33.2% 33.6% 2 1.844s
+ │ │ │ │└Reify.do_reifyf_goal ---------- 31.5% 32.0% 47 1.392s
+ │ │ │ │└eexact ------------------------ 9.1% 9.1% 47 0.024s
+ │ │ │ ├─prove_interp_compile_correct -- 0.0% 5.8% 1 0.316s
+ │ │ │ │└rewrite ?EtaInterp.InterpExprEt 5.3% 5.3% 1 0.288s
+ │ │ │ ├─tac --------------------------- 2.0% 2.8% 1 0.156s
+ │ │ │ └─rewrite H --------------------- 2.8% 2.8% 1 0.156s
+ │ │ └─ReflectiveTactics.solve_post_reif 0.6% 34.4% 1 1.884s
+ │ │ ├─UnifyAbstractReflexivity.unify_ 21.9% 26.6% 7 0.400s
+ │ │ │└unify (constr) (constr) ------- 3.9% 3.9% 5 0.072s
+ │ │ └─ReflectiveTactics.unify_abstrac 5.0% 6.9% 1 0.380s
+ │ └─Glue.refine_to_reflective_glue' --- 0.0% 7.1% 1 0.388s
+ │ └Glue.zrange_to_reflective --------- 0.1% 5.1% 1 0.280s
+ │ └Glue.zrange_to_reflective_goal ---- 3.1% 3.9% 1 0.212s
+ └─IntegrationTestTemporaryMiscCommon.do 0.1% 4.0% 1 0.220s
+ └change G' --------------------------- 3.4% 3.4% 1 0.184s
+
+src/Specific/X25519/C64/fesquare (real: 33.08, user: 30.13, sys: 0.24, mem: 799620 ko)
+COQC src/Specific/X25519/C64/femulDisplay > src/Specific/X25519/C64/femulDisplay.log
+COQC src/Specific/X25519/C64/freeze.v
+Finished transaction in 7.307 secs (6.763u,0.011s) (successful)
+total time: 6.732s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_freeze --------------------- 0.0% 100.0% 1 6.732s
+─Pipeline.refine_reflectively_gen ------ 0.0% 99.3% 1 6.684s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 92.8% 1 6.248s
+─ReflectiveTactics.solve_side_conditions 0.0% 92.0% 1 6.192s
+─ReflectiveTactics.do_reify ------------ -0.0% 60.3% 1 4.060s
+─Reify.Reify_rhs_gen ------------------- 1.5% 59.6% 1 4.012s
+─Reify.do_reify_abs_goal --------------- 42.4% 42.7% 2 2.876s
+─Reify.do_reifyf_goal ------------------ 41.3% 41.7% 129 2.804s
+─ReflectiveTactics.solve_post_reified_si 0.6% 31.7% 1 2.132s
+─UnifyAbstractReflexivity.unify_transfor 21.7% 25.8% 7 0.424s
+─eexact -------------------------------- 13.7% 13.7% 131 0.036s
+─Glue.refine_to_reflective_glue' ------- 0.0% 6.5% 1 0.436s
+─prove_interp_compile_correct ---------- 0.0% 5.1% 1 0.344s
+─ReflectiveTactics.unify_abstract_cbv_in 3.4% 5.0% 1 0.336s
+─rewrite ?EtaInterp.InterpExprEta ------ 4.7% 4.7% 1 0.316s
+─unify (constr) (constr) --------------- 4.6% 4.6% 6 0.100s
+─Glue.zrange_to_reflective ------------- 0.0% 4.2% 1 0.280s
+─Glue.zrange_to_reflective_goal -------- 2.4% 3.3% 1 0.220s
+─Reify.transitivity_tt ----------------- 0.1% 2.6% 2 0.116s
+─rewrite H ----------------------------- 2.6% 2.6% 1 0.172s
+─tac ----------------------------------- 1.5% 2.3% 2 0.156s
+─reflexivity --------------------------- 2.3% 2.3% 7 0.052s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_freeze --------------------- 0.0% 100.0% 1 6.732s
+└Pipeline.refine_reflectively_gen ------ 0.0% 99.3% 1 6.684s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 92.8% 1 6.248s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 92.0% 1 6.192s
+ │ ├─ReflectiveTactics.do_reify -------- -0.0% 60.3% 1 4.060s
+ │ │└Reify.Reify_rhs_gen --------------- 1.5% 59.6% 1 4.012s
+ │ │ ├─Reify.do_reify_abs_goal --------- 42.4% 42.7% 2 2.876s
+ │ │ │└Reify.do_reifyf_goal ------------ 41.3% 41.7% 129 2.804s
+ │ │ │└eexact -------------------------- 13.0% 13.0% 129 0.036s
+ │ │ ├─prove_interp_compile_correct ---- 0.0% 5.1% 1 0.344s
+ │ │ │└rewrite ?EtaInterp.InterpExprEta 4.7% 4.7% 1 0.316s
+ │ │ ├─Reify.transitivity_tt ----------- 0.1% 2.6% 2 0.116s
+ │ │ ├─rewrite H ----------------------- 2.6% 2.6% 1 0.172s
+ │ │ └─tac ----------------------------- 1.5% 2.3% 1 0.156s
+ │ └─ReflectiveTactics.solve_post_reifie 0.6% 31.7% 1 2.132s
+ │ ├─UnifyAbstractReflexivity.unify_tr 21.7% 25.8% 7 0.424s
+ │ │└unify (constr) (constr) --------- 3.1% 3.1% 5 0.084s
+ │ └─ReflectiveTactics.unify_abstract_ 3.4% 5.0% 1 0.336s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 6.5% 1 0.436s
+ └Glue.zrange_to_reflective ----------- 0.0% 4.2% 1 0.280s
+ └Glue.zrange_to_reflective_goal ------ 2.4% 3.3% 1 0.220s
+
+Finished transaction in 10.495 secs (9.756u,0.s) (successful)
+Closed under the global context
+total time: 6.732s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_freeze --------------------- 0.0% 100.0% 1 6.732s
+─Pipeline.refine_reflectively_gen ------ 0.0% 99.3% 1 6.684s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 92.8% 1 6.248s
+─ReflectiveTactics.solve_side_conditions 0.0% 92.0% 1 6.192s
+─ReflectiveTactics.do_reify ------------ -0.0% 60.3% 1 4.060s
+─Reify.Reify_rhs_gen ------------------- 1.5% 59.6% 1 4.012s
+─Reify.do_reify_abs_goal --------------- 42.4% 42.7% 2 2.876s
+─Reify.do_reifyf_goal ------------------ 41.3% 41.7% 129 2.804s
+─ReflectiveTactics.solve_post_reified_si 0.6% 31.7% 1 2.132s
+─UnifyAbstractReflexivity.unify_transfor 21.7% 25.8% 7 0.424s
+─eexact -------------------------------- 13.7% 13.7% 131 0.036s
+─Glue.refine_to_reflective_glue' ------- 0.0% 6.5% 1 0.436s
+─prove_interp_compile_correct ---------- 0.0% 5.1% 1 0.344s
+─ReflectiveTactics.unify_abstract_cbv_in 3.4% 5.0% 1 0.336s
+─rewrite ?EtaInterp.InterpExprEta ------ 4.7% 4.7% 1 0.316s
+─unify (constr) (constr) --------------- 4.6% 4.6% 6 0.100s
+─Glue.zrange_to_reflective ------------- 0.0% 4.2% 1 0.280s
+─Glue.zrange_to_reflective_goal -------- 2.4% 3.3% 1 0.220s
+─Reify.transitivity_tt ----------------- 0.1% 2.6% 2 0.116s
+─rewrite H ----------------------------- 2.6% 2.6% 1 0.172s
+─tac ----------------------------------- 1.5% 2.3% 2 0.156s
+─reflexivity --------------------------- 2.3% 2.3% 7 0.052s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_freeze --------------------- 0.0% 100.0% 1 6.732s
+└Pipeline.refine_reflectively_gen ------ 0.0% 99.3% 1 6.684s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 92.8% 1 6.248s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 92.0% 1 6.192s
+ │ ├─ReflectiveTactics.do_reify -------- -0.0% 60.3% 1 4.060s
+ │ │└Reify.Reify_rhs_gen --------------- 1.5% 59.6% 1 4.012s
+ │ │ ├─Reify.do_reify_abs_goal --------- 42.4% 42.7% 2 2.876s
+ │ │ │└Reify.do_reifyf_goal ------------ 41.3% 41.7% 129 2.804s
+ │ │ │└eexact -------------------------- 13.0% 13.0% 129 0.036s
+ │ │ ├─prove_interp_compile_correct ---- 0.0% 5.1% 1 0.344s
+ │ │ │└rewrite ?EtaInterp.InterpExprEta 4.7% 4.7% 1 0.316s
+ │ │ ├─Reify.transitivity_tt ----------- 0.1% 2.6% 2 0.116s
+ │ │ ├─rewrite H ----------------------- 2.6% 2.6% 1 0.172s
+ │ │ └─tac ----------------------------- 1.5% 2.3% 1 0.156s
+ │ └─ReflectiveTactics.solve_post_reifie 0.6% 31.7% 1 2.132s
+ │ ├─UnifyAbstractReflexivity.unify_tr 21.7% 25.8% 7 0.424s
+ │ │└unify (constr) (constr) --------- 3.1% 3.1% 5 0.084s
+ │ └─ReflectiveTactics.unify_abstract_ 3.4% 5.0% 1 0.336s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 6.5% 1 0.436s
+ └Glue.zrange_to_reflective ----------- 0.0% 4.2% 1 0.280s
+ └Glue.zrange_to_reflective_goal ------ 2.4% 3.3% 1 0.220s
+
+src/Specific/X25519/C64/freeze (real: 34.35, user: 31.50, sys: 0.24, mem: 828104 ko)
+COQC src/Specific/NISTP256/AMD64/feadd.v
+Finished transaction in 8.784 secs (8.176u,0.011s) (successful)
+total time: 8.140s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 52.4% 1 4.268s
+─synthesize_montgomery ----------------- 0.0% 47.6% 1 3.872s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 43.8% 1 3.568s
+─ReflectiveTactics.solve_side_conditions 0.0% 43.2% 1 3.520s
+─IntegrationTestTemporaryMiscCommon.fact 1.4% 23.6% 1 1.924s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 22.1% 1 1.796s
+─ReflectiveTactics.do_reify ------------ 0.1% 21.7% 1 1.768s
+─ReflectiveTactics.solve_post_reified_si 0.6% 21.5% 1 1.752s
+─Reify.Reify_rhs_gen ------------------- 1.0% 20.9% 1 1.704s
+─op_sig_side_conditions_t -------------- 0.0% 20.0% 1 1.624s
+─DestructHyps.do_all_matches_then ------ 0.0% 20.0% 8 0.244s
+─DestructHyps.do_one_match_then -------- 0.7% 19.9% 44 0.052s
+─do_tac -------------------------------- 0.0% 19.2% 36 0.052s
+─destruct H ---------------------------- 19.2% 19.2% 36 0.052s
+─rewrite <- (lem : lemT) by by_tac ltac: 0.2% 17.3% 1 1.408s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 17.3% 1 1.408s
+─by_tac -------------------------------- 0.0% 17.1% 4 0.504s
+─rewrite <- (ZRange.is_bounded_by_None_r 16.7% 16.7% 8 0.344s
+─UnifyAbstractReflexivity.unify_transfor 13.3% 16.1% 7 0.360s
+─Reify.do_reify_abs_goal --------------- 9.9% 10.1% 2 0.820s
+─Reify.do_reifyf_goal ------------------ 9.1% 9.3% 93 0.748s
+─Glue.refine_to_reflective_glue' ------- 0.0% 8.6% 1 0.700s
+─Glue.zrange_to_reflective ------------- 0.0% 5.3% 1 0.432s
+─IntegrationTestTemporaryMiscCommon.do_s 0.0% 4.8% 1 0.388s
+─<Crypto.Util.Tactics.MoveLetIn.with_uco 0.9% 4.6% 3 0.368s
+─ReflectiveTactics.unify_abstract_cbv_in 3.3% 4.5% 1 0.368s
+─Glue.zrange_to_reflective_goal -------- 2.6% 4.0% 1 0.324s
+─k ------------------------------------- 3.5% 3.6% 1 0.296s
+─unify (constr) (constr) --------------- 3.3% 3.3% 8 0.092s
+─rewrite H ----------------------------- 2.6% 2.6% 2 0.196s
+─eexact -------------------------------- 2.6% 2.6% 95 0.024s
+─prove_interp_compile_correct ---------- 0.0% 2.5% 1 0.204s
+─apply (fun f => MapProjections.proj2 2.4% 2.4% 2 0.120s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 52.4% 1 4.268s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 43.8% 1 3.568s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 43.2% 1 3.520s
+ │ ├─ReflectiveTactics.do_reify -------- 0.1% 21.7% 1 1.768s
+ │ │└Reify.Reify_rhs_gen --------------- 1.0% 20.9% 1 1.704s
+ │ │ ├─Reify.do_reify_abs_goal --------- 9.9% 10.1% 2 0.820s
+ │ │ │└Reify.do_reifyf_goal ------------ 9.1% 9.3% 93 0.748s
+ │ │ │└eexact -------------------------- 2.3% 2.3% 93 0.024s
+ │ │ ├─prove_interp_compile_correct ---- 0.0% 2.5% 1 0.204s
+ │ │ └─rewrite H ----------------------- 2.4% 2.4% 1 0.196s
+ │ └─ReflectiveTactics.solve_post_reifie 0.6% 21.5% 1 1.752s
+ │ ├─UnifyAbstractReflexivity.unify_tr 13.3% 16.1% 7 0.360s
+ │ │└unify (constr) (constr) --------- 2.2% 2.2% 5 0.064s
+ │ └─ReflectiveTactics.unify_abstract_ 3.3% 4.5% 1 0.368s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 8.6% 1 0.700s
+ └Glue.zrange_to_reflective ----------- 0.0% 5.3% 1 0.432s
+ └Glue.zrange_to_reflective_goal ------ 2.6% 4.0% 1 0.324s
+─synthesize_montgomery ----------------- 0.0% 47.6% 1 3.872s
+ ├─IntegrationTestTemporaryMiscCommon.fa 1.4% 23.6% 1 1.924s
+ │└op_sig_side_conditions_t ------------ 0.0% 20.0% 1 1.624s
+ │ ├─DestructHyps.do_all_matches_then -- 0.0% 11.4% 4 0.244s
+ │ │└DestructHyps.do_one_match_then ---- 0.3% 11.4% 24 0.052s
+ │ │└do_tac ---------------------------- 0.0% 11.1% 20 0.052s
+ │ │└destruct H ------------------------ 11.1% 11.1% 20 0.052s
+ │ └─rewrite <- (ZRange.is_bounded_by_No 8.4% 8.4% 4 0.328s
+ └─IntegrationTestTemporaryMiscCommon.do 0.0% 22.1% 1 1.796s
+ ├─IntegrationTestTemporaryMiscCommon. 0.0% 17.3% 1 1.408s
+ │└rewrite <- (lem : lemT) by by_tac l 0.2% 17.3% 1 1.408s
+ │└by_tac ---------------------------- 0.0% 17.1% 4 0.504s
+ │ ├─DestructHyps.do_all_matches_then 0.0% 8.6% 4 0.184s
+ │ │└DestructHyps.do_one_match_then -- 0.3% 8.5% 20 0.052s
+ │ │└do_tac -------------------------- 0.0% 8.2% 16 0.052s
+ │ │└destruct H ---------------------- 8.2% 8.2% 16 0.052s
+ │ └─rewrite <- (ZRange.is_bounded_by_ 8.3% 8.3% 4 0.344s
+ └─IntegrationTestTemporaryMiscCommon. 0.0% 4.8% 1 0.388s
+ └<Crypto.Util.Tactics.MoveLetIn.with 0.9% 4.6% 3 0.368s
+ └k --------------------------------- 3.5% 3.6% 1 0.296s
+
+Finished transaction in 13.363 secs (12.516u,0.008s) (successful)
+Closed under the global context
+total time: 8.140s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 52.4% 1 4.268s
+─synthesize_montgomery ----------------- 0.0% 47.6% 1 3.872s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 43.8% 1 3.568s
+─ReflectiveTactics.solve_side_conditions 0.0% 43.2% 1 3.520s
+─IntegrationTestTemporaryMiscCommon.fact 1.4% 23.6% 1 1.924s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 22.1% 1 1.796s
+─ReflectiveTactics.do_reify ------------ 0.1% 21.7% 1 1.768s
+─ReflectiveTactics.solve_post_reified_si 0.6% 21.5% 1 1.752s
+─Reify.Reify_rhs_gen ------------------- 1.0% 20.9% 1 1.704s
+─op_sig_side_conditions_t -------------- 0.0% 20.0% 1 1.624s
+─DestructHyps.do_all_matches_then ------ 0.0% 20.0% 8 0.244s
+─DestructHyps.do_one_match_then -------- 0.7% 19.9% 44 0.052s
+─do_tac -------------------------------- 0.0% 19.2% 36 0.052s
+─destruct H ---------------------------- 19.2% 19.2% 36 0.052s
+─rewrite <- (lem : lemT) by by_tac ltac: 0.2% 17.3% 1 1.408s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 17.3% 1 1.408s
+─by_tac -------------------------------- 0.0% 17.1% 4 0.504s
+─rewrite <- (ZRange.is_bounded_by_None_r 16.7% 16.7% 8 0.344s
+─UnifyAbstractReflexivity.unify_transfor 13.3% 16.1% 7 0.360s
+─Reify.do_reify_abs_goal --------------- 9.9% 10.1% 2 0.820s
+─Reify.do_reifyf_goal ------------------ 9.1% 9.3% 93 0.748s
+─Glue.refine_to_reflective_glue' ------- 0.0% 8.6% 1 0.700s
+─Glue.zrange_to_reflective ------------- 0.0% 5.3% 1 0.432s
+─IntegrationTestTemporaryMiscCommon.do_s 0.0% 4.8% 1 0.388s
+─<Crypto.Util.Tactics.MoveLetIn.with_uco 0.9% 4.6% 3 0.368s
+─ReflectiveTactics.unify_abstract_cbv_in 3.3% 4.5% 1 0.368s
+─Glue.zrange_to_reflective_goal -------- 2.6% 4.0% 1 0.324s
+─k ------------------------------------- 3.5% 3.6% 1 0.296s
+─unify (constr) (constr) --------------- 3.3% 3.3% 8 0.092s
+─rewrite H ----------------------------- 2.6% 2.6% 2 0.196s
+─eexact -------------------------------- 2.6% 2.6% 95 0.024s
+─prove_interp_compile_correct ---------- 0.0% 2.5% 1 0.204s
+─apply (fun f => MapProjections.proj2 2.4% 2.4% 2 0.120s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 52.4% 1 4.268s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 43.8% 1 3.568s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 43.2% 1 3.520s
+ │ ├─ReflectiveTactics.do_reify -------- 0.1% 21.7% 1 1.768s
+ │ │└Reify.Reify_rhs_gen --------------- 1.0% 20.9% 1 1.704s
+ │ │ ├─Reify.do_reify_abs_goal --------- 9.9% 10.1% 2 0.820s
+ │ │ │└Reify.do_reifyf_goal ------------ 9.1% 9.3% 93 0.748s
+ │ │ │└eexact -------------------------- 2.3% 2.3% 93 0.024s
+ │ │ ├─prove_interp_compile_correct ---- 0.0% 2.5% 1 0.204s
+ │ │ └─rewrite H ----------------------- 2.4% 2.4% 1 0.196s
+ │ └─ReflectiveTactics.solve_post_reifie 0.6% 21.5% 1 1.752s
+ │ ├─UnifyAbstractReflexivity.unify_tr 13.3% 16.1% 7 0.360s
+ │ │└unify (constr) (constr) --------- 2.2% 2.2% 5 0.064s
+ │ └─ReflectiveTactics.unify_abstract_ 3.3% 4.5% 1 0.368s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 8.6% 1 0.700s
+ └Glue.zrange_to_reflective ----------- 0.0% 5.3% 1 0.432s
+ └Glue.zrange_to_reflective_goal ------ 2.6% 4.0% 1 0.324s
+─synthesize_montgomery ----------------- 0.0% 47.6% 1 3.872s
+ ├─IntegrationTestTemporaryMiscCommon.fa 1.4% 23.6% 1 1.924s
+ │└op_sig_side_conditions_t ------------ 0.0% 20.0% 1 1.624s
+ │ ├─DestructHyps.do_all_matches_then -- 0.0% 11.4% 4 0.244s
+ │ │└DestructHyps.do_one_match_then ---- 0.3% 11.4% 24 0.052s
+ │ │└do_tac ---------------------------- 0.0% 11.1% 20 0.052s
+ │ │└destruct H ------------------------ 11.1% 11.1% 20 0.052s
+ │ └─rewrite <- (ZRange.is_bounded_by_No 8.4% 8.4% 4 0.328s
+ └─IntegrationTestTemporaryMiscCommon.do 0.0% 22.1% 1 1.796s
+ ├─IntegrationTestTemporaryMiscCommon. 0.0% 17.3% 1 1.408s
+ │└rewrite <- (lem : lemT) by by_tac l 0.2% 17.3% 1 1.408s
+ │└by_tac ---------------------------- 0.0% 17.1% 4 0.504s
+ │ ├─DestructHyps.do_all_matches_then 0.0% 8.6% 4 0.184s
+ │ │└DestructHyps.do_one_match_then -- 0.3% 8.5% 20 0.052s
+ │ │└do_tac -------------------------- 0.0% 8.2% 16 0.052s
+ │ │└destruct H ---------------------- 8.2% 8.2% 16 0.052s
+ │ └─rewrite <- (ZRange.is_bounded_by_ 8.3% 8.3% 4 0.344s
+ └─IntegrationTestTemporaryMiscCommon. 0.0% 4.8% 1 0.388s
+ └<Crypto.Util.Tactics.MoveLetIn.with 0.9% 4.6% 3 0.368s
+ └k --------------------------------- 3.5% 3.6% 1 0.296s
+
+src/Specific/NISTP256/AMD64/feadd (real: 38.19, user: 35.40, sys: 0.30, mem: 799216 ko)
+COQC src/Specific/NISTP256/AMD64/fenz.v
+Finished transaction in 6.356 secs (5.82u,0.004s) (successful)
+total time: 5.800s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_nonzero -------------------- 0.0% 100.0% 1 5.800s
+─IntegrationTestTemporaryMiscCommon.nonz 0.2% 85.5% 1 4.960s
+─destruct (Decidable.dec x), (Decidable. 37.4% 37.4% 1 2.168s
+─destruct (Decidable.dec x) as [H| H] -- 22.0% 22.0% 1 1.276s
+─Pipeline.refine_reflectively_gen ------ 0.0% 14.5% 1 0.840s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 10.9% 1 0.632s
+─ReflectiveTactics.solve_side_conditions 0.0% 10.6% 1 0.612s
+─ReflectiveTactics.solve_post_reified_si 0.3% 8.5% 1 0.492s
+─IntegrationTestTemporaryMiscCommon.op_s 0.1% 8.1% 2 0.368s
+─rewrite <- (ZRange.is_bounded_by_None_r 5.2% 5.2% 2 0.288s
+─UnifyAbstractReflexivity.unify_transfor 3.4% 4.3% 7 0.076s
+─ReflectiveTactics.unify_abstract_cbv_in 2.8% 3.8% 1 0.220s
+─Glue.refine_to_reflective_glue' ------- 0.1% 3.6% 1 0.208s
+─rewrite H' ---------------------------- 3.4% 3.4% 1 0.200s
+─generalize dependent (constr) --------- 3.0% 3.0% 4 0.060s
+─congruence ---------------------------- 2.8% 2.8% 1 0.160s
+─do_tac -------------------------------- 0.0% 2.6% 4 0.044s
+─destruct H ---------------------------- 2.6% 2.6% 4 0.044s
+─IntegrationTestTemporaryMiscCommon.do_s 0.1% 2.6% 1 0.152s
+─DestructHyps.do_one_match_then -------- 0.0% 2.6% 6 0.044s
+─DestructHyps.do_all_matches_then ------ 0.0% 2.6% 2 0.076s
+─<Crypto.Util.Tactics.MoveLetIn.with_uco 0.4% 2.5% 3 0.140s
+─Glue.zrange_to_reflective ------------- 0.0% 2.2% 1 0.128s
+─rewrite H ----------------------------- 1.9% 2.1% 3 0.112s
+─ReflectiveTactics.do_reify ------------ 0.0% 2.1% 1 0.120s
+─k ------------------------------------- 1.9% 2.0% 1 0.116s
+─Reify.Reify_rhs_gen ------------------- 0.1% 2.0% 1 0.116s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_nonzero -------------------- 0.0% 100.0% 1 5.800s
+ ├─IntegrationTestTemporaryMiscCommon.no 0.2% 85.5% 1 4.960s
+ │ ├─destruct (Decidable.dec x), (Decida 37.4% 37.4% 1 2.168s
+ │ ├─destruct (Decidable.dec x) as [H| H 22.0% 22.0% 1 1.276s
+ │ ├─IntegrationTestTemporaryMiscCommon. 0.1% 8.1% 2 0.368s
+ │ │ ├─rewrite <- (ZRange.is_bounded_by_ 5.2% 5.2% 2 0.288s
+ │ │ └─DestructHyps.do_all_matches_then 0.0% 2.6% 2 0.076s
+ │ │ └DestructHyps.do_one_match_then -- 0.0% 2.6% 6 0.044s
+ │ │ └do_tac -------------------------- 0.0% 2.6% 4 0.044s
+ │ │ └destruct H ---------------------- 2.6% 2.6% 4 0.044s
+ │ ├─rewrite H' ------------------------ 3.4% 3.4% 1 0.200s
+ │ ├─generalize dependent (constr) ----- 3.0% 3.0% 4 0.060s
+ │ ├─congruence ------------------------ 2.8% 2.8% 1 0.160s
+ │ ├─IntegrationTestTemporaryMiscCommon. 0.1% 2.6% 1 0.152s
+ │ │└<Crypto.Util.Tactics.MoveLetIn.with 0.4% 2.5% 3 0.140s
+ │ │└k --------------------------------- 1.9% 2.0% 1 0.116s
+ │ └─rewrite H ------------------------- 1.7% 2.0% 2 0.112s
+ └─Pipeline.refine_reflectively_gen ---- 0.0% 14.5% 1 0.840s
+ ├─ReflectiveTactics.do_reflective_pip 0.0% 10.9% 1 0.632s
+ │└ReflectiveTactics.solve_side_condit 0.0% 10.6% 1 0.612s
+ │ ├─ReflectiveTactics.solve_post_reif 0.3% 8.5% 1 0.492s
+ │ │ ├─UnifyAbstractReflexivity.unify_ 3.4% 4.3% 7 0.076s
+ │ │ └─ReflectiveTactics.unify_abstrac 2.8% 3.8% 1 0.220s
+ │ └─ReflectiveTactics.do_reify ------ 0.0% 2.1% 1 0.120s
+ │ └Reify.Reify_rhs_gen ------------- 0.1% 2.0% 1 0.116s
+ └─Glue.refine_to_reflective_glue' --- 0.1% 3.6% 1 0.208s
+ └Glue.zrange_to_reflective --------- 0.0% 2.2% 1 0.128s
+
+Finished transaction in 6.657 secs (6.299u,0.s) (successful)
+Closed under the global context
+total time: 5.800s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_nonzero -------------------- 0.0% 100.0% 1 5.800s
+─IntegrationTestTemporaryMiscCommon.nonz 0.2% 85.5% 1 4.960s
+─destruct (Decidable.dec x), (Decidable. 37.4% 37.4% 1 2.168s
+─destruct (Decidable.dec x) as [H| H] -- 22.0% 22.0% 1 1.276s
+─Pipeline.refine_reflectively_gen ------ 0.0% 14.5% 1 0.840s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 10.9% 1 0.632s
+─ReflectiveTactics.solve_side_conditions 0.0% 10.6% 1 0.612s
+─ReflectiveTactics.solve_post_reified_si 0.3% 8.5% 1 0.492s
+─IntegrationTestTemporaryMiscCommon.op_s 0.1% 8.1% 2 0.368s
+─rewrite <- (ZRange.is_bounded_by_None_r 5.2% 5.2% 2 0.288s
+─UnifyAbstractReflexivity.unify_transfor 3.4% 4.3% 7 0.076s
+─ReflectiveTactics.unify_abstract_cbv_in 2.8% 3.8% 1 0.220s
+─Glue.refine_to_reflective_glue' ------- 0.1% 3.6% 1 0.208s
+─rewrite H' ---------------------------- 3.4% 3.4% 1 0.200s
+─generalize dependent (constr) --------- 3.0% 3.0% 4 0.060s
+─congruence ---------------------------- 2.8% 2.8% 1 0.160s
+─do_tac -------------------------------- 0.0% 2.6% 4 0.044s
+─destruct H ---------------------------- 2.6% 2.6% 4 0.044s
+─IntegrationTestTemporaryMiscCommon.do_s 0.1% 2.6% 1 0.152s
+─DestructHyps.do_one_match_then -------- 0.0% 2.6% 6 0.044s
+─DestructHyps.do_all_matches_then ------ 0.0% 2.6% 2 0.076s
+─<Crypto.Util.Tactics.MoveLetIn.with_uco 0.4% 2.5% 3 0.140s
+─Glue.zrange_to_reflective ------------- 0.0% 2.2% 1 0.128s
+─rewrite H ----------------------------- 1.9% 2.1% 3 0.112s
+─ReflectiveTactics.do_reify ------------ 0.0% 2.1% 1 0.120s
+─k ------------------------------------- 1.9% 2.0% 1 0.116s
+─Reify.Reify_rhs_gen ------------------- 0.1% 2.0% 1 0.116s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_nonzero -------------------- 0.0% 100.0% 1 5.800s
+ ├─IntegrationTestTemporaryMiscCommon.no 0.2% 85.5% 1 4.960s
+ │ ├─destruct (Decidable.dec x), (Decida 37.4% 37.4% 1 2.168s
+ │ ├─destruct (Decidable.dec x) as [H| H 22.0% 22.0% 1 1.276s
+ │ ├─IntegrationTestTemporaryMiscCommon. 0.1% 8.1% 2 0.368s
+ │ │ ├─rewrite <- (ZRange.is_bounded_by_ 5.2% 5.2% 2 0.288s
+ │ │ └─DestructHyps.do_all_matches_then 0.0% 2.6% 2 0.076s
+ │ │ └DestructHyps.do_one_match_then -- 0.0% 2.6% 6 0.044s
+ │ │ └do_tac -------------------------- 0.0% 2.6% 4 0.044s
+ │ │ └destruct H ---------------------- 2.6% 2.6% 4 0.044s
+ │ ├─rewrite H' ------------------------ 3.4% 3.4% 1 0.200s
+ │ ├─generalize dependent (constr) ----- 3.0% 3.0% 4 0.060s
+ │ ├─congruence ------------------------ 2.8% 2.8% 1 0.160s
+ │ ├─IntegrationTestTemporaryMiscCommon. 0.1% 2.6% 1 0.152s
+ │ │└<Crypto.Util.Tactics.MoveLetIn.with 0.4% 2.5% 3 0.140s
+ │ │└k --------------------------------- 1.9% 2.0% 1 0.116s
+ │ └─rewrite H ------------------------- 1.7% 2.0% 2 0.112s
+ └─Pipeline.refine_reflectively_gen ---- 0.0% 14.5% 1 0.840s
+ ├─ReflectiveTactics.do_reflective_pip 0.0% 10.9% 1 0.632s
+ │└ReflectiveTactics.solve_side_condit 0.0% 10.6% 1 0.612s
+ │ ├─ReflectiveTactics.solve_post_reif 0.3% 8.5% 1 0.492s
+ │ │ ├─UnifyAbstractReflexivity.unify_ 3.4% 4.3% 7 0.076s
+ │ │ └─ReflectiveTactics.unify_abstrac 2.8% 3.8% 1 0.220s
+ │ └─ReflectiveTactics.do_reify ------ 0.0% 2.1% 1 0.120s
+ │ └Reify.Reify_rhs_gen ------------- 0.1% 2.0% 1 0.116s
+ └─Glue.refine_to_reflective_glue' --- 0.1% 3.6% 1 0.208s
+ └Glue.zrange_to_reflective --------- 0.0% 2.2% 1 0.128s
+
+src/Specific/NISTP256/AMD64/fenz (real: 27.81, user: 25.50, sys: 0.22, mem: 756080 ko)
+COQC src/Specific/NISTP256/AMD64/feopp.v
+Finished transaction in 7.73 secs (7.112u,0.008s) (successful)
+total time: 7.072s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_montgomery ----------------- 0.0% 62.5% 1 4.420s
+─IntegrationTestTemporaryMiscCommon.fact 18.7% 51.6% 1 3.648s
+─Pipeline.refine_reflectively_gen ------ 0.0% 37.5% 1 2.652s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 32.6% 1 2.308s
+─ReflectiveTactics.solve_side_conditions 0.0% 32.2% 1 2.276s
+─reflexivity --------------------------- 24.8% 24.8% 8 1.700s
+─ReflectiveTactics.solve_post_reified_si 0.5% 18.5% 1 1.308s
+─ReflectiveTactics.do_reify ------------ 0.0% 13.7% 1 0.968s
+─UnifyAbstractReflexivity.unify_transfor 11.2% 13.6% 7 0.284s
+─Reify.Reify_rhs_gen ------------------- 0.6% 13.4% 1 0.948s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 9.7% 1 0.684s
+─rewrite <- (ZRange.is_bounded_by_None_r 9.0% 9.0% 4 0.328s
+─op_sig_side_conditions_t -------------- 0.0% 7.8% 1 0.552s
+─rewrite <- (lem : lemT) by by_tac ltac: 0.1% 7.4% 1 0.520s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 7.4% 1 0.520s
+─by_tac -------------------------------- 0.0% 7.2% 2 0.404s
+─Reify.do_reify_abs_goal --------------- 7.1% 7.2% 2 0.512s
+─Reify.do_reifyf_goal ------------------ 6.6% 6.7% 62 0.472s
+─DestructHyps.do_one_match_then -------- 0.2% 5.8% 14 0.048s
+─DestructHyps.do_all_matches_then ------ 0.0% 5.8% 4 0.124s
+─do_tac -------------------------------- 0.0% 5.6% 10 0.048s
+─destruct H ---------------------------- 5.6% 5.6% 10 0.048s
+─Glue.refine_to_reflective_glue' ------- 0.0% 4.9% 1 0.344s
+─ReflectiveTactics.unify_abstract_cbv_in 2.9% 4.2% 1 0.300s
+─Glue.zrange_to_reflective ------------- 0.0% 3.3% 1 0.232s
+─unify (constr) (constr) --------------- 3.2% 3.2% 7 0.088s
+─Glue.zrange_to_reflective_goal -------- 1.9% 2.6% 1 0.184s
+─IntegrationTestTemporaryMiscCommon.do_s 0.0% 2.3% 1 0.164s
+─<Crypto.Util.Tactics.MoveLetIn.with_uco 0.4% 2.2% 3 0.152s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_montgomery ----------------- 0.0% 62.5% 1 4.420s
+ ├─IntegrationTestTemporaryMiscCommon.fa 18.7% 51.6% 1 3.648s
+ │ ├─reflexivity ----------------------- 24.0% 24.0% 1 1.700s
+ │ └─op_sig_side_conditions_t ---------- 0.0% 7.8% 1 0.552s
+ │ ├─rewrite <- (ZRange.is_bounded_by_ 4.2% 4.2% 2 0.284s
+ │ └─DestructHyps.do_all_matches_then 0.0% 3.5% 2 0.124s
+ │ └DestructHyps.do_one_match_then -- 0.2% 3.5% 8 0.044s
+ │ └do_tac -------------------------- 0.0% 3.3% 6 0.040s
+ │ └destruct H ---------------------- 3.3% 3.3% 6 0.040s
+ └─IntegrationTestTemporaryMiscCommon.do 0.0% 9.7% 1 0.684s
+ ├─IntegrationTestTemporaryMiscCommon. 0.0% 7.4% 1 0.520s
+ │└rewrite <- (lem : lemT) by by_tac l 0.1% 7.4% 1 0.520s
+ │└by_tac ---------------------------- 0.0% 7.2% 2 0.404s
+ │ ├─rewrite <- (ZRange.is_bounded_by_ 4.8% 4.8% 2 0.328s
+ │ └─DestructHyps.do_all_matches_then 0.0% 2.3% 2 0.088s
+ │ └DestructHyps.do_one_match_then -- 0.0% 2.3% 6 0.048s
+ │ └do_tac -------------------------- 0.0% 2.3% 4 0.048s
+ │ └destruct H ---------------------- 2.3% 2.3% 4 0.048s
+ └─IntegrationTestTemporaryMiscCommon. 0.0% 2.3% 1 0.164s
+ └<Crypto.Util.Tactics.MoveLetIn.with 0.4% 2.2% 3 0.152s
+─Pipeline.refine_reflectively_gen ------ 0.0% 37.5% 1 2.652s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 32.6% 1 2.308s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 32.2% 1 2.276s
+ │ ├─ReflectiveTactics.solve_post_reifie 0.5% 18.5% 1 1.308s
+ │ │ ├─UnifyAbstractReflexivity.unify_tr 11.2% 13.6% 7 0.284s
+ │ │ └─ReflectiveTactics.unify_abstract_ 2.9% 4.2% 1 0.300s
+ │ └─ReflectiveTactics.do_reify -------- 0.0% 13.7% 1 0.968s
+ │ └Reify.Reify_rhs_gen --------------- 0.6% 13.4% 1 0.948s
+ │ └Reify.do_reify_abs_goal ----------- 7.1% 7.2% 2 0.512s
+ │ └Reify.do_reifyf_goal -------------- 6.6% 6.7% 62 0.472s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 4.9% 1 0.344s
+ └Glue.zrange_to_reflective ----------- 0.0% 3.3% 1 0.232s
+ └Glue.zrange_to_reflective_goal ------ 1.9% 2.6% 1 0.184s
+
+Finished transaction in 7.732 secs (7.1u,0.003s) (successful)
+Closed under the global context
+total time: 7.072s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_montgomery ----------------- 0.0% 62.5% 1 4.420s
+─IntegrationTestTemporaryMiscCommon.fact 18.7% 51.6% 1 3.648s
+─Pipeline.refine_reflectively_gen ------ 0.0% 37.5% 1 2.652s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 32.6% 1 2.308s
+─ReflectiveTactics.solve_side_conditions 0.0% 32.2% 1 2.276s
+─reflexivity --------------------------- 24.8% 24.8% 8 1.700s
+─ReflectiveTactics.solve_post_reified_si 0.5% 18.5% 1 1.308s
+─ReflectiveTactics.do_reify ------------ 0.0% 13.7% 1 0.968s
+─UnifyAbstractReflexivity.unify_transfor 11.2% 13.6% 7 0.284s
+─Reify.Reify_rhs_gen ------------------- 0.6% 13.4% 1 0.948s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 9.7% 1 0.684s
+─rewrite <- (ZRange.is_bounded_by_None_r 9.0% 9.0% 4 0.328s
+─op_sig_side_conditions_t -------------- 0.0% 7.8% 1 0.552s
+─rewrite <- (lem : lemT) by by_tac ltac: 0.1% 7.4% 1 0.520s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 7.4% 1 0.520s
+─by_tac -------------------------------- 0.0% 7.2% 2 0.404s
+─Reify.do_reify_abs_goal --------------- 7.1% 7.2% 2 0.512s
+─Reify.do_reifyf_goal ------------------ 6.6% 6.7% 62 0.472s
+─DestructHyps.do_one_match_then -------- 0.2% 5.8% 14 0.048s
+─DestructHyps.do_all_matches_then ------ 0.0% 5.8% 4 0.124s
+─do_tac -------------------------------- 0.0% 5.6% 10 0.048s
+─destruct H ---------------------------- 5.6% 5.6% 10 0.048s
+─Glue.refine_to_reflective_glue' ------- 0.0% 4.9% 1 0.344s
+─ReflectiveTactics.unify_abstract_cbv_in 2.9% 4.2% 1 0.300s
+─Glue.zrange_to_reflective ------------- 0.0% 3.3% 1 0.232s
+─unify (constr) (constr) --------------- 3.2% 3.2% 7 0.088s
+─Glue.zrange_to_reflective_goal -------- 1.9% 2.6% 1 0.184s
+─IntegrationTestTemporaryMiscCommon.do_s 0.0% 2.3% 1 0.164s
+─<Crypto.Util.Tactics.MoveLetIn.with_uco 0.4% 2.2% 3 0.152s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_montgomery ----------------- 0.0% 62.5% 1 4.420s
+ ├─IntegrationTestTemporaryMiscCommon.fa 18.7% 51.6% 1 3.648s
+ │ ├─reflexivity ----------------------- 24.0% 24.0% 1 1.700s
+ │ └─op_sig_side_conditions_t ---------- 0.0% 7.8% 1 0.552s
+ │ ├─rewrite <- (ZRange.is_bounded_by_ 4.2% 4.2% 2 0.284s
+ │ └─DestructHyps.do_all_matches_then 0.0% 3.5% 2 0.124s
+ │ └DestructHyps.do_one_match_then -- 0.2% 3.5% 8 0.044s
+ │ └do_tac -------------------------- 0.0% 3.3% 6 0.040s
+ │ └destruct H ---------------------- 3.3% 3.3% 6 0.040s
+ └─IntegrationTestTemporaryMiscCommon.do 0.0% 9.7% 1 0.684s
+ ├─IntegrationTestTemporaryMiscCommon. 0.0% 7.4% 1 0.520s
+ │└rewrite <- (lem : lemT) by by_tac l 0.1% 7.4% 1 0.520s
+ │└by_tac ---------------------------- 0.0% 7.2% 2 0.404s
+ │ ├─rewrite <- (ZRange.is_bounded_by_ 4.8% 4.8% 2 0.328s
+ │ └─DestructHyps.do_all_matches_then 0.0% 2.3% 2 0.088s
+ │ └DestructHyps.do_one_match_then -- 0.0% 2.3% 6 0.048s
+ │ └do_tac -------------------------- 0.0% 2.3% 4 0.048s
+ │ └destruct H ---------------------- 2.3% 2.3% 4 0.048s
+ └─IntegrationTestTemporaryMiscCommon. 0.0% 2.3% 1 0.164s
+ └<Crypto.Util.Tactics.MoveLetIn.with 0.4% 2.2% 3 0.152s
+─Pipeline.refine_reflectively_gen ------ 0.0% 37.5% 1 2.652s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 32.6% 1 2.308s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 32.2% 1 2.276s
+ │ ├─ReflectiveTactics.solve_post_reifie 0.5% 18.5% 1 1.308s
+ │ │ ├─UnifyAbstractReflexivity.unify_tr 11.2% 13.6% 7 0.284s
+ │ │ └─ReflectiveTactics.unify_abstract_ 2.9% 4.2% 1 0.300s
+ │ └─ReflectiveTactics.do_reify -------- 0.0% 13.7% 1 0.968s
+ │ └Reify.Reify_rhs_gen --------------- 0.6% 13.4% 1 0.948s
+ │ └Reify.do_reify_abs_goal ----------- 7.1% 7.2% 2 0.512s
+ │ └Reify.do_reifyf_goal -------------- 6.6% 6.7% 62 0.472s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 4.9% 1 0.344s
+ └Glue.zrange_to_reflective ----------- 0.0% 3.3% 1 0.232s
+ └Glue.zrange_to_reflective_goal ------ 1.9% 2.6% 1 0.184s
+
+src/Specific/NISTP256/AMD64/feopp (real: 31.00, user: 28.51, sys: 0.20, mem: 765208 ko)
+COQC src/Specific/NISTP256/AMD64/fesub.v
+Finished transaction in 12.996 secs (12.091u,0.004s) (successful)
+total time: 12.048s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_montgomery ----------------- 0.0% 66.1% 1 7.964s
+─IntegrationTestTemporaryMiscCommon.fact 16.2% 50.9% 1 6.128s
+─Pipeline.refine_reflectively_gen ------ 0.0% 33.9% 1 4.084s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 28.3% 1 3.404s
+─ReflectiveTactics.solve_side_conditions 0.0% 27.8% 1 3.352s
+─reflexivity --------------------------- 21.7% 21.7% 8 2.480s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 14.1% 1 1.704s
+─ReflectiveTactics.solve_post_reified_si 0.4% 14.1% 1 1.696s
+─ReflectiveTactics.do_reify ------------ 0.0% 13.7% 1 1.656s
+─Reify.Reify_rhs_gen ------------------- 0.9% 13.2% 1 1.592s
+─DestructHyps.do_all_matches_then ------ 0.0% 12.9% 8 0.232s
+─DestructHyps.do_one_match_then -------- 0.6% 12.9% 44 0.052s
+─op_sig_side_conditions_t -------------- 0.0% 12.7% 1 1.528s
+─do_tac -------------------------------- 0.0% 12.3% 36 0.048s
+─destruct H ---------------------------- 12.3% 12.3% 36 0.048s
+─rewrite <- (lem : lemT) by by_tac ltac: 0.1% 11.2% 1 1.352s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 11.2% 1 1.352s
+─by_tac -------------------------------- 0.0% 11.1% 4 0.476s
+─UnifyAbstractReflexivity.unify_transfor 8.8% 10.6% 7 0.344s
+─rewrite <- (ZRange.is_bounded_by_None_r 10.5% 10.5% 8 0.316s
+─Reify.do_reify_abs_goal --------------- 6.0% 6.1% 2 0.732s
+─Glue.refine_to_reflective_glue' ------- 0.0% 5.6% 1 0.680s
+─Reify.do_reifyf_goal ------------------ 5.4% 5.5% 80 0.660s
+─Glue.zrange_to_reflective ------------- 0.0% 3.6% 1 0.428s
+─ReflectiveTactics.unify_abstract_cbv_in 2.2% 3.0% 1 0.360s
+─IntegrationTestTemporaryMiscCommon.do_s 0.0% 2.9% 1 0.348s
+─<Crypto.Util.Tactics.MoveLetIn.with_uco 0.5% 2.8% 3 0.332s
+─Glue.zrange_to_reflective_goal -------- 1.7% 2.6% 1 0.316s
+─k ------------------------------------- 2.1% 2.2% 1 0.268s
+─unify (constr) (constr) --------------- 2.1% 2.1% 8 0.092s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_montgomery ----------------- 0.0% 66.1% 1 7.964s
+ ├─IntegrationTestTemporaryMiscCommon.fa 16.2% 50.9% 1 6.128s
+ │ ├─reflexivity ----------------------- 20.6% 20.6% 1 2.480s
+ │ └─op_sig_side_conditions_t ---------- 0.0% 12.7% 1 1.528s
+ │ ├─DestructHyps.do_all_matches_then 0.0% 7.3% 4 0.232s
+ │ │└DestructHyps.do_one_match_then -- 0.3% 7.3% 24 0.052s
+ │ │└do_tac -------------------------- 0.0% 7.0% 20 0.048s
+ │ │└destruct H ---------------------- 6.9% 6.9% 20 0.048s
+ │ └─rewrite <- (ZRange.is_bounded_by_ 5.2% 5.2% 4 0.300s
+ └─IntegrationTestTemporaryMiscCommon.do 0.0% 14.1% 1 1.704s
+ ├─IntegrationTestTemporaryMiscCommon. 0.0% 11.2% 1 1.352s
+ │└rewrite <- (lem : lemT) by by_tac l 0.1% 11.2% 1 1.352s
+ │└by_tac ---------------------------- 0.0% 11.1% 4 0.476s
+ │ ├─DestructHyps.do_all_matches_then 0.0% 5.6% 4 0.176s
+ │ │└DestructHyps.do_one_match_then -- 0.2% 5.6% 20 0.052s
+ │ │└do_tac -------------------------- 0.0% 5.3% 16 0.048s
+ │ │└destruct H ---------------------- 5.3% 5.3% 16 0.048s
+ │ └─rewrite <- (ZRange.is_bounded_by_ 5.3% 5.3% 4 0.316s
+ └─IntegrationTestTemporaryMiscCommon. 0.0% 2.9% 1 0.348s
+ └<Crypto.Util.Tactics.MoveLetIn.with 0.5% 2.8% 3 0.332s
+ └k --------------------------------- 2.1% 2.2% 1 0.268s
+─Pipeline.refine_reflectively_gen ------ 0.0% 33.9% 1 4.084s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 28.3% 1 3.404s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 27.8% 1 3.352s
+ │ ├─ReflectiveTactics.solve_post_reifie 0.4% 14.1% 1 1.696s
+ │ │ ├─UnifyAbstractReflexivity.unify_tr 8.8% 10.6% 7 0.344s
+ │ │ └─ReflectiveTactics.unify_abstract_ 2.2% 3.0% 1 0.360s
+ │ └─ReflectiveTactics.do_reify -------- 0.0% 13.7% 1 1.656s
+ │ └Reify.Reify_rhs_gen --------------- 0.9% 13.2% 1 1.592s
+ │ └Reify.do_reify_abs_goal ----------- 6.0% 6.1% 2 0.732s
+ │ └Reify.do_reifyf_goal -------------- 5.4% 5.5% 80 0.660s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 5.6% 1 0.680s
+ └Glue.zrange_to_reflective ----------- 0.0% 3.6% 1 0.428s
+ └Glue.zrange_to_reflective_goal ------ 1.7% 2.6% 1 0.316s
+
+Finished transaction in 13.895 secs (12.78u,0.02s) (successful)
+Closed under the global context
+total time: 12.048s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_montgomery ----------------- 0.0% 66.1% 1 7.964s
+─IntegrationTestTemporaryMiscCommon.fact 16.2% 50.9% 1 6.128s
+─Pipeline.refine_reflectively_gen ------ 0.0% 33.9% 1 4.084s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 28.3% 1 3.404s
+─ReflectiveTactics.solve_side_conditions 0.0% 27.8% 1 3.352s
+─reflexivity --------------------------- 21.7% 21.7% 8 2.480s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 14.1% 1 1.704s
+─ReflectiveTactics.solve_post_reified_si 0.4% 14.1% 1 1.696s
+─ReflectiveTactics.do_reify ------------ 0.0% 13.7% 1 1.656s
+─Reify.Reify_rhs_gen ------------------- 0.9% 13.2% 1 1.592s
+─DestructHyps.do_all_matches_then ------ 0.0% 12.9% 8 0.232s
+─DestructHyps.do_one_match_then -------- 0.6% 12.9% 44 0.052s
+─op_sig_side_conditions_t -------------- 0.0% 12.7% 1 1.528s
+─do_tac -------------------------------- 0.0% 12.3% 36 0.048s
+─destruct H ---------------------------- 12.3% 12.3% 36 0.048s
+─rewrite <- (lem : lemT) by by_tac ltac: 0.1% 11.2% 1 1.352s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 11.2% 1 1.352s
+─by_tac -------------------------------- 0.0% 11.1% 4 0.476s
+─UnifyAbstractReflexivity.unify_transfor 8.8% 10.6% 7 0.344s
+─rewrite <- (ZRange.is_bounded_by_None_r 10.5% 10.5% 8 0.316s
+─Reify.do_reify_abs_goal --------------- 6.0% 6.1% 2 0.732s
+─Glue.refine_to_reflective_glue' ------- 0.0% 5.6% 1 0.680s
+─Reify.do_reifyf_goal ------------------ 5.4% 5.5% 80 0.660s
+─Glue.zrange_to_reflective ------------- 0.0% 3.6% 1 0.428s
+─ReflectiveTactics.unify_abstract_cbv_in 2.2% 3.0% 1 0.360s
+─IntegrationTestTemporaryMiscCommon.do_s 0.0% 2.9% 1 0.348s
+─<Crypto.Util.Tactics.MoveLetIn.with_uco 0.5% 2.8% 3 0.332s
+─Glue.zrange_to_reflective_goal -------- 1.7% 2.6% 1 0.316s
+─k ------------------------------------- 2.1% 2.2% 1 0.268s
+─unify (constr) (constr) --------------- 2.1% 2.1% 8 0.092s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_montgomery ----------------- 0.0% 66.1% 1 7.964s
+ ├─IntegrationTestTemporaryMiscCommon.fa 16.2% 50.9% 1 6.128s
+ │ ├─reflexivity ----------------------- 20.6% 20.6% 1 2.480s
+ │ └─op_sig_side_conditions_t ---------- 0.0% 12.7% 1 1.528s
+ │ ├─DestructHyps.do_all_matches_then 0.0% 7.3% 4 0.232s
+ │ │└DestructHyps.do_one_match_then -- 0.3% 7.3% 24 0.052s
+ │ │└do_tac -------------------------- 0.0% 7.0% 20 0.048s
+ │ │└destruct H ---------------------- 6.9% 6.9% 20 0.048s
+ │ └─rewrite <- (ZRange.is_bounded_by_ 5.2% 5.2% 4 0.300s
+ └─IntegrationTestTemporaryMiscCommon.do 0.0% 14.1% 1 1.704s
+ ├─IntegrationTestTemporaryMiscCommon. 0.0% 11.2% 1 1.352s
+ │└rewrite <- (lem : lemT) by by_tac l 0.1% 11.2% 1 1.352s
+ │└by_tac ---------------------------- 0.0% 11.1% 4 0.476s
+ │ ├─DestructHyps.do_all_matches_then 0.0% 5.6% 4 0.176s
+ │ │└DestructHyps.do_one_match_then -- 0.2% 5.6% 20 0.052s
+ │ │└do_tac -------------------------- 0.0% 5.3% 16 0.048s
+ │ │└destruct H ---------------------- 5.3% 5.3% 16 0.048s
+ │ └─rewrite <- (ZRange.is_bounded_by_ 5.3% 5.3% 4 0.316s
+ └─IntegrationTestTemporaryMiscCommon. 0.0% 2.9% 1 0.348s
+ └<Crypto.Util.Tactics.MoveLetIn.with 0.5% 2.8% 3 0.332s
+ └k --------------------------------- 2.1% 2.2% 1 0.268s
+─Pipeline.refine_reflectively_gen ------ 0.0% 33.9% 1 4.084s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 28.3% 1 3.404s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 27.8% 1 3.352s
+ │ ├─ReflectiveTactics.solve_post_reifie 0.4% 14.1% 1 1.696s
+ │ │ ├─UnifyAbstractReflexivity.unify_tr 8.8% 10.6% 7 0.344s
+ │ │ └─ReflectiveTactics.unify_abstract_ 2.2% 3.0% 1 0.360s
+ │ └─ReflectiveTactics.do_reify -------- 0.0% 13.7% 1 1.656s
+ │ └Reify.Reify_rhs_gen --------------- 0.9% 13.2% 1 1.592s
+ │ └Reify.do_reify_abs_goal ----------- 6.0% 6.1% 2 0.732s
+ │ └Reify.do_reifyf_goal -------------- 5.4% 5.5% 80 0.660s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 5.6% 1 0.680s
+ └Glue.zrange_to_reflective ----------- 0.0% 3.6% 1 0.428s
+ └Glue.zrange_to_reflective_goal ------ 1.7% 2.6% 1 0.316s
+
+src/Specific/NISTP256/AMD64/fesub (real: 43.34, user: 39.59, sys: 0.26, mem: 793376 ko)
+COQC src/Specific/NISTP256/AMD64/feaddDisplay > src/Specific/NISTP256/AMD64/feaddDisplay.log
+COQC src/Specific/NISTP256/AMD64/fenzDisplay > src/Specific/NISTP256/AMD64/fenzDisplay.log
+COQC src/Specific/solinas32_2e255m765_12limbs/femul.v
+Finished transaction in 50.426 secs (46.528u,0.072s) (successful)
+total time: 46.544s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ -0.0% 94.9% 1 44.164s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 87.1% 1 40.552s
+─ReflectiveTactics.solve_side_conditions 0.0% 86.7% 1 40.372s
+─ReflectiveTactics.do_reify ------------ 0.0% 59.6% 1 27.740s
+─Reify.Reify_rhs_gen ------------------- 1.6% 58.9% 1 27.432s
+─Reify.do_reify_abs_goal --------------- 43.3% 43.6% 2 20.312s
+─Reify.do_reifyf_goal ------------------ 42.5% 42.8% 108 10.328s
+─ReflectiveTactics.solve_post_reified_si 0.1% 27.1% 1 12.632s
+─UnifyAbstractReflexivity.unify_transfor 18.6% 23.5% 7 3.552s
+─eexact -------------------------------- 13.7% 13.7% 110 0.136s
+─Glue.refine_to_reflective_glue' ------- 0.0% 7.8% 1 3.612s
+─Glue.zrange_to_reflective ------------- 0.0% 7.2% 1 3.332s
+─Glue.zrange_to_reflective_goal -------- 1.7% 5.5% 1 2.544s
+─synthesize ---------------------------- 0.0% 5.1% 1 2.380s
+─unify (constr) (constr) --------------- 5.1% 5.1% 6 1.068s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 5.0% 1 2.320s
+─change G' ----------------------------- 4.8% 4.8% 1 2.252s
+─rewrite H ----------------------------- 3.8% 3.8% 1 1.748s
+─pose proof (pf : Interpretation.Bo 3.6% 3.6% 1 1.664s
+─prove_interp_compile_correct ---------- 0.0% 3.5% 1 1.616s
+─rewrite ?EtaInterp.InterpExprEta ------ 3.2% 3.2% 1 1.468s
+─ReflectiveTactics.unify_abstract_cbv_in 1.6% 2.4% 1 1.124s
+─reflexivity --------------------------- 2.1% 2.1% 7 0.396s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ -0.0% 94.9% 1 44.164s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 87.1% 1 40.552s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 86.7% 1 40.372s
+ │ ├─ReflectiveTactics.do_reify -------- 0.0% 59.6% 1 27.740s
+ │ │└Reify.Reify_rhs_gen --------------- 1.6% 58.9% 1 27.432s
+ │ │ ├─Reify.do_reify_abs_goal --------- 43.3% 43.6% 2 20.312s
+ │ │ │└Reify.do_reifyf_goal ------------ 42.5% 42.8% 108 10.328s
+ │ │ │└eexact -------------------------- 13.2% 13.2% 108 0.072s
+ │ │ ├─rewrite H ----------------------- 3.8% 3.8% 1 1.748s
+ │ │ └─prove_interp_compile_correct ---- 0.0% 3.5% 1 1.616s
+ │ │ └rewrite ?EtaInterp.InterpExprEta 3.2% 3.2% 1 1.468s
+ │ └─ReflectiveTactics.solve_post_reifie 0.1% 27.1% 1 12.632s
+ │ ├─UnifyAbstractReflexivity.unify_tr 18.6% 23.5% 7 3.552s
+ │ │└unify (constr) (constr) --------- 4.3% 4.3% 5 1.068s
+ │ └─ReflectiveTactics.unify_abstract_ 1.6% 2.4% 1 1.124s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 7.8% 1 3.612s
+ └Glue.zrange_to_reflective ----------- 0.0% 7.2% 1 3.332s
+ └Glue.zrange_to_reflective_goal ------ 1.7% 5.5% 1 2.544s
+ └pose proof (pf : Interpretation. 3.6% 3.6% 1 1.664s
+─synthesize ---------------------------- 0.0% 5.1% 1 2.380s
+└IntegrationTestTemporaryMiscCommon.do_r 0.0% 5.0% 1 2.320s
+└change G' ----------------------------- 4.8% 4.8% 1 2.252s
+
+Finished transaction in 80.129 secs (74.068u,0.024s) (successful)
+Closed under the global context
+total time: 46.544s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ -0.0% 94.9% 1 44.164s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 87.1% 1 40.552s
+─ReflectiveTactics.solve_side_conditions 0.0% 86.7% 1 40.372s
+─ReflectiveTactics.do_reify ------------ 0.0% 59.6% 1 27.740s
+─Reify.Reify_rhs_gen ------------------- 1.6% 58.9% 1 27.432s
+─Reify.do_reify_abs_goal --------------- 43.3% 43.6% 2 20.312s
+─Reify.do_reifyf_goal ------------------ 42.5% 42.8% 108 10.328s
+─ReflectiveTactics.solve_post_reified_si 0.1% 27.1% 1 12.632s
+─UnifyAbstractReflexivity.unify_transfor 18.6% 23.5% 7 3.552s
+─eexact -------------------------------- 13.7% 13.7% 110 0.136s
+─Glue.refine_to_reflective_glue' ------- 0.0% 7.8% 1 3.612s
+─Glue.zrange_to_reflective ------------- 0.0% 7.2% 1 3.332s
+─Glue.zrange_to_reflective_goal -------- 1.7% 5.5% 1 2.544s
+─synthesize ---------------------------- 0.0% 5.1% 1 2.380s
+─unify (constr) (constr) --------------- 5.1% 5.1% 6 1.068s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 5.0% 1 2.320s
+─change G' ----------------------------- 4.8% 4.8% 1 2.252s
+─rewrite H ----------------------------- 3.8% 3.8% 1 1.748s
+─pose proof (pf : Interpretation.Bo 3.6% 3.6% 1 1.664s
+─prove_interp_compile_correct ---------- 0.0% 3.5% 1 1.616s
+─rewrite ?EtaInterp.InterpExprEta ------ 3.2% 3.2% 1 1.468s
+─ReflectiveTactics.unify_abstract_cbv_in 1.6% 2.4% 1 1.124s
+─reflexivity --------------------------- 2.1% 2.1% 7 0.396s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ -0.0% 94.9% 1 44.164s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 87.1% 1 40.552s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 86.7% 1 40.372s
+ │ ├─ReflectiveTactics.do_reify -------- 0.0% 59.6% 1 27.740s
+ │ │└Reify.Reify_rhs_gen --------------- 1.6% 58.9% 1 27.432s
+ │ │ ├─Reify.do_reify_abs_goal --------- 43.3% 43.6% 2 20.312s
+ │ │ │└Reify.do_reifyf_goal ------------ 42.5% 42.8% 108 10.328s
+ │ │ │└eexact -------------------------- 13.2% 13.2% 108 0.072s
+ │ │ ├─rewrite H ----------------------- 3.8% 3.8% 1 1.748s
+ │ │ └─prove_interp_compile_correct ---- 0.0% 3.5% 1 1.616s
+ │ │ └rewrite ?EtaInterp.InterpExprEta 3.2% 3.2% 1 1.468s
+ │ └─ReflectiveTactics.solve_post_reifie 0.1% 27.1% 1 12.632s
+ │ ├─UnifyAbstractReflexivity.unify_tr 18.6% 23.5% 7 3.552s
+ │ │└unify (constr) (constr) --------- 4.3% 4.3% 5 1.068s
+ │ └─ReflectiveTactics.unify_abstract_ 1.6% 2.4% 1 1.124s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 7.8% 1 3.612s
+ └Glue.zrange_to_reflective ----------- 0.0% 7.2% 1 3.332s
+ └Glue.zrange_to_reflective_goal ------ 1.7% 5.5% 1 2.544s
+ └pose proof (pf : Interpretation. 3.6% 3.6% 1 1.664s
+─synthesize ---------------------------- 0.0% 5.1% 1 2.380s
+└IntegrationTestTemporaryMiscCommon.do_r 0.0% 5.0% 1 2.320s
+└change G' ----------------------------- 4.8% 4.8% 1 2.252s
+
+src/Specific/solinas32_2e255m765_12limbs/femul (real: 155.79, user: 143.70, sys: 0.32, mem: 1454696 ko)
+COQC src/Specific/NISTP256/AMD64/feoppDisplay > src/Specific/NISTP256/AMD64/feoppDisplay.log
+COQC src/Specific/NISTP256/AMD64/fesubDisplay > src/Specific/NISTP256/AMD64/fesubDisplay.log
+COQC src/Specific/X25519/C64/fesquareDisplay > src/Specific/X25519/C64/fesquareDisplay.log
+COQC src/Specific/X25519/C64/fesubDisplay > src/Specific/X25519/C64/fesubDisplay.log
+COQC src/Specific/X25519/C64/freezeDisplay > src/Specific/X25519/C64/freezeDisplay.log
+COQC src/Specific/solinas32_2e255m765_13limbs/femul.v
+Finished transaction in 61.854 secs (57.328u,0.079s) (successful)
+total time: 57.348s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 94.6% 1 54.224s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 86.2% 1 49.452s
+─ReflectiveTactics.solve_side_conditions 0.0% 85.9% 1 49.264s
+─ReflectiveTactics.do_reify ------------ -0.0% 57.6% 1 33.004s
+─Reify.Reify_rhs_gen ------------------- 1.3% 56.9% 1 32.608s
+─Reify.do_reify_abs_goal --------------- 43.1% 43.3% 2 24.840s
+─Reify.do_reifyf_goal ------------------ 42.3% 42.6% 117 12.704s
+─ReflectiveTactics.solve_post_reified_si 0.1% 28.4% 1 16.260s
+─UnifyAbstractReflexivity.unify_transfor 19.6% 25.0% 7 4.824s
+─eexact -------------------------------- 13.9% 13.9% 119 0.144s
+─Glue.refine_to_reflective_glue' ------- 0.0% 8.3% 1 4.772s
+─Glue.zrange_to_reflective ------------- 0.0% 7.8% 1 4.484s
+─Glue.zrange_to_reflective_goal -------- 1.7% 6.0% 1 3.464s
+─synthesize ---------------------------- 0.0% 5.4% 1 3.124s
+─unify (constr) (constr) --------------- 5.4% 5.4% 6 1.540s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 5.3% 1 3.040s
+─change G' ----------------------------- 5.2% 5.2% 1 2.964s
+─pose proof (pf : Interpretation.Bo 4.2% 4.2% 1 2.416s
+─prove_interp_compile_correct ---------- 0.0% 3.3% 1 1.904s
+─rewrite H ----------------------------- 3.3% 3.3% 1 1.896s
+─rewrite ?EtaInterp.InterpExprEta ------ 3.0% 3.0% 1 1.732s
+─ReflectiveTactics.unify_abstract_cbv_in 1.4% 2.1% 1 1.212s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 94.6% 1 54.224s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 86.2% 1 49.452s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 85.9% 1 49.264s
+ │ ├─ReflectiveTactics.do_reify -------- -0.0% 57.6% 1 33.004s
+ │ │└Reify.Reify_rhs_gen --------------- 1.3% 56.9% 1 32.608s
+ │ │ ├─Reify.do_reify_abs_goal --------- 43.1% 43.3% 2 24.840s
+ │ │ │└Reify.do_reifyf_goal ------------ 42.3% 42.6% 117 12.704s
+ │ │ │└eexact -------------------------- 13.4% 13.4% 117 0.084s
+ │ │ ├─prove_interp_compile_correct ---- 0.0% 3.3% 1 1.904s
+ │ │ │└rewrite ?EtaInterp.InterpExprEta 3.0% 3.0% 1 1.732s
+ │ │ └─rewrite H ----------------------- 3.3% 3.3% 1 1.896s
+ │ └─ReflectiveTactics.solve_post_reifie 0.1% 28.4% 1 16.260s
+ │ ├─UnifyAbstractReflexivity.unify_tr 19.6% 25.0% 7 4.824s
+ │ │└unify (constr) (constr) --------- 4.8% 4.8% 5 1.540s
+ │ └─ReflectiveTactics.unify_abstract_ 1.4% 2.1% 1 1.212s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 8.3% 1 4.772s
+ └Glue.zrange_to_reflective ----------- 0.0% 7.8% 1 4.484s
+ └Glue.zrange_to_reflective_goal ------ 1.7% 6.0% 1 3.464s
+ └pose proof (pf : Interpretation. 4.2% 4.2% 1 2.416s
+─synthesize ---------------------------- 0.0% 5.4% 1 3.124s
+└IntegrationTestTemporaryMiscCommon.do_r 0.0% 5.3% 1 3.040s
+└change G' ----------------------------- 5.2% 5.2% 1 2.964s
+
+Finished transaction in 94.432 secs (86.96u,0.02s) (successful)
+Closed under the global context
+total time: 57.348s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 94.6% 1 54.224s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 86.2% 1 49.452s
+─ReflectiveTactics.solve_side_conditions 0.0% 85.9% 1 49.264s
+─ReflectiveTactics.do_reify ------------ -0.0% 57.6% 1 33.004s
+─Reify.Reify_rhs_gen ------------------- 1.3% 56.9% 1 32.608s
+─Reify.do_reify_abs_goal --------------- 43.1% 43.3% 2 24.840s
+─Reify.do_reifyf_goal ------------------ 42.3% 42.6% 117 12.704s
+─ReflectiveTactics.solve_post_reified_si 0.1% 28.4% 1 16.260s
+─UnifyAbstractReflexivity.unify_transfor 19.6% 25.0% 7 4.824s
+─eexact -------------------------------- 13.9% 13.9% 119 0.144s
+─Glue.refine_to_reflective_glue' ------- 0.0% 8.3% 1 4.772s
+─Glue.zrange_to_reflective ------------- 0.0% 7.8% 1 4.484s
+─Glue.zrange_to_reflective_goal -------- 1.7% 6.0% 1 3.464s
+─synthesize ---------------------------- 0.0% 5.4% 1 3.124s
+─unify (constr) (constr) --------------- 5.4% 5.4% 6 1.540s
+─IntegrationTestTemporaryMiscCommon.do_r 0.0% 5.3% 1 3.040s
+─change G' ----------------------------- 5.2% 5.2% 1 2.964s
+─pose proof (pf : Interpretation.Bo 4.2% 4.2% 1 2.416s
+─prove_interp_compile_correct ---------- 0.0% 3.3% 1 1.904s
+─rewrite H ----------------------------- 3.3% 3.3% 1 1.896s
+─rewrite ?EtaInterp.InterpExprEta ------ 3.0% 3.0% 1 1.732s
+─ReflectiveTactics.unify_abstract_cbv_in 1.4% 2.1% 1 1.212s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 94.6% 1 54.224s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 86.2% 1 49.452s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 85.9% 1 49.264s
+ │ ├─ReflectiveTactics.do_reify -------- -0.0% 57.6% 1 33.004s
+ │ │└Reify.Reify_rhs_gen --------------- 1.3% 56.9% 1 32.608s
+ │ │ ├─Reify.do_reify_abs_goal --------- 43.1% 43.3% 2 24.840s
+ │ │ │└Reify.do_reifyf_goal ------------ 42.3% 42.6% 117 12.704s
+ │ │ │└eexact -------------------------- 13.4% 13.4% 117 0.084s
+ │ │ ├─prove_interp_compile_correct ---- 0.0% 3.3% 1 1.904s
+ │ │ │└rewrite ?EtaInterp.InterpExprEta 3.0% 3.0% 1 1.732s
+ │ │ └─rewrite H ----------------------- 3.3% 3.3% 1 1.896s
+ │ └─ReflectiveTactics.solve_post_reifie 0.1% 28.4% 1 16.260s
+ │ ├─UnifyAbstractReflexivity.unify_tr 19.6% 25.0% 7 4.824s
+ │ │└unify (constr) (constr) --------- 4.8% 4.8% 5 1.540s
+ │ └─ReflectiveTactics.unify_abstract_ 1.4% 2.1% 1 1.212s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 8.3% 1 4.772s
+ └Glue.zrange_to_reflective ----------- 0.0% 7.8% 1 4.484s
+ └Glue.zrange_to_reflective_goal ------ 1.7% 6.0% 1 3.464s
+ └pose proof (pf : Interpretation. 4.2% 4.2% 1 2.416s
+─synthesize ---------------------------- 0.0% 5.4% 1 3.124s
+└IntegrationTestTemporaryMiscCommon.do_r 0.0% 5.3% 1 3.040s
+└change G' ----------------------------- 5.2% 5.2% 1 2.964s
+
+src/Specific/solinas32_2e255m765_13limbs/femul (real: 181.77, user: 168.52, sys: 0.40, mem: 1589516 ko)
+COQC src/Specific/NISTP256/AMD64/femul.v
+Finished transaction in 119.257 secs (109.936u,0.256s) (successful)
+total time: 110.140s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 97.1% 1 106.964s
+─ReflectiveTactics.do_reflective_pipelin -0.0% 96.4% 1 106.196s
+─ReflectiveTactics.solve_side_conditions 0.0% 96.2% 1 105.992s
+─ReflectiveTactics.do_reify ------------ -0.0% 83.7% 1 92.208s
+─Reify.Reify_rhs_gen ------------------- 0.7% 83.5% 1 91.960s
+─Reify.do_reify_abs_goal --------------- 77.7% 77.8% 2 85.708s
+─Reify.do_reifyf_goal ------------------ 77.4% 77.5% 901 85.364s
+─eexact -------------------------------- 17.9% 17.9% 903 0.136s
+─ReflectiveTactics.solve_post_reified_si 0.3% 12.5% 1 13.784s
+─UnifyAbstractReflexivity.unify_transfor 9.8% 11.2% 7 3.356s
+─synthesize_montgomery ----------------- 0.0% 2.9% 1 3.176s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 97.1% 1 106.964s
+└ReflectiveTactics.do_reflective_pipelin -0.0% 96.4% 1 106.196s
+└ReflectiveTactics.solve_side_conditions 0.0% 96.2% 1 105.992s
+ ├─ReflectiveTactics.do_reify ---------- -0.0% 83.7% 1 92.208s
+ │└Reify.Reify_rhs_gen ----------------- 0.7% 83.5% 1 91.960s
+ │└Reify.do_reify_abs_goal ------------- 77.7% 77.8% 2 85.708s
+ │└Reify.do_reifyf_goal ---------------- 77.4% 77.5% 901 85.364s
+ │└eexact ------------------------------ 17.7% 17.7% 901 0.136s
+ └─ReflectiveTactics.solve_post_reified_ 0.3% 12.5% 1 13.784s
+ └UnifyAbstractReflexivity.unify_transf 9.8% 11.2% 7 3.356s
+─synthesize_montgomery ----------------- 0.0% 2.9% 1 3.176s
+
+Finished transaction in 61.452 secs (58.503u,0.055s) (successful)
+Closed under the global context
+total time: 110.140s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 97.1% 1 106.964s
+─ReflectiveTactics.do_reflective_pipelin -0.0% 96.4% 1 106.196s
+─ReflectiveTactics.solve_side_conditions 0.0% 96.2% 1 105.992s
+─ReflectiveTactics.do_reify ------------ -0.0% 83.7% 1 92.208s
+─Reify.Reify_rhs_gen ------------------- 0.7% 83.5% 1 91.960s
+─Reify.do_reify_abs_goal --------------- 77.7% 77.8% 2 85.708s
+─Reify.do_reifyf_goal ------------------ 77.4% 77.5% 901 85.364s
+─eexact -------------------------------- 17.9% 17.9% 903 0.136s
+─ReflectiveTactics.solve_post_reified_si 0.3% 12.5% 1 13.784s
+─UnifyAbstractReflexivity.unify_transfor 9.8% 11.2% 7 3.356s
+─synthesize_montgomery ----------------- 0.0% 2.9% 1 3.176s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─Pipeline.refine_reflectively_gen ------ 0.0% 97.1% 1 106.964s
+└ReflectiveTactics.do_reflective_pipelin -0.0% 96.4% 1 106.196s
+└ReflectiveTactics.solve_side_conditions 0.0% 96.2% 1 105.992s
+ ├─ReflectiveTactics.do_reify ---------- -0.0% 83.7% 1 92.208s
+ │└Reify.Reify_rhs_gen ----------------- 0.7% 83.5% 1 91.960s
+ │└Reify.do_reify_abs_goal ------------- 77.7% 77.8% 2 85.708s
+ │└Reify.do_reifyf_goal ---------------- 77.4% 77.5% 901 85.364s
+ │└eexact ------------------------------ 17.7% 17.7% 901 0.136s
+ └─ReflectiveTactics.solve_post_reified_ 0.3% 12.5% 1 13.784s
+ └UnifyAbstractReflexivity.unify_transf 9.8% 11.2% 7 3.356s
+─synthesize_montgomery ----------------- 0.0% 2.9% 1 3.176s
+
+src/Specific/NISTP256/AMD64/femul (real: 202.96, user: 189.62, sys: 0.64, mem: 3302508 ko)
+COQC src/Specific/NISTP256/AMD64/femulDisplay > src/Specific/NISTP256/AMD64/femulDisplay.log
+COQC src/Specific/X25519/C64/ladderstep.v
+total time: 52.080s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_xzladderstep --------------- 0.0% 100.0% 1 52.080s
+─Pipeline.refine_reflectively_gen ------ 0.0% 98.5% 1 51.320s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 93.8% 1 48.872s
+─ReflectiveTactics.solve_side_conditions 0.0% 93.7% 1 48.776s
+─ReflectiveTactics.solve_post_reified_si 0.2% 56.5% 1 29.412s
+─UnifyAbstractReflexivity.unify_transfor 44.7% 49.1% 7 6.968s
+─ReflectiveTactics.do_reify ------------ 0.0% 37.2% 1 19.364s
+─Reify.Reify_rhs_gen ------------------- 2.1% 23.4% 1 12.200s
+─Reify.do_reifyf_goal ------------------ 11.2% 11.3% 138 1.884s
+─Compilers.Reify.reify_context_variables 0.1% 9.2% 1 4.808s
+─rewrite H ----------------------------- 7.3% 7.3% 1 3.816s
+─ReflectiveTactics.unify_abstract_cbv_in 4.7% 6.4% 1 3.336s
+─Glue.refine_to_reflective_glue' ------- 0.0% 4.7% 1 2.448s
+─Glue.zrange_to_reflective ------------- 0.0% 4.0% 1 2.068s
+─Reify.transitivity_tt ----------------- 0.1% 3.7% 2 0.984s
+─transitivity -------------------------- 3.5% 3.5% 10 0.880s
+─reflexivity --------------------------- 3.4% 3.4% 11 0.772s
+─Glue.zrange_to_reflective_goal -------- 2.4% 3.3% 1 1.728s
+─eexact -------------------------------- 3.2% 3.2% 140 0.032s
+─unify (constr) (constr) --------------- 3.1% 3.1% 6 0.852s
+─clear (var_list) ---------------------- 3.1% 3.1% 98 0.584s
+─UnfoldArg.unfold_second_arg ----------- 0.4% 3.0% 2 1.576s
+─tac ----------------------------------- 2.1% 3.0% 2 1.564s
+─ClearAll.clear_all -------------------- 0.2% 2.8% 7 0.584s
+─ChangeInAll.change_with_compute_in_all 0.0% 2.6% 221 0.012s
+─change c with c' in * ----------------- 2.5% 2.5% 221 0.012s
+─Reify.do_reify_abs_goal --------------- 2.4% 2.5% 2 1.276s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_xzladderstep --------------- 0.0% 100.0% 1 52.080s
+└Pipeline.refine_reflectively_gen ------ 0.0% 98.5% 1 51.320s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 93.8% 1 48.872s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 93.7% 1 48.776s
+ │ ├─ReflectiveTactics.solve_post_reifie 0.2% 56.5% 1 29.412s
+ │ │ ├─UnifyAbstractReflexivity.unify_tr 44.7% 49.1% 7 6.968s
+ │ │ │└ClearAll.clear_all -------------- 0.2% 2.8% 7 0.584s
+ │ │ │└clear (var_list) ---------------- 2.7% 2.7% 65 0.584s
+ │ │ └─ReflectiveTactics.unify_abstract_ 4.7% 6.4% 1 3.336s
+ │ └─ReflectiveTactics.do_reify -------- 0.0% 37.2% 1 19.364s
+ │ ├─Reify.Reify_rhs_gen ------------- 2.1% 23.4% 1 12.200s
+ │ │ ├─rewrite H --------------------- 7.3% 7.3% 1 3.816s
+ │ │ ├─Reify.transitivity_tt --------- 0.1% 3.7% 2 0.984s
+ │ │ │└transitivity ------------------ 3.4% 3.4% 4 0.880s
+ │ │ ├─tac --------------------------- 2.1% 3.0% 1 1.564s
+ │ │ └─Reify.do_reify_abs_goal ------- 2.4% 2.5% 2 1.276s
+ │ │ └Reify.do_reifyf_goal ---------- 2.2% 2.2% 25 1.148s
+ │ ├─Compilers.Reify.reify_context_var 0.1% 9.2% 1 4.808s
+ │ │└Reify.do_reifyf_goal ------------ 9.0% 9.1% 113 1.884s
+ │ │└eexact -------------------------- 2.4% 2.4% 113 0.032s
+ │ └─UnfoldArg.unfold_second_arg ----- 0.4% 3.0% 2 1.576s
+ │ └ChangeInAll.change_with_compute_i 0.0% 2.6% 221 0.012s
+ │ └change c with c' in * ----------- 2.5% 2.5% 221 0.012s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 4.7% 1 2.448s
+ └Glue.zrange_to_reflective ----------- 0.0% 4.0% 1 2.068s
+ └Glue.zrange_to_reflective_goal ------ 2.4% 3.3% 1 1.728s
+
+Finished transaction in 171.122 secs (161.392u,0.039s) (successful)
+Closed under the global context
+total time: 52.080s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_xzladderstep --------------- 0.0% 100.0% 1 52.080s
+─Pipeline.refine_reflectively_gen ------ 0.0% 98.5% 1 51.320s
+─ReflectiveTactics.do_reflective_pipelin 0.0% 93.8% 1 48.872s
+─ReflectiveTactics.solve_side_conditions 0.0% 93.7% 1 48.776s
+─ReflectiveTactics.solve_post_reified_si 0.2% 56.5% 1 29.412s
+─UnifyAbstractReflexivity.unify_transfor 44.7% 49.1% 7 6.968s
+─ReflectiveTactics.do_reify ------------ 0.0% 37.2% 1 19.364s
+─Reify.Reify_rhs_gen ------------------- 2.1% 23.4% 1 12.200s
+─Reify.do_reifyf_goal ------------------ 11.2% 11.3% 138 1.884s
+─Compilers.Reify.reify_context_variables 0.1% 9.2% 1 4.808s
+─rewrite H ----------------------------- 7.3% 7.3% 1 3.816s
+─ReflectiveTactics.unify_abstract_cbv_in 4.7% 6.4% 1 3.336s
+─Glue.refine_to_reflective_glue' ------- 0.0% 4.7% 1 2.448s
+─Glue.zrange_to_reflective ------------- 0.0% 4.0% 1 2.068s
+─Reify.transitivity_tt ----------------- 0.1% 3.7% 2 0.984s
+─transitivity -------------------------- 3.5% 3.5% 10 0.880s
+─reflexivity --------------------------- 3.4% 3.4% 11 0.772s
+─Glue.zrange_to_reflective_goal -------- 2.4% 3.3% 1 1.728s
+─eexact -------------------------------- 3.2% 3.2% 140 0.032s
+─unify (constr) (constr) --------------- 3.1% 3.1% 6 0.852s
+─clear (var_list) ---------------------- 3.1% 3.1% 98 0.584s
+─UnfoldArg.unfold_second_arg ----------- 0.4% 3.0% 2 1.576s
+─tac ----------------------------------- 2.1% 3.0% 2 1.564s
+─ClearAll.clear_all -------------------- 0.2% 2.8% 7 0.584s
+─ChangeInAll.change_with_compute_in_all 0.0% 2.6% 221 0.012s
+─change c with c' in * ----------------- 2.5% 2.5% 221 0.012s
+─Reify.do_reify_abs_goal --------------- 2.4% 2.5% 2 1.276s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─synthesize_xzladderstep --------------- 0.0% 100.0% 1 52.080s
+└Pipeline.refine_reflectively_gen ------ 0.0% 98.5% 1 51.320s
+ ├─ReflectiveTactics.do_reflective_pipel 0.0% 93.8% 1 48.872s
+ │└ReflectiveTactics.solve_side_conditio 0.0% 93.7% 1 48.776s
+ │ ├─ReflectiveTactics.solve_post_reifie 0.2% 56.5% 1 29.412s
+ │ │ ├─UnifyAbstractReflexivity.unify_tr 44.7% 49.1% 7 6.968s
+ │ │ │└ClearAll.clear_all -------------- 0.2% 2.8% 7 0.584s
+ │ │ │└clear (var_list) ---------------- 2.7% 2.7% 65 0.584s
+ │ │ └─ReflectiveTactics.unify_abstract_ 4.7% 6.4% 1 3.336s
+ │ └─ReflectiveTactics.do_reify -------- 0.0% 37.2% 1 19.364s
+ │ ├─Reify.Reify_rhs_gen ------------- 2.1% 23.4% 1 12.200s
+ │ │ ├─rewrite H --------------------- 7.3% 7.3% 1 3.816s
+ │ │ ├─Reify.transitivity_tt --------- 0.1% 3.7% 2 0.984s
+ │ │ │└transitivity ------------------ 3.4% 3.4% 4 0.880s
+ │ │ ├─tac --------------------------- 2.1% 3.0% 1 1.564s
+ │ │ └─Reify.do_reify_abs_goal ------- 2.4% 2.5% 2 1.276s
+ │ │ └Reify.do_reifyf_goal ---------- 2.2% 2.2% 25 1.148s
+ │ ├─Compilers.Reify.reify_context_var 0.1% 9.2% 1 4.808s
+ │ │└Reify.do_reifyf_goal ------------ 9.0% 9.1% 113 1.884s
+ │ │└eexact -------------------------- 2.4% 2.4% 113 0.032s
+ │ └─UnfoldArg.unfold_second_arg ----- 0.4% 3.0% 2 1.576s
+ │ └ChangeInAll.change_with_compute_i 0.0% 2.6% 221 0.012s
+ │ └change c with c' in * ----------- 2.5% 2.5% 221 0.012s
+ └─Glue.refine_to_reflective_glue' ----- 0.0% 4.7% 1 2.448s
+ └Glue.zrange_to_reflective ----------- 0.0% 4.0% 1 2.068s
+ └Glue.zrange_to_reflective_goal ------ 2.4% 3.3% 1 1.728s
+
+src/Specific/X25519/C64/ladderstep (real: 256.77, user: 241.34, sys: 0.45, mem: 1617000 ko)
+COQC src/Specific/X25519/C64/ladderstepDisplay > src/Specific/X25519/C64/ladderstepDisplay.log
diff --git a/test-suite/coq-makefile/timing/precomputed-time-tests/run.sh b/test-suite/coq-makefile/timing/precomputed-time-tests/run.sh
new file mode 100755
index 0000000000..a918cceb66
--- /dev/null
+++ b/test-suite/coq-makefile/timing/precomputed-time-tests/run.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+
+set -x
+set -e
+
+cd "$(dirname "${BASH_SOURCE[0]}")"
+export COQLIB="$(cd ../../../.. && pwd)"
+
+./001-correct-diff-sorting-order/run.sh || exit $?
+./002-single-file-sorting/run.sh || exit $?
diff --git a/test-suite/coq-makefile/timing/run.sh b/test-suite/coq-makefile/timing/run.sh
index 7e0baaa8f2..aa6b0a9a43 100755
--- a/test-suite/coq-makefile/timing/run.sh
+++ b/test-suite/coq-makefile/timing/run.sh
@@ -3,9 +3,12 @@
#set -x
set -e
-. ../template/init.sh
+. ../template/path-init.sh
-cd error
+cd precomputed-time-tests
+./run.sh || exit $?
+
+cd ../error
coq_makefile -f _CoqProject -o Makefile
make cleanall
if make pretty-timed TGTS="all" -j1; then
@@ -28,19 +31,42 @@ coq_makefile -f _CoqProject -o Makefile
make cleanall
make make-pretty-timed-after TGTS="all" -j1 || exit $?
rm -f time-of-build-before.log
-make print-pretty-timed-diff TIME_OF_BUILD_BEFORE_FILE=../before/time-of-build-before.log
+make print-pretty-timed-diff TIMING_SORT_BY=diff TIME_OF_BUILD_BEFORE_FILE=../before/time-of-build-before.log
cp ../before/time-of-build-before.log ./
-make print-pretty-timed-diff || exit $?
+make print-pretty-timed-diff TIMING_SORT_BY=diff || exit $?
INFINITY="∞"
INFINITY_REPLACEMENT="+.%" # assume that if the before time is zero, we expected the time to increase
+TO_SED_IN_BOTH=(
+ -e s"/${INFINITY}/${INFINITY_REPLACEMENT}/g" # Whether or not something shows up as ∞ depends on whether a time registers as 0.s or as 0.001s, so we can't rely on this being consistent
+ -e s":|\s*N/A\s*$:| ${INFINITY_REPLACEMENT}:g" # Whether or not something shows up as N/A depends on whether a time registers as 0.s or as 0.001s, so we can't rely on this being consistent
+ -e s'/ *$//g' # the number of trailing spaces depends on how many digits percentages end up being; since this varies across runs, we remove trailing spaces
+ -e s'/[0-9]*\.[0-9]*//g' # the precise timing numbers vary, so we strip them out
+ -e s'/^-*$/------/g' # When none of the numbers get over 100 (or 1000, in per-file), the width of the table is different, so we normalize the number of dashes for table separators
+)
+
+TO_SED_IN_PER_FILE=(
+ -e s'/[0-9]//g' # unclear whether this is actually needed above and beyond s'/[0-9]*\.[0-9]*//g'; it's been here from the start
+ -e s'/ */ /g' # unclear whether this is actually needed for per-file timing; it's been here from the start
+ -e s'/\(Total.*\)-\(.*\)-/\1+\2+/g' # Overall time in the per-file timing diff should be around 0; if it comes out negative, we remove the sign
+)
+
+TO_SED_IN_PER_LINE=(
+ -e s'/0//g' # unclear whether this is actually needed above and beyond s'/[0-9]*\.[0-9]*//g'; it's been here from the start
+ -e s'/ */ /g' # Sometimes 0 will show up as 0m00.s, sometimes it'll end up being more like 0m00.001s; we must strip out the spaces that result from left-aligning numbers of different widths based on how many digits Coq's [-time] gives
+ -e s'/+/-/g' # some code lines don't really change, but this can show up as either -0m00.01s or +0m00.01s, so we need to normalize the signs
+ )
+
for ext in "" .desired; do
for file in time-of-build-before.log time-of-build-after.log time-of-build-both.log; do
- cat ${file}${ext} | grep -v 'warning: undefined variable' | sed s"/${INFINITY}/${INFINITY_REPLACEMENT}/g" | sed s'/[0-9]//g' | sed s'/ *$//g' | sed s":|\s*N/A\s*$:| ${INFINITY_REPLACEMENT}:g" | sed s'/^-*$/------/g' | sed s'/ */ /g' | sed s'/\(Total.*\)-\(.*\)-/\1+\2+/g' > ${file}${ext}.processed
+ cat ${file}${ext} | grep -v 'warning: undefined variable' | sed "${TO_SED_IN_BOTH[@]}" "${TO_SED_IN_PER_FILE[@]}" > ${file}${ext}.processed
done
done
for file in time-of-build-before.log time-of-build-after.log time-of-build-both.log; do
+ echo "cat $file"
+ cat "$file"
+ echo
diff -u $file.desired.processed $file.processed || exit $?
done
@@ -56,12 +82,19 @@ make all TIMING=after -j2 || exit $?
find ../per-file-before/ -name "*.before-timing" -exec 'cp' '{}' './' ';'
make all.timing.diff -j2 || exit $?
+echo "cat A.v.before-timing"
+cat A.v.before-timing
+echo
+echo "cat A.v.after-timing"
+cat A.v.after-timing
+echo
+echo "cat A.v.timing.diff"
cat A.v.timing.diff
echo
for ext in "" .desired; do
for file in A.v.timing.diff; do
- cat ${file}${ext} | sed s"/${INFINITY}/${INFINITY_REPLACEMENT}/g" | sed s":|\s*N/A\s*$:| ${INFINITY_REPLACEMENT}:g" | sed s'/[0-9]*\.[0-9]*//g' | sed s'/0//g' | sed s'/ */ /g' | sed s'/+/-/g' | sort > ${file}${ext}.processed
+ cat ${file}${ext} | sed "${TO_SED_IN_BOTH[@]}" "${TO_SED_IN_PER_LINE[@]}" | sort > ${file}${ext}.processed
done
done
for file in A.v.timing.diff; do
diff --git a/test-suite/coq-makefile/vio2vo/_CoqProject b/test-suite/coq-makefile/vio2vo/_CoqProject
new file mode 100644
index 0000000000..69f47302e1
--- /dev/null
+++ b/test-suite/coq-makefile/vio2vo/_CoqProject
@@ -0,0 +1,10 @@
+-R src test
+-R theories test
+-I src
+
+src/test_plugin.mlpack
+src/test.ml4
+src/test.mli
+src/test_aux.ml
+src/test_aux.mli
+theories/test.v
diff --git a/test-suite/coq-makefile/vio2vo/run.sh b/test-suite/coq-makefile/vio2vo/run.sh
new file mode 100755
index 0000000000..85656da419
--- /dev/null
+++ b/test-suite/coq-makefile/vio2vo/run.sh
@@ -0,0 +1,13 @@
+#!/usr/bin/env bash
+a=`uname`
+
+. ../template/init.sh
+
+coq_makefile -f _CoqProject -o Makefile
+make quick
+# vio2vo is broken on Windows (#6720)
+if [ "$a" = "Darwin" -o "$a" = "Linux" ]; then
+ make vio2vo J=2
+ test -f theories/test.vo
+ make validate
+fi
diff --git a/test-suite/coqchk/include.v b/test-suite/coqchk/include.v
new file mode 100644
index 0000000000..6232c1b80f
--- /dev/null
+++ b/test-suite/coqchk/include.v
@@ -0,0 +1,11 @@
+(* See https://github.com/coq/coq/issues/5747 *)
+Module Type S.
+End S.
+
+Module N.
+Inductive I := .
+End N.
+
+Module M : S.
+ Include N.
+End M.
diff --git a/test-suite/coqchk/primproj2.v b/test-suite/coqchk/primproj2.v
new file mode 100644
index 0000000000..f73c627ee4
--- /dev/null
+++ b/test-suite/coqchk/primproj2.v
@@ -0,0 +1,10 @@
+Set Primitive Projections.
+
+Record Pack (A : Type) := pack { unpack : A }.
+
+Definition p : Pack bool.
+Proof.
+refine (pack _ true).
+Qed.
+
+Definition boom : unpack bool p = let u := unpack _ in u p := eq_refl.
diff --git a/test-suite/coqdoc/bug5648.html.out b/test-suite/coqdoc/bug5648.html.out
index 06789c1c10..5c5a2dc299 100644
--- a/test-suite/coqdoc/bug5648.html.out
+++ b/test-suite/coqdoc/bug5648.html.out
@@ -2,7 +2,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="coqdoc.css" rel="stylesheet" type="text/css" />
<title>Coqdoc.bug5648</title>
</head>
@@ -31,14 +31,14 @@
<br/>
<span class="id" title="keyword">Definition</span> <a name="d"><span class="id" title="definition">d</span></a> <span class="id" title="var">x</span> :=<br/>
&nbsp;&nbsp;<span class="id" title="keyword">match</span> <a class="idref" href="Coqdoc.bug5648.html#x"><span class="id" title="variable">x</span></a> <span class="id" title="keyword">with</span><br/>
-&nbsp;&nbsp;| <a class="idref" href="Coqdoc.bug5648.html#A"><span class="id" title="constructor">A</span></a> =&gt; 0<br/>
-&nbsp;&nbsp;| <a class="idref" href="Coqdoc.bug5648.html#Add"><span class="id" title="constructor">Add</span></a> =&gt; 1<br/>
-&nbsp;&nbsp;| <a class="idref" href="Coqdoc.bug5648.html#G"><span class="id" title="constructor">G</span></a> =&gt; 2<br/>
-&nbsp;&nbsp;| <a class="idref" href="Coqdoc.bug5648.html#Goal"><span class="id" title="constructor">Goal</span></a> =&gt; 3<br/>
-&nbsp;&nbsp;| <a class="idref" href="Coqdoc.bug5648.html#L"><span class="id" title="constructor">L</span></a> =&gt; 4<br/>
-&nbsp;&nbsp;| <a class="idref" href="Coqdoc.bug5648.html#Lemma"><span class="id" title="constructor">Lemma</span></a> =&gt; 5<br/>
-&nbsp;&nbsp;| <a class="idref" href="Coqdoc.bug5648.html#P"><span class="id" title="constructor">P</span></a> =&gt; 6<br/>
-&nbsp;&nbsp;| <a class="idref" href="Coqdoc.bug5648.html#Proof"><span class="id" title="constructor">Proof</span></a> =&gt; 7<br/>
+&nbsp;&nbsp;| <a class="idref" href="Coqdoc.bug5648.html#A"><span class="id" title="constructor">A</span></a> ⇒ 0<br/>
+&nbsp;&nbsp;| <a class="idref" href="Coqdoc.bug5648.html#Add"><span class="id" title="constructor">Add</span></a> ⇒ 1<br/>
+&nbsp;&nbsp;| <a class="idref" href="Coqdoc.bug5648.html#G"><span class="id" title="constructor">G</span></a> ⇒ 2<br/>
+&nbsp;&nbsp;| <a class="idref" href="Coqdoc.bug5648.html#Goal"><span class="id" title="constructor">Goal</span></a> ⇒ 3<br/>
+&nbsp;&nbsp;| <a class="idref" href="Coqdoc.bug5648.html#L"><span class="id" title="constructor">L</span></a> ⇒ 4<br/>
+&nbsp;&nbsp;| <a class="idref" href="Coqdoc.bug5648.html#Lemma"><span class="id" title="constructor">Lemma</span></a> ⇒ 5<br/>
+&nbsp;&nbsp;| <a class="idref" href="Coqdoc.bug5648.html#P"><span class="id" title="constructor">P</span></a> ⇒ 6<br/>
+&nbsp;&nbsp;| <a class="idref" href="Coqdoc.bug5648.html#Proof"><span class="id" title="constructor">Proof</span></a> ⇒ 7<br/>
&nbsp;&nbsp;<span class="id" title="keyword">end</span>.<br/>
</div>
</div>
diff --git a/test-suite/coqdoc/bug5648.tex.out b/test-suite/coqdoc/bug5648.tex.out
index b0b732effa..82f7da2309 100644
--- a/test-suite/coqdoc/bug5648.tex.out
+++ b/test-suite/coqdoc/bug5648.tex.out
@@ -1,5 +1,15 @@
\documentclass[12pt]{report}
-\usepackage[]{inputenc}
+\usepackage[utf8x]{inputenc}
+
+%Warning: tipa declares many non-standard macros used by utf8x to
+%interpret utf8 characters but extra packages might have to be added
+%such as "textgreek" for Greek letters not already in tipa
+%or "stmaryrd" for mathematical symbols.
+%Utf8 codes missing a LaTeX interpretation can be defined by using
+%\DeclareUnicodeCharacter{code}{interpretation}.
+%Use coqdoc's option -p to add new packages or declarations.
+\usepackage{tipa}
+
\usepackage[T1]{fontenc}
\usepackage{fullpage}
\usepackage{coqdoc}
diff --git a/test-suite/coqdoc/bug5700.html.out b/test-suite/coqdoc/bug5700.html.out
index 0e05660d6c..b96fc6281d 100644
--- a/test-suite/coqdoc/bug5700.html.out
+++ b/test-suite/coqdoc/bug5700.html.out
@@ -2,7 +2,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="coqdoc.css" rel="stylesheet" type="text/css" />
<title>Coqdoc.bug5700</title>
</head>
diff --git a/test-suite/coqdoc/bug5700.tex.out b/test-suite/coqdoc/bug5700.tex.out
index 33990cb89f..1a1af5dfdd 100644
--- a/test-suite/coqdoc/bug5700.tex.out
+++ b/test-suite/coqdoc/bug5700.tex.out
@@ -1,5 +1,15 @@
\documentclass[12pt]{report}
-\usepackage[]{inputenc}
+\usepackage[utf8x]{inputenc}
+
+%Warning: tipa declares many non-standard macros used by utf8x to
+%interpret utf8 characters but extra packages might have to be added
+%such as "textgreek" for Greek letters not already in tipa
+%or "stmaryrd" for mathematical symbols.
+%Utf8 codes missing a LaTeX interpretation can be defined by using
+%\DeclareUnicodeCharacter{code}{interpretation}.
+%Use coqdoc's option -p to add new packages or declarations.
+\usepackage{tipa}
+
\usepackage[T1]{fontenc}
\usepackage{fullpage}
\usepackage{coqdoc}
diff --git a/test-suite/coqdoc/links.html.out b/test-suite/coqdoc/links.html.out
index e2928f78d4..5e4b676c2f 100644
--- a/test-suite/coqdoc/links.html.out
+++ b/test-suite/coqdoc/links.html.out
@@ -2,7 +2,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="coqdoc.css" rel="stylesheet" type="text/css" />
<title>Coqdoc.links</title>
</head>
@@ -57,7 +57,7 @@ Various checks for coqdoc
<span class="id" title="keyword">Definition</span> <a name="a"><span class="id" title="definition">a</span></a> (<span class="id" title="var">b</span>: <a class="idref" href="http://coq.inria.fr/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) := <a class="idref" href="Coqdoc.links.html#b"><span class="id" title="variable">b</span></a>.<br/>
<br/>
-<span class="id" title="keyword">Definition</span> <a name="f"><span class="id" title="definition">f</span></a> := <span class="id" title="keyword">forall</span> <span class="id" title="var">C</span>:<span class="id" title="keyword">Prop</span>, <a class="idref" href="Coqdoc.links.html#C"><span class="id" title="variable">C</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="f"><span class="id" title="definition">f</span></a> := <span class="id" title="keyword">∀</span> <span class="id" title="var">C</span>:<span class="id" title="keyword">Prop</span>, <a class="idref" href="Coqdoc.links.html#C"><span class="id" title="variable">C</span></a>.<br/>
<br/>
<span class="id" title="keyword">Notation</span> <a name="1a1c7f13320341c3638e9edcc3e6389d"><span class="id" title="notation">&quot;</span></a>n ++ m" := (<a class="idref" href="http://coq.inria.fr/stdlib/Coq.Init.Peano.html#plus"><span class="id" title="abbreviation">plus</span></a> <span class="id" title="var">n</span> <span class="id" title="var">m</span>).<br/>
@@ -74,9 +74,9 @@ Various checks for coqdoc
<span class="id" title="keyword">Notation</span> <a name="347f39a83bf7d45676cff54fd7e8966f"><span class="id" title="notation">&quot;</span></a>n '_' ++ 'x' m" := (<a class="idref" href="http://coq.inria.fr/stdlib/Coq.Init.Peano.html#plus"><span class="id" title="abbreviation">plus</span></a> <span class="id" title="var">n</span> <span class="id" title="var">m</span>) (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 3).<br/>
<br/>
-<span class="id" title="keyword">Inductive</span> <a name="eq"><span class="id" title="inductive">eq</span></a> (<span class="id" title="var">A</span>:<span class="id" title="keyword">Type</span>) (<span class="id" title="var">x</span>:<a class="idref" href="Coqdoc.links.html#A"><span class="id" title="variable">A</span></a>) : <span class="id" title="var">A</span> <a class="idref" href="http://coq.inria.fr/stdlib/Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">-&gt;</span></a> <span class="id" title="keyword">Prop</span> := <a name="eq_refl"><span class="id" title="constructor">eq_refl</span></a> : <a class="idref" href="Coqdoc.links.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="Coqdoc.links.html#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">=</span></a> <a class="idref" href="Coqdoc.links.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="Coqdoc.links.html#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">:&gt;</span></a><a class="idref" href="Coqdoc.links.html#A"><span class="id" title="variable">A</span></a><br/>
+<span class="id" title="keyword">Inductive</span> <a name="eq"><span class="id" title="inductive">eq</span></a> (<span class="id" title="var">A</span>:<span class="id" title="keyword">Type</span>) (<span class="id" title="var">x</span>:<a class="idref" href="Coqdoc.links.html#A"><span class="id" title="variable">A</span></a>) : <span class="id" title="var">A</span> <a class="idref" href="http://coq.inria.fr/stdlib/Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <span class="id" title="keyword">Prop</span> := <a name="eq_refl"><span class="id" title="constructor">eq_refl</span></a> : <a class="idref" href="Coqdoc.links.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="Coqdoc.links.html#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">=</span></a> <a class="idref" href="Coqdoc.links.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="Coqdoc.links.html#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">:&gt;</span></a><a class="idref" href="Coqdoc.links.html#A"><span class="id" title="variable">A</span></a><br/>
<br/>
-<span class="id" title="keyword">where</span> <a name="8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">&quot;</span></a>x = y :&gt; A" := (@<a class="idref" href="Coqdoc.links.html#eq"><span class="id" title="inductive">eq</span></a> <a class="idref" href="Coqdoc.links.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="Coqdoc.links.html#x"><span class="id" title="variable">x</span></a> <span class="id" title="var">y</span>) : <span class="id" title="var">type_scope</span>.<br/>
+<span class="id" title="keyword">where</span> <a name="8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">&quot;</span></a>x = y :&gt; A" := (@<a class="idref" href="Coqdoc.links.html#eq"><span class="id" title="inductive">eq</span></a> <span class="id" title="var">A</span> <span class="id" title="var">x</span> <span class="id" title="var">y</span>) : <span class="id" title="var">type_scope</span>.<br/>
<br/>
<span class="id" title="keyword">Definition</span> <a name="eq0"><span class="id" title="definition">eq0</span></a> := 0 <a class="idref" href="Coqdoc.links.html#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">=</span></a> 0 <a class="idref" href="Coqdoc.links.html#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">:&gt;</span></a> <a class="idref" href="http://coq.inria.fr/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>.<br/>
diff --git a/test-suite/coqdoc/links.tex.out b/test-suite/coqdoc/links.tex.out
index de3182d1a0..f42db99dc2 100644
--- a/test-suite/coqdoc/links.tex.out
+++ b/test-suite/coqdoc/links.tex.out
@@ -1,5 +1,15 @@
\documentclass[12pt]{report}
-\usepackage[]{inputenc}
+\usepackage[utf8x]{inputenc}
+
+%Warning: tipa declares many non-standard macros used by utf8x to
+%interpret utf8 characters but extra packages might have to be added
+%such as "textgreek" for Greek letters not already in tipa
+%or "stmaryrd" for mathematical symbols.
+%Utf8 codes missing a LaTeX interpretation can be defined by using
+%\DeclareUnicodeCharacter{code}{interpretation}.
+%Use coqdoc's option -p to add new packages or declarations.
+\usepackage{tipa}
+
\usepackage[T1]{fontenc}
\usepackage{fullpage}
\usepackage{coqdoc}
@@ -59,7 +69,7 @@ Various checks for coqdoc
\coqdocnoindent
\coqdoceol
\coqdocnoindent
-\coqdockw{where} \coqdef{Coqdoc.links.:type scope:x '=' x ':>' x}{"}{"}x = y :> A" := (@\coqref{Coqdoc.links.eq}{\coqdocinductive{eq}} \coqdocvariable{A} \coqdocvariable{x} \coqdocvar{y}) : \coqdocvar{type\_scope}.\coqdoceol
+\coqdockw{where} \coqdef{Coqdoc.links.:type scope:x '=' x ':>' x}{"}{"}x = y :> A" := (@\coqref{Coqdoc.links.eq}{\coqdocinductive{eq}} \coqdocvar{A} \coqdocvar{x} \coqdocvar{y}) : \coqdocvar{type\_scope}.\coqdoceol
\coqdocemptyline
\coqdocnoindent
\coqdockw{Definition} \coqdef{Coqdoc.links.eq0}{eq0}{\coqdocdefinition{eq0}} := 0 \coqref{Coqdoc.links.:type scope:x '=' x ':>' x}{\coqdocnotation{=}} 0 \coqref{Coqdoc.links.:type scope:x '=' x ':>' x}{\coqdocnotation{:>}} \coqexternalref{nat}{http://coq.inria.fr/stdlib/Coq.Init.Datatypes}{\coqdocinductive{nat}}.\coqdoceol
diff --git a/test-suite/failure/Tauto.v b/test-suite/failure/Tauto.v
index 19976b41bd..81d5b6358e 100644
--- a/test-suite/failure/Tauto.v
+++ b/test-suite/failure/Tauto.v
@@ -1,9 +1,11 @@
(************************************************************************)
-(* v * The Coq Proof Assistant / The Coq Development Team *)
-(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2017 *)
+(* * The Coq Proof Assistant / The Coq Development Team *)
+(* v * INRIA, CNRS and contributors - Copyright 1999-2018 *)
+(* <O___,, * (see CREDITS file for the list of authors) *)
(* \VV/ **************************************************************)
-(* // * This file is distributed under the terms of the *)
-(* * GNU Lesser General Public License Version 2.1 *)
+(* // * This file is distributed under the terms of the *)
+(* * GNU Lesser General Public License Version 2.1 *)
+(* * (see LICENSE file for the text of the license) *)
(************************************************************************)
(**** Tactics Tauto and Intuition ****)
diff --git a/test-suite/failure/clash_cons.v b/test-suite/failure/clash_cons.v
index 1761cc437d..89299110be 100644
--- a/test-suite/failure/clash_cons.v
+++ b/test-suite/failure/clash_cons.v
@@ -1,9 +1,11 @@
(************************************************************************)
-(* v * The Coq Proof Assistant / The Coq Development Team *)
-(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2017 *)
+(* * The Coq Proof Assistant / The Coq Development Team *)
+(* v * INRIA, CNRS and contributors - Copyright 1999-2018 *)
+(* <O___,, * (see CREDITS file for the list of authors) *)
(* \VV/ **************************************************************)
-(* // * This file is distributed under the terms of the *)
-(* * GNU Lesser General Public License Version 2.1 *)
+(* // * This file is distributed under the terms of the *)
+(* * GNU Lesser General Public License Version 2.1 *)
+(* * (see LICENSE file for the text of the license) *)
(************************************************************************)
(* Teste la verification d'unicite des noms de constr *)
diff --git a/test-suite/failure/fixpoint1.v b/test-suite/failure/fixpoint1.v
index 0739982442..eb3d94526c 100644
--- a/test-suite/failure/fixpoint1.v
+++ b/test-suite/failure/fixpoint1.v
@@ -1,9 +1,11 @@
(************************************************************************)
-(* v * The Coq Proof Assistant / The Coq Development Team *)
-(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2017 *)
+(* * The Coq Proof Assistant / The Coq Development Team *)
+(* v * INRIA, CNRS and contributors - Copyright 1999-2018 *)
+(* <O___,, * (see CREDITS file for the list of authors) *)
(* \VV/ **************************************************************)
-(* // * This file is distributed under the terms of the *)
-(* * GNU Lesser General Public License Version 2.1 *)
+(* // * This file is distributed under the terms of the *)
+(* * GNU Lesser General Public License Version 2.1 *)
+(* * (see LICENSE file for the text of the license) *)
(************************************************************************)
Fail Fixpoint PreParadox (u : unit) : False := PreParadox u.
(*Definition Paradox := PreParadox tt.*)
diff --git a/test-suite/failure/fixpointeta.v b/test-suite/failure/fixpointeta.v
new file mode 100644
index 0000000000..9af719322f
--- /dev/null
+++ b/test-suite/failure/fixpointeta.v
@@ -0,0 +1,70 @@
+
+Set Primitive Projections.
+
+Record R := C { p : nat }.
+(* R is defined
+p is defined *)
+
+Unset Primitive Projections.
+Record R' := C' { p' : nat }.
+
+
+
+Fail Definition f := fix f (x : R) : nat := p x.
+(** Not allowed to make fixpoint defs on (non-recursive) records
+ having eta *)
+
+Fail Definition f := fix f (x : R') : nat := p' x.
+(** Even without eta (R' is not primitive here), as long as they're
+ found to be BiFinite (non-recursive), we disallow it *)
+
+(*
+
+(* Subject reduction failure example, if we allowed fixpoints *)
+
+Set Primitive Projections.
+
+Record R := C { p : nat }.
+
+Definition f := fix f (x : R) : nat := p x.
+
+(* eta rule for R *)
+Definition Rtr (P : R -> Type) x (v : P (C (p x))) : P x
+ := v.
+
+Definition goal := forall x, f x = p x.
+
+(* when we compute the Rtr away typechecking will fail *)
+Definition thing : goal := fun x =>
+(Rtr (fun x => f x = p x) x (eq_refl _)).
+
+Definition thing' := Eval compute in thing.
+
+Fail Check (thing = thing').
+(*
+The command has indeed failed with message:
+The term "thing'" has type "forall x : R, (let (p) := x in p) = (let (p) := x in p)"
+while it is expected to have type "goal" (cannot unify "(let (p) := x in p) = (let (p) := x in p)"
+and "f x = p x").
+*)
+
+Definition thing_refl := eq_refl thing.
+
+Fail Definition thing_refl' := Eval compute in thing_refl.
+(*
+The command has indeed failed with message:
+Illegal application:
+The term "@eq_refl" of type "forall (A : Type) (x : A), x = x"
+cannot be applied to the terms
+ "forall x : R, (fix f (x0 : R) : nat := let (p) := x0 in p) x = (let (p) := x in p)" : "Prop"
+ "fun x : R => eq_refl" : "forall x : R, (let (p) := x in p) = (let (p) := x in p)"
+The 2nd term has type "forall x : R, (let (p) := x in p) = (let (p) := x in p)"
+which should be coercible to
+ "forall x : R, (fix f (x0 : R) : nat := let (p) := x0 in p) x = (let (p) := x in p)".
+ *)
+
+Definition more_refls : thing_refl = thing_refl.
+Proof.
+ compute. reflexivity.
+Fail Defined. Abort.
+ *)
diff --git a/test-suite/failure/guard.v b/test-suite/failure/guard.v
index 312dc48bea..2a5ad7789c 100644
--- a/test-suite/failure/guard.v
+++ b/test-suite/failure/guard.v
@@ -1,9 +1,11 @@
(************************************************************************)
-(* v * The Coq Proof Assistant / The Coq Development Team *)
-(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2017 *)
+(* * The Coq Proof Assistant / The Coq Development Team *)
+(* v * INRIA, CNRS and contributors - Copyright 1999-2018 *)
+(* <O___,, * (see CREDITS file for the list of authors) *)
(* \VV/ **************************************************************)
-(* // * This file is distributed under the terms of the *)
-(* * GNU Lesser General Public License Version 2.1 *)
+(* // * This file is distributed under the terms of the *)
+(* * GNU Lesser General Public License Version 2.1 *)
+(* * (see LICENSE file for the text of the license) *)
(************************************************************************)
(*
Fixpoint F (n:nat) : False := F (match F n with end).
diff --git a/test-suite/failure/illtype1.v b/test-suite/failure/illtype1.v
index fdd1bddd88..ec43ea5fc8 100644
--- a/test-suite/failure/illtype1.v
+++ b/test-suite/failure/illtype1.v
@@ -1,8 +1,10 @@
(************************************************************************)
-(* v * The Coq Proof Assistant / The Coq Development Team *)
-(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2017 *)
+(* * The Coq Proof Assistant / The Coq Development Team *)
+(* v * INRIA, CNRS and contributors - Copyright 1999-2018 *)
+(* <O___,, * (see CREDITS file for the list of authors) *)
(* \VV/ **************************************************************)
-(* // * This file is distributed under the terms of the *)
-(* * GNU Lesser General Public License Version 2.1 *)
+(* // * This file is distributed under the terms of the *)
+(* * GNU Lesser General Public License Version 2.1 *)
+(* * (see LICENSE file for the text of the license) *)
(************************************************************************)
Fail Check (S S).
diff --git a/test-suite/failure/positivity.v b/test-suite/failure/positivity.v
index b21204b9e4..2798dcf974 100644
--- a/test-suite/failure/positivity.v
+++ b/test-suite/failure/positivity.v
@@ -1,9 +1,11 @@
(************************************************************************)
-(* v * The Coq Proof Assistant / The Coq Development Team *)
-(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2017 *)
+(* * The Coq Proof Assistant / The Coq Development Team *)
+(* v * INRIA, CNRS and contributors - Copyright 1999-2018 *)
+(* <O___,, * (see CREDITS file for the list of authors) *)
(* \VV/ **************************************************************)
-(* // * This file is distributed under the terms of the *)
-(* * GNU Lesser General Public License Version 2.1 *)
+(* // * This file is distributed under the terms of the *)
+(* * GNU Lesser General Public License Version 2.1 *)
+(* * (see LICENSE file for the text of the license) *)
(************************************************************************)
(* Negative occurrence *)
diff --git a/test-suite/failure/redef.v b/test-suite/failure/redef.v
index c49dbd7cae..981d14387d 100644
--- a/test-suite/failure/redef.v
+++ b/test-suite/failure/redef.v
@@ -1,9 +1,11 @@
(************************************************************************)
-(* v * The Coq Proof Assistant / The Coq Development Team *)
-(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2017 *)
+(* * The Coq Proof Assistant / The Coq Development Team *)
+(* v * INRIA, CNRS and contributors - Copyright 1999-2018 *)
+(* <O___,, * (see CREDITS file for the list of authors) *)
(* \VV/ **************************************************************)
-(* // * This file is distributed under the terms of the *)
-(* * GNU Lesser General Public License Version 2.1 *)
+(* // * This file is distributed under the terms of the *)
+(* * GNU Lesser General Public License Version 2.1 *)
+(* * (see LICENSE file for the text of the license) *)
(************************************************************************)
Definition toto := Set.
Fail Definition toto := Set.
diff --git a/test-suite/failure/search.v b/test-suite/failure/search.v
index fae6cd6f3b..058c427c93 100644
--- a/test-suite/failure/search.v
+++ b/test-suite/failure/search.v
@@ -1,9 +1,11 @@
(************************************************************************)
-(* v * The Coq Proof Assistant / The Coq Development Team *)
-(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2017 *)
+(* * The Coq Proof Assistant / The Coq Development Team *)
+(* v * INRIA, CNRS and contributors - Copyright 1999-2018 *)
+(* <O___,, * (see CREDITS file for the list of authors) *)
(* \VV/ **************************************************************)
-(* // * This file is distributed under the terms of the *)
-(* * GNU Lesser General Public License Version 2.1 *)
+(* // * This file is distributed under the terms of the *)
+(* * GNU Lesser General Public License Version 2.1 *)
+(* * (see LICENSE file for the text of the license) *)
(************************************************************************)
Fail SearchPattern (_ = _) outside n_existe_pas.
diff --git a/test-suite/ideal-features/Apply.v b/test-suite/ideal-features/Apply.v
index 85680e94b9..14eb1e3f96 100644
--- a/test-suite/ideal-features/Apply.v
+++ b/test-suite/ideal-features/Apply.v
@@ -1,9 +1,11 @@
(************************************************************************)
-(* v * The Coq Proof Assistant / The Coq Development Team *)
-(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2017 *)
+(* * The Coq Proof Assistant / The Coq Development Team *)
+(* v * INRIA, CNRS and contributors - Copyright 1999-2018 *)
+(* <O___,, * (see CREDITS file for the list of authors) *)
(* \VV/ **************************************************************)
-(* // * This file is distributed under the terms of the *)
-(* * GNU Lesser General Public License Version 2.1 *)
+(* // * This file is distributed under the terms of the *)
+(* * GNU Lesser General Public License Version 2.1 *)
+(* * (see LICENSE file for the text of the license) *)
(************************************************************************)
(* This needs step by step unfolding *)
diff --git a/test-suite/modules/SeveralWith.v b/test-suite/modules/SeveralWith.v
new file mode 100644
index 0000000000..bbf72a7648
--- /dev/null
+++ b/test-suite/modules/SeveralWith.v
@@ -0,0 +1,12 @@
+Module Type S.
+Parameter A : Type.
+End S.
+
+Module Type ES.
+Parameter A : Type.
+Parameter eq : A -> A -> Type.
+End ES.
+
+Module Make
+ (AX : S)
+ (X : ES with Definition A := AX.A with Definition eq := @eq AX.A).
diff --git a/test-suite/modules/WithDefUBinders.v b/test-suite/modules/WithDefUBinders.v
new file mode 100644
index 0000000000..e683455162
--- /dev/null
+++ b/test-suite/modules/WithDefUBinders.v
@@ -0,0 +1,15 @@
+
+Set Universe Polymorphism.
+Module Type T.
+ Axiom foo@{u v|u < v} : Type@{v}.
+End T.
+
+Module M : T with Definition foo@{u v} := Type@{u} : Type@{v}.
+ Definition foo@{u v} := Type@{u} : Type@{v}.
+End M.
+
+Fail Module M' : T with Definition foo := Type.
+
+(* Without the binder expression we have to do trickery to get the
+ universes in the right order. *)
+Module M' : T with Definition foo := let t := Type in t.
diff --git a/test-suite/modules/cumpoly.v b/test-suite/modules/cumpoly.v
new file mode 100644
index 0000000000..654b86cb44
--- /dev/null
+++ b/test-suite/modules/cumpoly.v
@@ -0,0 +1,19 @@
+Set Universe Polymorphism.
+
+(** Check that variance subtyping is respected. The signature T is asking for
+ invariance, while M provide an irrelevant implementation, which is deemed
+ legit.
+
+ There is currently no way to go the other way around, so it's not possible
+ to generate a counter-example that should fail with the wrong subtyping.
+*)
+
+Module Type T.
+Parameter t@{i|Set <= i} : Type@{i}.
+Cumulative Inductive I@{i|Set <= i} : Type@{i} := C : t@{i} -> I.
+End T.
+
+Module M : T.
+Definition t@{i|Set <= i} : Type@{i} := nat.
+Cumulative Inductive I@{i|Set <= i} : Type@{i} := C : t@{i} -> I.
+End M.
diff --git a/test-suite/output-modulo-time/ltacprof.out b/test-suite/output-modulo-time/ltacprof.out
index cc04c2c9bd..5553e1b38d 100644
--- a/test-suite/output-modulo-time/ltacprof.out
+++ b/test-suite/output-modulo-time/ltacprof.out
@@ -1,12 +1,15 @@
-total time: 1.528s
+total time: 1.032s
- tactic local total calls max
+ tactic local total calls max
────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
-─sleep' -------------------------------- 100.0% 100.0% 1 1.528s
+─sleep' -------------------------------- 100.0% 100.0% 1 1.032s
+─sleep --------------------------------- 0.0% 0.0% 0 0.000s
─constructor --------------------------- 0.0% 0.0% 1 0.000s
- tactic local total calls max
+ tactic local total calls max
────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
-─sleep' -------------------------------- 100.0% 100.0% 1 1.528s
+─sleep' -------------------------------- 100.0% 100.0% 1 1.032s
+─sleep --------------------------------- 0.0% 0.0% 0 0.000s
+└sleep' -------------------------------- 0.0% 0.0% 0 0.000s
─constructor --------------------------- 0.0% 0.0% 1 0.000s
diff --git a/test-suite/output-modulo-time/ltacprof_abstract.out b/test-suite/output-modulo-time/ltacprof_abstract.out
new file mode 100644
index 0000000000..fef4fa248d
--- /dev/null
+++ b/test-suite/output-modulo-time/ltacprof_abstract.out
@@ -0,0 +1,17 @@
+total time: 0.922s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─abstract (sleep; constructor) --------- 0.0% 100.0% 1 0.922s
+─sleep' -------------------------------- 100.0% 100.0% 1 0.922s
+─constructor --------------------------- 0.0% 0.0% 1 0.000s
+─sleep --------------------------------- 0.0% 0.0% 0 0.000s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─abstract (sleep; constructor) --------- 0.0% 100.0% 1 0.922s
+ ├─sleep' ------------------------------ 100.0% 100.0% 1 0.922s
+ ├─constructor ------------------------- 0.0% 0.0% 1 0.000s
+ └─sleep ------------------------------- 0.0% 0.0% 0 0.000s
+ └sleep' ------------------------------ 0.0% 0.0% 0 0.000s
+
diff --git a/test-suite/output-modulo-time/ltacprof_abstract.v b/test-suite/output-modulo-time/ltacprof_abstract.v
new file mode 100644
index 0000000000..10a76309e3
--- /dev/null
+++ b/test-suite/output-modulo-time/ltacprof_abstract.v
@@ -0,0 +1,8 @@
+(* -*- coq-prog-args: ("-profile-ltac-cutoff" "0.0") -*- *)
+Ltac sleep' := do 100 (do 100 (do 100 idtac)).
+Ltac sleep := sleep'.
+
+Theorem x : True.
+Proof.
+ idtac. idtac. abstract (sleep; constructor).
+Defined.
diff --git a/test-suite/output-modulo-time/ltacprof_cutoff.out b/test-suite/output-modulo-time/ltacprof_cutoff.out
index 0cd5777ccf..d91a38bb54 100644
--- a/test-suite/output-modulo-time/ltacprof_cutoff.out
+++ b/test-suite/output-modulo-time/ltacprof_cutoff.out
@@ -1,31 +1,37 @@
-total time: 1.584s
+total time: 1.632s
tactic local total calls max
────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
-─foo2 ---------------------------------- 0.0% 100.0% 1 1.584s
-─sleep --------------------------------- 100.0% 100.0% 3 0.572s
-─foo1 ---------------------------------- 0.0% 63.9% 1 1.012s
+─sleep --------------------------------- 100.0% 100.0% 3 0.584s
+─foo2 ---------------------------------- 0.0% 100.0% 1 1.632s
+─foo1 ---------------------------------- 0.0% 64.2% 1 1.048s
tactic local total calls max
────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
-─foo2 ---------------------------------- 0.0% 100.0% 1 1.584s
-└foo1 ---------------------------------- 0.0% 63.9% 1 1.012s
+─foo2 ---------------------------------- 0.0% 100.0% 1 1.632s
+└foo1 ---------------------------------- 0.0% 64.2% 1 1.048s
-total time: 1.584s
+total time: 0.520s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─foo2 ---------------------------------- 0.0% 100.0% 1 0.520s
+─sleep --------------------------------- 99.2% 99.2% 52 0.016s
+─foo1 ---------------------------------- 0.0% 97.7% 1 0.508s
+─foo0 ---------------------------------- 0.8% 96.2% 1 0.500s
+
+ tactic local total calls max
+────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
+─foo2 ---------------------------------- 0.0% 100.0% 1 0.520s
+└foo1 ---------------------------------- 0.0% 97.7% 1 0.508s
+└foo0 ---------------------------------- 0.8% 96.2% 1 0.500s
+└sleep --------------------------------- 95.4% 95.4% 50 0.016s
+
+total time: 0.000s
tactic local total calls max
────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
-─sleep --------------------------------- 100.0% 100.0% 3 0.572s
-─foo2 ---------------------------------- 0.0% 100.0% 1 1.584s
-─foo1 ---------------------------------- 0.0% 63.9% 1 1.012s
-─foo0 ---------------------------------- 0.0% 31.3% 1 0.496s
tactic local total calls max
────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
-─foo2 ---------------------------------- 0.0% 100.0% 1 1.584s
- ├─foo1 -------------------------------- 0.0% 63.9% 1 1.012s
- │ ├─sleep ----------------------------- 32.6% 32.6% 1 0.516s
- │ └─foo0 ------------------------------ 0.0% 31.3% 1 0.496s
- │ └sleep ----------------------------- 31.3% 31.3% 1 0.496s
- └─sleep ------------------------------- 36.1% 36.1% 1 0.572s
diff --git a/test-suite/output-modulo-time/ltacprof_cutoff.v b/test-suite/output-modulo-time/ltacprof_cutoff.v
index 3dad6271af..ae5d51bae8 100644
--- a/test-suite/output-modulo-time/ltacprof_cutoff.v
+++ b/test-suite/output-modulo-time/ltacprof_cutoff.v
@@ -1,12 +1,28 @@
(* -*- coq-prog-args: ("-profile-ltac") -*- *)
Require Coq.ZArith.BinInt.
-Ltac sleep := do 50 (idtac; let sleep := (eval vm_compute in Coq.ZArith.BinInt.Z.div_eucl) in idtac).
+Module WithIdTac.
+ Ltac sleep := do 50 (idtac; let sleep := (eval vm_compute in Coq.ZArith.BinInt.Z.div_eucl) in idtac).
-Ltac foo0 := idtac; sleep.
-Ltac foo1 := sleep; foo0.
-Ltac foo2 := sleep; foo1.
-Goal True.
- foo2.
- Show Ltac Profile CutOff 47.
- constructor.
-Qed.
+ Ltac foo0 := idtac; sleep.
+ Ltac foo1 := sleep; foo0.
+ Ltac foo2 := sleep; foo1.
+ Goal True.
+ foo2.
+ Show Ltac Profile CutOff 47.
+ constructor.
+ Qed.
+End WithIdTac.
+
+Module TestEval.
+ Ltac sleep := let sleep := (eval vm_compute in Coq.ZArith.BinInt.Z.div_eucl) in idtac.
+
+ Ltac foo0 := idtac; do 50 (idtac; sleep).
+ Ltac foo1 := sleep; foo0.
+ Ltac foo2 := sleep; foo1.
+ Goal True.
+ Reset Ltac Profile.
+ foo2.
+ Show Ltac Profile CutOff 47.
+ constructor.
+ Qed.
+End TestEval.
diff --git a/test-suite/output/Arguments_renaming.out b/test-suite/output/Arguments_renaming.out
index 4df21ae353..e73312c679 100644
--- a/test-suite/output/Arguments_renaming.out
+++ b/test-suite/output/Arguments_renaming.out
@@ -11,7 +11,7 @@ notation scopes add ': clear scopes' [arguments-assert,vernacular]
eq_refl
: ?y = ?y
where
-?y : [ |- nat]
+?y : [ |- nat]
Inductive eq (A : Type) (x : A) : A -> Prop := eq_refl : x = x
For eq_refl: Arguments are renamed to B, y
diff --git a/test-suite/output/Cases.out b/test-suite/output/Cases.out
index 97fa8e2542..419dcadb4c 100644
--- a/test-suite/output/Cases.out
+++ b/test-suite/output/Cases.out
@@ -95,8 +95,7 @@ fun dd : nat * nat => let (bb, cc) as aa return (aa = aa) := dd in eq_refl
x : nat
n, n0 := match x + 0 with
- | 0 => 0
- | S _ => 0
+ | 0 | S _ => 0
end : nat
e,
e0 := match x + 0 as y return (y = y) with
@@ -104,8 +103,7 @@ fun dd : nat * nat => let (bb, cc) as aa return (aa = aa) := dd in eq_refl
| S n => eq_refl
end : x + 0 = x + 0
n1, n2 := match x with
- | 0 => 0
- | S _ => 0
+ | 0 | S _ => 0
end : nat
e1, e2 := match x return (x = x) with
| 0 => eq_refl
@@ -126,3 +124,48 @@ fun dd : nat * nat => let (bb, cc) as aa return (aa = aa) := dd in eq_refl
end : p = p /\ p = p
============================
eq_refl = eq_refl
+fun x : comparison => match x with
+ | Eq => 1
+ | _ => 0
+ end
+ : comparison -> nat
+fun x : comparison => match x with
+ | Eq => 1
+ | Lt => 0
+ | Gt => 0
+ end
+ : comparison -> nat
+fun x : comparison => match x with
+ | Eq => 1
+ | Lt | Gt => 0
+ end
+ : comparison -> nat
+fun x : comparison =>
+match x return nat with
+| Eq => S O
+| Lt => O
+| Gt => O
+end
+ : forall _ : comparison, nat
+fun x : K => match x with
+ | a3 | a4 => 3
+ | _ => 2
+ end
+ : K -> nat
+fun x : K => match x with
+ | a1 | a2 => 4
+ | a3 => 3
+ | _ => 2
+ end
+ : K -> nat
+fun x : K => match x with
+ | a1 | a2 => 4
+ | a4 => 3
+ | _ => 2
+ end
+ : K -> nat
+fun x : K => match x with
+ | a1 | a3 | a4 => 3
+ | _ => 2
+ end
+ : K -> nat
diff --git a/test-suite/output/Cases.v b/test-suite/output/Cases.v
index 17fee3303d..caf3b28701 100644
--- a/test-suite/output/Cases.v
+++ b/test-suite/output/Cases.v
@@ -1,5 +1,7 @@
(* Cases with let-in in constructors types *)
+Unset Printing Allow Match Default Clause.
+
Inductive t : Set :=
k : let x := t in x -> x.
@@ -184,3 +186,33 @@ let p := fresh "p" in
|- eq_refl ?p = _ => pose (match eq_refl p in _ = z return p=p /\ z=z with eq_refl => conj eq_refl eq_refl end)
end.
Show.
+
+Set Printing Allow Match Default Clause.
+
+(***************************************************)
+(* Testing strategy for factorizing cases branches *)
+
+(* Factorization + default clause *)
+Check fun x => match x with Eq => 1 | _ => 0 end.
+
+(* No factorization *)
+Unset Printing Factorizable Match Patterns.
+Check fun x => match x with Eq => 1 | _ => 0 end.
+Set Printing Factorizable Match Patterns.
+
+(* Factorization but no default clause *)
+Unset Printing Allow Match Default Clause.
+Check fun x => match x with Eq => 1 | _ => 0 end.
+Set Printing Allow Match Default Clause.
+
+(* No factorization in printing all mode *)
+Set Printing All.
+Check fun x => match x with Eq => 1 | _ => 0 end.
+Unset Printing All.
+
+(* Several clauses *)
+Inductive K := a1|a2|a3|a4|a5|a6.
+Check fun x => match x with a3 | a4 => 3 | _ => 2 end.
+Check fun x => match x with a3 => 3 | a2 | a1 => 4 | _ => 2 end.
+Check fun x => match x with a4 => 3 | a2 | a1 => 4 | _ => 2 end.
+Check fun x => match x with a3 | a4 | a1 => 3 | _ => 2 end.
diff --git a/test-suite/output/ErrorInCanonicalStructures.out b/test-suite/output/ErrorInCanonicalStructures.out
new file mode 100644
index 0000000000..73da4f44f8
--- /dev/null
+++ b/test-suite/output/ErrorInCanonicalStructures.out
@@ -0,0 +1,5 @@
+File "stdin", line 3, characters 0-24:
+Error:
+Could not declare a canonical structure Foo.
+Expected an instance of a record or structure.
+
diff --git a/test-suite/output/ErrorInCanonicalStructures.v b/test-suite/output/ErrorInCanonicalStructures.v
new file mode 100644
index 0000000000..49597df6f7
--- /dev/null
+++ b/test-suite/output/ErrorInCanonicalStructures.v
@@ -0,0 +1,3 @@
+Record Foo := MkFoo { field1 : nat; field2 : nat -> nat }.
+
+Canonical Structure Foo.
diff --git a/test-suite/output/ErrorInCanonicalStructures2.out b/test-suite/output/ErrorInCanonicalStructures2.out
new file mode 100644
index 0000000000..63a2871b82
--- /dev/null
+++ b/test-suite/output/ErrorInCanonicalStructures2.out
@@ -0,0 +1,5 @@
+File "stdin", line 3, characters 0-24:
+Error:
+Could not declare a canonical structure bar.
+Expected an instance of a record or structure.
+
diff --git a/test-suite/output/ErrorInCanonicalStructures2.v b/test-suite/output/ErrorInCanonicalStructures2.v
new file mode 100644
index 0000000000..10ee177aaf
--- /dev/null
+++ b/test-suite/output/ErrorInCanonicalStructures2.v
@@ -0,0 +1,3 @@
+Definition bar := 99.
+
+Canonical Structure bar.
diff --git a/test-suite/output/Existentials.out b/test-suite/output/Existentials.out
index 9680d2bbff..18f5d89f66 100644
--- a/test-suite/output/Existentials.out
+++ b/test-suite/output/Existentials.out
@@ -1,4 +1,4 @@
-Existential 1 = ?Goal : [p : nat q := S p : nat n : nat m : nat |- ?y = m]
+Existential 1 = ?Goal : [p : nat q := S p : nat n : nat m : nat |- ?y = m]
Existential 2 =
-?y : [p : nat q := S p : nat n : nat m : nat |- nat] (p, q cannot be used)
-Existential 3 = ?Goal0 : [q : nat n : nat m : nat |- n = ?y]
+?y : [p : nat q := S p : nat n : nat m : nat |- nat] (p, q cannot be used) (shelved)
+Existential 3 = ?Goal0 : [q : nat n : nat m : nat |- n = ?y]
diff --git a/test-suite/output/Extraction_infix.out b/test-suite/output/Extraction_infix.out
new file mode 100644
index 0000000000..29d50775a9
--- /dev/null
+++ b/test-suite/output/Extraction_infix.out
@@ -0,0 +1,20 @@
+(** val test : foo **)
+
+let test =
+ (fun (b, p) -> bar) (True, False)
+(** val test : foo **)
+
+let test =
+ True@@?False
+(** val test : foo **)
+
+let test =
+ True#^^False
+(** val test : foo **)
+
+let test =
+ True@?:::False
+(** val test : foo **)
+
+let test =
+ True @?::: False
diff --git a/test-suite/output/Extraction_infix.v b/test-suite/output/Extraction_infix.v
new file mode 100644
index 0000000000..fe5926a36a
--- /dev/null
+++ b/test-suite/output/Extraction_infix.v
@@ -0,0 +1,26 @@
+(* @herbelin's example for issue #6212 *)
+
+Require Import Extraction.
+Inductive I := C : bool -> bool -> I.
+Definition test := C true false.
+
+(* the parentheses around the function wrong signalled an infix operator *)
+
+Extract Inductive I => "foo" [ "(fun (b, p) -> bar)" ].
+Extraction test.
+
+(* some bonafide infix operators *)
+
+Extract Inductive I => "foo" [ "(@@?)" ].
+Extraction test.
+
+Extract Inductive I => "foo" [ "(#^^)" ].
+Extraction test.
+
+Extract Inductive I => "foo" [ "(@?:::)" ].
+Extraction test.
+
+(* allow whitespace around infix operator *)
+
+Extract Inductive I => "foo" [ "( @?::: )" ].
+Extraction test.
diff --git a/test-suite/output/Inductive.out b/test-suite/output/Inductive.out
index e912003f03..af202ea01c 100644
--- a/test-suite/output/Inductive.out
+++ b/test-suite/output/Inductive.out
@@ -1,3 +1,7 @@
The command has indeed failed with message:
Last occurrence of "list'" must have "A" as 1st argument in
"A -> list' A -> list' (A * A)%type".
+Inductive foo (A : Type) (x : A) (y : A := x) : Prop := Foo : foo A x
+
+For foo: Argument scopes are [type_scope _]
+For Foo: Argument scopes are [type_scope _]
diff --git a/test-suite/output/Inductive.v b/test-suite/output/Inductive.v
index 8db8956e32..8ff91268a6 100644
--- a/test-suite/output/Inductive.v
+++ b/test-suite/output/Inductive.v
@@ -1,3 +1,7 @@
Fail Inductive list' (A:Set) : Set :=
| nil' : list' A
| cons' : A -> list' A -> list' (A*A).
+
+(* Check printing of let-ins *)
+Inductive foo (A : Type) (x : A) (y := x) := Foo.
+Print foo.
diff --git a/test-suite/output/InvalidDisjunctiveIntro.out b/test-suite/output/InvalidDisjunctiveIntro.out
new file mode 100644
index 0000000000..25a306b458
--- /dev/null
+++ b/test-suite/output/InvalidDisjunctiveIntro.out
@@ -0,0 +1,16 @@
+The command has indeed failed with message:
+Cannot coerce to a disjunctive/conjunctive pattern.
+The command has indeed failed with message:
+Disjunctive/conjunctive introduction pattern expected.
+The command has indeed failed with message:
+Cannot coerce to a disjunctive/conjunctive pattern.
+The command has indeed failed with message:
+Cannot coerce to a disjunctive/conjunctive pattern.
+The command has indeed failed with message:
+Ltac variable H is bound to <tactic closure> which cannot be coerced to
+an introduction pattern.
+The command has indeed failed with message:
+Disjunctive/conjunctive introduction pattern expected.
+The command has indeed failed with message:
+Ltac variable H' is bound to <tactic closure> which cannot be coerced to
+an introduction pattern.
diff --git a/test-suite/output/InvalidDisjunctiveIntro.v b/test-suite/output/InvalidDisjunctiveIntro.v
new file mode 100644
index 0000000000..4febdf0344
--- /dev/null
+++ b/test-suite/output/InvalidDisjunctiveIntro.v
@@ -0,0 +1,18 @@
+Theorem test (A:Prop) : A \/ A -> A.
+ Fail intros H; destruct H as H.
+ (* Cannot coerce to a disjunctive/conjunctive pattern. *)
+ Fail intro H; destruct H as H.
+ (* Disjunctive/conjunctive introduction pattern expected. *)
+ Fail let H := fresh in intro H; destruct H as H.
+ (* Cannot coerce to a disjunctive/conjunctive pattern. *)
+ Fail let H := fresh in intros H; destruct H as H.
+ (* Cannot coerce to a disjunctive/conjunctive pattern. *)
+ Fail let H := idtac in intros H; destruct H as H.
+ (* Ltac variable H is bound to <tactic closure> which cannot be
+coerced to an introduction pattern. *)
+ Fail let H := idtac in intros H; destruct H as H'.
+ (* Disjunctive/conjunctive introduction pattern expected. *)
+ Fail let H' := idtac in intros H; destruct H as H'.
+(* Ltac variable H' is bound to <tactic closure> which cannot
+be coerced to an introduction pattern. *)
+Abort.
diff --git a/test-suite/output/Load.out b/test-suite/output/Load.out
new file mode 100644
index 0000000000..0904d5540b
--- /dev/null
+++ b/test-suite/output/Load.out
@@ -0,0 +1,6 @@
+f = 2
+ : nat
+u = I
+ : True
+The command has indeed failed with message:
+Files processed by Load cannot leave open proofs.
diff --git a/test-suite/output/Load.v b/test-suite/output/Load.v
new file mode 100644
index 0000000000..967507415a
--- /dev/null
+++ b/test-suite/output/Load.v
@@ -0,0 +1,7 @@
+Load "output/load/Load_noproof.v".
+Print f.
+
+Load "output/load/Load_proof.v".
+Print u.
+
+Fail Load "output/load/Load_openproof.v".
diff --git a/test-suite/output/MExtraction.v b/test-suite/output/MExtraction.v
new file mode 100644
index 0000000000..352e422cf7
--- /dev/null
+++ b/test-suite/output/MExtraction.v
@@ -0,0 +1,12 @@
+Require Import micromega.MExtraction.
+Require Import RingMicromega.
+Require Import QArith.
+Require Import VarMap.
+Require Import ZMicromega.
+Require Import QMicromega.
+Require Import RMicromega.
+
+Recursive Extraction
+ List.map RingMicromega.simpl_cone (*map_cone indexes*)
+ denorm Qpower vm_add
+ n_of_Z N.of_nat ZTautoChecker ZWeakChecker QTautoChecker RTautoChecker find.
diff --git a/test-suite/output/Notations.out b/test-suite/output/Notations.out
index 7bcd7b041c..891296b0a1 100644
--- a/test-suite/output/Notations.out
+++ b/test-suite/output/Notations.out
@@ -41,7 +41,7 @@ fun x : nat => ifn x is succ n then n else 0
-4
: Z
The command has indeed failed with message:
-x should not be bound in a recursive pattern of the right-hand side.
+Cannot find where the recursive pattern starts.
The command has indeed failed with message:
in the right-hand side, y and z should appear in
term position as part of a recursive pattern.
@@ -64,7 +64,7 @@ The command has indeed failed with message:
Cannot find where the recursive pattern starts.
The command has indeed failed with message:
Both ends of the recursive pattern are the same.
-SUM (nat * nat) nat
+(nat * nat + nat)%type
: Set
FST (0; 1)
: Z
@@ -72,7 +72,7 @@ Nil
: forall A : Type, list A
NIL : list nat
: list nat
-(false && I 3)%bool /\ I 6
+(false && I 3)%bool /\ (I 6)%bool
: Prop
[|1, 2, 3; 4, 5, 6|]
: Z * Z * Z * (Z * Z * Z)
diff --git a/test-suite/output/Notations.v b/test-suite/output/Notations.v
index fe6c05c39e..413812ee19 100644
--- a/test-suite/output/Notations.v
+++ b/test-suite/output/Notations.v
@@ -30,7 +30,7 @@ Check (decomp (true,true) as t, u in (t,u)).
Section A.
-Notation "! A" := (forall _:nat, A) (at level 60).
+Notation "! A" := (forall _:nat, A) (at level 60) : type_scope.
Check ! (0=0).
Check forall n, n=0.
@@ -194,9 +194,9 @@ Open Scope nat_scope.
Coercion is_true := fun b => b=true.
Coercion of_nat n := match n with 0 => true | _ => false end.
-Notation "'I' x" := (of_nat (S x) || true)%bool (at level 10).
+Notation "'I' x" := (of_nat (S x) || true)%bool (at level 10) : bool_scope.
-Check (false && I 3)%bool /\ I 6.
+Check (false && I 3)%bool /\ (I 6)%bool.
(**********************************************************************)
(* Check notations with several recursive patterns *)
diff --git a/test-suite/output/Notations2.out b/test-suite/output/Notations2.out
index 1ec701ae81..6ffe56e11f 100644
--- a/test-suite/output/Notations2.out
+++ b/test-suite/output/Notations2.out
@@ -17,10 +17,9 @@ fun (P : nat -> nat -> Prop) (x : nat) => exists y, P x y
∃ n p : nat, n + p = 0
: Prop
let a := 0 in
-∃ x y : nat,
-let b := 1 in
-let c := b in
-let d := 2 in ∃ z : nat, let e := 3 in let f := 4 in x + y = z + d
+∃ (x y : nat) (b := 1) (c := b) (d := 2) (z : nat),
+let e := 3 in
+let f := 4 in x + y = z + d
: Prop
∀ n p : nat, n + p = 0
: Prop
@@ -37,11 +36,22 @@ let' f (x y : nat) (a := 0) (z : nat) (_ : bool) := x + y + z + 1 in f 0 1 2
λ (f : nat -> nat) (x : nat), f(x) + S(x)
: (nat -> nat) -> nat -> nat
Notation plus2 n := (S(S(n)))
+λ n : list(nat), match n with
+ | 1 :: nil => 0
+ | _ => 2
+ end
+ : list(nat) -> nat
+λ n : list(nat),
+match n with
+| 1 :: nil => 0
+| nil | 0 :: _ | 1 :: _ :: _ | plus2 _ :: _ => 2
+end
+ : list(nat) -> nat
λ n : list(nat),
match n with
| nil => 2
| 0 :: _ => 2
-| list1 => 0
+| 1 :: nil => 0
| 1 :: _ :: _ => 2
| plus2 _ :: _ => 2
end
@@ -84,3 +94,9 @@ a≡
: Set
: Set
+# a : .α =>
+# b : .α =>
+let res := 0 in
+for i from 0 to a updating (res)
+{{for j from 0 to b updating (res) {{S res}};; res}};; res
+ : .α -> .α -> .α
diff --git a/test-suite/output/Notations2.v b/test-suite/output/Notations2.v
index ceb29d1b9e..923caedace 100644
--- a/test-suite/output/Notations2.v
+++ b/test-suite/output/Notations2.v
@@ -36,8 +36,9 @@ Check fun P:nat->nat->Prop => fun x:nat => ex (P x).
(* Test notations with binders *)
-Notation "∃ x .. y , P":= (ex (fun x => .. (ex (fun y => P)) ..))
- (x binder, y binder, at level 200, right associativity).
+Notation "∃ x .. y , P":= (ex (fun x => .. (ex (fun y => P)) ..))
+ (x binder, y binder, at level 200, right associativity,
+ format "'[ ' ∃ x .. y ']' , P").
Check (∃ n p, n+p=0).
@@ -70,6 +71,7 @@ Check let' f x y (a:=0) z (b:bool) := x+y+z+1 in f 0 1 2.
(* Note: does not work for pattern *)
Module A.
Notation "f ( x )" := (f x) (at level 10, format "f ( x )").
+Open Scope nat_scope.
Check fun f x => f x + S x.
Open Scope list_scope.
@@ -78,6 +80,13 @@ Notation plus2 n := (S (S n)).
(* plus2 was not correctly printed in the two following tests in 8.3pl1 *)
Print plus2.
Check fun n => match n with list1 => 0 | _ => 2 end.
+Unset Printing Allow Match Default Clause.
+Check fun n => match n with list1 => 0 | _ => 2 end.
+Unset Printing Factorizable Match Patterns.
+Check fun n => match n with list1 => 0 | _ => 2 end.
+Set Printing Allow Match Default Clause.
+Set Printing Factorizable Match Patterns.
+
End A.
(* This one is not fully satisfactory because binders in the same type
@@ -145,3 +154,24 @@ Check .a≡.
Notation ".α" := nat.
Check nat.
Check .α.
+
+(* A test for #6304 *)
+
+Module M6304.
+Notation "'for' m 'from' 0 'to' N 'updating' ( s1 ) {{ b }} ;; rest" :=
+ (let s1 :=
+ (fix rec(n: nat) := match n with
+ | 0 => s1
+ | S m => let s1 := rec m in b
+ end) N
+ in rest)
+ (at level 20).
+
+Check fun (a b : nat) =>
+ let res := 0 in
+ for i from 0 to a updating (res) {{
+ for j from 0 to b updating (res) {{ S res }};;
+ res
+ }};; res.
+
+End M6304.
diff --git a/test-suite/output/Notations3.out b/test-suite/output/Notations3.out
index 6ef75dd135..864b6151a1 100644
--- a/test-suite/output/Notations3.out
+++ b/test-suite/output/Notations3.out
@@ -33,24 +33,24 @@ fun f : forall x : nat * (bool * unit), ?T => CURRY (x : nat) (y : bool), f
: (forall x : nat * (bool * unit), ?T) ->
forall (x : nat) (y : bool), ?T@{x:=(x, (y, tt))}
where
-?T : [x : nat * (bool * unit) |- Type]
+?T : [x : nat * (bool * unit) |- Type]
fun f : forall x : bool * (nat * unit), ?T =>
CURRYINV (x : nat) (y : bool), f
: (forall x : bool * (nat * unit), ?T) ->
forall (x : nat) (y : bool), ?T@{x:=(y, (x, tt))}
where
-?T : [x : bool * (nat * unit) |- Type]
+?T : [x : bool * (nat * unit) |- Type]
fun f : forall x : unit * nat * bool, ?T => CURRYLEFT (x : nat) (y : bool), f
: (forall x : unit * nat * bool, ?T) ->
forall (x : nat) (y : bool), ?T@{x:=(tt, x, y)}
where
-?T : [x : unit * nat * bool |- Type]
+?T : [x : unit * nat * bool |- Type]
fun f : forall x : unit * bool * nat, ?T =>
CURRYINVLEFT (x : nat) (y : bool), f
: (forall x : unit * bool * nat, ?T) ->
forall (x : nat) (y : bool), ?T@{x:=(tt, y, x)}
where
-?T : [x : unit * bool * nat |- Type]
+?T : [x : unit * bool * nat |- Type]
forall n : nat, {#n | 1 > n}
: Prop
forall x : nat, {|x | x > 0|}
@@ -128,3 +128,110 @@ return (1, 2, 3, 4)
: nat
*(1.2)
: nat
+[{0; 0}]
+ : list (list nat)
+[{1; 2; 3};
+ {4; 5; 6};
+ {7; 8; 9}]
+ : list (list nat)
+amatch = mmatch 0 (with 0 => 1| 1 => 2 end)
+ : unit
+alist = [0; 1; 2]
+ : list nat
+! '{{x, y}}, x + y = 0
+ : Prop
+exists x : nat,
+ nat ->
+ exists y : nat,
+ nat ->
+ exists '{{u, t}}, forall z1 : nat, z1 = 0 /\ x + y = 0 /\ u + t = 0
+ : Prop
+exists x : nat,
+ nat ->
+ exists y : nat,
+ nat ->
+ exists '{{z, t}}, forall z2 : nat, z2 = 0 /\ x + y = 0 /\ z + t = 0
+ : Prop
+exists_true '{{x, y}} (u := 0) '{{z, t}}, x + y = 0 /\ z + t = 0
+ : Prop
+exists_true (A : Type) (R : A -> A -> Prop) (_ : Reflexive R),
+(forall x : A, R x x)
+ : Prop
+exists_true (x : nat) (A : Type) (R : A -> A -> Prop)
+(_ : Reflexive R) (y : nat), x + y = 0 -> forall z : A, R z z
+ : Prop
+{{{{True, nat -> True}}, nat -> True}}
+ : Prop * Prop * Prop
+{{D 1, 2}}
+ : nat * nat * (nat * nat * (nat * nat))
+! a b : nat # True #
+ : Prop * (Prop * Prop)
+!!!! a b : nat # True #
+ : Prop * Prop * (Prop * Prop * Prop)
+@@ a b : nat # a = b # b = a #
+ : Prop * Prop
+exists_non_null x y z t : nat , x = y /\ z = t
+ : Prop
+forall_non_null x y z t : nat , x = y /\ z = t
+ : Prop
+{{RL 1, 2}}
+ : nat * (nat * nat)
+{{RR 1, 2}}
+ : nat * nat * nat
+@pair nat (prod nat nat) (S (S O)) (@pair nat nat (S O) O)
+ : prod nat (prod nat nat)
+@pair (prod nat nat) nat (@pair nat nat O (S (S O))) (S O)
+ : prod (prod nat nat) nat
+{{RLRR 1, 2}}
+ : nat * (nat * nat) * (nat * nat * nat) * (nat * (nat * nat)) *
+ (nat * nat * nat)
+pair
+ (pair
+ (pair (pair (S (S O)) (pair (S O) O)) (pair (pair O (S (S O))) (S O)))
+ (pair (S O) (pair (S (S O)) O))) (pair (pair O (S O)) (S (S O)))
+ : prod
+ (prod (prod (prod nat (prod nat nat)) (prod (prod nat nat) nat))
+ (prod nat (prod nat nat))) (prod (prod nat nat) nat)
+fun x : nat => if x is n .+ 1 then n else 1
+ : nat -> nat
+{'{{x, y}} : nat * nat | x + y = 0}
+ : Set
+exists2' {{x, y}}, x = 0 & y = 0
+ : Prop
+myexists2 x : nat * nat,
+ let '{{y, z}} := x in y > z & let '{{y, z}} := x in z > y
+ : Prop
+fun '({{x, y}} as z) => x + y = 0 /\ z = z
+ : nat * nat -> Prop
+myexists ({{x, y}} as z), x + y = 0 /\ z = z
+ : Prop
+exists '({{x, y}} as z), x + y = 0 /\ z = z
+ : Prop
+∀ '({{x, y}} as z), x + y = 0 /\ z = z
+ : Prop
+fun '({{{{x, y}}, true}} | {{{{x, y}}, false}}) => x + y
+ : nat * nat * bool -> nat
+myexists ({{{{x, y}}, true}} | {{{{x, y}}, false}}), x > y
+ : Prop
+exists '({{{{x, y}}, true}} | {{{{x, y}}, false}}), x > y
+ : Prop
+∀ '({{{{x, y}}, true}} | {{{{x, y}}, false}}), x > y
+ : Prop
+fun p : nat => if p is S n then n else 0
+ : nat -> nat
+fun p : comparison => if p is Lt then 1 else 0
+ : comparison -> nat
+fun S : nat => [S | S + S]
+ : nat -> nat * (nat -> nat)
+fun N : nat => [N | N + 0]
+ : nat -> nat * (nat -> nat)
+fun S : nat => [[S | S + S]]
+ : nat -> nat * (nat -> nat)
+{I : nat | I = I}
+ : Set
+{'I : True | I = I}
+ : Prop
+{'{{x, y}} : nat * nat | x + y = 0}
+ : Set
+exists2 '{{y, z}} : nat * nat, y > z & z > y
+ : Prop
diff --git a/test-suite/output/Notations3.v b/test-suite/output/Notations3.v
index 8c7bbe5917..c98bfff413 100644
--- a/test-suite/output/Notations3.v
+++ b/test-suite/output/Notations3.v
@@ -59,7 +59,7 @@ Check fun f => CURRYINVLEFT (x:nat) (y:bool), f.
(* Notations with variables bound both as a term and as a binder *)
(* This is #4592 *)
-Notation "{# x | P }" := (ex2 (fun y => x = y) (fun x => P)).
+Notation "{# x | P }" := (ex2 (fun y => x = y) (fun x => P)) : type_scope.
Check forall n:nat, {# n | 1 > n}.
Parameter foo : forall {T}(x : T)(P : T -> Prop), Prop.
@@ -183,9 +183,13 @@ Check letpair x [1] = {0}; return (1,2,3,4).
(* Test spacing in #5569 *)
+Section S1.
+Variable plus : nat -> nat -> nat.
+Infix "+" := plus.
Notation "{ { xL | xR // xcut } }" := (xL+xR+xcut)
(at level 0, xR at level 39, format "{ { xL | xR // xcut } }").
Check 1+1+1.
+End S1.
(* Test presence of notation variables in the recursive parts (introduced in dfdaf4de) *)
Notation "!!! x .. y , b" := ((fun x => b), .. ((fun y => b), True) ..) (at level 200, x binder).
@@ -193,7 +197,226 @@ Check !!! (x y:nat), True.
(* Allow level for leftmost nonterminal when printing-only, BZ#5739 *)
-Notation "* x" := (id x) (only printing, at level 15, format "* x").
-Notation "x . y" := (x + y) (only printing, at level 20, x at level 14, left associativity, format "x . y").
+Section S2.
+Notation "* x" := (id x) (only printing, at level 15, format "* x") : nat_scope.
+Notation "x . y" := (x + y) (only printing, at level 20, x at level 14, left associativity, format "x . y") : nat_scope.
Check (((id 1) + 2) + 3).
Check (id (1 + 2)).
+End S2.
+
+(* Test printing of notations guided by scope *)
+
+Module A.
+
+Delimit Scope line_scope with line.
+Notation "{ }" := nil (format "{ }") : line_scope.
+Notation "{ x }" := (cons x nil) : line_scope.
+Notation "{ x ; y ; .. ; z }" := (cons x (cons y .. (cons z nil) ..)) : line_scope.
+Notation "[ ]" := nil (format "[ ]") : matx_scope.
+Notation "[ l ]" := (cons l%line nil) : matx_scope.
+Notation "[ l ; l' ; .. ; l'' ]" := (cons l%line (cons l'%line .. (cons l''%line nil) ..))
+ (format "[ '[v' l ; '/' l' ; '/' .. ; '/' l'' ']' ]") : matx_scope.
+
+Open Scope matx_scope.
+Check [[0;0]].
+Check [[1;2;3];[4;5;6];[7;8;9]].
+
+End A.
+
+(* Example by Beta Ziliani *)
+
+Require Import Lists.List.
+
+Module B.
+
+Import ListNotations.
+
+Delimit Scope pattern_scope with pattern.
+Delimit Scope patterns_scope with patterns.
+
+Notation "a => b" := (a, b) (at level 201) : pattern_scope.
+Notation "'with' p1 | .. | pn 'end'" :=
+ ((cons p1%pattern (.. (cons pn%pattern nil) ..)))
+ (at level 91, p1 at level 210, pn at level 210) : patterns_scope.
+
+Definition mymatch (n:nat) (l : list (nat * nat)) := tt.
+Arguments mymatch _ _%patterns.
+Notation "'mmatch' n ls" := (mymatch n ls) (at level 0).
+
+Close Scope patterns_scope.
+Close Scope pattern_scope.
+
+Definition amatch := mmatch 0 with 0 => 1 | 1 => 2 end.
+Print amatch. (* Good: amatch = mmatch 0 (with 0 => 1| 1 => 2 end) *)
+
+Definition alist := [0;1;2].
+Print alist.
+
+End B.
+
+(* Test contraction of "forall x, let 'pat := x in ..." into "forall 'pat, ..." *)
+(* for isolated "forall" (was not working already in 8.6) *)
+Notation "! x .. y , A" := (id (forall x, .. (id (forall y, A)) .. )) (at level 200, x binder).
+Check ! '(x,y), x+y=0.
+
+(* Check that the terminator of a recursive pattern is interpreted in
+ the correct environment of bindings *)
+Notation "'exists_mixed' x .. y , P" := (ex (fun x => forall z:nat, .. (ex (fun y => forall z:nat, z=0 /\ P)) ..)) (at level 200, x binder).
+Check exists_mixed x y '(u,t), x+y=0/\u+t=0.
+Check exists_mixed x y '(z,t), x+y=0/\z+t=0.
+
+(* Check that intermediary let-in are inserted inbetween instances of
+ the repeated pattern *)
+Notation "'exists_true' x .. y , P" := (exists x, True /\ .. (exists y, True /\ P) ..) (at level 200, x binder).
+Check exists_true '(x,y) (u:=0) '(z,t), x+y=0/\z+t=0.
+
+(* Check that generalized binders are correctly interpreted *)
+
+Module G.
+Generalizable Variables A R.
+Class Reflexive {A:Type} (R : A->A->Prop) := reflexivity : forall x : A, R x x.
+Check exists_true `{Reflexive A R}, forall x, R x x.
+Check exists_true x `{Reflexive A R} y, x+y=0 -> forall z, R z z.
+End G.
+
+(* Allows recursive patterns for binders to be associative on the left *)
+Notation "!! x .. y # A #" := (.. (A,(forall x, True)) ..,(forall y, True)) (at level 200, x binder).
+Check !! a b : nat # True #.
+
+(* Examples where the recursive pattern refer several times to the recursive variable *)
+
+Notation "{{D x , .. , y }}" := ((x,x), .. ((y,y),(0,0)) ..).
+Check {{D 1, 2 }}.
+
+Notation "! x .. y # A #" :=
+ ((forall x, x=x), .. ((forall y, y=y), A) ..)
+ (at level 200, x binder).
+Check ! a b : nat # True #.
+
+Notation "!!!! x .. y # A #" :=
+ (((forall x, x=x),(forall x, x=0)), .. (((forall y, y=y),(forall y, y=0)), A) ..)
+ (at level 200, x binder).
+Check !!!! a b : nat # True #.
+
+Notation "@@ x .. y # A # B #" :=
+ ((forall x, .. (forall y, A) ..), (forall x, .. (forall y, B) ..))
+ (at level 200, x binder).
+Check @@ a b : nat # a=b # b=a #.
+
+Notation "'exists_non_null' x .. y , P" :=
+ (ex (fun x => x <> 0 /\ .. (ex (fun y => y <> 0 /\ P)) ..))
+ (at level 200, x binder).
+Check exists_non_null x y z t , x=y/\z=t.
+
+Notation "'forall_non_null' x .. y , P" :=
+ (forall x, x <> 0 -> .. (forall y, y <> 0 -> P) ..)
+ (at level 200, x binder).
+Check forall_non_null x y z t , x=y/\z=t.
+
+(* Examples where the recursive pattern is in reverse order *)
+
+Notation "{{RL c , .. , d }}" := (pair d .. (pair c 0) ..).
+Check {{RL 1 , 2}}.
+
+Notation "{{RR c , .. , d }}" := (pair .. (pair 0 d) .. c).
+Check {{RR 1 , 2}}.
+
+Set Printing All.
+Check {{RL 1 , 2}}.
+Check {{RR 1 , 2}}.
+Unset Printing All.
+
+Notation "{{RLRR c , .. , d }}" := (pair d .. (pair c 0) .., pair .. (pair 0 d) .. c, pair c .. (pair d 0) .., pair .. (pair 0 c) .. d).
+Check {{RLRR 1 , 2}}.
+Unset Printing Notations.
+Check {{RLRR 1 , 2}}.
+Set Printing Notations.
+
+(* Check insensitivity of "match" clauses to order *)
+
+Notation "'if' t 'is' n .+ 1 'then' p 'else' q" :=
+ (match t with S n => p | 0 => q end)
+ (at level 200).
+Check fun x => if x is n.+1 then n else 1.
+
+(* Examples with binding patterns *)
+
+Check {'(x,y)|x+y=0}.
+
+Module D.
+Notation "'exists2'' x , p & q" := (ex2 (fun x => p) (fun x => q))
+ (at level 200, x pattern, p at level 200, right associativity,
+ format "'[' 'exists2'' '/ ' x , '/ ' '[' p & '/' q ']' ']'")
+ : type_scope.
+
+Check exists2' (x,y), x=0 & y=0.
+End D.
+
+(* Ensuring for reparsability that printer of notations does not use a
+ pattern where only an ident could be reparsed *)
+
+Module E.
+Inductive myex2 {A:Type} (P Q:A -> Prop) : Prop :=
+ myex_intro2 : forall x:A, P x -> Q x -> myex2 P Q.
+Notation "'myexists2' x : A , p & q" := (myex2 (A:=A) (fun x => p) (fun x => q))
+ (at level 200, x ident, A at level 200, p at level 200, right associativity,
+ format "'[' 'myexists2' '/ ' x : A , '/ ' '[' p & '/' q ']' ']'")
+ : type_scope.
+Check myex2 (fun x => let '(y,z) := x in y>z) (fun x => let '(y,z) := x in z>y).
+End E.
+
+(* A canonical example of a notation with a non-recursive binder *)
+
+Parameter myex : forall {A}, (A -> Prop) -> Prop.
+Notation "'myexists' x , p" := (myex (fun x => p))
+ (at level 200, x pattern, p at level 200, right associativity).
+
+(* A canonical example of a notation with recursive binders *)
+
+Notation "∀ x .. y , P" := (forall x, .. (forall y, P) ..)
+ (at level 200, x binder, y binder, right associativity) : type_scope.
+
+(* Check that printing 'pat uses an "as" when the variable bound to
+ the pattern is dependent. We check it for the three kinds of
+ notations involving bindings of patterns *)
+
+Check fun '((x,y) as z) => x+y=0/\z=z. (* Primitive fun/forall *)
+Check myexists ((x,y) as z), x+y=0/\z=z. (* Isolated binding pattern *)
+Check exists '((x,y) as z), x+y=0/\z=z. (* Applicative recursive binder *)
+Check ∀ '((x,y) as z), x+y=0/\z=z. (* Other example of recursive binder, now treated as the exists case *)
+
+(* Check parsability and printability of irrefutable disjunctive patterns *)
+
+Check fun '(((x,y),true)|((x,y),false)) => x+y.
+Check myexists (((x,y),true)|((x,y),false)), x>y.
+Check exists '(((x,y),true)|((x,y),false)), x>y.
+Check ∀ '(((x,y),true)|((x,y),false)), x>y.
+
+(* Check Georges' printability of a "if is then else" notation *)
+
+Notation "'if' c 'is' p 'then' u 'else' v" :=
+ (match c with p => u | _ => v end)
+ (at level 200, p pattern at level 100).
+Check fun p => if p is S n then n else 0.
+Check fun p => if p is Lt then 1 else 0.
+
+(* Check that mixed binders and terms defaults to ident and not pattern *)
+Module F.
+ (* First without an indirection *)
+Notation "[ n | t ]" := (n, (fun n : nat => t)).
+Check fun S : nat => [ S | S+S ].
+Check fun N : nat => (N, (fun n => n+0)). (* another test in passing *)
+ (* Then with an indirection *)
+Notation "[[ n | p | t ]]" := (n, (fun p : nat => t)).
+Notation "[[ n | t ]]" := [[ n | n | t ]].
+Check fun S : nat => [[ S | S+S ]].
+End F.
+
+(* Check parsability/printability of {x|P} and variants *)
+
+Check {I:nat|I=I}.
+Check {'I:True|I=I}.
+Check {'(x,y)|x+y=0}.
+
+(* Check exists2 with a pattern *)
+Check ex2 (fun x => let '(y,z) := x in y>z) (fun x => let '(y,z) := x in z>y).
diff --git a/test-suite/output/PatternsInBinders.out b/test-suite/output/PatternsInBinders.out
index 95be04c32c..8a6d94c732 100644
--- a/test-suite/output/PatternsInBinders.out
+++ b/test-suite/output/PatternsInBinders.out
@@ -31,7 +31,7 @@ exists '(x, y) '(z, w), swap (x, y) = (z, w)
: Prop
both_z =
fun pat : nat * nat =>
-let '(n, p) as pat0 := pat return (F pat0) in (Z n, Z p) : F (n, p)
+let '(n, p) as x := pat return (F x) in (Z n, Z p) : F (n, p)
: forall pat : nat * nat, F pat
fun '(x, y) '(z, t) => swap (x, y) = (z, t)
: A * B -> B * A -> Prop
@@ -39,3 +39,9 @@ forall '(x, y) '(z, t), swap (x, y) = (z, t)
: Prop
fun (pat : nat) '(x, y) => x + y = pat
: nat -> nat * nat -> Prop
+f = fun x : nat => x + x
+ : nat -> nat
+
+Argument scope is [nat_scope]
+fun x : nat => x + x
+ : nat -> nat
diff --git a/test-suite/output/PatternsInBinders.v b/test-suite/output/PatternsInBinders.v
index 0bad472f41..d671053c07 100644
--- a/test-suite/output/PatternsInBinders.v
+++ b/test-suite/output/PatternsInBinders.v
@@ -67,3 +67,8 @@ End Suboptimal.
(** Test risk of collision for internal name *)
Check fun pat => fun '(x,y) => x+y = pat.
+
+(** Test name in degenerate case *)
+Definition f 'x := x+x.
+Print f.
+Check fun 'x => x+x.
diff --git a/test-suite/output/PrintInfos.v b/test-suite/output/PrintInfos.v
index 08918981a4..a498db3e89 100644
--- a/test-suite/output/PrintInfos.v
+++ b/test-suite/output/PrintInfos.v
@@ -26,6 +26,7 @@ About bar.
Print bar.
About Peano. (* Module *)
+Set Warnings "-deprecated".
About existS2. (* Notation *)
Arguments eq_refl {A} {x}, {A} x.
diff --git a/test-suite/output/SearchPattern.out b/test-suite/output/SearchPattern.out
index 45ff5e73b6..b0ac9ea29f 100644
--- a/test-suite/output/SearchPattern.out
+++ b/test-suite/output/SearchPattern.out
@@ -12,32 +12,37 @@ Nat.ltb: nat -> nat -> bool
Nat.testbit: nat -> nat -> bool
Nat.eqb: nat -> nat -> bool
Nat.two: nat
-Nat.zero: nat
Nat.one: nat
+Nat.zero: nat
O: nat
-Nat.double: nat -> nat
-Nat.sqrt: nat -> nat
Nat.div2: nat -> nat
Nat.log2: nat -> nat
+Nat.succ: nat -> nat
+Nat.sqrt: nat -> nat
Nat.pred: nat -> nat
+Nat.double: nat -> nat
Nat.square: nat -> nat
S: nat -> nat
-Nat.succ: nat -> nat
Nat.ldiff: nat -> nat -> nat
-Nat.add: nat -> nat -> nat
-Nat.lor: nat -> nat -> nat
-Nat.lxor: nat -> nat -> nat
+Nat.tail_add: nat -> nat -> nat
Nat.land: nat -> nat -> nat
-Nat.mul: nat -> nat -> nat
-Nat.sub: nat -> nat -> nat
-Nat.max: nat -> nat -> nat
+Nat.tail_mul: nat -> nat -> nat
Nat.div: nat -> nat -> nat
-Nat.pow: nat -> nat -> nat
-Nat.min: nat -> nat -> nat
-Nat.modulo: nat -> nat -> nat
+Nat.lor: nat -> nat -> nat
Nat.gcd: nat -> nat -> nat
-Nat.sqrt_iter: nat -> nat -> nat -> nat -> nat
+Nat.modulo: nat -> nat -> nat
+Nat.max: nat -> nat -> nat
+Nat.sub: nat -> nat -> nat
+Nat.mul: nat -> nat -> nat
+Nat.lxor: nat -> nat -> nat
+Nat.add: nat -> nat -> nat
+Nat.min: nat -> nat -> nat
+Nat.pow: nat -> nat -> nat
+Nat.of_uint: Decimal.uint -> nat
+Nat.tail_addmul: nat -> nat -> nat -> nat
+Nat.of_uint_acc: Decimal.uint -> nat -> nat
Nat.log2_iter: nat -> nat -> nat -> nat -> nat
+Nat.sqrt_iter: nat -> nat -> nat -> nat -> nat
length: forall A : Type, list A -> nat
Nat.bitwise: (bool -> bool -> bool) -> nat -> nat -> nat -> nat
Nat.div2: nat -> nat
@@ -53,14 +58,18 @@ Nat.pow: nat -> nat -> nat
Nat.land: nat -> nat -> nat
Nat.lxor: nat -> nat -> nat
Nat.div: nat -> nat -> nat
-Nat.mul: nat -> nat -> nat
-Nat.min: nat -> nat -> nat
+Nat.lor: nat -> nat -> nat
+Nat.tail_mul: nat -> nat -> nat
Nat.modulo: nat -> nat -> nat
Nat.sub: nat -> nat -> nat
-Nat.lor: nat -> nat -> nat
+Nat.mul: nat -> nat -> nat
Nat.gcd: nat -> nat -> nat
Nat.max: nat -> nat -> nat
+Nat.tail_add: nat -> nat -> nat
Nat.add: nat -> nat -> nat
+Nat.min: nat -> nat -> nat
+Nat.tail_addmul: nat -> nat -> nat -> nat
+Nat.of_uint_acc: Decimal.uint -> nat -> nat
Nat.log2_iter: nat -> nat -> nat -> nat -> nat
Nat.sqrt_iter: nat -> nat -> nat -> nat -> nat
Nat.bitwise: (bool -> bool -> bool) -> nat -> nat -> nat -> nat
diff --git a/test-suite/output/UnivBinders.out b/test-suite/output/UnivBinders.out
index 904ff68aa7..668b4e5788 100644
--- a/test-suite/output/UnivBinders.out
+++ b/test-suite/output/UnivBinders.out
@@ -1,12 +1,175 @@
+NonCumulative Inductive Empty@{u} : Type@{u} :=
+NonCumulative Record PWrap (A : Type@{u}) : Type@{u} := pwrap { punwrap : A }
+
+PWrap has primitive projections with eta conversion.
+For PWrap: Argument scope is [type_scope]
+For pwrap: Argument scopes are [type_scope _]
+punwrap@{u} =
+fun (A : Type@{u}) (p : PWrap@{u} A) => p.(punwrap)
+ : forall A : Type@{u}, PWrap@{u} A -> A
+(* u |= *)
+
+punwrap is universe polymorphic
+Argument scopes are [type_scope _]
+NonCumulative Record RWrap (A : Type@{u}) : Type@{u} := rwrap { runwrap : A }
+
+For RWrap: Argument scope is [type_scope]
+For rwrap: Argument scopes are [type_scope _]
+runwrap@{u} =
+fun (A : Type@{u}) (r : RWrap@{u} A) => let (runwrap) := r in runwrap
+ : forall A : Type@{u}, RWrap@{u} A -> A
+(* u |= *)
+
+runwrap is universe polymorphic
+Argument scopes are [type_scope _]
+Wrap@{u} = fun A : Type@{u} => A
+ : Type@{u} -> Type@{u}
+(* u |= *)
+
+Wrap is universe polymorphic
+Argument scope is [type_scope]
+wrap@{u} =
+fun (A : Type@{u}) (Wrap : Wrap@{u} A) => Wrap
+ : forall A : Type@{u}, Wrap@{u} A -> A
+(* u |= *)
+
+wrap is universe polymorphic
+Arguments A, Wrap are implicit and maximally inserted
+Argument scopes are [type_scope _]
bar@{u} = nat
: Wrap@{u} Set
(* u |= Set < u
*)
bar is universe polymorphic
-foo@{u Top.8 v} =
-Type@{Top.8} -> Type@{v} -> Type@{u}
- : Type@{max(u+1, Top.8+1, v+1)}
-(* u Top.8 v |= *)
+foo@{u Top.17 v} =
+Type@{Top.17} -> Type@{v} -> Type@{u}
+ : Type@{max(u+1,Top.17+1,v+1)}
+(* u Top.17 v |= *)
foo is universe polymorphic
+Monomorphic mono = Type@{mono.u}
+ : Type@{mono.u+1}
+(* {mono.u} |= *)
+
+mono is not universe polymorphic
+mono
+ : Type@{mono.u+1}
+Type@{mono.u}
+ : Type@{mono.u+1}
+The command has indeed failed with message:
+Universe u already exists.
+monomono
+ : Type@{MONOU+1}
+mono.monomono
+ : Type@{mono.MONOU+1}
+monomono
+ : Type@{MONOU+1}
+mono
+ : Type@{mono.u+1}
+The command has indeed failed with message:
+Universe u already exists.
+bobmorane =
+let tt := Type@{tt.v} in let ff := Type@{ff.v} in tt -> ff
+ : Type@{max(tt.u,ff.u)}
+The command has indeed failed with message:
+Universe u already bound.
+foo@{E M N} =
+Type@{M} -> Type@{N} -> Type@{E}
+ : Type@{max(E+1,M+1,N+1)}
+(* E M N |= *)
+
+foo is universe polymorphic
+foo@{Top.16 Top.17 Top.18} =
+Type@{Top.17} -> Type@{Top.18} -> Type@{Top.16}
+ : Type@{max(Top.16+1,Top.17+1,Top.18+1)}
+(* Top.16 Top.17 Top.18 |= *)
+
+foo is universe polymorphic
+NonCumulative Inductive Empty@{E} : Type@{E} :=
+NonCumulative Record PWrap (A : Type@{E}) : Type@{E} := pwrap { punwrap : A }
+
+PWrap has primitive projections with eta conversion.
+For PWrap: Argument scope is [type_scope]
+For pwrap: Argument scopes are [type_scope _]
+punwrap@{K} : forall A : Type@{K}, PWrap@{K} A -> A
+(* K |= *)
+
+punwrap is universe polymorphic
+Argument scopes are [type_scope _]
+punwrap is transparent
+Expands to: Constant Top.punwrap
+The command has indeed failed with message:
+Universe instance should have length 3
+The command has indeed failed with message:
+Universe instance should have length 0
+The command has indeed failed with message:
+This object does not support universe names.
+The command has indeed failed with message:
+Cannot enforce v < u because u < gU < gV < v
+Monomorphic bind_univs.mono =
+Type@{bind_univs.mono.u}
+ : Type@{bind_univs.mono.u+1}
+(* {bind_univs.mono.u} |= *)
+
+bind_univs.mono is not universe polymorphic
+bind_univs.poly@{u} = Type@{u}
+ : Type@{u+1}
+(* u |= *)
+
+bind_univs.poly is universe polymorphic
+insec@{v} = Type@{u} -> Type@{v}
+ : Type@{max(u+1,v+1)}
+(* v |= *)
+
+insec is universe polymorphic
+insec@{u v} = Type@{u} -> Type@{v}
+ : Type@{max(u+1,v+1)}
+(* u v |= *)
+
+insec is universe polymorphic
+inmod@{u} = Type@{u}
+ : Type@{u+1}
+(* u |= *)
+
+inmod is universe polymorphic
+SomeMod.inmod@{u} = Type@{u}
+ : Type@{u+1}
+(* u |= *)
+
+SomeMod.inmod is universe polymorphic
+inmod@{u} = Type@{u}
+ : Type@{u+1}
+(* u |= *)
+
+inmod is universe polymorphic
+Applied.infunct@{u v} =
+inmod@{u} -> Type@{v}
+ : Type@{max(u+1,v+1)}
+(* u v |= *)
+
+Applied.infunct is universe polymorphic
+axfoo@{i Top.41 Top.42} : Type@{Top.41} -> Type@{i}
+(* i Top.41 Top.42 |= *)
+
+axfoo is universe polymorphic
+Argument scope is [type_scope]
+Expands to: Constant Top.axfoo
+axbar@{i Top.41 Top.42} : Type@{Top.42} -> Type@{i}
+(* i Top.41 Top.42 |= *)
+
+axbar is universe polymorphic
+Argument scope is [type_scope]
+Expands to: Constant Top.axbar
+axfoo' : Type@{Top.44} -> Type@{axbar'.i}
+
+axfoo' is not universe polymorphic
+Argument scope is [type_scope]
+Expands to: Constant Top.axfoo'
+axbar' : Type@{Top.44} -> Type@{axbar'.i}
+
+axbar' is not universe polymorphic
+Argument scope is [type_scope]
+Expands to: Constant Top.axbar'
+The command has indeed failed with message:
+When declaring multiple axioms in one command, only the first is allowed a universe binder (which will be shared by the whole block).
diff --git a/test-suite/output/UnivBinders.v b/test-suite/output/UnivBinders.v
index 8656ff1a39..266d94ad99 100644
--- a/test-suite/output/UnivBinders.v
+++ b/test-suite/output/UnivBinders.v
@@ -1,13 +1,146 @@
Set Universe Polymorphism.
Set Printing Universes.
-Unset Strict Universe Declaration.
+(* Unset Strict Universe Declaration. *)
+
+(* universe binders on inductive types and record projections *)
+Inductive Empty@{u} : Type@{u} := .
+Print Empty.
+
+Set Primitive Projections.
+Record PWrap@{u} (A:Type@{u}) := pwrap { punwrap : A }.
+Print PWrap.
+Print punwrap.
+
+Unset Primitive Projections.
+Record RWrap@{u} (A:Type@{u}) := rwrap { runwrap : A }.
+Print RWrap.
+Print runwrap.
-Class Wrap A := wrap : A.
+(* universe binders also go on the constants for operational typeclasses. *)
+Class Wrap@{u} (A:Type@{u}) := wrap : A.
+Print Wrap.
+Print wrap.
-Instance bar@{u} : Wrap@{u} Set. Proof nat.
+(* Instance in lemma mode used to ignore the binders. *)
+Instance bar@{u} : Wrap@{u} Set. Proof. exact nat. Qed.
Print bar.
+Unset Strict Universe Declaration.
(* The universes in the binder come first, then the extra universes in
order of appearance. *)
Definition foo@{u +} := Type -> Type@{v} -> Type@{u}.
Print foo.
+Set Strict Universe Declaration.
+
+(* Binders even work with monomorphic definitions! *)
+Monomorphic Definition mono@{u} := Type@{u}.
+Print mono.
+Check mono.
+Check Type@{mono.u}.
+
+Module mono.
+ Fail Monomorphic Universe u.
+ Monomorphic Universe MONOU.
+
+ Monomorphic Definition monomono := Type@{MONOU}.
+ Check monomono.
+End mono.
+Check mono.monomono. (* qualified MONOU *)
+Import mono.
+Check monomono. (* unqualified MONOU *)
+Check mono. (* still qualified mono.u *)
+
+Monomorphic Constraint Set < Top.mono.u.
+
+Module mono2.
+ Monomorphic Universe u.
+End mono2.
+
+Fail Monomorphic Definition mono2@{u} := Type@{u}.
+
+Module SecLet.
+ Unset Universe Polymorphism.
+ Section foo.
+ (* Fail Let foo@{} := Type@{u}. (* doesn't parse: Let foo@{...} doesn't exist *) *)
+ Unset Strict Universe Declaration.
+ Let tt : Type@{u} := Type@{v}. (* names disappear in the ether *)
+ Let ff : Type@{u}. Proof. exact Type@{v}. Qed. (* if Set Universe Polymorphism: universes are named ff.u and ff.v. Otherwise names disappear into space *)
+ Definition bobmorane := tt -> ff.
+ End foo.
+ Print bobmorane. (*
+ bobmorane@{Top.15 Top.16 ff.u ff.v} =
+ let tt := Type@{Top.16} in let ff := Type@{ff.v} in tt -> ff
+ : Type@{max(Top.15,ff.u)}
+ (* Top.15 Top.16 ff.u ff.v |= Top.16 < Top.15
+ ff.v < ff.u
+ *)
+
+ bobmorane is universe polymorphic
+ *)
+End SecLet.
+
+(* fun x x => foo is nonsense with local binders *)
+Fail Definition fo@{u u} := Type@{u}.
+
+(* Using local binders for printing. *)
+Print foo@{E M N}.
+(* Underscores discard the name if there's one. *)
+Print foo@{_ _ _}.
+
+(* Also works for inductives and records. *)
+Print Empty@{E}.
+Print PWrap@{E}.
+
+(* Also works for About. *)
+About punwrap@{K}.
+
+(* Instance length check. *)
+Fail Print foo@{E}.
+Fail Print mono@{E}.
+
+(* Not everything can be printed with custom universe names. *)
+Fail Print Coq.Init.Logic@{E}.
+
+(* Nice error when constraints are impossible. *)
+Monomorphic Universes gU gV. Monomorphic Constraint gU < gV.
+Fail Lemma foo@{u v|u < gU, gV < v, v < u} : nat.
+
+(* Universe binders survive through compilation, sections and modules. *)
+Require TestSuite.bind_univs.
+Print bind_univs.mono.
+Print bind_univs.poly.
+
+Section SomeSec.
+ Universe u.
+ Definition insec@{v} := Type@{u} -> Type@{v}.
+ Print insec.
+End SomeSec.
+Print insec.
+
+Module SomeMod.
+ Definition inmod@{u} := Type@{u}.
+ Print inmod.
+End SomeMod.
+Print SomeMod.inmod.
+Import SomeMod.
+Print inmod.
+
+Module Type SomeTyp. Definition inmod := Type. End SomeTyp.
+Module SomeFunct (In : SomeTyp).
+ Definition infunct@{u v} := In.inmod@{u} -> Type@{v}.
+End SomeFunct.
+Module Applied := SomeFunct(SomeMod).
+Print Applied.infunct.
+
+(* Multi-axiom declaration
+
+ In polymorphic mode the domain Type gets separate universes for the
+ different axioms, but all axioms have to declare all universes. In
+ polymorphic mode they get the same universes, ie the type is only
+ interpd once. *)
+Axiom axfoo@{i+} axbar : Type -> Type@{i}.
+Monomorphic Axiom axfoo'@{i+} axbar' : Type -> Type@{i}.
+
+About axfoo. About axbar. About axfoo'. About axbar'.
+
+Fail Axiom failfoo failbar@{i} : Type.
diff --git a/test-suite/output/bug5778.out b/test-suite/output/bug5778.out
new file mode 100644
index 0000000000..91ceb1b583
--- /dev/null
+++ b/test-suite/output/bug5778.out
@@ -0,0 +1,4 @@
+The command has indeed failed with message:
+In nested Ltac calls to "c", "abs" and "abstract b ltac:(())", last call
+failed.
+The term "I" has type "True" which should be Set, Prop or Type.
diff --git a/test-suite/output/bug5778.v b/test-suite/output/bug5778.v
new file mode 100644
index 0000000000..0dcd76aeff
--- /dev/null
+++ b/test-suite/output/bug5778.v
@@ -0,0 +1,7 @@
+Ltac a _ := pose (I : I).
+Ltac b _ := a ().
+Ltac abs _ := abstract b ().
+Ltac c _ := abs ().
+Goal True.
+ Fail c ().
+Abort.
diff --git a/test-suite/output/bug6821.out b/test-suite/output/bug6821.out
new file mode 100644
index 0000000000..7b12b53200
--- /dev/null
+++ b/test-suite/output/bug6821.out
@@ -0,0 +1,2 @@
+forall f : nat -> Type, f x where x : nat := 1
+ : Type
diff --git a/test-suite/output/bug6821.v b/test-suite/output/bug6821.v
new file mode 100644
index 0000000000..40627e331e
--- /dev/null
+++ b/test-suite/output/bug6821.v
@@ -0,0 +1,8 @@
+(* Was failing at printing time with stack overflow due to an infinite
+ eta-expansion *)
+
+Notation "x 'where' y .. z := v " :=
+ ((fun y => .. ((fun z => x) v) ..) v)
+ (at level 11, v at next level, y binder, z binder).
+
+Check forall f, f x where x := 1.
diff --git a/test-suite/output/inference.out b/test-suite/output/inference.out
index d28ee42761..5e9eff0481 100644
--- a/test-suite/output/inference.out
+++ b/test-suite/output/inference.out
@@ -9,10 +9,10 @@ fun (m n p : nat) (H : S m <= S n + p) => le_S_n m (n + p) H
fun n : nat => let y : T n := A n in ?t ?x : T n
: forall n : nat, T n
where
-?t : [n : nat y := A n : T n |- ?T -> T n]
-?x : [n : nat y := A n : T n |- ?T]
+?t : [n : nat y := A n : T n |- ?T -> T n]
+?x : [n : nat y := A n : T n |- ?T]
fun n : nat => ?t ?x : T n
: forall n : nat, T n
where
-?t : [n : nat |- ?T -> T n]
-?x : [n : nat |- ?T]
+?t : [n : nat |- ?T -> T n]
+?x : [n : nat |- ?T]
diff --git a/test-suite/output/load/Load_noproof.v b/test-suite/output/load/Load_noproof.v
new file mode 100644
index 0000000000..aaf1ffe26d
--- /dev/null
+++ b/test-suite/output/load/Load_noproof.v
@@ -0,0 +1 @@
+Definition f := 2.
diff --git a/test-suite/output/load/Load_openproof.v b/test-suite/output/load/Load_openproof.v
new file mode 100644
index 0000000000..204d4ecbfe
--- /dev/null
+++ b/test-suite/output/load/Load_openproof.v
@@ -0,0 +1 @@
+Lemma k : True.
diff --git a/test-suite/output/load/Load_proof.v b/test-suite/output/load/Load_proof.v
new file mode 100644
index 0000000000..e47f66a193
--- /dev/null
+++ b/test-suite/output/load/Load_proof.v
@@ -0,0 +1,2 @@
+Lemma u : True.
+Proof. exact I. Qed.
diff --git a/test-suite/output/ltac.out b/test-suite/output/ltac.out
index 35c3057d84..eb9f571022 100644
--- a/test-suite/output/ltac.out
+++ b/test-suite/output/ltac.out
@@ -1,7 +1,7 @@
The command has indeed failed with message:
Ltac variable y depends on pattern variable name z which is not bound in current context.
Ltac f x y z :=
- symmetry in x, y; auto with z; auto; intros **; clearbody x; generalize
+ symmetry in x, y; auto with z; auto; intros; clearbody x; generalize
dependent z
The command has indeed failed with message:
In nested Ltac calls to "g1" and "refine (uconstr)", last call failed.
@@ -31,3 +31,10 @@ nat
nat
0
0
+Ltac foo :=
+ let x := intros in
+ let y := intros -> in
+ let v := constr:(nil) in
+ let w := () in
+ let z := 1 in
+ pose v
diff --git a/test-suite/output/ltac.v b/test-suite/output/ltac.v
index 76c37625aa..6adbe95dd5 100644
--- a/test-suite/output/ltac.v
+++ b/test-suite/output/ltac.v
@@ -57,3 +57,14 @@ match goal with |- ?x*?y => idtac x end.
match goal with H: context [?x*?y] |- _ => idtac x end.
match goal with |- context [?x*?y] => idtac x end.
Abort.
+
+(* Check printing of let in Ltac and Tactic Notation *)
+
+Ltac foo :=
+ let x := intros in
+ let y := intros -> in
+ let v := constr:(@ nil True) in
+ let w := () in
+ let z := 1 in
+ pose v.
+Print Ltac foo.
diff --git a/test-suite/output/ltac_missing_args.out b/test-suite/output/ltac_missing_args.out
index 172612405f..7326f137c2 100644
--- a/test-suite/output/ltac_missing_args.out
+++ b/test-suite/output/ltac_missing_args.out
@@ -1,20 +1,40 @@
The command has indeed failed with message:
-A fully applied tactic is expected: missing argument for variable x.
+The user-defined tactic "Top.foo" was not fully applied:
+There is a missing argument for variable x,
+no arguments at all were provided.
The command has indeed failed with message:
-A fully applied tactic is expected: missing argument for variable x.
+The user-defined tactic "Top.bar" was not fully applied:
+There is a missing argument for variable x,
+no arguments at all were provided.
The command has indeed failed with message:
-A fully applied tactic is expected: missing arguments for variables y and _.
+The user-defined tactic "Top.bar" was not fully applied:
+There are missing arguments for variables y and _,
+an argument was provided for variable x.
The command has indeed failed with message:
-A fully applied tactic is expected: missing argument for variable x.
+The user-defined tactic "Top.baz" was not fully applied:
+There is a missing argument for variable x,
+no arguments at all were provided.
The command has indeed failed with message:
-A fully applied tactic is expected: missing argument for variable x.
+The user-defined tactic "Top.qux" was not fully applied:
+There is a missing argument for variable x,
+no arguments at all were provided.
The command has indeed failed with message:
-A fully applied tactic is expected: missing argument for variable _.
+The user-defined tactic "Top.mydo" was not fully applied:
+There is a missing argument for variable _,
+no arguments at all were provided.
The command has indeed failed with message:
-A fully applied tactic is expected: missing argument for variable _.
+An unnamed user-defined tactic was not fully applied:
+There is a missing argument for variable _,
+no arguments at all were provided.
The command has indeed failed with message:
-A fully applied tactic is expected: missing argument for variable _.
+An unnamed user-defined tactic was not fully applied:
+There is a missing argument for variable _,
+no arguments at all were provided.
The command has indeed failed with message:
-A fully applied tactic is expected: missing argument for variable x.
+The user-defined tactic "Top.rec" was not fully applied:
+There is a missing argument for variable x,
+no arguments at all were provided.
The command has indeed failed with message:
-A fully applied tactic is expected: missing argument for variable x.
+An unnamed user-defined tactic was not fully applied:
+There is a missing argument for variable x,
+an argument was provided for variable tac.
diff --git a/test-suite/output/optimize_heap.out b/test-suite/output/optimize_heap.out
new file mode 100644
index 0000000000..94a0b19118
--- /dev/null
+++ b/test-suite/output/optimize_heap.out
@@ -0,0 +1,8 @@
+1 subgoal
+
+ ============================
+ True
+1 subgoal
+
+ ============================
+ True
diff --git a/test-suite/output/optimize_heap.v b/test-suite/output/optimize_heap.v
new file mode 100644
index 0000000000..e566bd7bab
--- /dev/null
+++ b/test-suite/output/optimize_heap.v
@@ -0,0 +1,7 @@
+(* optimize_heap should not affect the proof state *)
+
+Goal True.
+ idtac.
+ Show.
+ optimize_heap.
+ Show.
diff --git a/test-suite/prerequisite/bind_univs.v b/test-suite/prerequisite/bind_univs.v
new file mode 100644
index 0000000000..e834fde113
--- /dev/null
+++ b/test-suite/prerequisite/bind_univs.v
@@ -0,0 +1,7 @@
+(* Used in output/UnivBinders.v *)
+
+Monomorphic Definition mono@{u} := Type@{u}.
+
+Polymorphic Definition poly@{u} := Type@{u}.
+
+Monomorphic Universe reqU.
diff --git a/test-suite/success/BracketsWithGoalSelector.v b/test-suite/success/BracketsWithGoalSelector.v
new file mode 100644
index 0000000000..ed035f5213
--- /dev/null
+++ b/test-suite/success/BracketsWithGoalSelector.v
@@ -0,0 +1,16 @@
+Goal forall A B, B \/ A -> A \/ B.
+Proof.
+ intros * [HB | HA].
+ 2: {
+ left.
+ exact HA.
+ Fail right. (* No such goal. Try unfocusing with "}". *)
+ }
+ Fail 2: { (* Non-existent goal. *)
+ idtac. (* The idtac is to get a dot, so that IDEs know to stop there. *)
+ 1:{ (* Syntactic test: no space before bracket. *)
+ right.
+ exact HB.
+Fail Qed.
+ }
+Qed.
diff --git a/test-suite/success/Check.v b/test-suite/success/Check.v
index 0f677a8495..36fecf7204 100644
--- a/test-suite/success/Check.v
+++ b/test-suite/success/Check.v
@@ -1,9 +1,11 @@
(************************************************************************)
-(* v * The Coq Proof Assistant / The Coq Development Team *)
-(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2017 *)
+(* * The Coq Proof Assistant / The Coq Development Team *)
+(* v * INRIA, CNRS and contributors - Copyright 1999-2018 *)
+(* <O___,, * (see CREDITS file for the list of authors) *)
(* \VV/ **************************************************************)
-(* // * This file is distributed under the terms of the *)
-(* * GNU Lesser General Public License Version 2.1 *)
+(* // * This file is distributed under the terms of the *)
+(* * GNU Lesser General Public License Version 2.1 *)
+(* * (see LICENSE file for the text of the license) *)
(************************************************************************)
(* Compiling the theories allows testing parsing and typing but not printing *)
(* This file tests that pretty-printing does not fail *)
@@ -12,3 +14,5 @@
Check 0.
Check S.
Check nat.
+
+Type Type : Type.
diff --git a/test-suite/success/Field.v b/test-suite/success/Field.v
index 018b22c489..fdf7797d4b 100644
--- a/test-suite/success/Field.v
+++ b/test-suite/success/Field.v
@@ -1,9 +1,11 @@
(************************************************************************)
-(* v * The Coq Proof Assistant / The Coq Development Team *)
-(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2017 *)
+(* * The Coq Proof Assistant / The Coq Development Team *)
+(* v * INRIA, CNRS and contributors - Copyright 1999-2018 *)
+(* <O___,, * (see CREDITS file for the list of authors) *)
(* \VV/ **************************************************************)
-(* // * This file is distributed under the terms of the *)
-(* * GNU Lesser General Public License Version 2.1 *)
+(* // * This file is distributed under the terms of the *)
+(* * GNU Lesser General Public License Version 2.1 *)
+(* * (see LICENSE file for the text of the license) *)
(************************************************************************)
(**** Tests of Field with real numbers ****)
diff --git a/test-suite/success/Hints.v b/test-suite/success/Hints.v
index 6962e43e7e..8d08f5975e 100644
--- a/test-suite/success/Hints.v
+++ b/test-suite/success/Hints.v
@@ -172,3 +172,14 @@ Hint Cut [_* (a_is_b | b_is_c | c_is_d | d_is_e)
Timeout 1 Fail apply _. (* 0.06s *)
Abort.
End HintCut.
+
+
+(* Check that auto-like tactics do not prefer "eq_refl" over more complex solutions, *)
+(* e.g. those tactics when considering a goal with existential varibles *)
+(* like "m = ?n" won't pick "plus_n_O" hint over "eq_refl" hint. *)
+(* See this Coq club post for more detail: *)
+(* https://sympa.inria.fr/sympa/arc/coq-club/2017-12/msg00103.html *)
+
+Goal forall (m : nat), exists n, m = n /\ m = n.
+ intros m; eexists; split; [trivial | reflexivity].
+Qed.
diff --git a/test-suite/success/Inductive.v b/test-suite/success/Inductive.v
index 893d75b77f..5b1482fd58 100644
--- a/test-suite/success/Inductive.v
+++ b/test-suite/success/Inductive.v
@@ -200,3 +200,9 @@ Module NonRecLetIn.
(fun n b c => f_equal (Rec n) eq_refl) 0 (Rec 0 (Base 1)).
End NonRecLetIn.
+
+(* Test treatment of let-in in the definition of Records *)
+(* Should fail with "Sort expected" *)
+
+Fail Inductive foo (T : Type) : let T := Type in T :=
+ { r : forall x : T, x = x }.
diff --git a/test-suite/success/Notations.v b/test-suite/success/Notations.v
index e3f90f6d94..3c0ad20700 100644
--- a/test-suite/success/Notations.v
+++ b/test-suite/success/Notations.v
@@ -147,3 +147,9 @@ Inductive EQ {A} (x:A) : A -> Prop := REFL : x === x
Fail Check {x@{u},y|x=x}.
Fail Check {?[n],y|0=0}.
+
+(* Check that 10 is well declared left associative *)
+
+Section C.
+Notation "f $$$ x" := (id f x) (at level 10, left associativity).
+End C.
diff --git a/test-suite/success/Notations2.v b/test-suite/success/Notations2.v
index 9505a56e3f..7c2cf3ee52 100644
--- a/test-suite/success/Notations2.v
+++ b/test-suite/success/Notations2.v
@@ -90,3 +90,39 @@ Check fun A (x :prod' bool A) => match x with #### 0 y 0 => 2 | _ => 1 end.
Notation "##### x" := (pair' x) (at level 0, x at level 1).
Check ##### 0 _ 0%bool 0%bool : prod' bool bool.
Check fun A (x :prod' bool A) => match x with ##### 0 _ y 0%bool => 2 | _ => 1 end.
+
+(* 10. Check computation of binding variable through other notations *)
+(* it should be detected as binding variable and the scopes not being checked *)
+Notation "'FUNNAT' i => t" := (fun i : nat => i = t) (at level 200).
+Notation "'Funnat' i => t" := (FUNNAT i => t + i%nat) (at level 200).
+
+(* 11. Notations with needed factorization of a recursive pattern *)
+(* See https://github.com/coq/coq/issues/6078#issuecomment-342287412 *)
+Module M11.
+Notation "[:: x1 ; .. ; xn & s ]" := (cons x1 .. (cons xn s) ..).
+Notation "[:: x1 ; .. ; xn ]" := (cons x1 .. (cons xn nil) ..).
+Check [:: 1 ; 2 ; 3 ].
+Check [:: 1 ; 2 ; 3 & nil ]. (* was failing *)
+End M11.
+
+(* 12. Preventively check that a variable which does not occur can be instantiated *)
+(* by any term. In particular, it should not be restricted to a binder *)
+Module M12.
+Notation "N ++ x" := (S x) (only parsing).
+Check 2 ++ 0.
+End M12.
+
+(* 13. Check that internal data about associativity are not used in comparing levels *)
+Module M13.
+Notation "x ;; z" := (x + z)
+ (at level 100, z at level 200, only parsing, right associativity).
+Notation "x ;; z" := (x * z)
+ (at level 100, z at level 200, only parsing) : foo_scope.
+End M13.
+
+(* 14. Check that a notation with a "ident" binder does not include a pattern *)
+Module M14.
+Notation "'myexists' x , p" := (ex (fun x => p))
+ (at level 200, x ident, p at level 200, right associativity) : type_scope.
+Check myexists I, I = 0. (* Should not be seen as a constructor *)
+End M14.
diff --git a/test-suite/success/ShowExtraction.v b/test-suite/success/ShowExtraction.v
new file mode 100644
index 0000000000..e34c240c5d
--- /dev/null
+++ b/test-suite/success/ShowExtraction.v
@@ -0,0 +1,31 @@
+
+Require Extraction.
+Require Import List.
+
+Section Test.
+Variable A : Type.
+Variable decA : forall (x y:A), {x=y}+{x<>y}.
+
+(** Should fail when no proofs are started *)
+Fail Show Extraction.
+
+Lemma decListA : forall (xs ys : list A), {xs=ys}+{xs<>ys}.
+Proof.
+Show Extraction.
+fix 1.
+destruct xs as [|x xs], ys as [|y ys].
+Show Extraction.
+- now left.
+- now right.
+- now right.
+- Show Extraction.
+ destruct (decA x y).
+ + destruct (decListA xs ys).
+ * left; now f_equal.
+ * Show Extraction.
+ right. congruence.
+ + right. congruence.
+Show Extraction.
+Defined.
+
+End Test.
diff --git a/test-suite/success/Tauto.v b/test-suite/success/Tauto.v
index bffd96044d..7d01d3b07b 100644
--- a/test-suite/success/Tauto.v
+++ b/test-suite/success/Tauto.v
@@ -1,9 +1,11 @@
(************************************************************************)
-(* v * The Coq Proof Assistant / The Coq Development Team *)
-(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2017 *)
+(* * The Coq Proof Assistant / The Coq Development Team *)
+(* v * INRIA, CNRS and contributors - Copyright 1999-2018 *)
+(* <O___,, * (see CREDITS file for the list of authors) *)
(* \VV/ **************************************************************)
-(* // * This file is distributed under the terms of the *)
-(* * GNU Lesser General Public License Version 2.1 *)
+(* // * This file is distributed under the terms of the *)
+(* * GNU Lesser General Public License Version 2.1 *)
+(* * (see LICENSE file for the text of the license) *)
(************************************************************************)
(**** Tactics Tauto and Intuition ****)
diff --git a/test-suite/success/TestRefine.v b/test-suite/success/TestRefine.v
index 87296744c4..f1683078cb 100644
--- a/test-suite/success/TestRefine.v
+++ b/test-suite/success/TestRefine.v
@@ -1,9 +1,11 @@
(************************************************************************)
-(* v * The Coq Proof Assistant / The Coq Development Team *)
-(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2017 *)
+(* * The Coq Proof Assistant / The Coq Development Team *)
+(* v * INRIA, CNRS and contributors - Copyright 1999-2018 *)
+(* <O___,, * (see CREDITS file for the list of authors) *)
(* \VV/ **************************************************************)
-(* // * This file is distributed under the terms of the *)
-(* * GNU Lesser General Public License Version 2.1 *)
+(* // * This file is distributed under the terms of the *)
+(* * GNU Lesser General Public License Version 2.1 *)
+(* * (see LICENSE file for the text of the license) *)
(************************************************************************)
(************************************************************************)
diff --git a/test-suite/success/Typeclasses.v b/test-suite/success/Typeclasses.v
index 6b1f0315bc..cd6eac35cf 100644
--- a/test-suite/success/Typeclasses.v
+++ b/test-suite/success/Typeclasses.v
@@ -240,3 +240,20 @@ Module IterativeDeepening.
Qed.
End IterativeDeepening.
+
+Module AxiomsAreInstances.
+ Set Typeclasses Axioms Are Instances.
+ Class TestClass1 := {}.
+ Axiom testax1 : TestClass1.
+ Definition testdef1 : TestClass1 := _.
+
+ Unset Typeclasses Axioms Are Instances.
+ Class TestClass2 := {}.
+ Axiom testax2 : TestClass2.
+ Fail Definition testdef2 : TestClass2 := _.
+
+ (* we didn't break typeclasses *)
+ Existing Instance testax2.
+ Definition testdef2 : TestClass2 := _.
+
+End AxiomsAreInstances.
diff --git a/test-suite/success/abstract_poly.v b/test-suite/success/abstract_poly.v
index b736b734fd..aa8da53361 100644
--- a/test-suite/success/abstract_poly.v
+++ b/test-suite/success/abstract_poly.v
@@ -17,4 +17,4 @@ intros m n P e p.
abstract (rewrite e in p; exact p).
Defined.
-Check bar_subproof@{Set Set Set}.
+Check bar_subproof@{Set Set}.
diff --git a/test-suite/success/bteauto.v b/test-suite/success/bteauto.v
index 3178c6fc15..730b367d60 100644
--- a/test-suite/success/bteauto.v
+++ b/test-suite/success/bteauto.v
@@ -55,6 +55,7 @@ Module Backtracking.
Axiom A : Type.
Existing Class A.
Axioms a b c d e: A.
+ Existing Instances a b c d e.
Ltac get_value H := eval cbv delta [H] in H.
diff --git a/test-suite/success/cumulativity.v b/test-suite/success/cumulativity.v
index 0ee85712e2..4dda360423 100644
--- a/test-suite/success/cumulativity.v
+++ b/test-suite/success/cumulativity.v
@@ -45,6 +45,15 @@ Section TpLift.
End TpLift.
+Record Tp' := { tp' : Tp }.
+
+Definition CTp := Tp.
+(* here we have to reduce a constant to infer the correct subtyping. *)
+Record Tp'' := { tp'' : CTp }.
+
+Definition LiftTp'@{i j|i < j} : Tp'@{i} -> Tp'@{j} := fun x => x.
+Definition LiftTp''@{i j|i < j} : Tp''@{i} -> Tp''@{j} := fun x => x.
+
Lemma LiftC_Lem (t : Tp) : LiftTp t = t.
Proof. reflexivity. Qed.
@@ -98,3 +107,51 @@ Section down.
intros H f g Hfg. exact (H f g Hfg).
Defined.
End down.
+
+Record Arrow@{i j} := { arrow : Type@{i} -> Type@{j} }.
+
+Fail Definition arrow_lift@{i i' j j' | i' < i, j < j'}
+ : Arrow@{i j} -> Arrow@{i' j'}
+ := fun x => x.
+
+Definition arrow_lift@{i i' j j' | i' = i, j < j'}
+ : Arrow@{i j} -> Arrow@{i' j'}
+ := fun x => x.
+
+Inductive Mut1 A :=
+| Base1 : Type -> Mut1 A
+| Node1 : (A -> Mut2 A) -> Mut1 A
+with Mut2 A :=
+ | Base2 : Type -> Mut2 A
+ | Node2 : Mut1 A -> Mut2 A.
+
+(* If we don't reduce T while inferring cumulativity for the
+ constructor we will see a Rel and believe i is irrelevant. *)
+Inductive withparams@{i j} (T:=Type@{i}:Type@{j}) := mkwithparams : T -> withparams.
+
+Definition withparams_co@{i i' j|i < i', i' < j} : withparams@{i j} -> withparams@{i' j}
+ := fun x => x.
+
+Fail Definition withparams_not_irr@{i i' j|i' < i, i' < j} : withparams@{i j} -> withparams@{i' j}
+ := fun x => x.
+
+(** Cumulative constructors *)
+
+
+Record twotys@{u v w} : Type@{w} :=
+ twoconstr { fstty : Type@{u}; sndty : Type@{v} }.
+
+Monomorphic Universes i j k l.
+
+Monomorphic Constraint i < j.
+Monomorphic Constraint j < k.
+Monomorphic Constraint k < l.
+
+Parameter Tyi : Type@{i}.
+
+Definition checkcumul :=
+ eq_refl _ : @eq twotys@{k k l} (twoconstr@{i j k} Tyi Tyi) (twoconstr@{j i k} Tyi Tyi).
+
+(* They can only be compared at the highest type *)
+Fail Definition checkcumul' :=
+ eq_refl _ : @eq twotys@{i k l} (twoconstr@{i j k} Tyi Tyi) (twoconstr@{j i k} Tyi Tyi).
diff --git a/test-suite/success/dtauto-let-deps.v b/test-suite/success/dtauto-let-deps.v
new file mode 100644
index 0000000000..094b2f8b3c
--- /dev/null
+++ b/test-suite/success/dtauto-let-deps.v
@@ -0,0 +1,24 @@
+(*
+This test is sensitive to changes in which let-ins are expanded when checking
+for dependencies in constructors.
+If the (x := X) is not reduced, Foo1 won't be recognized as a conjunction,
+and if the (y := X) is reduced, Foo2 will be recognized as a conjunction.
+
+This tests the behavior of engine/termops.ml : prod_applist_assum,
+which is currently specified to reduce exactly the parameters.
+
+If dtauto is changed to reduce lets in constructors before checking dependency,
+this test will need to be changed.
+*)
+
+Context (P Q : Type).
+Inductive Foo1 (X : Type) (x := X) := foo1 : let y := X in P -> Q -> Foo1 x.
+Inductive Foo2 (X : Type) (x := X) := foo2 : let y := X in P -> Q -> Foo2 y.
+
+Goal P -> Q -> Foo1 nat.
+solve [dtauto].
+Qed.
+
+Goal P -> Q -> Foo2 nat.
+Fail solve [dtauto].
+Abort.
diff --git a/test-suite/success/eauto.v b/test-suite/success/eauto.v
index 9b0ff1c8fe..c44747379f 100644
--- a/test-suite/success/eauto.v
+++ b/test-suite/success/eauto.v
@@ -1,9 +1,11 @@
(************************************************************************)
-(* v * The Coq Proof Assistant / The Coq Development Team *)
-(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2017 *)
+(* * The Coq Proof Assistant / The Coq Development Team *)
+(* v * INRIA, CNRS and contributors - Copyright 1999-2018 *)
+(* <O___,, * (see CREDITS file for the list of authors) *)
(* \VV/ **************************************************************)
-(* // * This file is distributed under the terms of the *)
-(* * GNU Lesser General Public License Version 2.1 *)
+(* // * This file is distributed under the terms of the *)
+(* * GNU Lesser General Public License Version 2.1 *)
+(* * (see LICENSE file for the text of the license) *)
(************************************************************************)
Class A (A : Type).
diff --git a/test-suite/success/eqdecide.v b/test-suite/success/eqdecide.v
index 055434df01..9b3fb3c5c7 100644
--- a/test-suite/success/eqdecide.v
+++ b/test-suite/success/eqdecide.v
@@ -1,9 +1,11 @@
(************************************************************************)
-(* v * The Coq Proof Assistant / The Coq Development Team *)
-(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2017 *)
+(* * The Coq Proof Assistant / The Coq Development Team *)
+(* v * INRIA, CNRS and contributors - Copyright 1999-2018 *)
+(* <O___,, * (see CREDITS file for the list of authors) *)
(* \VV/ **************************************************************)
-(* // * This file is distributed under the terms of the *)
-(* * GNU Lesser General Public License Version 2.1 *)
+(* // * This file is distributed under the terms of the *)
+(* * GNU Lesser General Public License Version 2.1 *)
+(* * (see LICENSE file for the text of the license) *)
(************************************************************************)
Inductive T : Set :=
diff --git a/test-suite/success/extraction.v b/test-suite/success/extraction.v
index 0ee2232502..95ae070940 100644
--- a/test-suite/success/extraction.v
+++ b/test-suite/success/extraction.v
@@ -1,9 +1,11 @@
(************************************************************************)
-(* v * The Coq Proof Assistant / The Coq Development Team *)
-(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2017 *)
+(* * The Coq Proof Assistant / The Coq Development Team *)
+(* v * INRIA, CNRS and contributors - Copyright 1999-2018 *)
+(* <O___,, * (see CREDITS file for the list of authors) *)
(* \VV/ **************************************************************)
-(* // * This file is distributed under the terms of the *)
-(* * GNU Lesser General Public License Version 2.1 *)
+(* // * This file is distributed under the terms of the *)
+(* * GNU Lesser General Public License Version 2.1 *)
+(* * (see LICENSE file for the text of the license) *)
(************************************************************************)
Require Coq.extraction.Extraction.
@@ -635,6 +637,6 @@ Recursive Extraction Everything.
Require Import ZArith.
-Extraction Language Ocaml.
+Extraction Language OCaml.
Recursive Extraction Z_modulo_2 Zdiv_eucl_exist.
Extraction TestCompile Z_modulo_2 Zdiv_eucl_exist.
diff --git a/test-suite/success/inds_type_sec.v b/test-suite/success/inds_type_sec.v
index 7e9095dfd7..92fd6cb17d 100644
--- a/test-suite/success/inds_type_sec.v
+++ b/test-suite/success/inds_type_sec.v
@@ -1,9 +1,11 @@
(************************************************************************)
-(* v * The Coq Proof Assistant / The Coq Development Team *)
-(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2017 *)
+(* * The Coq Proof Assistant / The Coq Development Team *)
+(* v * INRIA, CNRS and contributors - Copyright 1999-2018 *)
+(* <O___,, * (see CREDITS file for the list of authors) *)
(* \VV/ **************************************************************)
-(* // * This file is distributed under the terms of the *)
-(* * GNU Lesser General Public License Version 2.1 *)
+(* // * This file is distributed under the terms of the *)
+(* * GNU Lesser General Public License Version 2.1 *)
+(* * (see LICENSE file for the text of the license) *)
(************************************************************************)
Section S.
Inductive T (U : Type) : Type :=
diff --git a/test-suite/success/induct.v b/test-suite/success/induct.v
index 35d7929877..da7df69e62 100644
--- a/test-suite/success/induct.v
+++ b/test-suite/success/induct.v
@@ -1,9 +1,11 @@
(************************************************************************)
-(* v * The Coq Proof Assistant / The Coq Development Team *)
-(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2017 *)
+(* * The Coq Proof Assistant / The Coq Development Team *)
+(* v * INRIA, CNRS and contributors - Copyright 1999-2018 *)
+(* <O___,, * (see CREDITS file for the list of authors) *)
(* \VV/ **************************************************************)
-(* // * This file is distributed under the terms of the *)
-(* * GNU Lesser General Public License Version 2.1 *)
+(* // * This file is distributed under the terms of the *)
+(* * GNU Lesser General Public License Version 2.1 *)
+(* * (see LICENSE file for the text of the license) *)
(************************************************************************)
(* Test des definitions inductives imbriquees *)
diff --git a/test-suite/success/letproj.v b/test-suite/success/letproj.v
index a183be6223..de2857b437 100644
--- a/test-suite/success/letproj.v
+++ b/test-suite/success/letproj.v
@@ -1,5 +1,5 @@
Set Primitive Projections.
-Set Record Elimination Schemes.
+Set Nonrecursive Elimination Schemes.
Record Foo (A : Type) := { bar : A -> A; baz : A }.
Definition test (A : Type) (f : Foo A) :=
diff --git a/test-suite/success/mutual_ind.v b/test-suite/success/mutual_ind.v
index c4c5623897..2c76a13597 100644
--- a/test-suite/success/mutual_ind.v
+++ b/test-suite/success/mutual_ind.v
@@ -1,9 +1,11 @@
(************************************************************************)
-(* v * The Coq Proof Assistant / The Coq Development Team *)
-(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2017 *)
+(* * The Coq Proof Assistant / The Coq Development Team *)
+(* v * INRIA, CNRS and contributors - Copyright 1999-2018 *)
+(* <O___,, * (see CREDITS file for the list of authors) *)
(* \VV/ **************************************************************)
-(* // * This file is distributed under the terms of the *)
-(* * GNU Lesser General Public License Version 2.1 *)
+(* // * This file is distributed under the terms of the *)
+(* * GNU Lesser General Public License Version 2.1 *)
+(* * (see LICENSE file for the text of the license) *)
(************************************************************************)
(* Definition mutuellement inductive et dependante *)
diff --git a/test-suite/success/name_mangling.v b/test-suite/success/name_mangling.v
new file mode 100644
index 0000000000..571dde8805
--- /dev/null
+++ b/test-suite/success/name_mangling.v
@@ -0,0 +1,192 @@
+(* -*- coq-prog-args: ("-mangle-names" "_") -*- *)
+
+(* Check that refine policy of redefining previous names make these names private *)
+(* abstract can change names in the environment! See bug #3146 *)
+
+Goal True -> True.
+intro.
+Fail exact H.
+exact _0.
+Abort.
+
+Unset Mangle Names.
+Goal True -> True.
+intro; exact H.
+Abort.
+
+Set Mangle Names.
+Set Mangle Names Prefix "baz".
+Goal True -> True.
+intro.
+Fail exact H.
+Fail exact _0.
+exact baz0.
+Abort.
+
+Goal True -> True.
+intro; assumption.
+Abort.
+
+Goal True -> True.
+intro x; exact x.
+Abort.
+
+Goal forall x y, x+y=0.
+intro x.
+refine (fun x => _).
+Fail Check x0.
+Check x.
+Abort.
+
+(* Example from Emilio *)
+
+Goal forall b : False, b = b.
+intro b.
+refine (let b := I in _).
+Fail destruct b0.
+Abort.
+
+(* Example from Cyprien *)
+
+Goal True -> True.
+Proof.
+ refine (fun _ => _).
+ Fail exact t.
+Abort.
+
+(* Example from Jason *)
+
+Goal False -> False.
+intro H.
+Fail abstract exact H.
+Abort.
+
+(* Variant *)
+
+Goal False -> False.
+intro.
+Fail abstract exact H.
+Abort.
+
+(* Example from Jason *)
+
+Goal False -> False.
+intro H.
+(* Name H' is from Ltac here, so it preserves the privacy *)
+(* But abstract messes everything up *)
+Fail let H' := H in abstract exact H'.
+let H' := H in exact H'.
+Qed.
+
+(* Variant *)
+
+Goal False -> False.
+intro.
+Fail let H' := H in abstract exact H'.
+Abort.
+
+(* Indirectly testing preservation of names by move (derived from Jason) *)
+
+Inductive nat2 := S2 (_ _ : nat2).
+Goal forall t : nat2, True.
+ intro t.
+ let IHt1 := fresh "IHt1" in
+ let IHt2 := fresh "IHt2" in
+ induction t as [? IHt1 ? IHt2].
+ Fail exact IHt1.
+Abort.
+
+(* Example on "pose proof" (from Jason) *)
+
+Goal False -> False.
+intro; pose proof I as H0.
+Fail exact H.
+Abort.
+
+(* Testing the approach for which non alpha-renamed quantified names are user-generated *)
+
+Section foo.
+Context (b : True).
+Goal forall b : False, b = b.
+Fail destruct b0.
+Abort.
+
+Goal forall b : False, b = b.
+now destruct b.
+Qed.
+End foo.
+
+(* Test stability of "fix" *)
+
+Lemma a : forall n, n = 0.
+Proof.
+fix a 1.
+Check a.
+fix 1.
+Fail Check a0.
+Abort.
+
+(* Test stability of "induction" *)
+
+Lemma a : forall n : nat, n = n.
+Proof.
+intro n; induction n as [ | n IHn ].
+- auto.
+- Check n.
+ Check IHn.
+Abort.
+
+Inductive I := C : I -> I -> I.
+
+Lemma a : forall n : I, n = n.
+Proof.
+intro n; induction n as [ n1 IHn1 n2 IHn2 ].
+Check n1.
+Check n2.
+apply f_equal2.
++ apply IHn1.
++ apply IHn2.
+Qed.
+
+(* Testing remember *)
+
+Lemma c : 0 = 0.
+Proof.
+remember 0 as x eqn:Heqx.
+Check Heqx.
+Abort.
+
+Lemma c : forall Heqx, Heqx -> 0 = 0.
+Proof.
+intros Heqx X.
+remember 0 as x.
+Fail Check Heqx0. (* Heqx0 is not canonical *)
+Abort.
+
+(* An example by Jason from the discussion for PR #268 *)
+
+Goal nat -> Set -> True.
+ intros x y.
+ match goal with
+ | [ x : _, y : _ |- _ ]
+ => let z := fresh "z" in
+ rename y into z, x into y;
+ let x' := fresh "x" in
+ rename z into x'
+ end.
+ revert y. (* x has been explicitly moved to y *)
+ Fail revert x. (* x comes from "fresh" *)
+Abort.
+
+Goal nat -> Set -> True.
+ intros.
+ match goal with
+ | [ x : _, y : _ |- _ ]
+ => let z := fresh "z" in
+ rename y into z, x into y;
+ let x' := fresh "x" in
+ rename z into x'
+ end.
+ Fail revert y. (* generated by intros *)
+ Fail revert x. (* generated by intros *)
+Abort.
diff --git a/test-suite/success/old_typeclass.v b/test-suite/success/old_typeclass.v
deleted file mode 100644
index 01e35810b0..0000000000
--- a/test-suite/success/old_typeclass.v
+++ /dev/null
@@ -1,13 +0,0 @@
-Require Import Setoid Coq.Classes.Morphisms.
-Set Typeclasses Legacy Resolution.
-
-Declare Instance and_Proper_eq: Proper (Logic.eq ==> Logic.eq ==> Logic.eq) and.
-
-Axiom In : Prop.
-Axiom union_spec : In <-> True.
-
-Lemma foo : In /\ True.
-Proof.
-progress rewrite union_spec.
-repeat constructor.
-Qed.
diff --git a/test-suite/success/polymorphism.v b/test-suite/success/polymorphism.v
index 7eaafc3545..d76b307914 100644
--- a/test-suite/success/polymorphism.v
+++ b/test-suite/success/polymorphism.v
@@ -190,6 +190,8 @@ Module binders.
Fail Defined.
Abort.
+ Fail Lemma bar@{u v | } : let x := (fun x => x) : Type@{u} -> Type@{v} in nat.
+
Lemma bar@{i j| i < j} : Type@{j}.
Proof.
exact Type@{i}.
@@ -200,6 +202,10 @@ Module binders.
exact Type@{i}.
Qed.
+ Monomorphic Universe M.
+ Fail Definition with_mono@{u|} : Type@{M} := Type@{u}.
+ Definition with_mono@{u|u < M} : Type@{M} := Type@{u}.
+
End binders.
Section cats.
@@ -399,6 +405,31 @@ Module Anonymous.
End Anonymous.
+Module Restrict.
+ (* Universes which don't appear in the term should be pruned, unless they have names *)
+ Set Universe Polymorphism.
+
+ Ltac exact0 := let x := constr:(Type) in exact 0.
+ Definition dummy_pruned@{} : nat := ltac:(exact0).
+
+ Definition named_not_pruned@{u} : nat := 0.
+ Check named_not_pruned@{_}.
+
+ Definition named_not_pruned_nonstrict : nat := ltac:(let x := constr:(Type@{u}) in exact 0).
+ Check named_not_pruned_nonstrict@{_}.
+
+ Lemma lemma_restrict_poly@{} : nat.
+ Proof. exact0. Defined.
+
+ Unset Universe Polymorphism.
+ Lemma lemma_restrict_mono_qed@{} : nat.
+ Proof. exact0. Qed.
+
+ Lemma lemma_restrict_abstract@{} : nat.
+ Proof. abstract exact0. Qed.
+
+End Restrict.
+
Module F.
Context {A B : Type}.
Definition foo : Type := B.
@@ -430,3 +461,10 @@ Section test_letin_subtyping.
Qed.
End test_letin_subtyping.
+
+Module ObligationRegression.
+ (** Test for a regression encountered when fixing obligations for
+ stronger restriction of universe context. *)
+ Require Import CMorphisms.
+ Check trans_co_eq_inv_arrow_morphism@{_ _ _ _ _ _ _ _}.
+End ObligationRegression.
diff --git a/test-suite/success/primitiveproj.v b/test-suite/success/primitiveproj.v
index 576bdbf71b..31a1608c4d 100644
--- a/test-suite/success/primitiveproj.v
+++ b/test-suite/success/primitiveproj.v
@@ -1,5 +1,5 @@
Set Primitive Projections.
-Set Record Elimination Schemes.
+Set Nonrecursive Elimination Schemes.
Module Prim.
Record F := { a : nat; b : a = a }.
diff --git a/test-suite/success/rewrite.v b/test-suite/success/rewrite.v
index 62249666b3..448d0082db 100644
--- a/test-suite/success/rewrite.v
+++ b/test-suite/success/rewrite.v
@@ -151,10 +151,25 @@ Abort.
(* Check that rewriting within evars still work (was broken in 8.5beta1) *)
-
Goal forall (a: unit) (H: a = tt), exists x y:nat, x = y.
intros; eexists; eexists.
rewrite H.
Undo.
subst.
Abort.
+
+(* Check that iterated rewriting does not rewrite in the side conditions *)
+(* Example from Sigurd Schneider, extracted from contrib containers *)
+
+Lemma EQ
+ : forall (e e' : nat), True -> e = e'.
+Admitted.
+
+Lemma test (v1 v2 v3: nat) (v' : v1 = v2) : v2 = v1.
+Proof.
+ rewrite <- (EQ v1 v2) in *.
+ exact v'.
+ (* There should be only two side conditions *)
+ exact I.
+ exact I.
+Qed.
diff --git a/test-suite/success/shrink_abstract.v b/test-suite/success/shrink_abstract.v
index 3f6b9cb39f..916bb846a9 100644
--- a/test-suite/success/shrink_abstract.v
+++ b/test-suite/success/shrink_abstract.v
@@ -1,5 +1,3 @@
-Set Shrink Abstract.
-
Definition foo : forall (n m : nat), bool.
Proof.
pose (p := 0).
diff --git a/test-suite/success/unfold.v b/test-suite/success/unfold.v
index ce1c33fc40..de8aa252b8 100644
--- a/test-suite/success/unfold.v
+++ b/test-suite/success/unfold.v
@@ -1,9 +1,11 @@
(************************************************************************)
-(* v * The Coq Proof Assistant / The Coq Development Team *)
-(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2017 *)
+(* * The Coq Proof Assistant / The Coq Development Team *)
+(* v * INRIA, CNRS and contributors - Copyright 1999-2018 *)
+(* <O___,, * (see CREDITS file for the list of authors) *)
(* \VV/ **************************************************************)
-(* // * This file is distributed under the terms of the *)
-(* * GNU Lesser General Public License Version 2.1 *)
+(* // * This file is distributed under the terms of the *)
+(* * GNU Lesser General Public License Version 2.1 *)
+(* * (see LICENSE file for the text of the license) *)
(************************************************************************)
(* Test le Hint Unfold sur des var locales *)
diff --git a/test-suite/success/unidecls.v b/test-suite/success/unidecls.v
new file mode 100644
index 0000000000..c4a1d7c28f
--- /dev/null
+++ b/test-suite/success/unidecls.v
@@ -0,0 +1,121 @@
+Set Printing Universes.
+
+Module unidecls.
+ Universes a b.
+End unidecls.
+
+Universe a.
+
+Constraint a < unidecls.a.
+
+Print Universes.
+
+(** These are different universes *)
+Check Type@{a}.
+Check Type@{unidecls.a}.
+
+Check Type@{unidecls.b}.
+
+Fail Check Type@{unidecls.c}.
+
+Fail Check Type@{i}.
+Universe foo.
+Module Foo.
+ (** Already declared globaly: but universe names are scoped at the module level *)
+ Universe foo.
+ Universe bar.
+
+ Check Type@{Foo.foo}.
+ Definition bar := 0.
+End Foo.
+
+(** Already declared in the module *)
+Universe bar.
+
+(** Accessible outside the module: universe declarations are global *)
+Check Type@{bar}.
+Check Type@{Foo.bar}.
+
+Check Type@{Foo.foo}.
+(** The same *)
+Check Type@{foo}.
+Check Type@{Top.foo}.
+
+Universe secfoo.
+Section Foo'.
+ Fail Universe secfoo.
+ Universe secfoo2.
+ Check Type@{Foo'.secfoo2}.
+ Constraint secfoo2 < a.
+End Foo'.
+
+Check Type@{secfoo2}.
+Fail Check Type@{Foo'.secfoo2}.
+Fail Check eq_refl : Type@{secfoo2} = Type@{a}.
+
+(** Below, u and v are global, fixed universes *)
+Module Type Arg.
+ Universe u.
+ Parameter T: Type@{u}.
+End Arg.
+
+Module Fn(A : Arg).
+ Universes v.
+
+ Check Type@{A.u}.
+ Constraint A.u < v.
+
+ Definition foo : Type@{v} := nat.
+ Definition bar : Type@{A.u} := nat.
+
+ Fail Definition foo(A : Type@{v}) : Type@{A.u} := A.
+End Fn.
+
+Module ArgImpl : Arg.
+ Definition T := nat.
+End ArgImpl.
+
+Module ArgImpl2 : Arg.
+ Definition T := bool.
+End ArgImpl2.
+
+(** Two applications of the functor result in the exact same universes *)
+Module FnApp := Fn(ArgImpl).
+
+Check Type@{FnApp.v}.
+Check FnApp.foo.
+Check FnApp.bar.
+
+Check (eq_refl : Type@{ArgImpl.u} = Type@{ArgImpl2.u}).
+
+Module FnApp2 := Fn(ArgImpl).
+Check Type@{FnApp2.v}.
+Check FnApp2.foo.
+Check FnApp2.bar.
+
+Import ArgImpl2.
+(** Now u refers to ArgImpl.u and ArgImpl2.u *)
+Check FnApp2.bar.
+
+(** It can be shadowed *)
+Universe u.
+
+(** This refers to the qualified name *)
+Check FnApp2.bar.
+
+Constraint u = ArgImpl.u.
+Print Universes.
+
+Set Universe Polymorphism.
+
+Section PS.
+ Universe poly.
+
+ Definition id (A : Type@{poly}) (a : A) : A := a.
+End PS.
+(** The universe is polymorphic and discharged, does not persist *)
+Fail Check Type@{poly}.
+
+Print Universes.
+Check id nat.
+Check id@{Set}.
diff --git a/test-suite/success/vm_evars.v b/test-suite/success/vm_evars.v
new file mode 100644
index 0000000000..2c8b099ef0
--- /dev/null
+++ b/test-suite/success/vm_evars.v
@@ -0,0 +1,23 @@
+Fixpoint iter {A} (n : nat) (f : A -> A) (x : A) :=
+match n with
+| 0 => x
+| S n => iter n f (f x)
+end.
+
+Goal nat -> True.
+Proof.
+intros n.
+evar (f : nat -> nat).
+cut (iter 10 f 0 = 0).
+vm_compute.
+intros; constructor.
+instantiate (f := (fun x => x)).
+reflexivity.
+Qed.
+
+Goal exists x, x = 5 + 5.
+Proof.
+ eexists.
+ vm_compute.
+ reflexivity.
+Qed.
diff --git a/test-suite/typeclasses/NewSetoid.v b/test-suite/typeclasses/NewSetoid.v
index 37d197a15c..81c4a1469c 100644
--- a/test-suite/typeclasses/NewSetoid.v
+++ b/test-suite/typeclasses/NewSetoid.v
@@ -1,9 +1,11 @@
(************************************************************************)
-(* v * The Coq Proof Assistant / The Coq Development Team *)
-(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2017 *)
+(* * The Coq Proof Assistant / The Coq Development Team *)
+(* v * INRIA, CNRS and contributors - Copyright 1999-2018 *)
+(* <O___,, * (see CREDITS file for the list of authors) *)
(* \VV/ **************************************************************)
-(* // * This file is distributed under the terms of the *)
-(* * GNU Lesser General Public License Version 2.1 *)
+(* // * This file is distributed under the terms of the *)
+(* * GNU Lesser General Public License Version 2.1 *)
+(* * (see LICENSE file for the text of the license) *)
(************************************************************************)
(* Certified Haskell Prelude.