Diff of the two buildlogs: -- --- b1/build.log 2025-11-14 14:30:03.079667407 +0000 +++ b2/build.log 2025-11-14 14:32:54.755816666 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Fri Nov 14 02:26:41 -12 2025 -I: pbuilder-time-stamp: 1763130401 +I: Current time: Fri Dec 18 10:53:04 +14 2026 +I: pbuilder-time-stamp: 1797540784 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration @@ -24,53 +24,85 @@ dpkg-source: info: applying 0001-Increase-timeout-in-test-that-takes-a-bit-longer-on-.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/1098289/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/2259412/tmp/hooks/D01_modify_environment starting +debug: Running on ionos15-amd64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Dec 17 20:53 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/2259412/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/2259412/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='amd64' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=40 ' - DISTRIBUTION='unstable' - HOME='/root' - HOST_ARCH='amd64' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="3" [2]="3" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") + BASH_VERSION='5.3.3(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=amd64 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=42 nocheck' + DIRSTACK=() + DISTRIBUTION=unstable + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='db6225131ae6426984e6abed1cfd7397' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='1098289' - PS1='# ' - PS2='> ' + INVOCATION_ID=f41d0445a34944cdb390386d3f84be35 + LANG=C + LANGUAGE=et_EE:et + LC_ALL=C + MACHTYPE=x86_64-pc-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=2259412 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.0QewRaVJ/pbuilderrc_ulJr --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.0QewRaVJ/b1 --logfile b1/build.log coq-elpi_2.5.0-1.2.dsc' - SUDO_GID='110' - SUDO_HOME='/var/lib/jenkins' - SUDO_UID='105' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://46.16.76.132:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.0QewRaVJ/pbuilderrc_J52W --distribution unstable --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.0QewRaVJ/b2 --logfile b2/build.log coq-elpi_2.5.0-1.2.dsc' + SUDO_GID=111 + SUDO_HOME=/var/lib/jenkins + SUDO_UID=106 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://213.165.73.152:3128 I: uname -a - Linux ionos1-amd64 6.12.48+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.48-1 (2025-09-20) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.12.48+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.48-1 (2025-09-20) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Aug 10 12:30 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/1098289/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Aug 10 2025 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/2259412/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -284,7 +316,7 @@ Get: 86 http://deb.debian.org/debian unstable/main amd64 libstdio-ocaml-dev amd64 0.17.0-1+b2 [114 kB] Get: 87 http://deb.debian.org/debian unstable/main amd64 libppx-optcomp-ocaml-dev amd64 1:0.17.1-1+b1 [328 kB] Get: 88 http://deb.debian.org/debian unstable/main amd64 ocaml-dune amd64 3.20.2-3 [4938 kB] -Fetched 363 MB in 14s (25.4 MB/s) +Fetched 363 MB in 16s (22.1 MB/s) Preconfiguring packages ... Selecting previously unselected package libexpat1:amd64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19866 files and directories currently installed.) @@ -580,8 +612,8 @@ Setting up tzdata (2025b-5) ... Current default time zone: 'Etc/UTC' -Local time is now: Fri Nov 14 14:28:43 UTC 2025. -Universal Time is now: Fri Nov 14 14:28:43 UTC 2025. +Local time is now: Thu Dec 17 20:55:00 UTC 2026. +Universal Time is now: Thu Dec 17 20:55:00 UTC 2026. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up autotools-dev (20240727.1) ... @@ -663,7 +695,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/coq-elpi-2.5.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../coq-elpi_2.5.0-1.2_source.changes +I: user script /srv/workspace/pbuilder/2259412/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/2259412/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/coq-elpi-2.5.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../coq-elpi_2.5.0-1.2_source.changes dpkg-buildpackage: info: source package coq-elpi dpkg-buildpackage: info: source version 2.5.0-1.2 dpkg-buildpackage: info: source distribution unstable @@ -677,7 +713,7 @@ dune clean Warning: Cache directories could not be created: Permission denied; disabling cache -Hint: Make sure the directory /nonexistent/first-build/.cache/dune/db/temp +Hint: Make sure the directory /nonexistent/second-build/.cache/dune/db/temp can be created make[1]: Leaving directory '/build/reproducible-path/coq-elpi-2.5.0' dh_ocamlclean @@ -695,7 +731,7 @@ dune build Warning: Cache directories could not be created: Permission denied; disabling cache -Hint: Make sure the directory /nonexistent/first-build/.cache/dune/db/temp +Hint: Make sure the directory /nonexistent/second-build/.cache/dune/db/temp can be created File "./elpi/dummy.v", line 1, characters 0-93: Warning: To avoid stack overflow, large numbers in nat are interpreted as @@ -736,19 +772,19 @@ File "./elpi/dummy.v", line 13, characters 0-70: Warning: To avoid stack overflow, large numbers in nat are interpreted as applications of Nat.of_num_uint. [abstract-large-number,numbers,default] -File "./apps/locker/elpi/dummy.v", line 1, characters 0-99: +File "./apps/NES/elpi/dummy.v", line 1, characters 0-99: Warning: To avoid stack overflow, large numbers in nat are interpreted as applications of Nat.of_num_uint. [abstract-large-number,numbers,default] -File "./apps/locker/elpi/dummy.v", line 2, characters 0-61: +File "./apps/NES/elpi/dummy.v", line 2, characters 0-65: Warning: To avoid stack overflow, large numbers in nat are interpreted as applications of Nat.of_num_uint. [abstract-large-number,numbers,default] -File "./apps/NES/elpi/dummy.v", line 1, characters 0-99: +File "./apps/NES/elpi/dummy.v", line 3, characters 0-66: Warning: To avoid stack overflow, large numbers in nat are interpreted as applications of Nat.of_num_uint. [abstract-large-number,numbers,default] -File "./apps/NES/elpi/dummy.v", line 2, characters 0-65: +File "./apps/locker/elpi/dummy.v", line 1, characters 0-99: Warning: To avoid stack overflow, large numbers in nat are interpreted as applications of Nat.of_num_uint. [abstract-large-number,numbers,default] -File "./apps/NES/elpi/dummy.v", line 3, characters 0-66: +File "./apps/locker/elpi/dummy.v", line 2, characters 0-61: Warning: To avoid stack overflow, large numbers in nat are interpreted as applications of Nat.of_num_uint. [abstract-large-number,numbers,default] File "./apps/tc/elpi/dummy.v", line 1, characters 0-99: @@ -947,10 +983,226 @@ Arguments foo a%nat_scope [b]%nat_scope {c}%nat_scope Query assignments: %arg1 = const «foo» -File "./apps/eltac/theories/apply.v", line 15, characters 16-19: +Query q X0 +Query r X0 +Result r 1 +d1 + : nat +d2 + : nat +i1 + : Prop +i2 + : Prop +k1 + : i1 +k2 + : i2 +r1 + : Set +r2 + : Type +f1 + : r1 -> nat +f2 + : r2 -> nat +Query assignments: + L = [gref (indt «Empty_set»), gref (const «Empty_set_rect»), + gref (const «Empty_set_ind»), gref (const «Empty_set_rec»), + gref (const «Empty_set_sind»), gref (indt «unit»), + gref (const «unit_rect»), gref (const «unit_ind»), + gref (const «unit_rec»), gref (const «unit_sind»), + gref (indt «bool»), gref (const «bool_rect»), + gref (const «bool_ind»), gref (const «bool_rec»), + gref (const «bool_sind»), gref (const «andb»), gref (const «orb»), + gref (const «implb»), gref (const «xorb»), gref (const «negb»), + gref (const «andb_prop»), gref (const «andb_true_intro»), + gref (indt «eq_true»), gref (const «eq_true_rect»), + gref (const «eq_true_ind»), gref (const «eq_true_rec»), + gref (const «eq_true_sind»), gref (const «is_true»), + gref (const «eq_true_ind_r»), gref (const «eq_true_rec_r»), + gref (const «eq_true_rect_r»), gref (indt «BoolSpec»), + gref (const «BoolSpec_ind»), gref (const «BoolSpec_sind»), + gref (indt «nat»), gref (const «nat_rect»), gref (const «nat_ind»), + gref (const «nat_rec»), gref (const «nat_sind»), + gref (indt «option»), gref (const «option_rect»), + gref (const «option_ind»), gref (const «option_rec»), + gref (const «option_sind»), gref (const «option_map»), + gref (indt «sum»), gref (const «sum_rect»), gref (const «sum_ind»), + gref (const «sum_rec»), gref (const «sum_sind»), gref (indt «prod»), + gref (const «prod_rect»), gref (const «prod_ind»), + gref (const «prod_rec»), gref (const «prod_sind»), + gref (const «fst»), gref (const «snd»), + gref (const «surjective_pairing»), + gref (const «injective_projections»), gref (const «pair_equal_spec»), + gref (const «curry»), gref (const «uncurry»), + gref (const «rew_pair»), gref (indt «list»), + gref (const «list_rect»), gref (const «list_ind»), + gref (const «list_rec»), gref (const «list_sind»), + gref (const «length»), gref (const «app»), gref (indt «comparison»), + gref (const «comparison_rect»), gref (const «comparison_ind»), + gref (const «comparison_rec»), gref (const «comparison_sind»), + gref (const «comparison_eq_stable»), gref (const «CompOpp»), + gref (const «CompOpp_involutive»), gref (const «CompOpp_inj»), + gref (const «CompOpp_iff»), gref (indt «CompareSpec»), + gref (const «CompareSpec_ind»), gref (const «CompareSpec_sind»), + gref (indt «CompareSpecT»), gref (const «CompareSpecT_rect»), + gref (const «CompareSpecT_ind»), gref (const «CompareSpecT_rec»), + gref (const «CompareSpecT_sind»), gref (const «CompareSpec2Type»), + gref (const «CompSpec»), gref (const «CompSpecT»), + gref (const «CompSpec2Type»), gref (const «ID»), gref (const «id»), + gref (const «IDProp»), gref (const «idProp»)] + MP = «Coq.Init.Datatypes» +elpi.tests.test_API_module.X.i +[elpi, tests, test_API_module, X, Y] +[elpi, tests, test_API_module, X, Y] +Query assignments: + %arg1 = elpi.tests.test_API_module.X.i + %arg2 = elpi.tests.test_API_module.X.i + %arg3 = elpi.tests.test_API_module.X.Y.i + %arg4 = [elpi, tests, test_API_module, X, Y] + %arg5 = [elpi, tests, test_API_module, X, Y] + L = [gref (indt «X.i»), gref (const «X.i_rect»), gref (const «X.i_ind»), + gref (const «X.i_rec»), gref (const «X.i_sind»), gref (const «X.d»), + submodule «elpi.tests.test_API_module.X.Y» + [gref (indt «X.Y.i»), gref (const «X.Y.i_rect»), + gref (const «X.Y.i_ind»), gref (const «X.Y.i_rec»), + gref (const «X.Y.i_sind»), gref (const «X.Y.d»)]] + MP = «elpi.tests.test_API_module.X» + XYi = «X.Y.i» + XYr = «X.Y.i_rect» + Xi = «X.i» +Query assignments: + I = «Y.i» + ID = j + J = «Y.j» + MP = «elpi.tests.test_API_module.Y» + P = [elpi, tests, test_API_module, Y] +Query assignments: + Mp_ta = «elpi.tests.test_API_module.TA» +Query assignments: + GRy = EXN PRINTING: Not_found + I = EXN PRINTING: Not_found + L = [gref (const «A.z»), gref (const «A.i»)] + MP = «elpi.tests.test_API_module.A» + MP_TA = «elpi.tests.test_API_module.TA» + X1_ = «A.i.u0» + X2_ = «elpi.tests.test_API_module.11» +Universe constraints: +UNIVERSES: + +ALGEBRAIC UNIVERSES: + {elpi.tests.test_API_module.11 A.i.u0} +FLEXIBLE UNIVERSES: + elpi.tests.test_API_module.11 + A.i.u0 +SORTS: + +WEAK CONSTRAINTS: + + +Module +A + : TA +:= Struct + Definition x + Module B + Definition z + Inductive i1 + Definition i1_rect + Definition i1_ind + Definition i1_rec + Definition i1_sind + Definition i + End +A.z + : nat +A.i + : Type +*** [ A.i : Type ] +Query assignments: + A = «elpi.tests.test_API_module.a» + MP_TA = «elpi.tests.test_API_module.TA» + TF = «elpi.tests.test_API_module.TF» +Query assignments: + %arg1 = «elpi.tests.test_API_module.a» + %arg2 = const const EXN PRINTING: Not_found + MP_TA = «elpi.tests.test_API_module.TA» + MP_TF = «elpi.tests.test_API_module.TF» +Module +F + : Funsig (a:TA) Funsig (b:TA) TF +:= Functor (a:TA) Functor (b:TA) Struct Definition w : nat. End +Module B : Sig Parameter w : nat. End := (F A A) +*** [ B.w : nat ] +Query assignments: + MP_TA = «elpi.tests.test_API_module.TA» +Module Type TB = Funsig (A:TA) Sig End +Query assignments: + A = «elpi.tests.test_API_module.A» +Query assignments: + %arg1 = «elpi.tests.test_API_module.A» +Module IA := Struct Definition z : nat. Definition i : Type. End +Query assignments: + %arg1 = «elpi.tests.test_API_module.IA» +Query assignments: + %arg1 = «elpi.tests.test_API_module.IA» +i + : Type +Query assignments: + %arg1 = «elpi.tests.test_API_module.TA» +Query assignments: + %arg1 = «elpi.tests.test_API_module.TA» +Module Type ITA = Sig Parameter z : nat. Parameter i : Type. End +Query assignments: + F = «elpi.tests.test_API_module.R.F» + FT = «elpi.tests.test_API_module.R.FT» + L = [submodule «elpi.tests.test_API_module.R.S» [gref (const «R.S.x»)], + module-type «elpi.tests.test_API_module.R.P1», + module-type «elpi.tests.test_API_module.R.P2», + «elpi.tests.test_API_module.R.F» module-functor + [«elpi.tests.test_API_module.R.P1», «elpi.tests.test_API_module.R.P2»], + «elpi.tests.test_API_module.R.FT» module-type-functor + [«elpi.tests.test_API_module.R.P2», «elpi.tests.test_API_module.R.P1»], + gref (const «R.a»)] + P1 = «elpi.tests.test_API_module.R.P1» + P2 = «elpi.tests.test_API_module.R.P2» + R = «elpi.tests.test_API_module.R» + S = «elpi.tests.test_API_module.R.S» +File "./tests/test_API_module.v", line 7, characters 69-70: Warning: -File "./apps/eltac/theories/apply.v", line 15, characters 16-19 -Ctx is linear: name it _Ctx (discard) or Ctx_ (fresh variable) +File "./tests/test_API_module.v", line 7, characters 69-70 +L is linear: name it _L (discard) or L_ (fresh variable) +[elpi.linear-variable,elpi.typecheck,elpi,default] +File "./tests/test_API_module.v", line 50, characters 26-28: +Warning: +File "./tests/test_API_module.v", line 50, characters 26-28 +ID is linear: name it _ID (discard) or ID_ (fresh variable) +[elpi.linear-variable,elpi.typecheck,elpi,default] +File "./tests/test_API_module.v", line 49, characters 28-29: +Warning: +File "./tests/test_API_module.v", line 49, characters 28-29 +P is linear: name it _P (discard) or P_ (fresh variable) +[elpi.linear-variable,elpi.typecheck,elpi,default] +File "./tests/test_API_module.v", line 77, characters 21-22: +Warning: +File "./tests/test_API_module.v", line 77, characters 21-22 +L is linear: name it _L (discard) or L_ (fresh variable) +[elpi.linear-variable,elpi.typecheck,elpi,default] +File "./tests/test_API_module.v", line 67, characters 27-32: +Warning: +File "./tests/test_API_module.v", line 67, characters 27-32 +MP_TA is linear: name it _MP_TA (discard) or MP_TA_ (fresh variable) +[elpi.linear-variable,elpi.typecheck,elpi,default] +File "./tests/test_API_module.v", line 102, characters 31-36: +Warning: +File "./tests/test_API_module.v", line 102, characters 31-36 +MP_TA is linear: name it _MP_TA (discard) or MP_TA_ (fresh variable) +[elpi.linear-variable,elpi.typecheck,elpi,default] +File "./tests/test_API_module.v", line 101, characters 27-32: +Warning: +File "./tests/test_API_module.v", line 101, characters 27-32 +MP_TF is linear: name it _MP_TF (discard) or MP_TF_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] Query assignments: I = const «imp» @@ -992,83 +1244,340 @@ : bool * bool -> Prop = fun x : bool => x = x : bool -> Prop -goal X0 c0 c1 c2 c3 is +Query assignments: + CA = «a» + CB = «b» + CC = «c» +d : nat + +d is not universe polymorphic +Expands to: Variable d +eq_refl : e2 = 3 + : e2 = 3 +Query assignments: + X = «x» +fx : nat -> nat + : nat -> nat +opaque_3 : nat + +opaque_3 is not universe polymorphic +opaque_3 is opaque +Expands to: Constant elpi.tests.test_API_section.opaque_3 +foo : nat + : nat +bar : bool -> nat + : bool -> nat +«elpi.tests.test_API_notations.abbr» +Query assignments: + A = «elpi.tests.test_API_notations.abbr» + X1_ = X0 + X2_ = c0 \ +X1 c0 + X3_ = c0 \ +X2 c0 +Syntactic constraints: + {c0} : decl c0 `x` X0 ?- evar (X2 c0) (X3 c0) (X2 c0) /* suspended on X2 */ + {c0} : decl c0 `x` X0 + ?- evar (X4 c0) (sort (typ «elpi.tests.test_API_notations.3»)) (X3 c0) /* suspended on X4, X3 */ + {c0} : decl c0 `x` X0 + ?- evar (X1 c0) (sort (typ «elpi.tests.test_API_notations.2»)) (X1 c0) /* suspended on X1 */ + evar (X0) (sort (typ «elpi.tests.test_API_notations.1»)) (X0) /* suspended on X0 */ +Universe constraints: +UNIVERSES: + {elpi.tests.test_API_notations.3 elpi.tests.test_API_notations.2 + elpi.tests.test_API_notations.1} |= +ALGEBRAIC UNIVERSES: + {} +FLEXIBLE UNIVERSES: -[decl c3 `H` (app [global (const «lt»), c0, c1]), - decl c2 `z` (global (indt «nat»)), decl c1 `y` (global (indt «nat»)), - decl c0 `x` (global (indt «nat»))] -------- +SORTS: + α1 + α2 + α3 +WEAK CONSTRAINTS: -prod `_` (app [global (const «lt»), c1, c2]) c4 \ - app [global (const «lt»), c0, c2] -3 -The Db contains [phone_prefix USA 1] -Phone prefix for USA is 1 -The Db contains -[phone_prefix USA 1, phone_prefix France 33, phone_prefix Italy 39] -Phone prefix for France is 33 -sweet! -brr -yummy! -DEBUG: attempt at fuzzing binary op: global (indc «PLUS») -DEBUG: attempt at fuzzing binary op: global (const «Nat.add») -DEBUG: attempt at fuzzing binary op: global (indc «AND») -DEBUG: fuzzed! -DEBUG: attempt at fuzzing binary op: global (const «andb») -DEBUG: attempt at fuzzing binary op: global (indc «OR») -DEBUG: fuzzed! -DEBUG: attempt at fuzzing binary op: global (const «orb») -DEBUG: attempt at fuzzing binary op: global (indc «EQ») -DEBUG: attempt at fuzzing binary op: global (const «Nat.eqb») -Inductive eval1 : forall T : ty, Exp T -> Val T -> Prop := - E_Num1 : forall n : nat, eval1 N (NUM n) (iNv n) - | E_Bool1 : forall b : bool, eval1 B (BOOL b) (iBv b) - | E_Plus1 : forall (e1 e2 : Exp N) (n1 n2 : nat), - eval1 N e1 (iNv n1) -> - eval1 N e2 (iNv n2) -> eval1 N (PLUS e1 e2) (iNv (n1 + n2)) - | E_AND1 : forall (e1 e2 : Exp B) (b1 b2 : bool), - eval1 B e1 (iBv b1) -> - eval1 B e2 (iBv b2) -> eval1 B (AND e1 e2) (iBv (b1 && b2)) - | E_OR1 : forall (e1 e2 : Exp B) (b1 b2 : bool), - eval1 B e1 (iBv b1) -> - eval1 B e2 (iBv b2) -> eval1 B (AND e1 e2) (iBv (b1 || b2)) - | E_EQ1 : forall (e1 e2 : Exp N) (n1 n2 : nat), - eval1 N e1 (iNv n1) -> - eval1 N e2 (iNv n2) -> eval1 B (EQ e1 e2) (iBv (Nat.eqb n1 n2)). -Arguments eval1 T _ _ -Arguments E_Num1 n%nat_scope -Arguments E_Bool1 b%bool_scope -Arguments E_Plus1 e1 e2 (n1 n2)%nat_scope _ _ -Arguments E_AND1 e1 e2 (b1 b2)%bool_scope _ _ -Arguments E_OR1 e1 e2 (b1 b2)%bool_scope _ _ -Arguments E_EQ1 e1 e2 (n1 n2)%nat_scope _ _ -3 + 7 becomes fun (x : ?e) (x0 : ?e0) => S (S x0) + S (S (S (S (S (S x))))) -Notation p2 := (p2 nat 3 x) -example_import_projections.p1 nat 3 x : nat +Notation abbr _elpi_ctx_entry_2_was_x_ _elpi_ctx_entry_1_ := + (_elpi_ctx_entry_2_was_x_ = _elpi_ctx_entry_2_was_x_) +Expands to: Notation elpi.tests.test_API_notations.abbr +4 = 4 + : Prop +Query assignments: + X4_ = X0 + X5_ = c0 \ +X1 c0 + X6_ = c0 \ +X2 c0 +Syntactic constraints: + {c0} : decl c0 `x` X0 ?- evar (X2 c0) (X3 c0) (X2 c0) /* suspended on X2 */ + {c0} : decl c0 `x` X0 + ?- evar (X4 c0) (sort (typ «elpi.tests.test_API_notations.6»)) (X3 c0) /* suspended on X4, X3 */ + {c0} : decl c0 `x` X0 + ?- evar (X1 c0) (sort (typ «elpi.tests.test_API_notations.5»)) (X1 c0) /* suspended on X1 */ + evar (X0) (sort (typ «elpi.tests.test_API_notations.4»)) (X0) /* suspended on X0 */ +Universe constraints: +UNIVERSES: + {elpi.tests.test_API_notations.6 elpi.tests.test_API_notations.5 + elpi.tests.test_API_notations.4} |= +ALGEBRAIC UNIVERSES: + {} +FLEXIBLE UNIVERSES: + +SORTS: + α4 + α5 + α6 +WEAK CONSTRAINTS: + + +Notation abbr2 _elpi_ctx_entry_1_was_x_ := + (fun _ => _elpi_ctx_entry_1_was_x_ = _elpi_ctx_entry_1_was_x_) +Expands to: Notation elpi.tests.test_API_notations.abbr2 +(fun _ : nat => 2 = 2) 3 + : Prop +fun `_` X0 c0 \ + app [global (indt «eq»), X1, fun `x` X2 c1 \ c1, fun `x` X2 c1 \ c1] +Query assignments: + %arg1 = «elpi.tests.test_API_notations.abbr2» + T = fun `_` X0 c0 \ + app [global (indt «eq»), X1, fun `x` X2 c1 \ c1, fun `x` X2 c1 \ c1] + X7_ = X2 +Query assignments: + %arg1 = «elpi.tests.test_API_notations.abbr2» +Query assignments: + P = /build/reproducible-path/coq-elpi-2.5.0/_build/default/elpi/elpi_elaborator.elpi +File "./tests/test_query_extra_dep.v", line 7, characters 44-45: +Warning: +File "./tests/test_query_extra_dep.v", line 7, characters 44-45 +P is linear: name it _P (discard) or P_ (fresh variable) +[elpi.linear-variable,elpi.typecheck,elpi,default] +z : nat -p1 : forall (T : Type) (t : T), r T t -> nat - : forall (T : Type) (t : T), r T t -> nat -eq_refl -: -example_import_projections.p1 bool false (Build bool false 3 eq_refl eq_refl) = -3 - : example_import_projections.p1 bool false - (Build bool false 3 eq_refl eq_refl) = 3 -example_import_projections.f1 _ x - : bool -foo = -{f1 : Type & {f2 : f1 -> Type & forall t : f1, f2 t -> bool}} +it = elpi_subproof + : True +it : True + +it is not universe polymorphic +it is transparent +Expands to: Constant elpi.tests.test_ltac.it +elpi_subproof = I + : True +elpi_subproof : True + +elpi_subproof is not universe polymorphic +elpi_subproof is opaque +Expands to: Constant elpi.tests.test_ltac.elpi_subproof +Closed under the global context +app + [global (indt «eq»), global (indt «nat»), + app + [global (const «map»), + fun `x` (global (indt «nat»)) c1 \ + app + [global (const «Nat.add»), c1, + app [global (indc «S»), global (indc «O»)]]], c0] +app + [global (indt «eq»), global (indt «nat»), + app + [global (const «map»), + fun `x` (global (indt «nat»)) c1 \ + app + [global (const «Nat.add»), c1, + app [global (indc «S»), global (indc «O»)]]], c0] +app + [global (indt «eq»), global (indt «nat»), + app + [global (const «map»), + fun `x0` (global (indt «nat»)) c1 \ + app + [global (const «Nat.add»), c1, + app [global (indc «S»), global (indc «O»)]]], c0] +Query assignments: + E = fun `n` (global (indt «nat»)) c0 \ + fun `t` (app [global (const «T2»), c0]) c1 \ + fun `x` + (app [global (const «f3»), c0, app [global (const «h»), c0, c1]]) c2 \ + app + [global (const «g3»), c0, app [global (const «h»), c0, c1], + app + [global (indc «S»), + app + [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]] + TY = prod `n` (global (indt «nat»)) c0 \ + prod `t` (app [global (const «T2»), c0]) c1 \ + prod `x` + (app [global (const «f3»), c0, app [global (const «h»), c0, c1]]) c2 \ + global (indt «nat») + X1_ = X0 +Universe constraints: +UNIVERSES: + {elpi.tests.test_API_elaborate.13 elpi.tests.test_API_elaborate.10 + elpi.tests.test_API_elaborate.9} |= + elpi.tests.test_API_elaborate.13 < elpi.tests.test_API_elaborate.9 + Set <= elpi.tests.test_API_elaborate.10 + Set <= elpi.tests.test_API_elaborate.13 + T2.u0 <= elpi.tests.test_API_elaborate.13 + f3.u0 <= elpi.tests.test_API_elaborate.13 +ALGEBRAIC UNIVERSES: + {elpi.tests.test_API_elaborate.10} +FLEXIBLE UNIVERSES: + elpi.tests.test_API_elaborate.10 +SORTS: + α4 := Type + α5 := Type +WEAK CONSTRAINTS: + + +Query assignments: + E = app + [global (const «bar»), + app + [global (indc «S»), + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]], + global (const «xxx»)] + TY = prop + X2_ = X0 + X3_ = X1 +Query assignments: + E = app + [global (const «op»), global (const «c»), + app + [global (indc «S»), + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]] + TY = app [global (const «field»), global (const «c»)] + X4_ = X0 +Universe constraints: +UNIVERSES: + {elpi.tests.test_API_elaborate.19 elpi.tests.test_API_elaborate.18} |= + elpi.tests.test_API_elaborate.19 < elpi.tests.test_API_elaborate.18 + s.u0 <= elpi.tests.test_API_elaborate.19 +ALGEBRAIC UNIVERSES: + {} +FLEXIBLE UNIVERSES: + +SORTS: + α11 := Type +WEAK CONSTRAINTS: + + +raw: +parameter A explicit (global (const «T1»)) c0 \ + inductive ind1 tt + (parameter B explicit (sort (typ «elpi.tests.test_API_elaborate.20»)) + c1 \ arity (sort (typ «elpi.tests.test_API_elaborate.22»))) c1 \ + [constructor K1 + (parameter B explicit (sort (typ «elpi.tests.test_API_elaborate.20»)) + c2 \ arity (prod `_` (app [c1, c2]) c3 \ app [c1, c2])), + constructor K2 + (parameter B explicit (sort (typ «elpi.tests.test_API_elaborate.20»)) + c2 \ + arity (prod `_` (app [global (const «f1»), c0]) c3 \ app [c1, c2])), + constructor K3 + (parameter B explicit (sort (typ «elpi.tests.test_API_elaborate.20»)) + c2 \ + arity (prod `a` (app [global (const «f1»), c0]) c3 \ app [c1, c2]))] +elab1: +parameter A explicit (global (const «T1»)) c0 \ + inductive ind1 tt + (parameter B explicit (sort (typ «elpi.tests.test_API_elaborate.23»)) + c1 \ arity (sort (typ «elpi.tests.test_API_elaborate.25»))) c1 \ + [constructor K1 + (parameter B explicit (sort (typ «elpi.tests.test_API_elaborate.28»)) + c2 \ arity (prod `_` (app [c1, c2]) c3 \ app [c1, c2])), + constructor K2 + (parameter B explicit (sort (typ «elpi.tests.test_API_elaborate.30»)) + c2 \ + arity (prod `_` (app [global (const «f1»), c0]) c3 \ app [c1, c2])), + constructor K3 + (parameter B explicit (sort (typ «elpi.tests.test_API_elaborate.33»)) + c2 \ + arity (prod `a` (app [global (const «f1»), c0]) c3 \ app [c1, c2]))] +elab2: +parameter A explicit (global (const «T1»)) c0 \ + parameter B explicit (sort (typ «ind1.u0»)) c1 \ + inductive ind1 tt (arity (sort (typ «ind1.u1»))) c2 \ + [constructor K1 (arity (prod `_` c2 c3 \ c2)), + constructor K2 + (arity (prod `_` (app [global (const «f1»), c0]) c3 \ c2)), + constructor K3 + (arity (prod `a` (app [global (const «f1»), c0]) c3 \ c2))] +raw: +parameter A explicit (global (const «T1»)) c0 \ + record ind2 (sort (typ «f1.u0»)) Build_ind2 + (field [coercion off, canonical tt] fld1 (app [global (const «f1»), c0]) + c1 \ + field [coercion off, canonical tt] fld2 + (app [global (indt «eq»), app [global (const «f1»), c0], c1, c1]) + c2 \ end-record) +elab1: +parameter A explicit (global (const «T1»)) c0 \ + record ind2 (sort (typ «elpi.tests.test_API_elaborate.38»)) Build_ind2 + (field [coercion off, canonical tt] fld1 (app [global (const «f1»), c0]) + c1 \ + field [coercion off, canonical tt] fld2 + (app [global (indt «eq»), app [global (const «f1»), c0], c1, c1]) + c2 \ end-record) +elab2: +parameter A explicit (global (const «T1»)) c0 \ + record ind2 (sort (typ «ind2.u0»)) Build_ind2 + (field [coercion off, canonical tt] fld1 (app [global (const «f1»), c0]) + c1 \ + field [coercion off, canonical tt] fld2 + (app [global (indt «eq»), app [global (const «f1»), c0], c1, c1]) + c2 \ end-record) +raw: +record ind3 (sort (typ «elpi.tests.test_API_elaborate.41»)) Build_ind3 + (field [coercion reversible, canonical tt] fld3 + (sort (typ «elpi.tests.test_API_elaborate.40»)) c0 \ + field [coercion off, canonical tt] fld4 + (prod `x` c0 c1 \ app [global (indt «eq»), c0, c1, c1]) c1 \ end-record) +elab1: +record ind3 (sort (typ «elpi.tests.test_API_elaborate.42»)) Build_ind3 + (field [coercion reversible, canonical tt] fld3 + (sort (typ «elpi.tests.test_API_elaborate.43»)) c0 \ + field [coercion off, canonical tt] fld4 + (prod `x` c0 c1 \ app [global (indt «eq»), c0, c1, c1]) c1 \ end-record) +elab2: +record ind3 (sort (typ «ind3.u0»)) Build_ind3 + (field [coercion reversible, canonical tt] fld3 (sort (typ «ind3.u1»)) + c0 \ + field [coercion off, canonical tt] fld4 + (prod `x` c0 c1 \ app [global (indt «eq»), c0, c1, c1]) c1 \ end-record) +forall x : ind3, x -> Prop : Type -mk_foo = -fun (f1 : Type) (f2 : f1 -> Type) (f3 : forall t : f1, f2 t -> bool) => -existT (fun f4 : Type => {f5 : f4 -> Type & forall t : f4, f5 t -> bool}) f1 - (existT (fun f4 : f1 -> Type => forall t : f1, f4 t -> bool) f2 f3) - : forall (f1 : Type) (f2 : f1 -> Type), - (forall t : f1, f2 t -> bool) -> foo +Query assignments: + E = app + [global (const «op»), global (const «c»), + app + [global (indc «S»), + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]] + TY = app [global (const «field»), global (const «c»)] +Universe constraints: +UNIVERSES: + {elpi.tests.test_API_elaborate.50 elpi.tests.test_API_elaborate.49} |= + elpi.tests.test_API_elaborate.50 < elpi.tests.test_API_elaborate.49 + s.u0 <= elpi.tests.test_API_elaborate.50 +ALGEBRAIC UNIVERSES: + {} +FLEXIBLE UNIVERSES: + +SORTS: + α21 := Type +WEAK CONSTRAINTS: + -Arguments mk_foo f1%type_scope (f2 f3)%function_scope -(eq_refl : 2 = (let z := 1 in S z)) +unknown_gref +«elpi.tests.test_API_elaborate.52» «elpi.tests.test_API_elaborate.52» +File "./tests/test_API_elaborate.v", line 160, characters 19-20: +Warning: +File "./tests/test_API_elaborate.v", line 160, characters 19-20 +Y is linear: name it _Y (discard) or Y_ (fresh variable) +[elpi.linear-variable,elpi.typecheck,elpi,default] +File "./tests/test_API_elaborate.v", line 170, characters 33-34: +Warning: +File "./tests/test_API_elaborate.v", line 170, characters 33-34 +Y is linear: name it _Y (discard) or Y_ (fresh variable) +[elpi.linear-variable,elpi.typecheck,elpi,default] Query assignments: GR = const «myi» Query assignments: @@ -1290,56 +1799,34 @@ File "./tests/test_API_TC_CS.v", line 159, characters 32-33 L is linear: name it _L (discard) or L_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] +Coq version: 8.20.1 = 8 . 20 . 1 Query assignments: - GRnat = indt «nat» - GRplus = const «Nat.add» - GRs = indc «S» -Query assignments: - Bo = app [global (indc «S»), app [global (indc «S»), global (indc «O»)]] - C = «x» - GR = const «x» - Ty = global (indt «nat») - TyC = global (indt «nat») + MA = 8 + MI = 20 + P = 1 + V = 8.20.1 +hello world +A +B Query assignments: - Bo = fun `x` (global (indt «nat»)) c0 \ c0 - C = «f» + GR = «nat» Query assignments: - Bo = fix `add` 0 - (prod `n` (global (indt «nat»)) c0 \ - prod `m` (global (indt «nat»)) c1 \ global (indt «nat»)) c0 \ - fun `n` (global (indt «nat»)) c1 \ - fun `m` (global (indt «nat»)) c2 \ - match c1 (fun `n` (global (indt «nat»)) c3 \ global (indt «nat»)) - [c2, - fun `p` (global (indt «nat»)) c3 \ - app [global (indc «S»), app [c0, c3, c2]]] - C = «Nat.add» -The return type of m is: c0 \ c1 \ -fun `x` (global (indt «nat»)) c2 \ - fun `e` - (app [global (indt «eq»), global (indt «nat»), global (indc «O»), c2]) - c3 \ prod `_` (app [c1, global (indc «O»)]) c4 \ app [c1, c2] + GR = «Nat.add» + MP = «Coq.Init.Datatypes» Query assignments: - C = «m» - RT = c0 \ c1 \ -fun `x` (global (indt «nat»)) c2 \ - fun `e` - (app [global (indt «eq»), global (indt «nat»), global (indc «O»), c2]) - c3 \ prod `_` (app [c1, global (indc «O»)]) c4 \ app [c1, c2] -typ «elpi_examples.tutorial_coq_elpi_HOAS.6» < -typ «elpi_examples.tutorial_coq_elpi_HOAS.7» -Debug: Cannot enforce elpi_examples.tutorial_coq_elpi_HOAS.7 <= -elpi_examples.tutorial_coq_elpi_HOAS.6 because -elpi_examples.tutorial_coq_elpi_HOAS.6 -< elpi_examples.tutorial_coq_elpi_HOAS.7 + A = «elpi.tests.test_API.succ» + GR = «Nat.add» + MP = «Coq.Init.Datatypes» + X1 = [loc-gref (const «Nat.add»)] + X2 = [loc-gref (const «Nat.add»)] + X3 = [loc-abbreviation «elpi.tests.test_API.succ»] + X4 = [loc-modpath «Coq.Init.Datatypes»] +Universe constraints: Query assignments: - U = typ «elpi_examples.tutorial_coq_elpi_HOAS.6» - U1 = typ «elpi_examples.tutorial_coq_elpi_HOAS.7» + X = «elpi.tests.test_API.1» Universe constraints: UNIVERSES: - {elpi_examples.tutorial_coq_elpi_HOAS.7 - elpi_examples.tutorial_coq_elpi_HOAS.6} |= - elpi_examples.tutorial_coq_elpi_HOAS.6 < elpi_examples.tutorial_coq_elpi_HOAS.7 + {elpi.tests.test_API.1} |= ALGEBRAIC UNIVERSES: {} FLEXIBLE UNIVERSES: @@ -1349,379 +1836,3357 @@ WEAK CONSTRAINTS: -(id b) is: app [fun `x` (sort (typ X0)) c0 \ c0, sort (typ X1)] -(id a) is illtyped: -Illegal application: -The term "fun x : Type => x" of type "Type -> Type" -cannot be applied to the term - "Type" : "Type" -This term has type "Type@{elpi_examples.tutorial_coq_elpi_HOAS.8+1}" -which should be a subtype of "Type@{elpi_examples.tutorial_coq_elpi_HOAS.8}". -(universe inconsistency: Cannot enforce elpi_examples.tutorial_coq_elpi_HOAS.8 -< elpi_examples.tutorial_coq_elpi_HOAS.8 because -elpi_examples.tutorial_coq_elpi_HOAS.8 -= elpi_examples.tutorial_coq_elpi_HOAS.8) -after typing (id b) is: -app - [fun `x` (sort (typ «elpi_examples.tutorial_coq_elpi_HOAS.8»)) c0 \ c0, - sort (typ «elpi_examples.tutorial_coq_elpi_HOAS.9»)] : -sort (typ «elpi_examples.tutorial_coq_elpi_HOAS.8») -Universe constraints: UNIVERSES: - {elpi_examples.tutorial_coq_elpi_HOAS.9 - elpi_examples.tutorial_coq_elpi_HOAS.8} |= - elpi_examples.tutorial_coq_elpi_HOAS.9 < elpi_examples.tutorial_coq_elpi_HOAS.8 - ALGEBRAIC UNIVERSES: - {elpi_examples.tutorial_coq_elpi_HOAS.9 - elpi_examples.tutorial_coq_elpi_HOAS.8} - FLEXIBLE UNIVERSES: - elpi_examples.tutorial_coq_elpi_HOAS.9 - elpi_examples.tutorial_coq_elpi_HOAS.8 - SORTS: - - WEAK CONSTRAINTS: - - -Query assignments: - A = sort (typ «elpi_examples.tutorial_coq_elpi_HOAS.8») - B = sort (typ «elpi_examples.tutorial_coq_elpi_HOAS.9») - ErrMsg = Illegal application: -The term "fun x : Type => x" of type "Type -> Type" -cannot be applied to the term - "Type" : "Type" -This term has type "Type@{elpi_examples.tutorial_coq_elpi_HOAS.8+1}" -which should be a subtype of "Type@{elpi_examples.tutorial_coq_elpi_HOAS.8}". -(universe inconsistency: Cannot enforce elpi_examples.tutorial_coq_elpi_HOAS.8 -< elpi_examples.tutorial_coq_elpi_HOAS.8 because -elpi_examples.tutorial_coq_elpi_HOAS.8 -= elpi_examples.tutorial_coq_elpi_HOAS.8) - ID = fun `x` (sort (typ «elpi_examples.tutorial_coq_elpi_HOAS.8»)) c0 \ c0 - T = sort (typ «elpi_examples.tutorial_coq_elpi_HOAS.8») - U = «elpi_examples.tutorial_coq_elpi_HOAS.8» - V = «elpi_examples.tutorial_coq_elpi_HOAS.9» -Universe constraints: -UNIVERSES: - {elpi_examples.tutorial_coq_elpi_HOAS.9 - elpi_examples.tutorial_coq_elpi_HOAS.8} |= - elpi_examples.tutorial_coq_elpi_HOAS.9 < elpi_examples.tutorial_coq_elpi_HOAS.8 -ALGEBRAIC UNIVERSES: - {elpi_examples.tutorial_coq_elpi_HOAS.9 - elpi_examples.tutorial_coq_elpi_HOAS.8} -FLEXIBLE UNIVERSES: - elpi_examples.tutorial_coq_elpi_HOAS.9 - elpi_examples.tutorial_coq_elpi_HOAS.8 -SORTS: - -WEAK CONSTRAINTS: - - -app - [global (const «Nat.add»), - app [global (indc «S»), global (indc «O»)], - app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] -= -app - [global (const «Nat.add»), - app [global (indc «S»), global (indc «O»)], - app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] -app - [global (const «Nat.add»), - app [global (indc «S»), global (indc «O»)], - app [global (indc «S»), global (indc «O»)]] -Query assignments: - S = indc «S» -fun `x` (global (indt «nat»)) c0 \ - fun `x` (global (indt «nat»)) c1 \ - app [global (const «Nat.add»), c1, c0] -fun `x` (global (indt «nat»)) c0 \ - fun `x` (global (indt «nat»)) c1 \ - app [global (const «Nat.add»), c1, c0] -fun `a` (global (indt «nat»)) c0 \ - fun `b` (global (indt «nat»)) c1 \ - app [global (const «Nat.add»), c1, c0] -Query assignments: - X = c0 \ c1 \ -app [global (const «Nat.add»), c1, c0] -fun `a` (global (indt «nat»)) c0 \ - fun `b` (global (indt «nat»)) c1 \ - app [global (indt «eq»), global (indt «nat»), c0, c1] -indt «nat» -indt «nat» -before: -fun `ax` (global (indt «nat»)) c0 \ - fun `b` (global (indt «nat»)) c1 \ - app [global (indt «eq»), X0 c1, c0, c1] -after: -fun `ax` (global (indt «nat»)) c0 \ - fun `b` (global (indt «nat»)) c1 \ - app [global (indt «eq»), global (indt «nat»), c0, c1] Query assignments: - T = fun `ax` (global (indt «nat»)) c0 \ - fun `b` (global (indt «nat»)) c1 \ - app [global (indt «eq»), global (indt «nat»), c0, c1] - X1_ = c0 \ -global (indt «nat») + X = typ «elpi.tests.test_API.2» + Y = typ «elpi.tests.test_API.3» Universe constraints: UNIVERSES: - {elpi_examples.tutorial_coq_elpi_HOAS.11 - elpi_examples.tutorial_coq_elpi_HOAS.10} |= - elpi_examples.tutorial_coq_elpi_HOAS.11 < elpi_examples.tutorial_coq_elpi_HOAS.10 - Set <= elpi_examples.tutorial_coq_elpi_HOAS.11 - elpi_examples.tutorial_coq_elpi_HOAS.11 <= eq.u0 + {elpi.tests.test_API.3 elpi.tests.test_API.2} |= + elpi.tests.test_API.2 <= elpi.tests.test_API.3 ALGEBRAIC UNIVERSES: {} FLEXIBLE UNIVERSES: SORTS: - α6 := Type -WEAK CONSTRAINTS: - -Query assignments: - Bo = c0 \ -app - [global (const «Nat.add»), c0, - app [global (indc «S»), global (indc «O»)]] - N = `x` - T = fun `x` (global (indt «nat»)) c0 \ - app - [global (const «Nat.add»), c0, - app [global (indc «S»), global (indc «O»)]] - Ty = global (indt «nat») -Query assignments: - Bo = c0 \ -app - [global (const «Nat.add»), c0, - app [global (indc «S»), global (indc «O»)]] - N = `x` - T = fun `x` (global (indt «nat»)) c0 \ - app - [global (const «Nat.add»), c0, - app [global (indc «S»), global (indc «O»)]] - Ty = global (indt «nat») -raw T = X0 - -SHELF: -FUTURE GOALS STACK: +WEAK CONSTRAINTS: -Rocq-Elpi mapping: -RAW: -ELAB: - --------------------------------- - evar (X1) (global (indt «nat»)) (X1) /* suspended on X1 */ -EVARS: - ?X11==[ |- nat] (internal placeholder) {?e0} - ?X10==[ |- => nat] (internal placeholder) - -SHELF: -FUTURE GOALS STACK: - ?X11 - -Rocq-Elpi mapping: -RAW: -?X11 <-> X1 -ELAB: -?X11 <-> X1 - Query assignments: - T = X1 - X2_ = X1 -Syntactic constraints: - evar (X1) (global (indt «nat»)) (X1) /* suspended on X1 */ + X = typ «elpi.tests.test_API.4» + Y = typ «elpi.tests.test_API.5» Universe constraints: UNIVERSES: - {elpi_examples.tutorial_coq_elpi_HOAS.12} |= - Set <= elpi_examples.tutorial_coq_elpi_HOAS.12 + {elpi.tests.test_API.5 elpi.tests.test_API.4} |= + elpi.tests.test_API.4 <= elpi.tests.test_API.5 ALGEBRAIC UNIVERSES: {} FLEXIBLE UNIVERSES: SORTS: - α7 := Type + WEAK CONSTRAINTS: -raw T = -fun `x` (global (indt «nat»)) c0 \ - app [global (const «Nat.add»), c0, X0 c0] - {c0 c1} : decl c1 `x` (global (indt «nat»)) - ?- evar (X1 c1) (global (indt «nat»)) (X1 c1) /* suspended on X1 */ -EVARS: - ?X13==[x |- nat] (internal placeholder) {?e0} - ?X12==[x |- => nat] (internal placeholder) - -SHELF: -FUTURE GOALS STACK: - ?X13 - -Rocq-Elpi mapping: -RAW: -?X13 <-> c0 \ X1 c0 -ELAB: -?X13 <-> X1 - Query assignments: - Bo = c0 \ -app [global (const «Nat.add»), c0, X1 c0] - N = `x` - T = fun `x` (global (indt «nat»)) c0 \ - app [global (const «Nat.add»), c0, X1 c0] - Ty = global (indt «nat») - X3_ = c0 \ -X1 c0 -Syntactic constraints: - {c0 c1} : decl c1 `x` (global (indt «nat»)) - ?- evar (X1 c1) (global (indt «nat»)) (X1 c1) /* suspended on X1 */ + X = typ «elpi.tests.test_API.6» + Y = typ «elpi.tests.test_API.7» + Z = typ «elpi.tests.test_API.8» Universe constraints: UNIVERSES: - {elpi_examples.tutorial_coq_elpi_HOAS.13} |= - Set <= elpi_examples.tutorial_coq_elpi_HOAS.13 + {elpi.tests.test_API.8 elpi.tests.test_API.7 elpi.tests.test_API.6} |= + elpi.tests.test_API.6 <= elpi.tests.test_API.8 + elpi.tests.test_API.7 <= elpi.tests.test_API.8 ALGEBRAIC UNIVERSES: {} FLEXIBLE UNIVERSES: SORTS: - α8 := Type + WEAK CONSTRAINTS: -Bo1 (not in pattern fragment) = -app - [global (const «Nat.add»), - app [global (indc «S»), global (indc «O»)], - X0 (app [global (indc «S»), global (indc «O»)])] -Bo1 before = -app - [global (const «Nat.add»), - app [global (indc «S»), global (indc «O»)], - X0 (app [global (indc «S»), global (indc «O»)])] -Bo1 after = -app - [global (const «Nat.add»), - app [global (indc «S»), global (indc «O»)], X1] Query assignments: - Bo = c0 \ -app [global (const «Nat.add»), c0, X1] - Bo1 = app - [global (const «Nat.add»), - app [global (indc «S»), global (indc «O»)], X1] - N = `x` - T = fun `x` (global (indt «nat»)) c0 \ app [global (const «Nat.add»), c0, X1] - Ty = global (indt «nat») - X5_ = c0 \ -X1 -Syntactic constraints: - evar (X1) (global (indt «nat»)) (X1) /* suspended on X1 */ + X = typ «elpi.tests.test_API.9» + Y = typ «elpi.tests.test_API.10» Universe constraints: UNIVERSES: - {elpi_examples.tutorial_coq_elpi_HOAS.14} |= - Set <= elpi_examples.tutorial_coq_elpi_HOAS.14 + {elpi.tests.test_API.10 elpi.tests.test_API.9} |= + elpi.tests.test_API.9 < elpi.tests.test_API.10 ALGEBRAIC UNIVERSES: {} FLEXIBLE UNIVERSES: SORTS: - α9 := Type + WEAK CONSTRAINTS: -Query assignments: - Bo = c0 \ -app [global (const «andb»), c0, X0 c0] - Bo1 = app - [global (const «andb»), app [global (indc «S»), global (indc «O»)], - X0 (app [global (indc «S»), global (indc «O»)])] - Bo2 = app - [global (const «andb»), - app - [global (const «nat2bool»), - app [global (indc «S»), global (indc «O»)]], X1] - N = `x` - T = fun `x` (global (indt «nat»)) c0 \ app [global (const «andb»), c0, X0 c0] - Ty = global (indt «nat») - X6_ = X0 -Syntactic constraints: - evar (X2) (global (indt «bool»)) X1 /* suspended on X2, X1 */ -File "./examples/tutorial_coq_elpi_HOAS.v", line 87, characters 19-24: +[foo (const «X»), foo (indt «nat»), foo (indt «bool»)] +[foo (indt «nat»), foo (indt «bool»)] +[] +[foo (indt «nat»)] +hello [int 1, int 2, trm (global (indt «nat»)), str x] +coq.pp.box (coq.pp.hv 2) + [coq.pp.str Module, coq.pp.spc, coq.pp.str Foo, coq.pp.spc, coq.pp.str :=, + coq.pp.brk 1 0, coq.pp.str body, coq.pp.spc, coq.pp.str End Foo.] +Module + Foo + := + body + End Foo. +fix foo (x : ?e3) (y : ?e4) {struct x} : ?e2 := + match x as _elpi_renamed_x_3 return ?e6 with + | true => S (S (S O)) + | false => y + end +fix foo x y {struct x} := if x as _elpi_renamed_x_3 then 3 else y +File "./tests/test_API.v", line 73, characters 37-39: Warning: -File "./examples/tutorial_coq_elpi_HOAS.v", line 87, characters 19-24 -GRnat is linear: name it _GRnat (discard) or GRnat_ (fresh variable) +File "./tests/test_API.v", line 73, characters 37-39 +MP is linear: name it _MP (discard) or MP_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -File "./examples/tutorial_coq_elpi_HOAS.v", line 89, characters 20-26: +File "./tests/test_API.v", line 81, characters 54-55: Warning: -File "./examples/tutorial_coq_elpi_HOAS.v", line 89, characters 20-26 -GRplus is linear: name it _GRplus (discard) or GRplus_ (fresh variable) +File "./tests/test_API.v", line 81, characters 54-55 +A is linear: name it _A (discard) or A_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -File "./examples/tutorial_coq_elpi_HOAS.v", line 88, characters 17-20: +File "./tests/test_API.v", line 82, characters 56-58: Warning: -File "./examples/tutorial_coq_elpi_HOAS.v", line 88, characters 17-20 -GRs is linear: name it _GRs (discard) or GRs_ (fresh variable) +File "./tests/test_API.v", line 82, characters 56-58 +MP is linear: name it _MP (discard) or MP_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -File "./examples/tutorial_coq_elpi_HOAS.v", line 113, characters 24-26: +File "./tests/test_API.v", line 91, characters 29-30: Warning: -File "./examples/tutorial_coq_elpi_HOAS.v", line 113, characters 24-26 -Bo is linear: name it _Bo (discard) or Bo_ (fresh variable) +File "./tests/test_API.v", line 91, characters 29-30 +X is linear: name it _X (discard) or X_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -File "./examples/tutorial_coq_elpi_HOAS.v", line 107, characters 20-22: +File "./tests/test_API.v", line 92, characters 29-30: Warning: -File "./examples/tutorial_coq_elpi_HOAS.v", line 107, characters 20-22 -Ty is linear: name it _Ty (discard) or Ty_ (fresh variable) +File "./tests/test_API.v", line 92, characters 29-30 +X is linear: name it _X (discard) or X_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -File "./examples/tutorial_coq_elpi_HOAS.v", line 113, characters 28-31: +File "./tests/test_API.v", line 92, characters 31-32: Warning: -File "./examples/tutorial_coq_elpi_HOAS.v", line 113, characters 28-31 -TyC is linear: name it _TyC (discard) or TyC_ (fresh variable) +File "./tests/test_API.v", line 92, characters 31-32 +Y is linear: name it _Y (discard) or Y_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -File "./examples/tutorial_coq_elpi_HOAS.v", line 152, characters 24-26: +File "./tests/test_API.v", line 93, characters 28-29: Warning: -File "./examples/tutorial_coq_elpi_HOAS.v", line 152, characters 24-26 -Bo is linear: name it _Bo (discard) or Bo_ (fresh variable) +File "./tests/test_API.v", line 93, characters 28-29 +X is linear: name it _X (discard) or X_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -File "./examples/tutorial_coq_elpi_HOAS.v", line 195, characters 24-26: +File "./tests/test_API.v", line 93, characters 30-31: Warning: -File "./examples/tutorial_coq_elpi_HOAS.v", line 195, characters 24-26 -Bo is linear: name it _Bo (discard) or Bo_ (fresh variable) +File "./tests/test_API.v", line 93, characters 30-31 +Y is linear: name it _Y (discard) or Y_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -File "./examples/tutorial_coq_elpi_HOAS.v", line 285, characters 17-18: +File "./tests/test_API.v", line 94, characters 36-37: Warning: -File "./examples/tutorial_coq_elpi_HOAS.v", line 285, characters 17-18 -V is linear: name it _V (discard) or V_ (fresh variable) +File "./tests/test_API.v", line 94, characters 36-37 +X is linear: name it _X (discard) or X_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -File "./examples/tutorial_coq_elpi_HOAS.v", line 681, characters 10-11: +File "./tests/test_API.v", line 94, characters 38-39: Warning: -File "./examples/tutorial_coq_elpi_HOAS.v", line 681, characters 10-11 -N is linear: name it _N (discard) or N_ (fresh variable) +File "./tests/test_API.v", line 94, characters 38-39 +Y is linear: name it _Y (discard) or Y_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -File "./examples/tutorial_coq_elpi_HOAS.v", line 681, characters 12-14: +File "./tests/test_API.v", line 94, characters 40-41: Warning: -File "./examples/tutorial_coq_elpi_HOAS.v", line 681, characters 12-14 -Ty is linear: name it _Ty (discard) or Ty_ (fresh variable) +File "./tests/test_API.v", line 94, characters 40-41 +Z is linear: name it _Z (discard) or Z_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -File "./examples/tutorial_coq_elpi_HOAS.v", line 718, characters 10-11: +File "./tests/test_API.v", line 95, characters 29-30: Warning: -File "./examples/tutorial_coq_elpi_HOAS.v", line 718, characters 10-11 -N is linear: name it _N (discard) or N_ (fresh variable) +File "./tests/test_API.v", line 95, characters 29-30 +X is linear: name it _X (discard) or X_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -File "./examples/tutorial_coq_elpi_HOAS.v", line 718, characters 12-14: +File "./tests/test_API.v", line 95, characters 31-32: Warning: -File "./examples/tutorial_coq_elpi_HOAS.v", line 718, characters 12-14 -Ty is linear: name it _Ty (discard) or Ty_ (fresh variable) +File "./tests/test_API.v", line 95, characters 31-32 +Y is linear: name it _Y (discard) or Y_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -File "./examples/tutorial_coq_elpi_HOAS.v", line 756, characters 40-43: +test2 +test1 +str hello +test1 +too many arguments +test1 +str hello my +str Dear +test1 +too many arguments +[attribute elpi.loc + (leaf-loc + File "./tests/test_vernacular1.v", line 47, column 5, characters 953-961:), + attribute elpi.phase (leaf-str interp), attribute foo (leaf-str bar)] +[get-option elpi.loc + File "./tests/test_vernacular1.v", line 47, column 5, characters 953-961:, + get-option elpi.phase interp, get-option foo bar] +[attribute elpi.loc + (leaf-loc + File "./tests/test_vernacular1.v", line 51, column 0, characters 987-1014:), + attribute elpi.phase (leaf-str interp), attribute foo (leaf-str bar), + attribute poly (leaf-str )] +[get-option elpi.loc + File "./tests/test_vernacular1.v", line 51, column 0, characters 987-1014:, + get-option elpi.phase interp, get-option foo bar, get-option poly tt] +[attribute elpi.loc + (leaf-loc + File "./tests/test_vernacular1.v", line 52, column 0, characters 1015-1055:), + attribute elpi.phase (leaf-str interp), attribute foo (leaf-str bar), + attribute poly (leaf-str ), + attribute suppa (node [attribute duppa (leaf-str )])] +[get-option elpi.loc + File "./tests/test_vernacular1.v", line 52, column 0, characters 1015-1055:, + get-option elpi.phase interp, get-option foo bar, get-option poly tt] +Query assignments: + X = 3 +app [global (const «Nat.mul»), X0, X1] type +File "./tests/test_vernacular1.v", line 5, characters 0-61: Warning: -File "./examples/tutorial_coq_elpi_HOAS.v", line 756, characters 40-43 -Bo2 is linear: name it _Bo2 (discard) or Bo2_ (fresh variable) +Undeclared globals: +- File "./tests/test_vernacular1.v", line 6, column 29, characters 112-117: foo. +Please add the following text to your program: +type foo list argument -> prop. +[elpi.missing-types,elpi.typecheck,elpi,default] +File "./tests/test_vernacular1.v", line 46, characters 2-11: +Warning: This command does not support this attribute: foo. +[unsupported-attributes,parsing,default] +File "./tests/test_vernacular1.v", line 65, characters 26-27: +Warning: +File "./tests/test_vernacular1.v", line 65, characters 26-27 +X is linear: name it _X (discard) or X_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -File "./examples/tutorial_coq_elpi_HOAS.v", line 754, characters 10-11: +File "./tests/test_File3.v", line 18, characters 2-16: +Warning: This command does not support this attribute: phase. +[unsupported-attributes,parsing,default] +synterp [str X] +interp [str X] +synterp [int 1] +interp [int 1] +synterp [trm _] +interp [trm (app [global (indc «S»), global (indc «O»)])] +synterp +[const-decl x (some _) + (parameter P explicit _ c0 \ parameter Q explicit _ c1 \ arity _)] +interp +[const-decl x + (some + (fun `P` (global (indt «bool»)) c0 \ + fun `Q` (global (indt «bool»)) c1 \ global (indc «O»))) + (parameter P explicit (global (indt «bool»)) c0 \ + parameter Q explicit (global (indt «bool»)) c1 \ + arity (global (indt «nat»)))] +synterp +[const-decl x none + (parameter P explicit _ c0 \ parameter Q explicit _ c1 \ arity _)] +interp +[const-decl x none + (parameter P explicit (global (indt «bool»)) c0 \ + parameter Q explicit (global (indt «bool»)) c1 \ + arity (global (indt «nat»)))] +synterp +[indt-decl + (parameter P explicit _ c0 \ + parameter Q explicit _ c1 \ + record x _ K + (field [coercion off, canonical tt] f1 _ c2 \ + field [coercion off, canonical tt] f2 _ c3 \ end-record))] +interp +[indt-decl + (parameter P explicit (global (indt «bool»)) c0 \ + parameter Q explicit (global (indt «bool»)) c1 \ + record x (sort (typ «Set»)) K + (field [coercion off, canonical tt] f1 (global (indt «nat»)) c2 \ + field [coercion off, canonical tt] f2 + (app [global (indt «eq»), global (indt «nat»), c2, c2]) c3 \ + end-record))] +synterp +[indt-decl + (parameter P explicit _ c0 \ + inductive x tt (parameter Q explicit _ c1 \ arity _) c1 \ + [constructor K (parameter Q explicit _ c2 \ arity _), + constructor R (parameter Q explicit _ c2 \ arity _)])] +interp +[indt-decl + (parameter P explicit (global (indt «bool»)) c0 \ + inductive x tt + (parameter Q explicit (global (indt «bool»)) c1 \ + arity (prod `_` (global (indt «nat»)) c2 \ sort (typ «Set»))) c1 \ + [constructor K + (parameter Q explicit (global (indt «bool»)) c2 \ + arity + (prod `_` (global (indt «nat»)) c3 \ + app + [c1, c2, + app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]])), + constructor R + (parameter Q explicit (global (indt «bool»)) c2 \ + arity + (prod `w` (global (indt «bool»)) c3 \ + app [c1, c2, app [global (indc «S»), global (indc «O»)]]))])] +synterp +[ctx-decl + (context-item A explicit _ none c0 \ + context-item B explicit _ none c1 \ context-end)] +interp +[ctx-decl + (context-item A explicit (global (indt «nat»)) none c0 \ + context-item B explicit (global (indt «bool»)) none c1 \ context-end)] +synterp [str X] +interp [str X] +synterp [int 1] +interp [int 1] +synterp [trm _] +interp [trm (app [global (indc «S»), global (indc «O»)])] +synterp +[const-decl x (some _) + (parameter P explicit _ c0 \ parameter Q explicit _ c1 \ arity _)] +interp +[const-decl x + (some + (fun `P` (global (indt «bool»)) c0 \ + fun `Q` (global (indt «bool»)) c1 \ global (indc «O»))) + (parameter P explicit (global (indt «bool»)) c0 \ + parameter Q explicit (global (indt «bool»)) c1 \ + arity (global (indt «nat»)))] +synterp +[const-decl x none + (parameter P explicit _ c0 \ parameter Q explicit _ c1 \ arity _)] +interp +[const-decl x none + (parameter P explicit (global (indt «bool»)) c0 \ + parameter Q explicit (global (indt «bool»)) c1 \ + arity (global (indt «nat»)))] +synterp +[indt-decl + (parameter P explicit _ c0 \ + parameter Q explicit _ c1 \ + record x _ K + (field [coercion off, canonical tt] f1 _ c2 \ + field [coercion off, canonical tt] f2 _ c3 \ end-record))] +interp +[indt-decl + (parameter P explicit (global (indt «bool»)) c0 \ + parameter Q explicit (global (indt «bool»)) c1 \ + record x (sort (typ «Set»)) K + (field [coercion off, canonical tt] f1 (global (indt «nat»)) c2 \ + field [coercion off, canonical tt] f2 + (app [global (indt «eq»), global (indt «nat»), c2, c2]) c3 \ + end-record))] +synterp +[indt-decl + (parameter P explicit _ c0 \ + inductive x tt (parameter Q explicit _ c1 \ arity _) c1 \ + [constructor K (parameter Q explicit _ c2 \ arity _), + constructor R (parameter Q explicit _ c2 \ arity _)])] +interp +[indt-decl + (parameter P explicit (global (indt «bool»)) c0 \ + inductive x tt + (parameter Q explicit (global (indt «bool»)) c1 \ + arity (prod `_` (global (indt «nat»)) c2 \ sort (typ «Set»))) c1 \ + [constructor K + (parameter Q explicit (global (indt «bool»)) c2 \ + arity + (prod `_` (global (indt «nat»)) c3 \ + app + [c1, c2, + app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]])), + constructor R + (parameter Q explicit (global (indt «bool»)) c2 \ + arity + (prod `w` (global (indt «bool»)) c3 \ + app [c1, c2, app [global (indc «S»), global (indc «O»)]]))])] +synterp +[ctx-decl + (context-item A explicit _ none c0 \ + context-item B explicit _ none c1 \ context-end)] +interp +[ctx-decl + (context-item A explicit (global (indt «nat»)) none c0 \ + context-item B explicit (global (indt «bool»)) none c1 \ context-end)] +a : nat + +a is not universe polymorphic +a is transparent +Expands to: Constant elpi.tests.test_synterp.X.a +Module X := Struct Definition a : nat. End +Module A := Struct Definition a : nat. End +a + : nat +L= [p 1] +File "./tests/test_synterp.v", line 38, characters 20-21: Warning: -File "./examples/tutorial_coq_elpi_HOAS.v", line 754, characters 10-11 -N is linear: name it _N (discard) or N_ (fresh variable) +File "./tests/test_synterp.v", line 38, characters 20-21 +X is linear: name it _X (discard) or X_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -File "./examples/tutorial_coq_elpi_HOAS.v", line 754, characters 12-14: +File "./tests/test_synterp.v", line 41, characters 12-13: Warning: -File "./examples/tutorial_coq_elpi_HOAS.v", line 754, characters 12-14 -Ty is linear: name it _Ty (discard) or Ty_ (fresh variable) +File "./tests/test_synterp.v", line 41, characters 12-13 +X is linear: name it _X (discard) or X_ (fresh variable) +[elpi.linear-variable,elpi.typecheck,elpi,default] +Query assignments: + BO = fix `add` 0 + (prod `n` (global (indt «nat»)) c0 \ + prod `m` (global (indt «nat»)) c1 \ global (indt «nat»)) c0 \ + fun `n` (global (indt «nat»)) c1 \ + fun `m` (global (indt «nat»)) c2 \ + match c1 (fun `n` (global (indt «nat»)) c3 \ global (indt «nat»)) + [c2, + fun `p` (global (indt «nat»)) c3 \ + app [global (indc «S»), app [c0, c3, c2]]] + GR = «Nat.add» + TY = prod `n` (global (indt «nat»)) c0 \ + prod `m` (global (indt «nat»)) c1 \ global (indt «nat») +c2 +global (indt «nat») +z +nat +Query assignments: + %arg1 = c0 \ c1 \ c2 \ +z + %arg2 = c0 \ c1 \ c2 \ +nat + T = global (indt «nat») +c2 +global (indt «nat») +z +nat +Query assignments: + %arg1 = c0 \ c1 \ c2 \ +z + %arg2 = c0 \ c1 \ c2 \ +nat + T = global (indt «nat») +Illegal application (Non-functional construction): +The expression "Prop" of type "Type" +cannot be applied to the term + "Prop" : "Type" +Query assignments: + E = Illegal application (Non-functional construction): +The expression "Prop" of type "Type" +cannot be applied to the term + "Prop" : "Type" +Unable to unify "bool" with "nat". +Query assignments: + Msg = Unable to unify "bool" with "nat". +Query assignments: + Cons = global (indc «cons») + GRCons = indc «cons» + GRList = indt «list» + GRNat = indt «nat» + GRNil = indc «nil» + GRZero = indc «O» + L = app + [global (indc «cons»), global (indt «nat»), global (indc «O»), + app [global (indc «nil»), global (indt «nat»)]] + LE = app + [global (indc «cons»), global (indt «nat»), global (indc «O»), + app [global (indc «nil»), global (indt «nat»)]] + List = global (indt «list») + Nat = global (indt «nat») + Nil = global (indc «nil») + Zero = global (indc «O») +Universe constraints: +UNIVERSES: + {elpi.tests.test_API_typecheck.4 elpi.tests.test_API_typecheck.3 + elpi.tests.test_API_typecheck.2 elpi.tests.test_API_typecheck.1} |= + elpi.tests.test_API_typecheck.3 < elpi.tests.test_API_typecheck.2 + elpi.tests.test_API_typecheck.4 < elpi.tests.test_API_typecheck.1 + Set <= elpi.tests.test_API_typecheck.3 + Set <= elpi.tests.test_API_typecheck.4 + elpi.tests.test_API_typecheck.3 <= list.u0 + elpi.tests.test_API_typecheck.4 <= list.u0 +ALGEBRAIC UNIVERSES: + {} +FLEXIBLE UNIVERSES: + +SORTS: + α1 := Type + α2 := Type +WEAK CONSTRAINTS: + + +global (indt «nat») +Query assignments: + T = global (indt «nat») + X1_ = global (indt «nat») + X2_ = global (indt «nat») +Universe constraints: +UNIVERSES: + {elpi.tests.test_API_typecheck.9 elpi.tests.test_API_typecheck.8 + elpi.tests.test_API_typecheck.7 elpi.tests.test_API_typecheck.6 + elpi.tests.test_API_typecheck.5} |= + Set < elpi.tests.test_API_typecheck.7 + elpi.tests.test_API_typecheck.8 < elpi.tests.test_API_typecheck.6 + elpi.tests.test_API_typecheck.9 < elpi.tests.test_API_typecheck.5 + Set <= elpi.tests.test_API_typecheck.8 + Set <= elpi.tests.test_API_typecheck.9 + elpi.tests.test_API_typecheck.8 <= list.u0 + elpi.tests.test_API_typecheck.9 <= list.u0 +ALGEBRAIC UNIVERSES: + {} +FLEXIBLE UNIVERSES: + +SORTS: + α3 := Type + α4 := Type + α5 := Type +WEAK CONSTRAINTS: + + +«elpi.tests.test_API_typecheck.10» +Query assignments: + U = «elpi.tests.test_API_typecheck.10» +Universe constraints: +UNIVERSES: + {elpi.tests.test_API_typecheck.10} |= + Set <= elpi.tests.test_API_typecheck.10 +ALGEBRAIC UNIVERSES: + {elpi.tests.test_API_typecheck.10} +FLEXIBLE UNIVERSES: + elpi.tests.test_API_typecheck.10 +SORTS: + +WEAK CONSTRAINTS: + + +Unable to unify "Set" with "Prop" (universe inconsistency: Cannot enforce Set +<= Prop). +Query assignments: + E = Unable to unify "Set" with "Prop" (universe inconsistency: Cannot enforce Set +<= Prop). +File "./tests/test_API_typecheck.v", line 59, characters 2-4: +Warning: +File "./tests/test_API_typecheck.v", line 59, characters 2-4 +LE is linear: name it _LE (discard) or LE_ (fresh variable) +[elpi.linear-variable,elpi.typecheck,elpi,default] +Debug: +----<<---- enter: +coq.say raw: + (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.2»)) c0 \ + parameter A2 explicit c0 c1 \ + inductive foo1 tt + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c2 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c3 \ + arity + (prod `_` (global (indt «nat»)) c4 \ + sort (typ «elpi.tests.test_arg_HOAS.7»))) c2 \ + [constructor a_k1 + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) + c3 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) + c4 \ + arity + (prod `x` (global (indt «nat»)) c5 \ + prod `_` + (app + [c2, app [global (indt «prod»), c3, c3], c4, + app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]]) c6 \ + app [c2, c3, c4, c5])), + constructor a_k2 + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) + c3 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) + c4 \ + arity + (prod `_` c0 c5 \ + app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) +raw: +parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.2»)) c0 \ + parameter A2 explicit c0 c1 \ + inductive foo1 tt + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c2 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c3 \ + arity + (prod `_` (global (indt «nat»)) c4 \ + sort (typ «elpi.tests.test_arg_HOAS.7»))) c2 \ + [constructor a_k1 + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c3 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c4 \ + arity + (prod `x` (global (indt «nat»)) c5 \ + prod `_` + (app + [c2, app [global (indt «prod»), c3, c3], c4, + app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]]) c6 \ + app [c2, c3, c4, c5])), + constructor a_k2 + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c3 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c4 \ + arity + (prod `_` c0 c5 \ + app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))] +Debug: +---->>---- exit: +coq.say raw: + (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.2»)) c0 \ + parameter A2 explicit c0 c1 \ + inductive foo1 tt + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c2 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c3 \ + arity + (prod `_` (global (indt «nat»)) c4 \ + sort (typ «elpi.tests.test_arg_HOAS.7»))) c2 \ + [constructor a_k1 + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) + c3 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) + c4 \ + arity + (prod `x` (global (indt «nat»)) c5 \ + prod `_` + (app + [c2, app [global (indt «prod»), c3, c3], c4, + app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]]) c6 \ + app [c2, c3, c4, c5])), + constructor a_k2 + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) + c3 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) + c4 \ + arity + (prod `_` c0 c5 \ + app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) +Debug: +----<<---- enter: +std.assert-ok! + (coq.typecheck-indt-decl + (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.2»)) c0 \ + parameter A2 explicit c0 c1 \ + inductive foo1 tt + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) + c2 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) + c3 \ + arity + (prod `_` (global (indt «nat»)) c4 \ + sort (typ «elpi.tests.test_arg_HOAS.7»))) c2 \ + [constructor a_k1 + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) + c3 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) + c4 \ + arity + (prod `x` (global (indt «nat»)) c5 \ + prod `_` + (app + [c2, app [global (indt «prod»), c3, c3], c4, + app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]]) + c6 \ app [c2, c3, c4, c5])), + constructor a_k2 + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) + c3 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) + c4 \ + arity + (prod `_` c0 c5 \ + app + [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))])) + Illtyped inductive declaration +Debug: +---->>---- exit: +std.assert-ok! + (coq.typecheck-indt-decl + (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.2»)) c0 \ + parameter A2 explicit c0 c1 \ + inductive foo1 tt + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) + c2 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) + c3 \ + arity + (prod `_` (global (indt «nat»)) c4 \ + sort (typ «elpi.tests.test_arg_HOAS.7»))) c2 \ + [constructor a_k1 + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) + c3 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) + c4 \ + arity + (prod `x` (global (indt «nat»)) c5 \ + prod `_` + (app + [c2, app [global (indt «prod»), c3, c3], c4, + app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]]) + c6 \ app [c2, c3, c4, c5])), + constructor a_k2 + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) + c3 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) + c4 \ + arity + (prod `_` c0 c5 \ + app + [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))])) + Illtyped inductive declaration +Debug: +----<<---- enter: +coq.say typed: + (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.2»)) c0 \ + parameter A2 explicit c0 c1 \ + inductive foo1 tt + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c2 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c3 \ + arity + (prod `_` (global (indt «nat»)) c4 \ + sort (typ «elpi.tests.test_arg_HOAS.7»))) c2 \ + [constructor a_k1 + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) + c3 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) + c4 \ + arity + (prod `x` (global (indt «nat»)) c5 \ + prod `_` + (app + [c2, app [global (indt «prod»), c3, c3], c4, + app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]]) c6 \ + app [c2, c3, c4, c5])), + constructor a_k2 + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) + c3 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) + c4 \ + arity + (prod `_` c0 c5 \ + app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) +typed: +parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.2»)) c0 \ + parameter A2 explicit c0 c1 \ + inductive foo1 tt + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c2 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c3 \ + arity + (prod `_` (global (indt «nat»)) c4 \ + sort (typ «elpi.tests.test_arg_HOAS.7»))) c2 \ + [constructor a_k1 + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c3 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c4 \ + arity + (prod `x` (global (indt «nat»)) c5 \ + prod `_` + (app + [c2, app [global (indt «prod»), c3, c3], c4, + app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]]) c6 \ + app [c2, c3, c4, c5])), + constructor a_k2 + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c3 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c4 \ + arity + (prod `_` c0 c5 \ + app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))] +Debug: +---->>---- exit: +coq.say typed: + (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.2»)) c0 \ + parameter A2 explicit c0 c1 \ + inductive foo1 tt + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c2 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c3 \ + arity + (prod `_` (global (indt «nat»)) c4 \ + sort (typ «elpi.tests.test_arg_HOAS.7»))) c2 \ + [constructor a_k1 + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) + c3 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) + c4 \ + arity + (prod `x` (global (indt «nat»)) c5 \ + prod `_` + (app + [c2, app [global (indt «prod»), c3, c3], c4, + app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]]) c6 \ + app [c2, c3, c4, c5])), + constructor a_k2 + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) + c3 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) + c4 \ + arity + (prod `_` c0 c5 \ + app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) +Debug: +----<<---- enter: +coq.env.add-indt + (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.2»)) c0 \ + parameter A2 explicit c0 c1 \ + inductive foo1 tt + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c2 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c3 \ + arity + (prod `_` (global (indt «nat»)) c4 \ + sort (typ «elpi.tests.test_arg_HOAS.7»))) c2 \ + [constructor a_k1 + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) + c3 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) + c4 \ + arity + (prod `x` (global (indt «nat»)) c5 \ + prod `_` + (app + [c2, app [global (indt «prod»), c3, c3], c4, + app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]]) c6 \ + app [c2, c3, c4, c5])), + constructor a_k2 + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) + c3 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) + c4 \ + arity + (prod `_` c0 c5 \ + app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) + X0 +Debug: +---->>---- exit: +coq.env.add-indt + (parameter A1 maximal (sort (typ «foo1.u0»)) c0 \ + parameter A2 explicit c0 c1 \ + inductive foo1 tt + (parameter B1 explicit (sort (typ «foo1.u1»)) c2 \ + parameter B2 explicit (sort (typ «foo1.u2»)) c3 \ + arity (prod `_` (global (indt «nat»)) c4 \ sort (typ «foo1.u3»))) + c2 \ + [constructor a_k1 + (parameter B1 explicit (sort (typ «foo1.u1»)) c3 \ + parameter B2 explicit (sort (typ «foo1.u2»)) c4 \ + arity + (prod `x` (global (indt «nat»)) c5 \ + prod `_` + (app + [c2, app [global (indt «prod»), c3, c3], c4, + app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]]) c6 \ + app [c2, c3, c4, c5])), + constructor a_k2 + (parameter B1 explicit (sort (typ «foo1.u1»)) c3 \ + parameter B2 explicit (sort (typ «foo1.u2»)) c4 \ + arity + (prod `_` c0 c5 \ + app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) + «foo1» +foo1 ?A2 ?B1 ?B2 ?n : Type + : Type +where +?A1 : [ |- Type] +?A2 : [ |- ?A1] +?B1 : [ |- Type] +?B2 : [ |- Type] +?n : [ |- nat] +a_k1 ?A2 ?B1 ?B2 3 ?f : foo1 ?A2 ?B1 ?B2 3 + : foo1 ?A2 ?B1 ?B2 3 +where +?A1 : [ |- Type] +?A2 : [ |- ?A1] +?B1 : [ |- Type] +?B2 : [ |- Type] +?f : [ |- foo1 ?A2 (?B1 * ?B1) ?B2 3] +Debug: +----<<---- enter: +coq.say raw: + (parameter A1 maximal X0 c0 \ + parameter A2 explicit c0 c1 \ + inductive foo1 tt + (parameter B1 explicit (sort (typ X1)) c2 \ + parameter B2 explicit (sort (typ X2)) c3 \ + arity (prod `_` (global (indt «nat»)) c4 \ sort (typ X3))) c2 \ + [constructor a_k1 + (parameter B1 explicit (sort (typ X4)) c3 \ + parameter B2 explicit (sort (typ X5)) c4 \ + arity + (prod `x` (X6 c4) c5 \ + prod `_` + (app + [c2, app [global (indt «prod»), c3, c3], c4, + app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]]) c6 \ + app [c2, c3, c4, c5])), + constructor a_k2 + (parameter B1 explicit (sort (typ X7)) c3 \ + parameter B2 explicit (sort (typ X8)) c4 \ + arity + (prod `_` c0 c5 \ + app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) +raw: +parameter A1 maximal X0 c0 \ + parameter A2 explicit c0 c1 \ + inductive foo1 tt + (parameter B1 explicit (sort (typ X1)) c2 \ + parameter B2 explicit (sort (typ X2)) c3 \ + arity (prod `_` (global (indt «nat»)) c4 \ sort (typ X3))) c2 \ + [constructor a_k1 + (parameter B1 explicit (sort (typ X4)) c3 \ + parameter B2 explicit (sort (typ X5)) c4 \ + arity + (prod `x` (X6 c4) c5 \ + prod `_` + (app + [c2, app [global (indt «prod»), c3, c3], c4, + app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]]) c6 \ + app [c2, c3, c4, c5])), + constructor a_k2 + (parameter B1 explicit (sort (typ X7)) c3 \ + parameter B2 explicit (sort (typ X8)) c4 \ + arity + (prod `_` c0 c5 \ + app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))] +Debug: +---->>---- exit: +coq.say raw: + (parameter A1 maximal X0 c0 \ + parameter A2 explicit c0 c1 \ + inductive foo1 tt + (parameter B1 explicit (sort (typ X1)) c2 \ + parameter B2 explicit (sort (typ X2)) c3 \ + arity (prod `_` (global (indt «nat»)) c4 \ sort (typ X3))) c2 \ + [constructor a_k1 + (parameter B1 explicit (sort (typ X4)) c3 \ + parameter B2 explicit (sort (typ X5)) c4 \ + arity + (prod `x` (X6 c4) c5 \ + prod `_` + (app + [c2, app [global (indt «prod»), c3, c3], c4, + app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]]) c6 \ + app [c2, c3, c4, c5])), + constructor a_k2 + (parameter B1 explicit (sort (typ X7)) c3 \ + parameter B2 explicit (sort (typ X8)) c4 \ + arity + (prod `_` c0 c5 \ + app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) +Debug: +----<<---- enter: +std.assert-ok! + (coq.elaborate-indt-decl-skeleton + (parameter A1 maximal X0 c0 \ + parameter A2 explicit c0 c1 \ + inductive foo1 tt + (parameter B1 explicit (sort (typ X1)) c2 \ + parameter B2 explicit (sort (typ X2)) c3 \ + arity (prod `_` (global (indt «nat»)) c4 \ sort (typ X3))) c2 \ + [constructor a_k1 + (parameter B1 explicit (sort (typ X4)) c3 \ + parameter B2 explicit (sort (typ X5)) c4 \ + arity + (prod `x` (X6 c4) c5 \ + prod `_` + (app + [c2, app [global (indt «prod»), c3, c3], c4, + app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]]) + c6 \ app [c2, c3, c4, c5])), + constructor a_k2 + (parameter B1 explicit (sort (typ X7)) c3 \ + parameter B2 explicit (sort (typ X8)) c4 \ + arity + (prod `_` c0 c5 \ + app + [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) + X9) Illtyped inductive declaration +Debug: +---->>---- exit: +std.assert-ok! + (coq.elaborate-indt-decl-skeleton + (parameter A1 maximal X0 c0 \ + parameter A2 explicit c0 c1 \ + inductive foo1 tt + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.41»)) + c2 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.44»)) + c3 \ + arity + (prod `_` (global (indt «nat»)) c4 \ + sort (typ «elpi.tests.test_arg_HOAS.47»))) c2 \ + [constructor a_k1 + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.52»)) + c3 \ + parameter B2 explicit + (sort (typ «elpi.tests.test_arg_HOAS.54»)) c4 \ + arity + (prod `x` (X6 c4) c5 \ + prod `_` + (app + [c2, app [global (indt «prod»), c3, c3], c4, + app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]]) + c6 \ app [c2, c3, c4, c5])), + constructor a_k2 + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.61»)) + c3 \ + parameter B2 explicit + (sort (typ «elpi.tests.test_arg_HOAS.63»)) c4 \ + arity + (prod `_` c0 c5 \ + app + [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) + (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.40»)) c0 \ + parameter A2 explicit c0 c1 \ + inductive foo1 tt + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.42»)) + c2 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.45»)) + c3 \ + arity + (prod `_` (global (indt «nat»)) c4 \ + sort (typ «elpi.tests.test_arg_HOAS.48»))) c2 \ + [constructor a_k1 + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.53»)) + c3 \ + parameter B2 explicit + (sort (typ «elpi.tests.test_arg_HOAS.55»)) c4 \ + arity + (prod `x` (global (indt «nat»)) c5 \ + prod `_` + (app + [c2, app [global (indt «prod»), c3, c3], c4, + app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]]) + c6 \ app [c2, c3, c4, c5])), + constructor a_k2 + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.62»)) + c3 \ + parameter B2 explicit + (sort (typ «elpi.tests.test_arg_HOAS.64»)) c4 \ + arity + (prod `_` c0 c5 \ + app + [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))])) + Illtyped inductive declaration +Debug: +----<<---- enter: +coq.say typed: + (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.40»)) c0 \ + parameter A2 explicit c0 c1 \ + inductive foo1 tt + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.42»)) c2 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.45»)) + c3 \ + arity + (prod `_` (global (indt «nat»)) c4 \ + sort (typ «elpi.tests.test_arg_HOAS.48»))) c2 \ + [constructor a_k1 + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.53»)) + c3 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.55»)) + c4 \ + arity + (prod `x` (global (indt «nat»)) c5 \ + prod `_` + (app + [c2, app [global (indt «prod»), c3, c3], c4, + app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]]) c6 \ + app [c2, c3, c4, c5])), + constructor a_k2 + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.62»)) + c3 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.64»)) + c4 \ + arity + (prod `_` c0 c5 \ + app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) +typed: +parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.40»)) c0 \ + parameter A2 explicit c0 c1 \ + inductive foo1 tt + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.42»)) c2 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.45»)) c3 \ + arity + (prod `_` (global (indt «nat»)) c4 \ + sort (typ «elpi.tests.test_arg_HOAS.48»))) c2 \ + [constructor a_k1 + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.53»)) c3 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.55»)) + c4 \ + arity + (prod `x` (global (indt «nat»)) c5 \ + prod `_` + (app + [c2, app [global (indt «prod»), c3, c3], c4, + app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]]) c6 \ + app [c2, c3, c4, c5])), + constructor a_k2 + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.62»)) c3 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.64»)) + c4 \ + arity + (prod `_` c0 c5 \ + app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))] +Debug: +---->>---- exit: +coq.say typed: + (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.40»)) c0 \ + parameter A2 explicit c0 c1 \ + inductive foo1 tt + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.42»)) c2 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.45»)) + c3 \ + arity + (prod `_` (global (indt «nat»)) c4 \ + sort (typ «elpi.tests.test_arg_HOAS.48»))) c2 \ + [constructor a_k1 + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.53»)) + c3 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.55»)) + c4 \ + arity + (prod `x` (global (indt «nat»)) c5 \ + prod `_` + (app + [c2, app [global (indt «prod»), c3, c3], c4, + app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]]) c6 \ + app [c2, c3, c4, c5])), + constructor a_k2 + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.62»)) + c3 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.64»)) + c4 \ + arity + (prod `_` c0 c5 \ + app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) +Debug: +----<<---- enter: +coq.env.add-indt + (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.40»)) c0 \ + parameter A2 explicit c0 c1 \ + inductive foo1 tt + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.42»)) c2 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.45»)) + c3 \ + arity + (prod `_` (global (indt «nat»)) c4 \ + sort (typ «elpi.tests.test_arg_HOAS.48»))) c2 \ + [constructor a_k1 + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.53»)) + c3 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.55»)) + c4 \ + arity + (prod `x` (global (indt «nat»)) c5 \ + prod `_` + (app + [c2, app [global (indt «prod»), c3, c3], c4, + app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]]) c6 \ + app [c2, c3, c4, c5])), + constructor a_k2 + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.62»)) + c3 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.64»)) + c4 \ + arity + (prod `_` c0 c5 \ + app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) + X10 +Debug: +---->>---- exit: +coq.env.add-indt + (parameter A1 maximal (sort (typ «foo1.u0»)) c0 \ + parameter A2 explicit c0 c1 \ + inductive foo1 tt + (parameter B1 explicit (sort (typ «foo1.u1»)) c2 \ + parameter B2 explicit (sort (typ «foo1.u2»)) c3 \ + arity (prod `_` (global (indt «nat»)) c4 \ sort (typ «foo1.u3»))) + c2 \ + [constructor a_k1 + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.53»)) + c3 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.55»)) + c4 \ + arity + (prod `x` (global (indt «nat»)) c5 \ + prod `_` + (app + [c2, app [global (indt «prod»), c3, c3], c4, + app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]]) c6 \ + app [c2, c3, c4, c5])), + constructor a_k2 + (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.62»)) + c3 \ + parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.64»)) + c4 \ + arity + (prod `_` c0 c5 \ + app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) + «foo1» +foo1 ?A2 ?B1 ?B2 ?n : Type + : Type +where +?A1 : [ |- Type] +?A2 : [ |- ?A1] +?B1 : [ |- Type] +?B2 : [ |- Type] +?n : [ |- nat] +a_k1 ?A2 ?B1 ?B2 3 ?f : foo1 ?A2 ?B1 ?B2 3 + : foo1 ?A2 ?B1 ?B2 3 +where +?A1 : [ |- Type] +?A2 : [ |- ?A1] +?B1 : [ |- Type] +?B2 : [ |- Type] +?f : [ |- foo1 ?A2 (?B1 * ?B1) ?B2 3] +Query assignments: + D = parameter A explicit (sort (typ «t.u0»)) c0 \ + inductive t tt + (parameter y explicit (global (indt «nat»)) c1 \ + arity (sort (typ «elpi.tests.test_arg_HOAS.82»))) c1 \ + [constructor K + (parameter y explicit (global (indt «nat»)) c2 \ + parameter x explicit c0 c3 \ + parameter n maximal (global (indt «nat»)) c4 \ + arity (prod `_` (app [c1, c4]) c5 \ app [c1, c2]))] + I = «t» +Universe constraints: +UNIVERSES: + {elpi.tests.test_arg_HOAS.82} |= + Set <= elpi.tests.test_arg_HOAS.82 + t.u0 <= elpi.tests.test_arg_HOAS.82 +ALGEBRAIC UNIVERSES: + {} +FLEXIBLE UNIVERSES: + +SORTS: + +WEAK CONSTRAINTS: + + +Debug: +----<<---- enter: +coq.say raw: + (record foo (sort (typ «Set»)) Build_foo + (field [coercion off, canonical tt] f + (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ + field [coercion off, canonical tt] _ + (app + [global (indt «eq»), global (indt «nat»), + app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record)) +raw: +record foo (sort (typ «Set»)) Build_foo + (field [coercion off, canonical tt] f + (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ + field [coercion off, canonical tt] _ + (app + [global (indt «eq»), global (indt «nat»), + app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record) +Debug: +---->>---- exit: +coq.say raw: + (record foo (sort (typ «Set»)) Build_foo + (field [coercion off, canonical tt] f + (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ + field [coercion off, canonical tt] _ + (app + [global (indt «eq»), global (indt «nat»), + app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record)) +Debug: +----<<---- enter: +std.assert-ok! + (coq.typecheck-indt-decl + (record foo (sort (typ «Set»)) Build_foo + (field [coercion off, canonical tt] f + (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ + field [coercion off, canonical tt] _ + (app + [global (indt «eq»), global (indt «nat»), + app [c0, global (indc «O»)], global (indc «O»)]) c1 \ + end-record))) Illtyped inductive declaration +Debug: +---->>---- exit: +std.assert-ok! + (coq.typecheck-indt-decl + (record foo (sort (typ «Set»)) Build_foo + (field [coercion off, canonical tt] f + (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ + field [coercion off, canonical tt] _ + (app + [global (indt «eq»), global (indt «nat»), + app [c0, global (indc «O»)], global (indc «O»)]) c1 \ + end-record))) Illtyped inductive declaration +Debug: +----<<---- enter: +coq.say typed: + (record foo (sort (typ «Set»)) Build_foo + (field [coercion off, canonical tt] f + (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ + field [coercion off, canonical tt] _ + (app + [global (indt «eq»), global (indt «nat»), + app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record)) +typed: +record foo (sort (typ «Set»)) Build_foo + (field [coercion off, canonical tt] f + (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ + field [coercion off, canonical tt] _ + (app + [global (indt «eq»), global (indt «nat»), + app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record) +Debug: +---->>---- exit: +coq.say typed: + (record foo (sort (typ «Set»)) Build_foo + (field [coercion off, canonical tt] f + (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ + field [coercion off, canonical tt] _ + (app + [global (indt «eq»), global (indt «nat»), + app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record)) +Debug: +----<<---- enter: +coq.env.add-indt + (record foo (sort (typ «Set»)) Build_foo + (field [coercion off, canonical tt] f + (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ + field [coercion off, canonical tt] _ + (app + [global (indt «eq»), global (indt «nat»), + app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record)) + X0 +Debug: +---->>---- exit: +coq.env.add-indt + (record foo (sort (typ «Set»)) Build_foo + (field [coercion off, canonical tt] f + (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ + field [coercion off, canonical tt] _ + (app + [global (indt «eq»), global (indt «nat»), + app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record)) + «foo» +Debug: +----<<---- enter: +coq.say raw: + (record foo (sort (typ X0)) Build_foo + (field [coercion off, canonical tt] f + (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ + field [coercion off, canonical tt] _ + (app + [global (indt «eq»), X1 c0, app [c0, global (indc «O»)], + global (indc «O»)]) c1 \ end-record)) +raw: +record foo (sort (typ X0)) Build_foo + (field [coercion off, canonical tt] f + (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ + field [coercion off, canonical tt] _ + (app + [global (indt «eq»), X1 c0, app [c0, global (indc «O»)], + global (indc «O»)]) c1 \ end-record) +Debug: +---->>---- exit: +coq.say raw: + (record foo (sort (typ X0)) Build_foo + (field [coercion off, canonical tt] f + (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ + field [coercion off, canonical tt] _ + (app + [global (indt «eq»), X1 c0, app [c0, global (indc «O»)], + global (indc «O»)]) c1 \ end-record)) +Debug: +----<<---- enter: +std.assert-ok! + (coq.elaborate-indt-decl-skeleton + (record foo (sort (typ X0)) Build_foo + (field [coercion off, canonical tt] f + (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ + field [coercion off, canonical tt] _ + (app + [global (indt «eq»), X1 c0, app [c0, global (indc «O»)], + global (indc «O»)]) c1 \ end-record)) X2) + Illtyped inductive declaration +Debug: +---->>---- exit: +std.assert-ok! + (coq.elaborate-indt-decl-skeleton + (record foo (sort (typ «elpi.tests.test_arg_HOAS.85»)) Build_foo + (field [coercion off, canonical tt] f + (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ + field [coercion off, canonical tt] _ + (app + [global (indt «eq»), X1 c0, app [c0, global (indc «O»)], + global (indc «O»)]) c1 \ end-record)) + (record foo (sort (typ «elpi.tests.test_arg_HOAS.86»)) Build_foo + (field [coercion off, canonical tt] f + (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ + field [coercion off, canonical tt] _ + (app + [global (indt «eq»), global (indt «nat»), + app [c0, global (indc «O»)], global (indc «O»)]) c1 \ + end-record))) Illtyped inductive declaration +Debug: +----<<---- enter: +coq.say typed: + (record foo (sort (typ «elpi.tests.test_arg_HOAS.86»)) Build_foo + (field [coercion off, canonical tt] f + (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ + field [coercion off, canonical tt] _ + (app + [global (indt «eq»), global (indt «nat»), + app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record)) +typed: +record foo (sort (typ «elpi.tests.test_arg_HOAS.86»)) Build_foo + (field [coercion off, canonical tt] f + (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ + field [coercion off, canonical tt] _ + (app + [global (indt «eq»), global (indt «nat»), + app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record) +Debug: +---->>---- exit: +coq.say typed: + (record foo (sort (typ «elpi.tests.test_arg_HOAS.86»)) Build_foo + (field [coercion off, canonical tt] f + (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ + field [coercion off, canonical tt] _ + (app + [global (indt «eq»), global (indt «nat»), + app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record)) +Debug: +----<<---- enter: +coq.env.add-indt + (record foo (sort (typ «elpi.tests.test_arg_HOAS.86»)) Build_foo + (field [coercion off, canonical tt] f + (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ + field [coercion off, canonical tt] _ + (app + [global (indt «eq»), global (indt «nat»), + app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record)) + X3 +Debug: +---->>---- exit: +coq.env.add-indt + (record foo (sort (typ «foo.u0»)) Build_foo + (field [coercion off, canonical tt] f + (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ + field [coercion off, canonical tt] _ + (app + [global (indt «eq»), global (indt «nat»), + app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record)) + «foo» +Debug: +----<<---- enter: +coq.say raw: + (parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.88»)) c0 \ + parameter B explicit c0 c1 \ + record foo (sort (typ «elpi.tests.test_arg_HOAS.88»)) Build_foo + (field [coercion off, canonical tt] a + (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \ + field [coercion reversible, canonical tt] z + (prod `a` c0 c3 \ + prod `_` (app [global (indt «eq»), c0, c1, c1]) c4 \ c0) c3 \ + field [coercion off, canonical ff] x + (let `w` (global (indt «nat»)) + (app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]) c4 \ + prod `x` c0 c5 \ + app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \ + end-record)) +raw: +parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.88»)) c0 \ + parameter B explicit c0 c1 \ + record foo (sort (typ «elpi.tests.test_arg_HOAS.88»)) Build_foo + (field [coercion off, canonical tt] a + (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \ + field [coercion reversible, canonical tt] z + (prod `a` c0 c3 \ + prod `_` (app [global (indt «eq»), c0, c1, c1]) c4 \ c0) c3 \ + field [coercion off, canonical ff] x + (let `w` (global (indt «nat»)) + (app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]) c4 \ + prod `x` c0 c5 \ + app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \ + end-record) +Debug: +---->>---- exit: +coq.say raw: + (parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.88»)) c0 \ + parameter B explicit c0 c1 \ + record foo (sort (typ «elpi.tests.test_arg_HOAS.88»)) Build_foo + (field [coercion off, canonical tt] a + (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \ + field [coercion reversible, canonical tt] z + (prod `a` c0 c3 \ + prod `_` (app [global (indt «eq»), c0, c1, c1]) c4 \ c0) c3 \ + field [coercion off, canonical ff] x + (let `w` (global (indt «nat»)) + (app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]) c4 \ + prod `x` c0 c5 \ + app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \ + end-record)) +Debug: +----<<---- enter: +std.assert-ok! + (coq.typecheck-indt-decl + (parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.88»)) c0 \ + parameter B explicit c0 c1 \ + record foo (sort (typ «elpi.tests.test_arg_HOAS.88»)) Build_foo + (field [coercion off, canonical tt] a + (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \ + field [coercion reversible, canonical tt] z + (prod `a` c0 c3 \ + prod `_` (app [global (indt «eq»), c0, c1, c1]) c4 \ c0) c3 \ + field [coercion off, canonical ff] x + (let `w` (global (indt «nat»)) + (app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]) c4 \ + prod `x` c0 c5 \ + app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \ + end-record))) Illtyped inductive declaration +Debug: +---->>---- exit: +std.assert-ok! + (coq.typecheck-indt-decl + (parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.88»)) c0 \ + parameter B explicit c0 c1 \ + record foo (sort (typ «elpi.tests.test_arg_HOAS.88»)) Build_foo + (field [coercion off, canonical tt] a + (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \ + field [coercion reversible, canonical tt] z + (prod `a` c0 c3 \ + prod `_` (app [global (indt «eq»), c0, c1, c1]) c4 \ c0) c3 \ + field [coercion off, canonical ff] x + (let `w` (global (indt «nat»)) + (app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]) c4 \ + prod `x` c0 c5 \ + app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \ + end-record))) Illtyped inductive declaration +Debug: +----<<---- enter: +coq.say typed: + (parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.88»)) c0 \ + parameter B explicit c0 c1 \ + record foo (sort (typ «elpi.tests.test_arg_HOAS.88»)) Build_foo + (field [coercion off, canonical tt] a + (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \ + field [coercion reversible, canonical tt] z + (prod `a` c0 c3 \ + prod `_` (app [global (indt «eq»), c0, c1, c1]) c4 \ c0) c3 \ + field [coercion off, canonical ff] x + (let `w` (global (indt «nat»)) + (app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]) c4 \ + prod `x` c0 c5 \ + app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \ + end-record)) +typed: +parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.88»)) c0 \ + parameter B explicit c0 c1 \ + record foo (sort (typ «elpi.tests.test_arg_HOAS.88»)) Build_foo + (field [coercion off, canonical tt] a + (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \ + field [coercion reversible, canonical tt] z + (prod `a` c0 c3 \ + prod `_` (app [global (indt «eq»), c0, c1, c1]) c4 \ c0) c3 \ + field [coercion off, canonical ff] x + (let `w` (global (indt «nat»)) + (app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]) c4 \ + prod `x` c0 c5 \ + app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \ + end-record) +Debug: +---->>---- exit: +coq.say typed: + (parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.88»)) c0 \ + parameter B explicit c0 c1 \ + record foo (sort (typ «elpi.tests.test_arg_HOAS.88»)) Build_foo + (field [coercion off, canonical tt] a + (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \ + field [coercion reversible, canonical tt] z + (prod `a` c0 c3 \ + prod `_` (app [global (indt «eq»), c0, c1, c1]) c4 \ c0) c3 \ + field [coercion off, canonical ff] x + (let `w` (global (indt «nat»)) + (app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]) c4 \ + prod `x` c0 c5 \ + app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \ + end-record)) +Debug: +----<<---- enter: +coq.env.add-indt + (parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.88»)) c0 \ + parameter B explicit c0 c1 \ + record foo (sort (typ «elpi.tests.test_arg_HOAS.88»)) Build_foo + (field [coercion off, canonical tt] a + (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \ + field [coercion reversible, canonical tt] z + (prod `a` c0 c3 \ + prod `_` (app [global (indt «eq»), c0, c1, c1]) c4 \ c0) c3 \ + field [coercion off, canonical ff] x + (let `w` (global (indt «nat»)) + (app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]) c4 \ + prod `x` c0 c5 \ + app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \ + end-record)) X0 +Debug: +---->>---- exit: +coq.env.add-indt + (parameter A explicit (sort (typ «foo.u0»)) c0 \ + parameter B explicit c0 c1 \ + record foo (sort (typ «foo.u0»)) Build_foo + (field [coercion off, canonical tt] a + (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \ + field [coercion reversible, canonical tt] z + (prod `a` c0 c3 \ + prod `_` (app [global (indt «eq»), c0, c1, c1]) c4 \ c0) c3 \ + field [coercion off, canonical ff] x + (let `w` (global (indt «nat»)) + (app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]) c4 \ + prod `x` c0 c5 \ + app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \ + end-record)) «foo» +Query assignments: + I = «foo» +Debug: +----<<---- enter: +coq.say raw: + (parameter A explicit X0 c0 \ + parameter B explicit c0 c1 \ + record foo (sort (typ X1)) Build_foo + (field [coercion off, canonical tt] a + (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \ + field [coercion reversible, canonical tt] z + (prod `_elpi_renamed_a_1` c0 c3 \ + prod `_` (app [global (indt «eq»), X2 c2 c3, c1, c1]) c4 \ c0) + c3 \ + field [coercion off, canonical ff] x + (let `w` (X3 c3) + (app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]) c4 \ + prod `x` (X4 c3 c4) c5 \ + app [global (indt «eq»), X5 c3 c4 c5, app [c2, c5, c5], c5]) + c4 \ end-record)) +raw: +parameter A explicit X0 c0 \ + parameter B explicit c0 c1 \ + record foo (sort (typ X1)) Build_foo + (field [coercion off, canonical tt] a + (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \ + field [coercion reversible, canonical tt] z + (prod `_elpi_renamed_a_1` c0 c3 \ + prod `_` (app [global (indt «eq»), X2 c2 c3, c1, c1]) c4 \ c0) c3 \ + field [coercion off, canonical ff] x + (let `w` (X3 c3) + (app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]) c4 \ + prod `x` (X4 c3 c4) c5 \ + app [global (indt «eq»), X5 c3 c4 c5, app [c2, c5, c5], c5]) c4 \ + end-record) +Debug: +---->>---- exit: +coq.say raw: + (parameter A explicit X0 c0 \ + parameter B explicit c0 c1 \ + record foo (sort (typ X1)) Build_foo + (field [coercion off, canonical tt] a + (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \ + field [coercion reversible, canonical tt] z + (prod `_elpi_renamed_a_1` c0 c3 \ + prod `_` (app [global (indt «eq»), X2 c2 c3, c1, c1]) c4 \ c0) + c3 \ + field [coercion off, canonical ff] x + (let `w` (X3 c3) + (app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]) c4 \ + prod `x` (X4 c3 c4) c5 \ + app [global (indt «eq»), X5 c3 c4 c5, app [c2, c5, c5], c5]) + c4 \ end-record)) +Debug: +----<<---- enter: +std.assert-ok! + (coq.elaborate-indt-decl-skeleton + (parameter A explicit X0 c0 \ + parameter B explicit c0 c1 \ + record foo (sort (typ X1)) Build_foo + (field [coercion off, canonical tt] a + (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \ + field [coercion reversible, canonical tt] z + (prod `_elpi_renamed_a_1` c0 c3 \ + prod `_` (app [global (indt «eq»), X2 c2 c3, c1, c1]) c4 \ c0) + c3 \ + field [coercion off, canonical ff] x + (let `w` (X3 c3) + (app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]) c4 \ + prod `x` (X4 c3 c4) c5 \ + app [global (indt «eq»), X5 c3 c4 c5, app [c2, c5, c5], c5]) + c4 \ end-record)) X6) Illtyped inductive declaration +Debug: +---->>---- exit: +std.assert-ok! + (coq.elaborate-indt-decl-skeleton + (parameter A explicit X0 c0 \ + parameter B explicit c0 c1 \ + record foo (sort (typ «elpi.tests.test_arg_HOAS.95»)) Build_foo + (field [coercion off, canonical tt] a + (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \ + field [coercion reversible, canonical tt] z + (prod `_elpi_renamed_a_1` c0 c3 \ +...TRUNCATED BY DUNE... + app + [global (const «Nat.add»), c2, + app [global (indc «S»), global (indc «O»)]]) + (prod `P` (sort (typ «elpi.tests.test_arg_HOAS.106»)) c0 \ + prod `w` c0 c1 \ prod `n` (global (indt «nat»)) c2 \ X5 c0 c1 c2) X7) + illtyped definition +Debug: +---->>---- exit: +std.assert-ok! + (coq.elaborate-skeleton + (fun `P` (sort (typ «elpi.tests.test_arg_HOAS.109»)) c0 \ + fun `w` c0 c1 \ + fun `n` (global (indt «nat»)) c2 \ + app + [global (const «Nat.add»), c2, + app [global (indc «S»), global (indc «O»)]]) + (prod `P` (sort (typ «elpi.tests.test_arg_HOAS.106»)) c0 \ + prod `w` c0 c1 \ + prod `n` (global (indt «nat»)) c2 \ global (indt «nat»)) + (fun `P` (sort (typ «elpi.tests.test_arg_HOAS.110»)) c0 \ + fun `w` c0 c1 \ + fun `n` (global (indt «nat»)) c2 \ + app + [global (const «Nat.add»), c2, + app [global (indc «S»), global (indc «O»)]])) + illtyped definition +Debug: +----<<---- enter: +coq.env.add-const x1 + (fun `P` (sort (typ «elpi.tests.test_arg_HOAS.110»)) c0 \ + fun `w` c0 c1 \ + fun `n` (global (indt «nat»)) c2 \ + app + [global (const «Nat.add»), c2, + app [global (indc «S»), global (indc «O»)]]) + (prod `P` (sort (typ «elpi.tests.test_arg_HOAS.106»)) c0 \ + prod `w` c0 c1 \ + prod `n` (global (indt «nat»)) c2 \ global (indt «nat»)) X8 X9 +Debug: +---->>---- exit: +coq.env.add-const x1 + (fun `P` (sort (typ «x1.u1»)) c0 \ + fun `w` c0 c1 \ + fun `n` (global (indt «nat»)) c2 \ + app + [global (const «Nat.add»), c2, + app [global (indc «S»), global (indc «O»)]]) + (prod `P` (sort (typ «x1.u0»)) c0 \ + prod `w` c0 c1 \ + prod `n` (global (indt «nat»)) c2 \ global (indt «nat»)) X8 «x1» +x1 : forall P : Type, P -> nat -> nat + : forall P : Type, P -> nat -> nat +eq_refl : x1 = (fun (P : Type) (_ : P) (n : nat) => n + 1) + : x1 = (fun (P : Type) (_ : P) (n : nat) => n + 1) +Debug: +----<<---- enter: +coq.arity->term + (parameter n explicit (global (indt «nat»)) c0 \ + arity (sort (typ «elpi.tests.test_arg_HOAS.113»))) X0 +Debug: +---->>---- exit: +coq.arity->term + (parameter n explicit (global (indt «nat»)) c0 \ + arity (sort (typ «elpi.tests.test_arg_HOAS.113»))) + (prod `n` (global (indt «nat»)) c0 \ + sort (typ «elpi.tests.test_arg_HOAS.113»)) +Debug: +----<<---- enter: +std.assert-ok! + (coq.typecheck-ty + (prod `n` (global (indt «nat»)) c0 \ + sort (typ «elpi.tests.test_arg_HOAS.113»)) X1) illtyped axiom +Debug: +---->>---- exit: +std.assert-ok! + (coq.typecheck-ty + (prod `n` (global (indt «nat»)) c0 \ + sort (typ «elpi.tests.test_arg_HOAS.113»)) + (typ «elpi.tests.test_arg_HOAS.114»)) illtyped axiom +Debug: +----<<---- enter: +coq.env.add-axiom y + (prod `n` (global (indt «nat»)) c0 \ + sort (typ «elpi.tests.test_arg_HOAS.113»)) X2 +Debug: +---->>---- exit: +coq.env.add-axiom y + (prod `n` (global (indt «nat»)) c0 \ sort (typ «y.u0»)) «y» +y : nat -> Type + : nat -> Type +Debug: +----<<---- enter: +coq.arity->term + (parameter n explicit (global (indt «nat»)) c0 \ + arity (global (indt «nat»))) X0 +Debug: +---->>---- exit: +coq.arity->term + (parameter n explicit (global (indt «nat»)) c0 \ + arity (global (indt «nat»))) + (prod `n` (global (indt «nat»)) c0 \ global (indt «nat»)) +Debug: +----<<---- enter: +std.assert-ok! + (coq.typecheck + (fun `n` (global (indt «nat»)) c0 \ app [global (indc «S»), c0]) + (prod `n` (global (indt «nat»)) c0 \ global (indt «nat»))) + illtyped definition +Debug: +---->>---- exit: +std.assert-ok! + (coq.typecheck + (fun `n` (global (indt «nat»)) c0 \ app [global (indc «S»), c0]) + (prod `n` (global (indt «nat»)) c0 \ global (indt «nat»))) + illtyped definition +Debug: +----<<---- enter: +coq.env.add-const x + (fun `n` (global (indt «nat»)) c0 \ app [global (indc «S»), c0]) + (prod `n` (global (indt «nat»)) c0 \ global (indt «nat»)) X1 X2 +Debug: +---->>---- exit: +coq.env.add-const x + (fun `n` (global (indt «nat»)) c0 \ app [global (indc «S»), c0]) + (prod `n` (global (indt «nat»)) c0 \ global (indt «nat»)) X1 «x» +parameter A1 maximal (sort (typ «foo1.u0»)) c0 \ + parameter A2 explicit c0 c1 \ + inductive foo1 tt + (parameter B1 explicit (sort (typ «foo1.u1»)) c2 \ + parameter B2 explicit (sort (typ «foo1.u2»)) c3 \ + arity (prod `_` (global (indt «nat»)) c4 \ sort (typ «foo1.u3»))) + c2 \ + [constructor a_k1 + (parameter B1 explicit (sort (typ «foo1.u1»)) c3 \ + parameter B2 explicit (sort (typ «foo1.u2»)) c4 \ + arity + (prod `x` (global (indt «nat»)) c5 \ + prod `_` + (app + [c2, app [global (indt «prod»), c3, c3], c4, + app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]]) c6 \ + app [c2, c3, c4, c5])), + constructor a_k2 + (parameter B1 explicit (sort (typ «foo1.u1»)) c3 \ + parameter B2 explicit (sort (typ «foo1.u2»)) c4 \ + arity + (prod `_` c0 c5 \ + app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))] +Query assignments: + D = parameter A1 maximal (sort (typ «foo1.u0»)) c0 \ + parameter A2 explicit c0 c1 \ + inductive foo1 tt + (parameter B1 explicit (sort (typ «foo1.u1»)) c2 \ + parameter B2 explicit (sort (typ «foo1.u2»)) c3 \ + arity (prod `_` (global (indt «nat»)) c4 \ sort (typ «foo1.u3»))) + c2 \ + [constructor a_k1 + (parameter B1 explicit (sort (typ «foo1.u1»)) c3 \ + parameter B2 explicit (sort (typ «foo1.u2»)) c4 \ + arity + (prod `x` (global (indt «nat»)) c5 \ + prod `_` + (app + [c2, app [global (indt «prod»), c3, c3], c4, + app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]]) c6 \ + app [c2, c3, c4, c5])), + constructor a_k2 + (parameter B1 explicit (sort (typ «foo1.u1»)) c3 \ + parameter B2 explicit (sort (typ «foo1.u2»)) c4 \ + arity + (prod `_` c0 c5 \ + app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))] + I = «inductive_nup.foo1» +foo1 ?A2 ?B1 ?B2 ?n : Type + : Type +where +?A1 : [ |- Type] +?A2 : [ |- ?A1] +?B1 : [ |- Type] +?B2 : [ |- Type] +?n : [ |- nat] +a_k1 ?A2 ?B1 ?B2 3 ?f : foo1 ?A2 ?B1 ?B2 3 + : foo1 ?A2 ?B1 ?B2 3 +where +?A1 : [ |- Type] +?A2 : [ |- ?A1] +?B1 : [ |- Type] +?B2 : [ |- Type] +?f : [ |- foo1 ?A2 (?B1 * ?B1) ?B2 3] +Query assignments: + I = «inductive_nup.r» + R = parameter A explicit (sort (typ «r.u0»)) c0 \ + parameter a explicit c0 c1 \ + record r (sort (typ «r.u0»)) R + (field [coercion reversible, canonical tt] f (prod `_` c0 c2 \ c0) c2 \ + field [coercion off, canonical tt] g c0 c3 \ + field [coercion off, canonical tt] p + (app [global (indt «eq»), c0, c1, c3]) c4 \ end-record) +Record r (A : Type) (a : A) : Type := R { f : A -> A; g : A; p : a = g }. + +Arguments r A%type_scope a +Arguments R A%type_scope a f%function_scope g p +Arguments f A%type_scope a record _ +Arguments g A%type_scope a record +Arguments p A%type_scope a record +Debug: +----<<---- enter: coq.say raw: (inductive X1 tt (arity (sort prop)) c0 \ []) +raw: inductive X1 tt (arity (sort prop)) c0 \ [] +Debug: +---->>---- exit: coq.say raw: (inductive X1 tt (arity (sort prop)) c0 \ []) +Debug: +----<<---- enter: +std.assert-ok! + (coq.typecheck-indt-decl (inductive X1 tt (arity (sort prop)) c0 \ [])) + Illtyped inductive declaration +Debug: +---->>---- exit: +std.assert-ok! + (coq.typecheck-indt-decl (inductive X1 tt (arity (sort prop)) c0 \ [])) + Illtyped inductive declaration +Debug: +----<<---- enter: +coq.say typed: (inductive X1 tt (arity (sort prop)) c0 \ []) +typed: inductive X1 tt (arity (sort prop)) c0 \ [] +Debug: +---->>---- exit: +coq.say typed: (inductive X1 tt (arity (sort prop)) c0 \ []) +Debug: +----<<---- enter: +coq.env.add-indt (inductive X1 tt (arity (sort prop)) c0 \ []) X0 +Debug: +---->>---- exit: +coq.env.add-indt (inductive X1 tt (arity (sort prop)) c0 \ []) «X1» +X1 : Prop + +X1 is not universe polymorphic +Expands to: Inductive elpi.tests.test_arg_HOAS.X1 +Debug: +----<<---- enter: +coq.say raw: + (inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.129»))) c0 \ + []) (upoly-decl [«elpi.tests.test_arg_HOAS.129»] tt [] tt) +raw: +inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.129»))) c0 \ [] +upoly-decl [«elpi.tests.test_arg_HOAS.129»] tt [] tt +Debug: +---->>---- exit: +coq.say raw: + (inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.129»))) c0 \ + []) (upoly-decl [«elpi.tests.test_arg_HOAS.129»] tt [] tt) +Debug: ----<<---- enter: coq.univ.print +Universe constraints: UNIVERSES: + {eu1} |= + ALGEBRAIC UNIVERSES: + {} + FLEXIBLE UNIVERSES: + eu1 + SORTS: + + WEAK CONSTRAINTS: + + +Debug: ---->>---- exit: coq.univ.print +Debug: +----<<---- enter: +std.assert-ok! + (coq.typecheck-indt-decl + (inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.129»))) + c0 \ [])) Illtyped inductive declaration +Debug: +---->>---- exit: +std.assert-ok! + (coq.typecheck-indt-decl + (inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.129»))) + c0 \ [])) Illtyped inductive declaration +Debug: +----<<---- enter: +coq.say typed: + (inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.129»))) c0 \ + []) +typed: +inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.129»))) c0 \ [] +Debug: +---->>---- exit: +coq.say typed: + (inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.129»))) c0 \ + []) +Debug: +----<<---- enter: +coq.upoly-decl->attribute + (upoly-decl [«elpi.tests.test_arg_HOAS.129»] tt [] tt) X0 +Debug: +---->>---- exit: +coq.upoly-decl->attribute + (upoly-decl [«elpi.tests.test_arg_HOAS.129»] tt [] tt) + (get-option coq:udecl + (upoly-decl [«elpi.tests.test_arg_HOAS.129»] tt [] tt)) +Debug: +----<<---- enter: +get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.129»] tt [] tt) + => + coq.env.add-indt + (inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.129»))) c0 \ + []) X1 +Debug: +---->>---- exit: +get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.129»] tt [] tt) + => + coq.env.add-indt + (inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.129»))) c0 \ + []) «X3» +Debug: +----<<---- enter: +coq.say raw: + (inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.137»))) c0 \ + []) (upoly-decl-cumul [auto «elpi.tests.test_arg_HOAS.137»] tt [] tt) +raw: +inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.137»))) c0 \ [] +upoly-decl-cumul [auto «elpi.tests.test_arg_HOAS.137»] tt [] tt +Debug: +---->>---- exit: +coq.say raw: + (inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.137»))) c0 \ + []) (upoly-decl-cumul [auto «elpi.tests.test_arg_HOAS.137»] tt [] tt) +Debug: ----<<---- enter: coq.univ.print +Universe constraints: UNIVERSES: + {eu2} |= + ALGEBRAIC UNIVERSES: + {} + FLEXIBLE UNIVERSES: + eu2 + SORTS: + + WEAK CONSTRAINTS: + + +Debug: ---->>---- exit: coq.univ.print +Debug: +----<<---- enter: +std.assert-ok! + (coq.typecheck-indt-decl + (inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.137»))) + c0 \ [])) Illtyped inductive declaration +Debug: +---->>---- exit: +std.assert-ok! + (coq.typecheck-indt-decl + (inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.137»))) + c0 \ [])) Illtyped inductive declaration +Debug: +----<<---- enter: +coq.say typed: + (inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.137»))) c0 \ + []) +typed: +inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.137»))) c0 \ [] +Debug: +---->>---- exit: +coq.say typed: + (inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.137»))) c0 \ + []) +Debug: +----<<---- enter: +coq.upoly-decl->attribute + (upoly-decl-cumul [auto «elpi.tests.test_arg_HOAS.137»] tt [] tt) X0 +Debug: +---->>---- exit: +coq.upoly-decl->attribute + (upoly-decl-cumul [auto «elpi.tests.test_arg_HOAS.137»] tt [] tt) + (get-option coq:udecl-cumul + (upoly-decl-cumul [auto «elpi.tests.test_arg_HOAS.137»] tt [] tt)) +Debug: +----<<---- enter: +get-option coq:udecl-cumul + (upoly-decl-cumul [auto «elpi.tests.test_arg_HOAS.137»] tt [] tt) => + coq.env.add-indt + (inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.137»))) c0 \ + []) X1 +Debug: +---->>---- exit: +get-option coq:udecl-cumul + (upoly-decl-cumul [auto «elpi.tests.test_arg_HOAS.137»] tt [] tt) => + coq.env.add-indt + (inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.137»))) c0 \ + []) «X4» +X3@{eu1} : Type@{eu1} +(* eu1 |= *) + +X3 is universe polymorphic +Expands to: Inductive elpi.tests.test_arg_HOAS.X3 +X4@{eu2} : Type@{eu2} +(* *eu2 |= *) + +X4 is universe polymorphic +Expands to: Inductive elpi.tests.test_arg_HOAS.X4 +Query assignments: + GR = indt «X3» +Universe constraints: +UNIVERSES: + {elpi.tests.test_arg_HOAS.145} |= +ALGEBRAIC UNIVERSES: + {} +FLEXIBLE UNIVERSES: + elpi.tests.test_arg_HOAS.145 +SORTS: + +WEAK CONSTRAINTS: + + +Query assignments: + GR = indt «X4» +Universe constraints: +UNIVERSES: + {elpi.tests.test_arg_HOAS.146} |= +ALGEBRAIC UNIVERSES: + {} +FLEXIBLE UNIVERSES: + elpi.tests.test_arg_HOAS.146 +SORTS: + +WEAK CONSTRAINTS: + + +Debug: +----<<---- enter: +coq.say raw: + (inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.147»))) c0 \ + []) (upoly-decl [«elpi.tests.test_arg_HOAS.147»] ff [] ff) +raw: +inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.147»))) c0 \ [] +upoly-decl [«elpi.tests.test_arg_HOAS.147»] ff [] ff +Debug: +---->>---- exit: +coq.say raw: + (inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.147»))) c0 \ + []) (upoly-decl [«elpi.tests.test_arg_HOAS.147»] ff [] ff) +Debug: ----<<---- enter: coq.univ.print +Universe constraints: UNIVERSES: + {eu3} |= + ALGEBRAIC UNIVERSES: + {} + FLEXIBLE UNIVERSES: + eu3 + SORTS: + + WEAK CONSTRAINTS: + + +Debug: ---->>---- exit: coq.univ.print +Debug: +----<<---- enter: +std.assert-ok! + (coq.typecheck-indt-decl + (inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.147»))) + c0 \ [])) Illtyped inductive declaration +Debug: +---->>---- exit: +std.assert-ok! + (coq.typecheck-indt-decl + (inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.147»))) + c0 \ [])) Illtyped inductive declaration +Debug: +----<<---- enter: +coq.say typed: + (inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.147»))) c0 \ + []) +typed: +inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.147»))) c0 \ [] +Debug: +---->>---- exit: +coq.say typed: + (inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.147»))) c0 \ + []) +Debug: +----<<---- enter: +coq.upoly-decl->attribute + (upoly-decl [«elpi.tests.test_arg_HOAS.147»] ff [] ff) X0 +Debug: +---->>---- exit: +coq.upoly-decl->attribute + (upoly-decl [«elpi.tests.test_arg_HOAS.147»] ff [] ff) + (get-option coq:udecl + (upoly-decl [«elpi.tests.test_arg_HOAS.147»] ff [] ff)) +Debug: +----<<---- enter: +get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.147»] ff [] ff) + => + coq.env.add-indt + (inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.147»))) c0 \ + []) X1 +Debug: +---->>---- exit: +get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.147»] ff [] ff) + => + coq.env.add-indt + (inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.147»))) c0 \ + []) «X5» +X5@{eu3} : Type@{eu3} +(* eu3 |= *) + +X5 is universe polymorphic +Expands to: Inductive elpi.tests.test_arg_HOAS.X5 +Debug: +----<<---- enter: +coq.say raw: + (inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.156»))) c0 \ + [constructor K + (arity (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.155»)) c1 \ c0))]) + (upoly-decl + [«elpi.tests.test_arg_HOAS.155», «elpi.tests.test_arg_HOAS.156»] ff + [lt «elpi.tests.test_arg_HOAS.155» «elpi.tests.test_arg_HOAS.156»] ff) +raw: +inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.156»))) c0 \ + [constructor K + (arity (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.155»)) c1 \ c0))] +upoly-decl + [«elpi.tests.test_arg_HOAS.155», «elpi.tests.test_arg_HOAS.156»] ff + [lt «elpi.tests.test_arg_HOAS.155» «elpi.tests.test_arg_HOAS.156»] ff +Debug: +---->>---- exit: +coq.say raw: + (inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.156»))) c0 \ + [constructor K + (arity (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.155»)) c1 \ c0))]) + (upoly-decl + [«elpi.tests.test_arg_HOAS.155», «elpi.tests.test_arg_HOAS.156»] ff + [lt «elpi.tests.test_arg_HOAS.155» «elpi.tests.test_arg_HOAS.156»] ff) +Debug: ----<<---- enter: coq.univ.print +Universe constraints: UNIVERSES: + {eu5 eu4} |= eu4 < eu5 + ALGEBRAIC UNIVERSES: + {} + FLEXIBLE UNIVERSES: + eu5 + eu4 + SORTS: + + WEAK CONSTRAINTS: + + +Debug: ---->>---- exit: coq.univ.print +Debug: +----<<---- enter: +std.assert-ok! + (coq.typecheck-indt-decl + (inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.156»))) + c0 \ + [constructor K + (arity + (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.155»)) c1 \ c0))])) + Illtyped inductive declaration +Debug: +---->>---- exit: +std.assert-ok! + (coq.typecheck-indt-decl + (inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.156»))) + c0 \ + [constructor K + (arity + (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.155»)) c1 \ c0))])) + Illtyped inductive declaration +Debug: +----<<---- enter: +coq.say typed: + (inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.156»))) c0 \ + [constructor K + (arity (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.155»)) c1 \ c0))]) +typed: +inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.156»))) c0 \ + [constructor K + (arity (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.155»)) c1 \ c0))] +Debug: +---->>---- exit: +coq.say typed: + (inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.156»))) c0 \ + [constructor K + (arity (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.155»)) c1 \ c0))]) +Debug: +----<<---- enter: +coq.upoly-decl->attribute + (upoly-decl + [«elpi.tests.test_arg_HOAS.155», «elpi.tests.test_arg_HOAS.156»] ff + [lt «elpi.tests.test_arg_HOAS.155» «elpi.tests.test_arg_HOAS.156»] ff) + X0 +Debug: +---->>---- exit: +coq.upoly-decl->attribute + (upoly-decl + [«elpi.tests.test_arg_HOAS.155», «elpi.tests.test_arg_HOAS.156»] ff + [lt «elpi.tests.test_arg_HOAS.155» «elpi.tests.test_arg_HOAS.156»] ff) + (get-option coq:udecl + (upoly-decl + [«elpi.tests.test_arg_HOAS.155», «elpi.tests.test_arg_HOAS.156»] ff + [lt «elpi.tests.test_arg_HOAS.155» «elpi.tests.test_arg_HOAS.156»] + ff)) +Debug: +----<<---- enter: +get-option coq:udecl + (upoly-decl + [«elpi.tests.test_arg_HOAS.155», «elpi.tests.test_arg_HOAS.156»] ff + [lt «elpi.tests.test_arg_HOAS.155» «elpi.tests.test_arg_HOAS.156»] ff) + => + coq.env.add-indt + (inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.156»))) c0 \ + [constructor K + (arity (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.155»)) c1 \ c0))]) + X1 +Debug: +---->>---- exit: +get-option coq:udecl + (upoly-decl + [«elpi.tests.test_arg_HOAS.155», «elpi.tests.test_arg_HOAS.156»] ff + [lt «elpi.tests.test_arg_HOAS.155» «elpi.tests.test_arg_HOAS.156»] ff) + => + coq.env.add-indt + (inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.156»))) c0 \ + [constructor K + (arity (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.155»)) c1 \ c0))]) + «X6» +X6@{eu4 eu5} : Type@{eu5} +(* eu4 eu5 |= eu4 < eu5 *) + +X6 is universe polymorphic +Expands to: Inductive elpi.tests.test_arg_HOAS.X6 +Debug: +----<<---- enter: +coq.say raw: (inductive X8 tt (arity (sort (typ X0))) c0 \ []) + (upoly-decl [] tt [] tt) +raw: inductive X8 tt (arity (sort (typ X0))) c0 \ [] upoly-decl [] tt [] tt +Debug: +---->>---- exit: +coq.say raw: (inductive X8 tt (arity (sort (typ X0))) c0 \ []) + (upoly-decl [] tt [] tt) +Debug: ----<<---- enter: coq.univ.print +Universe constraints: +Debug: ---->>---- exit: coq.univ.print +Debug: +----<<---- enter: +get-option coq:keepunivs tt => + std.assert-ok! + (coq.elaborate-indt-decl-skeleton + (inductive X8 tt (arity (sort (typ X0))) c0 \ []) X1) + Illtyped inductive declaration +Debug: +---->>---- exit: +get-option coq:keepunivs tt => + std.assert-ok! + (coq.elaborate-indt-decl-skeleton + (inductive X8 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.171»))) + c0 \ []) + (inductive X8 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.171»))) + c0 \ [])) Illtyped inductive declaration +Debug: +----<<---- enter: +coq.say typed: + (inductive X8 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.171»))) c0 \ + []) +typed: +inductive X8 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.171»))) c0 \ [] +Debug: +---->>---- exit: +coq.say typed: + (inductive X8 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.171»))) c0 \ + []) +Debug: +----<<---- enter: coq.upoly-decl->attribute (upoly-decl [] tt [] tt) X2 +Debug: +---->>---- exit: +coq.upoly-decl->attribute (upoly-decl [] tt [] tt) + (get-option coq:udecl (upoly-decl [] tt [] tt)) +Debug: +----<<---- enter: +get-option coq:udecl (upoly-decl [] tt [] tt) => + coq.env.add-indt + (inductive X8 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.171»))) c0 \ + []) X3 +Debug: +---->>---- exit: +get-option coq:udecl (upoly-decl [] tt [] tt) => + coq.env.add-indt + (inductive X8 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.171»))) c0 \ + []) «X8» +X8@{u} : Type@{u} +(* u |= *) + +X8 is universe polymorphic +Expands to: Inductive elpi.tests.test_arg_HOAS.X8 +Debug: +----<<---- enter: +coq.arity->term + (parameter T explicit (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \ + parameter x explicit c0 c1 \ arity c0) X0 +Debug: +---->>---- exit: +coq.arity->term + (parameter T explicit (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \ + parameter x explicit c0 c1 \ arity c0) + (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \ + prod `x` c0 c1 \ c0) +Debug: +----<<---- enter: +std.assert-ok! + (coq.typecheck + (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \ + fun `x` c0 c1 \ c1) + (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \ + prod `x` c0 c1 \ c0)) illtyped definition +Debug: +---->>---- exit: +std.assert-ok! + (coq.typecheck + (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \ + fun `x` c0 c1 \ c1) + (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \ + prod `x` c0 c1 \ c0)) illtyped definition +Debug: +----<<---- enter: coq.upoly-decl->attribute (upoly-decl [] tt [] tt) X1 +Debug: +---->>---- exit: +coq.upoly-decl->attribute (upoly-decl [] tt [] tt) + (get-option coq:udecl (upoly-decl [] tt [] tt)) +Debug: +----<<---- enter: +get-option coq:udecl (upoly-decl [] tt [] tt) => + coq.env.add-const f1 + (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \ + fun `x` c0 c1 \ c1) + (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \ + prod `x` c0 c1 \ c0) X2 X3 +Debug: +---->>---- exit: +get-option coq:udecl (upoly-decl [] tt [] tt) => + coq.env.add-const f1 + (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \ + fun `x` c0 c1 \ c1) + (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \ + prod `x` c0 c1 \ c0) X2 «f1» +f1@{u} : forall T : Type@{u}, T -> T +(* u |= *) + +f1 is universe polymorphic +Arguments f1 T%type_scope x +f1 is transparent +Expands to: Constant elpi.tests.test_arg_HOAS.f1 +Debug: +----<<---- enter: +coq.arity->term + (parameter T explicit (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \ + parameter T1 explicit (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \ + parameter x explicit c0 c2 \ arity c0) X0 +Debug: +---->>---- exit: +coq.arity->term + (parameter T explicit (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \ + parameter T1 explicit (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \ + parameter x explicit c0 c2 \ arity c0) + (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \ + prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \ + prod `x` c0 c2 \ c0) +Debug: +----<<---- enter: +std.assert-ok! + (coq.typecheck + (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \ + fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \ + fun `x` c0 c2 \ c2) + (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \ + prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \ + prod `x` c0 c2 \ c0)) illtyped definition +Debug: +---->>---- exit: +std.assert-ok! + (coq.typecheck + (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \ + fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \ + fun `x` c0 c2 \ c2) + (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \ + prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \ + prod `x` c0 c2 \ c0)) illtyped definition +Debug: +----<<---- enter: +coq.upoly-decl->attribute + (upoly-decl [«elpi.tests.test_arg_HOAS.180»] ff [] tt) X1 +Debug: +---->>---- exit: +coq.upoly-decl->attribute + (upoly-decl [«elpi.tests.test_arg_HOAS.180»] ff [] tt) + (get-option coq:udecl + (upoly-decl [«elpi.tests.test_arg_HOAS.180»] ff [] tt)) +Debug: +----<<---- enter: +get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.180»] ff [] tt) + => + coq.env.add-const f2 + (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \ + fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \ + fun `x` c0 c2 \ c2) + (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \ + prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \ + prod `x` c0 c2 \ c0) X2 X3 +Debug: +---->>---- exit: +get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.180»] ff [] tt) + => + coq.env.add-const f2 + (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \ + fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \ + fun `x` c0 c2 \ c2) + (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \ + prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \ + prod `x` c0 c2 \ c0) X2 «f2» +f2@{u} : forall T : Type@{u}, Type@{u} -> T -> T +(* u |= *) + +f2 is universe polymorphic +Arguments f2 (T T1)%type_scope x +f2 is transparent +Expands to: Constant elpi.tests.test_arg_HOAS.f2 +Debug: +----<<---- enter: +coq.arity->term + (parameter T explicit (sort (typ X0)) c0 \ + parameter x explicit c0 c1 \ arity (X1 c1)) X2 +Debug: +---->>---- exit: +coq.arity->term + (parameter T explicit (sort (typ X0)) c0 \ + parameter x explicit c0 c1 \ arity (X1 c1)) + (prod `T` (sort (typ X0)) c0 \ prod `x` c0 c1 \ X1 c1) +Debug: +----<<---- enter: +get-option coq:keepunivs tt => + std.assert-ok! + (coq.elaborate-ty-skeleton + (prod `T` (sort (typ X0)) c0 \ prod `x` c0 c1 \ X1 c1) X3 X4) + illtyped arity +Debug: +---->>---- exit: +get-option coq:keepunivs tt => + std.assert-ok! + (coq.elaborate-ty-skeleton + (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.181»)) c0 \ + prod `x` c0 c1 \ X1 c1) (typ «elpi.tests.test_arg_HOAS.183») + (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.181»)) c0 \ + prod `x` c0 c1 \ X5 c0 c1)) illtyped arity +Debug: +----<<---- enter: +get-option coq:keepunivs tt => + std.assert-ok! + (coq.elaborate-skeleton (fun `T` (sort (typ X6)) c0 \ fun `x` c0 c1 \ c1) + (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.181»)) c0 \ + prod `x` c0 c1 \ X5 c0 c1) X7) illtyped definition +Debug: +---->>---- exit: +get-option coq:keepunivs tt => + std.assert-ok! + (coq.elaborate-skeleton + (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.184»)) c0 \ + fun `x` c0 c1 \ c1) + (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.181»)) c0 \ + prod `x` c0 c1 \ c0) + (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.181»)) c0 \ + fun `x` c0 c1 \ c1)) illtyped definition +Debug: +----<<---- enter: coq.upoly-decl->attribute (upoly-decl [] tt [] tt) X8 +Debug: +---->>---- exit: +coq.upoly-decl->attribute (upoly-decl [] tt [] tt) + (get-option coq:udecl (upoly-decl [] tt [] tt)) +Debug: +----<<---- enter: +get-option coq:udecl (upoly-decl [] tt [] tt) => + coq.env.add-const f3 + (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.181»)) c0 \ + fun `x` c0 c1 \ c1) + (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.181»)) c0 \ + prod `x` c0 c1 \ c0) X9 X10 +Debug: +---->>---- exit: +get-option coq:udecl (upoly-decl [] tt [] tt) => + coq.env.add-const f3 + (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.181»)) c0 \ + fun `x` c0 c1 \ c1) + (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.181»)) c0 \ + prod `x` c0 c1 \ c0) X9 «f3» +f3@{u} : forall T : Type@{u}, T -> T +(* u |= *) + +f3 is universe polymorphic +Arguments f3 T%type_scope x +f3 is transparent +Expands to: Constant elpi.tests.test_arg_HOAS.f3 +Debug: +----<<---- enter: +coq.arity->term + (parameter T explicit (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \ + parameter T1 explicit (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \ + parameter x explicit c0 c2 \ arity (X0 c2)) X1 +Debug: +---->>---- exit: +coq.arity->term + (parameter T explicit (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \ + parameter T1 explicit (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \ + parameter x explicit c0 c2 \ arity (X0 c2)) + (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \ + prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \ + prod `x` c0 c2 \ X0 c2) +Debug: +----<<---- enter: +get-option coq:keepunivs tt => + std.assert-ok! + (coq.elaborate-ty-skeleton + (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \ + prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \ + prod `x` c0 c2 \ X0 c2) X2 X3) illtyped arity +Debug: +---->>---- exit: +get-option coq:keepunivs tt => + std.assert-ok! + (coq.elaborate-ty-skeleton + (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \ + prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \ + prod `x` c0 c2 \ X0 c2) (typ «elpi.tests.test_arg_HOAS.187») + (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \ + prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \ + prod `x` c0 c2 \ X4 c0 c1 c2)) illtyped arity +Debug: +----<<---- enter: +get-option coq:keepunivs tt => + std.assert-ok! + (coq.elaborate-skeleton + (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \ + fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \ + fun `x` c0 c2 \ c2) + (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \ + prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \ + prod `x` c0 c2 \ X4 c0 c1 c2) X5) illtyped definition +Debug: +---->>---- exit: +get-option coq:keepunivs tt => + std.assert-ok! + (coq.elaborate-skeleton + (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \ + fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \ + fun `x` c0 c2 \ c2) + (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \ + prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \ + prod `x` c0 c2 \ c0) + (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \ + fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \ + fun `x` c0 c2 \ c2)) illtyped definition +Debug: +----<<---- enter: +coq.upoly-decl->attribute + (upoly-decl [«elpi.tests.test_arg_HOAS.185»] ff [] tt) X6 +Debug: +---->>---- exit: +coq.upoly-decl->attribute + (upoly-decl [«elpi.tests.test_arg_HOAS.185»] ff [] tt) + (get-option coq:udecl + (upoly-decl [«elpi.tests.test_arg_HOAS.185»] ff [] tt)) +Debug: +----<<---- enter: +get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.185»] ff [] tt) + => + coq.env.add-const f4 + (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \ + fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \ + fun `x` c0 c2 \ c2) + (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \ + prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \ + prod `x` c0 c2 \ c0) X7 X8 +Debug: +---->>---- exit: +get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.185»] ff [] tt) + => + coq.env.add-const f4 + (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \ + fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \ + fun `x` c0 c2 \ c2) + (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \ + prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \ + prod `x` c0 c2 \ c0) X7 «f4» +f4@{u} : forall T : Type@{u}, Type@{u} -> T -> T +(* u |= *) + +f4 is universe polymorphic +Arguments f4 (T T1)%type_scope x +f4 is transparent +Expands to: Constant elpi.tests.test_arg_HOAS.f4 +Debug: +----<<---- enter: +coq.arity->term + (parameter T explicit (sort (typ «uuu»)) c0 \ + parameter T1 explicit (sort (typ «uuu»)) c1 \ + parameter x explicit c0 c2 \ arity (X0 c2)) X1 +Debug: +---->>---- exit: +coq.arity->term + (parameter T explicit (sort (typ «uuu»)) c0 \ + parameter T1 explicit (sort (typ «uuu»)) c1 \ + parameter x explicit c0 c2 \ arity (X0 c2)) + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ X0 c2) +Debug: +----<<---- enter: +std.assert-ok! + (coq.elaborate-ty-skeleton + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ X0 c2) X2 X3) + illtyped arity +Debug: +---->>---- exit: +std.assert-ok! + (coq.elaborate-ty-skeleton + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ X0 c2) + (typ «elpi.tests.test_arg_HOAS.192») + (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.189»)) c0 \ + prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.190»)) c1 \ + prod `x` c0 c2 \ X4 c0 c1 c2)) illtyped arity +Debug: +----<<---- enter: +std.assert-ok! + (coq.elaborate-skeleton + (fun `T` (sort (typ «uuu»)) c0 \ + fun `T1` (sort (typ «uuu»)) c1 \ fun `x` c0 c2 \ c2) + (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.189»)) c0 \ + prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.190»)) c1 \ + prod `x` c0 c2 \ X4 c0 c1 c2) X5) illtyped definition +Debug: +---->>---- exit: +std.assert-ok! + (coq.elaborate-skeleton + (fun `T` (sort (typ «uuu»)) c0 \ + fun `T1` (sort (typ «uuu»)) c1 \ fun `x` c0 c2 \ c2) + (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.189»)) c0 \ + prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.190»)) c1 \ + prod `x` c0 c2 \ c0) + (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.193»)) c0 \ + fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.194»)) c1 \ + fun `x` c0 c2 \ c2)) illtyped definition +Debug: +----<<---- enter: +coq.env.add-const f5 + (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.193»)) c0 \ + fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.194»)) c1 \ + fun `x` c0 c2 \ c2) + (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.189»)) c0 \ + prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.190»)) c1 \ + prod `x` c0 c2 \ c0) X6 X7 +Debug: +---->>---- exit: +coq.env.add-const f5 + (fun `T` (sort (typ «f5.u2»)) c0 \ + fun `T1` (sort (typ «f5.u3»)) c1 \ fun `x` c0 c2 \ c2) + (prod `T` (sort (typ «f5.u0»)) c0 \ + prod `T1` (sort (typ «f5.u1»)) c1 \ prod `x` c0 c2 \ c0) X6 «f5» +Debug: +----<<---- enter: +coq.arity->term + (parameter T explicit (sort (typ «uuu»)) c0 \ + parameter T1 explicit (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \ + parameter x explicit c0 c2 \ arity c0) X0 +Debug: +---->>---- exit: +coq.arity->term + (parameter T explicit (sort (typ «uuu»)) c0 \ + parameter T1 explicit (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \ + parameter x explicit c0 c2 \ arity c0) + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \ + prod `x` c0 c2 \ c0) +Debug: +----<<---- enter: +std.assert-ok! + (coq.typecheck + (fun `T` (sort (typ «uuu»)) c0 \ + fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \ + fun `x` c0 c2 \ c2) + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \ + prod `x` c0 c2 \ c0)) illtyped definition +Debug: +---->>---- exit: +std.assert-ok! + (coq.typecheck + (fun `T` (sort (typ «uuu»)) c0 \ + fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \ + fun `x` c0 c2 \ c2) + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \ + prod `x` c0 c2 \ c0)) illtyped definition +Debug: +----<<---- enter: +coq.upoly-decl->attribute + (upoly-decl [«elpi.tests.test_arg_HOAS.195»] ff [] tt) X1 +Debug: +---->>---- exit: +coq.upoly-decl->attribute + (upoly-decl [«elpi.tests.test_arg_HOAS.195»] ff [] tt) + (get-option coq:udecl + (upoly-decl [«elpi.tests.test_arg_HOAS.195»] ff [] tt)) +Debug: +----<<---- enter: +get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.195»] ff [] tt) + => + coq.env.add-const f6 + (fun `T` (sort (typ «uuu»)) c0 \ + fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \ + fun `x` c0 c2 \ c2) + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \ + prod `x` c0 c2 \ c0) X2 X3 +Debug: +---->>---- exit: +get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.195»] ff [] tt) + => + coq.env.add-const f6 + (fun `T` (sort (typ «uuu»)) c0 \ + fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \ + fun `x` c0 c2 \ c2) + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \ + prod `x` c0 c2 \ c0) X2 «f6» +f6@{uuux} : forall T : Type@{uuu}, Type@{uuux} -> T -> T +(* uuux |= *) + +f6 is universe polymorphic +Arguments f6 (T T1)%type_scope x +f6 is transparent +Expands to: Constant elpi.tests.test_arg_HOAS.f6 +Debug: +----<<---- enter: +coq.arity->term + (arity + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «Set»)) c1 \ prod `x` c0 c2 \ c0)) X0 +Debug: +---->>---- exit: +coq.arity->term + (arity + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «Set»)) c1 \ prod `x` c0 c2 \ c0)) + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «Set»)) c1 \ prod `x` c0 c2 \ c0) +Debug: +----<<---- enter: +std.assert-ok! + (coq.typecheck (pglobal (const «f6») «Set») + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «Set»)) c1 \ prod `x` c0 c2 \ c0)) + illtyped definition +Debug: +---->>---- exit: +std.assert-ok! + (coq.typecheck (pglobal (const «f6») «Set») + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «Set»)) c1 \ prod `x` c0 c2 \ c0)) + illtyped definition +Debug: +----<<---- enter: coq.upoly-decl->attribute (upoly-decl [] tt [] tt) X1 +Debug: +---->>---- exit: +coq.upoly-decl->attribute (upoly-decl [] tt [] tt) + (get-option coq:udecl (upoly-decl [] tt [] tt)) +Debug: +----<<---- enter: +get-option coq:udecl (upoly-decl [] tt [] tt) => + coq.env.add-const f7 (pglobal (const «f6») «Set») + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «Set»)) c1 \ prod `x` c0 c2 \ c0) X2 X3 +Debug: +---->>---- exit: +get-option coq:udecl (upoly-decl [] tt [] tt) => + coq.env.add-const f7 (pglobal (const «f6») «Set») + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «Set»)) c1 \ prod `x` c0 c2 \ c0) X2 «f7» +Debug: ----<<---- enter: coq.arity->term (arity X0) X1 +Debug: ---->>---- exit: coq.arity->term (arity X1) X1 +Debug: +----<<---- enter: +get-option coq:keepunivs tt => + std.assert-ok! (coq.elaborate-ty-skeleton X1 X2 X3) illtyped arity +Debug: +---->>---- exit: +get-option coq:keepunivs tt => + std.assert-ok! + (coq.elaborate-ty-skeleton X1 (typ «elpi.tests.test_arg_HOAS.196») (X4)) + illtyped arity +Debug: +----<<---- enter: +get-option coq:keepunivs tt => + std.assert-ok! + (coq.elaborate-skeleton (pglobal (const «f6») «Set») (X4) X5) + illtyped definition +Debug: +---->>---- exit: +get-option coq:keepunivs tt => + std.assert-ok! + (coq.elaborate-skeleton (pglobal (const «f6») «Set») + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «Set»)) c1 \ prod `x` c0 c2 \ c0) + (pglobal (const «f6») «Set»)) illtyped definition +Debug: +----<<---- enter: coq.upoly-decl->attribute (upoly-decl [] tt [] tt) X6 +Debug: +---->>---- exit: +coq.upoly-decl->attribute (upoly-decl [] tt [] tt) + (get-option coq:udecl (upoly-decl [] tt [] tt)) +Debug: +----<<---- enter: +get-option coq:udecl (upoly-decl [] tt [] tt) => + coq.env.add-const f8 (pglobal (const «f6») «Set») + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «Set»)) c1 \ prod `x` c0 c2 \ c0) X7 X8 +Debug: +---->>---- exit: +get-option coq:udecl (upoly-decl [] tt [] tt) => + coq.env.add-const f8 (pglobal (const «f6») «Set») + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «Set»)) c1 \ prod `x` c0 c2 \ c0) X7 «f8» +Debug: +----<<---- enter: +coq.arity->term + (arity + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ c0)) X0 +Debug: +---->>---- exit: +coq.arity->term + (arity + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ c0)) + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ c0) +Debug: +----<<---- enter: +std.assert-ok! + (coq.typecheck (pglobal (const «f6») «uuu») + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ c0)) + illtyped definition +Debug: +---->>---- exit: +std.assert-ok! + (coq.typecheck (pglobal (const «f6») «uuu») + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ c0)) + illtyped definition +Debug: +----<<---- enter: coq.upoly-decl->attribute (upoly-decl [] tt [] tt) X1 +Debug: +---->>---- exit: +coq.upoly-decl->attribute (upoly-decl [] tt [] tt) + (get-option coq:udecl (upoly-decl [] tt [] tt)) +Debug: +----<<---- enter: +get-option coq:udecl (upoly-decl [] tt [] tt) => + coq.env.add-const f7' (pglobal (const «f6») «uuu») + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ c0) X2 X3 +Debug: +---->>---- exit: +get-option coq:udecl (upoly-decl [] tt [] tt) => + coq.env.add-const f7' (pglobal (const «f6») «uuu») + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ c0) X2 «f7'» +Debug: ----<<---- enter: coq.arity->term (arity X0) X1 +Debug: ---->>---- exit: coq.arity->term (arity X1) X1 +Debug: +----<<---- enter: +get-option coq:keepunivs tt => + std.assert-ok! (coq.elaborate-ty-skeleton X1 X2 X3) illtyped arity +Debug: +---->>---- exit: +get-option coq:keepunivs tt => + std.assert-ok! + (coq.elaborate-ty-skeleton X1 (typ «elpi.tests.test_arg_HOAS.197») (X4)) + illtyped arity +Debug: +----<<---- enter: +get-option coq:keepunivs tt => + std.assert-ok! + (coq.elaborate-skeleton (pglobal (const «f6») «uuu») (X4) X5) + illtyped definition +Debug: +---->>---- exit: +get-option coq:keepunivs tt => + std.assert-ok! + (coq.elaborate-skeleton (pglobal (const «f6») «uuu») + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ c0) + (pglobal (const «f6») «uuu»)) illtyped definition +Debug: +----<<---- enter: coq.upoly-decl->attribute (upoly-decl [] tt [] tt) X6 +Debug: +---->>---- exit: +coq.upoly-decl->attribute (upoly-decl [] tt [] tt) + (get-option coq:udecl (upoly-decl [] tt [] tt)) +Debug: +----<<---- enter: +get-option coq:udecl (upoly-decl [] tt [] tt) => + coq.env.add-const f8' (pglobal (const «f6») «uuu») + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ c0) X7 X8 +Debug: +---->>---- exit: +get-option coq:udecl (upoly-decl [] tt [] tt) => + coq.env.add-const f8' (pglobal (const «f6») «uuu») + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ c0) X7 «f8'» +Debug: +----<<---- enter: +coq.arity->term + (arity + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.198»)) c1 \ + prod `x` c0 c2 \ c0)) X0 +Debug: +---->>---- exit: +coq.arity->term + (arity + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.198»)) c1 \ + prod `x` c0 c2 \ c0)) + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.198»)) c1 \ + prod `x` c0 c2 \ c0) +Debug: +----<<---- enter: +std.assert-ok! + (coq.typecheck (pglobal (const «f6») «elpi.tests.test_arg_HOAS.198») + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.198»)) c1 \ + prod `x` c0 c2 \ c0)) illtyped definition +Debug: +---->>---- exit: +std.assert-ok! + (coq.typecheck (pglobal (const «f6») «elpi.tests.test_arg_HOAS.198») + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.198»)) c1 \ + prod `x` c0 c2 \ c0)) illtyped definition +Debug: +----<<---- enter: +coq.upoly-decl->attribute + (upoly-decl [«elpi.tests.test_arg_HOAS.198»] ff [] tt) X1 +Debug: +---->>---- exit: +coq.upoly-decl->attribute + (upoly-decl [«elpi.tests.test_arg_HOAS.198»] ff [] tt) + (get-option coq:udecl + (upoly-decl [«elpi.tests.test_arg_HOAS.198»] ff [] tt)) +Debug: +----<<---- enter: +get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.198»] ff [] tt) + => + coq.env.add-const f7'' + (pglobal (const «f6») «elpi.tests.test_arg_HOAS.198») + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.198»)) c1 \ + prod `x` c0 c2 \ c0) X2 X3 +Debug: +---->>---- exit: +get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.198»] ff [] tt) + => + coq.env.add-const f7'' + (pglobal (const «f6») «elpi.tests.test_arg_HOAS.198») + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.198»)) c1 \ + prod `x` c0 c2 \ c0) X2 «f7''» +Debug: ----<<---- enter: coq.arity->term (arity X0) X1 +Debug: ---->>---- exit: coq.arity->term (arity X1) X1 +Debug: +----<<---- enter: +get-option coq:keepunivs tt => + std.assert-ok! (coq.elaborate-ty-skeleton X1 X2 X3) illtyped arity +Debug: +---->>---- exit: +get-option coq:keepunivs tt => + std.assert-ok! + (coq.elaborate-ty-skeleton X1 (typ «elpi.tests.test_arg_HOAS.200») (X4)) + illtyped arity +Debug: +----<<---- enter: +get-option coq:keepunivs tt => + std.assert-ok! + (coq.elaborate-skeleton + (pglobal (const «f6») «elpi.tests.test_arg_HOAS.199») (X4) X5) + illtyped definition +Debug: +---->>---- exit: +get-option coq:keepunivs tt => + std.assert-ok! + (coq.elaborate-skeleton + (pglobal (const «f6») «elpi.tests.test_arg_HOAS.199») + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.199»)) c1 \ + prod `x` c0 c2 \ c0) + (pglobal (const «f6») «elpi.tests.test_arg_HOAS.199»)) + illtyped definition +Debug: +----<<---- enter: +coq.upoly-decl->attribute + (upoly-decl [«elpi.tests.test_arg_HOAS.199»] ff [] tt) X6 +Debug: +---->>---- exit: +coq.upoly-decl->attribute + (upoly-decl [«elpi.tests.test_arg_HOAS.199»] ff [] tt) + (get-option coq:udecl + (upoly-decl [«elpi.tests.test_arg_HOAS.199»] ff [] tt)) +Debug: +----<<---- enter: +get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.199»] ff [] tt) + => + coq.env.add-const f8'' + (pglobal (const «f6») «elpi.tests.test_arg_HOAS.199») + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.199»)) c1 \ + prod `x` c0 c2 \ c0) X7 X8 +Debug: +---->>---- exit: +get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.199»] ff [] tt) + => + coq.env.add-const f8'' + (pglobal (const «f6») «elpi.tests.test_arg_HOAS.199») + (prod `T` (sort (typ «uuu»)) c0 \ + prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.199»)) c1 \ + prod `x` c0 c2 \ c0) X7 «f8''» +const-decl D + (some + (fun `i` (global (indt «I»)) c0 \ + fun `l` (app [global (indt «L»), c0]) c1 \ global (indt «True»))) + (parameter i maximal (global (indt «I»)) c0 \ + parameter l maximal (app [global (indt «L»), c0]) c1 \ arity (sort prop)) +const-decl D + (some + (fun `i` (global (indt «I»)) c0 \ + fun `H` (app [global (indt «L»), c0]) c1 \ global (indt «True»))) + (parameter i maximal (global (indt «I»)) c0 \ + parameter H maximal (app [global (indt «L»), c0]) c1 \ arity (sort prop)) +const-decl D + (some + (fun `i` (global (indt «I»)) c0 \ + fun `H` (app [global (indt «L»), c0]) c1 \ + fun `n` (global (indt «nat»)) c2 \ global (indt «True»))) + (parameter i maximal (global (indt «I»)) c0 \ + parameter H maximal (app [global (indt «L»), c0]) c1 \ + parameter n explicit (global (indt «nat»)) c2 \ arity (sort prop)) +2 +fun `x` X0 c0 \ fun `y` (X1 c0) c1 \ app [global (const «Nat.add»), c0, c1] +File "./tests/test_arg_HOAS.v", line 283, characters 0-68: +Warning: Automatically putting X1 in Prop even though it was declared with +Type. +Unset Automatic Proposition Inductives to prevent this (it will become the +default in a future version). +If you instead put X1 explicitly in Prop, set Dependent Proposition +Eliminators around the declaration for full backwards compatibility. +[automatic-prop-lowering,deprecated-since-8.20,deprecated,default] +foo = +{f1 : Type & {f2 : f1 -> Type & forall t : f1, f2 t -> bool}} + : Type +mk_foo = +fun (f1 : Type) (f2 : f1 -> Type) (f3 : forall t : f1, f2 t -> bool) => +existT (fun f4 : Type => {f5 : f4 -> Type & forall t : f4, f5 t -> bool}) f1 + (existT (fun f4 : f1 -> Type => forall t : f1, f4 t -> bool) f2 f3) + : forall (f1 : Type) (f2 : f1 -> Type), + (forall t : f1, f2 t -> bool) -> foo + +Arguments mk_foo f1%type_scope (f2 f3)%function_scope +The Db contains [phone_prefix USA 1] +Phone prefix for USA is 1 +The Db contains +[phone_prefix USA 1, phone_prefix France 33, phone_prefix Italy 39] +Phone prefix for France is 33 +sweet! +brr +yummy! +goal X0 c0 c1 c2 c3 is + +[decl c3 `H` (app [global (const «lt»), c0, c1]), + decl c2 `z` (global (indt «nat»)), decl c1 `y` (global (indt «nat»)), + decl c0 `x` (global (indt «nat»))] +------- + +prod `_` (app [global (const «lt»), c1, c2]) c4 \ + app [global (const «lt»), c0, c2] +3 +Notation p2 := (p2 nat 3 x) +example_import_projections.p1 nat 3 x : nat + : nat +p1 : forall (T : Type) (t : T), r T t -> nat + : forall (T : Type) (t : T), r T t -> nat +eq_refl +: +example_import_projections.p1 bool false (Build bool false 3 eq_refl eq_refl) = +3 + : example_import_projections.p1 bool false + (Build bool false 3 eq_refl eq_refl) = 3 +example_import_projections.f1 _ x + : bool +(eq_refl : 2 = (let z := 1 in S z)) +DEBUG: attempt at fuzzing binary op: global (indc «PLUS») +DEBUG: attempt at fuzzing binary op: global (const «Nat.add») +DEBUG: attempt at fuzzing binary op: global (indc «AND») +DEBUG: fuzzed! +DEBUG: attempt at fuzzing binary op: global (const «andb») +DEBUG: attempt at fuzzing binary op: global (indc «OR») +DEBUG: fuzzed! +DEBUG: attempt at fuzzing binary op: global (const «orb») +DEBUG: attempt at fuzzing binary op: global (indc «EQ») +DEBUG: attempt at fuzzing binary op: global (const «Nat.eqb») +Inductive eval1 : forall T : ty, Exp T -> Val T -> Prop := + E_Num1 : forall n : nat, eval1 N (NUM n) (iNv n) + | E_Bool1 : forall b : bool, eval1 B (BOOL b) (iBv b) + | E_Plus1 : forall (e1 e2 : Exp N) (n1 n2 : nat), + eval1 N e1 (iNv n1) -> + eval1 N e2 (iNv n2) -> eval1 N (PLUS e1 e2) (iNv (n1 + n2)) + | E_AND1 : forall (e1 e2 : Exp B) (b1 b2 : bool), + eval1 B e1 (iBv b1) -> + eval1 B e2 (iBv b2) -> eval1 B (AND e1 e2) (iBv (b1 && b2)) + | E_OR1 : forall (e1 e2 : Exp B) (b1 b2 : bool), + eval1 B e1 (iBv b1) -> + eval1 B e2 (iBv b2) -> eval1 B (AND e1 e2) (iBv (b1 || b2)) + | E_EQ1 : forall (e1 e2 : Exp N) (n1 n2 : nat), + eval1 N e1 (iNv n1) -> + eval1 N e2 (iNv n2) -> eval1 B (EQ e1 e2) (iBv (Nat.eqb n1 n2)). + +Arguments eval1 T _ _ +Arguments E_Num1 n%nat_scope +Arguments E_Bool1 b%bool_scope +Arguments E_Plus1 e1 e2 (n1 n2)%nat_scope _ _ +Arguments E_AND1 e1 e2 (b1 b2)%bool_scope _ _ +Arguments E_OR1 e1 e2 (b1 b2)%bool_scope _ _ +Arguments E_EQ1 e1 e2 (n1 n2)%nat_scope _ _ +3 + 7 becomes fun (x : ?e) (x0 : ?e0) => S (S x0) + S (S (S (S (S (S x))))) +File "./apps/eltac/theories/apply.v", line 15, characters 16-19: +Warning: +File "./apps/eltac/theories/apply.v", line 15, characters 16-19 +Ctx is linear: name it _Ctx (discard) or Ctx_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] The age of alice is 20 Query assignments: @@ -2194,7 +5659,7 @@ Debug: rid:1 step:5 gid:19 user:rule:backchain = success -Debug: }}} -> (0.000s) +Debug: }}} -> (0.001s) Debug: run 6 {{{ Debug: @@ -2571,34 +6036,56 @@ File "./examples/tutorial_elpi_lang.v", line 1518, characters 28-29 C is linear: name it _C (discard) or C_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -Coq version: 8.20.1 = 8 . 20 . 1 Query assignments: - MA = 8 - MI = 20 - P = 1 - V = 8.20.1 -hello world -A -B + GRnat = indt «nat» + GRplus = const «Nat.add» + GRs = indc «S» Query assignments: - GR = «nat» + Bo = app [global (indc «S»), app [global (indc «S»), global (indc «O»)]] + C = «x» + GR = const «x» + Ty = global (indt «nat») + TyC = global (indt «nat») Query assignments: - GR = «Nat.add» - MP = «Coq.Init.Datatypes» + Bo = fun `x` (global (indt «nat»)) c0 \ c0 + C = «f» Query assignments: - A = «elpi.tests.test_API.succ» - GR = «Nat.add» - MP = «Coq.Init.Datatypes» - X1 = [loc-gref (const «Nat.add»)] - X2 = [loc-gref (const «Nat.add»)] - X3 = [loc-abbreviation «elpi.tests.test_API.succ»] - X4 = [loc-modpath «Coq.Init.Datatypes»] -Universe constraints: + Bo = fix `add` 0 + (prod `n` (global (indt «nat»)) c0 \ + prod `m` (global (indt «nat»)) c1 \ global (indt «nat»)) c0 \ + fun `n` (global (indt «nat»)) c1 \ + fun `m` (global (indt «nat»)) c2 \ + match c1 (fun `n` (global (indt «nat»)) c3 \ global (indt «nat»)) + [c2, + fun `p` (global (indt «nat»)) c3 \ + app [global (indc «S»), app [c0, c3, c2]]] + C = «Nat.add» +The return type of m is: c0 \ c1 \ +fun `x` (global (indt «nat»)) c2 \ + fun `e` + (app [global (indt «eq»), global (indt «nat»), global (indc «O»), c2]) + c3 \ prod `_` (app [c1, global (indc «O»)]) c4 \ app [c1, c2] Query assignments: - X = «elpi.tests.test_API.1» + C = «m» + RT = c0 \ c1 \ +fun `x` (global (indt «nat»)) c2 \ + fun `e` + (app [global (indt «eq»), global (indt «nat»), global (indc «O»), c2]) + c3 \ prod `_` (app [c1, global (indc «O»)]) c4 \ app [c1, c2] +typ «elpi_examples.tutorial_coq_elpi_HOAS.6» < +typ «elpi_examples.tutorial_coq_elpi_HOAS.7» +Debug: Cannot enforce elpi_examples.tutorial_coq_elpi_HOAS.7 <= +elpi_examples.tutorial_coq_elpi_HOAS.6 because +elpi_examples.tutorial_coq_elpi_HOAS.6 +< elpi_examples.tutorial_coq_elpi_HOAS.7 +Query assignments: + U = typ «elpi_examples.tutorial_coq_elpi_HOAS.6» + U1 = typ «elpi_examples.tutorial_coq_elpi_HOAS.7» Universe constraints: UNIVERSES: - {elpi.tests.test_API.1} |= + {elpi_examples.tutorial_coq_elpi_HOAS.7 + elpi_examples.tutorial_coq_elpi_HOAS.6} |= + elpi_examples.tutorial_coq_elpi_HOAS.6 < elpi_examples.tutorial_coq_elpi_HOAS.7 ALGEBRAIC UNIVERSES: {} FLEXIBLE UNIVERSES: @@ -2608,617 +6095,387 @@ WEAK CONSTRAINTS: +(id b) is: app [fun `x` (sort (typ X0)) c0 \ c0, sort (typ X1)] +(id a) is illtyped: +Illegal application: +The term "fun x : Type => x" of type "Type -> Type" +cannot be applied to the term + "Type" : "Type" +This term has type "Type@{elpi_examples.tutorial_coq_elpi_HOAS.8+1}" +which should be a subtype of "Type@{elpi_examples.tutorial_coq_elpi_HOAS.8}". +(universe inconsistency: Cannot enforce elpi_examples.tutorial_coq_elpi_HOAS.8 +< elpi_examples.tutorial_coq_elpi_HOAS.8 because +elpi_examples.tutorial_coq_elpi_HOAS.8 += elpi_examples.tutorial_coq_elpi_HOAS.8) +after typing (id b) is: +app + [fun `x` (sort (typ «elpi_examples.tutorial_coq_elpi_HOAS.8»)) c0 \ c0, + sort (typ «elpi_examples.tutorial_coq_elpi_HOAS.9»)] : +sort (typ «elpi_examples.tutorial_coq_elpi_HOAS.8») +Universe constraints: UNIVERSES: + {elpi_examples.tutorial_coq_elpi_HOAS.9 + elpi_examples.tutorial_coq_elpi_HOAS.8} |= + elpi_examples.tutorial_coq_elpi_HOAS.9 < elpi_examples.tutorial_coq_elpi_HOAS.8 + ALGEBRAIC UNIVERSES: + {elpi_examples.tutorial_coq_elpi_HOAS.9 + elpi_examples.tutorial_coq_elpi_HOAS.8} + FLEXIBLE UNIVERSES: + elpi_examples.tutorial_coq_elpi_HOAS.9 + elpi_examples.tutorial_coq_elpi_HOAS.8 + SORTS: + + WEAK CONSTRAINTS: + + Query assignments: - X = typ «elpi.tests.test_API.2» - Y = typ «elpi.tests.test_API.3» + A = sort (typ «elpi_examples.tutorial_coq_elpi_HOAS.8») + B = sort (typ «elpi_examples.tutorial_coq_elpi_HOAS.9») + ErrMsg = Illegal application: +The term "fun x : Type => x" of type "Type -> Type" +cannot be applied to the term + "Type" : "Type" +This term has type "Type@{elpi_examples.tutorial_coq_elpi_HOAS.8+1}" +which should be a subtype of "Type@{elpi_examples.tutorial_coq_elpi_HOAS.8}". +(universe inconsistency: Cannot enforce elpi_examples.tutorial_coq_elpi_HOAS.8 +< elpi_examples.tutorial_coq_elpi_HOAS.8 because +elpi_examples.tutorial_coq_elpi_HOAS.8 += elpi_examples.tutorial_coq_elpi_HOAS.8) + ID = fun `x` (sort (typ «elpi_examples.tutorial_coq_elpi_HOAS.8»)) c0 \ c0 + T = sort (typ «elpi_examples.tutorial_coq_elpi_HOAS.8») + U = «elpi_examples.tutorial_coq_elpi_HOAS.8» + V = «elpi_examples.tutorial_coq_elpi_HOAS.9» Universe constraints: UNIVERSES: - {elpi.tests.test_API.3 elpi.tests.test_API.2} |= - elpi.tests.test_API.2 <= elpi.tests.test_API.3 + {elpi_examples.tutorial_coq_elpi_HOAS.9 + elpi_examples.tutorial_coq_elpi_HOAS.8} |= + elpi_examples.tutorial_coq_elpi_HOAS.9 < elpi_examples.tutorial_coq_elpi_HOAS.8 ALGEBRAIC UNIVERSES: - {} + {elpi_examples.tutorial_coq_elpi_HOAS.9 + elpi_examples.tutorial_coq_elpi_HOAS.8} FLEXIBLE UNIVERSES: - + elpi_examples.tutorial_coq_elpi_HOAS.9 + elpi_examples.tutorial_coq_elpi_HOAS.8 SORTS: WEAK CONSTRAINTS: +app + [global (const «Nat.add»), + app [global (indc «S»), global (indc «O»)], + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] += +app + [global (const «Nat.add»), + app [global (indc «S»), global (indc «O»)], + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] +app + [global (const «Nat.add»), + app [global (indc «S»), global (indc «O»)], + app [global (indc «S»), global (indc «O»)]] Query assignments: - X = typ «elpi.tests.test_API.4» - Y = typ «elpi.tests.test_API.5» + S = indc «S» +fun `x` (global (indt «nat»)) c0 \ + fun `x` (global (indt «nat»)) c1 \ + app [global (const «Nat.add»), c1, c0] +fun `x` (global (indt «nat»)) c0 \ + fun `x` (global (indt «nat»)) c1 \ + app [global (const «Nat.add»), c1, c0] +fun `a` (global (indt «nat»)) c0 \ + fun `b` (global (indt «nat»)) c1 \ + app [global (const «Nat.add»), c1, c0] +Query assignments: + X = c0 \ c1 \ +app [global (const «Nat.add»), c1, c0] +fun `a` (global (indt «nat»)) c0 \ + fun `b` (global (indt «nat»)) c1 \ + app [global (indt «eq»), global (indt «nat»), c0, c1] +indt «nat» +indt «nat» +before: +fun `ax` (global (indt «nat»)) c0 \ + fun `b` (global (indt «nat»)) c1 \ + app [global (indt «eq»), X0 c1, c0, c1] +after: +fun `ax` (global (indt «nat»)) c0 \ + fun `b` (global (indt «nat»)) c1 \ + app [global (indt «eq»), global (indt «nat»), c0, c1] +Query assignments: + T = fun `ax` (global (indt «nat»)) c0 \ + fun `b` (global (indt «nat»)) c1 \ + app [global (indt «eq»), global (indt «nat»), c0, c1] + X1_ = c0 \ +global (indt «nat») Universe constraints: UNIVERSES: - {elpi.tests.test_API.5 elpi.tests.test_API.4} |= - elpi.tests.test_API.4 <= elpi.tests.test_API.5 + {elpi_examples.tutorial_coq_elpi_HOAS.11 + elpi_examples.tutorial_coq_elpi_HOAS.10} |= + elpi_examples.tutorial_coq_elpi_HOAS.11 < elpi_examples.tutorial_coq_elpi_HOAS.10 + Set <= elpi_examples.tutorial_coq_elpi_HOAS.11 + elpi_examples.tutorial_coq_elpi_HOAS.11 <= eq.u0 ALGEBRAIC UNIVERSES: {} FLEXIBLE UNIVERSES: SORTS: - + α6 := Type WEAK CONSTRAINTS: Query assignments: - X = typ «elpi.tests.test_API.6» - Y = typ «elpi.tests.test_API.7» - Z = typ «elpi.tests.test_API.8» + Bo = c0 \ +app + [global (const «Nat.add»), c0, + app [global (indc «S»), global (indc «O»)]] + N = `x` + T = fun `x` (global (indt «nat»)) c0 \ + app + [global (const «Nat.add»), c0, + app [global (indc «S»), global (indc «O»)]] + Ty = global (indt «nat») +Query assignments: + Bo = c0 \ +app + [global (const «Nat.add»), c0, + app [global (indc «S»), global (indc «O»)]] + N = `x` + T = fun `x` (global (indt «nat»)) c0 \ + app + [global (const «Nat.add»), c0, + app [global (indc «S»), global (indc «O»)]] + Ty = global (indt «nat») +raw T = X0 + +SHELF: +FUTURE GOALS STACK: + + +Rocq-Elpi mapping: +RAW: +ELAB: + +-------------------------------- + evar (X1) (global (indt «nat»)) (X1) /* suspended on X1 */ +EVARS: + ?X11==[ |- nat] (internal placeholder) {?e0} + ?X10==[ |- => nat] (internal placeholder) + +SHELF: +FUTURE GOALS STACK: + ?X11 + +Rocq-Elpi mapping: +RAW: +?X11 <-> X1 +ELAB: +?X11 <-> X1 + +Query assignments: + T = X1 + X2_ = X1 +Syntactic constraints: + evar (X1) (global (indt «nat»)) (X1) /* suspended on X1 */ Universe constraints: UNIVERSES: - {elpi.tests.test_API.8 elpi.tests.test_API.7 elpi.tests.test_API.6} |= - elpi.tests.test_API.6 <= elpi.tests.test_API.8 - elpi.tests.test_API.7 <= elpi.tests.test_API.8 + {elpi_examples.tutorial_coq_elpi_HOAS.12} |= + Set <= elpi_examples.tutorial_coq_elpi_HOAS.12 ALGEBRAIC UNIVERSES: {} FLEXIBLE UNIVERSES: SORTS: - + α7 := Type WEAK CONSTRAINTS: +raw T = +fun `x` (global (indt «nat»)) c0 \ + app [global (const «Nat.add»), c0, X0 c0] + {c0 c1} : decl c1 `x` (global (indt «nat»)) + ?- evar (X1 c1) (global (indt «nat»)) (X1 c1) /* suspended on X1 */ +EVARS: + ?X13==[x |- nat] (internal placeholder) {?e0} + ?X12==[x |- => nat] (internal placeholder) + +SHELF: +FUTURE GOALS STACK: + ?X13 + +Rocq-Elpi mapping: +RAW: +?X13 <-> c0 \ X1 c0 +ELAB: +?X13 <-> X1 + Query assignments: - X = typ «elpi.tests.test_API.9» - Y = typ «elpi.tests.test_API.10» + Bo = c0 \ +app [global (const «Nat.add»), c0, X1 c0] + N = `x` + T = fun `x` (global (indt «nat»)) c0 \ + app [global (const «Nat.add»), c0, X1 c0] + Ty = global (indt «nat») + X3_ = c0 \ +X1 c0 +Syntactic constraints: + {c0 c1} : decl c1 `x` (global (indt «nat»)) + ?- evar (X1 c1) (global (indt «nat»)) (X1 c1) /* suspended on X1 */ Universe constraints: UNIVERSES: - {elpi.tests.test_API.10 elpi.tests.test_API.9} |= - elpi.tests.test_API.9 < elpi.tests.test_API.10 + {elpi_examples.tutorial_coq_elpi_HOAS.13} |= + Set <= elpi_examples.tutorial_coq_elpi_HOAS.13 ALGEBRAIC UNIVERSES: {} FLEXIBLE UNIVERSES: SORTS: + α8 := Type +WEAK CONSTRAINTS: + + +Bo1 (not in pattern fragment) = +app + [global (const «Nat.add»), + app [global (indc «S»), global (indc «O»)], + X0 (app [global (indc «S»), global (indc «O»)])] +Bo1 before = +app + [global (const «Nat.add»), + app [global (indc «S»), global (indc «O»)], + X0 (app [global (indc «S»), global (indc «O»)])] +Bo1 after = +app + [global (const «Nat.add»), + app [global (indc «S»), global (indc «O»)], X1] +Query assignments: + Bo = c0 \ +app [global (const «Nat.add»), c0, X1] + Bo1 = app + [global (const «Nat.add»), + app [global (indc «S»), global (indc «O»)], X1] + N = `x` + T = fun `x` (global (indt «nat»)) c0 \ app [global (const «Nat.add»), c0, X1] + Ty = global (indt «nat») + X5_ = c0 \ +X1 +Syntactic constraints: + evar (X1) (global (indt «nat»)) (X1) /* suspended on X1 */ +Universe constraints: +UNIVERSES: + {elpi_examples.tutorial_coq_elpi_HOAS.14} |= + Set <= elpi_examples.tutorial_coq_elpi_HOAS.14 +ALGEBRAIC UNIVERSES: + {} +FLEXIBLE UNIVERSES: +SORTS: + α9 := Type WEAK CONSTRAINTS: -[foo (const «X»), foo (indt «nat»), foo (indt «bool»)] -[foo (indt «nat»), foo (indt «bool»)] -[] -[foo (indt «nat»)] -hello [int 1, int 2, trm (global (indt «nat»)), str x] -coq.pp.box (coq.pp.hv 2) - [coq.pp.str Module, coq.pp.spc, coq.pp.str Foo, coq.pp.spc, coq.pp.str :=, - coq.pp.brk 1 0, coq.pp.str body, coq.pp.spc, coq.pp.str End Foo.] -Module - Foo - := - body - End Foo. -fix foo (x : ?e3) (y : ?e4) {struct x} : ?e2 := - match x as _elpi_renamed_x_3 return ?e6 with - | true => S (S (S O)) - | false => y - end -fix foo x y {struct x} := if x as _elpi_renamed_x_3 then 3 else y -File "./tests/test_API.v", line 73, characters 37-39: -Warning: -File "./tests/test_API.v", line 73, characters 37-39 -MP is linear: name it _MP (discard) or MP_ (fresh variable) -[elpi.linear-variable,elpi.typecheck,elpi,default] -File "./tests/test_API.v", line 81, characters 54-55: -Warning: -File "./tests/test_API.v", line 81, characters 54-55 -A is linear: name it _A (discard) or A_ (fresh variable) -[elpi.linear-variable,elpi.typecheck,elpi,default] -File "./tests/test_API.v", line 82, characters 56-58: -Warning: -File "./tests/test_API.v", line 82, characters 56-58 -MP is linear: name it _MP (discard) or MP_ (fresh variable) -[elpi.linear-variable,elpi.typecheck,elpi,default] -File "./tests/test_API.v", line 91, characters 29-30: -Warning: -File "./tests/test_API.v", line 91, characters 29-30 -X is linear: name it _X (discard) or X_ (fresh variable) -[elpi.linear-variable,elpi.typecheck,elpi,default] -File "./tests/test_API.v", line 92, characters 29-30: -Warning: -File "./tests/test_API.v", line 92, characters 29-30 -X is linear: name it _X (discard) or X_ (fresh variable) -[elpi.linear-variable,elpi.typecheck,elpi,default] -File "./tests/test_API.v", line 92, characters 31-32: +Query assignments: + Bo = c0 \ +app [global (const «andb»), c0, X0 c0] + Bo1 = app + [global (const «andb»), app [global (indc «S»), global (indc «O»)], + X0 (app [global (indc «S»), global (indc «O»)])] + Bo2 = app + [global (const «andb»), + app + [global (const «nat2bool»), + app [global (indc «S»), global (indc «O»)]], X1] + N = `x` + T = fun `x` (global (indt «nat»)) c0 \ app [global (const «andb»), c0, X0 c0] + Ty = global (indt «nat») + X6_ = X0 +Syntactic constraints: + evar (X2) (global (indt «bool»)) X1 /* suspended on X2, X1 */ +File "./examples/tutorial_coq_elpi_HOAS.v", line 87, characters 19-24: Warning: -File "./tests/test_API.v", line 92, characters 31-32 -Y is linear: name it _Y (discard) or Y_ (fresh variable) +File "./examples/tutorial_coq_elpi_HOAS.v", line 87, characters 19-24 +GRnat is linear: name it _GRnat (discard) or GRnat_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -File "./tests/test_API.v", line 93, characters 28-29: +File "./examples/tutorial_coq_elpi_HOAS.v", line 89, characters 20-26: Warning: -File "./tests/test_API.v", line 93, characters 28-29 -X is linear: name it _X (discard) or X_ (fresh variable) +File "./examples/tutorial_coq_elpi_HOAS.v", line 89, characters 20-26 +GRplus is linear: name it _GRplus (discard) or GRplus_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -File "./tests/test_API.v", line 93, characters 30-31: +File "./examples/tutorial_coq_elpi_HOAS.v", line 88, characters 17-20: Warning: -File "./tests/test_API.v", line 93, characters 30-31 -Y is linear: name it _Y (discard) or Y_ (fresh variable) +File "./examples/tutorial_coq_elpi_HOAS.v", line 88, characters 17-20 +GRs is linear: name it _GRs (discard) or GRs_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -File "./tests/test_API.v", line 94, characters 36-37: +File "./examples/tutorial_coq_elpi_HOAS.v", line 113, characters 24-26: Warning: -File "./tests/test_API.v", line 94, characters 36-37 -X is linear: name it _X (discard) or X_ (fresh variable) +File "./examples/tutorial_coq_elpi_HOAS.v", line 113, characters 24-26 +Bo is linear: name it _Bo (discard) or Bo_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -File "./tests/test_API.v", line 94, characters 38-39: +File "./examples/tutorial_coq_elpi_HOAS.v", line 107, characters 20-22: Warning: -File "./tests/test_API.v", line 94, characters 38-39 -Y is linear: name it _Y (discard) or Y_ (fresh variable) +File "./examples/tutorial_coq_elpi_HOAS.v", line 107, characters 20-22 +Ty is linear: name it _Ty (discard) or Ty_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -File "./tests/test_API.v", line 94, characters 40-41: +File "./examples/tutorial_coq_elpi_HOAS.v", line 113, characters 28-31: Warning: -File "./tests/test_API.v", line 94, characters 40-41 -Z is linear: name it _Z (discard) or Z_ (fresh variable) +File "./examples/tutorial_coq_elpi_HOAS.v", line 113, characters 28-31 +TyC is linear: name it _TyC (discard) or TyC_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -File "./tests/test_API.v", line 95, characters 29-30: +File "./examples/tutorial_coq_elpi_HOAS.v", line 152, characters 24-26: Warning: -File "./tests/test_API.v", line 95, characters 29-30 -X is linear: name it _X (discard) or X_ (fresh variable) +File "./examples/tutorial_coq_elpi_HOAS.v", line 152, characters 24-26 +Bo is linear: name it _Bo (discard) or Bo_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -File "./tests/test_API.v", line 95, characters 31-32: +File "./examples/tutorial_coq_elpi_HOAS.v", line 195, characters 24-26: Warning: -File "./tests/test_API.v", line 95, characters 31-32 -Y is linear: name it _Y (discard) or Y_ (fresh variable) +File "./examples/tutorial_coq_elpi_HOAS.v", line 195, characters 24-26 +Bo is linear: name it _Bo (discard) or Bo_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -Query assignments: - E = fun `n` (global (indt «nat»)) c0 \ - fun `t` (app [global (const «T2»), c0]) c1 \ - fun `x` - (app [global (const «f3»), c0, app [global (const «h»), c0, c1]]) c2 \ - app - [global (const «g3»), c0, app [global (const «h»), c0, c1], - app - [global (indc «S»), - app - [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]] - TY = prod `n` (global (indt «nat»)) c0 \ - prod `t` (app [global (const «T2»), c0]) c1 \ - prod `x` - (app [global (const «f3»), c0, app [global (const «h»), c0, c1]]) c2 \ - global (indt «nat») - X1_ = X0 -Universe constraints: -UNIVERSES: - {elpi.tests.test_API_elaborate.13 elpi.tests.test_API_elaborate.10 - elpi.tests.test_API_elaborate.9} |= - elpi.tests.test_API_elaborate.13 < elpi.tests.test_API_elaborate.9 - Set <= elpi.tests.test_API_elaborate.10 - Set <= elpi.tests.test_API_elaborate.13 - T2.u0 <= elpi.tests.test_API_elaborate.13 - f3.u0 <= elpi.tests.test_API_elaborate.13 -ALGEBRAIC UNIVERSES: - {elpi.tests.test_API_elaborate.10} -FLEXIBLE UNIVERSES: - elpi.tests.test_API_elaborate.10 -SORTS: - α4 := Type - α5 := Type -WEAK CONSTRAINTS: - - -Query assignments: - E = app - [global (const «bar»), - app - [global (indc «S»), - app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]], - global (const «xxx»)] - TY = prop - X2_ = X0 - X3_ = X1 -Query assignments: - E = app - [global (const «op»), global (const «c»), - app - [global (indc «S»), - app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]] - TY = app [global (const «field»), global (const «c»)] - X4_ = X0 -Universe constraints: -UNIVERSES: - {elpi.tests.test_API_elaborate.19 elpi.tests.test_API_elaborate.18} |= - elpi.tests.test_API_elaborate.19 < elpi.tests.test_API_elaborate.18 - s.u0 <= elpi.tests.test_API_elaborate.19 -ALGEBRAIC UNIVERSES: - {} -FLEXIBLE UNIVERSES: - -SORTS: - α11 := Type -WEAK CONSTRAINTS: - - -raw: -parameter A explicit (global (const «T1»)) c0 \ - inductive ind1 tt - (parameter B explicit (sort (typ «elpi.tests.test_API_elaborate.20»)) - c1 \ arity (sort (typ «elpi.tests.test_API_elaborate.22»))) c1 \ - [constructor K1 - (parameter B explicit (sort (typ «elpi.tests.test_API_elaborate.20»)) - c2 \ arity (prod `_` (app [c1, c2]) c3 \ app [c1, c2])), - constructor K2 - (parameter B explicit (sort (typ «elpi.tests.test_API_elaborate.20»)) - c2 \ - arity (prod `_` (app [global (const «f1»), c0]) c3 \ app [c1, c2])), - constructor K3 - (parameter B explicit (sort (typ «elpi.tests.test_API_elaborate.20»)) - c2 \ - arity (prod `a` (app [global (const «f1»), c0]) c3 \ app [c1, c2]))] -elab1: -parameter A explicit (global (const «T1»)) c0 \ - inductive ind1 tt - (parameter B explicit (sort (typ «elpi.tests.test_API_elaborate.23»)) - c1 \ arity (sort (typ «elpi.tests.test_API_elaborate.25»))) c1 \ - [constructor K1 - (parameter B explicit (sort (typ «elpi.tests.test_API_elaborate.28»)) - c2 \ arity (prod `_` (app [c1, c2]) c3 \ app [c1, c2])), - constructor K2 - (parameter B explicit (sort (typ «elpi.tests.test_API_elaborate.30»)) - c2 \ - arity (prod `_` (app [global (const «f1»), c0]) c3 \ app [c1, c2])), - constructor K3 - (parameter B explicit (sort (typ «elpi.tests.test_API_elaborate.33»)) - c2 \ - arity (prod `a` (app [global (const «f1»), c0]) c3 \ app [c1, c2]))] -elab2: -parameter A explicit (global (const «T1»)) c0 \ - parameter B explicit (sort (typ «ind1.u0»)) c1 \ - inductive ind1 tt (arity (sort (typ «ind1.u1»))) c2 \ - [constructor K1 (arity (prod `_` c2 c3 \ c2)), - constructor K2 - (arity (prod `_` (app [global (const «f1»), c0]) c3 \ c2)), - constructor K3 - (arity (prod `a` (app [global (const «f1»), c0]) c3 \ c2))] -raw: -parameter A explicit (global (const «T1»)) c0 \ - record ind2 (sort (typ «f1.u0»)) Build_ind2 - (field [coercion off, canonical tt] fld1 (app [global (const «f1»), c0]) - c1 \ - field [coercion off, canonical tt] fld2 - (app [global (indt «eq»), app [global (const «f1»), c0], c1, c1]) - c2 \ end-record) -elab1: -parameter A explicit (global (const «T1»)) c0 \ - record ind2 (sort (typ «elpi.tests.test_API_elaborate.38»)) Build_ind2 - (field [coercion off, canonical tt] fld1 (app [global (const «f1»), c0]) - c1 \ - field [coercion off, canonical tt] fld2 - (app [global (indt «eq»), app [global (const «f1»), c0], c1, c1]) - c2 \ end-record) -elab2: -parameter A explicit (global (const «T1»)) c0 \ - record ind2 (sort (typ «ind2.u0»)) Build_ind2 - (field [coercion off, canonical tt] fld1 (app [global (const «f1»), c0]) - c1 \ - field [coercion off, canonical tt] fld2 - (app [global (indt «eq»), app [global (const «f1»), c0], c1, c1]) - c2 \ end-record) -raw: -record ind3 (sort (typ «elpi.tests.test_API_elaborate.41»)) Build_ind3 - (field [coercion reversible, canonical tt] fld3 - (sort (typ «elpi.tests.test_API_elaborate.40»)) c0 \ - field [coercion off, canonical tt] fld4 - (prod `x` c0 c1 \ app [global (indt «eq»), c0, c1, c1]) c1 \ end-record) -elab1: -record ind3 (sort (typ «elpi.tests.test_API_elaborate.42»)) Build_ind3 - (field [coercion reversible, canonical tt] fld3 - (sort (typ «elpi.tests.test_API_elaborate.43»)) c0 \ - field [coercion off, canonical tt] fld4 - (prod `x` c0 c1 \ app [global (indt «eq»), c0, c1, c1]) c1 \ end-record) -elab2: -record ind3 (sort (typ «ind3.u0»)) Build_ind3 - (field [coercion reversible, canonical tt] fld3 (sort (typ «ind3.u1»)) - c0 \ - field [coercion off, canonical tt] fld4 - (prod `x` c0 c1 \ app [global (indt «eq»), c0, c1, c1]) c1 \ end-record) -forall x : ind3, x -> Prop - : Type -Query assignments: - E = app - [global (const «op»), global (const «c»), - app - [global (indc «S»), - app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]] - TY = app [global (const «field»), global (const «c»)] -Universe constraints: -UNIVERSES: - {elpi.tests.test_API_elaborate.50 elpi.tests.test_API_elaborate.49} |= - elpi.tests.test_API_elaborate.50 < elpi.tests.test_API_elaborate.49 - s.u0 <= elpi.tests.test_API_elaborate.50 -ALGEBRAIC UNIVERSES: - {} -FLEXIBLE UNIVERSES: - -SORTS: - α21 := Type -WEAK CONSTRAINTS: - - -unknown_gref -«elpi.tests.test_API_elaborate.52» «elpi.tests.test_API_elaborate.52» -File "./tests/test_API_elaborate.v", line 160, characters 19-20: +File "./examples/tutorial_coq_elpi_HOAS.v", line 285, characters 17-18: Warning: -File "./tests/test_API_elaborate.v", line 160, characters 19-20 -Y is linear: name it _Y (discard) or Y_ (fresh variable) +File "./examples/tutorial_coq_elpi_HOAS.v", line 285, characters 17-18 +V is linear: name it _V (discard) or V_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -File "./tests/test_API_elaborate.v", line 170, characters 33-34: +File "./examples/tutorial_coq_elpi_HOAS.v", line 681, characters 10-11: Warning: -File "./tests/test_API_elaborate.v", line 170, characters 33-34 -Y is linear: name it _Y (discard) or Y_ (fresh variable) +File "./examples/tutorial_coq_elpi_HOAS.v", line 681, characters 10-11 +N is linear: name it _N (discard) or N_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -Query assignments: - L = [gref (indt «Empty_set»), gref (const «Empty_set_rect»), - gref (const «Empty_set_ind»), gref (const «Empty_set_rec»), - gref (const «Empty_set_sind»), gref (indt «unit»), - gref (const «unit_rect»), gref (const «unit_ind»), - gref (const «unit_rec»), gref (const «unit_sind»), - gref (indt «bool»), gref (const «bool_rect»), - gref (const «bool_ind»), gref (const «bool_rec»), - gref (const «bool_sind»), gref (const «andb»), gref (const «orb»), - gref (const «implb»), gref (const «xorb»), gref (const «negb»), - gref (const «andb_prop»), gref (const «andb_true_intro»), - gref (indt «eq_true»), gref (const «eq_true_rect»), - gref (const «eq_true_ind»), gref (const «eq_true_rec»), - gref (const «eq_true_sind»), gref (const «is_true»), - gref (const «eq_true_ind_r»), gref (const «eq_true_rec_r»), - gref (const «eq_true_rect_r»), gref (indt «BoolSpec»), - gref (const «BoolSpec_ind»), gref (const «BoolSpec_sind»), - gref (indt «nat»), gref (const «nat_rect»), gref (const «nat_ind»), - gref (const «nat_rec»), gref (const «nat_sind»), - gref (indt «option»), gref (const «option_rect»), - gref (const «option_ind»), gref (const «option_rec»), - gref (const «option_sind»), gref (const «option_map»), - gref (indt «sum»), gref (const «sum_rect»), gref (const «sum_ind»), - gref (const «sum_rec»), gref (const «sum_sind»), gref (indt «prod»), - gref (const «prod_rect»), gref (const «prod_ind»), - gref (const «prod_rec»), gref (const «prod_sind»), - gref (const «fst»), gref (const «snd»), - gref (const «surjective_pairing»), - gref (const «injective_projections»), gref (const «pair_equal_spec»), - gref (const «curry»), gref (const «uncurry»), - gref (const «rew_pair»), gref (indt «list»), - gref (const «list_rect»), gref (const «list_ind»), - gref (const «list_rec»), gref (const «list_sind»), - gref (const «length»), gref (const «app»), gref (indt «comparison»), - gref (const «comparison_rect»), gref (const «comparison_ind»), - gref (const «comparison_rec»), gref (const «comparison_sind»), - gref (const «comparison_eq_stable»), gref (const «CompOpp»), - gref (const «CompOpp_involutive»), gref (const «CompOpp_inj»), - gref (const «CompOpp_iff»), gref (indt «CompareSpec»), - gref (const «CompareSpec_ind»), gref (const «CompareSpec_sind»), - gref (indt «CompareSpecT»), gref (const «CompareSpecT_rect»), - gref (const «CompareSpecT_ind»), gref (const «CompareSpecT_rec»), - gref (const «CompareSpecT_sind»), gref (const «CompareSpec2Type»), - gref (const «CompSpec»), gref (const «CompSpecT»), - gref (const «CompSpec2Type»), gref (const «ID»), gref (const «id»), - gref (const «IDProp»), gref (const «idProp»)] - MP = «Coq.Init.Datatypes» -elpi.tests.test_API_module.X.i -[elpi, tests, test_API_module, X, Y] -[elpi, tests, test_API_module, X, Y] -Query assignments: - %arg1 = elpi.tests.test_API_module.X.i - %arg2 = elpi.tests.test_API_module.X.i - %arg3 = elpi.tests.test_API_module.X.Y.i - %arg4 = [elpi, tests, test_API_module, X, Y] - %arg5 = [elpi, tests, test_API_module, X, Y] - L = [gref (indt «X.i»), gref (const «X.i_rect»), gref (const «X.i_ind»), - gref (const «X.i_rec»), gref (const «X.i_sind»), gref (const «X.d»), - submodule «elpi.tests.test_API_module.X.Y» - [gref (indt «X.Y.i»), gref (const «X.Y.i_rect»), - gref (const «X.Y.i_ind»), gref (const «X.Y.i_rec»), - gref (const «X.Y.i_sind»), gref (const «X.Y.d»)]] - MP = «elpi.tests.test_API_module.X» - XYi = «X.Y.i» - XYr = «X.Y.i_rect» - Xi = «X.i» -Query assignments: - I = «Y.i» - ID = j - J = «Y.j» - MP = «elpi.tests.test_API_module.Y» - P = [elpi, tests, test_API_module, Y] -Query assignments: - Mp_ta = «elpi.tests.test_API_module.TA» -Query assignments: - GRy = EXN PRINTING: Not_found - I = EXN PRINTING: Not_found - L = [gref (const «A.z»), gref (const «A.i»)] - MP = «elpi.tests.test_API_module.A» - MP_TA = «elpi.tests.test_API_module.TA» - X1_ = «A.i.u0» - X2_ = «elpi.tests.test_API_module.11» -Universe constraints: -UNIVERSES: - -ALGEBRAIC UNIVERSES: - {elpi.tests.test_API_module.11 A.i.u0} -FLEXIBLE UNIVERSES: - elpi.tests.test_API_module.11 - A.i.u0 -SORTS: - -WEAK CONSTRAINTS: - - -Module -A - : TA -:= Struct - Definition x - Module B - Definition z - Inductive i1 - Definition i1_rect - Definition i1_ind - Definition i1_rec - Definition i1_sind - Definition i - End -A.z - : nat -A.i - : Type -*** [ A.i : Type ] -Query assignments: - A = «elpi.tests.test_API_module.a» - MP_TA = «elpi.tests.test_API_module.TA» - TF = «elpi.tests.test_API_module.TF» -Query assignments: - %arg1 = «elpi.tests.test_API_module.a» - %arg2 = const const EXN PRINTING: Not_found - MP_TA = «elpi.tests.test_API_module.TA» - MP_TF = «elpi.tests.test_API_module.TF» -Module -F - : Funsig (a:TA) Funsig (b:TA) TF -:= Functor (a:TA) Functor (b:TA) Struct Definition w : nat. End -Module B : Sig Parameter w : nat. End := (F A A) -*** [ B.w : nat ] -Query assignments: - MP_TA = «elpi.tests.test_API_module.TA» -Module Type TB = Funsig (A:TA) Sig End -Query assignments: - A = «elpi.tests.test_API_module.A» -Query assignments: - %arg1 = «elpi.tests.test_API_module.A» -Module IA := Struct Definition z : nat. Definition i : Type. End -Query assignments: - %arg1 = «elpi.tests.test_API_module.IA» -Query assignments: - %arg1 = «elpi.tests.test_API_module.IA» -i - : Type -Query assignments: - %arg1 = «elpi.tests.test_API_module.TA» -Query assignments: - %arg1 = «elpi.tests.test_API_module.TA» -Module Type ITA = Sig Parameter z : nat. Parameter i : Type. End -Query assignments: - F = «elpi.tests.test_API_module.R.F» - FT = «elpi.tests.test_API_module.R.FT» - L = [submodule «elpi.tests.test_API_module.R.S» [gref (const «R.S.x»)], - module-type «elpi.tests.test_API_module.R.P1», - module-type «elpi.tests.test_API_module.R.P2», - «elpi.tests.test_API_module.R.F» module-functor - [«elpi.tests.test_API_module.R.P1», «elpi.tests.test_API_module.R.P2»], - «elpi.tests.test_API_module.R.FT» module-type-functor - [«elpi.tests.test_API_module.R.P2», «elpi.tests.test_API_module.R.P1»], - gref (const «R.a»)] - P1 = «elpi.tests.test_API_module.R.P1» - P2 = «elpi.tests.test_API_module.R.P2» - R = «elpi.tests.test_API_module.R» - S = «elpi.tests.test_API_module.R.S» -File "./tests/test_API_module.v", line 7, characters 69-70: +File "./examples/tutorial_coq_elpi_HOAS.v", line 681, characters 12-14: Warning: -File "./tests/test_API_module.v", line 7, characters 69-70 -L is linear: name it _L (discard) or L_ (fresh variable) +File "./examples/tutorial_coq_elpi_HOAS.v", line 681, characters 12-14 +Ty is linear: name it _Ty (discard) or Ty_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -File "./tests/test_API_module.v", line 50, characters 26-28: +File "./examples/tutorial_coq_elpi_HOAS.v", line 718, characters 10-11: Warning: -File "./tests/test_API_module.v", line 50, characters 26-28 -ID is linear: name it _ID (discard) or ID_ (fresh variable) +File "./examples/tutorial_coq_elpi_HOAS.v", line 718, characters 10-11 +N is linear: name it _N (discard) or N_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -File "./tests/test_API_module.v", line 49, characters 28-29: +File "./examples/tutorial_coq_elpi_HOAS.v", line 718, characters 12-14: Warning: -File "./tests/test_API_module.v", line 49, characters 28-29 -P is linear: name it _P (discard) or P_ (fresh variable) +File "./examples/tutorial_coq_elpi_HOAS.v", line 718, characters 12-14 +Ty is linear: name it _Ty (discard) or Ty_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -File "./tests/test_API_module.v", line 77, characters 21-22: +File "./examples/tutorial_coq_elpi_HOAS.v", line 756, characters 40-43: Warning: -File "./tests/test_API_module.v", line 77, characters 21-22 -L is linear: name it _L (discard) or L_ (fresh variable) +File "./examples/tutorial_coq_elpi_HOAS.v", line 756, characters 40-43 +Bo2 is linear: name it _Bo2 (discard) or Bo2_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -File "./tests/test_API_module.v", line 67, characters 27-32: +File "./examples/tutorial_coq_elpi_HOAS.v", line 754, characters 10-11: Warning: -File "./tests/test_API_module.v", line 67, characters 27-32 -MP_TA is linear: name it _MP_TA (discard) or MP_TA_ (fresh variable) +File "./examples/tutorial_coq_elpi_HOAS.v", line 754, characters 10-11 +N is linear: name it _N (discard) or N_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -File "./tests/test_API_module.v", line 102, characters 31-36: +File "./examples/tutorial_coq_elpi_HOAS.v", line 754, characters 12-14: Warning: -File "./tests/test_API_module.v", line 102, characters 31-36 -MP_TA is linear: name it _MP_TA (discard) or MP_TA_ (fresh variable) +File "./examples/tutorial_coq_elpi_HOAS.v", line 754, characters 12-14 +Ty is linear: name it _Ty (discard) or Ty_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -File "./tests/test_API_module.v", line 101, characters 27-32: +File "./apps/NES/theories/NES.v", line 39, characters 0-42: Warning: -File "./tests/test_API_module.v", line 101, characters 27-32 -MP_TF is linear: name it _MP_TF (discard) or MP_TF_ (fresh variable) -[elpi.linear-variable,elpi.typecheck,elpi,default] -«elpi.tests.test_API_notations.abbr» -Query assignments: - A = «elpi.tests.test_API_notations.abbr» - X1_ = X0 - X2_ = c0 \ -X1 c0 - X3_ = c0 \ -X2 c0 -Syntactic constraints: - {c0} : decl c0 `x` X0 ?- evar (X2 c0) (X3 c0) (X2 c0) /* suspended on X2 */ - {c0} : decl c0 `x` X0 - ?- evar (X4 c0) (sort (typ «elpi.tests.test_API_notations.3»)) (X3 c0) /* suspended on X4, X3 */ - {c0} : decl c0 `x` X0 - ?- evar (X1 c0) (sort (typ «elpi.tests.test_API_notations.2»)) (X1 c0) /* suspended on X1 */ - evar (X0) (sort (typ «elpi.tests.test_API_notations.1»)) (X0) /* suspended on X0 */ -Universe constraints: -UNIVERSES: - {elpi.tests.test_API_notations.3 elpi.tests.test_API_notations.2 - elpi.tests.test_API_notations.1} |= -ALGEBRAIC UNIVERSES: - {} -FLEXIBLE UNIVERSES: - -SORTS: - α1 - α2 - α3 -WEAK CONSTRAINTS: - - -Notation abbr _elpi_ctx_entry_2_was_x_ _elpi_ctx_entry_1_ := - (_elpi_ctx_entry_2_was_x_ = _elpi_ctx_entry_2_was_x_) -Expands to: Notation elpi.tests.test_API_notations.abbr -4 = 4 - : Prop -Query assignments: - X4_ = X0 - X5_ = c0 \ -X1 c0 - X6_ = c0 \ -X2 c0 -Syntactic constraints: - {c0} : decl c0 `x` X0 ?- evar (X2 c0) (X3 c0) (X2 c0) /* suspended on X2 */ - {c0} : decl c0 `x` X0 - ?- evar (X4 c0) (sort (typ «elpi.tests.test_API_notations.6»)) (X3 c0) /* suspended on X4, X3 */ - {c0} : decl c0 `x` X0 - ?- evar (X1 c0) (sort (typ «elpi.tests.test_API_notations.5»)) (X1 c0) /* suspended on X1 */ - evar (X0) (sort (typ «elpi.tests.test_API_notations.4»)) (X0) /* suspended on X0 */ -Universe constraints: -UNIVERSES: - {elpi.tests.test_API_notations.6 elpi.tests.test_API_notations.5 - elpi.tests.test_API_notations.4} |= -ALGEBRAIC UNIVERSES: - {} -FLEXIBLE UNIVERSES: - -SORTS: - α4 - α5 - α6 -WEAK CONSTRAINTS: - - -Notation abbr2 _elpi_ctx_entry_1_was_x_ := - (fun _ => _elpi_ctx_entry_1_was_x_ = _elpi_ctx_entry_1_was_x_) -Expands to: Notation elpi.tests.test_API_notations.abbr2 -(fun _ : nat => 2 = 2) 3 - : Prop -fun `_` X0 c0 \ - app [global (indt «eq»), X1, fun `x` X2 c1 \ c1, fun `x` X2 c1 \ c1] -Query assignments: - %arg1 = «elpi.tests.test_API_notations.abbr2» - T = fun `_` X0 c0 \ - app [global (indt «eq»), X1, fun `x` X2 c1 \ c1, fun `x` X2 c1 \ c1] - X7_ = X2 -Query assignments: - %arg1 = «elpi.tests.test_API_notations.abbr2» +Undeclared globals: +- File "/build/reproducible-path/coq-elpi-2.5.0/apps/NES/elpi/nes_interp.elpi", line 6, column 24, characters 152-161: ns. +Please add the following text to your program: +type ns list string -> modpath -> prop. +[elpi.missing-types,elpi.typecheck,elpi,default] Hello [str world!] Hello [int 46] Hello [str there] @@ -3290,7 +6547,7 @@ interp x := some (app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]) -The module is «elpi_examples.tutorial_coq_elpi_command.Module46» +The module is «elpi_examples.tutorial_coq_elpi_command.Module20» Box.Box.Box.Box.foo = fun n : nat => n + 2 : nat -> nat @@ -3305,159 +6562,2085 @@ File "./examples/tutorial_coq_elpi_command.v", line 644, characters 7-14: Warning: This command does not support this attribute: unknown. [unsupported-attributes,parsing,default] -Query q X0 -Query r X0 -Result r 1 -Query assignments: - CA = «a» - CB = «b» - CC = «c» -d : nat +nabla c1 \ + seal + (goal [decl c1 `P` (sort prop)] (app [global (const «id»), X0, X1]) + (prod `_` c1 c2 \ c1) + (app [global (const «id»), prod `_` c1 c2 \ c1, X2 c1]) []) +Debug: + {c0 c1 c2 c3} : + decl c3 `w` c0, + decl c2 `h` + (app + [global (indt «eq»), global (indt «nat»), global (const «o»), + global (const «m»)]), + decl c1 `x` (prod `y` c0 c4 \ sort (typ «elpi.tests.test_tactic.2»)), + decl c0 `T` (sort (typ «elpi.tests.test_tactic.1»)) + ?- evar (X0 c0 c1 c2 c3) + (prod `e` + (app + [global (indt «eq»), sort (typ «elpi.tests.test_tactic.2»), + app [c1, c3], sort (typ «elpi.tests.test_tactic.3»)]) c4 \ + prod `j` (app [c1, c3]) c5 \ + app + [global (indt «ex»), app [c1, c3], + fun `a` (app [c1, c3]) c6 \ + app [global (indt «eq»), app [c1, c3], c6, c6]]) + (X1 c0 c1 c2 c3) /* suspended on X0, X1 */ +Goal: +[] -d is not universe polymorphic -Expands to: Variable d -eq_refl : e2 = 3 - : e2 = 3 -Query assignments: - X = «x» -fx : nat -> nat - : nat -> nat -opaque_3 : nat -opaque_3 is not universe polymorphic -opaque_3 is opaque -Expands to: Constant elpi.tests.test_API_section.opaque_3 -foo : nat - : nat -bar : bool -> nat - : bool -> nat +[decl c3 `w` c0, + decl c2 `h` + (app + [global (indt «eq»), global (indt «nat»), global (const «o»), + global (const «m»)]), + decl c1 `x` (prod `y` c0 c4 \ sort (typ «elpi.tests.test_tactic.2»)), + decl c0 `T` (sort (typ «elpi.tests.test_tactic.1»))] +------------ +prod `e` + (app + [global (indt «eq»), sort (typ «elpi.tests.test_tactic.2»), + app [c1, c3], sort (typ «elpi.tests.test_tactic.3»)]) c4 \ + prod `j` (app [c1, c3]) c5 \ + app + [global (indt «ex»), app [c1, c3], + fun `a` (app [c1, c3]) c6 \ + app [global (indt «eq»), app [c1, c3], c6, c6]] +x w = Type -> x w -> exists a : x w, a = a +Debug: + {c0 c1 c2 c3} : + decl c3 `w` c0, + decl c2 `h` + (app + [global (indt «eq»), global (indt «nat»), global (const «o»), + global (const «m»)]), + decl c1 `x` (prod `y` c0 c4 \ sort (typ «elpi.tests.test_tactic.2»)), + decl c0 `T` (sort (typ «elpi.tests.test_tactic.1»)) + ?- evar (X0 c0 c1 c2 c3) + (prod `e` + (app + [global (indt «eq»), sort (typ «elpi.tests.test_tactic.2»), + app [c1, c3], sort (typ «elpi.tests.test_tactic.3»)]) c4 \ + prod `j` (app [c1, c3]) c5 \ + app + [global (indt «ex»), app [c1, c3], + fun `a` (app [c1, c3]) c6 \ + app [global (indt «eq»), app [c1, c3], c6, c6]]) + (X1 c0 c1 c2 c3) /* suspended on X0, X1 */ Goal: -[decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»))] -|- X0 c0 c1 : -app - [global (indt «eq»), global (indt «nat»), +[] + + +[decl c3 `w` c0, + decl c2 `h` + (app + [global (indt «eq»), global (indt «nat»), global (const «o»), + global (const «m»)]), + decl c1 `x` (prod `y` c0 c4 \ sort (typ «elpi.tests.test_tactic.2»)), + decl c0 `T` (sort (typ «elpi.tests.test_tactic.1»))] +------------ +prod `e` + (app + [global (indt «eq»), sort (typ «elpi.tests.test_tactic.2»), + app [c1, c3], sort (typ «elpi.tests.test_tactic.3»)]) c4 \ + prod `j` (app [c1, c3]) c5 \ app - [global (const «Nat.add»), c0, - app [global (indc «S»), global (indc «O»)]], c1] -(I, 0) -conj : forall [A B : Prop], A -> B -> A /\ B + [global (indt «ex»), app [c1, c3], + fun `a` (app [c1, c3]) c6 \ + app [global (indt «eq»), app [c1, c3], c6, c6]] +x w = Type -> x w -> exists a : x w, a = a +Debug: + {c0 c1 c2 c3 c4 c5} : + decl c5 `j` (app [c1, c3]), + decl c4 `e` + (app + [global (indt «eq»), sort (typ «elpi.tests.test_tactic.2»), + app [c1, c3], sort (typ «elpi.tests.test_tactic.3»)]), + decl c3 `w` c0, + decl c2 `h` + (app + [global (indt «eq»), global (indt «nat»), global (const «o»), + global (const «m»)]), + decl c1 `x` (prod `y` c0 c6 \ sort (typ «elpi.tests.test_tactic.2»)), + decl c0 `T` (sort (typ «elpi.tests.test_tactic.1»)) + ?- evar (X0 c0 c1 c2 c3 c4 c5) (app [c1, c3]) (X1 c0 c1 c2 c3 c4 c5) /* suspended on X0, X1 */ + {c0 c1 c2 c3 c4 c5} : + decl c5 `j` (app [c1, c3]), + decl c4 `e` + (app + [global (indt «eq»), sort (typ «elpi.tests.test_tactic.2»), + app [c1, c3], sort (typ «elpi.tests.test_tactic.3»)]), + decl c3 `w` c0, + decl c2 `h` + (app + [global (indt «eq»), global (indt «nat»), global (const «o»), + global (const «m»)]), + decl c1 `x` (prod `y` c0 c6 \ sort (typ «elpi.tests.test_tactic.2»)), + decl c0 `T` (sort (typ «elpi.tests.test_tactic.1»)) + ?- evar (X2 c0 c1 c2 c3 c4 c5) + (app + [global (indt «eq»), app [c1, c3], X1 c0 c1 c2 c3 c4 c5, + X1 c0 c1 c2 c3 c4 c5]) (X3 c0 c1 c2 c3 c4 c5) /* suspended on X2, X3 */ +Goal: +[] -conj is not universe polymorphic -Arguments conj [A B]%type_scope _ _ -Expands to: Constructor Coq.Init.Logic.conj -(ex_intro (fun t : Prop => True /\ True /\ t) True (conj I (conj I I))) -[int 1, str x, str a b, - trm + +[decl c5 `j` (app [c1, c3]), + decl c4 `e` (app - [global (indt «eq»), X0, - app [global (indc «S»), global (indc «O»)], global (indc «O»)])] -Using H ?p of type Q -Using H ?p of type Q -Using p of type P -[trm c0, trm c3, trm (app [c2, c3])] -found P -found P /\ P -Goal: [decl c0 `x` (global (indt «nat»))] |- X0 c0 : + [global (indt «eq»), sort (typ «elpi.tests.test_tactic.2»), + app [c1, c3], sort (typ «elpi.tests.test_tactic.3»)]), + decl c3 `w` c0, + decl c2 `h` + (app + [global (indt «eq»), global (indt «nat»), global (const «o»), + global (const «m»)]), + decl c1 `x` (prod `y` c0 c6 \ sort (typ «elpi.tests.test_tactic.2»)), + decl c0 `T` (sort (typ «elpi.tests.test_tactic.1»))] +------------ app - [global (indt «eq»), global (indt «nat»), - app - [global (const «Nat.add»), c0, - app [global (indc «S»), global (indc «O»)]], global (indc «O»)] -Proof state: - {c0} : decl c0 `x` (global (indt «nat»)) - ?- evar (X1 c0) + [global (indt «eq»), app [c1, c3], X1 c0 c1 c2 c3 c4 c5, + X1 c0 c1 c2 c3 c4 c5] ?foo = ?foo +Debug: + {c0 c1 c2 c3 c4 c5} : + decl c5 `j` (app [c1, c3]), + decl c4 `e` + (app + [global (indt «eq»), sort (typ «elpi.tests.test_tactic.2»), + app [c1, c3], sort (typ «elpi.tests.test_tactic.3»)]), + decl c3 `w` c0, + decl c2 `h` + (app + [global (indt «eq»), global (indt «nat»), global (const «o»), + global (const «m»)]), + decl c1 `x` (prod `y` c0 c6 \ sort (typ «elpi.tests.test_tactic.2»)), + decl c0 `T` (sort (typ «elpi.tests.test_tactic.1»)) + ?- evar (X0 c0 c1 c2 c3 c4 c5) (app [c1, c3]) (X1 c0 c1 c2 c3 c4 c5) /* suspended on X0, X1 */ + {c0 c1 c2 c3 c4 c5} : + decl c5 `j` (app [c1, c3]), + decl c4 `e` + (app + [global (indt «eq»), sort (typ «elpi.tests.test_tactic.2»), + app [c1, c3], sort (typ «elpi.tests.test_tactic.3»)]), + decl c3 `w` c0, + decl c2 `h` + (app + [global (indt «eq»), global (indt «nat»), global (const «o»), + global (const «m»)]), + decl c1 `x` (prod `y` c0 c6 \ sort (typ «elpi.tests.test_tactic.2»)), + decl c0 `T` (sort (typ «elpi.tests.test_tactic.1»)) + ?- evar (X2 c0 c1 c2 c3 c4 c5) (app - [global (indt «eq»), global (indt «nat»), - app - [global (const «Nat.add»), c0, - app [global (indc «S»), global (indc «O»)]], - global (indc «O»)]) (X0 c0) /* suspended on X1, X0 */ -EVARS: - ?X57==[x |- x + 1 = 0] (goal evar) {?Goal} - ?X56==[ |- => fun x : nat => ?Goal] (goal evar) - ?X55==[x |- => nat] (parameter A of eq) - ?X54==[ |- => nat] (type of x) + [global (indt «eq»), app [c1, c3], X1 c0 c1 c2 c3 c4 c5, + X1 c0 c1 c2 c3 c4 c5]) (X3 c0 c1 c2 c3 c4 c5) /* suspended on X2, X3 */ +Goal: +[] -SHELF:|| -FUTURE GOALS STACK: - || -Rocq-Elpi mapping: -RAW: -?X57 <-> c0 \ X1 c0 -ELAB: -?X57 <-> X0 +[decl c5 `j` (app [c1, c3]), + decl c4 `e` + (app + [global (indt «eq»), sort (typ «elpi.tests.test_tactic.2»), + app [c1, c3], sort (typ «elpi.tests.test_tactic.3»)]), + decl c3 `w` c0, + decl c2 `h` + (app + [global (indt «eq»), global (indt «nat»), global (const «o»), + global (const «m»)]), + decl c1 `x` (prod `y` c0 c6 \ sort (typ «elpi.tests.test_tactic.2»)), + decl c0 `T` (sort (typ «elpi.tests.test_tactic.1»))] +------------ +app + [global (indt «eq»), app [c1, c3], X1 c0 c1 c2 c3 c4 c5, + X1 c0 c1 c2 c3 c4 c5] ?foo = ?foo +Debug: evar (X0) (global (indt «nat»)) X1 /* suspended on X0, X1 */ +X0 global (indt «nat») +Debug: evar (X2) (global (indt «nat»)) X3 /* suspended on X2, X3 */ +hello +eq_refl : one = 1 + : one = 1 +[(c4 \ app [c1, c2]), (c4 \ app [c0, c2]), (c4 \ c4), (c4 \ + prod `x0` (app [c0, c2]) c5 \ + prod `x1` (global (indt «nat»)) c6 \ + sort (typ «elpi.tests.test_tactic.16»))] +[app + [global (indt «eq»), global (indt «nat»), c2, + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]], + sort prop] +1356 + : nat +this 3 app [c4, X0 c0 c1 c2 c3 c4] +app [c3, app [c1, c2], global (const «a»)] foo.bar +[trm c0, trm (app [global (const «Nat.add»), c0, c1])] +Debug: + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[trm c0, trm (app [global (const «Nat.add»), X0 c0 c1, c1])] +Debug: + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X1 c0 c1) (global (indt «nat»)) (X0 c0 c1) /* suspended on X1, X0 */ + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X2 c0 c1) (global (indt «True»)) (X3 c0 c1) /* suspended on X2, X3 */ +[trm c0, trm (app [global (const «Nat.add»), X0 c0 c1, c1])] +Debug: + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X1 c0 c1) (global (indt «True»)) (X2 c0 c1) /* suspended on X1, X2 */ +[trm c0, trm c1] +Debug: + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[trm (app [global (const «Nat.add»), c0, c1])] +Debug: + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[trm (app [global (const «Nat.add»), X0 c0 c1, c1])] +Debug: + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X1 c0 c1) (global (indt «nat»)) (X0 c0 c1) /* suspended on X1, X0 */ + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X2 c0 c1) (global (indt «True»)) (X3 c0 c1) /* suspended on X2, X3 */ +[trm (app [global (const «Nat.add»), X0 c0 c1, c1])] +Debug: + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X1 c0 c1) (global (indt «True»)) (X2 c0 c1) /* suspended on X1, X2 */ +[trm (app [global (indc «O»), global (indc «O»)])] +Debug: + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[trm c0] +Debug: + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[int 1] +Debug: + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[int -1] +Debug: + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[str a] +Debug: + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[str a] +Debug: + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[str x] +Debug: + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[trm (app [global (const «Nat.add»), c0, c1])] +Debug: + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[trm (app [global (const «Nat.add»), X0 c0 c1, c1])] +Debug: + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X1 c0 c1) (global (indt «True»)) (X2 c0 c1) /* suspended on X1, X2 */ +[trm (app [global (const «Nat.add»), X0 c0 c1, c1])] +Debug: + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X1 c0 c1) (global (indt «True»)) (X2 c0 c1) /* suspended on X1, X2 */ +[trm c0] +Debug: + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +YYYYYYYYYYYYYYYYYYYYYYYYYYYY +[attribute elpi.loc + (leaf-loc + File "./tests/test_tactic.v", line 289, column 77, characters 6139-6147:), + attribute elpi.phase (leaf-str interp), attribute foo (leaf-str )] +XXXXXXXXXXXXXXXXXXXXXXXXXXX +[get-option elpi.loc + File "./tests/test_tactic.v", line 289, column 77, characters 6139-6147:, + get-option elpi.phase interp, get-option foo tt] +YYYYYYYYYYYYYYYYYYYYYYYYYYYY +[attribute elpi.loc + (leaf-loc + File "./tests/test_tactic.v", line 289, column 77, characters 6139-6147:), + attribute elpi.phase (leaf-str interp), attribute foo (leaf-str )] +XXXXXXXXXXXXXXXXXXXXXXXXXXX +[get-option elpi.loc + File "./tests/test_tactic.v", line 289, column 77, characters 6139-6147:, + get-option elpi.phase interp, get-option foo tt] +YYYYYYYYYYYYYYYYYYYYYYYYYYYY +[attribute elpi.loc + (leaf-loc + File "./tests/test_tactic.v", line 289, column 77, characters 6139-6147:), + attribute elpi.phase (leaf-str interp), attribute bar (leaf-str )] +XXXXXXXXXXXXXXXXXXXXXXXXXXX +[get-option elpi.loc + File "./tests/test_tactic.v", line 289, column 77, characters 6139-6147:, + get-option elpi.phase interp, get-option bar tt] +YYYYYYYYYYYYYYYYYYYYYYYYYYYY +[attribute elpi.loc + (leaf-loc + File "./tests/test_tactic.v", line 289, column 77, characters 6139-6147:), + attribute elpi.phase (leaf-str interp), attribute foo2 (leaf-str )] +YYYYYYYYYYYYYYYYYYYYYYYYYYYY +[attribute elpi.loc + (leaf-loc + File "./tests/test_tactic.v", line 290, column 77, characters 6226-6234:), + attribute elpi.phase (leaf-str interp), attribute foo (leaf-str )] +XXXXXXXXXXXXXXXXXXXXXXXXXXX +[get-option elpi.loc + File "./tests/test_tactic.v", line 290, column 77, characters 6226-6234:, + get-option elpi.phase interp, get-option foo tt] +[attribute elpi.loc + (leaf-loc + File "./tests/test_tactic.v", line 318, column 10, characters 6808-6814:), + attribute elpi.phase (leaf-str interp)] +Entry binder_constr is +[ LEFTA + [ "exists2"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; ","; term LEVEL + "200"; "&"; term LEVEL "200" + | "exists2"; "'"; pattern LEVEL "0"; ","; term LEVEL "200"; "&"; term LEVEL + "200" + | "exists2"; name; ":"; term LEVEL "200"; ","; term LEVEL "200"; "&"; term + LEVEL "200" + | "exists2"; name; ","; term LEVEL "200"; "&"; term LEVEL "200" + | "exists"; "!"; open_binders; ","; term LEVEL "200" + | "exists"; open_binders; ","; term LEVEL "200" + | "forall"; open_binders; ","; term LEVEL "200" + | "fun"; open_binders; "=>"; term LEVEL "200" + | "let"; "fix"; fix_decl; "in"; term LEVEL "200" + | "let"; "cofix"; cofix_body; "in"; term LEVEL "200" + | "let"; "'"; pattern LEVEL "200"; ":="; term LEVEL "200"; "in"; term LEVEL + "200" + | "let"; "'"; pattern LEVEL "200"; ":="; term LEVEL "200"; case_type; "in"; + term LEVEL "200" + | "let"; "'"; pattern LEVEL "200"; "in"; pattern LEVEL "200"; ":="; term + LEVEL "200"; case_type; "in"; term LEVEL "200" + | "let"; name; binders; let_type_cstr; ":="; term LEVEL "200"; "in"; term + LEVEL "200" + | "let"; [ "("; LIST0 name SEP ","; ")" | "()" ]; as_return_type; ":="; + term LEVEL "200"; "in"; term LEVEL "200" + | "if"; term LEVEL "200"; as_return_type; "then"; term LEVEL "200"; "else"; + term LEVEL "200" + | "fix"; fix_decls + | "cofix"; cofix_decls ] ] -#goals = 2 -[nabla c0 \ - nabla c1 \ - seal - (goal [decl c1 `Q` (sort prop), decl c0 `P` (sort prop)] (X0 c0 c1) c0 - (X1 c0 c1) []), - nabla c0 \ - nabla c1 \ - seal - (goal [decl c1 `Q` (sort prop), decl c0 `P` (sort prop)] (X2 c0 c1) c1 - (X3 c0 c1) [])] -(fun (P Q : Prop) (p : P) (q : Q) => conj ?Goal (conj ?Goal0 ?Goal1)) -(fun (P Q : Prop) (p : P) (q : Q) => conj ?Goal0 (conj ?Goal ?Goal0)) -foo = 46 +Entry constr is +[ LEFTA + [ "@"; global; univ_annot + | term LEVEL "8" ] ] + +Entry lconstr is +[ LEFTA + [ term LEVEL "200" ] ] + +Entry term is +[ "200" RIGHTA + [ ] +| "100" RIGHTA + [ SELF; "<:"; term LEVEL "200" + | SELF; "<<:"; term LEVEL "200" + | SELF; ":>"; term LEVEL "200" + | SELF; ":"; term LEVEL "200" ] +| "99" RIGHTA + [ SELF; "->"; term LEVEL "200" ] +| "95" RIGHTA + [ SELF; "<->"; NEXT ] +| "90" RIGHTA + [ ] +| "85" RIGHTA + [ SELF; "\\/"; term LEVEL "85" ] +| "80" RIGHTA + [ SELF; "/\\"; term LEVEL "80" ] +| "75" RIGHTA + [ "~"; term LEVEL "75" ] +| "70" RIGHTA + [ SELF; ">"; NEXT + | SELF; ">="; NEXT + | SELF; "<"; NEXT; "<="; NEXT + | SELF; "<"; NEXT; "<"; NEXT + | SELF; "<"; NEXT + | SELF; "<="; NEXT; "<"; NEXT + | SELF; "<="; NEXT; "<="; NEXT + | SELF; "<="; NEXT + | SELF; "<>"; NEXT; ":>"; NEXT + | SELF; "<>"; NEXT + | SELF; "="; NEXT; "="; NEXT + | SELF; "="; NEXT; ":>"; NEXT + | SELF; "="; NEXT ] +| "60" RIGHTA + [ SELF; "++"; term LEVEL "60" + | SELF; "::"; term LEVEL "60" ] +| "50" LEFTA + [ SELF; "||"; NEXT + | SELF; "-"; NEXT + | SELF; "+"; NEXT ] +| "40" LEFTA + [ SELF; "&&"; NEXT + | SELF; "/"; NEXT + | SELF; "*"; NEXT ] +| "35" RIGHTA + [ "/"; term LEVEL "35" + | "-"; term LEVEL "35" ] +| "30" RIGHTA + [ SELF; "^"; term LEVEL "30" ] +| LEFTA + [ IDENT "XX"; FIELD "xxx"; LIST0 arg ] +| "10" LEFTA + [ SELF; LIST1 arg + | "@"; global; univ_annot; LIST0 NEXT + | "@"; pattern_ident; LIST1 identref + | binder_constr ] +| "9" LEFTA + [ ".."; term LEVEL "0"; ".." ] +| "8" LEFTA + [ ] +| "1" LEFTA + [ SELF; ".2" + | SELF; ".1" + | SELF; ".("; "@"; global; univ_annot; LIST0 (term LEVEL "9"); ")" + | SELF; ".("; global; univ_annot; LIST0 arg; ")" + | SELF; "%"; IDENT + | SELF; "%_"; IDENT ] +| "0" LEFTA + [ "lib"; ":"; "@"; qualified_name + | "lib"; ":"; qualified_name + | QUOTATION "lp:" + | "{"; "'"; pattern LEVEL "0"; "&"; term LEVEL "200"; "&"; term LEVEL + "200"; "}" + | "{"; "'"; pattern LEVEL "0"; "&"; term LEVEL "200"; "}" + | "{"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; "&"; term LEVEL + "200"; "&"; term LEVEL "200"; "}" + | "{"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; "&"; term LEVEL + "200"; "}" + | "{"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; "|"; term LEVEL + "200"; "&"; term LEVEL "200"; "}" + | "{"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; "|"; term LEVEL + "200"; "}" + | "{"; "'"; pattern LEVEL "0"; "|"; term LEVEL "200"; "&"; term LEVEL + "200"; "}" + | "{"; "'"; pattern LEVEL "0"; "|"; term LEVEL "200"; "}" + | "{"; term LEVEL "99"; "&"; term LEVEL "200"; "&"; term LEVEL "200"; "}" + | "{"; term LEVEL "99"; "&"; term LEVEL "200"; "}" + | "{"; term LEVEL "99"; ":"; term LEVEL "200"; "&"; term LEVEL "200"; "&"; + term LEVEL "200"; "}" + | "{"; term LEVEL "99"; ":"; term LEVEL "200"; "&"; term LEVEL "200"; "}" + | "{"; term LEVEL "99"; ":"; term LEVEL "200"; "|"; term LEVEL "200"; "&"; + term LEVEL "200"; "}" + | "{"; term LEVEL "99"; ":"; term LEVEL "200"; "|"; term LEVEL "200"; "}" + | "{"; term LEVEL "99"; "|"; term LEVEL "200"; "&"; term LEVEL "200"; "}" + | "{"; term LEVEL "99"; "|"; term LEVEL "200"; "}" + | "{"; term LEVEL "99"; "}" + | IDENT "ltac"; ":"; "("; ltac_expr; ")" + | "("; term LEVEL "200"; ","; term LEVEL "200"; ","; LIST1 (term LEVEL + "200") SEP ","; ")" + | "("; term LEVEL "200"; ","; term LEVEL "200"; ")" + | "("; term LEVEL "200"; ")" + | "{|"; record_declaration; '|}' + | "`{"; term LEVEL "200"; "}" + | "`("; term LEVEL "200"; ")" + | NUMBER + | atomic_constr + | term_match + | ident; fields; univ_annot + | ident; univ_annot + | string + | test_array_opening; "["; "|"; array_elems; "|"; lconstr; type_cstr; + test_array_closing; "|"; "]"; univ_annot ] ] + +[attribute elpi.loc + (leaf-loc + File "./tests/test_tactic.v", line 329, column 12, characters 7061-7082:), + attribute elpi.phase (leaf-str interp)] +skip int 1 +skip str 33 +skip trm (global (indt «bool»)) +[attribute elpi.loc + (leaf-loc + File "./tests/test_tactic.v", line 329, column 12, characters 7061-7082:), + attribute elpi.phase (leaf-str interp)] +skip int 1 +skip str 33 +skip trm (global (indt «bool»)) +nat -> bool -> True + : Prop +[attribute elpi.loc + (leaf-loc + File "./tests/test_tactic.v", line 338, column 12, characters 7247-7268:), + attribute elpi.phase (leaf-str interp)] +[attribute elpi.loc + (leaf-loc + File "./tests/test_tactic.v", line 338, column 12, characters 7247-7268:), + attribute elpi.phase (leaf-str interp)] +[attribute elpi.loc + (leaf-loc + File "./tests/test_tactic.v", line 342, column 30, characters 7348-7354:), + attribute elpi.phase (leaf-str interp)] +[attribute elpi.loc + (leaf-loc + File "./tests/test_tactic.v", line 342, column 30, characters 7348-7354:), + attribute elpi.phase (leaf-str interp)] +[attribute elpi.loc + (leaf-loc + File "./tests/test_tactic.v", line 350, column 7, characters 7524-7530:), + attribute elpi.phase (leaf-str interp)] +[attribute elpi.loc + (leaf-loc + File "./tests/test_tactic.v", line 350, column 7, characters 7524-7530:), + attribute elpi.phase (leaf-str interp)] +H +goal [] (X0) (global (indt «True»)) (X1) [trm (global (const «H»))] +goal [] (X0) (global (indt «True»)) (X1) + [trm + (app + [global (indt «eq»), global (indt «True»), global (const «H»), + global (const «H»)])] +goal [] (X0) (global (indt «True»)) (X1) [trm (global (const «H»))] +Debug: run 1 {{{ + +Debug: + rid:0 step:1 gid:4 user:curgoal = , + pi c0 \ + pi c1 \ + declare-evar + [decl c1 `x0` (global (indt «nat»)), + decl c0 `x` (global (indt «nat»))] + (X0 c0 c1) + (prod `y` (global (indt «nat»)) c2 \ + app + [global (indt «eq»), + global (indt «nat»), c0, + app + [global (const «Nat.add»), + app + [global (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], c2], c1]]) + (X1 c0 c1) , + attributes + [attribute elpi.loc + (leaf-loc + File "./tests/test_tactic.v", line 408, column 5, characters 8815-8821:), + attribute elpi.phase (leaf-str interp)] + => + (msolve + [nabla c0 \ + nabla c1 \ + seal + (goal + [decl c1 `x0` + (global (indt «nat»)), + decl c0 `x` + (global (indt «nat»))] + (X0 c0 c1) + (prod `y` + (global (indt «nat»)) c2 \ + app + [global (indt «eq»), + global (indt «nat»), c0, + app + [global (const «Nat.add»), + app + [global + (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], + c2], c1]]) (X1 c0 c1) [])] + (X2) ; + coq.ltac.all (coq.ltac.open solve) + [nabla c0 \ + nabla c1 \ + seal + (goal + [decl c1 `x0` + (global (indt «nat»)), + decl c0 `x` + (global (indt «nat»))] + (X0 c0 c1) + (prod `y` + (global (indt «nat»)) c2 \ + app + [global (indt «eq»), + global (indt «nat»), c0, + app + [global (const «Nat.add»), + app + [global + (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], + c2], c1]]) (X1 c0 c1) [])] + (X2)) + +Debug: + rid:0 step:1 gid:4 user:rule = and + +Debug: + rid:0 step:1 gid:4 user:subgoal = 5 + +Debug: + rid:0 step:1 gid:5 user:newgoal = pi c0 \ + pi c1 \ + declare-evar + [decl c1 `x0` (global (indt «nat»)), + decl c0 `x` (global (indt «nat»))] + (X0 c0 c1) + (prod `y` (global (indt «nat»)) c2 \ + app + [global (indt «eq»), + global (indt «nat»), c0, + app + [global (const «Nat.add»), + app + [global (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], c2], c1]]) + (X1 c0 c1) + +Debug: + rid:0 step:1 gid:4 user:subgoal = 6 + +Debug: + rid:0 step:1 gid:6 user:newgoal = attributes + [attribute elpi.loc + (leaf-loc + File "./tests/test_tactic.v", line 408, column 5, characters 8815-8821:), + attribute elpi.phase (leaf-str interp)] + => + (msolve + [nabla c0 \ + nabla c1 \ + seal + (goal + [decl c1 `x0` + (global (indt «nat»)), + decl c0 `x` + (global (indt «nat»))] + (X0 c0 c1) + (prod `y` (global (indt «nat»)) + c2 \ + app + [global (indt «eq»), + global (indt «nat»), c0, + app + [global (const «Nat.add»), + app + [global (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], c2], + c1]]) (X1 c0 c1) [])] (X2) ; + coq.ltac.all (coq.ltac.open solve) + [nabla c0 \ + nabla c1 \ + seal + (goal + [decl c1 `x0` + (global (indt «nat»)), + decl c0 `x` + (global (indt «nat»))] + (X0 c0 c1) + (prod `y` + (global (indt «nat»)) c2 \ + app + [global (indt «eq»), + global (indt «nat»), c0, + app + [global (const «Nat.add»), + app + [global + (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], + c2], c1]]) (X1 c0 c1) [])] + (X2)) + +Debug: + rid:0 step:1 gid:4 user:rule:and = success + +Debug: }}} -> (0.003s) +Debug: run 2 {{{ + +Debug: + rid:0 step:2 gid:5 user:curgoal = pi + pi c0 \ + pi c1 \ + declare-evar + [decl c1 `x0` (global (indt «nat»)), + decl c0 `x` (global (indt «nat»))] + (X0 c0 c1) + (prod `y` (global (indt «nat»)) c2 \ + app + [global (indt «eq»), + global (indt «nat»), c0, + app + [global (const «Nat.add»), + app + [global (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], c2], c1]]) + (X1 c0 c1) + +Debug: rid:0 step:2 gid:5 user:rule = pi + +Debug: + rid:0 step:2 gid:5 user:subgoal = 7 + +Debug: + rid:0 step:2 gid:7 user:newgoal = pi c1 \ + declare-evar + [decl c1 `x0` (global (indt «nat»)), + decl c0 `x` (global (indt «nat»))] + (X0 c0 c1) + (prod `y` (global (indt «nat»)) c2 \ + app + [global (indt «eq»), + global (indt «nat»), c0, + app + [global (const «Nat.add»), + app + [global (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], c2], c1]]) + (X1 c0 c1) + +Debug: + rid:0 step:2 gid:7 user:rule:pi = success + +Debug: }}} -> (0.001s) +Debug: run 3 {{{ + +Debug: + rid:0 step:3 gid:7 user:curgoal = pi + pi c1 \ + declare-evar + [decl c1 `x0` (global (indt «nat»)), + decl c0 `x` (global (indt «nat»))] + (X0 c0 c1) + (prod `y` (global (indt «nat»)) c2 \ + app + [global (indt «eq»), + global (indt «nat»), c0, + app + [global (const «Nat.add»), + app + [global (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], c2], c1]]) + (X1 c0 c1) + +Debug: rid:0 step:3 gid:7 user:rule = pi + +Debug: + rid:0 step:3 gid:7 user:subgoal = 8 + +Debug: + rid:0 step:3 gid:8 user:newgoal = declare-evar + [decl c1 `x0` (global (indt «nat»)), + decl c0 `x` (global (indt «nat»))] + (X0 c0 c1) + (prod `y` (global (indt «nat»)) c2 \ + app + [global (indt «eq»), + global (indt «nat»), c0, + app + [global (const «Nat.add»), + app + [global (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], c2], c1]]) + (X1 c0 c1) + +Debug: + rid:0 step:3 gid:8 user:rule:pi = success + +Debug: }}} -> (0.001s) +Debug: run 4 {{{ + +Debug: + rid:0 step:4 gid:8 user:curgoal = declare-evar + declare-evar + [decl c1 `x0` (global (indt «nat»)), + decl c0 `x` (global (indt «nat»))] + (X0 c0 c1) + (prod `y` (global (indt «nat»)) c2 \ + app + [global (indt «eq»), + global (indt «nat»), c0, + app + [global (const «Nat.add»), + app + [global (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], c2], c1]]) + (X1 c0 c1) + +Debug: + rid:0 step:4 gid:8 user:rule = backchain + +Debug: + rid:0 step:4 gid:8 user:rule:backchain:candidates = File "coq-builtin.elpi", line 270, column 0, characters 10866-10986: + +Debug: }}} -> (0.000s) +Debug: select 5 {{{ + +Debug: + rid:0 step:4 gid:8 user:rule:backchain:try = File "coq-builtin.elpi", line 270, column 0, characters 10866-10986: + (declare-evar A0 A1 A2 A3) :- ( + declare_constraint + (declare-evar A0 A1 A2 A3) + [A1]). + +Debug: + rid:0 step:4 gid:0 user:assign = A0 := [decl c1 `x0` (global (indt «nat»)), + decl c0 `x` (global (indt «nat»))] + +Debug: + rid:0 step:4 gid:0 user:assign = A1 := X0 c0 c1 + +Debug: + rid:0 step:4 gid:0 user:assign = A2 := prod `y` (global (indt «nat»)) c2 \ + app + [global (indt «eq»), + global (indt «nat»), c0, + app + [global (const «Nat.add»), + app + [global (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], c2], c1]] + +Debug: + rid:0 step:4 gid:0 user:assign = A3 := X1 c0 c1 + +Debug: + rid:0 step:4 gid:8 user:subgoal = 9 + +Debug: + rid:0 step:4 gid:9 user:newgoal = declare_constraint + (declare-evar + [decl c1 `x0` (global (indt «nat»)), + decl c0 `x` (global (indt «nat»))] + (X0 c0 c1) + (prod `y` (global (indt «nat»)) c2 \ + app + [global (indt «eq»), + global (indt «nat»), c0, + app + [global (const «Nat.add»), + app + [global (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], c2], c1]]) + (X1 c0 c1)) [X0 c0 c1] + +Debug: + rid:0 step:4 gid:9 user:rule:backchain = success + +Debug: }}} -> (0.001s) +Debug: run 5 {{{ + +Debug: + rid:0 step:5 gid:9 user:curgoal = declare_constraint + declare_constraint + (declare-evar + [decl c1 `x0` (global (indt «nat»)), + decl c0 `x` (global (indt «nat»))] + (X0 c0 c1) + (prod `y` (global (indt «nat»)) c2 \ + app + [global (indt «eq»), + global (indt «nat»), c0, + app + [global (const «Nat.add»), + app + [global (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], c2], c1]]) + (X1 c0 c1)) [X0 c0 c1] + +Debug: + rid:0 step:5 gid:9 user:rule = builtin + +Debug: + rid:0 step:5 gid:9 user:rule:builtin:name = declare_constraint + +Debug: + rid:0 step:5 gid:9 user:subgoal = 10 + +Debug: + rid:0 step:5 gid:10 user:newgoal = declare-evar + [decl c1 `x0` (global (indt «nat»)), + decl c0 `x` (global (indt «nat»))] + (X0 c0 c1) + (prod `y` (global (indt «nat»)) c2 \ + app + [global (indt «eq»), + global (indt «nat»), c0, + app + [global (const «Nat.add»), + app + [global (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], c2], c1]]) + (X1 c0 c1) + +Debug: + rid:0 step:5 gid:9 user:rule:builtin = success + +Debug: }}} -> (0.001s) +Debug: run 6 {{{ + +Debug: + rid:0 step:6 gid:10 user:CHR:try = File "coq-builtin.elpi", line 282, column 53, characters 11370-11475: + \ (declare-evar A0 A1 A2 A3) + <=> (A0 => evar A1 A2 A3) + +Debug: + rid:1 step:0 gid:0 user:assign = A0 := [decl c1 `x0` (global (indt «nat»)), + decl c0 `x` (global (indt «nat»))] + +Debug: + rid:1 step:0 gid:0 user:assign = A1 := uvar frozen--888 [c0, c1] + +Debug: + rid:1 step:0 gid:0 user:assign = A2 := prod `y` (global (indt «nat»)) c2 \ + app + [global (indt «eq»), + global (indt «nat»), c0, + app + [global (const «Nat.add»), + app + [global (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], c2], c1]] + +Debug: + rid:1 step:0 gid:0 user:assign = A3 := uvar frozen--889 [c0, c1] + +Debug: + rid:1 step:0 gid:11 user:newgoal = true + +Debug: run 1 {{{ + +Debug: + rid:1 step:1 gid:11 user:curgoal = true + true + +Debug: + rid:1 step:1 gid:11 user:rule = backchain + +Debug: + rid:1 step:1 gid:11 user:rule:backchain:candidates = File "elpi-builtin.elpi", line 11, column 0, characters 147-151: + +Debug: }}} -> (0.000s) +Debug: select 2 {{{ + +Debug: + rid:1 step:1 gid:11 user:rule:backchain:try = File "elpi-builtin.elpi", line 11, column 0, characters 147-151: + true :- . + +Debug: + rid:1 step:1 gid:11 user:rule:backchain = success + +Debug: }}} -> (0.000s) +Debug: + rid:0 step:6 gid:10 user:subgoal = 12 + +Debug: + rid:0 step:6 gid:12 user:newgoal = _ => + [decl c1 `x0` (global (indt «nat»)), + decl c0 `x` (global (indt «nat»))] => + evar (X0 c0 c1) + (prod `y` (global (indt «nat»)) c2 \ + app + [global (indt «eq»), + global (indt «nat»), c0, + app + [global (const «Nat.add»), + app + [global (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], c2], c1]]) + (X1 c0 c1) + +Debug: + rid:0 step:6 gid:10 user:CHR:rule-fired = File "coq-builtin.elpi", line 282, column 53, characters 11370-11475: + +Debug: + rid:0 step:6 gid:10 user:CHR:rule-remove-constraints = 10 + +Debug: + rid:0 step:6 gid:0 user:CHR:store:before = 10 + {c0 c1} : + declare-evar + [decl c1 `x0` + (global (indt «nat»)), + decl c0 `x` + (global (indt «nat»))] + (X0 c0 c1) + (prod `y` + (global (indt «nat»)) c2 \ + app + [global (indt «eq»), + global (indt «nat»), + c0, + app + [global + (const «Nat.add»), + app + [global + (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], + c2], c1]]) ( + X1 c0 c1) /* suspended on X0 */ + +Debug: + rid:0 step:6 gid:12 user:CHR:resumed = _ => + [decl c1 `x0` (global (indt «nat»)), + decl c0 `x` (global (indt «nat»))] + => + evar (X0 c0 c1) + (prod `y` (global (indt «nat»)) + c2 \ + app + [global (indt «eq»), + global (indt «nat»), c0, + app + [global (const «Nat.add»), + app + [global (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], c2], + c1]]) (X1 c0 c1) + +Debug: }}} -> (0.002s) +Debug: run 7 {{{ + +Debug: + rid:0 step:7 gid:12 user:curgoal = => + _ => + [decl c1 `x0` (global (indt «nat»)), + decl c0 `x` (global (indt «nat»))] => + evar (X0 c0 c1) + (prod `y` (global (indt «nat»)) c2 \ + app + [global (indt «eq»), + global (indt «nat»), c0, + app +...TRUNCATED BY DUNE... + +Debug: + rid:4 step:103 gid:0 user:assign:simplify:stack:arg = A0 := X40 + +Debug: + rid:4 step:103 gid:0 user:assign:HO = X40 := c0 \ + nabla c1 \ + nabla c2 \ + nabla c3 \ + seal + (goal + [decl c3 `w` + (global (indt «nat»)), + decl c2 `z` + (global (indt «nat»)), + decl c1 `x` + (global (indt «nat»))] + (X26 c1 c2 c3) + (app + [global (indt «eq»), + global (indt «nat»), c1, + app + [global (const «Nat.add»), + app + [global (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], c3], + c2]]) (X22 c1 c2 c3) []) + +Debug: + rid:4 step:103 gid:0 user:assign:simplify:stack:arg = A1 := X41 + +Debug: + rid:4 step:103 gid:0 user:assign:HO = X41 := c0 \ + [] + +Debug: + rid:4 step:103 gid:0 user:assign = X7 := [nabla c0 \ + nabla c1 \ + nabla c2 \ + nabla c3 \ + seal + (goal + [decl c3 `w` + (global (indt «nat»)), + decl c2 `z` + (global (indt «nat»)), + decl c1 `x` + (global (indt «nat»))] + (X26 c1 c2 c3) + (app + [global (indt «eq»), + global (indt «nat»), + c1, + app + [global + (const «Nat.add»), + app + [global + (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], + c3], c2]]) + (X22 c1 c2 c3) []) | X42] + +Debug: + rid:4 step:103 gid:157 user:subgoal = 241 + +Debug: + rid:4 step:103 gid:241 user:newgoal = pi c0 \ + occurs c0 + (nabla c1 \ + nabla c2 \ + nabla c3 \ + seal + (goal + [decl c3 `w` + (global (indt «nat»)), + decl c2 `z` + (global (indt «nat»)), + decl c1 `x` + (global (indt «nat»))] + (X26 c1 c2 c3) + (app + [global (indt «eq»), + global (indt «nat»), c1, + app + [global + (const «Nat.add»), + app + [global + (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], + c3], c2]]) + (X22 c1 c2 c3) [])) + +Debug: + rid:4 step:103 gid:241 user:subgoal = 242 + +Debug: + rid:4 step:103 gid:242 user:newgoal = ! + +Debug: + rid:4 step:103 gid:241 user:subgoal = 243 + +Debug: + rid:4 step:103 gid:243 user:newgoal = coq.ltac.private.distribute-nabla (c0 \ + []) X42 + +Debug: + rid:4 step:103 gid:241 user:rule:backchain = success + +Debug: }}} -> (0.002s) +Debug: run 104 {{{ + +Debug: + rid:4 step:104 gid:241 user:curgoal = pi + pi c0 \ + occurs c0 + (nabla c1 \ + nabla c2 \ + nabla c3 \ + seal + (goal + [decl c3 `w` + (global (indt «nat»)), + decl c2 `z` + (global (indt «nat»)), + decl c1 `x` + (global (indt «nat»))] + (X26 c1 c2 c3) + (app + [global (indt «eq»), + global (indt «nat»), c1, + app + [global + (const «Nat.add»), + app + [global + (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], + c3], c2]]) + (X22 c1 c2 c3) [])) + +Debug: + rid:4 step:104 gid:241 user:rule = pi + +Debug: + rid:4 step:104 gid:241 user:subgoal = 244 + +Debug: + rid:4 step:104 gid:244 user:newgoal = occurs c0 + (nabla c1 \ + nabla c2 \ + nabla c3 \ + seal + (goal + [decl c3 `w` + (global (indt «nat»)), + decl c2 `z` + (global (indt «nat»)), + decl c1 `x` + (global (indt «nat»))] + (X26 c1 c2 c3) + (app + [global (indt «eq»), + global (indt «nat»), c1, + app + [global (const «Nat.add»), + app + [global + (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], + c3], c2]]) + (X22 c1 c2 c3) [])) + +Debug: + rid:4 step:104 gid:244 user:rule:pi = success + +Debug: }}} -> (0.000s) +Debug: run 105 {{{ + +Debug: + rid:4 step:105 gid:244 user:curgoal = occurs + occurs c0 + (nabla c1 \ + nabla c2 \ + nabla c3 \ + seal + (goal + [decl c3 `w` + (global (indt «nat»)), + decl c2 `z` + (global (indt «nat»)), + decl c1 `x` + (global (indt «nat»))] + (X26 c1 c2 c3) + (app + [global (indt «eq»), + global (indt «nat»), c1, + app + [global (const «Nat.add»), + app + [global + (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], + c3], c2]]) + (X22 c1 c2 c3) [])) + +Debug: + rid:4 step:105 gid:244 user:rule = builtin + +Debug: + rid:4 step:105 gid:244 user:rule:builtin:name = occurs + +Debug: + rid:4 step:105 gid:244 user:rule:builtin = fail + +Debug: }}} -> (0.000s) +Debug: run 106 {{{ + +Debug: + rid:4 step:106 gid:157 user:curgoal = coq.ltac.private.distribute-nabla + coq.ltac.private.distribute-nabla (c0 \ + [nabla c1 \ + nabla c2 \ + nabla c3 \ + seal + (goal + [decl c3 `w` + (global (indt «nat»)), + decl c2 `z` + (global (indt «nat»)), + decl c1 `x` + (global (indt «nat»))] + (X26 c1 c2 c3) + (app + [global (indt «eq»), + global (indt «nat»), c1, + app + [global (const «Nat.add»), + app + [global + (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], + c3], c2]]) + (X22 c1 c2 c3) [])]) X7 + +Debug: + rid:4 step:106 gid:157 user:rule = backchain + +Debug: + rid:4 step:106 gid:157 user:rule:backchain:candidates = File "/build/reproducible-path/coq-elpi-2.5.0/elpi/elpi-ltac.elpi", line 119, column 0, characters 4642-4704: + +Debug: }}} -> (0.000s) +Debug: select 52 {{{ + +Debug: + rid:4 step:106 gid:157 user:rule:backchain:try = File "/build/reproducible-path/coq-elpi-2.5.0/elpi/elpi-ltac.elpi", line 119, column 0, characters 4642-4704: + (coq.ltac.private.distribute-nabla + (c0 \ [A2 | (A0 c0)]) + [A2 | A1]) :- (coq.ltac.private.distribute-nabla + A0 A1). + +Debug: + rid:4 step:106 gid:0 user:assign = A2 := nabla c0 \ + nabla c1 \ + nabla c2 \ + seal + (goal + [decl c2 `w` + (global (indt «nat»)), + decl c1 `z` + (global (indt «nat»)), + decl c0 `x` + (global (indt «nat»))] + (X26 c0 c1 c2) + (app + [global (indt «eq»), + global (indt «nat»), c0, + app + [global + (const «Nat.add»), + app + [global + (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], + c2], c1]]) + (X22 c0 c1 c2) []) + +Debug: + rid:4 step:106 gid:0 user:assign:simplify:stack:arg = A0 := X43 + +Debug: + rid:4 step:106 gid:0 user:assign:HO = X43 := c0 \ + [] + +Debug: + rid:4 step:106 gid:0 user:assign = X7 := [nabla c0 \ + nabla c1 \ + nabla c2 \ + seal + (goal + [decl c2 `w` + (global (indt «nat»)), + decl c1 `z` + (global (indt «nat»)), + decl c0 `x` + (global (indt «nat»))] + (X26 c0 c1 c2) + (app + [global (indt «eq»), + global (indt «nat»), + c0, + app + [global + (const «Nat.add»), + app + [global + (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], + c2], c1]]) + (X22 c0 c1 c2) []) | X44] + +Debug: + rid:4 step:106 gid:157 user:subgoal = 245 + +Debug: + rid:4 step:106 gid:245 user:newgoal = coq.ltac.private.distribute-nabla (c0 \ + []) X44 + +Debug: + rid:4 step:106 gid:245 user:rule:backchain = success + +Debug: }}} -> (0.001s) +Debug: run 107 {{{ + +Debug: + rid:4 step:107 gid:245 user:curgoal = coq.ltac.private.distribute-nabla + coq.ltac.private.distribute-nabla (c0 \ + []) X44 + +Debug: + rid:4 step:107 gid:245 user:rule = backchain + +Debug: + rid:4 step:107 gid:245 user:rule:backchain:candidates = File "/build/reproducible-path/coq-elpi-2.5.0/elpi/elpi-ltac.elpi", line 116, column 0, characters 4512-4539: + File "/build/reproducible-path/coq-elpi-2.5.0/elpi/elpi-ltac.elpi", line 117, column 0, characters 4541-4640: + File "/build/reproducible-path/coq-elpi-2.5.0/elpi/elpi-ltac.elpi", line 119, column 0, characters 4642-4704: + +Debug: }}} -> (0.000s) +Debug: select 53 {{{ + +Debug: + rid:4 step:107 gid:245 user:rule:backchain:try = File "/build/reproducible-path/coq-elpi-2.5.0/elpi/elpi-ltac.elpi", line 116, column 0, characters 4512-4539: + (coq.ltac.private.distribute-nabla + (c0 \ []) []) :- . + +Debug: + rid:4 step:107 gid:0 user:assign = X44 := [] + +Debug: + rid:4 step:107 gid:245 user:rule:backchain = success + +Debug: }}} -> (0.000s) +Debug: run 108 {{{ + +Debug: + rid:4 step:108 gid:154 user:curgoal = coq.ltac.all + coq.ltac.all (coq.ltac.open solve) [] + X8 + +Debug: + rid:4 step:108 gid:154 user:rule = backchain + +Debug: + rid:4 step:108 gid:154 user:rule:backchain:candidates = File "/build/reproducible-path/coq-elpi-2.5.0/elpi/elpi-ltac.elpi", line 62, column 0, characters 2339-2350: + +Debug: }}} -> (0.001s) +Debug: select 54 {{{ + +Debug: + rid:4 step:108 gid:154 user:rule:backchain:try = File "/build/reproducible-path/coq-elpi-2.5.0/elpi/elpi-ltac.elpi", line 62, column 0, characters 2339-2350: + (coq.ltac.all _ [] []) :- . + +Debug: + rid:4 step:108 gid:0 user:assign = X8 := [] + +Debug: + rid:4 step:108 gid:154 user:rule:backchain = success + +Debug: }}} -> (0.000s) +Debug: run 109 {{{ + +Debug: + rid:4 step:109 gid:155 user:curgoal = std.append + std.append + [nabla c0 \ + nabla c1 \ + nabla c2 \ + seal + (goal + [decl c2 `w` + (global (indt «nat»)), + decl c1 `z` + (global (indt «nat»)), + decl c0 `x` + (global (indt «nat»))] + (X26 c0 c1 c2) + (app + [global (indt «eq»), + global (indt «nat»), c0, + app + [global (const «Nat.add»), + app + [global + (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], + c2], c1]]) + (X22 c0 c1 c2) [])] [] (X2) + +Debug: + rid:4 step:109 gid:155 user:rule = backchain + +Debug: + rid:4 step:109 gid:155 user:rule:backchain:candidates = File "builtin_stdlib.elpi", line 86, column 0, characters 2798-2838: + +Debug: }}} -> (0.000s) +Debug: select 55 {{{ + +Debug: + rid:4 step:109 gid:155 user:rule:backchain:try = File "builtin_stdlib.elpi", line 86, column 0, characters 2798-2838: + (std.append [A3 | A0] A1 + [A3 | A2]) :- (std.append + A0 A1 A2). + +Debug: + rid:4 step:109 gid:0 user:assign = A3 := nabla c0 \ + nabla c1 \ + nabla c2 \ + seal + (goal + [decl c2 `w` + (global (indt «nat»)), + decl c1 `z` + (global (indt «nat»)), + decl c0 `x` + (global (indt «nat»))] + (X26 c0 c1 c2) + (app + [global (indt «eq»), + global (indt «nat»), c0, + app + [global + (const «Nat.add»), + app + [global + (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], + c2], c1]]) + (X22 c0 c1 c2) []) + +Debug: + rid:4 step:109 gid:0 user:assign = A0 := [] + +Debug: + rid:4 step:109 gid:0 user:assign = A1 := [] + +Debug: + rid:4 step:109 gid:0 user:assign:resume = 230 + +Debug: + rid:4 step:109 gid:0 user:assign:resume = 230 + +Debug: + rid:4 step:109 gid:0 user:assign:HO = X2 := [nabla c0 \ + nabla c1 \ + nabla c2 \ + seal + (goal + [decl c2 `w` + (global (indt «nat»)), + decl c1 `z` + (global (indt «nat»)), + decl c0 `x` + (global (indt «nat»))] + (X45 c0 c1 c2) + (app + [global (indt «eq»), + global (indt «nat»), + c0, + app + [global + (const «Nat.add»), + app + [global + (const «Nat.add»), + app + [global + (indc «S»), + global + (indc «O»)], + c2], c1]]) + (X46 c0 c1 c2) []) | X47] + +Debug: + rid:4 step:109 gid:155 user:subgoal = 246 + +Debug: + rid:4 step:109 gid:246 user:newgoal = std.append [] [] X47 + +Debug: + rid:4 step:109 gid:246 user:rule:backchain = success + +Debug: }}} -> (0.001s) +Debug: run 110 {{{ + +Debug: + rid:4 step:110 gid:0 user:rule = resume + +Debug: + rid:4 step:110 gid:230 user:rule:resume:resumed = evar (X45 c2 c3 c4) + (app + [global (indt «eq»), + global (indt «nat»), + c2, + app + [global + (const «Nat.add»), + app + [global + (const «Nat.add»), + app + [global + (indc «S»), + global + (indc «O»)], + c4], c3]]) + (X46 c2 c3 c4) + +Debug: + rid:4 step:110 gid:0 user:rule:resume = success + +Debug: }}} -> (0.000s) +Debug: run 111 {{{ + +Debug: + rid:4 step:111 gid:230 user:curgoal = evar + evar (X45 c2 c3 c4) + (app + [global (indt «eq»), + global (indt «nat»), c2, + app + [global (const «Nat.add»), + app + [global (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], c4], c3]]) + (X46 c2 c3 c4) + +Debug: + rid:4 step:111 gid:230 user:rule = backchain + +Debug: + rid:4 step:111 gid:230 user:rule:backchain:candidates = File "coq-builtin.elpi", line 301, column 0, characters 12083-12186: + File "/build/reproducible-path/coq-elpi-2.5.0/elpi/coq-elaborator.elpi", line 7, column 0, characters 296-388: + File "/build/reproducible-path/coq-elpi-2.5.0/elpi/coq-elaborator.elpi", line 11, column 0, characters 391-621: + File "/build/reproducible-path/coq-elpi-2.5.0/elpi/coq-elaborator.elpi", line 16, column 0, characters 624-744: + File "coq-builtin.elpi", line 304, column 0, characters 12189-12227: + +Debug: }}} -> (0.000s) +Debug: select 56 {{{ + +Debug: + rid:4 step:111 gid:230 user:rule:backchain:try = File "coq-builtin.elpi", line 301, column 0, characters 12083-12186: + (evar (as uvar A3) A2 A0) :- ( + var A0 _ A1), (!), + (prune A2 A1), + (prune A3 A1), + (declare_constraint + (evar A3 A2 A0) [ + A3, A0]). + +Debug: + rid:4 step:111 gid:0 user:assign = A3 := X45 c2 c3 c4 + +Debug: + rid:4 step:111 gid:0 user:assign = A2 := app + [global (indt «eq»), + global (indt «nat»), c2, + app + [global (const «Nat.add»), + app + [global (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], c4], + c3]] + +Debug: + rid:4 step:111 gid:0 user:assign = A0 := X46 c2 c3 c4 + +Debug: + rid:4 step:111 gid:230 user:subgoal = 247 + +Debug: + rid:4 step:111 gid:247 user:newgoal = var (X46 c2 c3 c4) _ X48^5 + +Debug: + rid:4 step:111 gid:247 user:subgoal = 248 + +Debug: + rid:4 step:111 gid:248 user:newgoal = ! + +Debug: + rid:4 step:111 gid:247 user:subgoal = 249 + +Debug: + rid:4 step:111 gid:249 user:newgoal = prune + (app + [global (indt «eq»), + global (indt «nat»), c2, + app + [global (const «Nat.add»), + app + [global (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], c4], c3]]) + X48^5 + +Debug: + rid:4 step:111 gid:247 user:subgoal = 250 + +Debug: + rid:4 step:111 gid:250 user:newgoal = prune (X45 c2 c3 c4) X48^5 + +Debug: + rid:4 step:111 gid:247 user:subgoal = 251 + +Debug: + rid:4 step:111 gid:251 user:newgoal = declare_constraint + (evar (X45 c2 c3 c4) + (app + [global (indt «eq»), + global (indt «nat»), c2, + app + [global (const «Nat.add»), + app + [global (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], c4], + c3]]) (X46 c2 c3 c4)) + [X45 c2 c3 c4, X46 c2 c3 c4] + +Debug: + rid:4 step:111 gid:247 user:rule:backchain = success + +Debug: }}} -> (0.002s) +Debug: run 112 {{{ + +Debug: + rid:4 step:112 gid:247 user:curgoal = var + var (X46 c2 c3 c4) _ X48^5 + +Debug: + rid:4 step:112 gid:247 user:rule = builtin + +Debug: + rid:4 step:112 gid:247 user:rule:builtin:name = var + +Debug: + rid:4 step:112 gid:247 user:rule:builtin = success + +Debug: + rid:4 step:112 gid:247 user:subgoal = 252 + +Debug: + rid:4 step:112 gid:252 user:newgoal = X48^5 = [c2, c3, c4] + +Debug: }}} -> (0.000s) +Debug: run 113 {{{ + +Debug: + rid:4 step:113 gid:252 user:curgoal = = + X48^5 = [c2, c3, c4] + +Debug: + rid:4 step:113 gid:252 user:rule = eq + +Debug: + rid:4 step:113 gid:252 user:rule:builtin:name = = + +Debug: + rid:4 step:113 gid:0 user:assign = X48^5 := [c2, c3, c4] + +Debug: + rid:4 step:113 gid:252 user:rule:eq = success + +Debug: }}} -> (0.000s) +Debug: run 114 {{{ + +Debug: + rid:4 step:114 gid:248 user:curgoal = ! + ! + +Debug: }}} -> (0.000s) +Debug: + rid:4 step:114 gid:248 user:rule = cut + +Debug: + rid:4 step:114 gid:0 user:rule:cut:branch = 230 + File "/build/reproducible-path/coq-elpi-2.5.0/elpi/coq-elaborator.elpi", line 7, column 0, characters 296-388: + (evar A1 A2 A0) :- (var A0), + (!), (of A1 A2 A0). + +Debug: + rid:4 step:114 gid:0 user:rule:cut:branch = 230 + File "/build/reproducible-path/coq-elpi-2.5.0/elpi/coq-elaborator.elpi", line 11, column 0, characters 391-621: + (evar A2 A1 A0) :- (not (var A0)), + (same_term A1 (sort prop)), + (coq.version _ 8 17 _), (!), + (hack-8-17.propagate-Prop-constraint-inward + A0), + (coq.typecheck A0 A1 ok), + (A2 = A0). + +Debug: + rid:4 step:114 gid:0 user:rule:cut:branch = 230 + File "/build/reproducible-path/coq-elpi-2.5.0/elpi/coq-elaborator.elpi", line 16, column 0, characters 624-744: + (evar A2 A1 A0) :- (not (var A0)), + (!), (coq.typecheck A0 A1 ok), + (A2 = A0). + +Debug: + rid:4 step:114 gid:0 user:rule:cut:branch = 230 + File "coq-builtin.elpi", line 304, column 0, characters 12189-12227: + (evar _ _ _) :- . + +Debug: + rid:4 step:114 gid:248 user:rule:cut = success + +Debug: run 115 {{{ + +Debug: + rid:4 step:115 gid:249 user:curgoal = prune + prune + (app + [global (indt «eq»), + global (indt «nat»), c2, + app + [global (const «Nat.add»), + app + [global (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], c4], c3]]) + [c2, c3, c4] + +Debug: + rid:4 step:115 gid:249 user:rule = builtin + +Debug: + rid:4 step:115 gid:249 user:rule:builtin:name = prune + +Debug: + rid:4 step:115 gid:249 user:rule:builtin = success + +Debug: + rid:4 step:115 gid:249 user:subgoal = 253 + +Debug: + rid:4 step:115 gid:253 user:newgoal = app + [global (indt «eq»), + global (indt «nat»), c2, + app + [global (const «Nat.add»), + app + [global (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], c4], c3]] + = X49 c2 c3 c4 + +Debug: }}} -> (0.000s) +Debug: run 116 {{{ + +Debug: + rid:4 step:116 gid:253 user:curgoal = = + app + [global (indt «eq»), + global (indt «nat»), c2, + app + [global (const «Nat.add»), + app + [global (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], c4], c3]] + = X49 c2 c3 c4 + +Debug: + rid:4 step:116 gid:253 user:rule = eq + +Debug: + rid:4 step:116 gid:253 user:rule:builtin:name = = + +Debug: + rid:4 step:116 gid:0 user:assign:HO = X49 := c0 \ + c1 \ + c2 \ + app + [global (indt «eq»), + global (indt «nat»), c0, + app + [global (const «Nat.add»), + app + [global (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], c2], c1]] + +Debug: + rid:4 step:116 gid:253 user:rule:eq = success + +Debug: }}} -> (0.000s) +Debug: run 117 {{{ + +Debug: + rid:4 step:117 gid:250 user:curgoal = prune + prune (X45 c2 c3 c4) [c2, c3, c4] + +Debug: + rid:4 step:117 gid:250 user:rule = builtin + +Debug: + rid:4 step:117 gid:250 user:rule:builtin:name = prune + +Debug: + rid:4 step:117 gid:250 user:rule:builtin = success + +Debug: + rid:4 step:117 gid:250 user:subgoal = 254 + +Debug: + rid:4 step:117 gid:254 user:newgoal = X45 c2 c3 c4 = X50 c2 c3 c4 + +Debug: }}} -> (0.000s) +Debug: run 118 {{{ + +Debug: + rid:4 step:118 gid:254 user:curgoal = = + X45 c2 c3 c4 = X50 c2 c3 c4 + +Debug: + rid:4 step:118 gid:254 user:rule = eq + +Debug: + rid:4 step:118 gid:254 user:rule:builtin:name = = + +Debug: + rid:4 step:118 gid:0 user:assign:HO = X45 := c0 \ + c1 \ + c2 \ + X50 c0 c1 c2 + +Debug: + rid:4 step:118 gid:254 user:rule:eq = success + +Debug: }}} -> (0.000s) +Debug: run 119 {{{ + +Debug: + rid:4 step:119 gid:251 user:curgoal = declare_constraint + declare_constraint + (evar (X50 c2 c3 c4) + (app + [global (indt «eq»), + global (indt «nat»), c2, + app + [global (const «Nat.add»), + app + [global (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], c4], + c3]]) (X46 c2 c3 c4)) + [X50 c2 c3 c4, X46 c2 c3 c4] + +Debug: + rid:4 step:119 gid:251 user:rule = builtin + +Debug: + rid:4 step:119 gid:251 user:rule:builtin:name = declare_constraint + +Debug: + rid:4 step:119 gid:251 user:subgoal = 255 + +Debug: + rid:4 step:119 gid:255 user:newgoal = evar (X50 c2 c3 c4) + (app + [global (indt «eq»), + global (indt «nat»), c2, + app + [global (const «Nat.add»), + app + [global (const «Nat.add»), + app + [global (indc «S»), + global (indc «O»)], c4], c3]]) + (X46 c2 c3 c4) + +Debug: + rid:4 step:119 gid:251 user:rule:builtin = success + +Debug: }}} -> (0.001s) +Debug: run 120 {{{ + +Debug: + rid:4 step:120 gid:246 user:curgoal = std.append + std.append [] [] X47 + +Debug: + rid:4 step:120 gid:246 user:rule = backchain + +Debug: + rid:4 step:120 gid:246 user:rule:backchain:candidates = File "builtin_stdlib.elpi", line 87, column 0, characters 2841-2854: + +Debug: }}} -> (0.000s) +Debug: select 57 {{{ + +Debug: + rid:4 step:120 gid:246 user:rule:backchain:try = File "builtin_stdlib.elpi", line 87, column 0, characters 2841-2854: + (std.append [] A0 A0) :- . + +Debug: + rid:4 step:120 gid:0 user:assign = A0 := [] + +Debug: + rid:4 step:120 gid:0 user:assign = X47 := [] + +Debug: + rid:4 step:120 gid:246 user:rule:backchain = success + +Debug: }}} -> (0.000s) +w : nat -bar = (false :: nil)%list - : list bool -baz = (46%nat :: nil)%list - : list nat -File "./examples/tutorial_coq_elpi_tactic.v", line 632, characters 0-22: -Warning: x is already taken, Elpi will make a name up [lib,elpi,default] -File "./examples/tutorial_coq_elpi_tactic.v", line 742, characters 32-33: -Warning: -File "./examples/tutorial_coq_elpi_tactic.v", line 742, characters 32-33 -A is linear: name it _A (discard) or A_ (fresh variable) -[elpi.linear-variable,elpi.typecheck,elpi,default] -File "./examples/tutorial_coq_elpi_tactic.v", line 742, characters 40-41: -Warning: -File "./examples/tutorial_coq_elpi_tactic.v", line 742, characters 40-41 -B is linear: name it _B (discard) or B_ (fresh variable) -[elpi.linear-variable,elpi.typecheck,elpi,default] -File "./examples/tutorial_coq_elpi_tactic.v", line 742, characters 14-17: -Warning: -File "./examples/tutorial_coq_elpi_tactic.v", line 742, characters 14-17 -Ctx is linear: name it _Ctx (discard) or Ctx_ (fresh variable) -[elpi.linear-variable,elpi.typecheck,elpi,default] -File "./examples/tutorial_coq_elpi_tactic.v", line 843, characters 44-46: -Warning: -File "./examples/tutorial_coq_elpi_tactic.v", line 843, characters 44-46 -G1 is linear: name it _G1 (discard) or G1_ (fresh variable) -[elpi.linear-variable,elpi.typecheck,elpi,default] -File "./examples/tutorial_coq_elpi_tactic.v", line 844, characters 44-46: +File "./tests/test_tactic.v", line 5, characters 28-32: Warning: -File "./examples/tutorial_coq_elpi_tactic.v", line 844, characters 44-46 -G2 is linear: name it _G2 (discard) or G2_ (fresh variable) +File "./tests/test_tactic.v", line 5, characters 28-32 +Type is linear: name it _Type (discard) or Type_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -The argument fun x : ?e => x + ?e1 was closed under 1 binders -old replacement: fun (x : ?e) (y : ?e0) => x - y with -fun (y : ?e1) (x : ?e2) => y + x -new replacement: fun y : ?e0 => x - y with fun y : ?e1 => y + x -d1 - : nat -d2 - : nat -i1 - : Prop -i2 - : Prop -k1 - : i1 -k2 - : i2 -r1 - : Set -r2 - : Type -f1 - : r1 -> nat -f2 - : r2 -> nat Query assignments: BO = fix `add` 0 (prod `n` (global (indt «nat»)) c0 \ @@ -4008,7 +9191,7 @@ c5 \ app [c2, c4, c5]]] Debug: [elpi] - Elpi: query-compilation:0.0015 static-check:0.0000 optimization:0.0001 runtime:0.0052 (with success) + Elpi: query-compilation:0.0031 static-check:0.0000 optimization:0.0002 runtime:0.0074 (with success) Query assignments: GR = indc «Ord» @@ -6412,7 +11595,7 @@ (X10 c0 c1 c2 c3 c4) Debug: [elpi] - Elpi: query-compilation:0.0016 static-check:0.0000 optimization:0.0001 runtime:0.1017 (with error) + Elpi: query-compilation:0.0024 static-check:0.0000 optimization:0.0002 runtime:0.0235 (with error) hd : forall A : Type, A -> list A -> A @@ -6426,147 +11609,6 @@ File "./tests-stdlib/test_quotation.v", line 47, characters 32-33 X is linear: name it _X (discard) or X_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -Query assignments: - BO = fix `add` 0 - (prod `n` (global (indt «nat»)) c0 \ - prod `m` (global (indt «nat»)) c1 \ global (indt «nat»)) c0 \ - fun `n` (global (indt «nat»)) c1 \ - fun `m` (global (indt «nat»)) c2 \ - match c1 (fun `n` (global (indt «nat»)) c3 \ global (indt «nat»)) - [c2, - fun `p` (global (indt «nat»)) c3 \ - app [global (indc «S»), app [c0, c3, c2]]] - GR = «Nat.add» - TY = prod `n` (global (indt «nat»)) c0 \ - prod `m` (global (indt «nat»)) c1 \ global (indt «nat») -c2 -global (indt «nat») -z -nat -Query assignments: - %arg1 = c0 \ c1 \ c2 \ -z - %arg2 = c0 \ c1 \ c2 \ -nat - T = global (indt «nat») -c2 -global (indt «nat») -z -nat -Query assignments: - %arg1 = c0 \ c1 \ c2 \ -z - %arg2 = c0 \ c1 \ c2 \ -nat - T = global (indt «nat») -Illegal application (Non-functional construction): -The expression "Prop" of type "Type" -cannot be applied to the term - "Prop" : "Type" -Query assignments: - E = Illegal application (Non-functional construction): -The expression "Prop" of type "Type" -cannot be applied to the term - "Prop" : "Type" -Unable to unify "bool" with "nat". -Query assignments: - Msg = Unable to unify "bool" with "nat". -Query assignments: - Cons = global (indc «cons») - GRCons = indc «cons» - GRList = indt «list» - GRNat = indt «nat» - GRNil = indc «nil» - GRZero = indc «O» - L = app - [global (indc «cons»), global (indt «nat»), global (indc «O»), - app [global (indc «nil»), global (indt «nat»)]] - LE = app - [global (indc «cons»), global (indt «nat»), global (indc «O»), - app [global (indc «nil»), global (indt «nat»)]] - List = global (indt «list») - Nat = global (indt «nat») - Nil = global (indc «nil») - Zero = global (indc «O») -Universe constraints: -UNIVERSES: - {elpi.tests.test_API_typecheck.4 elpi.tests.test_API_typecheck.3 - elpi.tests.test_API_typecheck.2 elpi.tests.test_API_typecheck.1} |= - elpi.tests.test_API_typecheck.3 < elpi.tests.test_API_typecheck.2 - elpi.tests.test_API_typecheck.4 < elpi.tests.test_API_typecheck.1 - Set <= elpi.tests.test_API_typecheck.3 - Set <= elpi.tests.test_API_typecheck.4 - elpi.tests.test_API_typecheck.3 <= list.u0 - elpi.tests.test_API_typecheck.4 <= list.u0 -ALGEBRAIC UNIVERSES: - {} -FLEXIBLE UNIVERSES: - -SORTS: - α1 := Type - α2 := Type -WEAK CONSTRAINTS: - - -global (indt «nat») -Query assignments: - T = global (indt «nat») - X1_ = global (indt «nat») - X2_ = global (indt «nat») -Universe constraints: -UNIVERSES: - {elpi.tests.test_API_typecheck.9 elpi.tests.test_API_typecheck.8 - elpi.tests.test_API_typecheck.7 elpi.tests.test_API_typecheck.6 - elpi.tests.test_API_typecheck.5} |= - Set < elpi.tests.test_API_typecheck.7 - elpi.tests.test_API_typecheck.8 < elpi.tests.test_API_typecheck.6 - elpi.tests.test_API_typecheck.9 < elpi.tests.test_API_typecheck.5 - Set <= elpi.tests.test_API_typecheck.8 - Set <= elpi.tests.test_API_typecheck.9 - elpi.tests.test_API_typecheck.8 <= list.u0 - elpi.tests.test_API_typecheck.9 <= list.u0 -ALGEBRAIC UNIVERSES: - {} -FLEXIBLE UNIVERSES: - -SORTS: - α3 := Type - α4 := Type - α5 := Type -WEAK CONSTRAINTS: - - -«elpi.tests.test_API_typecheck.10» -Query assignments: - U = «elpi.tests.test_API_typecheck.10» -Universe constraints: -UNIVERSES: - {elpi.tests.test_API_typecheck.10} |= - Set <= elpi.tests.test_API_typecheck.10 -ALGEBRAIC UNIVERSES: - {elpi.tests.test_API_typecheck.10} -FLEXIBLE UNIVERSES: - elpi.tests.test_API_typecheck.10 -SORTS: - -WEAK CONSTRAINTS: - - -Unable to unify "Set" with "Prop" (universe inconsistency: Cannot enforce Set -<= Prop). -Query assignments: - E = Unable to unify "Set" with "Prop" (universe inconsistency: Cannot enforce Set -<= Prop). -File "./tests/test_API_typecheck.v", line 59, characters 2-4: -Warning: -File "./tests/test_API_typecheck.v", line 59, characters 2-4 -LE is linear: name it _LE (discard) or LE_ (fresh variable) -[elpi.linear-variable,elpi.typecheck,elpi,default] -File "./tests/test_File3.v", line 18, characters 2-16: -Warning: This command does not support this attribute: phase. -[unsupported-attributes,parsing,default] -z - : nat it = elpi_subproof : True it : True @@ -6582,2845 +11624,178 @@ elpi_subproof is opaque Expands to: Constant elpi.tests.test_ltac.elpi_subproof Closed under the global context -app - [global (indt «eq»), global (indt «nat»), - app - [global (const «map»), - fun `x` (global (indt «nat»)) c1 \ - app - [global (const «Nat.add»), c1, - app [global (indc «S»), global (indc «O»)]]], c0] -app - [global (indt «eq»), global (indt «nat»), - app - [global (const «map»), - fun `x` (global (indt «nat»)) c1 \ - app - [global (const «Nat.add»), c1, - app [global (indc «S»), global (indc «O»)]]], c0] -app - [global (indt «eq»), global (indt «nat»), - app - [global (const «map»), - fun `x0` (global (indt «nat»)) c1 \ - app - [global (const «Nat.add»), c1, - app [global (indc «S»), global (indc «O»)]]], c0] -normP : -forall {T : Type} {e : T} {op : T -> T -> T} {gamma : list T} {t1 t2 : lang}, -(forall a b c : T, op a (op b c) = op (op a b) c) -> -(forall a : T, op e a = a) -> -(forall a : T, op a e = a) -> -norm t1 = norm t2 -> interp T e op gamma t1 = interp T e op gamma t2 - -normP is not universe polymorphic -Arguments normP {T}%type_scope {e} {op}%function_scope - {gamma}%list_scope {t1 t2} (p1 p2 p3)%function_scope - H -normP is transparent -Expands to: Constant elpi_examples_stdlib.example_reflexive_tactic.normP -(fun x y z t : Z => - normP Z.add_assoc Z.add_0_l Z.add_0_r - (eq_refl - <: - norm (add (add (var 0) (var 1)) (add (add (var 2) zero) (var 3))) = - norm (add (add (var 0) (add (var 1) (var 2))) (var 3)))) -Debug: In environment -x, y, z, t : Z -Unable to unify "var 1" with - "var 0". -Raised at Loc.raise in file "lib/loc.ml", line 101, characters 16-23 -Called from Unification.unify_0_with_initial_metas in file "pretyping/unification.ml", line 1281, characters 13-48 -Re-raised at Exninfo.iraise in file "clib/exninfo.ml", line 81, characters 4-38 -Called from Unification.unify_with_eta in file "pretyping/unification.ml", line 1320, characters 14-48 -Called from Unification.merge_instances in file "pretyping/unification.ml", line 1333, characters 23-64 -Called from Unification.w_merge.w_merge_rec in file "pretyping/unification.ml", line 1554, characters 14-63 -Called from Unification.w_merge in file "pretyping/unification.ml", lines 1608-1610, characters 4-35 -Called from Unification.w_unify_core_0 in file "pretyping/unification.ml", line 1661, characters 12-65 -Called from Clenv.clenv_unify in file "proofs/clenv.ml", line 298, characters 25-73 -Called from Clenv.res_pf.(fun) in file "proofs/clenv.ml", line 771, characters 16-56 -Called from Proofview.Goal.enter.f in file "engine/proofview.ml", line 1136, characters 40-46 -Called from Proofview.Goal.enter.(fun) in file "engine/proofview.ml", line 1141, characters 10-34 - -d - : nat -1 - : nat +hello1 (true && false)%bool : bool natmul R n : ringType_sort R : ringType_sort R natmul R n : ringType_sort R : ringType_sort R -Query assignments: - P = /build/reproducible-path/coq-elpi-2.5.0/_build/default/elpi/elpi_elaborator.elpi -File "./tests/test_query_extra_dep.v", line 7, characters 44-45: -Warning: -File "./tests/test_query_extra_dep.v", line 7, characters 44-45 -P is linear: name it _P (discard) or P_ (fresh variable) -[elpi.linear-variable,elpi.typecheck,elpi,default] -File "./apps/NES/theories/NES.v", line 39, characters 0-42: -Warning: -Undeclared globals: -- File "/build/reproducible-path/coq-elpi-2.5.0/apps/NES/elpi/nes_interp.elpi", line 6, column 24, characters 152-161: ns. -Please add the following text to your program: -type ns list string -> modpath -> prop. -[elpi.missing-types,elpi.typecheck,elpi,default] -Debug: -----<<---- enter: -coq.say raw: - (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.2»)) c0 \ - parameter A2 explicit c0 c1 \ - inductive foo1 tt - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c2 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c3 \ - arity - (prod `_` (global (indt «nat»)) c4 \ - sort (typ «elpi.tests.test_arg_HOAS.7»))) c2 \ - [constructor a_k1 - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) - c3 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) - c4 \ - arity - (prod `x` (global (indt «nat»)) c5 \ - prod `_` - (app - [c2, app [global (indt «prod»), c3, c3], c4, - app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]]) c6 \ - app [c2, c3, c4, c5])), - constructor a_k2 - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) - c3 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) - c4 \ - arity - (prod `_` c0 c5 \ - app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) -raw: -parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.2»)) c0 \ - parameter A2 explicit c0 c1 \ - inductive foo1 tt - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c2 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c3 \ - arity - (prod `_` (global (indt «nat»)) c4 \ - sort (typ «elpi.tests.test_arg_HOAS.7»))) c2 \ - [constructor a_k1 - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c3 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c4 \ - arity - (prod `x` (global (indt «nat»)) c5 \ - prod `_` - (app - [c2, app [global (indt «prod»), c3, c3], c4, - app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]]) c6 \ - app [c2, c3, c4, c5])), - constructor a_k2 - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c3 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c4 \ - arity - (prod `_` c0 c5 \ - app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))] -Debug: ----->>---- exit: -coq.say raw: - (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.2»)) c0 \ - parameter A2 explicit c0 c1 \ - inductive foo1 tt - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c2 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c3 \ - arity - (prod `_` (global (indt «nat»)) c4 \ - sort (typ «elpi.tests.test_arg_HOAS.7»))) c2 \ - [constructor a_k1 - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) - c3 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) - c4 \ - arity - (prod `x` (global (indt «nat»)) c5 \ - prod `_` - (app - [c2, app [global (indt «prod»), c3, c3], c4, - app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]]) c6 \ - app [c2, c3, c4, c5])), - constructor a_k2 - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) - c3 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) - c4 \ - arity - (prod `_` c0 c5 \ - app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) -Debug: -----<<---- enter: -std.assert-ok! - (coq.typecheck-indt-decl - (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.2»)) c0 \ - parameter A2 explicit c0 c1 \ - inductive foo1 tt - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) - c2 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) - c3 \ - arity - (prod `_` (global (indt «nat»)) c4 \ - sort (typ «elpi.tests.test_arg_HOAS.7»))) c2 \ - [constructor a_k1 - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) - c3 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) - c4 \ - arity - (prod `x` (global (indt «nat»)) c5 \ - prod `_` - (app - [c2, app [global (indt «prod»), c3, c3], c4, - app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]]) - c6 \ app [c2, c3, c4, c5])), - constructor a_k2 - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) - c3 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) - c4 \ - arity - (prod `_` c0 c5 \ - app - [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))])) - Illtyped inductive declaration -Debug: ----->>---- exit: -std.assert-ok! - (coq.typecheck-indt-decl - (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.2»)) c0 \ - parameter A2 explicit c0 c1 \ - inductive foo1 tt - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) - c2 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) - c3 \ - arity - (prod `_` (global (indt «nat»)) c4 \ - sort (typ «elpi.tests.test_arg_HOAS.7»))) c2 \ - [constructor a_k1 - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) - c3 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) - c4 \ - arity - (prod `x` (global (indt «nat»)) c5 \ - prod `_` - (app - [c2, app [global (indt «prod»), c3, c3], c4, - app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]]) - c6 \ app [c2, c3, c4, c5])), - constructor a_k2 - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) - c3 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) - c4 \ - arity - (prod `_` c0 c5 \ - app - [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))])) - Illtyped inductive declaration -Debug: -----<<---- enter: -coq.say typed: - (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.2»)) c0 \ - parameter A2 explicit c0 c1 \ - inductive foo1 tt - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c2 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c3 \ - arity - (prod `_` (global (indt «nat»)) c4 \ - sort (typ «elpi.tests.test_arg_HOAS.7»))) c2 \ - [constructor a_k1 - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) - c3 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) - c4 \ - arity - (prod `x` (global (indt «nat»)) c5 \ - prod `_` - (app - [c2, app [global (indt «prod»), c3, c3], c4, - app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]]) c6 \ - app [c2, c3, c4, c5])), - constructor a_k2 - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) - c3 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) - c4 \ - arity - (prod `_` c0 c5 \ - app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) -typed: -parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.2»)) c0 \ - parameter A2 explicit c0 c1 \ - inductive foo1 tt - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c2 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c3 \ - arity - (prod `_` (global (indt «nat»)) c4 \ - sort (typ «elpi.tests.test_arg_HOAS.7»))) c2 \ - [constructor a_k1 - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c3 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c4 \ - arity - (prod `x` (global (indt «nat»)) c5 \ - prod `_` - (app - [c2, app [global (indt «prod»), c3, c3], c4, - app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]]) c6 \ - app [c2, c3, c4, c5])), - constructor a_k2 - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c3 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c4 \ - arity - (prod `_` c0 c5 \ - app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))] -Debug: ----->>---- exit: -coq.say typed: - (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.2»)) c0 \ - parameter A2 explicit c0 c1 \ - inductive foo1 tt - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c2 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c3 \ - arity - (prod `_` (global (indt «nat»)) c4 \ - sort (typ «elpi.tests.test_arg_HOAS.7»))) c2 \ - [constructor a_k1 - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) - c3 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) - c4 \ - arity - (prod `x` (global (indt «nat»)) c5 \ - prod `_` - (app - [c2, app [global (indt «prod»), c3, c3], c4, - app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]]) c6 \ - app [c2, c3, c4, c5])), - constructor a_k2 - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) - c3 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) - c4 \ - arity - (prod `_` c0 c5 \ - app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) -Debug: -----<<---- enter: -coq.env.add-indt - (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.2»)) c0 \ - parameter A2 explicit c0 c1 \ - inductive foo1 tt - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c2 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c3 \ - arity - (prod `_` (global (indt «nat»)) c4 \ - sort (typ «elpi.tests.test_arg_HOAS.7»))) c2 \ - [constructor a_k1 - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) - c3 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) - c4 \ - arity - (prod `x` (global (indt «nat»)) c5 \ - prod `_` - (app - [c2, app [global (indt «prod»), c3, c3], c4, - app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]]) c6 \ - app [c2, c3, c4, c5])), - constructor a_k2 - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) - c3 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) - c4 \ - arity - (prod `_` c0 c5 \ - app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) - X0 -Debug: ----->>---- exit: -coq.env.add-indt - (parameter A1 maximal (sort (typ «foo1.u0»)) c0 \ - parameter A2 explicit c0 c1 \ - inductive foo1 tt - (parameter B1 explicit (sort (typ «foo1.u1»)) c2 \ - parameter B2 explicit (sort (typ «foo1.u2»)) c3 \ - arity (prod `_` (global (indt «nat»)) c4 \ sort (typ «foo1.u3»))) - c2 \ - [constructor a_k1 - (parameter B1 explicit (sort (typ «foo1.u1»)) c3 \ - parameter B2 explicit (sort (typ «foo1.u2»)) c4 \ - arity - (prod `x` (global (indt «nat»)) c5 \ - prod `_` - (app - [c2, app [global (indt «prod»), c3, c3], c4, - app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]]) c6 \ - app [c2, c3, c4, c5])), - constructor a_k2 - (parameter B1 explicit (sort (typ «foo1.u1»)) c3 \ - parameter B2 explicit (sort (typ «foo1.u2»)) c4 \ - arity - (prod `_` c0 c5 \ - app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) - «foo1» -foo1 ?A2 ?B1 ?B2 ?n : Type - : Type -where -?A1 : [ |- Type] -?A2 : [ |- ?A1] -?B1 : [ |- Type] -?B2 : [ |- Type] -?n : [ |- nat] -a_k1 ?A2 ?B1 ?B2 3 ?f : foo1 ?A2 ?B1 ?B2 3 - : foo1 ?A2 ?B1 ?B2 3 -where -?A1 : [ |- Type] -?A2 : [ |- ?A1] -?B1 : [ |- Type] -?B2 : [ |- Type] -?f : [ |- foo1 ?A2 (?B1 * ?B1) ?B2 3] -Debug: -----<<---- enter: -coq.say raw: - (parameter A1 maximal X0 c0 \ - parameter A2 explicit c0 c1 \ - inductive foo1 tt - (parameter B1 explicit (sort (typ X1)) c2 \ - parameter B2 explicit (sort (typ X2)) c3 \ - arity (prod `_` (global (indt «nat»)) c4 \ sort (typ X3))) c2 \ - [constructor a_k1 - (parameter B1 explicit (sort (typ X4)) c3 \ - parameter B2 explicit (sort (typ X5)) c4 \ - arity - (prod `x` (X6 c4) c5 \ - prod `_` - (app - [c2, app [global (indt «prod»), c3, c3], c4, - app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]]) c6 \ - app [c2, c3, c4, c5])), - constructor a_k2 - (parameter B1 explicit (sort (typ X7)) c3 \ - parameter B2 explicit (sort (typ X8)) c4 \ - arity - (prod `_` c0 c5 \ - app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) -raw: -parameter A1 maximal X0 c0 \ - parameter A2 explicit c0 c1 \ - inductive foo1 tt - (parameter B1 explicit (sort (typ X1)) c2 \ - parameter B2 explicit (sort (typ X2)) c3 \ - arity (prod `_` (global (indt «nat»)) c4 \ sort (typ X3))) c2 \ - [constructor a_k1 - (parameter B1 explicit (sort (typ X4)) c3 \ - parameter B2 explicit (sort (typ X5)) c4 \ - arity - (prod `x` (X6 c4) c5 \ - prod `_` - (app - [c2, app [global (indt «prod»), c3, c3], c4, - app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]]) c6 \ - app [c2, c3, c4, c5])), - constructor a_k2 - (parameter B1 explicit (sort (typ X7)) c3 \ - parameter B2 explicit (sort (typ X8)) c4 \ - arity - (prod `_` c0 c5 \ - app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))] -Debug: ----->>---- exit: -coq.say raw: - (parameter A1 maximal X0 c0 \ - parameter A2 explicit c0 c1 \ - inductive foo1 tt - (parameter B1 explicit (sort (typ X1)) c2 \ - parameter B2 explicit (sort (typ X2)) c3 \ - arity (prod `_` (global (indt «nat»)) c4 \ sort (typ X3))) c2 \ - [constructor a_k1 - (parameter B1 explicit (sort (typ X4)) c3 \ - parameter B2 explicit (sort (typ X5)) c4 \ - arity - (prod `x` (X6 c4) c5 \ - prod `_` - (app - [c2, app [global (indt «prod»), c3, c3], c4, - app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]]) c6 \ - app [c2, c3, c4, c5])), - constructor a_k2 - (parameter B1 explicit (sort (typ X7)) c3 \ - parameter B2 explicit (sort (typ X8)) c4 \ - arity - (prod `_` c0 c5 \ - app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) -Debug: -----<<---- enter: -std.assert-ok! - (coq.elaborate-indt-decl-skeleton - (parameter A1 maximal X0 c0 \ - parameter A2 explicit c0 c1 \ - inductive foo1 tt - (parameter B1 explicit (sort (typ X1)) c2 \ - parameter B2 explicit (sort (typ X2)) c3 \ - arity (prod `_` (global (indt «nat»)) c4 \ sort (typ X3))) c2 \ - [constructor a_k1 - (parameter B1 explicit (sort (typ X4)) c3 \ - parameter B2 explicit (sort (typ X5)) c4 \ - arity - (prod `x` (X6 c4) c5 \ - prod `_` - (app - [c2, app [global (indt «prod»), c3, c3], c4, - app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]]) - c6 \ app [c2, c3, c4, c5])), - constructor a_k2 - (parameter B1 explicit (sort (typ X7)) c3 \ - parameter B2 explicit (sort (typ X8)) c4 \ - arity - (prod `_` c0 c5 \ - app - [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) - X9) Illtyped inductive declaration -Debug: ----->>---- exit: -std.assert-ok! - (coq.elaborate-indt-decl-skeleton - (parameter A1 maximal X0 c0 \ - parameter A2 explicit c0 c1 \ - inductive foo1 tt - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.41»)) - c2 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.44»)) - c3 \ - arity - (prod `_` (global (indt «nat»)) c4 \ - sort (typ «elpi.tests.test_arg_HOAS.47»))) c2 \ - [constructor a_k1 - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.52»)) - c3 \ - parameter B2 explicit - (sort (typ «elpi.tests.test_arg_HOAS.54»)) c4 \ - arity - (prod `x` (X6 c4) c5 \ - prod `_` - (app - [c2, app [global (indt «prod»), c3, c3], c4, - app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]]) - c6 \ app [c2, c3, c4, c5])), - constructor a_k2 - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.61»)) - c3 \ - parameter B2 explicit - (sort (typ «elpi.tests.test_arg_HOAS.63»)) c4 \ - arity - (prod `_` c0 c5 \ - app - [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) - (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.40»)) c0 \ - parameter A2 explicit c0 c1 \ - inductive foo1 tt - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.42»)) - c2 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.45»)) - c3 \ - arity - (prod `_` (global (indt «nat»)) c4 \ - sort (typ «elpi.tests.test_arg_HOAS.48»))) c2 \ - [constructor a_k1 - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.53»)) - c3 \ - parameter B2 explicit - (sort (typ «elpi.tests.test_arg_HOAS.55»)) c4 \ - arity - (prod `x` (global (indt «nat»)) c5 \ - prod `_` - (app - [c2, app [global (indt «prod»), c3, c3], c4, - app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]]) - c6 \ app [c2, c3, c4, c5])), - constructor a_k2 - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.62»)) - c3 \ - parameter B2 explicit - (sort (typ «elpi.tests.test_arg_HOAS.64»)) c4 \ - arity - (prod `_` c0 c5 \ - app - [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))])) - Illtyped inductive declaration -Debug: -----<<---- enter: -coq.say typed: - (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.40»)) c0 \ - parameter A2 explicit c0 c1 \ - inductive foo1 tt - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.42»)) c2 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.45»)) - c3 \ - arity - (prod `_` (global (indt «nat»)) c4 \ - sort (typ «elpi.tests.test_arg_HOAS.48»))) c2 \ - [constructor a_k1 - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.53»)) - c3 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.55»)) - c4 \ - arity - (prod `x` (global (indt «nat»)) c5 \ - prod `_` - (app - [c2, app [global (indt «prod»), c3, c3], c4, - app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]]) c6 \ - app [c2, c3, c4, c5])), - constructor a_k2 - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.62»)) - c3 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.64»)) - c4 \ - arity - (prod `_` c0 c5 \ - app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) -typed: -parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.40»)) c0 \ - parameter A2 explicit c0 c1 \ - inductive foo1 tt - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.42»)) c2 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.45»)) c3 \ - arity - (prod `_` (global (indt «nat»)) c4 \ - sort (typ «elpi.tests.test_arg_HOAS.48»))) c2 \ - [constructor a_k1 - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.53»)) c3 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.55»)) - c4 \ - arity - (prod `x` (global (indt «nat»)) c5 \ - prod `_` - (app - [c2, app [global (indt «prod»), c3, c3], c4, - app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]]) c6 \ - app [c2, c3, c4, c5])), - constructor a_k2 - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.62»)) c3 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.64»)) - c4 \ - arity - (prod `_` c0 c5 \ - app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))] -Debug: ----->>---- exit: -coq.say typed: - (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.40»)) c0 \ - parameter A2 explicit c0 c1 \ - inductive foo1 tt - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.42»)) c2 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.45»)) - c3 \ - arity - (prod `_` (global (indt «nat»)) c4 \ - sort (typ «elpi.tests.test_arg_HOAS.48»))) c2 \ - [constructor a_k1 - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.53»)) - c3 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.55»)) - c4 \ - arity - (prod `x` (global (indt «nat»)) c5 \ - prod `_` - (app - [c2, app [global (indt «prod»), c3, c3], c4, - app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]]) c6 \ - app [c2, c3, c4, c5])), - constructor a_k2 - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.62»)) - c3 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.64»)) - c4 \ - arity - (prod `_` c0 c5 \ - app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) -Debug: -----<<---- enter: -coq.env.add-indt - (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.40»)) c0 \ - parameter A2 explicit c0 c1 \ - inductive foo1 tt - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.42»)) c2 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.45»)) - c3 \ - arity - (prod `_` (global (indt «nat»)) c4 \ - sort (typ «elpi.tests.test_arg_HOAS.48»))) c2 \ - [constructor a_k1 - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.53»)) - c3 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.55»)) - c4 \ - arity - (prod `x` (global (indt «nat»)) c5 \ - prod `_` - (app - [c2, app [global (indt «prod»), c3, c3], c4, - app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]]) c6 \ - app [c2, c3, c4, c5])), - constructor a_k2 - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.62»)) - c3 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.64»)) - c4 \ - arity - (prod `_` c0 c5 \ - app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) - X10 -Debug: ----->>---- exit: -coq.env.add-indt - (parameter A1 maximal (sort (typ «foo1.u0»)) c0 \ - parameter A2 explicit c0 c1 \ - inductive foo1 tt - (parameter B1 explicit (sort (typ «foo1.u1»)) c2 \ - parameter B2 explicit (sort (typ «foo1.u2»)) c3 \ - arity (prod `_` (global (indt «nat»)) c4 \ sort (typ «foo1.u3»))) - c2 \ - [constructor a_k1 - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.53»)) - c3 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.55»)) - c4 \ - arity - (prod `x` (global (indt «nat»)) c5 \ - prod `_` - (app - [c2, app [global (indt «prod»), c3, c3], c4, - app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]]) c6 \ - app [c2, c3, c4, c5])), - constructor a_k2 - (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.62»)) - c3 \ - parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.64»)) - c4 \ - arity - (prod `_` c0 c5 \ - app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) - «foo1» -foo1 ?A2 ?B1 ?B2 ?n : Type - : Type -where -?A1 : [ |- Type] -?A2 : [ |- ?A1] -?B1 : [ |- Type] -?B2 : [ |- Type] -?n : [ |- nat] -a_k1 ?A2 ?B1 ?B2 3 ?f : foo1 ?A2 ?B1 ?B2 3 - : foo1 ?A2 ?B1 ?B2 3 -where -?A1 : [ |- Type] -?A2 : [ |- ?A1] -?B1 : [ |- Type] -?B2 : [ |- Type] -?f : [ |- foo1 ?A2 (?B1 * ?B1) ?B2 3] -Query assignments: - D = parameter A explicit (sort (typ «t.u0»)) c0 \ - inductive t tt - (parameter y explicit (global (indt «nat»)) c1 \ - arity (sort (typ «elpi.tests.test_arg_HOAS.82»))) c1 \ - [constructor K - (parameter y explicit (global (indt «nat»)) c2 \ - parameter x explicit c0 c3 \ - parameter n maximal (global (indt «nat»)) c4 \ - arity (prod `_` (app [c1, c4]) c5 \ app [c1, c2]))] - I = «t» -Universe constraints: -UNIVERSES: - {elpi.tests.test_arg_HOAS.82} |= - Set <= elpi.tests.test_arg_HOAS.82 - t.u0 <= elpi.tests.test_arg_HOAS.82 -ALGEBRAIC UNIVERSES: - {} -FLEXIBLE UNIVERSES: - -SORTS: - -WEAK CONSTRAINTS: - +d + : nat +trying i = i +trying elpi_ctx_entry_2_ = elpi_ctx_entry_2_ +trying elpi_ctx_entry_1_ = elpi_ctx_entry_1_ /\ p0 = p0 +trying elpi_ctx_entry_1_ = elpi_ctx_entry_1_ /\ p0 = p0 +1 + : nat +test1 +str hello +str x +test1 +too many arguments +[attribute elpi.loc + (leaf-loc + File "./tests/test_vernacular2.v", line 10, column 24, characters 326-329:), + attribute elpi.phase (leaf-str interp), + attribute fwd_compat_attr (leaf-str )] +[attribute elpi.loc + (leaf-loc + File "./tests/test_vernacular2.v", line 11, column 0, characters 331-354:), + attribute elpi.phase (leaf-str interp), + attribute fwd_compat_attr (leaf-str )] +File "./tests/test_vernacular2.v", line 6, characters 2-17: +Warning: This command does not support this attribute: fwd_compat_attr. +[unsupported-attributes,parsing,default] +File "./tests/test_vernacular2.v", line 7, characters 2-17: +Warning: This command does not support this attribute: fwd_compat_attr. +[unsupported-attributes,parsing,default] +File "./tests/test_vernacular2.v", line 8, characters 2-17: +Warning: This command does not support this attribute: fwd_compat_attr. +[unsupported-attributes,parsing,default] +File "./tests/test_vernacular2.v", line 9, characters 2-17: +Warning: This command does not support this attribute: fwd_compat_attr. +[unsupported-attributes,parsing,default] +File "./tests/test_vernacular2.v", line 10, characters 2-17: +Warning: This command does not support this attribute: fwd_compat_attr. +[unsupported-attributes,parsing,default] +Cats.And.Dogs.x = 42 + : nat +Foo.x = 3 + : nat +Foo.x = 3 + : nat +Foo.x2 = 4 + : nat +eq_refl : Foo.x = 5 + : Foo.x = 5 +A.B.c : nat -Debug: -----<<---- enter: -coq.say raw: - (record foo (sort (typ «Set»)) Build_foo - (field [coercion off, canonical tt] f - (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ - field [coercion off, canonical tt] _ - (app - [global (indt «eq»), global (indt «nat»), - app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record)) -raw: -record foo (sort (typ «Set»)) Build_foo - (field [coercion off, canonical tt] f - (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ - field [coercion off, canonical tt] _ - (app - [global (indt «eq»), global (indt «nat»), - app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record) -Debug: ----->>---- exit: -coq.say raw: - (record foo (sort (typ «Set»)) Build_foo - (field [coercion off, canonical tt] f - (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ - field [coercion off, canonical tt] _ - (app - [global (indt «eq»), global (indt «nat»), - app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record)) -Debug: -----<<---- enter: -std.assert-ok! - (coq.typecheck-indt-decl - (record foo (sort (typ «Set»)) Build_foo - (field [coercion off, canonical tt] f - (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ - field [coercion off, canonical tt] _ - (app - [global (indt «eq»), global (indt «nat»), - app [c0, global (indc «O»)], global (indc «O»)]) c1 \ - end-record))) Illtyped inductive declaration -Debug: ----->>---- exit: -std.assert-ok! - (coq.typecheck-indt-decl - (record foo (sort (typ «Set»)) Build_foo - (field [coercion off, canonical tt] f - (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ - field [coercion off, canonical tt] _ - (app - [global (indt «eq»), global (indt «nat»), - app [c0, global (indc «O»)], global (indc «O»)]) c1 \ - end-record))) Illtyped inductive declaration -Debug: -----<<---- enter: -coq.say typed: - (record foo (sort (typ «Set»)) Build_foo - (field [coercion off, canonical tt] f - (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ - field [coercion off, canonical tt] _ - (app - [global (indt «eq»), global (indt «nat»), - app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record)) -typed: -record foo (sort (typ «Set»)) Build_foo - (field [coercion off, canonical tt] f - (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ - field [coercion off, canonical tt] _ - (app - [global (indt «eq»), global (indt «nat»), - app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record) -Debug: ----->>---- exit: -coq.say typed: - (record foo (sort (typ «Set»)) Build_foo - (field [coercion off, canonical tt] f - (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ - field [coercion off, canonical tt] _ - (app - [global (indt «eq»), global (indt «nat»), - app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record)) -Debug: -----<<---- enter: -coq.env.add-indt - (record foo (sort (typ «Set»)) Build_foo - (field [coercion off, canonical tt] f - (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ - field [coercion off, canonical tt] _ - (app - [global (indt «eq»), global (indt «nat»), - app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record)) - X0 -Debug: ----->>---- exit: -coq.env.add-indt - (record foo (sort (typ «Set»)) Build_foo - (field [coercion off, canonical tt] f - (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ - field [coercion off, canonical tt] _ - (app - [global (indt «eq»), global (indt «nat»), - app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record)) - «foo» -Debug: -----<<---- enter: -coq.say raw: - (record foo (sort (typ X0)) Build_foo - (field [coercion off, canonical tt] f - (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ - field [coercion off, canonical tt] _ - (app - [global (indt «eq»), X1 c0, app [c0, global (indc «O»)], - global (indc «O»)]) c1 \ end-record)) -raw: -record foo (sort (typ X0)) Build_foo - (field [coercion off, canonical tt] f - (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ - field [coercion off, canonical tt] _ - (app - [global (indt «eq»), X1 c0, app [c0, global (indc «O»)], - global (indc «O»)]) c1 \ end-record) -Debug: ----->>---- exit: -coq.say raw: - (record foo (sort (typ X0)) Build_foo - (field [coercion off, canonical tt] f - (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ - field [coercion off, canonical tt] _ - (app - [global (indt «eq»), X1 c0, app [c0, global (indc «O»)], - global (indc «O»)]) c1 \ end-record)) -Debug: -----<<---- enter: -std.assert-ok! - (coq.elaborate-indt-decl-skeleton - (record foo (sort (typ X0)) Build_foo - (field [coercion off, canonical tt] f - (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ - field [coercion off, canonical tt] _ - (app - [global (indt «eq»), X1 c0, app [c0, global (indc «O»)], - global (indc «O»)]) c1 \ end-record)) X2) - Illtyped inductive declaration -Debug: ----->>---- exit: -std.assert-ok! - (coq.elaborate-indt-decl-skeleton - (record foo (sort (typ «elpi.tests.test_arg_HOAS.85»)) Build_foo - (field [coercion off, canonical tt] f - (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ - field [coercion off, canonical tt] _ - (app - [global (indt «eq»), X1 c0, app [c0, global (indc «O»)], - global (indc «O»)]) c1 \ end-record)) - (record foo (sort (typ «elpi.tests.test_arg_HOAS.86»)) Build_foo - (field [coercion off, canonical tt] f - (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ - field [coercion off, canonical tt] _ - (app - [global (indt «eq»), global (indt «nat»), - app [c0, global (indc «O»)], global (indc «O»)]) c1 \ - end-record))) Illtyped inductive declaration -Debug: -----<<---- enter: -coq.say typed: - (record foo (sort (typ «elpi.tests.test_arg_HOAS.86»)) Build_foo - (field [coercion off, canonical tt] f - (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ - field [coercion off, canonical tt] _ - (app - [global (indt «eq»), global (indt «nat»), - app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record)) -typed: -record foo (sort (typ «elpi.tests.test_arg_HOAS.86»)) Build_foo - (field [coercion off, canonical tt] f - (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ - field [coercion off, canonical tt] _ - (app - [global (indt «eq»), global (indt «nat»), - app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record) -Debug: ----->>---- exit: -coq.say typed: - (record foo (sort (typ «elpi.tests.test_arg_HOAS.86»)) Build_foo - (field [coercion off, canonical tt] f - (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ - field [coercion off, canonical tt] _ - (app - [global (indt «eq»), global (indt «nat»), - app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record)) -Debug: -----<<---- enter: -coq.env.add-indt - (record foo (sort (typ «elpi.tests.test_arg_HOAS.86»)) Build_foo - (field [coercion off, canonical tt] f - (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ - field [coercion off, canonical tt] _ - (app - [global (indt «eq»), global (indt «nat»), - app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record)) - X3 -Debug: ----->>---- exit: -coq.env.add-indt - (record foo (sort (typ «foo.u0»)) Build_foo - (field [coercion off, canonical tt] f - (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \ - field [coercion off, canonical tt] _ - (app - [global (indt «eq»), global (indt «nat»), - app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record)) - «foo» -Debug: -----<<---- enter: -coq.say raw: - (parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.88»)) c0 \ - parameter B explicit c0 c1 \ - record foo (sort (typ «elpi.tests.test_arg_HOAS.88»)) Build_foo - (field [coercion off, canonical tt] a - (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \ - field [coercion reversible, canonical tt] z - (prod `a` c0 c3 \ - prod `_` (app [global (indt «eq»), c0, c1, c1]) c4 \ c0) c3 \ - field [coercion off, canonical ff] x - (let `w` (global (indt «nat»)) - (app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]) c4 \ - prod `x` c0 c5 \ - app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \ - end-record)) -raw: -parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.88»)) c0 \ - parameter B explicit c0 c1 \ - record foo (sort (typ «elpi.tests.test_arg_HOAS.88»)) Build_foo - (field [coercion off, canonical tt] a - (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \ - field [coercion reversible, canonical tt] z - (prod `a` c0 c3 \ - prod `_` (app [global (indt «eq»), c0, c1, c1]) c4 \ c0) c3 \ - field [coercion off, canonical ff] x - (let `w` (global (indt «nat»)) - (app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]) c4 \ - prod `x` c0 c5 \ - app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \ - end-record) -Debug: ----->>---- exit: -coq.say raw: - (parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.88»)) c0 \ - parameter B explicit c0 c1 \ - record foo (sort (typ «elpi.tests.test_arg_HOAS.88»)) Build_foo - (field [coercion off, canonical tt] a - (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \ - field [coercion reversible, canonical tt] z - (prod `a` c0 c3 \ - prod `_` (app [global (indt «eq»), c0, c1, c1]) c4 \ c0) c3 \ - field [coercion off, canonical ff] x - (let `w` (global (indt «nat»)) - (app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]) c4 \ - prod `x` c0 c5 \ - app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \ - end-record)) -Debug: -----<<---- enter: -std.assert-ok! - (coq.typecheck-indt-decl - (parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.88»)) c0 \ - parameter B explicit c0 c1 \ - record foo (sort (typ «elpi.tests.test_arg_HOAS.88»)) Build_foo - (field [coercion off, canonical tt] a - (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \ - field [coercion reversible, canonical tt] z - (prod `a` c0 c3 \ - prod `_` (app [global (indt «eq»), c0, c1, c1]) c4 \ c0) c3 \ - field [coercion off, canonical ff] x - (let `w` (global (indt «nat»)) - (app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]) c4 \ - prod `x` c0 c5 \ - app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \ - end-record))) Illtyped inductive declaration -Debug: ----->>---- exit: -std.assert-ok! - (coq.typecheck-indt-decl - (parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.88»)) c0 \ - parameter B explicit c0 c1 \ - record foo (sort (typ «elpi.tests.test_arg_HOAS.88»)) Build_foo - (field [coercion off, canonical tt] a - (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \ - field [coercion reversible, canonical tt] z - (prod `a` c0 c3 \ - prod `_` (app [global (indt «eq»), c0, c1, c1]) c4 \ c0) c3 \ - field [coercion off, canonical ff] x - (let `w` (global (indt «nat»)) - (app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]) c4 \ - prod `x` c0 c5 \ - app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \ - end-record))) Illtyped inductive declaration -Debug: -----<<---- enter: -coq.say typed: - (parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.88»)) c0 \ - parameter B explicit c0 c1 \ - record foo (sort (typ «elpi.tests.test_arg_HOAS.88»)) Build_foo - (field [coercion off, canonical tt] a - (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \ - field [coercion reversible, canonical tt] z - (prod `a` c0 c3 \ - prod `_` (app [global (indt «eq»), c0, c1, c1]) c4 \ c0) c3 \ - field [coercion off, canonical ff] x - (let `w` (global (indt «nat»)) - (app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]) c4 \ - prod `x` c0 c5 \ - app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \ - end-record)) -typed: -parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.88»)) c0 \ - parameter B explicit c0 c1 \ - record foo (sort (typ «elpi.tests.test_arg_HOAS.88»)) Build_foo - (field [coercion off, canonical tt] a - (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \ - field [coercion reversible, canonical tt] z - (prod `a` c0 c3 \ - prod `_` (app [global (indt «eq»), c0, c1, c1]) c4 \ c0) c3 \ - field [coercion off, canonical ff] x - (let `w` (global (indt «nat»)) - (app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]) c4 \ - prod `x` c0 c5 \ - app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \ - end-record) -Debug: ----->>---- exit: -coq.say typed: - (parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.88»)) c0 \ - parameter B explicit c0 c1 \ - record foo (sort (typ «elpi.tests.test_arg_HOAS.88»)) Build_foo - (field [coercion off, canonical tt] a - (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \ - field [coercion reversible, canonical tt] z - (prod `a` c0 c3 \ - prod `_` (app [global (indt «eq»), c0, c1, c1]) c4 \ c0) c3 \ - field [coercion off, canonical ff] x - (let `w` (global (indt «nat»)) - (app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]) c4 \ - prod `x` c0 c5 \ - app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \ - end-record)) -Debug: -----<<---- enter: -coq.env.add-indt - (parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.88»)) c0 \ - parameter B explicit c0 c1 \ - record foo (sort (typ «elpi.tests.test_arg_HOAS.88»)) Build_foo - (field [coercion off, canonical tt] a - (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \ - field [coercion reversible, canonical tt] z - (prod `a` c0 c3 \ - prod `_` (app [global (indt «eq»), c0, c1, c1]) c4 \ c0) c3 \ - field [coercion off, canonical ff] x - (let `w` (global (indt «nat»)) - (app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]) c4 \ - prod `x` c0 c5 \ - app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \ - end-record)) X0 -Debug: ----->>---- exit: -coq.env.add-indt - (parameter A explicit (sort (typ «foo.u0»)) c0 \ - parameter B explicit c0 c1 \ - record foo (sort (typ «foo.u0»)) Build_foo - (field [coercion off, canonical tt] a - (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \ - field [coercion reversible, canonical tt] z - (prod `a` c0 c3 \ - prod `_` (app [global (indt «eq»), c0, c1, c1]) c4 \ c0) c3 \ - field [coercion off, canonical ff] x - (let `w` (global (indt «nat»)) - (app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]) c4 \ - prod `x` c0 c5 \ - app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \ - end-record)) «foo» -Query assignments: - I = «foo» -Debug: -----<<---- enter: -coq.say raw: - (parameter A explicit X0 c0 \ - parameter B explicit c0 c1 \ - record foo (sort (typ X1)) Build_foo - (field [coercion off, canonical tt] a - (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \ - field [coercion reversible, canonical tt] z - (prod `_elpi_renamed_a_1` c0 c3 \ - prod `_` (app [global (indt «eq»), X2 c2 c3, c1, c1]) c4 \ c0) - c3 \ - field [coercion off, canonical ff] x - (let `w` (X3 c3) - (app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]) c4 \ - prod `x` (X4 c3 c4) c5 \ - app [global (indt «eq»), X5 c3 c4 c5, app [c2, c5, c5], c5]) - c4 \ end-record)) -raw: -parameter A explicit X0 c0 \ - parameter B explicit c0 c1 \ - record foo (sort (typ X1)) Build_foo - (field [coercion off, canonical tt] a - (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \ - field [coercion reversible, canonical tt] z - (prod `_elpi_renamed_a_1` c0 c3 \ - prod `_` (app [global (indt «eq»), X2 c2 c3, c1, c1]) c4 \ c0) c3 \ - field [coercion off, canonical ff] x - (let `w` (X3 c3) - (app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]) c4 \ - prod `x` (X4 c3 c4) c5 \ - app [global (indt «eq»), X5 c3 c4 c5, app [c2, c5, c5], c5]) c4 \ - end-record) -Debug: ----->>---- exit: -coq.say raw: - (parameter A explicit X0 c0 \ - parameter B explicit c0 c1 \ - record foo (sort (typ X1)) Build_foo - (field [coercion off, canonical tt] a - (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \ - field [coercion reversible, canonical tt] z - (prod `_elpi_renamed_a_1` c0 c3 \ - prod `_` (app [global (indt «eq»), X2 c2 c3, c1, c1]) c4 \ c0) - c3 \ - field [coercion off, canonical ff] x - (let `w` (X3 c3) - (app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]) c4 \ - prod `x` (X4 c3 c4) c5 \ - app [global (indt «eq»), X5 c3 c4 c5, app [c2, c5, c5], c5]) - c4 \ end-record)) -Debug: -----<<---- enter: -std.assert-ok! - (coq.elaborate-indt-decl-skeleton - (parameter A explicit X0 c0 \ - parameter B explicit c0 c1 \ - record foo (sort (typ X1)) Build_foo - (field [coercion off, canonical tt] a - (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \ - field [coercion reversible, canonical tt] z - (prod `_elpi_renamed_a_1` c0 c3 \ - prod `_` (app [global (indt «eq»), X2 c2 c3, c1, c1]) c4 \ c0) - c3 \ - field [coercion off, canonical ff] x - (let `w` (X3 c3) - (app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]) c4 \ - prod `x` (X4 c3 c4) c5 \ - app [global (indt «eq»), X5 c3 c4 c5, app [c2, c5, c5], c5]) - c4 \ end-record)) X6) Illtyped inductive declaration -Debug: ----->>---- exit: -std.assert-ok! - (coq.elaborate-indt-decl-skeleton - (parameter A explicit X0 c0 \ - parameter B explicit c0 c1 \ - record foo (sort (typ «elpi.tests.test_arg_HOAS.95»)) Build_foo - (field [coercion off, canonical tt] a - (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \ - field [coercion reversible, canonical tt] z - (prod `_elpi_renamed_a_1` c0 c3 \ -...TRUNCATED BY DUNE... - app - [global (const «Nat.add»), c2, - app [global (indc «S»), global (indc «O»)]]) - (prod `P` (sort (typ «elpi.tests.test_arg_HOAS.106»)) c0 \ - prod `w` c0 c1 \ prod `n` (global (indt «nat»)) c2 \ X5 c0 c1 c2) X7) - illtyped definition -Debug: ----->>---- exit: -std.assert-ok! - (coq.elaborate-skeleton - (fun `P` (sort (typ «elpi.tests.test_arg_HOAS.109»)) c0 \ - fun `w` c0 c1 \ - fun `n` (global (indt «nat»)) c2 \ - app - [global (const «Nat.add»), c2, - app [global (indc «S»), global (indc «O»)]]) - (prod `P` (sort (typ «elpi.tests.test_arg_HOAS.106»)) c0 \ - prod `w` c0 c1 \ - prod `n` (global (indt «nat»)) c2 \ global (indt «nat»)) - (fun `P` (sort (typ «elpi.tests.test_arg_HOAS.110»)) c0 \ - fun `w` c0 c1 \ - fun `n` (global (indt «nat»)) c2 \ - app - [global (const «Nat.add»), c2, - app [global (indc «S»), global (indc «O»)]])) - illtyped definition -Debug: -----<<---- enter: -coq.env.add-const x1 - (fun `P` (sort (typ «elpi.tests.test_arg_HOAS.110»)) c0 \ - fun `w` c0 c1 \ - fun `n` (global (indt «nat»)) c2 \ - app - [global (const «Nat.add»), c2, - app [global (indc «S»), global (indc «O»)]]) - (prod `P` (sort (typ «elpi.tests.test_arg_HOAS.106»)) c0 \ - prod `w` c0 c1 \ - prod `n` (global (indt «nat»)) c2 \ global (indt «nat»)) X8 X9 -Debug: ----->>---- exit: -coq.env.add-const x1 - (fun `P` (sort (typ «x1.u1»)) c0 \ - fun `w` c0 c1 \ - fun `n` (global (indt «nat»)) c2 \ - app - [global (const «Nat.add»), c2, - app [global (indc «S»), global (indc «O»)]]) - (prod `P` (sort (typ «x1.u0»)) c0 \ - prod `w` c0 c1 \ - prod `n` (global (indt «nat»)) c2 \ global (indt «nat»)) X8 «x1» -x1 : forall P : Type, P -> nat -> nat - : forall P : Type, P -> nat -> nat -eq_refl : x1 = (fun (P : Type) (_ : P) (n : nat) => n + 1) - : x1 = (fun (P : Type) (_ : P) (n : nat) => n + 1) -Debug: -----<<---- enter: -coq.arity->term - (parameter n explicit (global (indt «nat»)) c0 \ - arity (sort (typ «elpi.tests.test_arg_HOAS.113»))) X0 -Debug: ----->>---- exit: -coq.arity->term - (parameter n explicit (global (indt «nat»)) c0 \ - arity (sort (typ «elpi.tests.test_arg_HOAS.113»))) - (prod `n` (global (indt «nat»)) c0 \ - sort (typ «elpi.tests.test_arg_HOAS.113»)) -Debug: -----<<---- enter: -std.assert-ok! - (coq.typecheck-ty - (prod `n` (global (indt «nat»)) c0 \ - sort (typ «elpi.tests.test_arg_HOAS.113»)) X1) illtyped axiom -Debug: ----->>---- exit: -std.assert-ok! - (coq.typecheck-ty - (prod `n` (global (indt «nat»)) c0 \ - sort (typ «elpi.tests.test_arg_HOAS.113»)) - (typ «elpi.tests.test_arg_HOAS.114»)) illtyped axiom -Debug: -----<<---- enter: -coq.env.add-axiom y - (prod `n` (global (indt «nat»)) c0 \ - sort (typ «elpi.tests.test_arg_HOAS.113»)) X2 -Debug: ----->>---- exit: -coq.env.add-axiom y - (prod `n` (global (indt «nat»)) c0 \ sort (typ «y.u0»)) «y» -y : nat -> Type - : nat -> Type -Debug: -----<<---- enter: -coq.arity->term - (parameter n explicit (global (indt «nat»)) c0 \ - arity (global (indt «nat»))) X0 -Debug: ----->>---- exit: -coq.arity->term - (parameter n explicit (global (indt «nat»)) c0 \ - arity (global (indt «nat»))) - (prod `n` (global (indt «nat»)) c0 \ global (indt «nat»)) -Debug: -----<<---- enter: -std.assert-ok! - (coq.typecheck - (fun `n` (global (indt «nat»)) c0 \ app [global (indc «S»), c0]) - (prod `n` (global (indt «nat»)) c0 \ global (indt «nat»))) - illtyped definition -Debug: ----->>---- exit: -std.assert-ok! - (coq.typecheck - (fun `n` (global (indt «nat»)) c0 \ app [global (indc «S»), c0]) - (prod `n` (global (indt «nat»)) c0 \ global (indt «nat»))) - illtyped definition -Debug: -----<<---- enter: -coq.env.add-const x - (fun `n` (global (indt «nat»)) c0 \ app [global (indc «S»), c0]) - (prod `n` (global (indt «nat»)) c0 \ global (indt «nat»)) X1 X2 -Debug: ----->>---- exit: -coq.env.add-const x - (fun `n` (global (indt «nat»)) c0 \ app [global (indc «S»), c0]) - (prod `n` (global (indt «nat»)) c0 \ global (indt «nat»)) X1 «x» -parameter A1 maximal (sort (typ «foo1.u0»)) c0 \ - parameter A2 explicit c0 c1 \ - inductive foo1 tt - (parameter B1 explicit (sort (typ «foo1.u1»)) c2 \ - parameter B2 explicit (sort (typ «foo1.u2»)) c3 \ - arity (prod `_` (global (indt «nat»)) c4 \ sort (typ «foo1.u3»))) - c2 \ - [constructor a_k1 - (parameter B1 explicit (sort (typ «foo1.u1»)) c3 \ - parameter B2 explicit (sort (typ «foo1.u2»)) c4 \ - arity - (prod `x` (global (indt «nat»)) c5 \ - prod `_` - (app - [c2, app [global (indt «prod»), c3, c3], c4, - app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]]) c6 \ - app [c2, c3, c4, c5])), - constructor a_k2 - (parameter B1 explicit (sort (typ «foo1.u1»)) c3 \ - parameter B2 explicit (sort (typ «foo1.u2»)) c4 \ - arity - (prod `_` c0 c5 \ - app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))] -Query assignments: - D = parameter A1 maximal (sort (typ «foo1.u0»)) c0 \ - parameter A2 explicit c0 c1 \ - inductive foo1 tt - (parameter B1 explicit (sort (typ «foo1.u1»)) c2 \ - parameter B2 explicit (sort (typ «foo1.u2»)) c3 \ - arity (prod `_` (global (indt «nat»)) c4 \ sort (typ «foo1.u3»))) - c2 \ - [constructor a_k1 - (parameter B1 explicit (sort (typ «foo1.u1»)) c3 \ - parameter B2 explicit (sort (typ «foo1.u2»)) c4 \ - arity - (prod `x` (global (indt «nat»)) c5 \ - prod `_` - (app - [c2, app [global (indt «prod»), c3, c3], c4, - app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]]) c6 \ - app [c2, c3, c4, c5])), - constructor a_k2 - (parameter B1 explicit (sort (typ «foo1.u1»)) c3 \ - parameter B2 explicit (sort (typ «foo1.u2»)) c4 \ - arity - (prod `_` c0 c5 \ - app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))] - I = «inductive_nup.foo1» -foo1 ?A2 ?B1 ?B2 ?n : Type - : Type -where -?A1 : [ |- Type] -?A2 : [ |- ?A1] -?B1 : [ |- Type] -?B2 : [ |- Type] -?n : [ |- nat] -a_k1 ?A2 ?B1 ?B2 3 ?f : foo1 ?A2 ?B1 ?B2 3 - : foo1 ?A2 ?B1 ?B2 3 -where -?A1 : [ |- Type] -?A2 : [ |- ?A1] -?B1 : [ |- Type] -?B2 : [ |- Type] -?f : [ |- foo1 ?A2 (?B1 * ?B1) ?B2 3] -Query assignments: - I = «inductive_nup.r» - R = parameter A explicit (sort (typ «r.u0»)) c0 \ - parameter a explicit c0 c1 \ - record r (sort (typ «r.u0»)) R - (field [coercion reversible, canonical tt] f (prod `_` c0 c2 \ c0) c2 \ - field [coercion off, canonical tt] g c0 c3 \ - field [coercion off, canonical tt] p - (app [global (indt «eq»), c0, c1, c3]) c4 \ end-record) -Record r (A : Type) (a : A) : Type := R { f : A -> A; g : A; p : a = g }. +A.B.c is not universe polymorphic +A.B.c is transparent +Expands to: Constant elpi.apps.NES.tests.test_NES.A_aux_4.A.B.c +A1.B1.d : nat -Arguments r A%type_scope a -Arguments R A%type_scope a f%function_scope g p -Arguments f A%type_scope a record _ -Arguments g A%type_scope a record -Arguments p A%type_scope a record -Debug: -----<<---- enter: coq.say raw: (inductive X1 tt (arity (sort prop)) c0 \ []) -raw: inductive X1 tt (arity (sort prop)) c0 \ [] -Debug: ----->>---- exit: coq.say raw: (inductive X1 tt (arity (sort prop)) c0 \ []) -Debug: -----<<---- enter: -std.assert-ok! - (coq.typecheck-indt-decl (inductive X1 tt (arity (sort prop)) c0 \ [])) - Illtyped inductive declaration -Debug: ----->>---- exit: -std.assert-ok! - (coq.typecheck-indt-decl (inductive X1 tt (arity (sort prop)) c0 \ [])) - Illtyped inductive declaration -Debug: -----<<---- enter: -coq.say typed: (inductive X1 tt (arity (sort prop)) c0 \ []) -typed: inductive X1 tt (arity (sort prop)) c0 \ [] -Debug: ----->>---- exit: -coq.say typed: (inductive X1 tt (arity (sort prop)) c0 \ []) -Debug: -----<<---- enter: -coq.env.add-indt (inductive X1 tt (arity (sort prop)) c0 \ []) X0 -Debug: ----->>---- exit: -coq.env.add-indt (inductive X1 tt (arity (sort prop)) c0 \ []) «X1» -X1 : Prop +A1.B1.d is not universe polymorphic +A1.B1.d is transparent +Expands to: Constant elpi.apps.NES.tests.test_NES.A1_aux_6.A1.B1.d +A1.B1.c : nat -X1 is not universe polymorphic -Expands to: Inductive elpi.tests.test_arg_HOAS.X1 -Debug: -----<<---- enter: -coq.say raw: - (inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.129»))) c0 \ - []) (upoly-decl [«elpi.tests.test_arg_HOAS.129»] tt [] tt) -raw: -inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.129»))) c0 \ [] -upoly-decl [«elpi.tests.test_arg_HOAS.129»] tt [] tt -Debug: ----->>---- exit: -coq.say raw: - (inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.129»))) c0 \ - []) (upoly-decl [«elpi.tests.test_arg_HOAS.129»] tt [] tt) -Debug: ----<<---- enter: coq.univ.print -Universe constraints: UNIVERSES: - {eu1} |= - ALGEBRAIC UNIVERSES: - {} - FLEXIBLE UNIVERSES: - eu1 - SORTS: - - WEAK CONSTRAINTS: - - -Debug: ---->>---- exit: coq.univ.print -Debug: -----<<---- enter: -std.assert-ok! - (coq.typecheck-indt-decl - (inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.129»))) - c0 \ [])) Illtyped inductive declaration -Debug: ----->>---- exit: -std.assert-ok! - (coq.typecheck-indt-decl - (inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.129»))) - c0 \ [])) Illtyped inductive declaration -Debug: -----<<---- enter: -coq.say typed: - (inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.129»))) c0 \ - []) -typed: -inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.129»))) c0 \ [] -Debug: ----->>---- exit: -coq.say typed: - (inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.129»))) c0 \ - []) -Debug: -----<<---- enter: -coq.upoly-decl->attribute - (upoly-decl [«elpi.tests.test_arg_HOAS.129»] tt [] tt) X0 -Debug: ----->>---- exit: -coq.upoly-decl->attribute - (upoly-decl [«elpi.tests.test_arg_HOAS.129»] tt [] tt) - (get-option coq:udecl - (upoly-decl [«elpi.tests.test_arg_HOAS.129»] tt [] tt)) -Debug: -----<<---- enter: -get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.129»] tt [] tt) - => - coq.env.add-indt - (inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.129»))) c0 \ - []) X1 -Debug: ----->>---- exit: -get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.129»] tt [] tt) - => - coq.env.add-indt - (inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.129»))) c0 \ - []) «X3» -Debug: -----<<---- enter: -coq.say raw: - (inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.137»))) c0 \ - []) (upoly-decl-cumul [auto «elpi.tests.test_arg_HOAS.137»] tt [] tt) -raw: -inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.137»))) c0 \ [] -upoly-decl-cumul [auto «elpi.tests.test_arg_HOAS.137»] tt [] tt -Debug: ----->>---- exit: -coq.say raw: - (inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.137»))) c0 \ - []) (upoly-decl-cumul [auto «elpi.tests.test_arg_HOAS.137»] tt [] tt) -Debug: ----<<---- enter: coq.univ.print -Universe constraints: UNIVERSES: - {eu2} |= - ALGEBRAIC UNIVERSES: - {} - FLEXIBLE UNIVERSES: - eu2 - SORTS: - - WEAK CONSTRAINTS: - - -Debug: ---->>---- exit: coq.univ.print -Debug: -----<<---- enter: -std.assert-ok! - (coq.typecheck-indt-decl - (inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.137»))) - c0 \ [])) Illtyped inductive declaration -Debug: ----->>---- exit: -std.assert-ok! - (coq.typecheck-indt-decl - (inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.137»))) - c0 \ [])) Illtyped inductive declaration -Debug: -----<<---- enter: -coq.say typed: - (inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.137»))) c0 \ - []) -typed: -inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.137»))) c0 \ [] -Debug: ----->>---- exit: -coq.say typed: - (inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.137»))) c0 \ - []) -Debug: -----<<---- enter: -coq.upoly-decl->attribute - (upoly-decl-cumul [auto «elpi.tests.test_arg_HOAS.137»] tt [] tt) X0 -Debug: ----->>---- exit: -coq.upoly-decl->attribute - (upoly-decl-cumul [auto «elpi.tests.test_arg_HOAS.137»] tt [] tt) - (get-option coq:udecl-cumul - (upoly-decl-cumul [auto «elpi.tests.test_arg_HOAS.137»] tt [] tt)) -Debug: -----<<---- enter: -get-option coq:udecl-cumul - (upoly-decl-cumul [auto «elpi.tests.test_arg_HOAS.137»] tt [] tt) => - coq.env.add-indt - (inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.137»))) c0 \ - []) X1 -Debug: ----->>---- exit: -get-option coq:udecl-cumul - (upoly-decl-cumul [auto «elpi.tests.test_arg_HOAS.137»] tt [] tt) => - coq.env.add-indt - (inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.137»))) c0 \ - []) «X4» -X3@{eu1} : Type@{eu1} -(* eu1 |= *) +A1.B1.c is not universe polymorphic +A1.B1.c is transparent +Expands to: Constant elpi.apps.NES.tests.test_NES.A1_aux_5.A1.B1.c +x = 5 + : nat +x2 = 4 + : nat +B1.c = 1 + : nat +B1.d = 1 + : nat +d = 1 + : nat +A2.B2.f = 2 + : nat +Module +d3 + : d3_Locked +:= Struct Definition body : nat. Parameter unlock : d3 = 3. End +Module Type + d3_Locked = + Sig Parameter body : nat. Parameter unlock : body = 3. End +cons2 : forall {A : Type}, A -> list A -> list A -X3 is universe polymorphic -Expands to: Inductive elpi.tests.test_arg_HOAS.X3 -X4@{eu2} : Type@{eu2} -(* *eu2 |= *) +cons2 is not universe polymorphic +Arguments cons2 {A}%type_scope x xs%list_scope +cons2 is transparent +Expands to: Constant +elpi.apps.locker.tests.test_locker.Bug_286.lock_container.cons2 +cons3 : forall [A : Type], EqDecision A -> A -> list A -> list A -X4 is universe polymorphic -Expands to: Inductive elpi.tests.test_arg_HOAS.X4 -Query assignments: - GR = indt «X3» -Universe constraints: -UNIVERSES: - {elpi.tests.test_arg_HOAS.145} |= -ALGEBRAIC UNIVERSES: - {} -FLEXIBLE UNIVERSES: - elpi.tests.test_arg_HOAS.145 -SORTS: - -WEAK CONSTRAINTS: - +cons3 is not universe polymorphic +Arguments cons3 [A]%type_scope {H} x xs%list_scope +cons3 is transparent +Expands to: Constant +elpi.apps.locker.tests.test_locker.Bug_286.lock_container2.cons3 +id1@{u} : forall T : Type@{u}, T -> T +(* u |= u < locked_with.u0 *) +id1 is universe polymorphic +Arguments id1 T%type_scope x +id1 is transparent +Expands to: Constant elpi.apps.locker.tests.test_locker.id1 Query assignments: - GR = indt «X4» -Universe constraints: -UNIVERSES: - {elpi.tests.test_arg_HOAS.146} |= -ALGEBRAIC UNIVERSES: - {} -FLEXIBLE UNIVERSES: - elpi.tests.test_arg_HOAS.146 -SORTS: - -WEAK CONSTRAINTS: - - -Debug: -----<<---- enter: -coq.say raw: - (inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.147»))) c0 \ - []) (upoly-decl [«elpi.tests.test_arg_HOAS.147»] ff [] ff) -raw: -inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.147»))) c0 \ [] -upoly-decl [«elpi.tests.test_arg_HOAS.147»] ff [] ff -Debug: ----->>---- exit: -coq.say raw: - (inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.147»))) c0 \ - []) (upoly-decl [«elpi.tests.test_arg_HOAS.147»] ff [] ff) -Debug: ----<<---- enter: coq.univ.print -Universe constraints: UNIVERSES: - {eu3} |= - ALGEBRAIC UNIVERSES: - {} - FLEXIBLE UNIVERSES: - eu3 - SORTS: - - WEAK CONSTRAINTS: - - -Debug: ---->>---- exit: coq.univ.print -Debug: -----<<---- enter: -std.assert-ok! - (coq.typecheck-indt-decl - (inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.147»))) - c0 \ [])) Illtyped inductive declaration -Debug: ----->>---- exit: -std.assert-ok! - (coq.typecheck-indt-decl - (inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.147»))) - c0 \ [])) Illtyped inductive declaration -Debug: -----<<---- enter: -coq.say typed: - (inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.147»))) c0 \ - []) -typed: -inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.147»))) c0 \ [] -Debug: ----->>---- exit: -coq.say typed: - (inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.147»))) c0 \ - []) -Debug: -----<<---- enter: -coq.upoly-decl->attribute - (upoly-decl [«elpi.tests.test_arg_HOAS.147»] ff [] ff) X0 -Debug: ----->>---- exit: -coq.upoly-decl->attribute - (upoly-decl [«elpi.tests.test_arg_HOAS.147»] ff [] ff) - (get-option coq:udecl - (upoly-decl [«elpi.tests.test_arg_HOAS.147»] ff [] ff)) -Debug: -----<<---- enter: -get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.147»] ff [] ff) - => - coq.env.add-indt - (inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.147»))) c0 \ - []) X1 -Debug: ----->>---- exit: -get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.147»] ff [] ff) - => - coq.env.add-indt - (inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.147»))) c0 \ - []) «X5» -X5@{eu3} : Type@{eu3} -(* eu3 |= *) - -X5 is universe polymorphic -Expands to: Inductive elpi.tests.test_arg_HOAS.X5 -Debug: -----<<---- enter: -coq.say raw: - (inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.156»))) c0 \ - [constructor K - (arity (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.155»)) c1 \ c0))]) - (upoly-decl - [«elpi.tests.test_arg_HOAS.155», «elpi.tests.test_arg_HOAS.156»] ff - [lt «elpi.tests.test_arg_HOAS.155» «elpi.tests.test_arg_HOAS.156»] ff) -raw: -inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.156»))) c0 \ - [constructor K - (arity (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.155»)) c1 \ c0))] -upoly-decl - [«elpi.tests.test_arg_HOAS.155», «elpi.tests.test_arg_HOAS.156»] ff - [lt «elpi.tests.test_arg_HOAS.155» «elpi.tests.test_arg_HOAS.156»] ff -Debug: ----->>---- exit: -coq.say raw: - (inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.156»))) c0 \ - [constructor K - (arity (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.155»)) c1 \ c0))]) - (upoly-decl - [«elpi.tests.test_arg_HOAS.155», «elpi.tests.test_arg_HOAS.156»] ff - [lt «elpi.tests.test_arg_HOAS.155» «elpi.tests.test_arg_HOAS.156»] ff) -Debug: ----<<---- enter: coq.univ.print -Universe constraints: UNIVERSES: - {eu5 eu4} |= eu4 < eu5 - ALGEBRAIC UNIVERSES: - {} - FLEXIBLE UNIVERSES: - eu5 - eu4 - SORTS: - - WEAK CONSTRAINTS: - - -Debug: ---->>---- exit: coq.univ.print -Debug: -----<<---- enter: -std.assert-ok! - (coq.typecheck-indt-decl - (inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.156»))) - c0 \ - [constructor K - (arity - (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.155»)) c1 \ c0))])) - Illtyped inductive declaration -Debug: ----->>---- exit: -std.assert-ok! - (coq.typecheck-indt-decl - (inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.156»))) - c0 \ - [constructor K - (arity - (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.155»)) c1 \ c0))])) - Illtyped inductive declaration -Debug: -----<<---- enter: -coq.say typed: - (inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.156»))) c0 \ - [constructor K - (arity (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.155»)) c1 \ c0))]) -typed: -inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.156»))) c0 \ - [constructor K - (arity (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.155»)) c1 \ c0))] -Debug: ----->>---- exit: -coq.say typed: - (inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.156»))) c0 \ - [constructor K - (arity (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.155»)) c1 \ c0))]) -Debug: -----<<---- enter: -coq.upoly-decl->attribute - (upoly-decl - [«elpi.tests.test_arg_HOAS.155», «elpi.tests.test_arg_HOAS.156»] ff - [lt «elpi.tests.test_arg_HOAS.155» «elpi.tests.test_arg_HOAS.156»] ff) - X0 -Debug: ----->>---- exit: -coq.upoly-decl->attribute - (upoly-decl - [«elpi.tests.test_arg_HOAS.155», «elpi.tests.test_arg_HOAS.156»] ff - [lt «elpi.tests.test_arg_HOAS.155» «elpi.tests.test_arg_HOAS.156»] ff) - (get-option coq:udecl - (upoly-decl - [«elpi.tests.test_arg_HOAS.155», «elpi.tests.test_arg_HOAS.156»] ff - [lt «elpi.tests.test_arg_HOAS.155» «elpi.tests.test_arg_HOAS.156»] - ff)) -Debug: -----<<---- enter: -get-option coq:udecl - (upoly-decl - [«elpi.tests.test_arg_HOAS.155», «elpi.tests.test_arg_HOAS.156»] ff - [lt «elpi.tests.test_arg_HOAS.155» «elpi.tests.test_arg_HOAS.156»] ff) - => - coq.env.add-indt - (inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.156»))) c0 \ - [constructor K - (arity (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.155»)) c1 \ c0))]) - X1 -Debug: ----->>---- exit: -get-option coq:udecl - (upoly-decl - [«elpi.tests.test_arg_HOAS.155», «elpi.tests.test_arg_HOAS.156»] ff - [lt «elpi.tests.test_arg_HOAS.155» «elpi.tests.test_arg_HOAS.156»] ff) - => - coq.env.add-indt - (inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.156»))) c0 \ - [constructor K - (arity (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.155»)) c1 \ c0))]) - «X6» -X6@{eu4 eu5} : Type@{eu5} -(* eu4 eu5 |= eu4 < eu5 *) - -X6 is universe polymorphic -Expands to: Inductive elpi.tests.test_arg_HOAS.X6 -Debug: -----<<---- enter: -coq.say raw: (inductive X8 tt (arity (sort (typ X0))) c0 \ []) - (upoly-decl [] tt [] tt) -raw: inductive X8 tt (arity (sort (typ X0))) c0 \ [] upoly-decl [] tt [] tt -Debug: ----->>---- exit: -coq.say raw: (inductive X8 tt (arity (sort (typ X0))) c0 \ []) - (upoly-decl [] tt [] tt) -Debug: ----<<---- enter: coq.univ.print -Universe constraints: -Debug: ---->>---- exit: coq.univ.print -Debug: -----<<---- enter: -get-option coq:keepunivs tt => - std.assert-ok! - (coq.elaborate-indt-decl-skeleton - (inductive X8 tt (arity (sort (typ X0))) c0 \ []) X1) - Illtyped inductive declaration -Debug: ----->>---- exit: -get-option coq:keepunivs tt => - std.assert-ok! - (coq.elaborate-indt-decl-skeleton - (inductive X8 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.171»))) - c0 \ []) - (inductive X8 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.171»))) - c0 \ [])) Illtyped inductive declaration -Debug: -----<<---- enter: -coq.say typed: - (inductive X8 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.171»))) c0 \ - []) -typed: -inductive X8 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.171»))) c0 \ [] -Debug: ----->>---- exit: -coq.say typed: - (inductive X8 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.171»))) c0 \ - []) -Debug: -----<<---- enter: coq.upoly-decl->attribute (upoly-decl [] tt [] tt) X2 -Debug: ----->>---- exit: -coq.upoly-decl->attribute (upoly-decl [] tt [] tt) - (get-option coq:udecl (upoly-decl [] tt [] tt)) -Debug: -----<<---- enter: -get-option coq:udecl (upoly-decl [] tt [] tt) => - coq.env.add-indt - (inductive X8 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.171»))) c0 \ - []) X3 -Debug: ----->>---- exit: -get-option coq:udecl (upoly-decl [] tt [] tt) => - coq.env.add-indt - (inductive X8 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.171»))) c0 \ - []) «X8» -X8@{u} : Type@{u} -(* u |= *) - -X8 is universe polymorphic -Expands to: Inductive elpi.tests.test_arg_HOAS.X8 -Debug: -----<<---- enter: -coq.arity->term - (parameter T explicit (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \ - parameter x explicit c0 c1 \ arity c0) X0 -Debug: ----->>---- exit: -coq.arity->term - (parameter T explicit (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \ - parameter x explicit c0 c1 \ arity c0) - (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \ - prod `x` c0 c1 \ c0) -Debug: -----<<---- enter: -std.assert-ok! - (coq.typecheck - (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \ - fun `x` c0 c1 \ c1) - (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \ - prod `x` c0 c1 \ c0)) illtyped definition -Debug: ----->>---- exit: -std.assert-ok! - (coq.typecheck - (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \ - fun `x` c0 c1 \ c1) - (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \ - prod `x` c0 c1 \ c0)) illtyped definition -Debug: -----<<---- enter: coq.upoly-decl->attribute (upoly-decl [] tt [] tt) X1 -Debug: ----->>---- exit: -coq.upoly-decl->attribute (upoly-decl [] tt [] tt) - (get-option coq:udecl (upoly-decl [] tt [] tt)) -Debug: -----<<---- enter: -get-option coq:udecl (upoly-decl [] tt [] tt) => - coq.env.add-const f1 - (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \ - fun `x` c0 c1 \ c1) - (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \ - prod `x` c0 c1 \ c0) X2 X3 -Debug: ----->>---- exit: -get-option coq:udecl (upoly-decl [] tt [] tt) => - coq.env.add-const f1 - (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \ - fun `x` c0 c1 \ c1) - (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \ - prod `x` c0 c1 \ c0) X2 «f1» -f1@{u} : forall T : Type@{u}, T -> T -(* u |= *) + GR = const «id1» +id2.body@{u} : forall T : Type@{u}, T -> T +(* u |= u < eq.u0 *) -f1 is universe polymorphic -Arguments f1 T%type_scope x -f1 is transparent -Expands to: Constant elpi.tests.test_arg_HOAS.f1 -Debug: -----<<---- enter: -coq.arity->term - (parameter T explicit (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \ - parameter T1 explicit (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \ - parameter x explicit c0 c2 \ arity c0) X0 -Debug: ----->>---- exit: -coq.arity->term - (parameter T explicit (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \ - parameter T1 explicit (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \ - parameter x explicit c0 c2 \ arity c0) - (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \ - prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \ - prod `x` c0 c2 \ c0) -Debug: -----<<---- enter: -std.assert-ok! - (coq.typecheck - (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \ - fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \ - fun `x` c0 c2 \ c2) - (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \ - prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \ - prod `x` c0 c2 \ c0)) illtyped definition -Debug: ----->>---- exit: -std.assert-ok! - (coq.typecheck - (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \ - fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \ - fun `x` c0 c2 \ c2) - (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \ - prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \ - prod `x` c0 c2 \ c0)) illtyped definition -Debug: -----<<---- enter: -coq.upoly-decl->attribute - (upoly-decl [«elpi.tests.test_arg_HOAS.180»] ff [] tt) X1 -Debug: ----->>---- exit: -coq.upoly-decl->attribute - (upoly-decl [«elpi.tests.test_arg_HOAS.180»] ff [] tt) - (get-option coq:udecl - (upoly-decl [«elpi.tests.test_arg_HOAS.180»] ff [] tt)) -Debug: -----<<---- enter: -get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.180»] ff [] tt) - => - coq.env.add-const f2 - (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \ - fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \ - fun `x` c0 c2 \ c2) - (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \ - prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \ - prod `x` c0 c2 \ c0) X2 X3 -Debug: ----->>---- exit: -get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.180»] ff [] tt) - => - coq.env.add-const f2 - (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \ - fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \ - fun `x` c0 c2 \ c2) - (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \ - prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \ - prod `x` c0 c2 \ c0) X2 «f2» -f2@{u} : forall T : Type@{u}, Type@{u} -> T -> T -(* u |= *) +id2.body is universe polymorphic +Arguments id2.body T%type_scope x +Expands to: Constant elpi.apps.locker.tests.test_locker.id2.body +Query assignments: + GR = const «id2.body» +up1.body@{u} : forall T : Type@{u}, T -> T +(* u |= u < eq.u0 *) -f2 is universe polymorphic -Arguments f2 (T T1)%type_scope x -f2 is transparent -Expands to: Constant elpi.tests.test_arg_HOAS.f2 -Debug: -----<<---- enter: -coq.arity->term - (parameter T explicit (sort (typ X0)) c0 \ - parameter x explicit c0 c1 \ arity (X1 c1)) X2 -Debug: ----->>---- exit: -coq.arity->term - (parameter T explicit (sort (typ X0)) c0 \ - parameter x explicit c0 c1 \ arity (X1 c1)) - (prod `T` (sort (typ X0)) c0 \ prod `x` c0 c1 \ X1 c1) -Debug: -----<<---- enter: -get-option coq:keepunivs tt => - std.assert-ok! - (coq.elaborate-ty-skeleton - (prod `T` (sort (typ X0)) c0 \ prod `x` c0 c1 \ X1 c1) X3 X4) - illtyped arity -Debug: ----->>---- exit: -get-option coq:keepunivs tt => - std.assert-ok! - (coq.elaborate-ty-skeleton - (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.181»)) c0 \ - prod `x` c0 c1 \ X1 c1) (typ «elpi.tests.test_arg_HOAS.183») - (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.181»)) c0 \ - prod `x` c0 c1 \ X5 c0 c1)) illtyped arity -Debug: -----<<---- enter: -get-option coq:keepunivs tt => - std.assert-ok! - (coq.elaborate-skeleton (fun `T` (sort (typ X6)) c0 \ fun `x` c0 c1 \ c1) - (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.181»)) c0 \ - prod `x` c0 c1 \ X5 c0 c1) X7) illtyped definition -Debug: ----->>---- exit: -get-option coq:keepunivs tt => - std.assert-ok! - (coq.elaborate-skeleton - (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.184»)) c0 \ - fun `x` c0 c1 \ c1) - (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.181»)) c0 \ - prod `x` c0 c1 \ c0) - (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.181»)) c0 \ - fun `x` c0 c1 \ c1)) illtyped definition -Debug: -----<<---- enter: coq.upoly-decl->attribute (upoly-decl [] tt [] tt) X8 -Debug: ----->>---- exit: -coq.upoly-decl->attribute (upoly-decl [] tt [] tt) - (get-option coq:udecl (upoly-decl [] tt [] tt)) -Debug: -----<<---- enter: -get-option coq:udecl (upoly-decl [] tt [] tt) => - coq.env.add-const f3 - (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.181»)) c0 \ - fun `x` c0 c1 \ c1) - (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.181»)) c0 \ - prod `x` c0 c1 \ c0) X9 X10 -Debug: ----->>---- exit: -get-option coq:udecl (upoly-decl [] tt [] tt) => - coq.env.add-const f3 - (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.181»)) c0 \ - fun `x` c0 c1 \ c1) - (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.181»)) c0 \ - prod `x` c0 c1 \ c0) X9 «f3» -f3@{u} : forall T : Type@{u}, T -> T -(* u |= *) +up1.body is universe polymorphic +Arguments up1.body T%type_scope x +Expands to: Constant elpi.apps.locker.tests.test_locker.up1.body +Query assignments: + GR = const «up1.body» +nup1.body : forall T : Type@{nup1.body.u0}, T -> T -f3 is universe polymorphic -Arguments f3 T%type_scope x -f3 is transparent -Expands to: Constant elpi.tests.test_arg_HOAS.f3 -Debug: -----<<---- enter: -coq.arity->term - (parameter T explicit (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \ - parameter T1 explicit (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \ - parameter x explicit c0 c2 \ arity (X0 c2)) X1 -Debug: ----->>---- exit: -coq.arity->term - (parameter T explicit (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \ - parameter T1 explicit (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \ - parameter x explicit c0 c2 \ arity (X0 c2)) - (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \ - prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \ - prod `x` c0 c2 \ X0 c2) -Debug: -----<<---- enter: -get-option coq:keepunivs tt => - std.assert-ok! - (coq.elaborate-ty-skeleton - (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \ - prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \ - prod `x` c0 c2 \ X0 c2) X2 X3) illtyped arity -Debug: ----->>---- exit: -get-option coq:keepunivs tt => - std.assert-ok! - (coq.elaborate-ty-skeleton - (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \ - prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \ - prod `x` c0 c2 \ X0 c2) (typ «elpi.tests.test_arg_HOAS.187») - (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \ - prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \ - prod `x` c0 c2 \ X4 c0 c1 c2)) illtyped arity -Debug: -----<<---- enter: -get-option coq:keepunivs tt => - std.assert-ok! - (coq.elaborate-skeleton - (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \ - fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \ - fun `x` c0 c2 \ c2) - (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \ - prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \ - prod `x` c0 c2 \ X4 c0 c1 c2) X5) illtyped definition -Debug: ----->>---- exit: -get-option coq:keepunivs tt => - std.assert-ok! - (coq.elaborate-skeleton - (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \ - fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \ - fun `x` c0 c2 \ c2) - (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \ - prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \ - prod `x` c0 c2 \ c0) - (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \ - fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \ - fun `x` c0 c2 \ c2)) illtyped definition -Debug: -----<<---- enter: -coq.upoly-decl->attribute - (upoly-decl [«elpi.tests.test_arg_HOAS.185»] ff [] tt) X6 -Debug: ----->>---- exit: -coq.upoly-decl->attribute - (upoly-decl [«elpi.tests.test_arg_HOAS.185»] ff [] tt) - (get-option coq:udecl - (upoly-decl [«elpi.tests.test_arg_HOAS.185»] ff [] tt)) -Debug: -----<<---- enter: -get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.185»] ff [] tt) - => - coq.env.add-const f4 - (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \ - fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \ - fun `x` c0 c2 \ c2) - (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \ - prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \ - prod `x` c0 c2 \ c0) X7 X8 -Debug: ----->>---- exit: -get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.185»] ff [] tt) - => - coq.env.add-const f4 - (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \ - fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \ - fun `x` c0 c2 \ c2) - (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \ - prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \ - prod `x` c0 c2 \ c0) X7 «f4» -f4@{u} : forall T : Type@{u}, Type@{u} -> T -> T -(* u |= *) +nup1.body is not universe polymorphic +Arguments nup1.body T%type_scope x +Expands to: Constant elpi.apps.locker.tests.test_locker.nup1.body +Query assignments: + GR = const «nup1.body» +up2.body@{u u0} : +forall T : Type@{u}, Type@{u0} -> T -> T +(* u u0 |= u < eq.u0 + u0 < eq.u0 *) -f4 is universe polymorphic -Arguments f4 (T T1)%type_scope x -f4 is transparent -Expands to: Constant elpi.tests.test_arg_HOAS.f4 -Debug: -----<<---- enter: -coq.arity->term - (parameter T explicit (sort (typ «uuu»)) c0 \ - parameter T1 explicit (sort (typ «uuu»)) c1 \ - parameter x explicit c0 c2 \ arity (X0 c2)) X1 -Debug: ----->>---- exit: -coq.arity->term - (parameter T explicit (sort (typ «uuu»)) c0 \ - parameter T1 explicit (sort (typ «uuu»)) c1 \ - parameter x explicit c0 c2 \ arity (X0 c2)) - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ X0 c2) -Debug: -----<<---- enter: -std.assert-ok! - (coq.elaborate-ty-skeleton - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ X0 c2) X2 X3) - illtyped arity -Debug: ----->>---- exit: -std.assert-ok! - (coq.elaborate-ty-skeleton - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ X0 c2) - (typ «elpi.tests.test_arg_HOAS.192») - (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.189»)) c0 \ - prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.190»)) c1 \ - prod `x` c0 c2 \ X4 c0 c1 c2)) illtyped arity -Debug: -----<<---- enter: -std.assert-ok! - (coq.elaborate-skeleton - (fun `T` (sort (typ «uuu»)) c0 \ - fun `T1` (sort (typ «uuu»)) c1 \ fun `x` c0 c2 \ c2) - (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.189»)) c0 \ - prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.190»)) c1 \ - prod `x` c0 c2 \ X4 c0 c1 c2) X5) illtyped definition -Debug: ----->>---- exit: -std.assert-ok! - (coq.elaborate-skeleton - (fun `T` (sort (typ «uuu»)) c0 \ - fun `T1` (sort (typ «uuu»)) c1 \ fun `x` c0 c2 \ c2) - (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.189»)) c0 \ - prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.190»)) c1 \ - prod `x` c0 c2 \ c0) - (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.193»)) c0 \ - fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.194»)) c1 \ - fun `x` c0 c2 \ c2)) illtyped definition -Debug: -----<<---- enter: -coq.env.add-const f5 - (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.193»)) c0 \ - fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.194»)) c1 \ - fun `x` c0 c2 \ c2) - (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.189»)) c0 \ - prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.190»)) c1 \ - prod `x` c0 c2 \ c0) X6 X7 -Debug: ----->>---- exit: -coq.env.add-const f5 - (fun `T` (sort (typ «f5.u2»)) c0 \ - fun `T1` (sort (typ «f5.u3»)) c1 \ fun `x` c0 c2 \ c2) - (prod `T` (sort (typ «f5.u0»)) c0 \ - prod `T1` (sort (typ «f5.u1»)) c1 \ prod `x` c0 c2 \ c0) X6 «f5» -Debug: -----<<---- enter: -coq.arity->term - (parameter T explicit (sort (typ «uuu»)) c0 \ - parameter T1 explicit (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \ - parameter x explicit c0 c2 \ arity c0) X0 -Debug: ----->>---- exit: -coq.arity->term - (parameter T explicit (sort (typ «uuu»)) c0 \ - parameter T1 explicit (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \ - parameter x explicit c0 c2 \ arity c0) - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \ - prod `x` c0 c2 \ c0) -Debug: -----<<---- enter: -std.assert-ok! - (coq.typecheck - (fun `T` (sort (typ «uuu»)) c0 \ - fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \ - fun `x` c0 c2 \ c2) - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \ - prod `x` c0 c2 \ c0)) illtyped definition -Debug: ----->>---- exit: -std.assert-ok! - (coq.typecheck - (fun `T` (sort (typ «uuu»)) c0 \ - fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \ - fun `x` c0 c2 \ c2) - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \ - prod `x` c0 c2 \ c0)) illtyped definition -Debug: -----<<---- enter: -coq.upoly-decl->attribute - (upoly-decl [«elpi.tests.test_arg_HOAS.195»] ff [] tt) X1 -Debug: ----->>---- exit: -coq.upoly-decl->attribute - (upoly-decl [«elpi.tests.test_arg_HOAS.195»] ff [] tt) - (get-option coq:udecl - (upoly-decl [«elpi.tests.test_arg_HOAS.195»] ff [] tt)) -Debug: -----<<---- enter: -get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.195»] ff [] tt) - => - coq.env.add-const f6 - (fun `T` (sort (typ «uuu»)) c0 \ - fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \ - fun `x` c0 c2 \ c2) - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \ - prod `x` c0 c2 \ c0) X2 X3 +up2.body is universe polymorphic +Arguments up2.body (T W)%type_scope x +Expands to: Constant elpi.apps.locker.tests.test_locker.up2.body +Query assignments: + GR = const «up2.body» Debug: ----->>---- exit: -get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.195»] ff [] tt) - => - coq.env.add-const f6 - (fun `T` (sort (typ «uuu»)) c0 \ - fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \ - fun `x` c0 c2 \ c2) - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \ - prod `x` c0 c2 \ c0) X2 «f6» -f6@{uuux} : forall T : Type@{uuu}, Type@{uuux} -> T -> T -(* uuux |= *) +elpi lets escape exception: Universe + elpi.apps.locker.tests.test_locker.161 (File "./apps/locker/tests/test_locker.v", line 113, characters 50-54) + is unbound. +Raised at UState.error_unbound_universes in file "engine/uState.ml", line 832, characters 41-74 +Called from UState.universe_context_inst in file "engine/uState.ml", line 845, characters 9-58 +Called from UState.check_poly_univ_decl in file "engine/uState.ml", line 901, characters 13-63 +Called from UState.check_univ_decl in file "engine/uState.ml", line 917, characters 35-67 +Called from Elpi_plugin__Rocq_elpi_builtins.add_axiom_or_variable in file "src/rocq_elpi_builtins.ml", line 913, characters 14-82 +Called from Elpi_plugin__Rocq_elpi_builtins.coq_rest_builtins.(fun) in file "src/rocq_elpi_builtins.ml", line 2068, characters 20-86 +Called from Elpi_plugin__Rocq_elpi_builtins.grab_global_env.(fun) in file "src/rocq_elpi_builtins.ml", line 141, characters 33-44 +Called from Elpi_runtime__Runtime_trace_off.FFI.wrap_type_err in file "src/runtime/runtime_trace_off.ml", line 2125, characters 6-9 +Called from Elpi_runtime__Runtime_trace_off.FFI.call.aux in file "src/runtime/runtime_trace_off.ml", line 2207, characters 32-92 +Called from Elpi_runtime__Runtime_trace_off.FFI.call in file "src/runtime/runtime_trace_off.ml", line 2299, characters 21-70 +Called from Elpi_runtime__Runtime_trace_off.Constraints.exect_builtin_predicate in file "src/runtime/runtime_trace_off.ml", line 3565, characters 20-83 +Called from Elpi_runtime__Runtime_trace_off.Mainloop.make_runtime.run in file "src/runtime/runtime_trace_off.ml", line 3983, characters 19-90 +Called from Elpi_util__Util.Fork.fork.ensure_runtime in file "src/utils/util.ml", line 523, characters 16-19 +Re-raised at Elpi_util__Util.Fork.fork.ensure_runtime in file "src/utils/util.ml", line 532, characters 7-14 +Called from Elpi_runtime__Runtime_trace_off.mk_outcome in file "src/runtime/runtime_trace_off.ml", line 4265, characters 14-23 +Called from Elpi_runtime__Runtime_trace_off.execute_once in file "src/runtime/runtime_trace_off.ml", line 4282, characters 20-242 +Re-raised at Elpi_runtime__Runtime_trace_off.execute_once in file "src/runtime/runtime_trace_off.ml", line 4287, characters 2-9 +Called from Elpi__API.Execute.once in file "src/API.ml", line 235, characters 40-91 +Called from Elpi_plugin__Rocq_elpi_vernacular.Compiler.run in file "src/rocq_elpi_vernacular.ml", line 145, characters 13-55 +Re-raised at Exninfo.iraise in file "clib/exninfo.ml", line 81, characters 4-38 +Called from Elpi_plugin__Rocq_elpi_vernacular.Compiler.run_and_print in file "src/rocq_elpi_vernacular.ml", line 166, characters 8-38 +Called from Elpi_plugin__Rocq_elpi_vernacular.Interp.run_program.(fun) in file "src/rocq_elpi_vernacular.ml", line 557, characters 34-90 -f6 is universe polymorphic -Arguments f6 (T T1)%type_scope x -f6 is transparent -Expands to: Constant elpi.tests.test_arg_HOAS.f6 -Debug: -----<<---- enter: -coq.arity->term - (arity - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «Set»)) c1 \ prod `x` c0 c2 \ c0)) X0 -Debug: ----->>---- exit: -coq.arity->term - (arity - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «Set»)) c1 \ prod `x` c0 c2 \ c0)) - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «Set»)) c1 \ prod `x` c0 c2 \ c0) -Debug: -----<<---- enter: -std.assert-ok! - (coq.typecheck (pglobal (const «f6») «Set») - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «Set»)) c1 \ prod `x` c0 c2 \ c0)) - illtyped definition -Debug: ----->>---- exit: -std.assert-ok! - (coq.typecheck (pglobal (const «f6») «Set») - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «Set»)) c1 \ prod `x` c0 c2 \ c0)) - illtyped definition -Debug: -----<<---- enter: coq.upoly-decl->attribute (upoly-decl [] tt [] tt) X1 -Debug: ----->>---- exit: -coq.upoly-decl->attribute (upoly-decl [] tt [] tt) - (get-option coq:udecl (upoly-decl [] tt [] tt)) -Debug: -----<<---- enter: -get-option coq:udecl (upoly-decl [] tt [] tt) => - coq.env.add-const f7 (pglobal (const «f6») «Set») - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «Set»)) c1 \ prod `x` c0 c2 \ c0) X2 X3 -Debug: ----->>---- exit: -get-option coq:udecl (upoly-decl [] tt [] tt) => - coq.env.add-const f7 (pglobal (const «f6») «Set») - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «Set»)) c1 \ prod `x` c0 c2 \ c0) X2 «f7» -Debug: ----<<---- enter: coq.arity->term (arity X0) X1 -Debug: ---->>---- exit: coq.arity->term (arity X1) X1 -Debug: -----<<---- enter: -get-option coq:keepunivs tt => - std.assert-ok! (coq.elaborate-ty-skeleton X1 X2 X3) illtyped arity -Debug: ----->>---- exit: -get-option coq:keepunivs tt => - std.assert-ok! - (coq.elaborate-ty-skeleton X1 (typ «elpi.tests.test_arg_HOAS.196») (X4)) - illtyped arity -Debug: -----<<---- enter: -get-option coq:keepunivs tt => - std.assert-ok! - (coq.elaborate-skeleton (pglobal (const «f6») «Set») (X4) X5) - illtyped definition -Debug: ----->>---- exit: -get-option coq:keepunivs tt => - std.assert-ok! - (coq.elaborate-skeleton (pglobal (const «f6») «Set») - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «Set»)) c1 \ prod `x` c0 c2 \ c0) - (pglobal (const «f6») «Set»)) illtyped definition -Debug: -----<<---- enter: coq.upoly-decl->attribute (upoly-decl [] tt [] tt) X6 -Debug: ----->>---- exit: -coq.upoly-decl->attribute (upoly-decl [] tt [] tt) - (get-option coq:udecl (upoly-decl [] tt [] tt)) -Debug: -----<<---- enter: -get-option coq:udecl (upoly-decl [] tt [] tt) => - coq.env.add-const f8 (pglobal (const «f6») «Set») - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «Set»)) c1 \ prod `x` c0 c2 \ c0) X7 X8 -Debug: ----->>---- exit: -get-option coq:udecl (upoly-decl [] tt [] tt) => - coq.env.add-const f8 (pglobal (const «f6») «Set») - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «Set»)) c1 \ prod `x` c0 c2 \ c0) X7 «f8» -Debug: -----<<---- enter: -coq.arity->term - (arity - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ c0)) X0 -Debug: ----->>---- exit: -coq.arity->term - (arity - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ c0)) - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ c0) -Debug: -----<<---- enter: -std.assert-ok! - (coq.typecheck (pglobal (const «f6») «uuu») - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ c0)) - illtyped definition -Debug: ----->>---- exit: -std.assert-ok! - (coq.typecheck (pglobal (const «f6») «uuu») - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ c0)) - illtyped definition -Debug: -----<<---- enter: coq.upoly-decl->attribute (upoly-decl [] tt [] tt) X1 -Debug: ----->>---- exit: -coq.upoly-decl->attribute (upoly-decl [] tt [] tt) - (get-option coq:udecl (upoly-decl [] tt [] tt)) -Debug: -----<<---- enter: -get-option coq:udecl (upoly-decl [] tt [] tt) => - coq.env.add-const f7' (pglobal (const «f6») «uuu») - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ c0) X2 X3 -Debug: ----->>---- exit: -get-option coq:udecl (upoly-decl [] tt [] tt) => - coq.env.add-const f7' (pglobal (const «f6») «uuu») - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ c0) X2 «f7'» -Debug: ----<<---- enter: coq.arity->term (arity X0) X1 -Debug: ---->>---- exit: coq.arity->term (arity X1) X1 -Debug: -----<<---- enter: -get-option coq:keepunivs tt => - std.assert-ok! (coq.elaborate-ty-skeleton X1 X2 X3) illtyped arity -Debug: ----->>---- exit: -get-option coq:keepunivs tt => - std.assert-ok! - (coq.elaborate-ty-skeleton X1 (typ «elpi.tests.test_arg_HOAS.197») (X4)) - illtyped arity -Debug: -----<<---- enter: -get-option coq:keepunivs tt => - std.assert-ok! - (coq.elaborate-skeleton (pglobal (const «f6») «uuu») (X4) X5) - illtyped definition -Debug: ----->>---- exit: -get-option coq:keepunivs tt => - std.assert-ok! - (coq.elaborate-skeleton (pglobal (const «f6») «uuu») - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ c0) - (pglobal (const «f6») «uuu»)) illtyped definition -Debug: -----<<---- enter: coq.upoly-decl->attribute (upoly-decl [] tt [] tt) X6 -Debug: ----->>---- exit: -coq.upoly-decl->attribute (upoly-decl [] tt [] tt) - (get-option coq:udecl (upoly-decl [] tt [] tt)) -Debug: -----<<---- enter: -get-option coq:udecl (upoly-decl [] tt [] tt) => - coq.env.add-const f8' (pglobal (const «f6») «uuu») - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ c0) X7 X8 -Debug: ----->>---- exit: -get-option coq:udecl (upoly-decl [] tt [] tt) => - coq.env.add-const f8' (pglobal (const «f6») «uuu») - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ c0) X7 «f8'» -Debug: -----<<---- enter: -coq.arity->term - (arity - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.198»)) c1 \ - prod `x` c0 c2 \ c0)) X0 -Debug: ----->>---- exit: -coq.arity->term - (arity - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.198»)) c1 \ - prod `x` c0 c2 \ c0)) - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.198»)) c1 \ - prod `x` c0 c2 \ c0) -Debug: -----<<---- enter: -std.assert-ok! - (coq.typecheck (pglobal (const «f6») «elpi.tests.test_arg_HOAS.198») - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.198»)) c1 \ - prod `x` c0 c2 \ c0)) illtyped definition -Debug: ----->>---- exit: -std.assert-ok! - (coq.typecheck (pglobal (const «f6») «elpi.tests.test_arg_HOAS.198») - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.198»)) c1 \ - prod `x` c0 c2 \ c0)) illtyped definition -Debug: -----<<---- enter: -coq.upoly-decl->attribute - (upoly-decl [«elpi.tests.test_arg_HOAS.198»] ff [] tt) X1 -Debug: ----->>---- exit: -coq.upoly-decl->attribute - (upoly-decl [«elpi.tests.test_arg_HOAS.198»] ff [] tt) - (get-option coq:udecl - (upoly-decl [«elpi.tests.test_arg_HOAS.198»] ff [] tt)) -Debug: -----<<---- enter: -get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.198»] ff [] tt) - => - coq.env.add-const f7'' - (pglobal (const «f6») «elpi.tests.test_arg_HOAS.198») - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.198»)) c1 \ - prod `x` c0 c2 \ c0) X2 X3 -Debug: ----->>---- exit: -get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.198»] ff [] tt) - => - coq.env.add-const f7'' - (pglobal (const «f6») «elpi.tests.test_arg_HOAS.198») - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.198»)) c1 \ - prod `x` c0 c2 \ c0) X2 «f7''» -Debug: ----<<---- enter: coq.arity->term (arity X0) X1 -Debug: ---->>---- exit: coq.arity->term (arity X1) X1 -Debug: -----<<---- enter: -get-option coq:keepunivs tt => - std.assert-ok! (coq.elaborate-ty-skeleton X1 X2 X3) illtyped arity -Debug: ----->>---- exit: -get-option coq:keepunivs tt => - std.assert-ok! - (coq.elaborate-ty-skeleton X1 (typ «elpi.tests.test_arg_HOAS.200») (X4)) - illtyped arity -Debug: -----<<---- enter: -get-option coq:keepunivs tt => - std.assert-ok! - (coq.elaborate-skeleton - (pglobal (const «f6») «elpi.tests.test_arg_HOAS.199») (X4) X5) - illtyped definition -Debug: ----->>---- exit: -get-option coq:keepunivs tt => - std.assert-ok! - (coq.elaborate-skeleton - (pglobal (const «f6») «elpi.tests.test_arg_HOAS.199») - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.199»)) c1 \ - prod `x` c0 c2 \ c0) - (pglobal (const «f6») «elpi.tests.test_arg_HOAS.199»)) - illtyped definition -Debug: -----<<---- enter: -coq.upoly-decl->attribute - (upoly-decl [«elpi.tests.test_arg_HOAS.199»] ff [] tt) X6 -Debug: ----->>---- exit: -coq.upoly-decl->attribute - (upoly-decl [«elpi.tests.test_arg_HOAS.199»] ff [] tt) - (get-option coq:udecl - (upoly-decl [«elpi.tests.test_arg_HOAS.199»] ff [] tt)) -Debug: -----<<---- enter: -get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.199»] ff [] tt) - => - coq.env.add-const f8'' - (pglobal (const «f6») «elpi.tests.test_arg_HOAS.199») - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.199»)) c1 \ - prod `x` c0 c2 \ c0) X7 X8 -Debug: ----->>---- exit: -get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.199»] ff [] tt) - => - coq.env.add-const f8'' - (pglobal (const «f6») «elpi.tests.test_arg_HOAS.199») - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.199»)) c1 \ - prod `x` c0 c2 \ c0) X7 «f8''» -const-decl D - (some - (fun `i` (global (indt «I»)) c0 \ - fun `l` (app [global (indt «L»), c0]) c1 \ global (indt «True»))) - (parameter i maximal (global (indt «I»)) c0 \ - parameter l maximal (app [global (indt «L»), c0]) c1 \ arity (sort prop)) -const-decl D - (some - (fun `i` (global (indt «I»)) c0 \ - fun `H` (app [global (indt «L»), c0]) c1 \ global (indt «True»))) - (parameter i maximal (global (indt «I»)) c0 \ - parameter H maximal (app [global (indt «L»), c0]) c1 \ arity (sort prop)) -const-decl D - (some - (fun `i` (global (indt «I»)) c0 \ - fun `H` (app [global (indt «L»), c0]) c1 \ - fun `n` (global (indt «nat»)) c2 \ global (indt «True»))) - (parameter i maximal (global (indt «I»)) c0 \ - parameter H maximal (app [global (indt «L»), c0]) c1 \ - parameter n explicit (global (indt «nat»)) c2 \ arity (sort prop)) -2 -fun `x` X0 c0 \ fun `y` (X1 c0) c1 \ app [global (const «Nat.add»), c0, c1] -File "./tests/test_arg_HOAS.v", line 283, characters 0-68: -Warning: Automatically putting X1 in Prop even though it was declared with -Type. -Unset Automatic Proposition Inductives to prevent this (it will become the -default in a future version). -If you instead put X1 explicitly in Prop, set Dependent Proposition -Eliminators around the declaration for full backwards compatibility. -[automatic-prop-lowering,deprecated-since-8.20,deprecated,default] Query assignments: B = fix `add` 0 (prod `n` (global (indt «nat»)) c0 \ @@ -10059,10 +12434,139 @@ File "./tests/test_elaborator.v", line 157, characters 41-42 X is linear: name it _X (discard) or X_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -trying i = i -trying elpi_ctx_entry_2_ = elpi_ctx_entry_2_ -trying elpi_ctx_entry_1_ = elpi_ctx_entry_1_ /\ p0 = p0 -trying elpi_ctx_entry_1_ = elpi_ctx_entry_1_ /\ p0 = p0 +This.Is.A.Long.Namespace.stuff = 1 + : nat + = 1 + : nat +This.Is.A.Long.Namespace.stuff = 2 + : nat + = 1 + : nat +This_aux_1.This.Is.A.Long.Namespace.stuff +This.Is.A.Long.Namespace.more_stuff +This.Is.A.Long.Namespace.stuff +This_aux_1.This.Is.A.Long.Namespace.stuff : nat +This.Is.A.Long.Namespace.more_stuff : nat +This.Is.A.Long.Namespace.stuff : nat +stuff = 2 + : nat +default nat_def : nat + : nat +global (indc «O») +app + [global (indc «S»), + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] +true : bool + : bool +program +[p] +Goal: +[decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»))] +|- X0 c0 c1 : +app + [global (indt «eq»), global (indt «nat»), + app + [global (const «Nat.add»), c0, + app [global (indc «S»), global (indc «O»)]], c1] +(I, 0) +conj : forall [A B : Prop], A -> B -> A /\ B + +conj is not universe polymorphic +Arguments conj [A B]%type_scope _ _ +Expands to: Constructor Coq.Init.Logic.conj +(ex_intro (fun t : Prop => True /\ True /\ t) True (conj I (conj I I))) +[int 1, str x, str a b, + trm + (app + [global (indt «eq»), X0, + app [global (indc «S»), global (indc «O»)], global (indc «O»)])] +Using H ?p of type Q +Using H ?p of type Q +Using p of type P +[trm c0, trm c3, trm (app [c2, c3])] +found P +found P /\ P +Goal: [decl c0 `x` (global (indt «nat»))] |- X0 c0 : +app + [global (indt «eq»), global (indt «nat»), + app + [global (const «Nat.add»), c0, + app [global (indc «S»), global (indc «O»)]], global (indc «O»)] +Proof state: + {c0} : decl c0 `x` (global (indt «nat»)) + ?- evar (X1 c0) + (app + [global (indt «eq»), global (indt «nat»), + app + [global (const «Nat.add»), c0, + app [global (indc «S»), global (indc «O»)]], + global (indc «O»)]) (X0 c0) /* suspended on X1, X0 */ +EVARS: + ?X57==[x |- x + 1 = 0] (goal evar) {?Goal} + ?X56==[ |- => fun x : nat => ?Goal] (goal evar) + ?X55==[x |- => nat] (parameter A of eq) + ?X54==[ |- => nat] (type of x) + +SHELF:|| +FUTURE GOALS STACK: + || + +Rocq-Elpi mapping: +RAW: +?X57 <-> c0 \ X1 c0 +ELAB: +?X57 <-> X0 + +#goals = 2 +[nabla c0 \ + nabla c1 \ + seal + (goal [decl c1 `Q` (sort prop), decl c0 `P` (sort prop)] (X0 c0 c1) c0 + (X1 c0 c1) []), + nabla c0 \ + nabla c1 \ + seal + (goal [decl c1 `Q` (sort prop), decl c0 `P` (sort prop)] (X2 c0 c1) c1 + (X3 c0 c1) [])] +(fun (P Q : Prop) (p : P) (q : Q) => conj ?Goal (conj ?Goal0 ?Goal1)) +(fun (P Q : Prop) (p : P) (q : Q) => conj ?Goal0 (conj ?Goal ?Goal0)) +foo = 46 + : nat +bar = (false :: nil)%list + : list bool +baz = (46%nat :: nil)%list + : list nat +File "./examples/tutorial_coq_elpi_tactic.v", line 632, characters 0-22: +Warning: x is already taken, Elpi will make a name up [lib,elpi,default] +File "./examples/tutorial_coq_elpi_tactic.v", line 742, characters 32-33: +Warning: +File "./examples/tutorial_coq_elpi_tactic.v", line 742, characters 32-33 +A is linear: name it _A (discard) or A_ (fresh variable) +[elpi.linear-variable,elpi.typecheck,elpi,default] +File "./examples/tutorial_coq_elpi_tactic.v", line 742, characters 40-41: +Warning: +File "./examples/tutorial_coq_elpi_tactic.v", line 742, characters 40-41 +B is linear: name it _B (discard) or B_ (fresh variable) +[elpi.linear-variable,elpi.typecheck,elpi,default] +File "./examples/tutorial_coq_elpi_tactic.v", line 742, characters 14-17: +Warning: +File "./examples/tutorial_coq_elpi_tactic.v", line 742, characters 14-17 +Ctx is linear: name it _Ctx (discard) or Ctx_ (fresh variable) +[elpi.linear-variable,elpi.typecheck,elpi,default] +File "./examples/tutorial_coq_elpi_tactic.v", line 843, characters 44-46: +Warning: +File "./examples/tutorial_coq_elpi_tactic.v", line 843, characters 44-46 +G1 is linear: name it _G1 (discard) or G1_ (fresh variable) +[elpi.linear-variable,elpi.typecheck,elpi,default] +File "./examples/tutorial_coq_elpi_tactic.v", line 844, characters 44-46: +Warning: +File "./examples/tutorial_coq_elpi_tactic.v", line 844, characters 44-46 +G2 is linear: name it _G2 (discard) or G2_ (fresh variable) +[elpi.linear-variable,elpi.typecheck,elpi,default] +The argument fun x : ?e => x + ?e1 was closed under 1 binders +old replacement: fun (x : ?e) (y : ?e0) => x - y with +fun (y : ?e1) (x : ?e2) => y + x +new replacement: fun y : ?e0 => x - y with fun y : ?e1 => y + x Debug: run 1 {{{ Debug: @@ -10090,7 +12594,7 @@ Debug: rid:0 step:1 gid:5 user:rule:implication = success -Debug: }}} -> (0.139s) +Debug: }}} -> (0.001s) Debug: run 2 {{{ Debug: @@ -10763,7 +13267,7 @@ Debug: rid:0 step:22 gid:26 user:rule:backchain = success -Debug: }}} -> (0.000s) +Debug: }}} -> (0.001s) Debug: run 23 {{{ Debug: @@ -10864,7 +13368,7 @@ Debug: rid:0 step:24 gid:28 user:rule:backchain = success -Debug: }}} -> (0.000s) +Debug: }}} -> (0.001s) Debug: run 25 {{{ Debug: @@ -11067,7 +13571,7 @@ c1, c6, c8], app [c3, c7, c9]]]]) -Debug: }}} -> (0.001s) +Debug: }}} -> (0.002s) Debug: run 28 {{{ Debug: @@ -11571,7 +14075,7 @@ Debug: rid:1 step:363 gid:1045 user:rule:backchain = success -Debug: }}} -> (0.002s) +Debug: }}} -> (0.001s) Debug: run 364 {{{ Debug: @@ -11705,7 +14209,7 @@ Debug: rid:1 step:367 gid:1047 user:rule:backchain:candidates = File "builtin_stdlib.elpi", line 279, column 0, characters 9290-9316: -Debug: }}} -> (0.141s) +Debug: }}} -> (0.000s) Debug: select 271 {{{ Debug: @@ -12054,7 +14558,7 @@ Debug: rid:1 step:371 gid:1052 user:rule:backchain = success -Debug: }}} -> (0.001s) +Debug: }}} -> (0.000s) Debug: run 372 {{{ Debug: @@ -12115,232 +14619,418 @@ Arguments expanded_g T%type_scope op%function_scope (l s)%list_scope h%bool_scope -synterp [str X] -interp [str X] -synterp [int 1] -interp [int 1] -synterp [trm _] -interp [trm (app [global (indc «S»), global (indc «O»)])] -synterp -[const-decl x (some _) - (parameter P explicit _ c0 \ parameter Q explicit _ c1 \ arity _)] -interp -[const-decl x - (some - (fun `P` (global (indt «bool»)) c0 \ - fun `Q` (global (indt «bool»)) c1 \ global (indc «O»))) - (parameter P explicit (global (indt «bool»)) c0 \ - parameter Q explicit (global (indt «bool»)) c1 \ - arity (global (indt «nat»)))] -synterp -[const-decl x none - (parameter P explicit _ c0 \ parameter Q explicit _ c1 \ arity _)] -interp -[const-decl x none - (parameter P explicit (global (indt «bool»)) c0 \ - parameter Q explicit (global (indt «bool»)) c1 \ - arity (global (indt «nat»)))] -synterp -[indt-decl - (parameter P explicit _ c0 \ - parameter Q explicit _ c1 \ - record x _ K - (field [coercion off, canonical tt] f1 _ c2 \ - field [coercion off, canonical tt] f2 _ c3 \ end-record))] -interp -[indt-decl - (parameter P explicit (global (indt «bool»)) c0 \ - parameter Q explicit (global (indt «bool»)) c1 \ - record x (sort (typ «Set»)) K - (field [coercion off, canonical tt] f1 (global (indt «nat»)) c2 \ - field [coercion off, canonical tt] f2 - (app [global (indt «eq»), global (indt «nat»), c2, c2]) c3 \ - end-record))] -synterp -[indt-decl - (parameter P explicit _ c0 \ - inductive x tt (parameter Q explicit _ c1 \ arity _) c1 \ - [constructor K (parameter Q explicit _ c2 \ arity _), - constructor R (parameter Q explicit _ c2 \ arity _)])] -interp -[indt-decl - (parameter P explicit (global (indt «bool»)) c0 \ - inductive x tt - (parameter Q explicit (global (indt «bool»)) c1 \ - arity (prod `_` (global (indt «nat»)) c2 \ sort (typ «Set»))) c1 \ - [constructor K - (parameter Q explicit (global (indt «bool»)) c2 \ - arity - (prod `_` (global (indt «nat»)) c3 \ - app - [c1, c2, - app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]])), - constructor R - (parameter Q explicit (global (indt «bool»)) c2 \ - arity - (prod `w` (global (indt «bool»)) c3 \ - app [c1, c2, app [global (indc «S»), global (indc «O»)]]))])] -synterp -[ctx-decl - (context-item A explicit _ none c0 \ - context-item B explicit _ none c1 \ context-end)] -interp -[ctx-decl - (context-item A explicit (global (indt «nat»)) none c0 \ - context-item B explicit (global (indt «bool»)) none c1 \ context-end)] -synterp [str X] -interp [str X] -synterp [int 1] -interp [int 1] -synterp [trm _] -interp [trm (app [global (indc «S»), global (indc «O»)])] -synterp -[const-decl x (some _) - (parameter P explicit _ c0 \ parameter Q explicit _ c1 \ arity _)] -interp -[const-decl x - (some - (fun `P` (global (indt «bool»)) c0 \ - fun `Q` (global (indt «bool»)) c1 \ global (indc «O»))) - (parameter P explicit (global (indt «bool»)) c0 \ - parameter Q explicit (global (indt «bool»)) c1 \ - arity (global (indt «nat»)))] -synterp -[const-decl x none - (parameter P explicit _ c0 \ parameter Q explicit _ c1 \ arity _)] -interp -[const-decl x none - (parameter P explicit (global (indt «bool»)) c0 \ - parameter Q explicit (global (indt «bool»)) c1 \ - arity (global (indt «nat»)))] -synterp -[indt-decl - (parameter P explicit _ c0 \ - parameter Q explicit _ c1 \ - record x _ K - (field [coercion off, canonical tt] f1 _ c2 \ - field [coercion off, canonical tt] f2 _ c3 \ end-record))] -interp -[indt-decl - (parameter P explicit (global (indt «bool»)) c0 \ - parameter Q explicit (global (indt «bool»)) c1 \ - record x (sort (typ «Set»)) K - (field [coercion off, canonical tt] f1 (global (indt «nat»)) c2 \ - field [coercion off, canonical tt] f2 - (app [global (indt «eq»), global (indt «nat»), c2, c2]) c3 \ - end-record))] -synterp -[indt-decl - (parameter P explicit _ c0 \ - inductive x tt (parameter Q explicit _ c1 \ arity _) c1 \ - [constructor K (parameter Q explicit _ c2 \ arity _), - constructor R (parameter Q explicit _ c2 \ arity _)])] -interp -[indt-decl - (parameter P explicit (global (indt «bool»)) c0 \ - inductive x tt - (parameter Q explicit (global (indt «bool»)) c1 \ - arity (prod `_` (global (indt «nat»)) c2 \ sort (typ «Set»))) c1 \ - [constructor K - (parameter Q explicit (global (indt «bool»)) c2 \ - arity - (prod `_` (global (indt «nat»)) c3 \ - app - [c1, c2, - app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]])), - constructor R - (parameter Q explicit (global (indt «bool»)) c2 \ - arity - (prod `w` (global (indt «bool»)) c3 \ - app [c1, c2, app [global (indc «S»), global (indc «O»)]]))])] -synterp -[ctx-decl - (context-item A explicit _ none c0 \ - context-item B explicit _ none c1 \ context-end)] -interp -[ctx-decl - (context-item A explicit (global (indt «nat»)) none c0 \ - context-item B explicit (global (indt «bool»)) none c1 \ context-end)] -a : nat +[p 1, p 2, p 3, p 4, p 5, p 6, p 7, p 8, p 9, p 10, p 11, p 12, p 13, + p 14, p 15, p 16, p 17, p 18, p 19, p 20, p 21, p 22, p 23, p 24, p 25, + p 26, p 27, p 28, p 29, p 30, p 31, p 32, p 33, p 34, p 35, p 36, p 37, + p 38, p 39, p 40, p 41, p 42, p 43, p 44, p 45, p 46, p 47, p 48, p 49, + p 50, p 51, p 52, p 53, p 54, p 55, p 56, p 57, p 58, p 59, p 60, p 61, + p 62, p 63, p 64, p 65, p 66, p 67, p 68, p 69, p 70, p 71, p 72, p 73, + p 74, p 75, p 76, p 77, p 78, p 79, p 80, p 81, p 82, p 83, p 84, p 85, + p 86, p 87, p 88, p 89, p 90, p 91, p 92, p 93, p 94, p 95, p 96, p 97, + p 98, p 99, p 100, p 101, p 102, p 103, p 104, p 105, p 106, p 107, + p 108, p 109, p 110, p 111, p 112, p 113, p 114, p 115, p 116, p 117, + p 118, p 119, p 120, p 121, p 122, p 123, p 124, p 125, p 126, p 127, + p 128, p 129, p 130, p 131, p 132, p 133, p 134, p 135, p 136, p 137, + p 138, p 139, p 140, p 141, p 142, p 143, p 144, p 145, p 146, p 147, + p 148, p 149, p 150, p 151, p 152, p 153, p 154, p 155, p 156, p 157, + p 158, p 159, p 160, p 161, p 162, p 163, p 164, p 165, p 166, p 167, + p 168, p 169, p 170, p 171, p 172, p 173, p 174, p 175, p 176, p 177, + p 178, p 179, p 180, p 181, p 182, p 183, p 184, p 185, p 186, p 187, + p 188, p 189, p 190, p 191, p 192, p 193, p 194, p 195, p 196, p 197, + p 198, p 199, p 200, p 201, p 202, p 203, p 204, p 205, p 206, p 207, + p 208, p 209, p 210, p 211, p 212, p 213, p 214, p 215, p 216, p 217, + p 218, p 219, p 220, p 221, p 222, p 223, p 224, p 225, p 226, p 227, + p 228, p 229, p 230, p 231, p 232, p 233, p 234, p 235, p 236, p 237, + p 238, p 239, p 240, p 241, p 242, p 243, p 244, p 245, p 246, p 247, + p 248, p 249, p 250, p 251, p 252, p 253, p 254, p 255, p 256, p 257, + p 258, p 259, p 260, p 261, p 262, p 263, p 264, p 265, p 266, p 267, + p 268, p 269, p 270, p 271, p 272, p 273, p 274, p 275, p 276, p 277, + p 278, p 279, p 280, p 281, p 282, p 283, p 284, p 285, p 286, p 287, + p 288, p 289, p 290, p 291, p 292, p 293, p 294, p 295, p 296, p 297, + p 298, p 299, p 300, p 301, p 302, p 303, p 304, p 305, p 306, p 307, + p 308, p 309, p 310, p 311, p 312, p 313, p 314, p 315, p 316, p 317, + p 318, p 319, p 320, p 321, p 322, p 323, p 324, p 325, p 326, p 327, + p 328, p 329, p 330, p 331, p 332, p 333, p 334, p 335, p 336, p 337, + p 338, p 339, p 340, p 341, p 342, p 343, p 344, p 345, p 346, p 347, + p 348, p 349, p 350, p 351, p 352, p 353, p 354, p 355, p 356, p 357, + p 358, p 359, p 360, p 361, p 362, p 363, p 364, p 365, p 366, p 367, + p 368, p 369, p 370, p 371, p 372, p 373, p 374, p 375, p 376, p 377, + p 378, p 379, p 380, p 381, p 382, p 383, p 384, p 385, p 386, p 387, + p 388, p 389, p 390, p 391, p 392, p 393, p 394, p 395, p 396, p 397, + p 398, p 399, p 400, p 401, p 402, p 403, p 404, p 405, p 406, p 407, + p 408, p 409, p 410, p 411, p 412, p 413, p 414, p 415, p 416, p 417, + p 418, p 419, p 420, p 421, p 422, p 423, p 424, p 425, p 426, p 427, + p 428, p 429, p 430, p 431, p 432, p 433, p 434, p 435, p 436, p 437, + p 438, p 439, p 440, p 441, p 442, p 443, p 444, p 445, p 446, p 447, + p 448, p 449, p 450, p 451, p 452, p 453, p 454, p 455, p 456, p 457, + p 458, p 459, p 460, p 461, p 462, p 463, p 464, p 465, p 466, p 467, + p 468, p 469, p 470, p 471, p 472, p 473, p 474, p 475, p 476, p 477, + p 478, p 479, p 480, p 481, p 482, p 483, p 484, p 485, p 486, p 487, + p 488, p 489, p 490, p 491, p 492, p 493, p 494, p 495, p 496, p 497, + p 498, p 499, p 500, p 501, p 502, p 503, p 504, p 505, p 506, p 507, + p 508, p 509, p 510, p 511, p 512, p 513, p 514, p 515, p 516, p 517, + p 518, p 519, p 520, p 521, p 522, p 523, p 524, p 525, p 526, p 527, + p 528, p 529, p 530, p 531, p 532, p 533, p 534, p 535, p 536, p 537, + p 538, p 539, p 540, p 541, p 542, p 543, p 544, p 545, p 546, p 547, + p 548, p 549, p 550, p 551, p 552, p 553, p 554, p 555, p 556, p 557, + p 558, p 559, p 560, p 561, p 562, p 563, p 564, p 565, p 566, p 567, + p 568, p 569, p 570, p 571, p 572, p 573, p 574, p 575, p 576, p 577, + p 578, p 579, p 580, p 581, p 582, p 583, p 584, p 585, p 586, p 587, + p 588, p 589, p 590, p 591, p 592, p 593, p 594, p 595, p 596, p 597, + p 598, p 599, p 600, p 601, p 602, p 603, p 604, p 605, p 606, p 607, + p 608, p 609, p 610, p 611, p 612, p 613, p 614, p 615, p 616, p 617, + p 618, p 619, p 620, p 621, p 622, p 623, p 624, p 625, p 626, p 627, + p 628, p 629, p 630, p 631, p 632, p 633, p 634, p 635, p 636, p 637, + p 638, p 639, p 640, p 641, p 642, p 643, p 644, p 645, p 646, p 647, + p 648, p 649, p 650, p 651, p 652, p 653, p 654, p 655, p 656, p 657, + p 658, p 659, p 660, p 661, p 662, p 663, p 664, p 665, p 666, p 667, + p 668, p 669, p 670, p 671, p 672, p 673, p 674, p 675, p 676, p 677, + p 678, p 679, p 680, p 681, p 682, p 683, p 684, p 685, p 686, p 687, + p 688, p 689, p 690, p 691, p 692, p 693, p 694, p 695, p 696, p 697, + p 698, p 699, p 700, p 701, p 702, p 703, p 704, p 705, p 706, p 707, + p 708, p 709, p 710, p 711, p 712, p 713, p 714, p 715, p 716, p 717, + p 718, p 719, p 720, p 721, p 722, p 723, p 724, p 725, p 726, p 727, + p 728, p 729, p 730, p 731, p 732, p 733, p 734, p 735, p 736, p 737, + p 738, p 739, p 740, p 741, p 742, p 743, p 744, p 745, p 746, p 747, + p 748, p 749, p 750, p 751, p 752, p 753, p 754, p 755, p 756, p 757, + p 758, p 759, p 760, p 761, p 762, p 763, p 764, p 765, p 766, p 767, + p 768, p 769, p 770, p 771, p 772, p 773, p 774, p 775, p 776, p 777, + p 778, p 779, p 780, p 781, p 782, p 783, p 784, p 785, p 786, p 787, + p 788, p 789, p 790, p 791, p 792, p 793, p 794, p 795, p 796, p 797, + p 798, p 799, p 800, p 801, p 802, p 803, p 804, p 805, p 806, p 807, + p 808, p 809, p 810, p 811, p 812, p 813, p 814, p 815, p 816, p 817, + p 818, p 819, p 820, p 821, p 822, p 823, p 824, p 825, p 826, p 827, + p 828, p 829, p 830, p 831, p 832, p 833, p 834, p 835, p 836, p 837, + p 838, p 839, p 840, p 841, p 842, p 843, p 844, p 845, p 846, p 847, + p 848, p 849, p 850, p 851, p 852, p 853, p 854, p 855, p 856, p 857, + p 858, p 859, p 860, p 861, p 862, p 863, p 864, p 865, p 866, p 867, + p 868, p 869, p 870, p 871, p 872, p 873, p 874, p 875, p 876, p 877, + p 878, p 879, p 880, p 881, p 882, p 883, p 884, p 885, p 886, p 887, + p 888, p 889, p 890, p 891, p 892, p 893, p 894, p 895, p 896, p 897, + p 898, p 899, p 900, p 901, p 902, p 903, p 904, p 905, p 906, p 907, + p 908, p 909, p 910, p 911, p 912, p 913, p 914, p 915, p 916, p 917, + p 918, p 919, p 920, p 921, p 922, p 923, p 924, p 925, p 926, p 927, + p 928, p 929, p 930, p 931, p 932, p 933, p 934, p 935, p 936, p 937, + p 938, p 939, p 940, p 941, p 942, p 943, p 944, p 945, p 946, p 947, + p 948, p 949, p 950, p 951, p 952, p 953, p 954, p 955, p 956, p 957, + p 958, p 959, p 960, p 961, p 962, p 963, p 964, p 965, p 966, p 967, + p 968, p 969, p 970, p 971, p 972, p 973, p 974, p 975, p 976, p 977, + p 978, p 979, p 980, p 981, p 982, p 983, p 984, p 985, p 986, p 987, + p 988, p 989, p 990, p 991, p 992, p 993, p 994, p 995, p 996, p 997, + p 998, p 999, p 1000, p 1001, p 1002, p 1003, p 1004, p 1005, p 1006, + p 1007, p 1008, p 1009, p 1010, p 1011, p 1012, p 1013, p 1014, p 1015, + p 1016, p 1017, p 1018, p 1019, p 1020, p 1021, p 1022, p 1023, p 1024, + p 1025, p 1026, p 1027, p 1028, p 1029, p 1030, p 1031, p 1032, p 1033, + p 1034, p 1035, p 1036, p 1037, p 1038, p 1039, p 1040, p 1041, p 1042, + p 1043, p 1044, p 1045, p 1046, p 1047, p 1048, p 1049, p 1050, p 1051, + p 1052, p 1053, p 1054, p 1055, p 1056, p 1057, p 1058, p 1059, p 1060, + p 1061, p 1062, p 1063, p 1064, p 1065, p 1066, p 1067, p 1068, p 1069, + p 1070, p 1071, p 1072, p 1073, p 1074, p 1075, p 1076, p 1077, p 1078, + p 1079, p 1080, p 1081, p 1082, p 1083, p 1084, p 1085, p 1086, p 1087, + p 1088, p 1089, p 1090, p 1091, p 1092, p 1093, p 1094, p 1095, p 1096, + p 1097, p 1098, p 1099, p 1100, p 1101, p 1102, p 1103, p 1104, p 1105, + p 1106, p 1107, p 1108, p 1109, p 1110, p 1111, p 1112, p 1113, p 1114, + p 1115, p 1116, p 1117, p 1118, p 1119, p 1120, p 1121, p 1122, p 1123, + p 1124, p 1125, p 1126, p 1127, p 1128, p 1129, p 1130, p 1131, p 1132, + p 1133, p 1134, p 1135, p 1136, p 1137, p 1138, p 1139, p 1140, p 1141, + p 1142, p 1143, p 1144, p 1145, p 1146, p 1147, p 1148, p 1149, p 1150, + p 1151, p 1152, p 1153, p 1154, p 1155, p 1156, p 1157, p 1158, p 1159, + p 1160, p 1161, p 1162, p 1163, p 1164, p 1165, p 1166, p 1167, p 1168, + p 1169, p 1170, p 1171, p 1172, p 1173, p 1174, p 1175, p 1176, p 1177, + p 1178, p 1179, p 1180, p 1181, p 1182, p 1183, p 1184, p 1185, p 1186, + p 1187, p 1188, p 1189, p 1190, p 1191, p 1192, p 1193, p 1194, p 1195, + p 1196, p 1197, p 1198, p 1199, p 1200, p 1201, p 1202, p 1203, p 1204, + p 1205, p 1206, p 1207, p 1208, p 1209, p 1210, p 1211, p 1212, p 1213, + p 1214, p 1215, p 1216, p 1217, p 1218, p 1219, p 1220, p 1221, p 1222, + p 1223, p 1224, p 1225, p 1226, p 1227, p 1228, p 1229, p 1230, p 1231, + p 1232, p 1233, p 1234, p 1235, p 1236, p 1237, p 1238, p 1239, p 1240, + p 1241, p 1242, p 1243, p 1244, p 1245, p 1246, p 1247, p 1248, p 1249, + p 1250, p 1251, p 1252, p 1253, p 1254, p 1255, p 1256, p 1257, p 1258, + p 1259, p 1260, p 1261, p 1262, p 1263, p 1264, p 1265, p 1266, p 1267, + p 1268, p 1269, p 1270, p 1271, p 1272, p 1273, p 1274, p 1275, p 1276, + p 1277, p 1278, p 1279, p 1280, p 1281, p 1282, p 1283, p 1284, p 1285, + p 1286, p 1287, p 1288, p 1289, p 1290, p 1291, p 1292, p 1293, p 1294, + p 1295, p 1296, p 1297, p 1298, p 1299, p 1300, p 1301, p 1302, p 1303, + p 1304, p 1305, p 1306, p 1307, p 1308, p 1309, p 1310, p 1311, p 1312, + p 1313, p 1314, p 1315, p 1316, p 1317, p 1318, p 1319, p 1320, p 1321, + p 1322, p 1323, p 1324, p 1325, p 1326, p 1327, p 1328, p 1329, p 1330, + p 1331, p 1332, p 1333, p 1334, p 1335, p 1336, p 1337, p 1338, p 1339, + p 1340, p 1341, p 1342, p 1343, p 1344, p 1345, p 1346, p 1347, p 1348, + p 1349, p 1350, p 1351, p 1352, p 1353, p 1354, p 1355, p 1356, p 1357, + p 1358, p 1359, p 1360, p 1361, p 1362, p 1363, p 1364, p 1365, p 1366, + p 1367, p 1368, p 1369, p 1370, p 1371, p 1372, p 1373, p 1374, p 1375, + p 1376, p 1377, p 1378, p 1379, p 1380, p 1381, p 1382, p 1383, p 1384, + p 1385, p 1386, p 1387, p 1388, p 1389, p 1390, p 1391, p 1392, p 1393, + p 1394, p 1395, p 1396, p 1397, p 1398, p 1399, p 1400, p 1401, p 1402, + p 1403, p 1404, p 1405, p 1406, p 1407, p 1408, p 1409, p 1410, p 1411, + p 1412, p 1413, p 1414, p 1415, p 1416, p 1417, p 1418, p 1419, p 1420, + p 1421, p 1422, p 1423, p 1424, p 1425, p 1426, p 1427, p 1428, p 1429, + p 1430, p 1431, p 1432, p 1433, p 1434, p 1435, p 1436, p 1437, p 1438, + p 1439, p 1440, p 1441, p 1442, p 1443, p 1444, p 1445, p 1446, p 1447, + p 1448, p 1449, p 1450, p 1451, p 1452, p 1453, p 1454, p 1455, p 1456, + p 1457, p 1458, p 1459, p 1460, p 1461, p 1462, p 1463, p 1464, p 1465, + p 1466, p 1467, p 1468, p 1469, p 1470, p 1471, p 1472, p 1473, p 1474, + p 1475, p 1476, p 1477, p 1478, p 1479, p 1480, p 1481, p 1482, p 1483, + p 1484, p 1485, p 1486, p 1487, p 1488, p 1489, p 1490, p 1491, p 1492, + p 1493, p 1494, p 1495, p 1496, p 1497, p 1498, p 1499, p 1500, p 1501, + p 1502, p 1503, p 1504, p 1505, p 1506, p 1507, p 1508, p 1509, p 1510, + p 1511, p 1512, p 1513, p 1514, p 1515, p 1516, p 1517, p 1518, p 1519, + p 1520, p 1521, p 1522, p 1523, p 1524, p 1525, p 1526, p 1527, p 1528, + p 1529, p 1530, p 1531, p 1532, p 1533, p 1534, p 1535, p 1536, p 1537, + p 1538, p 1539, p 1540, p 1541, p 1542, p 1543, p 1544, p 1545, p 1546, + p 1547, p 1548, p 1549, p 1550, p 1551, p 1552, p 1553, p 1554, p 1555, + p 1556, p 1557, p 1558, p 1559, p 1560, p 1561, p 1562, p 1563, p 1564, + p 1565, p 1566, p 1567, p 1568, p 1569, p 1570, p 1571, p 1572, p 1573, + p 1574, p 1575, p 1576, p 1577, p 1578, p 1579, p 1580, p 1581, p 1582, + p 1583, p 1584, p 1585, p 1586, p 1587, p 1588, p 1589, p 1590, p 1591, + p 1592, p 1593, p 1594, p 1595, p 1596, p 1597, p 1598, p 1599, p 1600, + p 1601, p 1602, p 1603, p 1604, p 1605, p 1606, p 1607, p 1608, p 1609, + p 1610, p 1611, p 1612, p 1613, p 1614, p 1615, p 1616, p 1617, p 1618, + p 1619, p 1620, p 1621, p 1622, p 1623, p 1624, p 1625, p 1626, p 1627, + p 1628, p 1629, p 1630, p 1631, p 1632, p 1633, p 1634, p 1635, p 1636, + p 1637, p 1638, p 1639, p 1640, p 1641, p 1642, p 1643, p 1644, p 1645, + p 1646, p 1647, p 1648, p 1649, p 1650, p 1651, p 1652, p 1653, p 1654, + p 1655, p 1656, p 1657, p 1658, p 1659, p 1660, p 1661, p 1662, p 1663, + p 1664, p 1665, p 1666, p 1667, p 1668, p 1669, p 1670, p 1671, p 1672, + p 1673, p 1674, p 1675, p 1676, p 1677, p 1678, p 1679, p 1680, p 1681, + p 1682, p 1683, p 1684, p 1685, p 1686, p 1687, p 1688, p 1689, p 1690, + p 1691, p 1692, p 1693, p 1694, p 1695, p 1696, p 1697, p 1698, p 1699, + p 1700, p 1701, p 1702, p 1703, p 1704, p 1705, p 1706, p 1707, p 1708, + p 1709, p 1710, p 1711, p 1712, p 1713, p 1714, p 1715, p 1716, p 1717, + p 1718, p 1719, p 1720, p 1721, p 1722, p 1723, p 1724, p 1725, p 1726, + p 1727, p 1728, p 1729, p 1730, p 1731, p 1732, p 1733, p 1734, p 1735, + p 1736, p 1737, p 1738, p 1739, p 1740, p 1741, p 1742, p 1743, p 1744, + p 1745, p 1746, p 1747, p 1748, p 1749, p 1750, p 1751, p 1752, p 1753, + p 1754, p 1755, p 1756, p 1757, p 1758, p 1759, p 1760, p 1761, p 1762, + p 1763, p 1764, p 1765, p 1766, p 1767, p 1768, p 1769, p 1770, p 1771, + p 1772, p 1773, p 1774, p 1775, p 1776, p 1777, p 1778, p 1779, p 1780, + p 1781, p 1782, p 1783, p 1784, p 1785, p 1786, p 1787, p 1788, p 1789, + p 1790, p 1791, p 1792, p 1793, p 1794, p 1795, p 1796, p 1797, p 1798, + p 1799, p 1800, p 1801, p 1802, p 1803, p 1804, p 1805, p 1806, p 1807, + p 1808, p 1809, p 1810, p 1811, p 1812, p 1813, p 1814, p 1815, p 1816, + p 1817, p 1818, p 1819, p 1820, p 1821, p 1822, p 1823, p 1824, p 1825, + p 1826, p 1827, p 1828, p 1829, p 1830, p 1831, p 1832, p 1833, p 1834, + p 1835, p 1836, p 1837, p 1838, p 1839, p 1840, p 1841, p 1842, p 1843, + p 1844, p 1845, p 1846, p 1847, p 1848, p 1849, p 1850, p 1851, p 1852, + p 1853, p 1854, p 1855, p 1856, p 1857, p 1858, p 1859, p 1860, p 1861, + p 1862, p 1863, p 1864, p 1865, p 1866, p 1867, p 1868, p 1869, p 1870, + p 1871, p 1872, p 1873, p 1874, p 1875, p 1876, p 1877, p 1878, p 1879, + p 1880, p 1881, p 1882, p 1883, p 1884, p 1885, p 1886, p 1887, p 1888, + p 1889, p 1890, p 1891, p 1892, p 1893, p 1894, p 1895, p 1896, p 1897, + p 1898, p 1899, p 1900, p 1901, p 1902, p 1903, p 1904, p 1905, p 1906, + p 1907, p 1908, p 1909, p 1910, p 1911, p 1912, p 1913, p 1914, p 1915, + p 1916, p 1917, p 1918, p 1919, p 1920, p 1921, p 1922, p 1923, p 1924, + p 1925, p 1926, p 1927, p 1928, p 1929, p 1930, p 1931, p 1932, p 1933, + p 1934, p 1935, p 1936, p 1937, p 1938, p 1939, p 1940, p 1941, p 1942, + p 1943, p 1944, p 1945, p 1946, p 1947, p 1948, p 1949, p 1950, p 1951, + p 1952, p 1953, p 1954, p 1955, p 1956, p 1957, p 1958, p 1959, p 1960, + p 1961, p 1962, p 1963, p 1964, p 1965, p 1966, p 1967, p 1968, p 1969, + p 1970, p 1971, p 1972, p 1973, p 1974, p 1975, p 1976, p 1977, p 1978, + p 1979, p 1980, p 1981, p 1982, p 1983, p 1984, p 1985, p 1986, p 1987, + p 1988, p 1989, p 1990, p 1991, p 1992, p 1993, p 1994, p 1995, p 1996, + p 1997, p 1998, p 1999, p 2000, p 2001, p 2002, p 2003, p 2004, p 2005, + p 2006, p 2007, p 2008, p 2009, p 2010, p 2011, p 2012, p 2013, p 2014, + p 2015, p 2016, p 2017, p 2018, p 2019, p 2020, p 2021, p 2022, p 2023, + p 2024, p 2025, p 2026, p 2027, p 2028, p 2029, p 2030, p 2031, p 2032, + p 2033, p 2034, p 2035, p 2036, p 2037, p 2038, p 2039, p 2040, p 2041, + p 2042, p 2043, p 2044, p 2045, p 2046, p 2047, p 2048, p 2049, p 2050, + p 2051, p 2052, p 2053, p 2054, p 2055, p 2056, p 2057, p 2058, p 2059, + p 2060, p 2061, p 2062, p 2063, p 2064, p 2065, p 2066, p 2067, p 2068, + p 2069, p 2070, p 2071, p 2072, p 2073, p 2074, p 2075, p 2076, p 2077, + p 2078, p 2079, p 2080, p 2081, p 2082, p 2083, p 2084, p 2085, p 2086, + p 2087, p 2088, p 2089, p 2090, p 2091, p 2092, p 2093, p 2094, p 2095, + p 2096, p 2097, p 2098, p 2099, p 2100, p 2101, p 2102, p 2103, p 2104, + p 2105, p 2106, p 2107, p 2108, p 2109, p 2110, p 2111, p 2112, p 2113, + p 2114, p 2115, p 2116, p 2117, p 2118, p 2119, p 2120, p 2121, p 2122, + p 2123, p 2124, p 2125, p 2126, p 2127, p 2128, p 2129, p 2130, p 2131, + p 2132, p 2133, p 2134, p 2135, p 2136, p 2137, p 2138, p 2139, p 2140, + p 2141, p 2142, p 2143, p 2144, p 2145, p 2146, p 2147, p 2148, p 2149, + p 2150, p 2151, p 2152, p 2153, p 2154, p 2155, p 2156, p 2157, p 2158, + p 2159, p 2160, p 2161, p 2162, p 2163, p 2164, p 2165, p 2166, p 2167, + p 2168, p 2169, p 2170, p 2171, p 2172, p 2173, p 2174, p 2175, p 2176, + p 2177, p 2178, p 2179, p 2180, p 2181, p 2182, p 2183, p 2184, p 2185, + p 2186, p 2187, p 2188, p 2189, p 2190, p 2191, p 2192, p 2193, p 2194, + p 2195, p 2196, p 2197, p 2198, p 2199, p 2200, p 2201, p 2202, p 2203, + p 2204, p 2205, p 2206, p 2207, p 2208, p 2209, p 2210, p 2211, p 2212, + p 2213, p 2214, p 2215, p 2216, p 2217, p 2218, p 2219, p 2220, p 2221, + p 2222, p 2223, p 2224, p 2225, p 2226, p 2227, p 2228, p 2229, p 2230, + p 2231, p 2232, p 2233, p 2234, p 2235, p 2236, p 2237, p 2238, p 2239, + p 2240, p 2241, p 2242, p 2243, p 2244, p 2245, p 2246, p 2247, p 2248, + p 2249, p 2250, p 2251, p 2252, p 2253, p 2254, p 2255, p 2256, p 2257, + p 2258, p 2259, p 2260, p 2261, p 2262, p 2263, p 2264, p 2265, p 2266, + p 2267, p 2268, p 2269, p 2270, p 2271, p 2272, p 2273, p 2274, p 2275, + p 2276, p 2277, p 2278, p 2279, p 2280, p 2281, p 2282, p 2283, p 2284, + p 2285, p 2286, p 2287, p 2288, p 2289, p 2290, p 2291, p 2292, p 2293, + p 2294, p 2295, p 2296, p 2297, p 2298, p 2299, p 2300, p 2301, p 2302, + p 2303, p 2304, p 2305, p 2306, p 2307, p 2308, p 2309, p 2310, p 2311, + p 2312, p 2313, p 2314, p 2315, p 2316, p 2317, p 2318, p 2319, p 2320, + p 2321, p 2322, p 2323, p 2324, p 2325, p 2326, p 2327, p 2328, p 2329, + p 2330, p 2331, p 2332, p 2333, p 2334, p 2335, p 2336, p 2337, p 2338, + p 2339, p 2340, p 2341, p 2342, p 2343, p 2344, p 2345, p 2346, p 2347, + p 2348, p 2349, p 2350, p 2351, p 2352, p 2353, p 2354, p 2355, p 2356, + p 2357, p 2358, p 2359, p 2360, p 2361, p 2362, p 2363, p 2364, p 2365, + p 2366, p 2367, p 2368, p 2369, p 2370, p 2371, p 2372, p 2373, p 2374, + p 2375, p 2376, p 2377, p 2378, p 2379, p 2380, p 2381, p 2382, p 2383, + p 2384, p 2385, p 2386, p 2387, p 2388, p 2389, p 2390, p 2391, p 2392, + p 2393, p 2394, p 2395, p 2396, p 2397, p 2398, p 2399, p 2400, p 2401, + p 2402, p 2403, p 2404, p 2405, p 2406, p 2407, p 2408, p 2409, p 2410, + p 2411, p 2412, p 2413, p 2414, p 2415, p 2416, p 2417, p 2418, p 2419, + p 2420, p 2421, p 2422, p 2423, p 2424, p 2425, p 2426, p 2427, p 2428, + p 2429, p 2430, p 2431, p 2432, p 2433, p 2434, p 2435, p 2436, p 2437, + p 2438, p 2439, p 2440, p 2441, p 2442, p 2443, p 2444, p 2445, p 2446, + p 2447, p 2448, p 2449, p 2450, p 2451, p 2452, p 2453, p 2454, p 2455, + p 2456, p 2457, p 2458, p 2459, p 2460, p 2461, p 2462, p 2463, p 2464, + p 2465, p 2466, p 2467, p 2468, p 2469, p 2470, p 2471, p 2472, p 2473, + p 2474, p 2475, p 2476, p 2477, p 2478, p 2479, p 2480, p 2481, p 2482, + p 2483, p 2484, p 2485, p 2486, p 2487, p 2488, p 2489, p 2490, p 2491, + p 2492, p 2493, p 2494, p 2495, p 2496, p 2497, p 2498, p 2499, p 2500, + p 2501, p 2502, p 2503, p 2504, p 2505, p 2506, p 2507, p 2508, p 2509, + p 2510, p 2511, p 2512, p 2513, p 2514, p 2515, p 2516, p 2517, p 2518, + p 2519, p 2520, p 2521, p 2522, p 2523, p 2524, p 2525, p 2526, p 2527, + p 2528, p 2529, p 2530, p 2531, p 2532, p 2533, p 2534, p 2535, p 2536, + p 2537, p 2538, p 2539, p 2540, p 2541, p 2542, p 2543, p 2544, p 2545, + p 2546, p 2547, p 2548, p 2549, p 2550, p 2551, p 2552, p 2553, p 2554, + p 2555, p 2556, p 2557, p 2558, p 2559, p 2560, p 2561, p 2562, p 2563, + p 2564, p 2565, p 2566, p 2567, p 2568, p 2569, p 2570, p 2571, p 2572, + p 2573, p 2574, p 2575, p 2576, p 2577, p 2578, p 2579, p 2580, p 2581, + p 2582, p 2583, p 2584, p 2585, p 2586, p 2587, p 2588, p 2589, p 2590, + p 2591, p 2592, p 2593, p 2594, p 2595, p 2596, p 2597, p 2598, p 2599, + p 2600, p 2601, p 2602, p 2603, p 2604, p 2605, p 2606, p 2607, p 2608, + p 2609, p 2610, p 2611, p 2612, p 2613, p 2614, p 2615, p 2616, p 2617, + p 2618, p 2619, p 2620, p 2621, p 2622, p 2623, p 2624, p 2625, p 2626, + p 2627, p 2628, p 2629, p 2630, p 2631, p 2632, p 2633, p 2634, p 2635, + p 2636, p 2637, p 2638, p 2639, p 2640, p 2641, p 2642, p 2643, p 2644, + p 2645, p 2646, p 2647, p 2648, p 2649, p 2650, p 2651, p 2652, p 2653, + p 2654, p 2655, p 2656, p 2657, p 2658, p 2659, p 2660, p 2661, p 2662, + p 2663, p 2664, p 2665, p 2666, p 2667, p 2668, p 2669, p 2670, p 2671, + p 2672, p 2673, p 2674, p 2675, p 2676, p 2677, p 2678, p 2679, p 2680, + p 2681, p 2682, p 2683, p 2684, p 2685, p 2686, p 2687, p 2688, p 2689, + p 2690, p 2691, p 2692, p 2693, p 2694, p 2695, p 2696, p 2697, p 2698, + p 2699, p 2700, p 2701, p 2702, p 2703, p 2704, p 2705, p 2706, p 2707, + p 2708, p 2709, p 2710, p 2711, p 2712, p 2713, p 2714, p 2715, p 2716, + p 2717, p 2718, p 2719, p 2720, p 2721, p 2722, p 2723, p 2724, p 2725, + p 2726, p 2727, p 2728, p 2729, p 2730, p 2731, p 2732, p 2733, p 2734, + p 2735, p 2736, p 2737, p 2738, p 2739, p 2740, p 2741, p 2742, p 2743, + p 2744, p 2745, p 2746, p 2747, p 2748, p 2749, p 2750, p 2751, p 2752, + p 2753, p 2754, p 2755, p 2756, p 2757, p 2758, p 2759, p 2760, p 2761, + p 2762, p 2763, p 2764, p 2765, p 2766, p 2767, p 2768, p 2769, p 2770, + p 2771, p 2772, p 2773, p 2774, p 2775, p 2776, p 2777, p 2778, p 2779, + p 2780, p 2781, p 2782, p 2783, p 2784, p 2785, p 2786, p 2787, p 2788, + p 2789, p 2790, p 2791, p 2792, p 2793, p 2794, p 2795, p 2796, p 2797, + p 2798, p 2799, p 2800, p 2801, p 2802, p 2803, p 2804, p 2805, p 2806, + p 2807, p 2808, p 2809, p 2810, p 2811, p 2812, p 2813, p 2814, p 2815, + p 2816, p 2817, p 2818, p 2819, p 2820, p 2821, p 2822, p 2823, p 2824, + p 2825, p 2826, p 2827, p 2828, p 2829, p 2830, p 2831, p 2832, p 2833, + p 2834, p 2835, p 2836, p 2837, p 2838, p 2839, p 2840, p 2841, p 2842, + p 2843, p 2844, p 2845, p 2846, p 2847, p 2848, p 2849, p 2850, p 2851, + p 2852, p 2853, p 2854, p 2855, p 2856, p 2857, p 2858, p 2859, p 2860, + p 2861, p 2862, p 2863, p 2864, p 2865, p 2866, p 2867, p 2868, p 2869, + p 2870, p 2871, p 2872, p 2873, p 2874, p 2875, p 2876, p 2877, p 2878, + p 2879, p 2880, p 2881, p 2882, p 2883, p 2884, p 2885, p 2886, p 2887, + p 2888, p 2889, p 2890, p 2891, p 2892, p 2893, p 2894, p 2895, p 2896, + p 2897, p 2898, p 2899, p 2900, p 2901, p 2902, p 2903, p 2904, p 2905, + p 2906, p 2907, p 2908, p 2909, p 2910, p 2911, p 2912, p 2913, p 2914, + p 2915, p 2916, p 2917, p 2918, p 2919, p 2920, p 2921, p 2922, p 2923, + p 2924, p 2925, p 2926, p 2927, p 2928, p 2929, p 2930, p 2931, p 2932, + p 2933, p 2934, p 2935, p 2936, p 2937, p 2938, p 2939, p 2940, p 2941, + p 2942, p 2943, p 2944, p 2945, p 2946, p 2947, p 2948, p 2949, p 2950, + p 2951, p 2952, p 2953, p 2954, p 2955, p 2956, p 2957, p 2958, p 2959, + p 2960, p 2961, p 2962, p 2963, p 2964, p 2965, p 2966, p 2967, p 2968, + p 2969, p 2970, p 2971, p 2972, p 2973, p 2974, p 2975, p 2976, p 2977, + p 2978, p 2979, p 2980, p 2981, p 2982, p 2983, p 2984, p 2985, p 2986, + p 2987, p 2988, p 2989, p 2990, p 2991, p 2992, p 2993, p 2994, p 2995, + p 2996, p 2997, p 2998, p 2999, p 3000, p 3001, p 3002, p 3003, p 3004, + p 3005, p 3006, p 3007, p 3008, p 3009, p 3010, p 3011, p 3012, p 3013, + p 3014, p 3015, p 3016, p 3017, p 3018, p 3019, p 3020, p 3021, p 3022, + p 3023, p 3024, p 3025, p 3026, p 3027, p 3028, p 3029, p 3030, p 3031, + p 3032, p 3033, p 3034, p 3035, p 3036, p 3037, p 3038, p 3039, p 3040, + p 3041, p 3042, p 3043, p 3044, p 3045, p 3046, p 3047, p 3048, p 3049, + p 3050, p 3051, p 3052, p 3053, p 3054, p 3055, p 3056, p 3057, p 3058, + p 3059, p 3060, p 3061, p 3062, p 3063, p 3064, p 3065, p 3066, p 3067, + p 3068, p 3069, p 3070, p 3071, p 3072, p 3073, p 3074, p 3075, p 3076, + p 3077, p 3078, p 3079, p 3080, p 3081, p 3082, p 3083, p 3084, p 3085, + p 3086, p 3087, p 3088, p 3089, p 3090, p 3091, p 3092, p 3093, p 3094, + p 3095, p 3096, p 3097, p 3098, p 3099, p 3100, p 3101, p 3102, p 3103, + p 3104, p 3105, p 3106, p 3107, p 3108, p 3109, p 3110, p 3111, p 3112, + p 3113, p 3114, p 3115, p 3116, p 3117, p 3118, p 3119, p 3120, p 3121, + p 3122, p 3123, p 3124, p 3125, p 3126, p 3127, p 3128, p 3129, p 3130, + p 3131, p 3132, p 3133, p 3134, p 3135, p 3136, p 3137, p 3138, p 3139, + p 3140, p 3141, p 3142, p 3143, p 3144, p 3145, p 3146, p 3147, p 3148, + p 3149, p 3150, p 3151, p 3152, p 3153, p 3154, p 3155, p 3156, p 3157, + p 3158, p 3159, p 3160, p 3161, p 3162, p 3163, p 3164, p 3165, p 3166, + p 3167, p 3168, p 3169, p 3170, p 3171, p 3172, p 3173, p 3174, p 3175, + p 3176, p 3177, p 3178, p 3179, p 3180, p 3181, p 3182, p 3183, p 3184, + p 3185, p 3186, p 3187, p 3188, p 3189, p 3190, p 3191, p 3192, p 3193, + p 3194, p 3195, p 3196, p 3197, p 3198, p 3199, p 3200, p 3201, p 3202, + p 3203, p 3204, p 3205, p 3206, p 3207, p 3208, p 3209, p 3210, p 3211, + p 3212, p 3213, p 3214, p 3215, p 3216, p 3217, p 3218, p 3219, p 3220, + p 3221, p 3222, p 3223, p 3224, p 3225, p 3226, p 3227, p 3228, p 3229, + p 3230, p 3231, p 3232, p 3233, p 3234, p 3235, p 3236, p 3237, p 3238, + p 3239, p 3240, p 3241, p 3242, p 3243, p 3244, p 3245, p 3246, p 3247, + p 3248, p 3249, p 3250, p 3251, p 3252, p 3253, p 3254, p 3255, p 3256, + p 3257, p 3258, p 3259, p 3260, p 3261, p 3262, p 3263, p 3264, p 3265, + p 3266, p 3267, p 3268, p 3269, p 3270, p 3271, p 3272, p 3273, p 3274, + p 3275, p 3276, p 3277, p 3278, p 3279, p 3280, p 3281, p 3282, p 3283, + p 3284, p 3285, p 3286, p 3287, p 3288, p 3289, p 3290, p 3291, p 3292, + p 3293, p 3294, p 3295, p 3296, p 3297, p 3298, p 3299, p 3300, p 3301, + p 3302, p 3303, p 3304, p 3305, p 3306, p 3307, p 3308, p 3309, p 3310, + p 3311, p 3312, p 3313, p 3314, p 3315, p 3316, p 3317, p 3318, p 3319, + p 3320, p 3321, p 3322, p 3323, p 3324, p 3325, p 3326, p 3327, p 3328, + p 3329, p 3330, p 3331, p 3332, p 3333, p 3334, p 3335, p 3336, p 3337, + p 3338, p 3339, p 3340, p 3341, p 3342, p 3343, p 3344, p 3345, p 3346, + p 3347, p 3348, p 3349, p 3350, p 3351, p 3352, p 3353, p 3354, p 3355, + p 3356, p 3357, p 3358, p 3359, p 3360, p 3361, p 3362, p 3363, p 3364, + p 3365, p 3366, p 3367, p 3368, p 3369, p 3370, p 3371, p 3372, p 3373, + p 3374, p 3375, p 3376, p 3377, p 3378, p 3379, p 3380, p 3381, p 3382, + p 3383, p 3384, p 3385, p 3386, p 3387, p 3388, p 3389, p 3390, p 3391, + p 3392, p 3393, p 3394, p 3395, p 3396, p 3397, p 3398, p 3399, p 3400, + p 3401, p 3402, p 3403, p 3404, p 3405, p 3406, p 3407, p 3408, p 3409, + p 3410, p 3411, p 3412, p 3413, p 3414, p 3415, p 3416, p 3417, p 3418, + p 3419, p 3420, p 3421, p 3422, p 3423, p 3424, p 3425, p 3426, p 3427, + p 3428, p 3429, p 3430, p 3431, p 3432, p 3433, p 3434, p 3435, p 3436, + p 3437, p 3438, p 3439, p 3440, p 3441, p 3442, p 3443, p 3444, p 3445, + p 3446, p 3447, p 3448, p 3449, p 3450, p 3451, p 3452, p 3453, p 3454, + p 3455, p 3456, p 3457, p 3458, p 3459, p 3460, p 3461, p 3462, p 3463, + p 3464, p 3465, p 3466, p 3467, p 3468, p 3469, p 3470, p 3471, p 3472, + p 3473, p 3474, p 3475, p 3476, p 3477, p 3478, p 3479, p 3480, p 3481, + p 3482, p 3483, p 3484, p 3485, p 3486, p 3487, p 3488, p 3489, p 3490, + p 3491, p 3492, p 3493, p 3494, p 3495, p 3496, p 3497, p 3498, p 3499, + p 3500, p 3501, p 3502, p 3503, p 3504, p 3505, p 3506, p 3507, p 3508, + p 3509, p 3510, p 3511, p 3512, p 3513, p 3514, p 3515, p 3516, p 3517, + p 3518, p 3519, p 3520, p 3521, p 3522, p 3523, p 3524, p 3525, p 3526, + p 3527, p 3528, p 3529, p 3530, p 3531, p 3532, p 3533, p 3534, p 3535, + p 3536, p 3537, p 3538, p 3539, p 3540, p 3541, p 3542, p 3543, p 3544, + p 3545, p 3546, p 3547, p 3548, p 3549, p 3550, p 3551, p 3552, p 3553, + p 3554, p 3555, p 3556, p 3557, p 3558, p 3559, p 3560, p 3561, p 3562, + p 3563, p 3564, p 3565, p 3566, p 3567, p 3568, p 3569, p 3570, p 3571, + p 3572, p 3573, p 3574, p 3575, p 3576, p 3577, p 3578, p 3579, p 3580, + p 3581, p 3582, p 3583, p 3584, p 3585, p 3586, p 3587, p 3588, p 3589, + p 3590, p 3591, p 3592, p 3593, p 3594, p 3595, p 3596, p 3597, p 3598, + p 3599, p 3600, p 3601, p 3602, p 3603, p 3604, p 3605, p 3606, p 3607, + p 3608, p 3609, p 3610, p 3611, p 3612, p 3613, p 3614, p 3615, p 3616, + p 3617, p 3618, p 3619, p 3620, p 3621, p 3622, p 3623, p 3624, p 3625, + p 3626, p 3627, p 3628, p 3629, p 3630, p 3631, p 3632, p 3633, p 3634, + p 3635, p 3636, p 3637, p 3638, p 3639, p 3640, p 3641, p 3642, p 3643, + p 3644, p 3645, p 3646, p 3647, p 3648, p 3649, p 3650, p 3651, p 3652, + p 3653, p 3654, p 3655, p 3656, p 3657, p 3658, p 3659, p 3660, p 3661, + p 3662, p 3663, p 3664, p 3665, p 3666, p 3667, p 3668, p 3669, p 3670, + p 3671, p 3672, p 3673, p 3674, p 3675, p 3676, p 3677, p 3678, p 3679, + p 3680, p 3681, p 3682, p 3683, p 3684, p 3685, p 3686, p 3687, p 3688, + p 3689, p 3690, p 3691, p 3692, p 3693, p 3694, p 3695, p 3696, p 3697, + p 3698, p 3699, p 3700, p 3701, p 3702, p 3703, p 3704, p 3705, p 3706, + p 3707, p 3708, p 3709, p 3710] +Inductive listR_inv (A : Type) (PA : A -> Type) (idx0 : list A) : Type := + nilR_inv : idx0 = nil -> listR_inv A PA idx0 + | consR_inv : forall a : A, + PA a -> + forall xs : list A, + listR_inv A PA xs -> + idx0 = (a :: xs)%list -> listR_inv A PA idx0. -a is not universe polymorphic -a is transparent -Expands to: Constant elpi.tests.test_synterp.X.a -Module X := Struct Definition a : nat. End -Module A := Struct Definition a : nat. End -a - : nat -L= [p 1] -File "./tests/test_synterp.v", line 38, characters 20-21: -Warning: -File "./tests/test_synterp.v", line 38, characters 20-21 -X is linear: name it _X (discard) or X_ (fresh variable) -[elpi.linear-variable,elpi.typecheck,elpi,default] -File "./tests/test_synterp.v", line 41, characters 12-13: -Warning: -File "./tests/test_synterp.v", line 41, characters 12-13 -X is linear: name it _X (discard) or X_ (fresh variable) -[elpi.linear-variable,elpi.typecheck,elpi,default] -test2 -test1 -str hello -test1 -too many arguments -test1 -str hello my -str Dear -test1 -too many arguments -[attribute elpi.loc - (leaf-loc - File "./tests/test_vernacular1.v", line 47, column 5, characters 953-961:), - attribute elpi.phase (leaf-str interp), attribute foo (leaf-str bar)] -[get-option elpi.loc - File "./tests/test_vernacular1.v", line 47, column 5, characters 953-961:, - get-option elpi.phase interp, get-option foo bar] -[attribute elpi.loc - (leaf-loc - File "./tests/test_vernacular1.v", line 51, column 0, characters 987-1014:), - attribute elpi.phase (leaf-str interp), attribute foo (leaf-str bar), - attribute poly (leaf-str )] -[get-option elpi.loc - File "./tests/test_vernacular1.v", line 51, column 0, characters 987-1014:, - get-option elpi.phase interp, get-option foo bar, get-option poly tt] -[attribute elpi.loc - (leaf-loc - File "./tests/test_vernacular1.v", line 52, column 0, characters 1015-1055:), - attribute elpi.phase (leaf-str interp), attribute foo (leaf-str bar), - attribute poly (leaf-str ), - attribute suppa (node [attribute duppa (leaf-str )])] -[get-option elpi.loc - File "./tests/test_vernacular1.v", line 52, column 0, characters 1015-1055:, - get-option elpi.phase interp, get-option foo bar, get-option poly tt] -Query assignments: - X = 3 -app [global (const «Nat.mul»), X0, X1] type -File "./tests/test_vernacular1.v", line 5, characters 0-61: -Warning: -Undeclared globals: -- File "./tests/test_vernacular1.v", line 6, column 29, characters 112-117: foo. -Please add the following text to your program: -type foo list argument -> prop. -[elpi.missing-types,elpi.typecheck,elpi,default] -File "./tests/test_vernacular1.v", line 46, characters 2-11: -Warning: This command does not support this attribute: foo. -[unsupported-attributes,parsing,default] -File "./tests/test_vernacular1.v", line 65, characters 26-27: -Warning: -File "./tests/test_vernacular1.v", line 65, characters 26-27 -X is linear: name it _X (discard) or X_ (fresh variable) -[elpi.linear-variable,elpi.typecheck,elpi,default] +Arguments listR_inv A%type_scope PA%function_scope idx0%list_scope +Arguments nilR_inv A%type_scope PA%function_scope idx0%list_scope _ +Arguments consR_inv A%type_scope PA%function_scope + idx0%list_scope a _ xs%list_scope _ _ {c0} : decl c0 `x` (global (indt «nat»)) ?- evar (X0 c0) (prod `_` (global (indt «bool»)) c1 \ global (indt «True»)) @@ -13300,6 +15990,470 @@ U is linear: name it _U (discard) or U_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] Query assignments: + X1 = «x1» + X2 = «x2» + X3 = «x3» +Query assignments: + M = [[mode-ground], [mode-input]] +1 +1 +1.000000 +1.2 +Query assignments: + C1 = «Nat.add» + C2 = «times» + X1 = tt + X2 = ff +Query assignments: + C1 = «x» +Query assignments: + XX = «elpi.tests.test_API2.xx» +Query assignments: + C1 = «x» + M = «elpi.tests.test_API2.xx» +Query assignments: + XX = «elpi.tests.test_API2.xx2» +Query assignments: + C1 = «x» + M = «elpi.tests.test_API2.xx2» +Query assignments: + C1 = «x» + M = «elpi.tests.test_API2.xx3» +Query assignments: + X1_ = X0 + X2_ = X1 +Syntactic constraints: + evar (X1) (X2) (X1) /* suspended on X1 */ + evar X3 (sort (typ «elpi.tests.test_API2.6»)) (X2) /* suspended on X3, X2 */ + evar (X0) (X4) (X0) /* suspended on X0 */ + evar X5 (sort (typ «elpi.tests.test_API2.5»)) (X4) /* suspended on X5, X4 */ +Universe constraints: +UNIVERSES: + {elpi.tests.test_API2.6 elpi.tests.test_API2.5} |= +ALGEBRAIC UNIVERSES: + {} +FLEXIBLE UNIVERSES: + +SORTS: + α4 + α5 +WEAK CONSTRAINTS: + + +Non-discriminated database +Unfoldable variable definitions: all +Unfoldable constant definitions: all +Unfoldable projection definitions: all +Cut: emp +For any goal -> +For xeq -> exact xxx(level 0, pattern 0 = _, id 0) + +Query assignments: + X3_ = «elpi.tests.test_API2.7» +Universe constraints: +UNIVERSES: + +ALGEBRAIC UNIVERSES: + {elpi.tests.test_API2.7} +FLEXIBLE UNIVERSES: + elpi.tests.test_API2.7 +SORTS: + +WEAK CONSTRAINTS: + + +Query assignments: + %arg1 = «elpi.tests.test_API2.T» +Query assignments: + GR = const const EXN PRINTING: Not_found +Query assignments: + %arg1 = «elpi.tests.test_API2.F» + %arg2 = «elpi.tests.test_API2.X» +«elpi.tests.test_API2.G» +Query assignments: + G = «elpi.tests.test_API2.G» +Module G : Sig Definition id : X.T -> X.T. End := (F X) +Query assignments: + %arg1 = «elpi.tests.test_API2.F» + %arg2 = «elpi.tests.test_API2.X» +«elpi.tests.test_API2.H» +Query assignments: + H = «elpi.tests.test_API2.H» +Module H : Sig Definition id : nat -> nat. End := (F X) +Query assignments: + %arg1 = «elpi.tests.test_API2.T» +Query assignments: + GR = const const EXN PRINTING: Not_found +Module Type FT = Funsig (P:T) Sig Parameter idT : P.T -> P.T. End +Query assignments: + %arg1 = «elpi.tests.test_API2.FT» + %arg2 = «elpi.tests.test_API2.X» +«elpi.tests.test_API2.GT» +Query assignments: + G = «elpi.tests.test_API2.GT» +Module Type GT = Sig Parameter idT : X.T -> X.T. End +Query assignments: + %arg1 = «elpi.tests.test_API2.FT» + %arg2 = «elpi.tests.test_API2.X» +«elpi.tests.test_API2.HT» +Query assignments: + H = «elpi.tests.test_API2.HT» +Module Type HT = Sig Parameter idT : nat -> nat. End +Query assignments: + L = [«elpi.tests.test_API2.8», «elpi.tests.test_API2.9»] + S = {{ elpi.tests.test_API2.8; elpi.tests.test_API2.9; }} + U = «elpi.tests.test_API2.8» + UV = «elpi.tests.test_API2.8» + V = «elpi.tests.test_API2.9» + VV = «elpi.tests.test_API2.9» +Universe constraints: +UNIVERSES: + {elpi.tests.test_API2.9 elpi.tests.test_API2.8} |= +ALGEBRAIC UNIVERSES: + {elpi.tests.test_API2.9 elpi.tests.test_API2.8} +FLEXIBLE UNIVERSES: + elpi.tests.test_API2.9 + elpi.tests.test_API2.8 +SORTS: + +WEAK CONSTRAINTS: + + +Query assignments: + X10_ = c0 \ +X0 c0 + X11_ = X1 + X12_ = c0 \ +X0 c0 + X13_ = X2 + X14_ = c0 \ +X3 c0 + X15_ = c0 \ c1 \ +X4 c0 c1 + X16_ = X5 + X17_ = c0 \ +X6 c0 + X18_ = c0 \ c1 \ +X7 c0 c1 + X19_ = X8 + X20_ = c0 \ +X9 c0 + X21_ = c0 \ c1 \ +X10 c0 c1 + X22_ = X8 + X4_ = X11 + X5_ = X11 + X6_ = X12 + X7_ = X13 + X8_ = c0 \ +X14 c0 + X9_ = X1 +Syntactic constraints: + evar X8 (sort (typ «elpi.tests.test_API2.25»)) X8 /* suspended on X8 */ + evar X8 (sort (typ «elpi.tests.test_API2.28»)) X8 /* suspended on X8 */ + {c0 c1} : decl c1 `x` (X9 c0), decl c0 `z` X8 + ?- evar (X10 c0 c1) (sort (typ «elpi.tests.test_API2.27»)) (X10 c0 c1) /* suspended on X10 */ + {c0} : decl c0 `z` X8 + ?- evar (X9 c0) (sort (typ «elpi.tests.test_API2.26»)) (X9 c0) /* suspended on X9 */ + {c0 c1} : decl c1 `x` (X6 c0), decl c0 `z` X5 + ?- evar (X7 c0 c1) (sort (typ «elpi.tests.test_API2.24»)) (X7 c0 c1) /* suspended on X7 */ + {c0} : decl c0 `z` X5 + ?- evar (X6 c0) (sort (typ «elpi.tests.test_API2.23»)) (X6 c0) /* suspended on X6 */ + evar (X5) (sort (typ «elpi.tests.test_API2.22»)) (X5) /* suspended on X5 */ + {c0 c1} : decl c1 `x` (X3 c0), decl c0 `z` X2 + ?- evar (X4 c0 c1) (sort (typ «elpi.tests.test_API2.21»)) (X4 c0 c1) /* suspended on X4 */ + {c0} : decl c0 `z` X2 + ?- evar (X3 c0) (sort (typ «elpi.tests.test_API2.20»)) (X3 c0) /* suspended on X3 */ + evar (X2) (sort (typ «elpi.tests.test_API2.19»)) (X2) /* suspended on X2 */ + evar X1 (sort (typ «elpi.tests.test_API2.15»)) X1 /* suspended on X1 */ + evar X1 (sort (typ «elpi.tests.test_API2.17»)) X1 /* suspended on X1 */ + {c0} : decl c0 `x` X1 + ?- evar (X0 c0) (sort (typ «elpi.tests.test_API2.16»)) (X0 c0) /* suspended on X0 */ + {c0} : decl c0 `x` X1 + ?- evar (X0 c0) (sort (typ «elpi.tests.test_API2.18»)) (X0 c0) /* suspended on X0 */ + {c0} : decl c0 `x` X13 + ?- evar (X14 c0) (sort (typ «elpi.tests.test_API2.14»)) (X14 c0) /* suspended on X14 */ + evar (X13) (sort (typ «elpi.tests.test_API2.13»)) (X13) /* suspended on X13 */ + evar (X12) (sort (typ «elpi.tests.test_API2.12»)) (X12) /* suspended on X12 */ + evar X11 (sort (typ «elpi.tests.test_API2.10»)) X11 /* suspended on X11 */ + evar X11 (sort (typ «elpi.tests.test_API2.11»)) X11 /* suspended on X11 */ +Universe constraints: +UNIVERSES: + {elpi.tests.test_API2.28 elpi.tests.test_API2.27 elpi.tests.test_API2.26 + elpi.tests.test_API2.25 elpi.tests.test_API2.24 elpi.tests.test_API2.23 + elpi.tests.test_API2.22 elpi.tests.test_API2.21 elpi.tests.test_API2.20 + elpi.tests.test_API2.19 elpi.tests.test_API2.18 elpi.tests.test_API2.17 + elpi.tests.test_API2.16 elpi.tests.test_API2.15 elpi.tests.test_API2.14 + elpi.tests.test_API2.13 elpi.tests.test_API2.12 elpi.tests.test_API2.11 + elpi.tests.test_API2.10} |= +ALGEBRAIC UNIVERSES: + {} +FLEXIBLE UNIVERSES: + +SORTS: + α6 + α7 + α8 + α9 + α10 + α11 + α12 + α13 + α14 + α15 + α16 + α17 + α18 + α19 + α20 + α21 + α22 + α23 + α24 +WEAK CONSTRAINTS: + + +File "./tests/test_API2.v", line 127, characters 0-16: +Warning: Option Foo Bar is deprecated. elpi +[deprecated-option,deprecated,default] +File "./tests/test_API2.v", line 135, characters 0-14: +Warning: Option Foo Bar is deprecated. elpi +[deprecated-option,deprecated,default] +File "./tests/test_API2.v", line 216, characters 23-24: +Warning: +File "./tests/test_API2.v", line 216, characters 23-24 +M is linear: name it _M (discard) or M_ (fresh variable) +[elpi.linear-variable,elpi.typecheck,elpi,default] +File "./tests/test_API2.v", line 224, characters 31-32: +Warning: +File "./tests/test_API2.v", line 224, characters 31-32 +T is linear: name it _T (discard) or T_ (fresh variable) +[elpi.linear-variable,elpi.typecheck,elpi,default] +File "./tests/test_API2.v", line 372, characters 0-228: +Warning: +Undeclared globals: +- File "./tests/test_API2.v", line 373, column 2, characters 8777-8787: test. +Please add the following text to your program: +type test term -> term -> prop. +[elpi.missing-types,elpi.typecheck,elpi,default] +ok +nth_R = +fun (T1 T2 : Type) (T_R : T1 -> T2 -> Type) (x01 : T1) + (x02 : T2) (x0_R : T_R x01 x02) => +let rec1 := + fix rec (n : nat) (l : list T1) {struct n} : T1 := + match l with + | nil => x01 + | (x :: xs)%list => match n with + | 0 => x + | S m => rec m xs + end + end in +let rec2 := + fix rec (n : nat) (l : list T2) {struct n} : T2 := + match l with + | nil => x02 + | (x :: xs)%list => match n with + | 0 => x + | S m => rec m xs + end + end in +fix rec_R (n1 n2 : nat) (n_R : nat_R n1 n2) {struct n_R} : + forall (l1 : list T1) (l2 : list T2), + list_R T1 T2 T_R l1 l2 -> T_R (rec1 n1 l1) (rec2 n2 l2) := + match + n_R in (nat_R s1 s2) + return + (forall (l1 : list T1) (l2 : list T2), + list_R T1 T2 T_R l1 l2 -> T_R (rec1 s1 l1) (rec2 s2 l2)) + with + | O_R => + let K := O_R in + (fun (n3 n4 : nat) (n_R0 : nat_R n3 n4) (l1 : list T1) + (l2 : list T2) (l_R : list_R T1 T2 T_R l1 l2) => + match + l_R in (list_R _ _ _ l3 l4) + return + (T_R + match l3 with + | nil => x01 + | (x :: xs)%list => + match n3 with + | 0 => x + | S m => rec1 m xs + end + end + match l4 with + | nil => x02 + | (x :: xs)%list => + match n4 with + | 0 => x + | S m => rec2 m xs + end + end) + with + | nil_R _ _ _ => x0_R + | cons_R _ _ _ x1 x2 x_R xs1 xs2 xs_R => + match + n_R0 in (nat_R n5 n6) + return + (T_R match n5 with + | 0 => x1 + | S m => rec1 m xs1 + end match n6 with + | 0 => x2 + | S m => rec2 m xs2 + end) + with + | O_R => x_R + | S_R m1 m2 m_R => rec_R m1 m2 m_R xs1 xs2 xs_R + end + end) 0 0 K + | S_R _1 _2 __R => + let K := S_R _1 _2 __R in + (fun (n3 n4 : nat) (n_R0 : nat_R n3 n4) (l1 : list T1) + (l2 : list T2) (l_R : list_R T1 T2 T_R l1 l2) => + match + l_R in (list_R _ _ _ l3 l4) + return + (T_R + match l3 with + | nil => x01 + | (x :: xs)%list => + match n3 with + | 0 => x + | S m => rec1 m xs + end + end + match l4 with + | nil => x02 + | (x :: xs)%list => + match n4 with + | 0 => x + | S m => rec2 m xs + end + end) + with + | nil_R _ _ _ => x0_R + | cons_R _ _ _ x1 x2 x_R xs1 xs2 xs_R => + match + n_R0 in (nat_R n5 n6) + return + (T_R match n5 with + | 0 => x1 + | S m => rec1 m xs1 + end match n6 with + | 0 => x2 + | S m => rec2 m xs2 + end) + with + | O_R => x_R + | S_R m1 m2 m_R => rec_R m1 m2 m_R xs1 xs2 xs_R + end + end) (S _1) (S _2) K + end + : forall (T1 T2 : Type) (T_R : T1 -> T2 -> Type) (x01 : T1) (x02 : T2), + T_R x01 x02 -> + forall n1 n2 : nat, + nat_R n1 n2 -> + forall (l1 : list T1) (l2 : list T2), + list_R T1 T2 T_R l1 l2 -> T_R (nth T1 x01 n1 l1) (nth T2 x02 n2 l2) + +Arguments nth_R (T1 T2)%type_scope T_R%function_scope + x01 x02 x0_R (n1 n2)%nat_scope n_R (l1 l2)%list_scope + l_R +pred_R = +fun (n1 n2 : nat) (n_R : nat_R n1 n2) => +match + n_R in (nat_R n3 n4) + return + (nat_R match n3 with + | 0 => n1 + | S u => u + end match n4 with + | 0 => n2 + | S u => u + end) +with +| O_R => n_R +| S_R _ _ u_R => u_R +end + : forall n1 n2 : nat, nat_R n1 n2 -> nat_R (Nat.pred n1) (Nat.pred n2) + +Arguments pred_R (n1 n2)%nat_scope n_R +File "./apps/derive/tests/test_param2.v", line 85, characters 0-30: +Warning: Not a truly recursive fixpoint. [non-recursive,fixpoints,default] +normP : +forall {T : Type} {e : T} {op : T -> T -> T} {gamma : list T} {t1 t2 : lang}, +(forall a b c : T, op a (op b c) = op (op a b) c) -> +(forall a : T, op e a = a) -> +(forall a : T, op a e = a) -> +norm t1 = norm t2 -> interp T e op gamma t1 = interp T e op gamma t2 + +normP is not universe polymorphic +Arguments normP {T}%type_scope {e} {op}%function_scope + {gamma}%list_scope {t1 t2} (p1 p2 p3)%function_scope + H +normP is transparent +Expands to: Constant elpi_examples_stdlib.example_reflexive_tactic.normP +(fun x y z t : Z => + normP Z.add_assoc Z.add_0_l Z.add_0_r + (eq_refl + <: + norm (add (add (var 0) (var 1)) (add (add (var 2) zero) (var 3))) = + norm (add (add (var 0) (add (var 1) (var 2))) (var 3)))) +Debug: In environment +x, y, z, t : Z +Unable to unify "var 1" with + "var 0". +Raised at Loc.raise in file "lib/loc.ml", line 101, characters 16-23 +Called from Unification.unify_0_with_initial_metas in file "pretyping/unification.ml", line 1281, characters 13-48 +Re-raised at Exninfo.iraise in file "clib/exninfo.ml", line 81, characters 4-38 +Called from Unification.unify_with_eta in file "pretyping/unification.ml", line 1320, characters 14-48 +Called from Unification.merge_instances in file "pretyping/unification.ml", line 1333, characters 23-64 +Called from Unification.w_merge.w_merge_rec in file "pretyping/unification.ml", line 1554, characters 14-63 +Called from Unification.w_merge in file "pretyping/unification.ml", lines 1608-1610, characters 4-35 +Called from Unification.w_unify_core_0 in file "pretyping/unification.ml", line 1661, characters 12-65 +Called from Clenv.clenv_unify in file "proofs/clenv.ml", line 298, characters 25-73 +Called from Clenv.res_pf.(fun) in file "proofs/clenv.ml", line 771, characters 16-56 +Called from Proofview.Goal.enter.f in file "engine/proofview.ml", line 1136, characters 40-46 +Called from Proofview.Goal.enter.(fun) in file "engine/proofview.ml", line 1141, characters 10-34 + +All the remaining goals are on the shelf. + +1 goal + +goal 1 is: + C +1 goal + + ============================ + C +All the remaining goals are on the shelf. + +1 goal + +goal 1 is: + C +1 goal + + ============================ + C +(fun x : tele => tele_fmap) +Query assignments: + Len = 2 + Rules = [tc.instance [] (const «Bool.Decidable_eq_bool») + (indt «DecidableClass.Decidable») [], + tc.instance [] (const «DecidableClass.Decidable_not») + (indt «DecidableClass.Decidable») []] +Normalizing app [global (indt «nat2»), global (const «Nat.succ»)] +Normalizing app [global (indt «nat2»), global (indc «S»)] +Normalizing app [global (indt «nat2»), global (const «Nat.succ»)] +[TC] For indt «C» : + elpi predicate : tc-C + search mode is : tc.deterministic + modes are : [o, o] +Query assignments: BO = fix `add` 0 (prod `n` (global (indt «nat»)) c0 \ prod `m` (global (indt «nat»)) c1 \ global (indt «nat»)) c0 \ @@ -15059,7 +18213,7 @@ RingMicromega.PsatzZ; RMicromega.CPow; Field_theory.FEinv; Tauto.IFF; Ring_polynom.PEpow; RMicromega.CInv; Field_theory.FEdiv; Tauto.EQ; RMicromega.COpp; Field_theory.FEpow; }} - T = 0.688544 + T = 1.233572 Query assignments: %arg1 = 4 S = {{ Nat.add; eq; nat; O; }} @@ -15213,2944 +18367,58 @@ File "./tests-stdlib/test_API_env.v", line 293, characters 30-32 UR is linear: name it _UR (discard) or UR_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -hello1 -[p 1, p 2, p 3, p 4, p 5, p 6, p 7, p 8, p 9, p 10, p 11, p 12, p 13, - p 14, p 15, p 16, p 17, p 18, p 19, p 20, p 21, p 22, p 23, p 24, p 25, - p 26, p 27, p 28, p 29, p 30, p 31, p 32, p 33, p 34, p 35, p 36, p 37, - p 38, p 39, p 40, p 41, p 42, p 43, p 44, p 45, p 46, p 47, p 48, p 49, - p 50, p 51, p 52, p 53, p 54, p 55, p 56, p 57, p 58, p 59, p 60, p 61, - p 62, p 63, p 64, p 65, p 66, p 67, p 68, p 69, p 70, p 71, p 72, p 73, - p 74, p 75, p 76, p 77, p 78, p 79, p 80, p 81, p 82, p 83, p 84, p 85, - p 86, p 87, p 88, p 89, p 90, p 91, p 92, p 93, p 94, p 95, p 96, p 97, - p 98, p 99, p 100, p 101, p 102, p 103, p 104, p 105, p 106, p 107, - p 108, p 109, p 110, p 111, p 112, p 113, p 114, p 115, p 116, p 117, - p 118, p 119, p 120, p 121, p 122, p 123, p 124, p 125, p 126, p 127, - p 128, p 129, p 130, p 131, p 132, p 133, p 134, p 135, p 136, p 137, - p 138, p 139, p 140, p 141, p 142, p 143, p 144, p 145, p 146, p 147, - p 148, p 149, p 150, p 151, p 152, p 153, p 154, p 155, p 156, p 157, - p 158, p 159, p 160, p 161, p 162, p 163, p 164, p 165, p 166, p 167, - p 168, p 169, p 170, p 171, p 172, p 173, p 174, p 175, p 176, p 177, - p 178, p 179, p 180, p 181, p 182, p 183, p 184, p 185, p 186, p 187, - p 188, p 189, p 190, p 191, p 192, p 193, p 194, p 195, p 196, p 197, - p 198, p 199, p 200, p 201, p 202, p 203, p 204, p 205, p 206, p 207, - p 208, p 209, p 210, p 211, p 212, p 213, p 214, p 215, p 216, p 217, - p 218, p 219, p 220, p 221, p 222, p 223, p 224, p 225, p 226, p 227, - p 228, p 229, p 230, p 231, p 232, p 233, p 234, p 235, p 236, p 237, - p 238, p 239, p 240, p 241, p 242, p 243, p 244, p 245, p 246, p 247, - p 248, p 249, p 250, p 251, p 252, p 253, p 254, p 255, p 256, p 257, - p 258, p 259, p 260, p 261, p 262, p 263, p 264, p 265, p 266, p 267, - p 268, p 269, p 270, p 271, p 272, p 273, p 274, p 275, p 276, p 277, - p 278, p 279, p 280, p 281, p 282, p 283, p 284, p 285, p 286, p 287, - p 288, p 289, p 290, p 291, p 292, p 293, p 294, p 295, p 296, p 297, - p 298, p 299, p 300, p 301, p 302, p 303, p 304, p 305, p 306, p 307, - p 308, p 309, p 310, p 311, p 312, p 313, p 314, p 315, p 316, p 317, - p 318, p 319, p 320, p 321, p 322, p 323, p 324, p 325, p 326, p 327, - p 328, p 329, p 330, p 331, p 332, p 333, p 334, p 335, p 336, p 337, - p 338, p 339, p 340, p 341, p 342, p 343, p 344, p 345, p 346, p 347, - p 348, p 349, p 350, p 351, p 352, p 353, p 354, p 355, p 356, p 357, - p 358, p 359, p 360, p 361, p 362, p 363, p 364, p 365, p 366, p 367, - p 368, p 369, p 370, p 371, p 372, p 373, p 374, p 375, p 376, p 377, - p 378, p 379, p 380, p 381, p 382, p 383, p 384, p 385, p 386, p 387, - p 388, p 389, p 390, p 391, p 392, p 393, p 394, p 395, p 396, p 397, - p 398, p 399, p 400, p 401, p 402, p 403, p 404, p 405, p 406, p 407, - p 408, p 409, p 410, p 411, p 412, p 413, p 414, p 415, p 416, p 417, - p 418, p 419, p 420, p 421, p 422, p 423, p 424, p 425, p 426, p 427, - p 428, p 429, p 430, p 431, p 432, p 433, p 434, p 435, p 436, p 437, - p 438, p 439, p 440, p 441, p 442, p 443, p 444, p 445, p 446, p 447, - p 448, p 449, p 450, p 451, p 452, p 453, p 454, p 455, p 456, p 457, - p 458, p 459, p 460, p 461, p 462, p 463, p 464, p 465, p 466, p 467, - p 468, p 469, p 470, p 471, p 472, p 473, p 474, p 475, p 476, p 477, - p 478, p 479, p 480, p 481, p 482, p 483, p 484, p 485, p 486, p 487, - p 488, p 489, p 490, p 491, p 492, p 493, p 494, p 495, p 496, p 497, - p 498, p 499, p 500, p 501, p 502, p 503, p 504, p 505, p 506, p 507, - p 508, p 509, p 510, p 511, p 512, p 513, p 514, p 515, p 516, p 517, - p 518, p 519, p 520, p 521, p 522, p 523, p 524, p 525, p 526, p 527, - p 528, p 529, p 530, p 531, p 532, p 533, p 534, p 535, p 536, p 537, - p 538, p 539, p 540, p 541, p 542, p 543, p 544, p 545, p 546, p 547, - p 548, p 549, p 550, p 551, p 552, p 553, p 554, p 555, p 556, p 557, - p 558, p 559, p 560, p 561, p 562, p 563, p 564, p 565, p 566, p 567, - p 568, p 569, p 570, p 571, p 572, p 573, p 574, p 575, p 576, p 577, - p 578, p 579, p 580, p 581, p 582, p 583, p 584, p 585, p 586, p 587, - p 588, p 589, p 590, p 591, p 592, p 593, p 594, p 595, p 596, p 597, - p 598, p 599, p 600, p 601, p 602, p 603, p 604, p 605, p 606, p 607, - p 608, p 609, p 610, p 611, p 612, p 613, p 614, p 615, p 616, p 617, - p 618, p 619, p 620, p 621, p 622, p 623, p 624, p 625, p 626, p 627, - p 628, p 629, p 630, p 631, p 632, p 633, p 634, p 635, p 636, p 637, - p 638, p 639, p 640, p 641, p 642, p 643, p 644, p 645, p 646, p 647, - p 648, p 649, p 650, p 651, p 652, p 653, p 654, p 655, p 656, p 657, - p 658, p 659, p 660, p 661, p 662, p 663, p 664, p 665, p 666, p 667, - p 668, p 669, p 670, p 671, p 672, p 673, p 674, p 675, p 676, p 677, - p 678, p 679, p 680, p 681, p 682, p 683, p 684, p 685, p 686, p 687, - p 688, p 689, p 690, p 691, p 692, p 693, p 694, p 695, p 696, p 697, - p 698, p 699, p 700, p 701, p 702, p 703, p 704, p 705, p 706, p 707, - p 708, p 709, p 710, p 711, p 712, p 713, p 714, p 715, p 716, p 717, - p 718, p 719, p 720, p 721, p 722, p 723, p 724, p 725, p 726, p 727, - p 728, p 729, p 730, p 731, p 732, p 733, p 734, p 735, p 736, p 737, - p 738, p 739, p 740, p 741, p 742, p 743, p 744, p 745, p 746, p 747, - p 748, p 749, p 750, p 751, p 752, p 753, p 754, p 755, p 756, p 757, - p 758, p 759, p 760, p 761, p 762, p 763, p 764, p 765, p 766, p 767, - p 768, p 769, p 770, p 771, p 772, p 773, p 774, p 775, p 776, p 777, - p 778, p 779, p 780, p 781, p 782, p 783, p 784, p 785, p 786, p 787, - p 788, p 789, p 790, p 791, p 792, p 793, p 794, p 795, p 796, p 797, - p 798, p 799, p 800, p 801, p 802, p 803, p 804, p 805, p 806, p 807, - p 808, p 809, p 810, p 811, p 812, p 813, p 814, p 815, p 816, p 817, - p 818, p 819, p 820, p 821, p 822, p 823, p 824, p 825, p 826, p 827, - p 828, p 829, p 830, p 831, p 832, p 833, p 834, p 835, p 836, p 837, - p 838, p 839, p 840, p 841, p 842, p 843, p 844, p 845, p 846, p 847, - p 848, p 849, p 850, p 851, p 852, p 853, p 854, p 855, p 856, p 857, - p 858, p 859, p 860, p 861, p 862, p 863, p 864, p 865, p 866, p 867, - p 868, p 869, p 870, p 871, p 872, p 873, p 874, p 875, p 876, p 877, - p 878, p 879, p 880, p 881, p 882, p 883, p 884, p 885, p 886, p 887, - p 888, p 889, p 890, p 891, p 892, p 893, p 894, p 895, p 896, p 897, - p 898, p 899, p 900, p 901, p 902, p 903, p 904, p 905, p 906, p 907, - p 908, p 909, p 910, p 911, p 912, p 913, p 914, p 915, p 916, p 917, - p 918, p 919, p 920, p 921, p 922, p 923, p 924, p 925, p 926, p 927, - p 928, p 929, p 930, p 931, p 932, p 933, p 934, p 935, p 936, p 937, - p 938, p 939, p 940, p 941, p 942, p 943, p 944, p 945, p 946, p 947, - p 948, p 949, p 950, p 951, p 952, p 953, p 954, p 955, p 956, p 957, - p 958, p 959, p 960, p 961, p 962, p 963, p 964, p 965, p 966, p 967, - p 968, p 969, p 970, p 971, p 972, p 973, p 974, p 975, p 976, p 977, - p 978, p 979, p 980, p 981, p 982, p 983, p 984, p 985, p 986, p 987, - p 988, p 989, p 990, p 991, p 992, p 993, p 994, p 995, p 996, p 997, - p 998, p 999, p 1000, p 1001, p 1002, p 1003, p 1004, p 1005, p 1006, - p 1007, p 1008, p 1009, p 1010, p 1011, p 1012, p 1013, p 1014, p 1015, - p 1016, p 1017, p 1018, p 1019, p 1020, p 1021, p 1022, p 1023, p 1024, - p 1025, p 1026, p 1027, p 1028, p 1029, p 1030, p 1031, p 1032, p 1033, - p 1034, p 1035, p 1036, p 1037, p 1038, p 1039, p 1040, p 1041, p 1042, - p 1043, p 1044, p 1045, p 1046, p 1047, p 1048, p 1049, p 1050, p 1051, - p 1052, p 1053, p 1054, p 1055, p 1056, p 1057, p 1058, p 1059, p 1060, - p 1061, p 1062, p 1063, p 1064, p 1065, p 1066, p 1067, p 1068, p 1069, - p 1070, p 1071, p 1072, p 1073, p 1074, p 1075, p 1076, p 1077, p 1078, - p 1079, p 1080, p 1081, p 1082, p 1083, p 1084, p 1085, p 1086, p 1087, - p 1088, p 1089, p 1090, p 1091, p 1092, p 1093, p 1094, p 1095, p 1096, - p 1097, p 1098, p 1099, p 1100, p 1101, p 1102, p 1103, p 1104, p 1105, - p 1106, p 1107, p 1108, p 1109, p 1110, p 1111, p 1112, p 1113, p 1114, - p 1115, p 1116, p 1117, p 1118, p 1119, p 1120, p 1121, p 1122, p 1123, - p 1124, p 1125, p 1126, p 1127, p 1128, p 1129, p 1130, p 1131, p 1132, - p 1133, p 1134, p 1135, p 1136, p 1137, p 1138, p 1139, p 1140, p 1141, - p 1142, p 1143, p 1144, p 1145, p 1146, p 1147, p 1148, p 1149, p 1150, - p 1151, p 1152, p 1153, p 1154, p 1155, p 1156, p 1157, p 1158, p 1159, - p 1160, p 1161, p 1162, p 1163, p 1164, p 1165, p 1166, p 1167, p 1168, - p 1169, p 1170, p 1171, p 1172, p 1173, p 1174, p 1175, p 1176, p 1177, - p 1178, p 1179, p 1180, p 1181, p 1182, p 1183, p 1184, p 1185, p 1186, - p 1187, p 1188, p 1189, p 1190, p 1191, p 1192, p 1193, p 1194, p 1195, - p 1196, p 1197, p 1198, p 1199, p 1200, p 1201, p 1202, p 1203, p 1204, - p 1205, p 1206, p 1207, p 1208, p 1209, p 1210, p 1211, p 1212, p 1213, - p 1214, p 1215, p 1216, p 1217, p 1218, p 1219, p 1220, p 1221, p 1222, - p 1223, p 1224, p 1225, p 1226, p 1227, p 1228, p 1229, p 1230, p 1231, - p 1232, p 1233, p 1234, p 1235, p 1236, p 1237, p 1238, p 1239, p 1240, - p 1241, p 1242, p 1243, p 1244, p 1245, p 1246, p 1247, p 1248, p 1249, - p 1250, p 1251, p 1252, p 1253, p 1254, p 1255, p 1256, p 1257, p 1258, - p 1259, p 1260, p 1261, p 1262, p 1263, p 1264, p 1265, p 1266, p 1267, - p 1268, p 1269, p 1270, p 1271, p 1272, p 1273, p 1274, p 1275, p 1276, - p 1277, p 1278, p 1279, p 1280, p 1281, p 1282, p 1283, p 1284, p 1285, - p 1286, p 1287, p 1288, p 1289, p 1290, p 1291, p 1292, p 1293, p 1294, - p 1295, p 1296, p 1297, p 1298, p 1299, p 1300, p 1301, p 1302, p 1303, - p 1304, p 1305, p 1306, p 1307, p 1308, p 1309, p 1310, p 1311, p 1312, - p 1313, p 1314, p 1315, p 1316, p 1317, p 1318, p 1319, p 1320, p 1321, - p 1322, p 1323, p 1324, p 1325, p 1326, p 1327, p 1328, p 1329, p 1330, - p 1331, p 1332, p 1333, p 1334, p 1335, p 1336, p 1337, p 1338, p 1339, - p 1340, p 1341, p 1342, p 1343, p 1344, p 1345, p 1346, p 1347, p 1348, - p 1349, p 1350, p 1351, p 1352, p 1353, p 1354, p 1355, p 1356, p 1357, - p 1358, p 1359, p 1360, p 1361, p 1362, p 1363, p 1364, p 1365, p 1366, - p 1367, p 1368, p 1369, p 1370, p 1371, p 1372, p 1373, p 1374, p 1375, - p 1376, p 1377, p 1378, p 1379, p 1380, p 1381, p 1382, p 1383, p 1384, - p 1385, p 1386, p 1387, p 1388, p 1389, p 1390, p 1391, p 1392, p 1393, - p 1394, p 1395, p 1396, p 1397, p 1398, p 1399, p 1400, p 1401, p 1402, - p 1403, p 1404, p 1405, p 1406, p 1407, p 1408, p 1409, p 1410, p 1411, - p 1412, p 1413, p 1414, p 1415, p 1416, p 1417, p 1418, p 1419, p 1420, - p 1421, p 1422, p 1423, p 1424, p 1425, p 1426, p 1427, p 1428, p 1429, - p 1430, p 1431, p 1432, p 1433, p 1434, p 1435, p 1436, p 1437, p 1438, - p 1439, p 1440, p 1441, p 1442, p 1443, p 1444, p 1445, p 1446, p 1447, - p 1448, p 1449, p 1450, p 1451, p 1452, p 1453, p 1454, p 1455, p 1456, - p 1457, p 1458, p 1459, p 1460, p 1461, p 1462, p 1463, p 1464, p 1465, - p 1466, p 1467, p 1468, p 1469, p 1470, p 1471, p 1472, p 1473, p 1474, - p 1475, p 1476, p 1477, p 1478, p 1479, p 1480, p 1481, p 1482, p 1483, - p 1484, p 1485, p 1486, p 1487, p 1488, p 1489, p 1490, p 1491, p 1492, - p 1493, p 1494, p 1495, p 1496, p 1497, p 1498, p 1499, p 1500, p 1501, - p 1502, p 1503, p 1504, p 1505, p 1506, p 1507, p 1508, p 1509, p 1510, - p 1511, p 1512, p 1513, p 1514, p 1515, p 1516, p 1517, p 1518, p 1519, - p 1520, p 1521, p 1522, p 1523, p 1524, p 1525, p 1526, p 1527, p 1528, - p 1529, p 1530, p 1531, p 1532, p 1533, p 1534, p 1535, p 1536, p 1537, - p 1538, p 1539, p 1540, p 1541, p 1542, p 1543, p 1544, p 1545, p 1546, - p 1547, p 1548, p 1549, p 1550, p 1551, p 1552, p 1553, p 1554, p 1555, - p 1556, p 1557, p 1558, p 1559, p 1560, p 1561, p 1562, p 1563, p 1564, - p 1565, p 1566, p 1567, p 1568, p 1569, p 1570, p 1571, p 1572, p 1573, - p 1574, p 1575, p 1576, p 1577, p 1578, p 1579, p 1580, p 1581, p 1582, - p 1583, p 1584, p 1585, p 1586, p 1587, p 1588, p 1589, p 1590, p 1591, - p 1592, p 1593, p 1594, p 1595, p 1596, p 1597, p 1598, p 1599, p 1600, - p 1601, p 1602, p 1603, p 1604, p 1605, p 1606, p 1607, p 1608, p 1609, - p 1610, p 1611, p 1612, p 1613, p 1614, p 1615, p 1616, p 1617, p 1618, - p 1619, p 1620, p 1621, p 1622, p 1623, p 1624, p 1625, p 1626, p 1627, - p 1628, p 1629, p 1630, p 1631, p 1632, p 1633, p 1634, p 1635, p 1636, - p 1637, p 1638, p 1639, p 1640, p 1641, p 1642, p 1643, p 1644, p 1645, - p 1646, p 1647, p 1648, p 1649, p 1650, p 1651, p 1652, p 1653, p 1654, - p 1655, p 1656, p 1657, p 1658, p 1659, p 1660, p 1661, p 1662, p 1663, - p 1664, p 1665, p 1666, p 1667, p 1668, p 1669, p 1670, p 1671, p 1672, - p 1673, p 1674, p 1675, p 1676, p 1677, p 1678, p 1679, p 1680, p 1681, - p 1682, p 1683, p 1684, p 1685, p 1686, p 1687, p 1688, p 1689, p 1690, - p 1691, p 1692, p 1693, p 1694, p 1695, p 1696, p 1697, p 1698, p 1699, - p 1700, p 1701, p 1702, p 1703, p 1704, p 1705, p 1706, p 1707, p 1708, - p 1709, p 1710, p 1711, p 1712, p 1713, p 1714, p 1715, p 1716, p 1717, - p 1718, p 1719, p 1720, p 1721, p 1722, p 1723, p 1724, p 1725, p 1726, - p 1727, p 1728, p 1729, p 1730, p 1731, p 1732, p 1733, p 1734, p 1735, - p 1736, p 1737, p 1738, p 1739, p 1740, p 1741, p 1742, p 1743, p 1744, - p 1745, p 1746, p 1747, p 1748, p 1749, p 1750, p 1751, p 1752, p 1753, - p 1754, p 1755, p 1756, p 1757, p 1758, p 1759, p 1760, p 1761, p 1762, - p 1763, p 1764, p 1765, p 1766, p 1767, p 1768, p 1769, p 1770, p 1771, - p 1772, p 1773, p 1774, p 1775, p 1776, p 1777, p 1778, p 1779, p 1780, - p 1781, p 1782, p 1783, p 1784, p 1785, p 1786, p 1787, p 1788, p 1789, - p 1790, p 1791, p 1792, p 1793, p 1794, p 1795, p 1796, p 1797, p 1798, - p 1799, p 1800, p 1801, p 1802, p 1803, p 1804, p 1805, p 1806, p 1807, - p 1808, p 1809, p 1810, p 1811, p 1812, p 1813, p 1814, p 1815, p 1816, - p 1817, p 1818, p 1819, p 1820, p 1821, p 1822, p 1823, p 1824, p 1825, - p 1826, p 1827, p 1828, p 1829, p 1830, p 1831, p 1832, p 1833, p 1834, - p 1835, p 1836, p 1837, p 1838, p 1839, p 1840, p 1841, p 1842, p 1843, - p 1844, p 1845, p 1846, p 1847, p 1848, p 1849, p 1850, p 1851, p 1852, - p 1853, p 1854, p 1855, p 1856, p 1857, p 1858, p 1859, p 1860, p 1861, - p 1862, p 1863, p 1864, p 1865, p 1866, p 1867, p 1868, p 1869, p 1870, - p 1871, p 1872, p 1873, p 1874, p 1875, p 1876, p 1877, p 1878, p 1879, - p 1880, p 1881, p 1882, p 1883, p 1884, p 1885, p 1886, p 1887, p 1888, - p 1889, p 1890, p 1891, p 1892, p 1893, p 1894, p 1895, p 1896, p 1897, - p 1898, p 1899, p 1900, p 1901, p 1902, p 1903, p 1904, p 1905, p 1906, - p 1907, p 1908, p 1909, p 1910, p 1911, p 1912, p 1913, p 1914, p 1915, - p 1916, p 1917, p 1918, p 1919, p 1920, p 1921, p 1922, p 1923, p 1924, - p 1925, p 1926, p 1927, p 1928, p 1929, p 1930, p 1931, p 1932, p 1933, - p 1934, p 1935, p 1936, p 1937, p 1938, p 1939, p 1940, p 1941, p 1942, - p 1943, p 1944, p 1945, p 1946, p 1947, p 1948, p 1949, p 1950, p 1951, - p 1952, p 1953, p 1954, p 1955, p 1956, p 1957, p 1958, p 1959, p 1960, - p 1961, p 1962, p 1963, p 1964, p 1965, p 1966, p 1967, p 1968, p 1969, - p 1970, p 1971, p 1972, p 1973, p 1974, p 1975, p 1976, p 1977, p 1978, - p 1979, p 1980, p 1981, p 1982, p 1983, p 1984, p 1985, p 1986, p 1987, - p 1988, p 1989, p 1990, p 1991, p 1992, p 1993, p 1994, p 1995, p 1996, - p 1997, p 1998, p 1999, p 2000, p 2001, p 2002, p 2003, p 2004, p 2005, - p 2006, p 2007, p 2008, p 2009, p 2010, p 2011, p 2012, p 2013, p 2014, - p 2015, p 2016, p 2017, p 2018, p 2019, p 2020, p 2021, p 2022, p 2023, - p 2024, p 2025, p 2026, p 2027, p 2028, p 2029, p 2030, p 2031, p 2032, - p 2033, p 2034, p 2035, p 2036, p 2037, p 2038, p 2039, p 2040, p 2041, - p 2042, p 2043, p 2044, p 2045, p 2046, p 2047, p 2048, p 2049, p 2050, - p 2051, p 2052, p 2053, p 2054, p 2055, p 2056, p 2057, p 2058, p 2059, - p 2060, p 2061, p 2062, p 2063, p 2064, p 2065, p 2066, p 2067, p 2068, - p 2069, p 2070, p 2071, p 2072, p 2073, p 2074, p 2075, p 2076, p 2077, - p 2078, p 2079, p 2080, p 2081, p 2082, p 2083, p 2084, p 2085, p 2086, - p 2087, p 2088, p 2089, p 2090, p 2091, p 2092, p 2093, p 2094, p 2095, - p 2096, p 2097, p 2098, p 2099, p 2100, p 2101, p 2102, p 2103, p 2104, - p 2105, p 2106, p 2107, p 2108, p 2109, p 2110, p 2111, p 2112, p 2113, - p 2114, p 2115, p 2116, p 2117, p 2118, p 2119, p 2120, p 2121, p 2122, - p 2123, p 2124, p 2125, p 2126, p 2127, p 2128, p 2129, p 2130, p 2131, - p 2132, p 2133, p 2134, p 2135, p 2136, p 2137, p 2138, p 2139, p 2140, - p 2141, p 2142, p 2143, p 2144, p 2145, p 2146, p 2147, p 2148, p 2149, - p 2150, p 2151, p 2152, p 2153, p 2154, p 2155, p 2156, p 2157, p 2158, - p 2159, p 2160, p 2161, p 2162, p 2163, p 2164, p 2165, p 2166, p 2167, - p 2168, p 2169, p 2170, p 2171, p 2172, p 2173, p 2174, p 2175, p 2176, - p 2177, p 2178, p 2179, p 2180, p 2181, p 2182, p 2183, p 2184, p 2185, - p 2186, p 2187, p 2188, p 2189, p 2190, p 2191, p 2192, p 2193, p 2194, - p 2195, p 2196, p 2197, p 2198, p 2199, p 2200, p 2201, p 2202, p 2203, - p 2204, p 2205, p 2206, p 2207, p 2208, p 2209, p 2210, p 2211, p 2212, - p 2213, p 2214, p 2215, p 2216, p 2217, p 2218, p 2219, p 2220, p 2221, - p 2222, p 2223, p 2224, p 2225, p 2226, p 2227, p 2228, p 2229, p 2230, - p 2231, p 2232, p 2233, p 2234, p 2235, p 2236, p 2237, p 2238, p 2239, - p 2240, p 2241, p 2242, p 2243, p 2244, p 2245, p 2246, p 2247, p 2248, - p 2249, p 2250, p 2251, p 2252, p 2253, p 2254, p 2255, p 2256, p 2257, - p 2258, p 2259, p 2260, p 2261, p 2262, p 2263, p 2264, p 2265, p 2266, - p 2267, p 2268, p 2269, p 2270, p 2271, p 2272, p 2273, p 2274, p 2275, - p 2276, p 2277, p 2278, p 2279, p 2280, p 2281, p 2282, p 2283, p 2284, - p 2285, p 2286, p 2287, p 2288, p 2289, p 2290, p 2291, p 2292, p 2293, - p 2294, p 2295, p 2296, p 2297, p 2298, p 2299, p 2300, p 2301, p 2302, - p 2303, p 2304, p 2305, p 2306, p 2307, p 2308, p 2309, p 2310, p 2311, - p 2312, p 2313, p 2314, p 2315, p 2316, p 2317, p 2318, p 2319, p 2320, - p 2321, p 2322, p 2323, p 2324, p 2325, p 2326, p 2327, p 2328, p 2329, - p 2330, p 2331, p 2332, p 2333, p 2334, p 2335, p 2336, p 2337, p 2338, - p 2339, p 2340, p 2341, p 2342, p 2343, p 2344, p 2345, p 2346, p 2347, - p 2348, p 2349, p 2350, p 2351, p 2352, p 2353, p 2354, p 2355, p 2356, - p 2357, p 2358, p 2359, p 2360, p 2361, p 2362, p 2363, p 2364, p 2365, - p 2366, p 2367, p 2368, p 2369, p 2370, p 2371, p 2372, p 2373, p 2374, - p 2375, p 2376, p 2377, p 2378, p 2379, p 2380, p 2381, p 2382, p 2383, - p 2384, p 2385, p 2386, p 2387, p 2388, p 2389, p 2390, p 2391, p 2392, - p 2393, p 2394, p 2395, p 2396, p 2397, p 2398, p 2399, p 2400, p 2401, - p 2402, p 2403, p 2404, p 2405, p 2406, p 2407, p 2408, p 2409, p 2410, - p 2411, p 2412, p 2413, p 2414, p 2415, p 2416, p 2417, p 2418, p 2419, - p 2420, p 2421, p 2422, p 2423, p 2424, p 2425, p 2426, p 2427, p 2428, - p 2429, p 2430, p 2431, p 2432, p 2433, p 2434, p 2435, p 2436, p 2437, - p 2438, p 2439, p 2440, p 2441, p 2442, p 2443, p 2444, p 2445, p 2446, - p 2447, p 2448, p 2449, p 2450, p 2451, p 2452, p 2453, p 2454, p 2455, - p 2456, p 2457, p 2458, p 2459, p 2460, p 2461, p 2462, p 2463, p 2464, - p 2465, p 2466, p 2467, p 2468, p 2469, p 2470, p 2471, p 2472, p 2473, - p 2474, p 2475, p 2476, p 2477, p 2478, p 2479, p 2480, p 2481, p 2482, - p 2483, p 2484, p 2485, p 2486, p 2487, p 2488, p 2489, p 2490, p 2491, - p 2492, p 2493, p 2494, p 2495, p 2496, p 2497, p 2498, p 2499, p 2500, - p 2501, p 2502, p 2503, p 2504, p 2505, p 2506, p 2507, p 2508, p 2509, - p 2510, p 2511, p 2512, p 2513, p 2514, p 2515, p 2516, p 2517, p 2518, - p 2519, p 2520, p 2521, p 2522, p 2523, p 2524, p 2525, p 2526, p 2527, - p 2528, p 2529, p 2530, p 2531, p 2532, p 2533, p 2534, p 2535, p 2536, - p 2537, p 2538, p 2539, p 2540, p 2541, p 2542, p 2543, p 2544, p 2545, - p 2546, p 2547, p 2548, p 2549, p 2550, p 2551, p 2552, p 2553, p 2554, - p 2555, p 2556, p 2557, p 2558, p 2559, p 2560, p 2561, p 2562, p 2563, - p 2564, p 2565, p 2566, p 2567, p 2568, p 2569, p 2570, p 2571, p 2572, - p 2573, p 2574, p 2575, p 2576, p 2577, p 2578, p 2579, p 2580, p 2581, - p 2582, p 2583, p 2584, p 2585, p 2586, p 2587, p 2588, p 2589, p 2590, - p 2591, p 2592, p 2593, p 2594, p 2595, p 2596, p 2597, p 2598, p 2599, - p 2600, p 2601, p 2602, p 2603, p 2604, p 2605, p 2606, p 2607, p 2608, - p 2609, p 2610, p 2611, p 2612, p 2613, p 2614, p 2615, p 2616, p 2617, - p 2618, p 2619, p 2620, p 2621, p 2622, p 2623, p 2624, p 2625, p 2626, - p 2627, p 2628, p 2629, p 2630, p 2631, p 2632, p 2633, p 2634, p 2635, - p 2636, p 2637, p 2638, p 2639, p 2640, p 2641, p 2642, p 2643, p 2644, - p 2645, p 2646, p 2647, p 2648, p 2649, p 2650, p 2651, p 2652, p 2653, - p 2654, p 2655, p 2656, p 2657, p 2658, p 2659, p 2660, p 2661, p 2662, - p 2663, p 2664, p 2665, p 2666, p 2667, p 2668, p 2669, p 2670, p 2671, - p 2672, p 2673, p 2674, p 2675, p 2676, p 2677, p 2678, p 2679, p 2680, - p 2681, p 2682, p 2683, p 2684, p 2685, p 2686, p 2687, p 2688, p 2689, - p 2690, p 2691, p 2692, p 2693, p 2694, p 2695, p 2696, p 2697, p 2698, - p 2699, p 2700, p 2701, p 2702, p 2703, p 2704, p 2705, p 2706, p 2707, - p 2708, p 2709, p 2710, p 2711, p 2712, p 2713, p 2714, p 2715, p 2716, - p 2717, p 2718, p 2719, p 2720, p 2721, p 2722, p 2723, p 2724, p 2725, - p 2726, p 2727, p 2728, p 2729, p 2730, p 2731, p 2732, p 2733, p 2734, - p 2735, p 2736, p 2737, p 2738, p 2739, p 2740, p 2741, p 2742, p 2743, - p 2744, p 2745, p 2746, p 2747, p 2748, p 2749, p 2750, p 2751, p 2752, - p 2753, p 2754, p 2755, p 2756, p 2757, p 2758, p 2759, p 2760, p 2761, - p 2762, p 2763, p 2764, p 2765, p 2766, p 2767, p 2768, p 2769, p 2770, - p 2771, p 2772, p 2773, p 2774, p 2775, p 2776, p 2777, p 2778, p 2779, - p 2780, p 2781, p 2782, p 2783, p 2784, p 2785, p 2786, p 2787, p 2788, - p 2789, p 2790, p 2791, p 2792, p 2793, p 2794, p 2795, p 2796, p 2797, - p 2798, p 2799, p 2800, p 2801, p 2802, p 2803, p 2804, p 2805, p 2806, - p 2807, p 2808, p 2809, p 2810, p 2811, p 2812, p 2813, p 2814, p 2815, - p 2816, p 2817, p 2818, p 2819, p 2820, p 2821, p 2822, p 2823, p 2824, - p 2825, p 2826, p 2827, p 2828, p 2829, p 2830, p 2831, p 2832, p 2833, - p 2834, p 2835, p 2836, p 2837, p 2838, p 2839, p 2840, p 2841, p 2842, - p 2843, p 2844, p 2845, p 2846, p 2847, p 2848, p 2849, p 2850, p 2851, - p 2852, p 2853, p 2854, p 2855, p 2856, p 2857, p 2858, p 2859, p 2860, - p 2861, p 2862, p 2863, p 2864, p 2865, p 2866, p 2867, p 2868, p 2869, - p 2870, p 2871, p 2872, p 2873, p 2874, p 2875, p 2876, p 2877, p 2878, - p 2879, p 2880, p 2881, p 2882, p 2883, p 2884, p 2885, p 2886, p 2887, - p 2888, p 2889, p 2890, p 2891, p 2892, p 2893, p 2894, p 2895, p 2896, - p 2897, p 2898, p 2899, p 2900, p 2901, p 2902, p 2903, p 2904, p 2905, - p 2906, p 2907, p 2908, p 2909, p 2910, p 2911, p 2912, p 2913, p 2914, - p 2915, p 2916, p 2917, p 2918, p 2919, p 2920, p 2921, p 2922, p 2923, - p 2924, p 2925, p 2926, p 2927, p 2928, p 2929, p 2930, p 2931, p 2932, - p 2933, p 2934, p 2935, p 2936, p 2937, p 2938, p 2939, p 2940, p 2941, - p 2942, p 2943, p 2944, p 2945, p 2946, p 2947, p 2948, p 2949, p 2950, - p 2951, p 2952, p 2953, p 2954, p 2955, p 2956, p 2957, p 2958, p 2959, - p 2960, p 2961, p 2962, p 2963, p 2964, p 2965, p 2966, p 2967, p 2968, - p 2969, p 2970, p 2971, p 2972, p 2973, p 2974, p 2975, p 2976, p 2977, - p 2978, p 2979, p 2980, p 2981, p 2982, p 2983, p 2984, p 2985, p 2986, - p 2987, p 2988, p 2989, p 2990, p 2991, p 2992, p 2993, p 2994, p 2995, - p 2996, p 2997, p 2998, p 2999, p 3000, p 3001, p 3002, p 3003, p 3004, - p 3005, p 3006, p 3007, p 3008, p 3009, p 3010, p 3011, p 3012, p 3013, - p 3014, p 3015, p 3016, p 3017, p 3018, p 3019, p 3020, p 3021, p 3022, - p 3023, p 3024, p 3025, p 3026, p 3027, p 3028, p 3029, p 3030, p 3031, - p 3032, p 3033, p 3034, p 3035, p 3036, p 3037, p 3038, p 3039, p 3040, - p 3041, p 3042, p 3043, p 3044, p 3045, p 3046, p 3047, p 3048, p 3049, - p 3050, p 3051, p 3052, p 3053, p 3054, p 3055, p 3056, p 3057, p 3058, - p 3059, p 3060, p 3061, p 3062, p 3063, p 3064, p 3065, p 3066, p 3067, - p 3068, p 3069, p 3070, p 3071, p 3072, p 3073, p 3074, p 3075, p 3076, - p 3077, p 3078, p 3079, p 3080, p 3081, p 3082, p 3083, p 3084, p 3085, - p 3086, p 3087, p 3088, p 3089, p 3090, p 3091, p 3092, p 3093, p 3094, - p 3095, p 3096, p 3097, p 3098, p 3099, p 3100, p 3101, p 3102, p 3103, - p 3104, p 3105, p 3106, p 3107, p 3108, p 3109, p 3110, p 3111, p 3112, - p 3113, p 3114, p 3115, p 3116, p 3117, p 3118, p 3119, p 3120, p 3121, - p 3122, p 3123, p 3124, p 3125, p 3126, p 3127, p 3128, p 3129, p 3130, - p 3131, p 3132, p 3133, p 3134, p 3135, p 3136, p 3137, p 3138, p 3139, - p 3140, p 3141, p 3142, p 3143, p 3144, p 3145, p 3146, p 3147, p 3148, - p 3149, p 3150, p 3151, p 3152, p 3153, p 3154, p 3155, p 3156, p 3157, - p 3158, p 3159, p 3160, p 3161, p 3162, p 3163, p 3164, p 3165, p 3166, - p 3167, p 3168, p 3169, p 3170, p 3171, p 3172, p 3173, p 3174, p 3175, - p 3176, p 3177, p 3178, p 3179, p 3180, p 3181, p 3182, p 3183, p 3184, - p 3185, p 3186, p 3187, p 3188, p 3189, p 3190, p 3191, p 3192, p 3193, - p 3194, p 3195, p 3196, p 3197, p 3198, p 3199, p 3200, p 3201, p 3202, - p 3203, p 3204, p 3205, p 3206, p 3207, p 3208, p 3209, p 3210, p 3211, - p 3212, p 3213, p 3214, p 3215, p 3216, p 3217, p 3218, p 3219, p 3220, - p 3221, p 3222, p 3223, p 3224, p 3225, p 3226, p 3227, p 3228, p 3229, - p 3230, p 3231, p 3232, p 3233, p 3234, p 3235, p 3236, p 3237, p 3238, - p 3239, p 3240, p 3241, p 3242, p 3243, p 3244, p 3245, p 3246, p 3247, - p 3248, p 3249, p 3250, p 3251, p 3252, p 3253, p 3254, p 3255, p 3256, - p 3257, p 3258, p 3259, p 3260, p 3261, p 3262, p 3263, p 3264, p 3265, - p 3266, p 3267, p 3268, p 3269, p 3270, p 3271, p 3272, p 3273, p 3274, - p 3275, p 3276, p 3277, p 3278, p 3279, p 3280, p 3281, p 3282, p 3283, - p 3284, p 3285, p 3286, p 3287, p 3288, p 3289, p 3290, p 3291, p 3292, - p 3293, p 3294, p 3295, p 3296, p 3297, p 3298, p 3299, p 3300, p 3301, - p 3302, p 3303, p 3304, p 3305, p 3306, p 3307, p 3308, p 3309, p 3310, - p 3311, p 3312, p 3313, p 3314, p 3315, p 3316, p 3317, p 3318, p 3319, - p 3320, p 3321, p 3322, p 3323, p 3324, p 3325, p 3326, p 3327, p 3328, - p 3329, p 3330, p 3331, p 3332, p 3333, p 3334, p 3335, p 3336, p 3337, - p 3338, p 3339, p 3340, p 3341, p 3342, p 3343, p 3344, p 3345, p 3346, - p 3347, p 3348, p 3349, p 3350, p 3351, p 3352, p 3353, p 3354, p 3355, - p 3356, p 3357, p 3358, p 3359, p 3360, p 3361, p 3362, p 3363, p 3364, - p 3365, p 3366, p 3367, p 3368, p 3369, p 3370, p 3371, p 3372, p 3373, - p 3374, p 3375, p 3376, p 3377, p 3378, p 3379, p 3380, p 3381, p 3382, - p 3383, p 3384, p 3385, p 3386, p 3387, p 3388, p 3389, p 3390, p 3391, - p 3392, p 3393, p 3394, p 3395, p 3396, p 3397, p 3398, p 3399, p 3400, - p 3401, p 3402, p 3403, p 3404, p 3405, p 3406, p 3407, p 3408, p 3409, - p 3410, p 3411, p 3412, p 3413, p 3414, p 3415, p 3416, p 3417, p 3418, - p 3419, p 3420, p 3421, p 3422, p 3423, p 3424, p 3425, p 3426, p 3427, - p 3428, p 3429, p 3430, p 3431, p 3432, p 3433, p 3434, p 3435, p 3436, - p 3437, p 3438, p 3439, p 3440, p 3441, p 3442, p 3443, p 3444, p 3445, - p 3446, p 3447, p 3448, p 3449, p 3450, p 3451, p 3452, p 3453, p 3454, - p 3455, p 3456, p 3457, p 3458, p 3459, p 3460, p 3461, p 3462, p 3463, - p 3464, p 3465, p 3466, p 3467, p 3468, p 3469, p 3470, p 3471, p 3472, - p 3473, p 3474, p 3475, p 3476, p 3477, p 3478, p 3479, p 3480, p 3481, - p 3482, p 3483, p 3484, p 3485, p 3486, p 3487, p 3488, p 3489, p 3490, - p 3491, p 3492, p 3493, p 3494, p 3495, p 3496, p 3497, p 3498, p 3499, - p 3500, p 3501, p 3502, p 3503, p 3504, p 3505, p 3506, p 3507, p 3508, - p 3509, p 3510, p 3511, p 3512, p 3513, p 3514, p 3515, p 3516, p 3517, - p 3518, p 3519, p 3520, p 3521, p 3522, p 3523, p 3524, p 3525, p 3526, - p 3527, p 3528, p 3529, p 3530, p 3531, p 3532, p 3533, p 3534, p 3535, - p 3536, p 3537, p 3538, p 3539, p 3540, p 3541, p 3542, p 3543, p 3544, - p 3545, p 3546, p 3547, p 3548, p 3549, p 3550, p 3551, p 3552, p 3553, - p 3554, p 3555, p 3556, p 3557, p 3558, p 3559, p 3560, p 3561, p 3562, - p 3563, p 3564, p 3565, p 3566, p 3567, p 3568, p 3569, p 3570, p 3571, - p 3572, p 3573, p 3574, p 3575, p 3576, p 3577, p 3578, p 3579, p 3580, - p 3581, p 3582, p 3583, p 3584, p 3585, p 3586, p 3587, p 3588, p 3589, - p 3590, p 3591, p 3592, p 3593, p 3594, p 3595, p 3596, p 3597, p 3598, - p 3599, p 3600, p 3601, p 3602, p 3603, p 3604, p 3605, p 3606, p 3607, - p 3608, p 3609, p 3610, p 3611, p 3612, p 3613, p 3614, p 3615, p 3616, - p 3617, p 3618, p 3619, p 3620, p 3621, p 3622, p 3623, p 3624, p 3625, - p 3626, p 3627, p 3628, p 3629, p 3630, p 3631, p 3632, p 3633, p 3634, - p 3635, p 3636, p 3637, p 3638, p 3639, p 3640, p 3641, p 3642, p 3643, - p 3644, p 3645, p 3646, p 3647, p 3648, p 3649, p 3650, p 3651, p 3652, - p 3653, p 3654, p 3655, p 3656, p 3657, p 3658, p 3659, p 3660, p 3661, - p 3662, p 3663, p 3664, p 3665, p 3666, p 3667, p 3668, p 3669, p 3670, - p 3671, p 3672, p 3673, p 3674, p 3675, p 3676, p 3677, p 3678, p 3679, - p 3680, p 3681, p 3682, p 3683, p 3684, p 3685, p 3686, p 3687, p 3688, - p 3689, p 3690, p 3691, p 3692, p 3693, p 3694, p 3695, p 3696, p 3697, - p 3698, p 3699, p 3700, p 3701, p 3702, p 3703, p 3704, p 3705, p 3706, - p 3707, p 3708, p 3709, p 3710] -it = elpi_subproof - : True -it : True - -it is not universe polymorphic -it is transparent -Expands to: Constant elpi.tests.test_ltac.it -elpi_subproof = I - : True -elpi_subproof : True - -elpi_subproof is not universe polymorphic -elpi_subproof is opaque -Expands to: Constant elpi.tests.test_ltac.elpi_subproof -Closed under the global context -true : bool - : bool -Cats.And.Dogs.x = 42 - : nat -This.Is.A.Long.Namespace.stuff = 1 - : nat - = 1 - : nat -This.Is.A.Long.Namespace.stuff = 2 - : nat - = 1 - : nat -This_aux_1.This.Is.A.Long.Namespace.stuff -This.Is.A.Long.Namespace.more_stuff -This.Is.A.Long.Namespace.stuff -This_aux_1.This.Is.A.Long.Namespace.stuff : nat -This.Is.A.Long.Namespace.more_stuff : nat -This.Is.A.Long.Namespace.stuff : nat -stuff = 2 - : nat -default nat_def : nat - : nat -Foo.x = 3 - : nat -Foo.x = 3 - : nat -Foo.x2 = 4 - : nat -eq_refl : Foo.x = 5 - : Foo.x = 5 -A.B.c : nat - -A.B.c is not universe polymorphic -A.B.c is transparent -Expands to: Constant elpi.apps.NES.tests.test_NES.A_aux_4.A.B.c -A1.B1.d : nat - -A1.B1.d is not universe polymorphic -A1.B1.d is transparent -Expands to: Constant elpi.apps.NES.tests.test_NES.A1_aux_6.A1.B1.d -A1.B1.c : nat - -A1.B1.c is not universe polymorphic -A1.B1.c is transparent -Expands to: Constant elpi.apps.NES.tests.test_NES.A1_aux_5.A1.B1.c -x = 5 - : nat -x2 = 4 - : nat -B1.c = 1 - : nat -B1.d = 1 - : nat -d = 1 - : nat -A2.B2.f = 2 - : nat -nabla c1 \ - seal - (goal [decl c1 `P` (sort prop)] (app [global (const «id»), X0, X1]) - (prod `_` c1 c2 \ c1) - (app [global (const «id»), prod `_` c1 c2 \ c1, X2 c1]) []) -Debug: - {c0 c1 c2 c3} : - decl c3 `w` c0, - decl c2 `h` - (app - [global (indt «eq»), global (indt «nat»), global (const «o»), - global (const «m»)]), - decl c1 `x` (prod `y` c0 c4 \ sort (typ «elpi.tests.test_tactic.2»)), - decl c0 `T` (sort (typ «elpi.tests.test_tactic.1»)) - ?- evar (X0 c0 c1 c2 c3) - (prod `e` - (app - [global (indt «eq»), sort (typ «elpi.tests.test_tactic.2»), - app [c1, c3], sort (typ «elpi.tests.test_tactic.3»)]) c4 \ - prod `j` (app [c1, c3]) c5 \ - app - [global (indt «ex»), app [c1, c3], - fun `a` (app [c1, c3]) c6 \ - app [global (indt «eq»), app [c1, c3], c6, c6]]) - (X1 c0 c1 c2 c3) /* suspended on X0, X1 */ -Goal: -[] - - -[decl c3 `w` c0, - decl c2 `h` - (app - [global (indt «eq»), global (indt «nat»), global (const «o»), - global (const «m»)]), - decl c1 `x` (prod `y` c0 c4 \ sort (typ «elpi.tests.test_tactic.2»)), - decl c0 `T` (sort (typ «elpi.tests.test_tactic.1»))] ------------- -prod `e` - (app - [global (indt «eq»), sort (typ «elpi.tests.test_tactic.2»), - app [c1, c3], sort (typ «elpi.tests.test_tactic.3»)]) c4 \ - prod `j` (app [c1, c3]) c5 \ - app - [global (indt «ex»), app [c1, c3], - fun `a` (app [c1, c3]) c6 \ - app [global (indt «eq»), app [c1, c3], c6, c6]] -x w = Type -> x w -> exists a : x w, a = a -Debug: - {c0 c1 c2 c3} : - decl c3 `w` c0, - decl c2 `h` - (app - [global (indt «eq»), global (indt «nat»), global (const «o»), - global (const «m»)]), - decl c1 `x` (prod `y` c0 c4 \ sort (typ «elpi.tests.test_tactic.2»)), - decl c0 `T` (sort (typ «elpi.tests.test_tactic.1»)) - ?- evar (X0 c0 c1 c2 c3) - (prod `e` - (app - [global (indt «eq»), sort (typ «elpi.tests.test_tactic.2»), - app [c1, c3], sort (typ «elpi.tests.test_tactic.3»)]) c4 \ - prod `j` (app [c1, c3]) c5 \ - app - [global (indt «ex»), app [c1, c3], - fun `a` (app [c1, c3]) c6 \ - app [global (indt «eq»), app [c1, c3], c6, c6]]) - (X1 c0 c1 c2 c3) /* suspended on X0, X1 */ -Goal: -[] - - -[decl c3 `w` c0, - decl c2 `h` - (app - [global (indt «eq»), global (indt «nat»), global (const «o»), - global (const «m»)]), - decl c1 `x` (prod `y` c0 c4 \ sort (typ «elpi.tests.test_tactic.2»)), - decl c0 `T` (sort (typ «elpi.tests.test_tactic.1»))] ------------- -prod `e` - (app - [global (indt «eq»), sort (typ «elpi.tests.test_tactic.2»), - app [c1, c3], sort (typ «elpi.tests.test_tactic.3»)]) c4 \ - prod `j` (app [c1, c3]) c5 \ - app - [global (indt «ex»), app [c1, c3], - fun `a` (app [c1, c3]) c6 \ - app [global (indt «eq»), app [c1, c3], c6, c6]] -x w = Type -> x w -> exists a : x w, a = a -Debug: - {c0 c1 c2 c3 c4 c5} : - decl c5 `j` (app [c1, c3]), - decl c4 `e` - (app - [global (indt «eq»), sort (typ «elpi.tests.test_tactic.2»), - app [c1, c3], sort (typ «elpi.tests.test_tactic.3»)]), - decl c3 `w` c0, - decl c2 `h` - (app - [global (indt «eq»), global (indt «nat»), global (const «o»), - global (const «m»)]), - decl c1 `x` (prod `y` c0 c6 \ sort (typ «elpi.tests.test_tactic.2»)), - decl c0 `T` (sort (typ «elpi.tests.test_tactic.1»)) - ?- evar (X0 c0 c1 c2 c3 c4 c5) (app [c1, c3]) (X1 c0 c1 c2 c3 c4 c5) /* suspended on X0, X1 */ - {c0 c1 c2 c3 c4 c5} : - decl c5 `j` (app [c1, c3]), - decl c4 `e` - (app - [global (indt «eq»), sort (typ «elpi.tests.test_tactic.2»), - app [c1, c3], sort (typ «elpi.tests.test_tactic.3»)]), - decl c3 `w` c0, - decl c2 `h` - (app - [global (indt «eq»), global (indt «nat»), global (const «o»), - global (const «m»)]), - decl c1 `x` (prod `y` c0 c6 \ sort (typ «elpi.tests.test_tactic.2»)), - decl c0 `T` (sort (typ «elpi.tests.test_tactic.1»)) - ?- evar (X2 c0 c1 c2 c3 c4 c5) - (app - [global (indt «eq»), app [c1, c3], X1 c0 c1 c2 c3 c4 c5, - X1 c0 c1 c2 c3 c4 c5]) (X3 c0 c1 c2 c3 c4 c5) /* suspended on X2, X3 */ -Goal: -[] - - -[decl c5 `j` (app [c1, c3]), - decl c4 `e` - (app - [global (indt «eq»), sort (typ «elpi.tests.test_tactic.2»), - app [c1, c3], sort (typ «elpi.tests.test_tactic.3»)]), - decl c3 `w` c0, - decl c2 `h` - (app - [global (indt «eq»), global (indt «nat»), global (const «o»), - global (const «m»)]), - decl c1 `x` (prod `y` c0 c6 \ sort (typ «elpi.tests.test_tactic.2»)), - decl c0 `T` (sort (typ «elpi.tests.test_tactic.1»))] ------------- -app - [global (indt «eq»), app [c1, c3], X1 c0 c1 c2 c3 c4 c5, - X1 c0 c1 c2 c3 c4 c5] ?foo = ?foo -Debug: - {c0 c1 c2 c3 c4 c5} : - decl c5 `j` (app [c1, c3]), - decl c4 `e` - (app - [global (indt «eq»), sort (typ «elpi.tests.test_tactic.2»), - app [c1, c3], sort (typ «elpi.tests.test_tactic.3»)]), - decl c3 `w` c0, - decl c2 `h` - (app - [global (indt «eq»), global (indt «nat»), global (const «o»), - global (const «m»)]), - decl c1 `x` (prod `y` c0 c6 \ sort (typ «elpi.tests.test_tactic.2»)), - decl c0 `T` (sort (typ «elpi.tests.test_tactic.1»)) - ?- evar (X0 c0 c1 c2 c3 c4 c5) (app [c1, c3]) (X1 c0 c1 c2 c3 c4 c5) /* suspended on X0, X1 */ - {c0 c1 c2 c3 c4 c5} : - decl c5 `j` (app [c1, c3]), - decl c4 `e` - (app - [global (indt «eq»), sort (typ «elpi.tests.test_tactic.2»), - app [c1, c3], sort (typ «elpi.tests.test_tactic.3»)]), - decl c3 `w` c0, - decl c2 `h` - (app - [global (indt «eq»), global (indt «nat»), global (const «o»), - global (const «m»)]), - decl c1 `x` (prod `y` c0 c6 \ sort (typ «elpi.tests.test_tactic.2»)), - decl c0 `T` (sort (typ «elpi.tests.test_tactic.1»)) - ?- evar (X2 c0 c1 c2 c3 c4 c5) - (app - [global (indt «eq»), app [c1, c3], X1 c0 c1 c2 c3 c4 c5, - X1 c0 c1 c2 c3 c4 c5]) (X3 c0 c1 c2 c3 c4 c5) /* suspended on X2, X3 */ -Goal: -[] - - -[decl c5 `j` (app [c1, c3]), - decl c4 `e` - (app - [global (indt «eq»), sort (typ «elpi.tests.test_tactic.2»), - app [c1, c3], sort (typ «elpi.tests.test_tactic.3»)]), - decl c3 `w` c0, - decl c2 `h` - (app - [global (indt «eq»), global (indt «nat»), global (const «o»), - global (const «m»)]), - decl c1 `x` (prod `y` c0 c6 \ sort (typ «elpi.tests.test_tactic.2»)), - decl c0 `T` (sort (typ «elpi.tests.test_tactic.1»))] ------------- -app - [global (indt «eq»), app [c1, c3], X1 c0 c1 c2 c3 c4 c5, - X1 c0 c1 c2 c3 c4 c5] ?foo = ?foo -Debug: evar (X0) (global (indt «nat»)) X1 /* suspended on X0, X1 */ -X0 global (indt «nat») -Debug: evar (X2) (global (indt «nat»)) X3 /* suspended on X2, X3 */ -hello -eq_refl : one = 1 - : one = 1 -[(c4 \ app [c1, c2]), (c4 \ app [c0, c2]), (c4 \ c4), (c4 \ - prod `x0` (app [c0, c2]) c5 \ - prod `x1` (global (indt «nat»)) c6 \ - sort (typ «elpi.tests.test_tactic.16»))] -[app - [global (indt «eq»), global (indt «nat»), c2, - app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]], - sort prop] -1356 - : nat -this 3 app [c4, X0 c0 c1 c2 c3 c4] -app [c3, app [c1, c2], global (const «a»)] foo.bar -[trm c0, trm (app [global (const «Nat.add»), c0, c1])] -Debug: - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -[trm c0, trm (app [global (const «Nat.add»), X0 c0 c1, c1])] -Debug: - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X1 c0 c1) (global (indt «nat»)) (X0 c0 c1) /* suspended on X1, X0 */ - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X2 c0 c1) (global (indt «True»)) (X3 c0 c1) /* suspended on X2, X3 */ -[trm c0, trm (app [global (const «Nat.add»), X0 c0 c1, c1])] -Debug: - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X1 c0 c1) (global (indt «True»)) (X2 c0 c1) /* suspended on X1, X2 */ -[trm c0, trm c1] -Debug: - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -[trm (app [global (const «Nat.add»), c0, c1])] -Debug: - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -[trm (app [global (const «Nat.add»), X0 c0 c1, c1])] -Debug: - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X1 c0 c1) (global (indt «nat»)) (X0 c0 c1) /* suspended on X1, X0 */ - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X2 c0 c1) (global (indt «True»)) (X3 c0 c1) /* suspended on X2, X3 */ -[trm (app [global (const «Nat.add»), X0 c0 c1, c1])] -Debug: - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X1 c0 c1) (global (indt «True»)) (X2 c0 c1) /* suspended on X1, X2 */ -[trm (app [global (indc «O»), global (indc «O»)])] -Debug: - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -[trm c0] -Debug: - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -[int 1] -Debug: - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -[int -1] -Debug: - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -[str a] -Debug: - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -[str a] -Debug: - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -[str x] -Debug: - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -[trm (app [global (const «Nat.add»), c0, c1])] -Debug: - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -[trm (app [global (const «Nat.add»), X0 c0 c1, c1])] -Debug: - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X1 c0 c1) (global (indt «True»)) (X2 c0 c1) /* suspended on X1, X2 */ -[trm (app [global (const «Nat.add»), X0 c0 c1, c1])] -Debug: - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X1 c0 c1) (global (indt «True»)) (X2 c0 c1) /* suspended on X1, X2 */ -[trm c0] -Debug: - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -YYYYYYYYYYYYYYYYYYYYYYYYYYYY -[attribute elpi.loc - (leaf-loc - File "./tests/test_tactic.v", line 289, column 77, characters 6139-6147:), - attribute elpi.phase (leaf-str interp), attribute foo (leaf-str )] -XXXXXXXXXXXXXXXXXXXXXXXXXXX -[get-option elpi.loc - File "./tests/test_tactic.v", line 289, column 77, characters 6139-6147:, - get-option elpi.phase interp, get-option foo tt] -YYYYYYYYYYYYYYYYYYYYYYYYYYYY -[attribute elpi.loc - (leaf-loc - File "./tests/test_tactic.v", line 289, column 77, characters 6139-6147:), - attribute elpi.phase (leaf-str interp), attribute foo (leaf-str )] -XXXXXXXXXXXXXXXXXXXXXXXXXXX -[get-option elpi.loc - File "./tests/test_tactic.v", line 289, column 77, characters 6139-6147:, - get-option elpi.phase interp, get-option foo tt] -YYYYYYYYYYYYYYYYYYYYYYYYYYYY -[attribute elpi.loc - (leaf-loc - File "./tests/test_tactic.v", line 289, column 77, characters 6139-6147:), - attribute elpi.phase (leaf-str interp), attribute bar (leaf-str )] -XXXXXXXXXXXXXXXXXXXXXXXXXXX -[get-option elpi.loc - File "./tests/test_tactic.v", line 289, column 77, characters 6139-6147:, - get-option elpi.phase interp, get-option bar tt] -YYYYYYYYYYYYYYYYYYYYYYYYYYYY -[attribute elpi.loc - (leaf-loc - File "./tests/test_tactic.v", line 289, column 77, characters 6139-6147:), - attribute elpi.phase (leaf-str interp), attribute foo2 (leaf-str )] -YYYYYYYYYYYYYYYYYYYYYYYYYYYY -[attribute elpi.loc - (leaf-loc - File "./tests/test_tactic.v", line 290, column 77, characters 6226-6234:), - attribute elpi.phase (leaf-str interp), attribute foo (leaf-str )] -XXXXXXXXXXXXXXXXXXXXXXXXXXX -[get-option elpi.loc - File "./tests/test_tactic.v", line 290, column 77, characters 6226-6234:, - get-option elpi.phase interp, get-option foo tt] -[attribute elpi.loc - (leaf-loc - File "./tests/test_tactic.v", line 318, column 10, characters 6808-6814:), - attribute elpi.phase (leaf-str interp)] -Entry binder_constr is -[ LEFTA - [ "exists2"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; ","; term LEVEL - "200"; "&"; term LEVEL "200" - | "exists2"; "'"; pattern LEVEL "0"; ","; term LEVEL "200"; "&"; term LEVEL - "200" - | "exists2"; name; ":"; term LEVEL "200"; ","; term LEVEL "200"; "&"; term - LEVEL "200" - | "exists2"; name; ","; term LEVEL "200"; "&"; term LEVEL "200" - | "exists"; "!"; open_binders; ","; term LEVEL "200" - | "exists"; open_binders; ","; term LEVEL "200" - | "forall"; open_binders; ","; term LEVEL "200" - | "fun"; open_binders; "=>"; term LEVEL "200" - | "let"; "fix"; fix_decl; "in"; term LEVEL "200" - | "let"; "cofix"; cofix_body; "in"; term LEVEL "200" - | "let"; "'"; pattern LEVEL "200"; ":="; term LEVEL "200"; "in"; term LEVEL - "200" - | "let"; "'"; pattern LEVEL "200"; ":="; term LEVEL "200"; case_type; "in"; - term LEVEL "200" - | "let"; "'"; pattern LEVEL "200"; "in"; pattern LEVEL "200"; ":="; term - LEVEL "200"; case_type; "in"; term LEVEL "200" - | "let"; name; binders; let_type_cstr; ":="; term LEVEL "200"; "in"; term - LEVEL "200" - | "let"; [ "("; LIST0 name SEP ","; ")" | "()" ]; as_return_type; ":="; - term LEVEL "200"; "in"; term LEVEL "200" - | "if"; term LEVEL "200"; as_return_type; "then"; term LEVEL "200"; "else"; - term LEVEL "200" - | "fix"; fix_decls - | "cofix"; cofix_decls ] ] - -Entry constr is -[ LEFTA - [ "@"; global; univ_annot - | term LEVEL "8" ] ] - -Entry lconstr is -[ LEFTA - [ term LEVEL "200" ] ] - -Entry term is -[ "200" RIGHTA - [ ] -| "100" RIGHTA - [ SELF; "<:"; term LEVEL "200" - | SELF; "<<:"; term LEVEL "200" - | SELF; ":>"; term LEVEL "200" - | SELF; ":"; term LEVEL "200" ] -| "99" RIGHTA - [ SELF; "->"; term LEVEL "200" ] -| "95" RIGHTA - [ SELF; "<->"; NEXT ] -| "90" RIGHTA - [ ] -| "85" RIGHTA - [ SELF; "\\/"; term LEVEL "85" ] -| "80" RIGHTA - [ SELF; "/\\"; term LEVEL "80" ] -| "75" RIGHTA - [ "~"; term LEVEL "75" ] -| "70" RIGHTA - [ SELF; ">"; NEXT - | SELF; ">="; NEXT - | SELF; "<"; NEXT; "<="; NEXT - | SELF; "<"; NEXT; "<"; NEXT - | SELF; "<"; NEXT - | SELF; "<="; NEXT; "<"; NEXT - | SELF; "<="; NEXT; "<="; NEXT - | SELF; "<="; NEXT - | SELF; "<>"; NEXT; ":>"; NEXT - | SELF; "<>"; NEXT - | SELF; "="; NEXT; "="; NEXT - | SELF; "="; NEXT; ":>"; NEXT - | SELF; "="; NEXT ] -| "60" RIGHTA - [ SELF; "++"; term LEVEL "60" - | SELF; "::"; term LEVEL "60" ] -| "50" LEFTA - [ SELF; "||"; NEXT - | SELF; "-"; NEXT - | SELF; "+"; NEXT ] -| "40" LEFTA - [ SELF; "&&"; NEXT - | SELF; "/"; NEXT - | SELF; "*"; NEXT ] -| "35" RIGHTA - [ "/"; term LEVEL "35" - | "-"; term LEVEL "35" ] -| "30" RIGHTA - [ SELF; "^"; term LEVEL "30" ] -| LEFTA - [ IDENT "XX"; FIELD "xxx"; LIST0 arg ] -| "10" LEFTA - [ SELF; LIST1 arg - | "@"; global; univ_annot; LIST0 NEXT - | "@"; pattern_ident; LIST1 identref - | binder_constr ] -| "9" LEFTA - [ ".."; term LEVEL "0"; ".." ] -| "8" LEFTA - [ ] -| "1" LEFTA - [ SELF; ".2" - | SELF; ".1" - | SELF; ".("; "@"; global; univ_annot; LIST0 (term LEVEL "9"); ")" - | SELF; ".("; global; univ_annot; LIST0 arg; ")" - | SELF; "%"; IDENT - | SELF; "%_"; IDENT ] -| "0" LEFTA - [ "lib"; ":"; "@"; qualified_name - | "lib"; ":"; qualified_name - | QUOTATION "lp:" - | "{"; "'"; pattern LEVEL "0"; "&"; term LEVEL "200"; "&"; term LEVEL - "200"; "}" - | "{"; "'"; pattern LEVEL "0"; "&"; term LEVEL "200"; "}" - | "{"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; "&"; term LEVEL - "200"; "&"; term LEVEL "200"; "}" - | "{"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; "&"; term LEVEL - "200"; "}" - | "{"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; "|"; term LEVEL - "200"; "&"; term LEVEL "200"; "}" - | "{"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; "|"; term LEVEL - "200"; "}" - | "{"; "'"; pattern LEVEL "0"; "|"; term LEVEL "200"; "&"; term LEVEL - "200"; "}" - | "{"; "'"; pattern LEVEL "0"; "|"; term LEVEL "200"; "}" - | "{"; term LEVEL "99"; "&"; term LEVEL "200"; "&"; term LEVEL "200"; "}" - | "{"; term LEVEL "99"; "&"; term LEVEL "200"; "}" - | "{"; term LEVEL "99"; ":"; term LEVEL "200"; "&"; term LEVEL "200"; "&"; - term LEVEL "200"; "}" - | "{"; term LEVEL "99"; ":"; term LEVEL "200"; "&"; term LEVEL "200"; "}" - | "{"; term LEVEL "99"; ":"; term LEVEL "200"; "|"; term LEVEL "200"; "&"; - term LEVEL "200"; "}" - | "{"; term LEVEL "99"; ":"; term LEVEL "200"; "|"; term LEVEL "200"; "}" - | "{"; term LEVEL "99"; "|"; term LEVEL "200"; "&"; term LEVEL "200"; "}" - | "{"; term LEVEL "99"; "|"; term LEVEL "200"; "}" - | "{"; term LEVEL "99"; "}" - | IDENT "ltac"; ":"; "("; ltac_expr; ")" - | "("; term LEVEL "200"; ","; term LEVEL "200"; ","; LIST1 (term LEVEL - "200") SEP ","; ")" - | "("; term LEVEL "200"; ","; term LEVEL "200"; ")" - | "("; term LEVEL "200"; ")" - | "{|"; record_declaration; '|}' - | "`{"; term LEVEL "200"; "}" - | "`("; term LEVEL "200"; ")" - | NUMBER - | atomic_constr - | term_match - | ident; fields; univ_annot - | ident; univ_annot - | string - | test_array_opening; "["; "|"; array_elems; "|"; lconstr; type_cstr; - test_array_closing; "|"; "]"; univ_annot ] ] - -[attribute elpi.loc - (leaf-loc - File "./tests/test_tactic.v", line 329, column 12, characters 7061-7082:), - attribute elpi.phase (leaf-str interp)] -skip int 1 -skip str 33 -skip trm (global (indt «bool»)) -[attribute elpi.loc - (leaf-loc - File "./tests/test_tactic.v", line 329, column 12, characters 7061-7082:), - attribute elpi.phase (leaf-str interp)] -skip int 1 -skip str 33 -skip trm (global (indt «bool»)) -nat -> bool -> True - : Prop -[attribute elpi.loc - (leaf-loc - File "./tests/test_tactic.v", line 338, column 12, characters 7247-7268:), - attribute elpi.phase (leaf-str interp)] -[attribute elpi.loc - (leaf-loc - File "./tests/test_tactic.v", line 338, column 12, characters 7247-7268:), - attribute elpi.phase (leaf-str interp)] -[attribute elpi.loc - (leaf-loc - File "./tests/test_tactic.v", line 342, column 30, characters 7348-7354:), - attribute elpi.phase (leaf-str interp)] -[attribute elpi.loc - (leaf-loc - File "./tests/test_tactic.v", line 342, column 30, characters 7348-7354:), - attribute elpi.phase (leaf-str interp)] -[attribute elpi.loc - (leaf-loc - File "./tests/test_tactic.v", line 350, column 7, characters 7524-7530:), - attribute elpi.phase (leaf-str interp)] -[attribute elpi.loc - (leaf-loc - File "./tests/test_tactic.v", line 350, column 7, characters 7524-7530:), - attribute elpi.phase (leaf-str interp)] -H -goal [] (X0) (global (indt «True»)) (X1) [trm (global (const «H»))] -goal [] (X0) (global (indt «True»)) (X1) - [trm - (app - [global (indt «eq»), global (indt «True»), global (const «H»), - global (const «H»)])] -goal [] (X0) (global (indt «True»)) (X1) [trm (global (const «H»))] -Debug: run 1 {{{ - -Debug: - rid:0 step:1 gid:4 user:curgoal = , - pi c0 \ - pi c1 \ - declare-evar - [decl c1 `x0` (global (indt «nat»)), - decl c0 `x` (global (indt «nat»))] - (X0 c0 c1) - (prod `y` (global (indt «nat»)) c2 \ - app - [global (indt «eq»), - global (indt «nat»), c0, - app - [global (const «Nat.add»), - app - [global (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], c2], c1]]) - (X1 c0 c1) , - attributes - [attribute elpi.loc - (leaf-loc - File "./tests/test_tactic.v", line 408, column 5, characters 8815-8821:), - attribute elpi.phase (leaf-str interp)] - => - (msolve - [nabla c0 \ - nabla c1 \ - seal - (goal - [decl c1 `x0` - (global (indt «nat»)), - decl c0 `x` - (global (indt «nat»))] - (X0 c0 c1) - (prod `y` - (global (indt «nat»)) c2 \ - app - [global (indt «eq»), - global (indt «nat»), c0, - app - [global (const «Nat.add»), - app - [global - (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], - c2], c1]]) (X1 c0 c1) [])] - (X2) ; - coq.ltac.all (coq.ltac.open solve) - [nabla c0 \ - nabla c1 \ - seal - (goal - [decl c1 `x0` - (global (indt «nat»)), - decl c0 `x` - (global (indt «nat»))] - (X0 c0 c1) - (prod `y` - (global (indt «nat»)) c2 \ - app - [global (indt «eq»), - global (indt «nat»), c0, - app - [global (const «Nat.add»), - app - [global - (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], - c2], c1]]) (X1 c0 c1) [])] - (X2)) - -Debug: - rid:0 step:1 gid:4 user:rule = and - -Debug: - rid:0 step:1 gid:4 user:subgoal = 5 - -Debug: - rid:0 step:1 gid:5 user:newgoal = pi c0 \ - pi c1 \ - declare-evar - [decl c1 `x0` (global (indt «nat»)), - decl c0 `x` (global (indt «nat»))] - (X0 c0 c1) - (prod `y` (global (indt «nat»)) c2 \ - app - [global (indt «eq»), - global (indt «nat»), c0, - app - [global (const «Nat.add»), - app - [global (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], c2], c1]]) - (X1 c0 c1) - -Debug: - rid:0 step:1 gid:4 user:subgoal = 6 - -Debug: - rid:0 step:1 gid:6 user:newgoal = attributes - [attribute elpi.loc - (leaf-loc - File "./tests/test_tactic.v", line 408, column 5, characters 8815-8821:), - attribute elpi.phase (leaf-str interp)] - => - (msolve - [nabla c0 \ - nabla c1 \ - seal - (goal - [decl c1 `x0` - (global (indt «nat»)), - decl c0 `x` - (global (indt «nat»))] - (X0 c0 c1) - (prod `y` (global (indt «nat»)) - c2 \ - app - [global (indt «eq»), - global (indt «nat»), c0, - app - [global (const «Nat.add»), - app - [global (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], c2], - c1]]) (X1 c0 c1) [])] (X2) ; - coq.ltac.all (coq.ltac.open solve) - [nabla c0 \ - nabla c1 \ - seal - (goal - [decl c1 `x0` - (global (indt «nat»)), - decl c0 `x` - (global (indt «nat»))] - (X0 c0 c1) - (prod `y` - (global (indt «nat»)) c2 \ - app - [global (indt «eq»), - global (indt «nat»), c0, - app - [global (const «Nat.add»), - app - [global - (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], - c2], c1]]) (X1 c0 c1) [])] - (X2)) - -Debug: - rid:0 step:1 gid:4 user:rule:and = success - -Debug: }}} -> (0.001s) -Debug: run 2 {{{ - -Debug: - rid:0 step:2 gid:5 user:curgoal = pi - pi c0 \ - pi c1 \ - declare-evar - [decl c1 `x0` (global (indt «nat»)), - decl c0 `x` (global (indt «nat»))] - (X0 c0 c1) - (prod `y` (global (indt «nat»)) c2 \ - app - [global (indt «eq»), - global (indt «nat»), c0, - app - [global (const «Nat.add»), - app - [global (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], c2], c1]]) - (X1 c0 c1) - -Debug: rid:0 step:2 gid:5 user:rule = pi - -Debug: - rid:0 step:2 gid:5 user:subgoal = 7 - -Debug: - rid:0 step:2 gid:7 user:newgoal = pi c1 \ - declare-evar - [decl c1 `x0` (global (indt «nat»)), - decl c0 `x` (global (indt «nat»))] - (X0 c0 c1) - (prod `y` (global (indt «nat»)) c2 \ - app - [global (indt «eq»), - global (indt «nat»), c0, - app - [global (const «Nat.add»), - app - [global (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], c2], c1]]) - (X1 c0 c1) - -Debug: - rid:0 step:2 gid:7 user:rule:pi = success - -Debug: }}} -> (0.000s) -Debug: run 3 {{{ - -Debug: - rid:0 step:3 gid:7 user:curgoal = pi - pi c1 \ - declare-evar - [decl c1 `x0` (global (indt «nat»)), - decl c0 `x` (global (indt «nat»))] - (X0 c0 c1) - (prod `y` (global (indt «nat»)) c2 \ - app - [global (indt «eq»), - global (indt «nat»), c0, - app - [global (const «Nat.add»), - app - [global (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], c2], c1]]) - (X1 c0 c1) - -Debug: rid:0 step:3 gid:7 user:rule = pi - -Debug: - rid:0 step:3 gid:7 user:subgoal = 8 - -Debug: - rid:0 step:3 gid:8 user:newgoal = declare-evar - [decl c1 `x0` (global (indt «nat»)), - decl c0 `x` (global (indt «nat»))] - (X0 c0 c1) - (prod `y` (global (indt «nat»)) c2 \ - app - [global (indt «eq»), - global (indt «nat»), c0, - app - [global (const «Nat.add»), - app - [global (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], c2], c1]]) - (X1 c0 c1) - -Debug: - rid:0 step:3 gid:8 user:rule:pi = success - -Debug: }}} -> (0.000s) -Debug: run 4 {{{ - -Debug: - rid:0 step:4 gid:8 user:curgoal = declare-evar - declare-evar - [decl c1 `x0` (global (indt «nat»)), - decl c0 `x` (global (indt «nat»))] - (X0 c0 c1) - (prod `y` (global (indt «nat»)) c2 \ - app - [global (indt «eq»), - global (indt «nat»), c0, - app - [global (const «Nat.add»), - app - [global (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], c2], c1]]) - (X1 c0 c1) - -Debug: - rid:0 step:4 gid:8 user:rule = backchain - -Debug: - rid:0 step:4 gid:8 user:rule:backchain:candidates = File "coq-builtin.elpi", line 270, column 0, characters 10866-10986: - -Debug: }}} -> (0.000s) -Debug: select 5 {{{ - -Debug: - rid:0 step:4 gid:8 user:rule:backchain:try = File "coq-builtin.elpi", line 270, column 0, characters 10866-10986: - (declare-evar A0 A1 A2 A3) :- ( - declare_constraint - (declare-evar A0 A1 A2 A3) - [A1]). - -Debug: - rid:0 step:4 gid:0 user:assign = A0 := [decl c1 `x0` (global (indt «nat»)), - decl c0 `x` (global (indt «nat»))] - -Debug: - rid:0 step:4 gid:0 user:assign = A1 := X0 c0 c1 - -Debug: - rid:0 step:4 gid:0 user:assign = A2 := prod `y` (global (indt «nat»)) c2 \ - app - [global (indt «eq»), - global (indt «nat»), c0, - app - [global (const «Nat.add»), - app - [global (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], c2], c1]] - -Debug: - rid:0 step:4 gid:0 user:assign = A3 := X1 c0 c1 - -Debug: - rid:0 step:4 gid:8 user:subgoal = 9 - -Debug: - rid:0 step:4 gid:9 user:newgoal = declare_constraint - (declare-evar - [decl c1 `x0` (global (indt «nat»)), - decl c0 `x` (global (indt «nat»))] - (X0 c0 c1) - (prod `y` (global (indt «nat»)) c2 \ - app - [global (indt «eq»), - global (indt «nat»), c0, - app - [global (const «Nat.add»), - app - [global (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], c2], c1]]) - (X1 c0 c1)) [X0 c0 c1] - -Debug: - rid:0 step:4 gid:9 user:rule:backchain = success - -Debug: }}} -> (0.000s) -Debug: run 5 {{{ - -Debug: - rid:0 step:5 gid:9 user:curgoal = declare_constraint - declare_constraint - (declare-evar - [decl c1 `x0` (global (indt «nat»)), - decl c0 `x` (global (indt «nat»))] - (X0 c0 c1) - (prod `y` (global (indt «nat»)) c2 \ - app - [global (indt «eq»), - global (indt «nat»), c0, - app - [global (const «Nat.add»), - app - [global (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], c2], c1]]) - (X1 c0 c1)) [X0 c0 c1] - -Debug: - rid:0 step:5 gid:9 user:rule = builtin - -Debug: - rid:0 step:5 gid:9 user:rule:builtin:name = declare_constraint - -Debug: - rid:0 step:5 gid:9 user:subgoal = 10 - -Debug: - rid:0 step:5 gid:10 user:newgoal = declare-evar - [decl c1 `x0` (global (indt «nat»)), - decl c0 `x` (global (indt «nat»))] - (X0 c0 c1) - (prod `y` (global (indt «nat»)) c2 \ - app - [global (indt «eq»), - global (indt «nat»), c0, - app - [global (const «Nat.add»), - app - [global (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], c2], c1]]) - (X1 c0 c1) - -Debug: - rid:0 step:5 gid:9 user:rule:builtin = success - -Debug: }}} -> (0.000s) -Debug: run 6 {{{ - -Debug: - rid:0 step:6 gid:10 user:CHR:try = File "coq-builtin.elpi", line 282, column 53, characters 11370-11475: - \ (declare-evar A0 A1 A2 A3) - <=> (A0 => evar A1 A2 A3) - -Debug: - rid:1 step:0 gid:0 user:assign = A0 := [decl c1 `x0` (global (indt «nat»)), - decl c0 `x` (global (indt «nat»))] - -Debug: - rid:1 step:0 gid:0 user:assign = A1 := uvar frozen--888 [c0, c1] - -Debug: - rid:1 step:0 gid:0 user:assign = A2 := prod `y` (global (indt «nat»)) c2 \ - app - [global (indt «eq»), - global (indt «nat»), c0, - app - [global (const «Nat.add»), - app - [global (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], c2], c1]] - Debug: - rid:1 step:0 gid:0 user:assign = A3 := uvar frozen--889 [c0, c1] - -Debug: - rid:1 step:0 gid:11 user:newgoal = true - -Debug: run 1 {{{ - -Debug: - rid:1 step:1 gid:11 user:curgoal = true - true - -Debug: - rid:1 step:1 gid:11 user:rule = backchain - -Debug: - rid:1 step:1 gid:11 user:rule:backchain:candidates = File "elpi-builtin.elpi", line 11, column 0, characters 147-151: - -Debug: }}} -> (0.000s) -Debug: select 2 {{{ - -Debug: - rid:1 step:1 gid:11 user:rule:backchain:try = File "elpi-builtin.elpi", line 11, column 0, characters 147-151: - true :- . - -Debug: - rid:1 step:1 gid:11 user:rule:backchain = success - -Debug: }}} -> (0.000s) -Debug: - rid:0 step:6 gid:10 user:subgoal = 12 - -Debug: - rid:0 step:6 gid:12 user:newgoal = _ => - [decl c1 `x0` (global (indt «nat»)), - decl c0 `x` (global (indt «nat»))] => - evar (X0 c0 c1) - (prod `y` (global (indt «nat»)) c2 \ - app - [global (indt «eq»), - global (indt «nat»), c0, - app - [global (const «Nat.add»), - app - [global (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], c2], c1]]) - (X1 c0 c1) - -Debug: - rid:0 step:6 gid:10 user:CHR:rule-fired = File "coq-builtin.elpi", line 282, column 53, characters 11370-11475: - -Debug: - rid:0 step:6 gid:10 user:CHR:rule-remove-constraints = 10 - -Debug: - rid:0 step:6 gid:0 user:CHR:store:before = 10 - {c0 c1} : - declare-evar - [decl c1 `x0` - (global (indt «nat»)), - decl c0 `x` - (global (indt «nat»))] - (X0 c0 c1) - (prod `y` - (global (indt «nat»)) c2 \ - app - [global (indt «eq»), - global (indt «nat»), - c0, - app - [global - (const «Nat.add»), - app - [global - (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], - c2], c1]]) ( - X1 c0 c1) /* suspended on X0 */ - -Debug: - rid:0 step:6 gid:12 user:CHR:resumed = _ => - [decl c1 `x0` (global (indt «nat»)), - decl c0 `x` (global (indt «nat»))] - => - evar (X0 c0 c1) - (prod `y` (global (indt «nat»)) - c2 \ - app - [global (indt «eq»), - global (indt «nat»), c0, - app - [global (const «Nat.add»), - app - [global (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], c2], - c1]]) (X1 c0 c1) - -Debug: }}} -> (0.001s) -Debug: run 7 {{{ - -Debug: - rid:0 step:7 gid:12 user:curgoal = => - _ => - [decl c1 `x0` (global (indt «nat»)), - decl c0 `x` (global (indt «nat»))] => - evar (X0 c0 c1) - (prod `y` (global (indt «nat»)) c2 \ - app - [global (indt «eq»), - global (indt «nat»), c0, - app -...TRUNCATED BY DUNE... - -Debug: - rid:4 step:103 gid:0 user:assign:simplify:stack:arg = A0 := X40 - -Debug: - rid:4 step:103 gid:0 user:assign:HO = X40 := c0 \ - nabla c1 \ - nabla c2 \ - nabla c3 \ - seal - (goal - [decl c3 `w` - (global (indt «nat»)), - decl c2 `z` - (global (indt «nat»)), - decl c1 `x` - (global (indt «nat»))] - (X26 c1 c2 c3) - (app - [global (indt «eq»), - global (indt «nat»), c1, - app - [global (const «Nat.add»), - app - [global (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], c3], - c2]]) (X22 c1 c2 c3) []) - -Debug: - rid:4 step:103 gid:0 user:assign:simplify:stack:arg = A1 := X41 - -Debug: - rid:4 step:103 gid:0 user:assign:HO = X41 := c0 \ - [] - -Debug: - rid:4 step:103 gid:0 user:assign = X7 := [nabla c0 \ - nabla c1 \ - nabla c2 \ - nabla c3 \ - seal - (goal - [decl c3 `w` - (global (indt «nat»)), - decl c2 `z` - (global (indt «nat»)), - decl c1 `x` - (global (indt «nat»))] - (X26 c1 c2 c3) - (app - [global (indt «eq»), - global (indt «nat»), - c1, - app - [global - (const «Nat.add»), - app - [global - (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], - c3], c2]]) - (X22 c1 c2 c3) []) | X42] - -Debug: - rid:4 step:103 gid:157 user:subgoal = 241 - -Debug: - rid:4 step:103 gid:241 user:newgoal = pi c0 \ - occurs c0 - (nabla c1 \ - nabla c2 \ - nabla c3 \ - seal - (goal - [decl c3 `w` - (global (indt «nat»)), - decl c2 `z` - (global (indt «nat»)), - decl c1 `x` - (global (indt «nat»))] - (X26 c1 c2 c3) - (app - [global (indt «eq»), - global (indt «nat»), c1, - app - [global - (const «Nat.add»), - app - [global - (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], - c3], c2]]) - (X22 c1 c2 c3) [])) - -Debug: - rid:4 step:103 gid:241 user:subgoal = 242 - -Debug: - rid:4 step:103 gid:242 user:newgoal = ! - -Debug: - rid:4 step:103 gid:241 user:subgoal = 243 - -Debug: - rid:4 step:103 gid:243 user:newgoal = coq.ltac.private.distribute-nabla (c0 \ - []) X42 - -Debug: - rid:4 step:103 gid:241 user:rule:backchain = success - -Debug: }}} -> (0.002s) -Debug: run 104 {{{ - -Debug: - rid:4 step:104 gid:241 user:curgoal = pi - pi c0 \ - occurs c0 - (nabla c1 \ - nabla c2 \ - nabla c3 \ - seal - (goal - [decl c3 `w` - (global (indt «nat»)), - decl c2 `z` - (global (indt «nat»)), - decl c1 `x` - (global (indt «nat»))] - (X26 c1 c2 c3) - (app - [global (indt «eq»), - global (indt «nat»), c1, - app - [global - (const «Nat.add»), - app - [global - (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], - c3], c2]]) - (X22 c1 c2 c3) [])) - -Debug: - rid:4 step:104 gid:241 user:rule = pi - -Debug: - rid:4 step:104 gid:241 user:subgoal = 244 - -Debug: - rid:4 step:104 gid:244 user:newgoal = occurs c0 - (nabla c1 \ - nabla c2 \ - nabla c3 \ - seal - (goal - [decl c3 `w` - (global (indt «nat»)), - decl c2 `z` - (global (indt «nat»)), - decl c1 `x` - (global (indt «nat»))] - (X26 c1 c2 c3) - (app - [global (indt «eq»), - global (indt «nat»), c1, - app - [global (const «Nat.add»), - app - [global - (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], - c3], c2]]) - (X22 c1 c2 c3) [])) - -Debug: - rid:4 step:104 gid:244 user:rule:pi = success - -Debug: }}} -> (0.000s) -Debug: run 105 {{{ - -Debug: - rid:4 step:105 gid:244 user:curgoal = occurs - occurs c0 - (nabla c1 \ - nabla c2 \ - nabla c3 \ - seal - (goal - [decl c3 `w` - (global (indt «nat»)), - decl c2 `z` - (global (indt «nat»)), - decl c1 `x` - (global (indt «nat»))] - (X26 c1 c2 c3) - (app - [global (indt «eq»), - global (indt «nat»), c1, - app - [global (const «Nat.add»), - app - [global - (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], - c3], c2]]) - (X22 c1 c2 c3) [])) - -Debug: - rid:4 step:105 gid:244 user:rule = builtin - -Debug: - rid:4 step:105 gid:244 user:rule:builtin:name = occurs - -Debug: - rid:4 step:105 gid:244 user:rule:builtin = fail - -Debug: }}} -> (0.000s) -Debug: run 106 {{{ - -Debug: - rid:4 step:106 gid:157 user:curgoal = coq.ltac.private.distribute-nabla - coq.ltac.private.distribute-nabla (c0 \ - [nabla c1 \ - nabla c2 \ - nabla c3 \ - seal - (goal - [decl c3 `w` - (global (indt «nat»)), - decl c2 `z` - (global (indt «nat»)), - decl c1 `x` - (global (indt «nat»))] - (X26 c1 c2 c3) - (app - [global (indt «eq»), - global (indt «nat»), c1, - app - [global (const «Nat.add»), - app - [global - (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], - c3], c2]]) - (X22 c1 c2 c3) [])]) X7 - -Debug: - rid:4 step:106 gid:157 user:rule = backchain - -Debug: - rid:4 step:106 gid:157 user:rule:backchain:candidates = File "/build/reproducible-path/coq-elpi-2.5.0/elpi/elpi-ltac.elpi", line 119, column 0, characters 4642-4704: - -Debug: }}} -> (0.000s) -Debug: select 52 {{{ - -Debug: - rid:4 step:106 gid:157 user:rule:backchain:try = File "/build/reproducible-path/coq-elpi-2.5.0/elpi/elpi-ltac.elpi", line 119, column 0, characters 4642-4704: - (coq.ltac.private.distribute-nabla - (c0 \ [A2 | (A0 c0)]) - [A2 | A1]) :- (coq.ltac.private.distribute-nabla - A0 A1). - -Debug: - rid:4 step:106 gid:0 user:assign = A2 := nabla c0 \ - nabla c1 \ - nabla c2 \ - seal - (goal - [decl c2 `w` - (global (indt «nat»)), - decl c1 `z` - (global (indt «nat»)), - decl c0 `x` - (global (indt «nat»))] - (X26 c0 c1 c2) - (app - [global (indt «eq»), - global (indt «nat»), c0, - app - [global - (const «Nat.add»), - app - [global - (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], - c2], c1]]) - (X22 c0 c1 c2) []) - -Debug: - rid:4 step:106 gid:0 user:assign:simplify:stack:arg = A0 := X43 - -Debug: - rid:4 step:106 gid:0 user:assign:HO = X43 := c0 \ - [] - -Debug: - rid:4 step:106 gid:0 user:assign = X7 := [nabla c0 \ - nabla c1 \ - nabla c2 \ - seal - (goal - [decl c2 `w` - (global (indt «nat»)), - decl c1 `z` - (global (indt «nat»)), - decl c0 `x` - (global (indt «nat»))] - (X26 c0 c1 c2) - (app - [global (indt «eq»), - global (indt «nat»), - c0, - app - [global - (const «Nat.add»), - app - [global - (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], - c2], c1]]) - (X22 c0 c1 c2) []) | X44] - -Debug: - rid:4 step:106 gid:157 user:subgoal = 245 - -Debug: - rid:4 step:106 gid:245 user:newgoal = coq.ltac.private.distribute-nabla (c0 \ - []) X44 - -Debug: - rid:4 step:106 gid:245 user:rule:backchain = success - -Debug: }}} -> (0.001s) -Debug: run 107 {{{ - -Debug: - rid:4 step:107 gid:245 user:curgoal = coq.ltac.private.distribute-nabla - coq.ltac.private.distribute-nabla (c0 \ - []) X44 - -Debug: - rid:4 step:107 gid:245 user:rule = backchain - -Debug: - rid:4 step:107 gid:245 user:rule:backchain:candidates = File "/build/reproducible-path/coq-elpi-2.5.0/elpi/elpi-ltac.elpi", line 116, column 0, characters 4512-4539: - File "/build/reproducible-path/coq-elpi-2.5.0/elpi/elpi-ltac.elpi", line 117, column 0, characters 4541-4640: - File "/build/reproducible-path/coq-elpi-2.5.0/elpi/elpi-ltac.elpi", line 119, column 0, characters 4642-4704: - -Debug: }}} -> (0.000s) -Debug: select 53 {{{ - -Debug: - rid:4 step:107 gid:245 user:rule:backchain:try = File "/build/reproducible-path/coq-elpi-2.5.0/elpi/elpi-ltac.elpi", line 116, column 0, characters 4512-4539: - (coq.ltac.private.distribute-nabla - (c0 \ []) []) :- . - -Debug: - rid:4 step:107 gid:0 user:assign = X44 := [] - -Debug: - rid:4 step:107 gid:245 user:rule:backchain = success - -Debug: }}} -> (0.000s) -Debug: run 108 {{{ - -Debug: - rid:4 step:108 gid:154 user:curgoal = coq.ltac.all - coq.ltac.all (coq.ltac.open solve) [] - X8 - -Debug: - rid:4 step:108 gid:154 user:rule = backchain - -Debug: - rid:4 step:108 gid:154 user:rule:backchain:candidates = File "/build/reproducible-path/coq-elpi-2.5.0/elpi/elpi-ltac.elpi", line 62, column 0, characters 2339-2350: - -Debug: }}} -> (0.001s) -Debug: select 54 {{{ - -Debug: - rid:4 step:108 gid:154 user:rule:backchain:try = File "/build/reproducible-path/coq-elpi-2.5.0/elpi/elpi-ltac.elpi", line 62, column 0, characters 2339-2350: - (coq.ltac.all _ [] []) :- . - -Debug: - rid:4 step:108 gid:0 user:assign = X8 := [] - -Debug: - rid:4 step:108 gid:154 user:rule:backchain = success - -Debug: }}} -> (0.000s) -Debug: run 109 {{{ - -Debug: - rid:4 step:109 gid:155 user:curgoal = std.append - std.append - [nabla c0 \ - nabla c1 \ - nabla c2 \ - seal - (goal - [decl c2 `w` - (global (indt «nat»)), - decl c1 `z` - (global (indt «nat»)), - decl c0 `x` - (global (indt «nat»))] - (X26 c0 c1 c2) - (app - [global (indt «eq»), - global (indt «nat»), c0, - app - [global (const «Nat.add»), - app - [global - (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], - c2], c1]]) - (X22 c0 c1 c2) [])] [] (X2) - -Debug: - rid:4 step:109 gid:155 user:rule = backchain - -Debug: - rid:4 step:109 gid:155 user:rule:backchain:candidates = File "builtin_stdlib.elpi", line 86, column 0, characters 2798-2838: - -Debug: }}} -> (0.000s) -Debug: select 55 {{{ - -Debug: - rid:4 step:109 gid:155 user:rule:backchain:try = File "builtin_stdlib.elpi", line 86, column 0, characters 2798-2838: - (std.append [A3 | A0] A1 - [A3 | A2]) :- (std.append - A0 A1 A2). - -Debug: - rid:4 step:109 gid:0 user:assign = A3 := nabla c0 \ - nabla c1 \ - nabla c2 \ - seal - (goal - [decl c2 `w` - (global (indt «nat»)), - decl c1 `z` - (global (indt «nat»)), - decl c0 `x` - (global (indt «nat»))] - (X26 c0 c1 c2) - (app - [global (indt «eq»), - global (indt «nat»), c0, - app - [global - (const «Nat.add»), - app - [global - (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], - c2], c1]]) - (X22 c0 c1 c2) []) - -Debug: - rid:4 step:109 gid:0 user:assign = A0 := [] - -Debug: - rid:4 step:109 gid:0 user:assign = A1 := [] - -Debug: - rid:4 step:109 gid:0 user:assign:resume = 230 - -Debug: - rid:4 step:109 gid:0 user:assign:resume = 230 - -Debug: - rid:4 step:109 gid:0 user:assign:HO = X2 := [nabla c0 \ - nabla c1 \ - nabla c2 \ - seal - (goal - [decl c2 `w` - (global (indt «nat»)), - decl c1 `z` - (global (indt «nat»)), - decl c0 `x` - (global (indt «nat»))] - (X45 c0 c1 c2) - (app - [global (indt «eq»), - global (indt «nat»), - c0, - app - [global - (const «Nat.add»), - app - [global - (const «Nat.add»), - app - [global - (indc «S»), - global - (indc «O»)], - c2], c1]]) - (X46 c0 c1 c2) []) | X47] - -Debug: - rid:4 step:109 gid:155 user:subgoal = 246 - -Debug: - rid:4 step:109 gid:246 user:newgoal = std.append [] [] X47 - -Debug: - rid:4 step:109 gid:246 user:rule:backchain = success - -Debug: }}} -> (0.000s) -Debug: run 110 {{{ - -Debug: - rid:4 step:110 gid:0 user:rule = resume - -Debug: - rid:4 step:110 gid:230 user:rule:resume:resumed = evar (X45 c2 c3 c4) - (app - [global (indt «eq»), - global (indt «nat»), - c2, - app - [global - (const «Nat.add»), - app - [global - (const «Nat.add»), - app - [global - (indc «S»), - global - (indc «O»)], - c4], c3]]) - (X46 c2 c3 c4) - -Debug: - rid:4 step:110 gid:0 user:rule:resume = success - -Debug: }}} -> (0.000s) -Debug: run 111 {{{ - -Debug: - rid:4 step:111 gid:230 user:curgoal = evar - evar (X45 c2 c3 c4) - (app - [global (indt «eq»), - global (indt «nat»), c2, - app - [global (const «Nat.add»), - app - [global (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], c4], c3]]) - (X46 c2 c3 c4) - -Debug: - rid:4 step:111 gid:230 user:rule = backchain - -Debug: - rid:4 step:111 gid:230 user:rule:backchain:candidates = File "coq-builtin.elpi", line 301, column 0, characters 12083-12186: - File "/build/reproducible-path/coq-elpi-2.5.0/elpi/coq-elaborator.elpi", line 7, column 0, characters 296-388: - File "/build/reproducible-path/coq-elpi-2.5.0/elpi/coq-elaborator.elpi", line 11, column 0, characters 391-621: - File "/build/reproducible-path/coq-elpi-2.5.0/elpi/coq-elaborator.elpi", line 16, column 0, characters 624-744: - File "coq-builtin.elpi", line 304, column 0, characters 12189-12227: - -Debug: }}} -> (0.000s) -Debug: select 56 {{{ - -Debug: - rid:4 step:111 gid:230 user:rule:backchain:try = File "coq-builtin.elpi", line 301, column 0, characters 12083-12186: - (evar (as uvar A3) A2 A0) :- ( - var A0 _ A1), (!), - (prune A2 A1), - (prune A3 A1), - (declare_constraint - (evar A3 A2 A0) [ - A3, A0]). - -Debug: - rid:4 step:111 gid:0 user:assign = A3 := X45 c2 c3 c4 - -Debug: - rid:4 step:111 gid:0 user:assign = A2 := app - [global (indt «eq»), - global (indt «nat»), c2, - app - [global (const «Nat.add»), - app - [global (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], c4], - c3]] - -Debug: - rid:4 step:111 gid:0 user:assign = A0 := X46 c2 c3 c4 - -Debug: - rid:4 step:111 gid:230 user:subgoal = 247 - -Debug: - rid:4 step:111 gid:247 user:newgoal = var (X46 c2 c3 c4) _ X48^5 - -Debug: - rid:4 step:111 gid:247 user:subgoal = 248 - -Debug: - rid:4 step:111 gid:248 user:newgoal = ! - -Debug: - rid:4 step:111 gid:247 user:subgoal = 249 - -Debug: - rid:4 step:111 gid:249 user:newgoal = prune - (app - [global (indt «eq»), - global (indt «nat»), c2, - app - [global (const «Nat.add»), - app - [global (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], c4], c3]]) - X48^5 - -Debug: - rid:4 step:111 gid:247 user:subgoal = 250 - -Debug: - rid:4 step:111 gid:250 user:newgoal = prune (X45 c2 c3 c4) X48^5 - -Debug: - rid:4 step:111 gid:247 user:subgoal = 251 - -Debug: - rid:4 step:111 gid:251 user:newgoal = declare_constraint - (evar (X45 c2 c3 c4) - (app - [global (indt «eq»), - global (indt «nat»), c2, - app - [global (const «Nat.add»), - app - [global (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], c4], - c3]]) (X46 c2 c3 c4)) - [X45 c2 c3 c4, X46 c2 c3 c4] - -Debug: - rid:4 step:111 gid:247 user:rule:backchain = success - -Debug: }}} -> (0.001s) -Debug: run 112 {{{ - -Debug: - rid:4 step:112 gid:247 user:curgoal = var - var (X46 c2 c3 c4) _ X48^5 - -Debug: - rid:4 step:112 gid:247 user:rule = builtin - -Debug: - rid:4 step:112 gid:247 user:rule:builtin:name = var - -Debug: - rid:4 step:112 gid:247 user:rule:builtin = success - -Debug: - rid:4 step:112 gid:247 user:subgoal = 252 - -Debug: - rid:4 step:112 gid:252 user:newgoal = X48^5 = [c2, c3, c4] - -Debug: }}} -> (0.000s) -Debug: run 113 {{{ - -Debug: - rid:4 step:113 gid:252 user:curgoal = = - X48^5 = [c2, c3, c4] - -Debug: - rid:4 step:113 gid:252 user:rule = eq - -Debug: - rid:4 step:113 gid:252 user:rule:builtin:name = = - -Debug: - rid:4 step:113 gid:0 user:assign = X48^5 := [c2, c3, c4] - -Debug: - rid:4 step:113 gid:252 user:rule:eq = success - -Debug: }}} -> (0.000s) -Debug: run 114 {{{ - -Debug: - rid:4 step:114 gid:248 user:curgoal = ! - ! - -Debug: }}} -> (0.000s) -Debug: - rid:4 step:114 gid:248 user:rule = cut - -Debug: - rid:4 step:114 gid:0 user:rule:cut:branch = 230 - File "/build/reproducible-path/coq-elpi-2.5.0/elpi/coq-elaborator.elpi", line 7, column 0, characters 296-388: - (evar A1 A2 A0) :- (var A0), - (!), (of A1 A2 A0). - -Debug: - rid:4 step:114 gid:0 user:rule:cut:branch = 230 - File "/build/reproducible-path/coq-elpi-2.5.0/elpi/coq-elaborator.elpi", line 11, column 0, characters 391-621: - (evar A2 A1 A0) :- (not (var A0)), - (same_term A1 (sort prop)), - (coq.version _ 8 17 _), (!), - (hack-8-17.propagate-Prop-constraint-inward - A0), - (coq.typecheck A0 A1 ok), - (A2 = A0). - -Debug: - rid:4 step:114 gid:0 user:rule:cut:branch = 230 - File "/build/reproducible-path/coq-elpi-2.5.0/elpi/coq-elaborator.elpi", line 16, column 0, characters 624-744: - (evar A2 A1 A0) :- (not (var A0)), - (!), (coq.typecheck A0 A1 ok), - (A2 = A0). - -Debug: - rid:4 step:114 gid:0 user:rule:cut:branch = 230 - File "coq-builtin.elpi", line 304, column 0, characters 12189-12227: - (evar _ _ _) :- . - -Debug: - rid:4 step:114 gid:248 user:rule:cut = success - -Debug: run 115 {{{ - -Debug: - rid:4 step:115 gid:249 user:curgoal = prune - prune - (app - [global (indt «eq»), - global (indt «nat»), c2, - app - [global (const «Nat.add»), - app - [global (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], c4], c3]]) - [c2, c3, c4] - -Debug: - rid:4 step:115 gid:249 user:rule = builtin - -Debug: - rid:4 step:115 gid:249 user:rule:builtin:name = prune - -Debug: - rid:4 step:115 gid:249 user:rule:builtin = success - -Debug: - rid:4 step:115 gid:249 user:subgoal = 253 - -Debug: - rid:4 step:115 gid:253 user:newgoal = app - [global (indt «eq»), - global (indt «nat»), c2, - app - [global (const «Nat.add»), - app - [global (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], c4], c3]] - = X49 c2 c3 c4 - -Debug: }}} -> (0.000s) -Debug: run 116 {{{ - -Debug: - rid:4 step:116 gid:253 user:curgoal = = - app - [global (indt «eq»), - global (indt «nat»), c2, - app - [global (const «Nat.add»), - app - [global (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], c4], c3]] - = X49 c2 c3 c4 - -Debug: - rid:4 step:116 gid:253 user:rule = eq - -Debug: - rid:4 step:116 gid:253 user:rule:builtin:name = = - -Debug: - rid:4 step:116 gid:0 user:assign:HO = X49 := c0 \ - c1 \ - c2 \ - app - [global (indt «eq»), - global (indt «nat»), c0, - app - [global (const «Nat.add»), - app - [global (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], c2], c1]] - -Debug: - rid:4 step:116 gid:253 user:rule:eq = success - -Debug: }}} -> (0.000s) -Debug: run 117 {{{ - -Debug: - rid:4 step:117 gid:250 user:curgoal = prune - prune (X45 c2 c3 c4) [c2, c3, c4] - -Debug: - rid:4 step:117 gid:250 user:rule = builtin - -Debug: - rid:4 step:117 gid:250 user:rule:builtin:name = prune - -Debug: - rid:4 step:117 gid:250 user:rule:builtin = success - -Debug: - rid:4 step:117 gid:250 user:subgoal = 254 - -Debug: - rid:4 step:117 gid:254 user:newgoal = X45 c2 c3 c4 = X50 c2 c3 c4 - -Debug: }}} -> (0.000s) -Debug: run 118 {{{ - -Debug: - rid:4 step:118 gid:254 user:curgoal = = - X45 c2 c3 c4 = X50 c2 c3 c4 - -Debug: - rid:4 step:118 gid:254 user:rule = eq - -Debug: - rid:4 step:118 gid:254 user:rule:builtin:name = = - -Debug: - rid:4 step:118 gid:0 user:assign:HO = X45 := c0 \ - c1 \ - c2 \ - X50 c0 c1 c2 - -Debug: - rid:4 step:118 gid:254 user:rule:eq = success - -Debug: }}} -> (0.000s) -Debug: run 119 {{{ - -Debug: - rid:4 step:119 gid:251 user:curgoal = declare_constraint - declare_constraint - (evar (X50 c2 c3 c4) - (app - [global (indt «eq»), - global (indt «nat»), c2, - app - [global (const «Nat.add»), - app - [global (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], c4], - c3]]) (X46 c2 c3 c4)) - [X50 c2 c3 c4, X46 c2 c3 c4] - -Debug: - rid:4 step:119 gid:251 user:rule = builtin - -Debug: - rid:4 step:119 gid:251 user:rule:builtin:name = declare_constraint - -Debug: - rid:4 step:119 gid:251 user:subgoal = 255 - -Debug: - rid:4 step:119 gid:255 user:newgoal = evar (X50 c2 c3 c4) - (app - [global (indt «eq»), - global (indt «nat»), c2, - app - [global (const «Nat.add»), - app - [global (const «Nat.add»), - app - [global (indc «S»), - global (indc «O»)], c4], c3]]) - (X46 c2 c3 c4) - -Debug: - rid:4 step:119 gid:251 user:rule:builtin = success - -Debug: }}} -> (0.000s) -Debug: run 120 {{{ - -Debug: - rid:4 step:120 gid:246 user:curgoal = std.append - std.append [] [] X47 - -Debug: - rid:4 step:120 gid:246 user:rule = backchain - -Debug: - rid:4 step:120 gid:246 user:rule:backchain:candidates = File "builtin_stdlib.elpi", line 87, column 0, characters 2841-2854: - -Debug: }}} -> (0.000s) -Debug: select 57 {{{ - -Debug: - rid:4 step:120 gid:246 user:rule:backchain:try = File "builtin_stdlib.elpi", line 87, column 0, characters 2841-2854: - (std.append [] A0 A0) :- . - -Debug: - rid:4 step:120 gid:0 user:assign = A0 := [] - +Calling typeclass resolution with flags: depth = ∞,unique = false,fail = true +Debug: 1: looking for (C ?i) with backtracking +Debug: 1.1: exact i2 on (C ?i), 0 subgoal(s) +Debug: 2: looking for (E 2) without backtracking +Debug: 2: no match for (E 2), 0 possibilities +Debug: 1.2: exact i1 on (C ?i), 0 subgoal(s) +Debug: 2: looking for (E 1) without backtracking +Debug: 2.1: exact e1 on (E 1), 0 subgoal(s) Debug: - rid:4 step:120 gid:0 user:assign = X47 := [] - +Calling typeclass resolution with flags: depth = ∞,unique = false,fail = true +Debug: 1: looking for (C ?i) with backtracking +Debug: 1.1: exact i2 on (C ?i), 0 subgoal(s) Debug: - rid:4 step:120 gid:246 user:rule:backchain = success - -Debug: }}} -> (0.000s) -w - : nat -File "./tests/test_tactic.v", line 5, characters 28-32: +Calling typeclass resolution with flags: depth = ∞,unique = false,fail = true +Debug: 1: looking for (E 2) without backtracking +Debug: 1: no match for (E 2), 0 possibilities +Debug: 1: looking for (C ?i) with backtracking +Debug: 1.1: exact i2 on (C ?i), 0 subgoal(s) +Debug: 2: looking for (E 2) without backtracking +Debug: 2: no match for (E 2), 0 possibilities +Debug: 1.2: exact i1 on (C ?i), 0 subgoal(s) +Debug: 2: looking for (E 1) without backtracking +Debug: 2.1: exact e1 on (E 1), 0 subgoal(s) +[seal (goal [] (X0) (app [global (indt «C»), X1]) (X2) []), + seal (goal [] (X3) (app [global (indt «E»), X1]) (X4) [])] +Goal is C ?i +Solution for C 2 is i2 +Goal is E 2 +Solution for C 1 is i1 +Goal is E 1 +Solution for E 1 is e1 +File "./apps/tc/tests/test_tc_declare.v", line 8, characters 2-36: Warning: -File "./tests/test_tactic.v", line 5, characters 28-32 -Type is linear: name it _Type (discard) or Type_ (fresh variable) -[elpi.linear-variable,elpi.typecheck,elpi,default] -Module -d3 - : d3_Locked -:= Struct Definition body : nat. Parameter unlock : d3 = 3. End -Module Type - d3_Locked = - Sig Parameter body : nat. Parameter unlock : body = 3. End -cons2 : forall {A : Type}, A -> list A -> list A - -cons2 is not universe polymorphic -Arguments cons2 {A}%type_scope x xs%list_scope -cons2 is transparent -Expands to: Constant -elpi.apps.locker.tests.test_locker.Bug_286.lock_container.cons2 -cons3 : forall [A : Type], EqDecision A -> A -> list A -> list A - -cons3 is not universe polymorphic -Arguments cons3 [A]%type_scope {H} x xs%list_scope -cons3 is transparent -Expands to: Constant -elpi.apps.locker.tests.test_locker.Bug_286.lock_container2.cons3 -id1@{u} : forall T : Type@{u}, T -> T -(* u |= u < locked_with.u0 *) - -id1 is universe polymorphic -Arguments id1 T%type_scope x -id1 is transparent -Expands to: Constant elpi.apps.locker.tests.test_locker.id1 -Query assignments: - GR = const «id1» -id2.body@{u} : forall T : Type@{u}, T -> T -(* u |= u < eq.u0 *) - -id2.body is universe polymorphic -Arguments id2.body T%type_scope x -Expands to: Constant elpi.apps.locker.tests.test_locker.id2.body -Query assignments: - GR = const «id2.body» -up1.body@{u} : forall T : Type@{u}, T -> T -(* u |= u < eq.u0 *) - -up1.body is universe polymorphic -Arguments up1.body T%type_scope x -Expands to: Constant elpi.apps.locker.tests.test_locker.up1.body -Query assignments: - GR = const «up1.body» -nup1.body : forall T : Type@{nup1.body.u0}, T -> T - -nup1.body is not universe polymorphic -Arguments nup1.body T%type_scope x -Expands to: Constant elpi.apps.locker.tests.test_locker.nup1.body -Query assignments: - GR = const «nup1.body» -up2.body@{u u0} : -forall T : Type@{u}, Type@{u0} -> T -> T -(* u u0 |= u < eq.u0 - u0 < eq.u0 *) - -up2.body is universe polymorphic -Arguments up2.body (T W)%type_scope x -Expands to: Constant elpi.apps.locker.tests.test_locker.up2.body -Query assignments: - GR = const «up2.body» -Debug: -elpi lets escape exception: Universe - elpi.apps.locker.tests.test_locker.161 (File "./apps/locker/tests/test_locker.v", line 113, characters 50-54) - is unbound. -Raised at UState.error_unbound_universes in file "engine/uState.ml", line 832, characters 41-74 -Called from UState.universe_context_inst in file "engine/uState.ml", line 845, characters 9-58 -Called from UState.check_poly_univ_decl in file "engine/uState.ml", line 901, characters 13-63 -Called from UState.check_univ_decl in file "engine/uState.ml", line 917, characters 35-67 -Called from Elpi_plugin__Rocq_elpi_builtins.add_axiom_or_variable in file "src/rocq_elpi_builtins.ml", line 913, characters 14-82 -Called from Elpi_plugin__Rocq_elpi_builtins.coq_rest_builtins.(fun) in file "src/rocq_elpi_builtins.ml", line 2068, characters 20-86 -Called from Elpi_plugin__Rocq_elpi_builtins.grab_global_env.(fun) in file "src/rocq_elpi_builtins.ml", line 141, characters 33-44 -Called from Elpi_runtime__Runtime_trace_off.FFI.wrap_type_err in file "src/runtime/runtime_trace_off.ml", line 2125, characters 6-9 -Called from Elpi_runtime__Runtime_trace_off.FFI.call.aux in file "src/runtime/runtime_trace_off.ml", line 2207, characters 32-92 -Called from Elpi_runtime__Runtime_trace_off.FFI.call in file "src/runtime/runtime_trace_off.ml", line 2299, characters 21-70 -Called from Elpi_runtime__Runtime_trace_off.Constraints.exect_builtin_predicate in file "src/runtime/runtime_trace_off.ml", line 3565, characters 20-83 -Called from Elpi_runtime__Runtime_trace_off.Mainloop.make_runtime.run in file "src/runtime/runtime_trace_off.ml", line 3983, characters 19-90 -Called from Elpi_util__Util.Fork.fork.ensure_runtime in file "src/utils/util.ml", line 523, characters 16-19 -Re-raised at Elpi_util__Util.Fork.fork.ensure_runtime in file "src/utils/util.ml", line 532, characters 7-14 -Called from Elpi_runtime__Runtime_trace_off.mk_outcome in file "src/runtime/runtime_trace_off.ml", line 4265, characters 14-23 -Called from Elpi_runtime__Runtime_trace_off.execute_once in file "src/runtime/runtime_trace_off.ml", line 4282, characters 20-242 -Re-raised at Elpi_runtime__Runtime_trace_off.execute_once in file "src/runtime/runtime_trace_off.ml", line 4287, characters 2-9 -Called from Elpi__API.Execute.once in file "src/API.ml", line 235, characters 40-91 -Called from Elpi_plugin__Rocq_elpi_vernacular.Compiler.run in file "src/rocq_elpi_vernacular.ml", line 145, characters 13-55 -Re-raised at Exninfo.iraise in file "clib/exninfo.ml", line 81, characters 4-38 -Called from Elpi_plugin__Rocq_elpi_vernacular.Compiler.run_and_print in file "src/rocq_elpi_vernacular.ml", line 166, characters 8-38 -Called from Elpi_plugin__Rocq_elpi_vernacular.Interp.run_program.(fun) in file "src/rocq_elpi_vernacular.ml", line 557, characters 34-90 - -global (indc «O») -app - [global (indc «S»), - app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] -program -[p] -test1 -str hello -str x -test1 -too many arguments -[attribute elpi.loc - (leaf-loc - File "./tests/test_vernacular2.v", line 10, column 24, characters 326-329:), - attribute elpi.phase (leaf-str interp), - attribute fwd_compat_attr (leaf-str )] -[attribute elpi.loc - (leaf-loc - File "./tests/test_vernacular2.v", line 11, column 0, characters 331-354:), - attribute elpi.phase (leaf-str interp), - attribute fwd_compat_attr (leaf-str )] -File "./tests/test_vernacular2.v", line 6, characters 2-17: -Warning: This command does not support this attribute: fwd_compat_attr. -[unsupported-attributes,parsing,default] -File "./tests/test_vernacular2.v", line 7, characters 2-17: -Warning: This command does not support this attribute: fwd_compat_attr. -[unsupported-attributes,parsing,default] -File "./tests/test_vernacular2.v", line 8, characters 2-17: -Warning: This command does not support this attribute: fwd_compat_attr. -[unsupported-attributes,parsing,default] -File "./tests/test_vernacular2.v", line 9, characters 2-17: -Warning: This command does not support this attribute: fwd_compat_attr. -[unsupported-attributes,parsing,default] -File "./tests/test_vernacular2.v", line 10, characters 2-17: -Warning: This command does not support this attribute: fwd_compat_attr. -[unsupported-attributes,parsing,default] -Query assignments: - X1 = «x1» - X2 = «x2» - X3 = «x3» -Query assignments: - M = [[mode-ground], [mode-input]] -1 -1 -1.000000 -1.2 -Query assignments: - C1 = «Nat.add» - C2 = «times» - X1 = tt - X2 = ff -Query assignments: - C1 = «x» -Query assignments: - XX = «elpi.tests.test_API2.xx» -Query assignments: - C1 = «x» - M = «elpi.tests.test_API2.xx» -Query assignments: - XX = «elpi.tests.test_API2.xx2» -Query assignments: - C1 = «x» - M = «elpi.tests.test_API2.xx2» -Query assignments: - C1 = «x» - M = «elpi.tests.test_API2.xx3» -Query assignments: - X1_ = X0 - X2_ = X1 -Syntactic constraints: - evar (X1) (X2) (X1) /* suspended on X1 */ - evar X3 (sort (typ «elpi.tests.test_API2.6»)) (X2) /* suspended on X3, X2 */ - evar (X0) (X4) (X0) /* suspended on X0 */ - evar X5 (sort (typ «elpi.tests.test_API2.5»)) (X4) /* suspended on X5, X4 */ -Universe constraints: -UNIVERSES: - {elpi.tests.test_API2.6 elpi.tests.test_API2.5} |= -ALGEBRAIC UNIVERSES: - {} -FLEXIBLE UNIVERSES: - -SORTS: - α4 - α5 -WEAK CONSTRAINTS: - - -Non-discriminated database -Unfoldable variable definitions: all -Unfoldable constant definitions: all -Unfoldable projection definitions: all -Cut: emp -For any goal -> -For xeq -> exact xxx(level 0, pattern 0 = _, id 0) - -Query assignments: - X3_ = «elpi.tests.test_API2.7» -Universe constraints: -UNIVERSES: - -ALGEBRAIC UNIVERSES: - {elpi.tests.test_API2.7} -FLEXIBLE UNIVERSES: - elpi.tests.test_API2.7 -SORTS: - -WEAK CONSTRAINTS: - - -Query assignments: - %arg1 = «elpi.tests.test_API2.T» -Query assignments: - GR = const const EXN PRINTING: Not_found -Query assignments: - %arg1 = «elpi.tests.test_API2.F» - %arg2 = «elpi.tests.test_API2.X» -«elpi.tests.test_API2.G» -Query assignments: - G = «elpi.tests.test_API2.G» -Module G : Sig Definition id : X.T -> X.T. End := (F X) -Query assignments: - %arg1 = «elpi.tests.test_API2.F» - %arg2 = «elpi.tests.test_API2.X» -«elpi.tests.test_API2.H» -Query assignments: - H = «elpi.tests.test_API2.H» -Module H : Sig Definition id : nat -> nat. End := (F X) -Query assignments: - %arg1 = «elpi.tests.test_API2.T» -Query assignments: - GR = const const EXN PRINTING: Not_found -Module Type FT = Funsig (P:T) Sig Parameter idT : P.T -> P.T. End -Query assignments: - %arg1 = «elpi.tests.test_API2.FT» - %arg2 = «elpi.tests.test_API2.X» -«elpi.tests.test_API2.GT» -Query assignments: - G = «elpi.tests.test_API2.GT» -Module Type GT = Sig Parameter idT : X.T -> X.T. End -Query assignments: - %arg1 = «elpi.tests.test_API2.FT» - %arg2 = «elpi.tests.test_API2.X» -«elpi.tests.test_API2.HT» -Query assignments: - H = «elpi.tests.test_API2.HT» -Module Type HT = Sig Parameter idT : nat -> nat. End -Query assignments: - L = [«elpi.tests.test_API2.8», «elpi.tests.test_API2.9»] - S = {{ elpi.tests.test_API2.8; elpi.tests.test_API2.9; }} - U = «elpi.tests.test_API2.8» - UV = «elpi.tests.test_API2.8» - V = «elpi.tests.test_API2.9» - VV = «elpi.tests.test_API2.9» -Universe constraints: -UNIVERSES: - {elpi.tests.test_API2.9 elpi.tests.test_API2.8} |= -ALGEBRAIC UNIVERSES: - {elpi.tests.test_API2.9 elpi.tests.test_API2.8} -FLEXIBLE UNIVERSES: - elpi.tests.test_API2.9 - elpi.tests.test_API2.8 -SORTS: - -WEAK CONSTRAINTS: - - -Query assignments: - X10_ = c0 \ -X0 c0 - X11_ = X1 - X12_ = c0 \ -X0 c0 - X13_ = X2 - X14_ = c0 \ -X3 c0 - X15_ = c0 \ c1 \ -X4 c0 c1 - X16_ = X5 - X17_ = c0 \ -X6 c0 - X18_ = c0 \ c1 \ -X7 c0 c1 - X19_ = X8 - X20_ = c0 \ -X9 c0 - X21_ = c0 \ c1 \ -X10 c0 c1 - X22_ = X8 - X4_ = X11 - X5_ = X11 - X6_ = X12 - X7_ = X13 - X8_ = c0 \ -X14 c0 - X9_ = X1 -Syntactic constraints: - evar X8 (sort (typ «elpi.tests.test_API2.25»)) X8 /* suspended on X8 */ - evar X8 (sort (typ «elpi.tests.test_API2.28»)) X8 /* suspended on X8 */ - {c0 c1} : decl c1 `x` (X9 c0), decl c0 `z` X8 - ?- evar (X10 c0 c1) (sort (typ «elpi.tests.test_API2.27»)) (X10 c0 c1) /* suspended on X10 */ - {c0} : decl c0 `z` X8 - ?- evar (X9 c0) (sort (typ «elpi.tests.test_API2.26»)) (X9 c0) /* suspended on X9 */ - {c0 c1} : decl c1 `x` (X6 c0), decl c0 `z` X5 - ?- evar (X7 c0 c1) (sort (typ «elpi.tests.test_API2.24»)) (X7 c0 c1) /* suspended on X7 */ - {c0} : decl c0 `z` X5 - ?- evar (X6 c0) (sort (typ «elpi.tests.test_API2.23»)) (X6 c0) /* suspended on X6 */ - evar (X5) (sort (typ «elpi.tests.test_API2.22»)) (X5) /* suspended on X5 */ - {c0 c1} : decl c1 `x` (X3 c0), decl c0 `z` X2 - ?- evar (X4 c0 c1) (sort (typ «elpi.tests.test_API2.21»)) (X4 c0 c1) /* suspended on X4 */ - {c0} : decl c0 `z` X2 - ?- evar (X3 c0) (sort (typ «elpi.tests.test_API2.20»)) (X3 c0) /* suspended on X3 */ - evar (X2) (sort (typ «elpi.tests.test_API2.19»)) (X2) /* suspended on X2 */ - evar X1 (sort (typ «elpi.tests.test_API2.15»)) X1 /* suspended on X1 */ - evar X1 (sort (typ «elpi.tests.test_API2.17»)) X1 /* suspended on X1 */ - {c0} : decl c0 `x` X1 - ?- evar (X0 c0) (sort (typ «elpi.tests.test_API2.16»)) (X0 c0) /* suspended on X0 */ - {c0} : decl c0 `x` X1 - ?- evar (X0 c0) (sort (typ «elpi.tests.test_API2.18»)) (X0 c0) /* suspended on X0 */ - {c0} : decl c0 `x` X13 - ?- evar (X14 c0) (sort (typ «elpi.tests.test_API2.14»)) (X14 c0) /* suspended on X14 */ - evar (X13) (sort (typ «elpi.tests.test_API2.13»)) (X13) /* suspended on X13 */ - evar (X12) (sort (typ «elpi.tests.test_API2.12»)) (X12) /* suspended on X12 */ - evar X11 (sort (typ «elpi.tests.test_API2.10»)) X11 /* suspended on X11 */ - evar X11 (sort (typ «elpi.tests.test_API2.11»)) X11 /* suspended on X11 */ -Universe constraints: -UNIVERSES: - {elpi.tests.test_API2.28 elpi.tests.test_API2.27 elpi.tests.test_API2.26 - elpi.tests.test_API2.25 elpi.tests.test_API2.24 elpi.tests.test_API2.23 - elpi.tests.test_API2.22 elpi.tests.test_API2.21 elpi.tests.test_API2.20 - elpi.tests.test_API2.19 elpi.tests.test_API2.18 elpi.tests.test_API2.17 - elpi.tests.test_API2.16 elpi.tests.test_API2.15 elpi.tests.test_API2.14 - elpi.tests.test_API2.13 elpi.tests.test_API2.12 elpi.tests.test_API2.11 - elpi.tests.test_API2.10} |= -ALGEBRAIC UNIVERSES: - {} -FLEXIBLE UNIVERSES: - -SORTS: - α6 - α7 - α8 - α9 - α10 - α11 - α12 - α13 - α14 - α15 - α16 - α17 - α18 - α19 - α20 - α21 - α22 - α23 - α24 -WEAK CONSTRAINTS: - - -File "./tests/test_API2.v", line 127, characters 0-16: -Warning: Option Foo Bar is deprecated. elpi -[deprecated-option,deprecated,default] -File "./tests/test_API2.v", line 135, characters 0-14: -Warning: Option Foo Bar is deprecated. elpi -[deprecated-option,deprecated,default] -File "./tests/test_API2.v", line 216, characters 23-24: +This command does not fully mirror the watned behavior if the class has methods +with implicit arguments (those implicits will be neglected) +[[TC] Warning,TC.Declare,elpi,default] +File "./apps/tc/tests/test_tc_declare.v", line 20, characters 2-53: Warning: -File "./tests/test_API2.v", line 216, characters 23-24 -M is linear: name it _M (discard) or M_ (fresh variable) -[elpi.linear-variable,elpi.typecheck,elpi,default] -File "./tests/test_API2.v", line 224, characters 31-32: +This command does not fully mirror the watned behavior if the class has methods +with implicit arguments (those implicits will be neglected) +[[TC] Warning,TC.Declare,elpi,default] +File "./apps/tc/tests/test_tc_declare.v", line 50, characters 2-47: Warning: -File "./tests/test_API2.v", line 224, characters 31-32 -T is linear: name it _T (discard) or T_ (fresh variable) -[elpi.linear-variable,elpi.typecheck,elpi,default] -File "./tests/test_API2.v", line 372, characters 0-228: +This command does not fully mirror the watned behavior if the class has methods +with implicit arguments (those implicits will be neglected) +[[TC] Warning,TC.Declare,elpi,default] +File "./apps/tc/tests/test_tc_declare.v", line 63, characters 2-51: Warning: -Undeclared globals: -- File "./tests/test_API2.v", line 373, column 2, characters 8777-8787: test. -Please add the following text to your program: -type test term -> term -> prop. -[elpi.missing-types,elpi.typecheck,elpi,default] -Inductive listR_inv (A : Type) (PA : A -> Type) (idx0 : list A) : Type := - nilR_inv : idx0 = nil -> listR_inv A PA idx0 - | consR_inv : forall a : A, - PA a -> - forall xs : list A, - listR_inv A PA xs -> - idx0 = (a :: xs)%list -> listR_inv A PA idx0. - -Arguments listR_inv A%type_scope PA%function_scope idx0%list_scope -Arguments nilR_inv A%type_scope PA%function_scope idx0%list_scope _ -Arguments consR_inv A%type_scope PA%function_scope - idx0%list_scope a _ xs%list_scope _ _ -(fun x : tele => tele_fmap) +This command does not fully mirror the watned behavior if the class has methods +with implicit arguments (those implicits will be neglected) +[[TC] Warning,TC.Declare,elpi,default] In tc-A In tc-A In tc-B @@ -18183,218 +18451,6 @@ WEAK CONSTRAINTS: -nth_R = -fun (T1 T2 : Type) (T_R : T1 -> T2 -> Type) (x01 : T1) - (x02 : T2) (x0_R : T_R x01 x02) => -let rec1 := - fix rec (n : nat) (l : list T1) {struct n} : T1 := - match l with - | nil => x01 - | (x :: xs)%list => match n with - | 0 => x - | S m => rec m xs - end - end in -let rec2 := - fix rec (n : nat) (l : list T2) {struct n} : T2 := - match l with - | nil => x02 - | (x :: xs)%list => match n with - | 0 => x - | S m => rec m xs - end - end in -fix rec_R (n1 n2 : nat) (n_R : nat_R n1 n2) {struct n_R} : - forall (l1 : list T1) (l2 : list T2), - list_R T1 T2 T_R l1 l2 -> T_R (rec1 n1 l1) (rec2 n2 l2) := - match - n_R in (nat_R s1 s2) - return - (forall (l1 : list T1) (l2 : list T2), - list_R T1 T2 T_R l1 l2 -> T_R (rec1 s1 l1) (rec2 s2 l2)) - with - | O_R => - let K := O_R in - (fun (n3 n4 : nat) (n_R0 : nat_R n3 n4) (l1 : list T1) - (l2 : list T2) (l_R : list_R T1 T2 T_R l1 l2) => - match - l_R in (list_R _ _ _ l3 l4) - return - (T_R - match l3 with - | nil => x01 - | (x :: xs)%list => - match n3 with - | 0 => x - | S m => rec1 m xs - end - end - match l4 with - | nil => x02 - | (x :: xs)%list => - match n4 with - | 0 => x - | S m => rec2 m xs - end - end) - with - | nil_R _ _ _ => x0_R - | cons_R _ _ _ x1 x2 x_R xs1 xs2 xs_R => - match - n_R0 in (nat_R n5 n6) - return - (T_R match n5 with - | 0 => x1 - | S m => rec1 m xs1 - end match n6 with - | 0 => x2 - | S m => rec2 m xs2 - end) - with - | O_R => x_R - | S_R m1 m2 m_R => rec_R m1 m2 m_R xs1 xs2 xs_R - end - end) 0 0 K - | S_R _1 _2 __R => - let K := S_R _1 _2 __R in - (fun (n3 n4 : nat) (n_R0 : nat_R n3 n4) (l1 : list T1) - (l2 : list T2) (l_R : list_R T1 T2 T_R l1 l2) => - match - l_R in (list_R _ _ _ l3 l4) - return - (T_R - match l3 with - | nil => x01 - | (x :: xs)%list => - match n3 with - | 0 => x - | S m => rec1 m xs - end - end - match l4 with - | nil => x02 - | (x :: xs)%list => - match n4 with - | 0 => x - | S m => rec2 m xs - end - end) - with - | nil_R _ _ _ => x0_R - | cons_R _ _ _ x1 x2 x_R xs1 xs2 xs_R => - match - n_R0 in (nat_R n5 n6) - return - (T_R match n5 with - | 0 => x1 - | S m => rec1 m xs1 - end match n6 with - | 0 => x2 - | S m => rec2 m xs2 - end) - with - | O_R => x_R - | S_R m1 m2 m_R => rec_R m1 m2 m_R xs1 xs2 xs_R - end - end) (S _1) (S _2) K - end - : forall (T1 T2 : Type) (T_R : T1 -> T2 -> Type) (x01 : T1) (x02 : T2), - T_R x01 x02 -> - forall n1 n2 : nat, - nat_R n1 n2 -> - forall (l1 : list T1) (l2 : list T2), - list_R T1 T2 T_R l1 l2 -> T_R (nth T1 x01 n1 l1) (nth T2 x02 n2 l2) - -Arguments nth_R (T1 T2)%type_scope T_R%function_scope - x01 x02 x0_R (n1 n2)%nat_scope n_R (l1 l2)%list_scope - l_R -pred_R = -fun (n1 n2 : nat) (n_R : nat_R n1 n2) => -match - n_R in (nat_R n3 n4) - return - (nat_R match n3 with - | 0 => n1 - | S u => u - end match n4 with - | 0 => n2 - | S u => u - end) -with -| O_R => n_R -| S_R _ _ u_R => u_R -end - : forall n1 n2 : nat, nat_R n1 n2 -> nat_R (Nat.pred n1) (Nat.pred n2) - -Arguments pred_R (n1 n2)%nat_scope n_R -File "./apps/derive/tests/test_param2.v", line 85, characters 0-30: -Warning: Not a truly recursive fixpoint. [non-recursive,fixpoints,default] -Debug: -Calling typeclass resolution with flags: depth = ∞,unique = false,fail = true -Debug: 1: looking for (C ?i) with backtracking -Debug: 1.1: exact i2 on (C ?i), 0 subgoal(s) -Debug: 2: looking for (E 2) without backtracking -Debug: 2: no match for (E 2), 0 possibilities -Debug: 1.2: exact i1 on (C ?i), 0 subgoal(s) -Debug: 2: looking for (E 1) without backtracking -Debug: 2.1: exact e1 on (E 1), 0 subgoal(s) -Debug: -Calling typeclass resolution with flags: depth = ∞,unique = false,fail = true -Debug: 1: looking for (C ?i) with backtracking -Debug: 1.1: exact i2 on (C ?i), 0 subgoal(s) -Debug: -Calling typeclass resolution with flags: depth = ∞,unique = false,fail = true -Debug: 1: looking for (E 2) without backtracking -Debug: 1: no match for (E 2), 0 possibilities -Debug: 1: looking for (C ?i) with backtracking -Debug: 1.1: exact i2 on (C ?i), 0 subgoal(s) -Debug: 2: looking for (E 2) without backtracking -Debug: 2: no match for (E 2), 0 possibilities -Debug: 1.2: exact i1 on (C ?i), 0 subgoal(s) -Debug: 2: looking for (E 1) without backtracking -Debug: 2.1: exact e1 on (E 1), 0 subgoal(s) -[seal (goal [] (X0) (app [global (indt «C»), X1]) (X2) []), - seal (goal [] (X3) (app [global (indt «E»), X1]) (X4) [])] -Goal is C ?i -Solution for C 2 is i2 -Goal is E 2 -Solution for C 1 is i1 -Goal is E 1 -Solution for E 1 is e1 -Normalizing app [global (indt «nat2»), global (const «Nat.succ»)] -Normalizing app [global (indt «nat2»), global (indc «S»)] -Normalizing app [global (indt «nat2»), global (const «Nat.succ»)] -All the remaining goals are on the shelf. - -1 goal - -goal 1 is: - C -1 goal - - ============================ - C -All the remaining goals are on the shelf. - -1 goal - -goal 1 is: - C -1 goal - - ============================ - C -[TC] For indt «C» : - elpi predicate : tc-C - search mode is : tc.deterministic - modes are : [o, o] -Query assignments: - Len = 2 - Rules = [tc.instance [] (const «Bool.Decidable_eq_bool») - (indt «DecidableClass.Decidable») [], - tc.instance [] (const «DecidableClass.Decidable_not») - (indt «DecidableClass.Decidable») []] -ok ((fun (A : Type) (f : Type -> Type) (H : forall x : Type, Y (f x)) => ex_intro (fun g : Type -> Type => Ex g A /\ g nat = g bool) f (conj (Inst2 A f H) ?Goal)) @@ -18418,26 +18474,18 @@ ============================ (fun H0 : Type => f ?e0@{T:=H0}) nat = (fun H0 : Type => f ?e0@{T:=H0}) bool -File "./apps/tc/tests/test_tc_declare.v", line 8, characters 2-36: -Warning: -This command does not fully mirror the watned behavior if the class has methods -with implicit arguments (those implicits will be neglected) -[[TC] Warning,TC.Declare,elpi,default] -File "./apps/tc/tests/test_tc_declare.v", line 20, characters 2-53: -Warning: -This command does not fully mirror the watned behavior if the class has methods -with implicit arguments (those implicits will be neglected) -[[TC] Warning,TC.Declare,elpi,default] -File "./apps/tc/tests/test_tc_declare.v", line 50, characters 2-47: -Warning: -This command does not fully mirror the watned behavior if the class has methods -with implicit arguments (those implicits will be neglected) -[[TC] Warning,TC.Declare,elpi,default] -File "./apps/tc/tests/test_tc_declare.v", line 63, characters 2-51: -Warning: -This command does not fully mirror the watned behavior if the class has methods -with implicit arguments (those implicits will be neglected) -[[TC] Warning,TC.Declare,elpi,default] +Now click "Start watching" in the Elpi Trace Browser panel and then execute +the Command/Tactic/Query you want to trace. Also try "F1 Elpi". +(fun H : C Q => + ex_intro (fun T : Type -> Type => forall R : Type -> Type, C R -> C T) Q + (fun (R : Type -> Type) (_ : C R) => let H1 : C Q := H in H1)) +Now click "Start watching" in the Elpi Trace Browser panel and then execute +the Command/Tactic/Query you want to trace. Also try "F1 Elpi". +Query assignments: + S = app + [global (const «IsAnimal»), global (indc «Fly»), global (const «dove»)] +Query assignments: + S = X0 Instances list for indt «Eqb» is: const «eqBool» with locality [] const «eqProd» with locality [] @@ -18469,24 +18517,126 @@ Instances list for indt «DecidableClass.Decidable» is: const «Decidable_eq_bool» with locality [] const «DecidableClass.Decidable_not» with locality [] -Now click "Start watching" in the Elpi Trace Browser panel and then execute -the Command/Tactic/Query you want to trace. Also try "F1 Elpi". -(fun H : C Q => - ex_intro (fun T : Type -> Type => forall R : Type -> Type, C R -> C T) Q - (fun (R : Type -> Type) (_ : C R) => let H1 : C Q := H in H1)) -Now click "Start watching" in the Elpi Trace Browser panel and then execute -the Command/Tactic/Query you want to trace. Also try "F1 Elpi". -Query assignments: - S = app - [global (const «IsAnimal»), global (indc «Fly»), global (const «dove»)] -Query assignments: - S = X0 File "./apps/eltac/tests-stdlib/test_injection.v", line 15, characters 0-15: Warning: Using Vector.t is known to be technically difficult, see . [warn-library-file-stdlib-vector,stdlib-vector,warn-library-file,user-warn,default] Received the following event [str new_instance, str I4, str A, str Export, int -1] +(fun (T : Type) (p : nat -> T -> T -> Prop) (x : T) => partial_app T (p 0) x) +eq_refl +: +ex1 = +(fun (T : Type) (p : nat -> T -> T -> Prop) (x : T) => partial_app T (p 0) x) + : ex1 = + (fun (T : Type) (p : nat -> T -> T -> Prop) (x : T) => + partial_app T (p 0) x) +eq_refl +: +ex2 = +(fun (T : Type) (p : nat -> T -> T -> Prop) (y : T) => partial_app T (p 0) y) + : ex2 = + (fun (T : Type) (p : nat -> T -> T -> Prop) (y : T) => + partial_app T (p 0) y) +(ex_intro + (fun R : Type -> Type => C (fun _ : Type => R nat) /\ R bool = f nat) f + (conj I ?Goal)) +eq_refl : ex1 = fun_1 nat (fun _ : nat => nat) + : ex1 = fun_1 nat (fun _ : nat => nat) +eq_refl : ex2 = fun_1 nat (fun a : nat => a = a + 1) + : ex2 = fun_1 nat (fun a : nat => a = a + 1) +Debug: +Calling typeclass resolution with flags: depth = ∞,unique = false,fail = true +Debug: +Calling typeclass resolution with flags: depth = ∞,unique = false,fail = true +Debug: +Calling typeclass resolution with flags: depth = ∞,unique = false,fail = true +Debug: +Calling typeclass resolution with flags: depth = ∞,unique = false,fail = true +Debug: 1: looking for (Decision (Exists (?P z y) l)) with backtracking +Debug: 1.1: simple apply Exists_dec on +(Decision (Exists (?P z y) l)), 1 subgoal(s) +Debug: 1.1-1 : (forall x : A, Decision (?P z y x)) +Debug: +1.1-1: looking for (forall x : A, Decision (?P z y x)) with backtracking +Debug: 1.1-1.1: simple apply H on +(forall x : A, Decision (?P z y x)), 0 subgoal(s) +Debug: +Calling typeclass resolution with flags: depth = ∞,unique = false,fail = true +Debug: [tactic-unification] Starting unification: Prop ~= Type +Debug: [tactic-unification] Leaving unification with success +Debug: [tactic-unification] Starting unification: ?T ~= D +Debug: [tactic-unification] ?T ~= D +Debug: [tactic-unification] Leaving unification with success +Debug: +Calling typeclass resolution with flags: depth = ∞,unique = false,fail = true +Debug: 1: looking for D without backtracking +Debug: [tactic-unification] Starting unification: D ~= D +Debug: [tactic-unification] Leaving unification with success +Debug: 1.1: simple eapply I on D, 1 subgoal(s) +Debug: 1.1-1 : (C1 ?T (fun x : Type => ?H x)) +Debug: 1.1-1: looking for (C1 ?T (fun x : Type => ?H x)) with backtracking +Debug: +[tactic-unification] + Starting unification: + C1 T H + ~= + C1 ?T (fun x : Type => ?H x) +Debug: [tactic-unification] C1 T H ~= C1 ?T (fun x : Type => ?H x) +Debug: [tactic-unification] C1 ~= C1 +Debug: [tactic-unification] T ~= ?T +Debug: [tactic-unification] H ~= fun x : Type => ?H x +Debug: [tactic-unification] Leaving unification with failure +Debug: 1.1-1: no match for (C1 ?T (fun x : Type => ?H x)), 1 possibilities +Debug: [tactic-unification] Starting unification: Prop ~= Type +Debug: [tactic-unification] Leaving unification with success +Debug: [tactic-unification] Starting unification: ?T ~= D +Debug: [tactic-unification] ?T ~= D +Debug: [tactic-unification] Leaving unification with success +Debug: +Calling typeclass resolution with flags: depth = ∞,unique = false,fail = true +Debug: [tactic-unification] Starting unification: Prop ~= Type +Debug: [tactic-unification] Leaving unification with success +Debug: [tactic-unification] Starting unification: ?T ~= D +Debug: [tactic-unification] ?T ~= D +Debug: [tactic-unification] Leaving unification with success +Debug: [tactic-unification] Starting unification: D ~= D +Debug: [tactic-unification] Leaving unification with success +Debug: +[tactic-unification] + Starting unification: + C2 T (fun x : Type => H x) + ~= + C2 ?T ?H +Debug: [tactic-unification] C2 T (fun x : Type => H x) ~= C2 ?T ?H +Debug: [tactic-unification] C2 ~= C2 +Debug: [tactic-unification] T ~= ?T +Debug: [tactic-unification] fun x : Type => H x ~= ?H +Debug: [tactic-unification] Leaving unification with success +Debug: [tactic-unification] Starting unification: Prop ~= Type +Debug: [tactic-unification] Leaving unification with success +Debug: +[tactic-unification] + Starting unification: + ?T + ~= + forall (T : Type -> Type) (H : forall x : Type, T x), + C2 T (fun x : Type => H x) -> D +Debug: +[tactic-unification] + ?T + ~= + forall (T : Type -> Type) (H : forall x : Type, T x), + C2 T (fun x : Type => H x) -> D +Debug: [tactic-unification] Leaving unification with success +Debug: +[tactic-unification] + Starting unification: + forall (T : Type -> Type) (H : forall x : Type, T x), C2 T H -> D + ~= + forall (T : Type -> Type) (H : forall x : Type, T x), + C2 T (fun x : Type => H x) -> D +Debug: [tactic-unification] Leaving unification with success Query assignments: EqP = const «eqU» File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: @@ -19133,128 +19283,14 @@ There is an hint extern in the typeclass db: (*external*) (reflexive_proxy_tac A R) [elpi.TC.hints,elpi,default] -(fun (T : Type) (p : nat -> T -> T -> Prop) (x : T) => partial_app T (p 0) x) -eq_refl -: -ex1 = -(fun (T : Type) (p : nat -> T -> T -> Prop) (x : T) => partial_app T (p 0) x) - : ex1 = - (fun (T : Type) (p : nat -> T -> T -> Prop) (x : T) => - partial_app T (p 0) x) -eq_refl -: -ex2 = -(fun (T : Type) (p : nat -> T -> T -> Prop) (y : T) => partial_app T (p 0) y) - : ex2 = - (fun (T : Type) (p : nat -> T -> T -> Prop) (y : T) => - partial_app T (p 0) y) -(ex_intro - (fun R : Type -> Type => C (fun _ : Type => R nat) /\ R bool = f nat) f - (conj I ?Goal)) -eq_refl : ex1 = fun_1 nat (fun _ : nat => nat) - : ex1 = fun_1 nat (fun _ : nat => nat) -eq_refl : ex2 = fun_1 nat (fun a : nat => a = a + 1) - : ex2 = fun_1 nat (fun a : nat => a = a + 1) -Debug: -Calling typeclass resolution with flags: depth = ∞,unique = false,fail = true -Debug: -Calling typeclass resolution with flags: depth = ∞,unique = false,fail = true -Debug: -Calling typeclass resolution with flags: depth = ∞,unique = false,fail = true -Debug: -Calling typeclass resolution with flags: depth = ∞,unique = false,fail = true -Debug: 1: looking for (Decision (Exists (?P z y) l)) with backtracking -Debug: 1.1: simple apply Exists_dec on -(Decision (Exists (?P z y) l)), 1 subgoal(s) -Debug: 1.1-1 : (forall x : A, Decision (?P z y x)) -Debug: -1.1-1: looking for (forall x : A, Decision (?P z y x)) with backtracking -Debug: 1.1-1.1: simple apply H on -(forall x : A, Decision (?P z y x)), 0 subgoal(s) -Debug: -Calling typeclass resolution with flags: depth = ∞,unique = false,fail = true -Debug: [tactic-unification] Starting unification: Prop ~= Type -Debug: [tactic-unification] Leaving unification with success -Debug: [tactic-unification] Starting unification: ?T ~= D -Debug: [tactic-unification] ?T ~= D -Debug: [tactic-unification] Leaving unification with success -Debug: -Calling typeclass resolution with flags: depth = ∞,unique = false,fail = true -Debug: 1: looking for D without backtracking -Debug: [tactic-unification] Starting unification: D ~= D -Debug: [tactic-unification] Leaving unification with success -Debug: 1.1: simple eapply I on D, 1 subgoal(s) -Debug: 1.1-1 : (C1 ?T (fun x : Type => ?H x)) -Debug: 1.1-1: looking for (C1 ?T (fun x : Type => ?H x)) with backtracking -Debug: -[tactic-unification] - Starting unification: - C1 T H - ~= - C1 ?T (fun x : Type => ?H x) -Debug: [tactic-unification] C1 T H ~= C1 ?T (fun x : Type => ?H x) -Debug: [tactic-unification] C1 ~= C1 -Debug: [tactic-unification] T ~= ?T -Debug: [tactic-unification] H ~= fun x : Type => ?H x -Debug: [tactic-unification] Leaving unification with failure -Debug: 1.1-1: no match for (C1 ?T (fun x : Type => ?H x)), 1 possibilities -Debug: [tactic-unification] Starting unification: Prop ~= Type -Debug: [tactic-unification] Leaving unification with success -Debug: [tactic-unification] Starting unification: ?T ~= D -Debug: [tactic-unification] ?T ~= D -Debug: [tactic-unification] Leaving unification with success -Debug: -Calling typeclass resolution with flags: depth = ∞,unique = false,fail = true -Debug: [tactic-unification] Starting unification: Prop ~= Type -Debug: [tactic-unification] Leaving unification with success -Debug: [tactic-unification] Starting unification: ?T ~= D -Debug: [tactic-unification] ?T ~= D -Debug: [tactic-unification] Leaving unification with success -Debug: [tactic-unification] Starting unification: D ~= D -Debug: [tactic-unification] Leaving unification with success -Debug: -[tactic-unification] - Starting unification: - C2 T (fun x : Type => H x) - ~= - C2 ?T ?H -Debug: [tactic-unification] C2 T (fun x : Type => H x) ~= C2 ?T ?H -Debug: [tactic-unification] C2 ~= C2 -Debug: [tactic-unification] T ~= ?T -Debug: [tactic-unification] fun x : Type => H x ~= ?H -Debug: [tactic-unification] Leaving unification with success -Debug: [tactic-unification] Starting unification: Prop ~= Type -Debug: [tactic-unification] Leaving unification with success -Debug: -[tactic-unification] - Starting unification: - ?T - ~= - forall (T : Type -> Type) (H : forall x : Type, T x), - C2 T (fun x : Type => H x) -> D -Debug: -[tactic-unification] - ?T - ~= - forall (T : Type -> Type) (H : forall x : Type, T x), - C2 T (fun x : Type => H x) -> D -Debug: [tactic-unification] Leaving unification with success -Debug: -[tactic-unification] - Starting unification: - forall (T : Type -> Type) (H : forall x : Type, T x), C2 T H -> D - ~= - forall (T : Type -> Type) (H : forall x : Type, T x), - C2 T (fun x : Type => H x) -> D -Debug: [tactic-unification] Leaving unification with success Debug: [elpitime] Elpi: get_and_compile 0.0001 -Debug: [TC] - Time of instance search is 0.000061 -Debug: [TC] - Time of refine.typecheck is 0.000148 +Debug: [TC] - Time of instance search is 0.000086 +Debug: [TC] - Time of refine.typecheck is 0.000205 Debug: [elpitime] - Elpi: query-compilation:0.0001 static-check:0.0000 optimization:0.0001 runtime:0.0014 (with success) + Elpi: query-compilation:0.0001 static-check:0.0000 optimization:0.0001 runtime:0.0019 (with success) -Finished transaction in 0.03 secs (0.001u,0.s) (successful) +Finished transaction in 0.002 secs (0.002u,0.s) (successful) Query assignments: T = c0 \ prod `c` X0 c1 \ @@ -19273,7 +19309,7 @@ X3_ = X2 X4_ = X3 X5_ = X4 -Finished transaction in 0.029 secs (0.028u,0.s) (successful) +Finished transaction in 0.037 secs (0.033u,0.003s) (successful) Query assignments: A = c0 \ c0 @@ -19560,6 +19596,32 @@ File "./apps/tc/tests/test.v", line 558, characters 51-56 Y is linear: name it _Y (discard) or Y_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] +Inductive elpi.apps.derive.tests.test_param1.Coverage.is_unit +Inductive elpi.apps.derive.tests.test_param1.OtherTests.is_unit + (shorter name to refer to it in current context is OtherTests.is_unit) +Inductive peano : Set := Zero : peano | Succ : peano -> peano. + +Arguments peano.Succ p + = if pos_eq_dec (BinNums.xO BinNums.xH) BinNums.xH then true else false + : bool +peano.eqb_OK : forall x1 x2 : peano, reflect (x1 = x2) (peano.eqb x1 x2) + +peano.eqb_OK is not universe polymorphic +Arguments peano.eqb_OK x1 x2 +peano.eqb_OK is opaque +Expands to: Constant elpi.apps.derive.examples.readme.peano.eqb_OK +Derivation param1 on const «Nat.add» +Derivation param1 on const «Nat.add» took 0.002956 +Derivation param2 on const «Nat.add» +Derivation param2 on const «Nat.add» took 0.004253 +Derivation eqb-alias on const «Nat.add» +Derivation eqb-alias on const «Nat.add» failed, continuing +Derivation eqbcorrect-alias on const «Nat.add» +Derivation eqbcorrect-alias on const «Nat.add» failed, continuing +Derivation eqbOK-alias on const «Nat.add» +Derivation eqbOK-alias on const «Nat.add» failed, continuing +is_add + : forall n : nat, is_nat n -> forall m : nat, is_nat m -> is_nat (n + m) File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19: Warning: There is an hint extern in the typeclass db: @@ -19972,29 +20034,6 @@ There is an hint extern in the typeclass db: (*external*) proper_reflexive [elpi.TC.hints,elpi,default] -Inductive peano : Set := Zero : peano | Succ : peano -> peano. - -Arguments peano.Succ p - = if pos_eq_dec (BinNums.xO BinNums.xH) BinNums.xH then true else false - : bool -peano.eqb_OK : forall x1 x2 : peano, reflect (x1 = x2) (peano.eqb x1 x2) - -peano.eqb_OK is not universe polymorphic -Arguments peano.eqb_OK x1 x2 -peano.eqb_OK is opaque -Expands to: Constant elpi.apps.derive.examples.readme.peano.eqb_OK -Derivation param1 on const «Nat.add» -Derivation param1 on const «Nat.add» took 0.002517 -Derivation param2 on const «Nat.add» -Derivation param2 on const «Nat.add» took 0.002894 -Derivation eqb-alias on const «Nat.add» -Derivation eqb-alias on const «Nat.add» failed, continuing -Derivation eqbcorrect-alias on const «Nat.add» -Derivation eqbcorrect-alias on const «Nat.add» failed, continuing -Derivation eqbOK-alias on const «Nat.add» -Derivation eqbOK-alias on const «Nat.add» failed, continuing -is_add - : forall n : nat, is_nat n -> forall m : nat, is_nat m -> is_nat (n + m) more : forall A : Type, A -> tickle A -> tickle A : forall A : Type, A -> tickle A -> tickle A tickle.eqb @@ -20026,37 +20065,37 @@ (arity (prod `l` (app [global (indt «tickle.tickle»), c1]) c2 \ c1))] Deriving Derivation map on indt «rtree» -Derivation map on indt «rtree» took 0.001432 +Derivation map on indt «rtree» took 0.001806 Derivation lens on indt «rtree» Derivation lens on indt «rtree» failed, continuing Derivation param1 on indt «rtree» -Derivation param1 on indt «rtree» took 0.004269 +Derivation param1 on indt «rtree» took 0.005301 Derivation param2 on indt «rtree» -Derivation param2 on indt «rtree» took 0.005234 +Derivation param2 on indt «rtree» took 0.006775 Derivation tag on indt «rtree» -Derivation tag on indt «rtree» took 0.000793 +Derivation tag on indt «rtree» took 0.000976 Derivation eqType_ast on indt «rtree» -Derivation eqType_ast on indt «rtree» took 0.000324 +Derivation eqType_ast on indt «rtree» took 0.000376 Derivation lens_laws on indt «rtree» -Derivation lens_laws on indt «rtree» took 0.000040 +Derivation lens_laws on indt «rtree» took 0.000054 Derivation param1_congr on indt «rtree» -Derivation param1_congr on indt «rtree» took 0.001538 +Derivation param1_congr on indt «rtree» took 0.001858 Derivation param1_inhab on indt «rtree» -Derivation param1_inhab on indt «rtree» took 0.001400 +Derivation param1_inhab on indt «rtree» took 0.001719 Derivation param1_functor on indt «rtree» -Derivation param1_functor on indt «rtree» took 0.001505 +Derivation param1_functor on indt «rtree» took 0.002016 Derivation fields on indt «rtree» -Derivation fields on indt «rtree» took 0.005071 +Derivation fields on indt «rtree» took 0.006699 Derivation param1_trivial on indt «rtree» -Derivation param1_trivial on indt «rtree» took 0.091299 +Derivation param1_trivial on indt «rtree» took 0.102413 Derivation induction on indt «rtree» -Derivation induction on indt «rtree» took 0.001638 +Derivation induction on indt «rtree» took 0.001996 Derivation eqb on indt «rtree» -Derivation eqb on indt «rtree» took 0.004963 +Derivation eqb on indt «rtree» took 0.006202 Derivation eqbcorrect on indt «rtree» -Derivation eqbcorrect on indt «rtree» took 0.017346 +Derivation eqbcorrect on indt «rtree» took 0.022347 Derivation eqbOK on indt «rtree» -Derivation eqbOK on indt «rtree» took 0.000992 +Derivation eqbOK on indt «rtree» took 0.001127 Done rtree.induction : @@ -20080,15 +20119,15 @@ Deriving Skipping derivation map on indt «Box» since the user did not select it Derivation lens on indt «Box» -Derivation lens on indt «Box» took 0.002600 +Derivation lens on indt «Box» took 0.002974 Skipping derivation param1 on indt «Box» since the user did not select it Skipping derivation param2 on indt «Box» since the user did not select it Derivation tag on indt «Box» -Derivation tag on indt «Box» took 0.000808 +Derivation tag on indt «Box» took 0.000944 Derivation eqType_ast on indt «Box» -Derivation eqType_ast on indt «Box» took 0.000218 +Derivation eqType_ast on indt «Box» took 0.000262 Derivation lens_laws on indt «Box» -Derivation lens_laws on indt «Box» took 0.008633 +Derivation lens_laws on indt «Box» took 0.010880 Skipping derivation param1_congr on indt «Box» since the user did not select it Skipping derivation param1_inhab on indt «Box» @@ -20096,13 +20135,13 @@ Skipping derivation param1_functor on indt «Box» since the user did not select it Derivation fields on indt «Box» -Derivation fields on indt «Box» took 0.003383 +Derivation fields on indt «Box» took 0.004341 Skipping derivation param1_trivial on indt «Box» since the user did not select it Skipping derivation induction on indt «Box» since the user did not select it Derivation eqb on indt «Box» -Derivation eqb on indt «Box» took 0.002098 +Derivation eqb on indt «Box» took 0.002662 Skipping derivation eqbcorrect on indt «Box» since the user did not select it Skipping derivation eqbOK on indt «Box» since the user did not select it @@ -20128,65 +20167,65 @@ nat_eqb_OK : forall x y : nat, reflect (x = y) (nat_eqb x y) : forall x y : nat, reflect (x = y) (nat_eqb x y) Derivation map on indt «a» -Derivation map on indt «a» took 0.000633 +Derivation map on indt «a» took 0.000666 Derivation lens on indt «a» Derivation lens on indt «a» failed, continuing Derivation param1 on indt «a» -Derivation param1 on indt «a» took 0.001546 +Derivation param1 on indt «a» took 0.001900 Derivation param2 on indt «a» -Derivation param2 on indt «a» took 0.001784 +Derivation param2 on indt «a» took 0.002338 Derivation tag on indt «a» -Derivation tag on indt «a» took 0.000489 +Derivation tag on indt «a» took 0.000595 Derivation eqType_ast on indt «a» -Derivation eqType_ast on indt «a» took 0.000123 +Derivation eqType_ast on indt «a» took 0.000156 Derivation lens_laws on indt «a» -Derivation lens_laws on indt «a» took 0.000037 +Derivation lens_laws on indt «a» took 0.000082 Derivation param1_congr on indt «a» -Derivation param1_congr on indt «a» took 0.000202 +Derivation param1_congr on indt «a» took 0.000252 Derivation param1_inhab on indt «a» -Derivation param1_inhab on indt «a» took 0.000485 +Derivation param1_inhab on indt «a» took 0.000602 Derivation param1_functor on indt «a» -Derivation param1_functor on indt «a» took 0.000470 +Derivation param1_functor on indt «a» took 0.000588 Derivation fields on indt «a» -Derivation fields on indt «a» took 0.001879 +Derivation fields on indt «a» took 0.002329 Derivation param1_trivial on indt «a» -Derivation param1_trivial on indt «a» took 0.000771 +Derivation param1_trivial on indt «a» took 0.000970 Derivation induction on indt «a» -Derivation induction on indt «a» took 0.000592 +Derivation induction on indt «a» took 0.000782 Derivation eqb on indt «a» -Derivation eqb on indt «a» took 0.000952 +Derivation eqb on indt «a» took 0.001224 Derivation eqbcorrect on indt «a» -Derivation eqbcorrect on indt «a» took 0.002188 +Derivation eqbcorrect on indt «a» took 0.002761 Derivation eqbOK on indt «a» -Derivation eqbOK on indt «a» took 0.000395 +Derivation eqbOK on indt «a» took 0.000490 Skipping derivation map on indt «b» since the user did not select it Skipping derivation lens on indt «b» since the user did not select it Derivation param1 on indt «b» -Derivation param1 on indt «b» took 0.001855 +Derivation param1 on indt «b» took 0.002245 Skipping derivation param2 on indt «b» since the user did not select it Derivation tag on indt «b» -Derivation tag on indt «b» took 0.000517 +Derivation tag on indt «b» took 0.000637 Derivation eqType_ast on indt «b» -Derivation eqType_ast on indt «b» took 0.000181 +Derivation eqType_ast on indt «b» took 0.000226 Skipping derivation lens_laws on indt «b» since the user did not select it Skipping derivation param1_congr on indt «b» since the user did not select it Derivation param1_inhab on indt «b» -Derivation param1_inhab on indt «b» took 0.000593 +Derivation param1_inhab on indt «b» took 0.000703 Derivation param1_functor on indt «b» -Derivation param1_functor on indt «b» took 0.000527 +Derivation param1_functor on indt «b» took 0.000702 Derivation fields on indt «b» -Derivation fields on indt «b» took 0.002284 +Derivation fields on indt «b» took 0.002834 Skipping derivation param1_trivial on indt «b» since the user did not select it Derivation induction on indt «b» -Derivation induction on indt «b» took 0.000739 +Derivation induction on indt «b» took 0.000920 Derivation eqb on indt «b» -Derivation eqb on indt «b» took 0.001341 +Derivation eqb on indt «b» took 0.001856 Derivation eqbcorrect on indt «b» -Derivation eqbcorrect on indt «b» took 0.002986 +Derivation eqbcorrect on indt «b» took 0.003759 Derivation eqbOK on indt «b» -Derivation eqbOK on indt «b» took 0.000404 +Derivation eqbOK on indt «b» took 0.000505 a_eqb : a -> a -> bool b_eqb @@ -20386,12 +20425,6 @@ : bool Peano.eqb_OK : forall x1 x2 : Peano.peano, reflect (x1 = x2) (Peano.eqb x1 x2) -Inductive elpi.apps.derive.tests.test_param1.Coverage.is_unit -Inductive elpi.apps.derive.tests.test_param1.OtherTests.is_unit - (shorter name to refer to it in current context is OtherTests.is_unit) -Finished transaction in 0.741 secs (0.694u,0.047s) (successful) -Finished transaction in 12.923 secs (12.759u,0.159s) (successful) -Finished transaction in 0.184 secs (0.184u,0.s) (successful) derive.param1_trivial: wrong shape is_nest . It does not look like a unary parametricity translation of an inductive with no indexes. derive.param1_trivial: wrong shape is_vect A PA @@ -20405,13 +20438,13 @@ Skipping derivation tag on indt «nat» since it has been already run Skipping derivation eqType_ast on indt «nat» since it has been already run Derivation projK on indt «nat» -Derivation projK on indt «nat» took 0.001202 +Derivation projK on indt «nat» took 0.001253 Derivation isK on indt «nat» -Derivation isK on indt «nat» took 0.001356 +Derivation isK on indt «nat» took 0.001309 Derivation eq on indt «nat» -Derivation eq on indt «nat» took 0.001202 +Derivation eq on indt «nat» took 0.001288 Derivation invert on indt «nat» -Derivation invert on indt «nat» took 0.001133 +Derivation invert on indt «nat» took 0.001275 Skipping derivation lens_laws on indt «nat» since it has been already run Skipping derivation param1_congr on indt «nat» since it has been already run @@ -20421,7 +20454,7 @@ since it has been already run Skipping derivation fields on indt «nat» since it has been already run Derivation bcongr on indt «nat» -Derivation bcongr on indt «nat» took 0.002131 +Derivation bcongr on indt «nat» took 0.002194 Derivation idx2inv on indt «nat» Derivation idx2inv on indt «nat» failed, continuing Skipping derivation param1_trivial on indt «nat» @@ -20429,13 +20462,13 @@ Skipping derivation induction on indt «nat» since it has been already run Skipping derivation eqb on indt «nat» since it has been already run Derivation eqK on indt «nat» -Derivation eqK on indt «nat» took 0.045667 +Derivation eqK on indt «nat» took 0.036316 Skipping derivation eqbcorrect on indt «nat» since it has been already run Derivation eqcorrect on indt «nat» -Derivation eqcorrect on indt «nat» took 0.000808 +Derivation eqcorrect on indt «nat» took 0.000738 Skipping derivation eqbOK on indt «nat» since it has been already run Derivation eqOK on indt «nat» -Derivation eqOK on indt «nat» took 0.000426 +Derivation eqOK on indt «nat» took 0.000405 Skipping derivation map on indt «nat» since the user did not select it Skipping derivation lens on indt «nat» since the user did not select it Skipping derivation param1 on indt «nat» since it has been already run @@ -20480,12 +20513,12 @@ Skipping derivation map on indt «foo» since the user did not select it Skipping derivation lens on indt «foo» since the user did not select it Derivation param1 on indt «foo» -Derivation param1 on indt «foo» took 0.003070 +Derivation param1 on indt «foo» took 0.003272 Skipping derivation param2 on indt «foo» since the user did not select it Derivation tag on indt «foo» -Derivation tag on indt «foo» took 0.000797 +Derivation tag on indt «foo» took 0.000837 Derivation eqType_ast on indt «foo» -Derivation eqType_ast on indt «foo» took 0.000273 +Derivation eqType_ast on indt «foo» took 0.000275 Skipping derivation projK on indt «foo» since the user did not select it Skipping derivation isK on indt «foo» since the user did not select it Skipping derivation eq on indt «foo» since the user did not select it @@ -20495,26 +20528,26 @@ Skipping derivation param1_congr on indt «foo» since the user did not select it Derivation param1_inhab on indt «foo» -Derivation param1_inhab on indt «foo» took 0.000839 +Derivation param1_inhab on indt «foo» took 0.000891 Derivation param1_functor on indt «foo» -Derivation param1_functor on indt «foo» took 0.000680 +Derivation param1_functor on indt «foo» took 0.000783 Derivation fields on indt «foo» -Derivation fields on indt «foo» took 0.003367 +Derivation fields on indt «foo» took 0.003493 Skipping derivation bcongr on indt «foo» since the user did not select it Skipping derivation idx2inv on indt «foo» since the user did not select it Skipping derivation param1_trivial on indt «foo» since the user did not select it Derivation induction on indt «foo» -Derivation induction on indt «foo» took 0.000903 +Derivation induction on indt «foo» took 0.000971 Derivation eqb on indt «foo» -Derivation eqb on indt «foo» took 0.001736 +Derivation eqb on indt «foo» took 0.002014 Skipping derivation eqK on indt «foo» since the user did not select it Derivation eqbcorrect on indt «foo» -Derivation eqbcorrect on indt «foo» took 0.004077 +Derivation eqbcorrect on indt «foo» took 0.004414 Skipping derivation eqcorrect on indt «foo» since the user did not select it Derivation eqbOK on indt «foo» -Derivation eqbOK on indt «foo» took 0.000647 +Derivation eqbOK on indt «foo» took 0.000677 Skipping derivation eqOK on indt «foo» since the user did not select it File "./apps/derive/tests-stdlib/test_derive.v", line 33, characters 2-9: Warning: This command does not support this attribute: verbose. @@ -20523,14 +20556,17 @@ Warning: Using Vector.t is known to be technically difficult, see . [warn-library-file-stdlib-vector,stdlib-vector,warn-library-file,user-warn,default] +Finished transaction in 1.489 secs (1.422u,0.066s) (successful) +Finished transaction in 17.023 secs (16.908u,0.111s) (successful) +Finished transaction in 0.226 secs (0.223u,0.s) (successful) dune build builtin-doc Warning: Cache directories could not be created: Permission denied; disabling cache -Hint: Make sure the directory /nonexistent/first-build/.cache/dune/db/temp +Hint: Make sure the directory /nonexistent/second-build/.cache/dune/db/temp can be created make[2]: Leaving directory '/build/reproducible-path/coq-elpi-2.5.0' make[1]: Leaving directory '/build/reproducible-path/coq-elpi-2.5.0' - dh_auto_test +dh: command-omitted: The call to "dh_auto_test" was omitted due to "DEB_BUILD_OPTIONS=nocheck" create-stamp debian/debhelper-build-stamp dh_prep debian/rules override_dh_auto_install @@ -20538,7 +20574,7 @@ dune install rocq-elpi --destdir=/build/reproducible-path/coq-elpi-2.5.0/debian/tmp --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu/ocaml/5.3.0 Warning: Cache directories could not be created: Permission denied; disabling cache -Hint: Make sure the directory /nonexistent/first-build/.cache/dune/db/temp +Hint: Make sure the directory /nonexistent/second-build/.cache/dune/db/temp can be created rm -fr /build/reproducible-path/coq-elpi-2.5.0/debian/tmp/usr/doc/coq-elpi rm -fr /build/reproducible-path/coq-elpi-2.5.0/debian/tmp/usr/doc/rocq-elpi @@ -20586,12 +20622,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/2259412/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/2259412/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/1098289 and its subdirectories -I: Current time: Fri Nov 14 02:30:02 -12 2025 -I: pbuilder-time-stamp: 1763130602 +I: removing directory /srv/workspace/pbuilder/2259412 and its subdirectories +I: Current time: Fri Dec 18 10:55:54 +14 2026 +I: pbuilder-time-stamp: 1797540954