Diff of the two buildlogs: -- --- b1/build.log 2023-06-07 05:15:22.303792226 +0000 +++ b2/build.log 2023-06-07 05:22:57.587881365 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Mon Jul 8 23:34:54 -12 2024 -I: pbuilder-time-stamp: 1720524894 +I: Current time: Wed Jun 7 19:15:24 +14 2023 +I: pbuilder-time-stamp: 1686114924 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/bookworm-reproducible-base.tgz] I: copying local configuration @@ -16,7 +16,7 @@ I: copying [./coq-elpi_1.16.0.orig.tar.gz] I: copying [./coq-elpi_1.16.0-2.debian.tar.xz] I: Extracting source -gpgv: Signature made Tue Jan 24 18:46:59 2023 -12 +gpgv: Signature made Wed Jan 25 20:46:59 2023 +14 gpgv: using RSA key 812EEFD8A3FBA4ACE4DF114B04C53BD7FE030551 gpgv: issuer "jpuydt@debian.org" gpgv: Can't check signature: No public key @@ -29,135 +29,167 @@ dpkg-source: info: applying make_install.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/765148/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/3117304/tmp/hooks/D01_modify_environment starting +debug: Running on ionos1-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 Jun 7 19:15 /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/3117304/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/3117304/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build' - 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=16 ' - DISTRIBUTION='bookworm' - 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]="15" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") + BASH_VERSION='5.2.15(1)-release' + BUILDDIR=/build + 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=15 ' + DIRSTACK=() + DISTRIBUTION=bookworm + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='39dec75b0f5842118490c99d9f50bf36' - 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='765148' - PS1='# ' - PS2='> ' + INVOCATION_ID=35c65fe6583f4e78b7246d297148dc99 + 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=3117304 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.ioFidaPQ/pbuilderrc_UB6H --distribution bookworm --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bookworm-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.ioFidaPQ/b1 --logfile b1/build.log coq-elpi_1.16.0-2.dsc' - SUDO_GID='111' - SUDO_UID='106' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://85.184.249.68: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.ioFidaPQ/pbuilderrc_tFcT --distribution bookworm --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bookworm-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.ioFidaPQ/b2 --logfile b2/build.log --extrapackages usrmerge coq-elpi_1.16.0-2.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://78.137.99.97:3128 I: uname -a - Linux ionos15-amd64 6.1.0-0.deb11.7-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.20-2~bpo11+1 (2023-04-23) x86_64 GNU/Linux + Linux i-capture-the-hostname 5.10.0-23-amd64 #1 SMP Debian 5.10.179-1 (2023-05-12) x86_64 GNU/Linux I: ls -l /bin total 5632 - -rwxr-xr-x 1 root root 1265648 Apr 23 2023 bash - -rwxr-xr-x 3 root root 39224 Sep 18 2022 bunzip2 - -rwxr-xr-x 3 root root 39224 Sep 18 2022 bzcat - lrwxrwxrwx 1 root root 6 Sep 18 2022 bzcmp -> bzdiff - -rwxr-xr-x 1 root root 2225 Sep 18 2022 bzdiff - lrwxrwxrwx 1 root root 6 Sep 18 2022 bzegrep -> bzgrep - -rwxr-xr-x 1 root root 4893 Nov 27 2021 bzexe - lrwxrwxrwx 1 root root 6 Sep 18 2022 bzfgrep -> bzgrep - -rwxr-xr-x 1 root root 3775 Sep 18 2022 bzgrep - -rwxr-xr-x 3 root root 39224 Sep 18 2022 bzip2 - -rwxr-xr-x 1 root root 14568 Sep 18 2022 bzip2recover - lrwxrwxrwx 1 root root 6 Sep 18 2022 bzless -> bzmore - -rwxr-xr-x 1 root root 1297 Sep 18 2022 bzmore - -rwxr-xr-x 1 root root 44016 Sep 20 2022 cat - -rwxr-xr-x 1 root root 68656 Sep 20 2022 chgrp - -rwxr-xr-x 1 root root 64496 Sep 20 2022 chmod - -rwxr-xr-x 1 root root 72752 Sep 20 2022 chown - -rwxr-xr-x 1 root root 151152 Sep 20 2022 cp - -rwxr-xr-x 1 root root 125640 Jan 5 2023 dash - -rwxr-xr-x 1 root root 121904 Sep 20 2022 date - -rwxr-xr-x 1 root root 89240 Sep 20 2022 dd - -rwxr-xr-x 1 root root 102200 Sep 20 2022 df - -rwxr-xr-x 1 root root 151344 Sep 20 2022 dir - -rwxr-xr-x 1 root root 88656 Mar 22 2023 dmesg - lrwxrwxrwx 1 root root 8 Dec 19 2022 dnsdomainname -> hostname - lrwxrwxrwx 1 root root 8 Dec 19 2022 domainname -> hostname - -rwxr-xr-x 1 root root 43856 Sep 20 2022 echo - -rwxr-xr-x 1 root root 41 Jan 24 2023 egrep - -rwxr-xr-x 1 root root 35664 Sep 20 2022 false - -rwxr-xr-x 1 root root 41 Jan 24 2023 fgrep - -rwxr-xr-x 1 root root 85600 Mar 22 2023 findmnt - -rwsr-xr-x 1 root root 35128 Mar 22 2023 fusermount - -rwxr-xr-x 1 root root 203152 Jan 24 2023 grep - -rwxr-xr-x 2 root root 2346 Apr 9 2022 gunzip - -rwxr-xr-x 1 root root 6447 Apr 9 2022 gzexe - -rwxr-xr-x 1 root root 98136 Apr 9 2022 gzip - -rwxr-xr-x 1 root root 22680 Dec 19 2022 hostname - -rwxr-xr-x 1 root root 72824 Sep 20 2022 ln - -rwxr-xr-x 1 root root 53024 Mar 23 2023 login - -rwxr-xr-x 1 root root 151344 Sep 20 2022 ls - -rwxr-xr-x 1 root root 207168 Mar 22 2023 lsblk - -rwxr-xr-x 1 root root 97552 Sep 20 2022 mkdir - -rwxr-xr-x 1 root root 72912 Sep 20 2022 mknod - -rwxr-xr-x 1 root root 43952 Sep 20 2022 mktemp - -rwxr-xr-x 1 root root 59712 Mar 22 2023 more - -rwsr-xr-x 1 root root 59704 Mar 22 2023 mount - -rwxr-xr-x 1 root root 18744 Mar 22 2023 mountpoint - -rwxr-xr-x 1 root root 142968 Sep 20 2022 mv - lrwxrwxrwx 1 root root 8 Dec 19 2022 nisdomainname -> hostname - lrwxrwxrwx 1 root root 14 Apr 2 2023 pidof -> /sbin/killall5 - -rwxr-xr-x 1 root root 43952 Sep 20 2022 pwd - lrwxrwxrwx 1 root root 4 Apr 23 2023 rbash -> bash - -rwxr-xr-x 1 root root 52112 Sep 20 2022 readlink - -rwxr-xr-x 1 root root 72752 Sep 20 2022 rm - -rwxr-xr-x 1 root root 56240 Sep 20 2022 rmdir - -rwxr-xr-x 1 root root 27560 Nov 2 2022 run-parts - -rwxr-xr-x 1 root root 126424 Jan 5 2023 sed - lrwxrwxrwx 1 root root 4 Jan 5 2023 sh -> dash - -rwxr-xr-x 1 root root 43888 Sep 20 2022 sleep - -rwxr-xr-x 1 root root 85008 Sep 20 2022 stty - -rwsr-xr-x 1 root root 72000 Mar 22 2023 su - -rwxr-xr-x 1 root root 39824 Sep 20 2022 sync - -rwxr-xr-x 1 root root 531984 Apr 6 2023 tar - -rwxr-xr-x 1 root root 14520 Nov 2 2022 tempfile - -rwxr-xr-x 1 root root 109616 Sep 20 2022 touch - -rwxr-xr-x 1 root root 35664 Sep 20 2022 true - -rwxr-xr-x 1 root root 14568 Mar 22 2023 ulockmgr_server - -rwsr-xr-x 1 root root 35128 Mar 22 2023 umount - -rwxr-xr-x 1 root root 43888 Sep 20 2022 uname - -rwxr-xr-x 2 root root 2346 Apr 9 2022 uncompress - -rwxr-xr-x 1 root root 151344 Sep 20 2022 vdir - -rwxr-xr-x 1 root root 72024 Mar 22 2023 wdctl - lrwxrwxrwx 1 root root 8 Dec 19 2022 ypdomainname -> hostname - -rwxr-xr-x 1 root root 1984 Apr 9 2022 zcat - -rwxr-xr-x 1 root root 1678 Apr 9 2022 zcmp - -rwxr-xr-x 1 root root 6460 Apr 9 2022 zdiff - -rwxr-xr-x 1 root root 29 Apr 9 2022 zegrep - -rwxr-xr-x 1 root root 29 Apr 9 2022 zfgrep - -rwxr-xr-x 1 root root 2081 Apr 9 2022 zforce - -rwxr-xr-x 1 root root 8103 Apr 9 2022 zgrep - -rwxr-xr-x 1 root root 2206 Apr 9 2022 zless - -rwxr-xr-x 1 root root 1842 Apr 9 2022 zmore - -rwxr-xr-x 1 root root 4577 Apr 9 2022 znew -I: user script /srv/workspace/pbuilder/765148/tmp/hooks/D02_print_environment finished + -rwxr-xr-x 1 root root 1265648 Apr 24 11:23 bash + -rwxr-xr-x 3 root root 39224 Sep 19 2022 bunzip2 + -rwxr-xr-x 3 root root 39224 Sep 19 2022 bzcat + lrwxrwxrwx 1 root root 6 Sep 19 2022 bzcmp -> bzdiff + -rwxr-xr-x 1 root root 2225 Sep 19 2022 bzdiff + lrwxrwxrwx 1 root root 6 Sep 19 2022 bzegrep -> bzgrep + -rwxr-xr-x 1 root root 4893 Nov 28 2021 bzexe + lrwxrwxrwx 1 root root 6 Sep 19 2022 bzfgrep -> bzgrep + -rwxr-xr-x 1 root root 3775 Sep 19 2022 bzgrep + -rwxr-xr-x 3 root root 39224 Sep 19 2022 bzip2 + -rwxr-xr-x 1 root root 14568 Sep 19 2022 bzip2recover + lrwxrwxrwx 1 root root 6 Sep 19 2022 bzless -> bzmore + -rwxr-xr-x 1 root root 1297 Sep 19 2022 bzmore + -rwxr-xr-x 1 root root 44016 Sep 21 2022 cat + -rwxr-xr-x 1 root root 68656 Sep 21 2022 chgrp + -rwxr-xr-x 1 root root 64496 Sep 21 2022 chmod + -rwxr-xr-x 1 root root 72752 Sep 21 2022 chown + -rwxr-xr-x 1 root root 151152 Sep 21 2022 cp + -rwxr-xr-x 1 root root 125640 Jan 6 03:20 dash + -rwxr-xr-x 1 root root 121904 Sep 21 2022 date + -rwxr-xr-x 1 root root 89240 Sep 21 2022 dd + -rwxr-xr-x 1 root root 102200 Sep 21 2022 df + -rwxr-xr-x 1 root root 151344 Sep 21 2022 dir + -rwxr-xr-x 1 root root 88656 Mar 24 00:02 dmesg + lrwxrwxrwx 1 root root 8 Dec 20 03:33 dnsdomainname -> hostname + lrwxrwxrwx 1 root root 8 Dec 20 03:33 domainname -> hostname + -rwxr-xr-x 1 root root 43856 Sep 21 2022 echo + -rwxr-xr-x 1 root root 41 Jan 25 04:43 egrep + -rwxr-xr-x 1 root root 35664 Sep 21 2022 false + -rwxr-xr-x 1 root root 41 Jan 25 04:43 fgrep + -rwxr-xr-x 1 root root 85600 Mar 24 00:02 findmnt + -rwsr-xr-x 1 root root 35128 Mar 23 22:35 fusermount + -rwxr-xr-x 1 root root 203152 Jan 25 04:43 grep + -rwxr-xr-x 2 root root 2346 Apr 10 2022 gunzip + -rwxr-xr-x 1 root root 6447 Apr 10 2022 gzexe + -rwxr-xr-x 1 root root 98136 Apr 10 2022 gzip + -rwxr-xr-x 1 root root 22680 Dec 20 03:33 hostname + -rwxr-xr-x 1 root root 72824 Sep 21 2022 ln + -rwxr-xr-x 1 root root 53024 Mar 24 02:40 login + -rwxr-xr-x 1 root root 151344 Sep 21 2022 ls + -rwxr-xr-x 1 root root 207168 Mar 24 00:02 lsblk + -rwxr-xr-x 1 root root 97552 Sep 21 2022 mkdir + -rwxr-xr-x 1 root root 72912 Sep 21 2022 mknod + -rwxr-xr-x 1 root root 43952 Sep 21 2022 mktemp + -rwxr-xr-x 1 root root 59712 Mar 24 00:02 more + -rwsr-xr-x 1 root root 59704 Mar 24 00:02 mount + -rwxr-xr-x 1 root root 18744 Mar 24 00:02 mountpoint + -rwxr-xr-x 1 root root 142968 Sep 21 2022 mv + lrwxrwxrwx 1 root root 8 Dec 20 03:33 nisdomainname -> hostname + lrwxrwxrwx 1 root root 14 Apr 3 20:25 pidof -> /sbin/killall5 + -rwxr-xr-x 1 root root 43952 Sep 21 2022 pwd + lrwxrwxrwx 1 root root 4 Apr 24 11:23 rbash -> bash + -rwxr-xr-x 1 root root 52112 Sep 21 2022 readlink + -rwxr-xr-x 1 root root 72752 Sep 21 2022 rm + -rwxr-xr-x 1 root root 56240 Sep 21 2022 rmdir + -rwxr-xr-x 1 root root 27560 Nov 3 2022 run-parts + -rwxr-xr-x 1 root root 126424 Jan 6 09:55 sed + lrwxrwxrwx 1 root root 9 Jun 7 19:15 sh -> /bin/bash + -rwxr-xr-x 1 root root 43888 Sep 21 2022 sleep + -rwxr-xr-x 1 root root 85008 Sep 21 2022 stty + -rwsr-xr-x 1 root root 72000 Mar 24 00:02 su + -rwxr-xr-x 1 root root 39824 Sep 21 2022 sync + -rwxr-xr-x 1 root root 531984 Apr 7 04:25 tar + -rwxr-xr-x 1 root root 14520 Nov 3 2022 tempfile + -rwxr-xr-x 1 root root 109616 Sep 21 2022 touch + -rwxr-xr-x 1 root root 35664 Sep 21 2022 true + -rwxr-xr-x 1 root root 14568 Mar 23 22:35 ulockmgr_server + -rwsr-xr-x 1 root root 35128 Mar 24 00:02 umount + -rwxr-xr-x 1 root root 43888 Sep 21 2022 uname + -rwxr-xr-x 2 root root 2346 Apr 10 2022 uncompress + -rwxr-xr-x 1 root root 151344 Sep 21 2022 vdir + -rwxr-xr-x 1 root root 72024 Mar 24 00:02 wdctl + lrwxrwxrwx 1 root root 8 Dec 20 03:33 ypdomainname -> hostname + -rwxr-xr-x 1 root root 1984 Apr 10 2022 zcat + -rwxr-xr-x 1 root root 1678 Apr 10 2022 zcmp + -rwxr-xr-x 1 root root 6460 Apr 10 2022 zdiff + -rwxr-xr-x 1 root root 29 Apr 10 2022 zegrep + -rwxr-xr-x 1 root root 29 Apr 10 2022 zfgrep + -rwxr-xr-x 1 root root 2081 Apr 10 2022 zforce + -rwxr-xr-x 1 root root 8103 Apr 10 2022 zgrep + -rwxr-xr-x 1 root root 2206 Apr 10 2022 zless + -rwxr-xr-x 1 root root 1842 Apr 10 2022 zmore + -rwxr-xr-x 1 root root 4577 Apr 10 2022 znew +I: user script /srv/workspace/pbuilder/3117304/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -280,7 +312,7 @@ Get: 73 http://deb.debian.org/debian bookworm/main amd64 libppx-deriving-ocaml-dev amd64 5.2.1-1+b3 [786 kB] Get: 74 http://deb.debian.org/debian bookworm/main amd64 libre-ocaml-dev amd64 1.10.4-1 [889 kB] Get: 75 http://deb.debian.org/debian bookworm/main amd64 libelpi-ocaml-dev amd64 1.16.8-1+b2 [10.4 MB] -Fetched 353 MB in 4s (91.8 MB/s) +Fetched 353 MB in 7s (54.2 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libpython3.11-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 ... 19591 files and directories currently installed.) @@ -596,8 +628,19 @@ Writing extended state information... Building tag database... -> Finished parsing the build-deps +Reading package lists... +Building dependency tree... +Reading state information... +usrmerge is already the newest version (35). +0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package -I: Running cd /build/coq-elpi-1.16.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_1.16.0-2_source.changes +I: user script /srv/workspace/pbuilder/3117304/tmp/hooks/A99_set_merged_usr starting +Re-configuring usrmerge... +removed '/etc/unsupported-skip-usrmerge-conversion' +The system has been successfully converted. +I: user script /srv/workspace/pbuilder/3117304/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/coq-elpi-1.16.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_1.16.0-2_source.changes dpkg-buildpackage: info: source package coq-elpi dpkg-buildpackage: info: source version 1.16.0-2 dpkg-buildpackage: info: source distribution unstable @@ -764,7 +807,7 @@ app [global (indt «or»), global (indt «False»), global (indt «True»)] hit app [global (indt «or»), global (indt «False»), global (indt «True»)] -Finished transaction in 0.011 secs (0.011u,0.s) (successful) +Finished transaction in 0.033 secs (0.015u,0.s) (successful) ########################## building APPS ############################ make[3]: Entering directory '/build/coq-elpi-1.16.0/apps/derive' Using coq found in /usr/bin/, from COQBIN or PATH @@ -840,7 +883,7 @@ make[2]: Leaving directory '/build/coq-elpi-1.16.0' make[1]: Leaving directory '/build/coq-elpi-1.16.0' dh_auto_test - make -j16 test + make -j15 test make[1]: Entering directory '/build/coq-elpi-1.16.0' Using coq found in /usr/bin, from COQBIN or PATH ########################## building plugin ########################## @@ -852,13 +895,13 @@ Using coq found in /usr/bin/, from COQBIN or PATH COQDEP VFILES make[4]: Nothing to be done for 'real-all'. -make[2]: Leaving directory '/build/coq-elpi-1.16.0/apps/derive' -make[2]: Entering directory '/build/coq-elpi-1.16.0/apps/eltac' -Using coq found in /usr/bin/, from COQBIN or PATH COQC tests/test_API.v COQC tests/test_API_elaborate.v COQC tests/test_API_typecheck.v COQC tests/test_API_env.v +make[2]: Leaving directory '/build/coq-elpi-1.16.0/apps/derive' +make[2]: Entering directory '/build/coq-elpi-1.16.0/apps/eltac' +Using coq found in /usr/bin/, from COQBIN or PATH COQC tests/test_API_module.v COQC tests/test_API_section.v COQC tests/test_API_TC_CS.v @@ -869,12 +912,14 @@ COQC tests/test_quotation.v COQC tests/test_vernacular1.v COQC tests/test_tactic.v -COQC tests/test_elaborator.v +make[4]: Nothing to be done for 'real-all'. ?r : Reflexive R : Reflexive R where ?r : [ |- Reflexive R] -make[4]: Nothing to be done for 'real-all'. +make[2]: Leaving directory '/build/coq-elpi-1.16.0/apps/eltac' +make[2]: Entering directory '/build/coq-elpi-1.16.0/apps/NES' +Using coq found in /usr/bin/, from COQBIN or PATH test2 test1 str hello @@ -885,8 +930,57 @@ str Dear test1 too many arguments -make[2]: Leaving directory '/build/coq-elpi-1.16.0/apps/eltac' -make[2]: Entering directory '/build/coq-elpi-1.16.0/apps/NES' +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 +make[4]: Nothing to be done for 'real-all'. +make[2]: Leaving directory '/build/coq-elpi-1.16.0/apps/NES' +make[2]: Entering directory '/build/coq-elpi-1.16.0/apps/locker' +Using coq found in /usr/bin/, from COQBIN or PATH + {c0} : decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0) + (prod `_` (global (indt «bool»)) c1 \ global (indt «True»)) + (X1 c0) /* suspended on X0, X1 */ +EVARS: + ?X2==[x |- bool -> True] (goal evar) {?Goal} + ?X1==[ |- nat -> bool -> True => fun x : nat => ?Goal] (goal evar) + +SHELF:|| +FUTURE GOALS STACK: + || + +Coq-Elpi mapping: +RAW: +?X2 <-> c0 \ X0 c0 +ELAB: +?X2 <-> X1 + + {c0} : decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0) + (prod `_` (global (indt «bool»)) c1 \ global (indt «True»)) + (X1 c0) /* suspended on X0, X1 */ +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: + Spilled_1 = const «foo» +foo 3 + : nat +make[4]: Nothing to be done for 'real-all'. +make[2]: Leaving directory '/build/coq-elpi-1.16.0/apps/locker' +########################## testing APPS ############################ +make[2]: Entering directory '/build/coq-elpi-1.16.0/apps/derive' Using coq found in /usr/bin/, from COQBIN or PATH Query assignments: BO = fix `add` 0 @@ -901,10 +995,45 @@ GR = «Nat.add» TY = prod `n` (global (indt «nat»)) c0 \ prod `m` (global (indt «nat»)) c1 \ global (indt «nat») +Warning: ../../theories (used in -R or -Q) is not a subdirectory of the current directory + Query assignments: - GR = const «myi» -myi : Reflexive R - : Reflexive R + 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» + GRNat = indt «nat» + GRSucc = indc «S» + Nat = global (indt «nat») + Succ = global (indc «S») + TY = prod `n` (global (indt «nat»)) c0 \ + prod `m` (global (indt «nat»)) c1 \ global (indt «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») +COQDEP VFILES +Coq version: 8.16.1 = 8 . 16 . 1 +Query assignments: + MA = 8 + MI = 16 + P = 1 + V = 8.16.1 Query assignments: L = [gref (indt «Empty_set»), gref (const «Empty_set_rect»), gref (const «Empty_set_ind»), gref (const «Empty_set_rec»), @@ -953,29 +1082,21 @@ gref (const «CompSpec2Type»), gref (const «ID»), gref (const «id»), gref (const «IDProp»), gref (const «idProp»)] MP = «Coq.Init.Datatypes» -make[4]: Nothing to be done for 'real-all'. -«elpi.tests.test_API_notations.abbr» Query assignments: - A = «elpi.tests.test_API_notations.abbr» - _uvk_1_ = X0 - _uvk_2_ = X1 - _uvk_3_ = X2 -Universe constraints: -UNIVERSES: - {elpi.tests.test_API_notations.3 elpi.tests.test_API_notations.2 - elpi.tests.test_API_notations.1} |= -ALGEBRAIC UNIVERSES: - {} -UNDEFINED UNIVERSES: - -WEAK CONSTRAINTS: - + Spilled_1 = const «f» + Spilled_2 = const «f» + Spilled_3 = const «f» + Spilled_4 = const «f» + Spilled_5 = const «f» +f : forall [S : Type], S -> Prop -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 +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: E = fun `n` (global (indt «nat»)) c0 \ fun `t` (app [global (const «T2»), c0]) c1 \ @@ -1009,50 +1130,131 @@ WEAK CONSTRAINTS: -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 `n` (global (indt «nat»)) c3 \ X1 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 `n` (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 `n` (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») - _uvk_1_ = c0 \ c1 \ -global (indt «nat») - _uvk_2_ = 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.test_quotation.2»)) (X3 c0 c1) /* suspended on X3 */ + GR = const «myi» +myi : Reflexive R + : Reflexive R +«elpi.tests.test_API_notations.abbr» +Query assignments: + A = «elpi.tests.test_API_notations.abbr» + _uvk_1_ = X0 + _uvk_2_ = X1 + _uvk_3_ = X2 Universe constraints: UNIVERSES: - {elpi.tests.test_quotation.3 elpi.tests.test_quotation.2 - elpi.tests.test_quotation.1} |= Set <= elpi.tests.test_quotation.3 + {elpi.tests.test_API_notations.3 elpi.tests.test_API_notations.2 + elpi.tests.test_API_notations.1} |= ALGEBRAIC UNIVERSES: {} UNDEFINED UNIVERSES: - elpi.tests.test_quotation.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 +H +[nabla c1 \ + seal + (goal + [decl c1 `H` + (prod `b` + (prod `b` (global (indt «bool»)) c2 \ + app [global (indt «eq»), global (indt «bool»), c2, c2]) c2 \ + global (indt «True»))] (X0 c1) + (prod `b` (global (indt «bool»)) c2 \ + app [global (indt «eq»), global (indt «bool»), c2, c2]) (X1 c1) [])] +Query assignments: + Spilled_1 = 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: + X = «x» +COQC tests/test_elaborator.v +fx : nat -> nat + : nat -> nat +c2 +global (indt «nat») +z +nat +Query assignments: + Spilled_1 = c0 \ c1 \ c2 \ +nat + Spilled_2 = c0 \ c1 \ c2 \ +z + T = global (indt «nat») +COQC tests/test_derive_stdlib.v +[attribute elpi.loc + (leaf-loc + File "./tests/test_vernacular1.v", line 48, column 5, character 947:), + attribute foo (leaf-str bar)] +[get-option elpi.loc + File "./tests/test_vernacular1.v", line 48, column 5, character 947:, + get-option foo bar] +[attribute elpi.loc + (leaf-loc + File "./tests/test_vernacular1.v", line 52, column 0, character 981:), + attribute foo (leaf-str bar), attribute poly (leaf-str )] +[get-option elpi.loc + File "./tests/test_vernacular1.v", line 52, column 0, character 981:, + get-option foo bar, get-option poly tt] +[attribute elpi.loc + (leaf-loc + File "./tests/test_vernacular1.v", line 53, column 0, character 1009:), + 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 53, column 0, character 1009:, + get-option foo bar, get-option poly tt] +Query assignments: + L = [tc-instance (const «inverse_impl_rewrite_relation») 3, + tc-instance (const «impl_rewrite_relation») 3, + tc-instance (const «iff_rewrite_relation») 2, + tc-instance (const «relation_equivalence_rewrite_relation») 0, + tc-instance (const «Equivalence_PER») 10, + tc-instance (const «predicate_equivalence_equivalence») 0, + tc-instance (const «relation_equivalence_equivalence») 0, + tc-instance (const «eq_equivalence») 10, + tc-instance (const «iff_equivalence») 0, + tc-instance (const «relation_implication_preorder») 0, + tc-instance (const «Equivalence_PreOrder») 10, + tc-instance (const «predicate_implication_preorder») 0, + tc-instance (const «subrelation_partial_order») 0, + tc-instance (const «PER_Transitive») 3, + tc-instance (const «PreOrder_Transitive») 2, + tc-instance (const «iff_Transitive») 0, + tc-instance (const «eq_Transitive») 0, + tc-instance (const «Equivalence_Transitive») 0, + tc-instance (const «impl_Transitive») 0, + tc-instance (const «StrictOrder_Transitive») 0, + tc-instance (const «StrictOrder_Irreflexive») 0, + tc-instance (const «StrictOrder_Asymmetric») 0, + tc-instance (const «Equivalence_Reflexive») 0, + tc-instance (const «iff_Reflexive») 0, + tc-instance (const «impl_Reflexive») 0, + tc-instance (const «PreOrder_Reflexive») 2, + tc-instance (const «eq_Reflexive») 0, tc-instance (const «myi») 10, + tc-instance (const «partial_order_antisym») 0, + tc-instance (const «eq_Symmetric») 0, + tc-instance (const «Equivalence_Symmetric») 0, + tc-instance (const «PER_Symmetric») 3, + tc-instance (const «iff_Symmetric») 0] +Query assignments: + GR = «empty_nat» + TY = global (indt «nat») raw: parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.2»)) c0 \ parameter A2 explicit c0 c1 \ @@ -1127,6 +1329,50 @@ ?B1 : [ |- Type] ?B2 : [ |- Type] ?f : [ |- foo1 ?A2 (?B1 * ?B1) ?B2 3] +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 `n` (global (indt «nat»)) c3 \ X1 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 `n` (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 `n` (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») + _uvk_1_ = c0 \ c1 \ +global (indt «nat») + _uvk_2_ = 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.test_quotation.2»)) (X3 c0 c1) /* suspended on X3 */ +Universe constraints: +UNIVERSES: + {elpi.tests.test_quotation.3 elpi.tests.test_quotation.2 + elpi.tests.test_quotation.1} |= Set <= elpi.tests.test_quotation.3 +ALGEBRAIC UNIVERSES: + {} +UNDEFINED UNIVERSES: + elpi.tests.test_quotation.3 +WEAK CONSTRAINTS: + + raw: parameter A1 maximal X0 c0 \ parameter A2 explicit c0 c1 \ @@ -1201,121 +1447,24 @@ ?B1 : [ |- Type] ?B2 : [ |- Type] ?f : [ |- foo1 ?A2 (?B1 * ?B1) ?B2 3] +c2 +global (indt «nat») +z +nat 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: - L = [tc-instance (const «inverse_impl_rewrite_relation») 3, - tc-instance (const «impl_rewrite_relation») 3, - tc-instance (const «iff_rewrite_relation») 2, - tc-instance (const «relation_equivalence_rewrite_relation») 0, - tc-instance (const «Equivalence_PER») 10, - tc-instance (const «predicate_equivalence_equivalence») 0, - tc-instance (const «relation_equivalence_equivalence») 0, - tc-instance (const «eq_equivalence») 10, - tc-instance (const «iff_equivalence») 0, - tc-instance (const «relation_implication_preorder») 0, - tc-instance (const «Equivalence_PreOrder») 10, - tc-instance (const «predicate_implication_preorder») 0, - tc-instance (const «subrelation_partial_order») 0, - tc-instance (const «PER_Transitive») 3, - tc-instance (const «PreOrder_Transitive») 2, - tc-instance (const «iff_Transitive») 0, - tc-instance (const «eq_Transitive») 0, - tc-instance (const «Equivalence_Transitive») 0, - tc-instance (const «impl_Transitive») 0, - tc-instance (const «StrictOrder_Transitive») 0, - tc-instance (const «StrictOrder_Irreflexive») 0, - tc-instance (const «StrictOrder_Asymmetric») 0, - tc-instance (const «Equivalence_Reflexive») 0, - tc-instance (const «iff_Reflexive») 0, - tc-instance (const «impl_Reflexive») 0, - tc-instance (const «PreOrder_Reflexive») 2, - tc-instance (const «eq_Reflexive») 0, tc-instance (const «myi») 10, - tc-instance (const «partial_order_antisym») 0, - tc-instance (const «eq_Symmetric») 0, - tc-instance (const «Equivalence_Symmetric») 0, - tc-instance (const «PER_Symmetric») 3, - tc-instance (const «iff_Symmetric») 0] -make[2]: Leaving directory '/build/coq-elpi-1.16.0/apps/NES' -make[2]: Entering directory '/build/coq-elpi-1.16.0/apps/locker' -Using coq found in /usr/bin/, from COQBIN or PATH + Spilled_1 = c0 \ c1 \ c2 \ +nat + Spilled_2 = c0 \ c1 \ c2 \ +z + T = global (indt «nat») Query assignments: - B = 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» - RB = 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]]] - T = prod `n` (global (indt «nat»)) c0 \ - prod `m` (global (indt «nat»)) c1 \ global (indt «nat») - TY = prod `n` (global (indt «nat»)) c0 \ - prod `m` (global (indt «nat»)) c1 \ global (indt «nat») -Syntactic constraints: - {c0 c1 c2 c3} : - decl c3 `n` (global (indt «nat»)), decl c2 `m` (global (indt «nat»)), - decl c1 `n` (global (indt «nat»)), - decl c0 `add` - (prod `n` (global (indt «nat»)) c1 \ - prod `m` (global (indt «nat»)) c2 \ global (indt «nat»)) - ?- evar (X0 c0 c1 c2 c3) (sort (typ «elpi.tests.test_elaborator.17»)) - (X1 c0 c1 c2 c3) /* suspended on X0, X1 */ + _uvk_6_ = X0 + _uvk_7_ = X1 + _uvk_8_ = X2 Universe constraints: UNIVERSES: - {elpi.tests.test_elaborator.23 elpi.tests.test_elaborator.22 - elpi.tests.test_elaborator.21 elpi.tests.test_elaborator.20 - elpi.tests.test_elaborator.19 elpi.tests.test_elaborator.18 - elpi.tests.test_elaborator.17 elpi.tests.test_elaborator.16 - elpi.tests.test_elaborator.15 elpi.tests.test_elaborator.14 - elpi.tests.test_elaborator.13 elpi.tests.test_elaborator.12 - elpi.tests.test_elaborator.11 elpi.tests.test_elaborator.10 - elpi.tests.test_elaborator.9 elpi.tests.test_elaborator.8 - elpi.tests.test_elaborator.7 elpi.tests.test_elaborator.6 - elpi.tests.test_elaborator.5 elpi.tests.test_elaborator.4 - elpi.tests.test_elaborator.3 elpi.tests.test_elaborator.2 - elpi.tests.test_elaborator.1} |= - Set <= elpi.tests.test_elaborator.1 - Set <= elpi.tests.test_elaborator.2 - Set <= elpi.tests.test_elaborator.3 - Set <= elpi.tests.test_elaborator.8 - Set <= elpi.tests.test_elaborator.12 - Set <= elpi.tests.test_elaborator.16 - Set <= elpi.tests.test_elaborator.20 - elpi.tests.test_elaborator.1 <= elpi.tests.test_elaborator.6 - elpi.tests.test_elaborator.2 <= elpi.tests.test_elaborator.4 - elpi.tests.test_elaborator.3 <= elpi.tests.test_elaborator.4 - elpi.tests.test_elaborator.4 <= elpi.tests.test_elaborator.5 - elpi.tests.test_elaborator.5 <= elpi.tests.test_elaborator.6 - elpi.tests.test_elaborator.6 <= elpi.tests.test_elaborator.7 - elpi.tests.test_elaborator.8 <= elpi.tests.test_elaborator.10 - elpi.tests.test_elaborator.9 <= elpi.tests.test_elaborator.10 - elpi.tests.test_elaborator.10 <= elpi.tests.test_elaborator.11 - elpi.tests.test_elaborator.12 <= elpi.tests.test_elaborator.14 - elpi.tests.test_elaborator.13 <= elpi.tests.test_elaborator.14 - elpi.tests.test_elaborator.14 <= elpi.tests.test_elaborator.15 - elpi.tests.test_elaborator.16 <= elpi.tests.test_elaborator.18 - elpi.tests.test_elaborator.17 <= elpi.tests.test_elaborator.18 - elpi.tests.test_elaborator.18 <= elpi.tests.test_elaborator.19 - elpi.tests.test_elaborator.20 <= elpi.tests.test_elaborator.22 - elpi.tests.test_elaborator.21 <= elpi.tests.test_elaborator.22 - elpi.tests.test_elaborator.22 <= elpi.tests.test_elaborator.23 + {elpi.tests.test_API_notations.6 elpi.tests.test_API_notations.5 + elpi.tests.test_API_notations.4} |= ALGEBRAIC UNIVERSES: {} UNDEFINED UNIVERSES: @@ -1323,19 +1472,11 @@ WEAK CONSTRAINTS: -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») +Notation abbr2 _elpi_ctx_entry_1_was_x_ := + (fun H => _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 elpi.tests.test_API_module.X.i [elpi, tests, test_API_module, X, Y] [elpi, tests, test_API_module, X, Y] @@ -1355,29 +1496,7 @@ 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]]] - GR = «Nat.add» - GRNat = indt «nat» - GRSucc = indc «S» - Nat = global (indt «nat») - Succ = global (indc «S») - TY = prod `n` (global (indt «nat»)) c0 \ - prod `m` (global (indt «nat»)) c1 \ global (indt «nat») -Coq version: 8.16.1 = 8 . 16 . 1 -Query assignments: - MA = 8 - MI = 16 - P = 1 - V = 8.16.1 +hello world Query assignments: E = app [global (const «bar»), @@ -1388,17 +1507,41 @@ TY = prop _uvk_4_ = X0 _uvk_5_ = X1 +[str fun, str in, str as, int 4, str end, str match, str return, str =>, + str :, str :=, str {, str }, str ;, str ,, str |, str x, int 1, str H, + trm + (fun `x` (global (indt «False»)) c0 \ + match c0 (fun `y` (global (indt «False»)) c1 \ global (indt «nat»)) + [])] Query assignments: - CA = «a» - CB = «b» - CC = «c» -d : nat + GR = indt «RewriteRelation» + L = [tc-instance (const «inverse_impl_rewrite_relation») 3, + tc-instance (const «impl_rewrite_relation») 3, + tc-instance (const «iff_rewrite_relation») 2, + tc-instance (const «relation_equivalence_rewrite_relation») 0] +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" +opaque_3 : nat -d is not universe polymorphic -Expands to: Variable d -eq_refl : e2 = 3 - : e2 = 3 -make[4]: Nothing to be done for 'real-all'. +opaque_3 is not universe polymorphic +opaque_3 is opaque +Expands to: Constant elpi.tests.test_API_section.opaque_3 +Query assignments: + GR1 = indc «Vector.nil» + GR2 = indt «nat» + GR3 = const «A» +Unable to unify "bool" with "nat". +Query assignments: + Msg = Unable to unify "bool" with "nat". +Query assignments: + GR = indt «RewriteRelation» Query assignments: D = parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.79»)) c0 \ inductive t tt @@ -1438,28 +1581,6 @@ (app [global (indt «eq»), global (indt «nat»), app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record) - {c0} : decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0) - (prod `_` (global (indt «bool»)) c1 \ global (indt «True»)) - (X1 c0) /* suspended on X0, X1 */ -EVARS: - ?X2==[x |- bool -> True] (goal evar) {?Goal} - ?X1==[ |- nat -> bool -> True => fun x : nat => ?Goal] (goal evar) - -SHELF:|| -FUTURE GOALS STACK: - || - -Coq-Elpi mapping: -RAW: -?X2 <-> c0 \ X0 c0 -ELAB: -?X2 <-> X1 - - {c0} : decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0) - (prod `_` (global (indt «bool»)) c1 \ global (indt «True»)) - (X1 c0) /* suspended on X0, X1 */ raw: record foo (sort (typ X0)) Build_foo (field [coercion off, canonical tt] f @@ -1476,26 +1597,6 @@ (app [global (indt «eq»), global (indt «nat»), app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record) -Query assignments: - _uvk_6_ = X0 - _uvk_7_ = X1 - _uvk_8_ = X2 -Universe constraints: -UNIVERSES: - {elpi.tests.test_API_notations.6 elpi.tests.test_API_notations.5 - elpi.tests.test_API_notations.4} |= -ALGEBRAIC UNIVERSES: - {} -UNDEFINED UNIVERSES: - -WEAK CONSTRAINTS: - - -Notation abbr2 _elpi_ctx_entry_1_was_x_ := - (fun H => _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 raw: parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.88»)) c0 \ parameter B explicit c0 c1 \ @@ -1515,20 +1616,6 @@ prod `x` c0 c5 \ app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \ end-record) -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 `v` (app [global (indt «Vector.t»), X1 c0 c1, X2 c0 c1]) c2 \ - X3 c1 c2) - [global (indc «O»), - fun `_` (X4 c0) c1 \ - fun `_` (X5 c0 c1) c2 \ - fun `_` (X6 c0 c1 c2) c3 \ - app [global (indc «S»), global (indc «O»)]] typed: parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.88»)) c0 \ parameter B explicit c0 c1 \ @@ -1548,6 +1635,106 @@ prod `x` c0 c5 \ app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \ end-record) +fun `H` X0 c0 \ + app [global (indt «eq»), X1 c0, fun `x` X2 c1 \ c1, fun `x` X2 c1 \ c1] +Query assignments: + Spilled_1 = «elpi.tests.test_API_notations.abbr2» + T = fun `H` X0 c0 \ + app [global (indt «eq»), X1 c0, fun `x` X2 c1 \ c1, fun `x` X2 c1 \ c1] + _uvk_11_ = X2 +Query assignments: + B = 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» + RB = 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]]] + T = prod `n` (global (indt «nat»)) c0 \ + prod `m` (global (indt «nat»)) c1 \ global (indt «nat») + TY = prod `n` (global (indt «nat»)) c0 \ + prod `m` (global (indt «nat»)) c1 \ global (indt «nat») +Syntactic constraints: + {c0 c1 c2 c3} : + decl c3 `n` (global (indt «nat»)), decl c2 `m` (global (indt «nat»)), + decl c1 `n` (global (indt «nat»)), + decl c0 `add` + (prod `n` (global (indt «nat»)) c1 \ + prod `m` (global (indt «nat»)) c2 \ global (indt «nat»)) + ?- evar (X0 c0 c1 c2 c3) (sort (typ «elpi.tests.test_elaborator.17»)) + (X1 c0 c1 c2 c3) /* suspended on X0, X1 */ +Universe constraints: +UNIVERSES: + {elpi.tests.test_elaborator.23 elpi.tests.test_elaborator.22 + elpi.tests.test_elaborator.21 elpi.tests.test_elaborator.20 + elpi.tests.test_elaborator.19 elpi.tests.test_elaborator.18 + elpi.tests.test_elaborator.17 elpi.tests.test_elaborator.16 + elpi.tests.test_elaborator.15 elpi.tests.test_elaborator.14 + elpi.tests.test_elaborator.13 elpi.tests.test_elaborator.12 + elpi.tests.test_elaborator.11 elpi.tests.test_elaborator.10 + elpi.tests.test_elaborator.9 elpi.tests.test_elaborator.8 + elpi.tests.test_elaborator.7 elpi.tests.test_elaborator.6 + elpi.tests.test_elaborator.5 elpi.tests.test_elaborator.4 + elpi.tests.test_elaborator.3 elpi.tests.test_elaborator.2 + elpi.tests.test_elaborator.1} |= + Set <= elpi.tests.test_elaborator.1 + Set <= elpi.tests.test_elaborator.2 + Set <= elpi.tests.test_elaborator.3 + Set <= elpi.tests.test_elaborator.8 + Set <= elpi.tests.test_elaborator.12 + Set <= elpi.tests.test_elaborator.16 + Set <= elpi.tests.test_elaborator.20 + elpi.tests.test_elaborator.1 <= elpi.tests.test_elaborator.6 + elpi.tests.test_elaborator.2 <= elpi.tests.test_elaborator.4 + elpi.tests.test_elaborator.3 <= elpi.tests.test_elaborator.4 + elpi.tests.test_elaborator.4 <= elpi.tests.test_elaborator.5 + elpi.tests.test_elaborator.5 <= elpi.tests.test_elaborator.6 + elpi.tests.test_elaborator.6 <= elpi.tests.test_elaborator.7 + elpi.tests.test_elaborator.8 <= elpi.tests.test_elaborator.10 + elpi.tests.test_elaborator.9 <= elpi.tests.test_elaborator.10 + elpi.tests.test_elaborator.10 <= elpi.tests.test_elaborator.11 + elpi.tests.test_elaborator.12 <= elpi.tests.test_elaborator.14 + elpi.tests.test_elaborator.13 <= elpi.tests.test_elaborator.14 + elpi.tests.test_elaborator.14 <= elpi.tests.test_elaborator.15 + elpi.tests.test_elaborator.16 <= elpi.tests.test_elaborator.18 + elpi.tests.test_elaborator.17 <= elpi.tests.test_elaborator.18 + elpi.tests.test_elaborator.18 <= elpi.tests.test_elaborator.19 + elpi.tests.test_elaborator.20 <= elpi.tests.test_elaborator.22 + elpi.tests.test_elaborator.21 <= elpi.tests.test_elaborator.22 + elpi.tests.test_elaborator.22 <= elpi.tests.test_elaborator.23 +ALGEBRAIC UNIVERSES: + {} +UNDEFINED UNIVERSES: + +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 `v` (app [global (indt «Vector.t»), X1 c0 c1, X2 c0 c1]) c2 \ + X3 c1 c2) + [global (indc «O»), + fun `_` (X4 c0) c1 \ + fun `_` (X5 c0 c1) c2 \ + fun `_` (X6 c0 c1 c2) c3 \ + app [global (indc «S»), global (indc «O»)]] fun `v` (app [global (indt «Vector.t»), global (indt «nat»), @@ -1666,18 +1853,6 @@ WEAK CONSTRAINTS: -make[2]: Leaving directory '/build/coq-elpi-1.16.0/apps/locker' -Query assignments: - GR = indt «RewriteRelation» - L = [tc-instance (const «inverse_impl_rewrite_relation») 3, - tc-instance (const «impl_rewrite_relation») 3, - tc-instance (const «iff_rewrite_relation») 2, - tc-instance (const «relation_equivalence_rewrite_relation») 0] -########################## testing APPS ############################ -make[2]: Entering directory '/build/coq-elpi-1.16.0/apps/derive' -Using coq found in /usr/bin/, from COQBIN or PATH -Warning: ../../theories (used in -R or -Q) is not a subdirectory of the current directory - Query assignments: I = «Y.i» ID = j @@ -1685,101 +1860,18 @@ MP = «elpi.tests.test_API_module.Y» P = [elpi, tests, test_API_module, Y] Query assignments: - B = fun `n` (global (indt «nat»)) c0 \ - app - [global (const «nat_ind»), - fun `n` (global (indt «nat»)) c1 \ - app - [global (indt «eq»), global (indt «nat»), c1, - app [global (const «Nat.add»), c1, global (indc «O»)]], - let `_` - (app - [global (indt «eq»), global (indt «nat»), global (indc «O»), - app - [global (const «Nat.add»), global (indc «O»), global (indc «O»)]]) - (app - [global (indc «eq_refl»), global (indt «nat»), global (indc «O»)]) - c1 \ c1, - fun `n` (global (indt «nat»)) c1 \ - fun `IHn` - (app - [global (indt «eq»), global (indt «nat»), c1, - app [global (const «Nat.add»), c1, global (indc «O»)]]) c2 \ - let `_` - (app - [global (indt «eq»), global (indt «nat»), - app [global (indc «S»), c1], - app - [global (const «Nat.add»), app [global (indc «S»), c1], - global (indc «O»)]]) - (app - [global (const «f_equal_nat»), global (indt «nat»), - global (indc «S»), c1, - app [global (const «Nat.add»), c1, global (indc «O»)], c2]) c3 \ - c3, c0] - GR = «plus_n_O» - RB = fun `n` (global (indt «nat»)) c0 \ - app - [global (const «nat_ind»), - fun `n` (global (indt «nat»)) c1 \ - app - [global (indt «eq»), global (indt «nat»), c1, - app [global (const «Nat.add»), c1, global (indc «O»)]], - let `_` - (app - [global (indt «eq»), global (indt «nat»), global (indc «O»), - app - [global (const «Nat.add»), global (indc «O»), global (indc «O»)]]) - (app - [global (indc «eq_refl»), global (indt «nat»), global (indc «O»)]) - c1 \ c1, - fun `n` (global (indt «nat»)) c1 \ - fun `IHn` - (app - [global (indt «eq»), global (indt «nat»), c1, - app [global (const «Nat.add»), c1, global (indc «O»)]]) c2 \ - let `_` - (app - [global (indt «eq»), global (indt «nat»), - app [global (indc «S»), c1], - app - [global (const «Nat.add»), app [global (indc «S»), c1], - global (indc «O»)]]) - (app - [global (const «f_equal_nat»), global (indt «nat»), - global (indc «S»), c1, - app [global (const «Nat.add»), c1, global (indc «O»)], c2]) c3 \ - c3, c0] - TY = prod `n` (global (indt «nat»)) c0 \ - app - [global (indt «eq»), global (indt «nat»), c0, - app [global (const «Nat.add»), c0, global (indc «O»)]] + 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»)] + _uvk_6_ = X0 Universe constraints: UNIVERSES: - {elpi.tests.test_elaborator.38 elpi.tests.test_elaborator.37 - elpi.tests.test_elaborator.36 elpi.tests.test_elaborator.35 - elpi.tests.test_elaborator.34 elpi.tests.test_elaborator.33 - elpi.tests.test_elaborator.32 elpi.tests.test_elaborator.31 - elpi.tests.test_elaborator.30 elpi.tests.test_elaborator.29 - elpi.tests.test_elaborator.28 elpi.tests.test_elaborator.27 - elpi.tests.test_elaborator.26 elpi.tests.test_elaborator.25 - elpi.tests.test_elaborator.24} |= - Set <= eq.u0 - Set <= Coq.Init.Logic.11 - Set <= elpi.tests.test_elaborator.24 - Set <= elpi.tests.test_elaborator.28 - Set <= elpi.tests.test_elaborator.32 - elpi.tests.test_elaborator.24 <= elpi.tests.test_elaborator.26 - elpi.tests.test_elaborator.25 <= elpi.tests.test_elaborator.26 - elpi.tests.test_elaborator.26 <= elpi.tests.test_elaborator.27 - elpi.tests.test_elaborator.28 <= elpi.tests.test_elaborator.30 - elpi.tests.test_elaborator.29 <= elpi.tests.test_elaborator.30 - elpi.tests.test_elaborator.30 <= elpi.tests.test_elaborator.31 - elpi.tests.test_elaborator.32 <= elpi.tests.test_elaborator.34 - elpi.tests.test_elaborator.33 <= elpi.tests.test_elaborator.34 - elpi.tests.test_elaborator.34 <= elpi.tests.test_elaborator.35 - elpi.tests.test_elaborator.36 <= elpi.tests.test_elaborator.37 - elpi.tests.test_elaborator.37 <= elpi.tests.test_elaborator.38 + {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: {} UNDEFINED UNIVERSES: @@ -1787,107 +1879,42 @@ WEAK CONSTRAINTS: -[attribute elpi.loc - (leaf-loc - File "./tests/test_vernacular1.v", line 48, column 5, character 947:), - attribute foo (leaf-str bar)] -[get-option elpi.loc - File "./tests/test_vernacular1.v", line 48, column 5, character 947:, - get-option foo bar] -[attribute elpi.loc - (leaf-loc - File "./tests/test_vernacular1.v", line 52, column 0, character 981:), - attribute foo (leaf-str bar), attribute poly (leaf-str )] -[get-option elpi.loc - File "./tests/test_vernacular1.v", line 52, column 0, character 981:, - get-option foo bar, get-option poly tt] Query assignments: - Spilled_1 = const «foo» -foo 3 - : nat -[attribute elpi.loc - (leaf-loc - File "./tests/test_vernacular1.v", line 53, column 0, character 1009:), - 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 53, column 0, character 1009:, - get-option foo bar, get-option poly tt] -Query assignments: - GR = «empty_nat» - TY = global (indt «nat») -c2 -global (indt «nat») -z -nat + T = sort (typ «elpi.tests.test_HOAS.3») + U = «elpi.tests.test_HOAS.3» Query assignments: - Spilled_1 = c0 \ c1 \ c2 \ -nat - Spilled_2 = c0 \ c1 \ c2 \ -z - T = global (indt «nat») -hello world -COQDEP VFILES -3 + GR = indt «True» Query assignments: X = 3 +app [global (const «Nat.mul»), X0, X1] type +COQC tests/test_ltac.v Query assignments: - I = «foo» -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 `a` c0 c3 \ - prod `_` (app [global (indt «eq»), X2 c0 c1 c3, c1, c1]) c4 \ c0) - c3 \ - field [coercion off, canonical ff] x - (let `w` (X3 c0 c1 c2 c3) - (app - [global (indc «S»), - app - [global (indc «S»), - app [global (indc «S»), global (indc «O»)]]]) c4 \ - prod `x` (X4 c0 c1 c2 c3 c4) c5 \ - app - [global (indt «eq»), X5 c0 c1 c2 c3 c4 c5, app [c2, c5, c5], c5]) - c4 \ end-record) -typed: -parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.94»)) c0 \ - parameter B explicit c0 c1 \ - record foo (sort (typ «elpi.tests.test_arg_HOAS.96»)) Build_foo - (field [coercion off, canonical tt] a - (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \ - field [coercion reversible, canonical tt] z - (prod `elpi_ctx_entry_4_` 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) -Query assignments: - GR = indt «RewriteRelation» -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»)] - _uvk_6_ = X0 + 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_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 + {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: {} UNDEFINED UNIVERSES: @@ -1896,10 +1923,6 @@ Query assignments: - X = «x» -fx : nat -> nat - : nat -> nat -Query assignments: GRy = EXN PRINTING: Not_found I = EXN PRINTING: Not_found L = [gref (const «A.z»), gref (const «A.i»)] @@ -1938,336 +1961,10 @@ A.i : Type *** [ A.i : Type ] -H -[nabla c1 \ - seal - (goal - [decl c1 `H` - (prod `b` - (prod `b` (global (indt «bool»)) c2 \ - app [global (indt «eq»), global (indt «bool»), c2, c2]) c2 \ - global (indt «True»))] (X0 c1) - (prod `b` (global (indt «bool»)) c2 \ - app [global (indt «eq»), global (indt «bool»), c2, c2]) (X1 c1) [])] -fun `x` X0 c0 \ app [X1, c0] -Query assignments: - X = X1 - Y = fun `x` X0 c0 \ app [X1, c0] - _uvk_34_ = X0 -Query assignments: - GR1 = indc «Vector.nil» - GR2 = indt «nat» - GR3 = const «A» -File "coq-builtin.elpi", line 1470, characters 0-93: -Warning: constant get-option has no declared type. [elpi.typecheck,elpi] -fun `H` X0 c0 \ - app [global (indt «eq»), X1 c0, fun `x` X2 c1 \ c1, fun `x` X2 c1 \ c1] -Query assignments: - Spilled_1 = «elpi.tests.test_API_notations.abbr2» - T = fun `H` X0 c0 \ - app [global (indt «eq»), X1 c0, fun `x` X2 c1 \ c1, fun `x` X2 c1 \ c1] - _uvk_11_ = X2 -Query assignments: - I = «foo» -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) -y : nat -> Type - : nat -> Type -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) -y : nat -> Type - : nat -> Type -c2 -global (indt «nat») -z -nat -Query assignments: - Spilled_1 = c0 \ c1 \ c2 \ -nat - Spilled_2 = c0 \ c1 \ c2 \ -z - T = global (indt «nat») -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: - Spilled_1 = 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) -CHR: Uniqueness of typing of frozen--985 + [] <-> [] -1 |> [decl c0 `x` (uvar frozen--985 [])] |- frozen--985 [] : -sort (typ «elpi.tests.test_elaborator.40») -0 |> [] |- frozen--985 [] : sort (typ «elpi.tests.test_elaborator.39») -0 |> [] |- -unify-eq (sort (typ «elpi.tests.test_elaborator.40»)) - (sort (typ «elpi.tests.test_elaborator.39»)) - -Query assignments: - R = fun `x` X0 c0 \ c0 - T = prod `x` X0 c0 \ X0 - _uvk_87_ = X1 -Syntactic constraints: - {c0} : decl c0 `x` X0 - ?- evar X2 (sort (typ «elpi.tests.test_elaborator.40»)) X0 /* suspended on X2, X0 */ -Universe constraints: -UNIVERSES: - {elpi.tests.test_elaborator.42 elpi.tests.test_elaborator.41 - elpi.tests.test_elaborator.40 elpi.tests.test_elaborator.39} |= - elpi.tests.test_elaborator.39 <= elpi.tests.test_elaborator.41 - elpi.tests.test_elaborator.40 <= elpi.tests.test_elaborator.39 - elpi.tests.test_elaborator.40 <= elpi.tests.test_elaborator.41 - elpi.tests.test_elaborator.41 <= elpi.tests.test_elaborator.42 -ALGEBRAIC UNIVERSES: - {} -UNDEFINED UNIVERSES: - -WEAK CONSTRAINTS: - - -COQC tests/test_derive_stdlib.v -Query assignments: - GR = indt «True» -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 `u` (X7 c0 c1 c2) c3 \ - match c3 (fun `u0` (X8 c1 c2 c3) c4 \ app [c1, c4]) - [fun `x` (X9 c1 c2 c3) c4 \ - fun `Px` (X10 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 «elpi.tests.test_quotation.22»)) 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 `u0` (app [global (indt «ord»), c0]) c3 \ - match c3 - (fun `u1` (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]]] - _uvk_35_ = X0 - _uvk_36_ = X1 - _uvk_37_ = X2 - _uvk_38_ = X3 - _uvk_39_ = X4 - _uvk_40_ = X5 - _uvk_41_ = X6 - _uvk_42_ = X7 - _uvk_43_ = X8 - _uvk_44_ = X9 - _uvk_45_ = X10 - _uvk_46_ = global (indt «nat») - _uvk_47_ = c0 \ -global (indt «nat») - _uvk_48_ = c0 \ -fun `x` (global (indt «nat»)) c1 \ app [global (const «leq»), c1, c0] - _uvk_49_ = c0 \ -app [global (indt «ord»), c0] - _uvk_50_ = c0 \ -app [global (const «oval»), c0] - _uvk_51_ = c0 \ -fun `K` - (prod `x` (app [global (indt «ord»), c0]) c1 \ - sort (typ «elpi.tests.test_quotation.22»)) 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 `u0` (app [global (indt «ord»), c0]) c3 \ - match c3 (fun `u1` (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.test_quotation.28 elpi.tests.test_quotation.27} |= - Set <= is_SUB.u0 - Set <= is_SUB.u1 - Set <= elpi.tests.test_quotation.27 - is_SUB.u2 <= elpi.tests.test_quotation.28 -ALGEBRAIC UNIVERSES: - {elpi.tests.test_quotation.28 elpi.tests.test_quotation.27} -UNDEFINED UNIVERSES: - elpi.tests.test_quotation.28 - elpi.tests.test_quotation.27 -WEAK CONSTRAINTS: - - -Query assignments: - MP_TA = «elpi.tests.test_API_module.TA» - MP_TF = «elpi.tests.test_API_module.TF» - Spilled_1 = «elpi.tests.test_API_module.a» - Spilled_2 = const const EXN PRINTING: Not_found -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 ] -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 `_` (app [global (const «f1»), c0]) c3 \ app [c1, c2]))] -elab2: -parameter A explicit (global (const «T1»)) c0 \ - parameter B explicit (sort (typ «elpi.tests.test_API_elaborate.23»)) c1 \ - inductive ind1 tt - (arity (sort (typ «elpi.tests.test_API_elaborate.25»))) c2 \ - [constructor K1 (arity (prod `_` c2 c3 \ c2)), - constructor K2 - (arity (prod `_` (app [global (const «f1»), c0]) c3 \ c2)), - constructor K3 - (arity (prod `_` (app [global (const «f1»), c0]) c3 \ c2))] -raw: -parameter A explicit (global (const «T1»)) c0 \ - record ind2 (sort (typ «elpi.tests.test_API_elaborate.4»)) 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 «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) +COQC tests/test_param2.v +3 Query assignments: - Spilled_1 = const «f» - Spilled_2 = const «f» - Spilled_3 = const «f» - Spilled_4 = const «f» - Spilled_5 = 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 -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) -f (S:=bool * bool) - : bool * bool -> Prop -elab2: -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) -forall x : ind3, x -> Prop - : Type -opaque_3 : nat - -opaque_3 is not universe polymorphic -opaque_3 is opaque -Expands to: Constant elpi.tests.test_API_section.opaque_3 -COQC tests/test_ltac.v + X = 3 add_equal Query assignments: BO = fix `add` 0 @@ -2293,88 +1990,6 @@ Arguments add_equal (n m)%nat_scope add_equal is opaque Expands to: Constant elpi.tests.test_API_env.add_equal -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»)]]))] -Query assignments: - D = 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»)]]))] - 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] -[str fun, str in, str as, int 4, str end, str match, str return, str =>, - str :, str :=, str {, str }, str ;, str ,, str |, str x, int 1, str H, - trm - (fun `x` (global (indt «False»)) c0 \ - match c0 (fun `y` (global (indt «False»)) c1 \ global (indt «nat»)) - [])] -Query assignments: - Spilled_1 = «elpi.tests.test_API_notations.abbr2» {c0 c1 c2 c3} : decl c3 `w` c0, decl c2 `h` @@ -2508,7 +2123,6 @@ app [global (indt «eq»), app [c1, c3], X1 c0 c1 c2 c3 c4 c5, X1 c0 c1 c2 c3 c4 c5] ?elpi_evar = ?elpi_evar -COQC tests/test_cache_async.v {c0 c1 c2 c3 c4 c5} : decl c5 `j` (app [c1, c3]), decl c4 `e` @@ -2560,49 +2174,144 @@ app [global (indt «eq»), app [c1, c3], X1 c0 c1 c2 c3 c4 c5, X1 c0 c1 c2 c3 c4 c5] ?elpi_evar0 = ?elpi_evar0 -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" -Query assignments: - R = fun `x` (global (indt «nat»)) c0 \ - app [global (const «Nat.add»), c0, global (indc «O»)] - T = prod `x` (global (indt «nat»)) c0 \ global (indt «nat») - _uvk_109_ = X0 -Universe constraints: -UNIVERSES: - {elpi.tests.test_elaborator.46 elpi.tests.test_elaborator.45 - elpi.tests.test_elaborator.44 elpi.tests.test_elaborator.43} |= - elpi.tests.test_elaborator.43 <= elpi.tests.test_elaborator.45 - elpi.tests.test_elaborator.44 <= elpi.tests.test_elaborator.45 - elpi.tests.test_elaborator.45 <= elpi.tests.test_elaborator.46 -ALGEBRAIC UNIVERSES: - {} -UNDEFINED UNIVERSES: - -WEAK CONSTRAINTS: - - Query assignments: - MP_TA = «elpi.tests.test_API_module.TA» -Module Type TB = Funsig (A:TA) Sig End + I = «foo» +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 `a` c0 c3 \ + prod `_` (app [global (indt «eq»), X2 c0 c1 c3, c1, c1]) c4 \ c0) + c3 \ + field [coercion off, canonical ff] x + (let `w` (X3 c0 c1 c2 c3) + (app + [global (indc «S»), + app + [global (indc «S»), + app [global (indc «S»), global (indc «O»)]]]) c4 \ + prod `x` (X4 c0 c1 c2 c3 c4) c5 \ + app + [global (indt «eq»), X5 c0 c1 c2 c3 c4 c5, app [c2, c5, c5], c5]) + c4 \ end-record) +typed: +parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.94»)) c0 \ + parameter B explicit c0 c1 \ + record foo (sort (typ «elpi.tests.test_arg_HOAS.96»)) Build_foo + (field [coercion off, canonical tt] a + (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \ + field [coercion reversible, canonical tt] z + (prod `elpi_ctx_entry_4_` 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) 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»)] + B = fun `n` (global (indt «nat»)) c0 \ + app + [global (const «nat_ind»), + fun `n` (global (indt «nat»)) c1 \ + app + [global (indt «eq»), global (indt «nat»), c1, + app [global (const «Nat.add»), c1, global (indc «O»)]], + let `_` + (app + [global (indt «eq»), global (indt «nat»), global (indc «O»), + app + [global (const «Nat.add»), global (indc «O»), global (indc «O»)]]) + (app + [global (indc «eq_refl»), global (indt «nat»), global (indc «O»)]) + c1 \ c1, + fun `n` (global (indt «nat»)) c1 \ + fun `IHn` + (app + [global (indt «eq»), global (indt «nat»), c1, + app [global (const «Nat.add»), c1, global (indc «O»)]]) c2 \ + let `_` + (app + [global (indt «eq»), global (indt «nat»), + app [global (indc «S»), c1], + app + [global (const «Nat.add»), app [global (indc «S»), c1], + global (indc «O»)]]) + (app + [global (const «f_equal_nat»), global (indt «nat»), + global (indc «S»), c1, + app [global (const «Nat.add»), c1, global (indc «O»)], c2]) c3 \ + c3, c0] + GR = «plus_n_O» + RB = fun `n` (global (indt «nat»)) c0 \ + app + [global (const «nat_ind»), + fun `n` (global (indt «nat»)) c1 \ + app + [global (indt «eq»), global (indt «nat»), c1, + app [global (const «Nat.add»), c1, global (indc «O»)]], + let `_` + (app + [global (indt «eq»), global (indt «nat»), global (indc «O»), + app + [global (const «Nat.add»), global (indc «O»), global (indc «O»)]]) + (app + [global (indc «eq_refl»), global (indt «nat»), global (indc «O»)]) + c1 \ c1, + fun `n` (global (indt «nat»)) c1 \ + fun `IHn` + (app + [global (indt «eq»), global (indt «nat»), c1, + app [global (const «Nat.add»), c1, global (indc «O»)]]) c2 \ + let `_` + (app + [global (indt «eq»), global (indt «nat»), + app [global (indc «S»), c1], + app + [global (const «Nat.add»), app [global (indc «S»), c1], + global (indc «O»)]]) + (app + [global (const «f_equal_nat»), global (indt «nat»), + global (indc «S»), c1, + app [global (const «Nat.add»), c1, global (indc «O»)], c2]) c3 \ + c3, c0] + TY = prod `n` (global (indt «nat»)) c0 \ + app + [global (indt «eq»), global (indt «nat»), c0, + app [global (const «Nat.add»), c0, global (indc «O»)]] 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 + {elpi.tests.test_elaborator.38 elpi.tests.test_elaborator.37 + elpi.tests.test_elaborator.36 elpi.tests.test_elaborator.35 + elpi.tests.test_elaborator.34 elpi.tests.test_elaborator.33 + elpi.tests.test_elaborator.32 elpi.tests.test_elaborator.31 + elpi.tests.test_elaborator.30 elpi.tests.test_elaborator.29 + elpi.tests.test_elaborator.28 elpi.tests.test_elaborator.27 + elpi.tests.test_elaborator.26 elpi.tests.test_elaborator.25 + elpi.tests.test_elaborator.24} |= + Set <= eq.u0 + Set <= Coq.Init.Logic.11 + Set <= elpi.tests.test_elaborator.24 + Set <= elpi.tests.test_elaborator.28 + Set <= elpi.tests.test_elaborator.32 + elpi.tests.test_elaborator.24 <= elpi.tests.test_elaborator.26 + elpi.tests.test_elaborator.25 <= elpi.tests.test_elaborator.26 + elpi.tests.test_elaborator.26 <= elpi.tests.test_elaborator.27 + elpi.tests.test_elaborator.28 <= elpi.tests.test_elaborator.30 + elpi.tests.test_elaborator.29 <= elpi.tests.test_elaborator.30 + elpi.tests.test_elaborator.30 <= elpi.tests.test_elaborator.31 + elpi.tests.test_elaborator.32 <= elpi.tests.test_elaborator.34 + elpi.tests.test_elaborator.33 <= elpi.tests.test_elaborator.34 + elpi.tests.test_elaborator.34 <= elpi.tests.test_elaborator.35 + elpi.tests.test_elaborator.36 <= elpi.tests.test_elaborator.37 + elpi.tests.test_elaborator.37 <= elpi.tests.test_elaborator.38 ALGEBRAIC UNIVERSES: {} UNDEFINED UNIVERSES: @@ -2610,337 +2319,101 @@ WEAK CONSTRAINTS: -unknown_gref -Query assignments: - I = «inductive_nup.r» - R = parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.31»)) c0 \ - parameter a explicit c0 c1 \ - record r (sort (typ «elpi.tests.test_arg_HOAS.31»)) 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 -raw: inductive X1 tt (arity (sort prop)) c0 \ [] -typed: inductive X1 tt (arity (sort prop)) c0 \ [] -X1 : Prop - -X1 is not universe polymorphic -Expands to: Inductive elpi.tests.test_arg_HOAS.X1 Query assignments: - X = 3 + Spilled_1 = «elpi.tests.test_API_notations.abbr2» +COQC tests/test_cache_async.v +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 `_` (app [global (const «f1»), c0]) c3 \ app [c1, c2]))] «myfalse» Query assignments: F = indt «False» GR = «myfalse» +elab2: +parameter A explicit (global (const «T1»)) c0 \ + parameter B explicit (sort (typ «elpi.tests.test_API_elaborate.23»)) c1 \ + inductive ind1 tt + (arity (sort (typ «elpi.tests.test_API_elaborate.25»))) c2 \ + [constructor K1 (arity (prod `_` c2 c3 \ c2)), + constructor K2 + (arity (prod `_` (app [global (const «f1»), c0]) c3 \ c2)), + constructor K3 + (arity (prod `_` (app [global (const «f1»), c0]) c3 \ c2))] myfalse : False -app [global (const «Nat.mul»), X0, X1] type -COQC tests/test_COQ_ELPI_ATTRIBUTES.v -Query assignments: - Spilled_1 = 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 -z - : nat - = fun x : bool => x = x - : bool -> Prop -Query assignments: - Spilled_1 = «elpi.tests.test_API_module.A» -Module IA := Struct Definition z : nat. Definition i : Type. End - -COQC tests/perf_calls.v -Unable to unify "bool" with "nat". -Query assignments: - Msg = Unable to unify "bool" with "nat". -COQC tests/test_ctx_cache.v -COQC tests/test_libobject_A.v -«elpi.tests.test_API_elaborate.52» «elpi.tests.test_API_elaborate.52» -sort (typ X0) -Query assignments: - type_1 = X0 -COQC tests/test_vernacular2.v raw: -inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.127»))) c0 \ [] -upoly-decl [«elpi.tests.test_arg_HOAS.127»] tt [] tt -Universe constraints: UNIVERSES: - {u1} |= - ALGEBRAIC UNIVERSES: - {} - UNDEFINED UNIVERSES: - elpi.tests.test_arg_HOAS.127 - WEAK CONSTRAINTS: - - -typed: -inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.127»))) c0 \ [] -Query assignments: - T = sort (typ «elpi.tests.test_HOAS.3») - U = «elpi.tests.test_HOAS.3» +parameter A explicit (global (const «T1»)) c0 \ + record ind2 (sort (typ «elpi.tests.test_API_elaborate.4»)) 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 «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) raw: -inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.135»))) c0 \ [] -upoly-decl-cumul [auto «elpi.tests.test_arg_HOAS.135»] tt [] tt -Universe constraints: UNIVERSES: - {u2} |= - ALGEBRAIC UNIVERSES: - {} - UNDEFINED UNIVERSES: - elpi.tests.test_arg_HOAS.135 - WEAK CONSTRAINTS: - - -typed: -inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.135»))) c0 \ [] -X3@{u1} : Type@{u1} -(* u1 |= *) - -X3 is universe polymorphic -Expands to: Inductive elpi.tests.test_arg_HOAS.X3 -X4@{u2} : Type@{u2} -(* *u2 |= *) - -X4 is universe polymorphic -Expands to: Inductive elpi.tests.test_arg_HOAS.X4 -Query assignments: - GR = const «myc» -Query assignments: - Spilled_1 = «elpi.tests.test_API_module.IA» -i +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 «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) +forall x : ind3, x -> Prop : Type -eq_op myc t t - : bool -Query assignments: - GR = indt «X3» -Universe constraints: -UNIVERSES: - {elpi.tests.test_arg_HOAS.143} |= -ALGEBRAIC UNIVERSES: - {} -UNDEFINED UNIVERSES: - elpi.tests.test_arg_HOAS.143 -WEAK CONSTRAINTS: - - -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: - {} -UNDEFINED UNIVERSES: - -WEAK CONSTRAINTS: - - -COQC tests/test_libobject_B.v -parameter T X0 (sort (typ X1)) c0 \ - record eq_class (sort (typ X2)) mk_eq_class - (field [canonical ff, coercion regular] eq_f (global (indt «bool»)) c1 \ - field X3 eq_proof - (app [global (indt «eq»), global (indt «bool»), c1, c1]) c2 \ - end-record) -Query assignments: - DECL = parameter T X0 (sort (typ «elpi.tests.test_API_env.1»)) c0 \ - record eq_class (sort (typ «elpi.tests.test_API_env.2»)) mk_eq_class - (field [canonical ff, coercion regular] eq_f (global (indt «bool»)) c1 \ - field X3 eq_proof - (app [global (indt «eq»), global (indt «bool»), c1, c1]) c2 \ - end-record) - GR = «eq_class» - type_1 = «elpi.tests.test_API_env.1» - type_2 = «elpi.tests.test_API_env.2» -Universe constraints: -UNIVERSES: - -ALGEBRAIC UNIVERSES: - {eq_class.u1 eq_class.u0} -UNDEFINED UNIVERSES: - elpi.tests.test_API_env.2 - elpi.tests.test_API_env.1 -WEAK CONSTRAINTS: - - -test1 -str hello -str x -Record eq_class (T : Type@{eq_class.u0}) : Type@{eq_class.u1} := mk_eq_class - { eq_f : bool; eq_proof : eq_f = eq_f }. - -Arguments eq_class T%type_scope -Arguments mk_eq_class T%type_scope eq_f%bool_scope eq_proof -fun x : eq_class nat => x : bool - : eq_class nat -> bool -p <- eq_proof ( xxx ) -test1 -too many arguments -File "./tests/test_vernacular2.v", line 6, characters 2-17: -Warning: This command does not support this attribute: fwd_compat_attr. -[unsupported-attributes,parsing] -File "./tests/test_vernacular2.v", line 7, characters 2-17: -Warning: This command does not support this attribute: fwd_compat_attr. -[unsupported-attributes,parsing] -File "./tests/test_vernacular2.v", line 8, characters 2-17: -Warning: This command does not support this attribute: fwd_compat_attr. -[unsupported-attributes,parsing] -COQC tests/test_param2.v -Query assignments: - Spilled_1 = «elpi.tests.test_API_module.TA» -Module Type ITA = Sig Parameter z : nat. Parameter i : Type. End -Query assignments: - S = sort (typ «elpi.tests.test_elaborator.48») - T = sort (typ «elpi.tests.test_elaborator.47») - type_2 = «elpi.tests.test_elaborator.47» -Universe constraints: -UNIVERSES: - {elpi.tests.test_elaborator.48 elpi.tests.test_elaborator.47} |= - elpi.tests.test_elaborator.47 < elpi.tests.test_elaborator.48 -ALGEBRAIC UNIVERSES: - {elpi.tests.test_elaborator.47} -UNDEFINED UNIVERSES: - elpi.tests.test_elaborator.47 -WEAK CONSTRAINTS: - - -COQC tests/test_invert.v -Query assignments: - GR = indt «X4» -Universe constraints: -UNIVERSES: - {elpi.tests.test_arg_HOAS.144} |= -ALGEBRAIC UNIVERSES: - {} -UNDEFINED UNIVERSES: - elpi.tests.test_arg_HOAS.144 -WEAK CONSTRAINTS: - - -raw: -inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.145»))) c0 \ [] -upoly-decl [«elpi.tests.test_arg_HOAS.145»] ff [] ff -Universe constraints: UNIVERSES: - {u3} |= - ALGEBRAIC UNIVERSES: - {} - UNDEFINED UNIVERSES: - elpi.tests.test_arg_HOAS.145 - WEAK CONSTRAINTS: - - -typed: -inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.145»))) c0 \ [] -X5@{u3} : Type@{u3} -(* u3 |= *) - -X5 is universe polymorphic -Expands to: Inductive elpi.tests.test_arg_HOAS.X5 -raw: -inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.154»))) c0 \ - [constructor K - (arity (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.153»)) c1 \ c0))] -upoly-decl - [«elpi.tests.test_arg_HOAS.153», «elpi.tests.test_arg_HOAS.154»] ff - [lt «elpi.tests.test_arg_HOAS.153» «elpi.tests.test_arg_HOAS.154»] ff -Universe constraints: UNIVERSES: - {u5 u4} |= u4 < u5 - ALGEBRAIC UNIVERSES: - {} - UNDEFINED UNIVERSES: - elpi.tests.test_arg_HOAS.154 - elpi.tests.test_arg_HOAS.153 - WEAK CONSTRAINTS: - - -typed: -inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.154»))) c0 \ - [constructor K - (arity (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.153»)) c1 \ c0))] -X6@{u4 u5} : Type@{u5} -(* u4 u5 |= u4 < u5 *) - -X6 is universe polymorphic -Expands to: Inductive elpi.tests.test_arg_HOAS.X6 -raw: inductive X8 tt (arity (sort (typ X0))) c0 \ [] upoly-decl [] tt [] tt -Universe constraints: -typed: -inductive X8 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.169»))) c0 \ [] -X8@{u} : Type@{u} -(* u |= *) - -X8 is universe polymorphic -Expands to: Inductive elpi.tests.test_arg_HOAS.X8 -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 -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 -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 -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 -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 -COQC tests/test_idx2inv.v -Query assignments: - L = [cs-instance (const «carrier») (cs-gref (const «W»)) (const «myc»), - cs-instance (const «eq_op») (cs-gref (const «Z»)) (const «myc»)] nth_R = fun (T T0 : Type) (T1 : T -> T0 -> Type) (x0 : T) (x1 : T0) (x2 : T1 x0 x1) => @@ -3065,151 +2538,127 @@ Arguments nth_R (T T)%type_scope T%function_scope x0 x0 x0 (n n)%nat_scope n (l l)%list_scope l +fun `x` X0 c0 \ app [X1, c0] 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» + X = X1 + Y = fun `x` X0 c0 \ app [X1, c0] + _uvk_34_ = X0 +File "coq-builtin.elpi", line 1470, characters 0-93: +Warning: constant get-option has no declared type. [elpi.typecheck,elpi] Query assignments: - GR = «nat» -COQC tests/test_lens.v - evar (X0) (global (indt «nat»)) X1 /* suspended on X0, X1 */ -X0 global (indt «nat») - evar (X2) (global (indt «nat»)) X3 /* suspended on X2, X3 */ -hello -eq_refl : one = 1 - : one = 1 -test_inv : Type -> bool -> Type - : Type -> bool -> Type -K1_inv : forall (A : Type) (b : bool), b = true -> test_inv A b - : forall (A : Type) (b : bool), b = true -> test_inv A b -K2_inv -: -forall (A : Type) (b x : bool), -A -> test_inv A (negb x) -> b = negb (negb x) -> test_inv A b - : forall (A : Type) (b x : bool), - A -> test_inv A (negb x) -> b = negb (negb x) -> test_inv A b -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)) -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. + MP_TA = «elpi.tests.test_API_module.TA» + MP_TF = «elpi.tests.test_API_module.TF» + Spilled_1 = «elpi.tests.test_API_module.a» + Spilled_2 = const const EXN PRINTING: Not_found +Module +F + : Funsig (a:TA) Funsig (b:TA) TF +:= Functor (a:TA) Functor (b:TA) Struct Definition w : nat. End -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 _ _ -COQC tests/test_tag.v +Module B : Sig Parameter w : nat. End := (F A A) + +*** [ B.w : nat ] +COQC tests/test_COQ_ELPI_ATTRIBUTES.v Query assignments: - I = «eq» - P1 = «carrier» - P2 = «eq_op» -COQC tests/test_eqType_ast.v -COQC tests/test_libobject_C.v + I = «foo» +z + : nat +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) +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: - S = sort (typ «elpi.tests.test_elaborator.50») - T = sort (typ «elpi.tests.test_elaborator.49») - TW = sort (typ «elpi.tests.test_elaborator.49») - W = sort (typ «elpi.tests.test_elaborator.51») - type_3 = «elpi.tests.test_elaborator.49» - type_4 = «elpi.tests.test_elaborator.51» + Spilled_1 = 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»)] +y : nat -> Type + : nat -> Type +COQC tests/perf_calls.v +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) +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_elaborator.51 elpi.tests.test_elaborator.50 - elpi.tests.test_elaborator.49} |= - elpi.tests.test_elaborator.49 < elpi.tests.test_elaborator.50 - elpi.tests.test_elaborator.51 < elpi.tests.test_elaborator.49 + {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: - {elpi.tests.test_elaborator.51 elpi.tests.test_elaborator.49} + {} UNDEFINED UNIVERSES: - elpi.tests.test_elaborator.51 - elpi.tests.test_elaborator.49 + WEAK CONSTRAINTS: Query assignments: U = «elpi.tests.test_HOAS.5» -foo : nat - : nat -bar : bool -> nat - : bool -> nat -COQC examples/usage.v -global (indc «O») -is_list_to_is_list_inv -: -forall (A : Type) (PA : A -> Type) (l : list A), -is_list A PA l -> is_list_inv A PA l - : forall (A : Type) (PA : A -> Type) (l : list A), - is_list A PA l -> is_list_inv A PA l +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) +y : nat -> Type + : nat -> Type +unknown_gref +CHR: Uniqueness of typing of frozen--985 + [] <-> [] +1 |> [decl c0 `x` (uvar frozen--985 [])] |- frozen--985 [] : +sort (typ «elpi.tests.test_elaborator.40») +0 |> [] |- frozen--985 [] : sort (typ «elpi.tests.test_elaborator.39») +0 |> [] |- +unify-eq (sort (typ «elpi.tests.test_elaborator.40»)) + (sort (typ «elpi.tests.test_elaborator.39»)) + Query assignments: - DECL = parameter T X0 (sort (typ «elpi.tests.test_API_env.3»)) c0 \ - record prim_eq_class (sort (typ «elpi.tests.test_API_env.4»)) - mk_prim_eq_class - (field [canonical ff, coercion reversible] prim_eq_f - (global (indt «bool»)) c1 \ - field X1 prim_eq_proof - (app [global (indt «eq»), global (indt «bool»), c1, c1]) c2 \ - end-record) - GR = «prim_eq_class» - type_3 = «elpi.tests.test_API_env.3» - type_4 = «elpi.tests.test_API_env.4» + R = fun `x` X0 c0 \ c0 + T = prod `x` X0 c0 \ X0 + _uvk_87_ = X1 +Syntactic constraints: + {c0} : decl c0 `x` X0 + ?- evar X2 (sort (typ «elpi.tests.test_elaborator.40»)) X0 /* suspended on X2, X0 */ Universe constraints: UNIVERSES: - + {elpi.tests.test_elaborator.42 elpi.tests.test_elaborator.41 + elpi.tests.test_elaborator.40 elpi.tests.test_elaborator.39} |= + elpi.tests.test_elaborator.39 <= elpi.tests.test_elaborator.41 + elpi.tests.test_elaborator.40 <= elpi.tests.test_elaborator.39 + elpi.tests.test_elaborator.40 <= elpi.tests.test_elaborator.41 + elpi.tests.test_elaborator.41 <= elpi.tests.test_elaborator.42 ALGEBRAIC UNIVERSES: - {prim_eq_class.u1 prim_eq_class.u0} + {} UNDEFINED UNIVERSES: - elpi.tests.test_API_env.4 - elpi.tests.test_API_env.3 + WEAK CONSTRAINTS: -fun r : prim_eq_class nat => -eq_refl : r = {| prim_eq_f := r; prim_eq_proof := prim_eq_proof _ r |} - : forall r : prim_eq_class nat, - r = {| prim_eq_f := r; prim_eq_proof := prim_eq_proof _ r |} -(* {} |= prim_eq_class.u1 <= eq.u0 *) -app - [global (indc «S»), - app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] -File "./tests/test_vernacular2.v", line 9, characters 2-17: -Warning: This command does not support this attribute: fwd_compat_attr. -[unsupported-attributes,parsing] -File "./tests/test_vernacular2.v", line 10, characters 2-17: -Warning: This command does not support this attribute: fwd_compat_attr. -[unsupported-attributes,parsing] +Query assignments: + GR = const «myc» +eq_op myc t t + : bool global (indt «nat») Query assignments: T = global (indt «nat») @@ -3234,22 +2683,144 @@ WEAK CONSTRAINTS: -COQC examples/readme.v -COQC tests/test_projK.v -Debug: Cannot enforce elpi.tests.test_elaborator.52 < -elpi.tests.test_elaborator.52 because elpi.tests.test_elaborator.52 -= elpi.tests.test_elaborator.52 +parameter T X0 (sort (typ X1)) c0 \ + record eq_class (sort (typ X2)) mk_eq_class + (field [canonical ff, coercion regular] eq_f (global (indt «bool»)) c1 \ + field X3 eq_proof + (app [global (indt «eq»), global (indt «bool»), c1, c1]) c2 \ + end-record) Query assignments: - X = sort (typ X0) - type_5 = X0 + DECL = parameter T X0 (sort (typ «elpi.tests.test_API_env.1»)) c0 \ + record eq_class (sort (typ «elpi.tests.test_API_env.2»)) mk_eq_class + (field [canonical ff, coercion regular] eq_f (global (indt «bool»)) c1 \ + field X3 eq_proof + (app [global (indt «eq»), global (indt «bool»), c1, c1]) c2 \ + end-record) + GR = «eq_class» + type_1 = «elpi.tests.test_API_env.1» + type_2 = «elpi.tests.test_API_env.2» +Universe constraints: +UNIVERSES: + +ALGEBRAIC UNIVERSES: + {eq_class.u1 eq_class.u0} +UNDEFINED UNIVERSES: + elpi.tests.test_API_env.2 + elpi.tests.test_API_env.1 +WEAK CONSTRAINTS: + + +Record eq_class (T : Type@{eq_class.u0}) : Type@{eq_class.u1} := mk_eq_class + { eq_f : bool; eq_proof : eq_f = eq_f }. + +Arguments eq_class T%type_scope +Arguments mk_eq_class T%type_scope eq_f%bool_scope eq_proof +fun x : eq_class nat => x : bool + : eq_class nat -> bool +p <- eq_proof ( xxx ) Query assignments: - GR = const «myc1» -eq_op myc1 t1 t1 - : bool -[attribute elpi.loc - (leaf-loc - File "./tests/test_vernacular2.v", line 11, column 24, character 361:), - attribute fwd_compat_attr (leaf-str )] + 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 `u` (X7 c0 c1 c2) c3 \ + match c3 (fun `u0` (X8 c1 c2 c3) c4 \ app [c1, c4]) + [fun `x` (X9 c1 c2 c3) c4 \ + fun `Px` (X10 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 «elpi.tests.test_quotation.22»)) 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 `u0` (app [global (indt «ord»), c0]) c3 \ + match c3 + (fun `u1` (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]]] + _uvk_35_ = X0 + _uvk_36_ = X1 + _uvk_37_ = X2 + _uvk_38_ = X3 + _uvk_39_ = X4 + _uvk_40_ = X5 + _uvk_41_ = X6 + _uvk_42_ = X7 + _uvk_43_ = X8 + _uvk_44_ = X9 + _uvk_45_ = X10 + _uvk_46_ = global (indt «nat») + _uvk_47_ = c0 \ +global (indt «nat») + _uvk_48_ = c0 \ +fun `x` (global (indt «nat»)) c1 \ app [global (const «leq»), c1, c0] + _uvk_49_ = c0 \ +app [global (indt «ord»), c0] + _uvk_50_ = c0 \ +app [global (const «oval»), c0] + _uvk_51_ = c0 \ +fun `K` + (prod `x` (app [global (indt «ord»), c0]) c1 \ + sort (typ «elpi.tests.test_quotation.22»)) 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 `u0` (app [global (indt «ord»), c0]) c3 \ + match c3 (fun `u1` (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.test_quotation.28 elpi.tests.test_quotation.27} |= + Set <= is_SUB.u0 + Set <= is_SUB.u1 + Set <= elpi.tests.test_quotation.27 + is_SUB.u2 <= elpi.tests.test_quotation.28 +ALGEBRAIC UNIVERSES: + {elpi.tests.test_quotation.28 elpi.tests.test_quotation.27} +UNDEFINED UNIVERSES: + elpi.tests.test_quotation.28 + elpi.tests.test_quotation.27 +WEAK CONSTRAINTS: + + +Query assignments: + MP_TA = «elpi.tests.test_API_module.TA» +Module Type TB = Funsig (A:TA) Sig End +COQC tests/test_ctx_cache.v +«elpi.tests.test_API_elaborate.52» «elpi.tests.test_API_elaborate.52» +COQC tests/test_libobject_A.v «elpi.tests.test_API_typecheck.10» Query assignments: U = «elpi.tests.test_API_typecheck.10» @@ -3264,21 +2835,6 @@ WEAK CONSTRAINTS: -[attribute elpi.loc - (leaf-loc - File "./tests/test_vernacular2.v", line 12, column 0, character 366:), - attribute fwd_compat_attr (leaf-str )] -Query assignments: - GR = «Nat.add» - MP = «Coq.Init.Datatypes» -[(c4 \ app [c1, c2]), (c4 \ app [c0, c2]), (c4 \ c4), (c4 \ - prod `x0` (app [c0, c2]) c5 \ - prod `x1` (global (indt «nat»)) c6 \ - sort (typ «elpi.tests.test_tactic.16»))] -[app - [global (indt «eq»), global (indt «nat»), c2, - app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]], - sort prop] Query assignments: X = c0 \ c1 \ c2 \ X0 c0 c1 c2 @@ -3306,8 +2862,80 @@ WEAK CONSTRAINTS: -fun `r` (app [global (indt «prim_eq_class»), global (indt «nat»)]) c0 \ - app [primitive (proj elpi.tests.test_API_env.prim_eq_f 1), c0] +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»)]]))] +Query assignments: + D = 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»)]]))] + 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] pred_R = fun (n n0 : nat) (n1 : nat_R n n0) => match @@ -3329,18 +2957,26 @@ Arguments pred_R (n n)%nat_scope n pred_R : nat2nat_R Nat.pred Nat.pred : nat2nat_R Nat.pred Nat.pred +foo : nat + : nat +bar : bool -> nat + : bool -> nat Query assignments: - X = sort (typ «elpi.tests.test_elaborator.53») - Y = sort (typ «elpi.tests.test_elaborator.54») + R = fun `x` (global (indt «nat»)) c0 \ + app [global (const «Nat.add»), c0, global (indc «O»)] + T = prod `x` (global (indt «nat»)) c0 \ global (indt «nat») + _uvk_109_ = X0 Universe constraints: UNIVERSES: - {elpi.tests.test_elaborator.54 elpi.tests.test_elaborator.53} |= - elpi.tests.test_elaborator.53 < elpi.tests.test_elaborator.54 + {elpi.tests.test_elaborator.46 elpi.tests.test_elaborator.45 + elpi.tests.test_elaborator.44 elpi.tests.test_elaborator.43} |= + elpi.tests.test_elaborator.43 <= elpi.tests.test_elaborator.45 + elpi.tests.test_elaborator.44 <= elpi.tests.test_elaborator.45 + elpi.tests.test_elaborator.45 <= elpi.tests.test_elaborator.46 ALGEBRAIC UNIVERSES: - {elpi.tests.test_elaborator.54 elpi.tests.test_elaborator.53} + {} UNDEFINED UNIVERSES: - elpi.tests.test_elaborator.54 - elpi.tests.test_elaborator.53 + WEAK CONSTRAINTS: @@ -3348,229 +2984,198 @@ : nat2nat_R predn predn add_R : nat2nat2nat_R Nat.add Nat.add : nat2nat2nat_R Nat.add Nat.add +COQC tests/test_vernacular2.v +COQC tests/test_invert.v +Query assignments: + L = [cs-instance (const «carrier») (cs-gref (const «W»)) (const «myc»), + cs-instance (const «eq_op») (cs-gref (const «Z»)) (const «myc»)] +COQC tests/test_idx2inv.v +Query assignments: + DECL = parameter T X0 (sort (typ «elpi.tests.test_API_env.3»)) c0 \ + record prim_eq_class (sort (typ «elpi.tests.test_API_env.4»)) + mk_prim_eq_class + (field [canonical ff, coercion reversible] prim_eq_f + (global (indt «bool»)) c1 \ + field X1 prim_eq_proof + (app [global (indt «eq»), global (indt «bool»), c1, c1]) c2 \ + end-record) + GR = «prim_eq_class» + type_3 = «elpi.tests.test_API_env.3» + type_4 = «elpi.tests.test_API_env.4» +Universe constraints: +UNIVERSES: + +ALGEBRAIC UNIVERSES: + {prim_eq_class.u1 prim_eq_class.u0} +UNDEFINED UNIVERSES: + elpi.tests.test_API_env.4 + elpi.tests.test_API_env.3 +WEAK CONSTRAINTS: + + +fun r : prim_eq_class nat => +eq_refl : r = {| prim_eq_f := r; prim_eq_proof := prim_eq_proof _ r |} + : forall r : prim_eq_class nat, + r = {| prim_eq_f := r; prim_eq_proof := prim_eq_proof _ r |} +(* {} |= prim_eq_class.u1 <= eq.u0 *) File "./tests/test_param2.v", line 85, characters 0-30: Warning: Not a truly recursive fixpoint. [non-recursive,fixpoints] -1356 - : nat -this 3 app [c4, X0 c0 c1 c2 c3 c4] -app [c3, app [c1, c2], global (const «a»)] foo.bar -COQC tests/test_derive.v +COQC tests/test_lens.v Query assignments: - A = «elpi.tests.test_API.succ» - GR = «Nat.add» - MP = «Coq.Init.Datatypes» - X1 = [loc-gref (const «Nat.add»)] - X2 = [loc-gref (const «Nat.add»)] - X3 = [loc-abbreviation «elpi.tests.test_API.succ»] - X4 = [loc-modpath «Coq.Init.Datatypes»] + GR = «nat» +COQC tests/test_libobject_B.v +test1 +str hello +str x +test1 +too many arguments +File "./tests/test_vernacular2.v", line 6, characters 2-17: +Warning: This command does not support this attribute: fwd_compat_attr. +[unsupported-attributes,parsing] +File "./tests/test_vernacular2.v", line 7, characters 2-17: +Warning: This command does not support this attribute: fwd_compat_attr. +[unsupported-attributes,parsing] +File "./tests/test_vernacular2.v", line 8, characters 2-17: +Warning: This command does not support this attribute: fwd_compat_attr. +[unsupported-attributes,parsing] +test_inv : Type -> bool -> Type + : Type -> bool -> Type +K1_inv : forall (A : Type) (b : bool), b = true -> test_inv A b + : forall (A : Type) (b : bool), b = true -> test_inv A b +K2_inv +: +forall (A : Type) (b x : bool), +A -> test_inv A (negb x) -> b = negb (negb x) -> test_inv A b + : forall (A : Type) (b x : bool), + A -> test_inv A (negb x) -> b = negb (negb x) -> test_inv A b 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). -COQC tests/test_eq.v -Query assignments: - P = const «eq_op» +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 _ _ +COQC tests/test_tag.v +COQC tests/test_eqType_ast.v +sort (typ X0) Query assignments: - D = X0 - R = app - [global (indc «ex_intro»), X0, - fun `hd_beta_auto` X0 c0 \ - app - [global (indt «eq»), global (indt «nat»), global (indc «O»), - global (indc «O»)], X1, global (const «p»)] - TY = app - [global (indt «ex»), X0, - fun `hd_beta_auto` X0 c0 \ - app - [global (indt «eq»), global (indt «nat»), global (indc «O»), - global (indc «O»)]] - _uvk_129_ = X2 - _uvk_130_ = X3 - _uvk_131_ = X4 -Syntactic constraints: - evar (X2) (sort (typ «Coq.Init.Logic.5»)) X0 /* suspended on X2, X0 */ - evar (X4) X0 (X1) /* suspended on X4, X1 */ - evar (X1) X0 X5 /* suspended on X1, X5 */ -_f1 : Lens fo_record fo_record peano peano - : Lens fo_record fo_record peano peano -_f2 : Lens fo_record fo_record unit unit - : Lens fo_record fo_record unit unit -@_f3 : forall A : Type, Lens (pa_record A) (pa_record A) peano peano - : forall A : Type, Lens (pa_record A) (pa_record A) peano peano -@_f4 : forall A : Type, Lens (pa_record A) (pa_record A) A A - : forall A : Type, Lens (pa_record A) (pa_record A) A A -@_pf3 : forall A : Type, Lens (pr_record A) (pr_record A) peano peano - : forall A : Type, Lens (pr_record A) (pr_record A) peano peano -@_pf4 : forall A : Type, Lens (pr_record A) (pr_record A) A A - : forall A : Type, Lens (pr_record A) (pr_record A) A A -ok -COQC tests/test_isK.v -Finished transaction in 2.521 secs (2.298u,0.001s) (successful) + type_1 = X0 Query assignments: - C = «pc» -Universe constraints: -empty_tag : tag empty - : tag empty -unit_tag : tag unit - : tag unit -peano_tag : tag peano - : tag peano -option_tag : forall A : Type, tag (option A) - : forall A : Type, tag (option A) -pair_tag : forall A B : Type, tag (pair A B) - : forall A B : Type, tag (pair A B) -seq_tag : forall A : Type, tag (seq A) - : forall A : Type, tag (seq A) -rose_tag : forall A : Type, tag (rose A) - : forall A : Type, tag (rose A) -nest_tag : forall A : Type, tag (nest A) - : forall A : Type, tag (nest A) -w_tag : forall A : Type, tag (w A) - : forall A : Type, tag (w A) -vect_tag : forall (A : Type) (i : peano), tag (vect A i) - : forall (A : Type) (i : peano), tag (vect A i) -dyn_tag : tag dyn - : tag dyn -beta_tag : forall A : Type, tag (beta A) - : forall A : Type, tag (beta A) -iota_tag : tag iota - : tag iota -large_tag : tag large - : tag large -prim_int_tag : tag prim_int - : tag prim_int -prim_float_tag : tag prim_float - : tag prim_float -pa_record_tag : forall A : Type, tag (pa_record A) - : forall A : Type, tag (pa_record A) -pr_record_tag : forall A : Type, tag (pr_record A) - : forall A : Type, tag (pr_record A) -ord_tag : forall p : peano, tag (ord p) - : forall p : peano, tag (ord p) -ord2_tag : forall p : peano, tag (ord2 p) - : forall p : peano, tag (ord2 p) -val_tag : tag val - : tag val -[trm c0, trm (app [global (const «Nat.add»), c0, c1])] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -[trm c0, trm (app [global (const «Nat.add»), X0 c0 c1, c1])] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X1 c0 c1) (global (indt «nat»)) (X0 c0 c1) /* suspended on X1, X0 */ - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X2 c0 c1) (global (indt «True»)) (X3 c0 c1) /* suspended on X2, X3 */ -[trm c0, trm (app [global (const «Nat.add»), X0 c0 c1, c1])] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X1 c0 c1) (global (indt «True»)) (X2 c0 c1) /* suspended on X1, X2 */ -[trm c0, trm c1] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -COQC tests/test_param1.v -[trm (app [global (const «Nat.add»), c0, c1])] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ + I = «inductive_nup.r» + R = parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.31»)) c0 \ + parameter a explicit c0 c1 \ + record r (sort (typ «elpi.tests.test_arg_HOAS.31»)) 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 +raw: inductive X1 tt (arity (sort prop)) c0 \ [] +typed: inductive X1 tt (arity (sort prop)) c0 \ [] +X1 : Prop + +X1 is not universe polymorphic +Expands to: Inductive elpi.tests.test_arg_HOAS.X1 Query assignments: -[trm (app [global (const «Nat.add»), X0 c0 c1, c1])] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X1 c0 c1) (global (indt «nat»)) (X0 c0 c1) /* suspended on X1, X0 */ - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X2 c0 c1) (global (indt «True»)) (X3 c0 c1) /* suspended on X2, X3 */ - R = app - [global (indc «ex_intro»), global (indt «nat»), - fun `hd_beta_auto` (global (indt «nat»)) c0 \ - app [global (indt «eq»), global (indt «nat»), c0, c0], - global (indc «O»), global (const «p»)] - TY = app - [global (indt «ex»), global (indt «nat»), - fun `hd_beta_auto` (global (indt «nat»)) c0 \ - app [global (indt «eq»), global (indt «nat»), c0, c0]] - _uvk_158_ = X0 - _uvk_159_ = X1 -[trm (app [global (const «Nat.add»), X0 c0 c1, c1])] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X1 c0 c1) (global (indt «True»)) (X2 c0 c1) /* suspended on X1, X2 */ -[trm (app [global (indc «O»), global (indc «O»)])] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -[trm c0] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -[int 1] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -[int -1] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -[str a] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -[str a] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -[str x] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -[trm (app [global (const «Nat.add»), c0, c1])] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -[trm (app [global (const «Nat.add»), X0 c0 c1, c1])] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X1 c0 c1) (global (indt «True»)) (X2 c0 c1) /* suspended on X1, X2 */ -[trm (app [global (const «Nat.add»), X0 c0 c1, c1])] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X1 c0 c1) (global (indt «True»)) (X2 c0 c1) /* suspended on X1, X2 */ -[trm c0] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -COQC tests/test_map.v -Notation peano := peano.peano -Inductive peano : Set := Zero : peano | Succ : peano -> peano. - = false - : bool -peano.eqb_OK : forall x1 x2 : peano, reflect (x1 = x2) (peano.eqb x1 x2) + Spilled_1 = «elpi.tests.test_API_module.A» +Module IA := Struct Definition z : nat. Definition i : Type. End -peano.eqb_OK is not universe polymorphic -Arguments peano.eqb_OK x1 x2 -peano.eqb_OK is opaque -Expands to: Constant elpi.apps.derive.examples.readme.peano.eqb_OK +is_list_to_is_list_inv +: +forall (A : Type) (PA : A -> Type) (l : list A), +is_list A PA l -> is_list_inv A PA l + : forall (A : Type) (PA : A -> Type) (l : list A), + is_list A PA l -> is_list_inv A PA l +fun `r` (app [global (indt «prim_eq_class»), global (indt «nat»)]) c0 \ + app [primitive (proj elpi.tests.test_API_env.prim_eq_f 1), c0] +COQC examples/usage.v Query assignments: - W = const «W» + I = «eq» + P1 = «carrier» + P2 = «eq_op» + evar (X0) (global (indt «nat»)) X1 /* suspended on X0, X1 */ +X0 global (indt «nat») + evar (X2) (global (indt «nat»)) X3 /* suspended on X2, X3 */ +hello +eq_refl : one = 1 + : one = 1 +File "./tests/test_vernacular2.v", line 9, characters 2-17: +Warning: This command does not support this attribute: fwd_compat_attr. +[unsupported-attributes,parsing] +File "./tests/test_vernacular2.v", line 10, characters 2-17: +Warning: This command does not support this attribute: fwd_compat_attr. +[unsupported-attributes,parsing] +raw: +inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.127»))) c0 \ [] +upoly-decl [«elpi.tests.test_arg_HOAS.127»] tt [] tt +Universe constraints: UNIVERSES: + {u1} |= + ALGEBRAIC UNIVERSES: + {} + UNDEFINED UNIVERSES: + elpi.tests.test_arg_HOAS.127 + WEAK CONSTRAINTS: + + +typed: +inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.127»))) c0 \ [] +raw: +inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.135»))) c0 \ [] +upoly-decl-cumul [auto «elpi.tests.test_arg_HOAS.135»] tt [] tt +Universe constraints: UNIVERSES: + {u2} |= + ALGEBRAIC UNIVERSES: + {} + UNDEFINED UNIVERSES: + elpi.tests.test_arg_HOAS.135 + WEAK CONSTRAINTS: + + +typed: +inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.135»))) c0 \ [] +X3@{u1} : Type@{u1} +(* u1 |= *) + +X3 is universe polymorphic +Expands to: Inductive elpi.tests.test_arg_HOAS.X3 +X4@{u2} : Type@{u2} +(* *u2 |= *) + +X4 is universe polymorphic +Expands to: Inductive elpi.tests.test_arg_HOAS.X4 Query assignments: - X = «elpi.tests.test_API.1» + S = sort (typ «elpi.tests.test_elaborator.48») + T = sort (typ «elpi.tests.test_elaborator.47») + type_2 = «elpi.tests.test_elaborator.47» Universe constraints: UNIVERSES: - {elpi.tests.test_API.1} |= + {elpi.tests.test_elaborator.48 elpi.tests.test_elaborator.47} |= + elpi.tests.test_elaborator.47 < elpi.tests.test_elaborator.48 ALGEBRAIC UNIVERSES: - {} + {elpi.tests.test_elaborator.47} UNDEFINED UNIVERSES: - + elpi.tests.test_elaborator.47 WEAK CONSTRAINTS: -Derivation param1 on const «Nat.add» -Derivation param1 on const «Nat.add» took 0.024057 -Derivation param2 on const «Nat.add» +Query assignments: + Spilled_1 = «elpi.tests.test_API_module.IA» +i + : Type +COQC tests/test_libobject_C.v ---------------------------------- {c0 c1} : decl c1 `a` (global (indt «bool»)) ?- evar X0 (sort (typ «elpi.tests.test_HOAS.10»)) X1 /* suspended on X0, X1 */ @@ -3612,46 +3217,110 @@ WEAK CONSTRAINTS: -Derivation param2 on const «Nat.add» took 0.026877 -Derivation eqb-alias on const «Nat.add» -Derivation eqb-alias on const «Nat.add» failed, continuing -Derivation eqbcorrect-alias on const «Nat.add» -Derivation eqbcorrect-alias on const «Nat.add» failed, continuing -Derivation eqbOK-alias on const «Nat.add» -Derivation eqbOK-alias on const «Nat.add» failed, continuing -is_add - : forall n : nat, is_nat n -> forall m : nat, is_nat m -> is_nat (n + m) -COQC tests/test_lens_laws.v Query assignments: - R = app - [global (indc «ex_intro»), global (indt «nat»), - fun `hd_beta_auto` (global (indt «nat»)) c0 \ - app [global (indt «eq»), global (indt «nat»), c0, global (indc «O»)], - global (indc «O»), global (const «p»)] - TY = app - [global (indt «ex»), global (indt «nat»), - fun `n` (global (indt «nat»)) c0 \ - app [global (indt «eq»), global (indt «nat»), c0, global (indc «O»)]] - _uvk_168_ = X0 - _uvk_169_ = c0 \ -X1 c0 - _uvk_170_ = X2 - _uvk_171_ = X3 + GR = const «myc1» +eq_op myc1 t1 t1 + : bool +Query assignments: + C = «pc» +[(c4 \ app [c1, c2]), (c4 \ app [c0, c2]), (c4 \ c4), (c4 \ + prod `x0` (app [c0, c2]) c5 \ + prod `x1` (global (indt «nat»)) c6 \ + sort (typ «elpi.tests.test_tactic.16»))] +[app + [global (indt «eq»), global (indt «nat»), c2, + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]], + sort prop] +_f1 : Lens fo_record fo_record peano peano + : Lens fo_record fo_record peano peano +_f2 : Lens fo_record fo_record unit unit + : Lens fo_record fo_record unit unit +[attribute elpi.loc + (leaf-loc + File "./tests/test_vernacular2.v", line 11, column 24, character 361:), + attribute fwd_compat_attr (leaf-str )] +@_f3 : forall A : Type, Lens (pa_record A) (pa_record A) peano peano + : forall A : Type, Lens (pa_record A) (pa_record A) peano peano +Query assignments: + GR = «Nat.add» + MP = «Coq.Init.Datatypes» +@_f4 : forall A : Type, Lens (pa_record A) (pa_record A) A A + : forall A : Type, Lens (pa_record A) (pa_record A) A A +@_pf3 : forall A : Type, Lens (pr_record A) (pr_record A) peano peano + : forall A : Type, Lens (pr_record A) (pr_record A) peano peano +[attribute elpi.loc + (leaf-loc + File "./tests/test_vernacular2.v", line 12, column 0, character 366:), + attribute fwd_compat_attr (leaf-str )] +@_pf4 : forall A : Type, Lens (pr_record A) (pr_record A) A A + : forall A : Type, Lens (pr_record A) (pr_record A) A A +ok +COQC examples/readme.v +global (indc «O») +Query assignments: + S = sort (typ «elpi.tests.test_elaborator.50») + T = sort (typ «elpi.tests.test_elaborator.49») + TW = sort (typ «elpi.tests.test_elaborator.49») + W = sort (typ «elpi.tests.test_elaborator.51») + type_3 = «elpi.tests.test_elaborator.49» + type_4 = «elpi.tests.test_elaborator.51» Universe constraints: UNIVERSES: - {elpi.tests.test_elaborator.58 elpi.tests.test_elaborator.57 - elpi.tests.test_elaborator.56 elpi.tests.test_elaborator.55} |= - Set <= elpi.tests.test_elaborator.55 - elpi.tests.test_elaborator.55 <= elpi.tests.test_elaborator.57 - elpi.tests.test_elaborator.56 <= elpi.tests.test_elaborator.57 - elpi.tests.test_elaborator.57 <= elpi.tests.test_elaborator.58 + {elpi.tests.test_elaborator.51 elpi.tests.test_elaborator.50 + elpi.tests.test_elaborator.49} |= + elpi.tests.test_elaborator.49 < elpi.tests.test_elaborator.50 + elpi.tests.test_elaborator.51 < elpi.tests.test_elaborator.49 ALGEBRAIC UNIVERSES: - {} + {elpi.tests.test_elaborator.51 elpi.tests.test_elaborator.49} UNDEFINED UNIVERSES: + elpi.tests.test_elaborator.51 + elpi.tests.test_elaborator.49 +WEAK CONSTRAINTS: + +app + [global (indc «S»), + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] +Query assignments: + GR = indt «X3» +Universe constraints: +UNIVERSES: + {elpi.tests.test_arg_HOAS.143} |= +ALGEBRAIC UNIVERSES: + {} +UNDEFINED UNIVERSES: + elpi.tests.test_arg_HOAS.143 WEAK CONSTRAINTS: +Query assignments: + Spilled_1 = «elpi.tests.test_API_module.TA» +Module Type ITA = Sig Parameter z : nat. Parameter i : Type. End +File "./tests/test_HOAS.v", line 123, characters 0-34: +Warning: Use of “Require” inside a module is fragile. It is not recommended +to use this functionality in finished proof scripts. +[require-in-module,fragile] +Query assignments: + P = const «eq_op» +Raw term: +app + [global (const «add»), primitive (uint63 2000000003333002), + primitive (uint63 1)] +Nice term: add 2000000003333002 1 +Red: +2000000003333003 +File "./tests/test_HOAS.v", line 127, characters 0-34: +Warning: Use of “Require” inside a module is fragile. It is not recommended +to use this functionality in finished proof scripts. +[require-in-module,fragile] +Query assignments: + A = «elpi.tests.test_API.succ» + GR = «Nat.add» + MP = «Coq.Init.Datatypes» + X1 = [loc-gref (const «Nat.add»)] + X2 = [loc-gref (const «Nat.add»)] + X3 = [loc-abbreviation «elpi.tests.test_API.succ»] + X4 = [loc-modpath «Coq.Init.Datatypes»] Universe constraints: UNIVERSES: @@ -3670,8 +3339,36 @@ : Prop K21 true : myind1 true true : myind1 true true +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» +Raw term: +app + [global (const «add»), primitive (float64 24000000000000), + primitive (float64 1)] +Nice term: 24000000000000 + 1 +Red: 24000000000001 +1356 + : nat +this 3 app [c4, X0 c0 c1 c2 c3 c4] +app [c3, app [c1, c2], global (const «a»)] foo.bar +COQC tests/test_projK.v +COQC tests/test_derive.v more : (forall A : Type, A -> tickle A -> tickle A) : forall A : Type, A -> tickle A -> tickle A +COQC tests/test_eq.v tickle.eqb : (forall A : Type, (A -> A -> bool) -> tickle A -> tickle A -> bool) : forall A : Type, (A -> A -> bool) -> tickle A -> tickle A -> bool @@ -3687,7 +3384,12 @@ tickle.tickle_R : (forall A B : Type, (A -> B -> Type) -> tickle A -> tickle B -> Type) : forall A B : Type, (A -> B -> Type) -> tickle A -> tickle B -> Type -COQC tests/test_fields.v +Debug: Cannot enforce elpi.tests.test_elaborator.52 < +elpi.tests.test_elaborator.52 because elpi.tests.test_elaborator.52 += elpi.tests.test_elaborator.52 +Query assignments: + X = sort (typ X0) + type_5 = X0 Starting module rtree Declaring inductive parameter A explicit (sort (typ «elpi.apps.derive.examples.usage.190»)) @@ -3699,56 +3401,184 @@ (arity (prod `_` (app [global (indt «tickle.tickle»), c1]) c2 \ c1))] Deriving Derivation map on indt «rtree» -Derivation map on indt «rtree» took 0.008766 +Derivation map on indt «rtree» took 0.015616 Derivation lens on indt «rtree» Derivation lens on indt «rtree» failed, continuing Derivation param1 on indt «rtree» -Derivation param1 on indt «rtree» took 0.018042 +Derivation param1 on indt «rtree» took 0.044261 Derivation param2 on indt «rtree» -[cs-instance (const «eq_op») (cs-gref (const «Z1»)) (const «myc1»)] -Query assignments: - L = [cs-instance (const «eq_op») (cs-gref (const «Z1»)) (const «myc1»)] - P = const «eq_op» - W = const «Z1» -Derivation param2 on indt «rtree» took 0.017889 +Derivation param2 on indt «rtree» took 0.049496 Derivation tag on indt «rtree» -Derivation tag on indt «rtree» took 0.003811 +Derivation tag on indt «rtree» took 0.009219 Derivation eqType_ast on indt «rtree» -Derivation eqType_ast on indt «rtree» took 0.001760 +Derivation eqType_ast on indt «rtree» took 0.002458 Derivation lens_laws on indt «rtree» -Derivation lens_laws on indt «rtree» took 0.001255 +Derivation lens_laws on indt «rtree» took 0.009980 Derivation param1_congr on indt «rtree» -Derivation param1_congr on indt «rtree» took 0.006325 +Derivation param1_congr on indt «rtree» took 0.016575 Derivation param1_inhab on indt «rtree» +Derivation param1_inhab on indt «rtree» took 0.012549 +Derivation param1_functor on indt «rtree» +Derivation param1_functor on indt «rtree» took 0.016070 +Derivation fields on indt «rtree» Query assignments: - X = typ «elpi.tests.test_API.2» - Y = typ «elpi.tests.test_API.3» + GR = indt «X4» Universe constraints: UNIVERSES: - {elpi.tests.test_API.3 elpi.tests.test_API.2} |= - elpi.tests.test_API.2 <= elpi.tests.test_API.3 + {elpi.tests.test_arg_HOAS.144} |= ALGEBRAIC UNIVERSES: {} UNDEFINED UNIVERSES: - + elpi.tests.test_arg_HOAS.144 WEAK CONSTRAINTS: -Derivation param1_inhab on indt «rtree» took 0.005813 -Derivation param1_functor on indt «rtree» -Derivation param1_functor on indt «rtree» took 0.005915 -Derivation fields on indt «rtree» -Derivation fields on indt «rtree» took 0.079683 +empty_tag : tag empty + : tag empty +unit_tag : tag unit + : tag unit +peano_tag : tag peano + : tag peano +raw: +inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.145»))) c0 \ [] +upoly-decl [«elpi.tests.test_arg_HOAS.145»] ff [] ff +Universe constraints: UNIVERSES: + {u3} |= + ALGEBRAIC UNIVERSES: + {} + UNDEFINED UNIVERSES: + elpi.tests.test_arg_HOAS.145 + WEAK CONSTRAINTS: + + +typed: +inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.145»))) c0 \ [] +option_tag : forall A : Type, tag (option A) + : forall A : Type, tag (option A) +pair_tag : forall A B : Type, tag (pair A B) + : forall A B : Type, tag (pair A B) +seq_tag : forall A : Type, tag (seq A) + : forall A : Type, tag (seq A) +rose_tag : forall A : Type, tag (rose A) + : forall A : Type, tag (rose A) +nest_tag : forall A : Type, tag (nest A) + : forall A : Type, tag (nest A) +w_tag : forall A : Type, tag (w A) + : forall A : Type, tag (w A) +vect_tag : forall (A : Type) (i : peano), tag (vect A i) + : forall (A : Type) (i : peano), tag (vect A i) +dyn_tag : tag dyn + : tag dyn +beta_tag : forall A : Type, tag (beta A) + : forall A : Type, tag (beta A) +iota_tag : tag iota + : tag iota +large_tag : tag large + : tag large +prim_int_tag : tag prim_int + : tag prim_int +prim_float_tag : tag prim_float + : tag prim_float +pa_record_tag : forall A : Type, tag (pa_record A) + : forall A : Type, tag (pa_record A) +pr_record_tag : forall A : Type, tag (pr_record A) + : forall A : Type, tag (pr_record A) +X5@{u3} : Type@{u3} +(* u3 |= *) + +X5 is universe polymorphic +Expands to: Inductive elpi.tests.test_arg_HOAS.X5 +ord_tag : forall p : peano, tag (ord p) + : forall p : peano, tag (ord p) +ord2_tag : forall p : peano, tag (ord2 p) + : forall p : peano, tag (ord2 p) +val_tag : tag val + : tag val +raw: +inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.154»))) c0 \ + [constructor K + (arity (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.153»)) c1 \ c0))] +upoly-decl + [«elpi.tests.test_arg_HOAS.153», «elpi.tests.test_arg_HOAS.154»] ff + [lt «elpi.tests.test_arg_HOAS.153» «elpi.tests.test_arg_HOAS.154»] ff +Universe constraints: UNIVERSES: + {u5 u4} |= u4 < u5 + ALGEBRAIC UNIVERSES: + {} + UNDEFINED UNIVERSES: + elpi.tests.test_arg_HOAS.154 + elpi.tests.test_arg_HOAS.153 + WEAK CONSTRAINTS: + + +typed: +inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.154»))) c0 \ + [constructor K + (arity (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.153»)) c1 \ c0))] +X6@{u4 u5} : Type@{u5} +(* u4 u5 |= u4 < u5 *) + +X6 is universe polymorphic +Expands to: Inductive elpi.tests.test_arg_HOAS.X6 +raw: inductive X8 tt (arity (sort (typ X0))) c0 \ [] upoly-decl [] tt [] tt +Universe constraints: +typed: +inductive X8 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.169»))) c0 \ [] +Derivation fields on indt «rtree» took 0.206455 Derivation param1_trivial on indt «rtree» -Derivation param1_trivial on indt «rtree» took 0.123697 +X8@{u} : Type@{u} +(* u |= *) + +X8 is universe polymorphic +Expands to: Inductive elpi.tests.test_arg_HOAS.X8 +COQC tests/test_isK.v +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 +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 +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 +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 +Universe constraints: +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 +COQC tests/test_param1.v +Finished transaction in 5.554 secs (2.426u,0.003s) (successful) +Derivation param1_trivial on indt «rtree» took 0.346009 Derivation induction on indt «rtree» -Derivation induction on indt «rtree» took 0.005520 +Derivation induction on indt «rtree» took 0.010009 Derivation eqb on indt «rtree» -Derivation eqb on indt «rtree» took 0.033884 +Derivation eqb on indt «rtree» took 0.046548 Derivation eqbcorrect on indt «rtree» -Derivation eqbcorrect on indt «rtree» took 0.051203 +Derivation eqbcorrect on indt «rtree» took 0.075496 Derivation eqbOK on indt «rtree» -Derivation eqbOK on indt «rtree» took 0.003976 +Derivation eqbOK on indt «rtree» took 0.004312 Done rtree.induction : (forall (A : Type) (PA : A -> Type) (P : rtree A -> Type), @@ -3761,6 +3591,8 @@ (forall l : tickle (rtree A), tickle.is_tickle (rtree A) P l -> P (Node A l)) -> forall x : rtree A, rtree.is_rtree A PA x -> P x +Query assignments: + W = const «W» Starting module Box Declaring inductive parameter A explicit (sort (typ «elpi.apps.derive.examples.usage.379»)) @@ -3772,17 +3604,17 @@ 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.008418 +Derivation lens on indt «Box» took 0.016359 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» File "./examples/usage.v", line 53, characters 0-84: Warning: Global name tag is taken, using tag1 instead [elpi.renamed,elpi] -Derivation tag on indt «Box» took 0.004204 +Derivation tag on indt «Box» took 0.004694 Derivation eqType_ast on indt «Box» -Derivation eqType_ast on indt «Box» took 0.001850 +Derivation eqType_ast on indt «Box» took 0.002781 Derivation lens_laws on indt «Box» -Derivation lens_laws on indt «Box» took 0.021657 +Derivation lens_laws on indt «Box» took 0.031145 Skipping derivation param1_congr on indt «Box» since the user did not select it Skipping derivation param1_inhab on indt «Box» @@ -3790,13 +3622,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.010549 +Derivation fields on indt «Box» took 0.013824 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.010492 +Derivation eqb on indt «Box» took 0.014811 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 @@ -3817,163 +3649,460 @@ : forall (A : Type) (r : Box A) (x : nat) (y : A), set Box._tag x (set Box._contents y r) = set Box._contents y (set Box._tag x r) -File "./tests/test_HOAS.v", line 123, characters 0-34: -Warning: Use of “Require” inside a module is fragile. It is not recommended -to use this functionality in finished proof scripts. -[require-in-module,fragile] Query assignments: - type_6 = «elpi.tests.test_API_env.6» - type_7 = «elpi.tests.test_API_env.7» -Universe constraints: -UNIVERSES: - -ALGEBRAIC UNIVERSES: - {nuind.u1 nuind.u0} -UNDEFINED UNIVERSES: - elpi.tests.test_API_env.7 - elpi.tests.test_API_env.6 -WEAK CONSTRAINTS: - - -fun x : nuind nat 3 false => -match x in (nuind _ _ b) return (b = b) with -| k1 _ _ => eq_refl : true = true -| k2 _ _ x0 => (fun _ : nuind nat 1 false => eq_refl : false = false) x0 -end - : nuind nat 3 false -> false = false + C = «Nat.add» + F = TODO + T = app + [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]]], + app [global (indc «S»), global (indc «O»)], + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] + T1 = app + [global (const «Nat.add»), + app [global (indc «S»), global (indc «O»)], + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] Query assignments: - R = app - [global (indc «ex_intro»), global (indt «nat»), - fun `n` (global (indt «nat»)) c0 \ - app [global (indt «eq»), global (indt «nat»), c0, global (indc «O»)], - global (indc «O»), global (const «p»)] - TY = app - [global (indt «ex»), global (indt «nat»), - fun `n` (global (indt «nat»)) c0 \ - app [global (indt «eq»), global (indt «nat»), c0, global (indc «O»)]] - _uvk_205_ = X0 - _uvk_206_ = c0 \ -X1 c0 - _uvk_207_ = X2 - _uvk_208_ = X3 + X = sort (typ «elpi.tests.test_elaborator.53») + Y = sort (typ «elpi.tests.test_elaborator.54») Universe constraints: UNIVERSES: - {elpi.tests.test_elaborator.62 elpi.tests.test_elaborator.61 - elpi.tests.test_elaborator.60 elpi.tests.test_elaborator.59} |= - Set <= elpi.tests.test_elaborator.59 - elpi.tests.test_elaborator.59 <= elpi.tests.test_elaborator.61 - elpi.tests.test_elaborator.60 <= elpi.tests.test_elaborator.61 - elpi.tests.test_elaborator.61 <= elpi.tests.test_elaborator.62 + {elpi.tests.test_elaborator.54 elpi.tests.test_elaborator.53} |= + elpi.tests.test_elaborator.53 < elpi.tests.test_elaborator.54 ALGEBRAIC UNIVERSES: - {} + {elpi.tests.test_elaborator.54 elpi.tests.test_elaborator.53} UNDEFINED UNIVERSES: - + elpi.tests.test_elaborator.54 + elpi.tests.test_elaborator.53 WEAK CONSTRAINTS: nat_eqb_OK : (forall x y : nat, reflect (x = y) (nat_eqb x y)) : forall x y : nat, reflect (x = y) (nat_eqb x y) -Query assignments: - X = typ «elpi.tests.test_API.4» - Y = typ «elpi.tests.test_API.5» -Universe constraints: -UNIVERSES: - {elpi.tests.test_API.5 elpi.tests.test_API.4} |= - elpi.tests.test_API.4 <= elpi.tests.test_API.5 -ALGEBRAIC UNIVERSES: - {} -UNDEFINED UNIVERSES: - -WEAK CONSTRAINTS: - - + T2 = app + [fix `plus` 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]]], + app [global (indc «S»), global (indc «O»)], + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] + _uvk_35_ = global (indt «nat») + _uvk_36_ = c0 \ +global (indt «nat») + _uvk_37_ = c0 \ c1 \ +global (indt «nat») + _uvk_38_ = c0 \ +global (indt «nat») + _uvk_39_ = c0 \ c1 \ +global (indt «nat») + _uvk_40_ = c0 \ c1 \ c2 \ +global (indt «nat») + _uvk_41_ = c0 \ c1 \ c2 \ +global (indt «nat») Derivation map on indt «a» -Derivation map on indt «a» took 0.004750 +Derivation map on indt «a» took 0.005737 Derivation lens on indt «a» Derivation lens on indt «a» failed, continuing Derivation param1 on indt «a» -Derivation param1 on indt «a» took 0.009928 +Derivation param1 on indt «a» took 0.011282 Derivation param2 on indt «a» -Query assignments: - P = const «eq_op» - W = indt «nat» -Derivation param2 on indt «a» took 0.009689 +Notation peano := peano.peano +Inductive peano : Set := Zero : peano | Succ : peano -> peano. + = false + : bool +peano.eqb_OK : forall x1 x2 : peano, reflect (x1 = x2) (peano.eqb x1 x2) + +peano.eqb_OK is not universe polymorphic +Arguments peano.eqb_OK x1 x2 +peano.eqb_OK is opaque +Expands to: Constant elpi.apps.derive.examples.readme.peano.eqb_OK +Derivation param2 on indt «a» took 0.013751 Derivation tag on indt «a» -Derivation tag on indt «a» took 0.002896 +Derivation tag on indt «a» took 0.004230 Derivation eqType_ast on indt «a» -Derivation eqType_ast on indt «a» took 0.001753 +Derivation eqType_ast on indt «a» took 0.002065 Derivation lens_laws on indt «a» -Derivation lens_laws on indt «a» took 0.001164 +Derivation lens_laws on indt «a» took 0.001733 Derivation param1_congr on indt «a» -Derivation param1_congr on indt «a» took 0.002157 +Derivation param1_congr on indt «a» took 0.002419 Derivation param1_inhab on indt «a» -Derivation param1_inhab on indt «a» took 0.003887 +Derivation param1_inhab on indt «a» took 0.005081 Derivation param1_functor on indt «a» -Derivation param1_functor on indt «a» took 0.003993 +Derivation param1_functor on indt «a» took 0.005401 Derivation fields on indt «a» -Derivation fields on indt «a» took 0.008398 +Derivation fields on indt «a» took 0.009312 Derivation param1_trivial on indt «a» -Derivation param1_trivial on indt «a» took 0.005505 +Derivation param1_trivial on indt «a» took 0.005439 Derivation induction on indt «a» -Derivation induction on indt «a» took 0.003668 +Derivation induction on indt «a» took 0.003740 Derivation eqb on indt «a» -Derivation eqb on indt «a» took 0.006859 +Derivation eqb on indt «a» took 0.010274 Derivation eqbcorrect on indt «a» -Derivation eqbcorrect on indt «a» took 0.009962 +Derivation eqbcorrect on indt «a» took 0.013407 Derivation eqbOK on indt «a» -Derivation eqbOK on indt «a» took 0.002072 +Derivation eqbOK on indt «a» took 0.003940 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.008811 +Derivation param1 on indt «b» took 0.012395 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.003491 +Derivation tag on indt «b» took 0.006616 Derivation eqType_ast on indt «b» -Raw term: -app - [global (const «add»), primitive (uint63 2000000003333002), - primitive (uint63 1)] -Nice term: add 2000000003333002 1 -Red: -2000000003333003 -File "./tests/test_HOAS.v", line 127, characters 0-34: -Warning: Use of “Require” inside a module is fragile. It is not recommended -to use this functionality in finished proof scripts. -[require-in-module,fragile] -Derivation eqType_ast on indt «b» took 0.001717 +Derivation eqType_ast on indt «b» took 0.002611 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.005017 +Derivation param1_inhab on indt «b» took 0.005566 Derivation param1_functor on indt «b» -Derivation param1_functor on indt «b» took 0.005348 +Derivation param1_functor on indt «b» took 0.008060 Derivation fields on indt «b» -Derivation fields on indt «b» took 0.008595 +Query assignments: + type_6 = «elpi.tests.test_API_env.6» + type_7 = «elpi.tests.test_API_env.7» +Universe constraints: +UNIVERSES: + +ALGEBRAIC UNIVERSES: + {nuind.u1 nuind.u0} +UNDEFINED UNIVERSES: + elpi.tests.test_API_env.7 + elpi.tests.test_API_env.6 +WEAK CONSTRAINTS: + + +Derivation fields on indt «b» took 0.014305 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.004021 +Derivation induction on indt «b» took 0.004764 Derivation eqb on indt «b» -Derivation eqb on indt «b» took 0.007651 +fun x : nuind nat 3 false => +match x in (nuind _ _ b) return (b = b) with +| k1 _ _ => eq_refl : true = true +| k2 _ _ x0 => (fun _ : nuind nat 1 false => eq_refl : false = false) x0 +end + : nuind nat 3 false -> false = false +Derivation eqb on indt «b» took 0.013821 Derivation eqbcorrect on indt «b» -Derivation eqbcorrect on indt «b» took 0.011057 +Derivation eqbcorrect on indt «b» took 0.015543 Derivation eqbOK on indt «b» -Derivation eqbOK on indt «b» took 0.002712 +Derivation eqbOK on indt «b» took 0.003723 a_eqb : a -> a -> bool b_eqb : b -> b -> bool -Raw term: -app - [global (const «add»), primitive (float64 24000000000000), - primitive (float64 1)] -Nice term: 24000000000000 + 1 -Red: 24000000000001 -[attribute elpi.loc - (leaf-loc - File "./tests/test_tactic.v", line 300, column 10, character 6470:)] +COQC tests/test_map.v +Derivation param1 on const «Nat.add» +Derivation param1 on const «Nat.add» took 0.036256 +Derivation param2 on const «Nat.add» +Derivation param2 on const «Nat.add» took 0.045396 +Derivation eqb-alias on const «Nat.add» +Derivation eqb-alias on const «Nat.add» failed, continuing +Derivation eqbcorrect-alias on const «Nat.add» +Derivation eqbcorrect-alias on const «Nat.add» failed, continuing +Derivation eqbOK-alias on const «Nat.add» +Derivation eqbOK-alias on const «Nat.add» failed, continuing +is_add + : forall n : nat, is_nat n -> forall m : nat, is_nat m -> is_nat (n + m) +COQC tests/test_lens_laws.v +Query assignments: + X = «elpi.tests.test_API.1» +Universe constraints: +UNIVERSES: + {elpi.tests.test_API.1} |= +ALGEBRAIC UNIVERSES: + {} +UNDEFINED UNIVERSES: + +WEAK CONSTRAINTS: + + +Query assignments: + D = X0 + R = app + [global (indc «ex_intro»), X0, + fun `hd_beta_auto` X0 c0 \ + app + [global (indt «eq»), global (indt «nat»), global (indc «O»), + global (indc «O»)], X1, global (const «p»)] + TY = app + [global (indt «ex»), X0, + fun `hd_beta_auto` X0 c0 \ + app + [global (indt «eq»), global (indt «nat»), global (indc «O»), + global (indc «O»)]] + _uvk_129_ = X2 + _uvk_130_ = X3 + _uvk_131_ = X4 +Syntactic constraints: + evar (X2) (sort (typ «Coq.Init.Logic.5»)) X0 /* suspended on X2, X0 */ + evar (X4) X0 (X1) /* suspended on X4, X1 */ + evar (X1) X0 X5 /* suspended on X1, X5 */ +[cs-instance (const «eq_op») (cs-gref (const «Z1»)) (const «myc1»)] +Query assignments: + L = [cs-instance (const «eq_op») (cs-gref (const «Z1»)) (const «myc1»)] + P = const «eq_op» + W = const «Z1» +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)) +COQC tests/test_fields.v +Query assignments: + X = typ «elpi.tests.test_API.2» + Y = typ «elpi.tests.test_API.3» +Universe constraints: +UNIVERSES: + {elpi.tests.test_API.3 elpi.tests.test_API.2} |= + elpi.tests.test_API.2 <= elpi.tests.test_API.3 +ALGEBRAIC UNIVERSES: + {} +UNDEFINED UNIVERSES: + +WEAK CONSTRAINTS: + + +Query assignments: + C = «Nat.add» + F = TODO + T = app + [fun `n` (global (indt «nat»)) c0 \ + fun `m` (global (indt «nat»)) c1 \ + match c0 (fun `n` (global (indt «nat»)) c2 \ global (indt «nat»)) + [c1, + fun `p` (global (indt «nat»)) c2 \ + app + [global (indc «S»), + app + [fix `add` 0 + (prod `n` (global (indt «nat»)) c3 \ + prod `m` (global (indt «nat»)) c4 \ global (indt «nat»)) + c3 \ + fun `n` (global (indt «nat»)) c4 \ + fun `m` (global (indt «nat»)) c5 \ + match c4 + (fun `n` (global (indt «nat»)) c6 \ global (indt «nat»)) + [c5, + fun `p` (global (indt «nat»)) c6 \ + app [global (indc «S»), app [c3, c6, c5]]], c2, c1]]], + app [global (indc «S»), global (indc «O»)], + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] + T1 = app + [global (const «Nat.add»), + app [global (indc «S»), global (indc «O»)], + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] + T2 = app + [fun `n` (global (indt «nat»)) c0 \ + fun `m` (global (indt «nat»)) c1 \ + match c0 (fun `n` (global (indt «nat»)) c2 \ global (indt «nat»)) + [c1, + fun `p` (global (indt «nat»)) c2 \ + app + [global (indc «S»), + app + [fix `plus` 0 + (prod `n` (global (indt «nat»)) c3 \ + prod `m` (global (indt «nat»)) c4 \ global (indt «nat»)) + c3 \ + fun `n` (global (indt «nat»)) c4 \ + fun `m` (global (indt «nat»)) c5 \ + match c4 + (fun `n` (global (indt «nat»)) c6 \ global (indt «nat»)) + [c5, + fun `p` (global (indt «nat»)) c6 \ + app [global (indc «S»), app [c3, c6, c5]]], c2, c1]]], + app [global (indc «S»), global (indc «O»)], + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] + _uvk_42_ = global (indt «nat») + _uvk_43_ = c0 \ +global (indt «nat») + _uvk_44_ = c0 \ c1 \ +global (indt «nat») + _uvk_45_ = c0 \ c1 \ +global (indt «nat») + _uvk_46_ = c0 \ c1 \ c2 \ +global (indt «nat») + _uvk_47_ = c0 \ c1 \ c2 \ +global (indt «nat») + _uvk_48_ = c0 \ c1 \ c2 \ +global (indt «nat») + _uvk_49_ = c0 \ c1 \ c2 \ c3 \ +global (indt «nat») + _uvk_50_ = c0 \ c1 \ c2 \ c3 \ +global (indt «nat») + _uvk_51_ = c0 \ c1 \ c2 \ c3 \ +global (indt «nat») + _uvk_52_ = c0 \ c1 \ c2 \ c3 \ +global (indt «nat») +c0 global (indt «nat») +Query assignments: + T = global (indt «nat») +Query assignments: + R = app + [global (indc «ex_intro»), global (indt «nat»), + fun `hd_beta_auto` (global (indt «nat»)) c0 \ + app [global (indt «eq»), global (indt «nat»), c0, c0], + global (indc «O»), global (const «p»)] + TY = app + [global (indt «ex»), global (indt «nat»), + fun `hd_beta_auto` (global (indt «nat»)) c0 \ + app [global (indt «eq»), global (indt «nat»), c0, c0]] + _uvk_158_ = X0 + _uvk_159_ = X1 +[trm c0, trm (app [global (const «Nat.add»), c0, c1])] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[trm c0, trm (app [global (const «Nat.add»), X0 c0 c1, c1])] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X1 c0 c1) (global (indt «nat»)) (X0 c0 c1) /* suspended on X1, X0 */ + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X2 c0 c1) (global (indt «True»)) (X3 c0 c1) /* suspended on X2, X3 */ +[trm c0, trm (app [global (const «Nat.add»), X0 c0 c1, c1])] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X1 c0 c1) (global (indt «True»)) (X2 c0 c1) /* suspended on X1, X2 */ +[trm c0, trm c1] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[trm (app [global (const «Nat.add»), c0, c1])] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[trm (app [global (const «Nat.add»), X0 c0 c1, c1])] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X1 c0 c1) (global (indt «nat»)) (X0 c0 c1) /* suspended on X1, X0 */ + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X2 c0 c1) (global (indt «True»)) (X3 c0 c1) /* suspended on X2, X3 */ +[trm (app [global (const «Nat.add»), X0 c0 c1, c1])] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X1 c0 c1) (global (indt «True»)) (X2 c0 c1) /* suspended on X1, X2 */ +[trm (app [global (indc «O»), global (indc «O»)])] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[trm c0] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[int 1] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[int -1] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[str a] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[str a] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[str x] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[trm (app [global (const «Nat.add»), c0, c1])] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[trm (app [global (const «Nat.add»), X0 c0 c1, c1])] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X1 c0 c1) (global (indt «True»)) (X2 c0 c1) /* suspended on X1, X2 */ +[trm (app [global (const «Nat.add»), X0 c0 c1, c1])] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X1 c0 c1) (global (indt «True»)) (X2 c0 c1) /* suspended on X1, X2 */ +[trm c0] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +Query assignments: + P = const «eq_op» + W = indt «nat» +Query assignments: + X = typ «elpi.tests.test_API.4» + Y = typ «elpi.tests.test_API.5» +Universe constraints: +UNIVERSES: + {elpi.tests.test_API.5 elpi.tests.test_API.4} |= + elpi.tests.test_API.4 <= elpi.tests.test_API.5 +ALGEBRAIC UNIVERSES: + {} +UNDEFINED UNIVERSES: + +WEAK CONSTRAINTS: + + +Query assignments: + R = app + [global (indc «ex_intro»), global (indt «nat»), + fun `hd_beta_auto` (global (indt «nat»)) c0 \ + app [global (indt «eq»), global (indt «nat»), c0, global (indc «O»)], + global (indc «O»), global (const «p»)] + TY = app + [global (indt «ex»), global (indt «nat»), + fun `n` (global (indt «nat»)) c0 \ + app [global (indt «eq»), global (indt «nat»), c0, global (indc «O»)]] + _uvk_168_ = X0 + _uvk_169_ = c0 \ +X1 c0 + _uvk_170_ = X2 + _uvk_171_ = X3 +Universe constraints: +UNIVERSES: + {elpi.tests.test_elaborator.58 elpi.tests.test_elaborator.57 + elpi.tests.test_elaborator.56 elpi.tests.test_elaborator.55} |= + Set <= elpi.tests.test_elaborator.55 + elpi.tests.test_elaborator.55 <= elpi.tests.test_elaborator.57 + elpi.tests.test_elaborator.56 <= elpi.tests.test_elaborator.57 + elpi.tests.test_elaborator.57 <= elpi.tests.test_elaborator.58 +ALGEBRAIC UNIVERSES: + {} +UNDEFINED UNIVERSES: + +WEAK CONSTRAINTS: + + _f1_view_set : view_set _f1 : view_set _f1 _f2_view_set : view_set _f2 @@ -3984,42 +4113,74 @@ : forall A : Type, view_set _f4 _pf3_view_set : forall A : Type, view_set _pf3 : forall A : Type, view_set _pf3 +Query assignments: + C = «Nat.add» + F = TODO _pf4_view_set : forall A : Type, view_set _pf4 : forall A : Type, view_set _pf4 _f1_set_set : set_set _f1 : set_set _f1 + T = match (app [global (indc «S»), global (indc «O»)]) + (fun `n` (global (indt «nat»)) c0 \ global (indt «nat»)) + [app [global (indc «S»), app [global (indc «S»), global (indc «O»)]], + fun `p` (global (indt «nat»)) c0 \ + app + [global (indc «S»), + app + [fix `add` 0 + (prod `n` (global (indt «nat»)) c1 \ + prod `m` (global (indt «nat»)) c2 \ global (indt «nat»)) c1 \ + fun `n` (global (indt «nat»)) c2 \ + fun `m` (global (indt «nat»)) c3 \ + match c2 + (fun `n` (global (indt «nat»)) c4 \ global (indt «nat»)) + [c3, + fun `p` (global (indt «nat»)) c4 \ + app [global (indc «S»), app [c1, c4, c3]]], c0, + app + [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]]] + T1 = app + [global (const «Nat.add»), + app [global (indc «S»), global (indc «O»)], + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] + T2 = match (app [global (indc «S»), global (indc «O»)]) + (fun `_` (global (indt «nat»)) c0 \ global (indt «nat»)) + [app [global (indc «S»), app [global (indc «S»), global (indc «O»)]], + fun `p` (global (indt «nat»)) c0 \ + app + [global (indc «S»), + app + [fix `plus` 0 + (prod `n` (global (indt «nat»)) c1 \ + prod `m` (global (indt «nat»)) c2 \ global (indt «nat»)) c1 \ + fun `n` (global (indt «nat»)) c2 \ + fun `m` (global (indt «nat»)) c3 \ + match c2 + (fun `n` (global (indt «nat»)) c4 \ global (indt «nat»)) + [c3, + fun `p` (global (indt «nat»)) c4 \ + app [global (indc «S»), app [c1, c4, c3]]], c0, + app + [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]]] + _uvk_53_ = c0 \ +global (indt «nat») + _uvk_54_ = global (indt «nat») + _uvk_55_ = c0 \ +global (indt «nat») + _uvk_56_ = c0 \ c1 \ +global (indt «nat») + _uvk_57_ = c0 \ c1 \ c2 \ +global (indt «nat») + _uvk_58_ = c0 \ c1 \ +global (indt «nat») + _uvk_59_ = c0 \ c1 \ c2 \ +global (indt «nat») + _uvk_60_ = c0 \ c1 \ c2 \ c3 \ +global (indt «nat») + _uvk_61_ = c0 \ c1 \ c2 \ c3 \ +global (indt «nat») _f2_set_set : set_set _f2 : set_set _f2 -Query assignments: - X = typ «elpi.tests.test_API.6» - Y = typ «elpi.tests.test_API.7» - Z = typ «elpi.tests.test_API.8» -Universe constraints: -UNIVERSES: - {elpi.tests.test_API.8 elpi.tests.test_API.7 elpi.tests.test_API.6} |= - elpi.tests.test_API.6 <= elpi.tests.test_API.8 - elpi.tests.test_API.7 <= elpi.tests.test_API.8 -ALGEBRAIC UNIVERSES: - {} -UNDEFINED UNIVERSES: - -WEAK CONSTRAINTS: - - -Query assignments: - C1 = const «C1» - GR1 = const «c12» - GR2 = const «c1t» - GR3 = const «c1f» -fun x : C1 => x : C2 - : C1 -> C2 -fun (x : C1) (_ : x) => true - : forall x : C1, x -> bool -fun x : C1 => x 3 - : C1 -> nat -c0 global (indt «nat») -Query assignments: - T = global (indt «nat») _f3_set_set : forall A : Type, set_set _f3 : forall A : Type, set_set _f3 _f4_set_set : forall A : Type, set_set _f4 @@ -4053,100 +4214,6 @@ _pf4_pf3_exchange : forall A : Type, exchange _pf4 _pf3 : forall A : Type, exchange _pf4 _pf3 Query assignments: - A = tt - B = 0 - C = 0 - D = sort (typ «Set») - E = [«true», «false»] - F = [global (indt «bool»), global (indt «bool»)] - GR = «bool» -empty_eq : eq_test empty - : eq_test empty -unit_eq : eq_test unit - : eq_test unit -peano_eq : eq_test peano - : eq_test peano -option_eq : forall A : Type, eq_test A -> eq_test (option A) - : forall A : Type, eq_test A -> eq_test (option A) -pair_eq -: -forall A : Type, -eq_test A -> forall B : Type, eq_test B -> eq_test (pair A B) - : forall A : Type, - eq_test A -> forall B : Type, eq_test B -> eq_test (pair A B) -seq_eq : forall A : Type, eq_test A -> eq_test (seq A) - : forall A : Type, eq_test A -> eq_test (seq A) -rose_eq : forall A : Type, eq_test A -> eq_test (rose A) - : forall A : Type, eq_test A -> eq_test (rose A) -vect_eq : forall A : Type, eq_test A -> forall i : peano, eq_test (vect A i) - : forall A : Type, eq_test A -> forall i : peano, eq_test (vect A i) -zeta_eq : forall A : Type, eq_test A -> eq_test (zeta A) - : forall A : Type, eq_test A -> eq_test (zeta A) -beta_eq : forall A : Type, eq_test A -> eq_test (beta A) - : forall A : Type, eq_test A -> eq_test (beta A) -large_eq : eq_test large - : eq_test large -prim_int_eq : eq_test prim_int - : eq_test prim_int -prim_float_eq : eq_test prim_float - : eq_test prim_float -fo_record_eq : eq_test fo_record - : eq_test fo_record -pa_record_eq : forall A : Type, eq_test A -> eq_test (pa_record A) - : forall A : Type, eq_test A -> eq_test (pa_record A) -pr_record_eq : forall A : Type, eq_test A -> eq_test (pr_record A) - : forall A : Type, eq_test A -> eq_test (pr_record A) -enum_eq : eq_test enum - : eq_test enum -Query assignments: - C = «Nat.add» - F = TODO - T = app - [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]]], - app [global (indc «S»), global (indc «O»)], - app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] - T1 = app - [global (const «Nat.add»), - app [global (indc «S»), global (indc «O»)], - app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] - T2 = app - [fix `plus` 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]]], - app [global (indc «S»), global (indc «O»)], - app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] - _uvk_35_ = global (indt «nat») - _uvk_36_ = c0 \ -global (indt «nat») - _uvk_37_ = c0 \ c1 \ -global (indt «nat») - _uvk_38_ = c0 \ -global (indt «nat») - _uvk_39_ = c0 \ c1 \ -global (indt «nat») - _uvk_40_ = c0 \ c1 \ c2 \ -global (indt «nat») - _uvk_41_ = c0 \ c1 \ c2 \ -global (indt «nat») -Query assignments: - L = [coercion (const «c1t») 0 (const «C1») sortclass, - coercion (const «c1f») 0 (const «C1») funclass, - coercion (const «c12») 0 (const «C1») (grefclass (const «C2»))] -Query assignments: D = parameter A X0 (sort (typ «elpi.tests.test_API_env.10»)) c0 \ inductive tx X1 (parameter y X2 (global (indt «nat»)) c1 \ @@ -4195,197 +4262,6 @@ WEAK CONSTRAINTS: -Entry constr is -[ LEFTA - [ "@"; global; univ_annot - | term LEVEL "8" ] ] -and lconstr is -[ LEFTA - [ term LEVEL "200" ] ] -where binder_constr is -[ LEFTA - [ "exists2"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; ","; term LEVEL - "200"; "&"; term LEVEL "200" - | "exists2"; "'"; pattern LEVEL "0"; ","; term LEVEL "200"; "&"; term LEVEL - "200" - | "exists2"; name; ":"; term LEVEL "200"; ","; term LEVEL "200"; "&"; term - LEVEL "200" - | "exists2"; name; ","; term LEVEL "200"; "&"; term LEVEL "200" - | "exists"; "!"; open_binders; ","; term LEVEL "200" - | "exists"; open_binders; ","; term LEVEL "200" - | "forall"; open_binders; ","; term LEVEL "200" - | "fun"; open_binders; "=>"; term LEVEL "200" - | "let"; "fix"; fix_decl; "in"; term LEVEL "200" - | "let"; "cofix"; cofix_body; "in"; term LEVEL "200" - | "let"; "'"; pattern LEVEL "200"; ":="; term LEVEL "200"; "in"; term LEVEL - "200" - | "let"; "'"; pattern LEVEL "200"; ":="; term LEVEL "200"; case_type; "in"; - term LEVEL "200" - | "let"; "'"; pattern LEVEL "200"; "in"; pattern LEVEL "200"; ":="; term - LEVEL "200"; case_type; "in"; term LEVEL "200" - | "let"; name; binders; let_type_cstr; ":="; term LEVEL "200"; "in"; term - LEVEL "200" - | "let"; [ "("; LIST0 name SEP ","; ")" | "()" ]; as_return_type; ":="; - term LEVEL "200"; "in"; term LEVEL "200" - | "if"; term LEVEL "200"; as_return_type; "then"; term LEVEL "200"; "else"; - term LEVEL "200" - | "fix"; fix_decls - | "cofix"; cofix_decls ] ] -and term is -[ "200" RIGHTA - [ binder_constr ] -| "100" RIGHTA - [ SELF; "<:"; term LEVEL "200" - | SELF; "<<:"; term LEVEL "200" - | SELF; ":"; term LEVEL "200" ] -| "99" RIGHTA - [ SELF; "->"; term LEVEL "200" ] -| "95" RIGHTA - [ SELF; "<->"; NEXT ] -| "90" RIGHTA - [ ] -| "85" RIGHTA - [ SELF; "\\/"; term LEVEL "85" ] -| "80" RIGHTA - [ SELF; "/\\"; term LEVEL "80" ] -| "75" RIGHTA - [ "~"; term LEVEL "75" ] -| "70" RIGHTA - [ SELF; ">"; NEXT - | SELF; ">="; NEXT - | SELF; "<"; NEXT; "<="; NEXT - | SELF; "<"; NEXT; "<"; NEXT - | SELF; "<"; NEXT - | SELF; "<="; NEXT; "<"; NEXT - | SELF; "<="; NEXT; "<="; NEXT - | SELF; "<="; NEXT - | SELF; "<>"; NEXT; ":>"; NEXT - | SELF; "<>"; NEXT - | SELF; "="; NEXT; "="; NEXT - | SELF; "="; NEXT; ":>"; NEXT - | SELF; "="; NEXT ] -| "60" RIGHTA - [ SELF; "++"; term LEVEL "60" - | SELF; "::"; term LEVEL "60" ] -| "50" LEFTA - [ SELF; "||"; NEXT - | SELF; "-"; NEXT - | SELF; "+"; NEXT ] -| "40" LEFTA - [ SELF; "&&"; NEXT - | SELF; "/"; NEXT - | SELF; "*"; NEXT ] -| "35" RIGHTA - [ "/"; term LEVEL "35" - | "-"; term LEVEL "35" ] -| "30" RIGHTA - [ SELF; "^"; term LEVEL "30" ] -| LEFTA - [ IDENT "XX"; FIELD "xxx"; LIST0 arg ] -| "10" LEFTA - [ SELF; LIST1 arg - | "@"; global; univ_annot; LIST0 NEXT - | "@"; pattern_ident; LIST1 identref ] -| "9" LEFTA - [ ".."; term LEVEL "0"; ".." ] -| "8" LEFTA - [ ] -| "1" LEFTA - [ SELF; ".("; "@"; global; univ_annot; LIST0 (term LEVEL "9"); ")" - | SELF; ".("; global; univ_annot; LIST0 arg; ")" - | SELF; "%"; IDENT ] -| "0" LEFTA - [ "lib"; ":"; "@"; qualified_name - | "lib"; ":"; qualified_name - | QUOTATION "lp:" - | IDENT "ltac"; ":"; "("; ltac_expr; ")" - | "("; term LEVEL "200"; ","; term LEVEL "200"; ","; LIST1 (term LEVEL - "200") SEP ","; ")" - | "("; term LEVEL "200"; ","; term LEVEL "200"; ")" - | "("; term LEVEL "200"; ")" - | "{|"; record_declaration; '|}' - | "{"; "'"; pattern LEVEL "0"; "&"; term LEVEL "200"; "&"; term LEVEL - "200"; "}" - | "{"; "'"; pattern LEVEL "0"; "&"; term LEVEL "200"; "}" - | "{"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; "&"; term LEVEL - "200"; "&"; term LEVEL "200"; "}" - | "{"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; "&"; term LEVEL - "200"; "}" - | "{"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; "|"; term LEVEL - "200"; "&"; term LEVEL "200"; "}" - | "{"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; "|"; term LEVEL - "200"; "}" - | "{"; "'"; pattern LEVEL "0"; "|"; term LEVEL "200"; "&"; term LEVEL - "200"; "}" - | "{"; "'"; pattern LEVEL "0"; "|"; term LEVEL "200"; "}" - | "{"; term LEVEL "99"; "&"; term LEVEL "200"; "&"; term LEVEL "200"; "}" - | "{"; term LEVEL "99"; "&"; term LEVEL "200"; "}" - | "{"; term LEVEL "99"; ":"; term LEVEL "200"; "&"; term LEVEL "200"; "&"; - term LEVEL "200"; "}" - | "{"; term LEVEL "99"; ":"; term LEVEL "200"; "&"; term LEVEL "200"; "}" - | "{"; term LEVEL "99"; ":"; term LEVEL "200"; "|"; term LEVEL "200"; "&"; - term LEVEL "200"; "}" - | "{"; term LEVEL "99"; ":"; term LEVEL "200"; "|"; term LEVEL "200"; "}" - | "{"; term LEVEL "99"; "|"; term LEVEL "200"; "&"; term LEVEL "200"; "}" - | "{"; term LEVEL "99"; "|"; term LEVEL "200"; "}" - | "{"; term LEVEL "99"; "}" - | "{"; binder_constr; "}" - | "`{"; term LEVEL "200"; "}" - | "`("; term LEVEL "200"; ")" - | NUMBER - | atomic_constr - | term_match - | ident; fields; univ_annot - | ident; univ_annot - | test_array_opening; "["; "|"; array_elems; "|"; lconstr; type_cstr; - test_array_closing; "|"; "]"; univ_annot ] ] - -[attribute elpi.loc - (leaf-loc - File "./tests/test_tactic.v", line 311, column 12, character 6723:)] -skip int 1 -skip str 33 -skip trm (global (indt «bool»)) -[attribute elpi.loc - (leaf-loc - File "./tests/test_tactic.v", line 311, column 12, character 6723:)] -skip int 1 -skip str 33 -skip trm (global (indt «bool»)) -nat -> bool -> True - : Prop -[attribute elpi.loc - (leaf-loc - File "./tests/test_tactic.v", line 320, column 12, character 6909:)] -[attribute elpi.loc - (leaf-loc - File "./tests/test_tactic.v", line 320, column 12, character 6909:)] -[attribute elpi.loc - (leaf-loc - File "./tests/test_tactic.v", line 324, column 30, character 7010:)] -Query assignments: - X = typ «elpi.tests.test_API.9» - Y = typ «elpi.tests.test_API.10» -Universe constraints: -UNIVERSES: - {elpi.tests.test_API.10 elpi.tests.test_API.9} |= - elpi.tests.test_API.9 < elpi.tests.test_API.10 -ALGEBRAIC UNIVERSES: - {} -UNDEFINED UNIVERSES: - -WEAK CONSTRAINTS: - - -[attribute elpi.loc - (leaf-loc - File "./tests/test_tactic.v", line 324, column 30, character 7010:)] -[attribute elpi.loc - (leaf-loc File "./tests/test_tactic.v", line 332, column 7, character 7186:)] -[attribute elpi.loc - (leaf-loc File "./tests/test_tactic.v", line 332, column 7, character 7186:)] -Query assignments: - F = app [global (const «nat_of_bool»), global (indc «true»)] empty_map : map empty : map empty unit_map : map unit @@ -4425,85 +4301,97 @@ pr_record_map : map1 pr_record : map1 pr_record Query assignments: + X = typ «elpi.tests.test_API.6» + Y = typ «elpi.tests.test_API.7» + Z = typ «elpi.tests.test_API.8» +Universe constraints: +UNIVERSES: + {elpi.tests.test_API.8 elpi.tests.test_API.7 elpi.tests.test_API.6} |= + elpi.tests.test_API.6 <= elpi.tests.test_API.8 + elpi.tests.test_API.7 <= elpi.tests.test_API.8 +ALGEBRAIC UNIVERSES: + {} +UNDEFINED UNIVERSES: + +WEAK CONSTRAINTS: + + +Query assignments: + R = app + [global (indc «ex_intro»), global (indt «nat»), + fun `n` (global (indt «nat»)) c0 \ + app [global (indt «eq»), global (indt «nat»), c0, global (indc «O»)], + global (indc «O»), global (const «p»)] + TY = app + [global (indt «ex»), global (indt «nat»), + fun `n` (global (indt «nat»)) c0 \ + app [global (indt «eq»), global (indt «nat»), c0, global (indc «O»)]] + _uvk_205_ = X0 + _uvk_206_ = c0 \ +X1 c0 + _uvk_207_ = X2 + _uvk_208_ = X3 +Universe constraints: +UNIVERSES: + {elpi.tests.test_elaborator.62 elpi.tests.test_elaborator.61 + elpi.tests.test_elaborator.60 elpi.tests.test_elaborator.59} |= + Set <= elpi.tests.test_elaborator.59 + elpi.tests.test_elaborator.59 <= elpi.tests.test_elaborator.61 + elpi.tests.test_elaborator.60 <= elpi.tests.test_elaborator.61 + elpi.tests.test_elaborator.61 <= elpi.tests.test_elaborator.62 +ALGEBRAIC UNIVERSES: + {} +UNDEFINED UNIVERSES: + +WEAK CONSTRAINTS: + + +Query assignments: + C1 = const «C1» + GR1 = const «c12» + GR2 = const «c1t» + GR3 = const «c1f» +fun x : C1 => x : C2 + : C1 -> C2 +fun (x : C1) (_ : x) => true + : forall x : C1, x -> bool +fun x : C1 => x 3 + : C1 -> nat +Query assignments: C = «Nat.add» F = TODO T = app - [fun `n` (global (indt «nat»)) c0 \ - fun `m` (global (indt «nat»)) c1 \ - match c0 (fun `n` (global (indt «nat»)) c2 \ global (indt «nat»)) - [c1, - fun `p` (global (indt «nat»)) c2 \ - app - [global (indc «S»), - app - [fix `add` 0 - (prod `n` (global (indt «nat»)) c3 \ - prod `m` (global (indt «nat»)) c4 \ global (indt «nat»)) - c3 \ - fun `n` (global (indt «nat»)) c4 \ - fun `m` (global (indt «nat»)) c5 \ - match c4 - (fun `n` (global (indt «nat»)) c6 \ global (indt «nat»)) - [c5, - fun `p` (global (indt «nat»)) c6 \ - app [global (indc «S»), app [c3, c6, c5]]], c2, c1]]], - app [global (indc «S»), global (indc «O»)], + [global (indc «S»), app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] T1 = app [global (const «Nat.add»), app [global (indc «S»), global (indc «O»)], app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] T2 = app - [fun `n` (global (indt «nat»)) c0 \ - fun `m` (global (indt «nat»)) c1 \ - match c0 (fun `n` (global (indt «nat»)) c2 \ global (indt «nat»)) - [c1, - fun `p` (global (indt «nat»)) c2 \ - app - [global (indc «S»), - app - [fix `plus` 0 - (prod `n` (global (indt «nat»)) c3 \ - prod `m` (global (indt «nat»)) c4 \ global (indt «nat»)) - c3 \ - fun `n` (global (indt «nat»)) c4 \ - fun `m` (global (indt «nat»)) c5 \ - match c4 - (fun `n` (global (indt «nat»)) c6 \ global (indt «nat»)) - [c5, - fun `p` (global (indt «nat»)) c6 \ - app [global (indc «S»), app [c3, c6, c5]]], c2, c1]]], - app [global (indc «S»), global (indc «O»)], + [global (indc «S»), app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] - _uvk_42_ = global (indt «nat») - _uvk_43_ = c0 \ -global (indt «nat») - _uvk_44_ = c0 \ c1 \ -global (indt «nat») - _uvk_45_ = c0 \ c1 \ -global (indt «nat») - _uvk_46_ = c0 \ c1 \ c2 \ -global (indt «nat») - _uvk_47_ = c0 \ c1 \ c2 \ -global (indt «nat») - _uvk_48_ = c0 \ c1 \ c2 \ -global (indt «nat») - _uvk_49_ = c0 \ c1 \ c2 \ c3 \ -global (indt «nat») - _uvk_50_ = c0 \ c1 \ c2 \ c3 \ -global (indt «nat») - _uvk_51_ = c0 \ c1 \ c2 \ c3 \ -global (indt «nat») - _uvk_52_ = c0 \ c1 \ c2 \ c3 \ -global (indt «nat») Query assignments: - Spilled_1 = const «nuc» -nuc : forall x : nat, C1 -> C3 x + X = typ «elpi.tests.test_API.9» + Y = typ «elpi.tests.test_API.10» +Universe constraints: +UNIVERSES: + {elpi.tests.test_API.10 elpi.tests.test_API.9} |= + elpi.tests.test_API.9 < elpi.tests.test_API.10 +ALGEBRAIC UNIVERSES: + {} +UNDEFINED UNIVERSES: + +WEAK CONSTRAINTS: + -nuc is not universe polymorphic -Arguments nuc x%nat_scope _ -nuc is a reversible coercion -Expands to: Constant elpi.tests.test_API_TC_CS.nuc +Query assignments: + A = tt + B = 0 + C = 0 + D = sort (typ «Set») + E = [«true», «false»] + F = [global (indt «bool»), global (indt «bool»)] + GR = «bool» Query assignments: D = parameter A explicit (sort (typ «elpi.tests.test_API_env.20»)) c0 \ parameter a explicit c0 c1 \ @@ -4574,87 +4462,26 @@ WEAK CONSTRAINTS: -H -goal [] (X0) (global (indt «True»)) X1 [trm (global (const «H»))] -goal [] (X0) (global (indt «True»)) X1 - [trm - (app - [global (indt «eq»), global (indt «True»), global (const «H»), - global (const «H»)])] -goal [] (X0) (global (indt «True»)) X1 [trm (global (const «H»))] -Query assignments: - C = «Nat.add» - F = TODO - T = match (app [global (indc «S»), global (indc «O»)]) - (fun `n` (global (indt «nat»)) c0 \ global (indt «nat»)) - [app [global (indc «S»), app [global (indc «S»), global (indc «O»)]], - fun `p` (global (indt «nat»)) c0 \ - app - [global (indc «S»), - app - [fix `add` 0 - (prod `n` (global (indt «nat»)) c1 \ - prod `m` (global (indt «nat»)) c2 \ global (indt «nat»)) c1 \ - fun `n` (global (indt «nat»)) c2 \ - fun `m` (global (indt «nat»)) c3 \ - match c2 - (fun `n` (global (indt «nat»)) c4 \ global (indt «nat»)) - [c3, - fun `p` (global (indt «nat»)) c4 \ - app [global (indc «S»), app [c1, c4, c3]]], c0, - app - [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]]] - T1 = app - [global (const «Nat.add»), - app [global (indc «S»), global (indc «O»)], - app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] - T2 = match (app [global (indc «S»), global (indc «O»)]) - (fun `_` (global (indt «nat»)) c0 \ global (indt «nat»)) - [app [global (indc «S»), app [global (indc «S»), global (indc «O»)]], - fun `p` (global (indt «nat»)) c0 \ - app - [global (indc «S»), - app - [fix `plus` 0 - (prod `n` (global (indt «nat»)) c1 \ - prod `m` (global (indt «nat»)) c2 \ global (indt «nat»)) c1 \ - fun `n` (global (indt «nat»)) c2 \ - fun `m` (global (indt «nat»)) c3 \ - match c2 - (fun `n` (global (indt «nat»)) c4 \ global (indt «nat»)) - [c3, - fun `p` (global (indt «nat»)) c4 \ - app [global (indc «S»), app [c1, c4, c3]]], c0, - app - [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]]] - _uvk_53_ = c0 \ -global (indt «nat») - _uvk_54_ = global (indt «nat») - _uvk_55_ = c0 \ -global (indt «nat») - _uvk_56_ = c0 \ c1 \ -global (indt «nat») - _uvk_57_ = c0 \ c1 \ c2 \ -global (indt «nat») - _uvk_58_ = c0 \ c1 \ -global (indt «nat») - _uvk_59_ = c0 \ c1 \ c2 \ -global (indt «nat») - _uvk_60_ = c0 \ c1 \ c2 \ c3 \ -global (indt «nat») - _uvk_61_ = c0 \ c1 \ c2 \ c3 \ -global (indt «nat») -c0 \ app [global (const «nat_of_bool»), c0] Query assignments: - Res = app - [global (const «map»), global (indt «bool»), global (indt «nat»), - fun `x` (global (indt «bool»)) c0 \ - app [global (const «nat_of_bool»), c0], - app - [global (indc «cons»), global (indt «bool»), global (indc «true»), - app [global (indc «nil»), global (indt «bool»)]]] - _uvk_232_ = X0 - _uvk_233_ = X1 + L = [coercion (const «c1t») 0 (const «C1») sortclass, + coercion (const «c1f») 0 (const «C1») funclass, + coercion (const «c12») 0 (const «C1») (grefclass (const «C2»))] +elpi.tests.test_HOAS.P.p1 1 global (const «P.x») +@P.p1 +X0 global (const «P.x») +P.p1 P.x +some + (fun `A` (sort (typ «elpi.tests.test_HOAS.11»)) c0 \ + fun `f` (app [global (indt «P.foo»), c0]) c1 \ + app [primitive (proj elpi.tests.test_HOAS.P.p1 1), c1]) +elpi.tests.test_HOAS.P.p2 2 global (const «P.x») +@P.p2 +X0 global (const «P.x») +P.p2 P.x +some + (fun `A` (sort (typ «elpi.tests.test_HOAS.11»)) c0 \ + fun `f` (app [global (indt «P.foo»), c0]) c1 \ + app [primitive (proj elpi.tests.test_HOAS.P.p1 1), c1]) unit_is_tt : unit -> bool : unit -> bool peano_is_Zero : peano -> bool @@ -4710,6 +4537,102 @@ enum_is_E1 : enum -> bool : enum -> bool Query assignments: + F = app [global (const «nat_of_bool»), global (indc «true»)] +is_empty : pred empty + : pred empty +is_unit : pred unit + : pred unit +is_peano : pred peano + : pred peano +is_option : forall A : Type, pred A -> pred (option A) + : forall A : Type, pred A -> pred (option A) +is_pair +: +forall A : Type, pred A -> forall B : Type, pred B -> pred (pair A B) + : forall A : Type, pred A -> forall B : Type, pred B -> pred (pair A B) +is_seq : forall A : Type, pred A -> pred (seq A) + : forall A : Type, pred A -> pred (seq A) +is_rose : forall A : Type, pred A -> pred (rose A) + : forall A : Type, pred A -> pred (rose A) +is_nest : forall A : Type, pred A -> pred (nest A) + : forall A : Type, pred A -> pred (nest A) +is_w : forall A : Type, pred A -> pred (w A) + : forall A : Type, pred A -> pred (w A) +is_vect +: +forall A : Type, pred A -> forall i : peano, is_peano i -> pred (vect A i) + : forall A : Type, + pred A -> forall i : peano, is_peano i -> pred (vect A i) +is_dyn : pred dyn + : pred dyn +is_zeta : forall A : Type, pred A -> pred (zeta A) + : forall A : Type, pred A -> pred (zeta A) +is_beta : forall A : Type, pred A -> pred (beta A) + : forall A : Type, pred A -> pred (beta A) +is_iota : pred iota + : pred iota +is_large : pred large + : pred large +is_prim_int : pred prim_int + : pred prim_int +is_prim_float : pred prim_float + : pred prim_float +is_fo_record : pred fo_record + : pred fo_record +empty_eq : eq_test empty + : eq_test empty +unit_eq : eq_test unit + : eq_test unit +peano_eq : eq_test peano + : eq_test peano +option_eq : forall A : Type, eq_test A -> eq_test (option A) + : forall A : Type, eq_test A -> eq_test (option A) +is_pa_record : forall A : Type, pred A -> pred (pa_record A) + : forall A : Type, pred A -> pred (pa_record A) +is_pr_record : forall A : Type, pred A -> pred (pr_record A) + : forall A : Type, pred A -> pred (pr_record A) +is_enum : pred enum + : pred enum +is_ord : forall p : peano, is_peano p -> pred (ord p) + : forall p : peano, is_peano p -> pred (ord p) +pair_eq +: +forall A : Type, +eq_test A -> forall B : Type, eq_test B -> eq_test (pair A B) + : forall A : Type, + eq_test A -> forall B : Type, eq_test B -> eq_test (pair A B) +is_ord2 : forall p : peano, is_peano p -> pred (ord2 p) + : forall p : peano, is_peano p -> pred (ord2 p) +is_val : pred val + : pred val +seq_eq : forall A : Type, eq_test A -> eq_test (seq A) + : forall A : Type, eq_test A -> eq_test (seq A) +rose_eq : forall A : Type, eq_test A -> eq_test (rose A) + : forall A : Type, eq_test A -> eq_test (rose A) +vect_eq : forall A : Type, eq_test A -> forall i : peano, eq_test (vect A i) + : forall A : Type, eq_test A -> forall i : peano, eq_test (vect A i) +zeta_eq : forall A : Type, eq_test A -> eq_test (zeta A) + : forall A : Type, eq_test A -> eq_test (zeta A) +beta_eq : forall A : Type, eq_test A -> eq_test (beta A) + : forall A : Type, eq_test A -> eq_test (beta A) +large_eq : eq_test large + : eq_test large +prim_int_eq : eq_test prim_int + : eq_test prim_int +prim_float_eq : eq_test prim_float + : eq_test prim_float +fo_record_eq : eq_test fo_record + : eq_test fo_record +pa_record_eq : forall A : Type, eq_test A -> eq_test (pa_record A) + : forall A : Type, eq_test A -> eq_test (pa_record A) +pr_record_eq : forall A : Type, eq_test A -> eq_test (pr_record A) + : forall A : Type, eq_test A -> eq_test (pr_record A) +enum_eq : eq_test enum + : eq_test enum +[attribute elpi.loc + (leaf-loc + File "./tests/test_tactic.v", line 300, column 10, character 6470:)] +Query assignments: D = parameter A explicit (sort (typ «elpi.tests.test_API_env.20»)) c0 \ parameter a explicit c0 c1 \ inductive ind1 tt @@ -4779,76 +4702,200 @@ WEAK CONSTRAINTS: -is_empty : pred empty - : pred empty -is_unit : pred unit - : pred unit -is_peano : pred peano - : pred peano -is_option : forall A : Type, pred A -> pred (option A) - : forall A : Type, pred A -> pred (option A) -is_pair -: -forall A : Type, pred A -> forall B : Type, pred B -> pred (pair A B) - : forall A : Type, pred A -> forall B : Type, pred B -> pred (pair A B) -is_seq : forall A : Type, pred A -> pred (seq A) - : forall A : Type, pred A -> pred (seq A) -is_rose : forall A : Type, pred A -> pred (rose A) - : forall A : Type, pred A -> pred (rose A) -is_nest : forall A : Type, pred A -> pred (nest A) - : forall A : Type, pred A -> pred (nest A) -is_w : forall A : Type, pred A -> pred (w A) - : forall A : Type, pred A -> pred (w A) -is_vect -: -forall A : Type, pred A -> forall i : peano, is_peano i -> pred (vect A i) - : forall A : Type, - pred A -> forall i : peano, is_peano i -> pred (vect A i) -is_dyn : pred dyn - : pred dyn -is_zeta : forall A : Type, pred A -> pred (zeta A) - : forall A : Type, pred A -> pred (zeta A) -is_beta : forall A : Type, pred A -> pred (beta A) - : forall A : Type, pred A -> pred (beta A) -is_iota : pred iota - : pred iota -is_large : pred large - : pred large -is_prim_int : pred prim_int - : pred prim_int -is_prim_float : pred prim_float - : pred prim_float -is_fo_record : pred fo_record - : pred fo_record -is_pa_record : forall A : Type, pred A -> pred (pa_record A) - : forall A : Type, pred A -> pred (pa_record A) -is_pr_record : forall A : Type, pred A -> pred (pr_record A) - : forall A : Type, pred A -> pred (pr_record A) -is_enum : pred enum - : pred enum -is_ord : forall p : peano, is_peano p -> pred (ord p) - : forall p : peano, is_peano p -> pred (ord p) -is_ord2 : forall p : peano, is_peano p -> pred (ord2 p) - : forall p : peano, is_peano p -> pred (ord2 p) -is_val : pred val - : pred val Query assignments: - C = «Nat.add» - F = TODO - T = app - [global (indc «S»), - app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] - T1 = app - [global (const «Nat.add»), - app [global (indc «S»), global (indc «O»)], - app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] - T2 = app - [global (indc «S»), - app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] + Spilled_1 = const «nuc» +nuc : forall x : nat, C1 -> C3 x + +nuc is not universe polymorphic +Arguments nuc x%nat_scope _ +nuc is a reversible coercion +Expands to: Constant elpi.tests.test_API_TC_CS.nuc +Entry constr is +[ LEFTA + [ "@"; global; univ_annot + | term LEVEL "8" ] ] +and lconstr is +[ LEFTA + [ term LEVEL "200" ] ] +where binder_constr is +[ LEFTA + [ "exists2"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; ","; term LEVEL + "200"; "&"; term LEVEL "200" + | "exists2"; "'"; pattern LEVEL "0"; ","; term LEVEL "200"; "&"; term LEVEL + "200" + | "exists2"; name; ":"; term LEVEL "200"; ","; term LEVEL "200"; "&"; term + LEVEL "200" + | "exists2"; name; ","; term LEVEL "200"; "&"; term LEVEL "200" + | "exists"; "!"; open_binders; ","; term LEVEL "200" + | "exists"; open_binders; ","; term LEVEL "200" + | "forall"; open_binders; ","; term LEVEL "200" + | "fun"; open_binders; "=>"; term LEVEL "200" + | "let"; "fix"; fix_decl; "in"; term LEVEL "200" + | "let"; "cofix"; cofix_body; "in"; term LEVEL "200" + | "let"; "'"; pattern LEVEL "200"; ":="; term LEVEL "200"; "in"; term LEVEL + "200" + | "let"; "'"; pattern LEVEL "200"; ":="; term LEVEL "200"; case_type; "in"; + term LEVEL "200" + | "let"; "'"; pattern LEVEL "200"; "in"; pattern LEVEL "200"; ":="; term + LEVEL "200"; case_type; "in"; term LEVEL "200" + | "let"; name; binders; let_type_cstr; ":="; term LEVEL "200"; "in"; term + LEVEL "200" + | "let"; [ "("; LIST0 name SEP ","; ")" | "()" ]; as_return_type; ":="; + term LEVEL "200"; "in"; term LEVEL "200" + | "if"; term LEVEL "200"; as_return_type; "then"; term LEVEL "200"; "else"; + term LEVEL "200" + | "fix"; fix_decls + | "cofix"; cofix_decls ] ] +and term is +[ "200" RIGHTA + [ binder_constr ] +| "100" RIGHTA + [ SELF; "<:"; term LEVEL "200" + | SELF; "<<:"; term LEVEL "200" + | SELF; ":"; term LEVEL "200" ] +| "99" RIGHTA + [ SELF; "->"; term LEVEL "200" ] +| "95" RIGHTA + [ SELF; "<->"; NEXT ] +| "90" RIGHTA + [ ] +| "85" RIGHTA + [ SELF; "\\/"; term LEVEL "85" ] +| "80" RIGHTA + [ SELF; "/\\"; term LEVEL "80" ] +| "75" RIGHTA + [ "~"; term LEVEL "75" ] +| "70" RIGHTA + [ SELF; ">"; NEXT + | SELF; ">="; NEXT + | SELF; "<"; NEXT; "<="; NEXT + | SELF; "<"; NEXT; "<"; NEXT + | SELF; "<"; NEXT + | SELF; "<="; NEXT; "<"; NEXT + | SELF; "<="; NEXT; "<="; NEXT + | SELF; "<="; NEXT + | SELF; "<>"; NEXT; ":>"; NEXT + | SELF; "<>"; NEXT + | SELF; "="; NEXT; "="; NEXT + | SELF; "="; NEXT; ":>"; NEXT + | SELF; "="; NEXT ] +| "60" RIGHTA + [ SELF; "++"; term LEVEL "60" + | SELF; "::"; term LEVEL "60" ] +| "50" LEFTA + [ SELF; "||"; NEXT + | SELF; "-"; NEXT + | SELF; "+"; NEXT ] +| "40" LEFTA + [ SELF; "&&"; NEXT + | SELF; "/"; NEXT + | SELF; "*"; NEXT ] +| "35" RIGHTA + [ "/"; term LEVEL "35" + | "-"; term LEVEL "35" ] +| "30" RIGHTA + [ SELF; "^"; term LEVEL "30" ] +| LEFTA + [ IDENT "XX"; FIELD "xxx"; LIST0 arg ] +| "10" LEFTA + [ SELF; LIST1 arg + | "@"; global; univ_annot; LIST0 NEXT + | "@"; pattern_ident; LIST1 identref ] +| "9" LEFTA + [ ".."; term LEVEL "0"; ".." ] +| "8" LEFTA + [ ] +| "1" LEFTA + [ SELF; ".("; "@"; global; univ_annot; LIST0 (term LEVEL "9"); ")" + | SELF; ".("; global; univ_annot; LIST0 arg; ")" + | SELF; "%"; IDENT ] +| "0" LEFTA + [ "lib"; ":"; "@"; qualified_name + | "lib"; ":"; qualified_name + | QUOTATION "lp:" + | IDENT "ltac"; ":"; "("; ltac_expr; ")" + | "("; term LEVEL "200"; ","; term LEVEL "200"; ","; LIST1 (term LEVEL + "200") SEP ","; ")" + | "("; term LEVEL "200"; ","; term LEVEL "200"; ")" + | "("; term LEVEL "200"; ")" + | "{|"; record_declaration; '|}' + | "{"; "'"; pattern LEVEL "0"; "&"; term LEVEL "200"; "&"; term LEVEL + "200"; "}" + | "{"; "'"; pattern LEVEL "0"; "&"; term LEVEL "200"; "}" + | "{"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; "&"; term LEVEL + "200"; "&"; term LEVEL "200"; "}" + | "{"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; "&"; term LEVEL + "200"; "}" + | "{"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; "|"; term LEVEL + "200"; "&"; term LEVEL "200"; "}" + | "{"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; "|"; term LEVEL + "200"; "}" + | "{"; "'"; pattern LEVEL "0"; "|"; term LEVEL "200"; "&"; term LEVEL + "200"; "}" + | "{"; "'"; pattern LEVEL "0"; "|"; term LEVEL "200"; "}" + | "{"; term LEVEL "99"; "&"; term LEVEL "200"; "&"; term LEVEL "200"; "}" + | "{"; term LEVEL "99"; "&"; term LEVEL "200"; "}" + | "{"; term LEVEL "99"; ":"; term LEVEL "200"; "&"; term LEVEL "200"; "&"; + term LEVEL "200"; "}" + | "{"; term LEVEL "99"; ":"; term LEVEL "200"; "&"; term LEVEL "200"; "}" + | "{"; term LEVEL "99"; ":"; term LEVEL "200"; "|"; term LEVEL "200"; "&"; + term LEVEL "200"; "}" + | "{"; term LEVEL "99"; ":"; term LEVEL "200"; "|"; term LEVEL "200"; "}" + | "{"; term LEVEL "99"; "|"; term LEVEL "200"; "&"; term LEVEL "200"; "}" + | "{"; term LEVEL "99"; "|"; term LEVEL "200"; "}" + | "{"; term LEVEL "99"; "}" + | "{"; binder_constr; "}" + | "`{"; term LEVEL "200"; "}" + | "`("; term LEVEL "200"; ")" + | NUMBER + | atomic_constr + | term_match + | ident; fields; univ_annot + | ident; univ_annot + | test_array_opening; "["; "|"; array_elems; "|"; lconstr; type_cstr; + test_array_closing; "|"; "]"; univ_annot ] ] + +[attribute elpi.loc + (leaf-loc + File "./tests/test_tactic.v", line 311, column 12, character 6723:)] +skip int 1 +skip str 33 +skip trm (global (indt «bool»)) +[attribute elpi.loc + (leaf-loc + File "./tests/test_tactic.v", line 311, column 12, character 6723:)] +skip int 1 +skip str 33 +skip trm (global (indt «bool»)) +nat -> bool -> True + : Prop +[attribute elpi.loc + (leaf-loc + File "./tests/test_tactic.v", line 320, column 12, character 6909:)] +[attribute elpi.loc + (leaf-loc + File "./tests/test_tactic.v", line 320, column 12, character 6909:)] +[attribute elpi.loc + (leaf-loc + File "./tests/test_tactic.v", line 324, column 30, character 7010:)] +[attribute elpi.loc + (leaf-loc + File "./tests/test_tactic.v", line 324, column 30, character 7010:)] +c0 \ app [global (const «nat_of_bool»), c0] Query assignments: Res = app - [global (const «Z_of_nat»), - app [global (const «nat_of_bool»), global (indc «true»)]] + [global (const «map»), global (indt «bool»), global (indt «nat»), + fun `x` (global (indt «bool»)) c0 \ + app [global (const «nat_of_bool»), c0], + app + [global (indc «cons»), global (indt «bool»), global (indc «true»), + app [global (indc «nil»), global (indt «bool»)]]] + _uvk_232_ = X0 + _uvk_233_ = X1 +[attribute elpi.loc + (leaf-loc File "./tests/test_tactic.v", line 332, column 7, character 7186:)] +[attribute elpi.loc + (leaf-loc File "./tests/test_tactic.v", line 332, column 7, character 7186:)] Query assignments: D = parameter P explicit (sort (typ «elpi.tests.test_API_env.28»)) c0 \ parameter p explicit c0 c1 \ @@ -4865,39 +4912,14 @@ I = «r1» UP = «elpi.tests.test_API_env.28» UR = «elpi.tests.test_API_env.28» -elpi.tests.test_HOAS.P.p1 1 global (const «P.x») -@P.p1 -X0 global (const «P.x») -P.p1 P.x -some - (fun `A` (sort (typ «elpi.tests.test_HOAS.11»)) c0 \ - fun `f` (app [global (indt «P.foo»), c0]) c1 \ - app [primitive (proj elpi.tests.test_HOAS.P.p1 1), c1]) -elpi.tests.test_HOAS.P.p2 2 global (const «P.x») -@P.p2 -X0 global (const «P.x») -P.p2 P.x -some - (fun `A` (sort (typ «elpi.tests.test_HOAS.11»)) c0 \ - fun `f` (app [global (indt «P.foo»), c0]) c1 \ - app [primitive (proj elpi.tests.test_HOAS.P.p1 1), c1]) -[foo (const «X»), foo (indt «nat»), foo (indt «bool»)] -[foo (indt «nat»), foo (indt «bool»)] -[] -[foo (indt «nat»)] -c0 \ -app [global (const «Z_of_nat»), app [global (const «nat_of_bool»), c0]] -Query assignments: - Res = app - [global (const «map»), global (indt «bool»), global (const «Z»), - fun `x` (global (indt «bool»)) c0 \ - app - [global (const «Z_of_nat»), app [global (const «nat_of_bool»), c0]], - app - [global (indc «cons»), global (indt «bool»), global (indc «true»), - app [global (indc «nil»), global (indt «bool»)]]] - _uvk_268_ = X0 - _uvk_269_ = X1 +H +goal [] (X0) (global (indt «True»)) X1 [trm (global (const «H»))] +goal [] (X0) (global (indt «True»)) X1 + [trm + (app + [global (indt «eq»), global (indt «True»), global (const «H»), + global (const «H»)])] +goal [] (X0) (global (indt «True»)) X1 [trm (global (const «H»))] Query assignments: D = parameter P explicit (sort (typ «elpi.tests.test_API_env.28»)) c0 \ parameter p explicit c0 c1 \ @@ -4914,30 +4936,25 @@ I = «r1» UP = «elpi.tests.test_API_env.28» UR = «elpi.tests.test_API_env.28» -derive.param1_trivial: wrong shape is_nest -. It does not look like a unary parametricity translation of an inductive with no indexes. -{{ nat; S; }} -{{ nat; S; }} Query assignments: - GR = const «Nat.add» - L = {{ nat; S; }} - S = {{ nat; S; }} + Res = app + [global (const «Z_of_nat»), + app [global (const «nat_of_bool»), global (indc «true»)]] +some + (pglobal (const «toto») + «elpi.tests.test_HOAS.19 elpi.tests.test_HOAS.20») +prod `T1` (sort (typ «elpi.tests.test_HOAS.19»)) c0 \ + prod `T2` (sort (typ «elpi.tests.test_HOAS.20»)) c1 \ prod `x` c0 c2 \ c0 Query assignments: - R = prod `r` (global (const «ring»)) c0 \ - prod `x` (app [global (const «carr»), c0]) c1 \ - app [global (indt «eq»), app [global (const «carr»), c0], c1, c1] - T = sort (typ «elpi.tests.test_elaborator.75») - _uvk_304_ = c0 \ c1 \ -X0 c0 c1 + Body = some + (pglobal (const «toto») + «elpi.tests.test_HOAS.19 elpi.tests.test_HOAS.20») + C = «titi» + Term = prod `T1` (sort (typ «elpi.tests.test_HOAS.19»)) c0 \ + prod `T2` (sort (typ «elpi.tests.test_HOAS.20»)) c1 \ prod `x` c0 c2 \ c0 Universe constraints: UNIVERSES: - {elpi.tests.test_elaborator.75 elpi.tests.test_elaborator.74 - elpi.tests.test_elaborator.73 elpi.tests.test_elaborator.72 - elpi.tests.test_elaborator.70} |= - ring.u0 <= elpi.tests.test_elaborator.70 - elpi.tests.test_elaborator.70 <= elpi.tests.test_elaborator.75 - elpi.tests.test_elaborator.73 <= elpi.tests.test_elaborator.74 - elpi.tests.test_elaborator.74 <= elpi.tests.test_elaborator.75 + {elpi.tests.test_HOAS.20 elpi.tests.test_HOAS.19} |= ALGEBRAIC UNIVERSES: {} UNDEFINED UNIVERSES: @@ -4945,8 +4962,10 @@ WEAK CONSTRAINTS: -derive.param1_trivial: wrong shape is_vect A PA -. It does not look like a unary parametricity translation of an inductive with no indexes. +[foo (const «X»), foo (indt «nat»), foo (indt «bool»)] +[foo (indt «nat»), foo (indt «bool»)] +[] +[foo (indt «nat»)] empty_fields_t : positive -> Type : positive -> Type empty_fields : forall n : empty, empty_fields_t (empty_tag n) @@ -5210,41 +5229,26 @@ val_construct (val_tag v) (val_fields v) = Datatypes.Some v Query assignments: Y = global (indc «is_O») -{{ X.a; }} {{ X.a; Nat.add; nat; }} -{{ X.a; }} {{ X.a; Nat.add; nat; O; S; }} -Query assignments: - AllL = {{ X.a; Nat.add; nat; }} - AllS = {{ X.a; Nat.add; nat; O; S; }} - GR = const «X.b» - L = {{ X.a; }} - M = «elpi.tests.test_API_env.HOAS.X» - S = {{ X.a; }} - Spilled_1 = const «X.a» -some - (pglobal (const «toto») - «elpi.tests.test_HOAS.19 elpi.tests.test_HOAS.20») -prod `T1` (sort (typ «elpi.tests.test_HOAS.19»)) c0 \ - prod `T2` (sort (typ «elpi.tests.test_HOAS.20»)) c1 \ prod `x` c0 c2 \ c0 +{{ nat; S; }} +{{ nat; S; }} Query assignments: - Body = some - (pglobal (const «toto») - «elpi.tests.test_HOAS.19 elpi.tests.test_HOAS.20») - C = «titi» - Term = prod `T1` (sort (typ «elpi.tests.test_HOAS.19»)) c0 \ - prod `T2` (sort (typ «elpi.tests.test_HOAS.20»)) c1 \ prod `x` c0 c2 \ c0 -Universe constraints: -UNIVERSES: - {elpi.tests.test_HOAS.20 elpi.tests.test_HOAS.19} |= -ALGEBRAIC UNIVERSES: - {} -UNDEFINED UNIVERSES: - -WEAK CONSTRAINTS: - - + GR = const «Nat.add» + L = {{ nat; S; }} + S = {{ nat; S; }} COQC tests/test_eqb.v -File "./tests/test_API.v", line 204, characters 0-107: -Warning: Option Foo Bar is deprecated [deprecated-option,deprecated] +c0 \ +app [global (const «Z_of_nat»), app [global (const «nat_of_bool»), c0]] +Query assignments: + Res = app + [global (const «map»), global (indt «bool»), global (const «Z»), + fun `x` (global (indt «bool»)) c0 \ + app + [global (const «Z_of_nat»), app [global (const «nat_of_bool»), c0]], + app + [global (indc «cons»), global (indt «bool»), global (indc «true»), + app [global (indc «nil»), global (indt «bool»)]]] + _uvk_268_ = X0 + _uvk_269_ = X1 pglobal (const «toto») X0 pglobal (const «toto») «elpi.tests.test_HOAS.21 elpi.tests.test_HOAS.22» toto @@ -5263,10 +5267,45 @@ WEAK CONSTRAINTS: +{{ X.a; }} {{ X.a; Nat.add; nat; }} +{{ X.a; }} {{ X.a; Nat.add; nat; O; S; }} +Query assignments: + AllL = {{ X.a; Nat.add; nat; }} + AllS = {{ X.a; Nat.add; nat; O; S; }} + GR = const «X.b» + L = {{ X.a; }} + M = «elpi.tests.test_API_env.HOAS.X» + S = {{ X.a; }} + Spilled_1 = const «X.a» Query assignments: Y = app [global (indc «is_S»), app [global (indc «S»), global (indc «O»)], app [global (indc «is_S»), global (indc «O»), global (indc «is_O»)]] +app + [pglobal (const «t») X0, global (indt «nat»), + pglobal (const «fnat») X1] +app + [pglobal (const «t») «elpi.tests.test_HOAS.29», global (indt «nat»), + pglobal (const «fnat») «»] +Query assignments: + T = app + [pglobal (const «t») «elpi.tests.test_HOAS.29», global (indt «nat»), + pglobal (const «fnat») «»] + Ty = global (indt «nat») + univ_inst_3 = «elpi.tests.test_HOAS.29» + univ_inst_4 = «» +Universe constraints: +UNIVERSES: + {elpi.tests.test_HOAS.29} |= + Set <= elpi.tests.test_HOAS.29 + Set = elpi.tests.test_HOAS.29 +ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.29} +UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.29 := Set +WEAK CONSTRAINTS: + + is_pred = fun (n : nat) (Pn : is_nat n) => match @@ -5287,205 +5326,41 @@ : is_nat2nat predn is_add : is_nat2nat2nat Nat.add : is_nat2nat2nat Nat.add -Inductive is_bla : forall H : nat, is_nat H -> bla H -> Type := - is_Bla : forall H : nat, is_nat H -> is_bla 0 is_O (Bla H) - | is_Blu : forall (n : nat) (Pn : is_nat n) (H : bla n), - is_bla n Pn H -> is_bla 1 (is_S 0 is_O) (Blu n H). - -Arguments is_bla _%nat_scope P_ s1 -Arguments is_Bla _%nat_scope P_ -Arguments is_Blu n%nat_scope Pn _ P_ -hello [int 1, int 2, trm (global (indt «nat»)), str x] Query assignments: - T = global (const «int») - X = primitive (uint63 99) -app - [pglobal (const «t») X0, global (indt «nat»), - pglobal (const «fnat») X1] -app - [pglobal (const «t») «elpi.tests.test_HOAS.29», global (indt «nat»), - pglobal (const «fnat») «»] -Query assignments: - T = app - [pglobal (const «t») «elpi.tests.test_HOAS.29», global (indt «nat»), - pglobal (const «fnat») «»] - Ty = global (indt «nat») - univ_inst_3 = «elpi.tests.test_HOAS.29» - univ_inst_4 = «» + R = prod `r` (global (const «ring»)) c0 \ + prod `x` (app [global (const «carr»), c0]) c1 \ + app [global (indt «eq»), app [global (const «carr»), c0], c1, c1] + T = sort (typ «elpi.tests.test_elaborator.75») + _uvk_304_ = c0 \ c1 \ +X0 c0 c1 Universe constraints: UNIVERSES: - {elpi.tests.test_HOAS.29} |= - Set <= elpi.tests.test_HOAS.29 - Set = elpi.tests.test_HOAS.29 + {elpi.tests.test_elaborator.75 elpi.tests.test_elaborator.74 + elpi.tests.test_elaborator.73 elpi.tests.test_elaborator.72 + elpi.tests.test_elaborator.70} |= + ring.u0 <= elpi.tests.test_elaborator.70 + elpi.tests.test_elaborator.70 <= elpi.tests.test_elaborator.75 + elpi.tests.test_elaborator.73 <= elpi.tests.test_elaborator.74 + elpi.tests.test_elaborator.74 <= elpi.tests.test_elaborator.75 ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.29} + {} UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.29 := Set + WEAK CONSTRAINTS: -coq.pp.box (coq.pp.hv 2) - [coq.pp.str Module, coq.pp.spc, coq.pp.str Foo, coq.pp.spc, coq.pp.str :=, - coq.pp.brk 1 0, coq.pp.str body, coq.pp.spc, coq.pp.str End Foo.] -Module - Foo - := - body - End Foo. -fix foo (x : ?e3) (y : ?e4) {struct x} : ?e2 := - match x as x0 return ?e6@{x:=x0} with - | true => S (S (S O)) - | false => y - end -fix foo x y {struct x} := if x as x0 return ?e6@{x:=x0} then 3 else y -COQC tests/test_API2.v -Query assignments: - PDb = [tc-instance (const «reali_is_fin_length») 0, - tc-instance (const «reali_is_vec_length») 0, - tc-instance (const «reali_is_predn») 0, - tc-instance (const «reali_is_plus'») 0, - tc-instance (const «reali_is_nat_S») 0, - tc-instance (const «reali_is_nat_O») 0, - tc-instance (const «reali_is_prim_float») 0, - tc-instance (const «reali_is_prim_float_PF») 0, - tc-instance (const «reali_is_nest_ConsN») 0, - tc-instance (const «reali_is_w_via») 0, - tc-instance (const «reali_is_val_V») 0, - tc-instance (const «reali_is_peano») 0, - tc-instance (const «reali_is_large») 0, - tc-instance (const «reali_is_empty») 0, - tc-instance (const «reali_is_iota_Why») 0, - tc-instance (const «reali_is_nat2nat2nat») 0, - tc-instance (const «reali_is_unit_tt») 0, - tc-instance (const «reali_is_nest_NilN») 0, - tc-instance (const «reali_is_prim_int») 0, - tc-instance (const «reali_is_vect_VCons») 0, - tc-instance (const «reali_is_large_K26») 0, - tc-instance (const «reali_is_large_K25») 0, - tc-instance (const «reali_is_large_K24») 0, - tc-instance (const «reali_is_large_K23») 0, - tc-instance (const «reali_is_large_K22») 0, - tc-instance (const «reali_is_large_K21») 0, - tc-instance (const «reali_is_large_K20») 0, - tc-instance (const «reali_is_large_K19») 0, - tc-instance (const «reali_is_large_K18») 0, - tc-instance (const «reali_is_large_K17») 0, - tc-instance (const «reali_is_large_K16») 0, - tc-instance (const «reali_is_large_K15») 0, - tc-instance (const «reali_is_large_K14») 0, - tc-instance (const «reali_is_large_K13») 0, - tc-instance (const «reali_is_large_K12») 0, - tc-instance (const «reali_is_large_K11») 0, - tc-instance (const «reali_is_large_K10») 0, - tc-instance (const «reali_is_eq_eq_refl») 0, - tc-instance (const «Coverage.reali_is_unit_tt») 0, - tc-instance (const «reali_is_large_K9») 0, - tc-instance (const «reali_is_large_K8») 0, - tc-instance (const «reali_is_large_K7») 0, - tc-instance (const «reali_is_large_K6») 0, - tc-instance (const «reali_is_large_K5») 0, - tc-instance (const «reali_is_large_K4») 0, - tc-instance (const «reali_is_large_K3») 0, - tc-instance (const «reali_is_large_K2») 0, - tc-instance (const «reali_is_large_K1») 0, - tc-instance (const «reali_is_seq_Cons») 0, - tc-instance (const «reali_is_ord_mkOrd») 0, - tc-instance (const «reali_is_peano_Zero») 0, - tc-instance (const «reali_is_peano_Succ») 0, - tc-instance (const «reali_is_fo_record») 0, - tc-instance (const «reali_is_vec_vcons») 0, - tc-instance (const «reali_is_quasidn») 0, - tc-instance (const «reali_is_vect_VNil») 0, - tc-instance (const «reali_is_seq_Nil») 0, - tc-instance (const «reali_is_zeta_Envelope») 0, - tc-instance (const «reali_is_list_cons») 0, - tc-instance (const «exports.reali_is_eq») 0, - tc-instance (const «reali_is_beta_Redex») 0, - tc-instance (const «reali_is_unit») 0, - tc-instance (const «reali_is_test») 0, - tc-instance (const «reali_is_prod») 0, - tc-instance (const «reali_is_pred») 0, - tc-instance (const «reali_is_list») 0, - tc-instance (const «reali_is_bool») 0, - tc-instance (const «reali_is_sigma_bool_Build_sigma_bool») 0, - tc-instance (const «reali_is_option_Some») 0, - tc-instance (const «reali_is_option_None») 0, - tc-instance (const «reali_is_box_peano») 0, - tc-instance (const «reali_is_nat2nat») 0, - tc-instance (const «reali_is_sigma_bool») 0, - tc-instance (const «reali_is_zeta») 0, - tc-instance (const «reali_is_vect») 0, - tc-instance (const «Coverage.reali_is_unit») 0, - tc-instance (const «reali_is_rose») 0, - tc-instance (const «reali_is_pair») 0, - tc-instance (const «reali_is_ord2») 0, - tc-instance (const «reali_is_nest») 0, - tc-instance (const «reali_is_iota») 0, - tc-instance (const «reali_is_enum») 0, - tc-instance (const «Coverage.reali_is_bool») 0, - tc-instance (const «reali_is_beta») 0, - tc-instance (const «reali_is_vec_length_type») 0, - tc-instance (const «reali_is_vec_length_rec») 0, - tc-instance (const «reali_is_pr_record») 0, - tc-instance (const «reali_is_rose_Node») 0, - tc-instance (const «reali_is_rose_Leaf») 0, - tc-instance (const «reali_is_rose_p_Nodep») 0, - tc-instance (const «reali_is_rose_p_Leafp») 0, - tc-instance (const «reali_is_eq») 0, - tc-instance (const «reali_is_is_list») 0, - tc-instance (const «reali_is_w») 0, - tc-instance (const «reali_is_vec_vnil») 0, - tc-instance (const «reali_is_dep_record_Build_dep_record») 0, - tc-instance (const «reali_is_pr_record_Build_pr_record») 0, - tc-instance (const «reali_is_rose_o_Nodeo») 0, - tc-instance (const «reali_is_rose_o_Leafo») 0, - tc-instance (const «reali_is_weirdn») 0, - tc-instance (const «reali_is_pair_Comma») 0, - tc-instance (const «reali_is_dep_record») 0, - tc-instance (const «reali_is_is_zero») 0, - tc-instance (const «reali_is_pa_record») 0, - tc-instance (const «reali_is_fin_FS») 0, - tc-instance (const «reali_is_fin_FO») 0, - tc-instance (const «reali_is_bool_true») 0, - tc-instance (const «reali_is_divmod») 0, - tc-instance (const «reali_is_prim_int_PI») 0, - tc-instance (const «reali_is_list_nil») 0, - tc-instance (const «reali_is_vec») 0, - tc-instance (const «reali_is_snd») 0, - tc-instance (const «reali_is_nat») 0, - tc-instance (const «reali_is_fst») 0, - tc-instance (const «reali_is_fin») 0, - tc-instance (const «reali_is_div») 0, - tc-instance (const «reali_is_bla») 0, - tc-instance (const «reali_is_add») 0, - tc-instance (const «reali_is_rose_p») 0, - tc-instance (const «reali_is_rose_o») 0, - tc-instance (const «reali_is_is_list_is_nil») 0, - tc-instance (const «reali_is_option») 0, - tc-instance (const «reali_is_is_leq») 0, - tc-instance (const «reali_is_bool_false») 0, - tc-instance (const «reali_is_prod_pair») 0, - tc-instance (const «Coverage.reali_is_bool_true») 0, - tc-instance (const «reali_is_val») 0, - tc-instance (const «reali_is_seq») 0, - tc-instance (const «reali_is_ord») 0, - tc-instance (const «reali_is_dyn») 0, - tc-instance (const «reali_is_is_list_is_cons») 0, - tc-instance (const «reali_is_fo_record_Build_fo_record») 0, - tc-instance (const «Coverage.reali_is_bool_false») 0, - tc-instance (const «reali_is_enum_E3») 0, - tc-instance (const «reali_is_enum_E2») 0, - tc-instance (const «reali_is_enum_E1») 0, - tc-instance (const «reali_is_dyn_box») 0, - tc-instance (const «exports.reali_is_eq_eq_refl») 0, - tc-instance (const «reali_is_box_peano_Box») 0, - tc-instance (const «reali_is_ord2_mkOrd2») 0, - tc-instance (const «reali_is_bla_Blu») 0, - tc-instance (const «reali_is_bla_Bla») 0, - tc-instance (const «reali_is_pa_record_Build_pa_record») 0] - Spilled_1 = indt «reali_db» -File "./tests/test_param1.v", line 158, characters 0-30: -Warning: Not a truly recursive fixpoint. [non-recursive,fixpoints] +File "./tests/test_API.v", line 204, characters 0-107: +Warning: Option Foo Bar is deprecated [deprecated-option,deprecated] +Inductive is_bla : forall H : nat, is_nat H -> bla H -> Type := + is_Bla : forall H : nat, is_nat H -> is_bla 0 is_O (Bla H) + | is_Blu : forall (n : nat) (Pn : is_nat n) (H : bla n), + is_bla n Pn H -> is_bla 1 (is_S 0 is_O) (Blu n H). + +Arguments is_bla _%nat_scope P_ s1 +Arguments is_Bla _%nat_scope P_ +Arguments is_Blu n%nat_scope Pn _ P_ +derive.param1_trivial: wrong shape is_nest +. It does not look like a unary parametricity translation of an inductive with no indexes. Query assignments: A4 = «elpi.tests.test_HOAS.36» A5 = «elpi.tests.test_HOAS.37» @@ -5666,11 +5541,9 @@ WEAK CONSTRAINTS: -Query assignments: - T = global (const «float») - X = primitive (float64 993000) -File "./tests/test_API2.v", line 3, characters 0-27: -Warning: Option Foo Bar is deprecated [deprecated-option,deprecated] +hello [int 1, int 2, trm (global (indt «nat»)), str x] +derive.param1_trivial: wrong shape is_vect A PA +. It does not look like a unary parametricity translation of an inductive with no indexes. «elpi.tests.test_HOAS.68» parameter T explicit (sort (typ «elpi.tests.test_HOAS.68»)) c0 \ record F (sort (typ «elpi.tests.test_HOAS.68»)) Build_F @@ -5706,7 +5579,296 @@ WEAK CONSTRAINTS: -Debug: Cannot enforce elpi.apps.derive.tests.test_derive.3312 <= Set +Query assignments: + PDb = [tc-instance (const «reali_is_fin_length») 0, + tc-instance (const «reali_is_vec_length») 0, + tc-instance (const «reali_is_predn») 0, + tc-instance (const «reali_is_plus'») 0, + tc-instance (const «reali_is_nat_S») 0, + tc-instance (const «reali_is_nat_O») 0, + tc-instance (const «reali_is_prim_float») 0, + tc-instance (const «reali_is_prim_float_PF») 0, + tc-instance (const «reali_is_nest_ConsN») 0, + tc-instance (const «reali_is_w_via») 0, + tc-instance (const «reali_is_val_V») 0, + tc-instance (const «reali_is_peano») 0, + tc-instance (const «reali_is_large») 0, + tc-instance (const «reali_is_empty») 0, + tc-instance (const «reali_is_iota_Why») 0, + tc-instance (const «reali_is_nat2nat2nat») 0, + tc-instance (const «reali_is_unit_tt») 0, + tc-instance (const «reali_is_nest_NilN») 0, + tc-instance (const «reali_is_prim_int») 0, + tc-instance (const «reali_is_vect_VCons») 0, + tc-instance (const «reali_is_large_K26») 0, + tc-instance (const «reali_is_large_K25») 0, + tc-instance (const «reali_is_large_K24») 0, + tc-instance (const «reali_is_large_K23») 0, + tc-instance (const «reali_is_large_K22») 0, + tc-instance (const «reali_is_large_K21») 0, + tc-instance (const «reali_is_large_K20») 0, + tc-instance (const «reali_is_large_K19») 0, + tc-instance (const «reali_is_large_K18») 0, + tc-instance (const «reali_is_large_K17») 0, + tc-instance (const «reali_is_large_K16») 0, + tc-instance (const «reali_is_large_K15») 0, + tc-instance (const «reali_is_large_K14») 0, + tc-instance (const «reali_is_large_K13») 0, + tc-instance (const «reali_is_large_K12») 0, + tc-instance (const «reali_is_large_K11») 0, + tc-instance (const «reali_is_large_K10») 0, + tc-instance (const «reali_is_eq_eq_refl») 0, + tc-instance (const «Coverage.reali_is_unit_tt») 0, + tc-instance (const «reali_is_large_K9») 0, + tc-instance (const «reali_is_large_K8») 0, + tc-instance (const «reali_is_large_K7») 0, + tc-instance (const «reali_is_large_K6») 0, + tc-instance (const «reali_is_large_K5») 0, + tc-instance (const «reali_is_large_K4») 0, + tc-instance (const «reali_is_large_K3») 0, + tc-instance (const «reali_is_large_K2») 0, + tc-instance (const «reali_is_large_K1») 0, + tc-instance (const «reali_is_seq_Cons») 0, + tc-instance (const «reali_is_ord_mkOrd») 0, + tc-instance (const «reali_is_peano_Zero») 0, + tc-instance (const «reali_is_peano_Succ») 0, + tc-instance (const «reali_is_fo_record») 0, + tc-instance (const «reali_is_vec_vcons») 0, + tc-instance (const «reali_is_quasidn») 0, + tc-instance (const «reali_is_vect_VNil») 0, + tc-instance (const «reali_is_seq_Nil») 0, + tc-instance (const «reali_is_zeta_Envelope») 0, + tc-instance (const «reali_is_list_cons») 0, + tc-instance (const «exports.reali_is_eq») 0, + tc-instance (const «reali_is_beta_Redex») 0, + tc-instance (const «reali_is_unit») 0, + tc-instance (const «reali_is_test») 0, + tc-instance (const «reali_is_prod») 0, + tc-instance (const «reali_is_pred») 0, + tc-instance (const «reali_is_list») 0, + tc-instance (const «reali_is_bool») 0, + tc-instance (const «reali_is_sigma_bool_Build_sigma_bool») 0, + tc-instance (const «reali_is_option_Some») 0, + tc-instance (const «reali_is_option_None») 0, + tc-instance (const «reali_is_box_peano») 0, + tc-instance (const «reali_is_nat2nat») 0, + tc-instance (const «reali_is_sigma_bool») 0, + tc-instance (const «reali_is_zeta») 0, + tc-instance (const «reali_is_vect») 0, + tc-instance (const «Coverage.reali_is_unit») 0, + tc-instance (const «reali_is_rose») 0, + tc-instance (const «reali_is_pair») 0, + tc-instance (const «reali_is_ord2») 0, + tc-instance (const «reali_is_nest») 0, + tc-instance (const «reali_is_iota») 0, + tc-instance (const «reali_is_enum») 0, + tc-instance (const «Coverage.reali_is_bool») 0, + tc-instance (const «reali_is_beta») 0, + tc-instance (const «reali_is_vec_length_type») 0, + tc-instance (const «reali_is_vec_length_rec») 0, + tc-instance (const «reali_is_pr_record») 0, + tc-instance (const «reali_is_rose_Node») 0, + tc-instance (const «reali_is_rose_Leaf») 0, + tc-instance (const «reali_is_rose_p_Nodep») 0, + tc-instance (const «reali_is_rose_p_Leafp») 0, + tc-instance (const «reali_is_eq») 0, + tc-instance (const «reali_is_is_list») 0, + tc-instance (const «reali_is_w») 0, + tc-instance (const «reali_is_vec_vnil») 0, + tc-instance (const «reali_is_dep_record_Build_dep_record») 0, + tc-instance (const «reali_is_pr_record_Build_pr_record») 0, + tc-instance (const «reali_is_rose_o_Nodeo») 0, + tc-instance (const «reali_is_rose_o_Leafo») 0, + tc-instance (const «reali_is_weirdn») 0, + tc-instance (const «reali_is_pair_Comma») 0, + tc-instance (const «reali_is_dep_record») 0, + tc-instance (const «reali_is_is_zero») 0, + tc-instance (const «reali_is_pa_record») 0, + tc-instance (const «reali_is_fin_FS») 0, + tc-instance (const «reali_is_fin_FO») 0, + tc-instance (const «reali_is_bool_true») 0, + tc-instance (const «reali_is_divmod») 0, + tc-instance (const «reali_is_prim_int_PI») 0, + tc-instance (const «reali_is_list_nil») 0, + tc-instance (const «reali_is_vec») 0, + tc-instance (const «reali_is_snd») 0, + tc-instance (const «reali_is_nat») 0, + tc-instance (const «reali_is_fst») 0, + tc-instance (const «reali_is_fin») 0, + tc-instance (const «reali_is_div») 0, + tc-instance (const «reali_is_bla») 0, + tc-instance (const «reali_is_add») 0, + tc-instance (const «reali_is_rose_p») 0, + tc-instance (const «reali_is_rose_o») 0, + tc-instance (const «reali_is_is_list_is_nil») 0, + tc-instance (const «reali_is_option») 0, + tc-instance (const «reali_is_is_leq») 0, + tc-instance (const «reali_is_bool_false») 0, + tc-instance (const «reali_is_prod_pair») 0, + tc-instance (const «Coverage.reali_is_bool_true») 0, + tc-instance (const «reali_is_val») 0, + tc-instance (const «reali_is_seq») 0, + tc-instance (const «reali_is_ord») 0, + tc-instance (const «reali_is_dyn») 0, + tc-instance (const «reali_is_is_list_is_cons») 0, + tc-instance (const «reali_is_fo_record_Build_fo_record») 0, + tc-instance (const «Coverage.reali_is_bool_false») 0, + tc-instance (const «reali_is_enum_E3») 0, + tc-instance (const «reali_is_enum_E2») 0, + tc-instance (const «reali_is_enum_E1») 0, + tc-instance (const «reali_is_dyn_box») 0, + tc-instance (const «exports.reali_is_eq_eq_refl») 0, + tc-instance (const «reali_is_box_peano_Box») 0, + tc-instance (const «reali_is_ord2_mkOrd2») 0, + tc-instance (const «reali_is_bla_Blu») 0, + tc-instance (const «reali_is_bla_Bla») 0, + tc-instance (const «reali_is_pa_record_Build_pa_record») 0] + Spilled_1 = indt «reali_db» +File "./tests/test_param1.v", line 158, characters 0-30: +Warning: Not a truly recursive fixpoint. [non-recursive,fixpoints] +Query assignments: + T = global (const «int») + X = primitive (uint63 99) +coq.pp.box (coq.pp.hv 2) + [coq.pp.str Module, coq.pp.spc, coq.pp.str Foo, coq.pp.spc, coq.pp.str :=, + coq.pp.brk 1 0, coq.pp.str body, coq.pp.spc, coq.pp.str End Foo.] +Module + Foo + := + body + End Foo. +fix foo (x : ?e3) (y : ?e4) {struct x} : ?e2 := + match x as x0 return ?e6@{x:=x0} with + | true => S (S (S O)) + | false => y + end +fix foo x y {struct x} := if x as x0 return ?e6@{x:=x0} then 3 else y +COQC tests/test_API2.v +«elpi.tests.test_HOAS.70» «elpi.tests.test_HOAS.71» +Universe constraints: UNIVERSES: + {elpi.tests.test_HOAS.71 elpi.tests.test_HOAS.70} |= + ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.71 elpi.tests.test_HOAS.70} + UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.71 + elpi.tests.test_HOAS.70 + WEAK CONSTRAINTS: + + +Universe constraints: UNIVERSES: + {elpi.tests.test_HOAS.71 elpi.tests.test_HOAS.70} |= + elpi.tests.test_HOAS.70 = elpi.tests.test_HOAS.71 + ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.71 elpi.tests.test_HOAS.70} + UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.71 + elpi.tests.test_HOAS.70 := elpi.tests.test_HOAS.71 + WEAK CONSTRAINTS: + + +Query assignments: + GRF = indt «F» + I1 = «elpi.tests.test_HOAS.70» + I2 = «elpi.tests.test_HOAS.71» +Universe constraints: +UNIVERSES: + {elpi.tests.test_HOAS.71 elpi.tests.test_HOAS.70} |= + elpi.tests.test_HOAS.70 = elpi.tests.test_HOAS.71 +ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.71 elpi.tests.test_HOAS.70} +UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.71 + elpi.tests.test_HOAS.70 := elpi.tests.test_HOAS.71 +WEAK CONSTRAINTS: + + +File "./tests/test_API2.v", line 3, characters 0-27: +Warning: Option Foo Bar is deprecated [deprecated-option,deprecated] +«elpi.tests.test_HOAS.72» «» +Universe constraints: UNIVERSES: + {elpi.tests.test_HOAS.72} |= + ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.72} + UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.72 + WEAK CONSTRAINTS: + + +different universe instance lengths +Universe constraints: UNIVERSES: + {elpi.tests.test_HOAS.72} |= + ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.72} + UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.72 + WEAK CONSTRAINTS: + + +Query assignments: + E = different universe instance lengths + GRF = indt «F» + GRfnat = const «fnat» + I1 = «elpi.tests.test_HOAS.72» + I2 = «» +Universe constraints: +UNIVERSES: + {elpi.tests.test_HOAS.72} |= +ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.72} +UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.72 +WEAK CONSTRAINTS: + + +Query assignments: + T = global (const «float») + X = primitive (float64 993000) +empty_eqb : eq_test2 empty empty + : eq_test2 empty empty +unit_eqb : eq_test2 unit unit + : eq_test2 unit unit +peano_eqb : eq_test2 peano peano + : eq_test2 peano peano +option_eqb : forall A : Type, eq_test2 A A -> eq_test2 (option A) (option A) + : forall A : Type, eq_test2 A A -> eq_test2 (option A) (option A) +pair_eqb +: +forall A : Type, +eq_test2 A A -> +forall B : Type, eq_test2 B B -> eq_test2 (pair A B) (pair A B) + : forall A : Type, + eq_test2 A A -> + forall B : Type, eq_test2 B B -> eq_test2 (pair A B) (pair A B) +seq_eqb : forall A : Type, eq_test2 A A -> eq_test2 (seq A) (seq A) + : forall A : Type, eq_test2 A A -> eq_test2 (seq A) (seq A) +rose_eqb : forall A : Type, eq_test2 A A -> eq_test2 (rose A) (rose A) + : forall A : Type, eq_test2 A A -> eq_test2 (rose A) (rose A) +beta_eqb : forall A : Type, eq_test2 A A -> eq_test2 (beta A) (beta A) + : forall A : Type, eq_test2 A A -> eq_test2 (beta A) (beta A) +prim_int_eqb : eq_test2 prim_int prim_int + : eq_test2 prim_int prim_int +fo_record_eqb : eq_test2 fo_record fo_record + : eq_test2 fo_record fo_record +pa_record_eqb +: +forall A : Type, eq_test2 A A -> eq_test2 (pa_record A) (pa_record A) + : forall A : Type, eq_test2 A A -> eq_test2 (pa_record A) (pa_record A) +pr_record_eqb +: +forall A : Type, eq_test2 A A -> eq_test2 (pr_record A) (pr_record A) + : forall A : Type, eq_test2 A A -> eq_test2 (pr_record A) (pr_record A) +enum_eqb : eq_test2 enum enum + : eq_test2 enum enum +sigma_bool_eqb : eq_test2 sigma_bool sigma_bool + : eq_test2 sigma_bool sigma_bool +ord_eqb : forall p1 p2 : peano, eq_test2 (ord p1) (ord p2) + : forall p1 p2 : peano, eq_test2 (ord p1) (ord p2) +ord2_eqb : forall p1 p2 : peano, eq_test2 (ord2 p1) (ord2 p2) + : forall p1 p2 : peano, eq_test2 (ord2 p1) (ord2 p2) +val_eqb : eq_test2 val val + : eq_test2 val val +alias_eqb : eq_test2 alias alias + : eq_test2 alias alias Query assignments: GR = const «Ranalysis5.derivable_pt_lim_CVU» S = {{ BinInt.Z.A'A_left; BinNat.N.A'A_right; PeanoNat.Nat.A'A_right; @@ -7139,51 +7301,154 @@ Ring_polynom.PEpow; RMicromega.CInv; Field_theory.FEdiv; Tauto.EQ; RMicromega.COpp; Field_theory.FEpow; }} Spilled_1 = 3412 - T = 1.633348 -«elpi.tests.test_HOAS.70» «elpi.tests.test_HOAS.71» + T = 4.175587 +Query assignments: + GRF = indt «F» + I1 = «elpi.tests.test_HOAS.73» + I2 = «elpi.tests.test_HOAS.73» + U = «elpi.tests.test_HOAS.73» + UL1 = [«elpi.tests.test_HOAS.73»] +Universe constraints: +UNIVERSES: + {elpi.tests.test_HOAS.73} |= +ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.73} +UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.73 +WEAK CONSTRAINTS: + + +Cannot enforce elpi.tests.test_HOAS.74 = elpi.tests.test_HOAS.75 because +elpi.tests.test_HOAS.75 < elpi.tests.test_HOAS.75 = elpi.tests.test_HOAS.74 +Query assignments: + E = Cannot enforce elpi.tests.test_HOAS.74 = elpi.tests.test_HOAS.75 because +elpi.tests.test_HOAS.75 < elpi.tests.test_HOAS.75 = elpi.tests.test_HOAS.74 + GRF = indt «F» + I1 = «elpi.tests.test_HOAS.74» + I2 = «elpi.tests.test_HOAS.75» + L1 = «elpi.tests.test_HOAS.74» + L2 = «elpi.tests.test_HOAS.75» + U1 = «elpi.tests.test_HOAS.74» + U2 = «elpi.tests.test_HOAS.75» +Universe constraints: +UNIVERSES: + {elpi.tests.test_HOAS.75 elpi.tests.test_HOAS.74} |= + elpi.tests.test_HOAS.74 < elpi.tests.test_HOAS.75 +ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.75 elpi.tests.test_HOAS.74} +UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.75 + elpi.tests.test_HOAS.74 +WEAK CONSTRAINTS: + + +Query assignments: + S = {{ Nat.add; eq; nat; O; }} + Spilled_1 = 4 + T = prod `x` (global (indt «nat»)) c0 \ + app + [global (indt «eq»), X0 c0, + app [global (const «Nat.add»), c0, global (indc «O»)], c0] + _uvk_9_ = c0 \ +X0 c0 +Syntactic constraints: + {c0} : decl c0 `x` (global (indt «nat»)) ?- evar (X0 c0) (X1 c0) (X0 c0) /* suspended on X0 */ + {c0} : decl c0 `x` (global (indt «nat»)) + ?- evar (X2 c0) (sort (typ «elpi.tests.test_API_env.30»)) (X1 c0) /* suspended on X2, X1 */ +Universe constraints: +UNIVERSES: + {elpi.tests.test_API_env.30} |= +ALGEBRAIC UNIVERSES: + {} +UNDEFINED UNIVERSES: + +WEAK CONSTRAINTS: + + +Query assignments: + X1 = «x1» + X2 = «x2» + X3 = «x3» +File "./tests/test_param1.v", line 176, characters 0-66: +Warning: Not a truly recursive fixpoint. [non-recursive,fixpoints] +COQC tests/test_param1_functor.v +COQC tests/test_param1_congr.v Universe constraints: UNIVERSES: - {elpi.tests.test_HOAS.71 elpi.tests.test_HOAS.70} |= + {elpi.tests.test_HOAS.79 elpi.tests.test_HOAS.78} |= + elpi.tests.test_HOAS.78 < elpi.tests.test_HOAS.79 ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.71 elpi.tests.test_HOAS.70} + {elpi.tests.test_HOAS.79 elpi.tests.test_HOAS.78} UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.71 - elpi.tests.test_HOAS.70 + elpi.tests.test_HOAS.79 + elpi.tests.test_HOAS.78 WEAK CONSTRAINTS: +Query assignments: + GRF = indt «F2» + I1 = «elpi.tests.test_HOAS.78» + I2 = «elpi.tests.test_HOAS.79» + L1 = «elpi.tests.test_HOAS.78» + L2 = «elpi.tests.test_HOAS.79» + U1 = «elpi.tests.test_HOAS.78» + U2 = «elpi.tests.test_HOAS.79» +Universe constraints: +UNIVERSES: + {elpi.tests.test_HOAS.79 elpi.tests.test_HOAS.78} |= + elpi.tests.test_HOAS.78 < elpi.tests.test_HOAS.79 + elpi.tests.test_HOAS.78 <= elpi.tests.test_HOAS.79 +ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.79 elpi.tests.test_HOAS.78} +UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.79 + elpi.tests.test_HOAS.78 +WEAK CONSTRAINTS: + + +Query assignments: + M = [[mode-ground], [mode-input]] +Query assignments: + _uvk_317_ = X0 +Debug: Cannot enforce elpi.apps.derive.tests.test_derive.3312 <= Set Universe constraints: UNIVERSES: - {elpi.tests.test_HOAS.71 elpi.tests.test_HOAS.70} |= - elpi.tests.test_HOAS.70 = elpi.tests.test_HOAS.71 + {elpi.tests.test_HOAS.81 elpi.tests.test_HOAS.80} |= + elpi.tests.test_HOAS.80 < elpi.tests.test_HOAS.81 ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.71 elpi.tests.test_HOAS.70} + {elpi.tests.test_HOAS.81} UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.71 - elpi.tests.test_HOAS.70 := elpi.tests.test_HOAS.71 + elpi.tests.test_HOAS.81 + elpi.tests.test_HOAS.80 WEAK CONSTRAINTS: +Cannot enforce elpi.tests.test_HOAS.81 = elpi.tests.test_HOAS.80 because +elpi.tests.test_HOAS.80 < elpi.tests.test_HOAS.81 Query assignments: + E = Cannot enforce elpi.tests.test_HOAS.81 = elpi.tests.test_HOAS.80 because +elpi.tests.test_HOAS.80 < elpi.tests.test_HOAS.81 GRF = indt «F» - I1 = «elpi.tests.test_HOAS.70» - I2 = «elpi.tests.test_HOAS.71» + I1 = «elpi.tests.test_HOAS.80» + I2 = «elpi.tests.test_HOAS.81» + L1 = «elpi.tests.test_HOAS.80» + L2 = «elpi.tests.test_HOAS.81» + U1 = «elpi.tests.test_HOAS.80» + U2 = «elpi.tests.test_HOAS.81» Universe constraints: UNIVERSES: - {elpi.tests.test_HOAS.71 elpi.tests.test_HOAS.70} |= - elpi.tests.test_HOAS.70 = elpi.tests.test_HOAS.71 + {elpi.tests.test_HOAS.81 elpi.tests.test_HOAS.80} |= + elpi.tests.test_HOAS.80 < elpi.tests.test_HOAS.81 ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.71 elpi.tests.test_HOAS.70} + {elpi.tests.test_HOAS.81} UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.71 - elpi.tests.test_HOAS.70 := elpi.tests.test_HOAS.71 + elpi.tests.test_HOAS.81 + elpi.tests.test_HOAS.80 WEAK CONSTRAINTS: +1 +1.000000 Query assignments: - X1 = «x1» - X2 = «x2» - X3 = «x3» -File "./tests/test_param1.v", line 176, characters 0-66: -Warning: Not a truly recursive fixpoint. [non-recursive,fixpoints] + GR = indt «nat» Skipping derivation map on indt «nat» since it has been already run Derivation lens on indt «nat» Derivation lens on indt «nat» failed, continuing @@ -7192,13 +7457,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.004402 +Derivation projK on indt «nat» took 0.008758 Derivation isK on indt «nat» -Derivation isK on indt «nat» took 0.006578 +Derivation isK on indt «nat» took 0.015952 Derivation eq on indt «nat» -Derivation eq on indt «nat» took 0.006305 +Derivation eq on indt «nat» took 0.015519 Derivation invert on indt «nat» -Derivation invert on indt «nat» took 0.008152 +Derivation invert on indt «nat» took 0.025380 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 @@ -7208,7 +7473,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.007487 +Derivation bcongr on indt «nat» took 0.018015 Derivation idx2inv on indt «nat» Derivation idx2inv on indt «nat» failed, continuing Skipping derivation param1_trivial on indt «nat» @@ -7216,15 +7481,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» -COQC tests/test_param1_functor.v -COQC tests/test_param1_congr.v -Derivation eqK on indt «nat» took 0.008449 +Derivation eqK on indt «nat» took 0.024002 Skipping derivation eqbcorrect on indt «nat» since it has been already run Derivation eqcorrect on indt «nat» -Derivation eqcorrect on indt «nat» took 0.003350 +Derivation eqcorrect on indt «nat» took 0.008039 Skipping derivation eqbOK on indt «nat» since it has been already run Derivation eqOK on indt «nat» -Derivation eqOK on indt «nat» took 0.002327 +Derivation eqOK on indt «nat» took 0.007297 nat_eqb : nat -> nat -> bool : nat -> nat -> bool is_nat : nat -> Type @@ -7244,44 +7507,6 @@ : nat -> BinNums.positive nat_fields_t : BinNums.positive -> Type : BinNums.positive -> Type -«elpi.tests.test_HOAS.72» «» -Universe constraints: UNIVERSES: - {elpi.tests.test_HOAS.72} |= - ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.72} - UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.72 - WEAK CONSTRAINTS: - - -different universe instance lengths -Universe constraints: UNIVERSES: - {elpi.tests.test_HOAS.72} |= - ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.72} - UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.72 - WEAK CONSTRAINTS: - - -Query assignments: - E = different universe instance lengths - GRF = indt «F» - GRfnat = const «fnat» - I1 = «elpi.tests.test_HOAS.72» - I2 = «» -Universe constraints: -UNIVERSES: - {elpi.tests.test_HOAS.72} |= -ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.72} -UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.72 -WEAK CONSTRAINTS: - - -Query assignments: - _uvk_317_ = X0 nat_fields : (forall n : nat, nat_fields_t (nat_tag n)) : forall n : nat, nat_fields_t (nat_tag n) nat_construct : (forall p : BinNums.positive, nat_fields_t p -> option nat) @@ -7332,13 +7557,25 @@ list_fields_t A p -> option (list A)) : forall (A : Type) (p : BinNums.positive), list_fields_t A p -> option (list A) +projSucc1 : peano -> peano -> peano + : peano -> peano -> peano +projSome1 : forall A : Type, A -> option A -> A + : forall A : Type, A -> option A -> A +projComma1 : forall A B : Type, A -> B -> pair A B -> A + : forall A B : Type, A -> B -> pair A B -> A list_constructP : (forall (A : Type) (l : list A), list_construct A (list_tag A l) (list_fields A l) = Some l) : forall (A : Type) (l : list A), list_construct A (list_tag A l) (list_fields A l) = Some l +projComma2 : forall A B : Type, A -> B -> pair A B -> B + : forall A B : Type, A -> B -> pair A B -> B +projCons1 : forall A : Type, A -> seq A -> seq A -> A + : forall A : Type, A -> seq A -> seq A -> A list_eqb : (forall A : Type, (A -> A -> bool) -> list A -> list A -> bool) : forall A : Type, (A -> A -> bool) -> list A -> list A -> bool +projCons2 : forall A : Type, A -> seq A -> seq A -> seq A + : forall A : Type, A -> seq A -> seq A -> seq A list_eqb_correct : forall (a : Type) (eqA : a -> a -> bool), eqb_correct eqA -> @@ -7346,43 +7583,6 @@ list_eqb_refl : forall (a : Type) (eqA : a -> a -> bool), eqb_reflexive eqA -> forall x : list a, eqb_refl_on (list_eqb a eqA) x -Query assignments: - S = {{ Nat.add; eq; nat; O; }} - Spilled_1 = 4 - T = prod `x` (global (indt «nat»)) c0 \ - app - [global (indt «eq»), X0 c0, - app [global (const «Nat.add»), c0, global (indc «O»)], c0] - _uvk_9_ = c0 \ -X0 c0 -Syntactic constraints: - {c0} : decl c0 `x` (global (indt «nat»)) ?- evar (X0 c0) (X1 c0) (X0 c0) /* suspended on X0 */ - {c0} : decl c0 `x` (global (indt «nat»)) - ?- evar (X2 c0) (sort (typ «elpi.tests.test_API_env.30»)) (X1 c0) /* suspended on X2, X1 */ -Universe constraints: -UNIVERSES: - {elpi.tests.test_API_env.30} |= -ALGEBRAIC UNIVERSES: - {} -UNDEFINED UNIVERSES: - -WEAK CONSTRAINTS: - - -Query assignments: - M = [[mode-ground], [mode-input]] -projSucc1 : peano -> peano -> peano - : peano -> peano -> peano -projSome1 : forall A : Type, A -> option A -> A - : forall A : Type, A -> option A -> A -projComma1 : forall A B : Type, A -> B -> pair A B -> A - : forall A B : Type, A -> B -> pair A B -> A -projComma2 : forall A B : Type, A -> B -> pair A B -> B - : forall A B : Type, A -> B -> pair A B -> B -projCons1 : forall A : Type, A -> seq A -> seq A -> A - : forall A : Type, A -> seq A -> seq A -> A -projCons2 : forall A : Type, A -> seq A -> seq A -> seq A - : forall A : Type, A -> seq A -> seq A -> seq A projLeaf1 : forall A : Type, A -> rose A -> A : forall A : Type, A -> rose A -> A projNode1 : forall A : Type, seq (rose A) -> rose A -> seq (rose A) @@ -7473,126 +7673,72 @@ projBuild_pr_record2 : forall A : Type, peano -> A -> pr_record A -> A : forall A : Type, peano -> A -> pr_record A -> A COQC tests/test_bcongr.v -Query assignments: - GRF = indt «F» - I1 = «elpi.tests.test_HOAS.73» - I2 = «elpi.tests.test_HOAS.73» - U = «elpi.tests.test_HOAS.73» - UL1 = [«elpi.tests.test_HOAS.73»] -Universe constraints: -UNIVERSES: - {elpi.tests.test_HOAS.73} |= -ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.73} -UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.73 -WEAK CONSTRAINTS: - - -empty_eqb : eq_test2 empty empty - : eq_test2 empty empty -unit_eqb : eq_test2 unit unit - : eq_test2 unit unit -peano_eqb : eq_test2 peano peano - : eq_test2 peano peano -option_eqb : forall A : Type, eq_test2 A A -> eq_test2 (option A) (option A) - : forall A : Type, eq_test2 A A -> eq_test2 (option A) (option A) -pair_eqb -: -forall A : Type, -eq_test2 A A -> -forall B : Type, eq_test2 B B -> eq_test2 (pair A B) (pair A B) - : forall A : Type, - eq_test2 A A -> - forall B : Type, eq_test2 B B -> eq_test2 (pair A B) (pair A B) -seq_eqb : forall A : Type, eq_test2 A A -> eq_test2 (seq A) (seq A) - : forall A : Type, eq_test2 A A -> eq_test2 (seq A) (seq A) -1 -rose_eqb : forall A : Type, eq_test2 A A -> eq_test2 (rose A) (rose A) - : forall A : Type, eq_test2 A A -> eq_test2 (rose A) (rose A) -beta_eqb : forall A : Type, eq_test2 A A -> eq_test2 (beta A) (beta A) - : forall A : Type, eq_test2 A A -> eq_test2 (beta A) (beta A) -prim_int_eqb : eq_test2 prim_int prim_int - : eq_test2 prim_int prim_int -fo_record_eqb : eq_test2 fo_record fo_record - : eq_test2 fo_record fo_record -pa_record_eqb -: -forall A : Type, eq_test2 A A -> eq_test2 (pa_record A) (pa_record A) - : forall A : Type, eq_test2 A A -> eq_test2 (pa_record A) (pa_record A) -pr_record_eqb +is_empty_functor : func is_empty + : func is_empty +is_unit_functor : func is_unit + : func is_unit +is_peano_functor : func is_peano + : func is_peano +is_option_functor : func1 is_option + : func1 is_option +is_pair_functor : func2 is_pair + : func2 is_pair +is_seq_functor : func1 is_seq + : func1 is_seq +is_rose_functor : func1 is_rose + : func1 is_rose +is_vect_functor : -forall A : Type, eq_test2 A A -> eq_test2 (pr_record A) (pr_record A) - : forall A : Type, eq_test2 A A -> eq_test2 (pr_record A) (pr_record A) -enum_eqb : eq_test2 enum enum - : eq_test2 enum enum -sigma_bool_eqb : eq_test2 sigma_bool sigma_bool - : eq_test2 sigma_bool sigma_bool -ord_eqb : forall p1 p2 : peano, eq_test2 (ord p1) (ord p2) - : forall p1 p2 : peano, eq_test2 (ord p1) (ord p2) -ord2_eqb : forall p1 p2 : peano, eq_test2 (ord2 p1) (ord2 p2) - : forall p1 p2 : peano, eq_test2 (ord2 p1) (ord2 p2) -val_eqb : eq_test2 val val - : eq_test2 val val -alias_eqb : eq_test2 alias alias - : eq_test2 alias alias -1.000000 -Cannot enforce elpi.tests.test_HOAS.74 = elpi.tests.test_HOAS.75 because -elpi.tests.test_HOAS.75 < elpi.tests.test_HOAS.75 = elpi.tests.test_HOAS.74 -Query assignments: - E = Cannot enforce elpi.tests.test_HOAS.74 = elpi.tests.test_HOAS.75 because -elpi.tests.test_HOAS.75 < elpi.tests.test_HOAS.75 = elpi.tests.test_HOAS.74 - GRF = indt «F» - I1 = «elpi.tests.test_HOAS.74» - I2 = «elpi.tests.test_HOAS.75» - L1 = «elpi.tests.test_HOAS.74» - L2 = «elpi.tests.test_HOAS.75» - U1 = «elpi.tests.test_HOAS.74» - U2 = «elpi.tests.test_HOAS.75» -Universe constraints: -UNIVERSES: - {elpi.tests.test_HOAS.75 elpi.tests.test_HOAS.74} |= - elpi.tests.test_HOAS.74 < elpi.tests.test_HOAS.75 -ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.75 elpi.tests.test_HOAS.74} -UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.75 - elpi.tests.test_HOAS.74 -WEAK CONSTRAINTS: - - -Universe constraints: UNIVERSES: - {elpi.tests.test_HOAS.79 elpi.tests.test_HOAS.78} |= - elpi.tests.test_HOAS.78 < elpi.tests.test_HOAS.79 - ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.79 elpi.tests.test_HOAS.78} - UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.79 - elpi.tests.test_HOAS.78 - WEAK CONSTRAINTS: - - +forall (A : Type) (P Q : A -> Type), +(forall y : A, P y -> Q y) -> +forall (i : peano) (p : is_peano i) (v : vect A i), +is_vect A P i p v -> is_vect A Q i p v + : forall (A : Type) (P Q : A -> Type), + (forall y : A, P y -> Q y) -> + forall (i : peano) (p : is_peano i) (v : vect A i), + is_vect A P i p v -> is_vect A Q i p v +is_dyn_functor : func is_dyn + : func is_dyn +is_zeta_functor : func1 is_zeta + : func1 is_zeta +is_beta_functor : func1 is_beta + : func1 is_beta +is_iota_functor : func is_iota + : func is_iota +is_large_functor : func is_large + : func is_large +is_prim_int_functor : func is_prim_int + : func is_prim_int +is_prim_float_functor : func is_prim_float + : func is_prim_float +is_fo_record_functor : func is_fo_record + : func is_fo_record +is_pa_record_functor : func1 is_pa_record + : func1 is_pa_record +is_pr_record_functor : func1 is_pr_record + : func1 is_pr_record +is_enum_functor : func is_enum + : func is_enum +is_ord_functor : forall (n : peano) (pn : is_peano n), func (is_ord n pn) + : forall (n : peano) (pn : is_peano n), func (is_ord n pn) +is_ord2_functor : forall (n : peano) (pn : is_peano n), func (is_ord2 n pn) + : forall (n : peano) (pn : is_peano n), func (is_ord2 n pn) +is_val_functor : func is_val + : func is_val Query assignments: - GRF = indt «F2» - I1 = «elpi.tests.test_HOAS.78» - I2 = «elpi.tests.test_HOAS.79» - L1 = «elpi.tests.test_HOAS.78» - L2 = «elpi.tests.test_HOAS.79» - U1 = «elpi.tests.test_HOAS.78» - U2 = «elpi.tests.test_HOAS.79» + GR = indt «F» + I = «elpi.tests.test_HOAS.82» Universe constraints: UNIVERSES: - {elpi.tests.test_HOAS.79 elpi.tests.test_HOAS.78} |= - elpi.tests.test_HOAS.78 < elpi.tests.test_HOAS.79 - elpi.tests.test_HOAS.78 <= elpi.tests.test_HOAS.79 + {elpi.tests.test_HOAS.82} |= ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.79 elpi.tests.test_HOAS.78} + {} UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.79 - elpi.tests.test_HOAS.78 + elpi.tests.test_HOAS.82 WEAK CONSTRAINTS: +COQC tests/test_induction.v congr_is_tt : is_tt = is_tt : is_tt = is_tt congr_is_Zero : is_Zero = is_Zero @@ -7722,111 +7868,96 @@ congr_is_E1 : is_E1 = is_E1 : is_E1 = is_E1 COQC tests/test_param1_trivial.v -Universe constraints: UNIVERSES: - {elpi.tests.test_HOAS.81 elpi.tests.test_HOAS.80} |= - elpi.tests.test_HOAS.80 < elpi.tests.test_HOAS.81 - ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.81} - UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.81 - elpi.tests.test_HOAS.80 - WEAK CONSTRAINTS: - - -Cannot enforce elpi.tests.test_HOAS.81 = elpi.tests.test_HOAS.80 because -elpi.tests.test_HOAS.80 < elpi.tests.test_HOAS.81 Query assignments: - E = Cannot enforce elpi.tests.test_HOAS.81 = elpi.tests.test_HOAS.80 because -elpi.tests.test_HOAS.80 < elpi.tests.test_HOAS.81 - GRF = indt «F» - I1 = «elpi.tests.test_HOAS.80» - I2 = «elpi.tests.test_HOAS.81» - L1 = «elpi.tests.test_HOAS.80» - L2 = «elpi.tests.test_HOAS.81» - U1 = «elpi.tests.test_HOAS.80» - U2 = «elpi.tests.test_HOAS.81» + GR = indt «F» +pglobal (indt «F») «elpi.tests.test_HOAS.84» +«elpi.tests.test_HOAS.84» +pglobal (indc «Build_F») «elpi.tests.test_HOAS.84» +Query assignments: + GR = indt «F» + GR1 = indc «Build_F» + I = «elpi.tests.test_HOAS.84» + Spilled_1 = pglobal (indc «Build_F») «elpi.tests.test_HOAS.84» + Spilled_2 = pglobal (indt «F») «elpi.tests.test_HOAS.84» Universe constraints: UNIVERSES: - {elpi.tests.test_HOAS.81 elpi.tests.test_HOAS.80} |= - elpi.tests.test_HOAS.80 < elpi.tests.test_HOAS.81 + {elpi.tests.test_HOAS.84} |= ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.81} + {} UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.81 - elpi.tests.test_HOAS.80 + elpi.tests.test_HOAS.84 WEAK CONSTRAINTS: -is_empty_functor : func is_empty - : func is_empty -is_unit_functor : func is_unit - : func is_unit -is_peano_functor : func is_peano - : func is_peano -is_option_functor : func1 is_option - : func1 is_option -is_pair_functor : func2 is_pair - : func2 is_pair -is_seq_functor : func1 is_seq - : func1 is_seq -is_rose_functor : func1 is_rose - : func1 is_rose -is_vect_functor -: -forall (A : Type) (P Q : A -> Type), -(forall y : A, P y -> Q y) -> -forall (i : peano) (p : is_peano i) (v : vect A i), -is_vect A P i p v -> is_vect A Q i p v - : forall (A : Type) (P Q : A -> Type), - (forall y : A, P y -> Q y) -> - forall (i : peano) (p : is_peano i) (v : vect A i), - is_vect A P i p v -> is_vect A Q i p v -is_dyn_functor : func is_dyn - : func is_dyn -is_zeta_functor : func1 is_zeta - : func1 is_zeta -is_beta_functor : func1 is_beta - : func1 is_beta -is_iota_functor : func is_iota - : func is_iota -is_large_functor : func is_large - : func is_large -is_prim_int_functor : func is_prim_int - : func is_prim_int -is_prim_float_functor : func is_prim_float - : func is_prim_float -is_fo_record_functor : func is_fo_record - : func is_fo_record -is_pa_record_functor : func1 is_pa_record - : func1 is_pa_record -is_pr_record_functor : func1 is_pr_record - : func1 is_pr_record -is_enum_functor : func is_enum - : func is_enum -is_ord_functor : forall (n : peano) (pn : is_peano n), func (is_ord n pn) - : forall (n : peano) (pn : is_peano n), func (is_ord n pn) -is_ord2_functor : forall (n : peano) (pn : is_peano n), func (is_ord2 n pn) - : forall (n : peano) (pn : is_peano n), func (is_ord2 n pn) -is_val_functor : func is_val - : func is_val -COQC tests/test_induction.v +«elpi.tests.test_HOAS.85 elpi.tests.test_HOAS.85» Query assignments: - GR = indt «nat» + I = «elpi.tests.test_HOAS.85 elpi.tests.test_HOAS.85» + U = «elpi.tests.test_HOAS.85» +Universe constraints: +UNIVERSES: + {elpi.tests.test_HOAS.85} |= +ALGEBRAIC UNIVERSES: + {} +UNDEFINED UNIVERSES: + +WEAK CONSTRAINTS: + + File "./tests/test_API2.v", line 114, characters 0-16: Warning: Option Foo Bar is deprecated [deprecated-option,deprecated] +Universe constraints: +------------------ +Universe constraints: UNIVERSES: + {elpi.tests.test_HOAS.87 elpi.tests.test_HOAS.86} |= + elpi.tests.test_HOAS.86 < elpi.tests.test_HOAS.87 + ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.87 elpi.tests.test_HOAS.86} + UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.87 + elpi.tests.test_HOAS.86 + WEAK CONSTRAINTS: + + +Universe constraints: UNIVERSES: + {elpi.tests.test_HOAS.87 elpi.tests.test_HOAS.86} |= + elpi.tests.test_HOAS.86 < elpi.tests.test_HOAS.87 + ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.87 elpi.tests.test_HOAS.86} + UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.87 + elpi.tests.test_HOAS.86 + WEAK CONSTRAINTS: + + Query assignments: - GR = indt «F» - I = «elpi.tests.test_HOAS.82» + Body = sort (typ «elpi.tests.test_HOAS.86») + LX = «elpi.tests.test_HOAS.86» + LY = «elpi.tests.test_HOAS.87» + Type = sort (typ «elpi.tests.test_HOAS.87») + UX = «elpi.tests.test_HOAS.86» + UY = «elpi.tests.test_HOAS.87» Universe constraints: UNIVERSES: - {elpi.tests.test_HOAS.82} |= + {u2 u1} |= u1 < u2 ALGEBRAIC UNIVERSES: - {} + {u2 u1} UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.82 + elpi.tests.test_HOAS.87 + elpi.tests.test_HOAS.86 WEAK CONSTRAINTS: +poly@{u1 u2} : Type@{u2} +(* u1 u2 |= u1 < u2 *) + +poly is universe polymorphic +poly is transparent +Expands to: Constant elpi.tests.test_HOAS.poly +poly@{Set +elpi.tests.test_HOAS.88} + : Type@{elpi.tests.test_HOAS.88} +(* {elpi.tests.test_HOAS.88} |= Set < elpi.tests.test_HOAS.88 *) +Box not a defined object. unit_bcongr_tt : reflect (tt = tt) true : reflect (tt = tt) true peano_bcongr_Zero : reflect (Zero = Zero) true @@ -7978,167 +8109,6 @@ COQC tests/test_eqK.v File "./tests/test_API2.v", line 122, characters 0-14: Warning: Option Foo Bar is deprecated [deprecated-option,deprecated] -Query assignments: - GR = indt «F» -pglobal (indt «F») «elpi.tests.test_HOAS.84» -«elpi.tests.test_HOAS.84» -pglobal (indc «Build_F») «elpi.tests.test_HOAS.84» -Query assignments: - GR = indt «F» - GR1 = indc «Build_F» - I = «elpi.tests.test_HOAS.84» - Spilled_1 = pglobal (indc «Build_F») «elpi.tests.test_HOAS.84» - Spilled_2 = pglobal (indt «F») «elpi.tests.test_HOAS.84» -Universe constraints: -UNIVERSES: - {elpi.tests.test_HOAS.84} |= -ALGEBRAIC UNIVERSES: - {} -UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.84 -WEAK CONSTRAINTS: - - -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 -Skipping derivation param2 on indt «nat» since the user did not select it -Skipping derivation tag on indt «nat» since the user did not select it -Skipping derivation eqType_ast on indt «nat» -since the user did not select it -Skipping derivation projK on indt «nat» since it has been already run -Skipping derivation isK on indt «nat» since it has been already run -Skipping derivation eq on indt «nat» since it has been already run -Skipping derivation invert on indt «nat» since the user did not select it -Skipping derivation lens_laws on indt «nat» -since the user did not select it -Skipping derivation param1_congr on indt «nat» -since it has been already run -Skipping derivation param1_inhab on indt «nat» -since it has been already run -Skipping derivation param1_functor on indt «nat» -since it has been already run -Skipping derivation fields on indt «nat» since the user did not select it -Skipping derivation bcongr on indt «nat» since it has been already run -Skipping derivation idx2inv on indt «nat» since the user did not select it -Skipping derivation param1_trivial on indt «nat» -since it has been already run -Skipping derivation induction on indt «nat» since it has been already run -Skipping derivation eqb on indt «nat» since the user did not select it -Skipping derivation eqK on indt «nat» since it has been already run -Skipping derivation eqbcorrect on indt «nat» -since the user did not select it -Skipping derivation eqcorrect on indt «nat» since it has been already run -Skipping derivation eqbOK on indt «nat» since the user did not select it -Skipping derivation eqOK on indt «nat» since it has been already run -derive.param1_trivial: wrong shape is_t A PA -. It does not look like a unary parametricity translation of an inductive with no indexes. -«elpi.tests.test_HOAS.85 elpi.tests.test_HOAS.85» -Query assignments: - I = «elpi.tests.test_HOAS.85 elpi.tests.test_HOAS.85» - U = «elpi.tests.test_HOAS.85» -Universe constraints: -UNIVERSES: - {elpi.tests.test_HOAS.85} |= -ALGEBRAIC UNIVERSES: - {} -UNDEFINED UNIVERSES: - -WEAK CONSTRAINTS: - - -Vector.t_eq - : (forall A : Type, - (A -> A -> bool) -> forall n : nat, Vector.t A n -> Vector.t A n -> bool) - : forall A : Type, - (A -> A -> bool) -> - forall n : nat, Vector.t A n -> Vector.t A n -> bool -Vector.t_isk_nil : (forall (A : Type) (n : nat), Vector.t A n -> bool) - : forall (A : Type) (n : nat), Vector.t A n -> bool -Vector.t_isk_cons : (forall (A : Type) (n : nat), Vector.t A n -> bool) - : forall (A : Type) (n : nat), Vector.t A n -> bool -Vector.t_map - : (forall A B : Type, - (A -> B) -> forall n : nat, Vector.t A n -> Vector.t B n) - : forall A B : Type, - (A -> B) -> forall n : nat, Vector.t A n -> Vector.t B n -Vector.t_getk_cons1 - : (forall (A : Type) (n : nat), - A -> forall m : nat, Vector.t A m -> Vector.t A n -> A) - : forall (A : Type) (n : nat), - A -> forall m : nat, Vector.t A m -> Vector.t A n -> A -Vector.t_getk_cons2 - : (forall (A : Type) (n : nat), - A -> forall m : nat, Vector.t A m -> Vector.t A n -> nat) - : forall (A : Type) (n : nat), - A -> forall m : nat, Vector.t A m -> Vector.t A n -> nat -Vector.t_getk_cons3 - : (forall (A : Type) (n : nat), - A -> - forall m : nat, Vector.t A m -> Vector.t A n -> {k : nat & Vector.t A k}) - : forall (A : Type) (n : nat), - A -> - forall m : nat, - Vector.t A m -> Vector.t A n -> {k : nat & Vector.t A k} -Vector.is_t - : (forall A : Type, - (A -> Type) -> forall n : nat, is_nat n -> Vector.t A n -> Type) - : forall A : Type, - (A -> Type) -> forall n : nat, is_nat n -> Vector.t A n -> Type -Vector.is_nil - : (forall (A : Type) (PA : A -> Type), - Vector.is_t A PA 0 is_O (Vector.nil A)) - : forall (A : Type) (PA : A -> Type), - Vector.is_t A PA 0 is_O (Vector.nil A) -Vector.is_cons - : (forall (A : Type) (PA : A -> Type) (a : A), - PA a -> - forall (n : nat) (Pn : is_nat n) (H : Vector.t A n), - Vector.is_t A PA n Pn H -> - Vector.is_t A PA (S n) (is_S n Pn) (Vector.cons A a n H)) - : forall (A : Type) (PA : A -> Type) (a : A), - PA a -> - forall (n : nat) (Pn : is_nat n) (H : Vector.t A n), - Vector.is_t A PA n Pn H -> - Vector.is_t A PA (S n) (is_S n Pn) (Vector.cons A a n H) -Vector.is_t_functor - : (forall (A : Type) (PA QA : A -> Type), - (forall x : A, PA x -> QA x) -> - forall (n : nat) (nR : is_nat n) (v : Vector.t A n), - Vector.is_t A PA n nR v -> Vector.is_t A QA n nR v) - : forall (A : Type) (PA QA : A -> Type), - (forall x : A, PA x -> QA x) -> - forall (n : nat) (nR : is_nat n) (v : Vector.t A n), - Vector.is_t A PA n nR v -> Vector.is_t A QA n nR v -Vector.t_induction - : (forall (A : Type) (PA : A -> Type) - (P : forall n : nat, is_nat n -> Vector.t A n -> Type), - P 0 is_O (Vector.nil A) -> - (forall a : A, - PA a -> - forall (m : nat) (mR : is_nat m) (v : Vector.t A m), - P m mR v -> P (S m) (is_S m mR) (Vector.cons A a m v)) -> - forall (n : nat) (nR : is_nat n) (v : Vector.t A n), - Vector.is_t A PA n nR v -> P n nR v) - : forall (A : Type) (PA : A -> Type) - (P : forall n : nat, is_nat n -> Vector.t A n -> Type), - P 0 is_O (Vector.nil A) -> - (forall a : A, - PA a -> - forall (m : nat) (mR : is_nat m) (v : Vector.t A m), - P m mR v -> P (S m) (is_S m mR) (Vector.cons A a m v)) -> - forall (n : nat) (nR : is_nat n) (v : Vector.t A n), - Vector.is_t A PA n nR v -> P n nR v -Vector.t_tag - : (forall (A : Type) (i : nat), Vector.t A i -> BinNums.positive) - : forall (A : Type) (i : nat), Vector.t A i -> BinNums.positive -Query assignments: - C1 = «Nat.add» - C2 = «times» - X1 = tt - X2 = ff -W_tag : (forall A : Type, W A -> BinNums.positive) - : forall A : Type, W A -> BinNums.positive 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) @@ -8812,61 +8782,6 @@ is_ord p Pp o1 -> forall o2 : ord p, is_ord p Pp o2 -> P (mkOrd2 p o1 o2)) -> forall o : ord2 p, is_ord2 p Pp o -> P o -Universe constraints: ------------------- -Universe constraints: UNIVERSES: - {elpi.tests.test_HOAS.87 elpi.tests.test_HOAS.86} |= - elpi.tests.test_HOAS.86 < elpi.tests.test_HOAS.87 - ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.87 elpi.tests.test_HOAS.86} - UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.87 - elpi.tests.test_HOAS.86 - WEAK CONSTRAINTS: - - -Universe constraints: UNIVERSES: - {elpi.tests.test_HOAS.87 elpi.tests.test_HOAS.86} |= - elpi.tests.test_HOAS.86 < elpi.tests.test_HOAS.87 - ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.87 elpi.tests.test_HOAS.86} - UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.87 - elpi.tests.test_HOAS.86 - WEAK CONSTRAINTS: - - -Query assignments: - Body = sort (typ «elpi.tests.test_HOAS.86») - LX = «elpi.tests.test_HOAS.86» - LY = «elpi.tests.test_HOAS.87» - Type = sort (typ «elpi.tests.test_HOAS.87») - UX = «elpi.tests.test_HOAS.86» - UY = «elpi.tests.test_HOAS.87» -Universe constraints: -UNIVERSES: - {u2 u1} |= u1 < u2 -ALGEBRAIC UNIVERSES: - {u2 u1} -UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.87 - elpi.tests.test_HOAS.86 -WEAK CONSTRAINTS: - - -poly@{u1 u2} : Type@{u2} -(* u1 u2 |= u1 < u2 *) - -poly is universe polymorphic -poly is transparent -Expands to: Constant elpi.tests.test_HOAS.poly -poly@{Set -elpi.tests.test_HOAS.88} - : Type@{elpi.tests.test_HOAS.88} -(* {elpi.tests.test_HOAS.88} |= Set < elpi.tests.test_HOAS.88 *) -Box not a defined object. -Query assignments: - C1 = «x» sort (typ «Set») Query assignments: U = «elpi.tests.test_HOAS.89» @@ -8887,33 +8802,71 @@ Arguments tree A%type_scope Arguments leaf A%type_scope _ Arguments node A%type_scope _ _%list_scope -XXX.rtree_tag : (forall A : Type, rtree A -> BinNums.positive) - : forall A : Type, rtree A -> BinNums.positive -XXX.rtree_fields_t : Type -> BinNums.positive -> Type - : Type -> BinNums.positive -> Type -XXX.rtree_fields - : (forall (A : Type) (l : rtree A), - XXX.rtree_fields_t A (XXX.rtree_tag A l)) - : forall (A : Type) (l : rtree A), - XXX.rtree_fields_t A (XXX.rtree_tag A l) -XXX.rtree_construct - : (forall (A : Type) (p : BinNums.positive), - XXX.rtree_fields_t A p -> option (rtree A)) - : forall (A : Type) (p : BinNums.positive), - XXX.rtree_fields_t A p -> option (rtree A) -XXX.rtree_constructP - : (forall (A : Type) (l : rtree A), - XXX.rtree_construct A (XXX.rtree_tag A l) (XXX.rtree_fields A l) = - Some l) - : forall (A : Type) (l : rtree A), - XXX.rtree_construct A (XXX.rtree_tag A l) (XXX.rtree_fields A l) = - Some l -XXX.rtree_eqb - : (forall A : Type, (A -> A -> bool) -> rtree A -> rtree A -> bool) - : forall A : Type, (A -> A -> bool) -> rtree A -> rtree A -> bool +parameter A explicit (sort (typ «elpi.tests.test_HOAS.98»)) c0 \ + inductive tree tt (arity (sort (typ «elpi.tests.test_HOAS.99»))) c1 \ + [constructor leaf (arity (prod `_` c0 c2 \ c1)), + constructor node + (arity + (prod `_` c0 c2 \ prod `_` (app [global (indt «list»), c1]) c3 \ c1))] +Universe constraints: UNIVERSES: + {elpi.tests.test_HOAS.103 elpi.tests.test_HOAS.102 + elpi.tests.test_HOAS.101 elpi.tests.test_HOAS.100 + elpi.tests.test_HOAS.99 elpi.tests.test_HOAS.98} |= + elpi.tests.test_HOAS.98 < elpi.tests.test_HOAS.100 + elpi.tests.test_HOAS.99 < elpi.tests.test_HOAS.101 + Set <= elpi.tests.test_HOAS.99 + Set <= elpi.tests.test_HOAS.103 + elpi.tests.test_HOAS.98 <= list.u0 + elpi.tests.test_HOAS.98 <= elpi.tests.test_HOAS.99 + elpi.tests.test_HOAS.98 <= elpi.tests.test_HOAS.102 + elpi.tests.test_HOAS.98 <= elpi.tests.test_HOAS.103 + elpi.tests.test_HOAS.99 <= list.u0 + elpi.tests.test_HOAS.99 <= elpi.tests.test_HOAS.102 + elpi.tests.test_HOAS.99 <= elpi.tests.test_HOAS.103 + elpi.tests.test_HOAS.102 <= elpi.tests.test_HOAS.99 + elpi.tests.test_HOAS.103 <= elpi.tests.test_HOAS.99 + ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.98} + UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.98 + WEAK CONSTRAINTS: + + Query assignments: - C1 = «x» - M = «elpi.tests.test_API2.xx» + D = parameter A explicit (sort (typ «elpi.tests.test_HOAS.98»)) c0 \ + inductive tree tt (arity (sort (typ «elpi.tests.test_HOAS.99»))) c1 \ + [constructor leaf (arity (prod `_` c0 c2 \ c1)), + constructor node + (arity + (prod `_` c0 c2 \ prod `_` (app [global (indt «list»), c1]) c3 \ c1))] + I = «tree» + univ_inst_5 = X0 +Universe constraints: +UNIVERSES: + {elpi.tests.test_HOAS.103 elpi.tests.test_HOAS.102 elpi.tests.test_HOAS.101 + elpi.tests.test_HOAS.100} |= + M.tree.u0 < elpi.tests.test_HOAS.100 + M.tree.u1 < elpi.tests.test_HOAS.101 + Set <= M.tree.u1 + Set <= elpi.tests.test_HOAS.103 + M.tree.u0 <= elpi.tests.test_HOAS.102 + M.tree.u0 <= elpi.tests.test_HOAS.103 + M.tree.u1 <= elpi.tests.test_HOAS.102 + M.tree.u1 <= elpi.tests.test_HOAS.103 + elpi.tests.test_HOAS.102 <= M.tree.u1 + elpi.tests.test_HOAS.103 <= M.tree.u1 +ALGEBRAIC UNIVERSES: + {M.tree.u0} +UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.98 +WEAK CONSTRAINTS: + + +Query assignments: + C1 = «Nat.add» + C2 = «times» + X1 = tt + X2 = ff eq_axiom_tt : eq_axiom_at unit unit_eq tt : eq_axiom_at unit unit_eq tt eq_axiom_Zero : eq_axiom_at peano peano_eq Zero @@ -9040,6 +8993,162 @@ eq_axiom_E3 : eq_axiom_at enum enum_eq E3 : eq_axiom_at enum enum_eq E3 COQC tests/test_eqcorrect.v +Query assignments: + C1 = «x» +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 +Skipping derivation param2 on indt «nat» since the user did not select it +Skipping derivation tag on indt «nat» since the user did not select it +Skipping derivation eqType_ast on indt «nat» +since the user did not select it +Skipping derivation projK on indt «nat» since it has been already run +Skipping derivation isK on indt «nat» since it has been already run +Skipping derivation eq on indt «nat» since it has been already run +Skipping derivation invert on indt «nat» since the user did not select it +Skipping derivation lens_laws on indt «nat» +since the user did not select it +Skipping derivation param1_congr on indt «nat» +since it has been already run +Skipping derivation param1_inhab on indt «nat» +since it has been already run +Skipping derivation param1_functor on indt «nat» +since it has been already run +Skipping derivation fields on indt «nat» since the user did not select it +Skipping derivation bcongr on indt «nat» since it has been already run +Skipping derivation idx2inv on indt «nat» since the user did not select it +Skipping derivation param1_trivial on indt «nat» +since it has been already run +Skipping derivation induction on indt «nat» since it has been already run +Skipping derivation eqb on indt «nat» since the user did not select it +Skipping derivation eqK on indt «nat» since it has been already run +Skipping derivation eqbcorrect on indt «nat» +since the user did not select it +Skipping derivation eqcorrect on indt «nat» since it has been already run +Skipping derivation eqbOK on indt «nat» since the user did not select it +Skipping derivation eqOK on indt «nat» since it has been already run +Query assignments: + C1 = «x» + M = «elpi.tests.test_API2.xx» +derive.param1_trivial: wrong shape is_t A PA +. It does not look like a unary parametricity translation of an inductive with no indexes. +Vector.t_eq + : (forall A : Type, + (A -> A -> bool) -> forall n : nat, Vector.t A n -> Vector.t A n -> bool) + : forall A : Type, + (A -> A -> bool) -> + forall n : nat, Vector.t A n -> Vector.t A n -> bool +Vector.t_isk_nil : (forall (A : Type) (n : nat), Vector.t A n -> bool) + : forall (A : Type) (n : nat), Vector.t A n -> bool +Vector.t_isk_cons : (forall (A : Type) (n : nat), Vector.t A n -> bool) + : forall (A : Type) (n : nat), Vector.t A n -> bool +Vector.t_map + : (forall A B : Type, + (A -> B) -> forall n : nat, Vector.t A n -> Vector.t B n) + : forall A B : Type, + (A -> B) -> forall n : nat, Vector.t A n -> Vector.t B n +Vector.t_getk_cons1 + : (forall (A : Type) (n : nat), + A -> forall m : nat, Vector.t A m -> Vector.t A n -> A) + : forall (A : Type) (n : nat), + A -> forall m : nat, Vector.t A m -> Vector.t A n -> A +Vector.t_getk_cons2 + : (forall (A : Type) (n : nat), + A -> forall m : nat, Vector.t A m -> Vector.t A n -> nat) + : forall (A : Type) (n : nat), + A -> forall m : nat, Vector.t A m -> Vector.t A n -> nat +Vector.t_getk_cons3 + : (forall (A : Type) (n : nat), + A -> + forall m : nat, Vector.t A m -> Vector.t A n -> {k : nat & Vector.t A k}) + : forall (A : Type) (n : nat), + A -> + forall m : nat, + Vector.t A m -> Vector.t A n -> {k : nat & Vector.t A k} +Vector.is_t + : (forall A : Type, + (A -> Type) -> forall n : nat, is_nat n -> Vector.t A n -> Type) + : forall A : Type, + (A -> Type) -> forall n : nat, is_nat n -> Vector.t A n -> Type +Vector.is_nil + : (forall (A : Type) (PA : A -> Type), + Vector.is_t A PA 0 is_O (Vector.nil A)) + : forall (A : Type) (PA : A -> Type), + Vector.is_t A PA 0 is_O (Vector.nil A) +Vector.is_cons + : (forall (A : Type) (PA : A -> Type) (a : A), + PA a -> + forall (n : nat) (Pn : is_nat n) (H : Vector.t A n), + Vector.is_t A PA n Pn H -> + Vector.is_t A PA (S n) (is_S n Pn) (Vector.cons A a n H)) + : forall (A : Type) (PA : A -> Type) (a : A), + PA a -> + forall (n : nat) (Pn : is_nat n) (H : Vector.t A n), + Vector.is_t A PA n Pn H -> + Vector.is_t A PA (S n) (is_S n Pn) (Vector.cons A a n H) +Vector.is_t_functor + : (forall (A : Type) (PA QA : A -> Type), + (forall x : A, PA x -> QA x) -> + forall (n : nat) (nR : is_nat n) (v : Vector.t A n), + Vector.is_t A PA n nR v -> Vector.is_t A QA n nR v) + : forall (A : Type) (PA QA : A -> Type), + (forall x : A, PA x -> QA x) -> + forall (n : nat) (nR : is_nat n) (v : Vector.t A n), + Vector.is_t A PA n nR v -> Vector.is_t A QA n nR v +Vector.t_induction + : (forall (A : Type) (PA : A -> Type) + (P : forall n : nat, is_nat n -> Vector.t A n -> Type), + P 0 is_O (Vector.nil A) -> + (forall a : A, + PA a -> + forall (m : nat) (mR : is_nat m) (v : Vector.t A m), + P m mR v -> P (S m) (is_S m mR) (Vector.cons A a m v)) -> + forall (n : nat) (nR : is_nat n) (v : Vector.t A n), + Vector.is_t A PA n nR v -> P n nR v) + : forall (A : Type) (PA : A -> Type) + (P : forall n : nat, is_nat n -> Vector.t A n -> Type), + P 0 is_O (Vector.nil A) -> + (forall a : A, + PA a -> + forall (m : nat) (mR : is_nat m) (v : Vector.t A m), + P m mR v -> P (S m) (is_S m mR) (Vector.cons A a m v)) -> + forall (n : nat) (nR : is_nat n) (v : Vector.t A n), + Vector.is_t A PA n nR v -> P n nR v +Vector.t_tag + : (forall (A : Type) (i : nat), Vector.t A i -> BinNums.positive) + : forall (A : Type) (i : nat), Vector.t A i -> BinNums.positive +W_tag : (forall A : Type, W A -> BinNums.positive) + : forall A : Type, W A -> BinNums.positive +Query assignments: + C1 = «x» + M = «elpi.tests.test_API2.xx2» +Query assignments: + C1 = «x» + M = «elpi.tests.test_API2.xx3» +XXX.rtree_tag : (forall A : Type, rtree A -> BinNums.positive) + : forall A : Type, rtree A -> BinNums.positive +XXX.rtree_fields_t : Type -> BinNums.positive -> Type + : Type -> BinNums.positive -> Type +XXX.rtree_fields + : (forall (A : Type) (l : rtree A), + XXX.rtree_fields_t A (XXX.rtree_tag A l)) + : forall (A : Type) (l : rtree A), + XXX.rtree_fields_t A (XXX.rtree_tag A l) +XXX.rtree_construct + : (forall (A : Type) (p : BinNums.positive), + XXX.rtree_fields_t A p -> option (rtree A)) + : forall (A : Type) (p : BinNums.positive), + XXX.rtree_fields_t A p -> option (rtree A) +XXX.rtree_constructP + : (forall (A : Type) (l : rtree A), + XXX.rtree_construct A (XXX.rtree_tag A l) (XXX.rtree_fields A l) = + Some l) + : forall (A : Type) (l : rtree A), + XXX.rtree_construct A (XXX.rtree_tag A l) (XXX.rtree_fields A l) = + Some l +XXX.rtree_eqb + : (forall A : Type, (A -> A -> bool) -> rtree A -> rtree A -> bool) + : forall A : Type, (A -> A -> bool) -> rtree A -> rtree A -> bool derive.param1_trivial: wrong shape is_triv . It does not look like a unary parametricity translation of an inductive with no indexes. triv.induction @@ -9053,116 +9162,6 @@ (forall (x : Coverage.unit) (Px : is_unit x), P x Px (more x)) -> forall (u : Coverage.unit) (p : is_unit u) (s : triv u), triv.is_triv u p s -> P u p s -parameter A explicit (sort (typ «elpi.tests.test_HOAS.98»)) c0 \ - inductive tree tt (arity (sort (typ «elpi.tests.test_HOAS.99»))) c1 \ - [constructor leaf (arity (prod `_` c0 c2 \ c1)), - constructor node - (arity - (prod `_` c0 c2 \ prod `_` (app [global (indt «list»), c1]) c3 \ c1))] -Universe constraints: UNIVERSES: - {elpi.tests.test_HOAS.103 elpi.tests.test_HOAS.102 - elpi.tests.test_HOAS.101 elpi.tests.test_HOAS.100 - elpi.tests.test_HOAS.99 elpi.tests.test_HOAS.98} |= - elpi.tests.test_HOAS.98 < elpi.tests.test_HOAS.100 - elpi.tests.test_HOAS.99 < elpi.tests.test_HOAS.101 - Set <= elpi.tests.test_HOAS.99 - Set <= elpi.tests.test_HOAS.103 - elpi.tests.test_HOAS.98 <= list.u0 - elpi.tests.test_HOAS.98 <= elpi.tests.test_HOAS.99 - elpi.tests.test_HOAS.98 <= elpi.tests.test_HOAS.102 - elpi.tests.test_HOAS.98 <= elpi.tests.test_HOAS.103 - elpi.tests.test_HOAS.99 <= list.u0 - elpi.tests.test_HOAS.99 <= elpi.tests.test_HOAS.102 - elpi.tests.test_HOAS.99 <= elpi.tests.test_HOAS.103 - elpi.tests.test_HOAS.102 <= elpi.tests.test_HOAS.99 - elpi.tests.test_HOAS.103 <= elpi.tests.test_HOAS.99 - ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.98} - UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.98 - WEAK CONSTRAINTS: - - -Query assignments: - D = parameter A explicit (sort (typ «elpi.tests.test_HOAS.98»)) c0 \ - inductive tree tt (arity (sort (typ «elpi.tests.test_HOAS.99»))) c1 \ - [constructor leaf (arity (prod `_` c0 c2 \ c1)), - constructor node - (arity - (prod `_` c0 c2 \ prod `_` (app [global (indt «list»), c1]) c3 \ c1))] - I = «tree» - univ_inst_5 = X0 -Universe constraints: -UNIVERSES: - {elpi.tests.test_HOAS.103 elpi.tests.test_HOAS.102 elpi.tests.test_HOAS.101 - elpi.tests.test_HOAS.100} |= - M.tree.u0 < elpi.tests.test_HOAS.100 - M.tree.u1 < elpi.tests.test_HOAS.101 - Set <= M.tree.u1 - Set <= elpi.tests.test_HOAS.103 - M.tree.u0 <= elpi.tests.test_HOAS.102 - M.tree.u0 <= elpi.tests.test_HOAS.103 - M.tree.u1 <= elpi.tests.test_HOAS.102 - M.tree.u1 <= elpi.tests.test_HOAS.103 - elpi.tests.test_HOAS.102 <= M.tree.u1 - elpi.tests.test_HOAS.103 <= M.tree.u1 -ALGEBRAIC UNIVERSES: - {M.tree.u0} -UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.98 -WEAK CONSTRAINTS: - - -Debug: Cannot enforce elpi.apps.derive.tests.test_derive.4294 <= Set -Query assignments: - C1 = «x» - M = «elpi.tests.test_API2.xx2» -Query assignments: - C1 = «x» - M = «elpi.tests.test_API2.xx3» -derive.param1_trivial: wrong shape is_Pred -. It does not look like a unary parametricity translation of an inductive with no indexes. -Pred.Pred_to_Predinv : (forall T : RoseTree, Pred T -> Pred.Predinv T) - : forall T : RoseTree, Pred T -> Pred.Predinv T -wimpls.wimpls : forall {A : Type}, rtree A -> Type - -wimpls.wimpls is not universe polymorphic -Arguments wimpls.wimpls {A}%type_scope {rtree0} -Expands to: Inductive elpi.apps.derive.tests.test_derive.wimpls.wimpls -wimpls.Kwi : forall {A : Type} {rtree0 : rtree A} (x : A), x = x -> wimpls - -wimpls.Kwi is not universe polymorphic -Arguments wimpls.Kwi {A}%type_scope {rtree0} x _ -Expands to: Constructor elpi.apps.derive.tests.test_derive.wimpls.Kwi -Kwi 3 eq_refl - : wimpls -where -?rtree0 : [ |- rtree nat] -Query assignments: - _uvk_1_ = X0 - _uvk_2_ = X1 -Syntactic constraints: - evar (X1) (X2) (X1) /* suspended on X1 */ - evar X3 (sort (typ «elpi.tests.test_API2.6»)) (X2) /* suspended on X3, X2 */ - evar (X0) (X4) (X0) /* suspended on X0 */ - evar X5 (sort (typ «elpi.tests.test_API2.5»)) (X4) /* suspended on X5, X4 */ -Universe constraints: -UNIVERSES: - {elpi.tests.test_API2.6 elpi.tests.test_API2.5} |= -ALGEBRAIC UNIVERSES: - {} -UNDEFINED UNIVERSES: - -WEAK CONSTRAINTS: - - -Non-discriminated database -Unfoldable variable definitions: all -Unfoldable constant definitions: all -Cut: emp -For any goal -> -For xeq -> exact xxx(level 0, pattern 0 = _, id 0) - empty_eq_correct : correct empty is_empty empty_eq : correct empty is_empty empty_eq unit_eq_correct : correct unit is_unit unit_eq @@ -9211,6 +9210,7 @@ : correct prim_int is_prim_int prim_int_eq fo_record_eq_correct : correct fo_record is_fo_record fo_record_eq : correct fo_record is_fo_record fo_record_eq +Debug: Cannot enforce elpi.apps.derive.tests.test_derive.4294 <= Set pa_record_eq_correct : forall (A : Type) (f : eq_test A), @@ -9227,6 +9227,49 @@ (pr_record_eq A f) enum_eq_correct : correct enum is_enum enum_eq : correct enum is_enum enum_eq +derive.param1_trivial: wrong shape is_Pred +. It does not look like a unary parametricity translation of an inductive with no indexes. +Pred.Pred_to_Predinv : (forall T : RoseTree, Pred T -> Pred.Predinv T) + : forall T : RoseTree, Pred T -> Pred.Predinv T +wimpls.wimpls : forall {A : Type}, rtree A -> Type + +wimpls.wimpls is not universe polymorphic +Arguments wimpls.wimpls {A}%type_scope {rtree0} +Expands to: Inductive elpi.apps.derive.tests.test_derive.wimpls.wimpls +wimpls.Kwi : forall {A : Type} {rtree0 : rtree A} (x : A), x = x -> wimpls + +wimpls.Kwi is not universe polymorphic +Arguments wimpls.Kwi {A}%type_scope {rtree0} x _ +Expands to: Constructor elpi.apps.derive.tests.test_derive.wimpls.Kwi +Kwi 3 eq_refl + : wimpls +where +?rtree0 : [ |- rtree nat] +Query assignments: + _uvk_1_ = X0 + _uvk_2_ = X1 +Syntactic constraints: + evar (X1) (X2) (X1) /* suspended on X1 */ + evar X3 (sort (typ «elpi.tests.test_API2.6»)) (X2) /* suspended on X3, X2 */ + evar (X0) (X4) (X0) /* suspended on X0 */ + evar X5 (sort (typ «elpi.tests.test_API2.5»)) (X4) /* suspended on X5, X4 */ +Universe constraints: +UNIVERSES: + {elpi.tests.test_API2.6 elpi.tests.test_API2.5} |= +ALGEBRAIC UNIVERSES: + {} +UNDEFINED UNIVERSES: + +WEAK CONSTRAINTS: + + +Non-discriminated database +Unfoldable variable definitions: all +Unfoldable constant definitions: all +Cut: emp +For any goal -> +For xeq -> exact xxx(level 0, pattern 0 = _, id 0) + Query assignments: type_1 = «elpi.tests.test_API2.7» Universe constraints: @@ -9242,6 +9285,13 @@ Query assignments: GR = const const EXN PRINTING: Not_found T = «elpi.tests.test_API2.T» +«elpi.tests.test_API2.G» +Query assignments: + F = «elpi.tests.test_API2.F» + G = «elpi.tests.test_API2.G» + X = «elpi.tests.test_API2.X» +Module G : Sig Definition id : X.T -> X.T. End := (F X) + is_empty_trivial : trivial empty is_empty : trivial empty is_empty is_unit_trivial : trivial unit is_unit @@ -9400,13 +9450,6 @@ : full val is_val COQC tests/test_eqOK.v COQC tests/test_eqbcorrect.v -«elpi.tests.test_API2.G» -Query assignments: - F = «elpi.tests.test_API2.F» - G = «elpi.tests.test_API2.G» - X = «elpi.tests.test_API2.X» -Module G : Sig Definition id : X.T -> X.T. End := (F X) - «elpi.tests.test_API2.H» Query assignments: F = «elpi.tests.test_API2.F» @@ -9424,6 +9467,12 @@ G = «elpi.tests.test_API2.GT» X = «elpi.tests.test_API2.X» Module Type GT = Sig Parameter idT : X.T -> X.T. End +«elpi.tests.test_API2.HT» +Query assignments: + F = «elpi.tests.test_API2.FT» + H = «elpi.tests.test_API2.HT» + X = «elpi.tests.test_API2.X» +Module Type HT = Sig Parameter idT : nat -> nat. End empty_eq_OK : ok empty empty_eq : ok empty empty_eq unit_eq_OK : ok unit unit_eq @@ -9484,12 +9533,6 @@ ok A f -> ok (pr_record A) (pr_record_eq A f) enum_eq_OK : ok enum enum_eq : ok enum enum_eq -«elpi.tests.test_API2.HT» -Query assignments: - F = «elpi.tests.test_API2.FT» - H = «elpi.tests.test_API2.HT» - X = «elpi.tests.test_API2.X» -Module Type HT = Sig Parameter idT : nat -> nat. End Query assignments: L = [«elpi.tests.test_API2.8», «elpi.tests.test_API2.9»] S = {{ elpi.tests.test_API2.8; elpi.tests.test_API2.9; }} @@ -9508,16 +9551,16 @@ WEAK CONSTRAINTS: +COQC tests/test_require_bad_order.v dlist_eqOK : forall (A : Type) (f : A -> A -> bool), ok A f -> ok (dlist A) (dlist_eq A f) : forall (A : Type) (f : A -> A -> bool), ok A f -> ok (dlist A) (dlist_eq A f) -COQC tests/test_require_bad_order.v File "./tests/test_require_bad_order.v", line 2, characters 0-28: Warning: Option Foo Bar is deprecated [deprecated-option,deprecated] -Finished transaction in 22.987 secs (22.228u,0.018s) (successful) -Finished transaction in 0.339 secs (0.339u,0.s) (successful) +Finished transaction in 53.441 secs (29.119u,0.055s) (successful) +Finished transaction in 0.541 secs (0.507u,0.s) (successful) peano_eqb_correct : (forall n m : peano, peano_eqb n m = true -> n = m) : forall n m : peano, peano_eqb n m = true -> n = m peano_eqb_refl : (forall n : peano, peano_eqb n n = true) @@ -9574,9 +9617,9 @@ COQC tests/test_generalize.v COQC tests/test_cycle.v COQC examples/usage_eltac.v +trying i = i d : nat -trying i = i trying elpi_ctx_entry_2_ = elpi_ctx_entry_2_ trying elpi_ctx_entry_1_ = elpi_ctx_entry_1_ /\ p0 = p0 trying elpi_ctx_entry_1_ = elpi_ctx_entry_1_ /\ p0 = p0 @@ -9598,22 +9641,18 @@ : nat eq_refl : Foo.x = 5 : Foo.x = 5 -This.Is.A.Long.Namespace.stuff = 1 - : nat - = 1 - : nat 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 -This.Is.A.Long.Namespace.stuff = 2 +This.Is.A.Long.Namespace.stuff = 1 : nat = 1 : nat -stuff = 2 +This.Is.A.Long.Namespace.stuff = 2 : nat -default nat_def : nat + = 1 : nat A1.B1.d : nat @@ -9625,6 +9664,8 @@ 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 +stuff = 2 + : nat x = 5 : nat x2 = 4 @@ -9633,6 +9674,8 @@ : nat B1.d = 1 : nat +default nat_def : nat + : nat d = 1 : nat A2.B2.f = 2 @@ -9711,7 +9754,7 @@ create-stamp debian/debhelper-build-stamp dh_prep dh_auto_install --destdir=debian/libcoq-elpi/ - make -j16 install DESTDIR=/build/coq-elpi-1.16.0/debian/libcoq-elpi AM_UPDATE_INFO_DIR=no "INSTALL=install --strip-program=true" + make -j15 install DESTDIR=/build/coq-elpi-1.16.0/debian/libcoq-elpi AM_UPDATE_INFO_DIR=no "INSTALL=install --strip-program=true" make[1]: Entering directory '/build/coq-elpi-1.16.0' Using coq found in /usr/bin, from COQBIN or PATH ########################## installing plugin ############################ @@ -9969,12 +10012,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/3117304/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/3117304/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/765148 and its subdirectories -I: Current time: Mon Jul 8 23:38:39 -12 2024 -I: pbuilder-time-stamp: 1720525119 +I: removing directory /srv/workspace/pbuilder/3117304 and its subdirectories +I: Current time: Wed Jun 7 19:22:57 +14 2023 +I: pbuilder-time-stamp: 1686115377