Diff of the two buildlogs: -- --- b1/build.log 2025-07-19 19:22:25.162054725 +0000 +++ b2/build.log 2025-07-19 19:24:37.194216238 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Sat Jul 19 07:18:28 -12 2025 -I: pbuilder-time-stamp: 1752952708 +I: Current time: Sat Aug 22 15:45:26 +14 2026 +I: pbuilder-time-stamp: 1787363126 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration @@ -24,52 +24,84 @@ 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/3719383/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/2629304/tmp/hooks/D01_modify_environment starting +debug: Running on ionos5-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 Aug 22 01:45 /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/2629304/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/2629304/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='trixie' - 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]="2" [2]="37" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") + BASH_VERSION='5.2.37(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 ' + DIRSTACK=() + DISTRIBUTION=trixie + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='6bda1c7a78624a4a83e21d6df05afd3a' - 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='3719383' - PS1='# ' - PS2='> ' + INVOCATION_ID=6d4e2d77730c413e90c72f6ba519b593 + 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=2629304 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.yx8nMNdR/pbuilderrc_Q5YN --distribution trixie --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.yx8nMNdR/b1 --logfile b1/build.log coq-elpi_2.5.0-1.1.dsc' - SUDO_GID='110' - 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.yx8nMNdR/pbuilderrc_EpfW --distribution trixie --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.yx8nMNdR/b2 --logfile b2/build.log coq-elpi_2.5.0-1.1.dsc' + SUDO_GID=110 + SUDO_UID=105 + 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.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (2025-05-22) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.12.32+bpo-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.32-1~bpo12+1 (2025-06-21) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 May 12 19:25 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/3719383/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 May 12 2025 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/2629304/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -211,7 +243,7 @@ Get: 86 http://deb.debian.org/debian trixie/main amd64 libstdio-ocaml-dev amd64 0.17.0-1+b2 [114 kB] Get: 87 http://deb.debian.org/debian trixie/main amd64 libppx-optcomp-ocaml-dev amd64 1:0.17.0-1+b7 [326 kB] Get: 88 http://deb.debian.org/debian trixie/main amd64 ocaml-dune amd64 3.17.2-1+b1 [4835 kB] -Fetched 362 MB in 24s (15.2 MB/s) +Fetched 362 MB in 5s (75.8 MB/s) Preconfiguring packages ... Selecting previously unselected package libpython3.13-minimal: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 ... 19850 files and directories currently installed.) @@ -506,8 +538,8 @@ Setting up tzdata (2025b-4) ... Current default time zone: 'Etc/UTC' -Local time is now: Sat Jul 19 19:21:24 UTC 2025. -Universal Time is now: Sat Jul 19 19:21:24 UTC 2025. +Local time is now: Sat Aug 22 01:46:39 UTC 2026. +Universal Time is now: Sat Aug 22 01:46:39 UTC 2026. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up autotools-dev (20240727.1) ... @@ -590,7 +622,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.1_source.changes +I: user script /srv/workspace/pbuilder/2629304/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for trixie +I: user script /srv/workspace/pbuilder/2629304/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.1_source.changes dpkg-buildpackage: info: source package coq-elpi dpkg-buildpackage: info: source version 2.5.0-1.1 dpkg-buildpackage: info: source distribution unstable @@ -604,7 +640,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 @@ -622,105 +658,105 @@ 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 "./apps/NES/elpi/dummy.v", line 1, characters 0-99: +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 2, characters 0-65: +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/NES/elpi/dummy.v", line 3, characters 0-66: +File "./elpi/dummy.v", line 1, characters 0-93: 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 "./elpi/dummy.v", line 2, characters 0-63: 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 "./elpi/dummy.v", line 3, characters 0-67: 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: +File "./elpi/dummy.v", line 4, characters 0-69: 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 2, characters 0-60: +File "./elpi/dummy.v", line 5, characters 0-71: 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 3, characters 0-59: +File "./elpi/dummy.v", line 6, characters 0-69: 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 4, characters 0-64: +File "./elpi/dummy.v", line 7, characters 0-62: 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 5, characters 0-74: +File "./elpi/dummy.v", line 8, characters 0-84: 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 6, characters 0-65: +File "./elpi/dummy.v", line 9, characters 0-76: 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 7, characters 0-62: +File "./elpi/dummy.v", line 10, characters 0-64: 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 8, characters 0-68: +File "./elpi/dummy.v", line 11, characters 0-69: 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 9, characters 0-60: +File "./elpi/dummy.v", line 12, characters 0-75: 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 10, characters 0-74: +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/tc/elpi/dummy.v", line 11, characters 0-70: +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/tc/elpi/dummy.v", line 12, 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/tc/elpi/dummy.v", line 13, characters 0-61: +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/tc/elpi/dummy.v", line 14, characters 0-68: +File "./apps/tc/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/tc/elpi/dummy.v", line 15, characters 0-59: +File "./apps/tc/elpi/dummy.v", line 2, characters 0-60: Warning: To avoid stack overflow, large numbers in nat are interpreted as applications of Nat.of_num_uint. [abstract-large-number,numbers,default] -File "./elpi/dummy.v", line 1, characters 0-93: +File "./apps/tc/elpi/dummy.v", line 3, characters 0-59: Warning: To avoid stack overflow, large numbers in nat are interpreted as applications of Nat.of_num_uint. [abstract-large-number,numbers,default] -File "./elpi/dummy.v", line 2, characters 0-63: +File "./apps/tc/elpi/dummy.v", line 4, characters 0-64: Warning: To avoid stack overflow, large numbers in nat are interpreted as applications of Nat.of_num_uint. [abstract-large-number,numbers,default] -File "./elpi/dummy.v", line 3, characters 0-67: +File "./apps/tc/elpi/dummy.v", line 5, characters 0-74: Warning: To avoid stack overflow, large numbers in nat are interpreted as applications of Nat.of_num_uint. [abstract-large-number,numbers,default] -File "./elpi/dummy.v", line 4, characters 0-69: +File "./apps/tc/elpi/dummy.v", line 6, 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 "./elpi/dummy.v", line 5, characters 0-71: +File "./apps/tc/elpi/dummy.v", line 7, characters 0-62: Warning: To avoid stack overflow, large numbers in nat are interpreted as applications of Nat.of_num_uint. [abstract-large-number,numbers,default] -File "./elpi/dummy.v", line 6, characters 0-69: +File "./apps/tc/elpi/dummy.v", line 8, characters 0-68: Warning: To avoid stack overflow, large numbers in nat are interpreted as applications of Nat.of_num_uint. [abstract-large-number,numbers,default] -File "./elpi/dummy.v", line 7, characters 0-62: +File "./apps/tc/elpi/dummy.v", line 9, characters 0-60: Warning: To avoid stack overflow, large numbers in nat are interpreted as applications of Nat.of_num_uint. [abstract-large-number,numbers,default] -File "./elpi/dummy.v", line 8, characters 0-84: +File "./apps/tc/elpi/dummy.v", line 10, characters 0-74: Warning: To avoid stack overflow, large numbers in nat are interpreted as applications of Nat.of_num_uint. [abstract-large-number,numbers,default] -File "./elpi/dummy.v", line 9, characters 0-76: +File "./apps/tc/elpi/dummy.v", line 11, 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 "./elpi/dummy.v", line 10, characters 0-64: +File "./apps/tc/elpi/dummy.v", line 12, 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 "./elpi/dummy.v", line 11, characters 0-69: +File "./apps/tc/elpi/dummy.v", line 13, 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 "./elpi/dummy.v", line 12, characters 0-75: +File "./apps/tc/elpi/dummy.v", line 14, characters 0-68: Warning: To avoid stack overflow, large numbers in nat are interpreted as applications of Nat.of_num_uint. [abstract-large-number,numbers,default] -File "./elpi/dummy.v", line 13, characters 0-70: +File "./apps/tc/elpi/dummy.v", line 15, characters 0-59: 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/derive/elpi/dummy.v", line 1, characters 0-99: @@ -849,44 +885,21 @@ 2410 | type 'arg tactic_main = Solve of 'arg list | Custom of string ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Warning 34 [unused-type-declaration]: unused type tactic_main. -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 -(eq_refl : 2 = (let z := 1 in S z)) -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 -File "./apps/eltac/theories/apply.v", line 15, characters 16-19: +File "./tests/perf_calls.v", line 11, characters 2-3: 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/perf_calls.v", line 11, characters 2-3 +N is linear: name it _N (discard) or N_ (fresh variable) +[elpi.linear-variable,elpi.typecheck,elpi,default] +File "./tests/perf_calls.v", line 13, characters 9-11: +Warning: +File "./tests/perf_calls.v", line 13, characters 9-11 +GR is linear: name it _GR (discard) or GR_ (fresh variable) +[elpi.linear-variable,elpi.typecheck,elpi,default] +File "./tests/perf_calls.v", line 13, characters 7-8: +Warning: +File "./tests/perf_calls.v", line 13, characters 7-8 +N is linear: name it _N (discard) or N_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -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») @@ -920,24 +933,465 @@ 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 _ _ +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 +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 3 + 7 becomes fun (x : ?e) (x0 : ?e0) => S (S x0) + S (S (S (S (S (S x))))) -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] -goal X0 c0 c1 c2 c3 is +(eq_refl : 2 = (let z := 1 in S z)) +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») +Query assignments: + Bo = fun `x` (global (indt «nat»)) c0 \ c0 + C = «f» +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] +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 +Query assignments: + U = typ «elpi_examples.tutorial_coq_elpi_HOAS.6» + U1 = typ «elpi_examples.tutorial_coq_elpi_HOAS.7» +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 +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: -prod `_` (app [global (const «lt»), c1, c2]) c4 \ - app [global (const «lt»), c0, c2] -3 +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») +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 +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: + + +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_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: + 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_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: + + +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 "./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 "./examples/tutorial_coq_elpi_HOAS.v", line 89, characters 20-26: +Warning: +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 "./examples/tutorial_coq_elpi_HOAS.v", line 88, characters 17-20: +Warning: +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 "./examples/tutorial_coq_elpi_HOAS.v", line 113, characters 24-26: +Warning: +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 "./examples/tutorial_coq_elpi_HOAS.v", line 107, characters 20-22: +Warning: +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 "./examples/tutorial_coq_elpi_HOAS.v", line 113, characters 28-31: +Warning: +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 "./examples/tutorial_coq_elpi_HOAS.v", line 152, characters 24-26: +Warning: +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 "./examples/tutorial_coq_elpi_HOAS.v", line 195, characters 24-26: +Warning: +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] +File "./examples/tutorial_coq_elpi_HOAS.v", line 285, characters 17-18: +Warning: +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 "./examples/tutorial_coq_elpi_HOAS.v", line 681, characters 10-11: +Warning: +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] +File "./examples/tutorial_coq_elpi_HOAS.v", line 681, characters 12-14: +Warning: +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 "./examples/tutorial_coq_elpi_HOAS.v", line 718, characters 10-11: +Warning: +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 "./examples/tutorial_coq_elpi_HOAS.v", line 718, characters 12-14: +Warning: +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 "./examples/tutorial_coq_elpi_HOAS.v", line 756, characters 40-43: +Warning: +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 "./examples/tutorial_coq_elpi_HOAS.v", line 754, characters 10-11: +Warning: +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 "./examples/tutorial_coq_elpi_HOAS.v", line 754, characters 12-14: +Warning: +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] The age of alice is 20 Query assignments: A = 20 @@ -1104,7 +1558,7 @@ Debug: rid:0 step:2 gid:7 user:rule:backchain = success -Debug: }}} -> (0.000s) +Debug: }}} -> (0.001s) Debug: run 3 {{{ Debug: @@ -1154,7 +1608,7 @@ Debug: rid:0 step:5 gid:9 user:rule:backchain:candidates = File "./examples/tutorial_elpi_lang.v", line 596, column 2, characters 15366-15421: -Debug: }}} -> (0.004s) +Debug: }}} -> (0.000s) Debug: select 4 {{{ Debug: @@ -1179,7 +1633,7 @@ Debug: rid:0 step:5 gid:10 user:rule:backchain = success -Debug: }}} -> (0.000s) +Debug: }}} -> (0.001s) Debug: run 6 {{{ Debug: @@ -1217,7 +1671,7 @@ Debug: rid:0 step:7 gid:12 user:rule:implication = success -Debug: }}} -> (0.002s) +Debug: }}} -> (0.000s) Debug: run 8 {{{ Debug: @@ -1230,7 +1684,7 @@ Debug: rid:0 step:8 gid:12 user:rule:backchain:candidates = File "(context step_id:4)", line 1, column 0, characters 0-0: -Debug: }}} -> (0.002s) +Debug: }}} -> (0.000s) Debug: select 5 {{{ Debug: @@ -1287,7 +1741,7 @@ Debug: rid:1 step:1 gid:13 user:rule:and = success -Debug: }}} -> (0.002s) +Debug: }}} -> (0.001s) Debug: run 2 {{{ Debug: @@ -1325,7 +1779,7 @@ Debug: rid:1 step:2 gid:16 user:rule:backchain = success -Debug: }}} -> (0.003s) +Debug: }}} -> (0.001s) Debug: run 3 {{{ Debug: @@ -1344,7 +1798,7 @@ Debug: rid:1 step:3 gid:17 user:rule:pi = success -Debug: }}} -> (0.000s) +Debug: }}} -> (0.001s) Debug: run 4 {{{ Debug: @@ -1409,7 +1863,7 @@ Debug: rid:1 step:5 gid:19 user:rule:backchain = success -Debug: }}} -> (0.000s) +Debug: }}} -> (0.001s) Debug: run 6 {{{ Debug: @@ -1490,7 +1944,7 @@ Debug: rid:2 step:6 gid:28 user:rule:pi = success -Debug: }}} -> (0.001s) +Debug: }}} -> (0.000s) Debug: run 7 {{{ Debug: @@ -1551,7 +2005,7 @@ Debug: rid:3 step:2 gid:31 user:rule:backchain:candidates = File "./examples/tutorial_elpi_lang.v", line 596, column 2, characters 15366-15421: -Debug: }}} -> (0.001s) +Debug: }}} -> (0.000s) Debug: select 3 {{{ Debug: @@ -1576,7 +2030,7 @@ Debug: rid:3 step:2 gid:33 user:rule:backchain = success -Debug: }}} -> (0.000s) +Debug: }}} -> (0.001s) Debug: run 5 {{{ Debug: @@ -1614,7 +2068,7 @@ Debug: rid:3 step:5 gid:36 user:rule:backchain = success -Debug: }}} -> (0.000s) +Debug: }}} -> (0.001s) Debug: run 8 {{{ Debug: @@ -1627,7 +2081,7 @@ Debug: rid:3 step:8 gid:38 user:rule:backchain:candidates = File "(context step_id:4)", line 1, column 0, characters 0-0: -Debug: }}} -> (0.001s) +Debug: }}} -> (0.000s) Debug: select 5 {{{ Debug: @@ -1786,454 +2240,467 @@ 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] -File "./tests/perf_calls.v", line 11, characters 2-3: -Warning: -File "./tests/perf_calls.v", line 11, characters 2-3 -N is linear: name it _N (discard) or N_ (fresh variable) -[elpi.linear-variable,elpi.typecheck,elpi,default] -File "./tests/perf_calls.v", line 13, characters 9-11: -Warning: -File "./tests/perf_calls.v", line 13, characters 9-11 -GR is linear: name it _GR (discard) or GR_ (fresh variable) -[elpi.linear-variable,elpi.typecheck,elpi,default] -File "./tests/perf_calls.v", line 13, characters 7-8: -Warning: -File "./tests/perf_calls.v", line 13, characters 7-8 -N is linear: name it _N (discard) or N_ (fresh variable) -[elpi.linear-variable,elpi.typecheck,elpi,default] -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») + 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: - Bo = fun `x` (global (indt «nat»)) c0 \ c0 - C = «f» + %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: - 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] + I = «Y.i» + ID = j + J = «Y.j» + MP = «elpi.tests.test_API_module.Y» + P = [elpi, tests, test_API_module, Y] 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 + Mp_ta = «elpi.tests.test_API_module.TA» Query assignments: - U = typ «elpi_examples.tutorial_coq_elpi_HOAS.6» - U1 = typ «elpi_examples.tutorial_coq_elpi_HOAS.7» + 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: - {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: - -SORTS: - -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} + {elpi.tests.test_API_module.11 A.i.u0} FLEXIBLE UNIVERSES: - elpi_examples.tutorial_coq_elpi_HOAS.9 - elpi_examples.tutorial_coq_elpi_HOAS.8 + elpi.tests.test_API_module.11 + A.i.u0 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»)]] +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: - 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] + A = «elpi.tests.test_API_module.a» + MP_TA = «elpi.tests.test_API_module.TA» + TF = «elpi.tests.test_API_module.TF» 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] + %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: - 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_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: - - + MP_TA = «elpi.tests.test_API_module.TA» +Module Type TB = Funsig (A:TA) Sig End 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») + A = «elpi.tests.test_API_module.A» 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: - + %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 "./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 q X0 +Query r X0 +Result r 1 +Query assignments: + I = const «imp» +X2.imp : forall (T : Type) (x : T), x = x -> Prop -Rocq-Elpi mapping: -RAW: -ELAB: +X2.imp is not universe polymorphic +Arguments X2.imp T%type_scope x _ +Expands to: Constant elpi.tests.test_API_arguments.X2.imp +Query assignments: + %arg1 = const «foo» +foo 3 + : nat +Query assignments: + %arg1 = const «f» + %arg2 = const «f» + %arg3 = const «f» + %arg4 = const «f» + %arg5 = const «f» +f : forall [S : Type], S -> Prop --------------------------------- - evar (X1) (global (indt «nat»)) (X1) /* suspended on X1 */ -EVARS: - ?X11==[ |- nat] (internal placeholder) {?e0} - ?X10==[ |- => nat] (internal placeholder) +f is not universe polymorphic +Arguments f [S]%type_scope _ + (where some original arguments have been renamed) +f is transparent +Expands to: Constant elpi.tests.test_API_arguments.f +f (S:=bool * bool) + : bool * bool -> Prop +Query assignments: + %arg1 = const «f» +f : forall [S : Type], S -> Prop -SHELF: -FUTURE GOALS STACK: - ?X11 +f is not universe polymorphic +Arguments f [S]%type_scope / _ + (where some original arguments have been renamed) +The reduction tactics unfold f when applied to 1 argument +f is transparent +Expands to: Constant elpi.tests.test_API_arguments.f +f (S:=bool * bool) + : bool * bool -> Prop + = fun x : bool => x = x + : bool -> Prop +File "./tests/test_File3.v", line 18, characters 2-16: +Warning: This command does not support this attribute: phase. +[unsupported-attributes,parsing,default] +Query assignments: + CA = «a» + CB = «b» + CC = «c» +d : nat -Rocq-Elpi mapping: -RAW: -?X11 <-> X1 -ELAB: -?X11 <-> X1 +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 Query assignments: - T = X1 - X2_ = X1 -Syntactic constraints: - evar (X1) (global (indt «nat»)) (X1) /* suspended on X1 */ + 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_examples.tutorial_coq_elpi_HOAS.12} |= - Set <= elpi_examples.tutorial_coq_elpi_HOAS.12 + {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: - α7 := Type + α4 := Type + α5 := 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 */ + 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_examples.tutorial_coq_elpi_HOAS.13} |= - Set <= elpi_examples.tutorial_coq_elpi_HOAS.13 + {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: - α8 := Type + α11 := 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] +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: - 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 */ + 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_examples.tutorial_coq_elpi_HOAS.14} |= - Set <= elpi_examples.tutorial_coq_elpi_HOAS.14 + {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: - α9 := Type + α21 := 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: -Warning: -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 "./examples/tutorial_coq_elpi_HOAS.v", line 89, characters 20-26: -Warning: -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 "./examples/tutorial_coq_elpi_HOAS.v", line 88, characters 17-20: -Warning: -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 "./examples/tutorial_coq_elpi_HOAS.v", line 113, characters 24-26: -Warning: -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 "./examples/tutorial_coq_elpi_HOAS.v", line 107, characters 20-22: -Warning: -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 "./examples/tutorial_coq_elpi_HOAS.v", line 113, characters 28-31: -Warning: -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 "./examples/tutorial_coq_elpi_HOAS.v", line 152, characters 24-26: -Warning: -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 "./examples/tutorial_coq_elpi_HOAS.v", line 195, characters 24-26: -Warning: -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] -File "./examples/tutorial_coq_elpi_HOAS.v", line 285, characters 17-18: -Warning: -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 "./examples/tutorial_coq_elpi_HOAS.v", line 681, characters 10-11: -Warning: -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] -File "./examples/tutorial_coq_elpi_HOAS.v", line 681, characters 12-14: -Warning: -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 "./examples/tutorial_coq_elpi_HOAS.v", line 718, characters 10-11: -Warning: -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 "./examples/tutorial_coq_elpi_HOAS.v", line 718, characters 12-14: -Warning: -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 "./examples/tutorial_coq_elpi_HOAS.v", line 756, characters 40-43: -Warning: -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 "./examples/tutorial_coq_elpi_HOAS.v", line 754, characters 10-11: +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 "./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_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 "./examples/tutorial_coq_elpi_HOAS.v", line 754, characters 12-14: +File "./tests/test_API_elaborate.v", line 170, characters 33-34: 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_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] +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! Coq version: 8.20.1 = 8 . 20 . 1 Query assignments: MA = 8 @@ -2421,6 +2888,110 @@ 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] +eq_refl : d = 3 + : d = 3 +eq_refl : e = 4 + : e = 4 +foo = fun a b c : nat => a + b + c + d + e + : nat -> nat -> nat -> nat + +Arguments foo a%nat_scope [b]%nat_scope {c}%nat_scope +Query assignments: + %arg1 = const «foo» +«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» +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] +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 Hello [str world!] Hello [int 46] Hello [str there] @@ -2492,7 +3063,7 @@ interp x := some (app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]) -The module is «elpi_examples.tutorial_coq_elpi_command.Module60» +The module is «elpi_examples.tutorial_coq_elpi_command.Module9» Box.Box.Box.Box.foo = fun n : nat => n + 2 : nat -> nat @@ -2728,1028 +3299,3954 @@ 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] -eq_refl : d = 3 - : d = 3 -eq_refl : e = 4 - : e = 4 -foo = fun a b c : nat => a + b + c + d + e - : nat -> nat -> nat -> nat - -Arguments foo a%nat_scope [b]%nat_scope {c}%nat_scope -Query assignments: - %arg1 = const «foo» -«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 +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: - 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 */ + 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_API_notations.6 elpi.tests.test_API_notations.5 - elpi.tests.test_API_notations.4} |= + {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: - α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 q X0 -Query r X0 -Result r 1 -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») -fix X0 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 `_elpi_renamed_n_2` (global (indt «nat»)) c3 \ X1 c1 c2 c3) - [c2, fun `p` (X2 c1 c2) c3 \ app [c0, c3, c2]] -fix X0 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 `_elpi_renamed_n_2` (global (indt «nat»)) c3 \ - global (indt «nat»)) [c2, fun `p` (X3 c1 c2) c3 \ app [c0, c3, c2]] -Query assignments: - BO1 = fix X0 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 `_elpi_renamed_n_2` (global (indt «nat»)) c3 \ - global (indt «nat»)) [c2, fun `p` (X3 c1 c2) c3 \ app [c0, c3, c2]] - GR = «Nat.add» - TY = prod `n` (global (indt «nat»)) c0 \ - prod `m` (global (indt «nat»)) c1 \ global (indt «nat») - X1_ = c0 \ c1 \ c2 \ -global (indt «nat») - X2_ = c0 \ c1 \ -X3 c0 c1 -Syntactic constraints: - {c0 c1} : - decl c1 `m` (global (indt «nat»)), decl c0 `n` (global (indt «nat»)) - ?- evar (X3 c0 c1) (sort (typ «elpi_tests_stdlib.test_quotation.2»)) - (X3 c0 c1) /* suspended on X3 */ -Universe constraints: -UNIVERSES: - {elpi_tests_stdlib.test_quotation.3 elpi_tests_stdlib.test_quotation.2 - elpi_tests_stdlib.test_quotation.1} |= - Set <= elpi_tests_stdlib.test_quotation.3 -ALGEBRAIC UNIVERSES: - {} -FLEXIBLE UNIVERSES: - elpi_tests_stdlib.test_quotation.3 -SORTS: - α1 - α2 WEAK CONSTRAINTS: -fun `v` - (app - [global (indt «Vector.t»), global (indt «nat»), - app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]) - c0 \ - match c0 - (fun `_` (X0 c0) c1 \ - fun `_elpi_renamed_v_1` (app [global (indt «Vector.t»), X1 c0, X2 c0]) - c2 \ X3 c0 c2) - [global (indc «O»), - fun `_` (X4 c0) c1 \ - fun `_` (X5 c0) c2 \ - fun `_` (X6 c0) c3 \ app [global (indc «S»), global (indc «O»)]] -fun `v` - (app - [global (indt «Vector.t»), global (indt «nat»), - app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]) - c0 \ - match c0 - (fun `_` (X7 c0) c1 \ - fun `_elpi_renamed_v_1` - (app [global (indt «Vector.t»), global (indt «nat»), X8 c0]) c2 \ - global (indt «nat»)) - [global (indc «O»), - fun `_` (X9 c0) c1 \ - fun `_` (X10 c0) c2 \ - fun `_` (X11 c0) c3 \ app [global (indc «S»), global (indc «O»)]] -Query assignments: - T = fun `v` - (app - [global (indt «Vector.t»), global (indt «nat»), - app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]) - c0 \ - match c0 - (fun `_` (X7 c0) c1 \ - fun `_elpi_renamed_v_1` - (app [global (indt «Vector.t»), global (indt «nat»), X8 c0]) c2 \ - global (indt «nat»)) - [global (indc «O»), - fun `_` (X9 c0) c1 \ - fun `_` (X10 c0) c2 \ - fun `_` (X11 c0) c3 \ app [global (indc «S»), global (indc «O»)]] - X3_ = c0 \ -X7 c0 - X4_ = c0 \ -global (indt «nat») - X5_ = c0 \ -X8 c0 - X6_ = c0 \ c1 \ -global (indt «nat») - X7_ = c0 \ -X9 c0 - X8_ = c0 \ -X10 c0 - X9_ = c0 \ -X11 c0 -Syntactic constraints: - {c0} : - decl c0 `v` +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 «Vector.t»), global (indt «nat»), - app - [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]) - ?- evar (X11 c0) (sort (typ «elpi_tests_stdlib.test_quotation.10»)) - (X11 c0) /* suspended on X11 */ - {c0} : - decl c0 `v` + [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 «Vector.t»), global (indt «nat»), - app - [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]) - ?- evar (X10 c0) (sort (typ «elpi_tests_stdlib.test_quotation.9»)) - (X10 c0) /* suspended on X10 */ - {c0} : - decl c0 `v` + [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 «Vector.t»), global (indt «nat»), - app - [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]) - ?- evar (X9 c0) (sort (typ «elpi_tests_stdlib.test_quotation.8»)) - (X9 c0) /* suspended on X9 */ - {c0} : - decl c0 `v` + [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 «Vector.t»), global (indt «nat»), + [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 (indc «S»), app [global (indc «S»), global (indc «O»)]]]) - ?- evar (X8 c0) (X12 c0) (X8 c0) /* suspended on X8 */ - {c0} : - decl c0 `v` - (app - [global (indt «Vector.t»), global (indt «nat»), + [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 (indc «S»), app [global (indc «S»), global (indc «O»)]]]) - ?- evar (X13 c0) (sort (typ «elpi_tests_stdlib.test_quotation.6»)) - (X12 c0) /* suspended on X13, X12 */ - {c0} : - decl c0 `v` - (app - [global (indt «Vector.t»), global (indt «nat»), + [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 (indc «S»), app [global (indc «S»), global (indc «O»)]]]) - ?- evar (X7 c0) (sort (typ «elpi_tests_stdlib.test_quotation.4»)) - (X7 c0) /* suspended on X7 */ -Universe constraints: -UNIVERSES: - {elpi_tests_stdlib.test_quotation.12 elpi_tests_stdlib.test_quotation.11 - elpi_tests_stdlib.test_quotation.10 elpi_tests_stdlib.test_quotation.9 - elpi_tests_stdlib.test_quotation.8 elpi_tests_stdlib.test_quotation.7 - elpi_tests_stdlib.test_quotation.6 elpi_tests_stdlib.test_quotation.5 - elpi_tests_stdlib.test_quotation.4} |= - elpi_tests_stdlib.test_quotation.11 < elpi_tests_stdlib.test_quotation.5 - Set <= Vector.t.u0 - Set <= elpi_tests_stdlib.test_quotation.11 - Set <= elpi_tests_stdlib.test_quotation.12 - elpi_tests_stdlib.test_quotation.11 <= Vector.t.u0 -ALGEBRAIC UNIVERSES: - {} -FLEXIBLE UNIVERSES: - elpi_tests_stdlib.test_quotation.12 -SORTS: - α3 - α4 := Type - α5 - α6 - α7 - α8 - α9 -WEAK CONSTRAINTS: - - -3 -Query assignments: - X = 3 -fun `x` X0 c0 \ app [X1, c0] -Query assignments: - X = X1 - X10_ = X0 - Y = fun `x` X0 c0 \ app [X1, c0] -fun `r` (global (indt «nat»)) c0 \ - fun `p` - (prod `y` (global (indt «nat»)) c1 \ - app - [global (indt «eq»), global (indt «nat»), c1, global (indc «O»)]) - c1 \ - fun `q` (global (indt «bool»)) c2 \ - prod `y` (global (indt «nat»)) c3 \ - app - [global (indt «eq»), global (indt «nat»), c3, global (indc «O»)] -Query assignments: - %arg1 = c0 \ c1 \ c2 \ -prod `y` (global (indt «nat»)) c3 \ - app [global (indt «eq»), global (indt «nat»), c3, global (indc «O»)] - X = fun `r` (global (indt «nat»)) c0 \ - fun `p` - (prod `y` (global (indt «nat»)) c1 \ - app - [global (indt «eq»), global (indt «nat»), c1, global (indc «O»)]) - c1 \ - fun `q` (global (indt «bool»)) c2 \ - prod `y` (global (indt «nat»)) c3 \ - app - [global (indt «eq»), global (indt «nat»), c3, global (indc «O»)] -fun u : nat => -{| val := oval u; Sub := Ord u; Sub_rect := inlined_sub_rect |} - : forall u : nat, is_SUB nat (fun x : nat => leq x u) (ord u) + [global (const «Nat.add»), c2, + app [global (indc «S»), global (indc «O»)]])) + illtyped definition Debug: -[elpi] - gterm2lp: term=(fun u => - {| val := oval u; Sub := _; Sub_rect := inlined_sub_rect |}) -Debug: [elpi] gterm2lp: term=_ +----<<---- 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: -[elpi] - gterm2lp: term={| val := oval u; Sub := _; Sub_rect := inlined_sub_rect |} -Debug: [elpi] gterm2lp: term=SubType -Debug: [elpi] gterm2lp: term=_ -Debug: [elpi] gterm2lp: term=_ -Debug: [elpi] gterm2lp: term=_ -Debug: [elpi] gterm2lp: term=(oval u) -Debug: [elpi] gterm2lp: term=oval -Debug: [elpi] gterm2lp: term=u -Debug: [elpi] gterm2lp: term=_ -Debug: [elpi] gterm2lp: term=inlined_sub_rect -Debug: [elpi] gterm2lp: term=_ +---->>---- 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: -[elpi] - gterm2lp: term=(fun K_S u => - let (x, Px) as u0 return (K u0) := u in K_S x Px) -Debug: [elpi] gterm2lp: term=_ +----<<---- enter: +coq.arity->term + (parameter n explicit (global (indt «nat»)) c0 \ + arity (sort (typ «elpi.tests.test_arg_HOAS.113»))) X0 Debug: -[elpi] - gterm2lp: term=(fun u => let (x, Px) as u0 return (K u0) := u in K_S x Px) -Debug: [elpi] gterm2lp: term=_ +---->>---- 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: -[elpi] - gterm2lp: term=(let (x, Px) as u0 return (K u0) := _elpi_renamed_u_3 in - K_S x Px) -Debug: [elpi] gterm2lp: term=_elpi_renamed_u_3 -Debug: [elpi] gterm2lp: term=(fun u0 => K u0) -Debug: [elpi] gterm2lp: term=_ -Debug: [elpi] gterm2lp: term=(K u0) -Debug: [elpi] gterm2lp: term=K -Debug: [elpi] gterm2lp: term=u0 -Debug: [elpi] gterm2lp: term=(fun x Px => K_S x Px) -Debug: [elpi] gterm2lp: term=_ -Debug: [elpi] gterm2lp: term=(fun Px => K_S x Px) -Debug: [elpi] gterm2lp: term=_ -Debug: [elpi] gterm2lp: term=(K_S x Px) -Debug: [elpi] gterm2lp: term=K_S -Debug: [elpi] gterm2lp: term=x -Debug: [elpi] gterm2lp: term=Px +----<<---- 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: -[elpi] - gterm2lp: term=(fun u => - {| val := _; Sub := elpi_code:(K) u; Sub_rect := _ |}) -Debug: [elpi] gterm2lp: term=_ +---->>---- 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: -[elpi] gterm2lp: term={| val := _; Sub := elpi_code:(K) u; Sub_rect := _ |} -Debug: [elpi] gterm2lp: term=SubType -Debug: [elpi] gterm2lp: term=_ -Debug: [elpi] gterm2lp: term=_ -Debug: [elpi] gterm2lp: term=_ -Debug: [elpi] gterm2lp: term=_ -Debug: [elpi] gterm2lp: term=(elpi_code:(K) u) -Debug: [elpi] gterm2lp: term=elpi_code:(K) -Debug: [elpi] gterm2lp: term=u -Debug: [elpi] gterm2lp: term=_ -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -fun `u` X0 c0 \ - app - [global (indc «SubType»), X1 c0, X2 c0, X3 c0, - app [global (const «oval»), c0], X4 c0, - fun `K` (X5 c0) c1 \ - fun `K_S` (X6 c0 c1) c2 \ - fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \ - match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) - [fun `x` (X9 c0 c1 c2 c3) c4 \ - fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]]] -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +----<<---- enter: +coq.env.add-axiom y + (prod `n` (global (indt «nat»)) c0 \ + sort (typ «elpi.tests.test_arg_HOAS.113»)) X2 Debug: -[elpi] - elpi sigma -> coq sigma: before: -SHELF: -FUTURE GOALS STACK: - - -Rocq-Elpi mapping: -RAW: -ELAB: - +---->>---- exit: +coq.env.add-axiom y + (prod `n` (global (indt «nat»)) c0 \ sort (typ «y.u0»)) «y» +y : nat -> Type + : nat -> Type Debug: -[elpi] - elpi sigma -> coq sigma: synchronized: -SHELF: -FUTURE GOALS STACK: - - -Rocq-Elpi mapping: -RAW: -ELAB: - +----<<---- enter: +coq.arity->term + (parameter n explicit (global (indt «nat»)) c0 \ + arity (global (indt «nat»))) X0 Debug: -[elpi] - elpi sigma -> coq sigma: after: -SHELF: -FUTURE GOALS STACK: - - -Rocq-Elpi mapping: -RAW: -ELAB: - +---->>---- 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: -[elpi] - lp2term: depth=0 ctx=[] term=fun `u` X0 c0 \ - app - [global (indc «SubType»), X1 c0, X2 c0, X3 c0, - app [global (const «oval»), c0], X4 c0, - fun `K` (X5 c0) c1 \ - fun `K_S` (X6 c0 c1) c2 \ - fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \ - match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) - [fun `x` (X9 c0 c1 c2 c3) c4 \ - fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]]] +----<<---- 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: -[elpi] - lp2term@0:fun `u` X0 c0 \ - app - [global (indc «SubType»), X1 c0, X2 c0, X3 c0, - app [global (const «oval»), c0], X4 c0, - fun `K` (X5 c0) c1 \ - fun `K_S` (X6 c0 c1) c2 \ - fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \ - match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) - [fun `x` (X9 c0 c1 c2 c3) c4 \ - fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]]] -Debug: [elpi] lp2term@0:X0 -Debug: [elpi] lp2term: evar: calldepth:0 X0 RAW: -ELAB: - +---->>---- 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: -[elpi] - lp2term@1:app - [global (indc «SubType»), X1 c0, X2 c0, X3 c0, - app [global (const «oval»), c0], X4 c0, - fun `K` (X5 c0) c1 \ - fun `K_S` (X6 c0 c1) c2 \ - fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \ - match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) - [fun `x` (X9 c0 c1 c2 c3) c4 \ - fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]]] -Debug: [elpi] lp2term@1:global (indc «SubType») -Debug: [elpi] lp2term@1:X1 c0 -Debug: [elpi] lp2term: evar: calldepth:0 X1 c0 RAW: -ELAB: - -Debug: [elpi] lp2term@1:X2 c0 -Debug: [elpi] lp2term: evar: calldepth:0 X2 c0 RAW: -ELAB: - -Debug: [elpi] lp2term@1:X3 c0 -Debug: [elpi] lp2term: evar: calldepth:0 X3 c0 RAW: -ELAB: - -Debug: [elpi] lp2term@1:app [global (const «oval»), c0] -Debug: [elpi] lp2term@1:global (const «oval») -Debug: [elpi] lp2term@1:c0 -Debug: [elpi] lp2term@1:X4 c0 -Debug: [elpi] lp2term: evar: calldepth:0 X4 c0 RAW: -ELAB: - +----<<---- 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: -[elpi] - lp2term@1:fun `K` (X5 c0) c1 \ - fun `K_S` (X6 c0 c1) c2 \ - fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \ - match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) - [fun `x` (X9 c0 c1 c2 c3) c4 \ - fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]] -Debug: [elpi] lp2term@1:X5 c0 -Debug: [elpi] lp2term: evar: calldepth:0 X5 c0 RAW: -ELAB: +---->>---- 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: -[elpi] - lp2term@2:fun `K_S` (X6 c0 c1) c2 \ - fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \ - match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) - [fun `x` (X9 c0 c1 c2 c3) c4 \ - fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]] -Debug: [elpi] lp2term@2:X6 c0 c1 -Debug: [elpi] lp2term: evar: calldepth:0 X6 c0 c1 RAW: -ELAB: - +----<<---- enter: coq.say raw: (inductive X1 tt (arity (sort prop)) c0 \ []) +raw: inductive X1 tt (arity (sort prop)) c0 \ [] Debug: -[elpi] - lp2term@3:fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \ - match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) - [fun `x` (X9 c0 c1 c2 c3) c4 \ - fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]] -Debug: [elpi] lp2term@3:X7 c0 c1 c2 -Debug: [elpi] lp2term: evar: calldepth:0 X7 c0 c1 c2 RAW: -ELAB: - +---->>---- exit: coq.say raw: (inductive X1 tt (arity (sort prop)) c0 \ []) Debug: -[elpi] - lp2term@4:match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) - [fun `x` (X9 c0 c1 c2 c3) c4 \ - fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]] -Debug: [elpi] lp2term@4:c3 -Debug: [elpi] lp2term@4:fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4] -Debug: [elpi] lp2term@4:X8 c0 c1 c2 c3 -Debug: [elpi] lp2term: evar: calldepth:0 X8 c0 c1 c2 c3 RAW: -ELAB: - -Debug: [elpi] lp2term@5:app [c1, c4] -Debug: [elpi] lp2term@5:c1 -Debug: [elpi] lp2term@5:c4 +----<<---- enter: +std.assert-ok! + (coq.typecheck-indt-decl (inductive X1 tt (arity (sort prop)) c0 \ [])) + Illtyped inductive declaration Debug: -[elpi] - lp2term@4:fun `x` (X9 c0 c1 c2 c3) c4 \ - fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5] -Debug: [elpi] lp2term@4:X9 c0 c1 c2 c3 -Debug: [elpi] lp2term: evar: calldepth:0 X9 c0 c1 c2 c3 RAW: -ELAB: - -Debug: [elpi] lp2term@5:fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5] -Debug: [elpi] lp2term@5:X10 c0 c1 c2 c3 c4 -Debug: [elpi] lp2term: evar: calldepth:0 X10 c0 c1 c2 c3 c4 RAW: -ELAB: - -Debug: [elpi] lp2term@6:app [c2, c4, c5] -Debug: [elpi] lp2term@6:c2 -Debug: [elpi] lp2term@6:c4 -Debug: [elpi] lp2term@6:c5 +---->>---- exit: +std.assert-ok! + (coq.typecheck-indt-decl (inductive X1 tt (arity (sort prop)) c0 \ [])) + Illtyped inductive declaration Debug: -[elpi] - lp2term: out=(fun u : hole hole => - {| - val := oval u; - Sub := hole u hole; - Sub_rect := - fun (K : hole u hole) (K_S : hole K u hole) - (_elpi_renamed_u_3 : hole K_S K u hole) => - let - (x, Px) as u0 - return (hole u0 _elpi_renamed_u_3 K_S K hole) := - _elpi_renamed_u_3 in - K_S x Px - |}) - elpi2coq: - RAW: -ELAB: -SHELF: - - FUTURE GOALS STACK: - - +----<<---- enter: +coq.say typed: (inductive X1 tt (arity (sort prop)) c0 \ []) +typed: inductive X1 tt (arity (sort prop)) c0 \ [] Debug: -[elpi] - detype: (fun u : hole hole => - {| - val := oval u; - Sub := hole u hole; - Sub_rect := - fun (K : hole u hole) (K_S : hole K u hole) - (_elpi_renamed_u_3 : hole K_S K u hole) => - let - (x, Px) as u0 - return (hole u0 _elpi_renamed_u_3 K_S K hole) := - _elpi_renamed_u_3 in - K_S x Px - |}) -Debug: [elpi] bringing updated sigma back to lp +---->>---- exit: +coq.say typed: (inductive X1 tt (arity (sort prop)) c0 \ []) Debug: -[elpi] - term2lp: depth=0 ctx= term=(forall u : nat, - is_SUB nat (fun x : nat => leq x u) (ord u)) +----<<---- enter: +coq.env.add-indt (inductive X1 tt (arity (sort prop)) c0 \ []) X0 Debug: -[elpi] - term2lp (out): prod `u` (global (indt «nat»)) c0 \ - app - [global (indt «is_SUB»), global (indt «nat»), - fun `x` (global (indt «nat»)) c1 \ app [global (const «leq»), c1, c0], - app [global (indt «ord»), c0]] +---->>---- 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: -[elpi] - term2lp: depth=0 ctx= term=(fun u : nat => - {| - val := oval u; - Sub := Ord u; - Sub_rect := inlined_sub_rect - |}) +----<<---- 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: -[elpi] - term2lp (out): fun `u` (global (indt «nat»)) c0 \ - app - [global (indc «SubType»), global (indt «nat»), - fun `x` (global (indt «nat»)) c1 \ app [global (const «leq»), c1, c0], - app [global (indt «ord»), c0], app [global (const «oval»), c0], - app [global (indc «Ord»), c0], - fun `K` - (prod `x` (app [global (indt «ord»), c0]) c1 \ sort (typ «is_SUB.u2»)) - c1 \ - fun `K_S` - (prod `x` (global (indt «nat»)) c2 \ - prod `Px` - (app - [global (indt «eq»), global (indt «bool»), - app - [fun `x` (global (indt «nat»)) c3 \ - app [global (const «leq»), c3, c0], c2], - global (indc «true»)]) c3 \ - app [c1, app [global (indc «Ord»), c0, c2, c3]]) c2 \ - fun `_elpi_renamed_u_3` (app [global (indt «ord»), c0]) c3 \ - match c3 - (fun `xxx` (app [global (indt «ord»), c0]) c4 \ app [c1, c4]) - [fun `x` (global (indt «nat»)) c4 \ - fun `Px` - (app - [global (indt «eq»), global (indt «bool»), - app [global (const «leq»), c4, c0], global (indc «true»)]) - c5 \ app [c2, c4, c5]]] +---->>---- 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: -[elpi] - Elpi: query-compilation:0.0029 static-check:0.0000 optimization:0.0001 runtime:0.0121 (with success) - -Query assignments: - GR = indc «Ord» - K = global (indc «Ord») - T = fun `u` X0 c0 \ - app - [global (indc «SubType»), X1 c0, X2 c0, X3 c0, - app [global (const «oval»), c0], X4 c0, - fun `K` (X5 c0) c1 \ - fun `K_S` (X6 c0 c1) c2 \ - fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \ - match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) - [fun `x` (X9 c0 c1 c2 c3) c4 \ - fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]]] - T1 = fun `u` (global (indt «nat»)) c0 \ - app - [global (indc «SubType»), global (indt «nat»), - fun `x` (global (indt «nat»)) c1 \ app [global (const «leq»), c1, c0], - app [global (indt «ord»), c0], app [global (const «oval»), c0], - app [global (indc «Ord»), c0], - fun `K` - (prod `x` (app [global (indt «ord»), c0]) c1 \ sort (typ «is_SUB.u2»)) - c1 \ - fun `K_S` - (prod `x` (global (indt «nat»)) c2 \ - prod `Px` - (app - [global (indt «eq»), global (indt «bool»), - app - [fun `x` (global (indt «nat»)) c3 \ - app [global (const «leq»), c3, c0], c2], - global (indc «true»)]) c3 \ - app [c1, app [global (indc «Ord»), c0, c2, c3]]) c2 \ - fun `_elpi_renamed_u_3` (app [global (indt «ord»), c0]) c3 \ - match c3 - (fun `xxx` (app [global (indt «ord»), c0]) c4 \ app [c1, c4]) - [fun `x` (global (indt «nat»)) c4 \ - fun `Px` - (app - [global (indt «eq»), global (indt «bool»), - app [global (const «leq»), c4, c0], global (indc «true»)]) - c5 \ app [c2, c4, c5]]] - X11_ = X0 - X12_ = X1 - X13_ = X2 - X14_ = X3 - X15_ = X4 - X16_ = X5 - X17_ = X6 - X18_ = X7 - X19_ = X8 - X20_ = X9 - X21_ = X10 - X22_ = global (indt «nat») - X23_ = c0 \ -global (indt «nat») - X24_ = c0 \ -fun `x` (global (indt «nat»)) c1 \ app [global (const «leq»), c1, c0] - X25_ = c0 \ -app [global (indt «ord»), c0] - X26_ = c0 \ -app [global (const «oval»), c0] - X27_ = c0 \ -fun `K` - (prod `x` (app [global (indt «ord»), c0]) c1 \ sort (typ «is_SUB.u2»)) - c1 \ - fun `K_S` - (prod `x` (global (indt «nat»)) c2 \ - prod `Px` - (app - [global (indt «eq»), global (indt «bool»), - app - [fun `x` (global (indt «nat»)) c3 \ - app [global (const «leq»), c3, c0], c2], global (indc «true»)]) - c3 \ app [c1, app [global (indc «Ord»), c0, c2, c3]]) c2 \ - fun `_elpi_renamed_u_3` (app [global (indt «ord»), c0]) c3 \ - match c3 (fun `xxx` (app [global (indt «ord»), c0]) c4 \ app [c1, c4]) - [fun `x` (global (indt «nat»)) c4 \ - fun `Px` - (app - [global (indt «eq»), global (indt «bool»), - app [global (const «leq»), c4, c0], global (indc «true»)]) c5 \ - app [c2, c4, c5]] -Universe constraints: -UNIVERSES: - {elpi_tests_stdlib.test_quotation.28 elpi_tests_stdlib.test_quotation.27} |= - Set <= is_SUB.u0 - Set <= is_SUB.u1 - Set <= elpi_tests_stdlib.test_quotation.27 - is_SUB.u2 <= elpi_tests_stdlib.test_quotation.28 -ALGEBRAIC UNIVERSES: - {elpi_tests_stdlib.test_quotation.28 elpi_tests_stdlib.test_quotation.27} -FLEXIBLE UNIVERSES: - elpi_tests_stdlib.test_quotation.28 - elpi_tests_stdlib.test_quotation.27 -SORTS: - α24 := Type - α25 := Type -WEAK CONSTRAINTS: - - +----<<---- 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: -[elpi] - gterm2lp: term=(fun u => - {| val := oval u; Sub := _; Sub_rect := inlined_sub_rect |}) -Debug: [elpi] gterm2lp: term=_ +---->>---- 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: -[elpi] - gterm2lp: term={| val := oval u; Sub := _; Sub_rect := inlined_sub_rect |} -Debug: [elpi] gterm2lp: term=SubType -Debug: [elpi] gterm2lp: term=_ -Debug: [elpi] gterm2lp: term=_ -Debug: [elpi] gterm2lp: term=_ -Debug: [elpi] gterm2lp: term=(oval u) -Debug: [elpi] gterm2lp: term=oval -Debug: [elpi] gterm2lp: term=u -Debug: [elpi] gterm2lp: term=_ -Debug: [elpi] gterm2lp: term=inlined_sub_rect -Debug: [elpi] gterm2lp: term=_ +----<<---- 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: -[elpi] - gterm2lp: term=(fun K_S u => - let (x, Px) as u0 return (K u0) := u in K_S x Px) -Debug: [elpi] gterm2lp: term=_ +---->>---- exit: +coq.say typed: + (inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.129»))) c0 \ + []) Debug: -[elpi] - gterm2lp: term=(fun u => let (x, Px) as u0 return (K u0) := u in K_S x Px) -Debug: [elpi] gterm2lp: term=_ +----<<---- enter: +coq.upoly-decl->attribute + (upoly-decl [«elpi.tests.test_arg_HOAS.129»] tt [] tt) X0 Debug: -[elpi] - gterm2lp: term=(let (x, Px) as u0 return (K u0) := _elpi_renamed_u_3 in - K_S x Px) -Debug: [elpi] gterm2lp: term=_elpi_renamed_u_3 -Debug: [elpi] gterm2lp: term=(fun u0 => K u0) -Debug: [elpi] gterm2lp: term=_ -Debug: [elpi] gterm2lp: term=(K u0) -Debug: [elpi] gterm2lp: term=K -Debug: [elpi] gterm2lp: term=u0 -Debug: [elpi] gterm2lp: term=(fun x Px => K_S x Px) -Debug: [elpi] gterm2lp: term=_ -Debug: [elpi] gterm2lp: term=(fun Px => K_S x Px) -Debug: [elpi] gterm2lp: term=_ -Debug: [elpi] gterm2lp: term=(K_S x Px) -Debug: [elpi] gterm2lp: term=K_S -Debug: [elpi] gterm2lp: term=x -Debug: [elpi] gterm2lp: term=Px +---->>---- 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: -[elpi] - elpi sigma -> coq sigma: before: -SHELF: -FUTURE GOALS STACK: - - -Rocq-Elpi mapping: -RAW: -ELAB: - +----<<---- 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: -[elpi] - elpi sigma -> coq sigma: synchronized: -SHELF: -FUTURE GOALS STACK: - - -Rocq-Elpi mapping: -RAW: -ELAB: - +---->>---- 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: -[elpi] - elpi sigma -> coq sigma: after: -SHELF: -FUTURE GOALS STACK: - - -Rocq-Elpi mapping: -RAW: -ELAB: - +----<<---- 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: -[elpi] - lp2term: depth=0 ctx=[] term=fun `u` X0 c0 \ - app - [global (indc «SubType»), X1 c0, X2 c0, X3 c0, - app [global (const «oval»), c0], X4 c0, - fun `K` (X5 c0) c1 \ - fun `K_S` (X6 c0 c1) c2 \ - fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \ - match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) - [fun `x` (X9 c0 c1 c2 c3) c4 \ - fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]]] +---->>---- 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: -[elpi] - lp2term@0:fun `u` X0 c0 \ - app - [global (indc «SubType»), X1 c0, X2 c0, X3 c0, - app [global (const «oval»), c0], X4 c0, - fun `K` (X5 c0) c1 \ - fun `K_S` (X6 c0 c1) c2 \ - fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \ - match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) - [fun `x` (X9 c0 c1 c2 c3) c4 \ - fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]]] -Debug: [elpi] lp2term@0:X0 -Debug: [elpi] lp2term: evar: calldepth:0 X0 RAW: -ELAB: - -Debug: [elpi] lp2term: evar: unknown: calldepth:0 X0 -Debug: [elpi] lp2term: evar: create_unknown: whole ctx: ; -Debug: [elpi] lp2term: evar: create_unknown: visible ctx: -Debug: [elpi] restrict_coq_context: named: -Debug: [elpi] lp2term: evar: create_unknown: restricted ctx: +----<<---- 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: -[elpi] - lp2term: evar: create_unknown: new link: ? |> |- ? = ?X41 - EVARS: - ?X41==[ |- Type] (internal placeholder) {?e} - -UNIVERSES: - {elpi_tests_stdlib.test_quotation.29} |= -ALGEBRAIC UNIVERSES: - {} -FLEXIBLE UNIVERSES: - -SORTS: - α26 -WEAK CONSTRAINTS: - -SHELF: -FUTURE GOALS STACK: - ?X41 - -Debug: [elpi] lp2term@0:X0 +---->>---- 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: -[elpi] lp2term: evar: calldepth:0 X0 RAW: -?X41 <-> X0 -ELAB: -?X41 <-> X0 - -Debug: [elpi] lp2term: evar: already in Coq: ?X41 +----<<---- 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: -[elpi] - lp2term@1:app - [global (indc «SubType»), X1 c0, X2 c0, X3 c0, - app [global (const «oval»), c0], X4 c0, - fun `K` (X5 c0) c1 \ - fun `K_S` (X6 c0 c1) c2 \ - fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \ - match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) - [fun `x` (X9 c0 c1 c2 c3) c4 \ - fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]]] -Debug: [elpi] lp2term@1:global (indc «SubType») -Debug: [elpi] lp2term@1:X1 c0 +---->>---- exit: +coq.say typed: + (inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.137»))) c0 \ + []) Debug: -[elpi] lp2term: evar: calldepth:0 X1 c0 RAW: -?X41 <-> X0 -ELAB: -?X41 <-> X0 - -Debug: [elpi] lp2term: evar: unknown: calldepth:0 X1 -Debug: [elpi] lp2term: evar: create_unknown: whole ctx: ; (u : ?e) -Debug: [elpi] lp2term: evar: create_unknown: visible ctx:c0 -Debug: [elpi] restrict_coq_context: named: +----<<---- enter: +coq.upoly-decl->attribute + (upoly-decl-cumul [auto «elpi.tests.test_arg_HOAS.137»] tt [] tt) X0 Debug: -[elpi] - restrict_coq_context: cur rel ctx: - restrict_coq_context: cur subst: - restrict_coq_context: looking at u(dbl 0) -Debug: [elpi] ?e--0->?e -Debug: [elpi] lp2term: evar: create_unknown: restricted ctx:(u : ?e) -Debug: [elpi] in_elpi_evar:?X42 +---->>---- 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: -[elpi] - lp2term: evar: create_unknown: new link: ? |> |- ? = ?X43 - EVARS: - ?X43==[u |- ?e0] (internal placeholder) {?e1} - ?X42==[u |- Type] (internal placeholder) {?e0} - ?X41==[ |- Type] (internal placeholder) {?e} +----<<---- 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_stdlib.test_quotation.30 elpi_tests_stdlib.test_quotation.29} |= + {elpi.tests.test_arg_HOAS.145} |= ALGEBRAIC UNIVERSES: {} FLEXIBLE UNIVERSES: - + elpi.tests.test_arg_HOAS.145 SORTS: - α26 - α27 + WEAK CONSTRAINTS: -SHELF: -FUTURE GOALS STACK:?X43 ?X42 -?X41 - -Debug: [elpi] lp2term@1:X1 c0 -Debug: -[elpi] - lp2term: evar: calldepth:0 X1 c0 - RAW: -?X41 <-> X0 -?X42 <-> X12 -?X43 <-> X1 -ELAB: -?X41 <-> X0 -?X42 <-> X11 -?X43 <-> X1 - -Debug: [elpi] lp2term: evar: already in Coq: ?X43 -Debug: [elpi] lp2term@1:c0 -Debug: [elpi] lp2term@1:X2 c0 -Debug: -[elpi] - lp2term: evar: calldepth:0 X2 c0 - RAW: -?X41 <-> X0 -?X42 <-> X12 -?X43 <-> X1 -ELAB: -?X41 <-> X0 -?X42 <-> X11 -?X43 <-> X1 - -Debug: [elpi] lp2term: evar: unknown: calldepth:0 X2 -Debug: [elpi] lp2term: evar: create_unknown: whole ctx: ; (u : ?e) -Debug: [elpi] lp2term: evar: create_unknown: visible ctx:c0 -Debug: [elpi] restrict_coq_context: named: -Debug: -[elpi] - restrict_coq_context: cur rel ctx: - restrict_coq_context: cur subst: - restrict_coq_context: looking at u(dbl 0) -Debug: [elpi] ?e--0->?e -Debug: [elpi] lp2term: evar: create_unknown: restricted ctx:(u : ?e) -Debug: [elpi] in_elpi_evar:?X44 -Debug: -[elpi] - lp2term: evar: create_unknown: new link: ? |> |- ? = ?X45 - EVARS: - ?X45==[u |- ?e2] (internal placeholder) {?e3} - ?X44==[u |- Type] (internal placeholder) {?e2} - ?X43==[u |- ?e0] (internal placeholder) {?e1} - ?X42==[u |- Type] (internal placeholder) {?e0} - ?X41==[ |- Type] (internal placeholder) {?e} +Query assignments: + GR = indt «X4» +Universe constraints: UNIVERSES: - {elpi_tests_stdlib.test_quotation.31 elpi_tests_stdlib.test_quotation.30 - elpi_tests_stdlib.test_quotation.29} |= + {elpi.tests.test_arg_HOAS.146} |= ALGEBRAIC UNIVERSES: {} FLEXIBLE UNIVERSES: - + elpi.tests.test_arg_HOAS.146 SORTS: - α26 - α27 - α28 + WEAK CONSTRAINTS: -SHELF: -FUTURE GOALS STACK:?X45 ?X44 ?X43 ?X42 -?X41 -Debug: [elpi] lp2term@1:X2 c0 Debug: -[elpi] - lp2term: evar: calldepth:0 X2 c0 - RAW: -?X41 <-> X0 -?X42 <-> X12 -?X43 <-> X1 -?X44 <-> X14 -?X45 <-> X2 -ELAB: -?X41 <-> X0 -?X42 <-> X11 -?X43 <-> X1 -?X44 <-> X13 -?X45 <-> X2 - -Debug: [elpi] lp2term: evar: already in Coq: ?X45 -Debug: [elpi] lp2term@1:c0 -Debug: [elpi] lp2term@1:X3 c0 +----<<---- 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] +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] +d1 + : nat +d2 + : nat +i1 + : Prop +i2 + : Prop +k1 + : i1 +k2 + : i2 +r1 + : Set +r2 + : Type +f1 + : r1 -> nat +f2 + : r2 -> nat +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/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] +z + : nat +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] +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] +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») +fix X0 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 `_elpi_renamed_n_2` (global (indt «nat»)) c3 \ X1 c1 c2 c3) + [c2, fun `p` (X2 c1 c2) c3 \ app [c0, c3, c2]] +fix X0 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 `_elpi_renamed_n_2` (global (indt «nat»)) c3 \ + global (indt «nat»)) [c2, fun `p` (X3 c1 c2) c3 \ app [c0, c3, c2]] +Query assignments: + BO1 = fix X0 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 `_elpi_renamed_n_2` (global (indt «nat»)) c3 \ + global (indt «nat»)) [c2, fun `p` (X3 c1 c2) c3 \ app [c0, c3, c2]] + GR = «Nat.add» + TY = prod `n` (global (indt «nat»)) c0 \ + prod `m` (global (indt «nat»)) c1 \ global (indt «nat») + X1_ = c0 \ c1 \ c2 \ +global (indt «nat») + X2_ = c0 \ c1 \ +X3 c0 c1 +Syntactic constraints: + {c0 c1} : + decl c1 `m` (global (indt «nat»)), decl c0 `n` (global (indt «nat»)) + ?- evar (X3 c0 c1) (sort (typ «elpi_tests_stdlib.test_quotation.2»)) + (X3 c0 c1) /* suspended on X3 */ +Universe constraints: +UNIVERSES: + {elpi_tests_stdlib.test_quotation.3 elpi_tests_stdlib.test_quotation.2 + elpi_tests_stdlib.test_quotation.1} |= + Set <= elpi_tests_stdlib.test_quotation.3 +ALGEBRAIC UNIVERSES: + {} +FLEXIBLE UNIVERSES: + elpi_tests_stdlib.test_quotation.3 +SORTS: + α1 + α2 +WEAK CONSTRAINTS: + + +fun `v` + (app + [global (indt «Vector.t»), global (indt «nat»), + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]) + c0 \ + match c0 + (fun `_` (X0 c0) c1 \ + fun `_elpi_renamed_v_1` (app [global (indt «Vector.t»), X1 c0, X2 c0]) + c2 \ X3 c0 c2) + [global (indc «O»), + fun `_` (X4 c0) c1 \ + fun `_` (X5 c0) c2 \ + fun `_` (X6 c0) c3 \ app [global (indc «S»), global (indc «O»)]] +fun `v` + (app + [global (indt «Vector.t»), global (indt «nat»), + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]) + c0 \ + match c0 + (fun `_` (X7 c0) c1 \ + fun `_elpi_renamed_v_1` + (app [global (indt «Vector.t»), global (indt «nat»), X8 c0]) c2 \ + global (indt «nat»)) + [global (indc «O»), + fun `_` (X9 c0) c1 \ + fun `_` (X10 c0) c2 \ + fun `_` (X11 c0) c3 \ app [global (indc «S»), global (indc «O»)]] +Query assignments: + T = fun `v` + (app + [global (indt «Vector.t»), global (indt «nat»), + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]) + c0 \ + match c0 + (fun `_` (X7 c0) c1 \ + fun `_elpi_renamed_v_1` + (app [global (indt «Vector.t»), global (indt «nat»), X8 c0]) c2 \ + global (indt «nat»)) + [global (indc «O»), + fun `_` (X9 c0) c1 \ + fun `_` (X10 c0) c2 \ + fun `_` (X11 c0) c3 \ app [global (indc «S»), global (indc «O»)]] + X3_ = c0 \ +X7 c0 + X4_ = c0 \ +global (indt «nat») + X5_ = c0 \ +X8 c0 + X6_ = c0 \ c1 \ +global (indt «nat») + X7_ = c0 \ +X9 c0 + X8_ = c0 \ +X10 c0 + X9_ = c0 \ +X11 c0 +Syntactic constraints: + {c0} : + decl c0 `v` + (app + [global (indt «Vector.t»), global (indt «nat»), + app + [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]) + ?- evar (X11 c0) (sort (typ «elpi_tests_stdlib.test_quotation.10»)) + (X11 c0) /* suspended on X11 */ + {c0} : + decl c0 `v` + (app + [global (indt «Vector.t»), global (indt «nat»), + app + [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]) + ?- evar (X10 c0) (sort (typ «elpi_tests_stdlib.test_quotation.9»)) + (X10 c0) /* suspended on X10 */ + {c0} : + decl c0 `v` + (app + [global (indt «Vector.t»), global (indt «nat»), + app + [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]) + ?- evar (X9 c0) (sort (typ «elpi_tests_stdlib.test_quotation.8»)) + (X9 c0) /* suspended on X9 */ + {c0} : + decl c0 `v` + (app + [global (indt «Vector.t»), global (indt «nat»), + app + [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]) + ?- evar (X8 c0) (X12 c0) (X8 c0) /* suspended on X8 */ + {c0} : + decl c0 `v` + (app + [global (indt «Vector.t»), global (indt «nat»), + app + [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]) + ?- evar (X13 c0) (sort (typ «elpi_tests_stdlib.test_quotation.6»)) + (X12 c0) /* suspended on X13, X12 */ + {c0} : + decl c0 `v` + (app + [global (indt «Vector.t»), global (indt «nat»), + app + [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]) + ?- evar (X7 c0) (sort (typ «elpi_tests_stdlib.test_quotation.4»)) + (X7 c0) /* suspended on X7 */ +Universe constraints: +UNIVERSES: + {elpi_tests_stdlib.test_quotation.12 elpi_tests_stdlib.test_quotation.11 + elpi_tests_stdlib.test_quotation.10 elpi_tests_stdlib.test_quotation.9 + elpi_tests_stdlib.test_quotation.8 elpi_tests_stdlib.test_quotation.7 + elpi_tests_stdlib.test_quotation.6 elpi_tests_stdlib.test_quotation.5 + elpi_tests_stdlib.test_quotation.4} |= + elpi_tests_stdlib.test_quotation.11 < elpi_tests_stdlib.test_quotation.5 + Set <= Vector.t.u0 + Set <= elpi_tests_stdlib.test_quotation.11 + Set <= elpi_tests_stdlib.test_quotation.12 + elpi_tests_stdlib.test_quotation.11 <= Vector.t.u0 +ALGEBRAIC UNIVERSES: + {} +FLEXIBLE UNIVERSES: + elpi_tests_stdlib.test_quotation.12 +SORTS: + α3 + α4 := Type + α5 + α6 + α7 + α8 + α9 +WEAK CONSTRAINTS: + + +3 +Query assignments: + X = 3 +fun `x` X0 c0 \ app [X1, c0] +Query assignments: + X = X1 + X10_ = X0 + Y = fun `x` X0 c0 \ app [X1, c0] +fun `r` (global (indt «nat»)) c0 \ + fun `p` + (prod `y` (global (indt «nat»)) c1 \ + app + [global (indt «eq»), global (indt «nat»), c1, global (indc «O»)]) + c1 \ + fun `q` (global (indt «bool»)) c2 \ + prod `y` (global (indt «nat»)) c3 \ + app + [global (indt «eq»), global (indt «nat»), c3, global (indc «O»)] +Query assignments: + %arg1 = c0 \ c1 \ c2 \ +prod `y` (global (indt «nat»)) c3 \ + app [global (indt «eq»), global (indt «nat»), c3, global (indc «O»)] + X = fun `r` (global (indt «nat»)) c0 \ + fun `p` + (prod `y` (global (indt «nat»)) c1 \ + app + [global (indt «eq»), global (indt «nat»), c1, global (indc «O»)]) + c1 \ + fun `q` (global (indt «bool»)) c2 \ + prod `y` (global (indt «nat»)) c3 \ + app + [global (indt «eq»), global (indt «nat»), c3, global (indc «O»)] +fun u : nat => +{| val := oval u; Sub := Ord u; Sub_rect := inlined_sub_rect |} + : forall u : nat, is_SUB nat (fun x : nat => leq x u) (ord u) +Debug: +[elpi] + gterm2lp: term=(fun u => + {| val := oval u; Sub := _; Sub_rect := inlined_sub_rect |}) +Debug: [elpi] gterm2lp: term=_ +Debug: +[elpi] + gterm2lp: term={| val := oval u; Sub := _; Sub_rect := inlined_sub_rect |} +Debug: [elpi] gterm2lp: term=SubType +Debug: [elpi] gterm2lp: term=_ +Debug: [elpi] gterm2lp: term=_ +Debug: [elpi] gterm2lp: term=_ +Debug: [elpi] gterm2lp: term=(oval u) +Debug: [elpi] gterm2lp: term=oval +Debug: [elpi] gterm2lp: term=u +Debug: [elpi] gterm2lp: term=_ +Debug: [elpi] gterm2lp: term=inlined_sub_rect +Debug: [elpi] gterm2lp: term=_ +Debug: +[elpi] + gterm2lp: term=(fun K_S u => + let (x, Px) as u0 return (K u0) := u in K_S x Px) +Debug: [elpi] gterm2lp: term=_ +Debug: +[elpi] + gterm2lp: term=(fun u => let (x, Px) as u0 return (K u0) := u in K_S x Px) +Debug: [elpi] gterm2lp: term=_ +Debug: +[elpi] + gterm2lp: term=(let (x, Px) as u0 return (K u0) := _elpi_renamed_u_3 in + K_S x Px) +Debug: [elpi] gterm2lp: term=_elpi_renamed_u_3 +Debug: [elpi] gterm2lp: term=(fun u0 => K u0) +Debug: [elpi] gterm2lp: term=_ +Debug: [elpi] gterm2lp: term=(K u0) +Debug: [elpi] gterm2lp: term=K +Debug: [elpi] gterm2lp: term=u0 +Debug: [elpi] gterm2lp: term=(fun x Px => K_S x Px) +Debug: [elpi] gterm2lp: term=_ +Debug: [elpi] gterm2lp: term=(fun Px => K_S x Px) +Debug: [elpi] gterm2lp: term=_ +Debug: [elpi] gterm2lp: term=(K_S x Px) +Debug: [elpi] gterm2lp: term=K_S +Debug: [elpi] gterm2lp: term=x +Debug: [elpi] gterm2lp: term=Px +Debug: +[elpi] + gterm2lp: term=(fun u => + {| val := _; Sub := elpi_code:(K) u; Sub_rect := _ |}) +Debug: [elpi] gterm2lp: term=_ +Debug: +[elpi] gterm2lp: term={| val := _; Sub := elpi_code:(K) u; Sub_rect := _ |} +Debug: [elpi] gterm2lp: term=SubType +Debug: [elpi] gterm2lp: term=_ +Debug: [elpi] gterm2lp: term=_ +Debug: [elpi] gterm2lp: term=_ +Debug: [elpi] gterm2lp: term=_ +Debug: [elpi] gterm2lp: term=(elpi_code:(K) u) +Debug: [elpi] gterm2lp: term=elpi_code:(K) +Debug: [elpi] gterm2lp: term=u +Debug: [elpi] gterm2lp: term=_ +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +fun `u` X0 c0 \ + app + [global (indc «SubType»), X1 c0, X2 c0, X3 c0, + app [global (const «oval»), c0], X4 c0, + fun `K` (X5 c0) c1 \ + fun `K_S` (X6 c0 c1) c2 \ + fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \ + match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) + [fun `x` (X9 c0 c1 c2 c3) c4 \ + fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]]] +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +Debug: +[elpi] + elpi sigma -> coq sigma: before: +SHELF: +FUTURE GOALS STACK: + + +Rocq-Elpi mapping: +RAW: +ELAB: + +Debug: +[elpi] + elpi sigma -> coq sigma: synchronized: +SHELF: +FUTURE GOALS STACK: + + +Rocq-Elpi mapping: +RAW: +ELAB: + +Debug: +[elpi] + elpi sigma -> coq sigma: after: +SHELF: +FUTURE GOALS STACK: + + +Rocq-Elpi mapping: +RAW: +ELAB: + +Debug: +[elpi] + lp2term: depth=0 ctx=[] term=fun `u` X0 c0 \ + app + [global (indc «SubType»), X1 c0, X2 c0, X3 c0, + app [global (const «oval»), c0], X4 c0, + fun `K` (X5 c0) c1 \ + fun `K_S` (X6 c0 c1) c2 \ + fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \ + match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) + [fun `x` (X9 c0 c1 c2 c3) c4 \ + fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]]] +Debug: +[elpi] + lp2term@0:fun `u` X0 c0 \ + app + [global (indc «SubType»), X1 c0, X2 c0, X3 c0, + app [global (const «oval»), c0], X4 c0, + fun `K` (X5 c0) c1 \ + fun `K_S` (X6 c0 c1) c2 \ + fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \ + match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) + [fun `x` (X9 c0 c1 c2 c3) c4 \ + fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]]] +Debug: [elpi] lp2term@0:X0 +Debug: [elpi] lp2term: evar: calldepth:0 X0 RAW: +ELAB: + +Debug: +[elpi] + lp2term@1:app + [global (indc «SubType»), X1 c0, X2 c0, X3 c0, + app [global (const «oval»), c0], X4 c0, + fun `K` (X5 c0) c1 \ + fun `K_S` (X6 c0 c1) c2 \ + fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \ + match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) + [fun `x` (X9 c0 c1 c2 c3) c4 \ + fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]]] +Debug: [elpi] lp2term@1:global (indc «SubType») +Debug: [elpi] lp2term@1:X1 c0 +Debug: [elpi] lp2term: evar: calldepth:0 X1 c0 RAW: +ELAB: + +Debug: [elpi] lp2term@1:X2 c0 +Debug: [elpi] lp2term: evar: calldepth:0 X2 c0 RAW: +ELAB: + +Debug: [elpi] lp2term@1:X3 c0 +Debug: [elpi] lp2term: evar: calldepth:0 X3 c0 RAW: +ELAB: + +Debug: [elpi] lp2term@1:app [global (const «oval»), c0] +Debug: [elpi] lp2term@1:global (const «oval») +Debug: [elpi] lp2term@1:c0 +Debug: [elpi] lp2term@1:X4 c0 +Debug: [elpi] lp2term: evar: calldepth:0 X4 c0 RAW: +ELAB: + +Debug: +[elpi] + lp2term@1:fun `K` (X5 c0) c1 \ + fun `K_S` (X6 c0 c1) c2 \ + fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \ + match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) + [fun `x` (X9 c0 c1 c2 c3) c4 \ + fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]] +Debug: [elpi] lp2term@1:X5 c0 +Debug: [elpi] lp2term: evar: calldepth:0 X5 c0 RAW: +ELAB: + +Debug: +[elpi] + lp2term@2:fun `K_S` (X6 c0 c1) c2 \ + fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \ + match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) + [fun `x` (X9 c0 c1 c2 c3) c4 \ + fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]] +Debug: [elpi] lp2term@2:X6 c0 c1 +Debug: [elpi] lp2term: evar: calldepth:0 X6 c0 c1 RAW: +ELAB: + +Debug: +[elpi] + lp2term@3:fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \ + match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) + [fun `x` (X9 c0 c1 c2 c3) c4 \ + fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]] +Debug: [elpi] lp2term@3:X7 c0 c1 c2 +Debug: [elpi] lp2term: evar: calldepth:0 X7 c0 c1 c2 RAW: +ELAB: + +Debug: +[elpi] + lp2term@4:match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) + [fun `x` (X9 c0 c1 c2 c3) c4 \ + fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]] +Debug: [elpi] lp2term@4:c3 +Debug: [elpi] lp2term@4:fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4] +Debug: [elpi] lp2term@4:X8 c0 c1 c2 c3 +Debug: [elpi] lp2term: evar: calldepth:0 X8 c0 c1 c2 c3 RAW: +ELAB: + +Debug: [elpi] lp2term@5:app [c1, c4] +Debug: [elpi] lp2term@5:c1 +Debug: [elpi] lp2term@5:c4 +Debug: +[elpi] + lp2term@4:fun `x` (X9 c0 c1 c2 c3) c4 \ + fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5] +Debug: [elpi] lp2term@4:X9 c0 c1 c2 c3 +Debug: [elpi] lp2term: evar: calldepth:0 X9 c0 c1 c2 c3 RAW: +ELAB: + +Debug: [elpi] lp2term@5:fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5] +Debug: [elpi] lp2term@5:X10 c0 c1 c2 c3 c4 +Debug: [elpi] lp2term: evar: calldepth:0 X10 c0 c1 c2 c3 c4 RAW: +ELAB: + +Debug: [elpi] lp2term@6:app [c2, c4, c5] +Debug: [elpi] lp2term@6:c2 +Debug: [elpi] lp2term@6:c4 +Debug: [elpi] lp2term@6:c5 +Debug: +[elpi] + lp2term: out=(fun u : hole hole => + {| + val := oval u; + Sub := hole u hole; + Sub_rect := + fun (K : hole u hole) (K_S : hole K u hole) + (_elpi_renamed_u_3 : hole K_S K u hole) => + let + (x, Px) as u0 + return (hole u0 _elpi_renamed_u_3 K_S K hole) := + _elpi_renamed_u_3 in + K_S x Px + |}) + elpi2coq: + RAW: +ELAB: +SHELF: + + FUTURE GOALS STACK: + + +Debug: +[elpi] + detype: (fun u : hole hole => + {| + val := oval u; + Sub := hole u hole; + Sub_rect := + fun (K : hole u hole) (K_S : hole K u hole) + (_elpi_renamed_u_3 : hole K_S K u hole) => + let + (x, Px) as u0 + return (hole u0 _elpi_renamed_u_3 K_S K hole) := + _elpi_renamed_u_3 in + K_S x Px + |}) +Debug: [elpi] bringing updated sigma back to lp +Debug: +[elpi] + term2lp: depth=0 ctx= term=(forall u : nat, + is_SUB nat (fun x : nat => leq x u) (ord u)) +Debug: +[elpi] + term2lp (out): prod `u` (global (indt «nat»)) c0 \ + app + [global (indt «is_SUB»), global (indt «nat»), + fun `x` (global (indt «nat»)) c1 \ app [global (const «leq»), c1, c0], + app [global (indt «ord»), c0]] +Debug: +[elpi] + term2lp: depth=0 ctx= term=(fun u : nat => + {| + val := oval u; + Sub := Ord u; + Sub_rect := inlined_sub_rect + |}) +Debug: +[elpi] + term2lp (out): fun `u` (global (indt «nat»)) c0 \ + app + [global (indc «SubType»), global (indt «nat»), + fun `x` (global (indt «nat»)) c1 \ app [global (const «leq»), c1, c0], + app [global (indt «ord»), c0], app [global (const «oval»), c0], + app [global (indc «Ord»), c0], + fun `K` + (prod `x` (app [global (indt «ord»), c0]) c1 \ sort (typ «is_SUB.u2»)) + c1 \ + fun `K_S` + (prod `x` (global (indt «nat»)) c2 \ + prod `Px` + (app + [global (indt «eq»), global (indt «bool»), + app + [fun `x` (global (indt «nat»)) c3 \ + app [global (const «leq»), c3, c0], c2], + global (indc «true»)]) c3 \ + app [c1, app [global (indc «Ord»), c0, c2, c3]]) c2 \ + fun `_elpi_renamed_u_3` (app [global (indt «ord»), c0]) c3 \ + match c3 + (fun `xxx` (app [global (indt «ord»), c0]) c4 \ app [c1, c4]) + [fun `x` (global (indt «nat»)) c4 \ + fun `Px` + (app + [global (indt «eq»), global (indt «bool»), + app [global (const «leq»), c4, c0], global (indc «true»)]) + c5 \ app [c2, c4, c5]]] +Debug: +[elpi] + Elpi: query-compilation:0.0027 static-check:0.0000 optimization:0.0001 runtime:0.0064 (with success) + +Query assignments: + GR = indc «Ord» + K = global (indc «Ord») + T = fun `u` X0 c0 \ + app + [global (indc «SubType»), X1 c0, X2 c0, X3 c0, + app [global (const «oval»), c0], X4 c0, + fun `K` (X5 c0) c1 \ + fun `K_S` (X6 c0 c1) c2 \ + fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \ + match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) + [fun `x` (X9 c0 c1 c2 c3) c4 \ + fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]]] + T1 = fun `u` (global (indt «nat»)) c0 \ + app + [global (indc «SubType»), global (indt «nat»), + fun `x` (global (indt «nat»)) c1 \ app [global (const «leq»), c1, c0], + app [global (indt «ord»), c0], app [global (const «oval»), c0], + app [global (indc «Ord»), c0], + fun `K` + (prod `x` (app [global (indt «ord»), c0]) c1 \ sort (typ «is_SUB.u2»)) + c1 \ + fun `K_S` + (prod `x` (global (indt «nat»)) c2 \ + prod `Px` + (app + [global (indt «eq»), global (indt «bool»), + app + [fun `x` (global (indt «nat»)) c3 \ + app [global (const «leq»), c3, c0], c2], + global (indc «true»)]) c3 \ + app [c1, app [global (indc «Ord»), c0, c2, c3]]) c2 \ + fun `_elpi_renamed_u_3` (app [global (indt «ord»), c0]) c3 \ + match c3 + (fun `xxx` (app [global (indt «ord»), c0]) c4 \ app [c1, c4]) + [fun `x` (global (indt «nat»)) c4 \ + fun `Px` + (app + [global (indt «eq»), global (indt «bool»), + app [global (const «leq»), c4, c0], global (indc «true»)]) + c5 \ app [c2, c4, c5]]] + X11_ = X0 + X12_ = X1 + X13_ = X2 + X14_ = X3 + X15_ = X4 + X16_ = X5 + X17_ = X6 + X18_ = X7 + X19_ = X8 + X20_ = X9 + X21_ = X10 + X22_ = global (indt «nat») + X23_ = c0 \ +global (indt «nat») + X24_ = c0 \ +fun `x` (global (indt «nat»)) c1 \ app [global (const «leq»), c1, c0] + X25_ = c0 \ +app [global (indt «ord»), c0] + X26_ = c0 \ +app [global (const «oval»), c0] + X27_ = c0 \ +fun `K` + (prod `x` (app [global (indt «ord»), c0]) c1 \ sort (typ «is_SUB.u2»)) + c1 \ + fun `K_S` + (prod `x` (global (indt «nat»)) c2 \ + prod `Px` + (app + [global (indt «eq»), global (indt «bool»), + app + [fun `x` (global (indt «nat»)) c3 \ + app [global (const «leq»), c3, c0], c2], global (indc «true»)]) + c3 \ app [c1, app [global (indc «Ord»), c0, c2, c3]]) c2 \ + fun `_elpi_renamed_u_3` (app [global (indt «ord»), c0]) c3 \ + match c3 (fun `xxx` (app [global (indt «ord»), c0]) c4 \ app [c1, c4]) + [fun `x` (global (indt «nat»)) c4 \ + fun `Px` + (app + [global (indt «eq»), global (indt «bool»), + app [global (const «leq»), c4, c0], global (indc «true»)]) c5 \ + app [c2, c4, c5]] +Universe constraints: +UNIVERSES: + {elpi_tests_stdlib.test_quotation.28 elpi_tests_stdlib.test_quotation.27} |= + Set <= is_SUB.u0 + Set <= is_SUB.u1 + Set <= elpi_tests_stdlib.test_quotation.27 + is_SUB.u2 <= elpi_tests_stdlib.test_quotation.28 +ALGEBRAIC UNIVERSES: + {elpi_tests_stdlib.test_quotation.28 elpi_tests_stdlib.test_quotation.27} +FLEXIBLE UNIVERSES: + elpi_tests_stdlib.test_quotation.28 + elpi_tests_stdlib.test_quotation.27 +SORTS: + α24 := Type + α25 := Type +WEAK CONSTRAINTS: + + +Debug: +[elpi] + gterm2lp: term=(fun u => + {| val := oval u; Sub := _; Sub_rect := inlined_sub_rect |}) +Debug: [elpi] gterm2lp: term=_ +Debug: +[elpi] + gterm2lp: term={| val := oval u; Sub := _; Sub_rect := inlined_sub_rect |} +Debug: [elpi] gterm2lp: term=SubType +Debug: [elpi] gterm2lp: term=_ +Debug: [elpi] gterm2lp: term=_ +Debug: [elpi] gterm2lp: term=_ +Debug: [elpi] gterm2lp: term=(oval u) +Debug: [elpi] gterm2lp: term=oval +Debug: [elpi] gterm2lp: term=u +Debug: [elpi] gterm2lp: term=_ +Debug: [elpi] gterm2lp: term=inlined_sub_rect +Debug: [elpi] gterm2lp: term=_ +Debug: +[elpi] + gterm2lp: term=(fun K_S u => + let (x, Px) as u0 return (K u0) := u in K_S x Px) +Debug: [elpi] gterm2lp: term=_ +Debug: +[elpi] + gterm2lp: term=(fun u => let (x, Px) as u0 return (K u0) := u in K_S x Px) +Debug: [elpi] gterm2lp: term=_ +Debug: +[elpi] + gterm2lp: term=(let (x, Px) as u0 return (K u0) := _elpi_renamed_u_3 in + K_S x Px) +Debug: [elpi] gterm2lp: term=_elpi_renamed_u_3 +Debug: [elpi] gterm2lp: term=(fun u0 => K u0) +Debug: [elpi] gterm2lp: term=_ +Debug: [elpi] gterm2lp: term=(K u0) +Debug: [elpi] gterm2lp: term=K +Debug: [elpi] gterm2lp: term=u0 +Debug: [elpi] gterm2lp: term=(fun x Px => K_S x Px) +Debug: [elpi] gterm2lp: term=_ +Debug: [elpi] gterm2lp: term=(fun Px => K_S x Px) +Debug: [elpi] gterm2lp: term=_ +Debug: [elpi] gterm2lp: term=(K_S x Px) +Debug: [elpi] gterm2lp: term=K_S +Debug: [elpi] gterm2lp: term=x +Debug: [elpi] gterm2lp: term=Px +Debug: +[elpi] + elpi sigma -> coq sigma: before: +SHELF: +FUTURE GOALS STACK: + + +Rocq-Elpi mapping: +RAW: +ELAB: + +Debug: +[elpi] + elpi sigma -> coq sigma: synchronized: +SHELF: +FUTURE GOALS STACK: + + +Rocq-Elpi mapping: +RAW: +ELAB: + +Debug: +[elpi] + elpi sigma -> coq sigma: after: +SHELF: +FUTURE GOALS STACK: + + +Rocq-Elpi mapping: +RAW: +ELAB: + +Debug: +[elpi] + lp2term: depth=0 ctx=[] term=fun `u` X0 c0 \ + app + [global (indc «SubType»), X1 c0, X2 c0, X3 c0, + app [global (const «oval»), c0], X4 c0, + fun `K` (X5 c0) c1 \ + fun `K_S` (X6 c0 c1) c2 \ + fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \ + match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) + [fun `x` (X9 c0 c1 c2 c3) c4 \ + fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]]] +Debug: +[elpi] + lp2term@0:fun `u` X0 c0 \ + app + [global (indc «SubType»), X1 c0, X2 c0, X3 c0, + app [global (const «oval»), c0], X4 c0, + fun `K` (X5 c0) c1 \ + fun `K_S` (X6 c0 c1) c2 \ + fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \ + match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) + [fun `x` (X9 c0 c1 c2 c3) c4 \ + fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]]] +Debug: [elpi] lp2term@0:X0 +Debug: [elpi] lp2term: evar: calldepth:0 X0 RAW: +ELAB: + +Debug: [elpi] lp2term: evar: unknown: calldepth:0 X0 +Debug: [elpi] lp2term: evar: create_unknown: whole ctx: ; +Debug: [elpi] lp2term: evar: create_unknown: visible ctx: +Debug: [elpi] restrict_coq_context: named: +Debug: [elpi] lp2term: evar: create_unknown: restricted ctx: +Debug: +[elpi] + lp2term: evar: create_unknown: new link: ? |> |- ? = ?X41 + EVARS: + ?X41==[ |- Type] (internal placeholder) {?e} + +UNIVERSES: + {elpi_tests_stdlib.test_quotation.29} |= +ALGEBRAIC UNIVERSES: + {} +FLEXIBLE UNIVERSES: + +SORTS: + α26 +WEAK CONSTRAINTS: + +SHELF: +FUTURE GOALS STACK: + ?X41 + +Debug: [elpi] lp2term@0:X0 +Debug: +[elpi] lp2term: evar: calldepth:0 X0 RAW: +?X41 <-> X0 +ELAB: +?X41 <-> X0 + +Debug: [elpi] lp2term: evar: already in Coq: ?X41 +Debug: +[elpi] + lp2term@1:app + [global (indc «SubType»), X1 c0, X2 c0, X3 c0, + app [global (const «oval»), c0], X4 c0, + fun `K` (X5 c0) c1 \ + fun `K_S` (X6 c0 c1) c2 \ + fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \ + match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) + [fun `x` (X9 c0 c1 c2 c3) c4 \ + fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]]] +Debug: [elpi] lp2term@1:global (indc «SubType») +Debug: [elpi] lp2term@1:X1 c0 +Debug: +[elpi] lp2term: evar: calldepth:0 X1 c0 RAW: +?X41 <-> X0 +ELAB: +?X41 <-> X0 + +Debug: [elpi] lp2term: evar: unknown: calldepth:0 X1 +Debug: [elpi] lp2term: evar: create_unknown: whole ctx: ; (u : ?e) +Debug: [elpi] lp2term: evar: create_unknown: visible ctx:c0 +Debug: [elpi] restrict_coq_context: named: +Debug: +[elpi] + restrict_coq_context: cur rel ctx: + restrict_coq_context: cur subst: + restrict_coq_context: looking at u(dbl 0) +Debug: [elpi] ?e--0->?e +Debug: [elpi] lp2term: evar: create_unknown: restricted ctx:(u : ?e) +Debug: [elpi] in_elpi_evar:?X42 +Debug: +[elpi] + lp2term: evar: create_unknown: new link: ? |> |- ? = ?X43 + EVARS: + ?X43==[u |- ?e0] (internal placeholder) {?e1} + ?X42==[u |- Type] (internal placeholder) {?e0} + ?X41==[ |- Type] (internal placeholder) {?e} + +UNIVERSES: + {elpi_tests_stdlib.test_quotation.30 elpi_tests_stdlib.test_quotation.29} |= +ALGEBRAIC UNIVERSES: + {} +FLEXIBLE UNIVERSES: + +SORTS: + α26 + α27 +WEAK CONSTRAINTS: + +SHELF: +FUTURE GOALS STACK:?X43 ?X42 +?X41 + +Debug: [elpi] lp2term@1:X1 c0 +Debug: +[elpi] + lp2term: evar: calldepth:0 X1 c0 + RAW: +?X41 <-> X0 +?X42 <-> X12 +?X43 <-> X1 +ELAB: +?X41 <-> X0 +?X42 <-> X11 +?X43 <-> X1 + +Debug: [elpi] lp2term: evar: already in Coq: ?X43 +Debug: [elpi] lp2term@1:c0 +Debug: [elpi] lp2term@1:X2 c0 +Debug: +[elpi] + lp2term: evar: calldepth:0 X2 c0 + RAW: +?X41 <-> X0 +?X42 <-> X12 +?X43 <-> X1 +ELAB: +?X41 <-> X0 +?X42 <-> X11 +?X43 <-> X1 + +Debug: [elpi] lp2term: evar: unknown: calldepth:0 X2 +Debug: [elpi] lp2term: evar: create_unknown: whole ctx: ; (u : ?e) +Debug: [elpi] lp2term: evar: create_unknown: visible ctx:c0 +Debug: [elpi] restrict_coq_context: named: +Debug: +[elpi] + restrict_coq_context: cur rel ctx: + restrict_coq_context: cur subst: + restrict_coq_context: looking at u(dbl 0) +Debug: [elpi] ?e--0->?e +Debug: [elpi] lp2term: evar: create_unknown: restricted ctx:(u : ?e) +Debug: [elpi] in_elpi_evar:?X44 +Debug: +[elpi] + lp2term: evar: create_unknown: new link: ? |> |- ? = ?X45 + EVARS: + ?X45==[u |- ?e2] (internal placeholder) {?e3} + ?X44==[u |- Type] (internal placeholder) {?e2} + ?X43==[u |- ?e0] (internal placeholder) {?e1} + ?X42==[u |- Type] (internal placeholder) {?e0} + ?X41==[ |- Type] (internal placeholder) {?e} + +UNIVERSES: + {elpi_tests_stdlib.test_quotation.31 elpi_tests_stdlib.test_quotation.30 + elpi_tests_stdlib.test_quotation.29} |= +ALGEBRAIC UNIVERSES: + {} +FLEXIBLE UNIVERSES: + +SORTS: + α26 + α27 + α28 +WEAK CONSTRAINTS: + +SHELF: +FUTURE GOALS STACK:?X45 ?X44 ?X43 ?X42 +?X41 + +Debug: [elpi] lp2term@1:X2 c0 +Debug: +[elpi] + lp2term: evar: calldepth:0 X2 c0 + RAW: +?X41 <-> X0 +?X42 <-> X12 +?X43 <-> X1 +?X44 <-> X14 +?X45 <-> X2 +ELAB: +?X41 <-> X0 +?X42 <-> X11 +?X43 <-> X1 +?X44 <-> X13 +?X45 <-> X2 + +Debug: [elpi] lp2term: evar: already in Coq: ?X45 +Debug: [elpi] lp2term@1:c0 +Debug: [elpi] lp2term@1:X3 c0 Debug: [elpi] lp2term: evar: calldepth:0 X3 c0 @@ -5772,7 +9269,7 @@ (X10 c0 c1 c2 c3 c4) Debug: [elpi] - Elpi: query-compilation:0.0048 static-check:0.0000 optimization:0.0001 runtime:0.0272 (with error) + Elpi: query-compilation:0.0018 static-check:0.0000 optimization:0.0001 runtime:0.0205 (with error) hd : forall A : Type, A -> list A -> A @@ -5786,722 +9283,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: - I = const «imp» -X2.imp : forall (T : Type) (x : T), x = x -> Prop - -X2.imp is not universe polymorphic -Arguments X2.imp T%type_scope x _ -Expands to: Constant elpi.tests.test_API_arguments.X2.imp -Query assignments: - %arg1 = const «foo» -foo 3 - : nat -Query assignments: - %arg1 = const «f» - %arg2 = const «f» - %arg3 = const «f» - %arg4 = const «f» - %arg5 = const «f» -f : forall [S : Type], S -> Prop - -f is not universe polymorphic -Arguments f [S]%type_scope _ - (where some original arguments have been renamed) -f is transparent -Expands to: Constant elpi.tests.test_API_arguments.f -f (S:=bool * bool) - : bool * bool -> Prop -Query assignments: - %arg1 = const «f» -f : forall [S : Type], S -> Prop - -f is not universe polymorphic -Arguments f [S]%type_scope / _ - (where some original arguments have been renamed) -The reduction tactics unfold f when applied to 1 argument -f is transparent -Expands to: Constant elpi.tests.test_API_arguments.f -f (S:=bool * bool) - : bool * bool -> Prop - = fun x : bool => x = x - : bool -> Prop -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 "./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: - 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: -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: - 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 -File "./tests/test_File3.v", line 18, characters 2-16: -Warning: This command does not support this attribute: phase. -[unsupported-attributes,parsing,default] -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 \ - 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] -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 -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] -(true && false)%bool - : bool -natmul R n : ringType_sort R - : ringType_sort R -natmul R n : ringType_sort R - : ringType_sort R -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] -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 synterp [str X] interp [str X] synterp [int 1] @@ -6676,10 +9457,6 @@ 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] -d - : nat -1 - : nat Goal: [decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»))] |- X0 c0 c1 : @@ -6783,2798 +9560,2106 @@ 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] +hello1 +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 +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 +Cats.And.Dogs.x = 42 + : nat +(true && false)%bool + : bool +natmul R n : ringType_sort R + : ringType_sort R +natmul R n : ringType_sort R + : ringType_sort R +Debug: run 1 {{{ + 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»)]]))] + rid:0 step:1 gid:4 user:curgoal = => + attributes + [attribute elpi.loc + (leaf-loc + File "./examples/example_record_expansion.v", line 221, column 5, characters 9572-9585:), + attribute elpi.phase (leaf-str interp)] + => + (main-interp + [str r, str f, str expanded_] _ ; + main [str r, str f, str expanded_]) + 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»)]]))]) + rid:0 step:1 gid:4 user:rule = implication + 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 + rid:0 step:1 gid:4 user:subgoal = 5 + 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 + rid:0 step:1 gid:5 user:newgoal = main-interp [str r, str f, str expanded_] _ + ; main [str r, str f, str expanded_] + 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»)]]))] + rid:0 step:1 gid:5 user:rule:implication = success + +Debug: }}} -> (0.001s) +Debug: run 2 {{{ + 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»)]]))]) + rid:0 step:2 gid:5 user:curgoal = ; + main-interp [str r, str f, str expanded_] _ + ; main [str r, str f, str expanded_] + 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 + rid:0 step:2 gid:5 user:rule = backchain + 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] + rid:0 step:2 gid:5 user:rule:backchain:candidates = File "elpi-builtin.elpi", line 34, column 0, characters 373-385: + File "elpi-builtin.elpi", line 36, column 0, characters 388-400: + +Debug: }}} -> (0.000s) +Debug: select 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»)]]))] + rid:0 step:2 gid:5 user:rule:backchain:try = File "elpi-builtin.elpi", line 34, column 0, characters 373-385: + (A0 ; _) :- A0. + 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»)]]))]) + rid:0 step:2 gid:0 user:assign = A0 := main-interp + [str r, str f, str expanded_] _ + 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 + rid:0 step:2 gid:5 user:subgoal = 6 + 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 + rid:0 step:2 gid:6 user:newgoal = main-interp [str r, str f, str expanded_] _ + 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»)]]))] + rid:0 step:2 gid:6 user:rule:backchain = success + +Debug: }}} -> (0.000s) +Debug: run 3 {{{ + 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»)]]))]) + rid:0 step:3 gid:6 user:curgoal = main-interp + main-interp [str r, str f, str expanded_] _ + 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 + rid:0 step:3 gid:6 user:rule = backchain + +Debug: rid:0 step:3 gid:6 user:rule:backchain:candidates = +Debug: }}} -> (0.000s) +Debug: select 4 {{{ + 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: - - + rid:0 step:3 gid:6 user:rule:backchain = fail + +Debug: }}} -> (0.000s) +Debug: run 4 {{{ + 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) + rid:0 step:4 gid:5 user:curgoal = ; + main-interp [str r, str f, str expanded_] _ + ; main [str r, str f, str expanded_] + 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)) + rid:0 step:4 gid:5 user:rule = backchain + 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 + rid:0 step:4 gid:5 user:rule:backchain:candidates = File "elpi-builtin.elpi", line 36, column 0, characters 388-400: + +Debug: }}} -> (0.000s) +Debug: select 5 {{{ + 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 + rid:0 step:4 gid:5 user:rule:backchain:try = File "elpi-builtin.elpi", line 36, column 0, characters 388-400: + (_ ; A0) :- A0. + 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) + rid:0 step:4 gid:0 user:assign = A0 := main [str r, str f, str expanded_] + 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)) + rid:0 step:4 gid:5 user:subgoal = 7 + 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 + rid:0 step:4 gid:7 user:newgoal = main [str r, str f, str expanded_] + 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» + rid:0 step:4 gid:7 user:rule:backchain = success + +Debug: }}} -> (0.000s) +Debug: run 5 {{{ + 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) + rid:0 step:5 gid:7 user:curgoal = main + main [str r, str f, str expanded_] + 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)) + rid:0 step:5 gid:7 user:rule = backchain + 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 + rid:0 step:5 gid:7 user:rule:backchain:candidates = File "./examples/example_record_expansion.v", line 197, column 0, characters 8773-9225: + File "./examples/example_record_expansion.v", line 207, column 0, characters 9228-9306: + +Debug: }}} -> (0.000s) +Debug: select 6 {{{ + 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 + rid:0 step:5 gid:7 user:rule:backchain:try = File "./examples/example_record_expansion.v", line 197, column 0, characters 8773-9225: + (main [str A0, str A2, str A6]) :- (!), + (std.assert! + (coq.locate A0 (indt A1)) + The first argument must be a record name), + (std.assert! + (coq.locate A2 A3) + The second argument must be a global term), + (coq.gref->id A3 A4), + (A5 is A6 ^ A4), + (expand-gref A1 A3 A5 A7), + (coq.elpi.accumulate _ + record.expand.db + (clause _ + (before expand:start) A7)). + 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) + rid:0 step:5 gid:0 user:assign = A0 := r + 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)) + rid:0 step:5 gid:0 user:assign = A2 := f + 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 + rid:0 step:5 gid:0 user:assign = A6 := expanded_ + 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» + rid:0 step:5 gid:7 user:subgoal = 8 + 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) + rid:0 step:5 gid:8 user:newgoal = ! + 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)) + rid:0 step:5 gid:8 user:subgoal = 9 + 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 + rid:0 step:5 gid:9 user:newgoal = std.assert! (coq.locate r (indt X0)) + The first argument must be a record name + 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 + rid:0 step:5 gid:8 user:subgoal = 10 + 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) + rid:0 step:5 gid:10 user:newgoal = std.assert! (coq.locate f X1) + The second argument must be a global term + 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)) + rid:0 step:5 gid:8 user:subgoal = 11 + 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 + rid:0 step:5 gid:11 user:newgoal = coq.gref->id X1 X2 + 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» + rid:0 step:5 gid:8 user:subgoal = 12 + 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) + rid:0 step:5 gid:12 user:newgoal = X3 is expanded_ ^ X2 + 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)) + rid:0 step:5 gid:8 user:subgoal = 13 + 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 + rid:0 step:5 gid:13 user:newgoal = expand-gref X0 X1 X3 X4 + 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 + rid:0 step:5 gid:8 user:subgoal = 14 + 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 + rid:0 step:5 gid:14 user:newgoal = coq.elpi.accumulate _ record.expand.db + (clause _ (before expand:start) X4) + 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 + rid:0 step:5 gid:8 user:rule:backchain = success + +Debug: }}} -> (0.001s) +Debug: run 6 {{{ + 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) + rid:0 step:6 gid:8 user:curgoal = ! + ! + +Debug: }}} -> (0.000s) Debug: -----<<---- enter: -coq.arity->term - (parameter n explicit (global (indt «nat»)) c0 \ - arity (sort (typ «elpi.tests.test_arg_HOAS.113»))) X0 + rid:0 step:6 gid:8 user:rule = cut + 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»)) + rid:0 step:6 gid:0 user:rule:cut:branch = 7 + File "./examples/example_record_expansion.v", line 207, column 0, characters 9228-9306: + (main _) :- (coq.error + usage: Elpi record.expand record_name global_term prefix). + 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 + rid:0 step:6 gid:8 user:rule:cut = success + +Debug: run 7 {{{ + 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 + rid:0 step:7 gid:9 user:curgoal = std.assert! + std.assert! (coq.locate r (indt X0)) + The first argument must be a record name + Debug: -----<<---- enter: -coq.env.add-axiom y - (prod `n` (global (indt «nat»)) c0 \ - sort (typ «elpi.tests.test_arg_HOAS.113»)) X2 + rid:0 step:7 gid:9 user:rule = backchain + Debug: ----->>---- exit: -coq.env.add-axiom y - (prod `n` (global (indt «nat»)) c0 \ sort (typ «y.u0»)) «y» -y : nat -> Type - : nat -> Type + rid:0 step:7 gid:9 user:rule:backchain:candidates = File "builtin_stdlib.elpi", line 39, column 0, characters 1190-1249: + +Debug: }}} -> (0.000s) +Debug: select 7 {{{ + Debug: -----<<---- enter: -coq.arity->term - (parameter n explicit (global (indt «nat»)) c0 \ - arity (global (indt «nat»))) X0 + rid:0 step:7 gid:9 user:rule:backchain:try = File "builtin_stdlib.elpi", line 39, column 0, characters 1190-1249: + (std.assert! A0 A1) :- ( + A0 ; + std.fatal-error-w-data A1 A0), + (!). + 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»)) + rid:0 step:7 gid:0 user:assign = A0 := coq.locate r (indt X0) + 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 + rid:0 step:7 gid:0 user:assign = A1 := The first argument must be a record name + 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 + rid:0 step:7 gid:9 user:subgoal = 15 + 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 + rid:0 step:7 gid:15 user:newgoal = coq.locate r (indt X0) ; + std.fatal-error-w-data + The first argument must be a record name + (coq.locate r (indt X0)) + 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 + rid:0 step:7 gid:15 user:subgoal = 16 + Debug: -----<<---- enter: coq.say raw: (inductive X1 tt (arity (sort prop)) c0 \ []) -raw: inductive X1 tt (arity (sort prop)) c0 \ [] + rid:0 step:7 gid:16 user:newgoal = ! + Debug: ----->>---- exit: coq.say raw: (inductive X1 tt (arity (sort prop)) c0 \ []) + rid:0 step:7 gid:15 user:rule:backchain = success + +Debug: }}} -> (0.000s) +Debug: run 8 {{{ + Debug: -----<<---- enter: -std.assert-ok! - (coq.typecheck-indt-decl (inductive X1 tt (arity (sort prop)) c0 \ [])) - Illtyped inductive declaration + rid:0 step:8 gid:15 user:curgoal = ; + coq.locate r (indt X0) ; + std.fatal-error-w-data + The first argument must be a record name + (coq.locate r (indt X0)) + Debug: ----->>---- exit: -std.assert-ok! - (coq.typecheck-indt-decl (inductive X1 tt (arity (sort prop)) c0 \ [])) - Illtyped inductive declaration + rid:0 step:8 gid:15 user:rule = backchain + Debug: -----<<---- enter: -coq.say typed: (inductive X1 tt (arity (sort prop)) c0 \ []) -typed: inductive X1 tt (arity (sort prop)) c0 \ [] + rid:0 step:8 gid:15 user:rule:backchain:candidates = File "elpi-builtin.elpi", line 34, column 0, characters 373-385: + File "elpi-builtin.elpi", line 36, column 0, characters 388-400: + +Debug: }}} -> (0.000s) +Debug: select 8 {{{ + Debug: ----->>---- exit: -coq.say typed: (inductive X1 tt (arity (sort prop)) c0 \ []) + rid:0 step:8 gid:15 user:rule:backchain:try = File "elpi-builtin.elpi", line 34, column 0, characters 373-385: + (A0 ; _) :- A0. + Debug: -----<<---- enter: -coq.env.add-indt (inductive X1 tt (arity (sort prop)) c0 \ []) X0 + rid:0 step:8 gid:0 user:assign = A0 := coq.locate r (indt 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 + rid:0 step:8 gid:15 user:subgoal = 17 + 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 + rid:0 step:8 gid:17 user:newgoal = coq.locate r (indt X0) + 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 + rid:0 step:8 gid:17 user:rule:backchain = success + +Debug: }}} -> (0.000s) +Debug: run 9 {{{ + 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 + rid:0 step:9 gid:17 user:curgoal = coq.locate + coq.locate r (indt X0) + 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 + rid:0 step:9 gid:17 user:rule = builtin + 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 \ [] + rid:0 step:9 gid:17 user:rule:builtin:name = coq.locate + Debug: ----->>---- exit: -coq.say typed: - (inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.129»))) c0 \ - []) + rid:0 step:9 gid:17 user:rule:builtin = success + Debug: -----<<---- enter: -coq.upoly-decl->attribute - (upoly-decl [«elpi.tests.test_arg_HOAS.129»] tt [] tt) X0 + rid:0 step:9 gid:17 user:subgoal = 18 + 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)) + rid:0 step:9 gid:18 user:newgoal = indt X0 = indt «r» + +Debug: }}} -> (0.000s) +Debug: run 10 {{{ + 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 + rid:0 step:10 gid:18 user:curgoal = = + indt X0 = indt «r» + 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» + rid:0 step:10 gid:18 user:rule = eq + 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 + rid:0 step:10 gid:18 user:rule:builtin:name = = + 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 + rid:0 step:10 gid:0 user:assign = X0 := «r» + 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 + rid:0 step:10 gid:18 user:rule:eq = success + +Debug: }}} -> (0.000s) +Debug: run 11 {{{ + 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 + rid:0 step:11 gid:16 user:curgoal = ! + ! + +Debug: }}} -> (0.000s) 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 \ [] + rid:0 step:11 gid:16 user:rule = cut + Debug: ----->>---- exit: -coq.say typed: - (inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.137»))) c0 \ - []) + rid:0 step:11 gid:0 user:rule:cut:branch = 15 + File "elpi-builtin.elpi", line 36, column 0, characters 388-400: + (_ ; A0) :- A0. + Debug: -----<<---- enter: -coq.upoly-decl->attribute - (upoly-decl-cumul [auto «elpi.tests.test_arg_HOAS.137»] tt [] tt) X0 + rid:0 step:11 gid:16 user:rule:cut = success + +Debug: run 12 {{{ + 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)) + rid:0 step:12 gid:10 user:curgoal = std.assert! + std.assert! (coq.locate f X1) + The second argument must be a global term + 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 + rid:0 step:12 gid:10 user:rule = backchain + 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: - - + rid:0 step:12 gid:10 user:rule:backchain:candidates = File "builtin_stdlib.elpi", line 39, column 0, characters 1190-1249: + +Debug: }}} -> (0.000s) +Debug: select 9 {{{ + 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 + rid:0 step:12 gid:10 user:rule:backchain:try = File "builtin_stdlib.elpi", line 39, column 0, characters 1190-1249: + (std.assert! A0 A1) :- ( + A0 ; + std.fatal-error-w-data A1 A0), + (!). + 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 + rid:0 step:12 gid:0 user:assign = A0 := coq.locate f X1 + 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 + rid:0 step:12 gid:0 user:assign = A1 := The second argument must be a global term + 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 + rid:0 step:12 gid:10 user:subgoal = 19 + 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 \ [] + rid:0 step:12 gid:19 user:newgoal = coq.locate f X1 ; + std.fatal-error-w-data + The second argument must be a global term + (coq.locate f X1) + Debug: ----->>---- exit: -coq.say typed: - (inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.147»))) c0 \ - []) + rid:0 step:12 gid:19 user:subgoal = 20 + Debug: -----<<---- enter: -coq.upoly-decl->attribute - (upoly-decl [«elpi.tests.test_arg_HOAS.147»] ff [] ff) X0 + rid:0 step:12 gid:20 user:newgoal = ! + 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)) + rid:0 step:12 gid:19 user:rule:backchain = success + +Debug: }}} -> (0.000s) +Debug: run 13 {{{ + 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 + rid:0 step:13 gid:19 user:curgoal = ; + coq.locate f X1 ; + std.fatal-error-w-data + The second argument must be a global term + (coq.locate f 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 + rid:0 step:13 gid:19 user:rule = backchain + 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 + rid:0 step:13 gid:19 user:rule:backchain:candidates = File "elpi-builtin.elpi", line 34, column 0, characters 373-385: + File "elpi-builtin.elpi", line 36, column 0, characters 388-400: + +Debug: }}} -> (0.000s) +Debug: select 10 {{{ + 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 + rid:0 step:13 gid:19 user:rule:backchain:try = File "elpi-builtin.elpi", line 34, column 0, characters 373-385: + (A0 ; _) :- A0. + 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 + rid:0 step:13 gid:0 user:assign = A0 := coq.locate f X1 + 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 + rid:0 step:13 gid:19 user:subgoal = 21 + 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))] + rid:0 step:13 gid:21 user:newgoal = coq.locate f X1 + 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))]) + rid:0 step:13 gid:21 user:rule:backchain = success + +Debug: }}} -> (0.000s) +Debug: run 14 {{{ + 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 + rid:0 step:14 gid:21 user:curgoal = coq.locate + coq.locate f X1 + 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)) + rid:0 step:14 gid:21 user:rule = builtin + 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 + rid:0 step:14 gid:21 user:rule:builtin:name = coq.locate + 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 + rid:0 step:14 gid:21 user:rule:builtin = success + 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 + rid:0 step:14 gid:21 user:subgoal = 22 + 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 + rid:0 step:14 gid:22 user:newgoal = X1 = const «f» + +Debug: }}} -> (0.000s) +Debug: run 15 {{{ + 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 + rid:0 step:15 gid:22 user:curgoal = = + X1 = const «f» + 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 + rid:0 step:15 gid:22 user:rule = eq + 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 \ [] + rid:0 step:15 gid:22 user:rule:builtin:name = = + Debug: ----->>---- exit: -coq.say typed: - (inductive X8 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.171»))) c0 \ - []) + rid:0 step:15 gid:0 user:assign = X1 := const «f» + Debug: -----<<---- enter: coq.upoly-decl->attribute (upoly-decl [] tt [] tt) X2 + rid:0 step:15 gid:22 user:rule:eq = success + +Debug: }}} -> (0.000s) +Debug: run 16 {{{ + Debug: ----->>---- exit: -coq.upoly-decl->attribute (upoly-decl [] tt [] tt) - (get-option coq:udecl (upoly-decl [] tt [] tt)) + rid:0 step:16 gid:20 user:curgoal = ! + ! + +Debug: }}} -> (0.000s) 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 + rid:0 step:16 gid:20 user:rule = cut + 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 + rid:0 step:16 gid:0 user:rule:cut:branch = 19 + File "elpi-builtin.elpi", line 36, column 0, characters 388-400: + (_ ; A0) :- A0. + 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 + rid:0 step:16 gid:20 user:rule:cut = success + +Debug: run 17 {{{ + 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) + rid:0 step:17 gid:11 user:curgoal = coq.gref->id + coq.gref->id (const «f») X2 + 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 + rid:0 step:17 gid:11 user:rule = builtin + 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 + rid:0 step:17 gid:11 user:rule:builtin:name = coq.gref->id + Debug: -----<<---- enter: coq.upoly-decl->attribute (upoly-decl [] tt [] tt) X1 + rid:0 step:17 gid:11 user:rule:builtin = success + Debug: ----->>---- exit: -coq.upoly-decl->attribute (upoly-decl [] tt [] tt) - (get-option coq:udecl (upoly-decl [] tt [] tt)) + rid:0 step:17 gid:11 user:subgoal = 23 + 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 + rid:0 step:17 gid:23 user:newgoal = X2 = f + +Debug: }}} -> (0.000s) +Debug: run 18 {{{ + 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 + rid:0 step:18 gid:23 user:curgoal = = + X2 = f + 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 + rid:0 step:18 gid:23 user:rule = eq + 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) + rid:0 step:18 gid:23 user:rule:builtin:name = = + 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 + rid:0 step:18 gid:0 user:assign = X2 := f + 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 + rid:0 step:18 gid:23 user:rule:eq = success + +Debug: }}} -> (0.000s) +Debug: run 19 {{{ + Debug: -----<<---- enter: -coq.upoly-decl->attribute - (upoly-decl [«elpi.tests.test_arg_HOAS.180»] ff [] tt) X1 + rid:0 step:19 gid:12 user:curgoal = is + X3 is expanded_ ^ f + 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)) + rid:0 step:19 gid:12 user:rule = backchain + 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 + rid:0 step:19 gid:12 user:rule:backchain:candidates = File "elpi-builtin.elpi", line 83, column 0, characters 1181-1199: + +Debug: }}} -> (0.000s) +Debug: select 11 {{{ + 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 + rid:0 step:19 gid:12 user:rule:backchain:try = File "elpi-builtin.elpi", line 83, column 0, characters 1181-1199: + (A1 is A0) :- (calc A0 A1). + Debug: -----<<---- enter: -coq.arity->term - (parameter T explicit (sort (typ X0)) c0 \ - parameter x explicit c0 c1 \ arity (X1 c1)) X2 + rid:0 step:19 gid:0 user:assign = A1 := X3 + 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) + rid:0 step:19 gid:0 user:assign = A0 := expanded_ ^ f + 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 + rid:0 step:19 gid:12 user:subgoal = 24 + 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 + rid:0 step:19 gid:24 user:newgoal = calc (expanded_ ^ f) X3 + 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 + rid:0 step:19 gid:24 user:rule:backchain = success + +Debug: }}} -> (0.000s) +Debug: run 20 {{{ + 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 + rid:0 step:20 gid:24 user:curgoal = calc + calc (expanded_ ^ f) X3 + Debug: -----<<---- enter: coq.upoly-decl->attribute (upoly-decl [] tt [] tt) X8 + rid:0 step:20 gid:24 user:rule = builtin + Debug: ----->>---- exit: -coq.upoly-decl->attribute (upoly-decl [] tt [] tt) - (get-option coq:udecl (upoly-decl [] tt [] tt)) + rid:0 step:20 gid:24 user:rule:builtin:name = calc + 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 + rid:0 step:20 gid:24 user:rule:builtin = success + 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 + rid:0 step:20 gid:24 user:subgoal = 25 + 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 + rid:0 step:20 gid:25 user:newgoal = X3 = expanded_f + +Debug: }}} -> (0.000s) +Debug: run 21 {{{ + 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) + rid:0 step:21 gid:25 user:curgoal = = + X3 = expanded_f + 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 + rid:0 step:21 gid:25 user:rule = eq + 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 + rid:0 step:21 gid:25 user:rule:builtin:name = = + 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 + rid:0 step:21 gid:0 user:assign = X3 := expanded_f + 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 + rid:0 step:21 gid:25 user:rule:eq = success + +Debug: }}} -> (0.000s) +Debug: run 22 {{{ + Debug: -----<<---- enter: -coq.upoly-decl->attribute - (upoly-decl [«elpi.tests.test_arg_HOAS.185»] ff [] tt) X6 + rid:0 step:22 gid:13 user:curgoal = expand-gref + expand-gref «r» (const «f») + expanded_f X4 + 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)) + rid:0 step:22 gid:13 user:rule = backchain + 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 + rid:0 step:22 gid:13 user:rule:backchain:candidates = File "./examples/example_record_expansion.v", line 184, column 0, characters 8165-8504: + File "./examples/example_record_expansion.v", line 192, column 0, characters 8507-8568: + File "./examples/example_record_expansion.v", line 194, column 0, characters 8571-8690: + +Debug: }}} -> (0.000s) +Debug: select 12 {{{ + 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 + rid:0 step:22 gid:13 user:rule:backchain:try = File "./examples/example_record_expansion.v", line 184, column 0, characters 8165-8504: + (expand-gref A2 (const A0) A5 + A7) :- (!), + (std.do! + [std.assert! + (coq.env.const A0 + (some A1) _) + only transparent constants can be expanded, + pi (c0 \ + (expand-record A2 + (const A0) c0 A1 A3 + (A4 c0))), + std.assert-ok! + (coq.typecheck A3 _) + illtyped, + coq.env.add-const A5 A3 _ + _ A6, A7 = A4 (const A6)]). + 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 + rid:0 step:22 gid:0 user:assign = A2 := «r» + 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) + rid:0 step:22 gid:0 user:assign = A0 := «f» + 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 + rid:0 step:22 gid:0 user:assign = A5 := expanded_f + 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 + rid:0 step:22 gid:0 user:assign = A7 := X4 + +Debug: + rid:0 step:22 gid:13 user:subgoal = 26 + +Debug: + rid:0 step:22 gid:26 user:newgoal = ! + +Debug: + rid:0 step:22 gid:26 user:subgoal = 27 + +Debug: + rid:0 step:22 gid:27 user:newgoal = std.do! + [std.assert! + (coq.env.const «f» (some X5) _) + only transparent constants can be expanded, + pi c0 \ + expand-record «r» (const «f») c0 + X5 X6 (X7 c0), + std.assert-ok! (coq.typecheck X6 _) + illtyped, + coq.env.add-const expanded_f X6 _ _ X8, + X4 = X7 (const X8)] + +Debug: + rid:0 step:22 gid:26 user:rule:backchain = success + +Debug: }}} -> (0.001s) +Debug: run 23 {{{ + +Debug: + rid:0 step:23 gid:26 user:curgoal = ! + ! + +Debug: }}} -> (0.000s) +Debug: + rid:0 step:23 gid:26 user:rule = cut + +Debug: + rid:0 step:23 gid:0 user:rule:cut:branch = 13 + File "./examples/example_record_expansion.v", line 192, column 0, characters 8507-8568: + (expand-gref _ (indt _) _ _) :- ( + coq.error Not implemented yet). + +Debug: + rid:0 step:23 gid:0 user:rule:cut:branch = 13 + File "./examples/example_record_expansion.v", line 194, column 0, characters 8571-8690: + (expand-gref _ (indc _) _ _) :- ( + coq.error + It makes no sense to expand a constructor alone, expand the inductive instead). + +Debug: + rid:0 step:23 gid:26 user:rule:cut = success + +Debug: run 24 {{{ + +Debug: + rid:0 step:24 gid:27 user:curgoal = std.do! + std.do! + [std.assert! + (coq.env.const «f» (some X5) _) + only transparent constants can be expanded, + pi c0 \ + expand-record «r» (const «f») c0 + X5 X6 (X7 c0), + std.assert-ok! (coq.typecheck X6 _) + illtyped, + coq.env.add-const expanded_f X6 _ _ X8, + X4 = X7 (const X8)] + +Debug: + rid:0 step:24 gid:27 user:rule = backchain + +Debug: + rid:0 step:24 gid:27 user:rule:backchain:candidates = File "builtin_stdlib.elpi", line 279, column 0, characters 9290-9316: + +Debug: }}} -> (0.000s) +Debug: select 13 {{{ + +Debug: + rid:0 step:24 gid:27 user:rule:backchain:try = File "builtin_stdlib.elpi", line 279, column 0, characters 9290-9316: + (std.do! [A0 | A1]) :- A0, + (!), (std.do! A1). + +Debug: + rid:0 step:24 gid:0 user:assign = A0 := std.assert! + (coq.env.const «f» (some X5) _) + only transparent constants can be expanded + +Debug: + rid:0 step:24 gid:0 user:assign = A1 := [pi c0 \ + expand-record «r» (const «f») + c0 X5 X6 (X7 c0), + std.assert-ok! (coq.typecheck X6 _) + illtyped, + coq.env.add-const expanded_f X6 _ _ + X8, X4 = X7 (const X8)] + +Debug: + rid:0 step:24 gid:27 user:subgoal = 28 + +Debug: + rid:0 step:24 gid:28 user:newgoal = std.assert! + (coq.env.const «f» (some X5) _) + only transparent constants can be expanded + +Debug: + rid:0 step:24 gid:28 user:subgoal = 29 + +Debug: + rid:0 step:24 gid:29 user:newgoal = ! + +Debug: + rid:0 step:24 gid:28 user:subgoal = 30 + +Debug: + rid:0 step:24 gid:30 user:newgoal = std.do! + [pi c0 \ + expand-record «r» (const «f») c0 + X5 X6 (X7 c0), + std.assert-ok! (coq.typecheck X6 _) + illtyped, + coq.env.add-const expanded_f X6 _ _ X8, + X4 = X7 (const X8)] + +Debug: + rid:0 step:24 gid:28 user:rule:backchain = success + +Debug: }}} -> (0.001s) +Debug: run 25 {{{ + +Debug: + rid:0 step:25 gid:28 user:curgoal = std.assert! + std.assert! + (coq.env.const «f» (some X5) _) + only transparent constants can be expanded + +Debug: + rid:0 step:25 gid:28 user:rule = backchain + +Debug: + rid:0 step:25 gid:28 user:rule:backchain:candidates = File "builtin_stdlib.elpi", line 39, column 0, characters 1190-1249: + +Debug: }}} -> (0.000s) +Debug: select 14 {{{ + +Debug: + rid:0 step:25 gid:28 user:rule:backchain:try = File "builtin_stdlib.elpi", line 39, column 0, characters 1190-1249: + (std.assert! A0 A1) :- ( + A0 ; + std.fatal-error-w-data A1 A0), + (!). + +Debug: + rid:0 step:25 gid:0 user:assign = A0 := coq.env.const «f» (some X5) _ + +Debug: + rid:0 step:25 gid:0 user:assign = A1 := only transparent constants can be expanded + +Debug: + rid:0 step:25 gid:28 user:subgoal = 31 + +Debug: + rid:0 step:25 gid:31 user:newgoal = coq.env.const «f» (some X5) _ ; + std.fatal-error-w-data + only transparent constants can be expanded + (coq.env.const «f» (some X5) _) + +Debug: + rid:0 step:25 gid:31 user:subgoal = 32 + +Debug: + rid:0 step:25 gid:32 user:newgoal = ! + +Debug: + rid:0 step:25 gid:31 user:rule:backchain = success + +Debug: }}} -> (0.001s) +Debug: run 26 {{{ + +Debug: + rid:0 step:26 gid:31 user:curgoal = ; + coq.env.const «f» (some X5) _ ; + std.fatal-error-w-data + only transparent constants can be expanded + (coq.env.const «f» (some X5) _) + +Debug: + rid:0 step:26 gid:31 user:rule = backchain + +Debug: + rid:0 step:26 gid:31 user:rule:backchain:candidates = File "elpi-builtin.elpi", line 34, column 0, characters 373-385: + File "elpi-builtin.elpi", line 36, column 0, characters 388-400: + +Debug: }}} -> (0.000s) +Debug: select 15 {{{ + +Debug: + rid:0 step:26 gid:31 user:rule:backchain:try = File "elpi-builtin.elpi", line 34, column 0, characters 373-385: + (A0 ; _) :- A0. + +Debug: + rid:0 step:26 gid:0 user:assign = A0 := coq.env.const «f» (some X5) _ + +Debug: + rid:0 step:26 gid:31 user:subgoal = 33 + +Debug: + rid:0 step:26 gid:33 user:newgoal = coq.env.const «f» (some X5) _ + +Debug: + rid:0 step:26 gid:33 user:rule:backchain = success + +Debug: }}} -> (0.000s) +Debug: run 27 {{{ + +Debug: + rid:0 step:27 gid:33 user:curgoal = coq.env.const + coq.env.const «f» (some X5) _ + +Debug: + rid:0 step:27 gid:33 user:rule = builtin + +Debug: + rid:0 step:27 gid:33 user:rule:builtin:name = coq.env.const + +Debug: + rid:0 step:27 gid:33 user:rule:builtin = success + +Debug: + rid:0 step:27 gid:33 user:subgoal = 34 + +Debug: + rid:0 step:27 gid:34 user:newgoal = some X5 = + some + (fun `b` (global (indt «bool»)) c0 \ + fun `t` (global (indt «r»)) c1 \ + let `q` (global (indt «bool»)) + (app [global (const «negb»), c0]) + c2 \ + fix `rec` 0 + (prod `l1` + (app + [global (indt «list»), + app + [global (const «T»), c1]]) + c3 \ + prod `l2` + (app + [global (indt «list»), + app + [global (const «T»), c1]]) + c4 \ global (indt «bool»)) + c3 \ + fun `l1` + (app + [global (indt «list»), + app [global (const «T»), c1]]) + c4 \ + fun `l2` + (app + [global (indt «list»), + app + [global (const «T»), c1]]) + c5 \ + match c4 + (fun `l1` + (app + [global (indt «list»), + app + [global (const «T»), c1]]) + c6 \ global (indt «bool»)) + [match c5 + (fun `l2` + (app + [global (indt «list»), + app + [global (const «T»), + c1]]) c6 \ + global (indt «bool»)) + [c0, + fun `t0` + (app + [global (const «T»), c1]) + c6 \ + fun `l` + (app + [global (indt «list»), + app + [global (const «T»), + c1]]) c7 \ c2], + fun `x` + (app + [global (const «T»), c1]) + c6 \ + fun `xs` + (app + [global (indt «list»), + app + [global (const «T»), + c1]]) c7 \ + match c5 + (fun `l2` + (app + [global (indt «list»), + app + [global (const «T»), + c1]]) c8 \ + global (indt «bool»)) + [c2, + fun `y` + (app + [global (const «T»), + c1]) c8 \ + fun `ys` + (app + [global + (indt «list»), + app + [global + (const «T»), c1]]) + c9 \ + app + [global + (const «andb»), + app + [global + (const «op»), + c1, c6, c8], + app [c3, c7, c9]]]]) + +Debug: }}} -> (0.002s) +Debug: run 28 {{{ + +Debug: + rid:0 step:28 gid:34 user:curgoal = = + some X5 = + some + (fun `b` (global (indt «bool»)) c0 \ + fun `t` (global (indt «r»)) c1 \ + let `q` (global (indt «bool»)) + (app [global (const «negb»), c0]) + c2 \ + fix `rec` 0 + (prod `l1` + (app + [global (indt «list»), + app + [global (const «T»), c1]]) + c3 \ + prod `l2` + (app + [global (indt «list»), + app + [global (const «T»), c1]]) + c4 \ global (indt «bool»)) + c3 \ + fun `l1` + (app + [global (indt «list»), + app [global (const «T»), c1]]) + c4 \ + fun `l2` + (app + [global (indt «list»), + app + [global (const «T»), c1]]) + c5 \ + match c4 + (fun `l1` + (app + [global (indt «list»), + app + [global (const «T»), c1]]) + c6 \ global (indt «bool»)) + [match c5 + (fun `l2` + (app + [global (indt «list»), + app + [global (const «T»), + c1]]) c6 \ + global (indt «bool»)) + [c0, + fun `t0` + (app + [global (const «T»), c1]) + c6 \ + fun `l` + (app + [global (indt «list»), + app + [global (const «T»), + c1]]) c7 \ c2], + fun `x` + (app + [global (const «T»), c1]) + c6 \ + fun `xs` + (app + [global (indt «list»), + app + [global (const «T»), + c1]]) c7 \ + match c5 + (fun `l2` + (app + [global (indt «list»), + app + [global (const «T»), + c1]]) c8 \ + global (indt «bool»)) + [c2, + fun `y` + (app + [global (const «T»), + c1]) c8 \ + fun `ys` + (app + [global + (indt «list»), + app + [global + (const «T»), c1]]) + c9 \ + app + [global + (const «andb»), + app + [global + (const «op»), + c1, c6, c8], + app [c3, c7, c9]]]]) + +Debug: + rid:0 step:28 gid:34 user:rule = eq + +Debug: + rid:0 step:28 gid:34 user:rule:builtin:name = = + +Debug: + rid:0 step:28 gid:0 user:assign = X5 := fun `b` (global (indt «bool»)) c0 \ + fun `t` (global (indt «r»)) c1 \ + let `q` (global (indt «bool»)) +...TRUNCATED BY DUNE... + global (indt «bool»)) c1 \ + prod `l` + (app [global (indt «list»), c0]) + c2 \ + prod `s` + (app [global (indt «list»), c0]) + c3 \ + prod `h` + (global (indt «bool»)) c4 \ + sort prop + +Debug: + rid:1 step:356 gid:1042 user:rule = eq + +Debug: + rid:1 step:356 gid:1042 user:rule:builtin:name = = + +Debug: + rid:1 step:356 gid:1042 user:rule:eq = success + +Debug: }}} -> (0.000s) +Debug: run 357 {{{ + +Debug: + rid:1 step:357 gid:1043 user:curgoal = = + X211 = ok + +Debug: + rid:1 step:357 gid:1043 user:rule = eq + +Debug: + rid:1 step:357 gid:1043 user:rule:builtin:name = = + +Debug: + rid:1 step:357 gid:0 user:assign = X211 := ok + +Debug: + rid:1 step:357 gid:1043 user:rule:eq = success + +Debug: }}} -> (0.000s) +Debug: run 358 {{{ + +Debug: + rid:1 step:358 gid:1039 user:curgoal = ! + ! + +Debug: }}} -> (0.000s) +Debug: + rid:1 step:358 gid:1039 user:rule = cut + +Debug: + rid:1 step:358 gid:0 user:rule:cut:branch = 1035 + File "builtin_stdlib.elpi", line 45, column 0, characters 1554-1621: + (std.assert-ok! _ A0) :- ( + std.fatal-error-w-data A0 + no diagnostic returned). + +Debug: + rid:1 step:358 gid:1039 user:rule:cut = success + +Debug: run 359 {{{ + +Debug: + rid:1 step:359 gid:1040 user:curgoal = ; + ok = ok ; + ok = error X212 , + std.fatal-error-w-data illtyped X212 + +Debug: + rid:1 step:359 gid:1040 user:rule = backchain + +Debug: + rid:1 step:359 gid:1040 user:rule:backchain:candidates = File "elpi-builtin.elpi", line 34, column 0, characters 373-385: + File "elpi-builtin.elpi", line 36, column 0, characters 388-400: + +Debug: }}} -> (0.000s) +Debug: select 269 {{{ + +Debug: + rid:1 step:359 gid:1040 user:rule:backchain:try = File "elpi-builtin.elpi", line 34, column 0, characters 373-385: + (A0 ; _) :- A0. + +Debug: + rid:1 step:359 gid:0 user:assign = A0 := ok = ok + +Debug: + rid:1 step:359 gid:1040 user:subgoal = 1044 + +Debug: + rid:1 step:359 gid:1044 user:newgoal = ok = ok + +Debug: + rid:1 step:359 gid:1044 user:rule:backchain = success + +Debug: }}} -> (0.000s) +Debug: run 360 {{{ + +Debug: + rid:1 step:360 gid:1044 user:curgoal = = + ok = ok + +Debug: + rid:1 step:360 gid:1044 user:rule = eq + +Debug: + rid:1 step:360 gid:1044 user:rule:builtin:name = = + +Debug: + rid:1 step:360 gid:1044 user:rule:eq = success + +Debug: }}} -> (0.000s) +Debug: run 361 {{{ + +Debug: + rid:1 step:361 gid:1041 user:curgoal = ! + ! + +Debug: }}} -> (0.000s) +Debug: + rid:1 step:361 gid:1041 user:rule = cut + +Debug: + rid:1 step:361 gid:0 user:rule:cut:branch = 1040 + File "elpi-builtin.elpi", line 36, column 0, characters 388-400: + (_ ; A0) :- A0. + +Debug: + rid:1 step:361 gid:1041 user:rule:cut = success + +Debug: run 362 {{{ + +Debug: + rid:1 step:362 gid:1036 user:curgoal = ! + ! + +Debug: }}} -> (0.000s) +Debug: + rid:1 step:362 gid:1036 user:rule = cut + +Debug: + rid:1 step:362 gid:1036 user:rule:cut = success + +Debug: run 363 {{{ + +Debug: + rid:1 step:363 gid:1037 user:curgoal = std.do! + std.do! + [coq.env.add-const expanded_g + (fun `T` (sort (typ «r.u0»)) c0 \ + let `X` (sort (typ «r.u0»)) c0 + c1 \ + fun `op` + (prod `_` c0 c2 \ + prod `_` c1 c3 \ + global (indt «bool»)) c2 \ + fun `l` + (app + [global (indt «list»), c0]) + c3 \ + fun `s` + (app + [global (indt «list»), c0]) + c4 \ + fun `h` + (global (indt «bool»)) + c5 \ + app + [global (indt «and»), + prod `x` c0 c6 \ + prod `y` c1 c7 \ + app + [global (indt «eq»), + global (indt «bool»), + app [c2, c6, c7], + global + (indc «false»)], + app + [global (indt «eq»), + global (indt «bool»), + app + [global + (const «expanded_f»), + global (indc «true»), + c0, c2, c3, c4], c5]]) + _ _ X8, + X4 = + pi c0 \ + pi c1 \ + pi c2 \ + pi c3 \ + pi c4 \ + pi c5 \ + pi c6 \ + pi c7 \ + pi c8 \ + pi c9 \ + pi c10 \ + expand + (app + [global (const «g»), + c0, c3, c5, c7 | c9]) + (app + [global (const X8), + c1, c2, c4, c6, c8 | c10]) + :- + [!, + std.map c9 expand c10, + expand c7 c8, + expand c5 c6, + expand c3 c4, + expand c0 + (app + [global + (indc «Build_r»), + c1, c2])]] + +Debug: + rid:1 step:363 gid:1037 user:rule = backchain + +Debug: + rid:1 step:363 gid:1037 user:rule:backchain:candidates = File "builtin_stdlib.elpi", line 279, column 0, characters 9290-9316: + +Debug: }}} -> (0.001s) +Debug: select 270 {{{ + +Debug: + rid:1 step:363 gid:1037 user:rule:backchain:try = File "builtin_stdlib.elpi", line 279, column 0, characters 9290-9316: + (std.do! [A0 | A1]) :- A0, + (!), (std.do! A1). + +Debug: + rid:1 step:363 gid:0 user:assign = A0 := coq.env.add-const expanded_g + (fun `T` (sort (typ «r.u0»)) c0 \ + let `X` (sort (typ «r.u0»)) c0 + c1 \ + fun `op` + (prod `_` c0 c2 \ + prod `_` c1 c3 \ + global (indt «bool»)) c2 \ + fun `l` + (app + [global (indt «list»), c0]) + c3 \ + fun `s` + (app + [global (indt «list»), c0]) + c4 \ + fun `h` + (global (indt «bool»)) + c5 \ + app + [global (indt «and»), + prod `x` c0 c6 \ + prod `y` c1 c7 \ + app + [global (indt «eq»), + global (indt «bool»), + app [c2, c6, c7], + global + (indc «false»)], + app + [global (indt «eq»), + global (indt «bool»), + app + [global + (const «expanded_f»), + global (indc «true»), + c0, c2, c3, c4], c5]]) + _ _ X8 + +Debug: + rid:1 step:363 gid:0 user:assign = A1 := [X4 = + pi c0 \ + pi c1 \ + pi c2 \ + pi c3 \ + pi c4 \ + pi c5 \ + pi c6 \ + pi c7 \ + pi c8 \ + pi c9 \ + pi c10 \ + expand + (app + [global + (const «g»), + c0, c3, c5, c7 | c9]) + (app + [global (const X8), + c1, c2, c4, c6, c8 | c10]) + :- + [!, + std.map c9 expand c10, + expand c7 c8, + expand c5 c6, + expand c3 c4, + expand c0 + (app + [global + (indc + «Build_r»), + c1, c2])]] + 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 + rid:1 step:363 gid:1037 user:subgoal = 1045 + 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 + rid:1 step:363 gid:1045 user:newgoal = coq.env.add-const expanded_g + (fun `T` (sort (typ «r.u0»)) c0 \ + let `X` (sort (typ «r.u0»)) c0 + c1 \ + fun `op` + (prod `_` c0 c2 \ + prod `_` c1 c3 \ + global (indt «bool»)) c2 \ + fun `l` + (app + [global (indt «list»), c0]) + c3 \ + fun `s` + (app + [global (indt «list»), c0]) + c4 \ + fun `h` + (global (indt «bool»)) c5 \ + app + [global (indt «and»), + prod `x` c0 c6 \ + prod `y` c1 c7 \ + app + [global (indt «eq»), + global (indt «bool»), + app [c2, c6, c7], + global (indc «false»)], + app + [global (indt «eq»), + global (indt «bool»), + app + [global + (const «expanded_f»), + global (indc «true»), + c0, c2, c3, c4], c5]]) + _ _ X8 + 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 + rid:1 step:363 gid:1045 user:subgoal = 1046 + 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» + rid:1 step:363 gid:1046 user:newgoal = ! + 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 + rid:1 step:363 gid:1045 user:subgoal = 1047 + 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) + rid:1 step:363 gid:1047 user:newgoal = std.do! + [X4 = + pi c0 \ + pi c1 \ + pi c2 \ + pi c3 \ + pi c4 \ + pi c5 \ + pi c6 \ + pi c7 \ + pi c8 \ + pi c9 \ + pi c10 \ + expand + (app + [global (const «g»), + c0, c3, c5, c7 | c9]) + (app + [global (const X8), + c1, c2, c4, c6, c8 | c10]) + :- + [!, + std.map c9 expand c10, + expand c7 c8, + expand c5 c6, + expand c3 c4, + expand c0 + (app + [global + (indc «Build_r»), + c1, c2])]] + 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 + rid:1 step:363 gid:1045 user:rule:backchain = success + +Debug: }}} -> (0.003s) +Debug: run 364 {{{ + 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 + rid:1 step:364 gid:1045 user:curgoal = coq.env.add-const + coq.env.add-const expanded_g + (fun `T` (sort (typ «r.u0»)) c0 \ + let `X` (sort (typ «r.u0»)) c0 + c1 \ + fun `op` + (prod `_` c0 c2 \ + prod `_` c1 c3 \ + global (indt «bool»)) c2 \ + fun `l` + (app + [global (indt «list»), c0]) + c3 \ + fun `s` + (app + [global (indt «list»), c0]) + c4 \ + fun `h` + (global (indt «bool»)) c5 \ + app + [global (indt «and»), + prod `x` c0 c6 \ + prod `y` c1 c7 \ + app + [global (indt «eq»), + global (indt «bool»), + app [c2, c6, c7], + global (indc «false»)], + app + [global (indt «eq»), + global (indt «bool»), + app + [global + (const «expanded_f»), + global (indc «true»), + c0, c2, c3, c4], c5]]) + _ _ X8 + Debug: -----<<---- enter: -coq.upoly-decl->attribute - (upoly-decl [«elpi.tests.test_arg_HOAS.195»] ff [] tt) X1 + rid:1 step:364 gid:1045 user:rule = builtin + 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)) + rid:1 step:364 gid:1045 user:rule:builtin:name = coq.env.add-const + 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 + rid:1 step:364 gid:1045 user:rule:builtin = success + 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 + rid:1 step:364 gid:1045 user:subgoal = 1048 + Debug: -----<<---- enter: -coq.arity->term - (arity - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «Set»)) c1 \ prod `x` c0 c2 \ c0)) X0 + rid:1 step:364 gid:1048 user:newgoal = X8 = «expanded_g» + +Debug: }}} -> (0.002s) +Debug: run 365 {{{ + 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) + rid:1 step:365 gid:1048 user:curgoal = = + X8 = «expanded_g» + 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 + rid:1 step:365 gid:1048 user:rule = eq + 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 + rid:1 step:365 gid:1048 user:rule:builtin:name = = + Debug: -----<<---- enter: coq.upoly-decl->attribute (upoly-decl [] tt [] tt) X1 + rid:1 step:365 gid:0 user:assign = X8 := «expanded_g» + Debug: ----->>---- exit: -coq.upoly-decl->attribute (upoly-decl [] tt [] tt) - (get-option coq:udecl (upoly-decl [] tt [] tt)) + rid:1 step:365 gid:1048 user:rule:eq = success + +Debug: }}} -> (0.000s) +Debug: run 366 {{{ + 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 + rid:1 step:366 gid:1046 user:curgoal = ! + ! + +Debug: }}} -> (0.000s) 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 + rid:1 step:366 gid:1046 user:rule = cut + Debug: -----<<---- enter: -get-option coq:keepunivs tt => - std.assert-ok! (coq.elaborate-ty-skeleton X1 X2 X3) illtyped arity + rid:1 step:366 gid:1046 user:rule:cut = success + +Debug: run 367 {{{ + 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 + rid:1 step:367 gid:1047 user:curgoal = std.do! + std.do! + [X4 = + pi c0 \ + pi c1 \ + pi c2 \ + pi c3 \ + pi c4 \ + pi c5 \ + pi c6 \ + pi c7 \ + pi c8 \ + pi c9 \ + pi c10 \ + expand + (app + [global (const «g»), + c0, c3, c5, c7 | c9]) + (app + [global + (const + «expanded_g»), + c1, c2, c4, c6, c8 | c10]) + :- + [!, + std.map c9 expand c10, + expand c7 c8, + expand c5 c6, + expand c3 c4, + expand c0 + (app + [global + (indc «Build_r»), + c1, c2])]] + Debug: -----<<---- enter: -get-option coq:keepunivs tt => - std.assert-ok! - (coq.elaborate-skeleton (pglobal (const «f6») «Set») (X4) X5) - illtyped definition + rid:1 step:367 gid:1047 user:rule = backchain + 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 + rid:1 step:367 gid:1047 user:rule:backchain:candidates = File "builtin_stdlib.elpi", line 279, column 0, characters 9290-9316: + +Debug: }}} -> (0.001s) +Debug: select 271 {{{ + Debug: -----<<---- enter: coq.upoly-decl->attribute (upoly-decl [] tt [] tt) X6 + rid:1 step:367 gid:1047 user:rule:backchain:try = File "builtin_stdlib.elpi", line 279, column 0, characters 9290-9316: + (std.do! [A0 | A1]) :- A0, + (!), (std.do! A1). + Debug: ----->>---- exit: -coq.upoly-decl->attribute (upoly-decl [] tt [] tt) - (get-option coq:udecl (upoly-decl [] tt [] tt)) + rid:1 step:367 gid:0 user:assign = A0 := X4 = + pi c0 \ + pi c1 \ + pi c2 \ + pi c3 \ + pi c4 \ + pi c5 \ + pi c6 \ + pi c7 \ + pi c8 \ + pi c9 \ + pi c10 \ + expand + (app + [global (const «g»), + c0, c3, c5, c7 | c9]) + (app + [global + (const + «expanded_g»), + c1, c2, c4, c6, c8 | c10]) + :- + [!, + std.map c9 expand c10, + expand c7 c8, + expand c5 c6, + expand c3 c4, + expand c0 + (app + [global + (indc «Build_r»), + c1, c2])] + 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 + rid:1 step:367 gid:0 user:assign = A1 := [] + 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» + rid:1 step:367 gid:1047 user:subgoal = 1049 + Debug: -----<<---- enter: -coq.arity->term - (arity - (prod `T` (sort (typ «uuu»)) c0 \ - prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ c0)) X0 + rid:1 step:367 gid:1049 user:newgoal = X4 = + pi c0 \ + pi c1 \ + pi c2 \ + pi c3 \ + pi c4 \ + pi c5 \ + pi c6 \ + pi c7 \ + pi c8 \ + pi c9 \ + pi c10 \ + expand + (app + [global (const «g»), + c0, c3, c5, c7 | c9]) + (app + [global + (const «expanded_g»), + c1, c2, c4, c6, c8 | c10]) + :- + [!, + std.map c9 expand c10, + expand c7 c8, + expand c5 c6, + expand c3 c4, + expand c0 + (app + [global + (indc «Build_r»), + c1, c2])] + 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) + rid:1 step:367 gid:1049 user:subgoal = 1050 + 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 + rid:1 step:367 gid:1050 user:newgoal = ! + 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 + rid:1 step:367 gid:1049 user:subgoal = 1051 + Debug: -----<<---- enter: coq.upoly-decl->attribute (upoly-decl [] tt [] tt) X1 + rid:1 step:367 gid:1051 user:newgoal = std.do! [] + Debug: ----->>---- exit: -coq.upoly-decl->attribute (upoly-decl [] tt [] tt) - (get-option coq:udecl (upoly-decl [] tt [] tt)) + rid:1 step:367 gid:1049 user:rule:backchain = success + +Debug: }}} -> (0.001s) +Debug: run 368 {{{ + 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 + rid:1 step:368 gid:1049 user:curgoal = = + X4 = + pi c0 \ + pi c1 \ + pi c2 \ + pi c3 \ + pi c4 \ + pi c5 \ + pi c6 \ + pi c7 \ + pi c8 \ + pi c9 \ + pi c10 \ + expand + (app + [global (const «g»), + c0, c3, c5, c7 | c9]) + (app + [global + (const «expanded_g»), + c1, c2, c4, c6, c8 | c10]) + :- + [!, + std.map c9 expand c10, + expand c7 c8, + expand c5 c6, + expand c3 c4, + expand c0 + (app + [global + (indc «Build_r»), + c1, c2])] + 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 + rid:1 step:368 gid:1049 user:rule = eq + Debug: -----<<---- enter: -get-option coq:keepunivs tt => - std.assert-ok! (coq.elaborate-ty-skeleton X1 X2 X3) illtyped arity + rid:1 step:368 gid:1049 user:rule:builtin:name = = + 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 + rid:1 step:368 gid:0 user:assign = X4 := pi c0 \ + pi c1 \ + pi c2 \ + pi c3 \ + pi c4 \ + pi c5 \ + pi c6 \ + pi c7 \ + pi c8 \ + pi c9 \ + pi c10 \ + expand + (app + [global (const «g»), + c0, c3, c5, c7 | c9]) + (app + [global + (const + «expanded_g»), + c1, c2, c4, c6, c8 | c10]) + :- + [!, + std.map c9 expand c10, + expand c7 c8, + expand c5 c6, + expand c3 c4, + expand c0 + (app + [global + (indc «Build_r»), + c1, c2])] + Debug: -----<<---- enter: -get-option coq:keepunivs tt => - std.assert-ok! - (coq.elaborate-skeleton (pglobal (const «f6») «uuu») (X4) X5) - illtyped definition + rid:1 step:368 gid:1049 user:rule:eq = success + +Debug: }}} -> (0.001s) +Debug: run 369 {{{ + 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 + rid:1 step:369 gid:1050 user:curgoal = ! + ! + +Debug: }}} -> (0.000s) Debug: -----<<---- enter: coq.upoly-decl->attribute (upoly-decl [] tt [] tt) X6 + rid:1 step:369 gid:1050 user:rule = cut + Debug: ----->>---- exit: -coq.upoly-decl->attribute (upoly-decl [] tt [] tt) - (get-option coq:udecl (upoly-decl [] tt [] tt)) + rid:1 step:369 gid:1050 user:rule:cut = success + +Debug: run 370 {{{ + 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 + rid:1 step:370 gid:1051 user:curgoal = std.do! + std.do! [] + 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'» + rid:1 step:370 gid:1051 user:rule = backchain + 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 + rid:1 step:370 gid:1051 user:rule:backchain:candidates = File "builtin_stdlib.elpi", line 278, column 0, characters 9282-9288: + +Debug: }}} -> (0.000s) +Debug: select 272 {{{ + 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) + rid:1 step:370 gid:1051 user:rule:backchain:try = File "builtin_stdlib.elpi", line 278, column 0, characters 9282-9288: + (std.do! []) :- . + 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 + rid:1 step:370 gid:1051 user:rule:backchain = success + +Debug: }}} -> (0.000s) +Debug: run 371 {{{ + 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 + rid:1 step:371 gid:692 user:curgoal = coq.elpi.accumulate + coq.elpi.accumulate _ record.expand.db + (clause _ (before expand:start) + (pi c0 \ + pi c1 \ + pi c2 \ + pi c3 \ + pi c4 \ + pi c5 \ + pi c6 \ + pi c7 \ + pi c8 \ + pi c9 \ + pi c10 \ + expand + (app + [global (const «g»), + c0, c3, c5, c7 | c9]) + (app + [global + (const + «expanded_g»), + c1, c2, c4, c6, c8 | c10]) + :- + [!, + std.map c9 expand c10, + expand c7 c8, + expand c5 c6, + expand c3 c4, + expand c0 + (app + [global + (indc «Build_r»), + c1, c2])])) + Debug: -----<<---- enter: -coq.upoly-decl->attribute - (upoly-decl [«elpi.tests.test_arg_HOAS.198»] ff [] tt) X1 + rid:1 step:371 gid:692 user:rule = backchain + 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)) + rid:1 step:371 gid:692 user:rule:backchain:candidates = File "coq-builtin.elpi", line 1787, column 0, characters 71769-71833: + +Debug: }}} -> (0.000s) +Debug: select 273 {{{ + 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 + rid:1 step:371 gid:692 user:rule:backchain:try = File "coq-builtin.elpi", line 1787, column 0, characters 71769-71833: + (coq.elpi.accumulate A0 A1 + A2) :- (coq.elpi.accumulate-clauses + A0 A1 [ + A2]). + 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 + rid:1 step:371 gid:0 user:assign = A1 := record.expand.db + Debug: -----<<---- enter: -get-option coq:keepunivs tt => - std.assert-ok! (coq.elaborate-ty-skeleton X1 X2 X3) illtyped arity + rid:1 step:371 gid:0 user:assign = A2 := clause _ (before expand:start) + (pi c0 \ + pi c1 \ + pi c2 \ + pi c3 \ + pi c4 \ + pi c5 \ + pi c6 \ + pi c7 \ + pi c8 \ + pi c9 \ + pi c10 \ + expand + (app + [global + (const «g»), + c0, c3, c5, c7 | c9]) + (app + [global + (const + «expanded_g»), + c1, c2, c4, c6, c8 | c10]) + :- + [!, + std.map c9 expand c10, + expand c7 c8, + expand c5 c6, + expand c3 c4, + expand c0 + (app + [global + (indc + «Build_r»), + c1, c2])]) + 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 + rid:1 step:371 gid:692 user:subgoal = 1052 + 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 + rid:1 step:371 gid:1052 user:newgoal = coq.elpi.accumulate-clauses X213 + record.expand.db + [clause _ (before expand:start) + (pi c0 \ + pi c1 \ + pi c2 \ + pi c3 \ + pi c4 \ + pi c5 \ + pi c6 \ + pi c7 \ + pi c8 \ + pi c9 \ + pi c10 \ + expand + (app + [global + (const «g»), + c0, c3, c5, c7 | c9]) + (app + [global + (const + «expanded_g»), + c1, c2, c4, c6, c8 | c10]) + :- + [!, + std.map c9 expand c10, + expand c7 c8, + expand c5 c6, + expand c3 c4, + expand c0 + (app + [global + (indc + «Build_r»), + c1, c2])])] + 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 + rid:1 step:371 gid:1052 user:rule:backchain = success + +Debug: }}} -> (0.001s) +Debug: run 372 {{{ + Debug: -----<<---- enter: -coq.upoly-decl->attribute - (upoly-decl [«elpi.tests.test_arg_HOAS.199»] ff [] tt) X6 + rid:1 step:372 gid:1052 user:curgoal = coq.elpi.accumulate-clauses + coq.elpi.accumulate-clauses X213 + record.expand.db + [clause _ (before expand:start) + (pi c0 \ + pi c1 \ + pi c2 \ + pi c3 \ + pi c4 \ + pi c5 \ + pi c6 \ + pi c7 \ + pi c8 \ + pi c9 \ + pi c10 \ + expand + (app + [global + (const «g»), + c0, c3, c5, c7 | c9]) + (app + [global + (const + «expanded_g»), + c1, c2, c4, c6, c8 | c10]) + :- + [!, + std.map c9 expand c10, + expand c7 c8, + expand c5 c6, + expand c3 c4, + expand c0 + (app + [global + (indc + «Build_r»), + c1, c2])])] + 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)) + rid:1 step:372 gid:1052 user:rule = builtin + 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 + rid:1 step:372 gid:1052 user:rule:builtin:name = coq.elpi.accumulate-clauses + 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] -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 - -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 + rid:1 step:372 gid:1052 user:rule:builtin = success + +Debug: }}} -> (0.001s) +expanded_g = +fun T : Type => +let X := T in +fun (op : T -> X -> bool) (l s : list T) (h : bool) => +(forall (x : T) (y : X), op x y = false) /\ expanded_f true T op l s = h + : forall T : Type, (T -> T -> bool) -> list T -> list T -> bool -> Prop -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 +Arguments expanded_g T%type_scope op%function_scope + (l s)%list_scope h%bool_scope This.Is.A.Long.Namespace.stuff = 1 : nat = 1 @@ -9593,146 +11678,6 @@ : nat default nat_def : nat : nat -hello1 -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 - -true : bool - : 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 -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] -program -[p] nabla c1 \ seal (goal [decl c1 `P` (sort prop)] (app [global (const «id»), X0, X1]) @@ -10453,7 +12398,7 @@ Debug: rid:0 step:1 gid:4 user:rule:and = success -Debug: }}} -> (0.006s) +Debug: }}} -> (0.002s) Debug: run 2 {{{ Debug: @@ -10639,7 +12584,7 @@ Debug: rid:0 step:4 gid:9 user:rule:backchain = success -Debug: }}} -> (0.003s) +Debug: }}} -> (0.001s) Debug: run 5 {{{ Debug: @@ -10823,7 +12768,7 @@ global (indc «O»)], c2], c1]]) (X1 c0 c1) -Debug: }}} -> (0.003s) +Debug: }}} -> (0.002s) Debug: run 7 {{{ Debug: @@ -11066,7 +13011,7 @@ Debug: rid:4 step:105 gid:244 user:rule:builtin = fail -Debug: }}} -> (0.000s) +Debug: }}} -> (0.001s) Debug: run 106 {{{ Debug: @@ -11104,7 +13049,7 @@ 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.002s) +Debug: }}} -> (0.001s) Debug: select 52 {{{ Debug: @@ -11283,7 +13228,7 @@ 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: }}} -> (0.001s) Debug: select 55 {{{ Debug: @@ -11401,7 +13346,7 @@ Debug: rid:4 step:110 gid:0 user:rule:resume = success -Debug: }}} -> (0.001s) +Debug: }}} -> (0.000s) Debug: run 111 {{{ Debug: @@ -11644,7 +13589,7 @@ global (indc «O»)], c4], c3]] = X49 c2 c3 c4 -Debug: }}} -> (0.002s) +Debug: }}} -> (0.001s) Debug: run 116 {{{ Debug: @@ -11685,7 +13630,7 @@ Debug: rid:4 step:116 gid:253 user:rule:eq = success -Debug: }}} -> (0.001s) +Debug: }}} -> (0.000s) Debug: run 117 {{{ Debug: @@ -11812,6 +13757,149 @@ 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] +1 + : 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 + +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 + +d + : nat +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 +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 +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: B = fix `add` 0 (prod `n` (global (indt «nat»)) c0 \ @@ -12450,2078 +14538,10 @@ 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] -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 _ _ -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 -global (indc «O») -app - [global (indc «S»), - app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] -Debug: run 1 {{{ - -Debug: - rid:0 step:1 gid:4 user:curgoal = => - attributes - [attribute elpi.loc - (leaf-loc - File "./examples/example_record_expansion.v", line 221, column 5, characters 9572-9585:), - attribute elpi.phase (leaf-str interp)] - => - (main-interp - [str r, str f, str expanded_] _ ; - main [str r, str f, str expanded_]) - -Debug: - rid:0 step:1 gid:4 user:rule = implication - -Debug: - rid:0 step:1 gid:4 user:subgoal = 5 - -Debug: - rid:0 step:1 gid:5 user:newgoal = main-interp [str r, str f, str expanded_] _ - ; main [str r, str f, str expanded_] - -Debug: - rid:0 step:1 gid:5 user:rule:implication = success - -Debug: }}} -> (0.000s) -Debug: run 2 {{{ - -Debug: - rid:0 step:2 gid:5 user:curgoal = ; - main-interp [str r, str f, str expanded_] _ - ; main [str r, str f, str expanded_] - -Debug: - rid:0 step:2 gid:5 user:rule = backchain - -Debug: - rid:0 step:2 gid:5 user:rule:backchain:candidates = File "elpi-builtin.elpi", line 34, column 0, characters 373-385: - File "elpi-builtin.elpi", line 36, column 0, characters 388-400: - -Debug: }}} -> (0.000s) -Debug: select 3 {{{ - -Debug: - rid:0 step:2 gid:5 user:rule:backchain:try = File "elpi-builtin.elpi", line 34, column 0, characters 373-385: - (A0 ; _) :- A0. - -Debug: - rid:0 step:2 gid:0 user:assign = A0 := main-interp - [str r, str f, str expanded_] _ - -Debug: - rid:0 step:2 gid:5 user:subgoal = 6 - -Debug: - rid:0 step:2 gid:6 user:newgoal = main-interp [str r, str f, str expanded_] _ - -Debug: - rid:0 step:2 gid:6 user:rule:backchain = success - -Debug: }}} -> (0.000s) -Debug: run 3 {{{ - -Debug: - rid:0 step:3 gid:6 user:curgoal = main-interp - main-interp [str r, str f, str expanded_] _ - -Debug: - rid:0 step:3 gid:6 user:rule = backchain - -Debug: rid:0 step:3 gid:6 user:rule:backchain:candidates = -Debug: }}} -> (0.000s) -Debug: select 4 {{{ - -Debug: - rid:0 step:3 gid:6 user:rule:backchain = fail - -Debug: }}} -> (0.000s) -Debug: run 4 {{{ - -Debug: - rid:0 step:4 gid:5 user:curgoal = ; - main-interp [str r, str f, str expanded_] _ - ; main [str r, str f, str expanded_] - -Debug: - rid:0 step:4 gid:5 user:rule = backchain - -Debug: - rid:0 step:4 gid:5 user:rule:backchain:candidates = File "elpi-builtin.elpi", line 36, column 0, characters 388-400: - -Debug: }}} -> (0.000s) -Debug: select 5 {{{ - -Debug: - rid:0 step:4 gid:5 user:rule:backchain:try = File "elpi-builtin.elpi", line 36, column 0, characters 388-400: - (_ ; A0) :- A0. - -Debug: - rid:0 step:4 gid:0 user:assign = A0 := main [str r, str f, str expanded_] - -Debug: - rid:0 step:4 gid:5 user:subgoal = 7 - -Debug: - rid:0 step:4 gid:7 user:newgoal = main [str r, str f, str expanded_] - -Debug: - rid:0 step:4 gid:7 user:rule:backchain = success - -Debug: }}} -> (0.000s) -Debug: run 5 {{{ - -Debug: - rid:0 step:5 gid:7 user:curgoal = main - main [str r, str f, str expanded_] - -Debug: - rid:0 step:5 gid:7 user:rule = backchain - -Debug: - rid:0 step:5 gid:7 user:rule:backchain:candidates = File "./examples/example_record_expansion.v", line 197, column 0, characters 8773-9225: - File "./examples/example_record_expansion.v", line 207, column 0, characters 9228-9306: - -Debug: }}} -> (0.000s) -Debug: select 6 {{{ - -Debug: - rid:0 step:5 gid:7 user:rule:backchain:try = File "./examples/example_record_expansion.v", line 197, column 0, characters 8773-9225: - (main [str A0, str A2, str A6]) :- (!), - (std.assert! - (coq.locate A0 (indt A1)) - The first argument must be a record name), - (std.assert! - (coq.locate A2 A3) - The second argument must be a global term), - (coq.gref->id A3 A4), - (A5 is A6 ^ A4), - (expand-gref A1 A3 A5 A7), - (coq.elpi.accumulate _ - record.expand.db - (clause _ - (before expand:start) A7)). - -Debug: - rid:0 step:5 gid:0 user:assign = A0 := r - -Debug: - rid:0 step:5 gid:0 user:assign = A2 := f - -Debug: - rid:0 step:5 gid:0 user:assign = A6 := expanded_ - -Debug: - rid:0 step:5 gid:7 user:subgoal = 8 - -Debug: - rid:0 step:5 gid:8 user:newgoal = ! - -Debug: - rid:0 step:5 gid:8 user:subgoal = 9 - -Debug: - rid:0 step:5 gid:9 user:newgoal = std.assert! (coq.locate r (indt X0)) - The first argument must be a record name - -Debug: - rid:0 step:5 gid:8 user:subgoal = 10 - -Debug: - rid:0 step:5 gid:10 user:newgoal = std.assert! (coq.locate f X1) - The second argument must be a global term - -Debug: - rid:0 step:5 gid:8 user:subgoal = 11 - -Debug: - rid:0 step:5 gid:11 user:newgoal = coq.gref->id X1 X2 - -Debug: - rid:0 step:5 gid:8 user:subgoal = 12 - -Debug: - rid:0 step:5 gid:12 user:newgoal = X3 is expanded_ ^ X2 - -Debug: - rid:0 step:5 gid:8 user:subgoal = 13 - -Debug: - rid:0 step:5 gid:13 user:newgoal = expand-gref X0 X1 X3 X4 - -Debug: - rid:0 step:5 gid:8 user:subgoal = 14 - -Debug: - rid:0 step:5 gid:14 user:newgoal = coq.elpi.accumulate _ record.expand.db - (clause _ (before expand:start) X4) - -Debug: - rid:0 step:5 gid:8 user:rule:backchain = success - -Debug: }}} -> (0.001s) -Debug: run 6 {{{ - -Debug: - rid:0 step:6 gid:8 user:curgoal = ! - ! - -Debug: }}} -> (0.000s) -Debug: - rid:0 step:6 gid:8 user:rule = cut - -Debug: - rid:0 step:6 gid:0 user:rule:cut:branch = 7 - File "./examples/example_record_expansion.v", line 207, column 0, characters 9228-9306: - (main _) :- (coq.error - usage: Elpi record.expand record_name global_term prefix). - -Debug: - rid:0 step:6 gid:8 user:rule:cut = success - -Debug: run 7 {{{ - -Debug: - rid:0 step:7 gid:9 user:curgoal = std.assert! - std.assert! (coq.locate r (indt X0)) - The first argument must be a record name - -Debug: - rid:0 step:7 gid:9 user:rule = backchain - -Debug: - rid:0 step:7 gid:9 user:rule:backchain:candidates = File "builtin_stdlib.elpi", line 39, column 0, characters 1190-1249: - -Debug: }}} -> (0.000s) -Debug: select 7 {{{ - -Debug: - rid:0 step:7 gid:9 user:rule:backchain:try = File "builtin_stdlib.elpi", line 39, column 0, characters 1190-1249: - (std.assert! A0 A1) :- ( - A0 ; - std.fatal-error-w-data A1 A0), - (!). - -Debug: - rid:0 step:7 gid:0 user:assign = A0 := coq.locate r (indt X0) - -Debug: - rid:0 step:7 gid:0 user:assign = A1 := The first argument must be a record name - -Debug: - rid:0 step:7 gid:9 user:subgoal = 15 - -Debug: - rid:0 step:7 gid:15 user:newgoal = coq.locate r (indt X0) ; - std.fatal-error-w-data - The first argument must be a record name - (coq.locate r (indt X0)) - -Debug: - rid:0 step:7 gid:15 user:subgoal = 16 - -Debug: - rid:0 step:7 gid:16 user:newgoal = ! - -Debug: - rid:0 step:7 gid:15 user:rule:backchain = success - -Debug: }}} -> (0.000s) -Debug: run 8 {{{ - -Debug: - rid:0 step:8 gid:15 user:curgoal = ; - coq.locate r (indt X0) ; - std.fatal-error-w-data - The first argument must be a record name - (coq.locate r (indt X0)) - -Debug: - rid:0 step:8 gid:15 user:rule = backchain - -Debug: - rid:0 step:8 gid:15 user:rule:backchain:candidates = File "elpi-builtin.elpi", line 34, column 0, characters 373-385: - File "elpi-builtin.elpi", line 36, column 0, characters 388-400: - -Debug: }}} -> (0.000s) -Debug: select 8 {{{ - -Debug: - rid:0 step:8 gid:15 user:rule:backchain:try = File "elpi-builtin.elpi", line 34, column 0, characters 373-385: - (A0 ; _) :- A0. - -Debug: - rid:0 step:8 gid:0 user:assign = A0 := coq.locate r (indt X0) - -Debug: - rid:0 step:8 gid:15 user:subgoal = 17 - -Debug: - rid:0 step:8 gid:17 user:newgoal = coq.locate r (indt X0) - -Debug: - rid:0 step:8 gid:17 user:rule:backchain = success - -Debug: }}} -> (0.001s) -Debug: run 9 {{{ - -Debug: - rid:0 step:9 gid:17 user:curgoal = coq.locate - coq.locate r (indt X0) - -Debug: - rid:0 step:9 gid:17 user:rule = builtin - -Debug: - rid:0 step:9 gid:17 user:rule:builtin:name = coq.locate - -Debug: - rid:0 step:9 gid:17 user:rule:builtin = success - -Debug: - rid:0 step:9 gid:17 user:subgoal = 18 - -Debug: - rid:0 step:9 gid:18 user:newgoal = indt X0 = indt «r» - -Debug: }}} -> (0.000s) -Debug: run 10 {{{ - -Debug: - rid:0 step:10 gid:18 user:curgoal = = - indt X0 = indt «r» - -Debug: - rid:0 step:10 gid:18 user:rule = eq - -Debug: - rid:0 step:10 gid:18 user:rule:builtin:name = = - -Debug: - rid:0 step:10 gid:0 user:assign = X0 := «r» - -Debug: - rid:0 step:10 gid:18 user:rule:eq = success - -Debug: }}} -> (0.000s) -Debug: run 11 {{{ - -Debug: - rid:0 step:11 gid:16 user:curgoal = ! - ! - -Debug: }}} -> (0.000s) -Debug: - rid:0 step:11 gid:16 user:rule = cut - -Debug: - rid:0 step:11 gid:0 user:rule:cut:branch = 15 - File "elpi-builtin.elpi", line 36, column 0, characters 388-400: - (_ ; A0) :- A0. - -Debug: - rid:0 step:11 gid:16 user:rule:cut = success - -Debug: run 12 {{{ - -Debug: - rid:0 step:12 gid:10 user:curgoal = std.assert! - std.assert! (coq.locate f X1) - The second argument must be a global term - -Debug: - rid:0 step:12 gid:10 user:rule = backchain - -Debug: - rid:0 step:12 gid:10 user:rule:backchain:candidates = File "builtin_stdlib.elpi", line 39, column 0, characters 1190-1249: - -Debug: }}} -> (0.000s) -Debug: select 9 {{{ - -Debug: - rid:0 step:12 gid:10 user:rule:backchain:try = File "builtin_stdlib.elpi", line 39, column 0, characters 1190-1249: - (std.assert! A0 A1) :- ( - A0 ; - std.fatal-error-w-data A1 A0), - (!). - -Debug: - rid:0 step:12 gid:0 user:assign = A0 := coq.locate f X1 - -Debug: - rid:0 step:12 gid:0 user:assign = A1 := The second argument must be a global term - -Debug: - rid:0 step:12 gid:10 user:subgoal = 19 - -Debug: - rid:0 step:12 gid:19 user:newgoal = coq.locate f X1 ; - std.fatal-error-w-data - The second argument must be a global term - (coq.locate f X1) - -Debug: - rid:0 step:12 gid:19 user:subgoal = 20 - -Debug: - rid:0 step:12 gid:20 user:newgoal = ! - -Debug: - rid:0 step:12 gid:19 user:rule:backchain = success - -Debug: }}} -> (0.000s) -Debug: run 13 {{{ - -Debug: - rid:0 step:13 gid:19 user:curgoal = ; - coq.locate f X1 ; - std.fatal-error-w-data - The second argument must be a global term - (coq.locate f X1) - -Debug: - rid:0 step:13 gid:19 user:rule = backchain - -Debug: - rid:0 step:13 gid:19 user:rule:backchain:candidates = File "elpi-builtin.elpi", line 34, column 0, characters 373-385: - File "elpi-builtin.elpi", line 36, column 0, characters 388-400: - -Debug: }}} -> (0.000s) -Debug: select 10 {{{ - -Debug: - rid:0 step:13 gid:19 user:rule:backchain:try = File "elpi-builtin.elpi", line 34, column 0, characters 373-385: - (A0 ; _) :- A0. - -Debug: - rid:0 step:13 gid:0 user:assign = A0 := coq.locate f X1 - -Debug: - rid:0 step:13 gid:19 user:subgoal = 21 - -Debug: - rid:0 step:13 gid:21 user:newgoal = coq.locate f X1 - -Debug: - rid:0 step:13 gid:21 user:rule:backchain = success - -Debug: }}} -> (0.000s) -Debug: run 14 {{{ - -Debug: - rid:0 step:14 gid:21 user:curgoal = coq.locate - coq.locate f X1 - -Debug: - rid:0 step:14 gid:21 user:rule = builtin - -Debug: - rid:0 step:14 gid:21 user:rule:builtin:name = coq.locate - -Debug: - rid:0 step:14 gid:21 user:rule:builtin = success - -Debug: - rid:0 step:14 gid:21 user:subgoal = 22 - -Debug: - rid:0 step:14 gid:22 user:newgoal = X1 = const «f» - -Debug: }}} -> (0.000s) -Debug: run 15 {{{ - -Debug: - rid:0 step:15 gid:22 user:curgoal = = - X1 = const «f» - -Debug: - rid:0 step:15 gid:22 user:rule = eq - -Debug: - rid:0 step:15 gid:22 user:rule:builtin:name = = - -Debug: - rid:0 step:15 gid:0 user:assign = X1 := const «f» - -Debug: - rid:0 step:15 gid:22 user:rule:eq = success - -Debug: }}} -> (0.000s) -Debug: run 16 {{{ - -Debug: - rid:0 step:16 gid:20 user:curgoal = ! - ! - -Debug: }}} -> (0.000s) -Debug: - rid:0 step:16 gid:20 user:rule = cut - -Debug: - rid:0 step:16 gid:0 user:rule:cut:branch = 19 - File "elpi-builtin.elpi", line 36, column 0, characters 388-400: - (_ ; A0) :- A0. - -Debug: - rid:0 step:16 gid:20 user:rule:cut = success - -Debug: run 17 {{{ - -Debug: - rid:0 step:17 gid:11 user:curgoal = coq.gref->id - coq.gref->id (const «f») X2 - -Debug: - rid:0 step:17 gid:11 user:rule = builtin - -Debug: - rid:0 step:17 gid:11 user:rule:builtin:name = coq.gref->id - -Debug: - rid:0 step:17 gid:11 user:rule:builtin = success - -Debug: - rid:0 step:17 gid:11 user:subgoal = 23 - -Debug: - rid:0 step:17 gid:23 user:newgoal = X2 = f - -Debug: }}} -> (0.000s) -Debug: run 18 {{{ - -Debug: - rid:0 step:18 gid:23 user:curgoal = = - X2 = f - -Debug: - rid:0 step:18 gid:23 user:rule = eq - -Debug: - rid:0 step:18 gid:23 user:rule:builtin:name = = - -Debug: - rid:0 step:18 gid:0 user:assign = X2 := f - -Debug: - rid:0 step:18 gid:23 user:rule:eq = success - -Debug: }}} -> (0.000s) -Debug: run 19 {{{ - -Debug: - rid:0 step:19 gid:12 user:curgoal = is - X3 is expanded_ ^ f - -Debug: - rid:0 step:19 gid:12 user:rule = backchain - -Debug: - rid:0 step:19 gid:12 user:rule:backchain:candidates = File "elpi-builtin.elpi", line 83, column 0, characters 1181-1199: - -Debug: }}} -> (0.000s) -Debug: select 11 {{{ - -Debug: - rid:0 step:19 gid:12 user:rule:backchain:try = File "elpi-builtin.elpi", line 83, column 0, characters 1181-1199: - (A1 is A0) :- (calc A0 A1). - -Debug: - rid:0 step:19 gid:0 user:assign = A1 := X3 - -Debug: - rid:0 step:19 gid:0 user:assign = A0 := expanded_ ^ f - -Debug: - rid:0 step:19 gid:12 user:subgoal = 24 - -Debug: - rid:0 step:19 gid:24 user:newgoal = calc (expanded_ ^ f) X3 - -Debug: - rid:0 step:19 gid:24 user:rule:backchain = success - -Debug: }}} -> (0.000s) -Debug: run 20 {{{ - -Debug: - rid:0 step:20 gid:24 user:curgoal = calc - calc (expanded_ ^ f) X3 - -Debug: - rid:0 step:20 gid:24 user:rule = builtin - -Debug: - rid:0 step:20 gid:24 user:rule:builtin:name = calc - -Debug: - rid:0 step:20 gid:24 user:rule:builtin = success - -Debug: - rid:0 step:20 gid:24 user:subgoal = 25 - -Debug: - rid:0 step:20 gid:25 user:newgoal = X3 = expanded_f - -Debug: }}} -> (0.000s) -Debug: run 21 {{{ - -Debug: - rid:0 step:21 gid:25 user:curgoal = = - X3 = expanded_f - -Debug: - rid:0 step:21 gid:25 user:rule = eq - -Debug: - rid:0 step:21 gid:25 user:rule:builtin:name = = - -Debug: - rid:0 step:21 gid:0 user:assign = X3 := expanded_f - -Debug: - rid:0 step:21 gid:25 user:rule:eq = success - -Debug: }}} -> (0.000s) -Debug: run 22 {{{ - -Debug: - rid:0 step:22 gid:13 user:curgoal = expand-gref - expand-gref «r» (const «f») - expanded_f X4 - -Debug: - rid:0 step:22 gid:13 user:rule = backchain - -Debug: - rid:0 step:22 gid:13 user:rule:backchain:candidates = File "./examples/example_record_expansion.v", line 184, column 0, characters 8165-8504: - File "./examples/example_record_expansion.v", line 192, column 0, characters 8507-8568: - File "./examples/example_record_expansion.v", line 194, column 0, characters 8571-8690: - -Debug: }}} -> (0.000s) -Debug: select 12 {{{ - -Debug: - rid:0 step:22 gid:13 user:rule:backchain:try = File "./examples/example_record_expansion.v", line 184, column 0, characters 8165-8504: - (expand-gref A2 (const A0) A5 - A7) :- (!), - (std.do! - [std.assert! - (coq.env.const A0 - (some A1) _) - only transparent constants can be expanded, - pi (c0 \ - (expand-record A2 - (const A0) c0 A1 A3 - (A4 c0))), - std.assert-ok! - (coq.typecheck A3 _) - illtyped, - coq.env.add-const A5 A3 _ - _ A6, A7 = A4 (const A6)]). - -Debug: - rid:0 step:22 gid:0 user:assign = A2 := «r» - -Debug: - rid:0 step:22 gid:0 user:assign = A0 := «f» - -Debug: - rid:0 step:22 gid:0 user:assign = A5 := expanded_f - -Debug: - rid:0 step:22 gid:0 user:assign = A7 := X4 - -Debug: - rid:0 step:22 gid:13 user:subgoal = 26 - -Debug: - rid:0 step:22 gid:26 user:newgoal = ! - -Debug: - rid:0 step:22 gid:26 user:subgoal = 27 - -Debug: - rid:0 step:22 gid:27 user:newgoal = std.do! - [std.assert! - (coq.env.const «f» (some X5) _) - only transparent constants can be expanded, - pi c0 \ - expand-record «r» (const «f») c0 - X5 X6 (X7 c0), - std.assert-ok! (coq.typecheck X6 _) - illtyped, - coq.env.add-const expanded_f X6 _ _ X8, - X4 = X7 (const X8)] - -Debug: - rid:0 step:22 gid:26 user:rule:backchain = success - -Debug: }}} -> (0.001s) -Debug: run 23 {{{ - -Debug: - rid:0 step:23 gid:26 user:curgoal = ! - ! - -Debug: }}} -> (0.001s) -Debug: - rid:0 step:23 gid:26 user:rule = cut - -Debug: - rid:0 step:23 gid:0 user:rule:cut:branch = 13 - File "./examples/example_record_expansion.v", line 192, column 0, characters 8507-8568: - (expand-gref _ (indt _) _ _) :- ( - coq.error Not implemented yet). - -Debug: - rid:0 step:23 gid:0 user:rule:cut:branch = 13 - File "./examples/example_record_expansion.v", line 194, column 0, characters 8571-8690: - (expand-gref _ (indc _) _ _) :- ( - coq.error - It makes no sense to expand a constructor alone, expand the inductive instead). - -Debug: - rid:0 step:23 gid:26 user:rule:cut = success - -Debug: run 24 {{{ - -Debug: - rid:0 step:24 gid:27 user:curgoal = std.do! - std.do! - [std.assert! - (coq.env.const «f» (some X5) _) - only transparent constants can be expanded, - pi c0 \ - expand-record «r» (const «f») c0 - X5 X6 (X7 c0), - std.assert-ok! (coq.typecheck X6 _) - illtyped, - coq.env.add-const expanded_f X6 _ _ X8, - X4 = X7 (const X8)] - -Debug: - rid:0 step:24 gid:27 user:rule = backchain - -Debug: - rid:0 step:24 gid:27 user:rule:backchain:candidates = File "builtin_stdlib.elpi", line 279, column 0, characters 9290-9316: - -Debug: }}} -> (0.000s) -Debug: select 13 {{{ - -Debug: - rid:0 step:24 gid:27 user:rule:backchain:try = File "builtin_stdlib.elpi", line 279, column 0, characters 9290-9316: - (std.do! [A0 | A1]) :- A0, - (!), (std.do! A1). - -Debug: - rid:0 step:24 gid:0 user:assign = A0 := std.assert! - (coq.env.const «f» (some X5) _) - only transparent constants can be expanded - -Debug: - rid:0 step:24 gid:0 user:assign = A1 := [pi c0 \ - expand-record «r» (const «f») - c0 X5 X6 (X7 c0), - std.assert-ok! (coq.typecheck X6 _) - illtyped, - coq.env.add-const expanded_f X6 _ _ - X8, X4 = X7 (const X8)] - -Debug: - rid:0 step:24 gid:27 user:subgoal = 28 - -Debug: - rid:0 step:24 gid:28 user:newgoal = std.assert! - (coq.env.const «f» (some X5) _) - only transparent constants can be expanded - -Debug: - rid:0 step:24 gid:28 user:subgoal = 29 - -Debug: - rid:0 step:24 gid:29 user:newgoal = ! - -Debug: - rid:0 step:24 gid:28 user:subgoal = 30 - -Debug: - rid:0 step:24 gid:30 user:newgoal = std.do! - [pi c0 \ - expand-record «r» (const «f») c0 - X5 X6 (X7 c0), - std.assert-ok! (coq.typecheck X6 _) - illtyped, - coq.env.add-const expanded_f X6 _ _ X8, - X4 = X7 (const X8)] - -Debug: - rid:0 step:24 gid:28 user:rule:backchain = success - -Debug: }}} -> (0.000s) -Debug: run 25 {{{ - -Debug: - rid:0 step:25 gid:28 user:curgoal = std.assert! - std.assert! - (coq.env.const «f» (some X5) _) - only transparent constants can be expanded - -Debug: - rid:0 step:25 gid:28 user:rule = backchain - -Debug: - rid:0 step:25 gid:28 user:rule:backchain:candidates = File "builtin_stdlib.elpi", line 39, column 0, characters 1190-1249: - -Debug: }}} -> (0.000s) -Debug: select 14 {{{ - -Debug: - rid:0 step:25 gid:28 user:rule:backchain:try = File "builtin_stdlib.elpi", line 39, column 0, characters 1190-1249: - (std.assert! A0 A1) :- ( - A0 ; - std.fatal-error-w-data A1 A0), - (!). - -Debug: - rid:0 step:25 gid:0 user:assign = A0 := coq.env.const «f» (some X5) _ - -Debug: - rid:0 step:25 gid:0 user:assign = A1 := only transparent constants can be expanded - -Debug: - rid:0 step:25 gid:28 user:subgoal = 31 - -Debug: - rid:0 step:25 gid:31 user:newgoal = coq.env.const «f» (some X5) _ ; - std.fatal-error-w-data - only transparent constants can be expanded - (coq.env.const «f» (some X5) _) - -Debug: - rid:0 step:25 gid:31 user:subgoal = 32 - -Debug: - rid:0 step:25 gid:32 user:newgoal = ! - -Debug: - rid:0 step:25 gid:31 user:rule:backchain = success - -Debug: }}} -> (0.000s) -Debug: run 26 {{{ - -Debug: - rid:0 step:26 gid:31 user:curgoal = ; - coq.env.const «f» (some X5) _ ; - std.fatal-error-w-data - only transparent constants can be expanded - (coq.env.const «f» (some X5) _) - -Debug: - rid:0 step:26 gid:31 user:rule = backchain - -Debug: - rid:0 step:26 gid:31 user:rule:backchain:candidates = File "elpi-builtin.elpi", line 34, column 0, characters 373-385: - File "elpi-builtin.elpi", line 36, column 0, characters 388-400: - -Debug: }}} -> (0.000s) -Debug: select 15 {{{ - -Debug: - rid:0 step:26 gid:31 user:rule:backchain:try = File "elpi-builtin.elpi", line 34, column 0, characters 373-385: - (A0 ; _) :- A0. - -Debug: - rid:0 step:26 gid:0 user:assign = A0 := coq.env.const «f» (some X5) _ - -Debug: - rid:0 step:26 gid:31 user:subgoal = 33 - -Debug: - rid:0 step:26 gid:33 user:newgoal = coq.env.const «f» (some X5) _ - -Debug: - rid:0 step:26 gid:33 user:rule:backchain = success - -Debug: }}} -> (0.000s) -Debug: run 27 {{{ - -Debug: - rid:0 step:27 gid:33 user:curgoal = coq.env.const - coq.env.const «f» (some X5) _ - -Debug: - rid:0 step:27 gid:33 user:rule = builtin - -Debug: - rid:0 step:27 gid:33 user:rule:builtin:name = coq.env.const - -Debug: - rid:0 step:27 gid:33 user:rule:builtin = success - -Debug: - rid:0 step:27 gid:33 user:subgoal = 34 - -Debug: - rid:0 step:27 gid:34 user:newgoal = some X5 = - some - (fun `b` (global (indt «bool»)) c0 \ - fun `t` (global (indt «r»)) c1 \ - let `q` (global (indt «bool»)) - (app [global (const «negb»), c0]) - c2 \ - fix `rec` 0 - (prod `l1` - (app - [global (indt «list»), - app - [global (const «T»), c1]]) - c3 \ - prod `l2` - (app - [global (indt «list»), - app - [global (const «T»), c1]]) - c4 \ global (indt «bool»)) - c3 \ - fun `l1` - (app - [global (indt «list»), - app [global (const «T»), c1]]) - c4 \ - fun `l2` - (app - [global (indt «list»), - app - [global (const «T»), c1]]) - c5 \ - match c4 - (fun `l1` - (app - [global (indt «list»), - app - [global (const «T»), c1]]) - c6 \ global (indt «bool»)) - [match c5 - (fun `l2` - (app - [global (indt «list»), - app - [global (const «T»), - c1]]) c6 \ - global (indt «bool»)) - [c0, - fun `t0` - (app - [global (const «T»), c1]) - c6 \ - fun `l` - (app - [global (indt «list»), - app - [global (const «T»), - c1]]) c7 \ c2], - fun `x` - (app - [global (const «T»), c1]) - c6 \ - fun `xs` - (app - [global (indt «list»), - app - [global (const «T»), - c1]]) c7 \ - match c5 - (fun `l2` - (app - [global (indt «list»), - app - [global (const «T»), - c1]]) c8 \ - global (indt «bool»)) - [c2, - fun `y` - (app - [global (const «T»), - c1]) c8 \ - fun `ys` - (app - [global - (indt «list»), - app - [global - (const «T»), c1]]) - c9 \ - app - [global - (const «andb»), - app - [global - (const «op»), - c1, c6, c8], - app [c3, c7, c9]]]]) - -Debug: }}} -> (0.002s) -Debug: run 28 {{{ - -Debug: - rid:0 step:28 gid:34 user:curgoal = = - some X5 = - some - (fun `b` (global (indt «bool»)) c0 \ - fun `t` (global (indt «r»)) c1 \ - let `q` (global (indt «bool»)) - (app [global (const «negb»), c0]) - c2 \ - fix `rec` 0 - (prod `l1` - (app - [global (indt «list»), - app - [global (const «T»), c1]]) - c3 \ - prod `l2` - (app - [global (indt «list»), - app - [global (const «T»), c1]]) - c4 \ global (indt «bool»)) - c3 \ - fun `l1` - (app - [global (indt «list»), - app [global (const «T»), c1]]) - c4 \ - fun `l2` - (app - [global (indt «list»), - app - [global (const «T»), c1]]) - c5 \ - match c4 - (fun `l1` - (app - [global (indt «list»), - app - [global (const «T»), c1]]) - c6 \ global (indt «bool»)) - [match c5 - (fun `l2` - (app - [global (indt «list»), - app - [global (const «T»), - c1]]) c6 \ - global (indt «bool»)) - [c0, - fun `t0` - (app - [global (const «T»), c1]) - c6 \ - fun `l` - (app - [global (indt «list»), - app - [global (const «T»), - c1]]) c7 \ c2], - fun `x` - (app - [global (const «T»), c1]) - c6 \ - fun `xs` - (app - [global (indt «list»), - app - [global (const «T»), - c1]]) c7 \ - match c5 - (fun `l2` - (app - [global (indt «list»), - app - [global (const «T»), - c1]]) c8 \ - global (indt «bool»)) - [c2, - fun `y` - (app - [global (const «T»), - c1]) c8 \ - fun `ys` - (app - [global - (indt «list»), - app - [global - (const «T»), c1]]) - c9 \ - app - [global - (const «andb»), - app - [global - (const «op»), - c1, c6, c8], - app [c3, c7, c9]]]]) - -Debug: - rid:0 step:28 gid:34 user:rule = eq - -Debug: - rid:0 step:28 gid:34 user:rule:builtin:name = = - -Debug: - rid:0 step:28 gid:0 user:assign = X5 := fun `b` (global (indt «bool»)) c0 \ - fun `t` (global (indt «r»)) c1 \ - let `q` (global (indt «bool»)) -...TRUNCATED BY DUNE... - global (indt «bool»)) c1 \ - prod `l` - (app [global (indt «list»), c0]) - c2 \ - prod `s` - (app [global (indt «list»), c0]) - c3 \ - prod `h` - (global (indt «bool»)) c4 \ - sort prop - -Debug: - rid:1 step:356 gid:1042 user:rule = eq - -Debug: - rid:1 step:356 gid:1042 user:rule:builtin:name = = - -Debug: - rid:1 step:356 gid:1042 user:rule:eq = success - -Debug: }}} -> (0.000s) -Debug: run 357 {{{ - -Debug: - rid:1 step:357 gid:1043 user:curgoal = = - X211 = ok - -Debug: - rid:1 step:357 gid:1043 user:rule = eq - -Debug: - rid:1 step:357 gid:1043 user:rule:builtin:name = = - -Debug: - rid:1 step:357 gid:0 user:assign = X211 := ok - -Debug: - rid:1 step:357 gid:1043 user:rule:eq = success - -Debug: }}} -> (0.000s) -Debug: run 358 {{{ - -Debug: - rid:1 step:358 gid:1039 user:curgoal = ! - ! - -Debug: }}} -> (0.000s) -Debug: - rid:1 step:358 gid:1039 user:rule = cut - -Debug: - rid:1 step:358 gid:0 user:rule:cut:branch = 1035 - File "builtin_stdlib.elpi", line 45, column 0, characters 1554-1621: - (std.assert-ok! _ A0) :- ( - std.fatal-error-w-data A0 - no diagnostic returned). - -Debug: - rid:1 step:358 gid:1039 user:rule:cut = success - -Debug: run 359 {{{ - -Debug: - rid:1 step:359 gid:1040 user:curgoal = ; - ok = ok ; - ok = error X212 , - std.fatal-error-w-data illtyped X212 - -Debug: - rid:1 step:359 gid:1040 user:rule = backchain - -Debug: - rid:1 step:359 gid:1040 user:rule:backchain:candidates = File "elpi-builtin.elpi", line 34, column 0, characters 373-385: - File "elpi-builtin.elpi", line 36, column 0, characters 388-400: - -Debug: }}} -> (0.000s) -Debug: select 269 {{{ - -Debug: - rid:1 step:359 gid:1040 user:rule:backchain:try = File "elpi-builtin.elpi", line 34, column 0, characters 373-385: - (A0 ; _) :- A0. - -Debug: - rid:1 step:359 gid:0 user:assign = A0 := ok = ok - -Debug: - rid:1 step:359 gid:1040 user:subgoal = 1044 - -Debug: - rid:1 step:359 gid:1044 user:newgoal = ok = ok - -Debug: - rid:1 step:359 gid:1044 user:rule:backchain = success - -Debug: }}} -> (0.000s) -Debug: run 360 {{{ - -Debug: - rid:1 step:360 gid:1044 user:curgoal = = - ok = ok - -Debug: - rid:1 step:360 gid:1044 user:rule = eq - -Debug: - rid:1 step:360 gid:1044 user:rule:builtin:name = = - -Debug: - rid:1 step:360 gid:1044 user:rule:eq = success - -Debug: }}} -> (0.000s) -Debug: run 361 {{{ - -Debug: - rid:1 step:361 gid:1041 user:curgoal = ! - ! - -Debug: }}} -> (0.000s) -Debug: - rid:1 step:361 gid:1041 user:rule = cut - -Debug: - rid:1 step:361 gid:0 user:rule:cut:branch = 1040 - File "elpi-builtin.elpi", line 36, column 0, characters 388-400: - (_ ; A0) :- A0. - -Debug: - rid:1 step:361 gid:1041 user:rule:cut = success - -Debug: run 362 {{{ - -Debug: - rid:1 step:362 gid:1036 user:curgoal = ! - ! - -Debug: }}} -> (0.000s) -Debug: - rid:1 step:362 gid:1036 user:rule = cut - -Debug: - rid:1 step:362 gid:1036 user:rule:cut = success - -Debug: run 363 {{{ - -Debug: - rid:1 step:363 gid:1037 user:curgoal = std.do! - std.do! - [coq.env.add-const expanded_g - (fun `T` (sort (typ «r.u0»)) c0 \ - let `X` (sort (typ «r.u0»)) c0 - c1 \ - fun `op` - (prod `_` c0 c2 \ - prod `_` c1 c3 \ - global (indt «bool»)) c2 \ - fun `l` - (app - [global (indt «list»), c0]) - c3 \ - fun `s` - (app - [global (indt «list»), c0]) - c4 \ - fun `h` - (global (indt «bool»)) - c5 \ - app - [global (indt «and»), - prod `x` c0 c6 \ - prod `y` c1 c7 \ - app - [global (indt «eq»), - global (indt «bool»), - app [c2, c6, c7], - global - (indc «false»)], - app - [global (indt «eq»), - global (indt «bool»), - app - [global - (const «expanded_f»), - global (indc «true»), - c0, c2, c3, c4], c5]]) - _ _ X8, - X4 = - pi c0 \ - pi c1 \ - pi c2 \ - pi c3 \ - pi c4 \ - pi c5 \ - pi c6 \ - pi c7 \ - pi c8 \ - pi c9 \ - pi c10 \ - expand - (app - [global (const «g»), - c0, c3, c5, c7 | c9]) - (app - [global (const X8), - c1, c2, c4, c6, c8 | c10]) - :- - [!, - std.map c9 expand c10, - expand c7 c8, - expand c5 c6, - expand c3 c4, - expand c0 - (app - [global - (indc «Build_r»), - c1, c2])]] - -Debug: - rid:1 step:363 gid:1037 user:rule = backchain - -Debug: - rid:1 step:363 gid:1037 user:rule:backchain:candidates = File "builtin_stdlib.elpi", line 279, column 0, characters 9290-9316: - -Debug: }}} -> (0.001s) -Debug: select 270 {{{ - -Debug: - rid:1 step:363 gid:1037 user:rule:backchain:try = File "builtin_stdlib.elpi", line 279, column 0, characters 9290-9316: - (std.do! [A0 | A1]) :- A0, - (!), (std.do! A1). - -Debug: - rid:1 step:363 gid:0 user:assign = A0 := coq.env.add-const expanded_g - (fun `T` (sort (typ «r.u0»)) c0 \ - let `X` (sort (typ «r.u0»)) c0 - c1 \ - fun `op` - (prod `_` c0 c2 \ - prod `_` c1 c3 \ - global (indt «bool»)) c2 \ - fun `l` - (app - [global (indt «list»), c0]) - c3 \ - fun `s` - (app - [global (indt «list»), c0]) - c4 \ - fun `h` - (global (indt «bool»)) - c5 \ - app - [global (indt «and»), - prod `x` c0 c6 \ - prod `y` c1 c7 \ - app - [global (indt «eq»), - global (indt «bool»), - app [c2, c6, c7], - global - (indc «false»)], - app - [global (indt «eq»), - global (indt «bool»), - app - [global - (const «expanded_f»), - global (indc «true»), - c0, c2, c3, c4], c5]]) - _ _ X8 - -Debug: - rid:1 step:363 gid:0 user:assign = A1 := [X4 = - pi c0 \ - pi c1 \ - pi c2 \ - pi c3 \ - pi c4 \ - pi c5 \ - pi c6 \ - pi c7 \ - pi c8 \ - pi c9 \ - pi c10 \ - expand - (app - [global - (const «g»), - c0, c3, c5, c7 | c9]) - (app - [global (const X8), - c1, c2, c4, c6, c8 | c10]) - :- - [!, - std.map c9 expand c10, - expand c7 c8, - expand c5 c6, - expand c3 c4, - expand c0 - (app - [global - (indc - «Build_r»), - c1, c2])]] - -Debug: - rid:1 step:363 gid:1037 user:subgoal = 1045 - -Debug: - rid:1 step:363 gid:1045 user:newgoal = coq.env.add-const expanded_g - (fun `T` (sort (typ «r.u0»)) c0 \ - let `X` (sort (typ «r.u0»)) c0 - c1 \ - fun `op` - (prod `_` c0 c2 \ - prod `_` c1 c3 \ - global (indt «bool»)) c2 \ - fun `l` - (app - [global (indt «list»), c0]) - c3 \ - fun `s` - (app - [global (indt «list»), c0]) - c4 \ - fun `h` - (global (indt «bool»)) c5 \ - app - [global (indt «and»), - prod `x` c0 c6 \ - prod `y` c1 c7 \ - app - [global (indt «eq»), - global (indt «bool»), - app [c2, c6, c7], - global (indc «false»)], - app - [global (indt «eq»), - global (indt «bool»), - app - [global - (const «expanded_f»), - global (indc «true»), - c0, c2, c3, c4], c5]]) - _ _ X8 - -Debug: - rid:1 step:363 gid:1045 user:subgoal = 1046 - -Debug: - rid:1 step:363 gid:1046 user:newgoal = ! - -Debug: - rid:1 step:363 gid:1045 user:subgoal = 1047 - -Debug: - rid:1 step:363 gid:1047 user:newgoal = std.do! - [X4 = - pi c0 \ - pi c1 \ - pi c2 \ - pi c3 \ - pi c4 \ - pi c5 \ - pi c6 \ - pi c7 \ - pi c8 \ - pi c9 \ - pi c10 \ - expand - (app - [global (const «g»), - c0, c3, c5, c7 | c9]) - (app - [global (const X8), - c1, c2, c4, c6, c8 | c10]) - :- - [!, - std.map c9 expand c10, - expand c7 c8, - expand c5 c6, - expand c3 c4, - expand c0 - (app - [global - (indc «Build_r»), - c1, c2])]] - -Debug: - rid:1 step:363 gid:1045 user:rule:backchain = success - -Debug: }}} -> (0.002s) -Debug: run 364 {{{ - -Debug: - rid:1 step:364 gid:1045 user:curgoal = coq.env.add-const - coq.env.add-const expanded_g - (fun `T` (sort (typ «r.u0»)) c0 \ - let `X` (sort (typ «r.u0»)) c0 - c1 \ - fun `op` - (prod `_` c0 c2 \ - prod `_` c1 c3 \ - global (indt «bool»)) c2 \ - fun `l` - (app - [global (indt «list»), c0]) - c3 \ - fun `s` - (app - [global (indt «list»), c0]) - c4 \ - fun `h` - (global (indt «bool»)) c5 \ - app - [global (indt «and»), - prod `x` c0 c6 \ - prod `y` c1 c7 \ - app - [global (indt «eq»), - global (indt «bool»), - app [c2, c6, c7], - global (indc «false»)], - app - [global (indt «eq»), - global (indt «bool»), - app - [global - (const «expanded_f»), - global (indc «true»), - c0, c2, c3, c4], c5]]) - _ _ X8 - -Debug: - rid:1 step:364 gid:1045 user:rule = builtin - -Debug: - rid:1 step:364 gid:1045 user:rule:builtin:name = coq.env.add-const - -Debug: - rid:1 step:364 gid:1045 user:rule:builtin = success - -Debug: - rid:1 step:364 gid:1045 user:subgoal = 1048 - -Debug: - rid:1 step:364 gid:1048 user:newgoal = X8 = «expanded_g» - -Debug: }}} -> (0.002s) -Debug: run 365 {{{ - -Debug: - rid:1 step:365 gid:1048 user:curgoal = = - X8 = «expanded_g» - -Debug: - rid:1 step:365 gid:1048 user:rule = eq - -Debug: - rid:1 step:365 gid:1048 user:rule:builtin:name = = - -Debug: - rid:1 step:365 gid:0 user:assign = X8 := «expanded_g» - -Debug: - rid:1 step:365 gid:1048 user:rule:eq = success - -Debug: }}} -> (0.000s) -Debug: run 366 {{{ - -Debug: - rid:1 step:366 gid:1046 user:curgoal = ! - ! - -Debug: }}} -> (0.000s) -Debug: - rid:1 step:366 gid:1046 user:rule = cut - -Debug: - rid:1 step:366 gid:1046 user:rule:cut = success - -Debug: run 367 {{{ - -Debug: - rid:1 step:367 gid:1047 user:curgoal = std.do! - std.do! - [X4 = - pi c0 \ - pi c1 \ - pi c2 \ - pi c3 \ - pi c4 \ - pi c5 \ - pi c6 \ - pi c7 \ - pi c8 \ - pi c9 \ - pi c10 \ - expand - (app - [global (const «g»), - c0, c3, c5, c7 | c9]) - (app - [global - (const - «expanded_g»), - c1, c2, c4, c6, c8 | c10]) - :- - [!, - std.map c9 expand c10, - expand c7 c8, - expand c5 c6, - expand c3 c4, - expand c0 - (app - [global - (indc «Build_r»), - c1, c2])]] - -Debug: - rid:1 step:367 gid:1047 user:rule = backchain - -Debug: - rid:1 step:367 gid:1047 user:rule:backchain:candidates = File "builtin_stdlib.elpi", line 279, column 0, characters 9290-9316: - -Debug: }}} -> (0.001s) -Debug: select 271 {{{ - -Debug: - rid:1 step:367 gid:1047 user:rule:backchain:try = File "builtin_stdlib.elpi", line 279, column 0, characters 9290-9316: - (std.do! [A0 | A1]) :- A0, - (!), (std.do! A1). - -Debug: - rid:1 step:367 gid:0 user:assign = A0 := X4 = - pi c0 \ - pi c1 \ - pi c2 \ - pi c3 \ - pi c4 \ - pi c5 \ - pi c6 \ - pi c7 \ - pi c8 \ - pi c9 \ - pi c10 \ - expand - (app - [global (const «g»), - c0, c3, c5, c7 | c9]) - (app - [global - (const - «expanded_g»), - c1, c2, c4, c6, c8 | c10]) - :- - [!, - std.map c9 expand c10, - expand c7 c8, - expand c5 c6, - expand c3 c4, - expand c0 - (app - [global - (indc «Build_r»), - c1, c2])] - -Debug: - rid:1 step:367 gid:0 user:assign = A1 := [] - -Debug: - rid:1 step:367 gid:1047 user:subgoal = 1049 - -Debug: - rid:1 step:367 gid:1049 user:newgoal = X4 = - pi c0 \ - pi c1 \ - pi c2 \ - pi c3 \ - pi c4 \ - pi c5 \ - pi c6 \ - pi c7 \ - pi c8 \ - pi c9 \ - pi c10 \ - expand - (app - [global (const «g»), - c0, c3, c5, c7 | c9]) - (app - [global - (const «expanded_g»), - c1, c2, c4, c6, c8 | c10]) - :- - [!, - std.map c9 expand c10, - expand c7 c8, - expand c5 c6, - expand c3 c4, - expand c0 - (app - [global - (indc «Build_r»), - c1, c2])] - -Debug: - rid:1 step:367 gid:1049 user:subgoal = 1050 - -Debug: - rid:1 step:367 gid:1050 user:newgoal = ! - -Debug: - rid:1 step:367 gid:1049 user:subgoal = 1051 - -Debug: - rid:1 step:367 gid:1051 user:newgoal = std.do! [] - -Debug: - rid:1 step:367 gid:1049 user:rule:backchain = success - -Debug: }}} -> (0.004s) -Debug: run 368 {{{ - -Debug: - rid:1 step:368 gid:1049 user:curgoal = = - X4 = - pi c0 \ - pi c1 \ - pi c2 \ - pi c3 \ - pi c4 \ - pi c5 \ - pi c6 \ - pi c7 \ - pi c8 \ - pi c9 \ - pi c10 \ - expand - (app - [global (const «g»), - c0, c3, c5, c7 | c9]) - (app - [global - (const «expanded_g»), - c1, c2, c4, c6, c8 | c10]) - :- - [!, - std.map c9 expand c10, - expand c7 c8, - expand c5 c6, - expand c3 c4, - expand c0 - (app - [global - (indc «Build_r»), - c1, c2])] - -Debug: - rid:1 step:368 gid:1049 user:rule = eq - -Debug: - rid:1 step:368 gid:1049 user:rule:builtin:name = = - -Debug: - rid:1 step:368 gid:0 user:assign = X4 := pi c0 \ - pi c1 \ - pi c2 \ - pi c3 \ - pi c4 \ - pi c5 \ - pi c6 \ - pi c7 \ - pi c8 \ - pi c9 \ - pi c10 \ - expand - (app - [global (const «g»), - c0, c3, c5, c7 | c9]) - (app - [global - (const - «expanded_g»), - c1, c2, c4, c6, c8 | c10]) - :- - [!, - std.map c9 expand c10, - expand c7 c8, - expand c5 c6, - expand c3 c4, - expand c0 - (app - [global - (indc «Build_r»), - c1, c2])] - -Debug: - rid:1 step:368 gid:1049 user:rule:eq = success - -Debug: }}} -> (0.001s) -Debug: run 369 {{{ - -Debug: - rid:1 step:369 gid:1050 user:curgoal = ! - ! - -Debug: }}} -> (0.000s) -Debug: - rid:1 step:369 gid:1050 user:rule = cut - -Debug: - rid:1 step:369 gid:1050 user:rule:cut = success - -Debug: run 370 {{{ - -Debug: - rid:1 step:370 gid:1051 user:curgoal = std.do! - std.do! [] - -Debug: - rid:1 step:370 gid:1051 user:rule = backchain - -Debug: - rid:1 step:370 gid:1051 user:rule:backchain:candidates = File "builtin_stdlib.elpi", line 278, column 0, characters 9282-9288: - -Debug: }}} -> (0.000s) -Debug: select 272 {{{ - -Debug: - rid:1 step:370 gid:1051 user:rule:backchain:try = File "builtin_stdlib.elpi", line 278, column 0, characters 9282-9288: - (std.do! []) :- . - -Debug: - rid:1 step:370 gid:1051 user:rule:backchain = success - -Debug: }}} -> (0.000s) -Debug: run 371 {{{ - -Debug: - rid:1 step:371 gid:692 user:curgoal = coq.elpi.accumulate - coq.elpi.accumulate _ record.expand.db - (clause _ (before expand:start) - (pi c0 \ - pi c1 \ - pi c2 \ - pi c3 \ - pi c4 \ - pi c5 \ - pi c6 \ - pi c7 \ - pi c8 \ - pi c9 \ - pi c10 \ - expand - (app - [global (const «g»), - c0, c3, c5, c7 | c9]) - (app - [global - (const - «expanded_g»), - c1, c2, c4, c6, c8 | c10]) - :- - [!, - std.map c9 expand c10, - expand c7 c8, - expand c5 c6, - expand c3 c4, - expand c0 - (app - [global - (indc «Build_r»), - c1, c2])])) - -Debug: - rid:1 step:371 gid:692 user:rule = backchain - -Debug: - rid:1 step:371 gid:692 user:rule:backchain:candidates = File "coq-builtin.elpi", line 1787, column 0, characters 71769-71833: - -Debug: }}} -> (0.000s) -Debug: select 273 {{{ - -Debug: - rid:1 step:371 gid:692 user:rule:backchain:try = File "coq-builtin.elpi", line 1787, column 0, characters 71769-71833: - (coq.elpi.accumulate A0 A1 - A2) :- (coq.elpi.accumulate-clauses - A0 A1 [ - A2]). - -Debug: - rid:1 step:371 gid:0 user:assign = A1 := record.expand.db - -Debug: - rid:1 step:371 gid:0 user:assign = A2 := clause _ (before expand:start) - (pi c0 \ - pi c1 \ - pi c2 \ - pi c3 \ - pi c4 \ - pi c5 \ - pi c6 \ - pi c7 \ - pi c8 \ - pi c9 \ - pi c10 \ - expand - (app - [global - (const «g»), - c0, c3, c5, c7 | c9]) - (app - [global - (const - «expanded_g»), - c1, c2, c4, c6, c8 | c10]) - :- - [!, - std.map c9 expand c10, - expand c7 c8, - expand c5 c6, - expand c3 c4, - expand c0 - (app - [global - (indc - «Build_r»), - c1, c2])]) - -Debug: - rid:1 step:371 gid:692 user:subgoal = 1052 - -Debug: - rid:1 step:371 gid:1052 user:newgoal = coq.elpi.accumulate-clauses X213 - record.expand.db - [clause _ (before expand:start) - (pi c0 \ - pi c1 \ - pi c2 \ - pi c3 \ - pi c4 \ - pi c5 \ - pi c6 \ - pi c7 \ - pi c8 \ - pi c9 \ - pi c10 \ - expand - (app - [global - (const «g»), - c0, c3, c5, c7 | c9]) - (app - [global - (const - «expanded_g»), - c1, c2, c4, c6, c8 | c10]) - :- - [!, - std.map c9 expand c10, - expand c7 c8, - expand c5 c6, - expand c3 c4, - expand c0 - (app - [global - (indc - «Build_r»), - c1, c2])])] - -Debug: - rid:1 step:371 gid:1052 user:rule:backchain = success - -Debug: }}} -> (0.001s) -Debug: run 372 {{{ - -Debug: - rid:1 step:372 gid:1052 user:curgoal = coq.elpi.accumulate-clauses - coq.elpi.accumulate-clauses X213 - record.expand.db - [clause _ (before expand:start) - (pi c0 \ - pi c1 \ - pi c2 \ - pi c3 \ - pi c4 \ - pi c5 \ - pi c6 \ - pi c7 \ - pi c8 \ - pi c9 \ - pi c10 \ - expand - (app - [global - (const «g»), - c0, c3, c5, c7 | c9]) - (app - [global - (const - «expanded_g»), - c1, c2, c4, c6, c8 | c10]) - :- - [!, - std.map c9 expand c10, - expand c7 c8, - expand c5 c6, - expand c3 c4, - expand c0 - (app - [global - (indc - «Build_r»), - c1, c2])])] - -Debug: - rid:1 step:372 gid:1052 user:rule = builtin - -Debug: - rid:1 step:372 gid:1052 user:rule:builtin:name = coq.elpi.accumulate-clauses - -Debug: - rid:1 step:372 gid:1052 user:rule:builtin = success - -Debug: }}} -> (0.001s) -expanded_g = -fun T : Type => -let X := T in -fun (op : T -> X -> bool) (l s : list T) (h : bool) => -(forall (x : T) (y : X), op x y = false) /\ expanded_f true T op l s = h - : forall T : Type, (T -> T -> bool) -> list T -> list T -> bool -> Prop - -Arguments expanded_g T%type_scope op%function_scope - (l s)%list_scope h%bool_scope +program +[p] +true : bool + : bool {c0} : decl c0 `x` (global (indt «nat»)) ?- evar (X0 c0) (prod `_` (global (indt «bool»)) c1 \ global (indt «True»)) @@ -15480,6 +15500,10 @@ File "./tests/test_HOAS.v", line 629, characters 36-37 U is linear: name it _U (discard) or U_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] +global (indc «O») +app + [global (indc «S»), + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] Query assignments: X1 = «x1» X2 = «x2» @@ -15727,6 +15751,42 @@ Please add the following text to your program: type test term -> term -> prop. [elpi.missing-types,elpi.typecheck,elpi,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 + [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, @@ -17887,7 +17947,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 = 1.003188 + T = 0.887039 Query assignments: %arg1 = 4 S = {{ Nat.add; eq; nat; O; }} @@ -18041,6 +18101,38 @@ 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] +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 _ _ +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 nth_R = fun (T1 T2 : Type) (T_R : T1 -> T2 -> Type) (x01 : T1) (x02 : T2) (x0_R : T_R x01 x02) => @@ -18187,73 +18279,16 @@ 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 - -ok -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»)] +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] Debug: Calling typeclass resolution with flags: depth = ∞,unique = false,fail = true Debug: 1: looking for (C ?i) with backtracking @@ -18286,10 +18321,34 @@ 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»)] [TC] For indt «C» : elpi predicate : tc-C search mode is : tc.deterministic modes are : [o, o] +(fun x : tele => tele_fmap) +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] In tc-A In tc-A In tc-B @@ -18345,30 +18404,21 @@ ============================ (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] -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] +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 +ok +Received the following event +[str new_instance, str I4, str A, str Export, int -1] Instances list for indt «Eqb» is: const «eqBool» with locality [] const «eqProd» with locality [] @@ -18400,674 +18450,652 @@ 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 -Received the following event -[str new_instance, str I4, str A, str Export, int -1] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: + EqP = const «eqU» +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) rewrite_relation_fun +(*external*) Morphisms.rewrite_relation_fun [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (equiv_rewrite_relation R) +(*external*) (RelationClasses.equiv_rewrite_relation R) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (eq_rewrite_relation A) +(*external*) (Morphisms.eq_rewrite_relation A) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @flip_StrictOrder) +(*external*) (Init.class_apply @RelationClasses.flip_StrictOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @PartialOrder_StrictOrder) +(*external*) (Init.class_apply @Morphisms.PartialOrder_StrictOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CRelationClasses.flip_StrictOrder) +(*external*) (Init.class_apply @CRelationClasses.flip_StrictOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CMorphisms.PartialOrder_StrictOrder) +(*external*) (Init.class_apply @CMorphisms.PartialOrder_StrictOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @flip_PreOrder) +(*external*) (Init.class_apply @RelationClasses.flip_PreOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @StrictOrder_PreOrder) +(*external*) (Init.class_apply @Morphisms.StrictOrder_PreOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CRelationClasses.flip_PreOrder) +(*external*) (Init.class_apply @CRelationClasses.flip_PreOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CMorphisms.StrictOrder_PreOrder) +(*external*) (Init.class_apply @CMorphisms.StrictOrder_PreOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CRelationClasses.flip_Antisymmetric) +(*external*) (Init.class_apply @CRelationClasses.flip_Antisymmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CRelationClasses.flip_Symmetric) +(*external*) (Init.class_apply @CRelationClasses.flip_Symmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CRelationClasses.complement_Symmetric) +(*external*) (Init.class_apply @CRelationClasses.complement_Symmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @PartialOrder_inverse) +(*external*) (Init.class_apply @RelationClasses.PartialOrder_inverse) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @StrictOrder_PartialOrder) +(*external*) (Init.class_apply @Morphisms.StrictOrder_PartialOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @eq_proper_proxy || - class_apply @reflexive_proper_proxy) +(*external*) (Init.class_apply @Morphisms.eq_proper_proxy || + Init.class_apply @Morphisms.reflexive_proper_proxy) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (not_evar R; class_apply @proper_proper_proxy) +(*external*) (not_evar R; Init.class_apply @Morphisms.proper_proper_proxy) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) normalizes +(*external*) Morphisms.normalizes [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @flip2) +(*external*) (Init.class_apply @Morphisms.flip2) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @flip1) +(*external*) (Init.class_apply @Morphisms.flip1) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (subrelation_tac T U) +(*external*) (Morphisms.subrelation_tac T U) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (apply (forall_subrelation B R S); intro) +(*external*) (apply (Morphisms.forall_subrelation B R S); intro) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @subrelation_symmetric) +(*external*) (Init.class_apply @RelationClasses.subrelation_symmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CRelationClasses.PartialOrder_inverse) +(*external*) (Init.class_apply @CRelationClasses.PartialOrder_inverse) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CMorphisms.StrictOrder_PartialOrder) +(*external*) (Init.class_apply @CMorphisms.StrictOrder_PartialOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @flip_Transitive) +(*external*) (Init.class_apply @RelationClasses.flip_Transitive) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CMorphisms.flip2) +(*external*) (Init.class_apply @CMorphisms.flip2) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CMorphisms.flip1) +(*external*) (Init.class_apply @CMorphisms.flip1) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: (*external*) (CMorphisms.subrelation_tac T U) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: (*external*) (apply (CMorphisms.forall_subrelation B R S); intro) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CRelationClasses.subrelation_symmetric) +(*external*) (Init.class_apply @CRelationClasses.subrelation_symmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: (*external*) (apply @CMorphisms.flip_proper) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CMorphisms.proper_flip_proper) +(*external*) (Init.class_apply @CMorphisms.proper_flip_proper) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: (*external*) CMorphisms.partial_application_tactic [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: (*external*) CMorphisms.proper_subrelation [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: (*external*) CMorphisms.proper_normalization [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: (*external*) CMorphisms.proper_reflexive [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CRelationClasses.flip_Transitive) +(*external*) (Init.class_apply @CRelationClasses.flip_Transitive) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @flip_Irreflexive) +(*external*) (Init.class_apply @RelationClasses.flip_Irreflexive) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @complement_Irreflexive) +(*external*) (Init.class_apply @RelationClasses.complement_Irreflexive) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @flip_Asymmetric) +(*external*) (Init.class_apply @RelationClasses.flip_Asymmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (apply @flip_proper) +(*external*) (apply @Morphisms.flip_proper) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (apply @complement_proper) +(*external*) (apply @Morphisms.complement_proper) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @proper_flip_proper) +(*external*) (Init.class_apply @Morphisms.proper_flip_proper) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) partial_application_tactic +(*external*) Morphisms.partial_application_tactic [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) proper_subrelation +(*external*) Morphisms.proper_subrelation [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) proper_normalization +(*external*) Morphisms.proper_normalization [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) proper_reflexive +(*external*) Morphisms.proper_reflexive [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CRelationClasses.flip_Irreflexive) +(*external*) (Init.class_apply @CRelationClasses.flip_Irreflexive) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CRelationClasses.complement_Irreflexive) +(*external*) (Init.class_apply @CRelationClasses.complement_Irreflexive) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CRelationClasses.flip_Asymmetric) +(*external*) (Init.class_apply @CRelationClasses.flip_Asymmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @irreflexivity) +(*external*) (Init.class_apply @RelationClasses.irreflexivity) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (apply flip_Reflexive) +(*external*) (apply RelationClasses.flip_Reflexive) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CRelationClasses.irreflexivity) +(*external*) (Init.class_apply @CRelationClasses.irreflexivity) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: (*external*) (apply CRelationClasses.flip_Reflexive) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) unconvertible +(*external*) Init.unconvertible [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CMorphisms.eq_proper_proxy || - class_apply @CMorphisms.reflexive_proper_proxy) +(*external*) (Init.class_apply @CMorphisms.eq_proper_proxy || + Init.class_apply @CMorphisms.reflexive_proper_proxy) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (not_evar R; class_apply @CMorphisms.proper_proper_proxy) +(*external*) (not_evar R; Init.class_apply @CMorphisms.proper_proper_proxy) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: (*external*) CMorphisms.normalizes [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @flip_Antisymmetric) +(*external*) (Init.class_apply @RelationClasses.flip_Antisymmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @flip_Symmetric) +(*external*) (Init.class_apply @RelationClasses.flip_Symmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @complement_Symmetric) +(*external*) (Init.class_apply @RelationClasses.complement_Symmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (reflexive_proxy_tac A R) +(*external*) (Morphisms.reflexive_proxy_tac A R) [elpi.TC.hints,elpi,default] -Query assignments: - EqP = const «eqU» -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) Morphisms.rewrite_relation_fun +(*external*) rewrite_relation_fun [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (RelationClasses.equiv_rewrite_relation R) +(*external*) (equiv_rewrite_relation R) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Morphisms.eq_rewrite_relation A) +(*external*) (eq_rewrite_relation A) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @RelationClasses.flip_StrictOrder) +(*external*) (class_apply @flip_StrictOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @Morphisms.PartialOrder_StrictOrder) +(*external*) (class_apply @PartialOrder_StrictOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CRelationClasses.flip_StrictOrder) +(*external*) (class_apply @CRelationClasses.flip_StrictOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CMorphisms.PartialOrder_StrictOrder) +(*external*) (class_apply @CMorphisms.PartialOrder_StrictOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @RelationClasses.flip_PreOrder) +(*external*) (class_apply @flip_PreOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @Morphisms.StrictOrder_PreOrder) +(*external*) (class_apply @StrictOrder_PreOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CRelationClasses.flip_PreOrder) +(*external*) (class_apply @CRelationClasses.flip_PreOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CMorphisms.StrictOrder_PreOrder) +(*external*) (class_apply @CMorphisms.StrictOrder_PreOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CRelationClasses.flip_Antisymmetric) +(*external*) (class_apply @CRelationClasses.flip_Antisymmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CRelationClasses.flip_Symmetric) +(*external*) (class_apply @CRelationClasses.flip_Symmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CRelationClasses.complement_Symmetric) +(*external*) (class_apply @CRelationClasses.complement_Symmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @RelationClasses.PartialOrder_inverse) +(*external*) (class_apply @PartialOrder_inverse) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @Morphisms.StrictOrder_PartialOrder) +(*external*) (class_apply @StrictOrder_PartialOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @Morphisms.eq_proper_proxy || - Init.class_apply @Morphisms.reflexive_proper_proxy) +(*external*) (class_apply @eq_proper_proxy || + class_apply @reflexive_proper_proxy) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (not_evar R; Init.class_apply @Morphisms.proper_proper_proxy) +(*external*) (not_evar R; class_apply @proper_proper_proxy) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) Morphisms.normalizes +(*external*) normalizes [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @Morphisms.flip2) +(*external*) (class_apply @flip2) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @Morphisms.flip1) +(*external*) (class_apply @flip1) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Morphisms.subrelation_tac T U) +(*external*) (subrelation_tac T U) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (apply (Morphisms.forall_subrelation B R S); intro) +(*external*) (apply (forall_subrelation B R S); intro) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @RelationClasses.subrelation_symmetric) +(*external*) (class_apply @subrelation_symmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CRelationClasses.PartialOrder_inverse) +(*external*) (class_apply @CRelationClasses.PartialOrder_inverse) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CMorphisms.StrictOrder_PartialOrder) +(*external*) (class_apply @CMorphisms.StrictOrder_PartialOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @RelationClasses.flip_Transitive) +(*external*) (class_apply @flip_Transitive) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CMorphisms.flip2) +(*external*) (class_apply @CMorphisms.flip2) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CMorphisms.flip1) +(*external*) (class_apply @CMorphisms.flip1) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: (*external*) (CMorphisms.subrelation_tac T U) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: (*external*) (apply (CMorphisms.forall_subrelation B R S); intro) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CRelationClasses.subrelation_symmetric) +(*external*) (class_apply @CRelationClasses.subrelation_symmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: (*external*) (apply @CMorphisms.flip_proper) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CMorphisms.proper_flip_proper) +(*external*) (class_apply @CMorphisms.proper_flip_proper) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: (*external*) CMorphisms.partial_application_tactic [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: (*external*) CMorphisms.proper_subrelation [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: (*external*) CMorphisms.proper_normalization [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: (*external*) CMorphisms.proper_reflexive [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CRelationClasses.flip_Transitive) +(*external*) (class_apply @CRelationClasses.flip_Transitive) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @RelationClasses.flip_Irreflexive) +(*external*) (class_apply @flip_Irreflexive) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @RelationClasses.complement_Irreflexive) +(*external*) (class_apply @complement_Irreflexive) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @RelationClasses.flip_Asymmetric) +(*external*) (class_apply @flip_Asymmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (apply @Morphisms.flip_proper) +(*external*) (apply @flip_proper) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (apply @Morphisms.complement_proper) +(*external*) (apply @complement_proper) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @Morphisms.proper_flip_proper) +(*external*) (class_apply @proper_flip_proper) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) Morphisms.partial_application_tactic +(*external*) partial_application_tactic [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) Morphisms.proper_subrelation +(*external*) proper_subrelation [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) Morphisms.proper_normalization +(*external*) proper_normalization [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) Morphisms.proper_reflexive +(*external*) proper_reflexive [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CRelationClasses.flip_Irreflexive) +(*external*) (class_apply @CRelationClasses.flip_Irreflexive) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CRelationClasses.complement_Irreflexive) +(*external*) (class_apply @CRelationClasses.complement_Irreflexive) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CRelationClasses.flip_Asymmetric) +(*external*) (class_apply @CRelationClasses.flip_Asymmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @RelationClasses.irreflexivity) +(*external*) (class_apply @irreflexivity) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (apply RelationClasses.flip_Reflexive) +(*external*) (apply flip_Reflexive) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CRelationClasses.irreflexivity) +(*external*) (class_apply @CRelationClasses.irreflexivity) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: (*external*) (apply CRelationClasses.flip_Reflexive) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) Init.unconvertible +(*external*) unconvertible [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CMorphisms.eq_proper_proxy || - Init.class_apply @CMorphisms.reflexive_proper_proxy) +(*external*) (class_apply @CMorphisms.eq_proper_proxy || + class_apply @CMorphisms.reflexive_proper_proxy) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (not_evar R; Init.class_apply @CMorphisms.proper_proper_proxy) +(*external*) (not_evar R; class_apply @CMorphisms.proper_proper_proxy) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: (*external*) CMorphisms.normalizes [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @RelationClasses.flip_Antisymmetric) +(*external*) (class_apply @flip_Antisymmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @RelationClasses.flip_Symmetric) +(*external*) (class_apply @flip_Symmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @RelationClasses.complement_Symmetric) +(*external*) (class_apply @complement_Symmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Morphisms.reflexive_proxy_tac A R) +(*external*) (reflexive_proxy_tac A R) [elpi.TC.hints,elpi,default] -Debug: [elpitime] Elpi: get_and_compile 0.0002 -Debug: [TC] - Time of instance search is 0.000130 -Debug: [TC] - Time of refine.typecheck is 0.000291 -Debug: -[elpitime] - Elpi: query-compilation:0.0002 static-check:0.0000 optimization:0.0001 runtime:0.0033 (with success) - -Finished transaction in 0.004 secs (0.004u,0.s) (successful) (fun (T : Type) (p : nat -> T -> T -> Prop) (x : T) => partial_app T (p 0) x) eq_refl : @@ -19182,6 +19210,14 @@ 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.000116 +Debug: [TC] - Time of refine.typecheck is 0.000225 +Debug: +[elpitime] + Elpi: query-compilation:0.0001 static-check:0.0000 optimization:0.0001 runtime:0.0020 (with success) + +Finished transaction in 0.002 secs (0.002u,0.s) (successful) Query assignments: T = c0 \ prod `c` X0 c1 \ @@ -19200,7 +19236,7 @@ X3_ = X2 X4_ = X3 X5_ = X4 -Finished transaction in 0.069 secs (0.065u,0.003s) (successful) +Finished transaction in 0.06 secs (0.056u,0.003s) (successful) Query assignments: A = c0 \ c0 @@ -19487,9 +19523,6 @@ 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 @@ -19502,9 +19535,9 @@ 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.003567 +Derivation param1 on const «Nat.add» took 0.003416 Derivation param2 on const «Nat.add» -Derivation param2 on const «Nat.add» took 0.004282 +Derivation param2 on const «Nat.add» took 0.004199 Derivation eqb-alias on const «Nat.add» Derivation eqb-alias on const «Nat.add» failed, continuing Derivation eqbcorrect-alias on const «Nat.add» @@ -19925,6 +19958,9 @@ There is an hint extern in the typeclass db: (*external*) proper_reflexive [elpi.TC.hints,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) more : forall A : Type, A -> tickle A -> tickle A : forall A : Type, A -> tickle A -> tickle A tickle.eqb @@ -19956,37 +19992,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.001988 +Derivation map on indt «rtree» took 0.001896 Derivation lens on indt «rtree» Derivation lens on indt «rtree» failed, continuing Derivation param1 on indt «rtree» -Derivation param1 on indt «rtree» took 0.005409 +Derivation param1 on indt «rtree» took 0.005695 Derivation param2 on indt «rtree» -Derivation param2 on indt «rtree» took 0.007059 +Derivation param2 on indt «rtree» took 0.007246 Derivation tag on indt «rtree» -Derivation tag on indt «rtree» took 0.001034 +Derivation tag on indt «rtree» took 0.001023 Derivation eqType_ast on indt «rtree» -Derivation eqType_ast on indt «rtree» took 0.000394 +Derivation eqType_ast on indt «rtree» took 0.000397 Derivation lens_laws on indt «rtree» -Derivation lens_laws on indt «rtree» took 0.000060 +Derivation lens_laws on indt «rtree» took 0.000062 Derivation param1_congr on indt «rtree» -Derivation param1_congr on indt «rtree» took 0.002113 +Derivation param1_congr on indt «rtree» took 0.002172 Derivation param1_inhab on indt «rtree» -Derivation param1_inhab on indt «rtree» took 0.001943 +Derivation param1_inhab on indt «rtree» took 0.001909 Derivation param1_functor on indt «rtree» -Derivation param1_functor on indt «rtree» took 0.001977 +Derivation param1_functor on indt «rtree» took 0.002098 Derivation fields on indt «rtree» -Derivation fields on indt «rtree» took 0.006643 +Derivation fields on indt «rtree» took 0.006973 Derivation param1_trivial on indt «rtree» -Derivation param1_trivial on indt «rtree» took 0.102559 +Derivation param1_trivial on indt «rtree» took 0.103448 Derivation induction on indt «rtree» -Derivation induction on indt «rtree» took 0.002079 +Derivation induction on indt «rtree» took 0.002163 Derivation eqb on indt «rtree» -Derivation eqb on indt «rtree» took 0.006909 +Derivation eqb on indt «rtree» took 0.007163 Derivation eqbcorrect on indt «rtree» -Derivation eqbcorrect on indt «rtree» took 0.024372 +Derivation eqbcorrect on indt «rtree» took 0.025311 Derivation eqbOK on indt «rtree» -Derivation eqbOK on indt «rtree» took 0.001503 +Derivation eqbOK on indt «rtree» took 0.001371 Done rtree.induction : @@ -20010,15 +20046,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.003501 +Derivation lens on indt «Box» took 0.003299 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.001907 +Derivation tag on indt «Box» took 0.001033 Derivation eqType_ast on indt «Box» -Derivation eqType_ast on indt «Box» took 0.000324 +Derivation eqType_ast on indt «Box» took 0.000290 Derivation lens_laws on indt «Box» -Derivation lens_laws on indt «Box» took 0.011941 +Derivation lens_laws on indt «Box» took 0.011887 Skipping derivation param1_congr on indt «Box» since the user did not select it Skipping derivation param1_inhab on indt «Box» @@ -20026,13 +20062,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.004723 +Derivation fields on indt «Box» took 0.004778 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.002995 +Derivation eqb on indt «Box» took 0.003036 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 @@ -20062,61 +20098,61 @@ Derivation lens on indt «a» Derivation lens on indt «a» failed, continuing Derivation param1 on indt «a» -Derivation param1 on indt «a» took 0.002123 +Derivation param1 on indt «a» took 0.002172 Derivation param2 on indt «a» -Derivation param2 on indt «a» took 0.002471 +Derivation param2 on indt «a» took 0.002497 Derivation tag on indt «a» -Derivation tag on indt «a» took 0.000664 +Derivation tag on indt «a» took 0.000710 Derivation eqType_ast on indt «a» -Derivation eqType_ast on indt «a» took 0.000192 +Derivation eqType_ast on indt «a» took 0.000183 Derivation lens_laws on indt «a» -Derivation lens_laws on indt «a» took 0.000060 +Derivation lens_laws on indt «a» took 0.000062 Derivation param1_congr on indt «a» -Derivation param1_congr on indt «a» took 0.000335 +Derivation param1_congr on indt «a» took 0.000297 Derivation param1_inhab on indt «a» -Derivation param1_inhab on indt «a» took 0.000739 +Derivation param1_inhab on indt «a» took 0.000691 Derivation param1_functor on indt «a» -Derivation param1_functor on indt «a» took 0.000717 +Derivation param1_functor on indt «a» took 0.000686 Derivation fields on indt «a» -Derivation fields on indt «a» took 0.002755 +Derivation fields on indt «a» took 0.002612 Derivation param1_trivial on indt «a» -Derivation param1_trivial on indt «a» took 0.001159 +Derivation param1_trivial on indt «a» took 0.001113 Derivation induction on indt «a» -Derivation induction on indt «a» took 0.001044 +Derivation induction on indt «a» took 0.000888 Derivation eqb on indt «a» -Derivation eqb on indt «a» took 0.001512 +Derivation eqb on indt «a» took 0.001419 Derivation eqbcorrect on indt «a» -Derivation eqbcorrect on indt «a» took 0.003096 +Derivation eqbcorrect on indt «a» took 0.003256 Derivation eqbOK on indt «a» Derivation eqbOK on indt «a» took 0.000541 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.002556 +Derivation param1 on indt «b» took 0.002494 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.000738 +Derivation tag on indt «b» took 0.000714 Derivation eqType_ast on indt «b» -Derivation eqType_ast on indt «b» took 0.000259 +Derivation eqType_ast on indt «b» took 0.000254 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.000806 +Derivation param1_inhab on indt «b» took 0.000804 Derivation param1_functor on indt «b» -Derivation param1_functor on indt «b» took 0.000729 +Derivation param1_functor on indt «b» took 0.000798 Derivation fields on indt «b» -Derivation fields on indt «b» took 0.003186 +Derivation fields on indt «b» took 0.003139 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.001017 +Derivation induction on indt «b» took 0.001091 Derivation eqb on indt «b» -Derivation eqb on indt «b» took 0.001852 +Derivation eqb on indt «b» took 0.001874 Derivation eqbcorrect on indt «b» -Derivation eqbcorrect on indt «b» took 0.004014 +Derivation eqbcorrect on indt «b» took 0.004063 Derivation eqbOK on indt «b» -Derivation eqbOK on indt «b» took 0.000565 +Derivation eqbOK on indt «b» took 0.000547 a_eqb : a -> a -> bool b_eqb @@ -20329,13 +20365,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.001388 +Derivation projK on indt «nat» took 0.001348 Derivation isK on indt «nat» -Derivation isK on indt «nat» took 0.001442 +Derivation isK on indt «nat» took 0.001494 Derivation eq on indt «nat» -Derivation eq on indt «nat» took 0.001449 +Derivation eq on indt «nat» took 0.001427 Derivation invert on indt «nat» -Derivation invert on indt «nat» took 0.001383 +Derivation invert on indt «nat» took 0.001354 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 @@ -20345,7 +20381,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.002550 +Derivation bcongr on indt «nat» took 0.002445 Derivation idx2inv on indt «nat» Derivation idx2inv on indt «nat» failed, continuing Skipping derivation param1_trivial on indt «nat» @@ -20353,13 +20389,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.002873 +Derivation eqK on indt «nat» took 0.002744 Skipping derivation eqbcorrect on indt «nat» since it has been already run Derivation eqcorrect on indt «nat» -Derivation eqcorrect on indt «nat» took 0.000795 +Derivation eqcorrect on indt «nat» took 0.000843 Skipping derivation eqbOK on indt «nat» since it has been already run Derivation eqOK on indt «nat» -Derivation eqOK on indt «nat» took 0.000435 +Derivation eqOK on indt «nat» took 0.000449 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 @@ -20404,12 +20440,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.003334 +Derivation param1 on indt «foo» took 0.003497 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.000885 +Derivation tag on indt «foo» took 0.000895 Derivation eqType_ast on indt «foo» -Derivation eqType_ast on indt «foo» took 0.000333 +Derivation eqType_ast on indt «foo» took 0.000296 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 @@ -20419,26 +20455,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.000949 +Derivation param1_inhab on indt «foo» took 0.000973 Derivation param1_functor on indt «foo» -Derivation param1_functor on indt «foo» took 0.000848 +Derivation param1_functor on indt «foo» took 0.000852 Derivation fields on indt «foo» -Derivation fields on indt «foo» took 0.003865 +Derivation fields on indt «foo» took 0.003858 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.001093 +Derivation induction on indt «foo» took 0.001118 Derivation eqb on indt «foo» -Derivation eqb on indt «foo» took 0.002212 +Derivation eqb on indt «foo» took 0.002204 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.004627 +Derivation eqbcorrect on indt «foo» took 0.004824 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.000710 +Derivation eqbOK on indt «foo» took 0.000715 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. @@ -20447,13 +20483,13 @@ 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.307 secs (1.257u,0.049s) (successful) -Finished transaction in 16.013 secs (15.896u,0.06s) (successful) -Finished transaction in 0.221 secs (0.221u,0.s) (successful) +Finished transaction in 1.47 secs (1.3u,0.153s) (successful) +Finished transaction in 18.4 secs (18.281u,0.113s) (successful) +Finished transaction in 0.229 secs (0.229u,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' @@ -20465,7 +20501,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 @@ -20513,12 +20549,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/2629304/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/2629304/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/3719383 and its subdirectories -I: Current time: Sat Jul 19 07:22:24 -12 2025 -I: pbuilder-time-stamp: 1752952944 +I: removing directory /srv/workspace/pbuilder/2629304 and its subdirectories +I: Current time: Sat Aug 22 15:47:35 +14 2026 +I: pbuilder-time-stamp: 1787363255