W: cgroups are not available on the host, not using them.
I: pbuilder: network access will be disabled during build
I: Current time: Thu Mar 20 03:43:27 +14 2025
I: pbuilder-time-stamp: 1742391807
I: Building the build Environment
I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz]
I: copying local configuration
W: --override-config is not set; not updating apt.conf Read the manpage for details.
I: mounting /proc filesystem
I: mounting /sys filesystem
I: creating /{dev,run}/shm
I: mounting /dev/pts filesystem
I: redirecting /dev/ptmx to /dev/pts/ptmx
I: policy-rc.d already exists
I: Copying source file
I: copying [coq-elpi_2.5.0-1.dsc]
I: copying [./coq-elpi_2.5.0.orig.tar.gz]
I: copying [./coq-elpi_2.5.0-1.debian.tar.xz]
I: Extracting source
dpkg-source: warning: cannot verify inline signature for ./coq-elpi_2.5.0-1.dsc: unsupported subcommand
dpkg-source: info: extracting coq-elpi in coq-elpi-2.5.0
dpkg-source: info: unpacking coq-elpi_2.5.0.orig.tar.gz
dpkg-source: info: unpacking coq-elpi_2.5.0-1.debian.tar.xz
I: Not using root during the build.
I: Installing the build-deps
I: user script /srv/workspace/pbuilder/1216037/tmp/hooks/D01_modify_environment starting
debug: Running on codethink04-arm64.
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 Mar 19 13:43 /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/1216037/tmp/hooks/D01_modify_environment finished
I: user script /srv/workspace/pbuilder/1216037/tmp/hooks/D02_print_environment starting
I: set
  BASH=/bin/sh
  BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath
  BASH_ALIASES=()
  BASH_ARGC=()
  BASH_ARGV=()
  BASH_CMDS=()
  BASH_LINENO=([0]="12" [1]="0")
  BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:.
  BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment")
  BASH_VERSINFO=([0]="5" [1]="2" [2]="37" [3]="1" [4]="release" [5]="aarch64-unknown-linux-gnu")
  BASH_VERSION='5.2.37(1)-release'
  BUILDDIR=/build/reproducible-path
  BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other'
  BUILDUSERNAME=pbuilder2
  BUILD_ARCH=arm64
  DEBIAN_FRONTEND=noninteractive
  DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 '
  DIRSTACK=()
  DISTRIBUTION=unstable
  EUID=0
  FUNCNAME=([0]="Echo" [1]="main")
  GROUPS=()
  HOME=/root
  HOSTNAME=i-capture-the-hostname
  HOSTTYPE=aarch64
  HOST_ARCH=arm64
  IFS=' 	
  '
  LANG=C
  LANGUAGE=nl_BE:nl
  LC_ALL=C
  MACHTYPE=aarch64-unknown-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=1216037
  PS4='+ '
  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.8Ufe1BGH/pbuilderrc_XDDs --distribution unstable --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.8Ufe1BGH/b2 --logfile b2/build.log coq-elpi_2.5.0-1.dsc'
  SUDO_GID=109
  SUDO_UID=104
  SUDO_USER=jenkins
  TERM=unknown
  TZ=/usr/share/zoneinfo/Etc/GMT-14
  UID=0
  USER=root
  _='I: set'
  http_proxy=http://192.168.101.4:3128
I: uname -a
  Linux i-capture-the-hostname 6.1.0-32-cloud-arm64 #1 SMP Debian 6.1.129-1 (2025-03-06) aarch64 GNU/Linux
I: ls -l /bin
  lrwxrwxrwx 1 root root 7 Mar  4 11:20 /bin -> usr/bin
I: user script /srv/workspace/pbuilder/1216037/tmp/hooks/D02_print_environment finished
 -> Attempting to satisfy build-dependencies
 -> Creating pbuilder-satisfydepends-dummy package
Package: pbuilder-satisfydepends-dummy
Version: 0.invalid.0
Architecture: arm64
Maintainer: Debian Pbuilder Team <pbuilder-maint@lists.alioth.debian.org>
Description: Dummy package to satisfy dependencies with aptitude - created by pbuilder
 This package was created automatically by pbuilder to satisfy the
 build-dependencies of the package being currently built.
Depends: coq, debhelper-compat (= 13), dh-coq, dh-ocaml, elpi, libcoq-core-ocaml-dev (>= 8.17), libcoq-stdlib, libelpi-ocaml-dev, libppx-optcomp-ocaml-dev, ocaml-dune
dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'.
Selecting previously unselected package pbuilder-satisfydepends-dummy.
(Reading database ... 19898 files and directories currently installed.)
Preparing to unpack .../pbuilder-satisfydepends-dummy.deb ...
Unpacking pbuilder-satisfydepends-dummy (0.invalid.0) ...
dpkg: pbuilder-satisfydepends-dummy: dependency problems, but configuring anyway as you requested:
 pbuilder-satisfydepends-dummy depends on coq; however:
  Package coq is not installed.
 pbuilder-satisfydepends-dummy depends on debhelper-compat (= 13); however:
  Package debhelper-compat is not installed.
 pbuilder-satisfydepends-dummy depends on dh-coq; however:
  Package dh-coq is not installed.
 pbuilder-satisfydepends-dummy depends on dh-ocaml; however:
  Package dh-ocaml is not installed.
 pbuilder-satisfydepends-dummy depends on elpi; however:
  Package elpi is not installed.
 pbuilder-satisfydepends-dummy depends on libcoq-core-ocaml-dev (>= 8.17); however:
  Package libcoq-core-ocaml-dev is not installed.
 pbuilder-satisfydepends-dummy depends on libcoq-stdlib; however:
  Package libcoq-stdlib is not installed.
 pbuilder-satisfydepends-dummy depends on libelpi-ocaml-dev; however:
  Package libelpi-ocaml-dev is not installed.
 pbuilder-satisfydepends-dummy depends on libppx-optcomp-ocaml-dev; however:
  Package libppx-optcomp-ocaml-dev is not installed.
 pbuilder-satisfydepends-dummy depends on ocaml-dune; however:
  Package ocaml-dune is not installed.

Setting up pbuilder-satisfydepends-dummy (0.invalid.0) ...
Reading package lists...
Building dependency tree...
Reading state information...
Initializing package states...
Writing extended state information...
Building tag database...
pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0)
pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0)
The following NEW packages will be installed:
  autoconf{a} automake{a} autopoint{a} autotools-dev{a} bsdextrautils{a} coq{a} debhelper{a} dh-autoreconf{a} dh-coq{a} dh-ocaml{a} dh-strip-nondeterminism{a} dwz{a} elpi{a} file{a} gettext{a} gettext-base{a} groff-base{a} intltool-debian{a} libarchive-zip-perl{a} libbase-ocaml{a} libbase-ocaml-dev{a} libcompiler-libs-ocaml-dev{a} libconfig-tiny-perl{a} libcoq-core-ocaml{a} libcoq-core-ocaml-dev{a} libcoq-stdlib{a} libdebhelper-perl{a} libelf1t64{a} libelpi-ocaml{a} libelpi-ocaml-dev{a} libexpat1{a} libffi8{a} libfile-stripnondeterminism-perl{a} libfindlib-ocaml{a} libfindlib-ocaml-dev{a} libgmp-dev{a} libgmp3-dev{a} libgmpxx4ldbl{a} libicu76{a} libmagic-mgc{a} libmagic1t64{a} libmenhir-ocaml-dev{a} libncurses-dev{a} libncurses6{a} libocaml-compiler-libs-ocaml-dev{a} libocaml-intrinsics-kernel-ocaml{a} libocaml-intrinsics-kernel-ocaml-dev{a} libpipeline1{a} libppx-derivers-ocaml-dev{a} libppx-deriving-ocaml{a} libppx-deriving-ocaml-dev{a} libppx-optcomp-ocaml{a} libppx-optcomp-ocaml-dev{a} libppxlib-ocaml-dev{a} libpython3-stdlib{a} libpython3.13-minimal{a} libpython3.13-stdlib{a} libre-ocaml-dev{a} libreadline8t64{a} libsexplib0-ocaml{a} libsexplib0-ocaml-dev{a} libstdio-ocaml{a} libstdio-ocaml-dev{a} libstdlib-ocaml{a} libstdlib-ocaml-dev{a} libtool{a} libuchardet0{a} libunistring5{a} libxml2{a} libzarith-ocaml{a} libzarith-ocaml-dev{a} libzstd-dev{a} m4{a} man-db{a} media-types{a} netbase{a} ocaml{a} ocaml-base{a} ocaml-dune{a} ocaml-findlib{a} ocaml-interp{a} po-debconf{a} python3{a} python3-minimal{a} python3.13{a} python3.13-minimal{a} readline-common{a} sensible-utils{a} tzdata{a} 
The following packages are RECOMMENDED but will NOT be installed:
  ca-certificates curl ledit libarchive-cpio-perl libgpm2 libltdl-dev libmail-sendmail-perl lynx ocaml-man rlfe rlwrap wget 
0 packages upgraded, 89 newly installed, 0 to remove and 0 not upgraded.
Need to get 380 MB of archives. After unpacking 1228 MB will be used.
Writing extended state information...
Get: 1 http://deb.debian.org/debian unstable/main arm64 libpython3.13-minimal arm64 3.13.2-2 [853 kB]
Get: 2 http://deb.debian.org/debian unstable/main arm64 libexpat1 arm64 2.7.0-1 [92.8 kB]
Get: 3 http://deb.debian.org/debian unstable/main arm64 python3.13-minimal arm64 3.13.2-2 [1995 kB]
Get: 4 http://deb.debian.org/debian unstable/main arm64 python3-minimal arm64 3.13.2-2 [27.1 kB]
Get: 5 http://deb.debian.org/debian unstable/main arm64 media-types all 13.0.0 [29.3 kB]
Get: 6 http://deb.debian.org/debian unstable/main arm64 netbase all 6.5 [12.4 kB]
Get: 7 http://deb.debian.org/debian unstable/main arm64 tzdata all 2025a-2 [259 kB]
Get: 8 http://deb.debian.org/debian unstable/main arm64 libffi8 arm64 3.4.7-1 [21.2 kB]
Get: 9 http://deb.debian.org/debian unstable/main arm64 readline-common all 8.2-6 [69.4 kB]
Get: 10 http://deb.debian.org/debian unstable/main arm64 libreadline8t64 arm64 8.2-6 [159 kB]
Get: 11 http://deb.debian.org/debian unstable/main arm64 libpython3.13-stdlib arm64 3.13.2-2 [1888 kB]
Get: 12 http://deb.debian.org/debian unstable/main arm64 python3.13 arm64 3.13.2-2 [746 kB]
Get: 13 http://deb.debian.org/debian unstable/main arm64 libpython3-stdlib arm64 3.13.2-2 [10.1 kB]
Get: 14 http://deb.debian.org/debian unstable/main arm64 python3 arm64 3.13.2-2 [28.1 kB]
Get: 15 http://deb.debian.org/debian unstable/main arm64 sensible-utils all 0.0.24 [24.8 kB]
Get: 16 http://deb.debian.org/debian unstable/main arm64 libmagic-mgc arm64 1:5.46-2 [337 kB]
Get: 17 http://deb.debian.org/debian unstable/main arm64 libmagic1t64 arm64 1:5.46-2 [103 kB]
Get: 18 http://deb.debian.org/debian unstable/main arm64 file arm64 1:5.46-2 [43.6 kB]
Get: 19 http://deb.debian.org/debian unstable/main arm64 gettext-base arm64 0.23.1-1 [241 kB]
Get: 20 http://deb.debian.org/debian unstable/main arm64 libuchardet0 arm64 0.0.8-1+b2 [69.2 kB]
Get: 21 http://deb.debian.org/debian unstable/main arm64 groff-base arm64 1.23.0-7 [1129 kB]
Get: 22 http://deb.debian.org/debian unstable/main arm64 bsdextrautils arm64 2.40.4-5 [92.0 kB]
Get: 23 http://deb.debian.org/debian unstable/main arm64 libpipeline1 arm64 1.5.8-1 [40.2 kB]
Get: 24 http://deb.debian.org/debian unstable/main arm64 man-db arm64 2.13.0-1 [1404 kB]
Get: 25 http://deb.debian.org/debian unstable/main arm64 m4 arm64 1.4.19-7 [285 kB]
Get: 26 http://deb.debian.org/debian unstable/main arm64 autoconf all 2.72-3 [493 kB]
Get: 27 http://deb.debian.org/debian unstable/main arm64 autotools-dev all 20220109.1 [51.6 kB]
Get: 28 http://deb.debian.org/debian unstable/main arm64 automake all 1:1.17-3 [862 kB]
Get: 29 http://deb.debian.org/debian unstable/main arm64 autopoint all 0.23.1-1 [770 kB]
Get: 30 http://deb.debian.org/debian unstable/main arm64 libcoq-stdlib arm64 8.20.1+dfsg-1 [23.5 MB]
Get: 31 http://deb.debian.org/debian unstable/main arm64 libstdlib-ocaml arm64 5.3.0-2 [592 kB]
Get: 32 http://deb.debian.org/debian unstable/main arm64 ocaml-base arm64 5.3.0-2 [475 kB]
Get: 33 http://deb.debian.org/debian unstable/main arm64 libfindlib-ocaml arm64 1.9.8-1 [217 kB]
Get: 34 http://deb.debian.org/debian unstable/main arm64 libzarith-ocaml arm64 1.14-1+b1 [116 kB]
Get: 35 http://deb.debian.org/debian unstable/main arm64 libcoq-core-ocaml arm64 8.20.1+dfsg-1 [26.4 MB]
Get: 36 http://deb.debian.org/debian unstable/main arm64 libstdlib-ocaml-dev arm64 5.3.0-2 [7874 kB]
Get: 37 http://deb.debian.org/debian unstable/main arm64 libcompiler-libs-ocaml-dev arm64 5.3.0-2 [47.6 MB]
Get: 38 http://deb.debian.org/debian unstable/main arm64 ocaml-interp arm64 5.3.0-2 [7105 kB]
Get: 39 http://deb.debian.org/debian unstable/main arm64 libncurses6 arm64 6.5+20250216-2 [96.1 kB]
Get: 40 http://deb.debian.org/debian unstable/main arm64 libncurses-dev arm64 6.5+20250216-2 [340 kB]
Get: 41 http://deb.debian.org/debian unstable/main arm64 libzstd-dev arm64 1.5.7+dfsg-1 [335 kB]
Get: 42 http://deb.debian.org/debian unstable/main arm64 ocaml arm64 5.3.0-2 [20.7 MB]
Get: 43 http://deb.debian.org/debian unstable/main arm64 ocaml-findlib arm64 1.9.8-1 [652 kB]
Get: 44 http://deb.debian.org/debian unstable/main arm64 coq arm64 8.20.1+dfsg-1 [74.4 MB]
Get: 45 http://deb.debian.org/debian unstable/main arm64 libdebhelper-perl all 13.24.1 [90.9 kB]
Get: 46 http://deb.debian.org/debian unstable/main arm64 libtool all 2.5.4-4 [539 kB]
Get: 47 http://deb.debian.org/debian unstable/main arm64 dh-autoreconf all 20 [17.1 kB]
Get: 48 http://deb.debian.org/debian unstable/main arm64 libarchive-zip-perl all 1.68-1 [104 kB]
Get: 49 http://deb.debian.org/debian unstable/main arm64 libfile-stripnondeterminism-perl all 1.14.1-2 [19.7 kB]
Get: 50 http://deb.debian.org/debian unstable/main arm64 dh-strip-nondeterminism all 1.14.1-2 [8620 B]
Get: 51 http://deb.debian.org/debian unstable/main arm64 libelf1t64 arm64 0.192-4 [189 kB]
Get: 52 http://deb.debian.org/debian unstable/main arm64 dwz arm64 0.15-1+b1 [102 kB]
Get: 53 http://deb.debian.org/debian unstable/main arm64 libunistring5 arm64 1.3-1 [449 kB]
Get: 54 http://deb.debian.org/debian unstable/main arm64 libicu76 arm64 76.1-3 [9526 kB]
Get: 55 http://deb.debian.org/debian unstable/main arm64 libxml2 arm64 2.12.7+dfsg+really2.9.14-0.3+b1 [630 kB]
Get: 56 http://deb.debian.org/debian unstable/main arm64 gettext arm64 0.23.1-1 [1610 kB]
Get: 57 http://deb.debian.org/debian unstable/main arm64 intltool-debian all 0.35.0+20060710.6 [22.9 kB]
Get: 58 http://deb.debian.org/debian unstable/main arm64 po-debconf all 1.0.21+nmu1 [248 kB]
Get: 59 http://deb.debian.org/debian unstable/main arm64 debhelper all 13.24.1 [920 kB]
Get: 60 http://deb.debian.org/debian unstable/main arm64 dh-coq all 0.14 [6956 B]
Get: 61 http://deb.debian.org/debian unstable/main arm64 libconfig-tiny-perl all 2.30-1 [18.9 kB]
Get: 62 http://deb.debian.org/debian unstable/main arm64 dh-ocaml all 2.4 [62.9 kB]
Get: 63 http://deb.debian.org/debian unstable/main arm64 libsexplib0-ocaml arm64 0.17.0-1+b1 [132 kB]
Get: 64 http://deb.debian.org/debian unstable/main arm64 libppx-deriving-ocaml arm64 6.0.3-1+b3 [4790 kB]
Get: 65 http://deb.debian.org/debian unstable/main arm64 libelpi-ocaml arm64 2.0.7-1 [3953 kB]
Get: 66 http://deb.debian.org/debian unstable/main arm64 elpi arm64 2.0.7-1 [2108 kB]
Get: 67 http://deb.debian.org/debian unstable/main arm64 libocaml-intrinsics-kernel-ocaml arm64 0.17.1-1+b1 [45.0 kB]
Get: 68 http://deb.debian.org/debian unstable/main arm64 libbase-ocaml arm64 0.17.1-1+b1 [3238 kB]
Get: 69 http://deb.debian.org/debian unstable/main arm64 libocaml-intrinsics-kernel-ocaml-dev arm64 0.17.1-1+b1 [104 kB]
Get: 70 http://deb.debian.org/debian unstable/main arm64 libsexplib0-ocaml-dev arm64 0.17.0-1+b1 [355 kB]
Get: 71 http://deb.debian.org/debian unstable/main arm64 libbase-ocaml-dev arm64 0.17.1-1+b1 [9885 kB]
Get: 72 http://deb.debian.org/debian unstable/main arm64 libfindlib-ocaml-dev arm64 1.9.8-1 [177 kB]
Get: 73 http://deb.debian.org/debian unstable/main arm64 libgmpxx4ldbl arm64 2:6.3.0+dfsg-3 [329 kB]
Get: 74 http://deb.debian.org/debian unstable/main arm64 libgmp-dev arm64 2:6.3.0+dfsg-3 [621 kB]
Get: 75 http://deb.debian.org/debian unstable/main arm64 libgmp3-dev arm64 2:6.3.0+dfsg-3 [322 kB]
Get: 76 http://deb.debian.org/debian unstable/main arm64 libzarith-ocaml-dev arm64 1.14-1+b1 [142 kB]
Get: 77 http://deb.debian.org/debian unstable/main arm64 libcoq-core-ocaml-dev arm64 8.20.1+dfsg-1 [68.6 MB]
Get: 78 http://deb.debian.org/debian unstable/main arm64 libmenhir-ocaml-dev arm64 20240715+ds-1+b1 [889 kB]
Get: 79 http://deb.debian.org/debian unstable/main arm64 libocaml-compiler-libs-ocaml-dev arm64 0.17.0-1+b1 [169 kB]
Get: 80 http://deb.debian.org/debian unstable/main arm64 libppx-derivers-ocaml-dev arm64 1.2.1-4+b3 [20.3 kB]
Get: 81 http://deb.debian.org/debian unstable/main arm64 libppxlib-ocaml-dev arm64 0.35.0-1 [22.8 MB]
Get: 82 http://deb.debian.org/debian unstable/main arm64 libppx-deriving-ocaml-dev arm64 6.0.3-1+b3 [1068 kB]
Get: 83 http://deb.debian.org/debian unstable/main arm64 libre-ocaml-dev arm64 1.12.0+really1.11.0-1+b1 [1289 kB]
Get: 84 http://deb.debian.org/debian unstable/main arm64 libelpi-ocaml-dev arm64 2.0.7-1 [15.9 MB]
Get: 85 http://deb.debian.org/debian unstable/main arm64 libstdio-ocaml arm64 0.17.0-1+b1 [34.7 kB]
Get: 86 http://deb.debian.org/debian unstable/main arm64 libppx-optcomp-ocaml arm64 1:0.17.0-1+b6 [133 kB]
Get: 87 http://deb.debian.org/debian unstable/main arm64 libstdio-ocaml-dev arm64 0.17.0-1+b1 [115 kB]
Get: 88 http://deb.debian.org/debian unstable/main arm64 libppx-optcomp-ocaml-dev arm64 1:0.17.0-1+b6 [326 kB]
Get: 89 http://deb.debian.org/debian unstable/main arm64 ocaml-dune arm64 3.17.2-1 [5587 kB]
Fetched 380 MB in 2s (185 MB/s)
Preconfiguring packages ...
Selecting previously unselected package libpython3.13-minimal:arm64.
(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 ... 19898 files and directories currently installed.)
Preparing to unpack .../libpython3.13-minimal_3.13.2-2_arm64.deb ...
Unpacking libpython3.13-minimal:arm64 (3.13.2-2) ...
Selecting previously unselected package libexpat1:arm64.
Preparing to unpack .../libexpat1_2.7.0-1_arm64.deb ...
Unpacking libexpat1:arm64 (2.7.0-1) ...
Selecting previously unselected package python3.13-minimal.
Preparing to unpack .../python3.13-minimal_3.13.2-2_arm64.deb ...
Unpacking python3.13-minimal (3.13.2-2) ...
Setting up libpython3.13-minimal:arm64 (3.13.2-2) ...
Setting up libexpat1:arm64 (2.7.0-1) ...
Setting up python3.13-minimal (3.13.2-2) ...
Selecting previously unselected package python3-minimal.
(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 ... 20232 files and directories currently installed.)
Preparing to unpack .../0-python3-minimal_3.13.2-2_arm64.deb ...
Unpacking python3-minimal (3.13.2-2) ...
Selecting previously unselected package media-types.
Preparing to unpack .../1-media-types_13.0.0_all.deb ...
Unpacking media-types (13.0.0) ...
Selecting previously unselected package netbase.
Preparing to unpack .../2-netbase_6.5_all.deb ...
Unpacking netbase (6.5) ...
Selecting previously unselected package tzdata.
Preparing to unpack .../3-tzdata_2025a-2_all.deb ...
Unpacking tzdata (2025a-2) ...
Selecting previously unselected package libffi8:arm64.
Preparing to unpack .../4-libffi8_3.4.7-1_arm64.deb ...
Unpacking libffi8:arm64 (3.4.7-1) ...
Selecting previously unselected package readline-common.
Preparing to unpack .../5-readline-common_8.2-6_all.deb ...
Unpacking readline-common (8.2-6) ...
Selecting previously unselected package libreadline8t64:arm64.
Preparing to unpack .../6-libreadline8t64_8.2-6_arm64.deb ...
Adding 'diversion of /lib/aarch64-linux-gnu/libhistory.so.8 to /lib/aarch64-linux-gnu/libhistory.so.8.usr-is-merged by libreadline8t64'
Adding 'diversion of /lib/aarch64-linux-gnu/libhistory.so.8.2 to /lib/aarch64-linux-gnu/libhistory.so.8.2.usr-is-merged by libreadline8t64'
Adding 'diversion of /lib/aarch64-linux-gnu/libreadline.so.8 to /lib/aarch64-linux-gnu/libreadline.so.8.usr-is-merged by libreadline8t64'
Adding 'diversion of /lib/aarch64-linux-gnu/libreadline.so.8.2 to /lib/aarch64-linux-gnu/libreadline.so.8.2.usr-is-merged by libreadline8t64'
Unpacking libreadline8t64:arm64 (8.2-6) ...
Selecting previously unselected package libpython3.13-stdlib:arm64.
Preparing to unpack .../7-libpython3.13-stdlib_3.13.2-2_arm64.deb ...
Unpacking libpython3.13-stdlib:arm64 (3.13.2-2) ...
Selecting previously unselected package python3.13.
Preparing to unpack .../8-python3.13_3.13.2-2_arm64.deb ...
Unpacking python3.13 (3.13.2-2) ...
Selecting previously unselected package libpython3-stdlib:arm64.
Preparing to unpack .../9-libpython3-stdlib_3.13.2-2_arm64.deb ...
Unpacking libpython3-stdlib:arm64 (3.13.2-2) ...
Setting up python3-minimal (3.13.2-2) ...
Selecting previously unselected package python3.
(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 ... 21242 files and directories currently installed.)
Preparing to unpack .../00-python3_3.13.2-2_arm64.deb ...
Unpacking python3 (3.13.2-2) ...
Selecting previously unselected package sensible-utils.
Preparing to unpack .../01-sensible-utils_0.0.24_all.deb ...
Unpacking sensible-utils (0.0.24) ...
Selecting previously unselected package libmagic-mgc.
Preparing to unpack .../02-libmagic-mgc_1%3a5.46-2_arm64.deb ...
Unpacking libmagic-mgc (1:5.46-2) ...
Selecting previously unselected package libmagic1t64:arm64.
Preparing to unpack .../03-libmagic1t64_1%3a5.46-2_arm64.deb ...
Unpacking libmagic1t64:arm64 (1:5.46-2) ...
Selecting previously unselected package file.
Preparing to unpack .../04-file_1%3a5.46-2_arm64.deb ...
Unpacking file (1:5.46-2) ...
Selecting previously unselected package gettext-base.
Preparing to unpack .../05-gettext-base_0.23.1-1_arm64.deb ...
Unpacking gettext-base (0.23.1-1) ...
Selecting previously unselected package libuchardet0:arm64.
Preparing to unpack .../06-libuchardet0_0.0.8-1+b2_arm64.deb ...
Unpacking libuchardet0:arm64 (0.0.8-1+b2) ...
Selecting previously unselected package groff-base.
Preparing to unpack .../07-groff-base_1.23.0-7_arm64.deb ...
Unpacking groff-base (1.23.0-7) ...
Selecting previously unselected package bsdextrautils.
Preparing to unpack .../08-bsdextrautils_2.40.4-5_arm64.deb ...
Unpacking bsdextrautils (2.40.4-5) ...
Selecting previously unselected package libpipeline1:arm64.
Preparing to unpack .../09-libpipeline1_1.5.8-1_arm64.deb ...
Unpacking libpipeline1:arm64 (1.5.8-1) ...
Selecting previously unselected package man-db.
Preparing to unpack .../10-man-db_2.13.0-1_arm64.deb ...
Unpacking man-db (2.13.0-1) ...
Selecting previously unselected package m4.
Preparing to unpack .../11-m4_1.4.19-7_arm64.deb ...
Unpacking m4 (1.4.19-7) ...
Selecting previously unselected package autoconf.
Preparing to unpack .../12-autoconf_2.72-3_all.deb ...
Unpacking autoconf (2.72-3) ...
Selecting previously unselected package autotools-dev.
Preparing to unpack .../13-autotools-dev_20220109.1_all.deb ...
Unpacking autotools-dev (20220109.1) ...
Selecting previously unselected package automake.
Preparing to unpack .../14-automake_1%3a1.17-3_all.deb ...
Unpacking automake (1:1.17-3) ...
Selecting previously unselected package autopoint.
Preparing to unpack .../15-autopoint_0.23.1-1_all.deb ...
Unpacking autopoint (0.23.1-1) ...
Selecting previously unselected package libcoq-stdlib.
Preparing to unpack .../16-libcoq-stdlib_8.20.1+dfsg-1_arm64.deb ...
Unpacking libcoq-stdlib (8.20.1+dfsg-1) ...
Selecting previously unselected package libstdlib-ocaml.
Preparing to unpack .../17-libstdlib-ocaml_5.3.0-2_arm64.deb ...
Unpacking libstdlib-ocaml (5.3.0-2) ...
Selecting previously unselected package ocaml-base.
Preparing to unpack .../18-ocaml-base_5.3.0-2_arm64.deb ...
Unpacking ocaml-base (5.3.0-2) ...
Selecting previously unselected package libfindlib-ocaml.
Preparing to unpack .../19-libfindlib-ocaml_1.9.8-1_arm64.deb ...
Unpacking libfindlib-ocaml (1.9.8-1) ...
Selecting previously unselected package libzarith-ocaml.
Preparing to unpack .../20-libzarith-ocaml_1.14-1+b1_arm64.deb ...
Unpacking libzarith-ocaml (1.14-1+b1) ...
Selecting previously unselected package libcoq-core-ocaml.
Preparing to unpack .../21-libcoq-core-ocaml_8.20.1+dfsg-1_arm64.deb ...
Unpacking libcoq-core-ocaml (8.20.1+dfsg-1) ...
Selecting previously unselected package libstdlib-ocaml-dev.
Preparing to unpack .../22-libstdlib-ocaml-dev_5.3.0-2_arm64.deb ...
Unpacking libstdlib-ocaml-dev (5.3.0-2) ...
Selecting previously unselected package libcompiler-libs-ocaml-dev.
Preparing to unpack .../23-libcompiler-libs-ocaml-dev_5.3.0-2_arm64.deb ...
Unpacking libcompiler-libs-ocaml-dev (5.3.0-2) ...
Selecting previously unselected package ocaml-interp.
Preparing to unpack .../24-ocaml-interp_5.3.0-2_arm64.deb ...
Unpacking ocaml-interp (5.3.0-2) ...
Selecting previously unselected package libncurses6:arm64.
Preparing to unpack .../25-libncurses6_6.5+20250216-2_arm64.deb ...
Unpacking libncurses6:arm64 (6.5+20250216-2) ...
Selecting previously unselected package libncurses-dev:arm64.
Preparing to unpack .../26-libncurses-dev_6.5+20250216-2_arm64.deb ...
Unpacking libncurses-dev:arm64 (6.5+20250216-2) ...
Selecting previously unselected package libzstd-dev:arm64.
Preparing to unpack .../27-libzstd-dev_1.5.7+dfsg-1_arm64.deb ...
Unpacking libzstd-dev:arm64 (1.5.7+dfsg-1) ...
Selecting previously unselected package ocaml.
Preparing to unpack .../28-ocaml_5.3.0-2_arm64.deb ...
Unpacking ocaml (5.3.0-2) ...
Selecting previously unselected package ocaml-findlib.
Preparing to unpack .../29-ocaml-findlib_1.9.8-1_arm64.deb ...
Unpacking ocaml-findlib (1.9.8-1) ...
Selecting previously unselected package coq.
Preparing to unpack .../30-coq_8.20.1+dfsg-1_arm64.deb ...
Unpacking coq (8.20.1+dfsg-1) ...
Selecting previously unselected package libdebhelper-perl.
Preparing to unpack .../31-libdebhelper-perl_13.24.1_all.deb ...
Unpacking libdebhelper-perl (13.24.1) ...
Selecting previously unselected package libtool.
Preparing to unpack .../32-libtool_2.5.4-4_all.deb ...
Unpacking libtool (2.5.4-4) ...
Selecting previously unselected package dh-autoreconf.
Preparing to unpack .../33-dh-autoreconf_20_all.deb ...
Unpacking dh-autoreconf (20) ...
Selecting previously unselected package libarchive-zip-perl.
Preparing to unpack .../34-libarchive-zip-perl_1.68-1_all.deb ...
Unpacking libarchive-zip-perl (1.68-1) ...
Selecting previously unselected package libfile-stripnondeterminism-perl.
Preparing to unpack .../35-libfile-stripnondeterminism-perl_1.14.1-2_all.deb ...
Unpacking libfile-stripnondeterminism-perl (1.14.1-2) ...
Selecting previously unselected package dh-strip-nondeterminism.
Preparing to unpack .../36-dh-strip-nondeterminism_1.14.1-2_all.deb ...
Unpacking dh-strip-nondeterminism (1.14.1-2) ...
Selecting previously unselected package libelf1t64:arm64.
Preparing to unpack .../37-libelf1t64_0.192-4_arm64.deb ...
Unpacking libelf1t64:arm64 (0.192-4) ...
Selecting previously unselected package dwz.
Preparing to unpack .../38-dwz_0.15-1+b1_arm64.deb ...
Unpacking dwz (0.15-1+b1) ...
Selecting previously unselected package libunistring5:arm64.
Preparing to unpack .../39-libunistring5_1.3-1_arm64.deb ...
Unpacking libunistring5:arm64 (1.3-1) ...
Selecting previously unselected package libicu76:arm64.
Preparing to unpack .../40-libicu76_76.1-3_arm64.deb ...
Unpacking libicu76:arm64 (76.1-3) ...
Selecting previously unselected package libxml2:arm64.
Preparing to unpack .../41-libxml2_2.12.7+dfsg+really2.9.14-0.3+b1_arm64.deb ...
Unpacking libxml2:arm64 (2.12.7+dfsg+really2.9.14-0.3+b1) ...
Selecting previously unselected package gettext.
Preparing to unpack .../42-gettext_0.23.1-1_arm64.deb ...
Unpacking gettext (0.23.1-1) ...
Selecting previously unselected package intltool-debian.
Preparing to unpack .../43-intltool-debian_0.35.0+20060710.6_all.deb ...
Unpacking intltool-debian (0.35.0+20060710.6) ...
Selecting previously unselected package po-debconf.
Preparing to unpack .../44-po-debconf_1.0.21+nmu1_all.deb ...
Unpacking po-debconf (1.0.21+nmu1) ...
Selecting previously unselected package debhelper.
Preparing to unpack .../45-debhelper_13.24.1_all.deb ...
Unpacking debhelper (13.24.1) ...
Selecting previously unselected package dh-coq.
Preparing to unpack .../46-dh-coq_0.14_all.deb ...
Unpacking dh-coq (0.14) ...
Selecting previously unselected package libconfig-tiny-perl.
Preparing to unpack .../47-libconfig-tiny-perl_2.30-1_all.deb ...
Unpacking libconfig-tiny-perl (2.30-1) ...
Selecting previously unselected package dh-ocaml.
Preparing to unpack .../48-dh-ocaml_2.4_all.deb ...
Unpacking dh-ocaml (2.4) ...
Selecting previously unselected package libsexplib0-ocaml.
Preparing to unpack .../49-libsexplib0-ocaml_0.17.0-1+b1_arm64.deb ...
Unpacking libsexplib0-ocaml (0.17.0-1+b1) ...
Selecting previously unselected package libppx-deriving-ocaml.
Preparing to unpack .../50-libppx-deriving-ocaml_6.0.3-1+b3_arm64.deb ...
Unpacking libppx-deriving-ocaml (6.0.3-1+b3) ...
Selecting previously unselected package libelpi-ocaml.
Preparing to unpack .../51-libelpi-ocaml_2.0.7-1_arm64.deb ...
Unpacking libelpi-ocaml (2.0.7-1) ...
Selecting previously unselected package elpi.
Preparing to unpack .../52-elpi_2.0.7-1_arm64.deb ...
Unpacking elpi (2.0.7-1) ...
Selecting previously unselected package libocaml-intrinsics-kernel-ocaml.
Preparing to unpack .../53-libocaml-intrinsics-kernel-ocaml_0.17.1-1+b1_arm64.deb ...
Unpacking libocaml-intrinsics-kernel-ocaml (0.17.1-1+b1) ...
Selecting previously unselected package libbase-ocaml.
Preparing to unpack .../54-libbase-ocaml_0.17.1-1+b1_arm64.deb ...
Unpacking libbase-ocaml (0.17.1-1+b1) ...
Selecting previously unselected package libocaml-intrinsics-kernel-ocaml-dev.
Preparing to unpack .../55-libocaml-intrinsics-kernel-ocaml-dev_0.17.1-1+b1_arm64.deb ...
Unpacking libocaml-intrinsics-kernel-ocaml-dev (0.17.1-1+b1) ...
Selecting previously unselected package libsexplib0-ocaml-dev.
Preparing to unpack .../56-libsexplib0-ocaml-dev_0.17.0-1+b1_arm64.deb ...
Unpacking libsexplib0-ocaml-dev (0.17.0-1+b1) ...
Selecting previously unselected package libbase-ocaml-dev.
Preparing to unpack .../57-libbase-ocaml-dev_0.17.1-1+b1_arm64.deb ...
Unpacking libbase-ocaml-dev (0.17.1-1+b1) ...
Selecting previously unselected package libfindlib-ocaml-dev.
Preparing to unpack .../58-libfindlib-ocaml-dev_1.9.8-1_arm64.deb ...
Unpacking libfindlib-ocaml-dev (1.9.8-1) ...
Selecting previously unselected package libgmpxx4ldbl:arm64.
Preparing to unpack .../59-libgmpxx4ldbl_2%3a6.3.0+dfsg-3_arm64.deb ...
Unpacking libgmpxx4ldbl:arm64 (2:6.3.0+dfsg-3) ...
Selecting previously unselected package libgmp-dev:arm64.
Preparing to unpack .../60-libgmp-dev_2%3a6.3.0+dfsg-3_arm64.deb ...
Unpacking libgmp-dev:arm64 (2:6.3.0+dfsg-3) ...
Selecting previously unselected package libgmp3-dev:arm64.
Preparing to unpack .../61-libgmp3-dev_2%3a6.3.0+dfsg-3_arm64.deb ...
Unpacking libgmp3-dev:arm64 (2:6.3.0+dfsg-3) ...
Selecting previously unselected package libzarith-ocaml-dev.
Preparing to unpack .../62-libzarith-ocaml-dev_1.14-1+b1_arm64.deb ...
Unpacking libzarith-ocaml-dev (1.14-1+b1) ...
Selecting previously unselected package libcoq-core-ocaml-dev.
Preparing to unpack .../63-libcoq-core-ocaml-dev_8.20.1+dfsg-1_arm64.deb ...
Unpacking libcoq-core-ocaml-dev (8.20.1+dfsg-1) ...
Selecting previously unselected package libmenhir-ocaml-dev.
Preparing to unpack .../64-libmenhir-ocaml-dev_20240715+ds-1+b1_arm64.deb ...
Unpacking libmenhir-ocaml-dev (20240715+ds-1+b1) ...
Selecting previously unselected package libocaml-compiler-libs-ocaml-dev.
Preparing to unpack .../65-libocaml-compiler-libs-ocaml-dev_0.17.0-1+b1_arm64.deb ...
Unpacking libocaml-compiler-libs-ocaml-dev (0.17.0-1+b1) ...
Selecting previously unselected package libppx-derivers-ocaml-dev.
Preparing to unpack .../66-libppx-derivers-ocaml-dev_1.2.1-4+b3_arm64.deb ...
Unpacking libppx-derivers-ocaml-dev (1.2.1-4+b3) ...
Selecting previously unselected package libppxlib-ocaml-dev.
Preparing to unpack .../67-libppxlib-ocaml-dev_0.35.0-1_arm64.deb ...
Unpacking libppxlib-ocaml-dev (0.35.0-1) ...
Selecting previously unselected package libppx-deriving-ocaml-dev.
Preparing to unpack .../68-libppx-deriving-ocaml-dev_6.0.3-1+b3_arm64.deb ...
Unpacking libppx-deriving-ocaml-dev (6.0.3-1+b3) ...
Selecting previously unselected package libre-ocaml-dev.
Preparing to unpack .../69-libre-ocaml-dev_1.12.0+really1.11.0-1+b1_arm64.deb ...
Unpacking libre-ocaml-dev (1.12.0+really1.11.0-1+b1) ...
Selecting previously unselected package libelpi-ocaml-dev.
Preparing to unpack .../70-libelpi-ocaml-dev_2.0.7-1_arm64.deb ...
Unpacking libelpi-ocaml-dev (2.0.7-1) ...
Selecting previously unselected package libstdio-ocaml.
Preparing to unpack .../71-libstdio-ocaml_0.17.0-1+b1_arm64.deb ...
Unpacking libstdio-ocaml (0.17.0-1+b1) ...
Selecting previously unselected package libppx-optcomp-ocaml.
Preparing to unpack .../72-libppx-optcomp-ocaml_1%3a0.17.0-1+b6_arm64.deb ...
Unpacking libppx-optcomp-ocaml (1:0.17.0-1+b6) ...
Selecting previously unselected package libstdio-ocaml-dev.
Preparing to unpack .../73-libstdio-ocaml-dev_0.17.0-1+b1_arm64.deb ...
Unpacking libstdio-ocaml-dev (0.17.0-1+b1) ...
Selecting previously unselected package libppx-optcomp-ocaml-dev.
Preparing to unpack .../74-libppx-optcomp-ocaml-dev_1%3a0.17.0-1+b6_arm64.deb ...
Unpacking libppx-optcomp-ocaml-dev (1:0.17.0-1+b6) ...
Selecting previously unselected package ocaml-dune.
Preparing to unpack .../75-ocaml-dune_3.17.2-1_arm64.deb ...
Unpacking ocaml-dune (3.17.2-1) ...
Setting up media-types (13.0.0) ...
Setting up libpipeline1:arm64 (1.5.8-1) ...
Setting up libzstd-dev:arm64 (1.5.7+dfsg-1) ...
Setting up bsdextrautils (2.40.4-5) ...
Setting up libmagic-mgc (1:5.46-2) ...
Setting up dh-coq (0.14) ...
Setting up libarchive-zip-perl (1.68-1) ...
Setting up libdebhelper-perl (13.24.1) ...
Setting up libmagic1t64:arm64 (1:5.46-2) ...
Setting up gettext-base (0.23.1-1) ...
Setting up m4 (1.4.19-7) ...
Setting up file (1:5.46-2) ...
Setting up libconfig-tiny-perl (2.30-1) ...
Setting up libelf1t64:arm64 (0.192-4) ...
Setting up ocaml-dune (3.17.2-1) ...
Setting up tzdata (2025a-2) ...

Current default time zone: 'Etc/UTC'
Local time is now:      Wed Mar 19 13:44:06 UTC 2025.
Universal Time is now:  Wed Mar 19 13:44:06 UTC 2025.
Run 'dpkg-reconfigure tzdata' if you wish to change it.

Setting up autotools-dev (20220109.1) ...
Setting up libcoq-stdlib (8.20.1+dfsg-1) ...
Setting up libgmpxx4ldbl:arm64 (2:6.3.0+dfsg-3) ...
Setting up libncurses6:arm64 (6.5+20250216-2) ...
Setting up libstdlib-ocaml (5.3.0-2) ...
Setting up libunistring5:arm64 (1.3-1) ...
Setting up autopoint (0.23.1-1) ...
Setting up ocaml-base (5.3.0-2) ...
Setting up autoconf (2.72-3) ...
Setting up libffi8:arm64 (3.4.7-1) ...
Setting up libsexplib0-ocaml (0.17.0-1+b1) ...
Setting up dwz (0.15-1+b1) ...
Setting up libocaml-intrinsics-kernel-ocaml (0.17.1-1+b1) ...
Setting up sensible-utils (0.0.24) ...
Setting up libuchardet0:arm64 (0.0.8-1+b2) ...
Setting up netbase (6.5) ...
Setting up libicu76:arm64 (76.1-3) ...
Setting up readline-common (8.2-6) ...
Setting up libxml2:arm64 (2.12.7+dfsg+really2.9.14-0.3+b1) ...
Setting up automake (1:1.17-3) ...
update-alternatives: using /usr/bin/automake-1.17 to provide /usr/bin/automake (automake) in auto mode
Setting up libfile-stripnondeterminism-perl (1.14.1-2) ...
Setting up libppx-deriving-ocaml (6.0.3-1+b3) ...
Setting up libncurses-dev:arm64 (6.5+20250216-2) ...
Setting up gettext (0.23.1-1) ...
Setting up libgmp-dev:arm64 (2:6.3.0+dfsg-3) ...
Setting up libtool (2.5.4-4) ...
Setting up libstdlib-ocaml-dev (5.3.0-2) ...
Setting up dh-ocaml (2.4) ...
Setting up libfindlib-ocaml (1.9.8-1) ...
Setting up libzarith-ocaml (1.14-1+b1) ...
Setting up intltool-debian (0.35.0+20060710.6) ...
Setting up dh-autoreconf (20) ...
Setting up libcompiler-libs-ocaml-dev (5.3.0-2) ...
Setting up ocaml-interp (5.3.0-2) ...
Setting up libbase-ocaml (0.17.1-1+b1) ...
Setting up ocaml-findlib (1.9.8-1) ...
Setting up libreadline8t64:arm64 (8.2-6) ...
Setting up dh-strip-nondeterminism (1.14.1-2) ...
Setting up libelpi-ocaml (2.0.7-1) ...
Setting up libcoq-core-ocaml (8.20.1+dfsg-1) ...
Setting up groff-base (1.23.0-7) ...
Setting up libgmp3-dev:arm64 (2:6.3.0+dfsg-3) ...
Setting up libpython3.13-stdlib:arm64 (3.13.2-2) ...
Setting up elpi (2.0.7-1) ...
Setting up libpython3-stdlib:arm64 (3.13.2-2) ...
Setting up libstdio-ocaml (0.17.0-1+b1) ...
Setting up python3.13 (3.13.2-2) ...
Setting up po-debconf (1.0.21+nmu1) ...
Setting up python3 (3.13.2-2) ...
Setting up ocaml (5.3.0-2) ...
Setting up man-db (2.13.0-1) ...
Not building database; man-db/auto-update is not 'true'.
Setting up libre-ocaml-dev (1.12.0+really1.11.0-1+b1) ...
Setting up libmenhir-ocaml-dev (20240715+ds-1+b1) ...
Setting up libocaml-compiler-libs-ocaml-dev (0.17.0-1+b1) ...
Setting up libfindlib-ocaml-dev (1.9.8-1) ...
Setting up libsexplib0-ocaml-dev (0.17.0-1+b1) ...
Setting up coq (8.20.1+dfsg-1) ...
Setting up libzarith-ocaml-dev (1.14-1+b1) ...
Setting up libppx-optcomp-ocaml (1:0.17.0-1+b6) ...
Setting up libocaml-intrinsics-kernel-ocaml-dev (0.17.1-1+b1) ...
Setting up libppx-derivers-ocaml-dev (1.2.1-4+b3) ...
Setting up libppxlib-ocaml-dev (0.35.0-1) ...
Setting up debhelper (13.24.1) ...
Setting up libbase-ocaml-dev (0.17.1-1+b1) ...
Setting up libcoq-core-ocaml-dev (8.20.1+dfsg-1) ...
Setting up libppx-deriving-ocaml-dev (6.0.3-1+b3) ...
Setting up libstdio-ocaml-dev (0.17.0-1+b1) ...
Setting up libelpi-ocaml-dev (2.0.7-1) ...
Setting up libppx-optcomp-ocaml-dev (1:0.17.0-1+b6) ...
Processing triggers for libc-bin (2.41-6) ...
Reading package lists...
Building dependency tree...
Reading state information...
Reading extended state information...
Initializing package states...
Writing extended state information...
Building tag database...
 -> Finished parsing the build-deps
I: Building the package
I: user script /srv/workspace/pbuilder/1216037/tmp/hooks/A99_set_merged_usr starting
Not re-configuring usrmerge for unstable
I: user script /srv/workspace/pbuilder/1216037/tmp/hooks/A99_set_merged_usr finished
hostname: Name or service not known
I: Running cd /build/reproducible-path/coq-elpi-2.5.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S  > ../coq-elpi_2.5.0-1_source.changes
dpkg-buildpackage: info: source package coq-elpi
dpkg-buildpackage: info: source version 2.5.0-1
dpkg-buildpackage: info: source distribution UNRELEASED
dpkg-buildpackage: info: source changed by Julien Puydt <jpuydt@debian.org>
 dpkg-source --before-build .
dpkg-buildpackage: info: host architecture arm64
 debian/rules clean
dh clean --with ocaml,coq
   debian/rules override_dh_auto_clean
make[1]: Entering directory '/build/reproducible-path/coq-elpi-2.5.0'
dune clean
Warning: Cache directories could not be created: Permission denied; disabling
cache
Hint: Make sure the directory /nonexistent/second-build/.cache/dune/db/temp
can be created
make[1]: Leaving directory '/build/reproducible-path/coq-elpi-2.5.0'
   dh_ocamlclean
   dh_clean
 debian/rules binary
dh binary --with ocaml,coq
   dh_update_autotools_config
   dh_autoreconf
   dh_ocamlinit
   dh_auto_configure
   debian/rules override_dh_auto_build
make[1]: Entering directory '/build/reproducible-path/coq-elpi-2.5.0'
make
make[2]: Entering directory '/build/reproducible-path/coq-elpi-2.5.0'
dune build 
Warning: Cache directories could not be created: Permission denied; disabling
cache
Hint: Make sure the directory /nonexistent/second-build/.cache/dune/db/temp
can be created
File "./theories-stdlib/Vector.v", line 1, characters 0-31:
Warning: Using Vector.t is known to be technically difficult, see
<https://github.com/coq/coq/blob/master/theories/Vectors/Vector.v>.
[warn-library-file-stdlib-vector,stdlib-vector,warn-library-file,user-warn,default]
File "./elpi/dummy.v", line 1, characters 0-93:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./elpi/dummy.v", line 2, characters 0-63:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./elpi/dummy.v", line 3, characters 0-67:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./elpi/dummy.v", line 4, characters 0-69:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./elpi/dummy.v", line 5, characters 0-71:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./elpi/dummy.v", line 6, characters 0-69:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./elpi/dummy.v", line 7, characters 0-62:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./elpi/dummy.v", line 8, characters 0-84:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./elpi/dummy.v", line 9, characters 0-76:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./elpi/dummy.v", line 10, characters 0-64:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./elpi/dummy.v", line 11, characters 0-69:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./elpi/dummy.v", line 12, characters 0-75:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./elpi/dummy.v", line 13, characters 0-70:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/tc/elpi/dummy.v", line 1, characters 0-99:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/tc/elpi/dummy.v", line 2, characters 0-60:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/tc/elpi/dummy.v", line 3, characters 0-59:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/tc/elpi/dummy.v", line 4, characters 0-64:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/tc/elpi/dummy.v", line 5, characters 0-74:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/tc/elpi/dummy.v", line 6, characters 0-65:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/tc/elpi/dummy.v", line 7, characters 0-62:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/tc/elpi/dummy.v", line 8, characters 0-68:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/tc/elpi/dummy.v", line 9, characters 0-60:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/tc/elpi/dummy.v", line 10, characters 0-74:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/tc/elpi/dummy.v", line 11, characters 0-70:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/tc/elpi/dummy.v", line 12, characters 0-61:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/tc/elpi/dummy.v", line 13, characters 0-61:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/tc/elpi/dummy.v", line 14, characters 0-68:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/tc/elpi/dummy.v", line 15, characters 0-59:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/locker/elpi/dummy.v", line 1, characters 0-99:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/locker/elpi/dummy.v", line 2, characters 0-61:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/NES/elpi/dummy.v", line 1, characters 0-99:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/NES/elpi/dummy.v", line 2, characters 0-65:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/NES/elpi/dummy.v", line 3, characters 0-66:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 1, characters 0-99:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 2, characters 0-61:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 3, characters 0-59:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 4, characters 0-61:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 5, characters 0-66:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 6, characters 0-69:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 7, characters 0-74:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 8, characters 0-67:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 9, characters 0-57:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 10, characters 0-58:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 11, characters 0-59:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 12, characters 0-61:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 13, characters 0-58:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 14, characters 0-60:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 15, characters 0-65:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 16, characters 0-64:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 17, characters 0-61:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 18, characters 0-62:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 19, characters 0-64:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 20, characters 0-64:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 21, characters 0-61:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 22, characters 0-58:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 23, characters 0-59:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 24, characters 0-64:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 25, characters 0-58:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 26, characters 0-61:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 27, characters 0-67:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 28, characters 0-69:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 29, characters 0-67:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 30, characters 0-69:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 31, characters 0-61:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 32, characters 0-65:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 33, characters 0-60:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "./apps/derive/elpi/dummy.v", line 34, characters 0-58:
Warning: To avoid stack overflow, large numbers in nat are interpreted as
applications of Nat.of_num_uint. [abstract-large-number,numbers,default]
File "src/rocq_elpi_HOAS.ml", line 1675, characters 33-58:
1675 |     Global.body_of_constant_body Library.indirect_accessor (Environ.lookup_constant c x.global_env)
                                        ^^^^^^^^^^^^^^^^^^^^^^^^^
Alert deprecated: Library.indirect_accessor
Most commands should not be accessing opaque data.

File "src/rocq_elpi_HOAS.ml", line 2410, characters 0-61:
2410 | type 'arg tactic_main = Solve of 'arg list | Custom of string
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Warning 34 [unused-type-declaration]: unused type tactic_main.
File "src/rocq_elpi_HOAS.ml", line 1675, characters 33-58:
1675 |     Global.body_of_constant_body Library.indirect_accessor (Environ.lookup_constant c x.global_env)
                                        ^^^^^^^^^^^^^^^^^^^^^^^^^
Alert deprecated: Library.indirect_accessor
Most commands should not be accessing opaque data.

File "src/rocq_elpi_HOAS.ml", line 2410, characters 0-61:
2410 | type 'arg tactic_main = Solve of 'arg list | Custom of string
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Warning 34 [unused-type-declaration]: unused type tactic_main.
The Db contains [phone_prefix USA 1]
Phone prefix for USA is 1
The Db contains 
[phone_prefix USA 1, phone_prefix France 33, phone_prefix Italy 39]
Phone prefix for France is 33
sweet!
brr
yummy!
goal X0 c0 c1 c2 c3 is
 
[decl c3 `H` (app [global (const «lt»), c0, c1]), 
 decl c2 `z` (global (indt «nat»)), decl c1 `y` (global (indt «nat»)), 
 decl c0 `x` (global (indt «nat»))] 
-------
 
prod `_` (app [global (const «lt»), c1, c2]) c4 \
 app [global (const «lt»), c0, c2]
3
(eq_refl : 2 = (let z := 1 in S z))
Notation p2 := (p2 nat 3 x)
example_import_projections.p1 nat 3 x : nat
     : nat
p1 : forall (T : Type) (t : T), r T t -> nat
     : forall (T : Type) (t : T), r T t -> nat
eq_refl
:
example_import_projections.p1 bool false (Build bool false 3 eq_refl eq_refl) =
3
     : example_import_projections.p1 bool false
         (Build bool false 3 eq_refl eq_refl) = 3
example_import_projections.f1 _ x
     : bool
foo =
{f1 : Type & {f2 : f1 -> Type & forall t : f1, f2 t -> bool}}
     : Type
mk_foo =
fun (f1 : Type) (f2 : f1 -> Type) (f3 : forall t : f1, f2 t -> bool) =>
existT (fun f4 : Type => {f5 : f4 -> Type & forall t : f4, f5 t -> bool}) f1
  (existT (fun f4 : f1 -> Type => forall t : f1, f4 t -> bool) f2 f3)
     : forall (f1 : Type) (f2 : f1 -> Type),
       (forall t : f1, f2 t -> bool) -> foo

Arguments mk_foo f1%type_scope (f2 f3)%function_scope
3 + 7 becomes fun (x : ?e) (x0 : ?e0) => S (S x0) + S (S (S (S (S (S x)))))
DEBUG: attempt at fuzzing binary op: global (indc «PLUS»)
DEBUG: attempt at fuzzing binary op: global (const «Nat.add»)
DEBUG: attempt at fuzzing binary op: global (indc «AND»)
DEBUG: fuzzed!
DEBUG: attempt at fuzzing binary op: global (const «andb»)
DEBUG: attempt at fuzzing binary op: global (indc «OR»)
DEBUG: fuzzed!
DEBUG: attempt at fuzzing binary op: global (const «orb»)
DEBUG: attempt at fuzzing binary op: global (indc «EQ»)
DEBUG: attempt at fuzzing binary op: global (const «Nat.eqb»)
Inductive eval1 : forall T : ty, Exp T -> Val T -> Prop :=
    E_Num1 : forall n : nat, eval1 N (NUM n) (iNv n)
  | E_Bool1 : forall b : bool, eval1 B (BOOL b) (iBv b)
  | E_Plus1 : forall (e1 e2 : Exp N) (n1 n2 : nat),
              eval1 N e1 (iNv n1) ->
              eval1 N e2 (iNv n2) -> eval1 N (PLUS e1 e2) (iNv (n1 + n2))
  | E_AND1 : forall (e1 e2 : Exp B) (b1 b2 : bool),
             eval1 B e1 (iBv b1) ->
             eval1 B e2 (iBv b2) -> eval1 B (AND e1 e2) (iBv (b1 && b2))
  | E_OR1 : forall (e1 e2 : Exp B) (b1 b2 : bool),
            eval1 B e1 (iBv b1) ->
            eval1 B e2 (iBv b2) -> eval1 B (AND e1 e2) (iBv (b1 || b2))
  | E_EQ1 : forall (e1 e2 : Exp N) (n1 n2 : nat),
            eval1 N e1 (iNv n1) ->
            eval1 N e2 (iNv n2) -> eval1 B (EQ e1 e2) (iBv (Nat.eqb n1 n2)).

Arguments eval1 T _ _
Arguments E_Num1 n%nat_scope
Arguments E_Bool1 b%bool_scope
Arguments E_Plus1 e1 e2 (n1 n2)%nat_scope _ _
Arguments E_AND1 e1 e2 (b1 b2)%bool_scope _ _
Arguments E_OR1 e1 e2 (b1 b2)%bool_scope _ _
Arguments E_EQ1 e1 e2 (n1 n2)%nat_scope _ _
Query assignments:
  GRnat = indt «nat»
  GRplus = const «Nat.add»
  GRs = indc «S»
Query assignments:
  Bo = app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]
  C = «x»
  GR = const «x»
  Ty = global (indt «nat»)
  TyC = global (indt «nat»)
Query assignments:
  Bo = fun `x` (global (indt «nat»)) c0 \ c0
  C = «f»
Query assignments:
  Bo = fix `add` 0 
 (prod `n` (global (indt «nat»)) c0 \
   prod `m` (global (indt «nat»)) c1 \ global (indt «nat»)) c0 \
 fun `n` (global (indt «nat»)) c1 \
  fun `m` (global (indt «nat»)) c2 \
   match c1 (fun `n` (global (indt «nat»)) c3 \ global (indt «nat»)) 
    [c2, 
     fun `p` (global (indt «nat»)) c3 \
      app [global (indc «S»), app [c0, c3, c2]]]
  C = «Nat.add»
The return type of m is: c0 \ c1 \
fun `x` (global (indt «nat»)) c2 \
 fun `e` 
  (app [global (indt «eq»), global (indt «nat»), global (indc «O»), c2]) 
  c3 \ prod `_` (app [c1, global (indc «O»)]) c4 \ app [c1, c2]
Query assignments:
  C = «m»
  RT = c0 \ c1 \
fun `x` (global (indt «nat»)) c2 \
 fun `e` 
  (app [global (indt «eq»), global (indt «nat»), global (indc «O»), c2]) 
  c3 \ prod `_` (app [c1, global (indc «O»)]) c4 \ app [c1, c2]
typ «elpi_examples.tutorial_coq_elpi_HOAS.6» < 
typ «elpi_examples.tutorial_coq_elpi_HOAS.7»
Debug: Cannot enforce elpi_examples.tutorial_coq_elpi_HOAS.7 <=
elpi_examples.tutorial_coq_elpi_HOAS.6 because
elpi_examples.tutorial_coq_elpi_HOAS.6
< elpi_examples.tutorial_coq_elpi_HOAS.7
Query assignments:
  U = typ «elpi_examples.tutorial_coq_elpi_HOAS.6»
  U1 = typ «elpi_examples.tutorial_coq_elpi_HOAS.7»
Universe constraints:
UNIVERSES:
 {elpi_examples.tutorial_coq_elpi_HOAS.7
  elpi_examples.tutorial_coq_elpi_HOAS.6} |=
   elpi_examples.tutorial_coq_elpi_HOAS.6 < elpi_examples.tutorial_coq_elpi_HOAS.7
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 
WEAK CONSTRAINTS:
 

(id b) is: app [fun `x` (sort (typ X0)) c0 \ c0, sort (typ X1)]
(id a) is illtyped: 
Illegal application: 
The term "fun x : Type => x" of type "Type -> Type"
cannot be applied to the term
 "Type" : "Type"
This term has type "Type@{elpi_examples.tutorial_coq_elpi_HOAS.8+1}"
which should be a subtype of "Type@{elpi_examples.tutorial_coq_elpi_HOAS.8}".
(universe inconsistency: Cannot enforce elpi_examples.tutorial_coq_elpi_HOAS.8
< elpi_examples.tutorial_coq_elpi_HOAS.8 because
elpi_examples.tutorial_coq_elpi_HOAS.8
= elpi_examples.tutorial_coq_elpi_HOAS.8)
after typing (id b) is: 
app
 [fun `x` (sort (typ «elpi_examples.tutorial_coq_elpi_HOAS.8»)) c0 \ c0, 
  sort (typ «elpi_examples.tutorial_coq_elpi_HOAS.9»)] : 
sort (typ «elpi_examples.tutorial_coq_elpi_HOAS.8»)
Universe constraints: UNIVERSES:
                       {elpi_examples.tutorial_coq_elpi_HOAS.9
                        elpi_examples.tutorial_coq_elpi_HOAS.8} |=
                         elpi_examples.tutorial_coq_elpi_HOAS.9 < elpi_examples.tutorial_coq_elpi_HOAS.8
                      ALGEBRAIC UNIVERSES:
                       {elpi_examples.tutorial_coq_elpi_HOAS.9
                        elpi_examples.tutorial_coq_elpi_HOAS.8}
                      FLEXIBLE UNIVERSES:
                       elpi_examples.tutorial_coq_elpi_HOAS.9
                       elpi_examples.tutorial_coq_elpi_HOAS.8
                      SORTS:
                       
                      WEAK CONSTRAINTS:
                       
                      
Query assignments:
  A = sort (typ «elpi_examples.tutorial_coq_elpi_HOAS.8»)
  B = sort (typ «elpi_examples.tutorial_coq_elpi_HOAS.9»)
  ErrMsg = Illegal application: 
The term "fun x : Type => x" of type "Type -> Type"
cannot be applied to the term
 "Type" : "Type"
This term has type "Type@{elpi_examples.tutorial_coq_elpi_HOAS.8+1}"
which should be a subtype of "Type@{elpi_examples.tutorial_coq_elpi_HOAS.8}".
(universe inconsistency: Cannot enforce elpi_examples.tutorial_coq_elpi_HOAS.8
< elpi_examples.tutorial_coq_elpi_HOAS.8 because
elpi_examples.tutorial_coq_elpi_HOAS.8
= elpi_examples.tutorial_coq_elpi_HOAS.8)
  ID = fun `x` (sort (typ «elpi_examples.tutorial_coq_elpi_HOAS.8»)) c0 \ c0
  T = sort (typ «elpi_examples.tutorial_coq_elpi_HOAS.8»)
  U = «elpi_examples.tutorial_coq_elpi_HOAS.8»
  V = «elpi_examples.tutorial_coq_elpi_HOAS.9»
Universe constraints:
UNIVERSES:
 {elpi_examples.tutorial_coq_elpi_HOAS.9
  elpi_examples.tutorial_coq_elpi_HOAS.8} |=
   elpi_examples.tutorial_coq_elpi_HOAS.9 < elpi_examples.tutorial_coq_elpi_HOAS.8
ALGEBRAIC UNIVERSES:
 {elpi_examples.tutorial_coq_elpi_HOAS.9
  elpi_examples.tutorial_coq_elpi_HOAS.8}
FLEXIBLE UNIVERSES:
 elpi_examples.tutorial_coq_elpi_HOAS.9
 elpi_examples.tutorial_coq_elpi_HOAS.8
SORTS:
 
WEAK CONSTRAINTS:
 

app
 [global (const «Nat.add»), 
  app [global (indc «S»), global (indc «O»)], 
  app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] 
= 
app
 [global (const «Nat.add»), 
  app [global (indc «S»), global (indc «O»)], 
  app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]
app
 [global (const «Nat.add»), 
  app [global (indc «S»), global (indc «O»)], 
  app [global (indc «S»), global (indc «O»)]]
Query assignments:
  S = indc «S»
fun `x` (global (indt «nat»)) c0 \
 fun `x` (global (indt «nat»)) c1 \
  app [global (const «Nat.add»), c1, c0]
fun `x` (global (indt «nat»)) c0 \
 fun `x` (global (indt «nat»)) c1 \
  app [global (const «Nat.add»), c1, c0]
fun `a` (global (indt «nat»)) c0 \
 fun `b` (global (indt «nat»)) c1 \
  app [global (const «Nat.add»), c1, c0]
Query assignments:
  X = c0 \ c1 \
app [global (const «Nat.add»), c1, c0]
fun `a` (global (indt «nat»)) c0 \
 fun `b` (global (indt «nat»)) c1 \
  app [global (indt «eq»), global (indt «nat»), c0, c1]
indt «nat»
indt «nat»
before: 
fun `ax` (global (indt «nat»)) c0 \
 fun `b` (global (indt «nat»)) c1 \
  app [global (indt «eq»), X0 c1, c0, c1]
after: 
fun `ax` (global (indt «nat»)) c0 \
 fun `b` (global (indt «nat»)) c1 \
  app [global (indt «eq»), global (indt «nat»), c0, c1]
Query assignments:
  T = fun `ax` (global (indt «nat»)) c0 \
 fun `b` (global (indt «nat»)) c1 \
  app [global (indt «eq»), global (indt «nat»), c0, c1]
  X1_ = c0 \
global (indt «nat»)
Universe constraints:
UNIVERSES:
 {elpi_examples.tutorial_coq_elpi_HOAS.11
  elpi_examples.tutorial_coq_elpi_HOAS.10} |=
   elpi_examples.tutorial_coq_elpi_HOAS.11 < elpi_examples.tutorial_coq_elpi_HOAS.10
   Set <= elpi_examples.tutorial_coq_elpi_HOAS.11
   elpi_examples.tutorial_coq_elpi_HOAS.11 <= eq.u0
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 α6 := Type
WEAK CONSTRAINTS:
 

Query assignments:
  Bo = c0 \
app
 [global (const «Nat.add»), c0, 
  app [global (indc «S»), global (indc «O»)]]
  N = `x`
  T = fun `x` (global (indt «nat»)) c0 \
 app
  [global (const «Nat.add»), c0, 
   app [global (indc «S»), global (indc «O»)]]
  Ty = global (indt «nat»)
Query assignments:
  Bo = c0 \
app
 [global (const «Nat.add»), c0, 
  app [global (indc «S»), global (indc «O»)]]
  N = `x`
  T = fun `x` (global (indt «nat»)) c0 \
 app
  [global (const «Nat.add»), c0, 
   app [global (indc «S»), global (indc «O»)]]
  Ty = global (indt «nat»)
raw T = X0

SHELF:
FUTURE GOALS STACK:
 

Rocq-Elpi mapping:
RAW:
ELAB:

--------------------------------
 evar (X1) (global (indt «nat»)) (X1)  /* suspended on X1 */
EVARS:
 ?X11==[ |- nat] (internal placeholder) {?e0}
 ?X10==[ |- => nat] (internal placeholder)

SHELF:
FUTURE GOALS STACK:
 ?X11

Rocq-Elpi mapping:
RAW:
?X11 <-> X1
ELAB:
?X11 <-> X1

Query assignments:
  T = X1
  X2_ = X1
Syntactic constraints:
 evar (X1) (global (indt «nat»)) (X1)  /* suspended on X1 */
Universe constraints:
UNIVERSES:
 {elpi_examples.tutorial_coq_elpi_HOAS.12} |=
   Set <= elpi_examples.tutorial_coq_elpi_HOAS.12
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 α7 := Type
WEAK CONSTRAINTS:
 

raw T = 
fun `x` (global (indt «nat»)) c0 \
 app [global (const «Nat.add»), c0, X0 c0]
 {c0 c1} : decl c1 `x` (global (indt «nat»))
   ?- evar (X1 c1) (global (indt «nat»)) (X1 c1)  /* suspended on X1 */
EVARS:
 ?X13==[x |- nat] (internal placeholder) {?e0}
 ?X12==[x |- => nat] (internal placeholder)

SHELF:
FUTURE GOALS STACK:
 ?X13

Rocq-Elpi mapping:
RAW:
?X13 <-> c0 \ X1 c0
ELAB:
?X13 <-> X1

Query assignments:
  Bo = c0 \
app [global (const «Nat.add»), c0, X1 c0]
  N = `x`
  T = fun `x` (global (indt «nat»)) c0 \
 app [global (const «Nat.add»), c0, X1 c0]
  Ty = global (indt «nat»)
  X3_ = c0 \
X1 c0
Syntactic constraints:
 {c0 c1} : decl c1 `x` (global (indt «nat»))
   ?- evar (X1 c1) (global (indt «nat»)) (X1 c1)  /* suspended on X1 */
Universe constraints:
UNIVERSES:
 {elpi_examples.tutorial_coq_elpi_HOAS.13} |=
   Set <= elpi_examples.tutorial_coq_elpi_HOAS.13
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 α8 := Type
WEAK CONSTRAINTS:
 

Bo1 (not in pattern fragment) = 
app
 [global (const «Nat.add»), 
  app [global (indc «S»), global (indc «O»)], 
  X0 (app [global (indc «S»), global (indc «O»)])]
Bo1 before = 
app
 [global (const «Nat.add»), 
  app [global (indc «S»), global (indc «O»)], 
  X0 (app [global (indc «S»), global (indc «O»)])]
Bo1 after = 
app
 [global (const «Nat.add»), 
  app [global (indc «S»), global (indc «O»)], X1]
Query assignments:
  Bo = c0 \
app [global (const «Nat.add»), c0, X1]
  Bo1 = app
 [global (const «Nat.add»), 
  app [global (indc «S»), global (indc «O»)], X1]
  N = `x`
  T = fun `x` (global (indt «nat»)) c0 \ app [global (const «Nat.add»), c0, X1]
  Ty = global (indt «nat»)
  X5_ = c0 \
X1
Syntactic constraints:
 evar (X1) (global (indt «nat»)) (X1)  /* suspended on X1 */
Universe constraints:
UNIVERSES:
 {elpi_examples.tutorial_coq_elpi_HOAS.14} |=
   Set <= elpi_examples.tutorial_coq_elpi_HOAS.14
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 α9 := Type
WEAK CONSTRAINTS:
 

Query assignments:
  Bo = c0 \
app [global (const «andb»), c0, X0 c0]
  Bo1 = app
 [global (const «andb»), app [global (indc «S»), global (indc «O»)], 
  X0 (app [global (indc «S»), global (indc «O»)])]
  Bo2 = app
 [global (const «andb»), 
  app
   [global (const «nat2bool»), 
    app [global (indc «S»), global (indc «O»)]], X1]
  N = `x`
  T = fun `x` (global (indt «nat»)) c0 \ app [global (const «andb»), c0, X0 c0]
  Ty = global (indt «nat»)
  X6_ = X0
Syntactic constraints:
 evar (X2) (global (indt «bool»)) X1  /* suspended on X2, X1 */
File "./examples/tutorial_coq_elpi_HOAS.v", line 87, characters 19-24:
Warning:
File "./examples/tutorial_coq_elpi_HOAS.v", line 87, characters 19-24
GRnat is linear: name it _GRnat (discard) or GRnat_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_coq_elpi_HOAS.v", line 89, characters 20-26:
Warning:
File "./examples/tutorial_coq_elpi_HOAS.v", line 89, characters 20-26
GRplus is linear: name it _GRplus (discard) or GRplus_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_coq_elpi_HOAS.v", line 88, characters 17-20:
Warning:
File "./examples/tutorial_coq_elpi_HOAS.v", line 88, characters 17-20
GRs is linear: name it _GRs (discard) or GRs_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_coq_elpi_HOAS.v", line 113, characters 24-26:
Warning:
File "./examples/tutorial_coq_elpi_HOAS.v", line 113, characters 24-26
Bo is linear: name it _Bo (discard) or Bo_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_coq_elpi_HOAS.v", line 107, characters 20-22:
Warning:
File "./examples/tutorial_coq_elpi_HOAS.v", line 107, characters 20-22
Ty is linear: name it _Ty (discard) or Ty_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_coq_elpi_HOAS.v", line 113, characters 28-31:
Warning:
File "./examples/tutorial_coq_elpi_HOAS.v", line 113, characters 28-31
TyC is linear: name it _TyC (discard) or TyC_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_coq_elpi_HOAS.v", line 152, characters 24-26:
Warning:
File "./examples/tutorial_coq_elpi_HOAS.v", line 152, characters 24-26
Bo is linear: name it _Bo (discard) or Bo_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_coq_elpi_HOAS.v", line 195, characters 24-26:
Warning:
File "./examples/tutorial_coq_elpi_HOAS.v", line 195, characters 24-26
Bo is linear: name it _Bo (discard) or Bo_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_coq_elpi_HOAS.v", line 285, characters 17-18:
Warning:
File "./examples/tutorial_coq_elpi_HOAS.v", line 285, characters 17-18
V is linear: name it _V (discard) or V_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_coq_elpi_HOAS.v", line 681, characters 10-11:
Warning:
File "./examples/tutorial_coq_elpi_HOAS.v", line 681, characters 10-11
N is linear: name it _N (discard) or N_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_coq_elpi_HOAS.v", line 681, characters 12-14:
Warning:
File "./examples/tutorial_coq_elpi_HOAS.v", line 681, characters 12-14
Ty is linear: name it _Ty (discard) or Ty_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_coq_elpi_HOAS.v", line 718, characters 10-11:
Warning:
File "./examples/tutorial_coq_elpi_HOAS.v", line 718, characters 10-11
N is linear: name it _N (discard) or N_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_coq_elpi_HOAS.v", line 718, characters 12-14:
Warning:
File "./examples/tutorial_coq_elpi_HOAS.v", line 718, characters 12-14
Ty is linear: name it _Ty (discard) or Ty_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_coq_elpi_HOAS.v", line 756, characters 40-43:
Warning:
File "./examples/tutorial_coq_elpi_HOAS.v", line 756, characters 40-43
Bo2 is linear: name it _Bo2 (discard) or Bo2_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_coq_elpi_HOAS.v", line 754, characters 10-11:
Warning:
File "./examples/tutorial_coq_elpi_HOAS.v", line 754, characters 10-11
N is linear: name it _N (discard) or N_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_coq_elpi_HOAS.v", line 754, characters 12-14:
Warning:
File "./examples/tutorial_coq_elpi_HOAS.v", line 754, characters 12-14
Ty is linear: name it _Ty (discard) or Ty_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
Hello [str world!]
Hello [int 46]
Hello [str there]
Hello [str my, str friend]
Hello [str this.is.a.qualified.name]
Hello 
[trm
  (app
    [global (indt «eq»), global (indt «nat»), global (indc «O»), 
     app [global (indc «S»), global (indc «O»)]])]
Hello 
[const-decl test 
  (some
    (app
      [global (indt «eq»), global (indt «nat»), global (indc «O»), 
       app [global (indc «S»), global (indc «O»)]])) (arity (sort prop))]
Hello 
[indt-decl
  (record test (sort (typ «Set»)) Build_test 
    (field [coercion off, canonical tt] f1 (global (indt «nat»)) c0 \
      field [coercion off, canonical tt] f2 
       (app
         [global (indt «eq»), global (indt «nat»), c0, 
          app [global (indc «S»), global (indc «O»)]]) c1 \ end-record))]
The type of 
app
 [global (indt «eq»), global (indt «nat»), 
  app [global (indc «S»), global (indc «O»)], global (indc «O»)] is 
sort prop
1 = true
     : Prop
T= 
app
 [global (indt «eq»), X0, app [global (indc «S»), global (indc «O»)], 
  global (indc «true»)]
T1= 
app
 [global (indt «eq»), global (indt «nat»), 
  app [global (indc «S»), global (indc «O»)], 
  app [global (const «bool2nat»), global (indc «true»)]]
Ty= sort prop
nK_bool = 2
     : nat
nK_False = 0
     : nat
Inductive tree' (A : Set) : Set :=
    leaf' : tree' A | node' : tree' A -> A -> tree' A -> tree' A.

Arguments tree' A%type_scope
Arguments leaf' A%type_scope
Arguments node' A%type_scope _ _ _
bob is 24 years old
alice is 21 years old
bob is 24 years old
alice is 21 years old
[attribute elpi.loc 
  (leaf-loc
    File "./examples/tutorial_coq_elpi_command.v", line 610, column 31, characters 17257-17261:), 
 attribute elpi.phase (leaf-str interp), attribute this (leaf-str ), 
 attribute more (node [attribute stuff (leaf-str 33)])]
options= 
[get-option elpi.loc 
  File "./examples/tutorial_coq_elpi_command.v", line 643, column 31, characters 18094-18104:, 
 get-option elpi.phase interp, get-option this tt, get-option more.stuff 33]
33 tt
That is all folks!
going from source to target via plane
synterp x := some _
interp x := 
some
 (app [global (indc «S»), app [global (indc «S»), global (indc «O»)]])
The module is «elpi_examples.tutorial_coq_elpi_command.Module12»
Box.Box.Box.Box.foo = fun n : nat => n + 2
     : nat -> nat

Arguments Box.Box.Box.Box.foo n%nat_scope
Module NextModule2 := Struct  End
File "./examples/tutorial_coq_elpi_command.v", line 610, characters 2-24:
Warning: This command does not support these attributes: more, this.
[unsupported-attributes,parsing,default]
File "./examples/tutorial_coq_elpi_command.v", line 643, characters 2-24:
Warning: This command does not support these attributes: more, this.
[unsupported-attributes,parsing,default]
File "./examples/tutorial_coq_elpi_command.v", line 644, characters 7-14:
Warning: This command does not support this attribute: unknown.
[unsupported-attributes,parsing,default]
The age of alice is 20
Query assignments:
  A = 20
mallory is 23 years old
Query assignments:
  P = mallory
alice is 20 years old
Query assignments:
  P = alice
mallory and bob are 23 years old
Query assignments:
  A = 23
  P = mallory
  Q = bob
I picked P = mallory
I picked Q = mallory
I picked Q = bob
the last choice worked!
mallory and bob are 23 years old
Query assignments:
  A = 23
  P = mallory
  Q = bob
bob is older than alice
Query assignments:
  X = alice
both bob and mallory are older than alice
Query assignments:
  X = alice
F = c0 \ age alice c0
F 20 = age alice 20
F 23 = age alice 23
Query assignments:
  F = c0 \
age alice c0
λx.x ~> fun c0 \ c0
(λx.x) (λx.x) ~> fun c0 \ c0
Query assignments:
  I = fun c0 \ c0
  T = fun c0 \ c0
  T1 = fun c0 \ c0
(Fst foo bar) ~> foo
(foo bar) ~> app foo bar
Query assignments:
  Fst = fun c0 \ fun c1 \ c0
  S = app foo bar
  S1 = app foo bar
  T = app (app (fun c0 \ fun c1 \ c0) foo) bar
  T1 = foo
The type of λx.λy.x is: arr X0 (arr X1 X0)
Query assignments:
  Ty = arr X0 (arr X1 X0)
Error: fun c0 \ app c0 c0 has no type
Query assignments:
  Delta = fun c0 \ app c0 c0
  Ty = X0
2 + 1 = s (s (s z))
Query assignments:
  R = s (s (s z))
Query assignments:
  X = X0
  Z = X1
Syntactic constraints:  sum X0 (s z) X1  /* suspended on X0 */
The result is: s z
Query assignments:
  X = z
  Z = s z
Query assignments:
  X = s z
Debug:  sum X0 (s z) X1  /* suspended on X0 */
Currently Y = X1
Debug:  sum X2 (s z) X3  /* suspended on X2 */
Currently Y = s X3
Finally Y = s (s z)
Query assignments:
  X = s z
  Y = s (s z)
  Z = z
Query assignments:
  X = X0
Syntactic constraints:
 even X0  /* suspended on X0 */ odd X0  /* suspended on X0 */
X0 can't be even and odd at the same time
Query assignments:
  A = [1, 2, 3, 3, 2, 1]
Query assignments:
  A = [1, 2, 3, 3, 2, 1]
result = 5
Query assignments:
  X = result =
  Y = 5
result = 5
Query assignments:
  %arg1 = 5
Query assignments:
  R1 = X0
  R2 = [2, 3, 4]
  R3 = [2, 3, 4]
Query assignments:
  R = [2, 3, 4]
Y = c0
arr X0 (arr X1 X0)
Query assignments:
  Ty = arr X0 (arr X1 X0)
Debug: run 1 {{{  
          
Debug:
  rid:0 step:1 gid:4 user:curgoal = , 
                                    of (fun c0 \ fun c1 \ c0) X0 , coq.say X0 
                                    
Debug:
  rid:0 step:1 gid:4 user:rule = and 
                                 
Debug:
  rid:0 step:1 gid:4 user:subgoal = 5 
                                    
Debug:
  rid:0 step:1 gid:5 user:newgoal = of (fun c0 \ fun c1 \ c0) X0 
                                    
Debug:
  rid:0 step:1 gid:4 user:subgoal = 6 
                                    
Debug:
  rid:0 step:1 gid:6 user:newgoal = coq.say X0 
                                    
Debug:
  rid:0 step:1 gid:4 user:rule:and = success 
                                     
Debug: }}} ->  (0.000s)
Debug: run 2 {{{  
          
Debug:
  rid:0 step:2 gid:5 user:curgoal = of 
                                    of (fun c0 \ fun c1 \ c0) X0 
                                    
Debug:
  rid:0 step:2 gid:5 user:rule = backchain 
                                 
Debug:
  rid:0 step:2 gid:5 user:rule:backchain:candidates = File "./examples/tutorial_elpi_lang.v", line 596, column 2, characters 15366-15421: 
                                                      
Debug: }}} ->  (0.000s)
Debug: select 3 {{{  
             
Debug:
  rid:0 step:2 gid:5 user:rule:backchain:try = File "./examples/tutorial_elpi_lang.v", line 596, column 2, characters 15366-15421: 
                                               (of (fun A0) (arr A2 A1)) :- (
                                                pi (c0 \
                                                 (of c0 A2 => of (A0 c0) A1))). 
                                               
Debug:
  rid:0 step:2 gid:0 user:assign = A0 := c0 \
                                   fun c1 \ c0 
                                   
Debug:
  rid:0 step:2 gid:0 user:assign = X0 := arr X1 X2 
                                   
Debug:
  rid:0 step:2 gid:5 user:subgoal = 7 
                                    
Debug:
  rid:0 step:2 gid:7 user:newgoal = pi c0 \ of c0 X1 => of (fun c1 \ c0) X2 
                                    
Debug:
  rid:0 step:2 gid:7 user:rule:backchain = success 
                                           
Debug: }}} ->  (0.000s)
Debug: run 3 {{{  
          
Debug:
  rid:0 step:3 gid:7 user:curgoal = pi 
                                    pi c0 \ of c0 X1 => of (fun c1 \ c0) X2 
                                    
Debug:   rid:0 step:3 gid:7 user:rule = pi 
                                 
Debug:
  rid:0 step:3 gid:7 user:subgoal = 8 
                                    
Debug:
  rid:0 step:3 gid:8 user:newgoal = of c0 X1 => of (fun c1 \ c0) X2 
                                    
Debug:
  rid:0 step:3 gid:8 user:rule:pi = success 
                                    
Debug: }}} ->  (0.000s)
Debug: run 4 {{{  
          
Debug:
  rid:0 step:4 gid:8 user:curgoal = => 
                                    of c0 X1 => of (fun c1 \ c0) X2 
                                    
Debug:
  rid:0 step:4 gid:8 user:rule = implication 
                                 
Debug:
  rid:0 step:4 gid:8 user:subgoal = 9 
                                    
Debug:
  rid:0 step:4 gid:9 user:newgoal = of (fun c1 \ c0) X2 
                                    
Debug:
  rid:0 step:4 gid:9 user:rule:implication = success 
                                             
Debug: }}} ->  (0.000s)
Debug: run 5 {{{  
          
Debug:
  rid:0 step:5 gid:9 user:curgoal = of 
                                    of (fun c1 \ c0) X2 
                                    
Debug:
  rid:0 step:5 gid:9 user:rule = backchain 
                                 
Debug:
  rid:0 step:5 gid:9 user:rule:backchain:candidates = File "./examples/tutorial_elpi_lang.v", line 596, column 2, characters 15366-15421: 
                                                      
Debug: }}} ->  (0.000s)
Debug: select 4 {{{  
             
Debug:
  rid:0 step:5 gid:9 user:rule:backchain:try = File "./examples/tutorial_elpi_lang.v", line 596, column 2, characters 15366-15421: 
                                               (of (fun A0) (arr A2 A1)) :- (
                                                pi (c0 \
                                                 (of c0 A2 => of (A0 c0) A1))). 
                                               
Debug:
  rid:0 step:5 gid:0 user:assign = A0 := c1 \
                                   c0 
                                   
Debug:
  rid:0 step:5 gid:0 user:assign = X2 := arr X3 X4 
                                   
Debug:
  rid:0 step:5 gid:9 user:subgoal = 10 
                                    
Debug:
  rid:0 step:5 gid:10 user:newgoal = pi c1 \ of c1 X3 => of c0 X4 
                                     
Debug:
  rid:0 step:5 gid:10 user:rule:backchain = success 
                                            
Debug: }}} ->  (0.000s)
Debug: run 6 {{{  
          
Debug:
  rid:0 step:6 gid:10 user:curgoal = pi 
                                     pi c1 \ of c1 X3 => of c0 X4 
                                     
Debug:
  rid:0 step:6 gid:10 user:rule = pi 
                                  
Debug:
  rid:0 step:6 gid:10 user:subgoal = 11 
                                     
Debug:
  rid:0 step:6 gid:11 user:newgoal = of c1 X3 => of c0 X4 
                                     
Debug:
  rid:0 step:6 gid:11 user:rule:pi = success 
                                     
Debug: }}} ->  (0.000s)
Debug: run 7 {{{  
          
Debug:
  rid:0 step:7 gid:11 user:curgoal = => 
                                     of c1 X3 => of c0 X4 
                                     
Debug:
  rid:0 step:7 gid:11 user:rule = implication 
                                  
Debug:
  rid:0 step:7 gid:11 user:subgoal = 12 
                                     
Debug:
  rid:0 step:7 gid:12 user:newgoal = of c0 X4 
                                     
Debug:
  rid:0 step:7 gid:12 user:rule:implication = success 
                                              
Debug: }}} ->  (0.000s)
Debug: run 8 {{{  
          
Debug:
  rid:0 step:8 gid:12 user:curgoal = of 
                                     of c0 X4 
                                     
Debug:
  rid:0 step:8 gid:12 user:rule = backchain 
                                  
Debug:
  rid:0 step:8 gid:12 user:rule:backchain:candidates = File "(context step_id:4)", line 1, column 0, characters 0-0: 
                                                       
Debug: }}} ->  (0.000s)
Debug: select 5 {{{  
             
Debug:
  rid:0 step:8 gid:12 user:rule:backchain:try = File "(context step_id:4)", line 1, column 0, characters 0-0: 
                                                (of c0 X1) :- . 
                                                
Debug:
  rid:0 step:8 gid:0 user:assign = X1 := X4 
                                   
Debug:
  rid:0 step:8 gid:12 user:rule:backchain = success 
                                            
Debug: }}} ->  (0.000s)
Debug: run 9 {{{  
          
Debug:
  rid:0 step:9 gid:6 user:curgoal = coq.say 
                                    coq.say (arr X4 (arr X3 X4)) 
                                    
Debug:
  rid:0 step:9 gid:6 user:rule = builtin 
                                 
Debug:
  rid:0 step:9 gid:6 user:rule:builtin:name = coq.say 
                                              
arr X4 (arr X3 X4)
Debug:
  rid:0 step:9 gid:6 user:rule:builtin = success 
                                         
Debug: }}} ->  (0.000s)
Query assignments:
  Ty = arr X4 (arr X3 X4)
Debug: run 1 {{{  
          
Debug:
  rid:1 step:1 gid:13 user:curgoal = , 
                                     of (fun c0 \ app c0 c0) X0 , coq.say X0 
                                     
Debug:
  rid:1 step:1 gid:13 user:rule = and 
                                  
Debug:
  rid:1 step:1 gid:13 user:subgoal = 14 
                                     
Debug:
  rid:1 step:1 gid:14 user:newgoal = of (fun c0 \ app c0 c0) X0 
                                     
Debug:
  rid:1 step:1 gid:13 user:subgoal = 15 
                                     
Debug:
  rid:1 step:1 gid:15 user:newgoal = coq.say X0 
                                     
Debug:
  rid:1 step:1 gid:13 user:rule:and = success 
                                      
Debug: }}} ->  (0.000s)
Debug: run 2 {{{  
          
Debug:
  rid:1 step:2 gid:14 user:curgoal = of 
                                     of (fun c0 \ app c0 c0) X0 
                                     
Debug:
  rid:1 step:2 gid:14 user:rule = backchain 
                                  
Debug:
  rid:1 step:2 gid:14 user:rule:backchain:candidates = File "./examples/tutorial_elpi_lang.v", line 596, column 2, characters 15366-15421: 
                                                       
Debug: }}} ->  (0.000s)
Debug: select 3 {{{  
             
Debug:
  rid:1 step:2 gid:14 user:rule:backchain:try = File "./examples/tutorial_elpi_lang.v", line 596, column 2, characters 15366-15421: 
                                                (of (fun A0) (arr A2 A1)) :- (
                                                 pi (c0 \
                                                  (of c0 A2 => of (A0 c0) A1))). 
                                                
Debug:
  rid:1 step:2 gid:0 user:assign = A0 := c0 \
                                   app c0 c0 
                                   
Debug:
  rid:1 step:2 gid:0 user:assign = X0 := arr X1 X2 
                                   
Debug:
  rid:1 step:2 gid:14 user:subgoal = 16 
                                     
Debug:
  rid:1 step:2 gid:16 user:newgoal = pi c0 \ of c0 X1 => of (app c0 c0) X2 
                                     
Debug:
  rid:1 step:2 gid:16 user:rule:backchain = success 
                                            
Debug: }}} ->  (0.000s)
Debug: run 3 {{{  
          
Debug:
  rid:1 step:3 gid:16 user:curgoal = pi 
                                     pi c0 \ of c0 X1 => of (app c0 c0) X2 
                                     
Debug:
  rid:1 step:3 gid:16 user:rule = pi 
                                  
Debug:
  rid:1 step:3 gid:16 user:subgoal = 17 
                                     
Debug:
  rid:1 step:3 gid:17 user:newgoal = of c0 X1 => of (app c0 c0) X2 
                                     
Debug:
  rid:1 step:3 gid:17 user:rule:pi = success 
                                     
Debug: }}} ->  (0.000s)
Debug: run 4 {{{  
          
Debug:
  rid:1 step:4 gid:17 user:curgoal = => 
                                     of c0 X1 => of (app c0 c0) X2 
                                     
Debug:
  rid:1 step:4 gid:17 user:rule = implication 
                                  
Debug:
  rid:1 step:4 gid:17 user:subgoal = 18 
                                     
Debug:
  rid:1 step:4 gid:18 user:newgoal = of (app c0 c0) X2 
                                     
Debug:
  rid:1 step:4 gid:18 user:rule:implication = success 
                                              
Debug: }}} ->  (0.000s)
Debug: run 5 {{{  
          
Debug:
  rid:1 step:5 gid:18 user:curgoal = of 
                                     of (app c0 c0) X2 
                                     
Debug:
  rid:1 step:5 gid:18 user:rule = backchain 
                                  
Debug:
  rid:1 step:5 gid:18 user:rule:backchain:candidates = File "./examples/tutorial_elpi_lang.v", line 591, column 2, characters 15200-15250: 
                                                       
Debug: }}} ->  (0.016s)
Debug: select 4 {{{  
             
Debug:
  rid:1 step:5 gid:18 user:rule:backchain:try = File "./examples/tutorial_elpi_lang.v", line 591, column 2, characters 15200-15250: 
                                                (of (app A0 A3) A2) :- (
                                                 of A0 (arr A1 A2)), 
                                                 (of A3 A1). 
                                                
Debug:
  rid:1 step:5 gid:0 user:assign = A0 := c0 
                                   
Debug:
  rid:1 step:5 gid:0 user:assign = A3 := c0 
                                   
Debug:
  rid:1 step:5 gid:0 user:assign = A2 := X2 
                                   
Debug:
  rid:1 step:5 gid:18 user:subgoal = 19 
                                     
Debug:
  rid:1 step:5 gid:19 user:newgoal = of c0 (arr X3^1 X2) 
                                     
Debug:
  rid:1 step:5 gid:19 user:subgoal = 20 
                                     
Debug:
  rid:1 step:5 gid:20 user:newgoal = of c0 X3^1 
                                     
Debug:
  rid:1 step:5 gid:19 user:rule:backchain = success 
                                            
Debug: }}} ->  (0.000s)
Debug: run 6 {{{  
          
Debug:
  rid:1 step:6 gid:19 user:curgoal = of 
                                     of c0 (arr X3^1 X2) 
                                     
Debug:
  rid:1 step:6 gid:19 user:rule = backchain 
                                  
Debug:
  rid:1 step:6 gid:19 user:rule:backchain:candidates = File "(context step_id:4)", line 1, column 0, characters 0-0: 
                                                       
Debug: }}} ->  (0.000s)
Debug: select 5 {{{  
             
Debug:
  rid:1 step:6 gid:19 user:rule:backchain:try = File "(context step_id:4)", line 1, column 0, characters 0-0: 
                                                (of c0 X1) :- . 
                                                
Debug:
  rid:1 step:6 gid:0 user:assign:expand = X3^1 := X4 c0 
                                          
Debug:
  rid:1 step:6 gid:0 user:assign:restrict = 0 X4 c0 := c0 \
                                            .X5 
                                            
Debug:
  rid:1 step:6 gid:0 user:assign = X1 := arr X5 X2 
                                   
Debug:
  rid:1 step:6 gid:19 user:rule:backchain = success 
                                            
Debug: }}} ->  (0.000s)
Debug: run 7 {{{  
          
Debug:
  rid:1 step:7 gid:20 user:curgoal = of 
                                     of c0 X5 
                                     
Debug:
  rid:1 step:7 gid:20 user:rule = backchain 
                                  
Debug:
  rid:1 step:7 gid:20 user:rule:backchain:candidates = File "(context step_id:4)", line 1, column 0, characters 0-0: 
                                                       
Debug: }}} ->  (0.000s)
Debug: select 6 {{{  
             
Debug:
  rid:1 step:7 gid:20 user:rule:backchain:try = File "(context step_id:4)", line 1, column 0, characters 0-0: 
                                                (of c0 (arr X5 X2)) :- . 
                                                
Debug:
  rid:1 step:7 gid:20 user:backchain:fail-to = unify X5 with arr X5 X2 
                                               
Debug: }}} ->  (0.000s)
Debug: select 7 {{{  
             
Debug:
  rid:1 step:7 gid:20 user:rule:backchain = fail 
                                            
Debug: }}} ->  (0.000s)
Debug: run 6 {{{  
          
Debug:
  rid:2 step:6 gid:27 user:curgoal = pi 
                                     pi c1 \ of c1 X0 => of c0 X1 
                                     
Debug:
  rid:2 step:6 gid:27 user:rule = pi 
                                  
Debug:
  rid:2 step:6 gid:27 user:subgoal = 28 
                                     
Debug:
  rid:2 step:6 gid:28 user:newgoal = of c1 X0 => of c0 X1 
                                     
Debug:
  rid:2 step:6 gid:28 user:rule:pi = success 
                                     
Debug: }}} ->  (0.000s)
Debug: run 7 {{{  
          
Debug:
  rid:2 step:7 gid:28 user:curgoal = => 
                                     of c1 X0 => of c0 X1 
                                     
Debug:
  rid:2 step:7 gid:28 user:rule = implication 
                                  
Debug:
  rid:2 step:7 gid:28 user:subgoal = 29 
                                     
Debug:
  rid:2 step:7 gid:29 user:newgoal = of c0 X1 
                                     
Debug:
  rid:2 step:7 gid:29 user:rule:implication = success 
                                              
Debug: }}} ->  (0.000s)
Debug: run 8 {{{  
          
Debug:
  rid:2 step:8 gid:29 user:curgoal = of 
                                     of c0 X1 
                                     
Debug:
  rid:2 step:8 gid:29 user:rule = backchain 
                                  
Debug:
  rid:2 step:8 gid:29 user:rule:backchain:candidates = File "(context step_id:4)", line 1, column 0, characters 0-0: 
                                                       
Debug: }}} ->  (0.000s)
Debug: select 5 {{{  
             
Debug:
  rid:2 step:8 gid:29 user:rule:backchain:try = File "(context step_id:4)", line 1, column 0, characters 0-0: 
                                                (of c0 X2) :- . 
                                                
Debug:
  rid:2 step:8 gid:0 user:assign = X2 := X1 
                                   
Debug:
  rid:2 step:8 gid:29 user:rule:backchain = success 
                                            
Debug: }}} ->  (0.000s)
arr X1 (arr X0 X1)
Query assignments:
  Ty = arr X1 (arr X0 X1)
Debug: run 2 {{{  
          
Debug:
  rid:3 step:2 gid:31 user:curgoal = of 
                                     of (fun c0 \ fun c1 \ c0) X0 
                                     
Debug:
  rid:3 step:2 gid:31 user:rule = backchain 
                                  
Debug:
  rid:3 step:2 gid:31 user:rule:backchain:candidates = File "./examples/tutorial_elpi_lang.v", line 596, column 2, characters 15366-15421: 
                                                       
Debug: }}} ->  (0.000s)
Debug: select 3 {{{  
             
Debug:
  rid:3 step:2 gid:31 user:rule:backchain:try = File "./examples/tutorial_elpi_lang.v", line 596, column 2, characters 15366-15421: 
                                                (of (fun A0) (arr A2 A1)) :- (
                                                 pi (c0 \
                                                  (of c0 A2 => of (A0 c0) A1))). 
                                                
Debug:
  rid:3 step:2 gid:0 user:assign = A0 := c0 \
                                   fun c1 \ c0 
                                   
Debug:
  rid:3 step:2 gid:0 user:assign = X0 := arr X1 X2 
                                   
Debug:
  rid:3 step:2 gid:31 user:subgoal = 33 
                                     
Debug:
  rid:3 step:2 gid:33 user:newgoal = pi c0 \ of c0 X1 => of (fun c1 \ c0) X2 
                                     
Debug:
  rid:3 step:2 gid:33 user:rule:backchain = success 
                                            
Debug: }}} ->  (0.000s)
Debug: run 5 {{{  
          
Debug:
  rid:3 step:5 gid:35 user:curgoal = of 
                                     of (fun c1 \ c0) X2 
                                     
Debug:
  rid:3 step:5 gid:35 user:rule = backchain 
                                  
Debug:
  rid:3 step:5 gid:35 user:rule:backchain:candidates = File "./examples/tutorial_elpi_lang.v", line 596, column 2, characters 15366-15421: 
                                                       
Debug: }}} ->  (0.000s)
Debug: select 4 {{{  
             
Debug:
  rid:3 step:5 gid:35 user:rule:backchain:try = File "./examples/tutorial_elpi_lang.v", line 596, column 2, characters 15366-15421: 
                                                (of (fun A0) (arr A2 A1)) :- (
                                                 pi (c0 \
                                                  (of c0 A2 => of (A0 c0) A1))). 
                                                
Debug:
  rid:3 step:5 gid:0 user:assign = A0 := c1 \
                                   c0 
                                   
Debug:
  rid:3 step:5 gid:0 user:assign = X2 := arr X3 X4 
                                   
Debug:
  rid:3 step:5 gid:35 user:subgoal = 36 
                                     
Debug:
  rid:3 step:5 gid:36 user:newgoal = pi c1 \ of c1 X3 => of c0 X4 
                                     
Debug:
  rid:3 step:5 gid:36 user:rule:backchain = success 
                                            
Debug: }}} ->  (0.000s)
Debug: run 8 {{{  
          
Debug:
  rid:3 step:8 gid:38 user:curgoal = of 
                                     of c0 X4 
                                     
Debug:
  rid:3 step:8 gid:38 user:rule = backchain 
                                  
Debug:
  rid:3 step:8 gid:38 user:rule:backchain:candidates = File "(context step_id:4)", line 1, column 0, characters 0-0: 
                                                       
Debug: }}} ->  (0.000s)
Debug: select 5 {{{  
             
Debug:
  rid:3 step:8 gid:38 user:rule:backchain:try = File "(context step_id:4)", line 1, column 0, characters 0-0: 
                                                (of c0 X1) :- . 
                                                
Debug:
  rid:3 step:8 gid:0 user:assign = X1 := X4 
                                   
Debug:
  rid:3 step:8 gid:38 user:rule:backchain = success 
                                            
Debug: }}} ->  (0.000s)
arr X4 (arr X3 X4)
Query assignments:
  Ty = arr X4 (arr X3 X4)
Debug: run 8 {{{  
          
Debug:
  rid:4 step:8 gid:47 user:curgoal = of 
                                     of c0 X0 
                                     
Debug:
  rid:4 step:8 gid:47 user:rule = backchain 
                                  
Debug:
  rid:4 step:8 gid:47 user:rule:backchain:candidates = File "(context step_id:4)", line 1, column 0, characters 0-0: 
                                                       
Debug: }}} ->  (0.000s)
Debug: select 5 {{{  
             
Debug:
  rid:4 step:8 gid:47 user:rule:backchain:try = File "(context step_id:4)", line 1, column 0, characters 0-0: 
                                                (of c0 X1) :- . 
                                                
Debug:
  rid:4 step:8 gid:0 user:assign = X1 := X0 
                                   
Debug:
  rid:4 step:8 gid:47 user:rule:backchain = success 
                                            
Debug: }}} ->  (0.000s)
arr X0 (arr X2 X0)
Query assignments:
  Ty = arr X0 (arr X2 X0)
calling mypred on  3
calling mypred on  2
calling mypred on  1
calling mypred on  0
ok
Query assignments:
  A = X0
  B = X0
  C = X0
Query assignments:
  A = X0
  B = X0
  C = X0
File "./examples/tutorial_elpi_lang.v", line 554, characters 12-17:
Warning:
File "./examples/tutorial_elpi_lang.v", line 554, characters 12-17
Hummm is linear: name it _Hummm (discard) or Hummm_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_elpi_lang.v", line 670, characters 12-14:
Warning:
File "./examples/tutorial_elpi_lang.v", line 670, characters 12-14
Ty is linear: name it _Ty (discard) or Ty_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_elpi_lang.v", line 826, characters 26-27:
Warning:
File "./examples/tutorial_elpi_lang.v", line 826, characters 26-27
X is linear: name it _X (discard) or X_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_elpi_lang.v", line 826, characters 34-35:
Warning:
File "./examples/tutorial_elpi_lang.v", line 826, characters 34-35
Y is linear: name it _Y (discard) or Y_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_elpi_lang.v", line 856, characters 26-27:
Warning:
File "./examples/tutorial_elpi_lang.v", line 856, characters 26-27
X is linear: name it _X (discard) or X_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_elpi_lang.v", line 856, characters 34-35:
Warning:
File "./examples/tutorial_elpi_lang.v", line 856, characters 34-35
Y is linear: name it _Y (discard) or Y_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_elpi_lang.v", line 888, characters 21-22:
Warning:
File "./examples/tutorial_elpi_lang.v", line 888, characters 21-22
X is linear: name it _X (discard) or X_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_elpi_lang.v", line 888, characters 29-30:
Warning:
File "./examples/tutorial_elpi_lang.v", line 888, characters 29-30
Z is linear: name it _Z (discard) or Z_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_elpi_lang.v", line 1020, characters 26-27:
Warning:
File "./examples/tutorial_elpi_lang.v", line 1020, characters 26-27
A is linear: name it _A (discard) or A_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_elpi_lang.v", line 1057, characters 27-28:
Warning:
File "./examples/tutorial_elpi_lang.v", line 1057, characters 27-28
A is linear: name it _A (discard) or A_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_elpi_lang.v", line 1146, characters 18-20:
Warning:
File "./examples/tutorial_elpi_lang.v", line 1146, characters 18-20
R1 is linear: name it _R1 (discard) or R1_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_elpi_lang.v", line 1147, characters 15-17:
Warning:
File "./examples/tutorial_elpi_lang.v", line 1147, characters 15-17
R2 is linear: name it _R2 (discard) or R2_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_elpi_lang.v", line 1148, characters 16-18:
Warning:
File "./examples/tutorial_elpi_lang.v", line 1148, characters 16-18
R3 is linear: name it _R3 (discard) or R3_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_elpi_lang.v", line 1184, characters 16-17:
Warning:
File "./examples/tutorial_elpi_lang.v", line 1184, characters 16-17
R is linear: name it _R (discard) or R_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_elpi_lang.v", line 1511, characters 9-10:
Warning:
File "./examples/tutorial_elpi_lang.v", line 1511, characters 9-10
A is linear: name it _A (discard) or A_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_elpi_lang.v", line 1511, characters 20-21:
Warning:
File "./examples/tutorial_elpi_lang.v", line 1511, characters 20-21
B is linear: name it _B (discard) or B_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_elpi_lang.v", line 1511, characters 28-29:
Warning:
File "./examples/tutorial_elpi_lang.v", line 1511, characters 28-29
C is linear: name it _C (discard) or C_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_elpi_lang.v", line 1518, characters 9-10:
Warning:
File "./examples/tutorial_elpi_lang.v", line 1518, characters 9-10
A is linear: name it _A (discard) or A_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_elpi_lang.v", line 1518, characters 20-21:
Warning:
File "./examples/tutorial_elpi_lang.v", line 1518, characters 20-21
B is linear: name it _B (discard) or B_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_elpi_lang.v", line 1518, characters 28-29:
Warning:
File "./examples/tutorial_elpi_lang.v", line 1518, characters 28-29
C is linear: name it _C (discard) or C_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./apps/NES/theories/NES.v", line 39, characters 0-42:
Warning:
Undeclared globals:
- File "/build/reproducible-path/coq-elpi-2.5.0/apps/NES/elpi/nes_interp.elpi", line 6, column 24, characters 152-161: ns.
Please add the following text to your program:
type ns list string -> modpath -> prop.
[elpi.missing-types,elpi.typecheck,elpi,default]
Query assignments:
  BO = fix `add` 0 
 (prod `n` (global (indt «nat»)) c0 \
   prod `m` (global (indt «nat»)) c1 \ global (indt «nat»)) c0 \
 fun `n` (global (indt «nat»)) c1 \
  fun `m` (global (indt «nat»)) c2 \
   match c1 (fun `n` (global (indt «nat»)) c3 \ global (indt «nat»)) 
    [c2, 
     fun `p` (global (indt «nat»)) c3 \
      app [global (indc «S»), app [c0, c3, c2]]]
  GR = «Nat.add»
  TY = prod `n` (global (indt «nat»)) c0 \
 prod `m` (global (indt «nat»)) c1 \ global (indt «nat»)
fix X0 0 
 (prod `n` (global (indt «nat»)) c0 \
   prod `m` (global (indt «nat»)) c1 \ global (indt «nat»)) c0 \
 fun `n` (global (indt «nat»)) c1 \
  fun `m` (global (indt «nat»)) c2 \
   match c1 
    (fun `_elpi_renamed_n_2` (global (indt «nat»)) c3 \ X1 c1 c2 c3) 
    [c2, fun `p` (X2 c1 c2) c3 \ app [c0, c3, c2]]
fix X0 0 
 (prod `n` (global (indt «nat»)) c0 \
   prod `m` (global (indt «nat»)) c1 \ global (indt «nat»)) c0 \
 fun `n` (global (indt «nat»)) c1 \
  fun `m` (global (indt «nat»)) c2 \
   match c1 
    (fun `_elpi_renamed_n_2` (global (indt «nat»)) c3 \
      global (indt «nat»)) [c2, fun `p` (X3 c1 c2) c3 \ app [c0, c3, c2]]
Query assignments:
  BO1 = fix X0 0 
 (prod `n` (global (indt «nat»)) c0 \
   prod `m` (global (indt «nat»)) c1 \ global (indt «nat»)) c0 \
 fun `n` (global (indt «nat»)) c1 \
  fun `m` (global (indt «nat»)) c2 \
   match c1 
    (fun `_elpi_renamed_n_2` (global (indt «nat»)) c3 \
      global (indt «nat»)) [c2, fun `p` (X3 c1 c2) c3 \ app [c0, c3, c2]]
  GR = «Nat.add»
  TY = prod `n` (global (indt «nat»)) c0 \
 prod `m` (global (indt «nat»)) c1 \ global (indt «nat»)
  X1_ = c0 \ c1 \ c2 \
global (indt «nat»)
  X2_ = c0 \ c1 \
X3 c0 c1
Syntactic constraints:
 {c0 c1} :
   decl c1 `m` (global (indt «nat»)), decl c0 `n` (global (indt «nat»))
   ?- evar (X3 c0 c1) (sort (typ «elpi_tests_stdlib.test_quotation.2»)) 
       (X3 c0 c1)  /* suspended on X3 */
Universe constraints:
UNIVERSES:
 {elpi_tests_stdlib.test_quotation.3 elpi_tests_stdlib.test_quotation.2
  elpi_tests_stdlib.test_quotation.1} |=
   Set <= elpi_tests_stdlib.test_quotation.3
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 elpi_tests_stdlib.test_quotation.3
SORTS:
 α1
 α2
WEAK CONSTRAINTS:
 

fun `v` 
 (app
   [global (indt «Vector.t»), global (indt «nat»), 
    app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]) 
 c0 \
 match c0 
  (fun `_` (X0 c0) c1 \
    fun `_elpi_renamed_v_1` (app [global (indt «Vector.t»), X1 c0, X2 c0]) 
     c2 \ X3 c0 c2) 
  [global (indc «O»), 
   fun `_` (X4 c0) c1 \
    fun `_` (X5 c0) c2 \
     fun `_` (X6 c0) c3 \ app [global (indc «S»), global (indc «O»)]]
fun `v` 
 (app
   [global (indt «Vector.t»), global (indt «nat»), 
    app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]) 
 c0 \
 match c0 
  (fun `_` (X7 c0) c1 \
    fun `_elpi_renamed_v_1` 
     (app [global (indt «Vector.t»), global (indt «nat»), X8 c0]) c2 \
     global (indt «nat»)) 
  [global (indc «O»), 
   fun `_` (X9 c0) c1 \
    fun `_` (X10 c0) c2 \
     fun `_` (X11 c0) c3 \ app [global (indc «S»), global (indc «O»)]]
Query assignments:
  T = fun `v` 
 (app
   [global (indt «Vector.t»), global (indt «nat»), 
    app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]) 
 c0 \
 match c0 
  (fun `_` (X7 c0) c1 \
    fun `_elpi_renamed_v_1` 
     (app [global (indt «Vector.t»), global (indt «nat»), X8 c0]) c2 \
     global (indt «nat»)) 
  [global (indc «O»), 
   fun `_` (X9 c0) c1 \
    fun `_` (X10 c0) c2 \
     fun `_` (X11 c0) c3 \ app [global (indc «S»), global (indc «O»)]]
  X3_ = c0 \
X7 c0
  X4_ = c0 \
global (indt «nat»)
  X5_ = c0 \
X8 c0
  X6_ = c0 \ c1 \
global (indt «nat»)
  X7_ = c0 \
X9 c0
  X8_ = c0 \
X10 c0
  X9_ = c0 \
X11 c0
Syntactic constraints:
 {c0} :
   decl c0 `v` 
    (app
      [global (indt «Vector.t»), global (indt «nat»), 
       app
        [global (indc «S»), app [global (indc «S»), global (indc «O»)]]])
   ?- evar (X11 c0) (sort (typ «elpi_tests_stdlib.test_quotation.10»)) 
       (X11 c0)  /* suspended on X11 */
 {c0} :
   decl c0 `v` 
    (app
      [global (indt «Vector.t»), global (indt «nat»), 
       app
        [global (indc «S»), app [global (indc «S»), global (indc «O»)]]])
   ?- evar (X10 c0) (sort (typ «elpi_tests_stdlib.test_quotation.9»)) 
       (X10 c0)  /* suspended on X10 */
 {c0} :
   decl c0 `v` 
    (app
      [global (indt «Vector.t»), global (indt «nat»), 
       app
        [global (indc «S»), app [global (indc «S»), global (indc «O»)]]])
   ?- evar (X9 c0) (sort (typ «elpi_tests_stdlib.test_quotation.8»)) 
       (X9 c0)  /* suspended on X9 */
 {c0} :
   decl c0 `v` 
    (app
      [global (indt «Vector.t»), global (indt «nat»), 
       app
        [global (indc «S»), app [global (indc «S»), global (indc «O»)]]])
   ?- evar (X8 c0) (X12 c0) (X8 c0)  /* suspended on X8 */
 {c0} :
   decl c0 `v` 
    (app
      [global (indt «Vector.t»), global (indt «nat»), 
       app
        [global (indc «S»), app [global (indc «S»), global (indc «O»)]]])
   ?- evar (X13 c0) (sort (typ «elpi_tests_stdlib.test_quotation.6»)) 
       (X12 c0)  /* suspended on X13, X12 */
 {c0} :
   decl c0 `v` 
    (app
      [global (indt «Vector.t»), global (indt «nat»), 
       app
        [global (indc «S»), app [global (indc «S»), global (indc «O»)]]])
   ?- evar (X7 c0) (sort (typ «elpi_tests_stdlib.test_quotation.4»)) 
       (X7 c0)  /* suspended on X7 */
Universe constraints:
UNIVERSES:
 {elpi_tests_stdlib.test_quotation.12 elpi_tests_stdlib.test_quotation.11
  elpi_tests_stdlib.test_quotation.10 elpi_tests_stdlib.test_quotation.9
  elpi_tests_stdlib.test_quotation.8 elpi_tests_stdlib.test_quotation.7
  elpi_tests_stdlib.test_quotation.6 elpi_tests_stdlib.test_quotation.5
  elpi_tests_stdlib.test_quotation.4} |=
   elpi_tests_stdlib.test_quotation.11 < elpi_tests_stdlib.test_quotation.5
   Set <= Vector.t.u0
   Set <= elpi_tests_stdlib.test_quotation.11
   Set <= elpi_tests_stdlib.test_quotation.12
   elpi_tests_stdlib.test_quotation.11 <= Vector.t.u0
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 elpi_tests_stdlib.test_quotation.12
SORTS:
 α3
 α4 := Type
 α5
 α6
 α7
 α8
 α9
WEAK CONSTRAINTS:
 

3
Query assignments:
  X = 3
fun `x` X0 c0 \ app [X1, c0]
Query assignments:
  X = X1
  X10_ = X0
  Y = fun `x` X0 c0 \ app [X1, c0]
fun `r` (global (indt «nat»)) c0 \
 fun `p` 
  (prod `y` (global (indt «nat»)) c1 \
    app
     [global (indt «eq»), global (indt «nat»), c1, global (indc «O»)]) 
  c1 \
  fun `q` (global (indt «bool»)) c2 \
   prod `y` (global (indt «nat»)) c3 \
    app
     [global (indt «eq»), global (indt «nat»), c3, global (indc «O»)]
Query assignments:
  %arg1 = c0 \ c1 \ c2 \
prod `y` (global (indt «nat»)) c3 \
 app [global (indt «eq»), global (indt «nat»), c3, global (indc «O»)]
  X = fun `r` (global (indt «nat»)) c0 \
 fun `p` 
  (prod `y` (global (indt «nat»)) c1 \
    app
     [global (indt «eq»), global (indt «nat»), c1, global (indc «O»)]) 
  c1 \
  fun `q` (global (indt «bool»)) c2 \
   prod `y` (global (indt «nat»)) c3 \
    app
     [global (indt «eq»), global (indt «nat»), c3, global (indc «O»)]
fun u : nat =>
{| val := oval u; Sub := Ord u; Sub_rect := inlined_sub_rect |}
     : forall u : nat, is_SUB nat (fun x : nat => leq x u) (ord u)
Debug:
[elpi]
  gterm2lp: term=(fun u =>
                  {| val := oval u; Sub := _; Sub_rect := inlined_sub_rect |})
Debug: [elpi] gterm2lp: term=_
Debug:
[elpi]
  gterm2lp: term={| val := oval u; Sub := _; Sub_rect := inlined_sub_rect |}
Debug: [elpi] gterm2lp: term=SubType
Debug: [elpi] gterm2lp: term=_
Debug: [elpi] gterm2lp: term=_
Debug: [elpi] gterm2lp: term=_
Debug: [elpi] gterm2lp: term=(oval u)
Debug: [elpi] gterm2lp: term=oval
Debug: [elpi] gterm2lp: term=u
Debug: [elpi] gterm2lp: term=_
Debug: [elpi] gterm2lp: term=inlined_sub_rect
Debug: [elpi] gterm2lp: term=_
Debug:
[elpi]
  gterm2lp: term=(fun K_S u =>
                  let (x, Px) as u0 return (K u0) := u in K_S x Px)
Debug: [elpi] gterm2lp: term=_
Debug:
[elpi]
  gterm2lp: term=(fun u => let (x, Px) as u0 return (K u0) := u in K_S x Px)
Debug: [elpi] gterm2lp: term=_
Debug:
[elpi]
  gterm2lp: term=(let (x, Px) as u0 return (K u0) := _elpi_renamed_u_3 in
                  K_S x Px)
Debug: [elpi] gterm2lp: term=_elpi_renamed_u_3
Debug: [elpi] gterm2lp: term=(fun u0 => K u0)
Debug: [elpi] gterm2lp: term=_
Debug: [elpi] gterm2lp: term=(K u0)
Debug: [elpi] gterm2lp: term=K
Debug: [elpi] gterm2lp: term=u0
Debug: [elpi] gterm2lp: term=(fun x Px => K_S x Px)
Debug: [elpi] gterm2lp: term=_
Debug: [elpi] gterm2lp: term=(fun Px => K_S x Px)
Debug: [elpi] gterm2lp: term=_
Debug: [elpi] gterm2lp: term=(K_S x Px)
Debug: [elpi] gterm2lp: term=K_S
Debug: [elpi] gterm2lp: term=x
Debug: [elpi] gterm2lp: term=Px
Debug:
[elpi]
  gterm2lp: term=(fun u =>
                  {| val := _; Sub := elpi_code:(K) u; Sub_rect := _ |})
Debug: [elpi] gterm2lp: term=_
Debug:
[elpi] gterm2lp: term={| val := _; Sub := elpi_code:(K) u; Sub_rect := _ |}
Debug: [elpi] gterm2lp: term=SubType
Debug: [elpi] gterm2lp: term=_
Debug: [elpi] gterm2lp: term=_
Debug: [elpi] gterm2lp: term=_
Debug: [elpi] gterm2lp: term=_
Debug: [elpi] gterm2lp: term=(elpi_code:(K) u)
Debug: [elpi] gterm2lp: term=elpi_code:(K)
Debug: [elpi] gterm2lp: term=u
Debug: [elpi] gterm2lp: term=_
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
fun `u` X0 c0 \
 app
  [global (indc «SubType»), X1 c0, X2 c0, X3 c0, 
   app [global (const «oval»), c0], X4 c0, 
   fun `K` (X5 c0) c1 \
    fun `K_S` (X6 c0 c1) c2 \
     fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \
      match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) 
       [fun `x` (X9 c0 c1 c2 c3) c4 \
         fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]]]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Debug:
[elpi]
  elpi sigma -> coq sigma: before:
SHELF:
FUTURE GOALS STACK:
 

Rocq-Elpi mapping:
RAW:
ELAB:

Debug:
[elpi]
  elpi sigma -> coq sigma: synchronized:
SHELF:
FUTURE GOALS STACK:
 

Rocq-Elpi mapping:
RAW:
ELAB:

Debug:
[elpi]
  elpi sigma -> coq sigma: after:
SHELF:
FUTURE GOALS STACK:
 

Rocq-Elpi mapping:
RAW:
ELAB:

Debug:
[elpi]
  lp2term: depth=0 ctx=[] term=fun `u` X0 c0 \
 app
  [global (indc «SubType»), X1 c0, X2 c0, X3 c0, 
   app [global (const «oval»), c0], X4 c0, 
   fun `K` (X5 c0) c1 \
    fun `K_S` (X6 c0 c1) c2 \
     fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \
      match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) 
       [fun `x` (X9 c0 c1 c2 c3) c4 \
         fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]]]
Debug:
[elpi]
  lp2term@0:fun `u` X0 c0 \
 app
  [global (indc «SubType»), X1 c0, X2 c0, X3 c0, 
   app [global (const «oval»), c0], X4 c0, 
   fun `K` (X5 c0) c1 \
    fun `K_S` (X6 c0 c1) c2 \
     fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \
      match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) 
       [fun `x` (X9 c0 c1 c2 c3) c4 \
         fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]]]
Debug: [elpi] lp2term@0:X0
Debug: [elpi] lp2term: evar: calldepth:0 X0 RAW:
ELAB:

Debug:
[elpi]
  lp2term@1:app
 [global (indc «SubType»), X1 c0, X2 c0, X3 c0, 
  app [global (const «oval»), c0], X4 c0, 
  fun `K` (X5 c0) c1 \
   fun `K_S` (X6 c0 c1) c2 \
    fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \
     match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) 
      [fun `x` (X9 c0 c1 c2 c3) c4 \
        fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]]]
Debug: [elpi] lp2term@1:global (indc «SubType»)
Debug: [elpi] lp2term@1:X1 c0
Debug: [elpi] lp2term: evar: calldepth:0 X1 c0 RAW:
ELAB:

Debug: [elpi] lp2term@1:X2 c0
Debug: [elpi] lp2term: evar: calldepth:0 X2 c0 RAW:
ELAB:

Debug: [elpi] lp2term@1:X3 c0
Debug: [elpi] lp2term: evar: calldepth:0 X3 c0 RAW:
ELAB:

Debug: [elpi] lp2term@1:app [global (const «oval»), c0]
Debug: [elpi] lp2term@1:global (const «oval»)
Debug: [elpi] lp2term@1:c0
Debug: [elpi] lp2term@1:X4 c0
Debug: [elpi] lp2term: evar: calldepth:0 X4 c0 RAW:
ELAB:

Debug:
[elpi]
  lp2term@1:fun `K` (X5 c0) c1 \
 fun `K_S` (X6 c0 c1) c2 \
  fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \
   match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) 
    [fun `x` (X9 c0 c1 c2 c3) c4 \
      fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]]
Debug: [elpi] lp2term@1:X5 c0
Debug: [elpi] lp2term: evar: calldepth:0 X5 c0 RAW:
ELAB:

Debug:
[elpi]
  lp2term@2:fun `K_S` (X6 c0 c1) c2 \
 fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \
  match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) 
   [fun `x` (X9 c0 c1 c2 c3) c4 \
     fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]]
Debug: [elpi] lp2term@2:X6 c0 c1
Debug: [elpi] lp2term: evar: calldepth:0 X6 c0 c1 RAW:
ELAB:

Debug:
[elpi]
  lp2term@3:fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \
 match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) 
  [fun `x` (X9 c0 c1 c2 c3) c4 \
    fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]]
Debug: [elpi] lp2term@3:X7 c0 c1 c2
Debug: [elpi] lp2term: evar: calldepth:0 X7 c0 c1 c2 RAW:
ELAB:

Debug:
[elpi]
  lp2term@4:match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) 
 [fun `x` (X9 c0 c1 c2 c3) c4 \
   fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]]
Debug: [elpi] lp2term@4:c3
Debug: [elpi] lp2term@4:fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]
Debug: [elpi] lp2term@4:X8 c0 c1 c2 c3
Debug: [elpi] lp2term: evar: calldepth:0 X8 c0 c1 c2 c3 RAW:
ELAB:

Debug: [elpi] lp2term@5:app [c1, c4]
Debug: [elpi] lp2term@5:c1
Debug: [elpi] lp2term@5:c4
Debug:
[elpi]
  lp2term@4:fun `x` (X9 c0 c1 c2 c3) c4 \
 fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]
Debug: [elpi] lp2term@4:X9 c0 c1 c2 c3
Debug: [elpi] lp2term: evar: calldepth:0 X9 c0 c1 c2 c3 RAW:
ELAB:

Debug: [elpi] lp2term@5:fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]
Debug: [elpi] lp2term@5:X10 c0 c1 c2 c3 c4
Debug: [elpi] lp2term: evar: calldepth:0 X10 c0 c1 c2 c3 c4 RAW:
ELAB:

Debug: [elpi] lp2term@6:app [c2, c4, c5]
Debug: [elpi] lp2term@6:c2
Debug: [elpi] lp2term@6:c4
Debug: [elpi] lp2term@6:c5
Debug:
[elpi]
  lp2term: out=(fun u : hole hole =>
                {|
                  val := oval u;
                  Sub := hole u hole;
                  Sub_rect :=
                    fun (K : hole u hole) (K_S : hole K u hole)
                      (_elpi_renamed_u_3 : hole K_S K u hole) =>
                    let
                      (x, Px) as u0
                       return (hole u0 _elpi_renamed_u_3 K_S K hole) :=
                      _elpi_renamed_u_3 in
                    K_S x Px
                |})
  elpi2coq:
  RAW:
ELAB:
SHELF:
   
  FUTURE GOALS STACK:
   
  
Debug:
[elpi]
  detype: (fun u : hole hole =>
           {|
             val := oval u;
             Sub := hole u hole;
             Sub_rect :=
               fun (K : hole u hole) (K_S : hole K u hole)
                 (_elpi_renamed_u_3 : hole K_S K u hole) =>
               let
                 (x, Px) as u0
                  return (hole u0 _elpi_renamed_u_3 K_S K hole) :=
                 _elpi_renamed_u_3 in
               K_S x Px
           |})
Debug: [elpi] bringing updated sigma back to lp
Debug:
[elpi]
  term2lp: depth=0 ctx= term=(forall u : nat,
                              is_SUB nat (fun x : nat => leq x u) (ord u))
Debug:
[elpi]
  term2lp (out): prod `u` (global (indt «nat»)) c0 \
 app
  [global (indt «is_SUB»), global (indt «nat»), 
   fun `x` (global (indt «nat»)) c1 \ app [global (const «leq»), c1, c0], 
   app [global (indt «ord»), c0]]
Debug:
[elpi]
  term2lp: depth=0 ctx= term=(fun u : nat =>
                              {|
                                val := oval u;
                                Sub := Ord u;
                                Sub_rect := inlined_sub_rect
                              |})
Debug:
[elpi]
  term2lp (out): fun `u` (global (indt «nat»)) c0 \
 app
  [global (indc «SubType»), global (indt «nat»), 
   fun `x` (global (indt «nat»)) c1 \ app [global (const «leq»), c1, c0], 
   app [global (indt «ord»), c0], app [global (const «oval»), c0], 
   app [global (indc «Ord»), c0], 
   fun `K` 
    (prod `x` (app [global (indt «ord»), c0]) c1 \ sort (typ «is_SUB.u2»)) 
    c1 \
    fun `K_S` 
     (prod `x` (global (indt «nat»)) c2 \
       prod `Px` 
        (app
          [global (indt «eq»), global (indt «bool»), 
           app
            [fun `x` (global (indt «nat»)) c3 \
              app [global (const «leq»), c3, c0], c2], 
           global (indc «true»)]) c3 \
        app [c1, app [global (indc «Ord»), c0, c2, c3]]) c2 \
     fun `_elpi_renamed_u_3` (app [global (indt «ord»), c0]) c3 \
      match c3 
       (fun `xxx` (app [global (indt «ord»), c0]) c4 \ app [c1, c4]) 
       [fun `x` (global (indt «nat»)) c4 \
         fun `Px` 
          (app
            [global (indt «eq»), global (indt «bool»), 
             app [global (const «leq»), c4, c0], global (indc «true»)]) 
          c5 \ app [c2, c4, c5]]]
Debug:
[elpi]
  Elpi: query-compilation:0.0013 static-check:0.0000 optimization:0.0001 runtime:0.0075 (with success)

Query assignments:
  GR = indc «Ord»
  K = global (indc «Ord»)
  T = fun `u` X0 c0 \
 app
  [global (indc «SubType»), X1 c0, X2 c0, X3 c0, 
   app [global (const «oval»), c0], X4 c0, 
   fun `K` (X5 c0) c1 \
    fun `K_S` (X6 c0 c1) c2 \
     fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \
      match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) 
       [fun `x` (X9 c0 c1 c2 c3) c4 \
         fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]]]
  T1 = fun `u` (global (indt «nat»)) c0 \
 app
  [global (indc «SubType»), global (indt «nat»), 
   fun `x` (global (indt «nat»)) c1 \ app [global (const «leq»), c1, c0], 
   app [global (indt «ord»), c0], app [global (const «oval»), c0], 
   app [global (indc «Ord»), c0], 
   fun `K` 
    (prod `x` (app [global (indt «ord»), c0]) c1 \ sort (typ «is_SUB.u2»)) 
    c1 \
    fun `K_S` 
     (prod `x` (global (indt «nat»)) c2 \
       prod `Px` 
        (app
          [global (indt «eq»), global (indt «bool»), 
           app
            [fun `x` (global (indt «nat»)) c3 \
              app [global (const «leq»), c3, c0], c2], 
           global (indc «true»)]) c3 \
        app [c1, app [global (indc «Ord»), c0, c2, c3]]) c2 \
     fun `_elpi_renamed_u_3` (app [global (indt «ord»), c0]) c3 \
      match c3 
       (fun `xxx` (app [global (indt «ord»), c0]) c4 \ app [c1, c4]) 
       [fun `x` (global (indt «nat»)) c4 \
         fun `Px` 
          (app
            [global (indt «eq»), global (indt «bool»), 
             app [global (const «leq»), c4, c0], global (indc «true»)]) 
          c5 \ app [c2, c4, c5]]]
  X11_ = X0
  X12_ = X1
  X13_ = X2
  X14_ = X3
  X15_ = X4
  X16_ = X5
  X17_ = X6
  X18_ = X7
  X19_ = X8
  X20_ = X9
  X21_ = X10
  X22_ = global (indt «nat»)
  X23_ = c0 \
global (indt «nat»)
  X24_ = c0 \
fun `x` (global (indt «nat»)) c1 \ app [global (const «leq»), c1, c0]
  X25_ = c0 \
app [global (indt «ord»), c0]
  X26_ = c0 \
app [global (const «oval»), c0]
  X27_ = c0 \
fun `K` 
 (prod `x` (app [global (indt «ord»), c0]) c1 \ sort (typ «is_SUB.u2»)) 
 c1 \
 fun `K_S` 
  (prod `x` (global (indt «nat»)) c2 \
    prod `Px` 
     (app
       [global (indt «eq»), global (indt «bool»), 
        app
         [fun `x` (global (indt «nat»)) c3 \
           app [global (const «leq»), c3, c0], c2], global (indc «true»)]) 
     c3 \ app [c1, app [global (indc «Ord»), c0, c2, c3]]) c2 \
  fun `_elpi_renamed_u_3` (app [global (indt «ord»), c0]) c3 \
   match c3 (fun `xxx` (app [global (indt «ord»), c0]) c4 \ app [c1, c4]) 
    [fun `x` (global (indt «nat»)) c4 \
      fun `Px` 
       (app
         [global (indt «eq»), global (indt «bool»), 
          app [global (const «leq»), c4, c0], global (indc «true»)]) c5 \
       app [c2, c4, c5]]
Universe constraints:
UNIVERSES:
 {elpi_tests_stdlib.test_quotation.28 elpi_tests_stdlib.test_quotation.27} |=
   Set <= is_SUB.u0
   Set <= is_SUB.u1
   Set <= elpi_tests_stdlib.test_quotation.27
   is_SUB.u2 <= elpi_tests_stdlib.test_quotation.28
ALGEBRAIC UNIVERSES:
 {elpi_tests_stdlib.test_quotation.28 elpi_tests_stdlib.test_quotation.27}
FLEXIBLE UNIVERSES:
 elpi_tests_stdlib.test_quotation.28
 elpi_tests_stdlib.test_quotation.27
SORTS:
 α24 := Type
 α25 := Type
WEAK CONSTRAINTS:
 

Debug:
[elpi]
  gterm2lp: term=(fun u =>
                  {| val := oval u; Sub := _; Sub_rect := inlined_sub_rect |})
Debug: [elpi] gterm2lp: term=_
Debug:
[elpi]
  gterm2lp: term={| val := oval u; Sub := _; Sub_rect := inlined_sub_rect |}
Debug: [elpi] gterm2lp: term=SubType
Debug: [elpi] gterm2lp: term=_
Debug: [elpi] gterm2lp: term=_
Debug: [elpi] gterm2lp: term=_
Debug: [elpi] gterm2lp: term=(oval u)
Debug: [elpi] gterm2lp: term=oval
Debug: [elpi] gterm2lp: term=u
Debug: [elpi] gterm2lp: term=_
Debug: [elpi] gterm2lp: term=inlined_sub_rect
Debug: [elpi] gterm2lp: term=_
Debug:
[elpi]
  gterm2lp: term=(fun K_S u =>
                  let (x, Px) as u0 return (K u0) := u in K_S x Px)
Debug: [elpi] gterm2lp: term=_
Debug:
[elpi]
  gterm2lp: term=(fun u => let (x, Px) as u0 return (K u0) := u in K_S x Px)
Debug: [elpi] gterm2lp: term=_
Debug:
[elpi]
  gterm2lp: term=(let (x, Px) as u0 return (K u0) := _elpi_renamed_u_3 in
                  K_S x Px)
Debug: [elpi] gterm2lp: term=_elpi_renamed_u_3
Debug: [elpi] gterm2lp: term=(fun u0 => K u0)
Debug: [elpi] gterm2lp: term=_
Debug: [elpi] gterm2lp: term=(K u0)
Debug: [elpi] gterm2lp: term=K
Debug: [elpi] gterm2lp: term=u0
Debug: [elpi] gterm2lp: term=(fun x Px => K_S x Px)
Debug: [elpi] gterm2lp: term=_
Debug: [elpi] gterm2lp: term=(fun Px => K_S x Px)
Debug: [elpi] gterm2lp: term=_
Debug: [elpi] gterm2lp: term=(K_S x Px)
Debug: [elpi] gterm2lp: term=K_S
Debug: [elpi] gterm2lp: term=x
Debug: [elpi] gterm2lp: term=Px
Debug:
[elpi]
  elpi sigma -> coq sigma: before:
SHELF:
FUTURE GOALS STACK:
 

Rocq-Elpi mapping:
RAW:
ELAB:

Debug:
[elpi]
  elpi sigma -> coq sigma: synchronized:
SHELF:
FUTURE GOALS STACK:
 

Rocq-Elpi mapping:
RAW:
ELAB:

Debug:
[elpi]
  elpi sigma -> coq sigma: after:
SHELF:
FUTURE GOALS STACK:
 

Rocq-Elpi mapping:
RAW:
ELAB:

Debug:
[elpi]
  lp2term: depth=0 ctx=[] term=fun `u` X0 c0 \
 app
  [global (indc «SubType»), X1 c0, X2 c0, X3 c0, 
   app [global (const «oval»), c0], X4 c0, 
   fun `K` (X5 c0) c1 \
    fun `K_S` (X6 c0 c1) c2 \
     fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \
      match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) 
       [fun `x` (X9 c0 c1 c2 c3) c4 \
         fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]]]
Debug:
[elpi]
  lp2term@0:fun `u` X0 c0 \
 app
  [global (indc «SubType»), X1 c0, X2 c0, X3 c0, 
   app [global (const «oval»), c0], X4 c0, 
   fun `K` (X5 c0) c1 \
    fun `K_S` (X6 c0 c1) c2 \
     fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \
      match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) 
       [fun `x` (X9 c0 c1 c2 c3) c4 \
         fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]]]
Debug: [elpi] lp2term@0:X0
Debug: [elpi] lp2term: evar: calldepth:0 X0 RAW:
ELAB:

Debug: [elpi] lp2term: evar: unknown: calldepth:0 X0
Debug: [elpi] lp2term: evar: create_unknown: whole ctx: ; 
Debug: [elpi] lp2term: evar: create_unknown: visible ctx:
Debug: [elpi] restrict_coq_context: named: 
Debug: [elpi] lp2term: evar: create_unknown: restricted ctx:
Debug:
[elpi]
  lp2term: evar: create_unknown: new link: ? |>  |- ? = ?X41
  EVARS:
 ?X41==[ |- Type] (internal placeholder) {?e}

UNIVERSES:
 {elpi_tests_stdlib.test_quotation.29} |= 
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 α26
WEAK CONSTRAINTS:
 
SHELF:
FUTURE GOALS STACK:
 ?X41

Debug: [elpi] lp2term@0:X0
Debug:
[elpi] lp2term: evar: calldepth:0 X0 RAW:
?X41 <-> X0
ELAB:
?X41 <-> X0

Debug: [elpi] lp2term: evar: already in Coq: ?X41
Debug:
[elpi]
  lp2term@1:app
 [global (indc «SubType»), X1 c0, X2 c0, X3 c0, 
  app [global (const «oval»), c0], X4 c0, 
  fun `K` (X5 c0) c1 \
   fun `K_S` (X6 c0 c1) c2 \
    fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \
     match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) 
      [fun `x` (X9 c0 c1 c2 c3) c4 \
        fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]]]
Debug: [elpi] lp2term@1:global (indc «SubType»)
Debug: [elpi] lp2term@1:X1 c0
Debug:
[elpi] lp2term: evar: calldepth:0 X1 c0 RAW:
?X41 <-> X0
ELAB:
?X41 <-> X0

Debug: [elpi] lp2term: evar: unknown: calldepth:0 X1
Debug: [elpi] lp2term: evar: create_unknown: whole ctx: ; (u : ?e)
Debug: [elpi] lp2term: evar: create_unknown: visible ctx:c0
Debug: [elpi] restrict_coq_context: named: 
Debug:
[elpi]
  restrict_coq_context: cur rel ctx: 
  restrict_coq_context: cur subst: 
  restrict_coq_context: looking at u(dbl 0)
Debug: [elpi] ?e--0->?e
Debug: [elpi] lp2term: evar: create_unknown: restricted ctx:(u : ?e)
Debug: [elpi] in_elpi_evar:?X42
Debug:
[elpi]
  lp2term: evar: create_unknown: new link: ? |>  |- ? = ?X43
  EVARS:
 ?X43==[u |- ?e0] (internal placeholder) {?e1}
 ?X42==[u |- Type] (internal placeholder) {?e0}
 ?X41==[ |- Type] (internal placeholder) {?e}

UNIVERSES:
 {elpi_tests_stdlib.test_quotation.30 elpi_tests_stdlib.test_quotation.29} |= 
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 α26
 α27
WEAK CONSTRAINTS:
 
SHELF:
FUTURE GOALS STACK:?X43 ?X42
?X41

Debug: [elpi] lp2term@1:X1 c0
Debug:
[elpi]
  lp2term: evar: calldepth:0 X1 c0
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1

Debug: [elpi] lp2term: evar: already in Coq: ?X43
Debug: [elpi] lp2term@1:c0
Debug: [elpi] lp2term@1:X2 c0
Debug:
[elpi]
  lp2term: evar: calldepth:0 X2 c0
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1

Debug: [elpi] lp2term: evar: unknown: calldepth:0 X2
Debug: [elpi] lp2term: evar: create_unknown: whole ctx: ; (u : ?e)
Debug: [elpi] lp2term: evar: create_unknown: visible ctx:c0
Debug: [elpi] restrict_coq_context: named: 
Debug:
[elpi]
  restrict_coq_context: cur rel ctx: 
  restrict_coq_context: cur subst: 
  restrict_coq_context: looking at u(dbl 0)
Debug: [elpi] ?e--0->?e
Debug: [elpi] lp2term: evar: create_unknown: restricted ctx:(u : ?e)
Debug: [elpi] in_elpi_evar:?X44
Debug:
[elpi]
  lp2term: evar: create_unknown: new link: ? |>  |- ? = ?X45
  EVARS:
 ?X45==[u |- ?e2] (internal placeholder) {?e3}
 ?X44==[u |- Type] (internal placeholder) {?e2}
 ?X43==[u |- ?e0] (internal placeholder) {?e1}
 ?X42==[u |- Type] (internal placeholder) {?e0}
 ?X41==[ |- Type] (internal placeholder) {?e}

UNIVERSES:
 {elpi_tests_stdlib.test_quotation.31 elpi_tests_stdlib.test_quotation.30
  elpi_tests_stdlib.test_quotation.29} |= 
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 α26
 α27
 α28
WEAK CONSTRAINTS:
 
SHELF:
FUTURE GOALS STACK:?X45 ?X44 ?X43 ?X42
?X41

Debug: [elpi] lp2term@1:X2 c0
Debug:
[elpi]
  lp2term: evar: calldepth:0 X2 c0
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2

Debug: [elpi] lp2term: evar: already in Coq: ?X45
Debug: [elpi] lp2term@1:c0
Debug: [elpi] lp2term@1:X3 c0
Debug:
[elpi]
  lp2term: evar: calldepth:0 X3 c0
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2

Debug: [elpi] lp2term: evar: unknown: calldepth:0 X3
Debug: [elpi] lp2term: evar: create_unknown: whole ctx: ; (u : ?e)
Debug: [elpi] lp2term: evar: create_unknown: visible ctx:c0
Debug: [elpi] restrict_coq_context: named: 
Debug:
[elpi]
  restrict_coq_context: cur rel ctx: 
  restrict_coq_context: cur subst: 
  restrict_coq_context: looking at u(dbl 0)
Debug: [elpi] ?e--0->?e
Debug: [elpi] lp2term: evar: create_unknown: restricted ctx:(u : ?e)
Debug: [elpi] in_elpi_evar:?X46
Debug:
[elpi]
  lp2term: evar: create_unknown: new link: ? |>  |- ? = ?X47
  EVARS:
 ?X47==[u |- ?e4] (internal placeholder) {?e5}
 ?X46==[u |- Type] (internal placeholder) {?e4}
 ?X45==[u |- ?e2] (internal placeholder) {?e3}
 ?X44==[u |- Type] (internal placeholder) {?e2}
 ?X43==[u |- ?e0] (internal placeholder) {?e1}
 ?X42==[u |- Type] (internal placeholder) {?e0}
 ?X41==[ |- Type] (internal placeholder) {?e}

UNIVERSES:
 {elpi_tests_stdlib.test_quotation.32 elpi_tests_stdlib.test_quotation.31
  elpi_tests_stdlib.test_quotation.30 elpi_tests_stdlib.test_quotation.29} |= 
 
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 α26
 α27
 α28
 α29
WEAK CONSTRAINTS:
 
SHELF:
FUTURE GOALS STACK:?X47 ?X46 ?X45 ?X44 ?X43 ?X42
?X41

Debug: [elpi] lp2term@1:X3 c0
Debug:
[elpi]
  lp2term: evar: calldepth:0 X3 c0
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
?X46 <-> X16
?X47 <-> X3
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2
?X46 <-> X15
?X47 <-> X3

Debug: [elpi] lp2term: evar: already in Coq: ?X47
Debug: [elpi] lp2term@1:c0
Debug: [elpi] lp2term@1:app [global (const «oval»), c0]
Debug: [elpi] lp2term@1:global (const «oval»)
Debug: [elpi] lp2term@1:c0
Debug: [elpi] lp2term@1:X4 c0
Debug:
[elpi]
  lp2term: evar: calldepth:0 X4 c0
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
?X46 <-> X16
?X47 <-> X3
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2
?X46 <-> X15
?X47 <-> X3

Debug: [elpi] lp2term: evar: unknown: calldepth:0 X4
Debug: [elpi] lp2term: evar: create_unknown: whole ctx: ; (u : ?e)
Debug: [elpi] lp2term: evar: create_unknown: visible ctx:c0
Debug: [elpi] restrict_coq_context: named: 
Debug:
[elpi]
  restrict_coq_context: cur rel ctx: 
  restrict_coq_context: cur subst: 
  restrict_coq_context: looking at u(dbl 0)
Debug: [elpi] ?e--0->?e
Debug: [elpi] lp2term: evar: create_unknown: restricted ctx:(u : ?e)
Debug: [elpi] in_elpi_evar:?X48
Debug:
[elpi]
  lp2term: evar: create_unknown: new link: ? |>  |- ? = ?X49
  EVARS:
 ?X49==[u |- ?e6] (internal placeholder) {?e7}
 ?X48==[u |- Type] (internal placeholder) {?e6}
 ?X47==[u |- ?e4] (internal placeholder) {?e5}
 ?X46==[u |- Type] (internal placeholder) {?e4}
 ?X45==[u |- ?e2] (internal placeholder) {?e3}
 ?X44==[u |- Type] (internal placeholder) {?e2}
 ?X43==[u |- ?e0] (internal placeholder) {?e1}
 ?X42==[u |- Type] (internal placeholder) {?e0}
 ?X41==[ |- Type] (internal placeholder) {?e}

UNIVERSES:
 {elpi_tests_stdlib.test_quotation.33 elpi_tests_stdlib.test_quotation.32
  elpi_tests_stdlib.test_quotation.31 elpi_tests_stdlib.test_quotation.30
  elpi_tests_stdlib.test_quotation.29} |= 
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 α26
 α27
 α28
 α29
 α30
WEAK CONSTRAINTS:
 
SHELF:
FUTURE GOALS STACK:?X49 ?X48 ?X47 ?X46 ?X45 ?X44 ?X43 ?X42
?X41

Debug: [elpi] lp2term@1:X4 c0
Debug:
[elpi]
  lp2term: evar: calldepth:0 X4 c0
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
?X46 <-> X16
?X47 <-> X3
?X48 <-> X18
?X49 <-> X4
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2
?X46 <-> X15
?X47 <-> X3
?X48 <-> X17
?X49 <-> X4

Debug: [elpi] lp2term: evar: already in Coq: ?X49
Debug: [elpi] lp2term@1:c0
Debug:
[elpi]
  lp2term@1:fun `K` (X5 c0) c1 \
 fun `K_S` (X6 c0 c1) c2 \
  fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \
   match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) 
    [fun `x` (X9 c0 c1 c2 c3) c4 \
      fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]]
Debug: [elpi] lp2term@1:X5 c0
Debug:
[elpi]
  lp2term: evar: calldepth:0 X5 c0
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
?X46 <-> X16
?X47 <-> X3
?X48 <-> X18
?X49 <-> X4
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2
?X46 <-> X15
?X47 <-> X3
?X48 <-> X17
?X49 <-> X4

Debug: [elpi] lp2term: evar: unknown: calldepth:0 X5
Debug: [elpi] lp2term: evar: create_unknown: whole ctx: ; (u : ?e)
Debug: [elpi] lp2term: evar: create_unknown: visible ctx:c0
Debug: [elpi] restrict_coq_context: named: 
Debug:
[elpi]
  restrict_coq_context: cur rel ctx: 
  restrict_coq_context: cur subst: 
  restrict_coq_context: looking at u(dbl 0)
Debug: [elpi] ?e--0->?e
Debug: [elpi] lp2term: evar: create_unknown: restricted ctx:(u : ?e)
Debug:
[elpi]
  lp2term: evar: create_unknown: new link: ? |>  |- ? = ?X50
  EVARS:
 ?X50==[u |- Type] (internal placeholder) {?e8}
 ?X49==[u |- ?e6] (internal placeholder) {?e7}
 ?X48==[u |- Type] (internal placeholder) {?e6}
 ?X47==[u |- ?e4] (internal placeholder) {?e5}
 ?X46==[u |- Type] (internal placeholder) {?e4}
 ?X45==[u |- ?e2] (internal placeholder) {?e3}
 ?X44==[u |- Type] (internal placeholder) {?e2}
 ?X43==[u |- ?e0] (internal placeholder) {?e1}
 ?X42==[u |- Type] (internal placeholder) {?e0}
 ?X41==[ |- Type] (internal placeholder) {?e}

UNIVERSES:
 {elpi_tests_stdlib.test_quotation.34 elpi_tests_stdlib.test_quotation.33
  elpi_tests_stdlib.test_quotation.32 elpi_tests_stdlib.test_quotation.31
  elpi_tests_stdlib.test_quotation.30 elpi_tests_stdlib.test_quotation.29} |= 
 
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 α26
 α27
 α28
 α29
 α30
 α31
WEAK CONSTRAINTS:
 
SHELF:
FUTURE GOALS STACK:?X50 ?X49 ?X48 ?X47 ?X46 ?X45 ?X44 ?X43 ?X42
?X41

Debug: [elpi] lp2term@1:X5 c0
Debug:
[elpi]
  lp2term: evar: calldepth:0 X5 c0
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
?X46 <-> X16
?X47 <-> X3
?X48 <-> X18
?X49 <-> X4
?X50 <-> X5
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2
?X46 <-> X15
?X47 <-> X3
?X48 <-> X17
?X49 <-> X4
?X50 <-> X5

Debug: [elpi] lp2term: evar: already in Coq: ?X50
Debug: [elpi] lp2term@1:c0
Debug:
[elpi]
  lp2term@2:fun `K_S` (X6 c0 c1) c2 \
 fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \
  match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) 
   [fun `x` (X9 c0 c1 c2 c3) c4 \
     fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]]
Debug: [elpi] lp2term@2:X6 c0 c1
Debug:
[elpi]
  lp2term: evar: calldepth:0 X6 c0 c1
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
?X46 <-> X16
?X47 <-> X3
?X48 <-> X18
?X49 <-> X4
?X50 <-> X5
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2
?X46 <-> X15
?X47 <-> X3
?X48 <-> X17
?X49 <-> X4
?X50 <-> X5

Debug: [elpi] lp2term: evar: unknown: calldepth:0 X6
Debug: [elpi] lp2term: evar: create_unknown: whole ctx: ; (u : ?e) (K : ?e8)
Debug: [elpi] lp2term: evar: create_unknown: visible ctx:c0 
c1
Debug: [elpi] restrict_coq_context: named: 
Debug:
[elpi]
  restrict_coq_context: cur rel ctx: 
  restrict_coq_context: cur subst: 
  restrict_coq_context: looking at u(dbl 0)
Debug: [elpi] ?e--0->?e
Debug:
[elpi]
  restrict_coq_context: cur rel ctx: (u : ?e)
  restrict_coq_context: cur subst: u
  restrict_coq_context: looking at K(dbl 1)
Debug: [elpi] ?e8--0->?e8
Debug:
[elpi] lp2term: evar: create_unknown: restricted ctx:(u : ?e) (K : ?e8)
Debug:
[elpi]
  lp2term: evar: create_unknown: new link: ? |>  |- ? = ?X51
  EVARS:
 ?X51==[u K |- Type] (internal placeholder) {?e9}
 ?X50==[u |- Type] (internal placeholder) {?e8}
 ?X49==[u |- ?e6] (internal placeholder) {?e7}
 ?X48==[u |- Type] (internal placeholder) {?e6}
 ?X47==[u |- ?e4] (internal placeholder) {?e5}
 ?X46==[u |- Type] (internal placeholder) {?e4}
 ?X45==[u |- ?e2] (internal placeholder) {?e3}
 ?X44==[u |- Type] (internal placeholder) {?e2}
 ?X43==[u |- ?e0] (internal placeholder) {?e1}
 ?X42==[u |- Type] (internal placeholder) {?e0}
 ?X41==[ |- Type] (internal placeholder) {?e}

UNIVERSES:
 {elpi_tests_stdlib.test_quotation.35 elpi_tests_stdlib.test_quotation.34
  elpi_tests_stdlib.test_quotation.33 elpi_tests_stdlib.test_quotation.32
  elpi_tests_stdlib.test_quotation.31 elpi_tests_stdlib.test_quotation.30
  elpi_tests_stdlib.test_quotation.29} |= 
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 α26
 α27
 α28
 α29
 α30
 α31
 α32
WEAK CONSTRAINTS:
 
SHELF:
FUTURE GOALS STACK:?X51 ?X50 ?X49 ?X48 ?X47 ?X46 ?X45 ?X44 ?X43 ?X42
?X41

Debug: [elpi] lp2term@2:X6 c0 c1
Debug:
[elpi]
  lp2term: evar: calldepth:0 X6 c0 c1
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
?X46 <-> X16
?X47 <-> X3
?X48 <-> X18
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2
?X46 <-> X15
?X47 <-> X3
?X48 <-> X17
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6

Debug: [elpi] lp2term: evar: already in Coq: ?X51
Debug: [elpi] lp2term@2:c0
Debug: [elpi] lp2term@2:c1
Debug:
[elpi]
  lp2term@3:fun `_elpi_renamed_u_3` (X7 c0 c1 c2) c3 \
 match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) 
  [fun `x` (X9 c0 c1 c2 c3) c4 \
    fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]]
Debug: [elpi] lp2term@3:X7 c0 c1 c2
Debug:
[elpi]
  lp2term: evar: calldepth:0 X7 c0 c1 c2
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
?X46 <-> X16
?X47 <-> X3
?X48 <-> X18
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2
?X46 <-> X15
?X47 <-> X3
?X48 <-> X17
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6

Debug: [elpi] lp2term: evar: unknown: calldepth:0 X7
Debug:
[elpi]
  lp2term: evar: create_unknown: whole ctx: ; (u : ?e)
  (K : ?e8)
  (K_S : ?e9)
Debug: [elpi] lp2term: evar: create_unknown: visible ctx:c0 c1 
c2
Debug: [elpi] restrict_coq_context: named: 
Debug:
[elpi]
  restrict_coq_context: cur rel ctx: 
  restrict_coq_context: cur subst: 
  restrict_coq_context: looking at u(dbl 0)
Debug: [elpi] ?e--0->?e
Debug:
[elpi]
  restrict_coq_context: cur rel ctx: (u : ?e)
  restrict_coq_context: cur subst: u
  restrict_coq_context: looking at K(dbl 1)
Debug: [elpi] ?e8--0->?e8
Debug:
[elpi]
  restrict_coq_context: cur rel ctx: (u : ?e)
  (K : ?e8)
  restrict_coq_context: cur subst: K
  u
  restrict_coq_context: looking at K_S(dbl 2)
Debug: [elpi] ?e9--0->?e9
Debug:
[elpi]
  lp2term: evar: create_unknown: restricted ctx:(u : ?e)
  (K : ?e8)
  (K_S : ?e9)
Debug:
[elpi]
  lp2term: evar: create_unknown: new link: ? |>  |- ? = ?X52
  EVARS:
 ?X52==[u K K_S |- Type] (internal placeholder) {?e10}
 ?X51==[u K |- Type] (internal placeholder) {?e9}
 ?X50==[u |- Type] (internal placeholder) {?e8}
 ?X49==[u |- ?e6] (internal placeholder) {?e7}
 ?X48==[u |- Type] (internal placeholder) {?e6}
 ?X47==[u |- ?e4] (internal placeholder) {?e5}
 ?X46==[u |- Type] (internal placeholder) {?e4}
 ?X45==[u |- ?e2] (internal placeholder) {?e3}
 ?X44==[u |- Type] (internal placeholder) {?e2}
 ?X43==[u |- ?e0] (internal placeholder) {?e1}
 ?X42==[u |- Type] (internal placeholder) {?e0}
 ?X41==[ |- Type] (internal placeholder) {?e}

UNIVERSES:
 {elpi_tests_stdlib.test_quotation.36 elpi_tests_stdlib.test_quotation.35
  elpi_tests_stdlib.test_quotation.34 elpi_tests_stdlib.test_quotation.33
  elpi_tests_stdlib.test_quotation.32 elpi_tests_stdlib.test_quotation.31
  elpi_tests_stdlib.test_quotation.30 elpi_tests_stdlib.test_quotation.29} |= 
 
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 α26
 α27
 α28
 α29
 α30
 α31
 α32
 α33
WEAK CONSTRAINTS:
 
SHELF:
FUTURE GOALS STACK:?X52 ?X51 ?X50 ?X49 ?X48 ?X47 ?X46 ?X45 ?X44 ?X43 ?X42
?X41

Debug: [elpi] lp2term@3:X7 c0 c1 c2
Debug:
[elpi]
  lp2term: evar: calldepth:0 X7 c0 c1 c2
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
?X46 <-> X16
?X47 <-> X3
?X48 <-> X18
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2
?X46 <-> X15
?X47 <-> X3
?X48 <-> X17
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7

Debug: [elpi] lp2term: evar: already in Coq: ?X52
Debug: [elpi] lp2term@3:c0
Debug: [elpi] lp2term@3:c1
Debug: [elpi] lp2term@3:c2
Debug:
[elpi]
  lp2term@4:match c3 (fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]) 
 [fun `x` (X9 c0 c1 c2 c3) c4 \
   fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]]
Debug: [elpi] lp2term@4:c3
Debug: [elpi] lp2term@4:fun `u0` (X8 c0 c1 c2 c3) c4 \ app [c1, c4]
Debug: [elpi] lp2term@4:X8 c0 c1 c2 c3
Debug:
[elpi]
  lp2term: evar: calldepth:0 X8 c0 c1 c2 c3
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
?X46 <-> X16
?X47 <-> X3
?X48 <-> X18
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2
?X46 <-> X15
?X47 <-> X3
?X48 <-> X17
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7

Debug: [elpi] lp2term: evar: unknown: calldepth:0 X8
Debug:
[elpi]
  lp2term: evar: create_unknown: whole ctx: ; (u : ?e)
  (K : ?e8)
  (K_S : ?e9)
  (_elpi_renamed_u_3 : ?e10)
Debug: [elpi] lp2term: evar: create_unknown: visible ctx:c0 c1 c2 
c3
Debug: [elpi] restrict_coq_context: named: 
Debug:
[elpi]
  restrict_coq_context: cur rel ctx: 
  restrict_coq_context: cur subst: 
  restrict_coq_context: looking at u(dbl 0)
Debug: [elpi] ?e--0->?e
Debug:
[elpi]
  restrict_coq_context: cur rel ctx: (u : ?e)
  restrict_coq_context: cur subst: u
  restrict_coq_context: looking at K(dbl 1)
Debug: [elpi] ?e8--0->?e8
Debug:
[elpi]
  restrict_coq_context: cur rel ctx: (u : ?e)
  (K : ?e8)
  restrict_coq_context: cur subst: K
  u
  restrict_coq_context: looking at K_S(dbl 2)
Debug: [elpi] ?e9--0->?e9
Debug:
[elpi]
  restrict_coq_context: cur rel ctx: (u : ?e)
  (K : ?e8)
  (K_S : ?e9)
  restrict_coq_context: cur subst: K_S
  K
  u
  restrict_coq_context: looking at _elpi_renamed_u_3(dbl 3)
Debug: [elpi] ?e10--0->?e10
Debug:
[elpi]
  lp2term: evar: create_unknown: restricted ctx:(u : ?e)
  (K : ?e8)
  (K_S : ?e9)
  (_elpi_renamed_u_3 : ?e10)
Debug:
[elpi]
  lp2term: evar: create_unknown: new link: ? |>  |- ? = ?X53
  EVARS:
 ?X53==[u K K_S _elpi_renamed_u_3 |- Type] (internal placeholder) {?e11}
 ?X52==[u K K_S |- Type] (internal placeholder) {?e10}
 ?X51==[u K |- Type] (internal placeholder) {?e9}
 ?X50==[u |- Type] (internal placeholder) {?e8}
 ?X49==[u |- ?e6] (internal placeholder) {?e7}
 ?X48==[u |- Type] (internal placeholder) {?e6}
 ?X47==[u |- ?e4] (internal placeholder) {?e5}
 ?X46==[u |- Type] (internal placeholder) {?e4}
 ?X45==[u |- ?e2] (internal placeholder) {?e3}
 ?X44==[u |- Type] (internal placeholder) {?e2}
 ?X43==[u |- ?e0] (internal placeholder) {?e1}
 ?X42==[u |- Type] (internal placeholder) {?e0}
 ?X41==[ |- Type] (internal placeholder) {?e}

UNIVERSES:
 {elpi_tests_stdlib.test_quotation.37 elpi_tests_stdlib.test_quotation.36
  elpi_tests_stdlib.test_quotation.35 elpi_tests_stdlib.test_quotation.34
  elpi_tests_stdlib.test_quotation.33 elpi_tests_stdlib.test_quotation.32
  elpi_tests_stdlib.test_quotation.31 elpi_tests_stdlib.test_quotation.30
  elpi_tests_stdlib.test_quotation.29} |= 
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 α26
 α27
 α28
 α29
 α30
 α31
 α32
 α33
 α34
WEAK CONSTRAINTS:
 
SHELF:
FUTURE GOALS STACK:?X53 ?X52 ?X51 ?X50 ?X49 ?X48 ?X47 ?X46 ?X45 ?X44 ?X43
?X42
?X41

Debug: [elpi] lp2term@4:X8 c0 c1 c2 c3
Debug:
[elpi]
  lp2term: evar: calldepth:0 X8 c0 c1 c2 c3
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
?X46 <-> X16
?X47 <-> X3
?X48 <-> X18
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2
?X46 <-> X15
?X47 <-> X3
?X48 <-> X17
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8

Debug: [elpi] lp2term: evar: already in Coq: ?X53
Debug: [elpi] lp2term@4:c0
Debug: [elpi] lp2term@4:c1
Debug: [elpi] lp2term@4:c2
Debug: [elpi] lp2term@4:c3
Debug: [elpi] lp2term@5:app [c1, c4]
Debug: [elpi] lp2term@5:c1
Debug: [elpi] lp2term@5:c4
Debug:
[elpi]
  lp2term@4:fun `x` (X9 c0 c1 c2 c3) c4 \
 fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]
Debug: [elpi] lp2term@4:X9 c0 c1 c2 c3
Debug:
[elpi]
  lp2term: evar: calldepth:0 X9 c0 c1 c2 c3
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
?X46 <-> X16
?X47 <-> X3
?X48 <-> X18
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2
?X46 <-> X15
?X47 <-> X3
?X48 <-> X17
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8

Debug: [elpi] lp2term: evar: unknown: calldepth:0 X9
Debug:
[elpi]
  lp2term: evar: create_unknown: whole ctx: ; (u : ?e)
  (K : ?e8)
  (K_S : ?e9)
  (_elpi_renamed_u_3 : ?e10)
Debug: [elpi] lp2term: evar: create_unknown: visible ctx:c0 c1 c2 
c3
Debug: [elpi] restrict_coq_context: named: 
Debug:
[elpi]
  restrict_coq_context: cur rel ctx: 
  restrict_coq_context: cur subst: 
  restrict_coq_context: looking at u(dbl 0)
Debug: [elpi] ?e--0->?e
Debug:
[elpi]
  restrict_coq_context: cur rel ctx: (u : ?e)
  restrict_coq_context: cur subst: u
  restrict_coq_context: looking at K(dbl 1)
Debug: [elpi] ?e8--0->?e8
Debug:
[elpi]
  restrict_coq_context: cur rel ctx: (u : ?e)
  (K : ?e8)
  restrict_coq_context: cur subst: K
  u
  restrict_coq_context: looking at K_S(dbl 2)
Debug: [elpi] ?e9--0->?e9
Debug:
[elpi]
  restrict_coq_context: cur rel ctx: (u : ?e)
  (K : ?e8)
  (K_S : ?e9)
  restrict_coq_context: cur subst: K_S
  K
  u
  restrict_coq_context: looking at _elpi_renamed_u_3(dbl 3)
Debug: [elpi] ?e10--0->?e10
Debug:
[elpi]
  lp2term: evar: create_unknown: restricted ctx:(u : ?e)
  (K : ?e8)
  (K_S : ?e9)
  (_elpi_renamed_u_3 : ?e10)
Debug:
[elpi]
  lp2term: evar: create_unknown: new link: ? |>  |- ? = ?X54
  EVARS:
 ?X54==[u K K_S _elpi_renamed_u_3 |- Type] (internal placeholder) {?e12}
 ?X53==[u K K_S _elpi_renamed_u_3 |- Type] (internal placeholder) {?e11}
 ?X52==[u K K_S |- Type] (internal placeholder) {?e10}
 ?X51==[u K |- Type] (internal placeholder) {?e9}
 ?X50==[u |- Type] (internal placeholder) {?e8}
 ?X49==[u |- ?e6] (internal placeholder) {?e7}
 ?X48==[u |- Type] (internal placeholder) {?e6}
 ?X47==[u |- ?e4] (internal placeholder) {?e5}
 ?X46==[u |- Type] (internal placeholder) {?e4}
 ?X45==[u |- ?e2] (internal placeholder) {?e3}
 ?X44==[u |- Type] (internal placeholder) {?e2}
 ?X43==[u |- ?e0] (internal placeholder) {?e1}
 ?X42==[u |- Type] (internal placeholder) {?e0}
 ?X41==[ |- Type] (internal placeholder) {?e}

UNIVERSES:
 {elpi_tests_stdlib.test_quotation.38 elpi_tests_stdlib.test_quotation.37
  elpi_tests_stdlib.test_quotation.36 elpi_tests_stdlib.test_quotation.35
  elpi_tests_stdlib.test_quotation.34 elpi_tests_stdlib.test_quotation.33
  elpi_tests_stdlib.test_quotation.32 elpi_tests_stdlib.test_quotation.31
  elpi_tests_stdlib.test_quotation.30 elpi_tests_stdlib.test_quotation.29} |= 
 
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 α26
 α27
 α28
 α29
 α30
 α31
 α32
 α33
 α34
 α35
WEAK CONSTRAINTS:
 
SHELF:
FUTURE GOALS STACK:?X54 ?X53 ?X52 ?X51 ?X50 ?X49 ?X48 ?X47 ?X46 ?X45 ?X44
?X43 ?X42
?X41

Debug: [elpi] lp2term@4:X9 c0 c1 c2 c3
Debug:
[elpi]
  lp2term: evar: calldepth:0 X9 c0 c1 c2 c3
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
?X46 <-> X16
?X47 <-> X3
?X48 <-> X18
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2
?X46 <-> X15
?X47 <-> X3
?X48 <-> X17
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9

Debug: [elpi] lp2term: evar: already in Coq: ?X54
Debug: [elpi] lp2term@4:c0
Debug: [elpi] lp2term@4:c1
Debug: [elpi] lp2term@4:c2
Debug: [elpi] lp2term@4:c3
Debug: [elpi] lp2term@5:fun `Px` (X10 c0 c1 c2 c3 c4) c5 \ app [c2, c4, c5]
Debug: [elpi] lp2term@5:X10 c0 c1 c2 c3 c4
Debug:
[elpi]
  lp2term: evar: calldepth:0 X10 c0 c1 c2 c3 c4
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
?X46 <-> X16
?X47 <-> X3
?X48 <-> X18
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2
?X46 <-> X15
?X47 <-> X3
?X48 <-> X17
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9

Debug: [elpi] lp2term: evar: unknown: calldepth:0 X10
Debug:
[elpi]
  lp2term: evar: create_unknown: whole ctx: ; (u : ?e)
  (K : ?e8)
  (K_S : ?e9)
  (_elpi_renamed_u_3 : ?e10)
  (x : ?e12)
Debug: [elpi] lp2term: evar: create_unknown: visible ctx:c0 c1 c2 c3 
c4
Debug: [elpi] restrict_coq_context: named: 
Debug:
[elpi]
  restrict_coq_context: cur rel ctx: 
  restrict_coq_context: cur subst: 
  restrict_coq_context: looking at u(dbl 0)
Debug: [elpi] ?e--0->?e
Debug:
[elpi]
  restrict_coq_context: cur rel ctx: (u : ?e)
  restrict_coq_context: cur subst: u
  restrict_coq_context: looking at K(dbl 1)
Debug: [elpi] ?e8--0->?e8
Debug:
[elpi]
  restrict_coq_context: cur rel ctx: (u : ?e)
  (K : ?e8)
  restrict_coq_context: cur subst: K
  u
  restrict_coq_context: looking at K_S(dbl 2)
Debug: [elpi] ?e9--0->?e9
Debug:
[elpi]
  restrict_coq_context: cur rel ctx: (u : ?e)
  (K : ?e8)
  (K_S : ?e9)
  restrict_coq_context: cur subst: K_S
  K
  u
  restrict_coq_context: looking at _elpi_renamed_u_3(dbl 3)
Debug: [elpi] ?e10--0->?e10
Debug:
[elpi]
  restrict_coq_context: cur rel ctx: (u : ?e)
  (K : ?e8)
  (K_S : ?e9)
  (_elpi_renamed_u_3 : ?e10)
  restrict_coq_context: cur subst: _elpi_renamed_u_3
  K_S
  K
  u
  restrict_coq_context: looking at x(dbl 4)
Debug: [elpi] ?e12--0->?e12
Debug:
[elpi]
  lp2term: evar: create_unknown: restricted ctx:(u : ?e)
  (K : ?e8)
  (K_S : ?e9)
  (_elpi_renamed_u_3 : ?e10)
  (x : ?e12)
Debug:
[elpi]
  lp2term: evar: create_unknown: new link: ? |>  |- ? = ?X55
  EVARS:
 ?X55==[u K K_S _elpi_renamed_u_3 x |- Type] (internal placeholder) {?e13}
 ?X54==[u K K_S _elpi_renamed_u_3 |- Type] (internal placeholder) {?e12}
 ?X53==[u K K_S _elpi_renamed_u_3 |- Type] (internal placeholder) {?e11}
 ?X52==[u K K_S |- Type] (internal placeholder) {?e10}
 ?X51==[u K |- Type] (internal placeholder) {?e9}
 ?X50==[u |- Type] (internal placeholder) {?e8}
 ?X49==[u |- ?e6] (internal placeholder) {?e7}
 ?X48==[u |- Type] (internal placeholder) {?e6}
 ?X47==[u |- ?e4] (internal placeholder) {?e5}
 ?X46==[u |- Type] (internal placeholder) {?e4}
 ?X45==[u |- ?e2] (internal placeholder) {?e3}
 ?X44==[u |- Type] (internal placeholder) {?e2}
 ?X43==[u |- ?e0] (internal placeholder) {?e1}
 ?X42==[u |- Type] (internal placeholder) {?e0}
 ?X41==[ |- Type] (internal placeholder) {?e}

UNIVERSES:
 {elpi_tests_stdlib.test_quotation.39 elpi_tests_stdlib.test_quotation.38
  elpi_tests_stdlib.test_quotation.37 elpi_tests_stdlib.test_quotation.36
  elpi_tests_stdlib.test_quotation.35 elpi_tests_stdlib.test_quotation.34
  elpi_tests_stdlib.test_quotation.33 elpi_tests_stdlib.test_quotation.32
  elpi_tests_stdlib.test_quotation.31 elpi_tests_stdlib.test_quotation.30
  elpi_tests_stdlib.test_quotation.29} |= 
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 α26
 α27
 α28
 α29
 α30
 α31
 α32
 α33
 α34
 α35
 α36
WEAK CONSTRAINTS:
 
SHELF:
FUTURE GOALS STACK:?X55 ?X54 ?X53 ?X52 ?X51 ?X50 ?X49 ?X48 ?X47 ?X46 ?X45
?X44 ?X43 ?X42
?X41

Debug: [elpi] lp2term@5:X10 c0 c1 c2 c3 c4
Debug:
[elpi]
  lp2term: evar: calldepth:0 X10 c0 c1 c2 c3 c4
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
?X46 <-> X16
?X47 <-> X3
?X48 <-> X18
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2
?X46 <-> X15
?X47 <-> X3
?X48 <-> X17
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10

Debug: [elpi] lp2term: evar: already in Coq: ?X55
Debug: [elpi] lp2term@5:c0
Debug: [elpi] lp2term@5:c1
Debug: [elpi] lp2term@5:c2
Debug: [elpi] lp2term@5:c3
Debug: [elpi] lp2term@5:c4
Debug: [elpi] lp2term@6:app [c2, c4, c5]
Debug: [elpi] lp2term@6:c2
Debug: [elpi] lp2term@6:c4
Debug: [elpi] lp2term@6:c5
Debug:
[elpi]
  lp2term: out=(fun u : ?e =>
                {|
                  val := oval u;
                  Sub := ?e7;
                  Sub_rect :=
                    fun (K : ?e8) (K_S : ?e9) (_elpi_renamed_u_3 : ?e10) =>
                    let
                      (x, Px) as u0
                       return
                         ?e11@{u:=K; K:=K_S; K_S:=_elpi_renamed_u_3;
                               _elpi_renamed_u_3:=u0} := _elpi_renamed_u_3 in
                    K_S x Px
                |})
  elpi2coq:
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
?X46 <-> X16
?X47 <-> X3
?X48 <-> X18
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2
?X46 <-> X15
?X47 <-> X3
?X48 <-> X17
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10
EVARS:
   ?X55==[u K K_S _elpi_renamed_u_3 x |- Type] (internal placeholder) {?e13}
   ?X54==[u K K_S _elpi_renamed_u_3 |- Type] (internal placeholder) {?e12}
   ?X53==[u K K_S _elpi_renamed_u_3 |- Type] (internal placeholder) {?e11}
   ?X52==[u K K_S |- Type] (internal placeholder) {?e10}
   ?X51==[u K |- Type] (internal placeholder) {?e9}
   ?X50==[u |- Type] (internal placeholder) {?e8}
   ?X49==[u |- ?e6] (internal placeholder) {?e7}
   ?X48==[u |- Type] (internal placeholder) {?e6}
   ?X47==[u |- ?e4] (internal placeholder) {?e5}
   ?X46==[u |- Type] (internal placeholder) {?e4}
   ?X45==[u |- ?e2] (internal placeholder) {?e3}
   ?X44==[u |- Type] (internal placeholder) {?e2}
   ?X43==[u |- ?e0] (internal placeholder) {?e1}
   ?X42==[u |- Type] (internal placeholder) {?e0}
   ?X41==[ |- Type] (internal placeholder) {?e}
  
  UNIVERSES:
   {elpi_tests_stdlib.test_quotation.39 elpi_tests_stdlib.test_quotation.38
    elpi_tests_stdlib.test_quotation.37 elpi_tests_stdlib.test_quotation.36
    elpi_tests_stdlib.test_quotation.35 elpi_tests_stdlib.test_quotation.34
    elpi_tests_stdlib.test_quotation.33 elpi_tests_stdlib.test_quotation.32
    elpi_tests_stdlib.test_quotation.31 elpi_tests_stdlib.test_quotation.30
    elpi_tests_stdlib.test_quotation.29} |= 
  ALGEBRAIC UNIVERSES:
   {}
  FLEXIBLE UNIVERSES:
   
  SORTS:
   α26
   α27
   α28
   α29
   α30
   α31
   α32
   α33
   α34
   α35
   α36
  WEAK CONSTRAINTS:
   
  SHELF:
   
  FUTURE GOALS STACK:
   ?X55
  ?X54
  ?X53
  ?X52
  ?X51
  ?X50
  ?X49
  ?X48
  ?X47
  ?X46
  ?X45
  ?X44
  ?X43
  ?X42
  ?X41
  
Debug:
[elpi]
  in_elpi_fresh_evar: unknown ?X41 <-> X0
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
?X46 <-> X16
?X47 <-> X3
?X48 <-> X18
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2
?X46 <-> X15
?X47 <-> X3
?X48 <-> X17
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10

Debug: [elpi] term2lp: depth=0 ctx= term=Type
Debug: [elpi] term2lp (out): sort (typ «elpi_tests_stdlib.test_quotation.29»)
Debug: [elpi] in_elpi_evar_concl: moving Ctx down to0
Debug:
[elpi]
  in_elpi_fresh_evar: new decl at depth:0 for ?X41 <-> X0
  declare-evar [] (X0) (sort (typ «elpi_tests_stdlib.test_quotation.29»)) 
 (X0)
Debug:
[elpi]
  in_elpi_fresh_evar: unknown ?X42 <-> X12
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
?X46 <-> X16
?X47 <-> X3
?X48 <-> X18
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2
?X46 <-> X15
?X47 <-> X3
?X48 <-> X17
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10

Debug: [elpi] term2lp: depth=1 ctx= term=?e
Debug: [elpi] in_elpi_evar:?X41
Debug: [elpi] in_elpi_evar: known ?X41 as X0
Debug: [elpi] term2lp (out): X0
Debug: [elpi] term2lp: depth=1 ctx=u : ?e term=Type
Debug: [elpi] term2lp (out): sort (typ «elpi_tests_stdlib.test_quotation.30»)
Debug: [elpi] in_elpi_evar_concl: moving Ctx down to1
Debug:
[elpi]
  in_elpi_fresh_evar: new decl at depth:0 for ?X42 <-> X12
  pi c0 \
 declare-evar [decl c0 `u` (X0)] (X12 c0) 
  (sort (typ «elpi_tests_stdlib.test_quotation.30»)) (X11 c0)
Debug:
[elpi]
  in_elpi_fresh_evar: unknown ?X43 <-> X1
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
?X46 <-> X16
?X47 <-> X3
?X48 <-> X18
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2
?X46 <-> X15
?X47 <-> X3
?X48 <-> X17
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10

Debug: [elpi] term2lp: depth=1 ctx= term=?e
Debug: [elpi] in_elpi_evar:?X41
Debug: [elpi] in_elpi_evar: known ?X41 as X0
Debug: [elpi] term2lp (out): X0
Debug: [elpi] term2lp: depth=1 ctx=u : ?e term=?e0
Debug: [elpi] in_elpi_evar:?X42
Debug: [elpi] in_elpi_evar: known ?X42 as X11
Debug: [elpi] term2lp (out): X11 c0
Debug: [elpi] in_elpi_evar_concl: moving Ctx down to1
Debug:
[elpi]
  in_elpi_fresh_evar: new decl at depth:0 for ?X43 <-> X1
  pi c0 \ declare-evar [decl c0 `u` (X0)] (X1 c0) (X11 c0) (X1 c0)
Debug:
[elpi]
  in_elpi_fresh_evar: unknown ?X44 <-> X14
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
?X46 <-> X16
?X47 <-> X3
?X48 <-> X18
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2
?X46 <-> X15
?X47 <-> X3
?X48 <-> X17
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10

Debug: [elpi] term2lp: depth=1 ctx= term=?e
Debug: [elpi] in_elpi_evar:?X41
Debug: [elpi] in_elpi_evar: known ?X41 as X0
Debug: [elpi] term2lp (out): X0
Debug: [elpi] term2lp: depth=1 ctx=u : ?e term=Type
Debug: [elpi] term2lp (out): sort (typ «elpi_tests_stdlib.test_quotation.31»)
Debug: [elpi] in_elpi_evar_concl: moving Ctx down to1
Debug:
[elpi]
  in_elpi_fresh_evar: new decl at depth:0 for ?X44 <-> X14
  pi c0 \
 declare-evar [decl c0 `u` (X0)] (X14 c0) 
  (sort (typ «elpi_tests_stdlib.test_quotation.31»)) (X13 c0)
Debug:
[elpi]
  in_elpi_fresh_evar: unknown ?X45 <-> X2
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
?X46 <-> X16
?X47 <-> X3
?X48 <-> X18
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2
?X46 <-> X15
?X47 <-> X3
?X48 <-> X17
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10

Debug: [elpi] term2lp: depth=1 ctx= term=?e
Debug: [elpi] in_elpi_evar:?X41
Debug: [elpi] in_elpi_evar: known ?X41 as X0
Debug: [elpi] term2lp (out): X0
Debug: [elpi] term2lp: depth=1 ctx=u : ?e term=?e2
Debug: [elpi] in_elpi_evar:?X44
Debug: [elpi] in_elpi_evar: known ?X44 as X13
Debug: [elpi] term2lp (out): X13 c0
Debug: [elpi] in_elpi_evar_concl: moving Ctx down to1
Debug:
[elpi]
  in_elpi_fresh_evar: new decl at depth:0 for ?X45 <-> X2
  pi c0 \ declare-evar [decl c0 `u` (X0)] (X2 c0) (X13 c0) (X2 c0)
Debug:
[elpi]
  in_elpi_fresh_evar: unknown ?X46 <-> X16
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
?X46 <-> X16
?X47 <-> X3
?X48 <-> X18
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2
?X46 <-> X15
?X47 <-> X3
?X48 <-> X17
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10

Debug: [elpi] term2lp: depth=1 ctx= term=?e
Debug: [elpi] in_elpi_evar:?X41
Debug: [elpi] in_elpi_evar: known ?X41 as X0
Debug: [elpi] term2lp (out): X0
Debug: [elpi] term2lp: depth=1 ctx=u : ?e term=Type
Debug: [elpi] term2lp (out): sort (typ «elpi_tests_stdlib.test_quotation.32»)
Debug: [elpi] in_elpi_evar_concl: moving Ctx down to1
Debug:
[elpi]
  in_elpi_fresh_evar: new decl at depth:0 for ?X46 <-> X16
  pi c0 \
 declare-evar [decl c0 `u` (X0)] (X16 c0) 
  (sort (typ «elpi_tests_stdlib.test_quotation.32»)) (X15 c0)
Debug:
[elpi]
  in_elpi_fresh_evar: unknown ?X47 <-> X3
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
?X46 <-> X16
?X47 <-> X3
?X48 <-> X18
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2
?X46 <-> X15
?X47 <-> X3
?X48 <-> X17
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10

Debug: [elpi] term2lp: depth=1 ctx= term=?e
Debug: [elpi] in_elpi_evar:?X41
Debug: [elpi] in_elpi_evar: known ?X41 as X0
Debug: [elpi] term2lp (out): X0
Debug: [elpi] term2lp: depth=1 ctx=u : ?e term=?e4
Debug: [elpi] in_elpi_evar:?X46
Debug: [elpi] in_elpi_evar: known ?X46 as X15
Debug: [elpi] term2lp (out): X15 c0
Debug: [elpi] in_elpi_evar_concl: moving Ctx down to1
Debug:
[elpi]
  in_elpi_fresh_evar: new decl at depth:0 for ?X47 <-> X3
  pi c0 \ declare-evar [decl c0 `u` (X0)] (X3 c0) (X15 c0) (X3 c0)
Debug:
[elpi]
  in_elpi_fresh_evar: unknown ?X48 <-> X18
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
?X46 <-> X16
?X47 <-> X3
?X48 <-> X18
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2
?X46 <-> X15
?X47 <-> X3
?X48 <-> X17
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10

Debug: [elpi] term2lp: depth=1 ctx= term=?e
Debug: [elpi] in_elpi_evar:?X41
Debug: [elpi] in_elpi_evar: known ?X41 as X0
Debug: [elpi] term2lp (out): X0
Debug: [elpi] term2lp: depth=1 ctx=u : ?e term=Type
Debug: [elpi] term2lp (out): sort (typ «elpi_tests_stdlib.test_quotation.33»)
Debug: [elpi] in_elpi_evar_concl: moving Ctx down to1
Debug:
[elpi]
  in_elpi_fresh_evar: new decl at depth:0 for ?X48 <-> X18
  pi c0 \
 declare-evar [decl c0 `u` (X0)] (X18 c0) 
  (sort (typ «elpi_tests_stdlib.test_quotation.33»)) (X17 c0)
Debug:
[elpi]
  in_elpi_fresh_evar: unknown ?X49 <-> X4
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
?X46 <-> X16
?X47 <-> X3
?X48 <-> X18
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2
?X46 <-> X15
?X47 <-> X3
?X48 <-> X17
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10

Debug: [elpi] term2lp: depth=1 ctx= term=?e
Debug: [elpi] in_elpi_evar:?X41
Debug: [elpi] in_elpi_evar: known ?X41 as X0
Debug: [elpi] term2lp (out): X0
Debug: [elpi] term2lp: depth=1 ctx=u : ?e term=?e6
Debug: [elpi] in_elpi_evar:?X48
Debug: [elpi] in_elpi_evar: known ?X48 as X17
Debug: [elpi] term2lp (out): X17 c0
Debug: [elpi] in_elpi_evar_concl: moving Ctx down to1
Debug:
[elpi]
  in_elpi_fresh_evar: new decl at depth:0 for ?X49 <-> X4
  pi c0 \ declare-evar [decl c0 `u` (X0)] (X4 c0) (X17 c0) (X4 c0)
Debug:
[elpi]
  in_elpi_fresh_evar: unknown ?X50 <-> X5
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
?X46 <-> X16
?X47 <-> X3
?X48 <-> X18
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2
?X46 <-> X15
?X47 <-> X3
?X48 <-> X17
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10

Debug: [elpi] term2lp: depth=1 ctx= term=?e
Debug: [elpi] in_elpi_evar:?X41
Debug: [elpi] in_elpi_evar: known ?X41 as X0
Debug: [elpi] term2lp (out): X0
Debug: [elpi] term2lp: depth=1 ctx=u : ?e term=Type
Debug: [elpi] term2lp (out): sort (typ «elpi_tests_stdlib.test_quotation.34»)
Debug: [elpi] in_elpi_evar_concl: moving Ctx down to1
Debug:
[elpi]
  in_elpi_fresh_evar: new decl at depth:0 for ?X50 <-> X5
  pi c0 \
 declare-evar [decl c0 `u` (X0)] (X5 c0) 
  (sort (typ «elpi_tests_stdlib.test_quotation.34»)) (X5 c0)
Debug:
[elpi]
  in_elpi_fresh_evar: unknown ?X51 <-> X6
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
?X46 <-> X16
?X47 <-> X3
?X48 <-> X18
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2
?X46 <-> X15
?X47 <-> X3
?X48 <-> X17
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10

Debug: [elpi] term2lp: depth=1 ctx= term=?e
Debug: [elpi] in_elpi_evar:?X41
Debug: [elpi] in_elpi_evar: known ?X41 as X0
Debug: [elpi] term2lp (out): X0
Debug: [elpi] term2lp: depth=2 ctx=u : ?e term=?e8
Debug: [elpi] in_elpi_evar:?X50
Debug: [elpi] in_elpi_evar: known ?X50 as X5
Debug: [elpi] term2lp (out): X5 c0
Debug: [elpi] term2lp: depth=2 ctx=u : ?e  K : ?e8 term=Type
Debug: [elpi] term2lp (out): sort (typ «elpi_tests_stdlib.test_quotation.35»)
Debug: [elpi] in_elpi_evar_concl: moving Ctx down to2
Debug:
[elpi]
  in_elpi_fresh_evar: new decl at depth:0 for ?X51 <-> X6
  pi c0 \
 pi c1 \
  declare-evar [decl c1 `K` (X5 c0), decl c0 `u` X0] (X6 c0 c1) 
   (sort (typ «elpi_tests_stdlib.test_quotation.35»)) (X6 c0 c1)
Debug:
[elpi]
  in_elpi_fresh_evar: unknown ?X52 <-> X7
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
?X46 <-> X16
?X47 <-> X3
?X48 <-> X18
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2
?X46 <-> X15
?X47 <-> X3
?X48 <-> X17
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10

Debug: [elpi] term2lp: depth=1 ctx= term=?e
Debug: [elpi] in_elpi_evar:?X41
Debug: [elpi] in_elpi_evar: known ?X41 as X0
Debug: [elpi] term2lp (out): X0
Debug: [elpi] term2lp: depth=2 ctx=u : ?e term=?e8
Debug: [elpi] in_elpi_evar:?X50
Debug: [elpi] in_elpi_evar: known ?X50 as X5
Debug: [elpi] term2lp (out): X5 c0
Debug: [elpi] term2lp: depth=3 ctx=u : ?e  K : ?e8 term=?e9
Debug: [elpi] in_elpi_evar:?X51
Debug: [elpi] in_elpi_evar: known ?X51 as X6
Debug: [elpi] term2lp (out): X6 c0 c1
Debug: [elpi] term2lp: depth=3 ctx=u : ?e  K : ?e8  K_S : ?e9 term=Type
Debug: [elpi] term2lp (out): sort (typ «elpi_tests_stdlib.test_quotation.36»)
Debug: [elpi] in_elpi_evar_concl: moving Ctx down to3
Debug:
[elpi]
  in_elpi_fresh_evar: new decl at depth:0 for ?X52 <-> X7
  pi c0 \
 pi c1 \
  pi c2 \
   declare-evar
    [decl c2 `K_S` (X6 c0 c1), decl c1 `K` (X5 c0), decl c0 `u` X0] 
    (X7 c0 c1 c2) (sort (typ «elpi_tests_stdlib.test_quotation.36»)) 
    (X7 c0 c1 c2)
Debug:
[elpi]
  in_elpi_fresh_evar: unknown ?X53 <-> X8
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
?X46 <-> X16
?X47 <-> X3
?X48 <-> X18
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2
?X46 <-> X15
?X47 <-> X3
?X48 <-> X17
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10

Debug: [elpi] term2lp: depth=1 ctx= term=?e
Debug: [elpi] in_elpi_evar:?X41
Debug: [elpi] in_elpi_evar: known ?X41 as X0
Debug: [elpi] term2lp (out): X0
Debug: [elpi] term2lp: depth=2 ctx=u : ?e term=?e8
Debug: [elpi] in_elpi_evar:?X50
Debug: [elpi] in_elpi_evar: known ?X50 as X5
Debug: [elpi] term2lp (out): X5 c0
Debug: [elpi] term2lp: depth=3 ctx=u : ?e  K : ?e8 term=?e9
Debug: [elpi] in_elpi_evar:?X51
Debug: [elpi] in_elpi_evar: known ?X51 as X6
Debug: [elpi] term2lp (out): X6 c0 c1
Debug: [elpi] term2lp: depth=4 ctx=u : ?e  K : ?e8  K_S : ?e9 term=?e10
Debug: [elpi] in_elpi_evar:?X52
Debug: [elpi] in_elpi_evar: known ?X52 as X7
Debug: [elpi] term2lp (out): X7 c0 c1 c2
Debug:
[elpi]
  term2lp: depth=4 ctx=u : ?e  K : ?e8  K_S : ?e9  _elpi_renamed_u_3 : ?e10 term=Type
Debug: [elpi] term2lp (out): sort (typ «elpi_tests_stdlib.test_quotation.37»)
Debug: [elpi] in_elpi_evar_concl: moving Ctx down to4
Debug:
[elpi]
  in_elpi_fresh_evar: new decl at depth:0 for ?X53 <-> X8
  pi c0 \
 pi c1 \
  pi c2 \
   pi c3 \
    declare-evar
     [decl c3 `_elpi_renamed_u_3` (X7 c0 c1 c2), decl c2 `K_S` (X6 c0 c1), 
      decl c1 `K` (X5 c0), decl c0 `u` X0] (X8 c0 c1 c2 c3) 
     (sort (typ «elpi_tests_stdlib.test_quotation.37»)) (X8 c0 c1 c2 c3)
Debug:
[elpi]
  in_elpi_fresh_evar: unknown ?X54 <-> X9
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
?X46 <-> X16
?X47 <-> X3
?X48 <-> X18
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2
?X46 <-> X15
?X47 <-> X3
?X48 <-> X17
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10

Debug: [elpi] term2lp: depth=1 ctx= term=?e
Debug: [elpi] in_elpi_evar:?X41
Debug: [elpi] in_elpi_evar: known ?X41 as X0
Debug: [elpi] term2lp (out): X0
Debug: [elpi] term2lp: depth=2 ctx=u : ?e term=?e8
Debug: [elpi] in_elpi_evar:?X50
Debug: [elpi] in_elpi_evar: known ?X50 as X5
Debug: [elpi] term2lp (out): X5 c0
Debug: [elpi] term2lp: depth=3 ctx=u : ?e  K : ?e8 term=?e9
Debug: [elpi] in_elpi_evar:?X51
Debug: [elpi] in_elpi_evar: known ?X51 as X6
Debug: [elpi] term2lp (out): X6 c0 c1
Debug: [elpi] term2lp: depth=4 ctx=u : ?e  K : ?e8  K_S : ?e9 term=?e10
Debug: [elpi] in_elpi_evar:?X52
Debug: [elpi] in_elpi_evar: known ?X52 as X7
Debug: [elpi] term2lp (out): X7 c0 c1 c2
Debug:
[elpi]
  term2lp: depth=4 ctx=u : ?e  K : ?e8  K_S : ?e9  _elpi_renamed_u_3 : ?e10 term=Type
Debug: [elpi] term2lp (out): sort (typ «elpi_tests_stdlib.test_quotation.38»)
Debug: [elpi] in_elpi_evar_concl: moving Ctx down to4
Debug:
[elpi]
  in_elpi_fresh_evar: new decl at depth:0 for ?X54 <-> X9
  pi c0 \
 pi c1 \
  pi c2 \
   pi c3 \
    declare-evar
     [decl c3 `_elpi_renamed_u_3` (X7 c0 c1 c2), decl c2 `K_S` (X6 c0 c1), 
      decl c1 `K` (X5 c0), decl c0 `u` X0] (X9 c0 c1 c2 c3) 
     (sort (typ «elpi_tests_stdlib.test_quotation.38»)) (X9 c0 c1 c2 c3)
Debug:
[elpi]
  in_elpi_fresh_evar: unknown ?X55 <-> X10
  RAW:
?X41 <-> X0
?X42 <-> X12
?X43 <-> X1
?X44 <-> X14
?X45 <-> X2
?X46 <-> X16
?X47 <-> X3
?X48 <-> X18
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10
ELAB:
?X41 <-> X0
?X42 <-> X11
?X43 <-> X1
?X44 <-> X13
?X45 <-> X2
?X46 <-> X15
?X47 <-> X3
?X48 <-> X17
?X49 <-> X4
?X50 <-> X5
?X51 <-> X6
?X52 <-> X7
?X53 <-> X8
?X54 <-> X9
?X55 <-> X10

Debug: [elpi] term2lp: depth=1 ctx= term=?e
Debug: [elpi] in_elpi_evar:?X41
Debug: [elpi] in_elpi_evar: known ?X41 as X0
Debug: [elpi] term2lp (out): X0
Debug: [elpi] term2lp: depth=2 ctx=u : ?e term=?e8
Debug: [elpi] in_elpi_evar:?X50
Debug: [elpi] in_elpi_evar: known ?X50 as X5
Debug: [elpi] term2lp (out): X5 c0
Debug: [elpi] term2lp: depth=3 ctx=u : ?e  K : ?e8 term=?e9
Debug: [elpi] in_elpi_evar:?X51
Debug: [elpi] in_elpi_evar: known ?X51 as X6
Debug: [elpi] term2lp (out): X6 c0 c1
Debug: [elpi] term2lp: depth=4 ctx=u : ?e  K : ?e8  K_S : ?e9 term=?e10
Debug: [elpi] in_elpi_evar:?X52
Debug: [elpi] in_elpi_evar: known ?X52 as X7
Debug: [elpi] term2lp (out): X7 c0 c1 c2
Debug:
[elpi]
  term2lp: depth=5 ctx=u : ?e  K : ?e8  K_S : ?e9  _elpi_renamed_u_3 : ?e10 term=
  ?e12
Debug: [elpi] in_elpi_evar:?X54
Debug: [elpi] in_elpi_evar: known ?X54 as X9
Debug: [elpi] term2lp (out): X9 c0 c1 c2 c3
Debug:
[elpi]
  term2lp: depth=5 ctx=u : ?e
                       K : ?e8
                       K_S : ?e9
                       _elpi_renamed_u_3 : ?e10
                       x : ?e12 term=Type
Debug: [elpi] term2lp (out): sort (typ «elpi_tests_stdlib.test_quotation.39»)
Debug: [elpi] in_elpi_evar_concl: moving Ctx down to5
Debug:
[elpi]
  in_elpi_fresh_evar: new decl at depth:0 for ?X55 <-> X10
  pi c0 \
 pi c1 \
  pi c2 \
   pi c3 \
    pi c4 \
     declare-evar
      [decl c4 `x` (X9 c0 c1 c2 c3), 
       decl c3 `_elpi_renamed_u_3` (X7 c0 c1 c2), decl c2 `K_S` (X6 c0 c1), 
       decl c1 `K` (X5 c0), decl c0 `u` X0] (X10 c0 c1 c2 c3 c4) 
      (sort (typ «elpi_tests_stdlib.test_quotation.39»)) 
      (X10 c0 c1 c2 c3 c4)
Debug:
[elpi]
  Elpi: query-compilation:0.0009 static-check:0.0000 optimization:0.0001 runtime:0.0315 (with error)

hd
     : forall A : Type, A -> list A -> A
Debug: [elpi] gterm2lp: term=hd
Debug: [elpi] Compiler cache: lookups=8, hits=6

Debug: [elpi] Compiler cache: lookups=0, hits=0

File "./tests-stdlib/test_quotation.v", line 47, characters 32-33:
Warning:
File "./tests-stdlib/test_quotation.v", line 47, characters 32-33
X is linear: name it _X (discard) or X_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./apps/eltac/theories/apply.v", line 15, characters 16-19:
Warning:
File "./apps/eltac/theories/apply.v", line 15, characters 16-19
Ctx is linear: name it _Ctx (discard) or Ctx_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
Debug: run 1 {{{  
          
Debug:
  rid:0 step:1 gid:4 user:curgoal = => 
                                    attributes
                                     [attribute elpi.loc 
                                       (leaf-loc
                                         File "./examples/example_record_expansion.v", line 221, column 5, characters 9572-9585:), 
                                      attribute elpi.phase (leaf-str interp)]
                                     =>
                                     (main-interp
                                       [str r, str f, str expanded_] _ ;
                                       main [str r, str f, str expanded_]) 
                                    
Debug:
  rid:0 step:1 gid:4 user:rule = implication 
                                 
Debug:
  rid:0 step:1 gid:4 user:subgoal = 5 
                                    
Debug:
  rid:0 step:1 gid:5 user:newgoal = main-interp [str r, str f, str expanded_] _
                                     ; main [str r, str f, str expanded_] 
                                    
Debug:
  rid:0 step:1 gid:5 user:rule:implication = success 
                                             
Debug: }}} ->  (0.000s)
Debug: run 2 {{{  
          
Debug:
  rid:0 step:2 gid:5 user:curgoal = ; 
                                    main-interp [str r, str f, str expanded_] _
                                     ; main [str r, str f, str expanded_] 
                                    
Debug:
  rid:0 step:2 gid:5 user:rule = backchain 
                                 
Debug:
  rid:0 step:2 gid:5 user:rule:backchain:candidates = File "elpi-builtin.elpi", line 34, column 0, characters 373-385: 
                                                      File "elpi-builtin.elpi", line 36, column 0, characters 388-400: 
                                                      
Debug: }}} ->  (0.000s)
Debug: select 3 {{{  
             
Debug:
  rid:0 step:2 gid:5 user:rule:backchain:try = File "elpi-builtin.elpi", line 34, column 0, characters 373-385: 
                                               (A0 ; _) :- A0. 
                                               
Debug:
  rid:0 step:2 gid:0 user:assign = A0 := main-interp
                                          [str r, str f, str expanded_] _ 
                                   
Debug:
  rid:0 step:2 gid:5 user:subgoal = 6 
                                    
Debug:
  rid:0 step:2 gid:6 user:newgoal = main-interp [str r, str f, str expanded_] _ 
                                    
Debug:
  rid:0 step:2 gid:6 user:rule:backchain = success 
                                           
Debug: }}} ->  (0.000s)
Debug: run 3 {{{  
          
Debug:
  rid:0 step:3 gid:6 user:curgoal = main-interp 
                                    main-interp [str r, str f, str expanded_] _ 
                                    
Debug:
  rid:0 step:3 gid:6 user:rule = backchain 
                                 
Debug:   rid:0 step:3 gid:6 user:rule:backchain:candidates = 
Debug: }}} ->  (0.000s)
Debug: select 4 {{{  
             
Debug:
  rid:0 step:3 gid:6 user:rule:backchain = fail 
                                           
Debug: }}} ->  (0.000s)
Debug: run 4 {{{  
          
Debug:
  rid:0 step:4 gid:5 user:curgoal = ; 
                                    main-interp [str r, str f, str expanded_] _
                                     ; main [str r, str f, str expanded_] 
                                    
Debug:
  rid:0 step:4 gid:5 user:rule = backchain 
                                 
Debug:
  rid:0 step:4 gid:5 user:rule:backchain:candidates = File "elpi-builtin.elpi", line 36, column 0, characters 388-400: 
                                                      
Debug: }}} ->  (0.000s)
Debug: select 5 {{{  
             
Debug:
  rid:0 step:4 gid:5 user:rule:backchain:try = File "elpi-builtin.elpi", line 36, column 0, characters 388-400: 
                                               (_ ; A0) :- A0. 
                                               
Debug:
  rid:0 step:4 gid:0 user:assign = A0 := main [str r, str f, str expanded_] 
                                   
Debug:
  rid:0 step:4 gid:5 user:subgoal = 7 
                                    
Debug:
  rid:0 step:4 gid:7 user:newgoal = main [str r, str f, str expanded_] 
                                    
Debug:
  rid:0 step:4 gid:7 user:rule:backchain = success 
                                           
Debug: }}} ->  (0.000s)
Debug: run 5 {{{  
          
Debug:
  rid:0 step:5 gid:7 user:curgoal = main 
                                    main [str r, str f, str expanded_] 
                                    
Debug:
  rid:0 step:5 gid:7 user:rule = backchain 
                                 
Debug:
  rid:0 step:5 gid:7 user:rule:backchain:candidates = File "./examples/example_record_expansion.v", line 197, column 0, characters 8773-9225: 
                                                      File "./examples/example_record_expansion.v", line 207, column 0, characters 9228-9306: 
                                                      
Debug: }}} ->  (0.000s)
Debug: select 6 {{{  
             
Debug:
  rid:0 step:5 gid:7 user:rule:backchain:try = File "./examples/example_record_expansion.v", line 197, column 0, characters 8773-9225: 
                                               (main [str A0, str A2, str A6]) :- (!), 
                                                (std.assert!
                                                  (coq.locate A0 (indt A1)) 
                                                  The first argument must be a record name), 
                                                (std.assert!
                                                  (coq.locate A2 A3) 
                                                  The second argument must be a global term), 
                                                (coq.gref->id A3 A4), 
                                                (A5 is A6 ^ A4), 
                                                (expand-gref A1 A3 A5 A7), 
                                                (coq.elpi.accumulate _ 
                                                  record.expand.db 
                                                  (clause _ 
                                                    (before expand:start) A7)). 
                                               
Debug:
  rid:0 step:5 gid:0 user:assign = A0 := r 
                                   
Debug:
  rid:0 step:5 gid:0 user:assign = A2 := f 
                                   
Debug:
  rid:0 step:5 gid:0 user:assign = A6 := expanded_ 
                                   
Debug:
  rid:0 step:5 gid:7 user:subgoal = 8 
                                    
Debug:
  rid:0 step:5 gid:8 user:newgoal = ! 
                                    
Debug:
  rid:0 step:5 gid:8 user:subgoal = 9 
                                    
Debug:
  rid:0 step:5 gid:9 user:newgoal = std.assert! (coq.locate r (indt X0)) 
                                     The first argument must be a record name 
                                    
Debug:
  rid:0 step:5 gid:8 user:subgoal = 10 
                                    
Debug:
  rid:0 step:5 gid:10 user:newgoal = std.assert! (coq.locate f X1) 
                                      The second argument must be a global term 
                                     
Debug:
  rid:0 step:5 gid:8 user:subgoal = 11 
                                    
Debug:
  rid:0 step:5 gid:11 user:newgoal = coq.gref->id X1 X2 
                                     
Debug:
  rid:0 step:5 gid:8 user:subgoal = 12 
                                    
Debug:
  rid:0 step:5 gid:12 user:newgoal = X3 is expanded_ ^ X2 
                                     
Debug:
  rid:0 step:5 gid:8 user:subgoal = 13 
                                    
Debug:
  rid:0 step:5 gid:13 user:newgoal = expand-gref X0 X1 X3 X4 
                                     
Debug:
  rid:0 step:5 gid:8 user:subgoal = 14 
                                    
Debug:
  rid:0 step:5 gid:14 user:newgoal = coq.elpi.accumulate _ record.expand.db 
                                      (clause _ (before expand:start) X4) 
                                     
Debug:
  rid:0 step:5 gid:8 user:rule:backchain = success 
                                           
Debug: }}} ->  (0.000s)
Debug: run 6 {{{  
          
Debug:
  rid:0 step:6 gid:8 user:curgoal = ! 
                                    ! 
                                    
Debug: }}} ->  (0.000s)
Debug:
  rid:0 step:6 gid:8 user:rule = cut 
                                 
Debug:
  rid:0 step:6 gid:0 user:rule:cut:branch = 7 
                                            File "./examples/example_record_expansion.v", line 207, column 0, characters 9228-9306: 
                                            (main _) :- (coq.error
                                                          usage: Elpi record.expand record_name global_term prefix). 
                                            
Debug:
  rid:0 step:6 gid:8 user:rule:cut = success 
                                     
Debug: run 7 {{{  
          
Debug:
  rid:0 step:7 gid:9 user:curgoal = std.assert! 
                                    std.assert! (coq.locate r (indt X0)) 
                                     The first argument must be a record name 
                                    
Debug:
  rid:0 step:7 gid:9 user:rule = backchain 
                                 
Debug:
  rid:0 step:7 gid:9 user:rule:backchain:candidates = File "builtin_stdlib.elpi", line 39, column 0, characters 1190-1249: 
                                                      
Debug: }}} ->  (0.000s)
Debug: select 7 {{{  
             
Debug:
  rid:0 step:7 gid:9 user:rule:backchain:try = File "builtin_stdlib.elpi", line 39, column 0, characters 1190-1249: 
                                               (std.assert! A0 A1) :- (
                                                A0 ;
                                                 std.fatal-error-w-data A1 A0), 
                                                (!). 
                                               
Debug:
  rid:0 step:7 gid:0 user:assign = A0 := coq.locate r (indt X0) 
                                   
Debug:
  rid:0 step:7 gid:0 user:assign = A1 := The first argument must be a record name 
                                   
Debug:
  rid:0 step:7 gid:9 user:subgoal = 15 
                                    
Debug:
  rid:0 step:7 gid:15 user:newgoal = coq.locate r (indt X0) ;
                                      std.fatal-error-w-data
                                       The first argument must be a record name 
                                       (coq.locate r (indt X0)) 
                                     
Debug:
  rid:0 step:7 gid:15 user:subgoal = 16 
                                     
Debug:
  rid:0 step:7 gid:16 user:newgoal = ! 
                                     
Debug:
  rid:0 step:7 gid:15 user:rule:backchain = success 
                                            
Debug: }}} ->  (0.000s)
Debug: run 8 {{{  
          
Debug:
  rid:0 step:8 gid:15 user:curgoal = ; 
                                     coq.locate r (indt X0) ;
                                      std.fatal-error-w-data
                                       The first argument must be a record name 
                                       (coq.locate r (indt X0)) 
                                     
Debug:
  rid:0 step:8 gid:15 user:rule = backchain 
                                  
Debug:
  rid:0 step:8 gid:15 user:rule:backchain:candidates = File "elpi-builtin.elpi", line 34, column 0, characters 373-385: 
                                                       File "elpi-builtin.elpi", line 36, column 0, characters 388-400: 
                                                       
Debug: }}} ->  (0.000s)
Debug: select 8 {{{  
             
Debug:
  rid:0 step:8 gid:15 user:rule:backchain:try = File "elpi-builtin.elpi", line 34, column 0, characters 373-385: 
                                                (A0 ; _) :- A0. 
                                                
Debug:
  rid:0 step:8 gid:0 user:assign = A0 := coq.locate r (indt X0) 
                                   
Debug:
  rid:0 step:8 gid:15 user:subgoal = 17 
                                     
Debug:
  rid:0 step:8 gid:17 user:newgoal = coq.locate r (indt X0) 
                                     
Debug:
  rid:0 step:8 gid:17 user:rule:backchain = success 
                                            
Debug: }}} ->  (0.000s)
Debug: run 9 {{{  
          
Debug:
  rid:0 step:9 gid:17 user:curgoal = coq.locate 
                                     coq.locate r (indt X0) 
                                     
Debug:
  rid:0 step:9 gid:17 user:rule = builtin 
                                  
Debug:
  rid:0 step:9 gid:17 user:rule:builtin:name = coq.locate 
                                               
Debug:
  rid:0 step:9 gid:17 user:rule:builtin = success 
                                          
Debug:
  rid:0 step:9 gid:17 user:subgoal = 18 
                                     
Debug:
  rid:0 step:9 gid:18 user:newgoal = indt X0 = indt «r» 
                                     
Debug: }}} ->  (0.000s)
Debug: run 10 {{{  
           
Debug:
  rid:0 step:10 gid:18 user:curgoal = = 
                                      indt X0 = indt «r» 
                                      
Debug:
  rid:0 step:10 gid:18 user:rule = eq 
                                   
Debug:
  rid:0 step:10 gid:18 user:rule:builtin:name = = 
                                                
Debug:
  rid:0 step:10 gid:0 user:assign = X0 := «r» 
                                    
Debug:
  rid:0 step:10 gid:18 user:rule:eq = success 
                                      
Debug: }}} ->  (0.000s)
Debug: run 11 {{{  
           
Debug:
  rid:0 step:11 gid:16 user:curgoal = ! 
                                      ! 
                                      
Debug: }}} ->  (0.000s)
Debug:
  rid:0 step:11 gid:16 user:rule = cut 
                                   
Debug:
  rid:0 step:11 gid:0 user:rule:cut:branch = 15 
                                             File "elpi-builtin.elpi", line 36, column 0, characters 388-400: 
                                             (_ ; A0) :- A0. 
                                             
Debug:
  rid:0 step:11 gid:16 user:rule:cut = success 
                                       
Debug: run 12 {{{  
           
Debug:
  rid:0 step:12 gid:10 user:curgoal = std.assert! 
                                      std.assert! (coq.locate f X1) 
                                       The second argument must be a global term 
                                      
Debug:
  rid:0 step:12 gid:10 user:rule = backchain 
                                   
Debug:
  rid:0 step:12 gid:10 user:rule:backchain:candidates = File "builtin_stdlib.elpi", line 39, column 0, characters 1190-1249: 
                                                        
Debug: }}} ->  (0.000s)
Debug: select 9 {{{  
             
Debug:
  rid:0 step:12 gid:10 user:rule:backchain:try = File "builtin_stdlib.elpi", line 39, column 0, characters 1190-1249: 
                                                 (std.assert! A0 A1) :- (
                                                  A0 ;
                                                   std.fatal-error-w-data A1 A0), 
                                                  (!). 
                                                 
Debug:
  rid:0 step:12 gid:0 user:assign = A0 := coq.locate f X1 
                                    
Debug:
  rid:0 step:12 gid:0 user:assign = A1 := The second argument must be a global term 
                                    
Debug:
  rid:0 step:12 gid:10 user:subgoal = 19 
                                      
Debug:
  rid:0 step:12 gid:19 user:newgoal = coq.locate f X1 ;
                                       std.fatal-error-w-data
                                        The second argument must be a global term 
                                        (coq.locate f X1) 
                                      
Debug:
  rid:0 step:12 gid:19 user:subgoal = 20 
                                      
Debug:
  rid:0 step:12 gid:20 user:newgoal = ! 
                                      
Debug:
  rid:0 step:12 gid:19 user:rule:backchain = success 
                                             
Debug: }}} ->  (0.000s)
Debug: run 13 {{{  
           
Debug:
  rid:0 step:13 gid:19 user:curgoal = ; 
                                      coq.locate f X1 ;
                                       std.fatal-error-w-data
                                        The second argument must be a global term 
                                        (coq.locate f X1) 
                                      
Debug:
  rid:0 step:13 gid:19 user:rule = backchain 
                                   
Debug:
  rid:0 step:13 gid:19 user:rule:backchain:candidates = File "elpi-builtin.elpi", line 34, column 0, characters 373-385: 
                                                        File "elpi-builtin.elpi", line 36, column 0, characters 388-400: 
                                                        
Debug: }}} ->  (0.000s)
Debug: select 10 {{{  
              
Debug:
  rid:0 step:13 gid:19 user:rule:backchain:try = File "elpi-builtin.elpi", line 34, column 0, characters 373-385: 
                                                 (A0 ; _) :- A0. 
                                                 
Debug:
  rid:0 step:13 gid:0 user:assign = A0 := coq.locate f X1 
                                    
Debug:
  rid:0 step:13 gid:19 user:subgoal = 21 
                                      
Debug:
  rid:0 step:13 gid:21 user:newgoal = coq.locate f X1 
                                      
Debug:
  rid:0 step:13 gid:21 user:rule:backchain = success 
                                             
Debug: }}} ->  (0.000s)
Debug: run 14 {{{  
           
Debug:
  rid:0 step:14 gid:21 user:curgoal = coq.locate 
                                      coq.locate f X1 
                                      
Debug:
  rid:0 step:14 gid:21 user:rule = builtin 
                                   
Debug:
  rid:0 step:14 gid:21 user:rule:builtin:name = coq.locate 
                                                
Debug:
  rid:0 step:14 gid:21 user:rule:builtin = success 
                                           
Debug:
  rid:0 step:14 gid:21 user:subgoal = 22 
                                      
Debug:
  rid:0 step:14 gid:22 user:newgoal = X1 = const «f» 
                                      
Debug: }}} ->  (0.000s)
Debug: run 15 {{{  
           
Debug:
  rid:0 step:15 gid:22 user:curgoal = = 
                                      X1 = const «f» 
                                      
Debug:
  rid:0 step:15 gid:22 user:rule = eq 
                                   
Debug:
  rid:0 step:15 gid:22 user:rule:builtin:name = = 
                                                
Debug:
  rid:0 step:15 gid:0 user:assign = X1 := const «f» 
                                    
Debug:
  rid:0 step:15 gid:22 user:rule:eq = success 
                                      
Debug: }}} ->  (0.000s)
Debug: run 16 {{{  
           
Debug:
  rid:0 step:16 gid:20 user:curgoal = ! 
                                      ! 
                                      
Debug: }}} ->  (0.000s)
Debug:
  rid:0 step:16 gid:20 user:rule = cut 
                                   
Debug:
  rid:0 step:16 gid:0 user:rule:cut:branch = 19 
                                             File "elpi-builtin.elpi", line 36, column 0, characters 388-400: 
                                             (_ ; A0) :- A0. 
                                             
Debug:
  rid:0 step:16 gid:20 user:rule:cut = success 
                                       
Debug: run 17 {{{  
           
Debug:
  rid:0 step:17 gid:11 user:curgoal = coq.gref->id 
                                      coq.gref->id (const «f») X2 
                                      
Debug:
  rid:0 step:17 gid:11 user:rule = builtin 
                                   
Debug:
  rid:0 step:17 gid:11 user:rule:builtin:name = coq.gref->id 
                                                
Debug:
  rid:0 step:17 gid:11 user:rule:builtin = success 
                                           
Debug:
  rid:0 step:17 gid:11 user:subgoal = 23 
                                      
Debug:
  rid:0 step:17 gid:23 user:newgoal = X2 = f 
                                      
Debug: }}} ->  (0.000s)
Debug: run 18 {{{  
           
Debug:
  rid:0 step:18 gid:23 user:curgoal = = 
                                      X2 = f 
                                      
Debug:
  rid:0 step:18 gid:23 user:rule = eq 
                                   
Debug:
  rid:0 step:18 gid:23 user:rule:builtin:name = = 
                                                
Debug:
  rid:0 step:18 gid:0 user:assign = X2 := f 
                                    
Debug:
  rid:0 step:18 gid:23 user:rule:eq = success 
                                      
Debug: }}} ->  (0.000s)
Debug: run 19 {{{  
           
Debug:
  rid:0 step:19 gid:12 user:curgoal = is 
                                      X3 is expanded_ ^ f 
                                      
Debug:
  rid:0 step:19 gid:12 user:rule = backchain 
                                   
Debug:
  rid:0 step:19 gid:12 user:rule:backchain:candidates = File "elpi-builtin.elpi", line 83, column 0, characters 1181-1199: 
                                                        
Debug: }}} ->  (0.000s)
Debug: select 11 {{{  
              
Debug:
  rid:0 step:19 gid:12 user:rule:backchain:try = File "elpi-builtin.elpi", line 83, column 0, characters 1181-1199: 
                                                 (A1 is A0) :- (calc A0 A1). 
                                                 
Debug:
  rid:0 step:19 gid:0 user:assign = A1 := X3 
                                    
Debug:
  rid:0 step:19 gid:0 user:assign = A0 := expanded_ ^ f 
                                    
Debug:
  rid:0 step:19 gid:12 user:subgoal = 24 
                                      
Debug:
  rid:0 step:19 gid:24 user:newgoal = calc (expanded_ ^ f) X3 
                                      
Debug:
  rid:0 step:19 gid:24 user:rule:backchain = success 
                                             
Debug: }}} ->  (0.000s)
Debug: run 20 {{{  
           
Debug:
  rid:0 step:20 gid:24 user:curgoal = calc 
                                      calc (expanded_ ^ f) X3 
                                      
Debug:
  rid:0 step:20 gid:24 user:rule = builtin 
                                   
Debug:
  rid:0 step:20 gid:24 user:rule:builtin:name = calc 
                                                
Debug:
  rid:0 step:20 gid:24 user:rule:builtin = success 
                                           
Debug:
  rid:0 step:20 gid:24 user:subgoal = 25 
                                      
Debug:
  rid:0 step:20 gid:25 user:newgoal = X3 = expanded_f 
                                      
Debug: }}} ->  (0.000s)
Debug: run 21 {{{  
           
Debug:
  rid:0 step:21 gid:25 user:curgoal = = 
                                      X3 = expanded_f 
                                      
Debug:
  rid:0 step:21 gid:25 user:rule = eq 
                                   
Debug:
  rid:0 step:21 gid:25 user:rule:builtin:name = = 
                                                
Debug:
  rid:0 step:21 gid:0 user:assign = X3 := expanded_f 
                                    
Debug:
  rid:0 step:21 gid:25 user:rule:eq = success 
                                      
Debug: }}} ->  (0.000s)
Debug: run 22 {{{  
           
Debug:
  rid:0 step:22 gid:13 user:curgoal = expand-gref 
                                      expand-gref «r» (const «f») 
                                       expanded_f X4 
                                      
Debug:
  rid:0 step:22 gid:13 user:rule = backchain 
                                   
Debug:
  rid:0 step:22 gid:13 user:rule:backchain:candidates = File "./examples/example_record_expansion.v", line 184, column 0, characters 8165-8504: 
                                                        File "./examples/example_record_expansion.v", line 192, column 0, characters 8507-8568: 
                                                        File "./examples/example_record_expansion.v", line 194, column 0, characters 8571-8690: 
                                                        
Debug: }}} ->  (0.000s)
Debug: select 12 {{{  
              
Debug:
  rid:0 step:22 gid:13 user:rule:backchain:try = File "./examples/example_record_expansion.v", line 184, column 0, characters 8165-8504: 
                                                 (expand-gref A2 (const A0) A5 
                                                   A7) :- (!), 
                                                  (std.do!
                                                    [std.assert!
                                                      (coq.env.const A0 
                                                        (some A1) _) 
                                                      only transparent constants can be expanded, 
                                                     pi (c0 \
                                                      (expand-record A2 
                                                        (const A0) c0 A1 A3 
                                                        (A4 c0))), 
                                                     std.assert-ok!
                                                      (coq.typecheck A3 _) 
                                                      illtyped, 
                                                     coq.env.add-const A5 A3 _ 
                                                      _ A6, A7 = A4 (const A6)]). 
                                                 
Debug:
  rid:0 step:22 gid:0 user:assign = A2 := «r» 
                                    
Debug:
  rid:0 step:22 gid:0 user:assign = A0 := «f» 
                                    
Debug:
  rid:0 step:22 gid:0 user:assign = A5 := expanded_f 
                                    
Debug:
  rid:0 step:22 gid:0 user:assign = A7 := X4 
                                    
Debug:
  rid:0 step:22 gid:13 user:subgoal = 26 
                                      
Debug:
  rid:0 step:22 gid:26 user:newgoal = ! 
                                      
Debug:
  rid:0 step:22 gid:26 user:subgoal = 27 
                                      
Debug:
  rid:0 step:22 gid:27 user:newgoal = std.do!
                                       [std.assert!
                                         (coq.env.const «f» (some X5) _) 
                                         only transparent constants can be expanded, 
                                        pi c0 \
                                         expand-record «r» (const «f») c0 
                                          X5 X6 (X7 c0), 
                                        std.assert-ok! (coq.typecheck X6 _) 
                                         illtyped, 
                                        coq.env.add-const expanded_f X6 _ _ X8, 
                                        X4 = X7 (const X8)] 
                                      
Debug:
  rid:0 step:22 gid:26 user:rule:backchain = success 
                                             
Debug: }}} ->  (0.017s)
Debug: run 23 {{{  
           
Debug:
  rid:0 step:23 gid:26 user:curgoal = ! 
                                      ! 
                                      
Debug: }}} ->  (0.000s)
Debug:
  rid:0 step:23 gid:26 user:rule = cut 
                                   
Debug:
  rid:0 step:23 gid:0 user:rule:cut:branch = 13 
                                             File "./examples/example_record_expansion.v", line 192, column 0, characters 8507-8568: 
                                             (expand-gref _ (indt _) _ _) :- (
                                              coq.error Not implemented yet). 
                                             
Debug:
  rid:0 step:23 gid:0 user:rule:cut:branch = 13 
                                             File "./examples/example_record_expansion.v", line 194, column 0, characters 8571-8690: 
                                             (expand-gref _ (indc _) _ _) :- (
                                              coq.error
                                               It makes no sense to expand a constructor alone, expand the inductive instead). 
                                             
Debug:
  rid:0 step:23 gid:26 user:rule:cut = success 
                                       
Debug: run 24 {{{  
           
Debug:
  rid:0 step:24 gid:27 user:curgoal = std.do! 
                                      std.do!
                                       [std.assert!
                                         (coq.env.const «f» (some X5) _) 
                                         only transparent constants can be expanded, 
                                        pi c0 \
                                         expand-record «r» (const «f») c0 
                                          X5 X6 (X7 c0), 
                                        std.assert-ok! (coq.typecheck X6 _) 
                                         illtyped, 
                                        coq.env.add-const expanded_f X6 _ _ X8, 
                                        X4 = X7 (const X8)] 
                                      
Debug:
  rid:0 step:24 gid:27 user:rule = backchain 
                                   
Debug:
  rid:0 step:24 gid:27 user:rule:backchain:candidates = File "builtin_stdlib.elpi", line 279, column 0, characters 9290-9316: 
                                                        
Debug: }}} ->  (0.000s)
Debug: select 13 {{{  
              
Debug:
  rid:0 step:24 gid:27 user:rule:backchain:try = File "builtin_stdlib.elpi", line 279, column 0, characters 9290-9316: 
                                                 (std.do! [A0 | A1]) :- A0, 
                                                  (!), (std.do! A1). 
                                                 
Debug:
  rid:0 step:24 gid:0 user:assign = A0 := std.assert!
                                           (coq.env.const «f» (some X5) _) 
                                           only transparent constants can be expanded 
                                    
Debug:
  rid:0 step:24 gid:0 user:assign = A1 := [pi c0 \
                                            expand-record «r» (const «f») 
                                             c0 X5 X6 (X7 c0), 
                                           std.assert-ok! (coq.typecheck X6 _) 
                                            illtyped, 
                                           coq.env.add-const expanded_f X6 _ _ 
                                            X8, X4 = X7 (const X8)] 
                                    
Debug:
  rid:0 step:24 gid:27 user:subgoal = 28 
                                      
Debug:
  rid:0 step:24 gid:28 user:newgoal = std.assert!
                                       (coq.env.const «f» (some X5) _) 
                                       only transparent constants can be expanded 
                                      
Debug:
  rid:0 step:24 gid:28 user:subgoal = 29 
                                      
Debug:
  rid:0 step:24 gid:29 user:newgoal = ! 
                                      
Debug:
  rid:0 step:24 gid:28 user:subgoal = 30 
                                      
Debug:
  rid:0 step:24 gid:30 user:newgoal = std.do!
                                       [pi c0 \
                                         expand-record «r» (const «f») c0 
                                          X5 X6 (X7 c0), 
                                        std.assert-ok! (coq.typecheck X6 _) 
                                         illtyped, 
                                        coq.env.add-const expanded_f X6 _ _ X8, 
                                        X4 = X7 (const X8)] 
                                      
Debug:
  rid:0 step:24 gid:28 user:rule:backchain = success 
                                             
Debug: }}} ->  (0.000s)
Debug: run 25 {{{  
           
Debug:
  rid:0 step:25 gid:28 user:curgoal = std.assert! 
                                      std.assert!
                                       (coq.env.const «f» (some X5) _) 
                                       only transparent constants can be expanded 
                                      
Debug:
  rid:0 step:25 gid:28 user:rule = backchain 
                                   
Debug:
  rid:0 step:25 gid:28 user:rule:backchain:candidates = File "builtin_stdlib.elpi", line 39, column 0, characters 1190-1249: 
                                                        
Debug: }}} ->  (0.000s)
Debug: select 14 {{{  
              
Debug:
  rid:0 step:25 gid:28 user:rule:backchain:try = File "builtin_stdlib.elpi", line 39, column 0, characters 1190-1249: 
                                                 (std.assert! A0 A1) :- (
                                                  A0 ;
                                                   std.fatal-error-w-data A1 A0), 
                                                  (!). 
                                                 
Debug:
  rid:0 step:25 gid:0 user:assign = A0 := coq.env.const «f» (some X5) _ 
                                    
Debug:
  rid:0 step:25 gid:0 user:assign = A1 := only transparent constants can be expanded 
                                    
Debug:
  rid:0 step:25 gid:28 user:subgoal = 31 
                                      
Debug:
  rid:0 step:25 gid:31 user:newgoal = coq.env.const «f» (some X5) _ ;
                                       std.fatal-error-w-data
                                        only transparent constants can be expanded 
                                        (coq.env.const «f» (some X5) _) 
                                      
Debug:
  rid:0 step:25 gid:31 user:subgoal = 32 
                                      
Debug:
  rid:0 step:25 gid:32 user:newgoal = ! 
                                      
Debug:
  rid:0 step:25 gid:31 user:rule:backchain = success 
                                             
Debug: }}} ->  (0.000s)
Debug: run 26 {{{  
           
Debug:
  rid:0 step:26 gid:31 user:curgoal = ; 
                                      coq.env.const «f» (some X5) _ ;
                                       std.fatal-error-w-data
                                        only transparent constants can be expanded 
                                        (coq.env.const «f» (some X5) _) 
                                      
Debug:
  rid:0 step:26 gid:31 user:rule = backchain 
                                   
Debug:
  rid:0 step:26 gid:31 user:rule:backchain:candidates = File "elpi-builtin.elpi", line 34, column 0, characters 373-385: 
                                                        File "elpi-builtin.elpi", line 36, column 0, characters 388-400: 
                                                        
Debug: }}} ->  (0.000s)
Debug: select 15 {{{  
              
Debug:
  rid:0 step:26 gid:31 user:rule:backchain:try = File "elpi-builtin.elpi", line 34, column 0, characters 373-385: 
                                                 (A0 ; _) :- A0. 
                                                 
Debug:
  rid:0 step:26 gid:0 user:assign = A0 := coq.env.const «f» (some X5) _ 
                                    
Debug:
  rid:0 step:26 gid:31 user:subgoal = 33 
                                      
Debug:
  rid:0 step:26 gid:33 user:newgoal = coq.env.const «f» (some X5) _ 
                                      
Debug:
  rid:0 step:26 gid:33 user:rule:backchain = success 
                                             
Debug: }}} ->  (0.000s)
Debug: run 27 {{{  
           
Debug:
  rid:0 step:27 gid:33 user:curgoal = coq.env.const 
                                      coq.env.const «f» (some X5) _ 
                                      
Debug:
  rid:0 step:27 gid:33 user:rule = builtin 
                                   
Debug:
  rid:0 step:27 gid:33 user:rule:builtin:name = coq.env.const 
                                                
Debug:
  rid:0 step:27 gid:33 user:rule:builtin = success 
                                           
Debug:
  rid:0 step:27 gid:33 user:subgoal = 34 
                                      
Debug:
  rid:0 step:27 gid:34 user:newgoal = some X5 =
                                       some
                                        (fun `b` (global (indt «bool»)) c0 \
                                          fun `t` (global (indt «r»)) c1 \
                                           let `q` (global (indt «bool»)) 
                                            (app [global (const «negb»), c0]) 
                                            c2 \
                                            fix `rec` 0 
                                             (prod `l1` 
                                               (app
                                                 [global (indt «list»), 
                                                  app
                                                   [global (const «T»), c1]]) 
                                               c3 \
                                               prod `l2` 
                                                (app
                                                  [global (indt «list»), 
                                                   app
                                                    [global (const «T»), c1]]) 
                                                c4 \ global (indt «bool»)) 
                                             c3 \
                                             fun `l1` 
                                              (app
                                                [global (indt «list»), 
                                                 app [global (const «T»), c1]]) 
                                              c4 \
                                              fun `l2` 
                                               (app
                                                 [global (indt «list»), 
                                                  app
                                                   [global (const «T»), c1]]) 
                                               c5 \
                                               match c4 
                                                (fun `l1` 
                                                  (app
                                                    [global (indt «list»), 
                                                     app
                                                      [global (const «T»), c1]]) 
                                                  c6 \ global (indt «bool»)) 
                                                [match c5 
                                                  (fun `l2` 
                                                    (app
                                                      [global (indt «list»), 
                                                       app
                                                        [global (const «T»), 
                                                         c1]]) c6 \
                                                    global (indt «bool»)) 
                                                  [c0, 
                                                   fun `t0` 
                                                    (app
                                                      [global (const «T»), c1]) 
                                                    c6 \
                                                    fun `l` 
                                                     (app
                                                       [global (indt «list»), 
                                                        app
                                                         [global (const «T»), 
                                                          c1]]) c7 \ c2], 
                                                 fun `x` 
                                                  (app
                                                    [global (const «T»), c1]) 
                                                  c6 \
                                                  fun `xs` 
                                                   (app
                                                     [global (indt «list»), 
                                                      app
                                                       [global (const «T»), 
                                                        c1]]) c7 \
                                                   match c5 
                                                    (fun `l2` 
                                                      (app
                                                        [global (indt «list»), 
                                                         app
                                                          [global (const «T»), 
                                                           c1]]) c8 \
                                                      global (indt «bool»)) 
                                                    [c2, 
                                                     fun `y` 
                                                      (app
                                                        [global (const «T»), 
                                                         c1]) c8 \
                                                      fun `ys` 
                                                       (app
                                                         [global
                                                           (indt «list»), 
                                                          app
                                                           [global
                                                             (const «T»), c1]]) 
                                                       c9 \
                                                       app
                                                        [global
                                                          (const «andb»), 
                                                         app
                                                          [global
                                                            (const «op»), 
                                                           c1, c6, c8], 
                                                         app [c3, c7, c9]]]]) 
                                      
Debug: }}} ->  (0.001s)
Debug: run 28 {{{  
           
Debug:
  rid:0 step:28 gid:34 user:curgoal = = 
                                      some X5 =
                                       some
                                        (fun `b` (global (indt «bool»)) c0 \
                                          fun `t` (global (indt «r»)) c1 \
                                           let `q` (global (indt «bool»)) 
                                            (app [global (const «negb»), c0]) 
                                            c2 \
                                            fix `rec` 0 
                                             (prod `l1` 
                                               (app
                                                 [global (indt «list»), 
                                                  app
                                                   [global (const «T»), c1]]) 
                                               c3 \
                                               prod `l2` 
                                                (app
                                                  [global (indt «list»), 
                                                   app
                                                    [global (const «T»), c1]]) 
                                                c4 \ global (indt «bool»)) 
                                             c3 \
                                             fun `l1` 
                                              (app
                                                [global (indt «list»), 
                                                 app [global (const «T»), c1]]) 
                                              c4 \
                                              fun `l2` 
                                               (app
                                                 [global (indt «list»), 
                                                  app
                                                   [global (const «T»), c1]]) 
                                               c5 \
                                               match c4 
                                                (fun `l1` 
                                                  (app
                                                    [global (indt «list»), 
                                                     app
                                                      [global (const «T»), c1]]) 
                                                  c6 \ global (indt «bool»)) 
                                                [match c5 
                                                  (fun `l2` 
                                                    (app
                                                      [global (indt «list»), 
                                                       app
                                                        [global (const «T»), 
                                                         c1]]) c6 \
                                                    global (indt «bool»)) 
                                                  [c0, 
                                                   fun `t0` 
                                                    (app
                                                      [global (const «T»), c1]) 
                                                    c6 \
                                                    fun `l` 
                                                     (app
                                                       [global (indt «list»), 
                                                        app
                                                         [global (const «T»), 
                                                          c1]]) c7 \ c2], 
                                                 fun `x` 
                                                  (app
                                                    [global (const «T»), c1]) 
                                                  c6 \
                                                  fun `xs` 
                                                   (app
                                                     [global (indt «list»), 
                                                      app
                                                       [global (const «T»), 
                                                        c1]]) c7 \
                                                   match c5 
                                                    (fun `l2` 
                                                      (app
                                                        [global (indt «list»), 
                                                         app
                                                          [global (const «T»), 
                                                           c1]]) c8 \
                                                      global (indt «bool»)) 
                                                    [c2, 
                                                     fun `y` 
                                                      (app
                                                        [global (const «T»), 
                                                         c1]) c8 \
                                                      fun `ys` 
                                                       (app
                                                         [global
                                                           (indt «list»), 
                                                          app
                                                           [global
                                                             (const «T»), c1]]) 
                                                       c9 \
                                                       app
                                                        [global
                                                          (const «andb»), 
                                                         app
                                                          [global
                                                            (const «op»), 
                                                           c1, c6, c8], 
                                                         app [c3, c7, c9]]]]) 
                                      
Debug:
  rid:0 step:28 gid:34 user:rule = eq 
                                   
Debug:
  rid:0 step:28 gid:34 user:rule:builtin:name = = 
                                                
Debug:
  rid:0 step:28 gid:0 user:assign = X5 := fun `b` (global (indt «bool»)) c0 \
                                           fun `t` (global (indt «r»)) c1 \
                                            let `q` (global (indt «bool»)) 
...TRUNCATED BY DUNE...
                                               global (indt «bool»)) c1 \
                                            prod `l` 
                                             (app [global (indt «list»), c0]) 
                                             c2 \
                                             prod `s` 
                                              (app [global (indt «list»), c0]) 
                                              c3 \
                                              prod `h` 
                                               (global (indt «bool»)) c4 \
                                               sort prop 
                                         
Debug:
  rid:1 step:356 gid:1042 user:rule = eq 
                                      
Debug:
  rid:1 step:356 gid:1042 user:rule:builtin:name = = 
                                                   
Debug:
  rid:1 step:356 gid:1042 user:rule:eq = success 
                                         
Debug: }}} ->  (0.000s)
Debug: run 357 {{{  
            
Debug:
  rid:1 step:357 gid:1043 user:curgoal = = 
                                         X211 = ok 
                                         
Debug:
  rid:1 step:357 gid:1043 user:rule = eq 
                                      
Debug:
  rid:1 step:357 gid:1043 user:rule:builtin:name = = 
                                                   
Debug:
  rid:1 step:357 gid:0 user:assign = X211 := ok 
                                     
Debug:
  rid:1 step:357 gid:1043 user:rule:eq = success 
                                         
Debug: }}} ->  (0.000s)
Debug: run 358 {{{  
            
Debug:
  rid:1 step:358 gid:1039 user:curgoal = ! 
                                         ! 
                                         
Debug: }}} ->  (0.000s)
Debug:
  rid:1 step:358 gid:1039 user:rule = cut 
                                      
Debug:
  rid:1 step:358 gid:0 user:rule:cut:branch = 1035 
                                              File "builtin_stdlib.elpi", line 45, column 0, characters 1554-1621: 
                                              (std.assert-ok! _ A0) :- (
                                               std.fatal-error-w-data A0 
                                                no diagnostic returned). 
                                              
Debug:
  rid:1 step:358 gid:1039 user:rule:cut = success 
                                          
Debug: run 359 {{{  
            
Debug:
  rid:1 step:359 gid:1040 user:curgoal = ; 
                                         ok = ok ;
                                          ok = error X212 ,
                                           std.fatal-error-w-data illtyped X212 
                                         
Debug:
  rid:1 step:359 gid:1040 user:rule = backchain 
                                      
Debug:
  rid:1 step:359 gid:1040 user:rule:backchain:candidates = File "elpi-builtin.elpi", line 34, column 0, characters 373-385: 
                                                           File "elpi-builtin.elpi", line 36, column 0, characters 388-400: 
                                                           
Debug: }}} ->  (0.000s)
Debug: select 269 {{{  
               
Debug:
  rid:1 step:359 gid:1040 user:rule:backchain:try = File "elpi-builtin.elpi", line 34, column 0, characters 373-385: 
                                                    (A0 ; _) :- A0. 
                                                    
Debug:
  rid:1 step:359 gid:0 user:assign = A0 := ok = ok 
                                     
Debug:
  rid:1 step:359 gid:1040 user:subgoal = 1044 
                                         
Debug:
  rid:1 step:359 gid:1044 user:newgoal = ok = ok 
                                         
Debug:
  rid:1 step:359 gid:1044 user:rule:backchain = success 
                                                
Debug: }}} ->  (0.000s)
Debug: run 360 {{{  
            
Debug:
  rid:1 step:360 gid:1044 user:curgoal = = 
                                         ok = ok 
                                         
Debug:
  rid:1 step:360 gid:1044 user:rule = eq 
                                      
Debug:
  rid:1 step:360 gid:1044 user:rule:builtin:name = = 
                                                   
Debug:
  rid:1 step:360 gid:1044 user:rule:eq = success 
                                         
Debug: }}} ->  (0.000s)
Debug: run 361 {{{  
            
Debug:
  rid:1 step:361 gid:1041 user:curgoal = ! 
                                         ! 
                                         
Debug: }}} ->  (0.000s)
Debug:
  rid:1 step:361 gid:1041 user:rule = cut 
                                      
Debug:
  rid:1 step:361 gid:0 user:rule:cut:branch = 1040 
                                              File "elpi-builtin.elpi", line 36, column 0, characters 388-400: 
                                              (_ ; A0) :- A0. 
                                              
Debug:
  rid:1 step:361 gid:1041 user:rule:cut = success 
                                          
Debug: run 362 {{{  
            
Debug:
  rid:1 step:362 gid:1036 user:curgoal = ! 
                                         ! 
                                         
Debug: }}} ->  (0.000s)
Debug:
  rid:1 step:362 gid:1036 user:rule = cut 
                                      
Debug:
  rid:1 step:362 gid:1036 user:rule:cut = success 
                                          
Debug: run 363 {{{  
            
Debug:
  rid:1 step:363 gid:1037 user:curgoal = std.do! 
                                         std.do!
                                          [coq.env.add-const expanded_g 
                                            (fun `T` (sort (typ «r.u0»)) c0 \
                                              let `X` (sort (typ «r.u0»)) c0 
                                               c1 \
                                               fun `op` 
                                                (prod `_` c0 c2 \
                                                  prod `_` c1 c3 \
                                                   global (indt «bool»)) c2 \
                                                fun `l` 
                                                 (app
                                                   [global (indt «list»), c0]) 
                                                 c3 \
                                                 fun `s` 
                                                  (app
                                                    [global (indt «list»), c0]) 
                                                  c4 \
                                                  fun `h` 
                                                   (global (indt «bool»)) 
                                                   c5 \
                                                   app
                                                    [global (indt «and»), 
                                                     prod `x` c0 c6 \
                                                      prod `y` c1 c7 \
                                                       app
                                                        [global (indt «eq»), 
                                                         global (indt «bool»), 
                                                         app [c2, c6, c7], 
                                                         global
                                                          (indc «false»)], 
                                                     app
                                                      [global (indt «eq»), 
                                                       global (indt «bool»), 
                                                       app
                                                        [global
                                                          (const «expanded_f»), 
                                                         global (indc «true»), 
                                                         c0, c2, c3, c4], c5]]) 
                                            _ _ X8, 
                                           X4 =
                                            pi c0 \
                                             pi c1 \
                                              pi c2 \
                                               pi c3 \
                                                pi c4 \
                                                 pi c5 \
                                                  pi c6 \
                                                   pi c7 \
                                                    pi c8 \
                                                     pi c9 \
                                                      pi c10 \
                                                       expand
                                                        (app
                                                          [global (const «g»), 
                                                           c0, c3, c5, c7 | c9]) 
                                                        (app
                                                          [global (const X8), 
                                                           c1, c2, c4, c6, c8 | c10])
                                                        :-
                                                        [!, 
                                                         std.map c9 expand c10, 
                                                         expand c7 c8, 
                                                         expand c5 c6, 
                                                         expand c3 c4, 
                                                         expand c0 
                                                          (app
                                                            [global
                                                              (indc «Build_r»), 
                                                             c1, c2])]] 
                                         
Debug:
  rid:1 step:363 gid:1037 user:rule = backchain 
                                      
Debug:
  rid:1 step:363 gid:1037 user:rule:backchain:candidates = File "builtin_stdlib.elpi", line 279, column 0, characters 9290-9316: 
                                                           
Debug: }}} ->  (0.009s)
Debug: select 270 {{{  
               
Debug:
  rid:1 step:363 gid:1037 user:rule:backchain:try = File "builtin_stdlib.elpi", line 279, column 0, characters 9290-9316: 
                                                    (std.do! [A0 | A1]) :- A0, 
                                                     (!), (std.do! A1). 
                                                    
Debug:
  rid:1 step:363 gid:0 user:assign = A0 := coq.env.add-const expanded_g 
                                            (fun `T` (sort (typ «r.u0»)) c0 \
                                              let `X` (sort (typ «r.u0»)) c0 
                                               c1 \
                                               fun `op` 
                                                (prod `_` c0 c2 \
                                                  prod `_` c1 c3 \
                                                   global (indt «bool»)) c2 \
                                                fun `l` 
                                                 (app
                                                   [global (indt «list»), c0]) 
                                                 c3 \
                                                 fun `s` 
                                                  (app
                                                    [global (indt «list»), c0]) 
                                                  c4 \
                                                  fun `h` 
                                                   (global (indt «bool»)) 
                                                   c5 \
                                                   app
                                                    [global (indt «and»), 
                                                     prod `x` c0 c6 \
                                                      prod `y` c1 c7 \
                                                       app
                                                        [global (indt «eq»), 
                                                         global (indt «bool»), 
                                                         app [c2, c6, c7], 
                                                         global
                                                          (indc «false»)], 
                                                     app
                                                      [global (indt «eq»), 
                                                       global (indt «bool»), 
                                                       app
                                                        [global
                                                          (const «expanded_f»), 
                                                         global (indc «true»), 
                                                         c0, c2, c3, c4], c5]]) 
                                            _ _ X8 
                                     
Debug:
  rid:1 step:363 gid:0 user:assign = A1 := [X4 =
                                             pi c0 \
                                              pi c1 \
                                               pi c2 \
                                                pi c3 \
                                                 pi c4 \
                                                  pi c5 \
                                                   pi c6 \
                                                    pi c7 \
                                                     pi c8 \
                                                      pi c9 \
                                                       pi c10 \
                                                        expand
                                                         (app
                                                           [global
                                                             (const «g»), 
                                                            c0, c3, c5, c7 | c9]) 
                                                         (app
                                                           [global (const X8), 
                                                            c1, c2, c4, c6, c8 | c10])
                                                         :-
                                                         [!, 
                                                          std.map c9 expand c10, 
                                                          expand c7 c8, 
                                                          expand c5 c6, 
                                                          expand c3 c4, 
                                                          expand c0 
                                                           (app
                                                             [global
                                                               (indc
                                                                 «Build_r»), 
                                                              c1, c2])]] 
                                     
Debug:
  rid:1 step:363 gid:1037 user:subgoal = 1045 
                                         
Debug:
  rid:1 step:363 gid:1045 user:newgoal = coq.env.add-const expanded_g 
                                          (fun `T` (sort (typ «r.u0»)) c0 \
                                            let `X` (sort (typ «r.u0»)) c0 
                                             c1 \
                                             fun `op` 
                                              (prod `_` c0 c2 \
                                                prod `_` c1 c3 \
                                                 global (indt «bool»)) c2 \
                                              fun `l` 
                                               (app
                                                 [global (indt «list»), c0]) 
                                               c3 \
                                               fun `s` 
                                                (app
                                                  [global (indt «list»), c0]) 
                                                c4 \
                                                fun `h` 
                                                 (global (indt «bool»)) c5 \
                                                 app
                                                  [global (indt «and»), 
                                                   prod `x` c0 c6 \
                                                    prod `y` c1 c7 \
                                                     app
                                                      [global (indt «eq»), 
                                                       global (indt «bool»), 
                                                       app [c2, c6, c7], 
                                                       global (indc «false»)], 
                                                   app
                                                    [global (indt «eq»), 
                                                     global (indt «bool»), 
                                                     app
                                                      [global
                                                        (const «expanded_f»), 
                                                       global (indc «true»), 
                                                       c0, c2, c3, c4], c5]]) 
                                          _ _ X8 
                                         
Debug:
  rid:1 step:363 gid:1045 user:subgoal = 1046 
                                         
Debug:
  rid:1 step:363 gid:1046 user:newgoal = ! 
                                         
Debug:
  rid:1 step:363 gid:1045 user:subgoal = 1047 
                                         
Debug:
  rid:1 step:363 gid:1047 user:newgoal = std.do!
                                          [X4 =
                                            pi c0 \
                                             pi c1 \
                                              pi c2 \
                                               pi c3 \
                                                pi c4 \
                                                 pi c5 \
                                                  pi c6 \
                                                   pi c7 \
                                                    pi c8 \
                                                     pi c9 \
                                                      pi c10 \
                                                       expand
                                                        (app
                                                          [global (const «g»), 
                                                           c0, c3, c5, c7 | c9]) 
                                                        (app
                                                          [global (const X8), 
                                                           c1, c2, c4, c6, c8 | c10])
                                                        :-
                                                        [!, 
                                                         std.map c9 expand c10, 
                                                         expand c7 c8, 
                                                         expand c5 c6, 
                                                         expand c3 c4, 
                                                         expand c0 
                                                          (app
                                                            [global
                                                              (indc «Build_r»), 
                                                             c1, c2])]] 
                                         
Debug:
  rid:1 step:363 gid:1045 user:rule:backchain = success 
                                                
Debug: }}} ->  (0.001s)
Debug: run 364 {{{  
            
Debug:
  rid:1 step:364 gid:1045 user:curgoal = coq.env.add-const 
                                         coq.env.add-const expanded_g 
                                          (fun `T` (sort (typ «r.u0»)) c0 \
                                            let `X` (sort (typ «r.u0»)) c0 
                                             c1 \
                                             fun `op` 
                                              (prod `_` c0 c2 \
                                                prod `_` c1 c3 \
                                                 global (indt «bool»)) c2 \
                                              fun `l` 
                                               (app
                                                 [global (indt «list»), c0]) 
                                               c3 \
                                               fun `s` 
                                                (app
                                                  [global (indt «list»), c0]) 
                                                c4 \
                                                fun `h` 
                                                 (global (indt «bool»)) c5 \
                                                 app
                                                  [global (indt «and»), 
                                                   prod `x` c0 c6 \
                                                    prod `y` c1 c7 \
                                                     app
                                                      [global (indt «eq»), 
                                                       global (indt «bool»), 
                                                       app [c2, c6, c7], 
                                                       global (indc «false»)], 
                                                   app
                                                    [global (indt «eq»), 
                                                     global (indt «bool»), 
                                                     app
                                                      [global
                                                        (const «expanded_f»), 
                                                       global (indc «true»), 
                                                       c0, c2, c3, c4], c5]]) 
                                          _ _ X8 
                                         
Debug:
  rid:1 step:364 gid:1045 user:rule = builtin 
                                      
Debug:
  rid:1 step:364 gid:1045 user:rule:builtin:name = coq.env.add-const 
                                                   
Debug:
  rid:1 step:364 gid:1045 user:rule:builtin = success 
                                              
Debug:
  rid:1 step:364 gid:1045 user:subgoal = 1048 
                                         
Debug:
  rid:1 step:364 gid:1048 user:newgoal = X8 = «expanded_g» 
                                         
Debug: }}} ->  (0.001s)
Debug: run 365 {{{  
            
Debug:
  rid:1 step:365 gid:1048 user:curgoal = = 
                                         X8 = «expanded_g» 
                                         
Debug:
  rid:1 step:365 gid:1048 user:rule = eq 
                                      
Debug:
  rid:1 step:365 gid:1048 user:rule:builtin:name = = 
                                                   
Debug:
  rid:1 step:365 gid:0 user:assign = X8 := «expanded_g» 
                                     
Debug:
  rid:1 step:365 gid:1048 user:rule:eq = success 
                                         
Debug: }}} ->  (0.000s)
Debug: run 366 {{{  
            
Debug:
  rid:1 step:366 gid:1046 user:curgoal = ! 
                                         ! 
                                         
Debug: }}} ->  (0.000s)
Debug:
  rid:1 step:366 gid:1046 user:rule = cut 
                                      
Debug:
  rid:1 step:366 gid:1046 user:rule:cut = success 
                                          
Debug: run 367 {{{  
            
Debug:
  rid:1 step:367 gid:1047 user:curgoal = std.do! 
                                         std.do!
                                          [X4 =
                                            pi c0 \
                                             pi c1 \
                                              pi c2 \
                                               pi c3 \
                                                pi c4 \
                                                 pi c5 \
                                                  pi c6 \
                                                   pi c7 \
                                                    pi c8 \
                                                     pi c9 \
                                                      pi c10 \
                                                       expand
                                                        (app
                                                          [global (const «g»), 
                                                           c0, c3, c5, c7 | c9]) 
                                                        (app
                                                          [global
                                                            (const
                                                              «expanded_g»), 
                                                           c1, c2, c4, c6, c8 | c10])
                                                        :-
                                                        [!, 
                                                         std.map c9 expand c10, 
                                                         expand c7 c8, 
                                                         expand c5 c6, 
                                                         expand c3 c4, 
                                                         expand c0 
                                                          (app
                                                            [global
                                                              (indc «Build_r»), 
                                                             c1, c2])]] 
                                         
Debug:
  rid:1 step:367 gid:1047 user:rule = backchain 
                                      
Debug:
  rid:1 step:367 gid:1047 user:rule:backchain:candidates = File "builtin_stdlib.elpi", line 279, column 0, characters 9290-9316: 
                                                           
Debug: }}} ->  (0.000s)
Debug: select 271 {{{  
               
Debug:
  rid:1 step:367 gid:1047 user:rule:backchain:try = File "builtin_stdlib.elpi", line 279, column 0, characters 9290-9316: 
                                                    (std.do! [A0 | A1]) :- A0, 
                                                     (!), (std.do! A1). 
                                                    
Debug:
  rid:1 step:367 gid:0 user:assign = A0 := X4 =
                                            pi c0 \
                                             pi c1 \
                                              pi c2 \
                                               pi c3 \
                                                pi c4 \
                                                 pi c5 \
                                                  pi c6 \
                                                   pi c7 \
                                                    pi c8 \
                                                     pi c9 \
                                                      pi c10 \
                                                       expand
                                                        (app
                                                          [global (const «g»), 
                                                           c0, c3, c5, c7 | c9]) 
                                                        (app
                                                          [global
                                                            (const
                                                              «expanded_g»), 
                                                           c1, c2, c4, c6, c8 | c10])
                                                        :-
                                                        [!, 
                                                         std.map c9 expand c10, 
                                                         expand c7 c8, 
                                                         expand c5 c6, 
                                                         expand c3 c4, 
                                                         expand c0 
                                                          (app
                                                            [global
                                                              (indc «Build_r»), 
                                                             c1, c2])] 
                                     
Debug:
  rid:1 step:367 gid:0 user:assign = A1 := [] 
                                     
Debug:
  rid:1 step:367 gid:1047 user:subgoal = 1049 
                                         
Debug:
  rid:1 step:367 gid:1049 user:newgoal = X4 =
                                          pi c0 \
                                           pi c1 \
                                            pi c2 \
                                             pi c3 \
                                              pi c4 \
                                               pi c5 \
                                                pi c6 \
                                                 pi c7 \
                                                  pi c8 \
                                                   pi c9 \
                                                    pi c10 \
                                                     expand
                                                      (app
                                                        [global (const «g»), 
                                                         c0, c3, c5, c7 | c9]) 
                                                      (app
                                                        [global
                                                          (const «expanded_g»), 
                                                         c1, c2, c4, c6, c8 | c10])
                                                      :-
                                                      [!, 
                                                       std.map c9 expand c10, 
                                                       expand c7 c8, 
                                                       expand c5 c6, 
                                                       expand c3 c4, 
                                                       expand c0 
                                                        (app
                                                          [global
                                                            (indc «Build_r»), 
                                                           c1, c2])] 
                                         
Debug:
  rid:1 step:367 gid:1049 user:subgoal = 1050 
                                         
Debug:
  rid:1 step:367 gid:1050 user:newgoal = ! 
                                         
Debug:
  rid:1 step:367 gid:1049 user:subgoal = 1051 
                                         
Debug:
  rid:1 step:367 gid:1051 user:newgoal = std.do! [] 
                                         
Debug:
  rid:1 step:367 gid:1049 user:rule:backchain = success 
                                                
Debug: }}} ->  (0.001s)
Debug: run 368 {{{  
            
Debug:
  rid:1 step:368 gid:1049 user:curgoal = = 
                                         X4 =
                                          pi c0 \
                                           pi c1 \
                                            pi c2 \
                                             pi c3 \
                                              pi c4 \
                                               pi c5 \
                                                pi c6 \
                                                 pi c7 \
                                                  pi c8 \
                                                   pi c9 \
                                                    pi c10 \
                                                     expand
                                                      (app
                                                        [global (const «g»), 
                                                         c0, c3, c5, c7 | c9]) 
                                                      (app
                                                        [global
                                                          (const «expanded_g»), 
                                                         c1, c2, c4, c6, c8 | c10])
                                                      :-
                                                      [!, 
                                                       std.map c9 expand c10, 
                                                       expand c7 c8, 
                                                       expand c5 c6, 
                                                       expand c3 c4, 
                                                       expand c0 
                                                        (app
                                                          [global
                                                            (indc «Build_r»), 
                                                           c1, c2])] 
                                         
Debug:
  rid:1 step:368 gid:1049 user:rule = eq 
                                      
Debug:
  rid:1 step:368 gid:1049 user:rule:builtin:name = = 
                                                   
Debug:
  rid:1 step:368 gid:0 user:assign = X4 := pi c0 \
                                            pi c1 \
                                             pi c2 \
                                              pi c3 \
                                               pi c4 \
                                                pi c5 \
                                                 pi c6 \
                                                  pi c7 \
                                                   pi c8 \
                                                    pi c9 \
                                                     pi c10 \
                                                      expand
                                                       (app
                                                         [global (const «g»), 
                                                          c0, c3, c5, c7 | c9]) 
                                                       (app
                                                         [global
                                                           (const
                                                             «expanded_g»), 
                                                          c1, c2, c4, c6, c8 | c10])
                                                       :-
                                                       [!, 
                                                        std.map c9 expand c10, 
                                                        expand c7 c8, 
                                                        expand c5 c6, 
                                                        expand c3 c4, 
                                                        expand c0 
                                                         (app
                                                           [global
                                                             (indc «Build_r»), 
                                                            c1, c2])] 
                                     
Debug:
  rid:1 step:368 gid:1049 user:rule:eq = success 
                                         
Debug: }}} ->  (0.009s)
Debug: run 369 {{{  
            
Debug:
  rid:1 step:369 gid:1050 user:curgoal = ! 
                                         ! 
                                         
Debug: }}} ->  (0.000s)
Debug:
  rid:1 step:369 gid:1050 user:rule = cut 
                                      
Debug:
  rid:1 step:369 gid:1050 user:rule:cut = success 
                                          
Debug: run 370 {{{  
            
Debug:
  rid:1 step:370 gid:1051 user:curgoal = std.do! 
                                         std.do! [] 
                                         
Debug:
  rid:1 step:370 gid:1051 user:rule = backchain 
                                      
Debug:
  rid:1 step:370 gid:1051 user:rule:backchain:candidates = File "builtin_stdlib.elpi", line 278, column 0, characters 9282-9288: 
                                                           
Debug: }}} ->  (0.000s)
Debug: select 272 {{{  
               
Debug:
  rid:1 step:370 gid:1051 user:rule:backchain:try = File "builtin_stdlib.elpi", line 278, column 0, characters 9282-9288: 
                                                    (std.do! []) :- . 
                                                    
Debug:
  rid:1 step:370 gid:1051 user:rule:backchain = success 
                                                
Debug: }}} ->  (0.000s)
Debug: run 371 {{{  
            
Debug:
  rid:1 step:371 gid:692 user:curgoal = coq.elpi.accumulate 
                                        coq.elpi.accumulate _ record.expand.db 
                                         (clause _ (before expand:start) 
                                           (pi c0 \
                                             pi c1 \
                                              pi c2 \
                                               pi c3 \
                                                pi c4 \
                                                 pi c5 \
                                                  pi c6 \
                                                   pi c7 \
                                                    pi c8 \
                                                     pi c9 \
                                                      pi c10 \
                                                       expand
                                                        (app
                                                          [global (const «g»), 
                                                           c0, c3, c5, c7 | c9]) 
                                                        (app
                                                          [global
                                                            (const
                                                              «expanded_g»), 
                                                           c1, c2, c4, c6, c8 | c10])
                                                        :-
                                                        [!, 
                                                         std.map c9 expand c10, 
                                                         expand c7 c8, 
                                                         expand c5 c6, 
                                                         expand c3 c4, 
                                                         expand c0 
                                                          (app
                                                            [global
                                                              (indc «Build_r»), 
                                                             c1, c2])])) 
                                        
Debug:
  rid:1 step:371 gid:692 user:rule = backchain 
                                     
Debug:
  rid:1 step:371 gid:692 user:rule:backchain:candidates = File "coq-builtin.elpi", line 1787, column 0, characters 71769-71833: 
                                                          
Debug: }}} ->  (0.000s)
Debug: select 273 {{{  
               
Debug:
  rid:1 step:371 gid:692 user:rule:backchain:try = File "coq-builtin.elpi", line 1787, column 0, characters 71769-71833: 
                                                   (coq.elpi.accumulate A0 A1 
                                                     A2) :- (coq.elpi.accumulate-clauses
                                                              A0 A1 [
                                                              A2]). 
                                                   
Debug:
  rid:1 step:371 gid:0 user:assign = A1 := record.expand.db 
                                     
Debug:
  rid:1 step:371 gid:0 user:assign = A2 := clause _ (before expand:start) 
                                            (pi c0 \
                                              pi c1 \
                                               pi c2 \
                                                pi c3 \
                                                 pi c4 \
                                                  pi c5 \
                                                   pi c6 \
                                                    pi c7 \
                                                     pi c8 \
                                                      pi c9 \
                                                       pi c10 \
                                                        expand
                                                         (app
                                                           [global
                                                             (const «g»), 
                                                            c0, c3, c5, c7 | c9]) 
                                                         (app
                                                           [global
                                                             (const
                                                               «expanded_g»), 
                                                            c1, c2, c4, c6, c8 | c10])
                                                         :-
                                                         [!, 
                                                          std.map c9 expand c10, 
                                                          expand c7 c8, 
                                                          expand c5 c6, 
                                                          expand c3 c4, 
                                                          expand c0 
                                                           (app
                                                             [global
                                                               (indc
                                                                 «Build_r»), 
                                                              c1, c2])]) 
                                     
Debug:
  rid:1 step:371 gid:692 user:subgoal = 1052 
                                        
Debug:
  rid:1 step:371 gid:1052 user:newgoal = coq.elpi.accumulate-clauses X213 
                                          record.expand.db 
                                          [clause _ (before expand:start) 
                                            (pi c0 \
                                              pi c1 \
                                               pi c2 \
                                                pi c3 \
                                                 pi c4 \
                                                  pi c5 \
                                                   pi c6 \
                                                    pi c7 \
                                                     pi c8 \
                                                      pi c9 \
                                                       pi c10 \
                                                        expand
                                                         (app
                                                           [global
                                                             (const «g»), 
                                                            c0, c3, c5, c7 | c9]) 
                                                         (app
                                                           [global
                                                             (const
                                                               «expanded_g»), 
                                                            c1, c2, c4, c6, c8 | c10])
                                                         :-
                                                         [!, 
                                                          std.map c9 expand c10, 
                                                          expand c7 c8, 
                                                          expand c5 c6, 
                                                          expand c3 c4, 
                                                          expand c0 
                                                           (app
                                                             [global
                                                               (indc
                                                                 «Build_r»), 
                                                              c1, c2])])] 
                                         
Debug:
  rid:1 step:371 gid:1052 user:rule:backchain = success 
                                                
Debug: }}} ->  (0.000s)
Debug: run 372 {{{  
            
Debug:
  rid:1 step:372 gid:1052 user:curgoal = coq.elpi.accumulate-clauses 
                                         coq.elpi.accumulate-clauses X213 
                                          record.expand.db 
                                          [clause _ (before expand:start) 
                                            (pi c0 \
                                              pi c1 \
                                               pi c2 \
                                                pi c3 \
                                                 pi c4 \
                                                  pi c5 \
                                                   pi c6 \
                                                    pi c7 \
                                                     pi c8 \
                                                      pi c9 \
                                                       pi c10 \
                                                        expand
                                                         (app
                                                           [global
                                                             (const «g»), 
                                                            c0, c3, c5, c7 | c9]) 
                                                         (app
                                                           [global
                                                             (const
                                                               «expanded_g»), 
                                                            c1, c2, c4, c6, c8 | c10])
                                                         :-
                                                         [!, 
                                                          std.map c9 expand c10, 
                                                          expand c7 c8, 
                                                          expand c5 c6, 
                                                          expand c3 c4, 
                                                          expand c0 
                                                           (app
                                                             [global
                                                               (indc
                                                                 «Build_r»), 
                                                              c1, c2])])] 
                                         
Debug:
  rid:1 step:372 gid:1052 user:rule = builtin 
                                      
Debug:
  rid:1 step:372 gid:1052 user:rule:builtin:name = coq.elpi.accumulate-clauses 
                                                   
Debug:
  rid:1 step:372 gid:1052 user:rule:builtin = success 
                                              
Debug: }}} ->  (0.000s)
expanded_g =
fun T : Type =>
let X := T in
fun (op : T -> X -> bool) (l s : list T) (h : bool) =>
(forall (x : T) (y : X), op x y = false) /\ expanded_f true T op l s = h
     : forall T : Type, (T -> T -> bool) -> list T -> list T -> bool -> Prop

Arguments expanded_g T%type_scope op%function_scope 
  (l s)%list_scope h%bool_scope
The argument  fun x : ?e => x + ?e1 was closed under 1 binders
old replacement: fun (x : ?e) (y : ?e0) => x - y with 
fun (y : ?e1) (x : ?e2) => y + x
new replacement: fun y : ?e0 => x - y with fun y : ?e1 => y + x
File "./tests/perf_calls.v", line 11, characters 2-3:
Warning:
File "./tests/perf_calls.v", line 11, characters 2-3
N is linear: name it _N (discard) or N_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/perf_calls.v", line 13, characters 9-11:
Warning:
File "./tests/perf_calls.v", line 13, characters 9-11
GR is linear: name it _GR (discard) or GR_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/perf_calls.v", line 13, characters 7-8:
Warning:
File "./tests/perf_calls.v", line 13, characters 7-8
N is linear: name it _N (discard) or N_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
Query assignments:
  I = const «imp»
X2.imp : forall (T : Type) (x : T), x = x -> Prop

X2.imp is not universe polymorphic
Arguments X2.imp T%type_scope x _
Expands to: Constant elpi.tests.test_API_arguments.X2.imp
Query assignments:
  %arg1 = const «foo»
foo 3
     : nat
Query assignments:
  %arg1 = const «f»
  %arg2 = const «f»
  %arg3 = const «f»
  %arg4 = const «f»
  %arg5 = const «f»
f : forall [S : Type], S -> Prop

f is not universe polymorphic
Arguments f [S]%type_scope _
  (where some original arguments have been renamed)
f is transparent
Expands to: Constant elpi.tests.test_API_arguments.f
f (S:=bool * bool)
     : bool * bool -> Prop
Query assignments:
  %arg1 = const «f»
f : forall [S : Type], S -> Prop

f is not universe polymorphic
Arguments f [S]%type_scope / _
  (where some original arguments have been renamed)
The reduction tactics unfold f when applied to 1 argument
f is transparent
Expands to: Constant elpi.tests.test_API_arguments.f
f (S:=bool * bool)
     : bool * bool -> Prop
     = fun x : bool => x = x
     : bool -> Prop
Query assignments:
  GR = const «myi»
Query assignments:
  GR = const «myi»
myi : Reflexive R
     : Reflexive R
Query assignments:
  GR = const «myi»
Query assignments:
  L = [tc-instance (const «relation_equivalence_rewrite_relation») 0, 
 tc-instance (const «iff_rewrite_relation») 2, 
 tc-instance (const «impl_rewrite_relation») 3, 
 tc-instance (const «inverse_impl_rewrite_relation») 3, 
 tc-instance (const «Equivalence_PER») 10, 
 tc-instance (const «relation_equivalence_equivalence») 0, 
 tc-instance (const «predicate_equivalence_equivalence») 0, 
 tc-instance (const «iff_equivalence») 0, 
 tc-instance (const «eq_equivalence») 10, 
 tc-instance (const «relation_implication_preorder») 0, 
 tc-instance (const «predicate_implication_preorder») 0, 
 tc-instance (const «Equivalence_PreOrder») 10, 
 tc-instance (const «Bool.Decidable_eq_bool») 0, 
 tc-instance (const «DecidableClass.Decidable_not») 1, 
 tc-instance (const «subrelation_partial_order») 0, 
 tc-instance (const «iff_Transitive») 0, 
 tc-instance (const «impl_Transitive») 0, 
 tc-instance (const «eq_Transitive») 0, 
 tc-instance (const «Equivalence_Transitive») 1, 
 tc-instance (const «StrictOrder_Transitive») 1, 
 tc-instance (const «PreOrder_Transitive») 2, 
 tc-instance (const «PER_Transitive») 3, 
 tc-instance (const «StrictOrder_Irreflexive») 1, 
 tc-instance (const «StrictOrder_Asymmetric») 1, 
 tc-instance (const «iff_Reflexive») 0, 
 tc-instance (const «impl_Reflexive») 0, 
 tc-instance (const «eq_Reflexive») 0, 
 tc-instance (const «Equivalence_Reflexive») 1, 
 tc-instance (const «PreOrder_Reflexive») 2, 
 tc-instance (const «myi») 10, 
 tc-instance (const «partial_order_antisym») 2, 
 tc-instance (const «iff_Symmetric») 0, 
 tc-instance (const «neq_Symmetric») 0, 
 tc-instance (const «eq_Symmetric») 0, 
 tc-instance (const «Equivalence_Symmetric») 1, 
 tc-instance (const «PER_Symmetric») 3]
Query assignments:
  GR = indt «RewriteRelation»
  L = [tc-instance (const «relation_equivalence_rewrite_relation») 0, 
 tc-instance (const «iff_rewrite_relation») 2, 
 tc-instance (const «impl_rewrite_relation») 3, 
 tc-instance (const «inverse_impl_rewrite_relation») 3]
Query assignments:
  GR = indt «RewriteRelation»
Query assignments:
  GR = indt «True»
Query assignments:
  Check = c0 \
sigma c1 \
 c0 = expected c1 ,
  std.mem
   [tc-instance (const «hint_c») 0, tc-instance (const «instance_c») 0, 
    tc-instance (const «instance_g») 4, tc-instance (const «hint_g») 5] 
   c1
  Exp = [expected (tc-instance (const «hint_c») 0), 
 expected (tc-instance (const «instance_c») 0), 
 expected (tc-instance (const «instance_g») 4), 
 expected (tc-instance (const «hint_g») 5)]
  L = [tc-instance (const «hint_c») 0, tc-instance (const «instance_c») 0, 
 tc-instance (const «instance_g») 4, tc-instance (const «hint_g») 5]
Query assignments:
  GR = const «myc»
eq_op myc t t
     : bool
Query assignments:
  L = [cs-instance (const «carrier») (cs-gref (const «W»)) (const «myc»), 
 cs-instance (const «eq_op») (cs-gref (const «Z»)) (const «myc»)]
Query assignments:
  I = «eq»
  P1 = «carrier»
  P2 = «eq_op»
Query assignments:
  GR = const «myc1»
eq_op myc1 t1 t1
     : bool
Query assignments:
  P = const «eq_op»
Query assignments:
  W = const «W»
[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»
Query assignments:
  P = const «eq_op»
  W = indt «nat»
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:
  L = [coercion (const «c1t») 0 (const «C1») sortclass, 
 coercion (const «c1f») 0 (const «C1») funclass, 
 coercion (const «c12») 0 (const «C1») (grefclass (const «C2»)), 
 coercion (const «reverse_coercion») 3 (const «ReverseCoercionSource») 
  (grefclass (const «ReverseCoercionTarget»))]
Query assignments:
  %arg1 = 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
File "./tests/test_API_TC_CS.v", line 42, characters 26-27:
Warning:
File "./tests/test_API_TC_CS.v", line 42, characters 26-27
L is linear: name it _L (discard) or L_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_API_TC_CS.v", line 42, characters 0-30:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (equiv_rewrite_relation R)
[elpi.TC.hints,elpi,default]
File "./tests/test_API_TC_CS.v", line 42, characters 0-30:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @flip_StrictOrder)
[elpi.TC.hints,elpi,default]
File "./tests/test_API_TC_CS.v", line 42, characters 0-30:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @flip_PreOrder)
[elpi.TC.hints,elpi,default]
File "./tests/test_API_TC_CS.v", line 42, characters 0-30:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @PartialOrder_inverse)
[elpi.TC.hints,elpi,default]
File "./tests/test_API_TC_CS.v", line 42, characters 0-30:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @subrelation_symmetric)
[elpi.TC.hints,elpi,default]
File "./tests/test_API_TC_CS.v", line 42, characters 0-30:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @flip_Transitive)
[elpi.TC.hints,elpi,default]
File "./tests/test_API_TC_CS.v", line 42, characters 0-30:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @flip_Irreflexive)
[elpi.TC.hints,elpi,default]
File "./tests/test_API_TC_CS.v", line 42, characters 0-30:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @complement_Irreflexive)
[elpi.TC.hints,elpi,default]
File "./tests/test_API_TC_CS.v", line 42, characters 0-30:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @flip_Asymmetric)
[elpi.TC.hints,elpi,default]
File "./tests/test_API_TC_CS.v", line 42, characters 0-30:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @irreflexivity)
[elpi.TC.hints,elpi,default]
File "./tests/test_API_TC_CS.v", line 42, characters 0-30:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (apply flip_Reflexive)
[elpi.TC.hints,elpi,default]
File "./tests/test_API_TC_CS.v", line 42, characters 0-30:
Warning:
There is an hint extern in the typeclass db: 
(*external*) unconvertible
[elpi.TC.hints,elpi,default]
File "./tests/test_API_TC_CS.v", line 42, characters 0-30:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @flip_Antisymmetric)
[elpi.TC.hints,elpi,default]
File "./tests/test_API_TC_CS.v", line 42, characters 0-30:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @flip_Symmetric)
[elpi.TC.hints,elpi,default]
File "./tests/test_API_TC_CS.v", line 42, characters 0-30:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @complement_Symmetric)
[elpi.TC.hints,elpi,default]
File "./tests/test_API_TC_CS.v", line 43, characters 66-67:
Warning:
File "./tests/test_API_TC_CS.v", line 43, characters 66-67
L is linear: name it _L (discard) or L_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_API_TC_CS.v", line 43, characters 0-70:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (equiv_rewrite_relation R)
[elpi.TC.hints,elpi,default]
File "./tests/test_API_TC_CS.v", line 102, characters 27-28:
Warning:
File "./tests/test_API_TC_CS.v", line 102, characters 27-28
L is linear: name it _L (discard) or L_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_API_TC_CS.v", line 159, characters 32-33:
Warning:
File "./tests/test_API_TC_CS.v", line 159, characters 32-33
L is linear: name it _L (discard) or L_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
Coq version: 8.20.1 = 8 . 20 . 1
Query assignments:
  MA = 8
  MI = 20
  P = 1
  V = 8.20.1
hello world
A
B
Query assignments:
  GR = «nat»
Query assignments:
  GR = «Nat.add»
  MP = «Coq.Init.Datatypes»
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: 
Query assignments:
  X = «elpi.tests.test_API.1»
Universe constraints:
UNIVERSES:
 {elpi.tests.test_API.1} |= 
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 
WEAK CONSTRAINTS:
 

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:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 
WEAK CONSTRAINTS:
 

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:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 
WEAK CONSTRAINTS:
 

Query assignments:
  X = typ «elpi.tests.test_API.6»
  Y = typ «elpi.tests.test_API.7»
  Z = typ «elpi.tests.test_API.8»
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:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 
WEAK CONSTRAINTS:
 

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:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 
WEAK CONSTRAINTS:
 

[foo (const «X»), foo (indt «nat»), foo (indt «bool»)]
[foo (indt «nat»), foo (indt «bool»)]
[]
[foo (indt «nat»)]
hello [int 1, int 2, trm (global (indt «nat»)), str x]
coq.pp.box (coq.pp.hv 2) 
 [coq.pp.str Module, coq.pp.spc, coq.pp.str Foo, coq.pp.spc, coq.pp.str :=, 
  coq.pp.brk 1 0, coq.pp.str body, coq.pp.spc, coq.pp.str End Foo.]
Module
  Foo
  :=
  body
  End Foo.
fix foo (x : ?e3) (y : ?e4) {struct x} : ?e2 :=
  match x as _elpi_renamed_x_3 return ?e6 with
  | true => S (S (S O))
  | false => y
  end
fix foo x y {struct x} := if x as _elpi_renamed_x_3 then 3 else y
File "./tests/test_API.v", line 73, characters 37-39:
Warning:
File "./tests/test_API.v", line 73, characters 37-39
MP is linear: name it _MP (discard) or MP_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_API.v", line 81, characters 54-55:
Warning:
File "./tests/test_API.v", line 81, characters 54-55
A is linear: name it _A (discard) or A_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_API.v", line 82, characters 56-58:
Warning:
File "./tests/test_API.v", line 82, characters 56-58
MP is linear: name it _MP (discard) or MP_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_API.v", line 91, characters 29-30:
Warning:
File "./tests/test_API.v", line 91, characters 29-30
X is linear: name it _X (discard) or X_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_API.v", line 92, characters 29-30:
Warning:
File "./tests/test_API.v", line 92, characters 29-30
X is linear: name it _X (discard) or X_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_API.v", line 92, characters 31-32:
Warning:
File "./tests/test_API.v", line 92, characters 31-32
Y is linear: name it _Y (discard) or Y_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_API.v", line 93, characters 28-29:
Warning:
File "./tests/test_API.v", line 93, characters 28-29
X is linear: name it _X (discard) or X_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_API.v", line 93, characters 30-31:
Warning:
File "./tests/test_API.v", line 93, characters 30-31
Y is linear: name it _Y (discard) or Y_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_API.v", line 94, characters 36-37:
Warning:
File "./tests/test_API.v", line 94, characters 36-37
X is linear: name it _X (discard) or X_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_API.v", line 94, characters 38-39:
Warning:
File "./tests/test_API.v", line 94, characters 38-39
Y is linear: name it _Y (discard) or Y_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_API.v", line 94, characters 40-41:
Warning:
File "./tests/test_API.v", line 94, characters 40-41
Z is linear: name it _Z (discard) or Z_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_API.v", line 95, characters 29-30:
Warning:
File "./tests/test_API.v", line 95, characters 29-30
X is linear: name it _X (discard) or X_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_API.v", line 95, characters 31-32:
Warning:
File "./tests/test_API.v", line 95, characters 31-32
Y is linear: name it _Y (discard) or Y_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
eq_refl : d = 3
     : d = 3
eq_refl : e = 4
     : e = 4
foo = fun a b c : nat => a + b + c + d + e
     : nat -> nat -> nat -> nat

Arguments foo a%nat_scope [b]%nat_scope {c}%nat_scope
Query assignments:
  %arg1 = const «foo»
Goal: 
[decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»))] 
|- X0 c0 c1 : 
app
 [global (indt «eq»), global (indt «nat»), 
  app
   [global (const «Nat.add»), c0, 
    app [global (indc «S»), global (indc «O»)]], c1]
(I, 0)
conj : forall [A B : Prop], A -> B -> A /\ B

conj is not universe polymorphic
Arguments conj [A B]%type_scope _ _
Expands to: Constructor Coq.Init.Logic.conj
(ex_intro (fun t : Prop => True /\ True /\ t) True (conj I (conj I I)))
[int 1, str x, str a b, 
 trm
  (app
    [global (indt «eq»), X0, 
     app [global (indc «S»), global (indc «O»)], global (indc «O»)])]
Using H ?p of type Q
Using H ?p of type Q
Using p of type P
[trm c0, trm c3, trm (app [c2, c3])]
found P
found P /\ P
Goal: [decl c0 `x` (global (indt «nat»))] |- X0 c0 : 
app
 [global (indt «eq»), global (indt «nat»), 
  app
   [global (const «Nat.add»), c0, 
    app [global (indc «S»), global (indc «O»)]], global (indc «O»)]
Proof state:
 {c0} : decl c0 `x` (global (indt «nat»))
   ?- evar (X1 c0) 
       (app
         [global (indt «eq»), global (indt «nat»), 
          app
           [global (const «Nat.add»), c0, 
            app [global (indc «S»), global (indc «O»)]], 
          global (indc «O»)]) (X0 c0)  /* suspended on X1, X0 */
EVARS:
 ?X57==[x |- x + 1 = 0] (goal evar) {?Goal}
 ?X56==[ |- => fun x : nat => ?Goal] (goal evar)
 ?X55==[x |- => nat] (parameter A of eq)
 ?X54==[ |- => nat] (type of x)

SHELF:||
FUTURE GOALS STACK:
 ||

Rocq-Elpi mapping:
RAW:
?X57 <-> c0 \ X1 c0
ELAB:
?X57 <-> X0

#goals = 2
[nabla c0 \
  nabla c1 \
   seal
    (goal [decl c1 `Q` (sort prop), decl c0 `P` (sort prop)] (X0 c0 c1) c0 
      (X1 c0 c1) []), 
 nabla c0 \
  nabla c1 \
   seal
    (goal [decl c1 `Q` (sort prop), decl c0 `P` (sort prop)] (X2 c0 c1) c1 
      (X3 c0 c1) [])]
(fun (P Q : Prop) (p : P) (q : Q) => conj ?Goal (conj ?Goal0 ?Goal1))
(fun (P Q : Prop) (p : P) (q : Q) => conj ?Goal0 (conj ?Goal ?Goal0))
foo = 46
     : nat
bar = (false :: nil)%list
     : list bool
baz = (46%nat :: nil)%list
     : list nat
File "./examples/tutorial_coq_elpi_tactic.v", line 632, characters 0-22:
Warning: x is already taken, Elpi will make a name up [lib,elpi,default]
File "./examples/tutorial_coq_elpi_tactic.v", line 742, characters 32-33:
Warning:
File "./examples/tutorial_coq_elpi_tactic.v", line 742, characters 32-33
A is linear: name it _A (discard) or A_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_coq_elpi_tactic.v", line 742, characters 40-41:
Warning:
File "./examples/tutorial_coq_elpi_tactic.v", line 742, characters 40-41
B is linear: name it _B (discard) or B_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_coq_elpi_tactic.v", line 742, characters 14-17:
Warning:
File "./examples/tutorial_coq_elpi_tactic.v", line 742, characters 14-17
Ctx is linear: name it _Ctx (discard) or Ctx_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_coq_elpi_tactic.v", line 843, characters 44-46:
Warning:
File "./examples/tutorial_coq_elpi_tactic.v", line 843, characters 44-46
G1 is linear: name it _G1 (discard) or G1_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./examples/tutorial_coq_elpi_tactic.v", line 844, characters 44-46:
Warning:
File "./examples/tutorial_coq_elpi_tactic.v", line 844, characters 44-46
G2 is linear: name it _G2 (discard) or G2_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
Query assignments:
  E = fun `n` (global (indt «nat»)) c0 \
 fun `t` (app [global (const «T2»), c0]) c1 \
  fun `x` 
   (app [global (const «f3»), c0, app [global (const «h»), c0, c1]]) c2 \
   app
    [global (const «g3»), c0, app [global (const «h»), c0, c1], 
     app
      [global (indc «S»), 
       app
        [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]]
  TY = prod `n` (global (indt «nat»)) c0 \
 prod `t` (app [global (const «T2»), c0]) c1 \
  prod `x` 
   (app [global (const «f3»), c0, app [global (const «h»), c0, c1]]) c2 \
   global (indt «nat»)
  X1_ = X0
Universe constraints:
UNIVERSES:
 {elpi.tests.test_API_elaborate.13 elpi.tests.test_API_elaborate.10
  elpi.tests.test_API_elaborate.9} |=
   elpi.tests.test_API_elaborate.13 < elpi.tests.test_API_elaborate.9
   Set <= elpi.tests.test_API_elaborate.10
   Set <= elpi.tests.test_API_elaborate.13
   T2.u0 <= elpi.tests.test_API_elaborate.13
   f3.u0 <= elpi.tests.test_API_elaborate.13
ALGEBRAIC UNIVERSES:
 {elpi.tests.test_API_elaborate.10}
FLEXIBLE UNIVERSES:
 elpi.tests.test_API_elaborate.10
SORTS:
 α4 := Type
 α5 := Type
WEAK CONSTRAINTS:
 

Query assignments:
  E = app
 [global (const «bar»), 
  app
   [global (indc «S»), 
    app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]], 
  global (const «xxx»)]
  TY = prop
  X2_ = X0
  X3_ = X1
Query assignments:
  E = app
 [global (const «op»), global (const «c»), 
  app
   [global (indc «S»), 
    app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]]
  TY = app [global (const «field»), global (const «c»)]
  X4_ = X0
Universe constraints:
UNIVERSES:
 {elpi.tests.test_API_elaborate.19 elpi.tests.test_API_elaborate.18} |=
   elpi.tests.test_API_elaborate.19 < elpi.tests.test_API_elaborate.18
   s.u0 <= elpi.tests.test_API_elaborate.19
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 α11 := Type
WEAK CONSTRAINTS:
 

raw: 
parameter A explicit (global (const «T1»)) c0 \
 inductive ind1 tt 
  (parameter B explicit (sort (typ «elpi.tests.test_API_elaborate.20»)) 
    c1 \ arity (sort (typ «elpi.tests.test_API_elaborate.22»))) c1 \
  [constructor K1 
    (parameter B explicit (sort (typ «elpi.tests.test_API_elaborate.20»)) 
      c2 \ arity (prod `_` (app [c1, c2]) c3 \ app [c1, c2])), 
   constructor K2 
    (parameter B explicit (sort (typ «elpi.tests.test_API_elaborate.20»)) 
      c2 \
      arity (prod `_` (app [global (const «f1»), c0]) c3 \ app [c1, c2])), 
   constructor K3 
    (parameter B explicit (sort (typ «elpi.tests.test_API_elaborate.20»)) 
      c2 \
      arity (prod `a` (app [global (const «f1»), c0]) c3 \ app [c1, c2]))]
elab1: 
parameter A explicit (global (const «T1»)) c0 \
 inductive ind1 tt 
  (parameter B explicit (sort (typ «elpi.tests.test_API_elaborate.23»)) 
    c1 \ arity (sort (typ «elpi.tests.test_API_elaborate.25»))) c1 \
  [constructor K1 
    (parameter B explicit (sort (typ «elpi.tests.test_API_elaborate.28»)) 
      c2 \ arity (prod `_` (app [c1, c2]) c3 \ app [c1, c2])), 
   constructor K2 
    (parameter B explicit (sort (typ «elpi.tests.test_API_elaborate.30»)) 
      c2 \
      arity (prod `_` (app [global (const «f1»), c0]) c3 \ app [c1, c2])), 
   constructor K3 
    (parameter B explicit (sort (typ «elpi.tests.test_API_elaborate.33»)) 
      c2 \
      arity (prod `a` (app [global (const «f1»), c0]) c3 \ app [c1, c2]))]
elab2: 
parameter A explicit (global (const «T1»)) c0 \
 parameter B explicit (sort (typ «ind1.u0»)) c1 \
  inductive ind1 tt (arity (sort (typ «ind1.u1»))) c2 \
   [constructor K1 (arity (prod `_` c2 c3 \ c2)), 
    constructor K2 
     (arity (prod `_` (app [global (const «f1»), c0]) c3 \ c2)), 
    constructor K3 
     (arity (prod `a` (app [global (const «f1»), c0]) c3 \ c2))]
raw: 
parameter A explicit (global (const «T1»)) c0 \
 record ind2 (sort (typ «f1.u0»)) Build_ind2 
  (field [coercion off, canonical tt] fld1 (app [global (const «f1»), c0]) 
    c1 \
    field [coercion off, canonical tt] fld2 
     (app [global (indt «eq»), app [global (const «f1»), c0], c1, c1]) 
     c2 \ end-record)
elab1: 
parameter A explicit (global (const «T1»)) c0 \
 record ind2 (sort (typ «elpi.tests.test_API_elaborate.38»)) Build_ind2 
  (field [coercion off, canonical tt] fld1 (app [global (const «f1»), c0]) 
    c1 \
    field [coercion off, canonical tt] fld2 
     (app [global (indt «eq»), app [global (const «f1»), c0], c1, c1]) 
     c2 \ end-record)
elab2: 
parameter A explicit (global (const «T1»)) c0 \
 record ind2 (sort (typ «ind2.u0»)) Build_ind2 
  (field [coercion off, canonical tt] fld1 (app [global (const «f1»), c0]) 
    c1 \
    field [coercion off, canonical tt] fld2 
     (app [global (indt «eq»), app [global (const «f1»), c0], c1, c1]) 
     c2 \ end-record)
raw: 
record ind3 (sort (typ «elpi.tests.test_API_elaborate.41»)) Build_ind3 
 (field [coercion reversible, canonical tt] fld3 
   (sort (typ «elpi.tests.test_API_elaborate.40»)) c0 \
   field [coercion off, canonical tt] fld4 
    (prod `x` c0 c1 \ app [global (indt «eq»), c0, c1, c1]) c1 \ end-record)
elab1: 
record ind3 (sort (typ «elpi.tests.test_API_elaborate.42»)) Build_ind3 
 (field [coercion reversible, canonical tt] fld3 
   (sort (typ «elpi.tests.test_API_elaborate.43»)) c0 \
   field [coercion off, canonical tt] fld4 
    (prod `x` c0 c1 \ app [global (indt «eq»), c0, c1, c1]) c1 \ end-record)
elab2: 
record ind3 (sort (typ «ind3.u0»)) Build_ind3 
 (field [coercion reversible, canonical tt] fld3 (sort (typ «ind3.u1»)) 
   c0 \
   field [coercion off, canonical tt] fld4 
    (prod `x` c0 c1 \ app [global (indt «eq»), c0, c1, c1]) c1 \ end-record)
forall x : ind3, x -> Prop
     : Type
Query assignments:
  E = app
 [global (const «op»), global (const «c»), 
  app
   [global (indc «S»), 
    app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]]
  TY = app [global (const «field»), global (const «c»)]
Universe constraints:
UNIVERSES:
 {elpi.tests.test_API_elaborate.50 elpi.tests.test_API_elaborate.49} |=
   elpi.tests.test_API_elaborate.50 < elpi.tests.test_API_elaborate.49
   s.u0 <= elpi.tests.test_API_elaborate.50
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 α21 := Type
WEAK CONSTRAINTS:
 

unknown_gref
«elpi.tests.test_API_elaborate.52» «elpi.tests.test_API_elaborate.52»
File "./tests/test_API_elaborate.v", line 160, characters 19-20:
Warning:
File "./tests/test_API_elaborate.v", line 160, characters 19-20
Y is linear: name it _Y (discard) or Y_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_API_elaborate.v", line 170, characters 33-34:
Warning:
File "./tests/test_API_elaborate.v", line 170, characters 33-34
Y is linear: name it _Y (discard) or Y_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
Query q X0
Query r X0
Result r 1
normP :
forall {T : Type} {e : T} {op : T -> T -> T} {gamma : list T} {t1 t2 : lang},
(forall a b c : T, op a (op b c) = op (op a b) c) ->
(forall a : T, op e a = a) ->
(forall a : T, op a e = a) ->
norm t1 = norm t2 -> interp T e op gamma t1 = interp T e op gamma t2

normP is not universe polymorphic
Arguments normP {T}%type_scope {e} {op}%function_scope 
  {gamma}%list_scope {t1 t2} (p1 p2 p3)%function_scope 
  H
normP is transparent
Expands to: Constant elpi_examples_stdlib.example_reflexive_tactic.normP
(fun x y z t : Z =>
 normP Z.add_assoc Z.add_0_l Z.add_0_r
   (eq_refl
    <:
    norm (add (add (var 0) (var 1)) (add (add (var 2) zero) (var 3))) =
    norm (add (add (var 0) (add (var 1) (var 2))) (var 3))))
Debug: In environment
x, y, z, t : Z
Unable to unify "var 1" with
 "var 0".
Raised at Loc.raise in file "lib/loc.ml", line 101, characters 16-23
Called from Unification.unify_0_with_initial_metas in file "pretyping/unification.ml", line 1281, characters 13-48
Re-raised at Exninfo.iraise in file "clib/exninfo.ml", line 81, characters 4-38
Called from Unification.unify_with_eta in file "pretyping/unification.ml", line 1320, characters 14-48
Called from Unification.merge_instances in file "pretyping/unification.ml", line 1333, characters 23-64
Called from Unification.w_merge.w_merge_rec in file "pretyping/unification.ml", line 1554, characters 14-63
Called from Unification.w_merge in file "pretyping/unification.ml", lines 1608-1610, characters 4-35
Called from Unification.w_unify_core_0 in file "pretyping/unification.ml", line 1661, characters 12-65
Called from Clenv.clenv_unify in file "proofs/clenv.ml", line 298, characters 25-73
Called from Clenv.res_pf.(fun) in file "proofs/clenv.ml", line 771, characters 16-56
Called from Proofview.Goal.enter.f in file "engine/proofview.ml", line 1136, characters 40-46
Called from Proofview.Goal.enter.(fun) in file "engine/proofview.ml", line 1141, characters 10-34

Query assignments:
  CA = «a»
  CB = «b»
  CC = «c»
d : nat

d is not universe polymorphic
Expands to: Variable d
eq_refl : e2 = 3
     : e2 = 3
Query assignments:
  X = «x»
fx : nat -> nat
     : nat -> nat
opaque_3 : nat

opaque_3 is not universe polymorphic
opaque_3 is opaque
Expands to: Constant elpi.tests.test_API_section.opaque_3
foo : nat
     : nat
bar : bool -> nat
     : bool -> nat
Query assignments:
  L = [gref (indt «Empty_set»), gref (const «Empty_set_rect»), 
 gref (const «Empty_set_ind»), gref (const «Empty_set_rec»), 
 gref (const «Empty_set_sind»), gref (indt «unit»), 
 gref (const «unit_rect»), gref (const «unit_ind»), 
 gref (const «unit_rec»), gref (const «unit_sind»), 
 gref (indt «bool»), gref (const «bool_rect»), 
 gref (const «bool_ind»), gref (const «bool_rec»), 
 gref (const «bool_sind»), gref (const «andb»), gref (const «orb»), 
 gref (const «implb»), gref (const «xorb»), gref (const «negb»), 
 gref (const «andb_prop»), gref (const «andb_true_intro»), 
 gref (indt «eq_true»), gref (const «eq_true_rect»), 
 gref (const «eq_true_ind»), gref (const «eq_true_rec»), 
 gref (const «eq_true_sind»), gref (const «is_true»), 
 gref (const «eq_true_ind_r»), gref (const «eq_true_rec_r»), 
 gref (const «eq_true_rect_r»), gref (indt «BoolSpec»), 
 gref (const «BoolSpec_ind»), gref (const «BoolSpec_sind»), 
 gref (indt «nat»), gref (const «nat_rect»), gref (const «nat_ind»), 
 gref (const «nat_rec»), gref (const «nat_sind»), 
 gref (indt «option»), gref (const «option_rect»), 
 gref (const «option_ind»), gref (const «option_rec»), 
 gref (const «option_sind»), gref (const «option_map»), 
 gref (indt «sum»), gref (const «sum_rect»), gref (const «sum_ind»), 
 gref (const «sum_rec»), gref (const «sum_sind»), gref (indt «prod»), 
 gref (const «prod_rect»), gref (const «prod_ind»), 
 gref (const «prod_rec»), gref (const «prod_sind»), 
 gref (const «fst»), gref (const «snd»), 
 gref (const «surjective_pairing»), 
 gref (const «injective_projections»), gref (const «pair_equal_spec»), 
 gref (const «curry»), gref (const «uncurry»), 
 gref (const «rew_pair»), gref (indt «list»), 
 gref (const «list_rect»), gref (const «list_ind»), 
 gref (const «list_rec»), gref (const «list_sind»), 
 gref (const «length»), gref (const «app»), gref (indt «comparison»), 
 gref (const «comparison_rect»), gref (const «comparison_ind»), 
 gref (const «comparison_rec»), gref (const «comparison_sind»), 
 gref (const «comparison_eq_stable»), gref (const «CompOpp»), 
 gref (const «CompOpp_involutive»), gref (const «CompOpp_inj»), 
 gref (const «CompOpp_iff»), gref (indt «CompareSpec»), 
 gref (const «CompareSpec_ind»), gref (const «CompareSpec_sind»), 
 gref (indt «CompareSpecT»), gref (const «CompareSpecT_rect»), 
 gref (const «CompareSpecT_ind»), gref (const «CompareSpecT_rec»), 
 gref (const «CompareSpecT_sind»), gref (const «CompareSpec2Type»), 
 gref (const «CompSpec»), gref (const «CompSpecT»), 
 gref (const «CompSpec2Type»), gref (const «ID»), gref (const «id»), 
 gref (const «IDProp»), gref (const «idProp»)]
  MP = «Coq.Init.Datatypes»
elpi.tests.test_API_module.X.i
[elpi, tests, test_API_module, X, Y]
[elpi, tests, test_API_module, X, Y]
Query assignments:
  %arg1 = elpi.tests.test_API_module.X.i
  %arg2 = elpi.tests.test_API_module.X.i
  %arg3 = elpi.tests.test_API_module.X.Y.i
  %arg4 = [elpi, tests, test_API_module, X, Y]
  %arg5 = [elpi, tests, test_API_module, X, Y]
  L = [gref (indt «X.i»), gref (const «X.i_rect»), gref (const «X.i_ind»), 
 gref (const «X.i_rec»), gref (const «X.i_sind»), gref (const «X.d»), 
 submodule «elpi.tests.test_API_module.X.Y» 
  [gref (indt «X.Y.i»), gref (const «X.Y.i_rect»), 
   gref (const «X.Y.i_ind»), gref (const «X.Y.i_rec»), 
   gref (const «X.Y.i_sind»), gref (const «X.Y.d»)]]
  MP = «elpi.tests.test_API_module.X»
  XYi = «X.Y.i»
  XYr = «X.Y.i_rect»
  Xi = «X.i»
Query assignments:
  I = «Y.i»
  ID = j
  J = «Y.j»
  MP = «elpi.tests.test_API_module.Y»
  P = [elpi, tests, test_API_module, Y]
Query assignments:
  Mp_ta = «elpi.tests.test_API_module.TA»
Query assignments:
  GRy = EXN PRINTING: Not_found
  I = EXN PRINTING: Not_found
  L = [gref (const «A.z»), gref (const «A.i»)]
  MP = «elpi.tests.test_API_module.A»
  MP_TA = «elpi.tests.test_API_module.TA»
  X1_ = «A.i.u0»
  X2_ = «elpi.tests.test_API_module.11»
Universe constraints:
UNIVERSES:
 
ALGEBRAIC UNIVERSES:
 {elpi.tests.test_API_module.11 A.i.u0}
FLEXIBLE UNIVERSES:
 elpi.tests.test_API_module.11
 A.i.u0
SORTS:
 
WEAK CONSTRAINTS:
 

Module
A
 : TA
:= Struct
     Definition x
     Module B
     Definition z
     Inductive i1
     Definition i1_rect
     Definition i1_ind
     Definition i1_rec
     Definition i1_sind
     Definition i
   End
A.z
     : nat
A.i
     : Type
*** [ A.i : Type ]
Query assignments:
  A = «elpi.tests.test_API_module.a»
  MP_TA = «elpi.tests.test_API_module.TA»
  TF = «elpi.tests.test_API_module.TF»
Query assignments:
  %arg1 = «elpi.tests.test_API_module.a»
  %arg2 = const const EXN PRINTING: Not_found
  MP_TA = «elpi.tests.test_API_module.TA»
  MP_TF = «elpi.tests.test_API_module.TF»
Module
F
 : Funsig (a:TA) Funsig (b:TA) TF
:= Functor (a:TA) Functor (b:TA) Struct Definition w : nat. End
Module B : Sig Parameter w : nat. End := (F A A)
*** [ B.w : nat ]
Query assignments:
  MP_TA = «elpi.tests.test_API_module.TA»
Module Type TB = Funsig (A:TA) Sig  End
Query assignments:
  A = «elpi.tests.test_API_module.A»
Query assignments:
  %arg1 = «elpi.tests.test_API_module.A»
Module IA := Struct Definition z : nat. Definition i : Type. End
Query assignments:
  %arg1 = «elpi.tests.test_API_module.IA»
Query assignments:
  %arg1 = «elpi.tests.test_API_module.IA»
i
     : Type
Query assignments:
  %arg1 = «elpi.tests.test_API_module.TA»
Query assignments:
  %arg1 = «elpi.tests.test_API_module.TA»
Module Type ITA = Sig Parameter z : nat. Parameter i : Type. End
Query assignments:
  F = «elpi.tests.test_API_module.R.F»
  FT = «elpi.tests.test_API_module.R.FT»
  L = [submodule «elpi.tests.test_API_module.R.S» [gref (const «R.S.x»)], 
 module-type «elpi.tests.test_API_module.R.P1», 
 module-type «elpi.tests.test_API_module.R.P2», 
 «elpi.tests.test_API_module.R.F» module-functor
  [«elpi.tests.test_API_module.R.P1», «elpi.tests.test_API_module.R.P2»], 
 «elpi.tests.test_API_module.R.FT» module-type-functor
  [«elpi.tests.test_API_module.R.P2», «elpi.tests.test_API_module.R.P1»], 
 gref (const «R.a»)]
  P1 = «elpi.tests.test_API_module.R.P1»
  P2 = «elpi.tests.test_API_module.R.P2»
  R = «elpi.tests.test_API_module.R»
  S = «elpi.tests.test_API_module.R.S»
File "./tests/test_API_module.v", line 7, characters 69-70:
Warning:
File "./tests/test_API_module.v", line 7, characters 69-70
L is linear: name it _L (discard) or L_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_API_module.v", line 50, characters 26-28:
Warning:
File "./tests/test_API_module.v", line 50, characters 26-28
ID is linear: name it _ID (discard) or ID_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_API_module.v", line 49, characters 28-29:
Warning:
File "./tests/test_API_module.v", line 49, characters 28-29
P is linear: name it _P (discard) or P_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_API_module.v", line 77, characters 21-22:
Warning:
File "./tests/test_API_module.v", line 77, characters 21-22
L is linear: name it _L (discard) or L_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_API_module.v", line 67, characters 27-32:
Warning:
File "./tests/test_API_module.v", line 67, characters 27-32
MP_TA is linear: name it _MP_TA (discard) or MP_TA_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_API_module.v", line 102, characters 31-36:
Warning:
File "./tests/test_API_module.v", line 102, characters 31-36
MP_TA is linear: name it _MP_TA (discard) or MP_TA_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_API_module.v", line 101, characters 27-32:
Warning:
File "./tests/test_API_module.v", line 101, characters 27-32
MP_TF is linear: name it _MP_TF (discard) or MP_TF_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
«elpi.tests.test_API_notations.abbr»
Query assignments:
  A = «elpi.tests.test_API_notations.abbr»
  X1_ = X0
  X2_ = c0 \
X1 c0
  X3_ = c0 \
X2 c0
Syntactic constraints:
 {c0} : decl c0 `x` X0 ?- evar (X2 c0) (X3 c0) (X2 c0)  /* suspended on X2 */
 {c0} : decl c0 `x` X0
   ?- evar (X4 c0) (sort (typ «elpi.tests.test_API_notations.3»)) (X3 c0)  /* suspended on X4, X3 */
 {c0} : decl c0 `x` X0
   ?- evar (X1 c0) (sort (typ «elpi.tests.test_API_notations.2»)) (X1 c0)  /* suspended on X1 */
 evar (X0) (sort (typ «elpi.tests.test_API_notations.1»)) (X0)  /* suspended on X0 */
Universe constraints:
UNIVERSES:
 {elpi.tests.test_API_notations.3 elpi.tests.test_API_notations.2
  elpi.tests.test_API_notations.1} |= 
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 α1
 α2
 α3
WEAK CONSTRAINTS:
 

Notation abbr _elpi_ctx_entry_2_was_x_ _elpi_ctx_entry_1_ :=
  (_elpi_ctx_entry_2_was_x_ = _elpi_ctx_entry_2_was_x_)
Expands to: Notation elpi.tests.test_API_notations.abbr
4 = 4
     : Prop
Query assignments:
  X4_ = X0
  X5_ = c0 \
X1 c0
  X6_ = c0 \
X2 c0
Syntactic constraints:
 {c0} : decl c0 `x` X0 ?- evar (X2 c0) (X3 c0) (X2 c0)  /* suspended on X2 */
 {c0} : decl c0 `x` X0
   ?- evar (X4 c0) (sort (typ «elpi.tests.test_API_notations.6»)) (X3 c0)  /* suspended on X4, X3 */
 {c0} : decl c0 `x` X0
   ?- evar (X1 c0) (sort (typ «elpi.tests.test_API_notations.5»)) (X1 c0)  /* suspended on X1 */
 evar (X0) (sort (typ «elpi.tests.test_API_notations.4»)) (X0)  /* suspended on X0 */
Universe constraints:
UNIVERSES:
 {elpi.tests.test_API_notations.6 elpi.tests.test_API_notations.5
  elpi.tests.test_API_notations.4} |= 
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 α4
 α5
 α6
WEAK CONSTRAINTS:
 

Notation abbr2 _elpi_ctx_entry_1_was_x_ :=
  (fun _ => _elpi_ctx_entry_1_was_x_ = _elpi_ctx_entry_1_was_x_)
Expands to: Notation elpi.tests.test_API_notations.abbr2
(fun _ : nat => 2 = 2) 3
     : Prop
fun `_` X0 c0 \
 app [global (indt «eq»), X1, fun `x` X2 c1 \ c1, fun `x` X2 c1 \ c1]
Query assignments:
  %arg1 = «elpi.tests.test_API_notations.abbr2»
  T = fun `_` X0 c0 \
 app [global (indt «eq»), X1, fun `x` X2 c1 \ c1, fun `x` X2 c1 \ c1]
  X7_ = X2
Query assignments:
  %arg1 = «elpi.tests.test_API_notations.abbr2»
File "./tests/test_File3.v", line 18, characters 2-16:
Warning: This command does not support this attribute: phase.
[unsupported-attributes,parsing,default]
Query assignments:
  BO = fix `add` 0 
 (prod `n` (global (indt «nat»)) c0 \
   prod `m` (global (indt «nat»)) c1 \ global (indt «nat»)) c0 \
 fun `n` (global (indt «nat»)) c1 \
  fun `m` (global (indt «nat»)) c2 \
   match c1 (fun `n` (global (indt «nat»)) c3 \ global (indt «nat»)) 
    [c2, 
     fun `p` (global (indt «nat»)) c3 \
      app [global (indc «S»), app [c0, c3, c2]]]
  GR = «Nat.add»
  TY = prod `n` (global (indt «nat»)) c0 \
 prod `m` (global (indt «nat»)) c1 \ global (indt «nat»)
c2
global (indt «nat»)
z
nat
Query assignments:
  %arg1 = c0 \ c1 \ c2 \
z
  %arg2 = c0 \ c1 \ c2 \
nat
  T = global (indt «nat»)
c2
global (indt «nat»)
z
nat
Query assignments:
  %arg1 = c0 \ c1 \ c2 \
z
  %arg2 = c0 \ c1 \ c2 \
nat
  T = global (indt «nat»)
Illegal application (Non-functional construction): 
The expression "Prop" of type "Type"
cannot be applied to the term
 "Prop" : "Type"
Query assignments:
  E = Illegal application (Non-functional construction): 
The expression "Prop" of type "Type"
cannot be applied to the term
 "Prop" : "Type"
Unable to unify "bool" with "nat".
Query assignments:
  Msg = Unable to unify "bool" with "nat".
Query assignments:
  Cons = global (indc «cons»)
  GRCons = indc «cons»
  GRList = indt «list»
  GRNat = indt «nat»
  GRNil = indc «nil»
  GRZero = indc «O»
  L = app
 [global (indc «cons»), global (indt «nat»), global (indc «O»), 
  app [global (indc «nil»), global (indt «nat»)]]
  LE = app
 [global (indc «cons»), global (indt «nat»), global (indc «O»), 
  app [global (indc «nil»), global (indt «nat»)]]
  List = global (indt «list»)
  Nat = global (indt «nat»)
  Nil = global (indc «nil»)
  Zero = global (indc «O»)
Universe constraints:
UNIVERSES:
 {elpi.tests.test_API_typecheck.4 elpi.tests.test_API_typecheck.3
  elpi.tests.test_API_typecheck.2 elpi.tests.test_API_typecheck.1} |=
   elpi.tests.test_API_typecheck.3 < elpi.tests.test_API_typecheck.2
   elpi.tests.test_API_typecheck.4 < elpi.tests.test_API_typecheck.1
   Set <= elpi.tests.test_API_typecheck.3
   Set <= elpi.tests.test_API_typecheck.4
   elpi.tests.test_API_typecheck.3 <= list.u0
   elpi.tests.test_API_typecheck.4 <= list.u0
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 α1 := Type
 α2 := Type
WEAK CONSTRAINTS:
 

global (indt «nat»)
Query assignments:
  T = global (indt «nat»)
  X1_ = global (indt «nat»)
  X2_ = global (indt «nat»)
Universe constraints:
UNIVERSES:
 {elpi.tests.test_API_typecheck.9 elpi.tests.test_API_typecheck.8
  elpi.tests.test_API_typecheck.7 elpi.tests.test_API_typecheck.6
  elpi.tests.test_API_typecheck.5} |=
   Set < elpi.tests.test_API_typecheck.7
   elpi.tests.test_API_typecheck.8 < elpi.tests.test_API_typecheck.6
   elpi.tests.test_API_typecheck.9 < elpi.tests.test_API_typecheck.5
   Set <= elpi.tests.test_API_typecheck.8
   Set <= elpi.tests.test_API_typecheck.9
   elpi.tests.test_API_typecheck.8 <= list.u0
   elpi.tests.test_API_typecheck.9 <= list.u0
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 α3 := Type
 α4 := Type
 α5 := Type
WEAK CONSTRAINTS:
 

«elpi.tests.test_API_typecheck.10»
Query assignments:
  U = «elpi.tests.test_API_typecheck.10»
Universe constraints:
UNIVERSES:
 {elpi.tests.test_API_typecheck.10} |=
   Set <= elpi.tests.test_API_typecheck.10
ALGEBRAIC UNIVERSES:
 {elpi.tests.test_API_typecheck.10}
FLEXIBLE UNIVERSES:
 elpi.tests.test_API_typecheck.10
SORTS:
 
WEAK CONSTRAINTS:
 

Unable to unify "Set" with "Prop" (universe inconsistency: Cannot enforce Set
<= Prop).
Query assignments:
  E = Unable to unify "Set" with "Prop" (universe inconsistency: Cannot enforce Set
<= Prop).
File "./tests/test_API_typecheck.v", line 59, characters 2-4:
Warning:
File "./tests/test_API_typecheck.v", line 59, characters 2-4
LE is linear: name it _LE (discard) or LE_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
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»)
Query assignments:
  GR = «empty_nat»
  TY = global (indt «nat»)
Query assignments:
  GR1 = indc «Vector.nil»
  GR2 = indt «nat»
  GR3 = const «A»
add_equal
Query assignments:
  %arg1 = add_equal
  %arg2 = add_equal
  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»
  NGR = «add_equal»
  Name = add_equal
  S = add
  TY = prod `n` (global (indt «nat»)) c0 \
 prod `m` (global (indt «nat»)) c1 \ global (indt «nat»)
add_equal : nat -> nat -> nat

add_equal is not universe polymorphic
Arguments add_equal (n m)%nat_scope
add_equal is opaque
Expands to: Constant elpi_tests_stdlib.test_API_env.add_equal
«myfalse»
Query assignments:
  F = indt «False»
  GR = «myfalse»
myfalse
     : False
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 «eq_class.u0»)) c0 \
 record eq_class (sort (typ «eq_class.u1»)) 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»
  X1_ = «eq_class.u0»
  X2_ = «eq_class.u1»
Universe constraints:
UNIVERSES:
 
ALGEBRAIC UNIVERSES:
 {eq_class.u1 eq_class.u0}
FLEXIBLE UNIVERSES:
 eq_class.u1
 eq_class.u0
SORTS:
 
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
Arguments eq_f T%type_scope record
Arguments eq_proof T%type_scope record
fun x : eq_class nat => x : bool
     : eq_class nat -> bool
p <- eq_proof ( xxx )
Query assignments:
  DECL = parameter T X0 (sort (typ «prim_eq_class.u0»)) c0 \
 record prim_eq_class (sort (typ «prim_eq_class.u1»)) 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»
  X3_ = «prim_eq_class.u0»
  X4_ = «prim_eq_class.u1»
Universe constraints:
UNIVERSES:
 
ALGEBRAIC UNIVERSES:
 {prim_eq_class.u1 prim_eq_class.u0}
FLEXIBLE UNIVERSES:
 prim_eq_class.u1
 prim_eq_class.u0
SORTS:
 
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 *)
fun `r` (app [global (indt «prim_eq_class»), global (indt «nat»)]) c0 \
 app [primitive (proj elpi_tests_stdlib.test_API_env.prim_eq_f 1), c0]
Query assignments:
  C = «pc»
Universe constraints:
UNIVERSES:
 
ALGEBRAIC UNIVERSES:
 {myind.u0}
FLEXIBLE UNIVERSES:
 myind.u0
SORTS:
 
WEAK CONSTRAINTS:
 

myind true false : Prop
     : Prop
K2 true : myind true true
     : myind true true
myind1 true false : Prop
     : Prop
K21 true : myind1 true true
     : myind1 true true
Query assignments:
  X6_ = «nuind.u0»
  X7_ = «nuind.u1»
Universe constraints:
UNIVERSES:
 
ALGEBRAIC UNIVERSES:
 {nuind.u1 nuind.u0}
FLEXIBLE UNIVERSES:
 nuind.u1
 nuind.u0
SORTS:
 
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
c0 global (indt «nat»)
Query assignments:
  T = global (indt «nat»)
Query assignments:
  D = parameter A X0 (sort (typ «tx.u0»)) c0 \
 inductive tx X1 
  (parameter y X2 (global (indt «nat»)) c1 \
    arity (prod `_` (global (indt «bool»)) c2 \ sort (typ «tx.u1»))) c1 \
  [constructor K1x 
    (parameter y X3 (global (indt «nat»)) c2 \
      arity
       (prod `x` c0 c3 \
         prod `n` (global (indt «nat»)) c4 \
          prod `p` 
           (app
             [global (indt «eq»), global (indt «nat»), 
              app [global (indc «S»), c4], c2]) c5 \
           prod `e` (app [c1, c4, global (indc «true»)]) c6 \
            app [c1, c2, global (indc «true»)])), 
   constructor K2x 
    (parameter y X4 (global (indt «nat»)) c2 \
      arity (app [c1, c2, global (indc «false»)]))]
  X8_ = «tx.u0»
  X9_ = «tx.u1»
Universe constraints:
UNIVERSES:
 {elpi_tests_stdlib.test_API_env.18 elpi_tests_stdlib.test_API_env.17
  elpi_tests_stdlib.test_API_env.16 elpi_tests_stdlib.test_API_env.15
  elpi_tests_stdlib.test_API_env.14 elpi_tests_stdlib.test_API_env.13
  elpi_tests_stdlib.test_API_env.11} |=
   tx.u0 < elpi_tests_stdlib.test_API_env.11
   tx.u1 < elpi_tests_stdlib.test_API_env.13
   Set <= elpi_tests_stdlib.test_API_env.13
   Set <= elpi_tests_stdlib.test_API_env.14
   Set <= elpi_tests_stdlib.test_API_env.15
   Set <= elpi_tests_stdlib.test_API_env.16
   Set <= elpi_tests_stdlib.test_API_env.17
   Set <= elpi_tests_stdlib.test_API_env.18
   tx.u0 <= elpi_tests_stdlib.test_API_env.14
   tx.u1 <= elpi_tests_stdlib.test_API_env.14
   elpi_tests_stdlib.test_API_env.14 <= tx.u1
ALGEBRAIC UNIVERSES:
 {tx.u1 tx.u0}
FLEXIBLE UNIVERSES:
 tx.u1
 tx.u0
SORTS:
 α2 := Type
 α3 := Type
 α4 := Type
 α5 := Type
WEAK CONSTRAINTS:
 

Query assignments:
  D = parameter A explicit (sort (typ «elpi_tests_stdlib.test_API_env.20»)) c0 \
 parameter a explicit c0 c1 \
  inductive ind1 tt 
   (parameter B explicit (sort (typ «ind1.u0»)) c2 \
     parameter b explicit c2 c3 \
      arity
       (prod `C` (sort (typ «elpi_tests_stdlib.test_API_env.22»)) c4 \
         prod `_` c4 c5 \ sort (typ «elpi_tests_stdlib.test_API_env.26»))) 
   c2 \
   [constructor k1 
     (parameter B explicit (sort (typ «ind1.u0»)) c3 \
       parameter b explicit c3 c4 \
        arity
         (prod `bb` (app [global (indt «prod»), c3, c3]) c5 \
           prod `_` 
            (app
              [c2, app [global (indt «prod»), c3, c3], c5, 
               global (indt «bool»), global (indc «true»)]) c6 \
            app [c2, c3, c4, global (indt «unit»), global (indc «tt»)])), 
    constructor k2 
     (parameter B explicit (sort (typ «ind1.u0»)) c3 \
       parameter b explicit c3 c4 \
        arity
         (app
           [c2, c3, c4, global (indt «nat»), 
            app [global (indc «S»), global (indc «O»)]]))]
  D1 = parameter A explicit (sort (typ «elpi_tests_stdlib.test_API_env.20»)) c0 \
 parameter a explicit c0 c1 \
  inductive ind1 tt 
   (parameter B explicit (sort (typ «ind1.u0»)) c2 \
     parameter b explicit c2 c3 \
      arity
       (prod `C` (sort (typ «elpi_tests_stdlib.test_API_env.22»)) c4 \
         prod `_` c4 c5 \ sort (typ «elpi_tests_stdlib.test_API_env.26»))) 
   c2 \
   [constructor k1 
     (parameter B explicit (sort (typ «ind1.u0»)) c3 \
       parameter b explicit c3 c4 \
        arity
         (prod `bb` (app [global (indt «prod»), c3, c3]) c5 \
           prod `_` 
            (app
              [c2, app [global (indt «prod»), c3, c3], c5, 
               global (indt «bool»), global (indc «true»)]) c6 \
            app [c2, c3, c4, global (indt «unit»), global (indc «tt»)])), 
    constructor k2 
     (parameter B explicit (sort (typ «ind1.u0»)) c3 \
       parameter b explicit c3 c4 \
        arity
         (app
           [c2, c3, c4, global (indt «nat»), 
            app [global (indc «S»), global (indc «O»)]]))]
  I = «ind1»
  U = «elpi_tests_stdlib.test_API_env.26»
  UA = «elpi_tests_stdlib.test_API_env.20»
  UB1 = «ind1.u0»
  UB2 = «ind1.u0»
  UB3 = «ind1.u0»
  UC = «elpi_tests_stdlib.test_API_env.22»
Universe constraints:
UNIVERSES:
 {elpi_tests_stdlib.test_API_env.26} |=
   Set <= elpi_tests_stdlib.test_API_env.26
   ind1.u0 <= elpi_tests_stdlib.test_API_env.26
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 
WEAK CONSTRAINTS:
 

Query assignments:
  D = parameter A explicit (sort (typ «elpi_tests_stdlib.test_API_env.20»)) c0 \
 parameter a explicit c0 c1 \
  inductive ind1 tt 
   (parameter B explicit (sort (typ «ind1.u0»)) c2 \
     parameter b explicit c2 c3 \
      arity
       (prod `C` (sort (typ «elpi_tests_stdlib.test_API_env.22»)) c4 \
         prod `_` c4 c5 \ sort (typ «elpi_tests_stdlib.test_API_env.27»))) 
   c2 \
   [constructor k1 
     (parameter B explicit (sort (typ «ind1.u0»)) c3 \
       parameter b explicit c3 c4 \
        parameter bb implicit (app [global (indt «prod»), c3, c3]) c5 \
         arity
          (prod `_` 
            (app
              [c2, app [global (indt «prod»), c3, c3], c5, 
               global (indt «bool»), global (indc «true»)]) c6 \
            app [c2, c3, c4, global (indt «unit»), global (indc «tt»)])), 
    constructor k2 
     (parameter B explicit (sort (typ «ind1.u0»)) c3 \
       parameter b explicit c3 c4 \
        arity
         (app
           [c2, c3, c4, global (indt «nat»), 
            app [global (indc «S»), global (indc «O»)]]))]
  D1 = parameter A explicit (sort (typ «elpi_tests_stdlib.test_API_env.20»)) c0 \
 parameter a explicit c0 c1 \
  inductive ind1 tt 
   (parameter B explicit (sort (typ «ind1.u0»)) c2 \
     parameter b explicit c2 c3 \
      arity
       (prod `C` (sort (typ «elpi_tests_stdlib.test_API_env.22»)) c4 \
         prod `_` c4 c5 \ sort (typ «elpi_tests_stdlib.test_API_env.27»))) 
   c2 \
   [constructor k1 
     (parameter B explicit (sort (typ «ind1.u0»)) c3 \
       parameter b explicit c3 c4 \
        parameter bb implicit (app [global (indt «prod»), c3, c3]) c5 \
         arity
          (prod `_` 
            (app
              [c2, app [global (indt «prod»), c3, c3], c5, 
               global (indt «bool»), global (indc «true»)]) c6 \
            app [c2, c3, c4, global (indt «unit»), global (indc «tt»)])), 
    constructor k2 
     (parameter B explicit (sort (typ «ind1.u0»)) c3 \
       parameter b explicit c3 c4 \
        arity
         (app
           [c2, c3, c4, global (indt «nat»), 
            app [global (indc «S»), global (indc «O»)]]))]
  I = «ind1»
  U = «elpi_tests_stdlib.test_API_env.27»
  UA = «elpi_tests_stdlib.test_API_env.20»
  UB1 = «ind1.u0»
  UB2 = «ind1.u0»
  UB3 = «ind1.u0»
  UC = «elpi_tests_stdlib.test_API_env.22»
Universe constraints:
UNIVERSES:
 {elpi_tests_stdlib.test_API_env.27} |=
   Set <= elpi_tests_stdlib.test_API_env.27
   ind1.u0 <= elpi_tests_stdlib.test_API_env.27
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 
WEAK CONSTRAINTS:
 

Query assignments:
  D = parameter P explicit (sort (typ «r1.u0»)) c0 \
 parameter p explicit c0 c1 \
  record r1 (sort (typ «r1.u0»)) mk_r1 
   (field [coercion reversible, canonical tt] f1 (prod `_` c0 c2 \ c0) c2 \
     field [coercion off, canonical ff] f2 
      (app [global (indt «eq»), c0, c1, app [c2, c1]]) c3 \ end-record)
  D1 = parameter P explicit (sort (typ «r1.u0»)) c0 \
 parameter p explicit c0 c1 \
  record r1 (sort (typ «r1.u0»)) mk_r1 
   (field [coercion reversible, canonical tt] f1 (prod `_` c0 c2 \ c0) c2 \
     field [coercion off, canonical ff] f2 
      (app [global (indt «eq»), c0, c1, app [c2, c1]]) c3 \ end-record)
  I = «r1»
  UP = «r1.u0»
  UR = «r1.u0»
Query assignments:
  D = parameter P explicit (sort (typ «r1.u0»)) c0 \
 parameter p explicit c0 c1 \
  record r1 (sort (typ «r1.u0»)) mk_r1 
   (field [coercion reversible, canonical tt] f1 (prod `_` c0 c2 \ c0) c2 \
     field [coercion regular, canonical ff] f2 
      (app [global (indt «eq»), c0, c1, app [c2, c1]]) c3 \ end-record)
  D1 = parameter P explicit (sort (typ «r1.u0»)) c0 \
 parameter p explicit c0 c1 \
  record r1 (sort (typ «r1.u0»)) mk_r1 
   (field [coercion reversible, canonical tt] f1 (prod `_` c0 c2 \ c0) c2 \
     field [coercion regular, canonical ff] f2 
      (app [global (indt «eq»), c0, c1, app [c2, c1]]) c3 \ end-record)
  I = «r1»
  UP = «r1.u0»
  UR = «r1.u0»
{{ nat; S;  }}
{{ nat; S;  }}
Query assignments:
  GR = const «Nat.add»
  L = {{ nat; S;  }}
  S = {{ nat; S;  }}
{{ X.a;  }} {{ X.a; Nat.add; nat;  }}
{{ X.a;  }} {{ X.a; Nat.add; nat; O; S;  }}
Query assignments:
  %arg1 = const «X.a»
  AllL = {{ X.a; Nat.add; nat;  }}
  AllS = {{ X.a; Nat.add; nat; O; S;  }}
  GR = const «X.b»
  L = {{ X.a;  }}
  M = «elpi_tests_stdlib.test_API_env.HOAS.X»
  S = {{ X.a;  }}
Query assignments:
  %arg1 = 3372
  GR = const «Ranalysis5.derivable_pt_lim_CVU»
  S = {{ Field_theory.AF_1_neq_0; Field_theory.AF_AR; Field_theory.AFdiv_def;
     Field_theory.AFinv_l; Ring_theory.ARadd_0_l; Ring_theory.ARadd_0_r;
     Ring_theory.ARadd_assoc; Ring_theory.ARadd_assoc1;
     Ring_theory.ARadd_assoc2; Ring_theory.ARadd_comm; Ring_theory.ARdistr_l;
     Ring_theory.ARdistr_r; InitialRing.ARgen_phiPOS_Psucc;
     InitialRing.ARgen_phiPOS_add; InitialRing.ARgen_phiPOS_mult;
     Ring_theory.ARmul_0_l; Ring_theory.ARmul_0_r; Ring_theory.ARmul_1_l;
     Ring_theory.ARmul_1_r; Ring_theory.ARmul_assoc;
     Ring_theory.ARmul_assoc1; Ring_theory.ARmul_assoc2;
     Ring_theory.ARmul_comm; Ring_theory.ARopp_add; Ring_theory.ARopp_mul_l;
     Ring_theory.ARopp_mul_r; Ring_theory.ARopp_zero; Ring_theory.ARsub_def;
     Ring_theory.ARsub_ext; Ring_theory.ARth_SRth; RList.AbsList;
     RList.AbsList_P1; RList.AbsList_P2; Acc_inv;
     Morphisms_Prop.Acc_pt_morphism; Acc_rect; Tauto.BFormula;
     PSeries_reg.Ball_in_inter; Rlimit.Base; PSeries_reg.Boule;
     PSeries_reg.Boule_center; Setoid.Build_Setoid_Theory;
     Ring_polynom.CFactor; RMicromega.CInvR0; RMicromega.CPowR0;
     ConstructiveReals.CR_Q_dense; ConstructiveReals.CR_archimedean;
     ConstructiveReals.CR_cauchy; ConstructiveReals.CR_complete;
     ConstructiveReals.CR_cv; ConstructiveLimits.CR_cv_bound_down;
     ConstructiveLimits.CR_cv_le; ConstructiveLimits.CR_cv_open_above;
     ConstructiveLimits.CR_cv_open_below; ConstructiveLimits.CR_cv_opp;
     ConstructiveLimits.CR_cv_plus; ConstructiveLimits.CR_cv_proper;
     ConstructiveReals.CR_of_Q; ConstructiveReals.CR_of_Q_le;
     ConstructiveReals.CR_of_Q_lt; ConstructiveReals.CR_of_Q_morph;
     ConstructiveReals.CR_of_Q_morph_Proper;
     ConstructiveReals.CR_of_Q_morph_T; ConstructiveReals.CR_of_Q_mult;
     ConstructiveReals.CR_of_Q_opp; ConstructiveReals.CR_of_Q_plus;
     ConstructiveReals.CR_of_Q_pos; ConstructiveLUB.CR_sig_lub;
     ConstructiveReals.CRabs; ConstructiveReals.CRabs_def;
     ConstructiveAbs.CRabs_le; ConstructiveAbs.CRabs_lt;
     ConstructiveAbs.CRabs_morph; ConstructiveAbs.CRabs_morph_prop_Proper;
     ConstructiveAbs.CRabs_opp; ConstructiveAbs.CRabs_right;
     ConstructiveAbs.CRabs_triang; ConstructiveReals.CRapart;
     ConstructiveReals.CRcarrier; ConstructiveRcomplete.CRealAbsLUB;
     ConstructiveCauchyRealsMult.CRealArchimedean;
     ConstructiveRcomplete.CRealComplete;
     ConstructiveRcomplete.CRealConstructive;
     ConstructiveCauchyReals.CRealEq; ConstructiveCauchyReals.CRealEq_diff;
     ConstructiveCauchyReals.CRealEq_refl;
     ConstructiveCauchyReals.CRealEq_rel;
     ConstructiveCauchyReals.CRealEq_relT;
     ConstructiveCauchyReals.CRealEq_rel_Reflexive;
     ConstructiveCauchyReals.CRealEq_rel_Symmetric;
     ConstructiveCauchyReals.CRealEq_rel_Transitive;
     ConstructiveCauchyReals.CRealEq_sym;
     ConstructiveCauchyReals.CRealEq_trans; ConstructiveCauchyReals.CRealGe;
     ConstructiveCauchyReals.CRealLe;
     ConstructiveCauchyAbs.CRealLe_0R_to_single_dist;
     ConstructiveCauchyReals.CRealLe_morph_Proper;
     ConstructiveCauchyReals.CRealLe_not_lt;
     ConstructiveCauchyReals.CRealLe_refl;
     ConstructiveCauchyRealsMult.CRealLowerBound;
     ConstructiveCauchyRealsMult.CRealLowerBoundSpec;
     ConstructiveCauchyRealsMult.CRealLowerBound_lt_scale;
     ConstructiveCauchyReals.CRealLt;
     ConstructiveRcomplete.CRealLtDisjunctEpsilon;
     ConstructiveCauchyReals.CRealLtEpsilon;
     ConstructiveCauchyReals.CRealLtForget;
     ConstructiveRcomplete.CRealLtIsLinear;
     ConstructiveCauchyReals.CRealLtProp;
     ConstructiveCauchyReals.CRealLtProp_morph_Proper;
     ConstructiveCauchyReals.CRealLt_0_1;
     ConstructiveCauchyAbs.CRealLt_RQ_from_single_dist;
     ConstructiveCauchyReals.CRealLt_above;
     ConstructiveCauchyReals.CRealLt_aboveSig;
     ConstructiveCauchyReals.CRealLt_aboveSig';
     ConstructiveCauchyReals.CRealLt_above_same;
     ConstructiveCauchyReals.CRealLt_asym;
     ConstructiveCauchyReals.CRealLt_dec;
     ConstructiveCauchyReals.CRealLt_irrefl;
     ConstructiveCauchyReals.CRealLt_lpo_dec;
     ConstructiveCauchyReals.CRealLt_morph;
     ConstructiveCauchyRealsMult.CRealQ_dense;
     ConstructiveCauchyRealsMult.CRealRing_ring_lemma1;
     ConstructiveCauchyRealsMult.CRealRing_ring_lemma2;
     ConstructiveCauchyAbs.CReal_abs;
     ConstructiveCauchyAbs.CReal_abs_appart_0;
     ConstructiveCauchyAbs.CReal_abs_bound;
     ConstructiveCauchyAbs.CReal_abs_cauchy;
     ConstructiveCauchyAbs.CReal_abs_def2;
     ConstructiveCauchyAbs.CReal_abs_le;
     ConstructiveCauchyAbs.CReal_abs_left;
     ConstructiveCauchyAbs.CReal_abs_minus_sym;
     ConstructiveCauchyAbs.CReal_abs_morph;
     ConstructiveCauchyAbs.CReal_abs_morph_Proper;
     ConstructiveCauchyAbs.CReal_abs_opp;
     ConstructiveCauchyAbs.CReal_abs_pos;
     ConstructiveCauchyAbs.CReal_abs_right;
     ConstructiveCauchyAbs.CReal_abs_scale;
     ConstructiveCauchyAbs.CReal_abs_seq;
     ConstructiveCauchyAbs.CReal_abs_triang;
     ConstructiveCauchyReals.CReal_appart;
     ConstructiveRcomplete.CReal_cv_self';
     ConstructiveRcomplete.CReal_from_cauchy;
     ConstructiveRcomplete.CReal_from_cauchy_bound;
     ConstructiveRcomplete.CReal_from_cauchy_cauchy;
     ConstructiveRcomplete.CReal_from_cauchy_cm;
     ConstructiveRcomplete.CReal_from_cauchy_cm_mono;
     ConstructiveRcomplete.CReal_from_cauchy_scale;
     ConstructiveRcomplete.CReal_from_cauchy_seq;
     ConstructiveRcomplete.CReal_from_cauchy_seq_bound;
     ConstructiveCauchyRealsMult.CReal_inv;
     ConstructiveCauchyRealsMult.CReal_inv_0_lt_compat;
     ConstructiveCauchyRealsMult.CReal_inv_l;
     ConstructiveCauchyRealsMult.CReal_inv_l_pos;
     ConstructiveCauchyRealsMult.CReal_inv_pos;
     ConstructiveCauchyRealsMult.CReal_inv_pos_bound;
     ConstructiveCauchyRealsMult.CReal_inv_pos_cauchy;
     ConstructiveCauchyRealsMult.CReal_inv_pos_cm;
     ConstructiveCauchyRealsMult.CReal_inv_pos_scale;
     ConstructiveCauchyRealsMult.CReal_inv_pos_seq;
     ConstructiveCauchyRealsMult.CReal_isRing;
     ConstructiveCauchyRealsMult.CReal_isRingExt;
     ConstructiveCauchyAbs.CReal_le_abs;
     ConstructiveCauchyReals.CReal_le_lt_trans;
     ConstructiveCauchyReals.CReal_le_trans;
     ConstructiveCauchyReals.CReal_lt_le_trans;
     ConstructiveCauchyReals.CReal_lt_trans;
     ConstructiveCauchyReals.CReal_minus;
     ConstructiveCauchyRealsMult.CReal_mult;
     ConstructiveCauchyRealsMult.CReal_mult_1_l;
     ConstructiveCauchyRealsMult.CReal_mult_assoc;
     ConstructiveCauchyRealsMult.CReal_mult_bound;
     ConstructiveCauchyRealsMult.CReal_mult_cauchy;
     ConstructiveCauchyRealsMult.CReal_mult_comm;
     ConstructiveCauchyRealsMult.CReal_mult_lt_0_compat;
     ConstructiveCauchyRealsMult.CReal_mult_lt_0_compat_correct;
     ConstructiveCauchyRealsMult.CReal_mult_lt_compat_l;
     ConstructiveCauchyRealsMult.CReal_mult_morph_Proper;
     ConstructiveCauchyRealsMult.CReal_mult_plus_distr_l;
     ConstructiveCauchyRealsMult.CReal_mult_proper_0_l;
     ConstructiveCauchyRealsMult.CReal_mult_proper_l;
     ConstructiveCauchyRealsMult.CReal_mult_scale;
     ConstructiveCauchyRealsMult.CReal_mult_seq;
     ConstructiveCauchyRealsMult.CReal_neg_lt_pos;
     ConstructiveCauchyRealsMult.CReal_neg_lt_pos_subproof;
     ConstructiveCauchyReals.CReal_opp; ConstructiveCauchyReals.CReal_opp_0;
     ConstructiveCauchyReals.CReal_opp_bound;
     ConstructiveCauchyReals.CReal_opp_cauchy;
     ConstructiveCauchyReals.CReal_opp_ge_le_contravar;
     ConstructiveCauchyReals.CReal_opp_involutive;
     ConstructiveCauchyRealsMult.CReal_opp_morph_Proper;
     ConstructiveCauchyRealsMult.CReal_opp_morph_T;
     ConstructiveCauchyRealsMult.CReal_opp_mult_distr_l;
     ConstructiveCauchyRealsMult.CReal_opp_mult_distr_r;
     ConstructiveCauchyReals.CReal_opp_scale;
     ConstructiveCauchyReals.CReal_opp_seq;
     ConstructiveCauchyReals.CReal_plus;
     ConstructiveCauchyReals.CReal_plus_0_l;
     ConstructiveCauchyReals.CReal_plus_0_r;
     ConstructiveCauchyReals.CReal_plus_assoc;
     ConstructiveCauchyReals.CReal_plus_bound;
     ConstructiveCauchyReals.CReal_plus_cauchy;
     ConstructiveCauchyReals.CReal_plus_comm;
     ConstructiveCauchyReals.CReal_plus_eq_reg_l;
     ConstructiveCauchyReals.CReal_plus_le_compat;
     ConstructiveCauchyReals.CReal_plus_le_compat_l;
     ConstructiveCauchyReals.CReal_plus_le_lt_compat;
     ConstructiveCauchyReals.CReal_plus_le_reg_r;
     ConstructiveCauchyReals.CReal_plus_lt_compat_l;
     ConstructiveCauchyReals.CReal_plus_lt_compat_r;
     ConstructiveCauchyReals.CReal_plus_lt_reg_l;
     ConstructiveCauchyReals.CReal_plus_lt_reg_r;
     ConstructiveCauchyReals.CReal_plus_morph;
     ConstructiveCauchyReals.CReal_plus_morph_Proper;
     ConstructiveCauchyReals.CReal_plus_morph_T;
     ConstructiveCauchyReals.CReal_plus_opp_l;
     ConstructiveCauchyReals.CReal_plus_opp_r;
     ConstructiveCauchyReals.CReal_plus_proper_l;
     ConstructiveCauchyReals.CReal_plus_proper_r;
     ConstructiveCauchyReals.CReal_plus_scale;
     ConstructiveCauchyReals.CReal_plus_seq;
     ConstructiveCauchyRealsMult.CReal_red_scale;
     ConstructiveCauchyReals.CReal_red_seq;
     ConstructiveCauchyRealsMult.CReal_scale_sep0_limit;
     ConstructiveReals.CReq; ConstructiveReals.CReq_refl;
     ConstructiveReals.CReq_rel; ConstructiveReals.CReq_relT;
     ConstructiveReals.CReq_rel_Reflexive;
     ConstructiveReals.CReq_rel_Symmetric;
     ConstructiveReals.CReq_rel_Transitive; ConstructiveReals.CReq_sym;
     ConstructiveReals.CReq_trans; ConstructiveReals.CRinv;
     ConstructiveReals.CRinv_0_lt_compat; ConstructiveReals.CRinv_l;
     ConstructiveReals.CRinv_r; ConstructiveReals.CRisRing;
     ConstructiveReals.CRisRingExt; ConstructiveLUB.CRis_upper_bound;
     ConstructiveReals.CRle; ConstructiveAbs.CRle_abs;
     ConstructiveReals.CRle_lt_trans; ConstructiveReals.CRle_morph_Proper;
     ConstructiveReals.CRle_refl; ConstructiveReals.CRle_trans;
     ConstructiveReals.CRlt; ConstructiveReals.CRltEpsilon;
     ConstructiveReals.CRltForget; ConstructiveReals.CRltLinear;
     ConstructiveReals.CRltProp; ConstructiveReals.CRlt_asym;
     ConstructiveReals.CRlt_le_trans; ConstructiveLUB.CRlt_lpo_dec;
     ConstructiveReals.CRlt_minus; ConstructiveReals.CRlt_morph;
     ConstructiveReals.CRlt_proper; ConstructiveReals.CRlt_trans;
     ConstructiveReals.CRminus; ConstructiveReals.CRmult;
     ConstructiveReals.CRmult_0_r; ConstructiveReals.CRmult_1_l;
     ConstructiveReals.CRmult_1_r; ConstructiveReals.CRmult_assoc;
     ConstructiveReals.CRmult_comm; ConstructiveReals.CRmult_lt_0_compat;
     ConstructiveReals.CRmult_lt_compat_l;
     ConstructiveReals.CRmult_lt_compat_r; ConstructiveReals.CRmult_lt_reg_l;
     ConstructiveReals.CRmult_lt_reg_r; ConstructiveReals.CRmult_morph;
     ConstructiveReals.CRmult_morph_Proper; ConstructiveReals.CRmult_morph_T;
     ConstructiveReals.CRmult_plus_distr_l;
     ConstructiveReals.CRmult_plus_distr_r; ConstructiveReals.CRopp;
     ConstructiveReals.CRopp_0; ConstructiveReals.CRopp_ge_le_contravar;
     ConstructiveReals.CRopp_gt_lt_contravar;
     ConstructiveReals.CRopp_involutive; ConstructiveReals.CRopp_lt_cancel;
     ConstructiveReals.CRopp_morph_Proper;
     ConstructiveReals.CRopp_mult_distr_l;
     ConstructiveReals.CRopp_mult_distr_r;
     ConstructiveReals.CRopp_plus_distr; ConstructiveReals.CRplus;
     ConstructiveReals.CRplus_0_l; ConstructiveReals.CRplus_0_r;
     ConstructiveReals.CRplus_assoc; ConstructiveReals.CRplus_comm;
     ConstructiveReals.CRplus_eq_reg_l; ConstructiveReals.CRplus_le_compat;
     ConstructiveReals.CRplus_le_compat_l;
     ConstructiveReals.CRplus_le_compat_r; ConstructiveReals.CRplus_le_reg_l;
     ConstructiveReals.CRplus_le_reg_r; ConstructiveReals.CRplus_lt_compat_l;
     ConstructiveReals.CRplus_lt_compat_r; ConstructiveReals.CRplus_lt_reg_l;
     ConstructiveReals.CRplus_lt_reg_r; ConstructiveReals.CRplus_morph;
     ConstructiveReals.CRplus_morph_Proper; ConstructiveReals.CRplus_morph_T;
     ConstructiveReals.CRplus_opp_l; ConstructiveReals.CRplus_opp_r;
     ConstructiveReals.CRup_nat; ConstructiveReals.CRzero_double;
     PSeries_reg.CVU; CompOpp; CompOpp_iff; CompOpp_inj; CompOpp_involutive;
     CompSpec; CompSpec2Type; CompSpecT; CompareSpec2Type;
     ConstructiveLUB.DDcut_limit; ConstructiveLUB.DDcut_limit_fix;
     ConstructiveLUB.DDdec; ConstructiveLUB.DDhigh;
     ConstructiveLUB.DDhighProp; ConstructiveLUB.DDinterval;
     ConstructiveLUB.DDlow; ConstructiveLUB.DDlowProp;
     ConstructiveLUB.DDlow_below_up; ConstructiveLUB.DDproper;
     ConstructiveLUB.DDupcut; Rderiv.D_in; Rderiv.D_x; Rderiv.Dmult; Env.Env;
     Ring_theory.Eq_ext; Ring_theory.Eqsth; RelationClasses.Equivalence_PER;
     CRelationClasses.Equivalence_Reflexive;
     RelationClasses.Equivalence_Reflexive;
     CRelationClasses.Equivalence_Symmetric;
     RelationClasses.Equivalence_Symmetric;
     RelationClasses.Equivalence_Transitive; ZMicromega.F; Field_theory.F2AF;
     Field_theory.FEeval; Field_theory.FExpr_ind; Field_theory.F_1_neq_0;
     Field_theory.F_R; False_ind; False_rec; False_rect; Field_theory.Fapp;
     Field_theory.Fcons0; Field_theory.Fcons1; Field_theory.Fcons2;
     Field_theory.Fdiv_def; Field_theory.Field_correct;
     Field_theory.Field_rw_pow_correct;
     Field_theory.Field_simplify_eq_pow_correct; Field_theory.Finv_l;
     Field_theory.Fnorm; Field_theory.Fnorm_FEeval_PEeval;
     Field_theory.Fnorm_crossproduct; Tauto.GFormula_ind; ID;
     Ring_theory.IDmorph; Ring_theory.IDphi; Rdefinitions.IPR;
     Rdefinitions.IPR_2; RIneq.IPR_2_xH; RIneq.IPR_2_xI; RIneq.IPR_2_xO;
     RIneq.IPR_IPR_2; RIneq.IPR_ge_1; RIneq.IPR_gt_0; RIneq.IPR_xH;
     RIneq.IPR_xI; RIneq.IPR_xO; Rdefinitions.IZR; RIneq.IZR_ge;
     RIneq.IZR_le; RIneq.IZR_lt; Qreals.IZR_nz; List.In; ZifyInst.Inj_Z_Z;
     ZifyInst.Inj_pos_Z; RelationClasses.Irreflexive; Ring_polynom.MFactor;
     Ring_polynom.MPcond; MVT.MVT; RList.MaxRlist; RList.MaxRlist_P1;
     Ring_polynom.Mcphi_ok; RList.MinRlist; RList.MinRlist_P1;
     RList.MinRlist_P2; Ring_polynom.Mphi; Ring_polynom.Mphi_ok;
     RingMicromega.NFormula; Classical_Prop.NNPP; Field_theory.NPEadd;
     Field_theory.NPEadd_ok; Field_theory.NPEequiv; Field_theory.NPEequiv_eq;
     Field_theory.NPEeval_ext; Field_theory.NPEmul; Field_theory.NPEmul_ok;
     Field_theory.NPEopp; Field_theory.NPEopp_ok; Field_theory.NPEpow;
     Field_theory.NPEpow_ok; Field_theory.NPEsub; Field_theory.NPEsub_ok;
     InitialRing.Nopp; InitialRing.Nsub; Field_theory.NtoZ;
     InitialRing.Ntriv_div_th; O_S; ConstructiveEpsilon.O_witness;
     RingMicromega.OpAdd; RingMicromega.OpAdd_sound; RingMicromega.OpMult;
     RingMicromega.OpMult_sound; ConstructiveEpsilon.P';
     ConstructiveEpsilon.P'_decidable; EnvRing.P0; Ring_polynom.P0;
     EnvRing.P1; Ring_polynom.P1; Field_theory.PCond; Field_theory.PCond_app;
     Field_theory.PCond_cons; RelationClasses.PER_Symmetric;
     RelationClasses.PER_Transitive; Morphisms.PER_morphism;
     Morphisms.PER_morphism_obligation_1; Field_theory.PE_1_l;
     Field_theory.PE_1_r; Field_theory.PEadd_ext; EnvRing.PEeval;
     Ring_polynom.PEeval; Field_theory.PEmul_ext; Field_theory.PEopp_ext;
     Field_theory.PEpow_0_r; Field_theory.PEpow_1_l; Field_theory.PEpow_1_r;
     Field_theory.PEpow_add_r; Field_theory.PEpow_ext;
     Field_theory.PEpow_mul_l; Field_theory.PEpow_mul_r;
     Field_theory.PEpow_nz; Field_theory.PEsimp; Field_theory.PEsimp_ok;
     Field_theory.PEsub_ext; Field_theory.PExpr_eq;
     Field_theory.PExpr_eq_semi_ok; Field_theory.PExpr_eq_spec;
     EnvRing.PExpr_ind; Ring_polynom.PExpr_ind;
     Field_theory.PFcons0_fcons_inv; Field_theory.PFcons1_fcons_inv;
     Field_theory.PFcons2_fcons_inv; Ring_polynom.PNSubst;
     Ring_polynom.PNSubst1; Ring_polynom.PNSubst1_ok; Ring_polynom.PNSubstL;
     Ring_polynom.PNSubstL_ok; Ring_polynom.PNSubst_ok;
     Ring_polynom.POneSubst; Ring_polynom.POneSubst_ok; Ring_polynom.PSubstL;
     Ring_polynom.PSubstL1; Ring_polynom.PSubstL1_ok;
     Ring_polynom.PSubstL_ok; Ring_polynom.PX_ext; EnvRing.Padd;
     Ring_polynom.Padd; EnvRing.PaddC; Ring_polynom.PaddC; EnvRing.PaddC_ok;
     Ring_polynom.PaddC_ok; EnvRing.PaddI; Ring_polynom.PaddI; EnvRing.PaddX;
     Ring_polynom.PaddX; EnvRing.PaddX_ok; Ring_polynom.PaddX_ok;
     EnvRing.Padd_ok; Ring_polynom.Padd_ok; Field_theory.Pcond_Fnorm;
     Field_theory.Pcond_simpl_complete; EnvRing.Peq; Ring_polynom.Peq;
     EnvRing.Peq_ok; Ring_polynom.Peq_ok; EnvRing.Peq_spec;
     Ring_polynom.Peq_spec; Ring_polynom.Pequiv; Ring_polynom.Pequiv_eq;
     EnvRing.Pjump_add; EnvRing.Pjump_pred_double; EnvRing.Pjump_xO_tail;
     EnvRing.Pmul; Ring_polynom.Pmul; EnvRing.PmulC; Ring_polynom.PmulC;
     EnvRing.PmulC_aux; Ring_polynom.PmulC_aux; EnvRing.PmulC_aux_ok;
     Ring_polynom.PmulC_aux_ok; EnvRing.PmulC_ok; Ring_polynom.PmulC_ok;
     EnvRing.PmulI; Ring_polynom.PmulI; EnvRing.PmulI_ok;
     Ring_polynom.PmulI_ok; EnvRing.Pmul_ok; Ring_polynom.Pmul_ok;
     RingMicromega.PolC; RingMicromega.PolEnv; EnvRing.Pol_ind;
     Ring_polynom.Pol_ind; EnvRing.Popp; Ring_polynom.Popp; EnvRing.Popp_ok;
     Ring_polynom.Popp_ok; ConstructiveRcomplete.Pos2Z_pos_is_pos;
     QExtra.Pos_log2floor_plus1; QExtra.Pos_log2floor_plus1_spec;
     PosExtra.Pos_pow_1_r; PosExtra.Pos_pow_le_mono_r;
     ConstructiveExtra.Pos_pred_double_inj;
     ConstructiveRcomplete.Pospow_lin_le_2pow; EnvRing.Pphi;
     Ring_polynom.Pphi; EnvRing.Pphi0; Ring_polynom.Pphi0; EnvRing.Pphi1;
     Ring_polynom.Pphi1; Ring_polynom.Pphi_avoid; Ring_polynom.Pphi_avoid_ok;
     Ring_polynom.Pphi_dev; Ring_polynom.Pphi_dev_ok; Ring_polynom.Pphi_ext;
     Ring_polynom.Pphi_pow; Ring_polynom.Pphi_pow_ok;
     BinPos.Pplus_one_succ_l; BinPos.Pplus_one_succ_r; EnvRing.Ppow_N;
     Ring_polynom.Ppow_N; EnvRing.Ppow_N_ok; Ring_polynom.Ppow_N_ok;
     EnvRing.Ppow_pos; Ring_polynom.Ppow_pos; EnvRing.Ppow_pos_ok;
     Ring_polynom.Ppow_pos_ok; RelationClasses.PreOrder_Reflexive;
     RelationClasses.PreOrder_Transitive; RIneq.Private_sumbool_to_or;
     CMorphisms.Proper; Morphisms.Proper; CMorphisms.ProperProxy;
     Morphisms.ProperProxy; Qminmax.Q.Proper_instance_0;
     BinInt.Z.Proper_instance_0; RingMicromega.Psatz_ind; EnvRing.Psquare;
     EnvRing.Psquare_ok; EnvRing.Psub; Ring_polynom.Psub; EnvRing.PsubC;
     Ring_polynom.PsubC; EnvRing.PsubC_ok; RingMicromega.PsubC_ok;
     Ring_polynom.PsubC_ok; EnvRing.PsubI; Ring_polynom.PsubI; EnvRing.PsubX;
     Ring_polynom.PsubX; EnvRing.PsubX_ok; EnvRing.Psub_ok;
     Ring_polynom.Psub_ok; Ring_polynom.Psub_opp; Rdefinitions.Q2R;
     RMicromega.Q2R_0; RMicromega.Q2R_1; Qreals.Q2R_inv;
     RMicromega.Q2R_inv_ext; RMicromega.Q2R_m_Proper; Qreals.Q2R_minus;
     Qreals.Q2R_mult; Qreals.Q2R_opp; Qreals.Q2R_plus; RMicromega.Q2R_pow_N;
     RMicromega.Q2R_pow_pos; RMicromega.Q2RpowerRZ;
     ConstructiveCauchyReals.QBound; ConstructiveCauchyReals.QCauchySeq;
     QMicromega.QNpower; RMicromega.QReval_expr; RMicromega.QReval_formula;
     RMicromega.QReval_formula'; RMicromega.QReval_formula_compat;
     QMicromega.QSORaddon; RMicromega.QSORaddon; QMicromega.QTautoChecker;
     QMicromega.QTautoChecker_sound; QMicromega.QWeakChecker;
     QMicromega.QWeakChecker_sound; QMicromega.QWitness;
     QArith_base.Q_Setoid; QArith_base.Q_dec; RMicromega.Q_of_Rcst;
     RMicromega.Q_of_RcstR; Qabs.Qabs;
     ConstructiveRcomplete.Qabs_Qgt_condition; Qabs.Qabs_Qinv;
     Qabs.Qabs_Qle_condition; Qabs.Qabs_Qlt_condition; Qabs.Qabs_Qmult;
     ConstructiveRcomplete.Qabs_Rabs; Qabs.Qabs_case;
     Qabs.Qabs_case_subproof; Qabs.Qabs_case_subproof0;
     Qabs.Qabs_case_subproof1; Qabs.Qabs_gt;
     ConstructiveCauchyAbs.Qabs_involutive; Qabs.Qabs_neg; Qabs.Qabs_nonneg;
     Qabs.Qabs_opp; Qabs.Qabs_pos; Qabs.Qabs_triangle;
     Qabs.Qabs_triangle_reverse; Qabs.Qabs_wd; Qabs.Qabs_wd_Proper;
     QArith_base.Qarchimedean; QExtra.QarchimedeanExp2_Z;
     QExtra.QarchimedeanLowExp2_Z; QExtra.Qbound_lt_ZExp2;
     QExtra.Qbound_lt_ZExp2_spec; QExtra.Qbound_ltabs_ZExp2;
     QExtra.Qbound_ltabs_ZExp2_spec; QArith_base.Qcompare;
     QArith_base.Qcompare_comp; QArith_base.Qden; QArith_base.Qdiv;
     QArith_base.Qdiv_comp; QArith_base.Qdiv_mult_l; QArith_base.Qeq;
     QArith_base.Qeq_alt; QArith_base.Qeq_bool; QArith_base.Qeq_bool_eq;
     QArith_base.Qeq_bool_iff; QArith_base.Qeq_bool_neq; QArith_base.Qeq_dec;
     Qreals.Qeq_eqR; QArith_base.Qeq_eq_bool; RMicromega.Qeq_false;
     QArith_base.Qeq_refl; QArith_base.Qeq_sym; QArith_base.Qeq_trans;
     RMicromega.Qeq_true; QMicromega.Qeval_bop2; QMicromega.Qeval_expr;
     QMicromega.Qeval_expr'; QMicromega.Qeval_expr_compat;
     QMicromega.Qeval_formula; QMicromega.Qeval_formula';
     QMicromega.Qeval_formula_compat; QMicromega.Qeval_nformula;
     RMicromega.Qeval_nformula; QMicromega.Qeval_nformula_dec;
     QMicromega.Qeval_op2; QMicromega.Qeval_op2_hold; QMicromega.Qeval_pop2;
     Qfield.Qfield_field_lemma1; Qfield.Qfield_field_lemma2;
     Qfield.Qfield_lemma5; Qfield.Qfield_ring_lemma1;
     Qfield.Qfield_ring_lemma2; Qround.Qfloor; Qround.Qfloor_le;
     QArith_base.Qinv; QArith_base.Qinv_comp; QArith_base.Qinv_involutive;
     QArith_base.Qinv_le_0_compat; QArith_base.Qinv_lt_0_compat;
     QArith_base.Qinv_lt_contravar; QArith_base.Qinv_mult_distr;
     QArith_base.Qinv_plus_distr; QArith_base.Qinv_pos; Qpower.Qinv_power;
     Qpower.Qinv_power_positive; QArith_base.Qle; Qabs.Qle_Qabs;
     Qreals.Qle_Rle; QArith_base.Qle_alt; QArith_base.Qle_antisym;
     QArith_base.Qle_bool; QArith_base.Qle_bool_iff;
     QArith_base.Qle_bool_imp_le; QArith_base.Qle_comp;
     QArith_base.Qle_lt_trans; QArith_base.Qle_minus_iff;
     QArith_base.Qle_not_lt; QArith_base.Qle_refl;
     QArith_base.Qle_shift_div_l; QArith_base.Qle_shift_div_r;
     QArith_base.Qle_trans; RMicromega.Qle_true;
     QExtra.Qlowbound_lt_ZExp2_spec; QExtra.Qlowbound_ltabs_ZExp2;
     QExtra.Qlowbound_ltabs_ZExp2_inv; QArith_base.Qlt; QArith_base.Qlt_alt;
     QMicromega.Qlt_bool; QMicromega.Qlt_bool_iff; QArith_base.Qlt_compat;
     Qround.Qlt_floor; QArith_base.Qlt_irrefl; QArith_base.Qlt_le_dec;
     QArith_base.Qlt_le_trans; QArith_base.Qlt_le_weak;
     QArith_base.Qlt_leneq; QArith_base.Qlt_minus_iff;
     QArith_base.Qlt_not_eq; QArith_base.Qlt_not_le;
     QArith_base.Qlt_shift_div_l; QArith_base.Qlt_shift_div_r;
     QArith_base.Qlt_shift_inv_l; QArith_base.Qlt_trans;
     ConstructiveRcomplete.Qlt_trans_swap_hyp; QArith_base.Qminus;
     QArith_base.Qminus_comp; QArith_base.Qmult; QArith_base.Qmult_0_l;
     QArith_base.Qmult_0_r; QArith_base.Qmult_1_l; QArith_base.Qmult_1_r;
     QArith_base.Qmult_assoc; QArith_base.Qmult_comm; QArith_base.Qmult_comp;
     QArith_base.Qmult_div_r; QArith_base.Qmult_frac_l;
     QArith_base.Qmult_integral; RMicromega.Qmult_integral;
     QArith_base.Qmult_integral_l; QArith_base.Qmult_inv_r;
     QArith_base.Qmult_le_0_compat; QArith_base.Qmult_le_1_compat;
     QArith_base.Qmult_le_compat_nonneg; QArith_base.Qmult_le_compat_r;
     QArith_base.Qmult_le_l; QArith_base.Qmult_le_lt_compat_pos;
     QArith_base.Qmult_le_r; QArith_base.Qmult_lt_0_le_reg_r;
     QArith_base.Qmult_lt_compat_nonneg; QArith_base.Qmult_lt_compat_r;
     QArith_base.Qmult_lt_l; QArith_base.Qmult_lt_r;
     QArith_base.Qmult_plus_distr_l; QMicromega.Qnegate;
     QMicromega.Qnormalise; QArith_base.Qnot_eq_sym; QArith_base.Qnot_le_lt;
     QArith_base.Qnot_lt_le; QArith_base.Qnum; QArith_base.Qopp;
     QArith_base.Qopp_comp; QArith_base.Qopp_le_compat;
     QArith_base.Qopp_lt_compat; ConstructiveCauchyAbs.Qopp_mult_mone;
     Qfield.Qopp_opp; QArith_base.Qplus; QArith_base.Qplus_0_l;
     QArith_base.Qplus_0_r; QArith_base.Qplus_assoc; QArith_base.Qplus_comm;
     QArith_base.Qplus_comp; QArith_base.Qplus_le_compat;
     QArith_base.Qplus_le_l; QArith_base.Qplus_le_r; QArith_base.Qplus_lt_l;
     QArith_base.Qplus_lt_le_compat; QArith_base.Qplus_lt_r;
     QArith_base.Qplus_opp_r; QArith_base.Qpower; RMicromega.Qpower0;
     Qpower.Qpower_0_le; Qpower.Qpower_0_lt; Qpower.Qpower_0_r;
     Qpower.Qpower_1_le; Qpower.Qpower_1_le_pos;
     ConstructiveRcomplete.Qpower_2powneg_le_inv; QArith_base.Qpower_comp;
     Qpower.Qpower_decomp_pos; Qpower.Qpower_decomp_positive;
     Qpower.Qpower_le_compat_l; Qpower.Qpower_lt_compat_l_inv;
     Qpower.Qpower_minus; Qpower.Qpower_minus_pos;
     Qpower.Qpower_minus_positive; Qpower.Qpower_not_0;
     Qpower.Qpower_not_0_positive; Qpower.Qpower_opp; Qpower.Qpower_plus;
     Qpower.Qpower_plus_positive; Qpower.Qpower_pos_positive;
     QArith_base.Qpower_positive; Qpower.Qpower_positive_0;
     QArith_base.Qpower_positive_comp; RMicromega.Qpower_positive_eq_zero;
     RMicromega.Qpower_positive_zero; Qfield.Qpower_theory; Qreduction.Qred;
     Qreduction.Qred_correct; Qfield.Qsft; QMicromega.Qsor; Qfield.Qsrt;
     Rdefinitions.RbaseSymbolsImpl.R; Rdefinitions.RbaseSymbolsImpl.R0;
     Rdefinitions.RbaseSymbolsImpl.R0_def; Rdefinitions.RbaseSymbolsImpl.R1;
     Rdefinitions.RbaseSymbolsImpl.R1_def; Raxioms.R1_neq_R0;
     RIneq.RField_field_lemma1; RIneq.RField_field_lemma3;
     RIneq.RField_lemma5; RIneq.RField_ring_lemma1; Rbasic_fun.RRle_abs;
     RMicromega.RTautoChecker; RMicromega.RTautoChecker_sound;
     RealField.RTheory; RMicromega.RWeakChecker;
     RMicromega.RWeakChecker_sound; RMicromega.RWitness; Rlimit.R_met;
     RMicromega.R_of_Rcst; RealField.R_power_theory; RIneq.R_rm;
     InitialRing.R_set1; InitialRing.R_set1_Reflexive;
     InitialRing.R_set1_Transitive; InitialRing.R_setoid3;
     InitialRing.R_setoid3_Reflexive; InitialRing.R_setoid3_Symmetric;
     InitialRing.R_setoid3_Transitive; InitialRing.R_setoid4;
     InitialRing.R_setoid4_Reflexive; InitialRing.R_setoid4_Transitive;
     Rbasic_fun.Rabs; Rbasic_fun.Rabs_R0; Rbasic_fun.Rabs_Ropp;
     Rbasic_fun.Rabs_def1; Rbasic_fun.Rabs_def2; Rbasic_fun.Rabs_inv;
     Rbasic_fun.Rabs_minus_sym; Rbasic_fun.Rabs_mult; Rbasic_fun.Rabs_no_R0;
     Rbasic_fun.Rabs_pos; Rbasic_fun.Rabs_pos_eq; Rbasic_fun.Rabs_pos_lt;
     Rbasic_fun.Rabs_right; Rbasic_fun.Rabs_triang;
     Rbasic_fun.Rabs_triang_inv; Rdefinitions.RbaseSymbolsImpl.Rabst;
     Ring_theory.Radd_0_l; Ring_theory.Radd_assoc; Ring_theory.Radd_comm;
     Ring_theory.Radd_ext; Rbasic_fun.Rcase_abs;
     ConstructiveRcomplete.Rcauchy_complete; RMicromega.Rcst_ind;
     RealField.Rdef_pow_add; Rfunctions.Rdist; Rfunctions.Rdist_plus;
     Rfunctions.Rdist_pos; Rfunctions.Rdist_refl; Rfunctions.Rdist_sym;
     Rfunctions.Rdist_tri; Ring_theory.Rdistr_l; Rdefinitions.Rdiv;
     RIneq.Rdiv_plus_distr; CRelationClasses.Reflexive;
     RelationClasses.Reflexive; Morphisms.ReflexiveProxy;
     CMorphisms.Reflexive_partial_app_morphism;
     Morphisms.Reflexive_partial_app_morphism; Rdefinitions.Req_appart_dec;
     RIneq.Req_dec; RIneq.Req_dec_T; OrderedRing.Req_dne; OrderedRing.Req_em;
     RIneq.Req_le; RIneq.Req_le_sym; RMicromega.Reval_bop2;
     RMicromega.Reval_expr; RMicromega.Reval_formula;
     RMicromega.Reval_formula'; RMicromega.Reval_formula_compat;
     RMicromega.Reval_nformula_dec; RMicromega.Reval_op2;
     RMicromega.Reval_op2_hold; RMicromega.Reval_pop2;
     RMicromega.Reval_pop2_eval_op2; RealField.Rfield; Rdefinitions.Rge;
     RIneq.Rge_antisym; RIneq.Rge_gt_dec; RIneq.Rge_gt_trans; RIneq.Rge_le;
     RIneq.Rge_minus; RIneq.Rge_not_lt; RIneq.Rge_trans; Rdefinitions.Rgt;
     RIneq.Rgt_dec; RIneq.Rgt_ge_trans; RIneq.Rgt_lt; RIneq.Rgt_minus;
     RIneq.Rgt_not_eq; RIneq.Rgt_not_ge; RIneq.Rgt_not_le; RIneq.Rgt_trans;
     BinInt.Z.Rgt_wd; Rdefinitions.RinvImpl.Rinv; RIneq.Rinv_0;
     RIneq.Rinv_0_lt_compat; RIneq.Rinv_1; RMicromega.Rinv_1;
     Rdefinitions.RinvImpl.Rinv_def; Raxioms.Rinv_l; RIneq.Rinv_lt_0_compat;
     RIneq.Rinv_mult; RIneq.Rinv_neq_0_compat; RIneq.Rinv_opp; RIneq.Rinv_r;
     Rdefinitions.Rle; RIneq.Rle_0_1; RIneq.Rle_0_sqr; RIneq.Rle_Reflexive;
     RIneq.Rle_Transitive; Rbasic_fun.Rle_abs; RIneq.Rle_antisym;
     OrderedRing.Rle_antisymm; RIneq.Rle_dec; RIneq.Rle_ge;
     OrderedRing.Rle_gt_cases; RIneq.Rle_le_eq; OrderedRing.Rle_le_minus;
     RIneq.Rle_lt_dec; OrderedRing.Rle_lt_eq; OrderedRing.Rle_lt_trans;
     RIneq.Rle_lt_trans; OrderedRing.Rle_ngt; RIneq.Rle_not_lt;
     OrderedRing.Rle_refl; RIneq.Rle_refl; OrderedRing.Rle_trans;
     RIneq.Rle_trans; Rdefinitions.RbaseSymbolsImpl.Rlt; RIneq.Rlt_0_1;
     RIneq.Rlt_0_2; RIneq.Rlt_0_minus; RIneq.Rlt_0_sqr; Raxioms.Rlt_asym;
     RIneq.Rlt_dec; Rdefinitions.RbaseSymbolsImpl.Rlt_def;
     RIneq.Rlt_dichotomy_converse; RIneq.Rlt_gt; RIneq.Rlt_irrefl;
     RIneq.Rlt_le; RIneq.Rlt_le_dec; OrderedRing.Rlt_le_neq;
     OrderedRing.Rlt_le_trans; RIneq.Rlt_le_trans; OrderedRing.Rlt_lt_minus;
     OrderedRing.Rlt_neq; OrderedRing.Rlt_nge; RIneq.Rlt_not_eq;
     RIneq.Rlt_not_ge; RIneq.Rlt_not_le; RIneq.Rlt_or_le;
     OrderedRing.Rlt_trans; Raxioms.Rlt_trans; OrderedRing.Rlt_trichotomy;
     BinNat.N.Rlt_wd; PeanoNat.Nat.Rlt_wd; BinInt.Z.Rlt_wd; Rbasic_fun.Rmax;
     Rbasic_fun.Rmax_Rlt; Rbasic_fun.Rmax_case_strong; Rbasic_fun.Rmax_l;
     Rbasic_fun.Rmax_left; Rbasic_fun.Rmax_lub_lt; Rbasic_fun.Rmax_r;
     Rbasic_fun.Rmax_right; Rbasic_fun.Rmax_stable_in_negreal;
     Rbasic_fun.Rmin; Rbasic_fun.Rmin_Rgt; Rbasic_fun.Rmin_Rgt_l;
     Rbasic_fun.Rmin_Rgt_r; Rbasic_fun.Rmin_case_strong;
     Rbasic_fun.Rmin_glb_lt; Rbasic_fun.Rmin_l; Rbasic_fun.Rmin_r;
     Rbasic_fun.Rmin_stable_in_posreal; Rdefinitions.Rminus;
     RIneq.Rminus_0_r; RIneq.Rminus_diag_eq; RIneq.Rminus_diag_uniq;
     RIneq.Rminus_diag_uniq_sym; OrderedRing.Rminus_eq_0;
     RIneq.Rminus_eq_contra; RIneq.Rminus_ge; RIneq.Rminus_gt;
     RIneq.Rminus_le; RIneq.Rminus_lt; RIneq.Rminus_not_eq;
     RIneq.Rminus_plus_distr; RIneq.Rminus_plus_l_l; RIneq.Rminus_plus_r_l;
     RIneq.Rminus_plus_r_r; Ring_theory.Rmul_0_l; Ring_theory.Rmul_1_l;
     Ring_theory.Rmul_assoc; Ring_theory.Rmul_comm; Ring_theory.Rmul_ext;
     Rdefinitions.RbaseSymbolsImpl.Rmult; RIneq.Rmult_0_l; RIneq.Rmult_0_r;
     Raxioms.Rmult_1_l; RIneq.Rmult_1_r; Raxioms.Rmult_assoc;
     Raxioms.Rmult_comm; Rdefinitions.RbaseSymbolsImpl.Rmult_def;
     RIneq.Rmult_div_l; RIneq.Rmult_div_r; RIneq.Rmult_eq_compat_l;
     RIneq.Rmult_eq_reg_l; RIneq.Rmult_ge_0_gt_0_lt_compat;
     RIneq.Rmult_gt_0_compat; RIneq.Rmult_integral;
     RIneq.Rmult_integral_contrapositive;
     RIneq.Rmult_integral_contrapositive_currified; RIneq.Rmult_inv_r_id_l;
     RIneq.Rmult_inv_r_id_m; RIneq.Rmult_inv_r_uniq;
     RIneq.Rmult_le_0_lt_compat; RIneq.Rmult_le_compat;
     RIneq.Rmult_le_compat_l; RIneq.Rmult_le_compat_neg_l;
     RIneq.Rmult_le_compat_r; RIneq.Rmult_le_pos; RIneq.Rmult_lt_0_compat;
     Raxioms.Rmult_lt_compat_l; RIneq.Rmult_lt_compat_r;
     RIneq.Rmult_lt_gt_compat_neg_l; RIneq.Rmult_lt_reg_l; RIneq.Rmult_ne;
     RIneq.Rmult_opp_opp; Raxioms.Rmult_plus_distr_l;
     RIneq.Rmult_plus_distr_r; RMicromega.Rnegate; OrderedRing.Rneq_symm;
     RMicromega.Rnormalise; RIneq.Rnot_gt_ge; RIneq.Rnot_le_gt;
     RIneq.Rnot_le_lt; RIneq.Rnot_lt_ge; RIneq.Rnot_lt_le;
     Rdefinitions.RbaseSymbolsImpl.Ropp; RIneq.Ropp_0; Rbasic_fun.Ropp_Rmin;
     RIneq.Ropp_Ropp_IZR; Ring_theory.Ropp_add; Ring_theory.Ropp_def;
     Rdefinitions.RbaseSymbolsImpl.Ropp_def; RIneq.Ropp_eq_0_compat;
     RIneq.Ropp_eq_compat; RIneq.Ropp_eq_reg; Ring_theory.Ropp_ext;
     RIneq.Ropp_ge_cancel; RIneq.Ropp_ge_le_contravar;
     RIneq.Ropp_gt_lt_0_contravar; RIneq.Ropp_gt_lt_contravar;
     RIneq.Ropp_involutive; RIneq.Ropp_le_cancel; RIneq.Ropp_le_contravar;
     RIneq.Ropp_le_ge_contravar; RIneq.Ropp_lt_cancel;
     RIneq.Ropp_lt_contravar; RIneq.Ropp_lt_gt_0_contravar;
     RIneq.Ropp_lt_gt_contravar; OrderedRing.Ropp_lt_mono;
     RIneq.Ropp_minus_distr; Ring_theory.Ropp_mul_l; RIneq.Ropp_mult_distr_l;
     RIneq.Ropp_mult_distr_l_reverse; RIneq.Ropp_mult_distr_r;
     RIneq.Ropp_neq_0_compat; Ring_theory.Ropp_opp; RIneq.Ropp_plus_distr;
     OrderedRing.Ropp_pos_neg; RingMicromega.Rops_wd;
     Rdefinitions.RbaseSymbolsImpl.Rplus; OrderedRing.Rplus_0_l;
     Raxioms.Rplus_0_l; OrderedRing.Rplus_0_r; RIneq.Rplus_0_r;
     RIneq.Rplus_0_r_uniq; Raxioms.Rplus_assoc; OrderedRing.Rplus_cancel_l;
     OrderedRing.Rplus_comm; Raxioms.Rplus_comm;
     Rdefinitions.RbaseSymbolsImpl.Rplus_def; RIneq.Rplus_diag;
     RIneq.Rplus_eq_compat_l; RIneq.Rplus_eq_compat_r; RIneq.Rplus_eq_reg_l;
     RIneq.Rplus_ge_compat_l; RIneq.Rplus_ge_compat_r; RIneq.Rplus_ge_reg_r;
     RIneq.Rplus_half_diag; RIneq.Rplus_le_compat; RIneq.Rplus_le_compat_l;
     RIneq.Rplus_le_compat_r; RIneq.Rplus_le_lt_0_compat;
     RIneq.Rplus_le_lt_0_neq_0; RIneq.Rplus_le_lt_compat;
     OrderedRing.Rplus_le_lt_mono; OrderedRing.Rplus_le_mono;
     OrderedRing.Rplus_le_mono_l; OrderedRing.Rplus_le_mono_r;
     RIneq.Rplus_le_reg_l; RIneq.Rplus_le_reg_r; RIneq.Rplus_lt_0_compat;
     RIneq.Rplus_lt_compat; Raxioms.Rplus_lt_compat_l;
     RIneq.Rplus_lt_compat_r; RIneq.Rplus_lt_le_0_compat;
     RIneq.Rplus_lt_le_compat; OrderedRing.Rplus_lt_le_mono;
     OrderedRing.Rplus_lt_mono; OrderedRing.Rplus_lt_mono_l;
     OrderedRing.Rplus_lt_mono_r; RIneq.Rplus_lt_reg_l; RIneq.Rplus_lt_reg_r;
     RIneq.Rplus_minus_assoc; RIneq.Rplus_minus_l; RIneq.Rplus_minus_r;
     RIneq.Rplus_ne; OrderedRing.Rplus_nonneg_nonneg;
     OrderedRing.Rplus_nonneg_pos; RIneq.Rplus_opp_l; Raxioms.Rplus_opp_r;
     RIneq.Rplus_opp_r_uniq; OrderedRing.Rplus_pos_nonneg;
     OrderedRing.Rplus_pos_pos; Rdefinitions.RbaseSymbolsImpl.Rquot1;
     Rdefinitions.RbaseSymbolsImpl.Rquot2;
     Rdefinitions.RbaseSymbolsImpl.Rrepr; Raxioms.Rrepr_0; Raxioms.Rrepr_1;
     Rdefinitions.Rrepr_appart_0; Raxioms.Rrepr_le; Raxioms.Rrepr_mult;
     Raxioms.Rrepr_opp; Raxioms.Rrepr_plus; Field_theory.Rring_ring_lemma1;
     RMicromega.Rsor; RIneq.Rsqr; RIneq.Rsqr_0_uniq; RIneq.Rsqr_def;
     RMicromega.Rsrt; Ring_theory.Rsub_def; Ring_theory.Rth_ARth;
     OrderedRing.Rtimes_0_l; OrderedRing.Rtimes_0_r; OrderedRing.Rtimes_comm;
     OrderedRing.Rtimes_neg_neg; OrderedRing.Rtimes_neq_0;
     OrderedRing.Rtimes_nonneg_nonneg; OrderedRing.Rtimes_pos_neg;
     OrderedRing.Rtimes_pos_pos; OrderedRing.Rtimes_square_nonneg;
     RIneq.Rtotal_order; ConstructiveRcomplete.Rup_pos;
     RingMicromega.SORRing_ring_lemma1; OrderedRing.SOR_ring_lemma1;
     RingMicromega.SORcleb_morph; RingMicromega.SORcneqb_morph;
     OrderedRing.SORle_antisymm; OrderedRing.SORle_refl;
     OrderedRing.SORle_trans; OrderedRing.SORle_wd; OrderedRing.SORlt_le_neq;
     OrderedRing.SORlt_trichotomy; OrderedRing.SORlt_wd;
     OrderedRing.SORopp_wd; OrderedRing.SORplus_le_mono_l;
     OrderedRing.SORplus_wd; RingMicromega.SORpower; RingMicromega.SORrm;
     OrderedRing.SORrt; OrderedRing.SORsetoid; OrderedRing.SORtimes_pos_pos;
     OrderedRing.SORtimes_wd; Ring_theory.SRadd_0_l; Ring_theory.SRadd_assoc;
     Ring_theory.SRadd_comm; Ring_theory.SRadd_ext; Ring_theory.SRdistr_l;
     Ring_theory.SReqe_Reqe; Ring_theory.SRmul_0_l; Ring_theory.SRmul_1_l;
     Ring_theory.SRmul_assoc; Ring_theory.SRmul_comm; Ring_theory.SRmul_ext;
     Ring_theory.SRopp; Ring_theory.SRopp_add; Ring_theory.SRopp_ext;
     Ring_theory.SRopp_mul_l; Ring_theory.SRsub; Ring_theory.SRsub_def;
     Ring_theory.SRth_ARth; Setoid.Seq_refl; Setoid.Seq_sym;
     Setoid.Seq_trans; Setoid.Setoid_Theory; Ring_theory.Smorph0;
     Ring_theory.Smorph1; Ring_theory.Smorph_add; Ring_theory.Smorph_eq;
     Ring_theory.Smorph_morph; Ring_theory.Smorph_mul;
     Ring_theory.Smorph_opp; Ring_theory.Smorph_sub;
     RelationClasses.StrictOrder_Irreflexive;
     RelationClasses.StrictOrder_Transitive; CRelationClasses.Symmetric;
     RelationClasses.Symmetric; Tauto.TFormula; CRelationClasses.Transitive;
     RelationClasses.Transitive; ConstructiveRcomplete.Un_cauchy_mod;
     Rseries.Un_cv; ConstructiveLimits.Un_cv_nat_real; Init.Unconvertible;
     ConstructiveCauchyRealsMult.Weaken_Qle_QpowerAddExp;
     ConstructiveCauchyRealsMult.Weaken_Qle_QpowerFac;
     ConstructiveCauchyRealsMult.Weaken_Qle_QpowerRemSubExp;
     ZMicromega.ZChecker; ZMicromega.ZChecker_sound; ZMicromega.ZNpower;
     ZMicromega.ZSORaddon; ZMicromega.ZTautoChecker;
     ZMicromega.ZTautoChecker_sound; ZMicromega.ZWitness; Znat.Z_N_nat;
     RIneq.Z_R_minus; ZArith_dec.Z_dec'; Zdiv.Z_div_mod;
     Zdiv.Z_div_mod_eq_full; ConstructiveExtra.Z_inj_nat;
...TRUNCATED BY DUNE...
     Tauto.add_term; Tauto.add_term_correct; BinNat.N.add_wd;
     PeanoNat.Nat.add_wd; BinInt.Z.add_wd; PeanoNat.Nat.add_wd_obligation_1;
     BinPos.Pos.add_xI_pred_double; BinPos.Pos.add_xO; Rlimit.adhDa;
     Rtopology.adherence; Rtopology.adherence_P1; Rtopology.adherence_P2;
     Rtopology.adherence_P3; ZMicromega.agree_env;
     ZMicromega.agree_env_eval_nformula; ZMicromega.agree_env_eval_nformulae;
     ZMicromega.agree_env_jump; ZMicromega.agree_env_subset;
     ZMicromega.agree_env_tail; all; Morphisms_Prop.all_iff_morphism;
     Morphisms_Prop.all_iff_morphism_obligation_1; and_assoc; Tauto.and_cnf;
     Tauto.and_cnf_opt; Tauto.and_cnf_opt_cnf_ff_r; Tauto.and_cnf_opt_cnf_tt;
     and_comm; and_iff_compat_l; Morphisms_Prop.and_iff_morphism;
     Morphisms_Prop.and_iff_morphism_obligation_1; and_ind;
     ZifyClasses.and_morph; and_rec; and_rect; andb; Bool.andb_false_iff;
     andb_prop; Bool.andb_true_iff; app; CRelationClasses.arrow;
     CRelationClasses.arrow_Transitive;
     CRelationClasses.arrow_Transitive_obligation_1; ZMicromega.bdepth;
     BinNat.N.bi_induction; PeanoNat.Nat.bi_induction; BinInt.Z.bi_induction;
     ConstructiveCauchyReals.bound; Raxioms.bound; ZMicromega.bound_var;
     Rtopology.bounded; BinNat.N.case_analysis; PeanoNat.Nat.case_analysis;
     ConstructiveCauchyReals.cauchy; ZMicromega.ceiling;
     BinNat.N.central_induction; PeanoNat.Nat.central_induction;
     BinInt.Z.central_induction; EnvRing.ceqb_spec; Field_theory.ceqb_spec;
     Ring_polynom.ceqb_spec; Field_theory.ceqb_spec';
     RingMicromega.check_inconsistent;
     RingMicromega.check_inconsistent_sound;
     RingMicromega.check_normalised_formulas; RingMicromega.checker_nf_sound;
     Classical_Prop.classic; Tauto.clause; RingMicromega.cleb_sound;
     Rtopology.closed_set; Rtopology.closed_set_P1; RingMicromega.cltb;
     RingMicromega.cltb_sound; RingMicromega.cneqb;
     RingMicromega.cneqb_sound; Tauto.cnf; Tauto.cnf_checker;
     Tauto.cnf_checker_sound; Tauto.cnf_ff; RingMicromega.cnf_negate;
     RingMicromega.cnf_negate_correct; RingMicromega.cnf_normalise;
     RingMicromega.cnf_normalise_correct; RingMicromega.cnf_of_list;
     ZMicromega.cnf_of_list; RingMicromega.cnf_of_list_correct;
     ZMicromega.cnf_of_list_correct; Tauto.cnf_tt; Rtopology.compact;
     Rtopology.compact_EMP; Rtopology.compact_P1; Rtopology.compact_P2;
     Rtopology.compact_P3; Rtopology.compact_eqDom; PeanoNat.Nat.compare;
     BinNat.N.compare; BinPos.Pos.compare; BinInt.Z.compare;
     BinNat.N.compare_antisym; PeanoNat.Nat.compare_antisym;
     BinPos.Pos.compare_antisym; BinInt.Z.compare_antisym;
     BinPos.Pos.compare_cont; BinPos.Pos.compare_cont_antisym;
     BinPos.Pos.compare_cont_spec; BinNat.N.compare_eq_iff;
     PeanoNat.Nat.compare_eq_iff; BinPos.Pos.compare_eq_iff;
     BinInt.Z.compare_eq_iff; PeanoNat.Nat.compare_ge_iff;
     PeanoNat.Nat.compare_gt_iff; BinInt.Z.compare_gt_iff;
     BinNat.N.compare_le_iff; PeanoNat.Nat.compare_le_iff;
     BinPos.Pos.compare_le_iff; BinInt.Z.compare_le_iff;
     BinNat.N.compare_lt_iff; PeanoNat.Nat.compare_lt_iff;
     BinPos.Pos.compare_lt_iff; BinInt.Z.compare_lt_iff;
     BinNat.N.compare_nge_iff; BinInt.Z.compare_nge_iff;
     BinInt.Z.compare_ngt_iff; BinNat.N.compare_nle_iff;
     BinInt.Z.compare_nle_iff; BinNat.N.compare_refl;
     PeanoNat.Nat.compare_refl; BinPos.Pos.compare_refl;
     BinInt.Z.compare_refl; BinNat.N.compare_spec; PeanoNat.Nat.compare_spec;
     BinPos.Pos.compare_spec; Qminmax.Q.OT.compare_spec;
     BinInt.Z.compare_spec; BinInt.Z.compare_sub;
     BinPos.Pos.compare_sub_mask; PeanoNat.Nat.compare_succ;
     BinPos.Pos.compare_succ_l; BinPos.Pos.compare_succ_r;
     BinPos.Pos.compare_succ_succ; BinPos.Pos.compare_xI_xI;
     BinPos.Pos.compare_xI_xO; BinPos.Pos.compare_xO_xI;
     BinPos.Pos.compare_xO_xO; RelationClasses.complement;
     Rtopology.complementary; Raxioms.completeness; Rtopology.cond_fam;
     RIneq.cond_neg; RIneq.cond_pos; Field_theory.condition;
     ConstructiveEpsilon.constructive_indefinite_ground_description;
     ConstructiveExtra.constructive_indefinite_ground_description_Z;
     ConstructiveEpsilon.constructive_indefinite_ground_description_nat;
     Rderiv.cont_deriv; Rderiv.continue_in; Ranalysis1.continuity;
     Rtopology.continuity_P1; Rtopology.continuity_P2;
     Rtopology.continuity_ab_maj; Rtopology.continuity_ab_min;
     Rtopology.continuity_compact; Ranalysis1.continuity_pt;
     Ranalysis1.continuity_pt_minus; Ranalysis1.continuity_pt_mult;
     Ranalysis1.continuity_pt_opp; Rtopology.covering;
     Rtopology.covering_finite; Rtopology.covering_open_set;
     CRelationClasses.crelation; Field_theory.cross_product_eq;
     ZMicromega.cutting_plane_sound; Decidable.decidable;
     Field_theory.default_isIn; Field_theory.default_isIn_ok;
     SetoidTactics.default_relation; Field_theory.denum;
     Ranalysis1.deriv_constant2; Ranalysis1.deriv_maximum;
     Ranalysis1.deriv_minimum; Ranalysis1.derivable;
     Ranalysis1.derivable_const; Ranalysis1.derivable_continuous;
     Ranalysis1.derivable_continuous_pt; Ranalysis1.derivable_derive;
     Ranalysis1.derivable_id; Ranalysis1.derivable_pt;
     Ranalysis1.derivable_pt_abs; Ranalysis1.derivable_pt_const;
     Ranalysis1.derivable_pt_id; Ranalysis1.derivable_pt_lim;
     Ranalysis1.derivable_pt_lim_D_in; Ranalysis1.derivable_pt_lim_const;
     Ranalysis1.derivable_pt_lim_id; Ranalysis1.derivable_pt_lim_minus;
     Ranalysis1.derivable_pt_lim_mult; Ranalysis1.derivable_pt_lim_opp;
     Ranalysis1.derivable_pt_lim_opp_fwd; Ranalysis1.derivable_pt_minus;
     Ranalysis1.derivable_pt_mult; Ranalysis1.derivable_pt_opp;
     Ranalysis1.derive_pt; Ranalysis1.derive_pt_D_in;
     Ranalysis1.derive_pt_const; Ranalysis1.derive_pt_eq;
     Ranalysis1.derive_pt_eq_0; Ranalysis1.derive_pt_eq_1;
     Ranalysis1.derive_pt_id; Ranalysis1.derive_pt_minus;
     Ranalysis1.derive_pt_mult; Ranalysis1.derive_pt_opp;
     Bool.diff_false_true; Rtopology.disc; Rtopology.disc_P1;
     Field_theory.display_pow_linear; Rlimit.dist; BinInt.Z.div;
     BinNat.N.div_eucl; BinInt.Z.div_eucl; BinInt.Z.div_eucl_eq;
     BinNat.N.div_eucl_spec; Ring_theory.div_eucl_th; BinInt.Z.div_mod;
     BinInt.Z.Private_NZDiv.div_mod_unique; BinInt.Z.div_mod_unique;
     BinInt.Z.div_mul; BinInt.Z.div_unique; BinInt.Z.div_unique_exact;
     BinInt.Z.div_wd; BinPos.Pos.divide; BinInt.Z.divide;
     BinInt.Z.divide_Zpos; BinInt.Z.divide_Zpos_Zneg_l;
     BinInt.Z.divide_Zpos_Zneg_r; BinInt.Z.divide_abs_l;
     BinInt.Z.divide_abs_r; BinPos.Pos.divide_add_cancel_l;
     BinInt.Z.divide_antisym; BinInt.Z.divide_antisym_abs;
     BinInt.Z.divide_antisym_nonneg; BinPos.Pos.divide_mul_l;
     BinPos.Pos.divide_mul_r; BinInt.Z.divide_opp_l; BinInt.Z.divide_opp_r;
     BinInt.Z.divide_refl; BinInt.Z.divide_trans; BinInt.Z.divide_wd;
     BinPos.Pos.divide_xO_xI; BinPos.Pos.divide_xO_xO;
     Rtopology.domain_finite; BinNat.N.double; BinInt.Z.double;
     BinNat.N.double_add; BinPos.Pos.double_mask; BinNat.N.double_mul;
     BinPos.Pos.double_pred_mask; Tauto.eAND; Tauto.eAnd_morph_Proper;
     Tauto.eFF; Tauto.eIFF; Tauto.eIFF_morph_Proper; Tauto.eIMPL;
     Tauto.eIMPL_morph_Proper; Tauto.eKind; Tauto.eNOT;
     Tauto.eNOT_morph_Proper; Tauto.eOR; Tauto.eOR_morph_Proper; Tauto.eTT;
     Tauto.e_rtyp; Tauto.eiff; Tauto.eiff_eq; Tauto.eiff_refl;
     Tauto.eiff_sym; Tauto.eiff_trans; Ztac.elim_concl_le; EnvRing.env_morph;
     Rlimit.eps2; Rlimit.eps2_Rgt_R0; BinNat.N.eq; BinInt.Z.eq;
     RingMicromega.eq0_cnf; Qreals.eqR_Qeq; Rtopology.eq_Dom; RIneq.eq_IZR;
     RIneq.eq_IZR_R0; RIneq.eq_IZR_contrapositive;
     RelationClasses.eq_Reflexive; RelationClasses.eq_Symmetric;
     RelationClasses.eq_Transitive; eq_add_S; ZMicromega.eq_cnf;
     BinPos.Pos.eq_dec; BinInt.Z.eq_dec; BinInt.Z.eq_decidable;
     BinNat.N.Private_OrderTac.IsTotal.eq_equiv;
     PeanoNat.Nat.Private_OrderTac.IsTotal.eq_equiv;
     BinInt.Z.Private_OrderTac.IsTotal.eq_equiv; BinNat.N.eq_equiv;
     PeanoNat.Nat.eq_equiv; BinPos.Pos.eq_equiv; Qminmax.Q.OT.eq_equiv;
     BinInt.Z.eq_equiv; RelationClasses.eq_equivalence; Ztac.eq_incl; eq_ind;
     eq_ind_r; BinPos.Pos.Private_Tac.eq_le; Qminmax.Q.Private_Tac.eq_le;
     BinInt.Z.Private_Tac.eq_le; BinInt.Z.Private_OrderTac.Tac.eq_le;
     ZMicromega.eq_le_iff; BinNat.N.eq_le_incl; PeanoNat.Nat.eq_le_incl;
     BinInt.Z.eq_le_incl; PeanoNat.Nat.Private_Tac.eq_lt;
     BinPos.Pos.Private_Tac.eq_lt; Qminmax.Q.Private_Tac.eq_lt;
     BinInt.Z.Private_Tac.eq_lt; BinInt.Z.Private_OrderTac.Tac.eq_lt;
     BinInt.Z.eq_mul_0; BinInt.Z.eq_mul_1_nonneg; BinInt.Z.eq_mul_1_nonneg';
     BinPos.Pos.Private_Tac.eq_neq; BinInt.Z.Private_OrderTac.Tac.eq_neq;
     BinInt.Z.eq_opp_l; ZifyInst.eq_pos_inj; Morphisms.eq_proper_proxy;
     eq_rec; eq_rec_r; eq_rect; BinPos.Pos.Private_Tac.eq_refl;
     BinInt.Z.Private_OrderTac.Tac.eq_refl; BinInt.Z.eq_refl; eq_sym;
     PeanoNat.Nat.Private_Tac.eq_sym; BinPos.Pos.Private_Tac.eq_sym;
     Qminmax.Q.Private_Tac.eq_sym; BinInt.Z.Private_Tac.eq_sym;
     BinInt.Z.Private_OrderTac.Tac.eq_sym; BinInt.Z.eq_sym_iff; eq_trans;
     BinPos.Pos.Private_Tac.eq_trans; BinInt.Z.Private_OrderTac.Tac.eq_trans;
     Bool.eqb; BinNat.N.eqb; BinPos.Pos.eqb; BinInt.Z.eqb; BinNat.N.eqb_eq;
     BinPos.Pos.eqb_eq; BinInt.Z.eqb_eq; BinPos.Pos.eqb_neq;
     BinPos.Pos.eqb_refl; BinNat.N.eqb_spec; BinPos.Pos.eqb_spec;
     Bool.eqb_true_iff; SetoidTactics.equivalence_default;
     RelationClasses.equivalence_rewrite_relation; RingMicromega.eval_Psatz;
     ZMicromega.eval_Psatz; RingMicromega.eval_Psatz_Sound;
     ZMicromega.eval_Psatz_sound; Tauto.eval_bf; Tauto.eval_bf_map;
     Tauto.eval_clause; Tauto.eval_cnf; Tauto.eval_cnf_and_opt;
     Tauto.eval_cnf_app; Tauto.eval_cnf_cons_iff; Tauto.eval_cnf_ff;
     Tauto.eval_cnf_tt; ZMicromega.eval_expr; Tauto.eval_f;
     Tauto.eval_f_morph; RingMicromega.eval_formula;
     RingMicromega.eval_formulaSC; RingMicromega.eval_nformula;
     ZMicromega.eval_nformula; ZMicromega.eval_nformula_bound_var;
     RingMicromega.eval_nformula_dec; ZMicromega.eval_nformula_mk_eq_pos;
     ZMicromega.eval_nformula_split; RingMicromega.eval_op1;
     RingMicromega.eval_op2; Tauto.eval_opt_clause; RingMicromega.eval_pexpr;
     RingMicromega.eval_pexprSC; RingMicromega.eval_pol; ZMicromega.eval_pol;
     ZMicromega.eval_pol_Pc; RingMicromega.eval_pol_add;
     ZMicromega.eval_pol_add; RingMicromega.eval_pol_norm;
     ZMicromega.eval_pol_norm; RingMicromega.eval_pol_opp;
     RingMicromega.eval_pol_sub; ZMicromega.eval_pol_sub;
     RingMicromega.eval_sexpr; RingMicromega.eval_sformula; Tauto.eval_tt;
     Morphisms_Prop.ex_iff_morphism;
     Morphisms_Prop.ex_iff_morphism_obligation_1; ex_ind; Rtopology.f;
     f_equal; f_equal_nat; Rtopology.family_finite;
     Rtopology.family_open_set; Field_theory.fcons_ok; Ranalysis1.fct_cte;
     Field_theory.field_is_integral_domain; VarMap.find; Basics.flip;
     CRelationClasses.flip; RelationClasses.flip_Reflexive; List.fold_left;
     List.fold_right; fst; BinPos.Pos.gcd; BinInt.Z.gcd;
     BinInt.Z.gcd_divide_l; BinInt.Z.gcd_divide_r; BinPos.Pos.gcd_greatest;
     BinInt.Z.gcd_greatest; BinInt.Z.gcd_nonneg; BinPos.Pos.gcdn;
     BinPos.Pos.gcdn_greatest; ge; BinPos.Pos.ge; BinInt.Z.ge;
     BinInt.Z.ge_le; BinPos.Pos.ge_le_iff; BinInt.Z.ge_le_iff; BinInt.Z.geb;
     BinInt.Z.geb_le; BinInt.Z.geb_leb; ZMicromega.genCuttingPlane;
     ZMicromega.genCuttingPlaneNone; InitialRing.gen_Zeqb_ok;
     InitialRing.gen_phiN; InitialRing.gen_phiN1; InitialRing.gen_phiN_add;
     InitialRing.gen_phiN_morph; InitialRing.gen_phiN_mult;
     InitialRing.gen_phiN_sub; InitialRing.gen_phiPOS;
     InitialRing.gen_phiPOS1; InitialRing.gen_phiZ; InitialRing.gen_phiZ1;
     InitialRing.gen_phiZ1_pos_sub; InitialRing.gen_phiZ_add;
     InitialRing.gen_phiZ_ext; InitialRing.gen_phiZ_morph;
     InitialRing.gen_phiZ_mul; EnvRing.get_PEopp; Ring_polynom.get_PEopp;
     InitialRing.get_signZ; InitialRing.get_signZ_th;
     Ring_theory.get_sign_None; Ring_theory.get_sign_None_th;
     BinPos.Pos.ggcd; BinInt.Z.ggcd; BinPos.Pos.ggcd_correct_divisors;
     BinInt.Z.ggcd_correct_divisors; BinPos.Pos.ggcd_gcd; BinInt.Z.ggcd_gcd;
     BinPos.Pos.ggcdn; BinPos.Pos.ggcdn_correct_divisors;
     BinPos.Pos.ggcdn_gcdn; ConstructiveLUB.glb_dec_Q; BinPos.Pos.gt;
     BinInt.Z.gt; BinPos.Pos.gt_lt; BinInt.Z.gt_lt; BinPos.Pos.gt_lt_iff;
     BinInt.Z.gt_lt_iff; BinInt.Z.gt_wf; BinInt.Z.gtb; BinInt.Z.gtb_ltb;
     BinInt.Z.gtb_spec; Env.hd; List.hd; Tauto.hold; Tauto.hold_eAND;
     Tauto.hold_eEQ; Tauto.hold_eFF; Tauto.hold_eIFF; Tauto.hold_eIFF_IMPL;
     Tauto.hold_eIMPL; Tauto.hold_eNOT; Tauto.hold_eOR; Tauto.hold_eTT;
     Tauto.hold_eiff; id; Ranalysis1.id; Nnat.N2Nat.id; Znat.N2Z.id;
     Nnat.Nat2N.id; Pnat.Nat2Pos.id; Znat.Nat2Z.id; Pnat.Pos2Nat.id;
     Znat.Z2N.id; Znat.Z2Nat.id; BinInt.Z2Pos.id; Ring_theory.id_phi_N;
     Pnat.SuccNat2Pos.id_succ; Tauto.if_cnf_tt; Field_theory.if_true; iff;
     CRelationClasses.iffT; CMorphisms.iffT_arrow_subrelation;
     CMorphisms.iffT_flip_arrow_subrelation; RelationClasses.iff_Reflexive;
     RelationClasses.iff_Symmetric; RelationClasses.iff_Transitive;
     RelationClasses.iff_equivalence; Morphisms.iff_flip_impl_subrelation;
     Morphisms_Prop.iff_iff_iff_impl_morphism;
     Morphisms_Prop.iff_iff_iff_impl_morphism_obligation_1;
     Morphisms.iff_impl_subrelation; iff_refl; Bool.iff_reflect; iff_stepl;
     iff_sym; iff_trans; Rtopology.image_dir; Rtopology.image_rec;
     Basics.impl; RelationClasses.impl_Reflexive;
     RelationClasses.impl_Reflexive_obligation_1; implb;
     Classical_Prop.imply_to_and; ZMicromega.in_bdepth; Rtopology.included;
     Rtopology.included_trans; Rtopology.ind; BinNat.N.induction;
     PeanoNat.Nat.induction; ZifyClasses.inj; Nnat.N2Nat.inj; Znat.Nat2Z.inj;
     Pnat.Pos2Nat.inj; BinInt.Pos2Z.inj; Pnat.Pos2Nat.inj_1;
     Nnat.N2Nat.inj_add; Znat.N2Z.inj_add; Nnat.Nat2N.inj_add;
     Znat.Nat2Z.inj_add; Pnat.Pos2Nat.inj_add; BinInt.Pos2Z.inj_add;
     Nnat.N2Nat.inj_compare; Znat.N2Z.inj_compare; Nnat.Nat2N.inj_compare;
     Znat.Nat2Z.inj_compare; Pnat.Pos2Nat.inj_compare;
     Znat.Z2Nat.inj_compare; Znat.Nat2Z.inj_ge; Znat.Nat2Z.inj_iff;
     BinInt.Pos2Z.inj_iff; Znat.Nat2Z.inj_le; Pnat.Pos2Nat.inj_le;
     Znat.Z2Nat.inj_le; Znat.Nat2Z.inj_lt; Nnat.N2Nat.inj_max;
     Znat.N2Z.inj_max; Nnat.Nat2N.inj_max; Znat.Nat2Z.inj_max;
     Pnat.Pos2Nat.inj_mul; BinInt.Pos2Z.inj_mul; Znat.N2Z.inj_pos;
     BinInt.Pos2Z.inj_pow; BinInt.Pos2Z.inj_pow_pos; Znat.Nat2Z.inj_succ;
     Pnat.Pos2Nat.inj_succ; BinInt.Pos2Z.inj_succ; Pnat.Pos2Nat.inj_xI;
     Pnat.Pos2Nat.inj_xO; ConstructiveCauchyReals.inject_Q;
     ConstructiveCauchyReals.inject_Q_cauchy;
     ConstructiveCauchyReals.inject_Q_compare;
     ConstructiveCauchyReals.inject_Q_le;
     ConstructiveCauchyReals.inject_Q_lt;
     ConstructiveCauchyReals.inject_Q_morph;
     ConstructiveCauchyReals.inject_Q_morph_Proper;
     ConstructiveCauchyRealsMult.inject_Q_mult;
     ConstructiveCauchyReals.inject_Q_plus; ConstructiveCauchyReals.inject_Z;
     QArith_base.inject_Z; Rtopology.interior; Rtopology.interior_P1;
     Rtopology.interior_P2; Ring_polynom.interp_PElist;
     Ring_polynom.interp_PElist_ok; PeanoNat.Nat.Private_Tac.interp_ord;
     BinPos.Pos.Private_Tac.interp_ord; Qminmax.Q.Private_Tac.interp_ord;
     BinInt.Z.Private_Tac.interp_ord;
     BinNat.N.Private_OrderTac.Tac.interp_ord;
     PeanoNat.Nat.Private_OrderTac.Tac.interp_ord;
     BinInt.Z.Private_OrderTac.Tac.interp_ord; Rtopology.intersection_domain;
     Pnat.SuccNat2Pos.inv; ConstructiveEpsilon.inv_before_witness;
     Field_theory.isIn; Field_theory.isIn_ok;
     ConstructiveReals.isLinearOrder; Tauto.is_bool; Tauto.is_bool_inv;
     Tauto.is_cnf_ff; Tauto.is_cnf_ff_cnf_ff; Tauto.is_cnf_ff_inv;
     Tauto.is_cnf_tt; Tauto.is_cnf_tt_cnf_ff; Tauto.is_cnf_tt_inv;
     ConstructiveLUB.is_lub; Raxioms.is_lub; Znat.Nat2Z.is_nonneg;
     BinInt.Pos2Z.is_nonneg; ZMicromega.is_pol_Z0;
     ZMicromega.is_pol_Z0_eval_pol; Pnat.Pos2Nat.is_pos; BinInt.Pos2Z.is_pos;
     Pnat.Pos2Nat.is_succ; is_true; ConstructiveLUB.is_upper_bound;
     Raxioms.is_upper_bound; ConstructiveLUB.is_upper_bound_closed;
     ConstructiveLUB.is_upper_bound_dec;
     ConstructiveLUB.is_upper_bound_epsilon;
     ConstructiveLUB.is_upper_bound_glb;
     ConstructiveLUB.is_upper_bound_not_epsilon; BinPos.Pos.iter;
     BinPos.Pos.iter_add; BinPos.Pos.iter_ind; BinPos.Pos.iter_invariant;
     BinPos.Pos.iter_op; BinPos.Pos.iter_op_succ; BinPos.Pos.iter_succ;
     BinPos.Pos.iter_swap; BinPos.Pos.iter_swap_gen; BinList.jump; Env.jump;
     BinList.jump_add; Env.jump_add; Ring_polynom.jump_add';
     BinList.jump_pred_double; Env.jump_pred_double; Env.jump_simpl;
     BinList.jump_succ; BinList.jump_tl; BinNat.N.le; BinPos.Pos.le;
     BinInt.Z.le; ZMicromega.le_0_iff; BinNat.N.le_0_l; PeanoNat.Nat.le_0_l;
     le_0_n; BinInt.Z.le_0_sub; BinPos.Pos.le_1_l; le_S_n;
     BinInt.Z.le_add_le_sub_l; BinInt.Z.le_add_le_sub_r;
     BinPos.Pos.le_antisym; BinPos.Pos.Private_Tac.le_antisym;
     BinInt.Z.Private_OrderTac.Tac.le_antisym; BinInt.Z.le_antisymm;
     Qminmax.Q.Private_Tac.le_eq; BinInt.Z.Private_Tac.le_eq;
     BinInt.Z.Private_OrderTac.Tac.le_eq; BinInt.Z.le_exists_sub;
     BinInt.Z.le_ge; BinInt.Z.le_ge_cases; BinNat.N.le_gt_cases;
     PeanoNat.Nat.le_gt_cases; BinInt.Z.le_gt_cases; le_ind; BinInt.Z.le_ind;
     BinNat.N.le_le_succ_r; PeanoNat.Nat.le_le_succ_r; BinInt.Z.le_le_succ_r;
     BinInt.Z.le_lt_add_lt; Compare_dec.le_lt_dec;
     PeanoNat.Nat.Private_Tac.le_lt_trans;
     BinPos.Pos.Private_Tac.le_lt_trans; Qminmax.Q.Private_Tac.le_lt_trans;
     BinInt.Z.Private_Tac.le_lt_trans;
     BinNat.N.Private_OrderTac.Tac.le_lt_trans;
     PeanoNat.Nat.Private_OrderTac.Tac.le_lt_trans;
     BinInt.Z.Private_OrderTac.Tac.le_lt_trans; BinInt.Z.le_lt_trans;
     BinNat.N.Private_OrderTac.IsTotal.le_lteq;
     PeanoNat.Nat.Private_OrderTac.IsTotal.le_lteq;
     BinInt.Z.Private_OrderTac.IsTotal.le_lteq; BinNat.N.le_lteq;
     PeanoNat.Nat.le_lteq; BinPos.Pos.le_lteq; Qminmax.Q.OT.le_lteq;
     BinInt.Z.le_lteq; PeanoNat.Nat.le_max_l; BinPos.Pos.le_max_l;
     PeanoNat.Nat.le_max_r; BinPos.Pos.le_max_r; BinInt.Z.le_min_l; le_n_S;
     ZMicromega.le_neg; BinInt.Z.le_neq; BinPos.Pos.Private_Tac.le_neq_lt;
     BinInt.Z.Private_OrderTac.Tac.le_neq_lt; PeanoNat.Nat.le_ngt;
     BinInt.Z.le_ngt; BinPos.Pos.le_nlt; le_pred; BinNat.N.le_preorder;
     PeanoNat.Nat.le_preorder; BinInt.Z.le_preorder; BinNat.N.le_refl;
     PeanoNat.Nat.le_refl; BinPos.Pos.le_refl;
     BinInt.Z.Private_OrderTac.Tac.le_refl; BinInt.Z.le_refl;
     BinInt.Z.le_sub_le_add_l; BinInt.Z.le_sub_le_add_r; BinNat.N.le_succ_l;
     PeanoNat.Nat.le_succ_l; BinPos.Pos.le_succ_l; BinInt.Z.le_succ_l;
     BinNat.N.le_succ_r; PeanoNat.Nat.le_succ_r; BinInt.Z.le_succ_r;
     BinNat.N.le_trans; PeanoNat.Nat.le_trans; BinPos.Pos.le_trans;
     BinInt.Z.le_trans; BinNat.N.le_wd; PeanoNat.Nat.le_wd; BinInt.Z.le_wd;
     BinNat.N.leb; BinPos.Pos.leb; BinInt.Z.leb; BinInt.Z.leb_gt;
     BinNat.N.leb_le; BinPos.Pos.leb_le; BinInt.Z.leb_le; BinInt.Z.leb_nle;
     BinNat.N.leb_spec; BinInt.Z.leb_spec; BinNat.N.leb_spec0;
     BinInt.Z.leb_spec0; BinInt.Z.left_induction; Rlimit.limit1_in;
     Rlimit.limit_Ropp; Rlimit.limit_in; Rlimit.limit_minus;
     Rlimit.limit_mul; Rlimit.limit_plus;
     ConstructiveCauchyReals.linear_order_T;
     ConstructiveEpsilon.linear_search_conform;
     ConstructiveEpsilon.linear_search_from_0_conform; list_ind; list_rec;
     list_rect; Ring_polynom.local_mkpow_ok; lt; BinNat.N.lt; BinPos.Pos.lt;
     BinInt.Z.lt; BinInt.Z.lt_0_1; RIneq.lt_0_IZR; BinInt.Z.lt_0_sub;
     PeanoNat.Nat.lt_0_succ; BinInt.Z.lt_1_2; BinInt.Z.lt_1_l;
     BinInt.Z.lt_1_mul_pos; BinPos.Pos.lt_1_succ;
     ConstructiveReals.lt_CR_of_Q; RIneq.lt_IZR; BinInt.Z.lt_add_lt_sub_r;
     BinInt.Z.lt_add_pos_l; BinInt.Z.lt_add_pos_r; BinPos.Pos.lt_add_r;
     BinNat.N.lt_asymm; PeanoNat.Nat.lt_asymm; BinInt.Z.lt_asymm;
     BinNat.N.Private_OrderTac.IsTotal.lt_compat;
     PeanoNat.Nat.Private_OrderTac.IsTotal.lt_compat;
     BinInt.Z.Private_OrderTac.IsTotal.lt_compat; BinNat.N.lt_compat;
     PeanoNat.Nat.lt_compat; BinPos.Pos.lt_compat; Qminmax.Q.OT.lt_compat;
     BinInt.Z.lt_compat; BinPos.Pos.Private_Tac.lt_eq;
     Qminmax.Q.Private_Tac.lt_eq; BinInt.Z.Private_Tac.lt_eq;
     BinNat.N.Private_OrderTac.Tac.lt_eq;
     PeanoNat.Nat.Private_OrderTac.Tac.lt_eq;
     BinInt.Z.Private_OrderTac.Tac.lt_eq; BinNat.N.lt_eq_cases;
     PeanoNat.Nat.lt_eq_cases; BinPos.Pos.lt_eq_cases; BinInt.Z.lt_eq_cases;
     BinNat.N.lt_exists_pred; PeanoNat.Nat.lt_exists_pred;
     BinInt.Z.lt_exists_pred; BinInt.Z.lt_ge_cases; BinPos.Pos.lt_gt;
     BinInt.Z.lt_gt; BinInt.Z.lt_gt_cases; BinPos.Pos.lt_iff_add;
     BinNat.N.lt_ind; BinInt.Z.lt_ind; BinNat.N.lt_ind_rel;
     ConstructiveCauchyReals.lt_inject_Q; BinNat.N.lt_irrefl;
     PeanoNat.Nat.lt_irrefl; BinPos.Pos.lt_irrefl;
     PeanoNat.Nat.Private_Tac.lt_irrefl; BinPos.Pos.Private_Tac.lt_irrefl;
     Qminmax.Q.Private_Tac.lt_irrefl; BinInt.Z.Private_Tac.lt_irrefl;
     BinNat.N.Private_OrderTac.Tac.lt_irrefl;
     PeanoNat.Nat.Private_OrderTac.Tac.lt_irrefl;
     BinInt.Z.Private_OrderTac.Tac.lt_irrefl; BinInt.Z.lt_irrefl;
     ZMicromega.lt_le_iff; BinNat.N.lt_le_incl; PeanoNat.Nat.lt_le_incl;
     BinInt.Z.lt_le_incl; BinInt.Z.lt_le_pred; PeanoNat.Nat.lt_le_trans;
     BinPos.Pos.lt_le_trans; BinInt.Z.lt_le_trans; BinNat.N.lt_lt_succ_r;
     PeanoNat.Nat.lt_lt_succ_r; BinInt.Z.lt_lt_succ_r; BinInt.Z.lt_neq;
     BinInt.Z.lt_nge; BinPos.Pos.lt_nle;
     BinNat.N.Private_OrderTac.IsTotal.lt_strorder;
     PeanoNat.Nat.Private_OrderTac.IsTotal.lt_strorder;
     BinInt.Z.Private_OrderTac.IsTotal.lt_strorder; BinNat.N.lt_strorder;
     PeanoNat.Nat.lt_strorder; BinPos.Pos.lt_strorder;
     Qminmax.Q.OT.lt_strorder; BinInt.Z.lt_strorder;
     BinInt.Z.lt_sub_lt_add_r; BinNat.N.lt_succ_diag_r;
     PeanoNat.Nat.lt_succ_diag_r; BinPos.Pos.lt_succ_diag_r;
     BinInt.Z.lt_succ_diag_r; BinNat.N.lt_succ_l; BinInt.Z.lt_succ_l;
     BinNat.N.lt_succ_r; PeanoNat.Nat.lt_succ_r; BinPos.Pos.lt_succ_r;
     BinInt.Z.lt_succ_r; BinNat.N.Private_OrderTac.IsTotal.lt_total;
     PeanoNat.Nat.Private_OrderTac.IsTotal.lt_total;
     BinInt.Z.Private_OrderTac.IsTotal.lt_total; BinNat.N.lt_total;
     PeanoNat.Nat.lt_total; Qminmax.Q.OT.lt_total; BinPos.Pos.lt_total;
     BinInt.Z.lt_total; BinNat.N.lt_trans; PeanoNat.Nat.lt_trans;
     BinPos.Pos.lt_trans; PeanoNat.Nat.Private_Tac.lt_trans;
     BinPos.Pos.Private_Tac.lt_trans; BinInt.Z.Private_Tac.lt_trans;
     BinNat.N.Private_OrderTac.Tac.lt_trans;
     PeanoNat.Nat.Private_OrderTac.Tac.lt_trans;
     BinInt.Z.Private_OrderTac.Tac.lt_trans; BinInt.Z.lt_trans;
     BinNat.N.lt_trichotomy; PeanoNat.Nat.lt_trichotomy;
     BinInt.Z.lt_trichotomy; BinNat.N.lt_wd; PeanoNat.Nat.lt_wd;
     BinInt.Z.lt_wd; PeanoNat.Nat.lt_wd_obligation_1; BinNat.N.lt_wf;
     PeanoNat.Nat.lt_wf; BinInt.Z.lt_wf; BinInt.Z.ltb; BinInt.Z.ltb_ge;
     BinInt.Z.ltb_lt; BinInt.Z.ltb_nlt; BinInt.Z.ltb_spec;
     BinInt.Z.ltb_spec0; Wf_nat.ltof; ZMicromega.ltof_bdepth_split_l;
     ZMicromega.ltof_bdepth_split_r; ZMicromega.makeCuttingPlane;
     ZMicromega.makeCuttingPlane_ns_sound; Refl.make_conj;
     Refl.make_conj_app; Refl.make_conj_cons; Refl.make_conj_impl;
     Refl.make_conj_in; Refl.make_conj_rapp; Refl.make_impl;
     Refl.make_impl_map; List.map; RingMicromega.map_Formula;
     RingMicromega.map_PExpr; Tauto.map_bformula; RingMicromega.map_option;
     RingMicromega.map_option2; BinPos.Pos.mask2cmp; PeanoNat.Nat.max;
     BinNat.N.max; BinPos.Pos.max; BinInt.Z.max; BinPos.Pos.max_1_l;
     BinInt.Z.max_case; BinPos.Pos.max_case_strong;
     BinPos.Pos.Private_Dec.max_case_strong;
     BinInt.Z.Private_Dec.max_case_strong; BinInt.Z.max_case_strong;
     BinInt.Z.max_comm; max_l; PeanoNat.Nat.max_l; BinPos.Pos.max_l;
     BinInt.Z.max_l; BinPos.Pos.max_le_compat_r; BinPos.Pos.max_lub_iff;
     BinPos.Pos.max_mono; BinPos.Pos.max_monotone; max_r; PeanoNat.Nat.max_r;
     BinPos.Pos.max_r; BinInt.Z.max_r; PeanoNat.Nat.max_spec;
     BinPos.Pos.max_spec; BinInt.Z.max_spec; ZMicromega.max_var;
     ZMicromega.max_var_acc; ZMicromega.max_var_nformulae;
     ZMicromega.max_var_nformulae_mono_aux;
     ZMicromega.max_var_nformulae_mono_aux';
     RingMicromega.micomega_sor_setoid;
     RingMicromega.micomega_sor_setoid_Reflexive;
     RingMicromega.micomega_sor_setoid_Symmetric;
     RingMicromega.micomega_sor_setoid_Transitive; BinInt.Z.min;
     BinInt.Z.Private_Dec.min_case; BinInt.Z.Private_Dec.min_case_strong;
     BinInt.Z.Private_Dec.min_dec; BinInt.Z.min_dec; BinInt.Z.min_l;
     BinInt.Z.min_r; BinInt.Z.min_spec; RIneq.minus_IPR; RIneq.minus_IZR;
     Ranalysis1.minus_fct; EnvRing.mkPX; Ring_polynom.mkPX;
     Ring_polynom.mkPX_ext; EnvRing.mkPX_ok; Ring_polynom.mkPX_ok;
     EnvRing.mkPinj; Ring_polynom.mkPinj; Ring_polynom.mkPinj_ext;
     EnvRing.mkPinj_ok; Ring_polynom.mkPinj_ok; EnvRing.mkPinj_pred;
     Ring_polynom.mkPinj_pred; Ring_polynom.mkVmon; Ring_polynom.mkVmon_ok;
     EnvRing.mkX; Ring_polynom.mkX; EnvRing.mkX_ok; Ring_polynom.mkX_ok;
     EnvRing.mkXi; Ring_polynom.mkXi; Ring_polynom.mkZmon;
     Ring_polynom.mkZmon_ok; EnvRing.mk_X; Ring_polynom.mk_X; Tauto.mk_and;
     ZMicromega.mk_eq_pos; Tauto.mk_iff; Tauto.mk_iff_is_bool; Tauto.mk_impl;
     Ring_polynom.mk_monpol_list; Tauto.mk_or; Ring_polynom.mkadd_mult;
     Ring_polynom.mkadd_mult_ok; ZifyClasses.mkapp; ZifyClasses.mkapp2;
     Ring_polynom.mkmult1; Ring_polynom.mkmult1_ok; Ring_polynom.mkmult_c;
     Ring_polynom.mkmult_c_ok; Ring_polynom.mkmult_c_pos;
     Ring_polynom.mkmult_c_pos_ok; Ring_polynom.mkmult_pow;
     Ring_polynom.mkmult_pow_ok; Ring_polynom.mkmult_rec;
     Ring_polynom.mkmult_rec_ok; Ring_polynom.mkmultm1;
     Ring_polynom.mkmultm1_ok; Ring_polynom.mkopp_pow;
     Ring_polynom.mkopp_pow_ok; Ring_polynom.mkpow; Ring_polynom.mkpow_ok;
     ZifyClasses.mkrel; BinInt.Z.mod_eq; BinInt.Z.mod_mul;
     BinInt.Z.mod_neg_bound; BinInt.Z.mod_pos_bound; BinInt.Z.modulo;
     Ring_polynom.mon_of_pol; Ring_polynom.mon_of_pol_ok; Ring_theory.morph0;
     Ring_theory.morph1; Ring_theory.morph_add; Ring_theory.morph_eq;
     Ring_theory.morph_mul; Ring_theory.morph_opp; Ring_theory.morph_sub;
     Nat.mul; BinNat.N.mul; BinPos.Pos.mul; BinInt.Z.mul; BinNat.N.mul_0_l;
     BinInt.Z.mul_0_l; BinNat.N.mul_0_r; BinInt.Z.Private_BootStrap.mul_0_r;
     BinInt.Z.mul_0_r; BinPos.Pos.mul_1_l;
     BinInt.Z.Private_BootStrap.mul_1_l; BinInt.Z.mul_1_l;
     BinPos.Pos.mul_1_r; BinInt.Z.mul_1_r; BinPos.Pos.mul_add_distr_l;
     BinInt.Z.mul_add_distr_l; BinInt.Z.Private_BootStrap.mul_add_distr_pos;
     BinPos.Pos.mul_add_distr_r; BinInt.Z.Private_BootStrap.mul_add_distr_r;
     BinInt.Z.mul_add_distr_r; BinPos.Pos.mul_assoc; BinInt.Z.mul_assoc;
     BinInt.Z.mul_cancel_l; BinInt.Z.mul_cancel_r; BinNat.N.mul_comm;
     BinPos.Pos.mul_comm; BinInt.Z.mul_comm; BinPos.Pos.mul_compare_mono_l;
     BinPos.Pos.mul_compare_mono_r; BinInt.Z.mul_div_le; Rlimit.mul_factor;
     Rlimit.mul_factor_gt; Rlimit.mul_factor_gt_f; Rlimit.mul_factor_wd;
     BinInt.Z.mul_id_l; BinPos.Pos.mul_le_mono_l;
     BinInt.Z.mul_le_mono_nonneg; BinInt.Z.mul_le_mono_nonneg_l;
     BinInt.Z.mul_le_mono_nonneg_r; BinInt.Z.mul_le_mono_nonpos_l;
     BinInt.Z.mul_le_mono_nonpos_r; BinInt.Z.mul_le_mono_pos_l;
     BinInt.Z.mul_le_mono_pos_r; BinPos.Pos.mul_lt_mono_l;
     BinInt.Z.mul_lt_mono_neg_l; BinInt.Z.mul_lt_mono_neg_r;
     BinInt.Z.mul_lt_mono_nonneg; BinInt.Z.mul_lt_mono_pos_l;
     BinInt.Z.mul_lt_mono_pos_r; BinPos.Pos.mul_lt_mono_r;
     BinInt.Z.mul_lt_pred; BinInt.Z.mul_neg_neg; BinInt.Z.mul_neg_pos;
     BinInt.Z.mul_nonneg_nonneg; BinInt.Z.mul_nonneg_nonpos;
     BinInt.Z.mul_opp_comm; BinInt.Z.mul_opp_l; BinInt.Z.mul_opp_opp;
     BinInt.Z.Private_BootStrap.mul_opp_r; BinInt.Z.mul_opp_r;
     BinInt.Z.mul_pos_cancel_l; BinInt.Z.mul_pos_neg; BinInt.Z.mul_pos_pos;
     BinInt.Z.mul_reg_r; BinInt.Z.mul_shuffle0; BinInt.Z.mul_shuffle1;
     BinPos.Pos.mul_sub_distr_l; BinPos.Pos.mul_sub_distr_r;
     BinNat.N.mul_succ_l; BinPos.Pos.mul_succ_l; BinInt.Z.mul_succ_l;
     BinNat.N.mul_succ_r; BinPos.Pos.mul_succ_r; BinInt.Z.mul_succ_r;
     BinNat.N.mul_wd; BinInt.Z.mul_wd; BinPos.Pos.mul_xI_r;
     BinPos.Pos.mul_xO_r; RIneq.mult_IPR; RIneq.mult_IZR;
     Ring_polynom.mult_dev; Ring_polynom.mult_dev_ok; Ranalysis1.mult_fct;
     ZMicromega.narrow_interval_lower_bound; Znat.nat_N_Z;
     Compare_dec.nat_compare_ge; Compare_dec.nat_compare_le;
     Compare_dec.nat_compare_lt; nat_ind; nat_rec; nat_rect; RIneq.neg;
     BinInt.Pos2Z.neg_is_neg; ZMicromega.negate; ZMicromega.negate_correct;
     negb; Bool.negb_false_iff; Bool.negb_true_iff; Rtopology.neighbourhood;
     PeanoNat.Nat.neq_0_lt_0; RelationClasses.neq_Symmetric;
     BinPos.Pos.Private_Tac.neq_eq; BinInt.Z.Private_OrderTac.Tac.neq_eq;
     BinNat.N.neq_succ_0; PeanoNat.Nat.neq_succ_0; BinNat.N.neq_succ_diag_l;
     PeanoNat.Nat.neq_succ_diag_l; BinInt.Z.neq_succ_diag_l;
     BinInt.Z.Private_OrderTac.Tac.neq_sym; BinInt.Z.neq_sym;
     ZMicromega.nformula_of_cutting_plane;
     RingMicromega.nformula_plus_nformula;
     RingMicromega.nformula_plus_nformula_correct;
     RingMicromega.nformula_times_nformula;
     RingMicromega.nformula_times_nformula_correct; BinInt.Z.nle_gt;
     BinNat.N.nle_succ_diag_l; PeanoNat.Nat.nle_succ_diag_l;
     BinInt.Z.nle_succ_diag_l; PeanoNat.Nat.nlt_0_r; BinPos.Pos.nlt_1_r;
     BinInt.Z.nlt_ge; BinNat.N.nlt_succ_diag_l; PeanoNat.Nat.nlt_succ_diag_l;
     BinInt.Z.nlt_succ_diag_l; Ranalysis1.no_cond; RingMicromega.norm;
     ZMicromega.normZ; EnvRing.norm_aux; Ring_polynom.norm_aux;
     EnvRing.norm_aux_PEadd; Ring_polynom.norm_aux_PEadd;
     EnvRing.norm_aux_PEopp; Ring_polynom.norm_aux_PEopp;
     EnvRing.norm_aux_spec; Ring_polynom.norm_aux_spec;
     Ring_polynom.norm_subst; Ring_polynom.norm_subst_ok;
     Ring_polynom.norm_subst_spec; RingMicromega.normalise;
     ZMicromega.normalise; ZMicromega.normalise_correct;
     RingMicromega.normalise_sound; not; RIneq.not_0_IZR;
     ZArith_dec.not_Zeq_inf; Classical_Pred_Type.not_all_ex_not;
     Classical_Pred_Type.not_all_not_ex; Classical_Prop.not_and_or;
     not_eq_sym; Classical_Pred_Type.not_ex_all_not;
     BinPos.Pos.Private_Tac.not_ge_lt;
     BinNat.N.Private_OrderTac.Tac.not_ge_lt;
     PeanoNat.Nat.Private_OrderTac.Tac.not_ge_lt;
     BinInt.Z.Private_OrderTac.Tac.not_ge_lt;
     PeanoNat.Nat.Private_Tac.not_gt_le; BinPos.Pos.Private_Tac.not_gt_le;
     Qminmax.Q.Private_Tac.not_gt_le; BinInt.Z.Private_Tac.not_gt_le;
     BinNat.N.Private_OrderTac.Tac.not_gt_le;
     PeanoNat.Nat.Private_OrderTac.Tac.not_gt_le;
     BinInt.Z.Private_OrderTac.Tac.not_gt_le;
     Morphisms_Prop.not_iff_morphism;
     Morphisms_Prop.not_iff_morphism_obligation_1;
     Classical_Prop.not_imply_elim; Classical_Prop.not_imply_elim2;
     BinPos.Pos.Private_Tac.not_neq_eq;
     BinInt.Z.Private_OrderTac.Tac.not_neq_eq; Bool.not_true_iff_false;
     BinList.nth; Env.nth; List.nth; List.nth_in_or_default;
     BinList.nth_jump; Env.nth_jump; BinList.nth_pred_double;
     Env.nth_pred_double; Env.nth_spec; Field_theory.num; BinInt.Z.of_N;
     BinNat.N.of_nat; BinPos.Pos.of_nat; BinInt.Z.of_nat;
     BinPos.Pos.of_nat_succ; BinPos.Pos.of_succ_nat; BinInt.Z.one_succ;
     Rtopology.open_set; Rtopology.open_set_P1; Rtopology.open_set_P4;
     Rtopology.open_set_P6; BinInt.Z.opp; BinInt.Z.opp_0; RIneq.opp_IZR;
     BinInt.Z.Private_BootStrap.opp_add_distr; BinInt.Z.opp_add_distr;
     Ranalysis1.opp_fct; BinInt.Z.Private_BootStrap.opp_inj;
     BinInt.Z.opp_inj; BinInt.Z.opp_inj_wd;
     ConstructiveCauchyReals.opp_inject_Q; BinInt.Z.opp_involutive;
     BinInt.Z.opp_le_mono; BinInt.Z.opp_lt_mono; BinInt.Z.opp_nonneg_nonpos;
     BinInt.Z.opp_nonpos_nonneg; BinInt.Pos2Z.opp_pos; BinInt.Z.opp_pred;
     BinInt.Z.opp_sub_distr; BinInt.Z.opp_succ; BinInt.Z.opp_wd; or_cancel_r;
     Tauto.or_clause; Tauto.or_clause_cnf; Tauto.or_clause_cnf_correct;
     Tauto.or_clause_correct; Tauto.or_cnf; Tauto.or_cnf_correct;
     Tauto.or_cnf_opt; Tauto.or_cnf_opt_cnf_ff; Tauto.or_cnf_opt_cnf_ff_r;
     Tauto.or_cnf_opt_correct; or_comm; or_iff_compat_r;
     Morphisms_Prop.or_iff_morphism;
     Morphisms_Prop.or_iff_morphism_obligation_1; or_ind; orb; Bool.orb_comm;
     Bool.orb_true_iff; BinInt.Z.order_induction; BinInt.Z.order_induction_0;
     RingMicromega.padd; ZMicromega.padd; BinPos.Pos.peano_ind;
     BinInt.Z.peano_ind; BinNat.N.peano_rect; BinPos.Pos.peano_rect;
     Morphisms.per_partial_app_morphism;
     Morphisms.per_partial_app_morphism_obligation_1;
     RingMicromega.pexpr_times_nformula;
     RingMicromega.pexpr_times_nformula_correct; Ring_theory.phi_ext1_Proper;
     RIneq.plus_IPR; RIneq.plus_IZR; RIneq.plus_IZR_NEG_POS; plus_Sn_m;
     plus_n_O; plus_n_Sm; Rtopology.point_adherent;
     Morphisms.pointwise_relation; QMicromega.pop2_bop2;
     RMicromega.pop2_bop2; ZMicromega.pop2_bop2; RingMicromega.popp;
     ZMicromega.popp; RIneq.pos; BinNat.N.pos_div_eucl;
     BinInt.Z.pos_div_eucl; BinInt.Z.pos_div_eucl_bound;
     BinInt.Z.pos_div_eucl_eq; BinNat.N.pos_div_eucl_spec;
     BinInt.Pos2Z.pos_is_pos; BinInt.Pos2Z.pos_le_pos; BinInt.Z.pos_sub;
     BinInt.Z.Private_BootStrap.pos_sub_add; BinInt.Z.pos_sub_diag;
     BinInt.Z.pos_sub_discr; BinInt.Z.pos_sub_gt; BinInt.Z.pos_sub_lt;
     BinInt.Z.pos_sub_opp; BinInt.Z.pos_sub_spec; Znat.positive_N_nat;
     BinNums.positive_ind; Znat.positive_nat_Z; BinNums.positive_rec;
     BinNums.positive_rect; Rpow_def.pow; BinPos.Pos.pow; BinInt.Z.pow;
     BinInt.Z.pow_0_r; BinInt.Z.pow_1_l; BinPos.Pos.pow_1_r;
     BinInt.Z.pow_1_r; Ring_theory.pow_N; Field_theory.pow_N_ext;
     Ring_theory.pow_N_pow_N; Ring_theory.pow_N_th; BinInt.Z.pow_add_r;
     Field_theory.pow_ext; BinInt.Z.pow_gt_1; BinInt.Z.pow_le_mono_r;
     BinInt.Z.pow_lt_mono_l; BinInt.Z.pow_lt_mono_r; BinInt.Z.pow_neg_r;
     BinInt.Z.pow_nonneg; Ring_theory.pow_pos; BinInt.Z.pow_pos;
     Field_theory.pow_pos_0; Field_theory.pow_pos_1; EnvRing.pow_pos_add;
     Ring_polynom.pow_pos_add; Ring_theory.pow_pos_add;
     Field_theory.pow_pos_add_r; Field_theory.pow_pos_cst;
     Field_theory.pow_pos_div; Field_theory.pow_pos_mul_l;
     Field_theory.pow_pos_mul_r; BinInt.Z.pow_pos_nonneg;
     Field_theory.pow_pos_nz; Ring_theory.pow_pos_succ;
     Ring_theory.pow_pos_swap; BinPos.Pos.pow_succ_r; BinInt.Z.pow_succ_r;
     BinInt.Z.pow_twice_r; BinInt.Z.pow_wd; Rfunctions.powerRZ;
     Ranalysis1.pr_nu; Ranalysis4.pr_nu_var; PeanoNat.Nat.pred;
     BinNat.N.pred; BinPos.Pos.pred; BinInt.Z.pred; BinNat.N.pred_0;
     PeanoNat.Nat.pred_0; BinPos.Pos.pred_N; BinPos.Pos.pred_N_succ;
     BinPos.Pos.pred_double; BinInt.Z.pred_double;
     BinPos.Pos.pred_double_succ; BinInt.Z.pred_inj; BinInt.Z.pred_inj_wd;
     BinPos.Pos.pred_mask; BinNat.N.pred_succ; PeanoNat.Nat.pred_succ;
     BinInt.Z.pred_succ; BinNat.N.pred_wd; PeanoNat.Nat.pred_wd;
     BinInt.Z.pred_wd; PeanoNat.Nat.pred_wd_obligation_1; prod_ind;
     prod_rect; proj1; proj1_sig; proj2; proj2_sig;
     Rtopology.prolongement_C0; Rlimit.prop_eps; Morphisms.proper_prf;
     Morphisms.proper_sym_impl_iff; RingMicromega.psub; ZMicromega.psub;
     RingMicromega.psubC; QMicromega.qdeduce; QMicromega.qunsat;
     BinInt.Z.quotrem; BinInt.Z.quotrem_eq; Ring_polynom.r_list_pow;
     Ring_polynom.r_list_pow_rev; Field_theory.radd_ext;
     Ring_theory.radd_ext2_Proper; InitialRing.radd_ext3_Proper;
     InitialRing.radd_ext4_Proper; EnvRing.radd_ext_Proper;
     Field_theory.radd_ext_Proper; InitialRing.radd_ext_Proper;
     Ring_polynom.radd_ext_Proper; RMicromega.rdeduce; Field_theory.rdiv1;
     Field_theory.rdiv2b; Field_theory.rdiv3b; Field_theory.rdiv4;
     Field_theory.rdiv4b; Field_theory.rdiv5; Field_theory.rdiv6;
     Field_theory.rdiv7; Field_theory.rdiv7b; Field_theory.rdiv_ext;
     Field_theory.rdiv_r_r; Field_theory.rdiv_simpl;
     Morphisms.reflexive_eq_dom_reflexive; Morphisms.reflexive_proper;
     CMorphisms.reflexive_proper_proxy; Morphisms.reflexive_proper_proxy;
     Morphisms.reflexive_reflexive_proxy; RelationClasses.reflexivity;
     ConstructiveEpsilon.rel_ls_ind; ConstructiveEpsilon.rel_ls_post;
     Relation_Definitions.relation; CMorphisms.respectful;
     Morphisms.respectful; Rtopology.restriction_family; List.rev';
     List.rev_append; ZifyClasses.rew_iff; ZifyClasses.rew_iff_rev;
     Morphisms.rewrite_relation_eq_dom; BinNat.N.right_induction;
     PeanoNat.Nat.right_induction; BinInt.Z.right_induction;
     Ring_polynom.ring_correct; Ring_polynom.ring_rw_correct;
     Ring_polynom.ring_rw_pow_correct; Ring_tac.ring_subst_niter;
     Field_theory.rinv_ext_Proper; OrderedRing.rle_morph_Proper;
     RingMicromega.rle_morph_Proper; OrderedRing.rlt_morph_Proper;
     RingMicromega.rlt_morph_Proper; OrderedRing.rminus_morph;
     OrderedRing.rminus_morph_Proper; RingMicromega.rminus_morph_Proper;
     Field_theory.rmul_ext; Ring_theory.rmul_ext2_Proper;
     InitialRing.rmul_ext3_Proper; InitialRing.rmul_ext4_Proper;
     EnvRing.rmul_ext_Proper; Field_theory.rmul_ext_Proper;
     InitialRing.rmul_ext_Proper; Ring_polynom.rmul_ext_Proper;
     Field_theory.rmul_reg_l; Ring_theory.ropp_ext2_Proper;
     InitialRing.ropp_ext3_Proper; EnvRing.ropp_ext_Proper;
     Field_theory.ropp_ext_Proper; Ring_polynom.ropp_ext_Proper;
     OrderedRing.ropp_morph_Proper; RingMicromega.ropp_morph_Proper;
     Field_theory.ropp_neq_0; OrderedRing.rplus_morph_Proper;
     RingMicromega.rplus_morph_Proper; Ring_theory.rpow_pow_N;
     Field_theory.rsplit_common; Field_theory.rsplit_left;
     Field_theory.rsplit_right; Field_theory.rsub_0_l; Field_theory.rsub_0_r;
     EnvRing.rsub_ext_Proper; Field_theory.rsub_ext_Proper;
     Ring_polynom.rsub_ext_Proper; OrderedRing.rtimes_morph_Proper;
     RingMicromega.rtimes_morph_Proper; Tauto.rtyp; RMicromega.runsat;
     InitialRing.same_gen; InitialRing.same_genN; InitialRing.same_genZ;
     ConstructiveCauchyReals.scale; ConstructiveCauchyReals.seq;
     ConstructiveRcomplete.seq_cv; BinInt.Z.sgn;
     ClassicalDedekindReals.sig_forall_dec; ConstructiveLUB.sig_forall_dec_T;
     sig_ind; ConstructiveLUB.sig_lub; ClassicalDedekindReals.sig_not_dec;
     ConstructiveLUB.sig_not_dec_T; sig_rec; sig_rect; Ring_theory.sign_spec;
     Rlimit.single_limit; BinPos.Pos.size_nat; BinPos.Pos.size_nat_monotone;
     snd; OrderedRing.sor_setoid; OrderedRing.sor_setoid_Reflexive;
     OrderedRing.sor_setoid_Symmetric; OrderedRing.sor_setoid_Transitive;
     Field_theory.split; Field_theory.split_aux; Field_theory.split_aux_ok;
     Field_theory.split_aux_ok1; Field_theory.split_nz_l;
     Field_theory.split_nz_r; Field_theory.split_ok_l;
     Field_theory.split_ok_r; BinInt.Z.strong_left_induction;
     BinNat.N.strong_right_induction; PeanoNat.Nat.strong_right_induction;
     BinInt.Z.strong_right_induction; BinNat.N.sub; BinPos.Pos.sub;
     BinInt.Z.sub; BinInt.Z.sub_0_l; BinNat.N.sub_0_r; BinInt.Z.sub_0_r;
     BinInt.Z.sub_1_r; BinNat.N.sub_add; BinPos.Pos.sub_add;
     BinPos.Pos.sub_add_distr; BinInt.Z.sub_cancel_r; BinPos.Pos.sub_decr;
     BinNat.N.sub_diag; BinInt.Z.sub_diag; BinNat.N.sub_gt;
     BinInt.Z.sub_le_mono_r; BinInt.Z.sub_lt_mono_r; BinPos.Pos.sub_mask;
     BinPos.Pos.sub_mask_add; BinPos.Pos.sub_mask_add_diag_l;
     BinPos.Pos.sub_mask_add_diag_r; BinPos.Pos.sub_mask_carry;
     BinPos.Pos.sub_mask_carry_spec; BinPos.Pos.sub_mask_diag;
     BinPos.Pos.sub_mask_neg_iff; BinPos.Pos.sub_mask_nul_iff;
     BinPos.Pos.sub_mask_pos; BinPos.Pos.sub_mask_pos';
     BinPos.Pos.sub_mask_pos_iff; BinPos.Pos.sub_mask_spec;
     BinPos.Pos.sub_mask_succ_r; BinInt.Z.sub_move_0_r; BinInt.Z.sub_move_r;
     BinInt.Z.sub_opp_r; BinInt.Z.sub_simpl_r; BinPos.Pos.sub_sub_distr;
     BinInt.Z.sub_sub_distr; BinNat.N.sub_succ; BinInt.Z.sub_succ_l;
     BinNat.N.sub_succ_r; BinInt.Z.sub_succ_r; BinNat.N.sub_wd;
     BinInt.Z.sub_wd; BinPos.Pos.sub_xI_xI; BinPos.Pos.sub_xI_xO;
     BinPos.Pos.sub_xO_xI; BinPos.Pos.sub_xO_xO; Rtopology.subfamily;
     CRelationClasses.subrelation; RelationClasses.subrelation;
     CMorphisms.subrelation_proper; Morphisms.subrelation_proper;
     CMorphisms.subrelation_refl; Morphisms.subrelation_refl;
     CMorphisms.subrelation_respectful; Morphisms.subrelation_respectful;
     BinNat.N.succ; BinPos.Pos.succ; BinInt.Z.succ; RIneq.succ_IPR;
     BinNat.N.succ_double; BinInt.Z.succ_double; BinNat.N.succ_double_add;
     BinPos.Pos.succ_double_mask; BinNat.N.succ_double_mul;
     BinInt.Z.succ_double_spec; BinNat.N.succ_inj; PeanoNat.Nat.succ_inj;
     BinPos.Pos.succ_inj; BinInt.Z.succ_inj; BinNat.N.succ_inj_wd;
     PeanoNat.Nat.succ_inj_wd; BinInt.Z.succ_inj_wd;
     PeanoNat.Nat.succ_le_mono; BinInt.Z.succ_le_mono;
     PeanoNat.Nat.succ_lt_mono; BinPos.Pos.succ_lt_mono;
     BinInt.Z.succ_lt_mono; BinPos.Pos.succ_not_1; BinInt.Z.succ_pred;
     BinPos.Pos.succ_pred_double; BinPos.Pos.succ_pred_or; BinNat.N.succ_wd;
     PeanoNat.Nat.succ_wd; BinInt.Z.succ_wd;
     PeanoNat.Nat.succ_wd_obligation_1; sumbool_rec; sumbool_rect;
     RMicromega.sumboolb; BinPos.Pos.switch_Eq; CRelationClasses.symmetry;
     RelationClasses.symmetry; Env.tail; Tauto.tauto_checker;
     Tauto.tauto_checker_sound; List.tl; BinInt.Z.to_N; BinNat.N.to_nat;
     BinPos.Pos.to_nat; BinInt.Z.to_nat; BinInt.Z.to_pos;
     Rdefinitions.total_order_T; PeanoNat.Nat.Private_Tac.trans;
     BinPos.Pos.Private_Tac.trans; Qminmax.Q.Private_Tac.trans;
     BinInt.Z.Private_Tac.trans; BinNat.N.Private_OrderTac.Tac.trans;
     PeanoNat.Nat.Private_OrderTac.Tac.trans;
     BinInt.Z.Private_OrderTac.Tac.trans;
     Morphisms.trans_co_eq_inv_impl_morphism;
     Morphisms.trans_co_eq_inv_impl_morphism_obligation_1;
     Morphisms.trans_co_impl_morphism;
     Morphisms.trans_co_impl_morphism_obligation_1;
     CMorphisms.trans_contra_inv_impl_type_morphism;
     CMorphisms.trans_contra_inv_impl_type_morphism_obligation_1;
     OrdersTac.trans_ord; Morphisms.trans_sym_co_inv_impl_morphism;
     Morphisms.trans_sym_co_inv_impl_morphism_obligation_1;
     CRelationClasses.transitivity; RelationClasses.transitivity;
     InitialRing.triv_div; InitialRing.triv_div_th; BinInt.Z.two_succ;
     Ranalysis1.uniqueness_limite; Ranalysis1.uniqueness_step1;
     Ranalysis1.uniqueness_step2; Ranalysis1.uniqueness_step3;
     ZMicromega.valid_cut_sign; well_founded; well_founded_ind;
     well_founded_induction; well_founded_induction_type;
     Wf_nat.well_founded_ltof; BinPos.Pos.xI_succ_xO; Tauto.xcnf;
     Tauto.xcnf_correct; Tauto.xcnf_iff; Tauto.xcnf_impl;
     RingMicromega.xnegate; ZMicromega.xnegate;
     RingMicromega.xnegate_correct; ZMicromega.xnegate_correct;
     ZMicromega.xnnormalise; ZMicromega.xnnormalise_correct;
     RingMicromega.xnormalise; ZMicromega.xnormalise;
     RingMicromega.xnormalise_correct; ZMicromega.xnormalise_correct;
     Tauto.xor_clause_cnf; RMicromega.z_of_exp; Ring_polynom.zmon_pred;
     Ring_polynom.zmon_pred_ok; Acc; BoolSpec; ConstructiveCauchyReals.CReal;
     CompareSpec; CompareSpecT; ConstructiveReals.ConstructiveReals;
     ConstructiveLUB.DedekindDecCut; SetoidTactics.DefaultRelation;
     CRelationClasses.Equivalence; RelationClasses.Equivalence;
     Field_theory.FExpr; False; RingMicromega.Formula; Tauto.GFormula;
     ZifyClasses.InjTyp; Rlimit.Metric_Space; Ring_polynom.Mon; BinNums.N;
     RingMicromega.Op1; RingMicromega.Op2; RelationClasses.PER;
     EnvRing.PExpr; Ring_polynom.PExpr; EnvRing.Pol; Ring_polynom.Pol;
     RelationClasses.PreOrder; RingMicromega.Psatz; QArith_base.Q;
     RMicromega.Rcst; RelationClasses.RewriteRelation; OrderedRing.SOR;
     RingMicromega.SORaddon; RelationClasses.StrictOrder;
     BinPos.Pos.SubMaskSpec; True; BinNums.Z; ZMicromega.ZArithProof;
     ZMicromega.Zdivide_pol; Znumtheory.Zis_gcd;
     Field_theory.almost_field_theory; Ring_theory.almost_ring_theory; and;
     ConstructiveEpsilon.before_witness; bool; comparison;
     Ring_theory.div_theory; eq; ex; Rtopology.family;
     Field_theory.field_theory; Tauto.kind; le; Field_theory.linear; list;
     BinPos.Pos.mask; nat; RIneq.negreal; option; or; OrdersTac.ord;
     BinNums.positive; RIneq.posreal; Ring_theory.power_theory; prod;
     Bool.reflect; ConstructiveEpsilon.rel_ls; Ring_theory.ring_eq_ext;
     Ring_theory.ring_morph; Ring_theory.ring_theory; Field_theory.rsplit;
     Ring_theory.semi_morph; Ring_theory.semi_ring_theory; sig; sigT;
     Ring_theory.sign_theory; Ring_theory.sring_eq_ext; sum; sumbool; sumor;
     VarMap.t; unit; Acc_intro; BoolSpecT; ConstructiveCauchyReals.mkCReal;
     CompEq; CompEqT; ConstructiveReals.Build_ConstructiveReals;
     ConstructiveLUB.Build_DedekindDecCut;
     SetoidTactics.Build_DefaultRelation; CRelationClasses.Build_Equivalence;
     RelationClasses.Build_Equivalence; Field_theory.FEO;
     RingMicromega.Build_Formula; Tauto.TT; ZifyClasses.mkinj;
     Rlimit.Build_Metric_Space; Ring_polynom.mon0; BinNums.N0;
     RingMicromega.Equal; RingMicromega.OpEq; RelationClasses.Build_PER;
     EnvRing.PEc; Ring_polynom.PEO; EnvRing.Pc; Ring_polynom.Pc;
     RelationClasses.Build_PreOrder; RingMicromega.PsatzLet;
     QArith_base.Qmake; RMicromega.C0; RelationClasses.Build_RewriteRelation;
     OrderedRing.mk_SOR_theory; RingMicromega.mk_SOR_addon;
     RelationClasses.Build_StrictOrder; BinPos.Pos.SubIsNul; I; BinNums.Z0;
     ZMicromega.DoneProof; ZMicromega.Zdiv_Pc; Znumtheory.Zis_gcd_intro;
     Field_theory.mk_afield; Ring_theory.mk_art; conj;
     ConstructiveEpsilon.stop; true; Eq; Ring_theory.mkdiv_th; eq_refl;
     ex_intro; Rtopology.mkfamily; Field_theory.mk_field; Tauto.isProp; le_n;
     Field_theory.mk_linear; nil; BinPos.Pos.IsNul; O; RIneq.mknegreal; Some;
     or_introl; OrdersTac.OEQ; BinNums.xI; RIneq.mkposreal;
     Ring_theory.mkpow_th; pair; Bool.ReflectT; ConstructiveEpsilon.Rstop;
     Ring_theory.mk_reqe; Ring_theory.mkmorph; Ring_theory.mk_rt;
     Field_theory.mk_rsplit; Ring_theory.mkRmorph; Ring_theory.mk_srt; exist;
     existT; Ring_theory.mksign_th; Ring_theory.mk_seqe; inl; left; inleft;
     VarMap.Empty; tt; BoolSpecF; CompLt; CompLtT; Field_theory.FEI;
     Tauto.FF; Ring_polynom.zmon; BinNums.Npos; RingMicromega.NonEqual;
     RingMicromega.OpNEq; EnvRing.PEX; Ring_polynom.PEI; EnvRing.Pinj;
     Ring_polynom.Pinj; RingMicromega.PsatzIn; RMicromega.C1;
     BinPos.Pos.SubIsPos; BinNums.Zpos; ZMicromega.RatProof;
     ZMicromega.Zdiv_Pinj; ConstructiveEpsilon.next; false; Lt; Tauto.isBool;
     le_S; cons; BinPos.Pos.IsPos; S; None; or_intror; OrdersTac.OLT;
     BinNums.xO; Bool.ReflectF; ConstructiveEpsilon.Rnext; inr; right;
     inright; VarMap.Elt; CompGt; CompGtT; Field_theory.FEc; Tauto.X;
     Ring_polynom.vmon; RingMicromega.Strict; RingMicromega.OpLe;
     EnvRing.PEadd; Ring_polynom.PEc; EnvRing.PX; Ring_polynom.PX;
     RingMicromega.PsatzSquare; RMicromega.CQ; BinPos.Pos.SubIsNeg;
     BinNums.Zneg; ZMicromega.CutProof; ZMicromega.Zdiv_PX; Gt;
     BinPos.Pos.IsNeg; OrdersTac.OLE; BinNums.xH; VarMap.Branch;
     Field_theory.FEX; Tauto.A; RingMicromega.NonStrict; RingMicromega.OpGe;
     EnvRing.PEsub; Ring_polynom.PEX; RingMicromega.PsatzMulC; RMicromega.CZ;
     ZMicromega.SplitProof; Field_theory.FEadd; Tauto.AND;
     RingMicromega.OpLt; EnvRing.PEmul; Ring_polynom.PEadd;
     RingMicromega.PsatzMulE; RMicromega.CPlus; ZMicromega.EnumProof;
     Field_theory.FEsub; Tauto.OR; RingMicromega.OpGt; EnvRing.PEopp;
     Ring_polynom.PEsub; RingMicromega.PsatzAdd; RMicromega.CMinus;
     ZMicromega.ExProof; Field_theory.FEmul; Tauto.NOT; EnvRing.PEpow;
     Ring_polynom.PEmul; RingMicromega.PsatzC; RMicromega.CMult;
     Field_theory.FEopp; Tauto.IMPL; Ring_polynom.PEopp;
     RingMicromega.PsatzZ; RMicromega.CPow; Field_theory.FEinv; Tauto.IFF;
     Ring_polynom.PEpow; RMicromega.CInv; Field_theory.FEdiv; Tauto.EQ;
     RMicromega.COpp; Field_theory.FEpow;  }}
  T = 2.511827
Query assignments:
  %arg1 = 4
  S = {{ Nat.add; eq; nat; O;  }}
  T = prod `x` (global (indt «nat»)) c0 \
 app
  [global (indt «eq»), X0 c0, 
   app [global (const «Nat.add»), c0, global (indc «O»)], c0]
  X10_ = 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_stdlib.test_API_env.30»)) (X1 c0)  /* suspended on X2, X1 */
Universe constraints:
UNIVERSES:
 {elpi_tests_stdlib.test_API_env.30} |= 
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 α13
WEAK CONSTRAINTS:
 

Query assignments:
  Decl = record Rec (sort (typ «elpi_tests_stdlib.test_API_env.31»)) BuildRec 
 (field [] f (sort (typ «elpi_tests_stdlib.test_API_env.32»)) c0 \
   end-record)
  X11_ = «elpi_tests_stdlib.test_API_env.31»
  X12_ = «elpi_tests_stdlib.test_API_env.32»
Universe constraints:
UNIVERSES:
 {elpi_tests_stdlib.test_API_env.32 elpi_tests_stdlib.test_API_env.31} |= 
ALGEBRAIC UNIVERSES:
 {elpi_tests_stdlib.test_API_env.32 elpi_tests_stdlib.test_API_env.31}
FLEXIBLE UNIVERSES:
 elpi_tests_stdlib.test_API_env.32
 elpi_tests_stdlib.test_API_env.31
SORTS:
 
WEAK CONSTRAINTS:
 

Module
Test
:= Struct
     Record Rec@{u u0} : Type@{u} := BuildRec
       { f : Type@{u0} }.
     (* u u0 |= u0 < u *)
     Definition f : Rec@{u u0} -> Type@{u0}.
       (* u u0 |= u0 < u *)
   End
Test.f@{elpi_tests_stdlib.test_API_env.33
elpi_tests_stdlib.test_API_env.34}
     : Test.Rec@{elpi_tests_stdlib.test_API_env.33
       elpi_tests_stdlib.test_API_env.34} ->
       Type@{elpi_tests_stdlib.test_API_env.34}
(* {elpi_tests_stdlib.test_API_env.34 elpi_tests_stdlib.test_API_env.33} |=
     elpi_tests_stdlib.test_API_env.34 < elpi_tests_stdlib.test_API_env.33 *)
Query assignments:
  LP = «Coq.ZArith.Znat»
  MP = «Coq.ZArith.Znat.N2Z»
File "./tests-stdlib/test_API_env.v", line 26, characters 24-26:
Warning:
File "./tests-stdlib/test_API_env.v", line 26, characters 24-26
TY is linear: name it _TY (discard) or TY_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests-stdlib/test_API_env.v", line 82, characters 23-25:
Warning:
File "./tests-stdlib/test_API_env.v", line 82, characters 23-25
GR is linear: name it _GR (discard) or GR_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests-stdlib/test_API_env.v", line 215, characters 71-72:
Warning:
File "./tests-stdlib/test_API_env.v", line 215, characters 71-72
U is linear: name it _U (discard) or U_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests-stdlib/test_API_env.v", line 209, characters 39-41:
Warning:
File "./tests-stdlib/test_API_env.v", line 209, characters 39-41
UA is linear: name it _UA (discard) or UA_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests-stdlib/test_API_env.v", line 212, characters 45-48:
Warning:
File "./tests-stdlib/test_API_env.v", line 212, characters 45-48
UB1 is linear: name it _UB1 (discard) or UB1_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests-stdlib/test_API_env.v", line 218, characters 40-43:
Warning:
File "./tests-stdlib/test_API_env.v", line 218, characters 40-43
UB2 is linear: name it _UB2 (discard) or UB2_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests-stdlib/test_API_env.v", line 225, characters 40-43:
Warning:
File "./tests-stdlib/test_API_env.v", line 225, characters 40-43
UB3 is linear: name it _UB3 (discard) or UB3_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests-stdlib/test_API_env.v", line 215, characters 34-36:
Warning:
File "./tests-stdlib/test_API_env.v", line 215, characters 34-36
UC is linear: name it _UC (discard) or UC_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests-stdlib/test_API_env.v", line 246, characters 71-72:
Warning:
File "./tests-stdlib/test_API_env.v", line 246, characters 71-72
U is linear: name it _U (discard) or U_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests-stdlib/test_API_env.v", line 240, characters 39-41:
Warning:
File "./tests-stdlib/test_API_env.v", line 240, characters 39-41
UA is linear: name it _UA (discard) or UA_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests-stdlib/test_API_env.v", line 243, characters 45-48:
Warning:
File "./tests-stdlib/test_API_env.v", line 243, characters 45-48
UB1 is linear: name it _UB1 (discard) or UB1_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests-stdlib/test_API_env.v", line 249, characters 40-43:
Warning:
File "./tests-stdlib/test_API_env.v", line 249, characters 40-43
UB2 is linear: name it _UB2 (discard) or UB2_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests-stdlib/test_API_env.v", line 256, characters 40-43:
Warning:
File "./tests-stdlib/test_API_env.v", line 256, characters 40-43
UB3 is linear: name it _UB3 (discard) or UB3_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests-stdlib/test_API_env.v", line 246, characters 34-36:
Warning:
File "./tests-stdlib/test_API_env.v", line 246, characters 34-36
UC is linear: name it _UC (discard) or UC_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests-stdlib/test_API_env.v", line 273, characters 39-41:
Warning:
File "./tests-stdlib/test_API_env.v", line 273, characters 39-41
UP is linear: name it _UP (discard) or UP_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests-stdlib/test_API_env.v", line 275, characters 30-32:
Warning:
File "./tests-stdlib/test_API_env.v", line 275, characters 30-32
UR is linear: name it _UR (discard) or UR_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests-stdlib/test_API_env.v", line 291, characters 39-41:
Warning:
File "./tests-stdlib/test_API_env.v", line 291, characters 39-41
UP is linear: name it _UP (discard) or UP_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests-stdlib/test_API_env.v", line 293, characters 30-32:
Warning:
File "./tests-stdlib/test_API_env.v", line 293, characters 30-32
UR is linear: name it _UR (discard) or UR_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
d1
     : nat
d2
     : nat
i1
     : Prop
i2
     : Prop
k1
     : i1
k2
     : i2
r1
     : Set
r2
     : Type
f1
     : r1 -> nat
f2
     : r2 -> nat
Debug:
----<<---- enter:  
coq.say raw: 
 (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.2»)) c0 \
   parameter A2 explicit c0 c1 \
    inductive foo1 tt 
     (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c2 \
       parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c3 \
        arity
         (prod `_` (global (indt «nat»)) c4 \
           sort (typ «elpi.tests.test_arg_HOAS.7»))) c2 \
     [constructor a_k1 
       (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) 
         c3 \
         parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) 
          c4 \
          arity
           (prod `x` (global (indt «nat»)) c5 \
             prod `_` 
              (app
                [c2, app [global (indt «prod»), c3, c3], c4, 
                 app
                  [global (indc «S»), 
                   app
                    [global (indc «S»), 
                     app [global (indc «S»), global (indc «O»)]]]]) c6 \
              app [c2, c3, c4, c5])), 
      constructor a_k2 
       (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) 
         c3 \
         parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) 
          c4 \
          arity
           (prod `_` c0 c5 \
             app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))])
raw: 
parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.2»)) c0 \
 parameter A2 explicit c0 c1 \
  inductive foo1 tt 
   (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c2 \
     parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c3 \
      arity
       (prod `_` (global (indt «nat»)) c4 \
         sort (typ «elpi.tests.test_arg_HOAS.7»))) c2 \
   [constructor a_k1 
     (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c3 \
       parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c4 \
        arity
         (prod `x` (global (indt «nat»)) c5 \
           prod `_` 
            (app
              [c2, app [global (indt «prod»), c3, c3], c4, 
               app
                [global (indc «S»), 
                 app
                  [global (indc «S»), 
                   app [global (indc «S»), global (indc «O»)]]]]) c6 \
            app [c2, c3, c4, c5])), 
    constructor a_k2 
     (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c3 \
       parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c4 \
        arity
         (prod `_` c0 c5 \
           app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]
Debug:
---->>---- exit:  
coq.say raw: 
 (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.2»)) c0 \
   parameter A2 explicit c0 c1 \
    inductive foo1 tt 
     (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c2 \
       parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c3 \
        arity
         (prod `_` (global (indt «nat»)) c4 \
           sort (typ «elpi.tests.test_arg_HOAS.7»))) c2 \
     [constructor a_k1 
       (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) 
         c3 \
         parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) 
          c4 \
          arity
           (prod `x` (global (indt «nat»)) c5 \
             prod `_` 
              (app
                [c2, app [global (indt «prod»), c3, c3], c4, 
                 app
                  [global (indc «S»), 
                   app
                    [global (indc «S»), 
                     app [global (indc «S»), global (indc «O»)]]]]) c6 \
              app [c2, c3, c4, c5])), 
      constructor a_k2 
       (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) 
         c3 \
         parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) 
          c4 \
          arity
           (prod `_` c0 c5 \
             app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))])
Debug:
----<<---- enter:  
std.assert-ok!
 (coq.typecheck-indt-decl
   (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.2»)) c0 \
     parameter A2 explicit c0 c1 \
      inductive foo1 tt 
       (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) 
         c2 \
         parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) 
          c3 \
          arity
           (prod `_` (global (indt «nat»)) c4 \
             sort (typ «elpi.tests.test_arg_HOAS.7»))) c2 \
       [constructor a_k1 
         (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) 
           c3 \
           parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) 
            c4 \
            arity
             (prod `x` (global (indt «nat»)) c5 \
               prod `_` 
                (app
                  [c2, app [global (indt «prod»), c3, c3], c4, 
                   app
                    [global (indc «S»), 
                     app
                      [global (indc «S»), 
                       app [global (indc «S»), global (indc «O»)]]]]) 
                c6 \ app [c2, c3, c4, c5])), 
        constructor a_k2 
         (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) 
           c3 \
           parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) 
            c4 \
            arity
             (prod `_` c0 c5 \
               app
                [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))])) 
 Illtyped inductive declaration
Debug:
---->>---- exit:  
std.assert-ok!
 (coq.typecheck-indt-decl
   (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.2»)) c0 \
     parameter A2 explicit c0 c1 \
      inductive foo1 tt 
       (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) 
         c2 \
         parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) 
          c3 \
          arity
           (prod `_` (global (indt «nat»)) c4 \
             sort (typ «elpi.tests.test_arg_HOAS.7»))) c2 \
       [constructor a_k1 
         (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) 
           c3 \
           parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) 
            c4 \
            arity
             (prod `x` (global (indt «nat»)) c5 \
               prod `_` 
                (app
                  [c2, app [global (indt «prod»), c3, c3], c4, 
                   app
                    [global (indc «S»), 
                     app
                      [global (indc «S»), 
                       app [global (indc «S»), global (indc «O»)]]]]) 
                c6 \ app [c2, c3, c4, c5])), 
        constructor a_k2 
         (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) 
           c3 \
           parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) 
            c4 \
            arity
             (prod `_` c0 c5 \
               app
                [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))])) 
 Illtyped inductive declaration
Debug:
----<<---- enter:  
coq.say typed: 
 (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.2»)) c0 \
   parameter A2 explicit c0 c1 \
    inductive foo1 tt 
     (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c2 \
       parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c3 \
        arity
         (prod `_` (global (indt «nat»)) c4 \
           sort (typ «elpi.tests.test_arg_HOAS.7»))) c2 \
     [constructor a_k1 
       (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) 
         c3 \
         parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) 
          c4 \
          arity
           (prod `x` (global (indt «nat»)) c5 \
             prod `_` 
              (app
                [c2, app [global (indt «prod»), c3, c3], c4, 
                 app
                  [global (indc «S»), 
                   app
                    [global (indc «S»), 
                     app [global (indc «S»), global (indc «O»)]]]]) c6 \
              app [c2, c3, c4, c5])), 
      constructor a_k2 
       (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) 
         c3 \
         parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) 
          c4 \
          arity
           (prod `_` c0 c5 \
             app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))])
typed: 
parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.2»)) c0 \
 parameter A2 explicit c0 c1 \
  inductive foo1 tt 
   (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c2 \
     parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c3 \
      arity
       (prod `_` (global (indt «nat»)) c4 \
         sort (typ «elpi.tests.test_arg_HOAS.7»))) c2 \
   [constructor a_k1 
     (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c3 \
       parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c4 \
        arity
         (prod `x` (global (indt «nat»)) c5 \
           prod `_` 
            (app
              [c2, app [global (indt «prod»), c3, c3], c4, 
               app
                [global (indc «S»), 
                 app
                  [global (indc «S»), 
                   app [global (indc «S»), global (indc «O»)]]]]) c6 \
            app [c2, c3, c4, c5])), 
    constructor a_k2 
     (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c3 \
       parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c4 \
        arity
         (prod `_` c0 c5 \
           app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]
Debug:
---->>---- exit:  
coq.say typed: 
 (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.2»)) c0 \
   parameter A2 explicit c0 c1 \
    inductive foo1 tt 
     (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c2 \
       parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c3 \
        arity
         (prod `_` (global (indt «nat»)) c4 \
           sort (typ «elpi.tests.test_arg_HOAS.7»))) c2 \
     [constructor a_k1 
       (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) 
         c3 \
         parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) 
          c4 \
          arity
           (prod `x` (global (indt «nat»)) c5 \
             prod `_` 
              (app
                [c2, app [global (indt «prod»), c3, c3], c4, 
                 app
                  [global (indc «S»), 
                   app
                    [global (indc «S»), 
                     app [global (indc «S»), global (indc «O»)]]]]) c6 \
              app [c2, c3, c4, c5])), 
      constructor a_k2 
       (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) 
         c3 \
         parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) 
          c4 \
          arity
           (prod `_` c0 c5 \
             app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))])
Debug:
----<<---- enter:  
coq.env.add-indt
 (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.2»)) c0 \
   parameter A2 explicit c0 c1 \
    inductive foo1 tt 
     (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) c2 \
       parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) c3 \
        arity
         (prod `_` (global (indt «nat»)) c4 \
           sort (typ «elpi.tests.test_arg_HOAS.7»))) c2 \
     [constructor a_k1 
       (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) 
         c3 \
         parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) 
          c4 \
          arity
           (prod `x` (global (indt «nat»)) c5 \
             prod `_` 
              (app
                [c2, app [global (indt «prod»), c3, c3], c4, 
                 app
                  [global (indc «S»), 
                   app
                    [global (indc «S»), 
                     app [global (indc «S»), global (indc «O»)]]]]) c6 \
              app [c2, c3, c4, c5])), 
      constructor a_k2 
       (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.3»)) 
         c3 \
         parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.4»)) 
          c4 \
          arity
           (prod `_` c0 c5 \
             app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) 
 X0
Debug:
---->>---- exit:  
coq.env.add-indt
 (parameter A1 maximal (sort (typ «foo1.u0»)) c0 \
   parameter A2 explicit c0 c1 \
    inductive foo1 tt 
     (parameter B1 explicit (sort (typ «foo1.u1»)) c2 \
       parameter B2 explicit (sort (typ «foo1.u2»)) c3 \
        arity (prod `_` (global (indt «nat»)) c4 \ sort (typ «foo1.u3»))) 
     c2 \
     [constructor a_k1 
       (parameter B1 explicit (sort (typ «foo1.u1»)) c3 \
         parameter B2 explicit (sort (typ «foo1.u2»)) c4 \
          arity
           (prod `x` (global (indt «nat»)) c5 \
             prod `_` 
              (app
                [c2, app [global (indt «prod»), c3, c3], c4, 
                 app
                  [global (indc «S»), 
                   app
                    [global (indc «S»), 
                     app [global (indc «S»), global (indc «O»)]]]]) c6 \
              app [c2, c3, c4, c5])), 
      constructor a_k2 
       (parameter B1 explicit (sort (typ «foo1.u1»)) c3 \
         parameter B2 explicit (sort (typ «foo1.u2»)) c4 \
          arity
           (prod `_` c0 c5 \
             app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) 
 «foo1»
foo1 ?A2 ?B1 ?B2 ?n : Type
     : Type
where
?A1 : [ |- Type]
?A2 : [ |- ?A1]
?B1 : [ |- Type]
?B2 : [ |- Type]
?n : [ |- nat]
a_k1 ?A2 ?B1 ?B2 3 ?f : foo1 ?A2 ?B1 ?B2 3
     : foo1 ?A2 ?B1 ?B2 3
where
?A1 : [ |- Type]
?A2 : [ |- ?A1]
?B1 : [ |- Type]
?B2 : [ |- Type]
?f : [ |- foo1 ?A2 (?B1 * ?B1) ?B2 3]
Debug:
----<<---- enter:  
coq.say raw: 
 (parameter A1 maximal X0 c0 \
   parameter A2 explicit c0 c1 \
    inductive foo1 tt 
     (parameter B1 explicit (sort (typ X1)) c2 \
       parameter B2 explicit (sort (typ X2)) c3 \
        arity (prod `_` (global (indt «nat»)) c4 \ sort (typ X3))) c2 \
     [constructor a_k1 
       (parameter B1 explicit (sort (typ X4)) c3 \
         parameter B2 explicit (sort (typ X5)) c4 \
          arity
           (prod `x` (X6 c4) c5 \
             prod `_` 
              (app
                [c2, app [global (indt «prod»), c3, c3], c4, 
                 app
                  [global (indc «S»), 
                   app
                    [global (indc «S»), 
                     app [global (indc «S»), global (indc «O»)]]]]) c6 \
              app [c2, c3, c4, c5])), 
      constructor a_k2 
       (parameter B1 explicit (sort (typ X7)) c3 \
         parameter B2 explicit (sort (typ X8)) c4 \
          arity
           (prod `_` c0 c5 \
             app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))])
raw: 
parameter A1 maximal X0 c0 \
 parameter A2 explicit c0 c1 \
  inductive foo1 tt 
   (parameter B1 explicit (sort (typ X1)) c2 \
     parameter B2 explicit (sort (typ X2)) c3 \
      arity (prod `_` (global (indt «nat»)) c4 \ sort (typ X3))) c2 \
   [constructor a_k1 
     (parameter B1 explicit (sort (typ X4)) c3 \
       parameter B2 explicit (sort (typ X5)) c4 \
        arity
         (prod `x` (X6 c4) c5 \
           prod `_` 
            (app
              [c2, app [global (indt «prod»), c3, c3], c4, 
               app
                [global (indc «S»), 
                 app
                  [global (indc «S»), 
                   app [global (indc «S»), global (indc «O»)]]]]) c6 \
            app [c2, c3, c4, c5])), 
    constructor a_k2 
     (parameter B1 explicit (sort (typ X7)) c3 \
       parameter B2 explicit (sort (typ X8)) c4 \
        arity
         (prod `_` c0 c5 \
           app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]
Debug:
---->>---- exit:  
coq.say raw: 
 (parameter A1 maximal X0 c0 \
   parameter A2 explicit c0 c1 \
    inductive foo1 tt 
     (parameter B1 explicit (sort (typ X1)) c2 \
       parameter B2 explicit (sort (typ X2)) c3 \
        arity (prod `_` (global (indt «nat»)) c4 \ sort (typ X3))) c2 \
     [constructor a_k1 
       (parameter B1 explicit (sort (typ X4)) c3 \
         parameter B2 explicit (sort (typ X5)) c4 \
          arity
           (prod `x` (X6 c4) c5 \
             prod `_` 
              (app
                [c2, app [global (indt «prod»), c3, c3], c4, 
                 app
                  [global (indc «S»), 
                   app
                    [global (indc «S»), 
                     app [global (indc «S»), global (indc «O»)]]]]) c6 \
              app [c2, c3, c4, c5])), 
      constructor a_k2 
       (parameter B1 explicit (sort (typ X7)) c3 \
         parameter B2 explicit (sort (typ X8)) c4 \
          arity
           (prod `_` c0 c5 \
             app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))])
Debug:
----<<---- enter:  
std.assert-ok!
 (coq.elaborate-indt-decl-skeleton
   (parameter A1 maximal X0 c0 \
     parameter A2 explicit c0 c1 \
      inductive foo1 tt 
       (parameter B1 explicit (sort (typ X1)) c2 \
         parameter B2 explicit (sort (typ X2)) c3 \
          arity (prod `_` (global (indt «nat»)) c4 \ sort (typ X3))) c2 \
       [constructor a_k1 
         (parameter B1 explicit (sort (typ X4)) c3 \
           parameter B2 explicit (sort (typ X5)) c4 \
            arity
             (prod `x` (X6 c4) c5 \
               prod `_` 
                (app
                  [c2, app [global (indt «prod»), c3, c3], c4, 
                   app
                    [global (indc «S»), 
                     app
                      [global (indc «S»), 
                       app [global (indc «S»), global (indc «O»)]]]]) 
                c6 \ app [c2, c3, c4, c5])), 
        constructor a_k2 
         (parameter B1 explicit (sort (typ X7)) c3 \
           parameter B2 explicit (sort (typ X8)) c4 \
            arity
             (prod `_` c0 c5 \
               app
                [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) 
   X9) Illtyped inductive declaration
Debug:
---->>---- exit:  
std.assert-ok!
 (coq.elaborate-indt-decl-skeleton
   (parameter A1 maximal X0 c0 \
     parameter A2 explicit c0 c1 \
      inductive foo1 tt 
       (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.41»)) 
         c2 \
         parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.44»)) 
          c3 \
          arity
           (prod `_` (global (indt «nat»)) c4 \
             sort (typ «elpi.tests.test_arg_HOAS.47»))) c2 \
       [constructor a_k1 
         (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.52»)) 
           c3 \
           parameter B2 explicit 
            (sort (typ «elpi.tests.test_arg_HOAS.54»)) c4 \
            arity
             (prod `x` (X6 c4) c5 \
               prod `_` 
                (app
                  [c2, app [global (indt «prod»), c3, c3], c4, 
                   app
                    [global (indc «S»), 
                     app
                      [global (indc «S»), 
                       app [global (indc «S»), global (indc «O»)]]]]) 
                c6 \ app [c2, c3, c4, c5])), 
        constructor a_k2 
         (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.61»)) 
           c3 \
           parameter B2 explicit 
            (sort (typ «elpi.tests.test_arg_HOAS.63»)) c4 \
            arity
             (prod `_` c0 c5 \
               app
                [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) 
   (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.40»)) c0 \
     parameter A2 explicit c0 c1 \
      inductive foo1 tt 
       (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.42»)) 
         c2 \
         parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.45»)) 
          c3 \
          arity
           (prod `_` (global (indt «nat»)) c4 \
             sort (typ «elpi.tests.test_arg_HOAS.48»))) c2 \
       [constructor a_k1 
         (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.53»)) 
           c3 \
           parameter B2 explicit 
            (sort (typ «elpi.tests.test_arg_HOAS.55»)) c4 \
            arity
             (prod `x` (global (indt «nat»)) c5 \
               prod `_` 
                (app
                  [c2, app [global (indt «prod»), c3, c3], c4, 
                   app
                    [global (indc «S»), 
                     app
                      [global (indc «S»), 
                       app [global (indc «S»), global (indc «O»)]]]]) 
                c6 \ app [c2, c3, c4, c5])), 
        constructor a_k2 
         (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.62»)) 
           c3 \
           parameter B2 explicit 
            (sort (typ «elpi.tests.test_arg_HOAS.64»)) c4 \
            arity
             (prod `_` c0 c5 \
               app
                [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))])) 
 Illtyped inductive declaration
Debug:
----<<---- enter:  
coq.say typed: 
 (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.40»)) c0 \
   parameter A2 explicit c0 c1 \
    inductive foo1 tt 
     (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.42»)) c2 \
       parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.45»)) 
        c3 \
        arity
         (prod `_` (global (indt «nat»)) c4 \
           sort (typ «elpi.tests.test_arg_HOAS.48»))) c2 \
     [constructor a_k1 
       (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.53»)) 
         c3 \
         parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.55»)) 
          c4 \
          arity
           (prod `x` (global (indt «nat»)) c5 \
             prod `_` 
              (app
                [c2, app [global (indt «prod»), c3, c3], c4, 
                 app
                  [global (indc «S»), 
                   app
                    [global (indc «S»), 
                     app [global (indc «S»), global (indc «O»)]]]]) c6 \
              app [c2, c3, c4, c5])), 
      constructor a_k2 
       (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.62»)) 
         c3 \
         parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.64»)) 
          c4 \
          arity
           (prod `_` c0 c5 \
             app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))])
typed: 
parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.40»)) c0 \
 parameter A2 explicit c0 c1 \
  inductive foo1 tt 
   (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.42»)) c2 \
     parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.45»)) c3 \
      arity
       (prod `_` (global (indt «nat»)) c4 \
         sort (typ «elpi.tests.test_arg_HOAS.48»))) c2 \
   [constructor a_k1 
     (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.53»)) c3 \
       parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.55»)) 
        c4 \
        arity
         (prod `x` (global (indt «nat»)) c5 \
           prod `_` 
            (app
              [c2, app [global (indt «prod»), c3, c3], c4, 
               app
                [global (indc «S»), 
                 app
                  [global (indc «S»), 
                   app [global (indc «S»), global (indc «O»)]]]]) c6 \
            app [c2, c3, c4, c5])), 
    constructor a_k2 
     (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.62»)) c3 \
       parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.64»)) 
        c4 \
        arity
         (prod `_` c0 c5 \
           app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]
Debug:
---->>---- exit:  
coq.say typed: 
 (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.40»)) c0 \
   parameter A2 explicit c0 c1 \
    inductive foo1 tt 
     (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.42»)) c2 \
       parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.45»)) 
        c3 \
        arity
         (prod `_` (global (indt «nat»)) c4 \
           sort (typ «elpi.tests.test_arg_HOAS.48»))) c2 \
     [constructor a_k1 
       (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.53»)) 
         c3 \
         parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.55»)) 
          c4 \
          arity
           (prod `x` (global (indt «nat»)) c5 \
             prod `_` 
              (app
                [c2, app [global (indt «prod»), c3, c3], c4, 
                 app
                  [global (indc «S»), 
                   app
                    [global (indc «S»), 
                     app [global (indc «S»), global (indc «O»)]]]]) c6 \
              app [c2, c3, c4, c5])), 
      constructor a_k2 
       (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.62»)) 
         c3 \
         parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.64»)) 
          c4 \
          arity
           (prod `_` c0 c5 \
             app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))])
Debug:
----<<---- enter:  
coq.env.add-indt
 (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.40»)) c0 \
   parameter A2 explicit c0 c1 \
    inductive foo1 tt 
     (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.42»)) c2 \
       parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.45»)) 
        c3 \
        arity
         (prod `_` (global (indt «nat»)) c4 \
           sort (typ «elpi.tests.test_arg_HOAS.48»))) c2 \
     [constructor a_k1 
       (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.53»)) 
         c3 \
         parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.55»)) 
          c4 \
          arity
           (prod `x` (global (indt «nat»)) c5 \
             prod `_` 
              (app
                [c2, app [global (indt «prod»), c3, c3], c4, 
                 app
                  [global (indc «S»), 
                   app
                    [global (indc «S»), 
                     app [global (indc «S»), global (indc «O»)]]]]) c6 \
              app [c2, c3, c4, c5])), 
      constructor a_k2 
       (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.62»)) 
         c3 \
         parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.64»)) 
          c4 \
          arity
           (prod `_` c0 c5 \
             app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) 
 X10
Debug:
---->>---- exit:  
coq.env.add-indt
 (parameter A1 maximal (sort (typ «foo1.u0»)) c0 \
   parameter A2 explicit c0 c1 \
    inductive foo1 tt 
     (parameter B1 explicit (sort (typ «foo1.u1»)) c2 \
       parameter B2 explicit (sort (typ «foo1.u2»)) c3 \
        arity (prod `_` (global (indt «nat»)) c4 \ sort (typ «foo1.u3»))) 
     c2 \
     [constructor a_k1 
       (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.53»)) 
         c3 \
         parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.55»)) 
          c4 \
          arity
           (prod `x` (global (indt «nat»)) c5 \
             prod `_` 
              (app
                [c2, app [global (indt «prod»), c3, c3], c4, 
                 app
                  [global (indc «S»), 
                   app
                    [global (indc «S»), 
                     app [global (indc «S»), global (indc «O»)]]]]) c6 \
              app [c2, c3, c4, c5])), 
      constructor a_k2 
       (parameter B1 explicit (sort (typ «elpi.tests.test_arg_HOAS.62»)) 
         c3 \
         parameter B2 explicit (sort (typ «elpi.tests.test_arg_HOAS.64»)) 
          c4 \
          arity
           (prod `_` c0 c5 \
             app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]) 
 «foo1»
foo1 ?A2 ?B1 ?B2 ?n : Type
     : Type
where
?A1 : [ |- Type]
?A2 : [ |- ?A1]
?B1 : [ |- Type]
?B2 : [ |- Type]
?n : [ |- nat]
a_k1 ?A2 ?B1 ?B2 3 ?f : foo1 ?A2 ?B1 ?B2 3
     : foo1 ?A2 ?B1 ?B2 3
where
?A1 : [ |- Type]
?A2 : [ |- ?A1]
?B1 : [ |- Type]
?B2 : [ |- Type]
?f : [ |- foo1 ?A2 (?B1 * ?B1) ?B2 3]
Query assignments:
  D = parameter A explicit (sort (typ «t.u0»)) c0 \
 inductive t tt 
  (parameter y explicit (global (indt «nat»)) c1 \
    arity (sort (typ «elpi.tests.test_arg_HOAS.82»))) c1 \
  [constructor K 
    (parameter y explicit (global (indt «nat»)) c2 \
      parameter x explicit c0 c3 \
       parameter n maximal (global (indt «nat»)) c4 \
        arity (prod `_` (app [c1, c4]) c5 \ app [c1, c2]))]
  I = «t»
Universe constraints:
UNIVERSES:
 {elpi.tests.test_arg_HOAS.82} |=
   Set <= elpi.tests.test_arg_HOAS.82
   t.u0 <= elpi.tests.test_arg_HOAS.82
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 
WEAK CONSTRAINTS:
 

Debug:
----<<---- enter:  
coq.say raw: 
 (record foo (sort (typ «Set»)) Build_foo 
   (field [coercion off, canonical tt] f 
     (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \
     field [coercion off, canonical tt] _ 
      (app
        [global (indt «eq»), global (indt «nat»), 
         app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record))
raw: 
record foo (sort (typ «Set»)) Build_foo 
 (field [coercion off, canonical tt] f 
   (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \
   field [coercion off, canonical tt] _ 
    (app
      [global (indt «eq»), global (indt «nat»), 
       app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record)
Debug:
---->>---- exit:  
coq.say raw: 
 (record foo (sort (typ «Set»)) Build_foo 
   (field [coercion off, canonical tt] f 
     (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \
     field [coercion off, canonical tt] _ 
      (app
        [global (indt «eq»), global (indt «nat»), 
         app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record))
Debug:
----<<---- enter:  
std.assert-ok!
 (coq.typecheck-indt-decl
   (record foo (sort (typ «Set»)) Build_foo 
     (field [coercion off, canonical tt] f 
       (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \
       field [coercion off, canonical tt] _ 
        (app
          [global (indt «eq»), global (indt «nat»), 
           app [c0, global (indc «O»)], global (indc «O»)]) c1 \
        end-record))) Illtyped inductive declaration
Debug:
---->>---- exit:  
std.assert-ok!
 (coq.typecheck-indt-decl
   (record foo (sort (typ «Set»)) Build_foo 
     (field [coercion off, canonical tt] f 
       (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \
       field [coercion off, canonical tt] _ 
        (app
          [global (indt «eq»), global (indt «nat»), 
           app [c0, global (indc «O»)], global (indc «O»)]) c1 \
        end-record))) Illtyped inductive declaration
Debug:
----<<---- enter:  
coq.say typed: 
 (record foo (sort (typ «Set»)) Build_foo 
   (field [coercion off, canonical tt] f 
     (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \
     field [coercion off, canonical tt] _ 
      (app
        [global (indt «eq»), global (indt «nat»), 
         app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record))
typed: 
record foo (sort (typ «Set»)) Build_foo 
 (field [coercion off, canonical tt] f 
   (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \
   field [coercion off, canonical tt] _ 
    (app
      [global (indt «eq»), global (indt «nat»), 
       app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record)
Debug:
---->>---- exit:  
coq.say typed: 
 (record foo (sort (typ «Set»)) Build_foo 
   (field [coercion off, canonical tt] f 
     (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \
     field [coercion off, canonical tt] _ 
      (app
        [global (indt «eq»), global (indt «nat»), 
         app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record))
Debug:
----<<---- enter:  
coq.env.add-indt
 (record foo (sort (typ «Set»)) Build_foo 
   (field [coercion off, canonical tt] f 
     (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \
     field [coercion off, canonical tt] _ 
      (app
        [global (indt «eq»), global (indt «nat»), 
         app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record)) 
 X0
Debug:
---->>---- exit:  
coq.env.add-indt
 (record foo (sort (typ «Set»)) Build_foo 
   (field [coercion off, canonical tt] f 
     (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \
     field [coercion off, canonical tt] _ 
      (app
        [global (indt «eq»), global (indt «nat»), 
         app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record)) 
 «foo»
Debug:
----<<---- enter:  
coq.say raw: 
 (record foo (sort (typ X0)) Build_foo 
   (field [coercion off, canonical tt] f 
     (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \
     field [coercion off, canonical tt] _ 
      (app
        [global (indt «eq»), X1 c0, app [c0, global (indc «O»)], 
         global (indc «O»)]) c1 \ end-record))
raw: 
record foo (sort (typ X0)) Build_foo 
 (field [coercion off, canonical tt] f 
   (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \
   field [coercion off, canonical tt] _ 
    (app
      [global (indt «eq»), X1 c0, app [c0, global (indc «O»)], 
       global (indc «O»)]) c1 \ end-record)
Debug:
---->>---- exit:  
coq.say raw: 
 (record foo (sort (typ X0)) Build_foo 
   (field [coercion off, canonical tt] f 
     (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \
     field [coercion off, canonical tt] _ 
      (app
        [global (indt «eq»), X1 c0, app [c0, global (indc «O»)], 
         global (indc «O»)]) c1 \ end-record))
Debug:
----<<---- enter:  
std.assert-ok!
 (coq.elaborate-indt-decl-skeleton
   (record foo (sort (typ X0)) Build_foo 
     (field [coercion off, canonical tt] f 
       (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \
       field [coercion off, canonical tt] _ 
        (app
          [global (indt «eq»), X1 c0, app [c0, global (indc «O»)], 
           global (indc «O»)]) c1 \ end-record)) X2) 
 Illtyped inductive declaration
Debug:
---->>---- exit:  
std.assert-ok!
 (coq.elaborate-indt-decl-skeleton
   (record foo (sort (typ «elpi.tests.test_arg_HOAS.85»)) Build_foo 
     (field [coercion off, canonical tt] f 
       (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \
       field [coercion off, canonical tt] _ 
        (app
          [global (indt «eq»), X1 c0, app [c0, global (indc «O»)], 
           global (indc «O»)]) c1 \ end-record)) 
   (record foo (sort (typ «elpi.tests.test_arg_HOAS.86»)) Build_foo 
     (field [coercion off, canonical tt] f 
       (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \
       field [coercion off, canonical tt] _ 
        (app
          [global (indt «eq»), global (indt «nat»), 
           app [c0, global (indc «O»)], global (indc «O»)]) c1 \
        end-record))) Illtyped inductive declaration
Debug:
----<<---- enter:  
coq.say typed: 
 (record foo (sort (typ «elpi.tests.test_arg_HOAS.86»)) Build_foo 
   (field [coercion off, canonical tt] f 
     (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \
     field [coercion off, canonical tt] _ 
      (app
        [global (indt «eq»), global (indt «nat»), 
         app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record))
typed: 
record foo (sort (typ «elpi.tests.test_arg_HOAS.86»)) Build_foo 
 (field [coercion off, canonical tt] f 
   (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \
   field [coercion off, canonical tt] _ 
    (app
      [global (indt «eq»), global (indt «nat»), 
       app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record)
Debug:
---->>---- exit:  
coq.say typed: 
 (record foo (sort (typ «elpi.tests.test_arg_HOAS.86»)) Build_foo 
   (field [coercion off, canonical tt] f 
     (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \
     field [coercion off, canonical tt] _ 
      (app
        [global (indt «eq»), global (indt «nat»), 
         app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record))
Debug:
----<<---- enter:  
coq.env.add-indt
 (record foo (sort (typ «elpi.tests.test_arg_HOAS.86»)) Build_foo 
   (field [coercion off, canonical tt] f 
     (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \
     field [coercion off, canonical tt] _ 
      (app
        [global (indt «eq»), global (indt «nat»), 
         app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record)) 
 X3
Debug:
---->>---- exit:  
coq.env.add-indt
 (record foo (sort (typ «foo.u0»)) Build_foo 
   (field [coercion off, canonical tt] f 
     (prod `_` (global (indt «nat»)) c0 \ global (indt «nat»)) c0 \
     field [coercion off, canonical tt] _ 
      (app
        [global (indt «eq»), global (indt «nat»), 
         app [c0, global (indc «O»)], global (indc «O»)]) c1 \ end-record)) 
 «foo»
Debug:
----<<---- enter:  
coq.say raw: 
 (parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.88»)) c0 \
   parameter B explicit c0 c1 \
    record foo (sort (typ «elpi.tests.test_arg_HOAS.88»)) Build_foo 
     (field [coercion off, canonical tt] a 
       (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \
       field [coercion reversible, canonical tt] z 
        (prod `a` c0 c3 \
          prod `_` (app [global (indt «eq»), c0, c1, c1]) c4 \ c0) c3 \
        field [coercion off, canonical ff] x 
         (let `w` (global (indt «nat»)) 
           (app
             [global (indc «S»), 
              app
               [global (indc «S»), 
                app [global (indc «S»), global (indc «O»)]]]) c4 \
           prod `x` c0 c5 \
            app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \
         end-record))
raw: 
parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.88»)) c0 \
 parameter B explicit c0 c1 \
  record foo (sort (typ «elpi.tests.test_arg_HOAS.88»)) Build_foo 
   (field [coercion off, canonical tt] a 
     (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \
     field [coercion reversible, canonical tt] z 
      (prod `a` c0 c3 \
        prod `_` (app [global (indt «eq»), c0, c1, c1]) c4 \ c0) c3 \
      field [coercion off, canonical ff] x 
       (let `w` (global (indt «nat»)) 
         (app
           [global (indc «S»), 
            app
             [global (indc «S»), 
              app [global (indc «S»), global (indc «O»)]]]) c4 \
         prod `x` c0 c5 \
          app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \
       end-record)
Debug:
---->>---- exit:  
coq.say raw: 
 (parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.88»)) c0 \
   parameter B explicit c0 c1 \
    record foo (sort (typ «elpi.tests.test_arg_HOAS.88»)) Build_foo 
     (field [coercion off, canonical tt] a 
       (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \
       field [coercion reversible, canonical tt] z 
        (prod `a` c0 c3 \
          prod `_` (app [global (indt «eq»), c0, c1, c1]) c4 \ c0) c3 \
        field [coercion off, canonical ff] x 
         (let `w` (global (indt «nat»)) 
           (app
             [global (indc «S»), 
              app
               [global (indc «S»), 
                app [global (indc «S»), global (indc «O»)]]]) c4 \
           prod `x` c0 c5 \
            app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \
         end-record))
Debug:
----<<---- enter:  
std.assert-ok!
 (coq.typecheck-indt-decl
   (parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.88»)) c0 \
     parameter B explicit c0 c1 \
      record foo (sort (typ «elpi.tests.test_arg_HOAS.88»)) Build_foo 
       (field [coercion off, canonical tt] a 
         (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \
         field [coercion reversible, canonical tt] z 
          (prod `a` c0 c3 \
            prod `_` (app [global (indt «eq»), c0, c1, c1]) c4 \ c0) c3 \
          field [coercion off, canonical ff] x 
           (let `w` (global (indt «nat»)) 
             (app
               [global (indc «S»), 
                app
                 [global (indc «S»), 
                  app [global (indc «S»), global (indc «O»)]]]) c4 \
             prod `x` c0 c5 \
              app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \
           end-record))) Illtyped inductive declaration
Debug:
---->>---- exit:  
std.assert-ok!
 (coq.typecheck-indt-decl
   (parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.88»)) c0 \
     parameter B explicit c0 c1 \
      record foo (sort (typ «elpi.tests.test_arg_HOAS.88»)) Build_foo 
       (field [coercion off, canonical tt] a 
         (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \
         field [coercion reversible, canonical tt] z 
          (prod `a` c0 c3 \
            prod `_` (app [global (indt «eq»), c0, c1, c1]) c4 \ c0) c3 \
          field [coercion off, canonical ff] x 
           (let `w` (global (indt «nat»)) 
             (app
               [global (indc «S»), 
                app
                 [global (indc «S»), 
                  app [global (indc «S»), global (indc «O»)]]]) c4 \
             prod `x` c0 c5 \
              app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \
           end-record))) Illtyped inductive declaration
Debug:
----<<---- enter:  
coq.say typed: 
 (parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.88»)) c0 \
   parameter B explicit c0 c1 \
    record foo (sort (typ «elpi.tests.test_arg_HOAS.88»)) Build_foo 
     (field [coercion off, canonical tt] a 
       (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \
       field [coercion reversible, canonical tt] z 
        (prod `a` c0 c3 \
          prod `_` (app [global (indt «eq»), c0, c1, c1]) c4 \ c0) c3 \
        field [coercion off, canonical ff] x 
         (let `w` (global (indt «nat»)) 
           (app
             [global (indc «S»), 
              app
               [global (indc «S»), 
                app [global (indc «S»), global (indc «O»)]]]) c4 \
           prod `x` c0 c5 \
            app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \
         end-record))
typed: 
parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.88»)) c0 \
 parameter B explicit c0 c1 \
  record foo (sort (typ «elpi.tests.test_arg_HOAS.88»)) Build_foo 
   (field [coercion off, canonical tt] a 
     (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \
     field [coercion reversible, canonical tt] z 
      (prod `a` c0 c3 \
        prod `_` (app [global (indt «eq»), c0, c1, c1]) c4 \ c0) c3 \
      field [coercion off, canonical ff] x 
       (let `w` (global (indt «nat»)) 
         (app
           [global (indc «S»), 
            app
             [global (indc «S»), 
              app [global (indc «S»), global (indc «O»)]]]) c4 \
         prod `x` c0 c5 \
          app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \
       end-record)
Debug:
---->>---- exit:  
coq.say typed: 
 (parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.88»)) c0 \
   parameter B explicit c0 c1 \
    record foo (sort (typ «elpi.tests.test_arg_HOAS.88»)) Build_foo 
     (field [coercion off, canonical tt] a 
       (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \
       field [coercion reversible, canonical tt] z 
        (prod `a` c0 c3 \
          prod `_` (app [global (indt «eq»), c0, c1, c1]) c4 \ c0) c3 \
        field [coercion off, canonical ff] x 
         (let `w` (global (indt «nat»)) 
           (app
             [global (indc «S»), 
              app
               [global (indc «S»), 
                app [global (indc «S»), global (indc «O»)]]]) c4 \
           prod `x` c0 c5 \
            app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \
         end-record))
Debug:
----<<---- enter:  
coq.env.add-indt
 (parameter A explicit (sort (typ «elpi.tests.test_arg_HOAS.88»)) c0 \
   parameter B explicit c0 c1 \
    record foo (sort (typ «elpi.tests.test_arg_HOAS.88»)) Build_foo 
     (field [coercion off, canonical tt] a 
       (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \
       field [coercion reversible, canonical tt] z 
        (prod `a` c0 c3 \
          prod `_` (app [global (indt «eq»), c0, c1, c1]) c4 \ c0) c3 \
        field [coercion off, canonical ff] x 
         (let `w` (global (indt «nat»)) 
           (app
             [global (indc «S»), 
              app
               [global (indc «S»), 
                app [global (indc «S»), global (indc «O»)]]]) c4 \
           prod `x` c0 c5 \
            app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \
         end-record)) X0
Debug:
---->>---- exit:  
coq.env.add-indt
 (parameter A explicit (sort (typ «foo.u0»)) c0 \
   parameter B explicit c0 c1 \
    record foo (sort (typ «foo.u0»)) Build_foo 
     (field [coercion off, canonical tt] a 
       (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \
       field [coercion reversible, canonical tt] z 
        (prod `a` c0 c3 \
          prod `_` (app [global (indt «eq»), c0, c1, c1]) c4 \ c0) c3 \
        field [coercion off, canonical ff] x 
         (let `w` (global (indt «nat»)) 
           (app
             [global (indc «S»), 
              app
               [global (indc «S»), 
                app [global (indc «S»), global (indc «O»)]]]) c4 \
           prod `x` c0 c5 \
            app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \
         end-record)) «foo»
Query assignments:
  I = «foo»
Debug:
----<<---- enter:  
coq.say raw: 
 (parameter A explicit X0 c0 \
   parameter B explicit c0 c1 \
    record foo (sort (typ X1)) Build_foo 
     (field [coercion off, canonical tt] a 
       (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \
       field [coercion reversible, canonical tt] z 
        (prod `_elpi_renamed_a_1` c0 c3 \
          prod `_` (app [global (indt «eq»), X2 c2 c3, c1, c1]) c4 \ c0) 
        c3 \
        field [coercion off, canonical ff] x 
         (let `w` (X3 c3) 
           (app
             [global (indc «S»), 
              app
               [global (indc «S»), 
                app [global (indc «S»), global (indc «O»)]]]) c4 \
           prod `x` (X4 c3 c4) c5 \
            app [global (indt «eq»), X5 c3 c4 c5, app [c2, c5, c5], c5]) 
         c4 \ end-record))
raw: 
parameter A explicit X0 c0 \
 parameter B explicit c0 c1 \
  record foo (sort (typ X1)) Build_foo 
   (field [coercion off, canonical tt] a 
     (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \
     field [coercion reversible, canonical tt] z 
      (prod `_elpi_renamed_a_1` c0 c3 \
        prod `_` (app [global (indt «eq»), X2 c2 c3, c1, c1]) c4 \ c0) c3 \
      field [coercion off, canonical ff] x 
       (let `w` (X3 c3) 
         (app
           [global (indc «S»), 
            app
             [global (indc «S»), 
              app [global (indc «S»), global (indc «O»)]]]) c4 \
         prod `x` (X4 c3 c4) c5 \
          app [global (indt «eq»), X5 c3 c4 c5, app [c2, c5, c5], c5]) c4 \
       end-record)
Debug:
---->>---- exit:  
coq.say raw: 
 (parameter A explicit X0 c0 \
   parameter B explicit c0 c1 \
    record foo (sort (typ X1)) Build_foo 
     (field [coercion off, canonical tt] a 
       (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \
       field [coercion reversible, canonical tt] z 
        (prod `_elpi_renamed_a_1` c0 c3 \
          prod `_` (app [global (indt «eq»), X2 c2 c3, c1, c1]) c4 \ c0) 
        c3 \
        field [coercion off, canonical ff] x 
         (let `w` (X3 c3) 
           (app
             [global (indc «S»), 
              app
               [global (indc «S»), 
                app [global (indc «S»), global (indc «O»)]]]) c4 \
           prod `x` (X4 c3 c4) c5 \
            app [global (indt «eq»), X5 c3 c4 c5, app [c2, c5, c5], c5]) 
         c4 \ end-record))
Debug:
----<<---- enter:  
std.assert-ok!
 (coq.elaborate-indt-decl-skeleton
   (parameter A explicit X0 c0 \
     parameter B explicit c0 c1 \
      record foo (sort (typ X1)) Build_foo 
       (field [coercion off, canonical tt] a 
         (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \
         field [coercion reversible, canonical tt] z 
          (prod `_elpi_renamed_a_1` c0 c3 \
            prod `_` (app [global (indt «eq»), X2 c2 c3, c1, c1]) c4 \ c0) 
          c3 \
          field [coercion off, canonical ff] x 
           (let `w` (X3 c3) 
             (app
               [global (indc «S»), 
                app
                 [global (indc «S»), 
                  app [global (indc «S»), global (indc «O»)]]]) c4 \
             prod `x` (X4 c3 c4) c5 \
              app [global (indt «eq»), X5 c3 c4 c5, app [c2, c5, c5], c5]) 
           c4 \ end-record)) X6) Illtyped inductive declaration
Debug:
---->>---- exit:  
std.assert-ok!
 (coq.elaborate-indt-decl-skeleton
   (parameter A explicit X0 c0 \
     parameter B explicit c0 c1 \
      record foo (sort (typ «elpi.tests.test_arg_HOAS.95»)) Build_foo 
       (field [coercion off, canonical tt] a 
         (prod `_` c0 c2 \ prod `_` c0 c3 \ c0) c2 \
         field [coercion reversible, canonical tt] z 
          (prod `_elpi_renamed_a_1` c0 c3 \
...TRUNCATED BY DUNE...
       app
        [global (const «Nat.add»), c2, 
         app [global (indc «S»), global (indc «O»)]]) 
   (prod `P` (sort (typ «elpi.tests.test_arg_HOAS.106»)) c0 \
     prod `w` c0 c1 \ prod `n` (global (indt «nat»)) c2 \ X5 c0 c1 c2) X7) 
 illtyped definition
Debug:
---->>---- exit:  
std.assert-ok!
 (coq.elaborate-skeleton
   (fun `P` (sort (typ «elpi.tests.test_arg_HOAS.109»)) c0 \
     fun `w` c0 c1 \
      fun `n` (global (indt «nat»)) c2 \
       app
        [global (const «Nat.add»), c2, 
         app [global (indc «S»), global (indc «O»)]]) 
   (prod `P` (sort (typ «elpi.tests.test_arg_HOAS.106»)) c0 \
     prod `w` c0 c1 \
      prod `n` (global (indt «nat»)) c2 \ global (indt «nat»)) 
   (fun `P` (sort (typ «elpi.tests.test_arg_HOAS.110»)) c0 \
     fun `w` c0 c1 \
      fun `n` (global (indt «nat»)) c2 \
       app
        [global (const «Nat.add»), c2, 
         app [global (indc «S»), global (indc «O»)]])) 
 illtyped definition
Debug:
----<<---- enter:  
coq.env.add-const x1 
 (fun `P` (sort (typ «elpi.tests.test_arg_HOAS.110»)) c0 \
   fun `w` c0 c1 \
    fun `n` (global (indt «nat»)) c2 \
     app
      [global (const «Nat.add»), c2, 
       app [global (indc «S»), global (indc «O»)]]) 
 (prod `P` (sort (typ «elpi.tests.test_arg_HOAS.106»)) c0 \
   prod `w` c0 c1 \
    prod `n` (global (indt «nat»)) c2 \ global (indt «nat»)) X8 X9
Debug:
---->>---- exit:  
coq.env.add-const x1 
 (fun `P` (sort (typ «x1.u1»)) c0 \
   fun `w` c0 c1 \
    fun `n` (global (indt «nat»)) c2 \
     app
      [global (const «Nat.add»), c2, 
       app [global (indc «S»), global (indc «O»)]]) 
 (prod `P` (sort (typ «x1.u0»)) c0 \
   prod `w` c0 c1 \
    prod `n` (global (indt «nat»)) c2 \ global (indt «nat»)) X8 «x1»
x1 : forall P : Type, P -> nat -> nat
     : forall P : Type, P -> nat -> nat
eq_refl : x1 = (fun (P : Type) (_ : P) (n : nat) => n + 1)
     : x1 = (fun (P : Type) (_ : P) (n : nat) => n + 1)
Debug:
----<<---- enter:  
coq.arity->term
 (parameter n explicit (global (indt «nat»)) c0 \
   arity (sort (typ «elpi.tests.test_arg_HOAS.113»))) X0
Debug:
---->>---- exit:  
coq.arity->term
 (parameter n explicit (global (indt «nat»)) c0 \
   arity (sort (typ «elpi.tests.test_arg_HOAS.113»))) 
 (prod `n` (global (indt «nat»)) c0 \
   sort (typ «elpi.tests.test_arg_HOAS.113»))
Debug:
----<<---- enter:  
std.assert-ok!
 (coq.typecheck-ty
   (prod `n` (global (indt «nat»)) c0 \
     sort (typ «elpi.tests.test_arg_HOAS.113»)) X1) illtyped axiom
Debug:
---->>---- exit:  
std.assert-ok!
 (coq.typecheck-ty
   (prod `n` (global (indt «nat»)) c0 \
     sort (typ «elpi.tests.test_arg_HOAS.113»)) 
   (typ «elpi.tests.test_arg_HOAS.114»)) illtyped axiom
Debug:
----<<---- enter:  
coq.env.add-axiom y 
 (prod `n` (global (indt «nat»)) c0 \
   sort (typ «elpi.tests.test_arg_HOAS.113»)) X2
Debug:
---->>---- exit:  
coq.env.add-axiom y 
 (prod `n` (global (indt «nat»)) c0 \ sort (typ «y.u0»)) «y»
y : nat -> Type
     : nat -> Type
Debug:
----<<---- enter:  
coq.arity->term
 (parameter n explicit (global (indt «nat»)) c0 \
   arity (global (indt «nat»))) X0
Debug:
---->>---- exit:  
coq.arity->term
 (parameter n explicit (global (indt «nat»)) c0 \
   arity (global (indt «nat»))) 
 (prod `n` (global (indt «nat»)) c0 \ global (indt «nat»))
Debug:
----<<---- enter:  
std.assert-ok!
 (coq.typecheck
   (fun `n` (global (indt «nat»)) c0 \ app [global (indc «S»), c0]) 
   (prod `n` (global (indt «nat»)) c0 \ global (indt «nat»))) 
 illtyped definition
Debug:
---->>---- exit:  
std.assert-ok!
 (coq.typecheck
   (fun `n` (global (indt «nat»)) c0 \ app [global (indc «S»), c0]) 
   (prod `n` (global (indt «nat»)) c0 \ global (indt «nat»))) 
 illtyped definition
Debug:
----<<---- enter:  
coq.env.add-const x 
 (fun `n` (global (indt «nat»)) c0 \ app [global (indc «S»), c0]) 
 (prod `n` (global (indt «nat»)) c0 \ global (indt «nat»)) X1 X2
Debug:
---->>---- exit:  
coq.env.add-const x 
 (fun `n` (global (indt «nat»)) c0 \ app [global (indc «S»), c0]) 
 (prod `n` (global (indt «nat»)) c0 \ global (indt «nat»)) X1 «x»
parameter A1 maximal (sort (typ «foo1.u0»)) c0 \
 parameter A2 explicit c0 c1 \
  inductive foo1 tt 
   (parameter B1 explicit (sort (typ «foo1.u1»)) c2 \
     parameter B2 explicit (sort (typ «foo1.u2»)) c3 \
      arity (prod `_` (global (indt «nat»)) c4 \ sort (typ «foo1.u3»))) 
   c2 \
   [constructor a_k1 
     (parameter B1 explicit (sort (typ «foo1.u1»)) c3 \
       parameter B2 explicit (sort (typ «foo1.u2»)) c4 \
        arity
         (prod `x` (global (indt «nat»)) c5 \
           prod `_` 
            (app
              [c2, app [global (indt «prod»), c3, c3], c4, 
               app
                [global (indc «S»), 
                 app
                  [global (indc «S»), 
                   app [global (indc «S»), global (indc «O»)]]]]) c6 \
            app [c2, c3, c4, c5])), 
    constructor a_k2 
     (parameter B1 explicit (sort (typ «foo1.u1»)) c3 \
       parameter B2 explicit (sort (typ «foo1.u2»)) c4 \
        arity
         (prod `_` c0 c5 \
           app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]
Query assignments:
  D = parameter A1 maximal (sort (typ «foo1.u0»)) c0 \
 parameter A2 explicit c0 c1 \
  inductive foo1 tt 
   (parameter B1 explicit (sort (typ «foo1.u1»)) c2 \
     parameter B2 explicit (sort (typ «foo1.u2»)) c3 \
      arity (prod `_` (global (indt «nat»)) c4 \ sort (typ «foo1.u3»))) 
   c2 \
   [constructor a_k1 
     (parameter B1 explicit (sort (typ «foo1.u1»)) c3 \
       parameter B2 explicit (sort (typ «foo1.u2»)) c4 \
        arity
         (prod `x` (global (indt «nat»)) c5 \
           prod `_` 
            (app
              [c2, app [global (indt «prod»), c3, c3], c4, 
               app
                [global (indc «S»), 
                 app
                  [global (indc «S»), 
                   app [global (indc «S»), global (indc «O»)]]]]) c6 \
            app [c2, c3, c4, c5])), 
    constructor a_k2 
     (parameter B1 explicit (sort (typ «foo1.u1»)) c3 \
       parameter B2 explicit (sort (typ «foo1.u2»)) c4 \
        arity
         (prod `_` c0 c5 \
           app [c2, c3, c4, app [global (indc «S»), global (indc «O»)]]))]
  I = «inductive_nup.foo1»
foo1 ?A2 ?B1 ?B2 ?n : Type
     : Type
where
?A1 : [ |- Type]
?A2 : [ |- ?A1]
?B1 : [ |- Type]
?B2 : [ |- Type]
?n : [ |- nat]
a_k1 ?A2 ?B1 ?B2 3 ?f : foo1 ?A2 ?B1 ?B2 3
     : foo1 ?A2 ?B1 ?B2 3
where
?A1 : [ |- Type]
?A2 : [ |- ?A1]
?B1 : [ |- Type]
?B2 : [ |- Type]
?f : [ |- foo1 ?A2 (?B1 * ?B1) ?B2 3]
Query assignments:
  I = «inductive_nup.r»
  R = parameter A explicit (sort (typ «r.u0»)) c0 \
 parameter a explicit c0 c1 \
  record r (sort (typ «r.u0»)) R 
   (field [coercion reversible, canonical tt] f (prod `_` c0 c2 \ c0) c2 \
     field [coercion off, canonical tt] g c0 c3 \
      field [coercion off, canonical tt] p 
       (app [global (indt «eq»), c0, c1, c3]) c4 \ end-record)
Record r (A : Type) (a : A) : Type := R { f : A -> A;  g : A;  p : a = g }.

Arguments r A%type_scope a
Arguments R A%type_scope a f%function_scope g p
Arguments f A%type_scope a record _
Arguments g A%type_scope a record
Arguments p A%type_scope a record
Debug:
----<<---- enter:  coq.say raw: (inductive X1 tt (arity (sort prop)) c0 \ [])
raw: inductive X1 tt (arity (sort prop)) c0 \ []
Debug:
---->>---- exit:  coq.say raw: (inductive X1 tt (arity (sort prop)) c0 \ [])
Debug:
----<<---- enter:  
std.assert-ok!
 (coq.typecheck-indt-decl (inductive X1 tt (arity (sort prop)) c0 \ [])) 
 Illtyped inductive declaration
Debug:
---->>---- exit:  
std.assert-ok!
 (coq.typecheck-indt-decl (inductive X1 tt (arity (sort prop)) c0 \ [])) 
 Illtyped inductive declaration
Debug:
----<<---- enter:  
coq.say typed: (inductive X1 tt (arity (sort prop)) c0 \ [])
typed: inductive X1 tt (arity (sort prop)) c0 \ []
Debug:
---->>---- exit:  
coq.say typed: (inductive X1 tt (arity (sort prop)) c0 \ [])
Debug:
----<<---- enter:  
coq.env.add-indt (inductive X1 tt (arity (sort prop)) c0 \ []) X0
Debug:
---->>---- exit:  
coq.env.add-indt (inductive X1 tt (arity (sort prop)) c0 \ []) «X1»
X1 : Prop

X1 is not universe polymorphic
Expands to: Inductive elpi.tests.test_arg_HOAS.X1
Debug:
----<<---- enter:  
coq.say raw: 
 (inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.129»))) c0 \
   []) (upoly-decl [«elpi.tests.test_arg_HOAS.129»] tt [] tt)
raw: 
inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.129»))) c0 \ [] 
upoly-decl [«elpi.tests.test_arg_HOAS.129»] tt [] tt
Debug:
---->>---- exit:  
coq.say raw: 
 (inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.129»))) c0 \
   []) (upoly-decl [«elpi.tests.test_arg_HOAS.129»] tt [] tt)
Debug: ----<<---- enter:  coq.univ.print
Universe constraints: UNIVERSES:
                       {eu1} |= 
                      ALGEBRAIC UNIVERSES:
                       {}
                      FLEXIBLE UNIVERSES:
                       eu1
                      SORTS:
                       
                      WEAK CONSTRAINTS:
                       
                      
Debug: ---->>---- exit:  coq.univ.print
Debug:
----<<---- enter:  
std.assert-ok!
 (coq.typecheck-indt-decl
   (inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.129»))) 
     c0 \ [])) Illtyped inductive declaration
Debug:
---->>---- exit:  
std.assert-ok!
 (coq.typecheck-indt-decl
   (inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.129»))) 
     c0 \ [])) Illtyped inductive declaration
Debug:
----<<---- enter:  
coq.say typed: 
 (inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.129»))) c0 \
   [])
typed: 
inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.129»))) c0 \ []
Debug:
---->>---- exit:  
coq.say typed: 
 (inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.129»))) c0 \
   [])
Debug:
----<<---- enter:  
coq.upoly-decl->attribute
 (upoly-decl [«elpi.tests.test_arg_HOAS.129»] tt [] tt) X0
Debug:
---->>---- exit:  
coq.upoly-decl->attribute
 (upoly-decl [«elpi.tests.test_arg_HOAS.129»] tt [] tt) 
 (get-option coq:udecl 
   (upoly-decl [«elpi.tests.test_arg_HOAS.129»] tt [] tt))
Debug:
----<<---- enter:  
get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.129»] tt [] tt)
 =>
 coq.env.add-indt
  (inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.129»))) c0 \
    []) X1
Debug:
---->>---- exit:  
get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.129»] tt [] tt)
 =>
 coq.env.add-indt
  (inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.129»))) c0 \
    []) «X3»
Debug:
----<<---- enter:  
coq.say raw: 
 (inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.137»))) c0 \
   []) (upoly-decl-cumul [auto «elpi.tests.test_arg_HOAS.137»] tt [] tt)
raw: 
inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.137»))) c0 \ [] 
upoly-decl-cumul [auto «elpi.tests.test_arg_HOAS.137»] tt [] tt
Debug:
---->>---- exit:  
coq.say raw: 
 (inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.137»))) c0 \
   []) (upoly-decl-cumul [auto «elpi.tests.test_arg_HOAS.137»] tt [] tt)
Debug: ----<<---- enter:  coq.univ.print
Universe constraints: UNIVERSES:
                       {eu2} |= 
                      ALGEBRAIC UNIVERSES:
                       {}
                      FLEXIBLE UNIVERSES:
                       eu2
                      SORTS:
                       
                      WEAK CONSTRAINTS:
                       
                      
Debug: ---->>---- exit:  coq.univ.print
Debug:
----<<---- enter:  
std.assert-ok!
 (coq.typecheck-indt-decl
   (inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.137»))) 
     c0 \ [])) Illtyped inductive declaration
Debug:
---->>---- exit:  
std.assert-ok!
 (coq.typecheck-indt-decl
   (inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.137»))) 
     c0 \ [])) Illtyped inductive declaration
Debug:
----<<---- enter:  
coq.say typed: 
 (inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.137»))) c0 \
   [])
typed: 
inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.137»))) c0 \ []
Debug:
---->>---- exit:  
coq.say typed: 
 (inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.137»))) c0 \
   [])
Debug:
----<<---- enter:  
coq.upoly-decl->attribute
 (upoly-decl-cumul [auto «elpi.tests.test_arg_HOAS.137»] tt [] tt) X0
Debug:
---->>---- exit:  
coq.upoly-decl->attribute
 (upoly-decl-cumul [auto «elpi.tests.test_arg_HOAS.137»] tt [] tt) 
 (get-option coq:udecl-cumul 
   (upoly-decl-cumul [auto «elpi.tests.test_arg_HOAS.137»] tt [] tt))
Debug:
----<<---- enter:  
get-option coq:udecl-cumul 
 (upoly-decl-cumul [auto «elpi.tests.test_arg_HOAS.137»] tt [] tt) =>
 coq.env.add-indt
  (inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.137»))) c0 \
    []) X1
Debug:
---->>---- exit:  
get-option coq:udecl-cumul 
 (upoly-decl-cumul [auto «elpi.tests.test_arg_HOAS.137»] tt [] tt) =>
 coq.env.add-indt
  (inductive X4 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.137»))) c0 \
    []) «X4»
X3@{eu1} : Type@{eu1}
(* eu1 |=  *)

X3 is universe polymorphic
Expands to: Inductive elpi.tests.test_arg_HOAS.X3
X4@{eu2} : Type@{eu2}
(* *eu2 |=  *)

X4 is universe polymorphic
Expands to: Inductive elpi.tests.test_arg_HOAS.X4
Query assignments:
  GR = indt «X3»
Universe constraints:
UNIVERSES:
 {elpi.tests.test_arg_HOAS.145} |= 
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 elpi.tests.test_arg_HOAS.145
SORTS:
 
WEAK CONSTRAINTS:
 

Query assignments:
  GR = indt «X4»
Universe constraints:
UNIVERSES:
 {elpi.tests.test_arg_HOAS.146} |= 
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 elpi.tests.test_arg_HOAS.146
SORTS:
 
WEAK CONSTRAINTS:
 

Debug:
----<<---- enter:  
coq.say raw: 
 (inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.147»))) c0 \
   []) (upoly-decl [«elpi.tests.test_arg_HOAS.147»] ff [] ff)
raw: 
inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.147»))) c0 \ [] 
upoly-decl [«elpi.tests.test_arg_HOAS.147»] ff [] ff
Debug:
---->>---- exit:  
coq.say raw: 
 (inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.147»))) c0 \
   []) (upoly-decl [«elpi.tests.test_arg_HOAS.147»] ff [] ff)
Debug: ----<<---- enter:  coq.univ.print
Universe constraints: UNIVERSES:
                       {eu3} |= 
                      ALGEBRAIC UNIVERSES:
                       {}
                      FLEXIBLE UNIVERSES:
                       eu3
                      SORTS:
                       
                      WEAK CONSTRAINTS:
                       
                      
Debug: ---->>---- exit:  coq.univ.print
Debug:
----<<---- enter:  
std.assert-ok!
 (coq.typecheck-indt-decl
   (inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.147»))) 
     c0 \ [])) Illtyped inductive declaration
Debug:
---->>---- exit:  
std.assert-ok!
 (coq.typecheck-indt-decl
   (inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.147»))) 
     c0 \ [])) Illtyped inductive declaration
Debug:
----<<---- enter:  
coq.say typed: 
 (inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.147»))) c0 \
   [])
typed: 
inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.147»))) c0 \ []
Debug:
---->>---- exit:  
coq.say typed: 
 (inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.147»))) c0 \
   [])
Debug:
----<<---- enter:  
coq.upoly-decl->attribute
 (upoly-decl [«elpi.tests.test_arg_HOAS.147»] ff [] ff) X0
Debug:
---->>---- exit:  
coq.upoly-decl->attribute
 (upoly-decl [«elpi.tests.test_arg_HOAS.147»] ff [] ff) 
 (get-option coq:udecl 
   (upoly-decl [«elpi.tests.test_arg_HOAS.147»] ff [] ff))
Debug:
----<<---- enter:  
get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.147»] ff [] ff)
 =>
 coq.env.add-indt
  (inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.147»))) c0 \
    []) X1
Debug:
---->>---- exit:  
get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.147»] ff [] ff)
 =>
 coq.env.add-indt
  (inductive X5 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.147»))) c0 \
    []) «X5»
X5@{eu3} : Type@{eu3}
(* eu3 |=  *)

X5 is universe polymorphic
Expands to: Inductive elpi.tests.test_arg_HOAS.X5
Debug:
----<<---- enter:  
coq.say raw: 
 (inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.156»))) c0 \
   [constructor K 
     (arity (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.155»)) c1 \ c0))]) 
 (upoly-decl
   [«elpi.tests.test_arg_HOAS.155», «elpi.tests.test_arg_HOAS.156»] ff 
   [lt «elpi.tests.test_arg_HOAS.155» «elpi.tests.test_arg_HOAS.156»] ff)
raw: 
inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.156»))) c0 \
 [constructor K 
   (arity (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.155»)) c1 \ c0))] 
upoly-decl
 [«elpi.tests.test_arg_HOAS.155», «elpi.tests.test_arg_HOAS.156»] ff 
 [lt «elpi.tests.test_arg_HOAS.155» «elpi.tests.test_arg_HOAS.156»] ff
Debug:
---->>---- exit:  
coq.say raw: 
 (inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.156»))) c0 \
   [constructor K 
     (arity (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.155»)) c1 \ c0))]) 
 (upoly-decl
   [«elpi.tests.test_arg_HOAS.155», «elpi.tests.test_arg_HOAS.156»] ff 
   [lt «elpi.tests.test_arg_HOAS.155» «elpi.tests.test_arg_HOAS.156»] ff)
Debug: ----<<---- enter:  coq.univ.print
Universe constraints: UNIVERSES:
                       {eu5 eu4} |= eu4 < eu5
                      ALGEBRAIC UNIVERSES:
                       {}
                      FLEXIBLE UNIVERSES:
                       eu5
                       eu4
                      SORTS:
                       
                      WEAK CONSTRAINTS:
                       
                      
Debug: ---->>---- exit:  coq.univ.print
Debug:
----<<---- enter:  
std.assert-ok!
 (coq.typecheck-indt-decl
   (inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.156»))) 
     c0 \
     [constructor K 
       (arity
         (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.155»)) c1 \ c0))])) 
 Illtyped inductive declaration
Debug:
---->>---- exit:  
std.assert-ok!
 (coq.typecheck-indt-decl
   (inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.156»))) 
     c0 \
     [constructor K 
       (arity
         (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.155»)) c1 \ c0))])) 
 Illtyped inductive declaration
Debug:
----<<---- enter:  
coq.say typed: 
 (inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.156»))) c0 \
   [constructor K 
     (arity (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.155»)) c1 \ c0))])
typed: 
inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.156»))) c0 \
 [constructor K 
   (arity (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.155»)) c1 \ c0))]
Debug:
---->>---- exit:  
coq.say typed: 
 (inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.156»))) c0 \
   [constructor K 
     (arity (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.155»)) c1 \ c0))])
Debug:
----<<---- enter:  
coq.upoly-decl->attribute
 (upoly-decl
   [«elpi.tests.test_arg_HOAS.155», «elpi.tests.test_arg_HOAS.156»] ff 
   [lt «elpi.tests.test_arg_HOAS.155» «elpi.tests.test_arg_HOAS.156»] ff) 
 X0
Debug:
---->>---- exit:  
coq.upoly-decl->attribute
 (upoly-decl
   [«elpi.tests.test_arg_HOAS.155», «elpi.tests.test_arg_HOAS.156»] ff 
   [lt «elpi.tests.test_arg_HOAS.155» «elpi.tests.test_arg_HOAS.156»] ff) 
 (get-option coq:udecl 
   (upoly-decl
     [«elpi.tests.test_arg_HOAS.155», «elpi.tests.test_arg_HOAS.156»] ff 
     [lt «elpi.tests.test_arg_HOAS.155» «elpi.tests.test_arg_HOAS.156»] 
     ff))
Debug:
----<<---- enter:  
get-option coq:udecl 
 (upoly-decl
   [«elpi.tests.test_arg_HOAS.155», «elpi.tests.test_arg_HOAS.156»] ff 
   [lt «elpi.tests.test_arg_HOAS.155» «elpi.tests.test_arg_HOAS.156»] ff)
 =>
 coq.env.add-indt
  (inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.156»))) c0 \
    [constructor K 
      (arity (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.155»)) c1 \ c0))]) 
  X1
Debug:
---->>---- exit:  
get-option coq:udecl 
 (upoly-decl
   [«elpi.tests.test_arg_HOAS.155», «elpi.tests.test_arg_HOAS.156»] ff 
   [lt «elpi.tests.test_arg_HOAS.155» «elpi.tests.test_arg_HOAS.156»] ff)
 =>
 coq.env.add-indt
  (inductive X6 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.156»))) c0 \
    [constructor K 
      (arity (prod `u` (sort (typ «elpi.tests.test_arg_HOAS.155»)) c1 \ c0))]) 
  «X6»
X6@{eu4 eu5} : Type@{eu5}
(* eu4 eu5 |= eu4 < eu5 *)

X6 is universe polymorphic
Expands to: Inductive elpi.tests.test_arg_HOAS.X6
Debug:
----<<---- enter:  
coq.say raw: (inductive X8 tt (arity (sort (typ X0))) c0 \ []) 
 (upoly-decl [] tt [] tt)
raw: inductive X8 tt (arity (sort (typ X0))) c0 \ [] upoly-decl [] tt [] tt
Debug:
---->>---- exit:  
coq.say raw: (inductive X8 tt (arity (sort (typ X0))) c0 \ []) 
 (upoly-decl [] tt [] tt)
Debug: ----<<---- enter:  coq.univ.print
Universe constraints: 
Debug: ---->>---- exit:  coq.univ.print
Debug:
----<<---- enter:  
get-option coq:keepunivs tt =>
 std.assert-ok!
  (coq.elaborate-indt-decl-skeleton
    (inductive X8 tt (arity (sort (typ X0))) c0 \ []) X1) 
  Illtyped inductive declaration
Debug:
---->>---- exit:  
get-option coq:keepunivs tt =>
 std.assert-ok!
  (coq.elaborate-indt-decl-skeleton
    (inductive X8 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.171»))) 
      c0 \ []) 
    (inductive X8 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.171»))) 
      c0 \ [])) Illtyped inductive declaration
Debug:
----<<---- enter:  
coq.say typed: 
 (inductive X8 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.171»))) c0 \
   [])
typed: 
inductive X8 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.171»))) c0 \ []
Debug:
---->>---- exit:  
coq.say typed: 
 (inductive X8 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.171»))) c0 \
   [])
Debug:
----<<---- enter:  coq.upoly-decl->attribute (upoly-decl [] tt [] tt) X2
Debug:
---->>---- exit:  
coq.upoly-decl->attribute (upoly-decl [] tt [] tt) 
 (get-option coq:udecl (upoly-decl [] tt [] tt))
Debug:
----<<---- enter:  
get-option coq:udecl (upoly-decl [] tt [] tt) =>
 coq.env.add-indt
  (inductive X8 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.171»))) c0 \
    []) X3
Debug:
---->>---- exit:  
get-option coq:udecl (upoly-decl [] tt [] tt) =>
 coq.env.add-indt
  (inductive X8 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.171»))) c0 \
    []) «X8»
X8@{u} : Type@{u}
(* u |=  *)

X8 is universe polymorphic
Expands to: Inductive elpi.tests.test_arg_HOAS.X8
Debug:
----<<---- enter:  
coq.arity->term
 (parameter T explicit (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \
   parameter x explicit c0 c1 \ arity c0) X0
Debug:
---->>---- exit:  
coq.arity->term
 (parameter T explicit (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \
   parameter x explicit c0 c1 \ arity c0) 
 (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \
   prod `x` c0 c1 \ c0)
Debug:
----<<---- enter:  
std.assert-ok!
 (coq.typecheck
   (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \
     fun `x` c0 c1 \ c1) 
   (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \
     prod `x` c0 c1 \ c0)) illtyped definition
Debug:
---->>---- exit:  
std.assert-ok!
 (coq.typecheck
   (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \
     fun `x` c0 c1 \ c1) 
   (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \
     prod `x` c0 c1 \ c0)) illtyped definition
Debug:
----<<---- enter:  coq.upoly-decl->attribute (upoly-decl [] tt [] tt) X1
Debug:
---->>---- exit:  
coq.upoly-decl->attribute (upoly-decl [] tt [] tt) 
 (get-option coq:udecl (upoly-decl [] tt [] tt))
Debug:
----<<---- enter:  
get-option coq:udecl (upoly-decl [] tt [] tt) =>
 coq.env.add-const f1 
  (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \
    fun `x` c0 c1 \ c1) 
  (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \
    prod `x` c0 c1 \ c0) X2 X3
Debug:
---->>---- exit:  
get-option coq:udecl (upoly-decl [] tt [] tt) =>
 coq.env.add-const f1 
  (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \
    fun `x` c0 c1 \ c1) 
  (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.179»)) c0 \
    prod `x` c0 c1 \ c0) X2 «f1»
f1@{u} : forall T : Type@{u}, T -> T
(* u |=  *)

f1 is universe polymorphic
Arguments f1 T%type_scope x
f1 is transparent
Expands to: Constant elpi.tests.test_arg_HOAS.f1
Debug:
----<<---- enter:  
coq.arity->term
 (parameter T explicit (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \
   parameter T1 explicit (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \
    parameter x explicit c0 c2 \ arity c0) X0
Debug:
---->>---- exit:  
coq.arity->term
 (parameter T explicit (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \
   parameter T1 explicit (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \
    parameter x explicit c0 c2 \ arity c0) 
 (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \
   prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \
    prod `x` c0 c2 \ c0)
Debug:
----<<---- enter:  
std.assert-ok!
 (coq.typecheck
   (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \
     fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \
      fun `x` c0 c2 \ c2) 
   (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \
     prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \
      prod `x` c0 c2 \ c0)) illtyped definition
Debug:
---->>---- exit:  
std.assert-ok!
 (coq.typecheck
   (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \
     fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \
      fun `x` c0 c2 \ c2) 
   (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \
     prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \
      prod `x` c0 c2 \ c0)) illtyped definition
Debug:
----<<---- enter:  
coq.upoly-decl->attribute
 (upoly-decl [«elpi.tests.test_arg_HOAS.180»] ff [] tt) X1
Debug:
---->>---- exit:  
coq.upoly-decl->attribute
 (upoly-decl [«elpi.tests.test_arg_HOAS.180»] ff [] tt) 
 (get-option coq:udecl 
   (upoly-decl [«elpi.tests.test_arg_HOAS.180»] ff [] tt))
Debug:
----<<---- enter:  
get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.180»] ff [] tt)
 =>
 coq.env.add-const f2 
  (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \
    fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \
     fun `x` c0 c2 \ c2) 
  (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \
    prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \
     prod `x` c0 c2 \ c0) X2 X3
Debug:
---->>---- exit:  
get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.180»] ff [] tt)
 =>
 coq.env.add-const f2 
  (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \
    fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \
     fun `x` c0 c2 \ c2) 
  (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c0 \
    prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.180»)) c1 \
     prod `x` c0 c2 \ c0) X2 «f2»
f2@{u} : forall T : Type@{u}, Type@{u} -> T -> T
(* u |=  *)

f2 is universe polymorphic
Arguments f2 (T T1)%type_scope x
f2 is transparent
Expands to: Constant elpi.tests.test_arg_HOAS.f2
Debug:
----<<---- enter:  
coq.arity->term
 (parameter T explicit (sort (typ X0)) c0 \
   parameter x explicit c0 c1 \ arity (X1 c1)) X2
Debug:
---->>---- exit:  
coq.arity->term
 (parameter T explicit (sort (typ X0)) c0 \
   parameter x explicit c0 c1 \ arity (X1 c1)) 
 (prod `T` (sort (typ X0)) c0 \ prod `x` c0 c1 \ X1 c1)
Debug:
----<<---- enter:  
get-option coq:keepunivs tt =>
 std.assert-ok!
  (coq.elaborate-ty-skeleton
    (prod `T` (sort (typ X0)) c0 \ prod `x` c0 c1 \ X1 c1) X3 X4) 
  illtyped arity
Debug:
---->>---- exit:  
get-option coq:keepunivs tt =>
 std.assert-ok!
  (coq.elaborate-ty-skeleton
    (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.181»)) c0 \
      prod `x` c0 c1 \ X1 c1) (typ «elpi.tests.test_arg_HOAS.183») 
    (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.181»)) c0 \
      prod `x` c0 c1 \ X5 c0 c1)) illtyped arity
Debug:
----<<---- enter:  
get-option coq:keepunivs tt =>
 std.assert-ok!
  (coq.elaborate-skeleton (fun `T` (sort (typ X6)) c0 \ fun `x` c0 c1 \ c1) 
    (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.181»)) c0 \
      prod `x` c0 c1 \ X5 c0 c1) X7) illtyped definition
Debug:
---->>---- exit:  
get-option coq:keepunivs tt =>
 std.assert-ok!
  (coq.elaborate-skeleton
    (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.184»)) c0 \
      fun `x` c0 c1 \ c1) 
    (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.181»)) c0 \
      prod `x` c0 c1 \ c0) 
    (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.181»)) c0 \
      fun `x` c0 c1 \ c1)) illtyped definition
Debug:
----<<---- enter:  coq.upoly-decl->attribute (upoly-decl [] tt [] tt) X8
Debug:
---->>---- exit:  
coq.upoly-decl->attribute (upoly-decl [] tt [] tt) 
 (get-option coq:udecl (upoly-decl [] tt [] tt))
Debug:
----<<---- enter:  
get-option coq:udecl (upoly-decl [] tt [] tt) =>
 coq.env.add-const f3 
  (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.181»)) c0 \
    fun `x` c0 c1 \ c1) 
  (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.181»)) c0 \
    prod `x` c0 c1 \ c0) X9 X10
Debug:
---->>---- exit:  
get-option coq:udecl (upoly-decl [] tt [] tt) =>
 coq.env.add-const f3 
  (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.181»)) c0 \
    fun `x` c0 c1 \ c1) 
  (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.181»)) c0 \
    prod `x` c0 c1 \ c0) X9 «f3»
f3@{u} : forall T : Type@{u}, T -> T
(* u |=  *)

f3 is universe polymorphic
Arguments f3 T%type_scope x
f3 is transparent
Expands to: Constant elpi.tests.test_arg_HOAS.f3
Debug:
----<<---- enter:  
coq.arity->term
 (parameter T explicit (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \
   parameter T1 explicit (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \
    parameter x explicit c0 c2 \ arity (X0 c2)) X1
Debug:
---->>---- exit:  
coq.arity->term
 (parameter T explicit (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \
   parameter T1 explicit (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \
    parameter x explicit c0 c2 \ arity (X0 c2)) 
 (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \
   prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \
    prod `x` c0 c2 \ X0 c2)
Debug:
----<<---- enter:  
get-option coq:keepunivs tt =>
 std.assert-ok!
  (coq.elaborate-ty-skeleton
    (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \
      prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \
       prod `x` c0 c2 \ X0 c2) X2 X3) illtyped arity
Debug:
---->>---- exit:  
get-option coq:keepunivs tt =>
 std.assert-ok!
  (coq.elaborate-ty-skeleton
    (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \
      prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \
       prod `x` c0 c2 \ X0 c2) (typ «elpi.tests.test_arg_HOAS.187») 
    (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \
      prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \
       prod `x` c0 c2 \ X4 c0 c1 c2)) illtyped arity
Debug:
----<<---- enter:  
get-option coq:keepunivs tt =>
 std.assert-ok!
  (coq.elaborate-skeleton
    (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \
      fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \
       fun `x` c0 c2 \ c2) 
    (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \
      prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \
       prod `x` c0 c2 \ X4 c0 c1 c2) X5) illtyped definition
Debug:
---->>---- exit:  
get-option coq:keepunivs tt =>
 std.assert-ok!
  (coq.elaborate-skeleton
    (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \
      fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \
       fun `x` c0 c2 \ c2) 
    (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \
      prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \
       prod `x` c0 c2 \ c0) 
    (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \
      fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \
       fun `x` c0 c2 \ c2)) illtyped definition
Debug:
----<<---- enter:  
coq.upoly-decl->attribute
 (upoly-decl [«elpi.tests.test_arg_HOAS.185»] ff [] tt) X6
Debug:
---->>---- exit:  
coq.upoly-decl->attribute
 (upoly-decl [«elpi.tests.test_arg_HOAS.185»] ff [] tt) 
 (get-option coq:udecl 
   (upoly-decl [«elpi.tests.test_arg_HOAS.185»] ff [] tt))
Debug:
----<<---- enter:  
get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.185»] ff [] tt)
 =>
 coq.env.add-const f4 
  (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \
    fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \
     fun `x` c0 c2 \ c2) 
  (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \
    prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \
     prod `x` c0 c2 \ c0) X7 X8
Debug:
---->>---- exit:  
get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.185»] ff [] tt)
 =>
 coq.env.add-const f4 
  (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \
    fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \
     fun `x` c0 c2 \ c2) 
  (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c0 \
    prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.185»)) c1 \
     prod `x` c0 c2 \ c0) X7 «f4»
f4@{u} : forall T : Type@{u}, Type@{u} -> T -> T
(* u |=  *)

f4 is universe polymorphic
Arguments f4 (T T1)%type_scope x
f4 is transparent
Expands to: Constant elpi.tests.test_arg_HOAS.f4
Debug:
----<<---- enter:  
coq.arity->term
 (parameter T explicit (sort (typ «uuu»)) c0 \
   parameter T1 explicit (sort (typ «uuu»)) c1 \
    parameter x explicit c0 c2 \ arity (X0 c2)) X1
Debug:
---->>---- exit:  
coq.arity->term
 (parameter T explicit (sort (typ «uuu»)) c0 \
   parameter T1 explicit (sort (typ «uuu»)) c1 \
    parameter x explicit c0 c2 \ arity (X0 c2)) 
 (prod `T` (sort (typ «uuu»)) c0 \
   prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ X0 c2)
Debug:
----<<---- enter:  
std.assert-ok!
 (coq.elaborate-ty-skeleton
   (prod `T` (sort (typ «uuu»)) c0 \
     prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ X0 c2) X2 X3) 
 illtyped arity
Debug:
---->>---- exit:  
std.assert-ok!
 (coq.elaborate-ty-skeleton
   (prod `T` (sort (typ «uuu»)) c0 \
     prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ X0 c2) 
   (typ «elpi.tests.test_arg_HOAS.192») 
   (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.189»)) c0 \
     prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.190»)) c1 \
      prod `x` c0 c2 \ X4 c0 c1 c2)) illtyped arity
Debug:
----<<---- enter:  
std.assert-ok!
 (coq.elaborate-skeleton
   (fun `T` (sort (typ «uuu»)) c0 \
     fun `T1` (sort (typ «uuu»)) c1 \ fun `x` c0 c2 \ c2) 
   (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.189»)) c0 \
     prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.190»)) c1 \
      prod `x` c0 c2 \ X4 c0 c1 c2) X5) illtyped definition
Debug:
---->>---- exit:  
std.assert-ok!
 (coq.elaborate-skeleton
   (fun `T` (sort (typ «uuu»)) c0 \
     fun `T1` (sort (typ «uuu»)) c1 \ fun `x` c0 c2 \ c2) 
   (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.189»)) c0 \
     prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.190»)) c1 \
      prod `x` c0 c2 \ c0) 
   (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.193»)) c0 \
     fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.194»)) c1 \
      fun `x` c0 c2 \ c2)) illtyped definition
Debug:
----<<---- enter:  
coq.env.add-const f5 
 (fun `T` (sort (typ «elpi.tests.test_arg_HOAS.193»)) c0 \
   fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.194»)) c1 \
    fun `x` c0 c2 \ c2) 
 (prod `T` (sort (typ «elpi.tests.test_arg_HOAS.189»)) c0 \
   prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.190»)) c1 \
    prod `x` c0 c2 \ c0) X6 X7
Debug:
---->>---- exit:  
coq.env.add-const f5 
 (fun `T` (sort (typ «f5.u2»)) c0 \
   fun `T1` (sort (typ «f5.u3»)) c1 \ fun `x` c0 c2 \ c2) 
 (prod `T` (sort (typ «f5.u0»)) c0 \
   prod `T1` (sort (typ «f5.u1»)) c1 \ prod `x` c0 c2 \ c0) X6 «f5»
Debug:
----<<---- enter:  
coq.arity->term
 (parameter T explicit (sort (typ «uuu»)) c0 \
   parameter T1 explicit (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \
    parameter x explicit c0 c2 \ arity c0) X0
Debug:
---->>---- exit:  
coq.arity->term
 (parameter T explicit (sort (typ «uuu»)) c0 \
   parameter T1 explicit (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \
    parameter x explicit c0 c2 \ arity c0) 
 (prod `T` (sort (typ «uuu»)) c0 \
   prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \
    prod `x` c0 c2 \ c0)
Debug:
----<<---- enter:  
std.assert-ok!
 (coq.typecheck
   (fun `T` (sort (typ «uuu»)) c0 \
     fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \
      fun `x` c0 c2 \ c2) 
   (prod `T` (sort (typ «uuu»)) c0 \
     prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \
      prod `x` c0 c2 \ c0)) illtyped definition
Debug:
---->>---- exit:  
std.assert-ok!
 (coq.typecheck
   (fun `T` (sort (typ «uuu»)) c0 \
     fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \
      fun `x` c0 c2 \ c2) 
   (prod `T` (sort (typ «uuu»)) c0 \
     prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \
      prod `x` c0 c2 \ c0)) illtyped definition
Debug:
----<<---- enter:  
coq.upoly-decl->attribute
 (upoly-decl [«elpi.tests.test_arg_HOAS.195»] ff [] tt) X1
Debug:
---->>---- exit:  
coq.upoly-decl->attribute
 (upoly-decl [«elpi.tests.test_arg_HOAS.195»] ff [] tt) 
 (get-option coq:udecl 
   (upoly-decl [«elpi.tests.test_arg_HOAS.195»] ff [] tt))
Debug:
----<<---- enter:  
get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.195»] ff [] tt)
 =>
 coq.env.add-const f6 
  (fun `T` (sort (typ «uuu»)) c0 \
    fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \
     fun `x` c0 c2 \ c2) 
  (prod `T` (sort (typ «uuu»)) c0 \
    prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \
     prod `x` c0 c2 \ c0) X2 X3
Debug:
---->>---- exit:  
get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.195»] ff [] tt)
 =>
 coq.env.add-const f6 
  (fun `T` (sort (typ «uuu»)) c0 \
    fun `T1` (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \
     fun `x` c0 c2 \ c2) 
  (prod `T` (sort (typ «uuu»)) c0 \
    prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.195»)) c1 \
     prod `x` c0 c2 \ c0) X2 «f6»
f6@{uuux} : forall T : Type@{uuu}, Type@{uuux} -> T -> T
(* uuux |=  *)

f6 is universe polymorphic
Arguments f6 (T T1)%type_scope x
f6 is transparent
Expands to: Constant elpi.tests.test_arg_HOAS.f6
Debug:
----<<---- enter:  
coq.arity->term
 (arity
   (prod `T` (sort (typ «uuu»)) c0 \
     prod `T1` (sort (typ «Set»)) c1 \ prod `x` c0 c2 \ c0)) X0
Debug:
---->>---- exit:  
coq.arity->term
 (arity
   (prod `T` (sort (typ «uuu»)) c0 \
     prod `T1` (sort (typ «Set»)) c1 \ prod `x` c0 c2 \ c0)) 
 (prod `T` (sort (typ «uuu»)) c0 \
   prod `T1` (sort (typ «Set»)) c1 \ prod `x` c0 c2 \ c0)
Debug:
----<<---- enter:  
std.assert-ok!
 (coq.typecheck (pglobal (const «f6») «Set») 
   (prod `T` (sort (typ «uuu»)) c0 \
     prod `T1` (sort (typ «Set»)) c1 \ prod `x` c0 c2 \ c0)) 
 illtyped definition
Debug:
---->>---- exit:  
std.assert-ok!
 (coq.typecheck (pglobal (const «f6») «Set») 
   (prod `T` (sort (typ «uuu»)) c0 \
     prod `T1` (sort (typ «Set»)) c1 \ prod `x` c0 c2 \ c0)) 
 illtyped definition
Debug:
----<<---- enter:  coq.upoly-decl->attribute (upoly-decl [] tt [] tt) X1
Debug:
---->>---- exit:  
coq.upoly-decl->attribute (upoly-decl [] tt [] tt) 
 (get-option coq:udecl (upoly-decl [] tt [] tt))
Debug:
----<<---- enter:  
get-option coq:udecl (upoly-decl [] tt [] tt) =>
 coq.env.add-const f7 (pglobal (const «f6») «Set») 
  (prod `T` (sort (typ «uuu»)) c0 \
    prod `T1` (sort (typ «Set»)) c1 \ prod `x` c0 c2 \ c0) X2 X3
Debug:
---->>---- exit:  
get-option coq:udecl (upoly-decl [] tt [] tt) =>
 coq.env.add-const f7 (pglobal (const «f6») «Set») 
  (prod `T` (sort (typ «uuu»)) c0 \
    prod `T1` (sort (typ «Set»)) c1 \ prod `x` c0 c2 \ c0) X2 «f7»
Debug: ----<<---- enter:  coq.arity->term (arity X0) X1
Debug: ---->>---- exit:  coq.arity->term (arity X1) X1
Debug:
----<<---- enter:  
get-option coq:keepunivs tt =>
 std.assert-ok! (coq.elaborate-ty-skeleton X1 X2 X3) illtyped arity
Debug:
---->>---- exit:  
get-option coq:keepunivs tt =>
 std.assert-ok!
  (coq.elaborate-ty-skeleton X1 (typ «elpi.tests.test_arg_HOAS.196») (X4)) 
  illtyped arity
Debug:
----<<---- enter:  
get-option coq:keepunivs tt =>
 std.assert-ok!
  (coq.elaborate-skeleton (pglobal (const «f6») «Set») (X4) X5) 
  illtyped definition
Debug:
---->>---- exit:  
get-option coq:keepunivs tt =>
 std.assert-ok!
  (coq.elaborate-skeleton (pglobal (const «f6») «Set») 
    (prod `T` (sort (typ «uuu»)) c0 \
      prod `T1` (sort (typ «Set»)) c1 \ prod `x` c0 c2 \ c0) 
    (pglobal (const «f6») «Set»)) illtyped definition
Debug:
----<<---- enter:  coq.upoly-decl->attribute (upoly-decl [] tt [] tt) X6
Debug:
---->>---- exit:  
coq.upoly-decl->attribute (upoly-decl [] tt [] tt) 
 (get-option coq:udecl (upoly-decl [] tt [] tt))
Debug:
----<<---- enter:  
get-option coq:udecl (upoly-decl [] tt [] tt) =>
 coq.env.add-const f8 (pglobal (const «f6») «Set») 
  (prod `T` (sort (typ «uuu»)) c0 \
    prod `T1` (sort (typ «Set»)) c1 \ prod `x` c0 c2 \ c0) X7 X8
Debug:
---->>---- exit:  
get-option coq:udecl (upoly-decl [] tt [] tt) =>
 coq.env.add-const f8 (pglobal (const «f6») «Set») 
  (prod `T` (sort (typ «uuu»)) c0 \
    prod `T1` (sort (typ «Set»)) c1 \ prod `x` c0 c2 \ c0) X7 «f8»
Debug:
----<<---- enter:  
coq.arity->term
 (arity
   (prod `T` (sort (typ «uuu»)) c0 \
     prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ c0)) X0
Debug:
---->>---- exit:  
coq.arity->term
 (arity
   (prod `T` (sort (typ «uuu»)) c0 \
     prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ c0)) 
 (prod `T` (sort (typ «uuu»)) c0 \
   prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ c0)
Debug:
----<<---- enter:  
std.assert-ok!
 (coq.typecheck (pglobal (const «f6») «uuu») 
   (prod `T` (sort (typ «uuu»)) c0 \
     prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ c0)) 
 illtyped definition
Debug:
---->>---- exit:  
std.assert-ok!
 (coq.typecheck (pglobal (const «f6») «uuu») 
   (prod `T` (sort (typ «uuu»)) c0 \
     prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ c0)) 
 illtyped definition
Debug:
----<<---- enter:  coq.upoly-decl->attribute (upoly-decl [] tt [] tt) X1
Debug:
---->>---- exit:  
coq.upoly-decl->attribute (upoly-decl [] tt [] tt) 
 (get-option coq:udecl (upoly-decl [] tt [] tt))
Debug:
----<<---- enter:  
get-option coq:udecl (upoly-decl [] tt [] tt) =>
 coq.env.add-const f7' (pglobal (const «f6») «uuu») 
  (prod `T` (sort (typ «uuu»)) c0 \
    prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ c0) X2 X3
Debug:
---->>---- exit:  
get-option coq:udecl (upoly-decl [] tt [] tt) =>
 coq.env.add-const f7' (pglobal (const «f6») «uuu») 
  (prod `T` (sort (typ «uuu»)) c0 \
    prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ c0) X2 «f7'»
Debug: ----<<---- enter:  coq.arity->term (arity X0) X1
Debug: ---->>---- exit:  coq.arity->term (arity X1) X1
Debug:
----<<---- enter:  
get-option coq:keepunivs tt =>
 std.assert-ok! (coq.elaborate-ty-skeleton X1 X2 X3) illtyped arity
Debug:
---->>---- exit:  
get-option coq:keepunivs tt =>
 std.assert-ok!
  (coq.elaborate-ty-skeleton X1 (typ «elpi.tests.test_arg_HOAS.197») (X4)) 
  illtyped arity
Debug:
----<<---- enter:  
get-option coq:keepunivs tt =>
 std.assert-ok!
  (coq.elaborate-skeleton (pglobal (const «f6») «uuu») (X4) X5) 
  illtyped definition
Debug:
---->>---- exit:  
get-option coq:keepunivs tt =>
 std.assert-ok!
  (coq.elaborate-skeleton (pglobal (const «f6») «uuu») 
    (prod `T` (sort (typ «uuu»)) c0 \
      prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ c0) 
    (pglobal (const «f6») «uuu»)) illtyped definition
Debug:
----<<---- enter:  coq.upoly-decl->attribute (upoly-decl [] tt [] tt) X6
Debug:
---->>---- exit:  
coq.upoly-decl->attribute (upoly-decl [] tt [] tt) 
 (get-option coq:udecl (upoly-decl [] tt [] tt))
Debug:
----<<---- enter:  
get-option coq:udecl (upoly-decl [] tt [] tt) =>
 coq.env.add-const f8' (pglobal (const «f6») «uuu») 
  (prod `T` (sort (typ «uuu»)) c0 \
    prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ c0) X7 X8
Debug:
---->>---- exit:  
get-option coq:udecl (upoly-decl [] tt [] tt) =>
 coq.env.add-const f8' (pglobal (const «f6») «uuu») 
  (prod `T` (sort (typ «uuu»)) c0 \
    prod `T1` (sort (typ «uuu»)) c1 \ prod `x` c0 c2 \ c0) X7 «f8'»
Debug:
----<<---- enter:  
coq.arity->term
 (arity
   (prod `T` (sort (typ «uuu»)) c0 \
     prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.198»)) c1 \
      prod `x` c0 c2 \ c0)) X0
Debug:
---->>---- exit:  
coq.arity->term
 (arity
   (prod `T` (sort (typ «uuu»)) c0 \
     prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.198»)) c1 \
      prod `x` c0 c2 \ c0)) 
 (prod `T` (sort (typ «uuu»)) c0 \
   prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.198»)) c1 \
    prod `x` c0 c2 \ c0)
Debug:
----<<---- enter:  
std.assert-ok!
 (coq.typecheck (pglobal (const «f6») «elpi.tests.test_arg_HOAS.198») 
   (prod `T` (sort (typ «uuu»)) c0 \
     prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.198»)) c1 \
      prod `x` c0 c2 \ c0)) illtyped definition
Debug:
---->>---- exit:  
std.assert-ok!
 (coq.typecheck (pglobal (const «f6») «elpi.tests.test_arg_HOAS.198») 
   (prod `T` (sort (typ «uuu»)) c0 \
     prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.198»)) c1 \
      prod `x` c0 c2 \ c0)) illtyped definition
Debug:
----<<---- enter:  
coq.upoly-decl->attribute
 (upoly-decl [«elpi.tests.test_arg_HOAS.198»] ff [] tt) X1
Debug:
---->>---- exit:  
coq.upoly-decl->attribute
 (upoly-decl [«elpi.tests.test_arg_HOAS.198»] ff [] tt) 
 (get-option coq:udecl 
   (upoly-decl [«elpi.tests.test_arg_HOAS.198»] ff [] tt))
Debug:
----<<---- enter:  
get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.198»] ff [] tt)
 =>
 coq.env.add-const f7'' 
  (pglobal (const «f6») «elpi.tests.test_arg_HOAS.198») 
  (prod `T` (sort (typ «uuu»)) c0 \
    prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.198»)) c1 \
     prod `x` c0 c2 \ c0) X2 X3
Debug:
---->>---- exit:  
get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.198»] ff [] tt)
 =>
 coq.env.add-const f7'' 
  (pglobal (const «f6») «elpi.tests.test_arg_HOAS.198») 
  (prod `T` (sort (typ «uuu»)) c0 \
    prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.198»)) c1 \
     prod `x` c0 c2 \ c0) X2 «f7''»
Debug: ----<<---- enter:  coq.arity->term (arity X0) X1
Debug: ---->>---- exit:  coq.arity->term (arity X1) X1
Debug:
----<<---- enter:  
get-option coq:keepunivs tt =>
 std.assert-ok! (coq.elaborate-ty-skeleton X1 X2 X3) illtyped arity
Debug:
---->>---- exit:  
get-option coq:keepunivs tt =>
 std.assert-ok!
  (coq.elaborate-ty-skeleton X1 (typ «elpi.tests.test_arg_HOAS.200») (X4)) 
  illtyped arity
Debug:
----<<---- enter:  
get-option coq:keepunivs tt =>
 std.assert-ok!
  (coq.elaborate-skeleton
    (pglobal (const «f6») «elpi.tests.test_arg_HOAS.199») (X4) X5) 
  illtyped definition
Debug:
---->>---- exit:  
get-option coq:keepunivs tt =>
 std.assert-ok!
  (coq.elaborate-skeleton
    (pglobal (const «f6») «elpi.tests.test_arg_HOAS.199») 
    (prod `T` (sort (typ «uuu»)) c0 \
      prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.199»)) c1 \
       prod `x` c0 c2 \ c0) 
    (pglobal (const «f6») «elpi.tests.test_arg_HOAS.199»)) 
  illtyped definition
Debug:
----<<---- enter:  
coq.upoly-decl->attribute
 (upoly-decl [«elpi.tests.test_arg_HOAS.199»] ff [] tt) X6
Debug:
---->>---- exit:  
coq.upoly-decl->attribute
 (upoly-decl [«elpi.tests.test_arg_HOAS.199»] ff [] tt) 
 (get-option coq:udecl 
   (upoly-decl [«elpi.tests.test_arg_HOAS.199»] ff [] tt))
Debug:
----<<---- enter:  
get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.199»] ff [] tt)
 =>
 coq.env.add-const f8'' 
  (pglobal (const «f6») «elpi.tests.test_arg_HOAS.199») 
  (prod `T` (sort (typ «uuu»)) c0 \
    prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.199»)) c1 \
     prod `x` c0 c2 \ c0) X7 X8
Debug:
---->>---- exit:  
get-option coq:udecl (upoly-decl [«elpi.tests.test_arg_HOAS.199»] ff [] tt)
 =>
 coq.env.add-const f8'' 
  (pglobal (const «f6») «elpi.tests.test_arg_HOAS.199») 
  (prod `T` (sort (typ «uuu»)) c0 \
    prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.199»)) c1 \
     prod `x` c0 c2 \ c0) X7 «f8''»
const-decl D 
 (some
   (fun `i` (global (indt «I»)) c0 \
     fun `l` (app [global (indt «L»), c0]) c1 \ global (indt «True»))) 
 (parameter i maximal (global (indt «I»)) c0 \
   parameter l maximal (app [global (indt «L»), c0]) c1 \ arity (sort prop)) 
const-decl D 
 (some
   (fun `i` (global (indt «I»)) c0 \
     fun `H` (app [global (indt «L»), c0]) c1 \ global (indt «True»))) 
 (parameter i maximal (global (indt «I»)) c0 \
   parameter H maximal (app [global (indt «L»), c0]) c1 \ arity (sort prop)) 
const-decl D 
 (some
   (fun `i` (global (indt «I»)) c0 \
     fun `H` (app [global (indt «L»), c0]) c1 \
      fun `n` (global (indt «nat»)) c2 \ global (indt «True»))) 
 (parameter i maximal (global (indt «I»)) c0 \
   parameter H maximal (app [global (indt «L»), c0]) c1 \
    parameter n explicit (global (indt «nat»)) c2 \ arity (sort prop))
2 
fun `x` X0 c0 \ fun `y` (X1 c0) c1 \ app [global (const «Nat.add»), c0, c1]
File "./tests/test_arg_HOAS.v", line 283, characters 0-68:
Warning: Automatically putting X1 in Prop even though it was declared with
Type.
Unset Automatic Proposition Inductives to prevent this (it will become the
default in a future version).
If you instead put X1 explicitly in Prop, set Dependent Proposition
Eliminators around the declaration for full backwards compatibility.
[automatic-prop-lowering,deprecated-since-8.20,deprecated,default]
z
     : nat
it = elpi_subproof
     : True
it : True

it is not universe polymorphic
it is transparent
Expands to: Constant elpi.tests.test_ltac.it
elpi_subproof = I
     : True
elpi_subproof : True

elpi_subproof is not universe polymorphic
elpi_subproof is opaque
Expands to: Constant elpi.tests.test_ltac.elpi_subproof
Closed under the global context
app
 [global (indt «eq»), global (indt «nat»), 
  app
   [global (const «map»), 
    fun `x` (global (indt «nat»)) c1 \
     app
      [global (const «Nat.add»), c1, 
       app [global (indc «S»), global (indc «O»)]]], c0]
app
 [global (indt «eq»), global (indt «nat»), 
  app
   [global (const «map»), 
    fun `x` (global (indt «nat»)) c1 \
     app
      [global (const «Nat.add»), c1, 
       app [global (indc «S»), global (indc «O»)]]], c0]
app
 [global (indt «eq»), global (indt «nat»), 
  app
   [global (const «map»), 
    fun `x0` (global (indt «nat»)) c1 \
     app
      [global (const «Nat.add»), c1, 
       app [global (indc «S»), global (indc «O»)]]], c0]
Query assignments:
  P = /build/reproducible-path/coq-elpi-2.5.0/_build/default/elpi/elpi_elaborator.elpi
File "./tests/test_query_extra_dep.v", line 7, characters 44-45:
Warning:
File "./tests/test_query_extra_dep.v", line 7, characters 44-45
P is linear: name it _P (discard) or P_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
synterp [str X]
interp [str X]
synterp [int 1]
interp [int 1]
synterp [trm _]
interp [trm (app [global (indc «S»), global (indc «O»)])]
synterp 
[const-decl x (some _) 
  (parameter P explicit _ c0 \ parameter Q explicit _ c1 \ arity _)]
interp 
[const-decl x 
  (some
    (fun `P` (global (indt «bool»)) c0 \
      fun `Q` (global (indt «bool»)) c1 \ global (indc «O»))) 
  (parameter P explicit (global (indt «bool»)) c0 \
    parameter Q explicit (global (indt «bool»)) c1 \
     arity (global (indt «nat»)))]
synterp 
[const-decl x none 
  (parameter P explicit _ c0 \ parameter Q explicit _ c1 \ arity _)]
interp 
[const-decl x none 
  (parameter P explicit (global (indt «bool»)) c0 \
    parameter Q explicit (global (indt «bool»)) c1 \
     arity (global (indt «nat»)))]
synterp 
[indt-decl
  (parameter P explicit _ c0 \
    parameter Q explicit _ c1 \
     record x _ K 
      (field [coercion off, canonical tt] f1 _ c2 \
        field [coercion off, canonical tt] f2 _ c3 \ end-record))]
interp 
[indt-decl
  (parameter P explicit (global (indt «bool»)) c0 \
    parameter Q explicit (global (indt «bool»)) c1 \
     record x (sort (typ «Set»)) K 
      (field [coercion off, canonical tt] f1 (global (indt «nat»)) c2 \
        field [coercion off, canonical tt] f2 
         (app [global (indt «eq»), global (indt «nat»), c2, c2]) c3 \
         end-record))]
synterp 
[indt-decl
  (parameter P explicit _ c0 \
    inductive x tt (parameter Q explicit _ c1 \ arity _) c1 \
     [constructor K (parameter Q explicit _ c2 \ arity _), 
      constructor R (parameter Q explicit _ c2 \ arity _)])]
interp 
[indt-decl
  (parameter P explicit (global (indt «bool»)) c0 \
    inductive x tt 
     (parameter Q explicit (global (indt «bool»)) c1 \
       arity (prod `_` (global (indt «nat»)) c2 \ sort (typ «Set»))) c1 \
     [constructor K 
       (parameter Q explicit (global (indt «bool»)) c2 \
         arity
          (prod `_` (global (indt «nat»)) c3 \
            app
             [c1, c2, 
              app
               [global (indc «S»), 
                app
                 [global (indc «S»), 
                  app [global (indc «S»), global (indc «O»)]]]])), 
      constructor R 
       (parameter Q explicit (global (indt «bool»)) c2 \
         arity
          (prod `w` (global (indt «bool»)) c3 \
            app [c1, c2, app [global (indc «S»), global (indc «O»)]]))])]
synterp 
[ctx-decl
  (context-item A explicit _ none c0 \
    context-item B explicit _ none c1 \ context-end)]
interp 
[ctx-decl
  (context-item A explicit (global (indt «nat»)) none c0 \
    context-item B explicit (global (indt «bool»)) none c1 \ context-end)]
synterp [str X]
interp [str X]
synterp [int 1]
interp [int 1]
synterp [trm _]
interp [trm (app [global (indc «S»), global (indc «O»)])]
synterp 
[const-decl x (some _) 
  (parameter P explicit _ c0 \ parameter Q explicit _ c1 \ arity _)]
interp 
[const-decl x 
  (some
    (fun `P` (global (indt «bool»)) c0 \
      fun `Q` (global (indt «bool»)) c1 \ global (indc «O»))) 
  (parameter P explicit (global (indt «bool»)) c0 \
    parameter Q explicit (global (indt «bool»)) c1 \
     arity (global (indt «nat»)))]
synterp 
[const-decl x none 
  (parameter P explicit _ c0 \ parameter Q explicit _ c1 \ arity _)]
interp 
[const-decl x none 
  (parameter P explicit (global (indt «bool»)) c0 \
    parameter Q explicit (global (indt «bool»)) c1 \
     arity (global (indt «nat»)))]
synterp 
[indt-decl
  (parameter P explicit _ c0 \
    parameter Q explicit _ c1 \
     record x _ K 
      (field [coercion off, canonical tt] f1 _ c2 \
        field [coercion off, canonical tt] f2 _ c3 \ end-record))]
interp 
[indt-decl
  (parameter P explicit (global (indt «bool»)) c0 \
    parameter Q explicit (global (indt «bool»)) c1 \
     record x (sort (typ «Set»)) K 
      (field [coercion off, canonical tt] f1 (global (indt «nat»)) c2 \
        field [coercion off, canonical tt] f2 
         (app [global (indt «eq»), global (indt «nat»), c2, c2]) c3 \
         end-record))]
synterp 
[indt-decl
  (parameter P explicit _ c0 \
    inductive x tt (parameter Q explicit _ c1 \ arity _) c1 \
     [constructor K (parameter Q explicit _ c2 \ arity _), 
      constructor R (parameter Q explicit _ c2 \ arity _)])]
interp 
[indt-decl
  (parameter P explicit (global (indt «bool»)) c0 \
    inductive x tt 
     (parameter Q explicit (global (indt «bool»)) c1 \
       arity (prod `_` (global (indt «nat»)) c2 \ sort (typ «Set»))) c1 \
     [constructor K 
       (parameter Q explicit (global (indt «bool»)) c2 \
         arity
          (prod `_` (global (indt «nat»)) c3 \
            app
             [c1, c2, 
              app
               [global (indc «S»), 
                app
                 [global (indc «S»), 
                  app [global (indc «S»), global (indc «O»)]]]])), 
      constructor R 
       (parameter Q explicit (global (indt «bool»)) c2 \
         arity
          (prod `w` (global (indt «bool»)) c3 \
            app [c1, c2, app [global (indc «S»), global (indc «O»)]]))])]
synterp 
[ctx-decl
  (context-item A explicit _ none c0 \
    context-item B explicit _ none c1 \ context-end)]
interp 
[ctx-decl
  (context-item A explicit (global (indt «nat»)) none c0 \
    context-item B explicit (global (indt «bool»)) none c1 \ context-end)]
a : nat

a is not universe polymorphic
a is transparent
Expands to: Constant elpi.tests.test_synterp.X.a
Module X := Struct Definition a : nat. End
Module A := Struct Definition a : nat. End
a
     : nat
L= [p 1]
File "./tests/test_synterp.v", line 38, characters 20-21:
Warning:
File "./tests/test_synterp.v", line 38, characters 20-21
X is linear: name it _X (discard) or X_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_synterp.v", line 41, characters 12-13:
Warning:
File "./tests/test_synterp.v", line 41, characters 12-13
X is linear: name it _X (discard) or X_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
test2
test1
str hello
test1
too many arguments
test1
str hello my
str Dear
test1
too many arguments
[attribute elpi.loc 
  (leaf-loc
    File "./tests/test_vernacular1.v", line 47, column 5, characters 953-961:), 
 attribute elpi.phase (leaf-str interp), attribute foo (leaf-str bar)]
[get-option elpi.loc 
  File "./tests/test_vernacular1.v", line 47, column 5, characters 953-961:, 
 get-option elpi.phase interp, get-option foo bar]
[attribute elpi.loc 
  (leaf-loc
    File "./tests/test_vernacular1.v", line 51, column 0, characters 987-1014:), 
 attribute elpi.phase (leaf-str interp), attribute foo (leaf-str bar), 
 attribute poly (leaf-str )]
[get-option elpi.loc 
  File "./tests/test_vernacular1.v", line 51, column 0, characters 987-1014:, 
 get-option elpi.phase interp, get-option foo bar, get-option poly tt]
[attribute elpi.loc 
  (leaf-loc
    File "./tests/test_vernacular1.v", line 52, column 0, characters 1015-1055:), 
 attribute elpi.phase (leaf-str interp), attribute foo (leaf-str bar), 
 attribute poly (leaf-str ), 
 attribute suppa (node [attribute duppa (leaf-str )])]
[get-option elpi.loc 
  File "./tests/test_vernacular1.v", line 52, column 0, characters 1015-1055:, 
 get-option elpi.phase interp, get-option foo bar, get-option poly tt]
Query assignments:
  X = 3
app [global (const «Nat.mul»), X0, X1] type
File "./tests/test_vernacular1.v", line 5, characters 0-61:
Warning:
Undeclared globals:
- File "./tests/test_vernacular1.v", line 6, column 29, characters 112-117: foo.
Please add the following text to your program:
type foo list argument -> prop.
[elpi.missing-types,elpi.typecheck,elpi,default]
File "./tests/test_vernacular1.v", line 46, characters 2-11:
Warning: This command does not support this attribute: foo.
[unsupported-attributes,parsing,default]
File "./tests/test_vernacular1.v", line 65, characters 26-27:
Warning:
File "./tests/test_vernacular1.v", line 65, characters 26-27
X is linear: name it _X (discard) or X_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
 {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==[ |- => fun x : nat => ?Goal] (goal evar)

SHELF:||
FUTURE GOALS STACK:
 ||

Rocq-Elpi mapping:
RAW:
?X2 <-> c0 \ X0 c0
ELAB:
?X2 <-> X1

Debug:
 {c0} : decl c0 `x` (global (indt «nat»))
   ?- evar (X0 c0) 
       (prod `_` (global (indt «bool»)) c1 \ global (indt «True»)) 
       (X1 c0)  /* suspended on X0, X1 */
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) [])]
[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:
  T = sort (typ «elpi.tests.test_HOAS.3»)
  U = «elpi.tests.test_HOAS.3»
Query assignments:
  U = «elpi.tests.test_HOAS.4»
Universe constraints:
UNIVERSES:
 {elpi.tests.test_HOAS.4} |= 
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 
WEAK CONSTRAINTS:
 

Query assignments:
  U = «foo»
Query assignments:
  X = c0 \ c1 \ c2 \
X0 c0 c1 c2
  X3_ = global (indt «nat»)
Syntactic constraints:
 {c0 c1 c2 c3 c4 c5 c6} :
   decl c6 `z` (app [global (const «N»), c5]), 
     decl c5 `x` (global (indt «nat»)), 
     decl c4 `a` (global (indt «bool»))
   ?- evar (X0 c4 c5 c6) (X1 c4 c5 c6) (X0 c4 c5 c6)  /* suspended on X0 */
 {c0 c1 c2 c3 c4 c5 c6} :
   decl c6 `z` (app [global (const «N»), c5]), 
     decl c5 `x` (global (indt «nat»)), 
     decl c4 `a` (global (indt «bool»))
   ?- evar (X2 c4 c5 c6) (sort (typ «elpi.tests.test_HOAS.9»)) 
       (X1 c4 c5 c6)  /* suspended on X2, X1 */
Universe constraints:
UNIVERSES:
 {elpi.tests.test_HOAS.9 elpi.tests.test_HOAS.8} |=
   Set <= elpi.tests.test_HOAS.8
   elpi.tests.test_HOAS.8 <= elpi.tests.test_HOAS.8
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 α3 := Type
 α4
WEAK CONSTRAINTS:
 

----------------------------------
 {c0 c1} : decl c1 `a` (global (indt «bool»))
   ?- evar X0 (sort (typ «elpi.tests.test_HOAS.10»)) X1  /* suspended on X0, X1 */
 {c0 c1} : decl c1 `a` (global (indt «bool»)) ?- evar (X2 c1) X1 (X2 c1)  /* suspended on X2 */
EVARS:
 ?X10==[ |- Type] (internal placeholder) {?elpi_evar}
 ?X9==[a |- ?elpi_evar] (internal placeholder) {?e0}
 ?X8==[a |- => ?elpi_evar] (internal placeholder)

SHELF:
FUTURE GOALS STACK:?X10
?X9

Rocq-Elpi mapping:
RAW:
?X9 <-> c0 \ X2 c0
?X10 <-> X0
ELAB:
?X9 <-> X2
?X10 <-> X1

X2 c0 : X1
Query assignments:
  TY = X1
  X = c0 \ c1 \
X2 c0
Syntactic constraints:
 {c0 c1} : decl c1 `a` (global (indt «bool»))
   ?- evar X0 (sort (typ «elpi.tests.test_HOAS.10»)) X1  /* suspended on X0, X1 */
 {c0 c1} : decl c1 `a` (global (indt «bool»)) ?- evar (X2 c1) X1 (X2 c1)  /* suspended on X2 */
Universe constraints:
UNIVERSES:
 {elpi.tests.test_HOAS.10} |= 
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 α5
WEAK CONSTRAINTS:
 

Raw term: 
app
 [global (const «add»), primitive (uint63 2000000003333002), 
  primitive (uint63 1)] 
Nice term: (2000000003333002 + 1)%uint63 
Red: 
2000000003333003%uint63
Raw term: 
app
 [global (const «add»), primitive (float64 24000000000000), 
  primitive (float64 1)] 
Nice term: 24000000000000 + 1 
Red: 24000000000001
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 `_elpi_renamed_n_3` (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»)]]]
  X10_ = c0 \ c1 \ c2 \
global (indt «nat»)
  X4_ = global (indt «nat»)
  X5_ = c0 \
global (indt «nat»)
  X6_ = c0 \ c1 \
global (indt «nat»)
  X7_ = c0 \
global (indt «nat»)
  X8_ = c0 \ c1 \
global (indt «nat»)
  X9_ = c0 \ c1 \ c2 \ c3 \
global (indt «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»)], 
  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 `_elpi_renamed_n_2` (global (indt «nat»)) c2 \
       global (indt «nat»)) 
     [c1, 
      fun `p` (global (indt «nat»)) c2 \
       app
        [global (indc «S»), 
         app
          [fix `plus` 0 
            (prod `_elpi_renamed_n_3` (global (indt «nat»)) c3 \
              prod `_elpi_renamed_m_4` (global (indt «nat»)) c4 \
               global (indt «nat»)) c3 \
            fun `_elpi_renamed_n_4` (global (indt «nat»)) c4 \
             fun `_elpi_renamed_m_5` (global (indt «nat»)) c5 \
              match c4 
               (fun `_elpi_renamed_n_6` (global (indt «nat»)) c6 \
                 global (indt «nat»)) 
               [c5, 
                fun `_elpi_renamed_p_6` (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»)]]]
  X11_ = global (indt «nat»)
  X12_ = c0 \
global (indt «nat»)
  X13_ = c0 \ c1 \ c2 \
global (indt «nat»)
  X14_ = c0 \ c1 \
global (indt «nat»)
  X15_ = c0 \ c1 \ c2 \
global (indt «nat»)
  X16_ = c0 \ c1 \ c2 \ c3 \
global (indt «nat»)
  X17_ = c0 \ c1 \ c2 \ c3 \ c4 \
global (indt «nat»)
  X18_ = c0 \ c1 \ c2 \ c3 \
global (indt «nat»)
  X19_ = c0 \ c1 \ c2 \ c3 \ c4 \
global (indt «nat»)
  X20_ = c0 \ c1 \ c2 \ c3 \ c4 \ c5 \ c6 \
global (indt «nat»)
  X21_ = c0 \ c1 \ c2 \ c3 \ c4 \ c5 \
global (indt «nat»)
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 `_elpi_renamed_n_4` (global (indt «nat»)) c4 \
             global (indt «nat»)) 
           [c3, 
            fun `_elpi_renamed_p_4` (global (indt «nat»)) c4 \
             app [global (indc «S»), app [c1, c4, c3]]], c0, 
       app
        [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]]]
  X22_ = global (indt «nat»)
  X23_ = global (indt «nat»)
  X24_ = c0 \
global (indt «nat»)
  X25_ = c0 \ c1 \
global (indt «nat»)
  X26_ = c0 \ c1 \ c2 \
global (indt «nat»)
  X27_ = c0 \ c1 \
global (indt «nat»)
  X28_ = c0 \ c1 \ c2 \
global (indt «nat»)
  X29_ = c0 \ c1 \ c2 \ c3 \ c4 \
global (indt «nat»)
  X30_ = c0 \ c1 \ c2 \ c3 \
global (indt «nat»)
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»)]]]
Query assignments:
  C = «proj1»
Query assignments:
  C = «proj1»
  P = elpi.tests.test_HOAS.P''.proj1
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 «P.foo.u0»)) 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 «P.foo.u0»)) c0 \
   fun `f` (app [global (indt «P.foo»), c0]) c1 \
    app [primitive (proj elpi.tests.test_HOAS.P.p1 1), c1])
some
 (pglobal (const «toto») 
   «elpi.tests.test_HOAS.23 elpi.tests.test_HOAS.24»)
prod `T1` (sort (typ «elpi.tests.test_HOAS.23»)) c0 \
 prod `T2` (sort (typ «elpi.tests.test_HOAS.24»)) c1 \ prod `x` c0 c2 \ c0
Query assignments:
  Body = some
 (pglobal (const «toto») 
   «elpi.tests.test_HOAS.23 elpi.tests.test_HOAS.24»)
  C = «titi»
  Term = prod `T1` (sort (typ «elpi.tests.test_HOAS.23»)) c0 \
 prod `T2` (sort (typ «elpi.tests.test_HOAS.24»)) c1 \ prod `x` c0 c2 \ c0
Universe constraints:
UNIVERSES:
 {elpi.tests.test_HOAS.24 elpi.tests.test_HOAS.23} |= 
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 elpi.tests.test_HOAS.24
 elpi.tests.test_HOAS.23
SORTS:
 
WEAK CONSTRAINTS:
 

pglobal (const «toto») X0
pglobal (const «toto») «u1 u2»
toto
Query assignments:
  %arg1 = toto
  X31_ = X0
  X32_ = «elpi.tests.test_HOAS.27 elpi.tests.test_HOAS.28»
Universe constraints:
UNIVERSES:
 {elpi.tests.test_HOAS.28 elpi.tests.test_HOAS.27} |= 
ALGEBRAIC UNIVERSES:
 {elpi.tests.test_HOAS.28 elpi.tests.test_HOAS.27}
FLEXIBLE UNIVERSES:
 elpi.tests.test_HOAS.28
 elpi.tests.test_HOAS.27
SORTS:
 
WEAK CONSTRAINTS:
 

app
 [pglobal (const «t») X0, global (indt «nat»), 
  pglobal (const «fnat») X1]
app
 [pglobal (const «t») «elpi.tests.test_HOAS.33», global (indt «nat»), 
  pglobal (const «fnat») «»]
Query assignments:
  T = app
 [pglobal (const «t») «elpi.tests.test_HOAS.33», global (indt «nat»), 
  pglobal (const «fnat») «»]
  Ty = global (indt «nat»)
  X33_ = «elpi.tests.test_HOAS.33»
  X34_ = «»
Universe constraints:
UNIVERSES:
 {elpi.tests.test_HOAS.33} |=
   Set <= elpi.tests.test_HOAS.33
   Set = elpi.tests.test_HOAS.33
ALGEBRAIC UNIVERSES:
 {elpi.tests.test_HOAS.33}
FLEXIBLE UNIVERSES:
 elpi.tests.test_HOAS.33 := Set
SORTS:
 
WEAK CONSTRAINTS:
 

Query assignments:
  Arity = prod `T` (sort (typ «elpi.tests.test_HOAS.34»)) c0 \
 sort (typ «elpi.tests.test_HOAS.34»)
  GRF = indt «F»
  I = «elpi.tests.test_HOAS.34»
  Ind = «F»
  K = [«Build_F»]
  KTys = [prod `T` (sort (typ «elpi.tests.test_HOAS.34»)) c0 \
  prod `t` c0 c1 \ app [pglobal (indt «F») «elpi.tests.test_HOAS.34», c0]]
  TyF = prod `T` (sort (typ «elpi.tests.test_HOAS.34»)) c0 \
 sort (typ «elpi.tests.test_HOAS.34»)
Universe constraints:
UNIVERSES:
 {elpi.tests.test_HOAS.34} |= 
ALGEBRAIC UNIVERSES:
 {elpi.tests.test_HOAS.34}
FLEXIBLE UNIVERSES:
 elpi.tests.test_HOAS.34
SORTS:
 
WEAK CONSTRAINTS:
 

Query assignments:
  Decl = parameter T explicit (sort (typ «elpi.tests.test_HOAS.35»)) c0 \
 record F (sort (typ «elpi.tests.test_HOAS.35»)) Build_F 
  (field [coercion off, canonical tt] t c0 c1 \ end-record)
  GRF = indt «F»
  I = «elpi.tests.test_HOAS.35»
  Ind = «F»
Universe constraints:
UNIVERSES:
 {elpi.tests.test_HOAS.35} |= 
ALGEBRAIC UNIVERSES:
 {elpi.tests.test_HOAS.35}
FLEXIBLE UNIVERSES:
 elpi.tests.test_HOAS.35
SORTS:
 
WEAK CONSTRAINTS:
 

«elpi.tests.test_HOAS.36» «elpi.tests.test_HOAS.37»
Universe constraints: UNIVERSES:
                       {elpi.tests.test_HOAS.37 elpi.tests.test_HOAS.36} |= 
                      ALGEBRAIC UNIVERSES:
                       {elpi.tests.test_HOAS.37 elpi.tests.test_HOAS.36}
                      FLEXIBLE UNIVERSES:
                       elpi.tests.test_HOAS.37
                       elpi.tests.test_HOAS.36
                      SORTS:
                       
                      WEAK CONSTRAINTS:
                       
                      
Universe constraints: UNIVERSES:
                       {elpi.tests.test_HOAS.37 elpi.tests.test_HOAS.36} |=
                         elpi.tests.test_HOAS.36 = elpi.tests.test_HOAS.37
                      ALGEBRAIC UNIVERSES:
                       {elpi.tests.test_HOAS.37 elpi.tests.test_HOAS.36}
                      FLEXIBLE UNIVERSES:
                       elpi.tests.test_HOAS.37
                       elpi.tests.test_HOAS.36 := elpi.tests.test_HOAS.37
                      SORTS:
                       
                      WEAK CONSTRAINTS:
                       
                      
Query assignments:
  GRF = indt «F»
  I1 = «elpi.tests.test_HOAS.36»
  I2 = «elpi.tests.test_HOAS.37»
Universe constraints:
UNIVERSES:
 {elpi.tests.test_HOAS.37 elpi.tests.test_HOAS.36} |=
   elpi.tests.test_HOAS.36 = elpi.tests.test_HOAS.37
ALGEBRAIC UNIVERSES:
 {elpi.tests.test_HOAS.37 elpi.tests.test_HOAS.36}
FLEXIBLE UNIVERSES:
 elpi.tests.test_HOAS.37
 elpi.tests.test_HOAS.36 := elpi.tests.test_HOAS.37
SORTS:
 
WEAK CONSTRAINTS:
 

«elpi.tests.test_HOAS.38» «»
Universe constraints: UNIVERSES:
                       {elpi.tests.test_HOAS.38} |= 
                      ALGEBRAIC UNIVERSES:
                       {elpi.tests.test_HOAS.38}
                      FLEXIBLE UNIVERSES:
                       elpi.tests.test_HOAS.38
                      SORTS:
                       
                      WEAK CONSTRAINTS:
                       
                      
different universe instance lengths
Universe constraints: UNIVERSES:
                       {elpi.tests.test_HOAS.38} |= 
                      ALGEBRAIC UNIVERSES:
                       {elpi.tests.test_HOAS.38}
                      FLEXIBLE UNIVERSES:
                       elpi.tests.test_HOAS.38
                      SORTS:
                       
                      WEAK CONSTRAINTS:
                       
                      
Query assignments:
  E = different universe instance lengths
  GRF = indt «F»
  GRfnat = const «fnat»
  I1 = «elpi.tests.test_HOAS.38»
  I2 = «»
Universe constraints:
UNIVERSES:
 {elpi.tests.test_HOAS.38} |= 
ALGEBRAIC UNIVERSES:
 {elpi.tests.test_HOAS.38}
FLEXIBLE UNIVERSES:
 elpi.tests.test_HOAS.38
SORTS:
 
WEAK CONSTRAINTS:
 

Query assignments:
  GRF = indt «F»
  I1 = «elpi.tests.test_HOAS.39»
  I2 = «elpi.tests.test_HOAS.39»
  U = «elpi.tests.test_HOAS.39»
  UL1 = [«elpi.tests.test_HOAS.39»]
Universe constraints:
UNIVERSES:
 {elpi.tests.test_HOAS.39} |= 
ALGEBRAIC UNIVERSES:
 {elpi.tests.test_HOAS.39}
FLEXIBLE UNIVERSES:
 elpi.tests.test_HOAS.39
SORTS:
 
WEAK CONSTRAINTS:
 

Cannot enforce elpi.tests.test_HOAS.40 = elpi.tests.test_HOAS.41 because
elpi.tests.test_HOAS.40 < elpi.tests.test_HOAS.41
Query assignments:
  E = Cannot enforce elpi.tests.test_HOAS.40 = elpi.tests.test_HOAS.41 because
elpi.tests.test_HOAS.40 < elpi.tests.test_HOAS.41
  GRF = indt «F»
  I1 = «elpi.tests.test_HOAS.40»
  I2 = «elpi.tests.test_HOAS.41»
  L1 = «elpi.tests.test_HOAS.40»
  L2 = «elpi.tests.test_HOAS.41»
  U1 = «elpi.tests.test_HOAS.40»
  U2 = «elpi.tests.test_HOAS.41»
Universe constraints:
UNIVERSES:
 {elpi.tests.test_HOAS.41 elpi.tests.test_HOAS.40} |=
   elpi.tests.test_HOAS.40 < elpi.tests.test_HOAS.41
ALGEBRAIC UNIVERSES:
 {elpi.tests.test_HOAS.41 elpi.tests.test_HOAS.40}
FLEXIBLE UNIVERSES:
 elpi.tests.test_HOAS.41
 elpi.tests.test_HOAS.40
SORTS:
 
WEAK CONSTRAINTS:
 

Universe constraints: UNIVERSES:
                       {elpi.tests.test_HOAS.45 elpi.tests.test_HOAS.44} |=
                         elpi.tests.test_HOAS.44 < elpi.tests.test_HOAS.45
                      ALGEBRAIC UNIVERSES:
                       {elpi.tests.test_HOAS.45 elpi.tests.test_HOAS.44}
                      FLEXIBLE UNIVERSES:
                       elpi.tests.test_HOAS.45
                       elpi.tests.test_HOAS.44
                      SORTS:
                       
                      WEAK CONSTRAINTS:
                       
                      
Query assignments:
  GRF = indt «F2»
  I1 = «elpi.tests.test_HOAS.44»
  I2 = «elpi.tests.test_HOAS.45»
  L1 = «elpi.tests.test_HOAS.44»
  L2 = «elpi.tests.test_HOAS.45»
  U1 = «elpi.tests.test_HOAS.44»
  U2 = «elpi.tests.test_HOAS.45»
Universe constraints:
UNIVERSES:
 {elpi.tests.test_HOAS.45 elpi.tests.test_HOAS.44} |=
   elpi.tests.test_HOAS.44 < elpi.tests.test_HOAS.45
   elpi.tests.test_HOAS.44 <= elpi.tests.test_HOAS.45
ALGEBRAIC UNIVERSES:
 {elpi.tests.test_HOAS.45 elpi.tests.test_HOAS.44}
FLEXIBLE UNIVERSES:
 elpi.tests.test_HOAS.45
 elpi.tests.test_HOAS.44
SORTS:
 
WEAK CONSTRAINTS:
 

Universe constraints: UNIVERSES:
                       {elpi.tests.test_HOAS.47 elpi.tests.test_HOAS.46} |=
                         elpi.tests.test_HOAS.46 < elpi.tests.test_HOAS.47
                      ALGEBRAIC UNIVERSES:
                       {elpi.tests.test_HOAS.47}
                      FLEXIBLE UNIVERSES:
                       elpi.tests.test_HOAS.47
                       elpi.tests.test_HOAS.46
                      SORTS:
                       
                      WEAK CONSTRAINTS:
                       
                      
Cannot enforce elpi.tests.test_HOAS.47 = elpi.tests.test_HOAS.46 because
elpi.tests.test_HOAS.46 < elpi.tests.test_HOAS.47
Query assignments:
  E = Cannot enforce elpi.tests.test_HOAS.47 = elpi.tests.test_HOAS.46 because
elpi.tests.test_HOAS.46 < elpi.tests.test_HOAS.47
  GRF = indt «F»
  I1 = «elpi.tests.test_HOAS.46»
  I2 = «elpi.tests.test_HOAS.47»
  L1 = «elpi.tests.test_HOAS.46»
  L2 = «elpi.tests.test_HOAS.47»
  U1 = «elpi.tests.test_HOAS.46»
  U2 = «elpi.tests.test_HOAS.47»
Universe constraints:
UNIVERSES:
 {elpi.tests.test_HOAS.47 elpi.tests.test_HOAS.46} |=
   elpi.tests.test_HOAS.46 < elpi.tests.test_HOAS.47
ALGEBRAIC UNIVERSES:
 {elpi.tests.test_HOAS.47}
FLEXIBLE UNIVERSES:
 elpi.tests.test_HOAS.47
 elpi.tests.test_HOAS.46
SORTS:
 
WEAK CONSTRAINTS:
 

Query assignments:
  GR = indt «nat»
Query assignments:
  GR = indt «F»
  I = «elpi.tests.test_HOAS.48»
Universe constraints:
UNIVERSES:
 {elpi.tests.test_HOAS.48} |= 
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 elpi.tests.test_HOAS.48
SORTS:
 
WEAK CONSTRAINTS:
 

Query assignments:
  GR = indt «F»
pglobal (indt «F») «elpi.tests.test_HOAS.50»
Query assignments:
  %arg1 = pglobal (indt «F») «elpi.tests.test_HOAS.50»
  GR = indt «F»
  I = «elpi.tests.test_HOAS.50»
Universe constraints:
UNIVERSES:
 {elpi.tests.test_HOAS.50} |= 
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 elpi.tests.test_HOAS.50
SORTS:
 
WEAK CONSTRAINTS:
 

«elpi.tests.test_HOAS.51 elpi.tests.test_HOAS.51»
Query assignments:
  I = «elpi.tests.test_HOAS.51 elpi.tests.test_HOAS.51»
  U = «elpi.tests.test_HOAS.51»
Universe constraints:
UNIVERSES:
 {elpi.tests.test_HOAS.51} |= 
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 
WEAK CONSTRAINTS:
 

Universe constraints: 
------------------
Universe constraints: UNIVERSES:
                       {elpi.tests.test_HOAS.53 elpi.tests.test_HOAS.52} |=
                         elpi.tests.test_HOAS.52 < elpi.tests.test_HOAS.53
                      ALGEBRAIC UNIVERSES:
                       {elpi.tests.test_HOAS.53 elpi.tests.test_HOAS.52}
                      FLEXIBLE UNIVERSES:
                       elpi.tests.test_HOAS.53
                       elpi.tests.test_HOAS.52
                      SORTS:
                       
                      WEAK CONSTRAINTS:
                       
                      
Universe constraints: UNIVERSES:
                       {elpi.tests.test_HOAS.53 elpi.tests.test_HOAS.52} |=
                         elpi.tests.test_HOAS.52 < elpi.tests.test_HOAS.53
                      ALGEBRAIC UNIVERSES:
                       {elpi.tests.test_HOAS.53 elpi.tests.test_HOAS.52}
                      FLEXIBLE UNIVERSES:
                       elpi.tests.test_HOAS.53
                       elpi.tests.test_HOAS.52
                      SORTS:
                       
                      WEAK CONSTRAINTS:
                       
                      
Query assignments:
  Body = sort (typ «elpi.tests.test_HOAS.52»)
  LX = «elpi.tests.test_HOAS.52»
  LY = «elpi.tests.test_HOAS.53»
  Type = sort (typ «elpi.tests.test_HOAS.53»)
  UX = «elpi.tests.test_HOAS.52»
  UY = «elpi.tests.test_HOAS.53»
Universe constraints:
UNIVERSES:
 {elpi.tests.test_HOAS.53 elpi.tests.test_HOAS.52} |=
   elpi.tests.test_HOAS.52 < elpi.tests.test_HOAS.53
ALGEBRAIC UNIVERSES:
 {elpi.tests.test_HOAS.53 elpi.tests.test_HOAS.52}
FLEXIBLE UNIVERSES:
 elpi.tests.test_HOAS.53
 elpi.tests.test_HOAS.52
SORTS:
 
WEAK CONSTRAINTS:
 

poly@{u u0} : Type@{u0}
(* u u0 |= u < u0 *)

poly is universe polymorphic
poly is transparent
Expands to: Constant elpi.tests.test_HOAS.poly
poly@{Set
elpi.tests.test_HOAS.54}
     : Type@{elpi.tests.test_HOAS.54}
(* {elpi.tests.test_HOAS.54} |= Set < elpi.tests.test_HOAS.54 *)
Box not a defined object.
sort (typ «Set»)
Query assignments:
  U = «elpi.tests.test_HOAS.55»
Universe constraints:
UNIVERSES:
 {elpi.tests.test_HOAS.55} |= Set = elpi.tests.test_HOAS.55
ALGEBRAIC UNIVERSES:
 {elpi.tests.test_HOAS.55}
FLEXIBLE UNIVERSES:
 elpi.tests.test_HOAS.55 := Set
SORTS:
 
WEAK CONSTRAINTS:
 

Inductive tree@{u} (A : Type@{u}) : Type@{max(Set,u)} :=
    leaf : A -> tree@{u} A | node : A -> list (tree@{u} A) -> tree@{u} A.
(* u |= Set <= list.u0
        u <= list.u0 *)

Arguments tree A%type_scope
Arguments leaf A%type_scope _
Arguments node A%type_scope _ _%list_scope
parameter A explicit (sort (typ «elpi.tests.test_HOAS.64»)) c0 \
 inductive tree tt (arity (sort (typ «elpi.tests.test_HOAS.65»))) 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.69 elpi.tests.test_HOAS.68
                        elpi.tests.test_HOAS.67 elpi.tests.test_HOAS.66
                        elpi.tests.test_HOAS.65 elpi.tests.test_HOAS.64} |=
                         elpi.tests.test_HOAS.64 < elpi.tests.test_HOAS.66
                         elpi.tests.test_HOAS.65 < elpi.tests.test_HOAS.67
                         Set <= list.u0
                         Set <= elpi.tests.test_HOAS.65
                         Set <= elpi.tests.test_HOAS.69
                         elpi.tests.test_HOAS.64 <= list.u0
                         elpi.tests.test_HOAS.64 <= elpi.tests.test_HOAS.65
                         elpi.tests.test_HOAS.64 <= elpi.tests.test_HOAS.68
                         elpi.tests.test_HOAS.64 <= elpi.tests.test_HOAS.69
                         elpi.tests.test_HOAS.65 <= list.u0
                         elpi.tests.test_HOAS.65 <= elpi.tests.test_HOAS.68
                         elpi.tests.test_HOAS.65 <= elpi.tests.test_HOAS.69
                         elpi.tests.test_HOAS.68 <= elpi.tests.test_HOAS.65
                         elpi.tests.test_HOAS.69 <= elpi.tests.test_HOAS.65
                      ALGEBRAIC UNIVERSES:
                       {elpi.tests.test_HOAS.64}
                      FLEXIBLE UNIVERSES:
                       elpi.tests.test_HOAS.64
                      SORTS:
                       
                      WEAK CONSTRAINTS:
                       
                      
Query assignments:
  D = parameter A explicit (sort (typ «M.tree.u0»)) c0 \
 inductive tree tt (arity (sort (typ «M.tree.u1»))) c1 \
  [constructor leaf (arity (prod `_` c0 c2 \ c1)), 
   constructor node 
    (arity
      (prod `_` c0 c2 \ prod `_` (app [global (indt «list»), c1]) c3 \ c1))]
  I = «tree»
  X35_ = X0
Universe constraints:
UNIVERSES:
 {elpi.tests.test_HOAS.69 elpi.tests.test_HOAS.68 elpi.tests.test_HOAS.67
  elpi.tests.test_HOAS.66} |=
   M.tree.u0 < elpi.tests.test_HOAS.66
   M.tree.u1 < elpi.tests.test_HOAS.67
   Set <= elpi.tests.test_HOAS.69
   M.tree.u0 <= elpi.tests.test_HOAS.68
   M.tree.u0 <= elpi.tests.test_HOAS.69
   M.tree.u1 <= elpi.tests.test_HOAS.68
   M.tree.u1 <= elpi.tests.test_HOAS.69
   elpi.tests.test_HOAS.68 <= M.tree.u1
   elpi.tests.test_HOAS.69 <= M.tree.u1
ALGEBRAIC UNIVERSES:
 {M.tree.u0}
FLEXIBLE UNIVERSES:
 M.tree.u0
SORTS:
 
WEAK CONSTRAINTS:
 

File "./tests/test_HOAS.v", line 94, characters 46-61:
Warning:
File "./tests/test_HOAS.v", line 94, characters 46-61
X is linear: name it _X (discard) or X_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_HOAS.v", line 101, characters 19-24:
Warning:
File "./tests/test_HOAS.v", line 101, characters 19-24
X is linear: name it _X (discard) or X_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_HOAS.v", line 127, characters 0-40:
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,default]
File "./tests/test_HOAS.v", line 130, characters 0-40:
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,default]
File "./tests/test_HOAS.v", line 306, characters 18-20:
Warning:
File "./tests/test_HOAS.v", line 306, characters 18-20
Ty is linear: name it _Ty (discard) or Ty_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_HOAS.v", line 320, characters 43-48:
Warning:
File "./tests/test_HOAS.v", line 320, characters 43-48
Arity is linear: name it _Arity (discard) or Arity_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_HOAS.v", line 320, characters 49-50:
Warning:
File "./tests/test_HOAS.v", line 320, characters 49-50
K is linear: name it _K (discard) or K_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_HOAS.v", line 320, characters 51-55:
Warning:
File "./tests/test_HOAS.v", line 320, characters 51-55
KTys is linear: name it _KTys (discard) or KTys_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_HOAS.v", line 316, characters 32-35:
Warning:
File "./tests/test_HOAS.v", line 316, characters 32-35
TyF is linear: name it _TyF (discard) or TyF_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_HOAS.v", line 467, characters 42-46:
Warning:
File "./tests/test_HOAS.v", line 467, characters 42-46
Decl is linear: name it _Decl (discard) or Decl_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "coq-builtin.elpi", line 461, characters 50-51:
Warning:
File "coq-builtin.elpi", line 461, characters 50-51
I is linear: name it _I (discard) or I_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_HOAS.v", line 506, characters 20-22:
Warning:
File "./tests/test_HOAS.v", line 506, characters 20-22
I2 is linear: name it _I2 (discard) or I2_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_HOAS.v", line 504, characters 23-26:
Warning:
File "./tests/test_HOAS.v", line 504, characters 23-26
UL1 is linear: name it _UL1 (discard) or UL1_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_HOAS.v", line 558, characters 32-33:
Warning:
File "./tests/test_HOAS.v", line 558, characters 32-33
I is linear: name it _I (discard) or I_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "coq-builtin.elpi", line 461, characters 50-51:
Warning:
File "coq-builtin.elpi", line 461, characters 50-51
I is linear: name it _I (discard) or I_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_HOAS.v", line 629, characters 36-37:
Warning:
File "./tests/test_HOAS.v", line 629, characters 36-37
U is linear: name it _U (discard) or U_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
(true && false)%bool
     : bool
natmul R n : ringType_sort R
     : ringType_sort R
natmul R n : ringType_sort R
     : ringType_sort R
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:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 
WEAK CONSTRAINTS:
 

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»)]]
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
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 
WEAK CONSTRAINTS:
 

CHR: Uniqueness of typing of frozen--911 + [] <-> []
[c0] |> [decl c0 `x` (uvar frozen--911 [])] |- frozen--911 [] : 
sort (typ «elpi.tests.test_elaborator.40»)
[] |> [] |- frozen--911 [] : sort (typ «elpi.tests.test_elaborator.39»)
[] |> [] |- 
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
  X1_ = 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:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 
WEAK CONSTRAINTS:
 

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»)
  X2_ = 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:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 
WEAK CONSTRAINTS:
 

sort (typ X0)
Query assignments:
  X3_ = X0
Query assignments:
  S = sort (typ «elpi.tests.test_elaborator.48»)
  T = sort (typ «elpi.tests.test_elaborator.47»)
  X4_ = «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}
FLEXIBLE UNIVERSES:
 elpi.tests.test_elaborator.47
SORTS:
 
WEAK CONSTRAINTS:
 

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»)
  X5_ = «elpi.tests.test_elaborator.49»
  X6_ = «elpi.tests.test_elaborator.51»
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
ALGEBRAIC UNIVERSES:
 {elpi.tests.test_elaborator.51 elpi.tests.test_elaborator.49}
FLEXIBLE UNIVERSES:
 elpi.tests.test_elaborator.51
 elpi.tests.test_elaborator.49
SORTS:
 
WEAK CONSTRAINTS:
 

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)
  X7_ = X0
Query assignments:
  X = sort (typ «elpi.tests.test_elaborator.53»)
  Y = sort (typ «elpi.tests.test_elaborator.54»)
Universe constraints:
UNIVERSES:
 {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}
FLEXIBLE UNIVERSES:
 elpi.tests.test_elaborator.54
 elpi.tests.test_elaborator.53
SORTS:
 
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»)]]
  X10_ = X2
  X11_ = X3
  X9_ = X4
Syntactic constraints:
 evar (X4) (sort (typ «ex.u0»)) X0  /* suspended on X4, X0 */
 evar (X3) X0 (X1)  /* suspended on X3, X1 */
 evar (X1) X0 X5  /* suspended on X1, X5 */
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]]
  X12_ = X0
  X13_ = X1
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»)]]
  X14_ = X0
  X15_ = c0 \
X1 c0
  X16_ = X2
  X17_ = 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:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 
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»)]]
  X18_ = X0
  X19_ = c0 \
X1 c0
  X20_ = X2
  X21_ = 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:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 
WEAK CONSTRAINTS:
 

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:
  F = app [global (const «nat_of_bool»), global (indc «true»)]
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»)]]]
  X22_ = X0
  X23_ = X1
Query assignments:
  Res = app
 [global (const «Z_of_nat»), 
  app [global (const «nat_of_bool»), global (indc «true»)]]
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»)]]]
  X24_ = X0
  X25_ = X1
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»)
  X26_ = c0 \ c1 \
X0 c0 c1
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
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 
WEAK CONSTRAINTS:
 

Query assignments:
  T = global (const «int»)
  X = primitive (uint63 99)
Query assignments:
  T = global (const «float»)
  X = primitive (float64 993000)
Query assignments:
  X27_ = X0
File "./tests/test_elaborator.v", line 18, characters 10-12:
Warning:
File "./tests/test_elaborator.v", line 18, characters 10-12
RB is linear: name it _RB (discard) or RB_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_elaborator.v", line 17, characters 58-59:
Warning:
File "./tests/test_elaborator.v", line 17, characters 58-59
T is linear: name it _T (discard) or T_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_elaborator.v", line 18, characters 7-9:
Warning:
File "./tests/test_elaborator.v", line 18, characters 7-9
TY is linear: name it _TY (discard) or TY_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_elaborator.v", line 23, characters 10-12:
Warning:
File "./tests/test_elaborator.v", line 23, characters 10-12
RB is linear: name it _RB (discard) or RB_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_elaborator.v", line 23, characters 7-9:
Warning:
File "./tests/test_elaborator.v", line 23, characters 7-9
TY is linear: name it _TY (discard) or TY_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_elaborator.v", line 29, characters 41-42:
Warning:
File "./tests/test_elaborator.v", line 29, characters 41-42
R is linear: name it _R (discard) or R_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_elaborator.v", line 29, characters 39-40:
Warning:
File "./tests/test_elaborator.v", line 29, characters 39-40
T is linear: name it _T (discard) or T_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_elaborator.v", line 31, characters 45-46:
Warning:
File "./tests/test_elaborator.v", line 31, characters 45-46
R is linear: name it _R (discard) or R_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_elaborator.v", line 31, characters 43-44:
Warning:
File "./tests/test_elaborator.v", line 31, characters 43-44
T is linear: name it _T (discard) or T_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_elaborator.v", line 38, characters 29-30:
Warning:
File "./tests/test_elaborator.v", line 38, characters 29-30
S is linear: name it _S (discard) or S_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_elaborator.v", line 38, characters 31-32:
Warning:
File "./tests/test_elaborator.v", line 38, characters 31-32
T is linear: name it _T (discard) or T_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_elaborator.v", line 41, characters 15-16:
Warning:
File "./tests/test_elaborator.v", line 41, characters 15-16
S is linear: name it _S (discard) or S_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_elaborator.v", line 42, characters 29-31:
Warning:
File "./tests/test_elaborator.v", line 42, characters 29-31
TW is linear: name it _TW (discard) or TW_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_elaborator.v", line 64, characters 32-33:
Warning:
File "./tests/test_elaborator.v", line 64, characters 32-33
R is linear: name it _R (discard) or R_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_elaborator.v", line 71, characters 32-33:
Warning:
File "./tests/test_elaborator.v", line 71, characters 32-33
R is linear: name it _R (discard) or R_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_elaborator.v", line 78, characters 45-46:
Warning:
File "./tests/test_elaborator.v", line 78, characters 45-46
R is linear: name it _R (discard) or R_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_elaborator.v", line 90, characters 45-46:
Warning:
File "./tests/test_elaborator.v", line 90, characters 45-46
R is linear: name it _R (discard) or R_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_elaborator.v", line 97, characters 62-63:
Warning:
File "./tests/test_elaborator.v", line 97, characters 62-63
A is linear: name it _A (discard) or A_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_elaborator.v", line 97, characters 64-65:
Warning:
File "./tests/test_elaborator.v", line 97, characters 64-65
B is linear: name it _B (discard) or B_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_elaborator.v", line 97, characters 66-67:
Warning:
File "./tests/test_elaborator.v", line 97, characters 66-67
C is linear: name it _C (discard) or C_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_elaborator.v", line 97, characters 68-69:
Warning:
File "./tests/test_elaborator.v", line 97, characters 68-69
D is linear: name it _D (discard) or D_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_elaborator.v", line 97, characters 70-71:
Warning:
File "./tests/test_elaborator.v", line 97, characters 70-71
E is linear: name it _E (discard) or E_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_elaborator.v", line 97, characters 72-73:
Warning:
File "./tests/test_elaborator.v", line 97, characters 72-73
F is linear: name it _F (discard) or F_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_elaborator.v", line 108, characters 66-67:
Warning:
File "./tests/test_elaborator.v", line 108, characters 66-67
F is linear: name it _F (discard) or F_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_elaborator.v", line 121, characters 35-38:
Warning:
File "./tests/test_elaborator.v", line 121, characters 35-38
Res is linear: name it _Res (discard) or Res_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_elaborator.v", line 135, characters 64-67:
Warning:
File "./tests/test_elaborator.v", line 135, characters 64-67
Res is linear: name it _Res (discard) or Res_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_elaborator.v", line 138, characters 33-36:
Warning:
File "./tests/test_elaborator.v", line 138, characters 33-36
Res is linear: name it _Res (discard) or Res_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_elaborator.v", line 151, characters 49-50:
Warning:
File "./tests/test_elaborator.v", line 151, characters 49-50
R is linear: name it _R (discard) or R_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_elaborator.v", line 151, characters 47-48:
Warning:
File "./tests/test_elaborator.v", line 151, characters 47-48
T is linear: name it _T (discard) or T_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_elaborator.v", line 156, characters 36-37:
Warning:
File "./tests/test_elaborator.v", line 156, characters 36-37
T is linear: name it _T (discard) or T_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_elaborator.v", line 156, characters 38-39:
Warning:
File "./tests/test_elaborator.v", line 156, characters 38-39
X is linear: name it _X (discard) or X_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_elaborator.v", line 157, characters 39-40:
Warning:
File "./tests/test_elaborator.v", line 157, characters 39-40
T is linear: name it _T (discard) or T_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_elaborator.v", line 157, characters 41-42:
Warning:
File "./tests/test_elaborator.v", line 157, characters 41-42
X is linear: name it _X (discard) or X_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
1
     : nat
nabla c1 \
 seal
  (goal [decl c1 `P` (sort prop)] (app [global (const «id»), X0, X1]) 
    (prod `_` c1 c2 \ c1) 
    (app [global (const «id»), prod `_` c1 c2 \ c1, X2 c1]) [])
Debug:
 {c0 c1 c2 c3} :
   decl c3 `w` c0, 
     decl c2 `h` 
      (app
        [global (indt «eq»), global (indt «nat»), global (const «o»), 
         global (const «m»)]), 
     decl c1 `x` (prod `y` c0 c4 \ sort (typ «elpi.tests.test_tactic.2»)), 
     decl c0 `T` (sort (typ «elpi.tests.test_tactic.1»))
   ?- evar (X0 c0 c1 c2 c3) 
       (prod `e` 
         (app
           [global (indt «eq»), sort (typ «elpi.tests.test_tactic.2»), 
            app [c1, c3], sort (typ «elpi.tests.test_tactic.3»)]) c4 \
         prod `j` (app [c1, c3]) c5 \
          app
           [global (indt «ex»), app [c1, c3], 
            fun `a` (app [c1, c3]) c6 \
             app [global (indt «eq»), app [c1, c3], c6, c6]]) 
       (X1 c0 c1 c2 c3)  /* suspended on X0, X1 */
Goal: 
[]


[decl c3 `w` c0, 
 decl c2 `h` 
  (app
    [global (indt «eq»), global (indt «nat»), global (const «o»), 
     global (const «m»)]), 
 decl c1 `x` (prod `y` c0 c4 \ sort (typ «elpi.tests.test_tactic.2»)), 
 decl c0 `T` (sort (typ «elpi.tests.test_tactic.1»))]
------------
prod `e` 
 (app
   [global (indt «eq»), sort (typ «elpi.tests.test_tactic.2»), 
    app [c1, c3], sort (typ «elpi.tests.test_tactic.3»)]) c4 \
 prod `j` (app [c1, c3]) c5 \
  app
   [global (indt «ex»), app [c1, c3], 
    fun `a` (app [c1, c3]) c6 \
     app [global (indt «eq»), app [c1, c3], c6, c6]] 
x w = Type -> x w -> exists a : x w, a = a
Debug:
 {c0 c1 c2 c3} :
   decl c3 `w` c0, 
     decl c2 `h` 
      (app
        [global (indt «eq»), global (indt «nat»), global (const «o»), 
         global (const «m»)]), 
     decl c1 `x` (prod `y` c0 c4 \ sort (typ «elpi.tests.test_tactic.2»)), 
     decl c0 `T` (sort (typ «elpi.tests.test_tactic.1»))
   ?- evar (X0 c0 c1 c2 c3) 
       (prod `e` 
         (app
           [global (indt «eq»), sort (typ «elpi.tests.test_tactic.2»), 
            app [c1, c3], sort (typ «elpi.tests.test_tactic.3»)]) c4 \
         prod `j` (app [c1, c3]) c5 \
          app
           [global (indt «ex»), app [c1, c3], 
            fun `a` (app [c1, c3]) c6 \
             app [global (indt «eq»), app [c1, c3], c6, c6]]) 
       (X1 c0 c1 c2 c3)  /* suspended on X0, X1 */
Goal: 
[]


[decl c3 `w` c0, 
 decl c2 `h` 
  (app
    [global (indt «eq»), global (indt «nat»), global (const «o»), 
     global (const «m»)]), 
 decl c1 `x` (prod `y` c0 c4 \ sort (typ «elpi.tests.test_tactic.2»)), 
 decl c0 `T` (sort (typ «elpi.tests.test_tactic.1»))]
------------
prod `e` 
 (app
   [global (indt «eq»), sort (typ «elpi.tests.test_tactic.2»), 
    app [c1, c3], sort (typ «elpi.tests.test_tactic.3»)]) c4 \
 prod `j` (app [c1, c3]) c5 \
  app
   [global (indt «ex»), app [c1, c3], 
    fun `a` (app [c1, c3]) c6 \
     app [global (indt «eq»), app [c1, c3], c6, c6]] 
x w = Type -> x w -> exists a : x w, a = a
Debug:
 {c0 c1 c2 c3 c4 c5} :
   decl c5 `j` (app [c1, c3]), 
     decl c4 `e` 
      (app
        [global (indt «eq»), sort (typ «elpi.tests.test_tactic.2»), 
         app [c1, c3], sort (typ «elpi.tests.test_tactic.3»)]), 
     decl c3 `w` c0, 
     decl c2 `h` 
      (app
        [global (indt «eq»), global (indt «nat»), global (const «o»), 
         global (const «m»)]), 
     decl c1 `x` (prod `y` c0 c6 \ sort (typ «elpi.tests.test_tactic.2»)), 
     decl c0 `T` (sort (typ «elpi.tests.test_tactic.1»))
   ?- evar (X0 c0 c1 c2 c3 c4 c5) (app [c1, c3]) (X1 c0 c1 c2 c3 c4 c5)  /* suspended on X0, X1 */ 
 {c0 c1 c2 c3 c4 c5} :
   decl c5 `j` (app [c1, c3]), 
     decl c4 `e` 
      (app
        [global (indt «eq»), sort (typ «elpi.tests.test_tactic.2»), 
         app [c1, c3], sort (typ «elpi.tests.test_tactic.3»)]), 
     decl c3 `w` c0, 
     decl c2 `h` 
      (app
        [global (indt «eq»), global (indt «nat»), global (const «o»), 
         global (const «m»)]), 
     decl c1 `x` (prod `y` c0 c6 \ sort (typ «elpi.tests.test_tactic.2»)), 
     decl c0 `T` (sort (typ «elpi.tests.test_tactic.1»))
   ?- evar (X2 c0 c1 c2 c3 c4 c5) 
       (app
         [global (indt «eq»), app [c1, c3], X1 c0 c1 c2 c3 c4 c5, 
          X1 c0 c1 c2 c3 c4 c5]) (X3 c0 c1 c2 c3 c4 c5)  /* suspended on X2, X3 */
Goal: 
[]


[decl c5 `j` (app [c1, c3]), 
 decl c4 `e` 
  (app
    [global (indt «eq»), sort (typ «elpi.tests.test_tactic.2»), 
     app [c1, c3], sort (typ «elpi.tests.test_tactic.3»)]), 
 decl c3 `w` c0, 
 decl c2 `h` 
  (app
    [global (indt «eq»), global (indt «nat»), global (const «o»), 
     global (const «m»)]), 
 decl c1 `x` (prod `y` c0 c6 \ sort (typ «elpi.tests.test_tactic.2»)), 
 decl c0 `T` (sort (typ «elpi.tests.test_tactic.1»))]
------------
app
 [global (indt «eq»), app [c1, c3], X1 c0 c1 c2 c3 c4 c5, 
  X1 c0 c1 c2 c3 c4 c5] ?foo = ?foo
Debug:
 {c0 c1 c2 c3 c4 c5} :
   decl c5 `j` (app [c1, c3]), 
     decl c4 `e` 
      (app
        [global (indt «eq»), sort (typ «elpi.tests.test_tactic.2»), 
         app [c1, c3], sort (typ «elpi.tests.test_tactic.3»)]), 
     decl c3 `w` c0, 
     decl c2 `h` 
      (app
        [global (indt «eq»), global (indt «nat»), global (const «o»), 
         global (const «m»)]), 
     decl c1 `x` (prod `y` c0 c6 \ sort (typ «elpi.tests.test_tactic.2»)), 
     decl c0 `T` (sort (typ «elpi.tests.test_tactic.1»))
   ?- evar (X0 c0 c1 c2 c3 c4 c5) (app [c1, c3]) (X1 c0 c1 c2 c3 c4 c5)  /* suspended on X0, X1 */ 
 {c0 c1 c2 c3 c4 c5} :
   decl c5 `j` (app [c1, c3]), 
     decl c4 `e` 
      (app
        [global (indt «eq»), sort (typ «elpi.tests.test_tactic.2»), 
         app [c1, c3], sort (typ «elpi.tests.test_tactic.3»)]), 
     decl c3 `w` c0, 
     decl c2 `h` 
      (app
        [global (indt «eq»), global (indt «nat»), global (const «o»), 
         global (const «m»)]), 
     decl c1 `x` (prod `y` c0 c6 \ sort (typ «elpi.tests.test_tactic.2»)), 
     decl c0 `T` (sort (typ «elpi.tests.test_tactic.1»))
   ?- evar (X2 c0 c1 c2 c3 c4 c5) 
       (app
         [global (indt «eq»), app [c1, c3], X1 c0 c1 c2 c3 c4 c5, 
          X1 c0 c1 c2 c3 c4 c5]) (X3 c0 c1 c2 c3 c4 c5)  /* suspended on X2, X3 */
Goal: 
[]


[decl c5 `j` (app [c1, c3]), 
 decl c4 `e` 
  (app
    [global (indt «eq»), sort (typ «elpi.tests.test_tactic.2»), 
     app [c1, c3], sort (typ «elpi.tests.test_tactic.3»)]), 
 decl c3 `w` c0, 
 decl c2 `h` 
  (app
    [global (indt «eq»), global (indt «nat»), global (const «o»), 
     global (const «m»)]), 
 decl c1 `x` (prod `y` c0 c6 \ sort (typ «elpi.tests.test_tactic.2»)), 
 decl c0 `T` (sort (typ «elpi.tests.test_tactic.1»))]
------------
app
 [global (indt «eq»), app [c1, c3], X1 c0 c1 c2 c3 c4 c5, 
  X1 c0 c1 c2 c3 c4 c5] ?foo = ?foo
Debug:  evar (X0) (global (indt «nat»)) X1  /* suspended on X0, X1 */
X0 global (indt «nat»)
Debug:  evar (X2) (global (indt «nat»)) X3  /* suspended on X2, X3 */
hello
eq_refl : one = 1
     : one = 1
[(c4 \ app [c1, c2]), (c4 \ app [c0, c2]), (c4 \ c4), (c4 \
 prod `x0` (app [c0, c2]) c5 \
  prod `x1` (global (indt «nat»)) c6 \
   sort (typ «elpi.tests.test_tactic.16»))]
[app
  [global (indt «eq»), global (indt «nat»), c2, 
   app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]], 
 sort prop]
1356
     : nat
this 3 app [c4, X0 c0 c1 c2 c3 c4] 
app [c3, app [c1, c2], global (const «a»)] foo.bar
[trm c0, trm (app [global (const «Nat.add»), c0, c1])]
Debug:
 {c0 c1} :
   decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»))
   ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1)  /* suspended on X0, X1 */
[trm c0, trm (app [global (const «Nat.add»), X0 c0 c1, c1])]
Debug:
 {c0 c1} :
   decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»))
   ?- evar (X1 c0 c1) (global (indt «nat»)) (X0 c0 c1)  /* suspended on X1, X0 */ 
 {c0 c1} :
   decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»))
   ?- evar (X2 c0 c1) (global (indt «True»)) (X3 c0 c1)  /* suspended on X2, X3 */
[trm c0, trm (app [global (const «Nat.add»), X0 c0 c1, c1])]
Debug:
 {c0 c1} :
   decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»))
   ?- evar (X1 c0 c1) (global (indt «True»)) (X2 c0 c1)  /* suspended on X1, X2 */
[trm c0, trm c1]
Debug:
 {c0 c1} :
   decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»))
   ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1)  /* suspended on X0, X1 */
[trm (app [global (const «Nat.add»), c0, c1])]
Debug:
 {c0 c1} :
   decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»))
   ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1)  /* suspended on X0, X1 */
[trm (app [global (const «Nat.add»), X0 c0 c1, c1])]
Debug:
 {c0 c1} :
   decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»))
   ?- evar (X1 c0 c1) (global (indt «nat»)) (X0 c0 c1)  /* suspended on X1, X0 */ 
 {c0 c1} :
   decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»))
   ?- evar (X2 c0 c1) (global (indt «True»)) (X3 c0 c1)  /* suspended on X2, X3 */
[trm (app [global (const «Nat.add»), X0 c0 c1, c1])]
Debug:
 {c0 c1} :
   decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»))
   ?- evar (X1 c0 c1) (global (indt «True»)) (X2 c0 c1)  /* suspended on X1, X2 */
[trm (app [global (indc «O»), global (indc «O»)])]
Debug:
 {c0 c1} :
   decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»))
   ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1)  /* suspended on X0, X1 */
[trm c0]
Debug:
 {c0 c1} :
   decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»))
   ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1)  /* suspended on X0, X1 */
[int 1]
Debug:
 {c0 c1} :
   decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»))
   ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1)  /* suspended on X0, X1 */
[int -1]
Debug:
 {c0 c1} :
   decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»))
   ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1)  /* suspended on X0, X1 */
[str a]
Debug:
 {c0 c1} :
   decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»))
   ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1)  /* suspended on X0, X1 */
[str a]
Debug:
 {c0 c1} :
   decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»))
   ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1)  /* suspended on X0, X1 */
[str x]
Debug:
 {c0 c1} :
   decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»))
   ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1)  /* suspended on X0, X1 */
[trm (app [global (const «Nat.add»), c0, c1])]
Debug:
 {c0 c1} :
   decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»))
   ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1)  /* suspended on X0, X1 */
[trm (app [global (const «Nat.add»), X0 c0 c1, c1])]
Debug:
 {c0 c1} :
   decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»))
   ?- evar (X1 c0 c1) (global (indt «True»)) (X2 c0 c1)  /* suspended on X1, X2 */
[trm (app [global (const «Nat.add»), X0 c0 c1, c1])]
Debug:
 {c0 c1} :
   decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»))
   ?- evar (X1 c0 c1) (global (indt «True»)) (X2 c0 c1)  /* suspended on X1, X2 */
[trm c0]
Debug:
 {c0 c1} :
   decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»))
   ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1)  /* suspended on X0, X1 */
YYYYYYYYYYYYYYYYYYYYYYYYYYYY 
[attribute elpi.loc 
  (leaf-loc
    File "./tests/test_tactic.v", line 289, column 77, characters 6139-6147:), 
 attribute elpi.phase (leaf-str interp), attribute foo (leaf-str )]
XXXXXXXXXXXXXXXXXXXXXXXXXXX 
[get-option elpi.loc 
  File "./tests/test_tactic.v", line 289, column 77, characters 6139-6147:, 
 get-option elpi.phase interp, get-option foo tt]
YYYYYYYYYYYYYYYYYYYYYYYYYYYY 
[attribute elpi.loc 
  (leaf-loc
    File "./tests/test_tactic.v", line 289, column 77, characters 6139-6147:), 
 attribute elpi.phase (leaf-str interp), attribute foo (leaf-str )]
XXXXXXXXXXXXXXXXXXXXXXXXXXX 
[get-option elpi.loc 
  File "./tests/test_tactic.v", line 289, column 77, characters 6139-6147:, 
 get-option elpi.phase interp, get-option foo tt]
YYYYYYYYYYYYYYYYYYYYYYYYYYYY 
[attribute elpi.loc 
  (leaf-loc
    File "./tests/test_tactic.v", line 289, column 77, characters 6139-6147:), 
 attribute elpi.phase (leaf-str interp), attribute bar (leaf-str )]
XXXXXXXXXXXXXXXXXXXXXXXXXXX 
[get-option elpi.loc 
  File "./tests/test_tactic.v", line 289, column 77, characters 6139-6147:, 
 get-option elpi.phase interp, get-option bar tt]
YYYYYYYYYYYYYYYYYYYYYYYYYYYY 
[attribute elpi.loc 
  (leaf-loc
    File "./tests/test_tactic.v", line 289, column 77, characters 6139-6147:), 
 attribute elpi.phase (leaf-str interp), attribute foo2 (leaf-str )]
YYYYYYYYYYYYYYYYYYYYYYYYYYYY 
[attribute elpi.loc 
  (leaf-loc
    File "./tests/test_tactic.v", line 290, column 77, characters 6226-6234:), 
 attribute elpi.phase (leaf-str interp), attribute foo (leaf-str )]
XXXXXXXXXXXXXXXXXXXXXXXXXXX 
[get-option elpi.loc 
  File "./tests/test_tactic.v", line 290, column 77, characters 6226-6234:, 
 get-option elpi.phase interp, get-option foo tt]
[attribute elpi.loc 
  (leaf-loc
    File "./tests/test_tactic.v", line 318, column 10, characters 6808-6814:), 
 attribute elpi.phase (leaf-str interp)]
Entry binder_constr is
[ LEFTA
  [ "exists2"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; ","; term LEVEL
    "200"; "&"; term LEVEL "200"
  | "exists2"; "'"; pattern LEVEL "0"; ","; term LEVEL "200"; "&"; term LEVEL
    "200"
  | "exists2"; name; ":"; term LEVEL "200"; ","; term LEVEL "200"; "&"; term
    LEVEL "200"
  | "exists2"; name; ","; term LEVEL "200"; "&"; term LEVEL "200"
  | "exists"; "!"; open_binders; ","; term LEVEL "200"
  | "exists"; open_binders; ","; term LEVEL "200"
  | "forall"; open_binders; ","; term LEVEL "200"
  | "fun"; open_binders; "=>"; term LEVEL "200"
  | "let"; "fix"; fix_decl; "in"; term LEVEL "200"
  | "let"; "cofix"; cofix_body; "in"; term LEVEL "200"
  | "let"; "'"; pattern LEVEL "200"; ":="; term LEVEL "200"; "in"; term LEVEL
    "200"
  | "let"; "'"; pattern LEVEL "200"; ":="; term LEVEL "200"; case_type; "in";
    term LEVEL "200"
  | "let"; "'"; pattern LEVEL "200"; "in"; pattern LEVEL "200"; ":="; term
    LEVEL "200"; case_type; "in"; term LEVEL "200"
  | "let"; name; binders; let_type_cstr; ":="; term LEVEL "200"; "in"; term
    LEVEL "200"
  | "let"; [ "("; LIST0 name SEP ","; ")" | "()" ]; as_return_type; ":=";
    term LEVEL "200"; "in"; term LEVEL "200"
  | "if"; term LEVEL "200"; as_return_type; "then"; term LEVEL "200"; "else";
    term LEVEL "200"
  | "fix"; fix_decls
  | "cofix"; cofix_decls ] ]

Entry constr is
[ LEFTA
  [ "@"; global; univ_annot
  | term LEVEL "8" ] ]

Entry lconstr is
[ LEFTA
  [ term LEVEL "200" ] ]

Entry term is
[ "200" RIGHTA
  [  ]
| "100" RIGHTA
  [ SELF; "<:"; term LEVEL "200"
  | SELF; "<<:"; term LEVEL "200"
  | SELF; ":>"; term LEVEL "200"
  | SELF; ":"; term LEVEL "200" ]
| "99" RIGHTA
  [ SELF; "->"; term LEVEL "200" ]
| "95" RIGHTA
  [ SELF; "<->"; NEXT ]
| "90" RIGHTA
  [  ]
| "85" RIGHTA
  [ SELF; "\\/"; term LEVEL "85" ]
| "80" RIGHTA
  [ SELF; "/\\"; term LEVEL "80" ]
| "75" RIGHTA
  [ "~"; term LEVEL "75" ]
| "70" RIGHTA
  [ SELF; ">"; NEXT
  | SELF; ">="; NEXT
  | SELF; "<"; NEXT; "<="; NEXT
  | SELF; "<"; NEXT; "<"; NEXT
  | SELF; "<"; NEXT
  | SELF; "<="; NEXT; "<"; NEXT
  | SELF; "<="; NEXT; "<="; NEXT
  | SELF; "<="; NEXT
  | SELF; "<>"; NEXT; ":>"; NEXT
  | SELF; "<>"; NEXT
  | SELF; "="; NEXT; "="; NEXT
  | SELF; "="; NEXT; ":>"; NEXT
  | SELF; "="; NEXT ]
| "60" RIGHTA
  [ SELF; "++"; term LEVEL "60"
  | SELF; "::"; term LEVEL "60" ]
| "50" LEFTA
  [ SELF; "||"; NEXT
  | SELF; "-"; NEXT
  | SELF; "+"; NEXT ]
| "40" LEFTA
  [ SELF; "&&"; NEXT
  | SELF; "/"; NEXT
  | SELF; "*"; NEXT ]
| "35" RIGHTA
  [ "/"; term LEVEL "35"
  | "-"; term LEVEL "35" ]
| "30" RIGHTA
  [ SELF; "^"; term LEVEL "30" ]
| LEFTA
  [ IDENT "XX"; FIELD "xxx"; LIST0 arg ]
| "10" LEFTA
  [ SELF; LIST1 arg
  | "@"; global; univ_annot; LIST0 NEXT
  | "@"; pattern_ident; LIST1 identref
  | binder_constr ]
| "9" LEFTA
  [ ".."; term LEVEL "0"; ".." ]
| "8" LEFTA
  [  ]
| "1" LEFTA
  [ SELF; ".2"
  | SELF; ".1"
  | SELF; ".("; "@"; global; univ_annot; LIST0 (term LEVEL "9"); ")"
  | SELF; ".("; global; univ_annot; LIST0 arg; ")"
  | SELF; "%"; IDENT
  | SELF; "%_"; IDENT ]
| "0" LEFTA
  [ "lib"; ":"; "@"; qualified_name
  | "lib"; ":"; qualified_name
  | QUOTATION "lp:"
  | "{"; "'"; pattern LEVEL "0"; "&"; term LEVEL "200"; "&"; term LEVEL
    "200"; "}"
  | "{"; "'"; pattern LEVEL "0"; "&"; term LEVEL "200"; "}"
  | "{"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; "&"; term LEVEL
    "200"; "&"; term LEVEL "200"; "}"
  | "{"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; "&"; term LEVEL
    "200"; "}"
  | "{"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; "|"; term LEVEL
    "200"; "&"; term LEVEL "200"; "}"
  | "{"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; "|"; term LEVEL
    "200"; "}"
  | "{"; "'"; pattern LEVEL "0"; "|"; term LEVEL "200"; "&"; term LEVEL
    "200"; "}"
  | "{"; "'"; pattern LEVEL "0"; "|"; term LEVEL "200"; "}"
  | "{"; term LEVEL "99"; "&"; term LEVEL "200"; "&"; term LEVEL "200"; "}"
  | "{"; term LEVEL "99"; "&"; term LEVEL "200"; "}"
  | "{"; term LEVEL "99"; ":"; term LEVEL "200"; "&"; term LEVEL "200"; "&";
    term LEVEL "200"; "}"
  | "{"; term LEVEL "99"; ":"; term LEVEL "200"; "&"; term LEVEL "200"; "}"
  | "{"; term LEVEL "99"; ":"; term LEVEL "200"; "|"; term LEVEL "200"; "&";
    term LEVEL "200"; "}"
  | "{"; term LEVEL "99"; ":"; term LEVEL "200"; "|"; term LEVEL "200"; "}"
  | "{"; term LEVEL "99"; "|"; term LEVEL "200"; "&"; term LEVEL "200"; "}"
  | "{"; term LEVEL "99"; "|"; term LEVEL "200"; "}"
  | "{"; term LEVEL "99"; "}"
  | IDENT "ltac"; ":"; "("; ltac_expr; ")"
  | "("; term LEVEL "200"; ","; term LEVEL "200"; ","; LIST1 (term LEVEL
    "200") SEP ","; ")"
  | "("; term LEVEL "200"; ","; term LEVEL "200"; ")"
  | "("; term LEVEL "200"; ")"
  | "{|"; record_declaration; '|}'
  | "`{"; term LEVEL "200"; "}"
  | "`("; term LEVEL "200"; ")"
  | NUMBER
  | atomic_constr
  | term_match
  | ident; fields; univ_annot
  | ident; univ_annot
  | string
  | test_array_opening; "["; "|"; array_elems; "|"; lconstr; type_cstr;
    test_array_closing; "|"; "]"; univ_annot ] ]

[attribute elpi.loc 
  (leaf-loc
    File "./tests/test_tactic.v", line 329, column 12, characters 7061-7082:), 
 attribute elpi.phase (leaf-str interp)]
skip int 1
skip str 33
skip trm (global (indt «bool»))
[attribute elpi.loc 
  (leaf-loc
    File "./tests/test_tactic.v", line 329, column 12, characters 7061-7082:), 
 attribute elpi.phase (leaf-str interp)]
skip int 1
skip str 33
skip trm (global (indt «bool»))
nat -> bool -> True
     : Prop
[attribute elpi.loc 
  (leaf-loc
    File "./tests/test_tactic.v", line 338, column 12, characters 7247-7268:), 
 attribute elpi.phase (leaf-str interp)]
[attribute elpi.loc 
  (leaf-loc
    File "./tests/test_tactic.v", line 338, column 12, characters 7247-7268:), 
 attribute elpi.phase (leaf-str interp)]
[attribute elpi.loc 
  (leaf-loc
    File "./tests/test_tactic.v", line 342, column 30, characters 7348-7354:), 
 attribute elpi.phase (leaf-str interp)]
[attribute elpi.loc 
  (leaf-loc
    File "./tests/test_tactic.v", line 342, column 30, characters 7348-7354:), 
 attribute elpi.phase (leaf-str interp)]
[attribute elpi.loc 
  (leaf-loc
    File "./tests/test_tactic.v", line 350, column 7, characters 7524-7530:), 
 attribute elpi.phase (leaf-str interp)]
[attribute elpi.loc 
  (leaf-loc
    File "./tests/test_tactic.v", line 350, column 7, characters 7524-7530:), 
 attribute elpi.phase (leaf-str interp)]
H
goal [] (X0) (global (indt «True»)) (X1) [trm (global (const «H»))]
goal [] (X0) (global (indt «True»)) (X1) 
 [trm
   (app
     [global (indt «eq»), global (indt «True»), global (const «H»), 
      global (const «H»)])]
goal [] (X0) (global (indt «True»)) (X1) [trm (global (const «H»))]
Debug: run 1 {{{  
          
Debug:
  rid:0 step:1 gid:4 user:curgoal = , 
                                    pi c0 \
                                     pi c1 \
                                      declare-evar
                                       [decl c1 `x0` (global (indt «nat»)), 
                                        decl c0 `x` (global (indt «nat»))] 
                                       (X0 c0 c1) 
                                       (prod `y` (global (indt «nat»)) c2 \
                                         app
                                          [global (indt «eq»), 
                                           global (indt «nat»), c0, 
                                           app
                                            [global (const «Nat.add»), 
                                             app
                                              [global (const «Nat.add»), 
                                               app
                                                [global (indc «S»), 
                                                 global (indc «O»)], c2], c1]]) 
                                       (X1 c0 c1) ,
                                     attributes
                                      [attribute elpi.loc 
                                        (leaf-loc
                                          File "./tests/test_tactic.v", line 408, column 5, characters 8815-8821:), 
                                       attribute elpi.phase (leaf-str interp)]
                                      =>
                                      (msolve
                                        [nabla c0 \
                                          nabla c1 \
                                           seal
                                            (goal
                                              [decl c1 `x0` 
                                                (global (indt «nat»)), 
                                               decl c0 `x` 
                                                (global (indt «nat»))] 
                                              (X0 c0 c1) 
                                              (prod `y` 
                                                (global (indt «nat»)) c2 \
                                                app
                                                 [global (indt «eq»), 
                                                  global (indt «nat»), c0, 
                                                  app
                                                   [global (const «Nat.add»), 
                                                    app
                                                     [global
                                                       (const «Nat.add»), 
                                                      app
                                                       [global (indc «S»), 
                                                        global (indc «O»)], 
                                                      c2], c1]]) (X1 c0 c1) [])] 
                                        (X2) ;
                                        coq.ltac.all (coq.ltac.open solve) 
                                         [nabla c0 \
                                           nabla c1 \
                                            seal
                                             (goal
                                               [decl c1 `x0` 
                                                 (global (indt «nat»)), 
                                                decl c0 `x` 
                                                 (global (indt «nat»))] 
                                               (X0 c0 c1) 
                                               (prod `y` 
                                                 (global (indt «nat»)) c2 \
                                                 app
                                                  [global (indt «eq»), 
                                                   global (indt «nat»), c0, 
                                                   app
                                                    [global (const «Nat.add»), 
                                                     app
                                                      [global
                                                        (const «Nat.add»), 
                                                       app
                                                        [global (indc «S»), 
                                                         global (indc «O»)], 
                                                       c2], c1]]) (X1 c0 c1) [])] 
                                         (X2)) 
                                    
Debug:
  rid:0 step:1 gid:4 user:rule = and 
                                 
Debug:
  rid:0 step:1 gid:4 user:subgoal = 5 
                                    
Debug:
  rid:0 step:1 gid:5 user:newgoal = pi c0 \
                                     pi c1 \
                                      declare-evar
                                       [decl c1 `x0` (global (indt «nat»)), 
                                        decl c0 `x` (global (indt «nat»))] 
                                       (X0 c0 c1) 
                                       (prod `y` (global (indt «nat»)) c2 \
                                         app
                                          [global (indt «eq»), 
                                           global (indt «nat»), c0, 
                                           app
                                            [global (const «Nat.add»), 
                                             app
                                              [global (const «Nat.add»), 
                                               app
                                                [global (indc «S»), 
                                                 global (indc «O»)], c2], c1]]) 
                                       (X1 c0 c1) 
                                    
Debug:
  rid:0 step:1 gid:4 user:subgoal = 6 
                                    
Debug:
  rid:0 step:1 gid:6 user:newgoal = attributes
                                     [attribute elpi.loc 
                                       (leaf-loc
                                         File "./tests/test_tactic.v", line 408, column 5, characters 8815-8821:), 
                                      attribute elpi.phase (leaf-str interp)]
                                     =>
                                     (msolve
                                       [nabla c0 \
                                         nabla c1 \
                                          seal
                                           (goal
                                             [decl c1 `x0` 
                                               (global (indt «nat»)), 
                                              decl c0 `x` 
                                               (global (indt «nat»))] 
                                             (X0 c0 c1) 
                                             (prod `y` (global (indt «nat»)) 
                                               c2 \
                                               app
                                                [global (indt «eq»), 
                                                 global (indt «nat»), c0, 
                                                 app
                                                  [global (const «Nat.add»), 
                                                   app
                                                    [global (const «Nat.add»), 
                                                     app
                                                      [global (indc «S»), 
                                                       global (indc «O»)], c2], 
                                                   c1]]) (X1 c0 c1) [])] (X2) ;
                                       coq.ltac.all (coq.ltac.open solve) 
                                        [nabla c0 \
                                          nabla c1 \
                                           seal
                                            (goal
                                              [decl c1 `x0` 
                                                (global (indt «nat»)), 
                                               decl c0 `x` 
                                                (global (indt «nat»))] 
                                              (X0 c0 c1) 
                                              (prod `y` 
                                                (global (indt «nat»)) c2 \
                                                app
                                                 [global (indt «eq»), 
                                                  global (indt «nat»), c0, 
                                                  app
                                                   [global (const «Nat.add»), 
                                                    app
                                                     [global
                                                       (const «Nat.add»), 
                                                      app
                                                       [global (indc «S»), 
                                                        global (indc «O»)], 
                                                      c2], c1]]) (X1 c0 c1) [])] 
                                        (X2)) 
                                    
Debug:
  rid:0 step:1 gid:4 user:rule:and = success 
                                     
Debug: }}} ->  (0.001s)
Debug: run 2 {{{  
          
Debug:
  rid:0 step:2 gid:5 user:curgoal = pi 
                                    pi c0 \
                                     pi c1 \
                                      declare-evar
                                       [decl c1 `x0` (global (indt «nat»)), 
                                        decl c0 `x` (global (indt «nat»))] 
                                       (X0 c0 c1) 
                                       (prod `y` (global (indt «nat»)) c2 \
                                         app
                                          [global (indt «eq»), 
                                           global (indt «nat»), c0, 
                                           app
                                            [global (const «Nat.add»), 
                                             app
                                              [global (const «Nat.add»), 
                                               app
                                                [global (indc «S»), 
                                                 global (indc «O»)], c2], c1]]) 
                                       (X1 c0 c1) 
                                    
Debug:   rid:0 step:2 gid:5 user:rule = pi 
                                 
Debug:
  rid:0 step:2 gid:5 user:subgoal = 7 
                                    
Debug:
  rid:0 step:2 gid:7 user:newgoal = pi c1 \
                                     declare-evar
                                      [decl c1 `x0` (global (indt «nat»)), 
                                       decl c0 `x` (global (indt «nat»))] 
                                      (X0 c0 c1) 
                                      (prod `y` (global (indt «nat»)) c2 \
                                        app
                                         [global (indt «eq»), 
                                          global (indt «nat»), c0, 
                                          app
                                           [global (const «Nat.add»), 
                                            app
                                             [global (const «Nat.add»), 
                                              app
                                               [global (indc «S»), 
                                                global (indc «O»)], c2], c1]]) 
                                      (X1 c0 c1) 
                                    
Debug:
  rid:0 step:2 gid:7 user:rule:pi = success 
                                    
Debug: }}} ->  (0.000s)
Debug: run 3 {{{  
          
Debug:
  rid:0 step:3 gid:7 user:curgoal = pi 
                                    pi c1 \
                                     declare-evar
                                      [decl c1 `x0` (global (indt «nat»)), 
                                       decl c0 `x` (global (indt «nat»))] 
                                      (X0 c0 c1) 
                                      (prod `y` (global (indt «nat»)) c2 \
                                        app
                                         [global (indt «eq»), 
                                          global (indt «nat»), c0, 
                                          app
                                           [global (const «Nat.add»), 
                                            app
                                             [global (const «Nat.add»), 
                                              app
                                               [global (indc «S»), 
                                                global (indc «O»)], c2], c1]]) 
                                      (X1 c0 c1) 
                                    
Debug:   rid:0 step:3 gid:7 user:rule = pi 
                                 
Debug:
  rid:0 step:3 gid:7 user:subgoal = 8 
                                    
Debug:
  rid:0 step:3 gid:8 user:newgoal = declare-evar
                                     [decl c1 `x0` (global (indt «nat»)), 
                                      decl c0 `x` (global (indt «nat»))] 
                                     (X0 c0 c1) 
                                     (prod `y` (global (indt «nat»)) c2 \
                                       app
                                        [global (indt «eq»), 
                                         global (indt «nat»), c0, 
                                         app
                                          [global (const «Nat.add»), 
                                           app
                                            [global (const «Nat.add»), 
                                             app
                                              [global (indc «S»), 
                                               global (indc «O»)], c2], c1]]) 
                                     (X1 c0 c1) 
                                    
Debug:
  rid:0 step:3 gid:8 user:rule:pi = success 
                                    
Debug: }}} ->  (0.000s)
Debug: run 4 {{{  
          
Debug:
  rid:0 step:4 gid:8 user:curgoal = declare-evar 
                                    declare-evar
                                     [decl c1 `x0` (global (indt «nat»)), 
                                      decl c0 `x` (global (indt «nat»))] 
                                     (X0 c0 c1) 
                                     (prod `y` (global (indt «nat»)) c2 \
                                       app
                                        [global (indt «eq»), 
                                         global (indt «nat»), c0, 
                                         app
                                          [global (const «Nat.add»), 
                                           app
                                            [global (const «Nat.add»), 
                                             app
                                              [global (indc «S»), 
                                               global (indc «O»)], c2], c1]]) 
                                     (X1 c0 c1) 
                                    
Debug:
  rid:0 step:4 gid:8 user:rule = backchain 
                                 
Debug:
  rid:0 step:4 gid:8 user:rule:backchain:candidates = File "coq-builtin.elpi", line 270, column 0, characters 10866-10986: 
                                                      
Debug: }}} ->  (0.000s)
Debug: select 5 {{{  
             
Debug:
  rid:0 step:4 gid:8 user:rule:backchain:try = File "coq-builtin.elpi", line 270, column 0, characters 10866-10986: 
                                               (declare-evar A0 A1 A2 A3) :- (
                                                declare_constraint
                                                 (declare-evar A0 A1 A2 A3) 
                                                 [A1]). 
                                               
Debug:
  rid:0 step:4 gid:0 user:assign = A0 := [decl c1 `x0` (global (indt «nat»)), 
                                          decl c0 `x` (global (indt «nat»))] 
                                   
Debug:
  rid:0 step:4 gid:0 user:assign = A1 := X0 c0 c1 
                                   
Debug:
  rid:0 step:4 gid:0 user:assign = A2 := prod `y` (global (indt «nat»)) c2 \
                                          app
                                           [global (indt «eq»), 
                                            global (indt «nat»), c0, 
                                            app
                                             [global (const «Nat.add»), 
                                              app
                                               [global (const «Nat.add»), 
                                                app
                                                 [global (indc «S»), 
                                                  global (indc «O»)], c2], c1]] 
                                   
Debug:
  rid:0 step:4 gid:0 user:assign = A3 := X1 c0 c1 
                                   
Debug:
  rid:0 step:4 gid:8 user:subgoal = 9 
                                    
Debug:
  rid:0 step:4 gid:9 user:newgoal = declare_constraint
                                     (declare-evar
                                       [decl c1 `x0` (global (indt «nat»)), 
                                        decl c0 `x` (global (indt «nat»))] 
                                       (X0 c0 c1) 
                                       (prod `y` (global (indt «nat»)) c2 \
                                         app
                                          [global (indt «eq»), 
                                           global (indt «nat»), c0, 
                                           app
                                            [global (const «Nat.add»), 
                                             app
                                              [global (const «Nat.add»), 
                                               app
                                                [global (indc «S»), 
                                                 global (indc «O»)], c2], c1]]) 
                                       (X1 c0 c1)) [X0 c0 c1] 
                                    
Debug:
  rid:0 step:4 gid:9 user:rule:backchain = success 
                                           
Debug: }}} ->  (0.000s)
Debug: run 5 {{{  
          
Debug:
  rid:0 step:5 gid:9 user:curgoal = declare_constraint 
                                    declare_constraint
                                     (declare-evar
                                       [decl c1 `x0` (global (indt «nat»)), 
                                        decl c0 `x` (global (indt «nat»))] 
                                       (X0 c0 c1) 
                                       (prod `y` (global (indt «nat»)) c2 \
                                         app
                                          [global (indt «eq»), 
                                           global (indt «nat»), c0, 
                                           app
                                            [global (const «Nat.add»), 
                                             app
                                              [global (const «Nat.add»), 
                                               app
                                                [global (indc «S»), 
                                                 global (indc «O»)], c2], c1]]) 
                                       (X1 c0 c1)) [X0 c0 c1] 
                                    
Debug:
  rid:0 step:5 gid:9 user:rule = builtin 
                                 
Debug:
  rid:0 step:5 gid:9 user:rule:builtin:name = declare_constraint 
                                              
Debug:
  rid:0 step:5 gid:9 user:subgoal = 10 
                                    
Debug:
  rid:0 step:5 gid:10 user:newgoal = declare-evar
                                      [decl c1 `x0` (global (indt «nat»)), 
                                       decl c0 `x` (global (indt «nat»))] 
                                      (X0 c0 c1) 
                                      (prod `y` (global (indt «nat»)) c2 \
                                        app
                                         [global (indt «eq»), 
                                          global (indt «nat»), c0, 
                                          app
                                           [global (const «Nat.add»), 
                                            app
                                             [global (const «Nat.add»), 
                                              app
                                               [global (indc «S»), 
                                                global (indc «O»)], c2], c1]]) 
                                      (X1 c0 c1) 
                                     
Debug:
  rid:0 step:5 gid:9 user:rule:builtin = success 
                                         
Debug: }}} ->  (0.000s)
Debug: run 6 {{{  
          
Debug:
  rid:0 step:6 gid:10 user:CHR:try = File "coq-builtin.elpi", line 282, column 53, characters 11370-11475: 
                                      \ (declare-evar A0 A1 A2 A3) 
                                       <=> (A0 => evar A1 A2 A3) 
                                     
Debug:
  rid:1 step:0 gid:0 user:assign = A0 := [decl c1 `x0` (global (indt «nat»)), 
                                          decl c0 `x` (global (indt «nat»))] 
                                   
Debug:
  rid:1 step:0 gid:0 user:assign = A1 := uvar frozen--888 [c0, c1] 
                                   
Debug:
  rid:1 step:0 gid:0 user:assign = A2 := prod `y` (global (indt «nat»)) c2 \
                                          app
                                           [global (indt «eq»), 
                                            global (indt «nat»), c0, 
                                            app
                                             [global (const «Nat.add»), 
                                              app
                                               [global (const «Nat.add»), 
                                                app
                                                 [global (indc «S»), 
                                                  global (indc «O»)], c2], c1]] 
                                   
Debug:
  rid:1 step:0 gid:0 user:assign = A3 := uvar frozen--889 [c0, c1] 
                                   
Debug:
  rid:1 step:0 gid:11 user:newgoal = true 
                                     
Debug: run 1 {{{  
          
Debug:
  rid:1 step:1 gid:11 user:curgoal = true 
                                     true 
                                     
Debug:
  rid:1 step:1 gid:11 user:rule = backchain 
                                  
Debug:
  rid:1 step:1 gid:11 user:rule:backchain:candidates = File "elpi-builtin.elpi", line 11, column 0, characters 147-151: 
                                                       
Debug: }}} ->  (0.000s)
Debug: select 2 {{{  
             
Debug:
  rid:1 step:1 gid:11 user:rule:backchain:try = File "elpi-builtin.elpi", line 11, column 0, characters 147-151: 
                                                true :- . 
                                                
Debug:
  rid:1 step:1 gid:11 user:rule:backchain = success 
                                            
Debug: }}} ->  (0.000s)
Debug:
  rid:0 step:6 gid:10 user:subgoal = 12 
                                     
Debug:
  rid:0 step:6 gid:12 user:newgoal = _ =>
                                      [decl c1 `x0` (global (indt «nat»)), 
                                       decl c0 `x` (global (indt «nat»))] =>
                                       evar (X0 c0 c1) 
                                        (prod `y` (global (indt «nat»)) c2 \
                                          app
                                           [global (indt «eq»), 
                                            global (indt «nat»), c0, 
                                            app
                                             [global (const «Nat.add»), 
                                              app
                                               [global (const «Nat.add»), 
                                                app
                                                 [global (indc «S»), 
                                                  global (indc «O»)], c2], c1]]) 
                                        (X1 c0 c1) 
                                     
Debug:
  rid:0 step:6 gid:10 user:CHR:rule-fired = File "coq-builtin.elpi", line 282, column 53, characters 11370-11475: 
                                            
Debug:
  rid:0 step:6 gid:10 user:CHR:rule-remove-constraints = 10 
                                                         
Debug:
  rid:0 step:6 gid:0 user:CHR:store:before = 10 
                                              {c0 c1} :
                                                declare-evar
                                                 [decl c1 `x0` 
                                                   (global (indt «nat»)), 
                                                  decl c0 `x` 
                                                   (global (indt «nat»))] 
                                                 (X0 c0 c1) 
                                                 (prod `y` 
                                                   (global (indt «nat»)) c2 \
                                                   app
                                                    [global (indt «eq»), 
                                                     global (indt «nat»), 
                                                     c0, 
                                                     app
                                                      [global
                                                        (const «Nat.add»), 
                                                       app
                                                        [global
                                                          (const «Nat.add»), 
                                                         app
                                                          [global (indc «S»), 
                                                           global (indc «O»)], 
                                                         c2], c1]]) (
                                                 X1 c0 c1)  /* suspended on X0 */ 
                                             
Debug:
  rid:0 step:6 gid:12 user:CHR:resumed = _ =>
                                          [decl c1 `x0` (global (indt «nat»)), 
                                           decl c0 `x` (global (indt «nat»))]
                                           =>
                                           evar (X0 c0 c1) 
                                            (prod `y` (global (indt «nat»)) 
                                              c2 \
                                              app
                                               [global (indt «eq»), 
                                                global (indt «nat»), c0, 
                                                app
                                                 [global (const «Nat.add»), 
                                                  app
                                                   [global (const «Nat.add»), 
                                                    app
                                                     [global (indc «S»), 
                                                      global (indc «O»)], c2], 
                                                  c1]]) (X1 c0 c1) 
                                         
Debug: }}} ->  (0.001s)
Debug: run 7 {{{  
          
Debug:
  rid:0 step:7 gid:12 user:curgoal = => 
                                     _ =>
                                      [decl c1 `x0` (global (indt «nat»)), 
                                       decl c0 `x` (global (indt «nat»))] =>
                                       evar (X0 c0 c1) 
                                        (prod `y` (global (indt «nat»)) c2 \
                                          app
                                           [global (indt «eq»), 
                                            global (indt «nat»), c0, 
                                            app
...TRUNCATED BY DUNE...
                                                   
Debug:
  rid:4 step:103 gid:0 user:assign:simplify:stack:arg = A0 := X40 
                                                        
Debug:
  rid:4 step:103 gid:0 user:assign:HO = X40 := c0 \
                                        nabla c1 \
                                         nabla c2 \
                                          nabla c3 \
                                           seal
                                            (goal
                                              [decl c3 `w` 
                                                (global (indt «nat»)), 
                                               decl c2 `z` 
                                                (global (indt «nat»)), 
                                               decl c1 `x` 
                                                (global (indt «nat»))] 
                                              (X26 c1 c2 c3) 
                                              (app
                                                [global (indt «eq»), 
                                                 global (indt «nat»), c1, 
                                                 app
                                                  [global (const «Nat.add»), 
                                                   app
                                                    [global (const «Nat.add»), 
                                                     app
                                                      [global (indc «S»), 
                                                       global (indc «O»)], c3], 
                                                   c2]]) (X22 c1 c2 c3) []) 
                                        
Debug:
  rid:4 step:103 gid:0 user:assign:simplify:stack:arg = A1 := X41 
                                                        
Debug:
  rid:4 step:103 gid:0 user:assign:HO = X41 := c0 \
                                        [] 
                                        
Debug:
  rid:4 step:103 gid:0 user:assign = X7 := [nabla c0 \
                                             nabla c1 \
                                              nabla c2 \
                                               nabla c3 \
                                                seal
                                                 (goal
                                                   [decl c3 `w` 
                                                     (global (indt «nat»)), 
                                                    decl c2 `z` 
                                                     (global (indt «nat»)), 
                                                    decl c1 `x` 
                                                     (global (indt «nat»))] 
                                                   (X26 c1 c2 c3) 
                                                   (app
                                                     [global (indt «eq»), 
                                                      global (indt «nat»), 
                                                      c1, 
                                                      app
                                                       [global
                                                         (const «Nat.add»), 
                                                        app
                                                         [global
                                                           (const «Nat.add»), 
                                                          app
                                                           [global (indc «S»), 
                                                            global (indc «O»)], 
                                                          c3], c2]]) 
                                                   (X22 c1 c2 c3) []) | X42] 
                                     
Debug:
  rid:4 step:103 gid:157 user:subgoal = 241 
                                        
Debug:
  rid:4 step:103 gid:241 user:newgoal = pi c0 \
                                         occurs c0 
                                          (nabla c1 \
                                            nabla c2 \
                                             nabla c3 \
                                              seal
                                               (goal
                                                 [decl c3 `w` 
                                                   (global (indt «nat»)), 
                                                  decl c2 `z` 
                                                   (global (indt «nat»)), 
                                                  decl c1 `x` 
                                                   (global (indt «nat»))] 
                                                 (X26 c1 c2 c3) 
                                                 (app
                                                   [global (indt «eq»), 
                                                    global (indt «nat»), c1, 
                                                    app
                                                     [global
                                                       (const «Nat.add»), 
                                                      app
                                                       [global
                                                         (const «Nat.add»), 
                                                        app
                                                         [global (indc «S»), 
                                                          global (indc «O»)], 
                                                        c3], c2]]) 
                                                 (X22 c1 c2 c3) [])) 
                                        
Debug:
  rid:4 step:103 gid:241 user:subgoal = 242 
                                        
Debug:
  rid:4 step:103 gid:242 user:newgoal = ! 
                                        
Debug:
  rid:4 step:103 gid:241 user:subgoal = 243 
                                        
Debug:
  rid:4 step:103 gid:243 user:newgoal = coq.ltac.private.distribute-nabla (c0 \
                                         []) X42 
                                        
Debug:
  rid:4 step:103 gid:241 user:rule:backchain = success 
                                               
Debug: }}} ->  (0.001s)
Debug: run 104 {{{  
            
Debug:
  rid:4 step:104 gid:241 user:curgoal = pi 
                                        pi c0 \
                                         occurs c0 
                                          (nabla c1 \
                                            nabla c2 \
                                             nabla c3 \
                                              seal
                                               (goal
                                                 [decl c3 `w` 
                                                   (global (indt «nat»)), 
                                                  decl c2 `z` 
                                                   (global (indt «nat»)), 
                                                  decl c1 `x` 
                                                   (global (indt «nat»))] 
                                                 (X26 c1 c2 c3) 
                                                 (app
                                                   [global (indt «eq»), 
                                                    global (indt «nat»), c1, 
                                                    app
                                                     [global
                                                       (const «Nat.add»), 
                                                      app
                                                       [global
                                                         (const «Nat.add»), 
                                                        app
                                                         [global (indc «S»), 
                                                          global (indc «O»)], 
                                                        c3], c2]]) 
                                                 (X22 c1 c2 c3) [])) 
                                        
Debug:
  rid:4 step:104 gid:241 user:rule = pi 
                                     
Debug:
  rid:4 step:104 gid:241 user:subgoal = 244 
                                        
Debug:
  rid:4 step:104 gid:244 user:newgoal = occurs c0 
                                         (nabla c1 \
                                           nabla c2 \
                                            nabla c3 \
                                             seal
                                              (goal
                                                [decl c3 `w` 
                                                  (global (indt «nat»)), 
                                                 decl c2 `z` 
                                                  (global (indt «nat»)), 
                                                 decl c1 `x` 
                                                  (global (indt «nat»))] 
                                                (X26 c1 c2 c3) 
                                                (app
                                                  [global (indt «eq»), 
                                                   global (indt «nat»), c1, 
                                                   app
                                                    [global (const «Nat.add»), 
                                                     app
                                                      [global
                                                        (const «Nat.add»), 
                                                       app
                                                        [global (indc «S»), 
                                                         global (indc «O»)], 
                                                       c3], c2]]) 
                                                (X22 c1 c2 c3) [])) 
                                        
Debug:
  rid:4 step:104 gid:244 user:rule:pi = success 
                                        
Debug: }}} ->  (0.023s)
Debug: run 105 {{{  
            
Debug:
  rid:4 step:105 gid:244 user:curgoal = occurs 
                                        occurs c0 
                                         (nabla c1 \
                                           nabla c2 \
                                            nabla c3 \
                                             seal
                                              (goal
                                                [decl c3 `w` 
                                                  (global (indt «nat»)), 
                                                 decl c2 `z` 
                                                  (global (indt «nat»)), 
                                                 decl c1 `x` 
                                                  (global (indt «nat»))] 
                                                (X26 c1 c2 c3) 
                                                (app
                                                  [global (indt «eq»), 
                                                   global (indt «nat»), c1, 
                                                   app
                                                    [global (const «Nat.add»), 
                                                     app
                                                      [global
                                                        (const «Nat.add»), 
                                                       app
                                                        [global (indc «S»), 
                                                         global (indc «O»)], 
                                                       c3], c2]]) 
                                                (X22 c1 c2 c3) [])) 
                                        
Debug:
  rid:4 step:105 gid:244 user:rule = builtin 
                                     
Debug:
  rid:4 step:105 gid:244 user:rule:builtin:name = occurs 
                                                  
Debug:
  rid:4 step:105 gid:244 user:rule:builtin = fail 
                                             
Debug: }}} ->  (0.000s)
Debug: run 106 {{{  
            
Debug:
  rid:4 step:106 gid:157 user:curgoal = coq.ltac.private.distribute-nabla 
                                        coq.ltac.private.distribute-nabla (c0 \
                                         [nabla c1 \
                                           nabla c2 \
                                            nabla c3 \
                                             seal
                                              (goal
                                                [decl c3 `w` 
                                                  (global (indt «nat»)), 
                                                 decl c2 `z` 
                                                  (global (indt «nat»)), 
                                                 decl c1 `x` 
                                                  (global (indt «nat»))] 
                                                (X26 c1 c2 c3) 
                                                (app
                                                  [global (indt «eq»), 
                                                   global (indt «nat»), c1, 
                                                   app
                                                    [global (const «Nat.add»), 
                                                     app
                                                      [global
                                                        (const «Nat.add»), 
                                                       app
                                                        [global (indc «S»), 
                                                         global (indc «O»)], 
                                                       c3], c2]]) 
                                                (X22 c1 c2 c3) [])]) X7 
                                        
Debug:
  rid:4 step:106 gid:157 user:rule = backchain 
                                     
Debug:
  rid:4 step:106 gid:157 user:rule:backchain:candidates = File "/build/reproducible-path/coq-elpi-2.5.0/elpi/elpi-ltac.elpi", line 119, column 0, characters 4642-4704: 
                                                          
Debug: }}} ->  (0.000s)
Debug: select 52 {{{  
              
Debug:
  rid:4 step:106 gid:157 user:rule:backchain:try = File "/build/reproducible-path/coq-elpi-2.5.0/elpi/elpi-ltac.elpi", line 119, column 0, characters 4642-4704: 
                                                   (coq.ltac.private.distribute-nabla
                                                     (c0 \ [A2 | (A0 c0)]) 
                                                     [A2 | A1]) :- (coq.ltac.private.distribute-nabla
                                                                    A0 A1). 
                                                   
Debug:
  rid:4 step:106 gid:0 user:assign = A2 := nabla c0 \
                                            nabla c1 \
                                             nabla c2 \
                                              seal
                                               (goal
                                                 [decl c2 `w` 
                                                   (global (indt «nat»)), 
                                                  decl c1 `z` 
                                                   (global (indt «nat»)), 
                                                  decl c0 `x` 
                                                   (global (indt «nat»))] 
                                                 (X26 c0 c1 c2) 
                                                 (app
                                                   [global (indt «eq»), 
                                                    global (indt «nat»), c0, 
                                                    app
                                                     [global
                                                       (const «Nat.add»), 
                                                      app
                                                       [global
                                                         (const «Nat.add»), 
                                                        app
                                                         [global (indc «S»), 
                                                          global (indc «O»)], 
                                                        c2], c1]]) 
                                                 (X22 c0 c1 c2) []) 
                                     
Debug:
  rid:4 step:106 gid:0 user:assign:simplify:stack:arg = A0 := X43 
                                                        
Debug:
  rid:4 step:106 gid:0 user:assign:HO = X43 := c0 \
                                        [] 
                                        
Debug:
  rid:4 step:106 gid:0 user:assign = X7 := [nabla c0 \
                                             nabla c1 \
                                              nabla c2 \
                                               seal
                                                (goal
                                                  [decl c2 `w` 
                                                    (global (indt «nat»)), 
                                                   decl c1 `z` 
                                                    (global (indt «nat»)), 
                                                   decl c0 `x` 
                                                    (global (indt «nat»))] 
                                                  (X26 c0 c1 c2) 
                                                  (app
                                                    [global (indt «eq»), 
                                                     global (indt «nat»), 
                                                     c0, 
                                                     app
                                                      [global
                                                        (const «Nat.add»), 
                                                       app
                                                        [global
                                                          (const «Nat.add»), 
                                                         app
                                                          [global (indc «S»), 
                                                           global (indc «O»)], 
                                                         c2], c1]]) 
                                                  (X22 c0 c1 c2) []) | X44] 
                                     
Debug:
  rid:4 step:106 gid:157 user:subgoal = 245 
                                        
Debug:
  rid:4 step:106 gid:245 user:newgoal = coq.ltac.private.distribute-nabla (c0 \
                                         []) X44 
                                        
Debug:
  rid:4 step:106 gid:245 user:rule:backchain = success 
                                               
Debug: }}} ->  (0.001s)
Debug: run 107 {{{  
            
Debug:
  rid:4 step:107 gid:245 user:curgoal = coq.ltac.private.distribute-nabla 
                                        coq.ltac.private.distribute-nabla (c0 \
                                         []) X44 
                                        
Debug:
  rid:4 step:107 gid:245 user:rule = backchain 
                                     
Debug:
  rid:4 step:107 gid:245 user:rule:backchain:candidates = File "/build/reproducible-path/coq-elpi-2.5.0/elpi/elpi-ltac.elpi", line 116, column 0, characters 4512-4539: 
                                                          File "/build/reproducible-path/coq-elpi-2.5.0/elpi/elpi-ltac.elpi", line 117, column 0, characters 4541-4640: 
                                                          File "/build/reproducible-path/coq-elpi-2.5.0/elpi/elpi-ltac.elpi", line 119, column 0, characters 4642-4704: 
                                                          
Debug: }}} ->  (0.000s)
Debug: select 53 {{{  
              
Debug:
  rid:4 step:107 gid:245 user:rule:backchain:try = File "/build/reproducible-path/coq-elpi-2.5.0/elpi/elpi-ltac.elpi", line 116, column 0, characters 4512-4539: 
                                                   (coq.ltac.private.distribute-nabla
                                                     (c0 \ []) []) :- . 
                                                   
Debug:
  rid:4 step:107 gid:0 user:assign = X44 := [] 
                                     
Debug:
  rid:4 step:107 gid:245 user:rule:backchain = success 
                                               
Debug: }}} ->  (0.000s)
Debug: run 108 {{{  
            
Debug:
  rid:4 step:108 gid:154 user:curgoal = coq.ltac.all 
                                        coq.ltac.all (coq.ltac.open solve) [] 
                                         X8 
                                        
Debug:
  rid:4 step:108 gid:154 user:rule = backchain 
                                     
Debug:
  rid:4 step:108 gid:154 user:rule:backchain:candidates = File "/build/reproducible-path/coq-elpi-2.5.0/elpi/elpi-ltac.elpi", line 62, column 0, characters 2339-2350: 
                                                          
Debug: }}} ->  (0.000s)
Debug: select 54 {{{  
              
Debug:
  rid:4 step:108 gid:154 user:rule:backchain:try = File "/build/reproducible-path/coq-elpi-2.5.0/elpi/elpi-ltac.elpi", line 62, column 0, characters 2339-2350: 
                                                   (coq.ltac.all _ [] []) :- . 
                                                   
Debug:
  rid:4 step:108 gid:0 user:assign = X8 := [] 
                                     
Debug:
  rid:4 step:108 gid:154 user:rule:backchain = success 
                                               
Debug: }}} ->  (0.000s)
Debug: run 109 {{{  
            
Debug:
  rid:4 step:109 gid:155 user:curgoal = std.append 
                                        std.append
                                         [nabla c0 \
                                           nabla c1 \
                                            nabla c2 \
                                             seal
                                              (goal
                                                [decl c2 `w` 
                                                  (global (indt «nat»)), 
                                                 decl c1 `z` 
                                                  (global (indt «nat»)), 
                                                 decl c0 `x` 
                                                  (global (indt «nat»))] 
                                                (X26 c0 c1 c2) 
                                                (app
                                                  [global (indt «eq»), 
                                                   global (indt «nat»), c0, 
                                                   app
                                                    [global (const «Nat.add»), 
                                                     app
                                                      [global
                                                        (const «Nat.add»), 
                                                       app
                                                        [global (indc «S»), 
                                                         global (indc «O»)], 
                                                       c2], c1]]) 
                                                (X22 c0 c1 c2) [])] [] (X2) 
                                        
Debug:
  rid:4 step:109 gid:155 user:rule = backchain 
                                     
Debug:
  rid:4 step:109 gid:155 user:rule:backchain:candidates = File "builtin_stdlib.elpi", line 86, column 0, characters 2798-2838: 
                                                          
Debug: }}} ->  (0.000s)
Debug: select 55 {{{  
              
Debug:
  rid:4 step:109 gid:155 user:rule:backchain:try = File "builtin_stdlib.elpi", line 86, column 0, characters 2798-2838: 
                                                   (std.append [A3 | A0] A1 
                                                     [A3 | A2]) :- (std.append
                                                                    A0 A1 A2). 
                                                   
Debug:
  rid:4 step:109 gid:0 user:assign = A3 := nabla c0 \
                                            nabla c1 \
                                             nabla c2 \
                                              seal
                                               (goal
                                                 [decl c2 `w` 
                                                   (global (indt «nat»)), 
                                                  decl c1 `z` 
                                                   (global (indt «nat»)), 
                                                  decl c0 `x` 
                                                   (global (indt «nat»))] 
                                                 (X26 c0 c1 c2) 
                                                 (app
                                                   [global (indt «eq»), 
                                                    global (indt «nat»), c0, 
                                                    app
                                                     [global
                                                       (const «Nat.add»), 
                                                      app
                                                       [global
                                                         (const «Nat.add»), 
                                                        app
                                                         [global (indc «S»), 
                                                          global (indc «O»)], 
                                                        c2], c1]]) 
                                                 (X22 c0 c1 c2) []) 
                                     
Debug:
  rid:4 step:109 gid:0 user:assign = A0 := [] 
                                     
Debug:
  rid:4 step:109 gid:0 user:assign = A1 := [] 
                                     
Debug:
  rid:4 step:109 gid:0 user:assign:resume = 230 
                                            
Debug:
  rid:4 step:109 gid:0 user:assign:resume = 230 
                                            
Debug:
  rid:4 step:109 gid:0 user:assign:HO = X2 := [nabla c0 \
                                                nabla c1 \
                                                 nabla c2 \
                                                  seal
                                                   (goal
                                                     [decl c2 `w` 
                                                       (global (indt «nat»)), 
                                                      decl c1 `z` 
                                                       (global (indt «nat»)), 
                                                      decl c0 `x` 
                                                       (global (indt «nat»))] 
                                                     (X45 c0 c1 c2) 
                                                     (app
                                                       [global (indt «eq»), 
                                                        global (indt «nat»), 
                                                        c0, 
                                                        app
                                                         [global
                                                           (const «Nat.add»), 
                                                          app
                                                           [global
                                                             (const «Nat.add»), 
                                                            app
                                                             [global
                                                               (indc «S»), 
                                                              global
                                                               (indc «O»)], 
                                                            c2], c1]]) 
                                                     (X46 c0 c1 c2) []) | X47] 
                                        
Debug:
  rid:4 step:109 gid:155 user:subgoal = 246 
                                        
Debug:
  rid:4 step:109 gid:246 user:newgoal = std.append [] [] X47 
                                        
Debug:
  rid:4 step:109 gid:246 user:rule:backchain = success 
                                               
Debug: }}} ->  (0.000s)
Debug: run 110 {{{  
            
Debug:
  rid:4 step:110 gid:0 user:rule = resume 
                                   
Debug:
  rid:4 step:110 gid:230 user:rule:resume:resumed = evar (X45 c2 c3 c4) 
                                                     (app
                                                       [global (indt «eq»), 
                                                        global (indt «nat»), 
                                                        c2, 
                                                        app
                                                         [global
                                                           (const «Nat.add»), 
                                                          app
                                                           [global
                                                             (const «Nat.add»), 
                                                            app
                                                             [global
                                                               (indc «S»), 
                                                              global
                                                               (indc «O»)], 
                                                            c4], c3]]) 
                                                     (X46 c2 c3 c4) 
                                                    
Debug:
  rid:4 step:110 gid:0 user:rule:resume = success 
                                          
Debug: }}} ->  (0.000s)
Debug: run 111 {{{  
            
Debug:
  rid:4 step:111 gid:230 user:curgoal = evar 
                                        evar (X45 c2 c3 c4) 
                                         (app
                                           [global (indt «eq»), 
                                            global (indt «nat»), c2, 
                                            app
                                             [global (const «Nat.add»), 
                                              app
                                               [global (const «Nat.add»), 
                                                app
                                                 [global (indc «S»), 
                                                  global (indc «O»)], c4], c3]]) 
                                         (X46 c2 c3 c4) 
                                        
Debug:
  rid:4 step:111 gid:230 user:rule = backchain 
                                     
Debug:
  rid:4 step:111 gid:230 user:rule:backchain:candidates = File "coq-builtin.elpi", line 301, column 0, characters 12083-12186: 
                                                          File "/build/reproducible-path/coq-elpi-2.5.0/elpi/coq-elaborator.elpi", line 7, column 0, characters 296-388: 
                                                          File "/build/reproducible-path/coq-elpi-2.5.0/elpi/coq-elaborator.elpi", line 11, column 0, characters 391-621: 
                                                          File "/build/reproducible-path/coq-elpi-2.5.0/elpi/coq-elaborator.elpi", line 16, column 0, characters 624-744: 
                                                          File "coq-builtin.elpi", line 304, column 0, characters 12189-12227: 
                                                          
Debug: }}} ->  (0.000s)
Debug: select 56 {{{  
              
Debug:
  rid:4 step:111 gid:230 user:rule:backchain:try = File "coq-builtin.elpi", line 301, column 0, characters 12083-12186: 
                                                   (evar (as uvar A3) A2 A0) :- (
                                                    var A0 _ A1), (!), 
                                                    (prune A2 A1), 
                                                    (prune A3 A1), 
                                                    (declare_constraint
                                                      (evar A3 A2 A0) [
                                                      A3, A0]). 
                                                   
Debug:
  rid:4 step:111 gid:0 user:assign = A3 := X45 c2 c3 c4 
                                     
Debug:
  rid:4 step:111 gid:0 user:assign = A2 := app
                                            [global (indt «eq»), 
                                             global (indt «nat»), c2, 
                                             app
                                              [global (const «Nat.add»), 
                                               app
                                                [global (const «Nat.add»), 
                                                 app
                                                  [global (indc «S»), 
                                                   global (indc «O»)], c4], 
                                               c3]] 
                                     
Debug:
  rid:4 step:111 gid:0 user:assign = A0 := X46 c2 c3 c4 
                                     
Debug:
  rid:4 step:111 gid:230 user:subgoal = 247 
                                        
Debug:
  rid:4 step:111 gid:247 user:newgoal = var (X46 c2 c3 c4) _ X48^5 
                                        
Debug:
  rid:4 step:111 gid:247 user:subgoal = 248 
                                        
Debug:
  rid:4 step:111 gid:248 user:newgoal = ! 
                                        
Debug:
  rid:4 step:111 gid:247 user:subgoal = 249 
                                        
Debug:
  rid:4 step:111 gid:249 user:newgoal = prune
                                         (app
                                           [global (indt «eq»), 
                                            global (indt «nat»), c2, 
                                            app
                                             [global (const «Nat.add»), 
                                              app
                                               [global (const «Nat.add»), 
                                                app
                                                 [global (indc «S»), 
                                                  global (indc «O»)], c4], c3]]) 
                                         X48^5 
                                        
Debug:
  rid:4 step:111 gid:247 user:subgoal = 250 
                                        
Debug:
  rid:4 step:111 gid:250 user:newgoal = prune (X45 c2 c3 c4) X48^5 
                                        
Debug:
  rid:4 step:111 gid:247 user:subgoal = 251 
                                        
Debug:
  rid:4 step:111 gid:251 user:newgoal = declare_constraint
                                         (evar (X45 c2 c3 c4) 
                                           (app
                                             [global (indt «eq»), 
                                              global (indt «nat»), c2, 
                                              app
                                               [global (const «Nat.add»), 
                                                app
                                                 [global (const «Nat.add»), 
                                                  app
                                                   [global (indc «S»), 
                                                    global (indc «O»)], c4], 
                                                c3]]) (X46 c2 c3 c4)) 
                                         [X45 c2 c3 c4, X46 c2 c3 c4] 
                                        
Debug:
  rid:4 step:111 gid:247 user:rule:backchain = success 
                                               
Debug: }}} ->  (0.001s)
Debug: run 112 {{{  
            
Debug:
  rid:4 step:112 gid:247 user:curgoal = var 
                                        var (X46 c2 c3 c4) _ X48^5 
                                        
Debug:
  rid:4 step:112 gid:247 user:rule = builtin 
                                     
Debug:
  rid:4 step:112 gid:247 user:rule:builtin:name = var 
                                                  
Debug:
  rid:4 step:112 gid:247 user:rule:builtin = success 
                                             
Debug:
  rid:4 step:112 gid:247 user:subgoal = 252 
                                        
Debug:
  rid:4 step:112 gid:252 user:newgoal = X48^5 = [c2, c3, c4] 
                                        
Debug: }}} ->  (0.000s)
Debug: run 113 {{{  
            
Debug:
  rid:4 step:113 gid:252 user:curgoal = = 
                                        X48^5 = [c2, c3, c4] 
                                        
Debug:
  rid:4 step:113 gid:252 user:rule = eq 
                                     
Debug:
  rid:4 step:113 gid:252 user:rule:builtin:name = = 
                                                  
Debug:
  rid:4 step:113 gid:0 user:assign = X48^5 := [c2, c3, c4] 
                                     
Debug:
  rid:4 step:113 gid:252 user:rule:eq = success 
                                        
Debug: }}} ->  (0.000s)
Debug: run 114 {{{  
            
Debug:
  rid:4 step:114 gid:248 user:curgoal = ! 
                                        ! 
                                        
Debug: }}} ->  (0.000s)
Debug:
  rid:4 step:114 gid:248 user:rule = cut 
                                     
Debug:
  rid:4 step:114 gid:0 user:rule:cut:branch = 230 
                                              File "/build/reproducible-path/coq-elpi-2.5.0/elpi/coq-elaborator.elpi", line 7, column 0, characters 296-388: 
                                              (evar A1 A2 A0) :- (var A0), 
                                               (!), (of A1 A2 A0). 
                                              
Debug:
  rid:4 step:114 gid:0 user:rule:cut:branch = 230 
                                              File "/build/reproducible-path/coq-elpi-2.5.0/elpi/coq-elaborator.elpi", line 11, column 0, characters 391-621: 
                                              (evar A2 A1 A0) :- (not (var A0)), 
                                               (same_term A1 (sort prop)), 
                                               (coq.version _ 8 17 _), (!), 
                                               (hack-8-17.propagate-Prop-constraint-inward
                                                 A0), 
                                               (coq.typecheck A0 A1 ok), 
                                               (A2 = A0). 
                                              
Debug:
  rid:4 step:114 gid:0 user:rule:cut:branch = 230 
                                              File "/build/reproducible-path/coq-elpi-2.5.0/elpi/coq-elaborator.elpi", line 16, column 0, characters 624-744: 
                                              (evar A2 A1 A0) :- (not (var A0)), 
                                               (!), (coq.typecheck A0 A1 ok), 
                                               (A2 = A0). 
                                              
Debug:
  rid:4 step:114 gid:0 user:rule:cut:branch = 230 
                                              File "coq-builtin.elpi", line 304, column 0, characters 12189-12227: 
                                              (evar _ _ _) :- . 
                                              
Debug:
  rid:4 step:114 gid:248 user:rule:cut = success 
                                         
Debug: run 115 {{{  
            
Debug:
  rid:4 step:115 gid:249 user:curgoal = prune 
                                        prune
                                         (app
                                           [global (indt «eq»), 
                                            global (indt «nat»), c2, 
                                            app
                                             [global (const «Nat.add»), 
                                              app
                                               [global (const «Nat.add»), 
                                                app
                                                 [global (indc «S»), 
                                                  global (indc «O»)], c4], c3]]) 
                                         [c2, c3, c4] 
                                        
Debug:
  rid:4 step:115 gid:249 user:rule = builtin 
                                     
Debug:
  rid:4 step:115 gid:249 user:rule:builtin:name = prune 
                                                  
Debug:
  rid:4 step:115 gid:249 user:rule:builtin = success 
                                             
Debug:
  rid:4 step:115 gid:249 user:subgoal = 253 
                                        
Debug:
  rid:4 step:115 gid:253 user:newgoal = app
                                         [global (indt «eq»), 
                                          global (indt «nat»), c2, 
                                          app
                                           [global (const «Nat.add»), 
                                            app
                                             [global (const «Nat.add»), 
                                              app
                                               [global (indc «S»), 
                                                global (indc «O»)], c4], c3]]
                                         = X49 c2 c3 c4 
                                        
Debug: }}} ->  (0.000s)
Debug: run 116 {{{  
            
Debug:
  rid:4 step:116 gid:253 user:curgoal = = 
                                        app
                                         [global (indt «eq»), 
                                          global (indt «nat»), c2, 
                                          app
                                           [global (const «Nat.add»), 
                                            app
                                             [global (const «Nat.add»), 
                                              app
                                               [global (indc «S»), 
                                                global (indc «O»)], c4], c3]]
                                         = X49 c2 c3 c4 
                                        
Debug:
  rid:4 step:116 gid:253 user:rule = eq 
                                     
Debug:
  rid:4 step:116 gid:253 user:rule:builtin:name = = 
                                                  
Debug:
  rid:4 step:116 gid:0 user:assign:HO = X49 := c0 \
                                        c1 \
                                        c2 \
                                        app
                                         [global (indt «eq»), 
                                          global (indt «nat»), c0, 
                                          app
                                           [global (const «Nat.add»), 
                                            app
                                             [global (const «Nat.add»), 
                                              app
                                               [global (indc «S»), 
                                                global (indc «O»)], c2], c1]] 
                                        
Debug:
  rid:4 step:116 gid:253 user:rule:eq = success 
                                        
Debug: }}} ->  (0.000s)
Debug: run 117 {{{  
            
Debug:
  rid:4 step:117 gid:250 user:curgoal = prune 
                                        prune (X45 c2 c3 c4) [c2, c3, c4] 
                                        
Debug:
  rid:4 step:117 gid:250 user:rule = builtin 
                                     
Debug:
  rid:4 step:117 gid:250 user:rule:builtin:name = prune 
                                                  
Debug:
  rid:4 step:117 gid:250 user:rule:builtin = success 
                                             
Debug:
  rid:4 step:117 gid:250 user:subgoal = 254 
                                        
Debug:
  rid:4 step:117 gid:254 user:newgoal = X45 c2 c3 c4 = X50 c2 c3 c4 
                                        
Debug: }}} ->  (0.000s)
Debug: run 118 {{{  
            
Debug:
  rid:4 step:118 gid:254 user:curgoal = = 
                                        X45 c2 c3 c4 = X50 c2 c3 c4 
                                        
Debug:
  rid:4 step:118 gid:254 user:rule = eq 
                                     
Debug:
  rid:4 step:118 gid:254 user:rule:builtin:name = = 
                                                  
Debug:
  rid:4 step:118 gid:0 user:assign:HO = X45 := c0 \
                                        c1 \
                                        c2 \
                                        X50 c0 c1 c2 
                                        
Debug:
  rid:4 step:118 gid:254 user:rule:eq = success 
                                        
Debug: }}} ->  (0.000s)
Debug: run 119 {{{  
            
Debug:
  rid:4 step:119 gid:251 user:curgoal = declare_constraint 
                                        declare_constraint
                                         (evar (X50 c2 c3 c4) 
                                           (app
                                             [global (indt «eq»), 
                                              global (indt «nat»), c2, 
                                              app
                                               [global (const «Nat.add»), 
                                                app
                                                 [global (const «Nat.add»), 
                                                  app
                                                   [global (indc «S»), 
                                                    global (indc «O»)], c4], 
                                                c3]]) (X46 c2 c3 c4)) 
                                         [X50 c2 c3 c4, X46 c2 c3 c4] 
                                        
Debug:
  rid:4 step:119 gid:251 user:rule = builtin 
                                     
Debug:
  rid:4 step:119 gid:251 user:rule:builtin:name = declare_constraint 
                                                  
Debug:
  rid:4 step:119 gid:251 user:subgoal = 255 
                                        
Debug:
  rid:4 step:119 gid:255 user:newgoal = evar (X50 c2 c3 c4) 
                                         (app
                                           [global (indt «eq»), 
                                            global (indt «nat»), c2, 
                                            app
                                             [global (const «Nat.add»), 
                                              app
                                               [global (const «Nat.add»), 
                                                app
                                                 [global (indc «S»), 
                                                  global (indc «O»)], c4], c3]]) 
                                         (X46 c2 c3 c4) 
                                        
Debug:
  rid:4 step:119 gid:251 user:rule:builtin = success 
                                             
Debug: }}} ->  (0.000s)
Debug: run 120 {{{  
            
Debug:
  rid:4 step:120 gid:246 user:curgoal = std.append 
                                        std.append [] [] X47 
                                        
Debug:
  rid:4 step:120 gid:246 user:rule = backchain 
                                     
Debug:
  rid:4 step:120 gid:246 user:rule:backchain:candidates = File "builtin_stdlib.elpi", line 87, column 0, characters 2841-2854: 
                                                          
Debug: }}} ->  (0.000s)
Debug: select 57 {{{  
              
Debug:
  rid:4 step:120 gid:246 user:rule:backchain:try = File "builtin_stdlib.elpi", line 87, column 0, characters 2841-2854: 
                                                   (std.append [] A0 A0) :- . 
                                                   
Debug:
  rid:4 step:120 gid:0 user:assign = A0 := [] 
                                     
Debug:
  rid:4 step:120 gid:0 user:assign = X47 := [] 
                                     
Debug:
  rid:4 step:120 gid:246 user:rule:backchain = success 
                                               
Debug: }}} ->  (0.000s)
w
     : nat
File "./tests/test_tactic.v", line 5, characters 28-32:
Warning:
File "./tests/test_tactic.v", line 5, characters 28-32
Type is linear: name it _Type (discard) or Type_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
Foo.x = 3
     : nat
Foo.x = 3
     : nat
Foo.x2 = 4
     : nat
eq_refl : Foo.x = 5
     : Foo.x = 5
A.B.c : nat

A.B.c is not universe polymorphic
A.B.c is transparent
Expands to: Constant elpi.apps.NES.tests.test_NES.A_aux_4.A.B.c
A1.B1.d : nat

A1.B1.d is not universe polymorphic
A1.B1.d is transparent
Expands to: Constant elpi.apps.NES.tests.test_NES.A1_aux_6.A1.B1.d
A1.B1.c : nat

A1.B1.c is not universe polymorphic
A1.B1.c is transparent
Expands to: Constant elpi.apps.NES.tests.test_NES.A1_aux_5.A1.B1.c
x = 5
     : nat
x2 = 4
     : nat
B1.c = 1
     : nat
B1.d = 1
     : nat
d = 1
     : nat
A2.B2.f = 2
     : nat
This.Is.A.Long.Namespace.stuff = 1
     : nat
     = 1
     : nat
This.Is.A.Long.Namespace.stuff = 2
     : nat
     = 1
     : nat
This_aux_1.This.Is.A.Long.Namespace.stuff
This.Is.A.Long.Namespace.more_stuff
This.Is.A.Long.Namespace.stuff
This_aux_1.This.Is.A.Long.Namespace.stuff : nat
This.Is.A.Long.Namespace.more_stuff : nat
This.Is.A.Long.Namespace.stuff : nat
stuff = 2
     : nat
default nat_def : nat
     : nat
Cats.And.Dogs.x = 42
     : 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
d
     : nat
[p 1, p 2, p 3, p 4, p 5, p 6, p 7, p 8, p 9, p 10, p 11, p 12, p 13, 
 p 14, p 15, p 16, p 17, p 18, p 19, p 20, p 21, p 22, p 23, p 24, p 25, 
 p 26, p 27, p 28, p 29, p 30, p 31, p 32, p 33, p 34, p 35, p 36, p 37, 
 p 38, p 39, p 40, p 41, p 42, p 43, p 44, p 45, p 46, p 47, p 48, p 49, 
 p 50, p 51, p 52, p 53, p 54, p 55, p 56, p 57, p 58, p 59, p 60, p 61, 
 p 62, p 63, p 64, p 65, p 66, p 67, p 68, p 69, p 70, p 71, p 72, p 73, 
 p 74, p 75, p 76, p 77, p 78, p 79, p 80, p 81, p 82, p 83, p 84, p 85, 
 p 86, p 87, p 88, p 89, p 90, p 91, p 92, p 93, p 94, p 95, p 96, p 97, 
 p 98, p 99, p 100, p 101, p 102, p 103, p 104, p 105, p 106, p 107, 
 p 108, p 109, p 110, p 111, p 112, p 113, p 114, p 115, p 116, p 117, 
 p 118, p 119, p 120, p 121, p 122, p 123, p 124, p 125, p 126, p 127, 
 p 128, p 129, p 130, p 131, p 132, p 133, p 134, p 135, p 136, p 137, 
 p 138, p 139, p 140, p 141, p 142, p 143, p 144, p 145, p 146, p 147, 
 p 148, p 149, p 150, p 151, p 152, p 153, p 154, p 155, p 156, p 157, 
 p 158, p 159, p 160, p 161, p 162, p 163, p 164, p 165, p 166, p 167, 
 p 168, p 169, p 170, p 171, p 172, p 173, p 174, p 175, p 176, p 177, 
 p 178, p 179, p 180, p 181, p 182, p 183, p 184, p 185, p 186, p 187, 
 p 188, p 189, p 190, p 191, p 192, p 193, p 194, p 195, p 196, p 197, 
 p 198, p 199, p 200, p 201, p 202, p 203, p 204, p 205, p 206, p 207, 
 p 208, p 209, p 210, p 211, p 212, p 213, p 214, p 215, p 216, p 217, 
 p 218, p 219, p 220, p 221, p 222, p 223, p 224, p 225, p 226, p 227, 
 p 228, p 229, p 230, p 231, p 232, p 233, p 234, p 235, p 236, p 237, 
 p 238, p 239, p 240, p 241, p 242, p 243, p 244, p 245, p 246, p 247, 
 p 248, p 249, p 250, p 251, p 252, p 253, p 254, p 255, p 256, p 257, 
 p 258, p 259, p 260, p 261, p 262, p 263, p 264, p 265, p 266, p 267, 
 p 268, p 269, p 270, p 271, p 272, p 273, p 274, p 275, p 276, p 277, 
 p 278, p 279, p 280, p 281, p 282, p 283, p 284, p 285, p 286, p 287, 
 p 288, p 289, p 290, p 291, p 292, p 293, p 294, p 295, p 296, p 297, 
 p 298, p 299, p 300, p 301, p 302, p 303, p 304, p 305, p 306, p 307, 
 p 308, p 309, p 310, p 311, p 312, p 313, p 314, p 315, p 316, p 317, 
 p 318, p 319, p 320, p 321, p 322, p 323, p 324, p 325, p 326, p 327, 
 p 328, p 329, p 330, p 331, p 332, p 333, p 334, p 335, p 336, p 337, 
 p 338, p 339, p 340, p 341, p 342, p 343, p 344, p 345, p 346, p 347, 
 p 348, p 349, p 350, p 351, p 352, p 353, p 354, p 355, p 356, p 357, 
 p 358, p 359, p 360, p 361, p 362, p 363, p 364, p 365, p 366, p 367, 
 p 368, p 369, p 370, p 371, p 372, p 373, p 374, p 375, p 376, p 377, 
 p 378, p 379, p 380, p 381, p 382, p 383, p 384, p 385, p 386, p 387, 
 p 388, p 389, p 390, p 391, p 392, p 393, p 394, p 395, p 396, p 397, 
 p 398, p 399, p 400, p 401, p 402, p 403, p 404, p 405, p 406, p 407, 
 p 408, p 409, p 410, p 411, p 412, p 413, p 414, p 415, p 416, p 417, 
 p 418, p 419, p 420, p 421, p 422, p 423, p 424, p 425, p 426, p 427, 
 p 428, p 429, p 430, p 431, p 432, p 433, p 434, p 435, p 436, p 437, 
 p 438, p 439, p 440, p 441, p 442, p 443, p 444, p 445, p 446, p 447, 
 p 448, p 449, p 450, p 451, p 452, p 453, p 454, p 455, p 456, p 457, 
 p 458, p 459, p 460, p 461, p 462, p 463, p 464, p 465, p 466, p 467, 
 p 468, p 469, p 470, p 471, p 472, p 473, p 474, p 475, p 476, p 477, 
 p 478, p 479, p 480, p 481, p 482, p 483, p 484, p 485, p 486, p 487, 
 p 488, p 489, p 490, p 491, p 492, p 493, p 494, p 495, p 496, p 497, 
 p 498, p 499, p 500, p 501, p 502, p 503, p 504, p 505, p 506, p 507, 
 p 508, p 509, p 510, p 511, p 512, p 513, p 514, p 515, p 516, p 517, 
 p 518, p 519, p 520, p 521, p 522, p 523, p 524, p 525, p 526, p 527, 
 p 528, p 529, p 530, p 531, p 532, p 533, p 534, p 535, p 536, p 537, 
 p 538, p 539, p 540, p 541, p 542, p 543, p 544, p 545, p 546, p 547, 
 p 548, p 549, p 550, p 551, p 552, p 553, p 554, p 555, p 556, p 557, 
 p 558, p 559, p 560, p 561, p 562, p 563, p 564, p 565, p 566, p 567, 
 p 568, p 569, p 570, p 571, p 572, p 573, p 574, p 575, p 576, p 577, 
 p 578, p 579, p 580, p 581, p 582, p 583, p 584, p 585, p 586, p 587, 
 p 588, p 589, p 590, p 591, p 592, p 593, p 594, p 595, p 596, p 597, 
 p 598, p 599, p 600, p 601, p 602, p 603, p 604, p 605, p 606, p 607, 
 p 608, p 609, p 610, p 611, p 612, p 613, p 614, p 615, p 616, p 617, 
 p 618, p 619, p 620, p 621, p 622, p 623, p 624, p 625, p 626, p 627, 
 p 628, p 629, p 630, p 631, p 632, p 633, p 634, p 635, p 636, p 637, 
 p 638, p 639, p 640, p 641, p 642, p 643, p 644, p 645, p 646, p 647, 
 p 648, p 649, p 650, p 651, p 652, p 653, p 654, p 655, p 656, p 657, 
 p 658, p 659, p 660, p 661, p 662, p 663, p 664, p 665, p 666, p 667, 
 p 668, p 669, p 670, p 671, p 672, p 673, p 674, p 675, p 676, p 677, 
 p 678, p 679, p 680, p 681, p 682, p 683, p 684, p 685, p 686, p 687, 
 p 688, p 689, p 690, p 691, p 692, p 693, p 694, p 695, p 696, p 697, 
 p 698, p 699, p 700, p 701, p 702, p 703, p 704, p 705, p 706, p 707, 
 p 708, p 709, p 710, p 711, p 712, p 713, p 714, p 715, p 716, p 717, 
 p 718, p 719, p 720, p 721, p 722, p 723, p 724, p 725, p 726, p 727, 
 p 728, p 729, p 730, p 731, p 732, p 733, p 734, p 735, p 736, p 737, 
 p 738, p 739, p 740, p 741, p 742, p 743, p 744, p 745, p 746, p 747, 
 p 748, p 749, p 750, p 751, p 752, p 753, p 754, p 755, p 756, p 757, 
 p 758, p 759, p 760, p 761, p 762, p 763, p 764, p 765, p 766, p 767, 
 p 768, p 769, p 770, p 771, p 772, p 773, p 774, p 775, p 776, p 777, 
 p 778, p 779, p 780, p 781, p 782, p 783, p 784, p 785, p 786, p 787, 
 p 788, p 789, p 790, p 791, p 792, p 793, p 794, p 795, p 796, p 797, 
 p 798, p 799, p 800, p 801, p 802, p 803, p 804, p 805, p 806, p 807, 
 p 808, p 809, p 810, p 811, p 812, p 813, p 814, p 815, p 816, p 817, 
 p 818, p 819, p 820, p 821, p 822, p 823, p 824, p 825, p 826, p 827, 
 p 828, p 829, p 830, p 831, p 832, p 833, p 834, p 835, p 836, p 837, 
 p 838, p 839, p 840, p 841, p 842, p 843, p 844, p 845, p 846, p 847, 
 p 848, p 849, p 850, p 851, p 852, p 853, p 854, p 855, p 856, p 857, 
 p 858, p 859, p 860, p 861, p 862, p 863, p 864, p 865, p 866, p 867, 
 p 868, p 869, p 870, p 871, p 872, p 873, p 874, p 875, p 876, p 877, 
 p 878, p 879, p 880, p 881, p 882, p 883, p 884, p 885, p 886, p 887, 
 p 888, p 889, p 890, p 891, p 892, p 893, p 894, p 895, p 896, p 897, 
 p 898, p 899, p 900, p 901, p 902, p 903, p 904, p 905, p 906, p 907, 
 p 908, p 909, p 910, p 911, p 912, p 913, p 914, p 915, p 916, p 917, 
 p 918, p 919, p 920, p 921, p 922, p 923, p 924, p 925, p 926, p 927, 
 p 928, p 929, p 930, p 931, p 932, p 933, p 934, p 935, p 936, p 937, 
 p 938, p 939, p 940, p 941, p 942, p 943, p 944, p 945, p 946, p 947, 
 p 948, p 949, p 950, p 951, p 952, p 953, p 954, p 955, p 956, p 957, 
 p 958, p 959, p 960, p 961, p 962, p 963, p 964, p 965, p 966, p 967, 
 p 968, p 969, p 970, p 971, p 972, p 973, p 974, p 975, p 976, p 977, 
 p 978, p 979, p 980, p 981, p 982, p 983, p 984, p 985, p 986, p 987, 
 p 988, p 989, p 990, p 991, p 992, p 993, p 994, p 995, p 996, p 997, 
 p 998, p 999, p 1000, p 1001, p 1002, p 1003, p 1004, p 1005, p 1006, 
 p 1007, p 1008, p 1009, p 1010, p 1011, p 1012, p 1013, p 1014, p 1015, 
 p 1016, p 1017, p 1018, p 1019, p 1020, p 1021, p 1022, p 1023, p 1024, 
 p 1025, p 1026, p 1027, p 1028, p 1029, p 1030, p 1031, p 1032, p 1033, 
 p 1034, p 1035, p 1036, p 1037, p 1038, p 1039, p 1040, p 1041, p 1042, 
 p 1043, p 1044, p 1045, p 1046, p 1047, p 1048, p 1049, p 1050, p 1051, 
 p 1052, p 1053, p 1054, p 1055, p 1056, p 1057, p 1058, p 1059, p 1060, 
 p 1061, p 1062, p 1063, p 1064, p 1065, p 1066, p 1067, p 1068, p 1069, 
 p 1070, p 1071, p 1072, p 1073, p 1074, p 1075, p 1076, p 1077, p 1078, 
 p 1079, p 1080, p 1081, p 1082, p 1083, p 1084, p 1085, p 1086, p 1087, 
 p 1088, p 1089, p 1090, p 1091, p 1092, p 1093, p 1094, p 1095, p 1096, 
 p 1097, p 1098, p 1099, p 1100, p 1101, p 1102, p 1103, p 1104, p 1105, 
 p 1106, p 1107, p 1108, p 1109, p 1110, p 1111, p 1112, p 1113, p 1114, 
 p 1115, p 1116, p 1117, p 1118, p 1119, p 1120, p 1121, p 1122, p 1123, 
 p 1124, p 1125, p 1126, p 1127, p 1128, p 1129, p 1130, p 1131, p 1132, 
 p 1133, p 1134, p 1135, p 1136, p 1137, p 1138, p 1139, p 1140, p 1141, 
 p 1142, p 1143, p 1144, p 1145, p 1146, p 1147, p 1148, p 1149, p 1150, 
 p 1151, p 1152, p 1153, p 1154, p 1155, p 1156, p 1157, p 1158, p 1159, 
 p 1160, p 1161, p 1162, p 1163, p 1164, p 1165, p 1166, p 1167, p 1168, 
 p 1169, p 1170, p 1171, p 1172, p 1173, p 1174, p 1175, p 1176, p 1177, 
 p 1178, p 1179, p 1180, p 1181, p 1182, p 1183, p 1184, p 1185, p 1186, 
 p 1187, p 1188, p 1189, p 1190, p 1191, p 1192, p 1193, p 1194, p 1195, 
 p 1196, p 1197, p 1198, p 1199, p 1200, p 1201, p 1202, p 1203, p 1204, 
 p 1205, p 1206, p 1207, p 1208, p 1209, p 1210, p 1211, p 1212, p 1213, 
 p 1214, p 1215, p 1216, p 1217, p 1218, p 1219, p 1220, p 1221, p 1222, 
 p 1223, p 1224, p 1225, p 1226, p 1227, p 1228, p 1229, p 1230, p 1231, 
 p 1232, p 1233, p 1234, p 1235, p 1236, p 1237, p 1238, p 1239, p 1240, 
 p 1241, p 1242, p 1243, p 1244, p 1245, p 1246, p 1247, p 1248, p 1249, 
 p 1250, p 1251, p 1252, p 1253, p 1254, p 1255, p 1256, p 1257, p 1258, 
 p 1259, p 1260, p 1261, p 1262, p 1263, p 1264, p 1265, p 1266, p 1267, 
 p 1268, p 1269, p 1270, p 1271, p 1272, p 1273, p 1274, p 1275, p 1276, 
 p 1277, p 1278, p 1279, p 1280, p 1281, p 1282, p 1283, p 1284, p 1285, 
 p 1286, p 1287, p 1288, p 1289, p 1290, p 1291, p 1292, p 1293, p 1294, 
 p 1295, p 1296, p 1297, p 1298, p 1299, p 1300, p 1301, p 1302, p 1303, 
 p 1304, p 1305, p 1306, p 1307, p 1308, p 1309, p 1310, p 1311, p 1312, 
 p 1313, p 1314, p 1315, p 1316, p 1317, p 1318, p 1319, p 1320, p 1321, 
 p 1322, p 1323, p 1324, p 1325, p 1326, p 1327, p 1328, p 1329, p 1330, 
 p 1331, p 1332, p 1333, p 1334, p 1335, p 1336, p 1337, p 1338, p 1339, 
 p 1340, p 1341, p 1342, p 1343, p 1344, p 1345, p 1346, p 1347, p 1348, 
 p 1349, p 1350, p 1351, p 1352, p 1353, p 1354, p 1355, p 1356, p 1357, 
 p 1358, p 1359, p 1360, p 1361, p 1362, p 1363, p 1364, p 1365, p 1366, 
 p 1367, p 1368, p 1369, p 1370, p 1371, p 1372, p 1373, p 1374, p 1375, 
 p 1376, p 1377, p 1378, p 1379, p 1380, p 1381, p 1382, p 1383, p 1384, 
 p 1385, p 1386, p 1387, p 1388, p 1389, p 1390, p 1391, p 1392, p 1393, 
 p 1394, p 1395, p 1396, p 1397, p 1398, p 1399, p 1400, p 1401, p 1402, 
 p 1403, p 1404, p 1405, p 1406, p 1407, p 1408, p 1409, p 1410, p 1411, 
 p 1412, p 1413, p 1414, p 1415, p 1416, p 1417, p 1418, p 1419, p 1420, 
 p 1421, p 1422, p 1423, p 1424, p 1425, p 1426, p 1427, p 1428, p 1429, 
 p 1430, p 1431, p 1432, p 1433, p 1434, p 1435, p 1436, p 1437, p 1438, 
 p 1439, p 1440, p 1441, p 1442, p 1443, p 1444, p 1445, p 1446, p 1447, 
 p 1448, p 1449, p 1450, p 1451, p 1452, p 1453, p 1454, p 1455, p 1456, 
 p 1457, p 1458, p 1459, p 1460, p 1461, p 1462, p 1463, p 1464, p 1465, 
 p 1466, p 1467, p 1468, p 1469, p 1470, p 1471, p 1472, p 1473, p 1474, 
 p 1475, p 1476, p 1477, p 1478, p 1479, p 1480, p 1481, p 1482, p 1483, 
 p 1484, p 1485, p 1486, p 1487, p 1488, p 1489, p 1490, p 1491, p 1492, 
 p 1493, p 1494, p 1495, p 1496, p 1497, p 1498, p 1499, p 1500, p 1501, 
 p 1502, p 1503, p 1504, p 1505, p 1506, p 1507, p 1508, p 1509, p 1510, 
 p 1511, p 1512, p 1513, p 1514, p 1515, p 1516, p 1517, p 1518, p 1519, 
 p 1520, p 1521, p 1522, p 1523, p 1524, p 1525, p 1526, p 1527, p 1528, 
 p 1529, p 1530, p 1531, p 1532, p 1533, p 1534, p 1535, p 1536, p 1537, 
 p 1538, p 1539, p 1540, p 1541, p 1542, p 1543, p 1544, p 1545, p 1546, 
 p 1547, p 1548, p 1549, p 1550, p 1551, p 1552, p 1553, p 1554, p 1555, 
 p 1556, p 1557, p 1558, p 1559, p 1560, p 1561, p 1562, p 1563, p 1564, 
 p 1565, p 1566, p 1567, p 1568, p 1569, p 1570, p 1571, p 1572, p 1573, 
 p 1574, p 1575, p 1576, p 1577, p 1578, p 1579, p 1580, p 1581, p 1582, 
 p 1583, p 1584, p 1585, p 1586, p 1587, p 1588, p 1589, p 1590, p 1591, 
 p 1592, p 1593, p 1594, p 1595, p 1596, p 1597, p 1598, p 1599, p 1600, 
 p 1601, p 1602, p 1603, p 1604, p 1605, p 1606, p 1607, p 1608, p 1609, 
 p 1610, p 1611, p 1612, p 1613, p 1614, p 1615, p 1616, p 1617, p 1618, 
 p 1619, p 1620, p 1621, p 1622, p 1623, p 1624, p 1625, p 1626, p 1627, 
 p 1628, p 1629, p 1630, p 1631, p 1632, p 1633, p 1634, p 1635, p 1636, 
 p 1637, p 1638, p 1639, p 1640, p 1641, p 1642, p 1643, p 1644, p 1645, 
 p 1646, p 1647, p 1648, p 1649, p 1650, p 1651, p 1652, p 1653, p 1654, 
 p 1655, p 1656, p 1657, p 1658, p 1659, p 1660, p 1661, p 1662, p 1663, 
 p 1664, p 1665, p 1666, p 1667, p 1668, p 1669, p 1670, p 1671, p 1672, 
 p 1673, p 1674, p 1675, p 1676, p 1677, p 1678, p 1679, p 1680, p 1681, 
 p 1682, p 1683, p 1684, p 1685, p 1686, p 1687, p 1688, p 1689, p 1690, 
 p 1691, p 1692, p 1693, p 1694, p 1695, p 1696, p 1697, p 1698, p 1699, 
 p 1700, p 1701, p 1702, p 1703, p 1704, p 1705, p 1706, p 1707, p 1708, 
 p 1709, p 1710, p 1711, p 1712, p 1713, p 1714, p 1715, p 1716, p 1717, 
 p 1718, p 1719, p 1720, p 1721, p 1722, p 1723, p 1724, p 1725, p 1726, 
 p 1727, p 1728, p 1729, p 1730, p 1731, p 1732, p 1733, p 1734, p 1735, 
 p 1736, p 1737, p 1738, p 1739, p 1740, p 1741, p 1742, p 1743, p 1744, 
 p 1745, p 1746, p 1747, p 1748, p 1749, p 1750, p 1751, p 1752, p 1753, 
 p 1754, p 1755, p 1756, p 1757, p 1758, p 1759, p 1760, p 1761, p 1762, 
 p 1763, p 1764, p 1765, p 1766, p 1767, p 1768, p 1769, p 1770, p 1771, 
 p 1772, p 1773, p 1774, p 1775, p 1776, p 1777, p 1778, p 1779, p 1780, 
 p 1781, p 1782, p 1783, p 1784, p 1785, p 1786, p 1787, p 1788, p 1789, 
 p 1790, p 1791, p 1792, p 1793, p 1794, p 1795, p 1796, p 1797, p 1798, 
 p 1799, p 1800, p 1801, p 1802, p 1803, p 1804, p 1805, p 1806, p 1807, 
 p 1808, p 1809, p 1810, p 1811, p 1812, p 1813, p 1814, p 1815, p 1816, 
 p 1817, p 1818, p 1819, p 1820, p 1821, p 1822, p 1823, p 1824, p 1825, 
 p 1826, p 1827, p 1828, p 1829, p 1830, p 1831, p 1832, p 1833, p 1834, 
 p 1835, p 1836, p 1837, p 1838, p 1839, p 1840, p 1841, p 1842, p 1843, 
 p 1844, p 1845, p 1846, p 1847, p 1848, p 1849, p 1850, p 1851, p 1852, 
 p 1853, p 1854, p 1855, p 1856, p 1857, p 1858, p 1859, p 1860, p 1861, 
 p 1862, p 1863, p 1864, p 1865, p 1866, p 1867, p 1868, p 1869, p 1870, 
 p 1871, p 1872, p 1873, p 1874, p 1875, p 1876, p 1877, p 1878, p 1879, 
 p 1880, p 1881, p 1882, p 1883, p 1884, p 1885, p 1886, p 1887, p 1888, 
 p 1889, p 1890, p 1891, p 1892, p 1893, p 1894, p 1895, p 1896, p 1897, 
 p 1898, p 1899, p 1900, p 1901, p 1902, p 1903, p 1904, p 1905, p 1906, 
 p 1907, p 1908, p 1909, p 1910, p 1911, p 1912, p 1913, p 1914, p 1915, 
 p 1916, p 1917, p 1918, p 1919, p 1920, p 1921, p 1922, p 1923, p 1924, 
 p 1925, p 1926, p 1927, p 1928, p 1929, p 1930, p 1931, p 1932, p 1933, 
 p 1934, p 1935, p 1936, p 1937, p 1938, p 1939, p 1940, p 1941, p 1942, 
 p 1943, p 1944, p 1945, p 1946, p 1947, p 1948, p 1949, p 1950, p 1951, 
 p 1952, p 1953, p 1954, p 1955, p 1956, p 1957, p 1958, p 1959, p 1960, 
 p 1961, p 1962, p 1963, p 1964, p 1965, p 1966, p 1967, p 1968, p 1969, 
 p 1970, p 1971, p 1972, p 1973, p 1974, p 1975, p 1976, p 1977, p 1978, 
 p 1979, p 1980, p 1981, p 1982, p 1983, p 1984, p 1985, p 1986, p 1987, 
 p 1988, p 1989, p 1990, p 1991, p 1992, p 1993, p 1994, p 1995, p 1996, 
 p 1997, p 1998, p 1999, p 2000, p 2001, p 2002, p 2003, p 2004, p 2005, 
 p 2006, p 2007, p 2008, p 2009, p 2010, p 2011, p 2012, p 2013, p 2014, 
 p 2015, p 2016, p 2017, p 2018, p 2019, p 2020, p 2021, p 2022, p 2023, 
 p 2024, p 2025, p 2026, p 2027, p 2028, p 2029, p 2030, p 2031, p 2032, 
 p 2033, p 2034, p 2035, p 2036, p 2037, p 2038, p 2039, p 2040, p 2041, 
 p 2042, p 2043, p 2044, p 2045, p 2046, p 2047, p 2048, p 2049, p 2050, 
 p 2051, p 2052, p 2053, p 2054, p 2055, p 2056, p 2057, p 2058, p 2059, 
 p 2060, p 2061, p 2062, p 2063, p 2064, p 2065, p 2066, p 2067, p 2068, 
 p 2069, p 2070, p 2071, p 2072, p 2073, p 2074, p 2075, p 2076, p 2077, 
 p 2078, p 2079, p 2080, p 2081, p 2082, p 2083, p 2084, p 2085, p 2086, 
 p 2087, p 2088, p 2089, p 2090, p 2091, p 2092, p 2093, p 2094, p 2095, 
 p 2096, p 2097, p 2098, p 2099, p 2100, p 2101, p 2102, p 2103, p 2104, 
 p 2105, p 2106, p 2107, p 2108, p 2109, p 2110, p 2111, p 2112, p 2113, 
 p 2114, p 2115, p 2116, p 2117, p 2118, p 2119, p 2120, p 2121, p 2122, 
 p 2123, p 2124, p 2125, p 2126, p 2127, p 2128, p 2129, p 2130, p 2131, 
 p 2132, p 2133, p 2134, p 2135, p 2136, p 2137, p 2138, p 2139, p 2140, 
 p 2141, p 2142, p 2143, p 2144, p 2145, p 2146, p 2147, p 2148, p 2149, 
 p 2150, p 2151, p 2152, p 2153, p 2154, p 2155, p 2156, p 2157, p 2158, 
 p 2159, p 2160, p 2161, p 2162, p 2163, p 2164, p 2165, p 2166, p 2167, 
 p 2168, p 2169, p 2170, p 2171, p 2172, p 2173, p 2174, p 2175, p 2176, 
 p 2177, p 2178, p 2179, p 2180, p 2181, p 2182, p 2183, p 2184, p 2185, 
 p 2186, p 2187, p 2188, p 2189, p 2190, p 2191, p 2192, p 2193, p 2194, 
 p 2195, p 2196, p 2197, p 2198, p 2199, p 2200, p 2201, p 2202, p 2203, 
 p 2204, p 2205, p 2206, p 2207, p 2208, p 2209, p 2210, p 2211, p 2212, 
 p 2213, p 2214, p 2215, p 2216, p 2217, p 2218, p 2219, p 2220, p 2221, 
 p 2222, p 2223, p 2224, p 2225, p 2226, p 2227, p 2228, p 2229, p 2230, 
 p 2231, p 2232, p 2233, p 2234, p 2235, p 2236, p 2237, p 2238, p 2239, 
 p 2240, p 2241, p 2242, p 2243, p 2244, p 2245, p 2246, p 2247, p 2248, 
 p 2249, p 2250, p 2251, p 2252, p 2253, p 2254, p 2255, p 2256, p 2257, 
 p 2258, p 2259, p 2260, p 2261, p 2262, p 2263, p 2264, p 2265, p 2266, 
 p 2267, p 2268, p 2269, p 2270, p 2271, p 2272, p 2273, p 2274, p 2275, 
 p 2276, p 2277, p 2278, p 2279, p 2280, p 2281, p 2282, p 2283, p 2284, 
 p 2285, p 2286, p 2287, p 2288, p 2289, p 2290, p 2291, p 2292, p 2293, 
 p 2294, p 2295, p 2296, p 2297, p 2298, p 2299, p 2300, p 2301, p 2302, 
 p 2303, p 2304, p 2305, p 2306, p 2307, p 2308, p 2309, p 2310, p 2311, 
 p 2312, p 2313, p 2314, p 2315, p 2316, p 2317, p 2318, p 2319, p 2320, 
 p 2321, p 2322, p 2323, p 2324, p 2325, p 2326, p 2327, p 2328, p 2329, 
 p 2330, p 2331, p 2332, p 2333, p 2334, p 2335, p 2336, p 2337, p 2338, 
 p 2339, p 2340, p 2341, p 2342, p 2343, p 2344, p 2345, p 2346, p 2347, 
 p 2348, p 2349, p 2350, p 2351, p 2352, p 2353, p 2354, p 2355, p 2356, 
 p 2357, p 2358, p 2359, p 2360, p 2361, p 2362, p 2363, p 2364, p 2365, 
 p 2366, p 2367, p 2368, p 2369, p 2370, p 2371, p 2372, p 2373, p 2374, 
 p 2375, p 2376, p 2377, p 2378, p 2379, p 2380, p 2381, p 2382, p 2383, 
 p 2384, p 2385, p 2386, p 2387, p 2388, p 2389, p 2390, p 2391, p 2392, 
 p 2393, p 2394, p 2395, p 2396, p 2397, p 2398, p 2399, p 2400, p 2401, 
 p 2402, p 2403, p 2404, p 2405, p 2406, p 2407, p 2408, p 2409, p 2410, 
 p 2411, p 2412, p 2413, p 2414, p 2415, p 2416, p 2417, p 2418, p 2419, 
 p 2420, p 2421, p 2422, p 2423, p 2424, p 2425, p 2426, p 2427, p 2428, 
 p 2429, p 2430, p 2431, p 2432, p 2433, p 2434, p 2435, p 2436, p 2437, 
 p 2438, p 2439, p 2440, p 2441, p 2442, p 2443, p 2444, p 2445, p 2446, 
 p 2447, p 2448, p 2449, p 2450, p 2451, p 2452, p 2453, p 2454, p 2455, 
 p 2456, p 2457, p 2458, p 2459, p 2460, p 2461, p 2462, p 2463, p 2464, 
 p 2465, p 2466, p 2467, p 2468, p 2469, p 2470, p 2471, p 2472, p 2473, 
 p 2474, p 2475, p 2476, p 2477, p 2478, p 2479, p 2480, p 2481, p 2482, 
 p 2483, p 2484, p 2485, p 2486, p 2487, p 2488, p 2489, p 2490, p 2491, 
 p 2492, p 2493, p 2494, p 2495, p 2496, p 2497, p 2498, p 2499, p 2500, 
 p 2501, p 2502, p 2503, p 2504, p 2505, p 2506, p 2507, p 2508, p 2509, 
 p 2510, p 2511, p 2512, p 2513, p 2514, p 2515, p 2516, p 2517, p 2518, 
 p 2519, p 2520, p 2521, p 2522, p 2523, p 2524, p 2525, p 2526, p 2527, 
 p 2528, p 2529, p 2530, p 2531, p 2532, p 2533, p 2534, p 2535, p 2536, 
 p 2537, p 2538, p 2539, p 2540, p 2541, p 2542, p 2543, p 2544, p 2545, 
 p 2546, p 2547, p 2548, p 2549, p 2550, p 2551, p 2552, p 2553, p 2554, 
 p 2555, p 2556, p 2557, p 2558, p 2559, p 2560, p 2561, p 2562, p 2563, 
 p 2564, p 2565, p 2566, p 2567, p 2568, p 2569, p 2570, p 2571, p 2572, 
 p 2573, p 2574, p 2575, p 2576, p 2577, p 2578, p 2579, p 2580, p 2581, 
 p 2582, p 2583, p 2584, p 2585, p 2586, p 2587, p 2588, p 2589, p 2590, 
 p 2591, p 2592, p 2593, p 2594, p 2595, p 2596, p 2597, p 2598, p 2599, 
 p 2600, p 2601, p 2602, p 2603, p 2604, p 2605, p 2606, p 2607, p 2608, 
 p 2609, p 2610, p 2611, p 2612, p 2613, p 2614, p 2615, p 2616, p 2617, 
 p 2618, p 2619, p 2620, p 2621, p 2622, p 2623, p 2624, p 2625, p 2626, 
 p 2627, p 2628, p 2629, p 2630, p 2631, p 2632, p 2633, p 2634, p 2635, 
 p 2636, p 2637, p 2638, p 2639, p 2640, p 2641, p 2642, p 2643, p 2644, 
 p 2645, p 2646, p 2647, p 2648, p 2649, p 2650, p 2651, p 2652, p 2653, 
 p 2654, p 2655, p 2656, p 2657, p 2658, p 2659, p 2660, p 2661, p 2662, 
 p 2663, p 2664, p 2665, p 2666, p 2667, p 2668, p 2669, p 2670, p 2671, 
 p 2672, p 2673, p 2674, p 2675, p 2676, p 2677, p 2678, p 2679, p 2680, 
 p 2681, p 2682, p 2683, p 2684, p 2685, p 2686, p 2687, p 2688, p 2689, 
 p 2690, p 2691, p 2692, p 2693, p 2694, p 2695, p 2696, p 2697, p 2698, 
 p 2699, p 2700, p 2701, p 2702, p 2703, p 2704, p 2705, p 2706, p 2707, 
 p 2708, p 2709, p 2710, p 2711, p 2712, p 2713, p 2714, p 2715, p 2716, 
 p 2717, p 2718, p 2719, p 2720, p 2721, p 2722, p 2723, p 2724, p 2725, 
 p 2726, p 2727, p 2728, p 2729, p 2730, p 2731, p 2732, p 2733, p 2734, 
 p 2735, p 2736, p 2737, p 2738, p 2739, p 2740, p 2741, p 2742, p 2743, 
 p 2744, p 2745, p 2746, p 2747, p 2748, p 2749, p 2750, p 2751, p 2752, 
 p 2753, p 2754, p 2755, p 2756, p 2757, p 2758, p 2759, p 2760, p 2761, 
 p 2762, p 2763, p 2764, p 2765, p 2766, p 2767, p 2768, p 2769, p 2770, 
 p 2771, p 2772, p 2773, p 2774, p 2775, p 2776, p 2777, p 2778, p 2779, 
 p 2780, p 2781, p 2782, p 2783, p 2784, p 2785, p 2786, p 2787, p 2788, 
 p 2789, p 2790, p 2791, p 2792, p 2793, p 2794, p 2795, p 2796, p 2797, 
 p 2798, p 2799, p 2800, p 2801, p 2802, p 2803, p 2804, p 2805, p 2806, 
 p 2807, p 2808, p 2809, p 2810, p 2811, p 2812, p 2813, p 2814, p 2815, 
 p 2816, p 2817, p 2818, p 2819, p 2820, p 2821, p 2822, p 2823, p 2824, 
 p 2825, p 2826, p 2827, p 2828, p 2829, p 2830, p 2831, p 2832, p 2833, 
 p 2834, p 2835, p 2836, p 2837, p 2838, p 2839, p 2840, p 2841, p 2842, 
 p 2843, p 2844, p 2845, p 2846, p 2847, p 2848, p 2849, p 2850, p 2851, 
 p 2852, p 2853, p 2854, p 2855, p 2856, p 2857, p 2858, p 2859, p 2860, 
 p 2861, p 2862, p 2863, p 2864, p 2865, p 2866, p 2867, p 2868, p 2869, 
 p 2870, p 2871, p 2872, p 2873, p 2874, p 2875, p 2876, p 2877, p 2878, 
 p 2879, p 2880, p 2881, p 2882, p 2883, p 2884, p 2885, p 2886, p 2887, 
 p 2888, p 2889, p 2890, p 2891, p 2892, p 2893, p 2894, p 2895, p 2896, 
 p 2897, p 2898, p 2899, p 2900, p 2901, p 2902, p 2903, p 2904, p 2905, 
 p 2906, p 2907, p 2908, p 2909, p 2910, p 2911, p 2912, p 2913, p 2914, 
 p 2915, p 2916, p 2917, p 2918, p 2919, p 2920, p 2921, p 2922, p 2923, 
 p 2924, p 2925, p 2926, p 2927, p 2928, p 2929, p 2930, p 2931, p 2932, 
 p 2933, p 2934, p 2935, p 2936, p 2937, p 2938, p 2939, p 2940, p 2941, 
 p 2942, p 2943, p 2944, p 2945, p 2946, p 2947, p 2948, p 2949, p 2950, 
 p 2951, p 2952, p 2953, p 2954, p 2955, p 2956, p 2957, p 2958, p 2959, 
 p 2960, p 2961, p 2962, p 2963, p 2964, p 2965, p 2966, p 2967, p 2968, 
 p 2969, p 2970, p 2971, p 2972, p 2973, p 2974, p 2975, p 2976, p 2977, 
 p 2978, p 2979, p 2980, p 2981, p 2982, p 2983, p 2984, p 2985, p 2986, 
 p 2987, p 2988, p 2989, p 2990, p 2991, p 2992, p 2993, p 2994, p 2995, 
 p 2996, p 2997, p 2998, p 2999, p 3000, p 3001, p 3002, p 3003, p 3004, 
 p 3005, p 3006, p 3007, p 3008, p 3009, p 3010, p 3011, p 3012, p 3013, 
 p 3014, p 3015, p 3016, p 3017, p 3018, p 3019, p 3020, p 3021, p 3022, 
 p 3023, p 3024, p 3025, p 3026, p 3027, p 3028, p 3029, p 3030, p 3031, 
 p 3032, p 3033, p 3034, p 3035, p 3036, p 3037, p 3038, p 3039, p 3040, 
 p 3041, p 3042, p 3043, p 3044, p 3045, p 3046, p 3047, p 3048, p 3049, 
 p 3050, p 3051, p 3052, p 3053, p 3054, p 3055, p 3056, p 3057, p 3058, 
 p 3059, p 3060, p 3061, p 3062, p 3063, p 3064, p 3065, p 3066, p 3067, 
 p 3068, p 3069, p 3070, p 3071, p 3072, p 3073, p 3074, p 3075, p 3076, 
 p 3077, p 3078, p 3079, p 3080, p 3081, p 3082, p 3083, p 3084, p 3085, 
 p 3086, p 3087, p 3088, p 3089, p 3090, p 3091, p 3092, p 3093, p 3094, 
 p 3095, p 3096, p 3097, p 3098, p 3099, p 3100, p 3101, p 3102, p 3103, 
 p 3104, p 3105, p 3106, p 3107, p 3108, p 3109, p 3110, p 3111, p 3112, 
 p 3113, p 3114, p 3115, p 3116, p 3117, p 3118, p 3119, p 3120, p 3121, 
 p 3122, p 3123, p 3124, p 3125, p 3126, p 3127, p 3128, p 3129, p 3130, 
 p 3131, p 3132, p 3133, p 3134, p 3135, p 3136, p 3137, p 3138, p 3139, 
 p 3140, p 3141, p 3142, p 3143, p 3144, p 3145, p 3146, p 3147, p 3148, 
 p 3149, p 3150, p 3151, p 3152, p 3153, p 3154, p 3155, p 3156, p 3157, 
 p 3158, p 3159, p 3160, p 3161, p 3162, p 3163, p 3164, p 3165, p 3166, 
 p 3167, p 3168, p 3169, p 3170, p 3171, p 3172, p 3173, p 3174, p 3175, 
 p 3176, p 3177, p 3178, p 3179, p 3180, p 3181, p 3182, p 3183, p 3184, 
 p 3185, p 3186, p 3187, p 3188, p 3189, p 3190, p 3191, p 3192, p 3193, 
 p 3194, p 3195, p 3196, p 3197, p 3198, p 3199, p 3200, p 3201, p 3202, 
 p 3203, p 3204, p 3205, p 3206, p 3207, p 3208, p 3209, p 3210, p 3211, 
 p 3212, p 3213, p 3214, p 3215, p 3216, p 3217, p 3218, p 3219, p 3220, 
 p 3221, p 3222, p 3223, p 3224, p 3225, p 3226, p 3227, p 3228, p 3229, 
 p 3230, p 3231, p 3232, p 3233, p 3234, p 3235, p 3236, p 3237, p 3238, 
 p 3239, p 3240, p 3241, p 3242, p 3243, p 3244, p 3245, p 3246, p 3247, 
 p 3248, p 3249, p 3250, p 3251, p 3252, p 3253, p 3254, p 3255, p 3256, 
 p 3257, p 3258, p 3259, p 3260, p 3261, p 3262, p 3263, p 3264, p 3265, 
 p 3266, p 3267, p 3268, p 3269, p 3270, p 3271, p 3272, p 3273, p 3274, 
 p 3275, p 3276, p 3277, p 3278, p 3279, p 3280, p 3281, p 3282, p 3283, 
 p 3284, p 3285, p 3286, p 3287, p 3288, p 3289, p 3290, p 3291, p 3292, 
 p 3293, p 3294, p 3295, p 3296, p 3297, p 3298, p 3299, p 3300, p 3301, 
 p 3302, p 3303, p 3304, p 3305, p 3306, p 3307, p 3308, p 3309, p 3310, 
 p 3311, p 3312, p 3313, p 3314, p 3315, p 3316, p 3317, p 3318, p 3319, 
 p 3320, p 3321, p 3322, p 3323, p 3324, p 3325, p 3326, p 3327, p 3328, 
 p 3329, p 3330, p 3331, p 3332, p 3333, p 3334, p 3335, p 3336, p 3337, 
 p 3338, p 3339, p 3340, p 3341, p 3342, p 3343, p 3344, p 3345, p 3346, 
 p 3347, p 3348, p 3349, p 3350, p 3351, p 3352, p 3353, p 3354, p 3355, 
 p 3356, p 3357, p 3358, p 3359, p 3360, p 3361, p 3362, p 3363, p 3364, 
 p 3365, p 3366, p 3367, p 3368, p 3369, p 3370, p 3371, p 3372, p 3373, 
 p 3374, p 3375, p 3376, p 3377, p 3378, p 3379, p 3380, p 3381, p 3382, 
 p 3383, p 3384, p 3385, p 3386, p 3387, p 3388, p 3389, p 3390, p 3391, 
 p 3392, p 3393, p 3394, p 3395, p 3396, p 3397, p 3398, p 3399, p 3400, 
 p 3401, p 3402, p 3403, p 3404, p 3405, p 3406, p 3407, p 3408, p 3409, 
 p 3410, p 3411, p 3412, p 3413, p 3414, p 3415, p 3416, p 3417, p 3418, 
 p 3419, p 3420, p 3421, p 3422, p 3423, p 3424, p 3425, p 3426, p 3427, 
 p 3428, p 3429, p 3430, p 3431, p 3432, p 3433, p 3434, p 3435, p 3436, 
 p 3437, p 3438, p 3439, p 3440, p 3441, p 3442, p 3443, p 3444, p 3445, 
 p 3446, p 3447, p 3448, p 3449, p 3450, p 3451, p 3452, p 3453, p 3454, 
 p 3455, p 3456, p 3457, p 3458, p 3459, p 3460, p 3461, p 3462, p 3463, 
 p 3464, p 3465, p 3466, p 3467, p 3468, p 3469, p 3470, p 3471, p 3472, 
 p 3473, p 3474, p 3475, p 3476, p 3477, p 3478, p 3479, p 3480, p 3481, 
 p 3482, p 3483, p 3484, p 3485, p 3486, p 3487, p 3488, p 3489, p 3490, 
 p 3491, p 3492, p 3493, p 3494, p 3495, p 3496, p 3497, p 3498, p 3499, 
 p 3500, p 3501, p 3502, p 3503, p 3504, p 3505, p 3506, p 3507, p 3508, 
 p 3509, p 3510, p 3511, p 3512, p 3513, p 3514, p 3515, p 3516, p 3517, 
 p 3518, p 3519, p 3520, p 3521, p 3522, p 3523, p 3524, p 3525, p 3526, 
 p 3527, p 3528, p 3529, p 3530, p 3531, p 3532, p 3533, p 3534, p 3535, 
 p 3536, p 3537, p 3538, p 3539, p 3540, p 3541, p 3542, p 3543, p 3544, 
 p 3545, p 3546, p 3547, p 3548, p 3549, p 3550, p 3551, p 3552, p 3553, 
 p 3554, p 3555, p 3556, p 3557, p 3558, p 3559, p 3560, p 3561, p 3562, 
 p 3563, p 3564, p 3565, p 3566, p 3567, p 3568, p 3569, p 3570, p 3571, 
 p 3572, p 3573, p 3574, p 3575, p 3576, p 3577, p 3578, p 3579, p 3580, 
 p 3581, p 3582, p 3583, p 3584, p 3585, p 3586, p 3587, p 3588, p 3589, 
 p 3590, p 3591, p 3592, p 3593, p 3594, p 3595, p 3596, p 3597, p 3598, 
 p 3599, p 3600, p 3601, p 3602, p 3603, p 3604, p 3605, p 3606, p 3607, 
 p 3608, p 3609, p 3610, p 3611, p 3612, p 3613, p 3614, p 3615, p 3616, 
 p 3617, p 3618, p 3619, p 3620, p 3621, p 3622, p 3623, p 3624, p 3625, 
 p 3626, p 3627, p 3628, p 3629, p 3630, p 3631, p 3632, p 3633, p 3634, 
 p 3635, p 3636, p 3637, p 3638, p 3639, p 3640, p 3641, p 3642, p 3643, 
 p 3644, p 3645, p 3646, p 3647, p 3648, p 3649, p 3650, p 3651, p 3652, 
 p 3653, p 3654, p 3655, p 3656, p 3657, p 3658, p 3659, p 3660, p 3661, 
 p 3662, p 3663, p 3664, p 3665, p 3666, p 3667, p 3668, p 3669, p 3670, 
 p 3671, p 3672, p 3673, p 3674, p 3675, p 3676, p 3677, p 3678, p 3679, 
 p 3680, p 3681, p 3682, p 3683, p 3684, p 3685, p 3686, p 3687, p 3688, 
 p 3689, p 3690, p 3691, p 3692, p 3693, p 3694, p 3695, p 3696, p 3697, 
 p 3698, p 3699, p 3700, p 3701, p 3702, p 3703, p 3704, p 3705, p 3706, 
 p 3707, p 3708, p 3709, p 3710]
Module
d3
 : d3_Locked
:= Struct Definition body : nat. Parameter unlock : d3 = 3. End
Module Type
 d3_Locked =
 Sig Parameter body : nat. Parameter unlock : body = 3. End
cons2 : forall {A : Type}, A -> list A -> list A

cons2 is not universe polymorphic
Arguments cons2 {A}%type_scope x xs%list_scope
cons2 is transparent
Expands to: Constant
elpi.apps.locker.tests.test_locker.Bug_286.lock_container.cons2
cons3 : forall [A : Type], EqDecision A -> A -> list A -> list A

cons3 is not universe polymorphic
Arguments cons3 [A]%type_scope {H} x xs%list_scope
cons3 is transparent
Expands to: Constant
elpi.apps.locker.tests.test_locker.Bug_286.lock_container2.cons3
id1@{u} : forall T : Type@{u}, T -> T
(* u |= u < locked_with.u0 *)

id1 is universe polymorphic
Arguments id1 T%type_scope x
id1 is transparent
Expands to: Constant elpi.apps.locker.tests.test_locker.id1
Query assignments:
  GR = const «id1»
id2.body@{u} : forall T : Type@{u}, T -> T
(* u |= u < eq.u0 *)

id2.body is universe polymorphic
Arguments id2.body T%type_scope x
Expands to: Constant elpi.apps.locker.tests.test_locker.id2.body
Query assignments:
  GR = const «id2.body»
up1.body@{u} : forall T : Type@{u}, T -> T
(* u |= u < eq.u0 *)

up1.body is universe polymorphic
Arguments up1.body T%type_scope x
Expands to: Constant elpi.apps.locker.tests.test_locker.up1.body
Query assignments:
  GR = const «up1.body»
nup1.body : forall T : Type@{nup1.body.u0}, T -> T

nup1.body is not universe polymorphic
Arguments nup1.body T%type_scope x
Expands to: Constant elpi.apps.locker.tests.test_locker.nup1.body
Query assignments:
  GR = const «nup1.body»
up2.body@{u u0} :
forall T : Type@{u}, Type@{u0} -> T -> T
(* u u0 |= u < eq.u0
           u0 < eq.u0 *)

up2.body is universe polymorphic
Arguments up2.body (T W)%type_scope x
Expands to: Constant elpi.apps.locker.tests.test_locker.up2.body
Query assignments:
  GR = const «up2.body»
Debug:
elpi lets escape exception: Universe
                            elpi.apps.locker.tests.test_locker.161 (File "./apps/locker/tests/test_locker.v", line 113, characters 50-54)
                            is unbound.
Raised at UState.error_unbound_universes in file "engine/uState.ml", line 832, characters 41-74
Called from UState.universe_context_inst in file "engine/uState.ml", line 845, characters 9-58
Called from UState.check_poly_univ_decl in file "engine/uState.ml", line 901, characters 13-63
Called from UState.check_univ_decl in file "engine/uState.ml", line 917, characters 35-67
Called from Elpi_plugin__Rocq_elpi_builtins.add_axiom_or_variable in file "src/rocq_elpi_builtins.ml", line 913, characters 14-82
Called from Elpi_plugin__Rocq_elpi_builtins.coq_rest_builtins.(fun) in file "src/rocq_elpi_builtins.ml", line 2068, characters 20-86
Called from Elpi_plugin__Rocq_elpi_builtins.grab_global_env.(fun) in file "src/rocq_elpi_builtins.ml", line 141, characters 33-44
Called from Elpi_runtime__Runtime_trace_off.FFI.wrap_type_err in file "src/runtime/runtime_trace_off.ml", line 2125, characters 6-9
Called from Elpi_runtime__Runtime_trace_off.FFI.call.aux in file "src/runtime/runtime_trace_off.ml", line 2207, characters 32-92
Called from Elpi_runtime__Runtime_trace_off.FFI.call in file "src/runtime/runtime_trace_off.ml", line 2299, characters 21-70
Called from Elpi_runtime__Runtime_trace_off.Constraints.exect_builtin_predicate in file "src/runtime/runtime_trace_off.ml", line 3565, characters 20-83
Called from Elpi_runtime__Runtime_trace_off.Mainloop.make_runtime.run in file "src/runtime/runtime_trace_off.ml", line 3983, characters 19-90
Called from Elpi_util__Util.Fork.fork.ensure_runtime in file "src/utils/util.ml", line 523, characters 16-19
Re-raised at Elpi_util__Util.Fork.fork.ensure_runtime in file "src/utils/util.ml", line 532, characters 7-14
Called from Elpi_runtime__Runtime_trace_off.mk_outcome in file "src/runtime/runtime_trace_off.ml", line 4265, characters 14-23
Called from Elpi_runtime__Runtime_trace_off.execute_once in file "src/runtime/runtime_trace_off.ml", line 4282, characters 20-242
Re-raised at Elpi_runtime__Runtime_trace_off.execute_once in file "src/runtime/runtime_trace_off.ml", line 4287, characters 2-9
Called from Elpi__API.Execute.once in file "src/API.ml", line 235, characters 40-91
Called from Elpi_plugin__Rocq_elpi_vernacular.Compiler.run in file "src/rocq_elpi_vernacular.ml", line 145, characters 13-55
Re-raised at Exninfo.iraise in file "clib/exninfo.ml", line 81, characters 4-38
Called from Elpi_plugin__Rocq_elpi_vernacular.Compiler.run_and_print in file "src/rocq_elpi_vernacular.ml", line 166, characters 8-38
Called from Elpi_plugin__Rocq_elpi_vernacular.Interp.run_program.(fun) in file "src/rocq_elpi_vernacular.ml", line 557, characters 34-90

hello1
it = elpi_subproof
     : True
it : True

it is not universe polymorphic
it is transparent
Expands to: Constant elpi.tests.test_ltac.it
elpi_subproof = I
     : True
elpi_subproof : True

elpi_subproof is not universe polymorphic
elpi_subproof is opaque
Expands to: Constant elpi.tests.test_ltac.elpi_subproof
Closed under the global context
true : bool
     : bool
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 _ _
test1
str hello
str x
test1
too many arguments
[attribute elpi.loc 
  (leaf-loc
    File "./tests/test_vernacular2.v", line 10, column 24, characters 326-329:), 
 attribute elpi.phase (leaf-str interp), 
 attribute fwd_compat_attr (leaf-str )]
[attribute elpi.loc 
  (leaf-loc
    File "./tests/test_vernacular2.v", line 11, column 0, characters 331-354:), 
 attribute elpi.phase (leaf-str interp), 
 attribute fwd_compat_attr (leaf-str )]
File "./tests/test_vernacular2.v", line 6, characters 2-17:
Warning: This command does not support this attribute: fwd_compat_attr.
[unsupported-attributes,parsing,default]
File "./tests/test_vernacular2.v", line 7, characters 2-17:
Warning: This command does not support this attribute: fwd_compat_attr.
[unsupported-attributes,parsing,default]
File "./tests/test_vernacular2.v", line 8, characters 2-17:
Warning: This command does not support this attribute: fwd_compat_attr.
[unsupported-attributes,parsing,default]
File "./tests/test_vernacular2.v", line 9, characters 2-17:
Warning: This command does not support this attribute: fwd_compat_attr.
[unsupported-attributes,parsing,default]
File "./tests/test_vernacular2.v", line 10, characters 2-17:
Warning: This command does not support this attribute: fwd_compat_attr.
[unsupported-attributes,parsing,default]
ok
nth_R =
fun (T1 T2 : Type) (T_R : T1 -> T2 -> Type) (x01 : T1) 
  (x02 : T2) (x0_R : T_R x01 x02) =>
let rec1 :=
  fix rec (n : nat) (l : list T1) {struct n} : T1 :=
    match l with
    | nil => x01
    | (x :: xs)%list => match n with
                        | 0 => x
                        | S m => rec m xs
                        end
    end in
let rec2 :=
  fix rec (n : nat) (l : list T2) {struct n} : T2 :=
    match l with
    | nil => x02
    | (x :: xs)%list => match n with
                        | 0 => x
                        | S m => rec m xs
                        end
    end in
fix rec_R (n1 n2 : nat) (n_R : nat_R n1 n2) {struct n_R} :
    forall (l1 : list T1) (l2 : list T2),
    list_R T1 T2 T_R l1 l2 -> T_R (rec1 n1 l1) (rec2 n2 l2) :=
  match
    n_R in (nat_R s1 s2)
    return
      (forall (l1 : list T1) (l2 : list T2),
       list_R T1 T2 T_R l1 l2 -> T_R (rec1 s1 l1) (rec2 s2 l2))
  with
  | O_R =>
      let K := O_R in
      (fun (n3 n4 : nat) (n_R0 : nat_R n3 n4) (l1 : list T1) 
         (l2 : list T2) (l_R : list_R T1 T2 T_R l1 l2) =>
       match
         l_R in (list_R _ _ _ l3 l4)
         return
           (T_R
              match l3 with
              | nil => x01
              | (x :: xs)%list =>
                  match n3 with
                  | 0 => x
                  | S m => rec1 m xs
                  end
              end
              match l4 with
              | nil => x02
              | (x :: xs)%list =>
                  match n4 with
                  | 0 => x
                  | S m => rec2 m xs
                  end
              end)
       with
       | nil_R _ _ _ => x0_R
       | cons_R _ _ _ x1 x2 x_R xs1 xs2 xs_R =>
           match
             n_R0 in (nat_R n5 n6)
             return
               (T_R match n5 with
                    | 0 => x1
                    | S m => rec1 m xs1
                    end match n6 with
                        | 0 => x2
                        | S m => rec2 m xs2
                        end)
           with
           | O_R => x_R
           | S_R m1 m2 m_R => rec_R m1 m2 m_R xs1 xs2 xs_R
           end
       end) 0 0 K
  | S_R _1 _2 __R =>
      let K := S_R _1 _2 __R in
      (fun (n3 n4 : nat) (n_R0 : nat_R n3 n4) (l1 : list T1) 
         (l2 : list T2) (l_R : list_R T1 T2 T_R l1 l2) =>
       match
         l_R in (list_R _ _ _ l3 l4)
         return
           (T_R
              match l3 with
              | nil => x01
              | (x :: xs)%list =>
                  match n3 with
                  | 0 => x
                  | S m => rec1 m xs
                  end
              end
              match l4 with
              | nil => x02
              | (x :: xs)%list =>
                  match n4 with
                  | 0 => x
                  | S m => rec2 m xs
                  end
              end)
       with
       | nil_R _ _ _ => x0_R
       | cons_R _ _ _ x1 x2 x_R xs1 xs2 xs_R =>
           match
             n_R0 in (nat_R n5 n6)
             return
               (T_R match n5 with
                    | 0 => x1
                    | S m => rec1 m xs1
                    end match n6 with
                        | 0 => x2
                        | S m => rec2 m xs2
                        end)
           with
           | O_R => x_R
           | S_R m1 m2 m_R => rec_R m1 m2 m_R xs1 xs2 xs_R
           end
       end) (S _1) (S _2) K
  end
     : forall (T1 T2 : Type) (T_R : T1 -> T2 -> Type) (x01 : T1) (x02 : T2),
       T_R x01 x02 ->
       forall n1 n2 : nat,
       nat_R n1 n2 ->
       forall (l1 : list T1) (l2 : list T2),
       list_R T1 T2 T_R l1 l2 -> T_R (nth T1 x01 n1 l1) (nth T2 x02 n2 l2)

Arguments nth_R (T1 T2)%type_scope T_R%function_scope 
  x01 x02 x0_R (n1 n2)%nat_scope n_R (l1 l2)%list_scope 
  l_R
pred_R =
fun (n1 n2 : nat) (n_R : nat_R n1 n2) =>
match
  n_R in (nat_R n3 n4)
  return
    (nat_R match n3 with
           | 0 => n1
           | S u => u
           end match n4 with
               | 0 => n2
               | S u => u
               end)
with
| O_R => n_R
| S_R _ _ u_R => u_R
end
     : forall n1 n2 : nat, nat_R n1 n2 -> nat_R (Nat.pred n1) (Nat.pred n2)

Arguments pred_R (n1 n2)%nat_scope n_R
File "./apps/derive/tests/test_param2.v", line 85, characters 0-30:
Warning: Not a truly recursive fixpoint. [non-recursive,fixpoints,default]
Query assignments:
  X1 = «x1»
  X2 = «x2»
  X3 = «x3»
Query assignments:
  M = [[mode-ground], [mode-input]]
1
1
1.000000
1.2
Query assignments:
  C1 = «Nat.add»
  C2 = «times»
  X1 = tt
  X2 = ff
Query assignments:
  C1 = «x»
Query assignments:
  XX = «elpi.tests.test_API2.xx»
Query assignments:
  C1 = «x»
  M = «elpi.tests.test_API2.xx»
Query assignments:
  XX = «elpi.tests.test_API2.xx2»
Query assignments:
  C1 = «x»
  M = «elpi.tests.test_API2.xx2»
Query assignments:
  C1 = «x»
  M = «elpi.tests.test_API2.xx3»
Query assignments:
  X1_ = X0
  X2_ = X1
Syntactic constraints:
 evar (X1) (X2) (X1)  /* suspended on X1 */
 evar X3 (sort (typ «elpi.tests.test_API2.6»)) (X2)  /* suspended on X3, X2 */
 evar (X0) (X4) (X0)  /* suspended on X0 */
 evar X5 (sort (typ «elpi.tests.test_API2.5»)) (X4)  /* suspended on X5, X4 */
Universe constraints:
UNIVERSES:
 {elpi.tests.test_API2.6 elpi.tests.test_API2.5} |= 
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 α4
 α5
WEAK CONSTRAINTS:
 

Non-discriminated database
Unfoldable variable definitions: all
Unfoldable constant definitions: all
Unfoldable projection definitions: all
Cut: emp
For any goal ->   
For xeq ->   exact xxx(level 0, pattern 0 = _, id 0) 

Query assignments:
  X3_ = «elpi.tests.test_API2.7»
Universe constraints:
UNIVERSES:
 
ALGEBRAIC UNIVERSES:
 {elpi.tests.test_API2.7}
FLEXIBLE UNIVERSES:
 elpi.tests.test_API2.7
SORTS:
 
WEAK CONSTRAINTS:
 

Query assignments:
  %arg1 = «elpi.tests.test_API2.T»
Query assignments:
  GR = const const EXN PRINTING: Not_found
Query assignments:
  %arg1 = «elpi.tests.test_API2.F»
  %arg2 = «elpi.tests.test_API2.X»
«elpi.tests.test_API2.G»
Query assignments:
  G = «elpi.tests.test_API2.G»
Module G : Sig Definition id : X.T -> X.T. End := (F X)
Query assignments:
  %arg1 = «elpi.tests.test_API2.F»
  %arg2 = «elpi.tests.test_API2.X»
«elpi.tests.test_API2.H»
Query assignments:
  H = «elpi.tests.test_API2.H»
Module H : Sig Definition id : nat -> nat. End := (F X)
Query assignments:
  %arg1 = «elpi.tests.test_API2.T»
Query assignments:
  GR = const const EXN PRINTING: Not_found
Module Type FT = Funsig (P:T) Sig Parameter idT : P.T -> P.T. End
Query assignments:
  %arg1 = «elpi.tests.test_API2.FT»
  %arg2 = «elpi.tests.test_API2.X»
«elpi.tests.test_API2.GT»
Query assignments:
  G = «elpi.tests.test_API2.GT»
Module Type GT = Sig Parameter idT : X.T -> X.T. End
Query assignments:
  %arg1 = «elpi.tests.test_API2.FT»
  %arg2 = «elpi.tests.test_API2.X»
«elpi.tests.test_API2.HT»
Query assignments:
  H = «elpi.tests.test_API2.HT»
Module Type HT = Sig Parameter idT : nat -> nat. End
Query assignments:
  L = [«elpi.tests.test_API2.8», «elpi.tests.test_API2.9»]
  S = {{ elpi.tests.test_API2.8; elpi.tests.test_API2.9;  }}
  U = «elpi.tests.test_API2.8»
  UV = «elpi.tests.test_API2.8»
  V = «elpi.tests.test_API2.9»
  VV = «elpi.tests.test_API2.9»
Universe constraints:
UNIVERSES:
 {elpi.tests.test_API2.9 elpi.tests.test_API2.8} |= 
ALGEBRAIC UNIVERSES:
 {elpi.tests.test_API2.9 elpi.tests.test_API2.8}
FLEXIBLE UNIVERSES:
 elpi.tests.test_API2.9
 elpi.tests.test_API2.8
SORTS:
 
WEAK CONSTRAINTS:
 

Query assignments:
  X10_ = c0 \
X0 c0
  X11_ = X1
  X12_ = c0 \
X0 c0
  X13_ = X2
  X14_ = c0 \
X3 c0
  X15_ = c0 \ c1 \
X4 c0 c1
  X16_ = X5
  X17_ = c0 \
X6 c0
  X18_ = c0 \ c1 \
X7 c0 c1
  X19_ = X8
  X20_ = c0 \
X9 c0
  X21_ = c0 \ c1 \
X10 c0 c1
  X22_ = X8
  X4_ = X11
  X5_ = X11
  X6_ = X12
  X7_ = X13
  X8_ = c0 \
X14 c0
  X9_ = X1
Syntactic constraints:
 evar X8 (sort (typ «elpi.tests.test_API2.25»)) X8  /* suspended on X8 */
 evar X8 (sort (typ «elpi.tests.test_API2.28»)) X8  /* suspended on X8 */
 {c0 c1} : decl c1 `x` (X9 c0), decl c0 `z` X8
   ?- evar (X10 c0 c1) (sort (typ «elpi.tests.test_API2.27»)) (X10 c0 c1)  /* suspended on X10 */
 {c0} : decl c0 `z` X8
   ?- evar (X9 c0) (sort (typ «elpi.tests.test_API2.26»)) (X9 c0)  /* suspended on X9 */
 {c0 c1} : decl c1 `x` (X6 c0), decl c0 `z` X5
   ?- evar (X7 c0 c1) (sort (typ «elpi.tests.test_API2.24»)) (X7 c0 c1)  /* suspended on X7 */
 {c0} : decl c0 `z` X5
   ?- evar (X6 c0) (sort (typ «elpi.tests.test_API2.23»)) (X6 c0)  /* suspended on X6 */
 evar (X5) (sort (typ «elpi.tests.test_API2.22»)) (X5)  /* suspended on X5 */
 {c0 c1} : decl c1 `x` (X3 c0), decl c0 `z` X2
   ?- evar (X4 c0 c1) (sort (typ «elpi.tests.test_API2.21»)) (X4 c0 c1)  /* suspended on X4 */
 {c0} : decl c0 `z` X2
   ?- evar (X3 c0) (sort (typ «elpi.tests.test_API2.20»)) (X3 c0)  /* suspended on X3 */
 evar (X2) (sort (typ «elpi.tests.test_API2.19»)) (X2)  /* suspended on X2 */
 evar X1 (sort (typ «elpi.tests.test_API2.15»)) X1  /* suspended on X1 */
 evar X1 (sort (typ «elpi.tests.test_API2.17»)) X1  /* suspended on X1 */
 {c0} : decl c0 `x` X1
   ?- evar (X0 c0) (sort (typ «elpi.tests.test_API2.16»)) (X0 c0)  /* suspended on X0 */
 {c0} : decl c0 `x` X1
   ?- evar (X0 c0) (sort (typ «elpi.tests.test_API2.18»)) (X0 c0)  /* suspended on X0 */
 {c0} : decl c0 `x` X13
   ?- evar (X14 c0) (sort (typ «elpi.tests.test_API2.14»)) (X14 c0)  /* suspended on X14 */
 evar (X13) (sort (typ «elpi.tests.test_API2.13»)) (X13)  /* suspended on X13 */
 evar (X12) (sort (typ «elpi.tests.test_API2.12»)) (X12)  /* suspended on X12 */
 evar X11 (sort (typ «elpi.tests.test_API2.10»)) X11  /* suspended on X11 */
 evar X11 (sort (typ «elpi.tests.test_API2.11»)) X11  /* suspended on X11 */
Universe constraints:
UNIVERSES:
 {elpi.tests.test_API2.28 elpi.tests.test_API2.27 elpi.tests.test_API2.26
  elpi.tests.test_API2.25 elpi.tests.test_API2.24 elpi.tests.test_API2.23
  elpi.tests.test_API2.22 elpi.tests.test_API2.21 elpi.tests.test_API2.20
  elpi.tests.test_API2.19 elpi.tests.test_API2.18 elpi.tests.test_API2.17
  elpi.tests.test_API2.16 elpi.tests.test_API2.15 elpi.tests.test_API2.14
  elpi.tests.test_API2.13 elpi.tests.test_API2.12 elpi.tests.test_API2.11
  elpi.tests.test_API2.10} |= 
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 α6
 α7
 α8
 α9
 α10
 α11
 α12
 α13
 α14
 α15
 α16
 α17
 α18
 α19
 α20
 α21
 α22
 α23
 α24
WEAK CONSTRAINTS:
 

File "./tests/test_API2.v", line 127, characters 0-16:
Warning: Option Foo Bar is deprecated. elpi
[deprecated-option,deprecated,default]
File "./tests/test_API2.v", line 135, characters 0-14:
Warning: Option Foo Bar is deprecated. elpi
[deprecated-option,deprecated,default]
File "./tests/test_API2.v", line 216, characters 23-24:
Warning:
File "./tests/test_API2.v", line 216, characters 23-24
M is linear: name it _M (discard) or M_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_API2.v", line 224, characters 31-32:
Warning:
File "./tests/test_API2.v", line 224, characters 31-32
T is linear: name it _T (discard) or T_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./tests/test_API2.v", line 372, characters 0-228:
Warning:
Undeclared globals:
- File "./tests/test_API2.v", line 373, column 2, characters 8777-8787: test.
Please add the following text to your program:
type test term -> term -> prop.
[elpi.missing-types,elpi.typecheck,elpi,default]
program
[p]
global (indc «O»)
app
 [global (indc «S»), 
  app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]
In tc-A
In tc-A
In tc-B
In tc-A
In tc-B
In tc-A
c AX (BX AX) : C AX (BX AX)
     : C AX (BX AX)
Query assignments:
  S = app
 [global (const «c»), global (const «AX»), 
  app [global (const «BX»), X0]]
  X1_ = X0
  X2_ = global (const «AX»)
  X3_ = app [global (const «BX»), X0]
Syntactic constraints:
 evar (X0) (global (indt «A»)) (X0)  /* suspended on X0 */
Universe constraints:
UNIVERSES:
 {elpi.apps.tc.tests.hyp_in_conl.15 elpi.apps.tc.tests.hyp_in_conl.14
  elpi.apps.tc.tests.hyp_in_conl.13} |= 
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 α12
 α13
 α14 >= Prop
WEAK CONSTRAINTS:
 

Query assignments:
  Len = 2
  Rules = [tc.instance [] (const «Bool.Decidable_eq_bool») 
  (indt «DecidableClass.Decidable») [], 
 tc.instance [] (const «DecidableClass.Decidable_not») 
  (indt «DecidableClass.Decidable») []]
Query assignments:
  EqP = const «eqU»
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) Morphisms.rewrite_relation_fun
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (RelationClasses.equiv_rewrite_relation R)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Morphisms.eq_rewrite_relation A)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @RelationClasses.flip_StrictOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @Morphisms.PartialOrder_StrictOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @CRelationClasses.flip_StrictOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @CMorphisms.PartialOrder_StrictOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @RelationClasses.flip_PreOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @Morphisms.StrictOrder_PreOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @CRelationClasses.flip_PreOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @CMorphisms.StrictOrder_PreOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @CRelationClasses.flip_Antisymmetric)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @CRelationClasses.flip_Symmetric)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @CRelationClasses.complement_Symmetric)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @RelationClasses.PartialOrder_inverse)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @Morphisms.StrictOrder_PartialOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @Morphisms.eq_proper_proxy ||
                Init.class_apply @Morphisms.reflexive_proper_proxy)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (not_evar R; Init.class_apply @Morphisms.proper_proper_proxy)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) Morphisms.normalizes
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @Morphisms.flip2)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @Morphisms.flip1)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Morphisms.subrelation_tac T U)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (apply (Morphisms.forall_subrelation B R S); intro)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @RelationClasses.subrelation_symmetric)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @CRelationClasses.PartialOrder_inverse)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @CMorphisms.StrictOrder_PartialOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @RelationClasses.flip_Transitive)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @CMorphisms.flip2)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @CMorphisms.flip1)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (CMorphisms.subrelation_tac T U)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (apply (CMorphisms.forall_subrelation B R S); intro)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @CRelationClasses.subrelation_symmetric)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (apply @CMorphisms.flip_proper)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @CMorphisms.proper_flip_proper)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) CMorphisms.partial_application_tactic
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) CMorphisms.proper_subrelation
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) CMorphisms.proper_normalization
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) CMorphisms.proper_reflexive
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @CRelationClasses.flip_Transitive)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @RelationClasses.flip_Irreflexive)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @RelationClasses.complement_Irreflexive)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @RelationClasses.flip_Asymmetric)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (apply @Morphisms.flip_proper)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (apply @Morphisms.complement_proper)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @Morphisms.proper_flip_proper)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) Morphisms.partial_application_tactic
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) Morphisms.proper_subrelation
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) Morphisms.proper_normalization
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) Morphisms.proper_reflexive
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @CRelationClasses.flip_Irreflexive)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @CRelationClasses.complement_Irreflexive)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @CRelationClasses.flip_Asymmetric)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @RelationClasses.irreflexivity)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (apply RelationClasses.flip_Reflexive)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @CRelationClasses.irreflexivity)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (apply CRelationClasses.flip_Reflexive)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) Init.unconvertible
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @CMorphisms.eq_proper_proxy ||
                Init.class_apply @CMorphisms.reflexive_proper_proxy)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (not_evar R; Init.class_apply @CMorphisms.proper_proper_proxy)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) CMorphisms.normalizes
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @RelationClasses.flip_Antisymmetric)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @RelationClasses.flip_Symmetric)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Init.class_apply @RelationClasses.complement_Symmetric)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (Morphisms.reflexive_proxy_tac A R)
[elpi.TC.hints,elpi,default]
((fun (A : Type) (f : Type -> Type) (H : forall x : Type, Y (f x)) =>
  ex_intro (fun g : Type -> Type => Ex g A /\ g nat = g bool) f
    (conj (Inst2 A f H) ?Goal))
 :
 goal)
2 focused goals (shelved: 1)
  
  A : Type
  f : Type -> Type
  H : forall x : Type, Y (f x)
  ============================
  Ex ?g A

goal 2 is:
 ?g nat = ?g bool
1 focused goal (shelved: 1)
  
  A : Type
  f : Type -> Type
  H : forall x : Type, Y (f x)
  ============================
  (fun H0 : Type => f ?e0@{T:=H0}) nat =
  (fun H0 : Type => f ?e0@{T:=H0}) bool
[TC] For  indt «C» :
  elpi predicate : tc-C
  search mode is : tc.deterministic
  modes are      : [o, o]
All the remaining goals are on the shelf.

1 goal

goal 1 is:
 C
1 goal
  
  ============================
  C
All the remaining goals are on the shelf.

1 goal

goal 1 is:
 C
1 goal
  
  ============================
  C
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) rewrite_relation_fun
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (equiv_rewrite_relation R)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (eq_rewrite_relation A)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @flip_StrictOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @PartialOrder_StrictOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CRelationClasses.flip_StrictOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CMorphisms.PartialOrder_StrictOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @flip_PreOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @StrictOrder_PreOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CRelationClasses.flip_PreOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CMorphisms.StrictOrder_PreOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CRelationClasses.flip_Antisymmetric)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CRelationClasses.flip_Symmetric)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CRelationClasses.complement_Symmetric)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @PartialOrder_inverse)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @StrictOrder_PartialOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @eq_proper_proxy ||
                class_apply @reflexive_proper_proxy)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (not_evar R; class_apply @proper_proper_proxy)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) normalizes
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @flip2)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @flip1)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (subrelation_tac T U)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (apply (forall_subrelation B R S); intro)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @subrelation_symmetric)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CRelationClasses.PartialOrder_inverse)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CMorphisms.StrictOrder_PartialOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @flip_Transitive)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CMorphisms.flip2)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CMorphisms.flip1)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (CMorphisms.subrelation_tac T U)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (apply (CMorphisms.forall_subrelation B R S); intro)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CRelationClasses.subrelation_symmetric)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (apply @CMorphisms.flip_proper)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CMorphisms.proper_flip_proper)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) CMorphisms.partial_application_tactic
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) CMorphisms.proper_subrelation
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) CMorphisms.proper_normalization
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) CMorphisms.proper_reflexive
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CRelationClasses.flip_Transitive)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @flip_Irreflexive)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @complement_Irreflexive)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @flip_Asymmetric)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (apply @flip_proper)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (apply @complement_proper)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @proper_flip_proper)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) partial_application_tactic
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) proper_subrelation
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) proper_normalization
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) proper_reflexive
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CRelationClasses.flip_Irreflexive)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CRelationClasses.complement_Irreflexive)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CRelationClasses.flip_Asymmetric)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @irreflexivity)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (apply flip_Reflexive)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CRelationClasses.irreflexivity)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (apply CRelationClasses.flip_Reflexive)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) unconvertible
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CMorphisms.eq_proper_proxy ||
                class_apply @CMorphisms.reflexive_proper_proxy)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (not_evar R; class_apply @CMorphisms.proper_proper_proxy)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) CMorphisms.normalizes
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @flip_Antisymmetric)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @flip_Symmetric)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @complement_Symmetric)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (reflexive_proxy_tac A R)
[elpi.TC.hints,elpi,default]
Debug:
Calling typeclass resolution with flags: depth = ∞,unique = false,fail = true
Debug: 1: looking for (C ?i) with backtracking
Debug: 1.1: exact i2 on (C ?i), 0 subgoal(s)
Debug: 2: looking for (E 2) without backtracking
Debug: 2: no match for (E 2), 0 possibilities
Debug: 1.2: exact i1 on (C ?i), 0 subgoal(s)
Debug: 2: looking for (E 1) without backtracking
Debug: 2.1: exact e1 on (E 1), 0 subgoal(s)
Debug:
Calling typeclass resolution with flags: depth = ∞,unique = false,fail = true
Debug: 1: looking for (C ?i) with backtracking
Debug: 1.1: exact i2 on (C ?i), 0 subgoal(s)
Debug:
Calling typeclass resolution with flags: depth = ∞,unique = false,fail = true
Debug: 1: looking for (E 2) without backtracking
Debug: 1: no match for (E 2), 0 possibilities
Debug: 1: looking for (C ?i) with backtracking
Debug: 1.1: exact i2 on (C ?i), 0 subgoal(s)
Debug: 2: looking for (E 2) without backtracking
Debug: 2: no match for (E 2), 0 possibilities
Debug: 1.2: exact i1 on (C ?i), 0 subgoal(s)
Debug: 2: looking for (E 1) without backtracking
Debug: 2.1: exact e1 on (E 1), 0 subgoal(s)
[seal (goal [] (X0) (app [global (indt «C»), X1]) (X2) []), 
 seal (goal [] (X3) (app [global (indt «E»), X1]) (X4) [])]
Goal is C ?i
Solution for C 2 is i2
Goal is E 2
Solution for C 1 is i1
Goal is E 1
Solution for E 1 is e1
(fun x : tele => tele_fmap)
Normalizing app [global (indt «nat2»), global (const «Nat.succ»)]
Normalizing app [global (indt «nat2»), global (indc «S»)]
Normalizing app [global (indt «nat2»), global (const «Nat.succ»)]
Now click "Start watching" in the Elpi Trace Browser panel and then execute
the Command/Tactic/Query you want to trace. Also try "F1 Elpi".
(fun H : C Q =>
 ex_intro (fun T : Type -> Type => forall R : Type -> Type, C R -> C T) Q
   (fun (R : Type -> Type) (_ : C R) => let H1 : C Q := H in H1))
Now click "Start watching" in the Elpi Trace Browser panel and then execute
the Command/Tactic/Query you want to trace. Also try "F1 Elpi".
(fun (T : Type) (p : nat -> T -> T -> Prop) (x : T) => partial_app T (p 0) x)
eq_refl
:
ex1 =
(fun (T : Type) (p : nat -> T -> T -> Prop) (x : T) => partial_app T (p 0) x)
     : ex1 =
       (fun (T : Type) (p : nat -> T -> T -> Prop) (x : T) =>
        partial_app T (p 0) x)
eq_refl
:
ex2 =
(fun (T : Type) (p : nat -> T -> T -> Prop) (y : T) => partial_app T (p 0) y)
     : ex2 =
       (fun (T : Type) (p : nat -> T -> T -> Prop) (y : T) =>
        partial_app T (p 0) y)
(ex_intro
   (fun R : Type -> Type => C (fun _ : Type => R nat) /\ R bool = f nat) f
   (conj I ?Goal))
eq_refl : ex1 = fun_1 nat (fun _ : nat => nat)
     : ex1 = fun_1 nat (fun _ : nat => nat)
eq_refl : ex2 = fun_1 nat (fun a : nat => a = a + 1)
     : ex2 = fun_1 nat (fun a : nat => a = a + 1)
Debug:
Calling typeclass resolution with flags: depth = ∞,unique = false,fail = true
Debug:
Calling typeclass resolution with flags: depth = ∞,unique = false,fail = true
Debug:
Calling typeclass resolution with flags: depth = ∞,unique = false,fail = true
Debug:
Calling typeclass resolution with flags: depth = ∞,unique = false,fail = true
Debug: 1: looking for (Decision (Exists (?P z y) l)) with backtracking
Debug: 1.1: simple apply Exists_dec on
(Decision (Exists (?P z y) l)), 1 subgoal(s)
Debug: 1.1-1 : (forall x : A, Decision (?P z y x))
Debug:
1.1-1: looking for (forall x : A, Decision (?P z y x)) with backtracking
Debug: 1.1-1.1: simple apply H on
(forall x : A, Decision (?P z y x)), 0 subgoal(s)
Debug:
Calling typeclass resolution with flags: depth = ∞,unique = false,fail = true
Debug: [tactic-unification] Starting unification: Prop ~= Type
Debug: [tactic-unification] Leaving unification with success
Debug: [tactic-unification] Starting unification: ?T ~= D
Debug: [tactic-unification] ?T ~= D
Debug: [tactic-unification] Leaving unification with success
Debug:
Calling typeclass resolution with flags: depth = ∞,unique = false,fail = true
Debug: 1: looking for D without backtracking
Debug: [tactic-unification] Starting unification: D ~= D
Debug: [tactic-unification] Leaving unification with success
Debug: 1.1: simple eapply I on D, 1 subgoal(s)
Debug: 1.1-1 : (C1 ?T (fun x : Type => ?H x))
Debug: 1.1-1: looking for (C1 ?T (fun x : Type => ?H x)) with backtracking
Debug:
[tactic-unification]
  Starting unification:
  C1 T H
  ~=
  C1 ?T (fun x : Type => ?H x)
Debug: [tactic-unification] C1 T H ~= C1 ?T (fun x : Type => ?H x)
Debug: [tactic-unification] C1 ~= C1
Debug: [tactic-unification] T ~= ?T
Debug: [tactic-unification] H ~= fun x : Type => ?H x
Debug: [tactic-unification] Leaving unification with failure
Debug: 1.1-1: no match for (C1 ?T (fun x : Type => ?H x)), 1 possibilities
Debug: [tactic-unification] Starting unification: Prop ~= Type
Debug: [tactic-unification] Leaving unification with success
Debug: [tactic-unification] Starting unification: ?T ~= D
Debug: [tactic-unification] ?T ~= D
Debug: [tactic-unification] Leaving unification with success
Debug:
Calling typeclass resolution with flags: depth = ∞,unique = false,fail = true
Debug: [tactic-unification] Starting unification: Prop ~= Type
Debug: [tactic-unification] Leaving unification with success
Debug: [tactic-unification] Starting unification: ?T ~= D
Debug: [tactic-unification] ?T ~= D
Debug: [tactic-unification] Leaving unification with success
Debug: [tactic-unification] Starting unification: D ~= D
Debug: [tactic-unification] Leaving unification with success
Debug:
[tactic-unification]
  Starting unification:
  C2 T (fun x : Type => H x)
  ~=
  C2 ?T ?H
Debug: [tactic-unification] C2 T (fun x : Type => H x) ~= C2 ?T ?H
Debug: [tactic-unification] C2 ~= C2
Debug: [tactic-unification] T ~= ?T
Debug: [tactic-unification] fun x : Type => H x ~= ?H
Debug: [tactic-unification] Leaving unification with success
Debug: [tactic-unification] Starting unification: Prop ~= Type
Debug: [tactic-unification] Leaving unification with success
Debug:
[tactic-unification]
  Starting unification:
  ?T
  ~=
  forall (T : Type -> Type) (H : forall x : Type, T x),
  C2 T (fun x : Type => H x) -> D
Debug:
[tactic-unification]
  ?T
  ~=
  forall (T : Type -> Type) (H : forall x : Type, T x),
  C2 T (fun x : Type => H x) -> D
Debug: [tactic-unification] Leaving unification with success
Debug:
[tactic-unification]
  Starting unification:
  forall (T : Type -> Type) (H : forall x : Type, T x), C2 T H -> D
  ~=
  forall (T : Type -> Type) (H : forall x : Type, T x),
  C2 T (fun x : Type => H x) -> D
Debug: [tactic-unification] Leaving unification with success
Query assignments:
  S = app
 [global (const «IsAnimal»), global (indc «Fly»), global (const «dove»)]
Query assignments:
  S = X0
File "./apps/tc/tests/test_tc_declare.v", line 8, characters 2-36:
Warning:
This command does not fully mirror the watned behavior if the class has methods
with implicit arguments (those implicits will be neglected)
[[TC] Warning,TC.Declare,elpi,default]
File "./apps/tc/tests/test_tc_declare.v", line 20, characters 2-53:
Warning:
This command does not fully mirror the watned behavior if the class has methods
with implicit arguments (those implicits will be neglected)
[[TC] Warning,TC.Declare,elpi,default]
File "./apps/tc/tests/test_tc_declare.v", line 50, characters 2-47:
Warning:
This command does not fully mirror the watned behavior if the class has methods
with implicit arguments (those implicits will be neglected)
[[TC] Warning,TC.Declare,elpi,default]
File "./apps/tc/tests/test_tc_declare.v", line 63, characters 2-51:
Warning:
This command does not fully mirror the watned behavior if the class has methods
with implicit arguments (those implicits will be neglected)
[[TC] Warning,TC.Declare,elpi,default]
Instances list for indt «Eqb» is:
const «eqBool» with locality []
const «eqProd» with locality []
Instances list for indt «DecidableClass.Decidable» is:
const «Decidable_eq_bool» with locality []
const «DecidableClass.Decidable_not» with locality []
[TC] For  indt «Eqb» :
  elpi predicate : tc-elpi.apps.tc.examples.tutorial.tc-Eqb
  search mode is : tc.classic
  modes are      : [o, o]
Instances list for indt «Eqb» is:
const «eqProd'» with locality [get-option coq:locality local]
const «HB» with locality [get-option coq:locality local]
const «HA» with locality [get-option coq:locality local]
const «eqBool» with locality []
const «eqProd» with locality []
Instances list for indt «Eqb» is:
const «eqBool» with locality []
const «eqProd'» with locality [get-option coq:locality global]
const «eqProd» with locality []
[TC] For  indt «Eqb» :
  elpi predicate : tc-elpi.apps.tc.examples.tutorial.tc-Eqb
  search mode is : tc.classic
  modes are      : [o, o]
Instances list for indt «Eqb» is:
const «eqBool» with locality []
const «eqProd'» with locality [get-option coq:locality global]
const «eqProd» with locality []
Instances list for indt «DecidableClass.Decidable» is:
const «Decidable_eq_bool» with locality []
const «DecidableClass.Decidable_not» with locality []
File "./apps/eltac/tests-stdlib/test_injection.v", line 15, characters 0-15:
Warning: Using Vector.t is known to be technically difficult, see
<https://github.com/coq/coq/blob/master/theories/Vectors/Vector.v>.
[warn-library-file-stdlib-vector,stdlib-vector,warn-library-file,user-warn,default]
Debug: [elpitime] Elpi: get_and_compile 0.0001
Debug: [TC] - Time of instance search is 0.000076
Debug: [TC] - Time of refine.typecheck is 0.000187
Debug:
[elpitime]
  Elpi: query-compilation:0.0001 static-check:0.0000 optimization:0.0001 runtime:0.0017 (with success)

Finished transaction in 0.002 secs (0.002u,0.s) (successful)
Query assignments:
  T = c0 \
prod `c` X0 c1 \
 prod `_` (prod `a` X1 c2 \ app [global X2, app [c0, c2], c1]) c2 \
  app [global X3, c0, c1]
Good padding from here
Query assignments:
  ToCompile = prod `T` 
 (prod `_` (sort (typ X0)) c0 \
   prod `_` (sort (typ X1)) c1 \ prod `_` (sort (typ X2)) c2 \ sort (typ X3)) 
 c0 \
 prod `_` (prod `a` (sort (typ X4)) c1 \ app [global (indt «d»), c1, c0]) 
  c1 \ app [global (indt «c»), c0]
  X1_ = X0
  X2_ = X1
  X3_ = X2
  X4_ = X3
  X5_ = X4
Finished transaction in 0.107 secs (0.031u,0.s) (successful)
Query assignments:
  A = c0 \
c0
  A2 = X0
  X6_ = X1
  X7_ = X2
Query assignments:
  N = s (s z)
  X10_ = X0
  X11_ = c0 \
X1 c0
  X8_ = «elpi.apps.tc.tests.test.140»
  X9_ = «elpi.apps.tc.tests.test.141»
Syntactic constraints:
 {c0 c1} : decl c1 `elpi_ctx_entry_1_` X0
   ?- evar (X1 c1) (sort (typ «elpi.apps.tc.tests.test.143»)) (X1 c1)  /* suspended on X1 */
 {c0} : evar X0 (sort (typ «elpi.apps.tc.tests.test.142»)) X0  /* suspended on X0 */
Universe constraints:
UNIVERSES:
 {elpi.apps.tc.tests.test.143 elpi.apps.tc.tests.test.142
  elpi.apps.tc.tests.test.141 elpi.apps.tc.tests.test.140} |= 
 
ALGEBRAIC UNIVERSES:
 {elpi.apps.tc.tests.test.141 elpi.apps.tc.tests.test.140}
FLEXIBLE UNIVERSES:
 elpi.apps.tc.tests.test.141
 elpi.apps.tc.tests.test.140
SORTS:
 α125
 α126
WEAK CONSTRAINTS:
 

Query assignments:
  N = s z
  X12_ = X0
  X13_ = «elpi.apps.tc.tests.test.253»
  X14_ = «elpi.apps.tc.tests.test.254»
Syntactic constraints:
 {c0} : evar X0 (sort (typ «elpi.apps.tc.tests.test.255»)) X0  /* suspended on X0 */
Universe constraints:
UNIVERSES:
 {elpi.apps.tc.tests.test.255 elpi.apps.tc.tests.test.254
  elpi.apps.tc.tests.test.253} |= 
ALGEBRAIC UNIVERSES:
 {elpi.apps.tc.tests.test.254 elpi.apps.tc.tests.test.253}
FLEXIBLE UNIVERSES:
 elpi.apps.tc.tests.test.254
 elpi.apps.tc.tests.test.253
SORTS:
 α191
WEAK CONSTRAINTS:
 

Query assignments:
  X15_ = X0
Syntactic constraints:
 evar (X1) (X2) (X1)  /* suspended on X1 */
 evar X3 (sort (typ «elpi.apps.tc.tests.test.292»)) (X2)  /* suspended on X3, X2 */
Universe constraints:
UNIVERSES:
 {elpi.apps.tc.tests.test.292} |= 
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 α208
WEAK CONSTRAINTS:
 

Query assignments:
  N = s (s z)
  X16_ = «elpi.apps.tc.tests.test.318»
  X17_ = «elpi.apps.tc.tests.test.319»
  X18_ = «elpi.apps.tc.tests.test.320»
  X19_ = «elpi.apps.tc.tests.test.321»
  X20_ = X0
Syntactic constraints:
 {c0 c1} : evar X0 (sort (typ «elpi.apps.tc.tests.test.322»)) X0  /* suspended on X0 */
Universe constraints:
UNIVERSES:
 {elpi.apps.tc.tests.test.322 elpi.apps.tc.tests.test.321
  elpi.apps.tc.tests.test.320 elpi.apps.tc.tests.test.319
  elpi.apps.tc.tests.test.318} |= 
ALGEBRAIC UNIVERSES:
 {elpi.apps.tc.tests.test.321 elpi.apps.tc.tests.test.320
  elpi.apps.tc.tests.test.319 elpi.apps.tc.tests.test.318}
FLEXIBLE UNIVERSES:
 elpi.apps.tc.tests.test.321
 elpi.apps.tc.tests.test.320
 elpi.apps.tc.tests.test.319
 elpi.apps.tc.tests.test.318
SORTS:
 α224
WEAK CONSTRAINTS:
 

fun `_` X0 c0 \ global (indc «O»)
Query assignments:
  P = c0 \ c1 \
fun `_` X0 c2 \ global (indc «O»)
  X22_ = X0
  X23_ = X0
app
 [global (indt «c1»), 
  tc.maybe-eta-tm
   (fun `x` (X0) c0 \
     tc.maybe-eta-tm (fun `y` (X1 c0) c1 \ app [X2, c1, c0]) [c0]) []]
Query assignments:
  A = c0 \
fun `y` (X1 c0) c1 \ app [X2, c1, c0]
  Expected = app
 [global (indt «c1»), 
  tc.maybe-eta-tm
   (fun `x` (X0) c0 \
     tc.maybe-eta-tm (fun `y` (X1 c0) c1 \ app [X2, c1, c0]) [c0]) []]
  F = X2
  Inn = c0 \
tc.maybe-eta-tm (fun `y` (X1 c0) c1 \ app [X2, c1, c0]) [c0]
  T = app
 [global (indt «c1»), 
  tc.maybe-eta-tm
   (fun `x` (X0) c0 \
     tc.maybe-eta-tm (fun `y` (X1 c0) c1 \ app [X2, c1, c0]) [c0]) []]
  X24_ = X0
  X25_ = c0 \
X1 c0
Syntactic constraints:
 evar (X2) (X3) (X2)  /* suspended on X2 */
 {c0} : decl c0 `x` X0
   ?- evar (X1 c0) (sort (typ «elpi.apps.tc.tests.test.394»)) (X1 c0)  /* suspended on X1 */
 evar (X0) (sort (typ «elpi.apps.tc.tests.test.393»)) (X0)  /* suspended on X0 */
 evar X4 (sort (typ «elpi.apps.tc.tests.test.395»)) (X3)  /* suspended on X4, X3 */
Universe constraints:
UNIVERSES:
 {elpi.apps.tc.tests.test.395 elpi.apps.tc.tests.test.394
  elpi.apps.tc.tests.test.393} |= 
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 α283
 α284
 α285
WEAK CONSTRAINTS:
 

Query assignments:
  A = X0
  Body1 = c0 \
tc.maybe-eta-tm
 (fun `y` X1 c1 \
   tc.maybe-llam-tm (app [app [X2], app [X0, c0, c1], c1]) [c0, c1]) [
 c0]
  Body2 = c0 \ c1 \
tc.maybe-llam-tm (app [app [X2], app [X0, c0, c1], c1]) [c0, c1]
  C = app
 [global (indt «c1»), 
  tc.maybe-eta-tm
   (fun `x` X3 c0 \
     tc.maybe-eta-tm
      (fun `y` X1 c1 \
        tc.maybe-llam-tm (app [app [X2], app [X0, c0, c1], c1]) [c0, c1]) 
      [c0]) []]
  Expected = app
 [global (indt «c1»), 
  tc.maybe-eta-tm
   (fun `x` X3 c0 \
     tc.maybe-eta-tm
      (fun `y` X1 c1 \
        tc.maybe-llam-tm (app [app [X2], app [X0, c0, c1], c1]) [c0, c1]) 
      [c0]) []]
  X = X2
  X26_ = X3
  X27_ = c0 \
X1
  Y = c0 \ c1 \
app [X0, c0, c1]
Query assignments:
  A = X0
  Body1 = c0 \
tc.maybe-eta-tm
 (fun `y` X1 c1 \
   tc.maybe-llam-tm (app [app [X2], app [X0, c0, c1], c1]) [c1, c0]) [
 c0]
  Body2 = c0 \ c1 \
tc.maybe-llam-tm (app [app [X2], app [X0, c0, c1], c1]) [c1, c0]
  C = app
 [global (indt «c1»), 
  tc.maybe-eta-tm
   (fun `x` (X3) c0 \
     tc.maybe-eta-tm
      (fun `y` X1 c1 \
        tc.maybe-llam-tm (app [app [X2], app [X0, c0, c1], c1]) [c1, c0]) 
      [c0]) []]
  Expected = app
 [global (indt «c1»), 
  tc.maybe-eta-tm
   (fun `x` (X3) c0 \
     tc.maybe-eta-tm
      (fun `y` X1 c1 \
        tc.maybe-llam-tm (app [app [X2], app [X0, c0, c1], c1]) [c1, c0]) 
      [c0]) []]
  X = X2
  X28_ = X3
  X29_ = c0 \
X1
  Y = c0 \ c1 \
app [X0, c0, c1]
Syntactic constraints:
 {c0} : decl c0 `x` X3
   ?- evar X1 (sort (typ «elpi.apps.tc.tests.test.506»)) X1  /* suspended on X1 */
 evar (X0) (X4) (X0)  /* suspended on X0 */
 evar (X2) (X5) (X2)  /* suspended on X2 */
 evar (X3) (sort (typ «elpi.apps.tc.tests.test.505»)) (X3)  /* suspended on X3 */
 evar X6 (sort (typ «elpi.apps.tc.tests.test.508»)) (X4)  /* suspended on X6, X4 */
 evar X7 (sort (typ «elpi.apps.tc.tests.test.507»)) (X5)  /* suspended on X7, X5 */
Universe constraints:
UNIVERSES:
 {elpi.apps.tc.tests.test.508 elpi.apps.tc.tests.test.507
  elpi.apps.tc.tests.test.506 elpi.apps.tc.tests.test.505} |= 
 
ALGEBRAIC UNIVERSES:
 {}
FLEXIBLE UNIVERSES:
 
SORTS:
 α335
 α336
 α337
 α338
WEAK CONSTRAINTS:
 

File "./apps/tc/tests/test.v", line 121, characters 61-65:
Warning:
File "./apps/tc/tests/test.v", line 121, characters 61-65
A is linear: name it _A (discard) or A_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./apps/tc/tests/test.v", line 131, characters 59-60:
Warning:
File "./apps/tc/tests/test.v", line 131, characters 59-60
N is linear: name it _N (discard) or N_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./apps/tc/tests/test.v", line 249, characters 66-67:
Warning:
File "./apps/tc/tests/test.v", line 249, characters 66-67
N is linear: name it _N (discard) or N_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./apps/tc/tests/test.v", line 340, characters 63-64:
Warning:
File "./apps/tc/tests/test.v", line 340, characters 63-64
N is linear: name it _N (discard) or N_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./apps/tc/tests/test.v", line 461, characters 37-40:
Warning:
File "./apps/tc/tests/test.v", line 461, characters 37-40
A is linear: name it _A (discard) or A_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./apps/tc/tests/test.v", line 456, characters 44-45:
Warning:
File "./apps/tc/tests/test.v", line 456, characters 44-45
F is linear: name it _F (discard) or F_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./apps/tc/tests/test.v", line 515, characters 46-47:
Warning:
File "./apps/tc/tests/test.v", line 515, characters 46-47
A is linear: name it _A (discard) or A_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./apps/tc/tests/test.v", line 518, characters 51-56:
Warning:
File "./apps/tc/tests/test.v", line 518, characters 51-56
Y is linear: name it _Y (discard) or Y_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./apps/tc/tests/test.v", line 555, characters 50-51:
Warning:
File "./apps/tc/tests/test.v", line 555, characters 50-51
A is linear: name it _A (discard) or A_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
File "./apps/tc/tests/test.v", line 558, characters 51-56:
Warning:
File "./apps/tc/tests/test.v", line 558, characters 51-56
Y is linear: name it _Y (discard) or Y_ (fresh variable)
[elpi.linear-variable,elpi.typecheck,elpi,default]
Received the following event 
[str new_instance, str I4, str A, str Export, int -1]
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)
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) rewrite_relation_fun
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (equiv_rewrite_relation R)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (eq_rewrite_relation A)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @flip_StrictOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @PartialOrder_StrictOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CRelationClasses.flip_StrictOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CMorphisms.PartialOrder_StrictOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @flip_PreOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @StrictOrder_PreOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CRelationClasses.flip_PreOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CMorphisms.StrictOrder_PreOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CRelationClasses.flip_Antisymmetric)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CRelationClasses.flip_Symmetric)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CRelationClasses.complement_Symmetric)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @PartialOrder_inverse)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @StrictOrder_PartialOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @eq_proper_proxy ||
                class_apply @reflexive_proper_proxy)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (not_evar R; class_apply @proper_proper_proxy)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) normalizes
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @flip2)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @flip1)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (subrelation_tac T U)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (apply (forall_subrelation B R S); intro)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @subrelation_symmetric)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CRelationClasses.PartialOrder_inverse)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CMorphisms.StrictOrder_PartialOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @flip_Transitive)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CMorphisms.flip2)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CMorphisms.flip1)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (CMorphisms.subrelation_tac T U)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (apply (CMorphisms.forall_subrelation B R S); intro)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CRelationClasses.subrelation_symmetric)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (apply @CMorphisms.flip_proper)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CMorphisms.proper_flip_proper)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) CMorphisms.partial_application_tactic
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) CMorphisms.proper_subrelation
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) CMorphisms.proper_normalization
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) CMorphisms.proper_reflexive
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CRelationClasses.flip_Transitive)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @flip_Irreflexive)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @complement_Irreflexive)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @flip_Asymmetric)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (apply @flip_proper)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (apply @complement_proper)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @proper_flip_proper)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) partial_application_tactic
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) proper_subrelation
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) proper_normalization
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) proper_reflexive
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CRelationClasses.flip_Irreflexive)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CRelationClasses.complement_Irreflexive)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CRelationClasses.flip_Asymmetric)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @irreflexivity)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (apply flip_Reflexive)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CRelationClasses.irreflexivity)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (apply CRelationClasses.flip_Reflexive)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) unconvertible
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @CMorphisms.eq_proper_proxy ||
                class_apply @CMorphisms.reflexive_proper_proxy)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (not_evar R; class_apply @CMorphisms.proper_proper_proxy)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) CMorphisms.normalizes
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @flip_Antisymmetric)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @flip_Symmetric)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @complement_Symmetric)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 21, characters 0-19:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (reflexive_proxy_tac A R)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 520, characters 0-134:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @flip_PreOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 520, characters 0-134:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @StrictOrder_PreOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 520, characters 0-134:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @flip_PreOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 520, characters 0-134:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @StrictOrder_PreOrder)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 1710, characters 0-186:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (apply @flip_proper)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 1710, characters 0-186:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (apply @complement_proper)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 1710, characters 0-186:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @proper_flip_proper)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 1710, characters 0-186:
Warning:
There is an hint extern in the typeclass db: 
(*external*) partial_application_tactic
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 1710, characters 0-186:
Warning:
There is an hint extern in the typeclass db: 
(*external*) proper_subrelation
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 1710, characters 0-186:
Warning:
There is an hint extern in the typeclass db: 
(*external*) proper_normalization
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 1710, characters 0-186:
Warning:
There is an hint extern in the typeclass db: 
(*external*) proper_reflexive
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 1710, characters 0-186:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (apply @flip_proper)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 1710, characters 0-186:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (apply @complement_proper)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 1710, characters 0-186:
Warning:
There is an hint extern in the typeclass db: 
(*external*) (class_apply @proper_flip_proper)
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 1710, characters 0-186:
Warning:
There is an hint extern in the typeclass db: 
(*external*) partial_application_tactic
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 1710, characters 0-186:
Warning:
There is an hint extern in the typeclass db: 
(*external*) proper_subrelation
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 1710, characters 0-186:
Warning:
There is an hint extern in the typeclass db: 
(*external*) proper_normalization
[elpi.TC.hints,elpi,default]
File "./apps/tc/tests-stdlib/bigTest.v", line 1710, characters 0-186:
Warning:
There is an hint extern in the typeclass db: 
(*external*) proper_reflexive
[elpi.TC.hints,elpi,default]
Inductive peano : Set :=  Zero : peano | Succ : peano -> peano.

Arguments peano.Succ p
     = if pos_eq_dec (BinNums.xO BinNums.xH) BinNums.xH then true else false
     : bool
peano.eqb_OK : forall x1 x2 : peano, reflect (x1 = x2) (peano.eqb x1 x2)

peano.eqb_OK is not universe polymorphic
Arguments peano.eqb_OK x1 x2
peano.eqb_OK is opaque
Expands to: Constant elpi.apps.derive.examples.readme.peano.eqb_OK
Derivation param1 on const «Nat.add»
Derivation param1 on const «Nat.add» took 0.002878
Derivation param2 on const «Nat.add»
Derivation param2 on const «Nat.add» took 0.003403
Derivation eqb-alias on const «Nat.add»
Derivation eqb-alias on const «Nat.add» failed, continuing
Derivation eqbcorrect-alias on const «Nat.add»
Derivation eqbcorrect-alias on const «Nat.add» failed, continuing
Derivation eqbOK-alias on const «Nat.add»
Derivation eqbOK-alias on const «Nat.add» failed, continuing
is_add
     : forall n : nat, is_nat n -> forall m : nat, is_nat m -> is_nat (n + m)
more : forall A : Type, A -> tickle A -> tickle A
     : forall A : Type, A -> tickle A -> tickle A
tickle.eqb
:
forall A : Type, (A -> A -> bool) -> tickle A -> tickle A -> bool
     : forall A : Type, (A -> A -> bool) -> tickle A -> tickle A -> bool
tickle.eqb_OK
:
forall (A : Type) (f : A -> A -> bool),
(forall x y : A, reflect (x = y) (f x y)) ->
forall x y : tickle A, reflect (x = y) (tickle.eqb A f x y)
     : forall (A : Type) (f : A -> A -> bool),
       (forall x y : A, reflect (x = y) (f x y)) ->
       forall x y : tickle A, reflect (x = y) (tickle.eqb A f x y)
tickle.map : forall A B : Type, (A -> B) -> tickle A -> tickle B
     : forall A B : Type, (A -> B) -> tickle A -> tickle B
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
Starting module rtree
Declaring inductive 
parameter A explicit (sort (typ «elpi.apps.derive.examples.usage.194»)) 
 c0 \
 inductive rtree tt 
  (arity (sort (typ «elpi.apps.derive.examples.usage.195»))) c1 \
  [constructor Leaf (arity (prod `a` c0 c2 \ c1)), 
   constructor Node 
    (arity (prod `l` (app [global (indt «tickle.tickle»), c1]) c2 \ c1))]
Deriving
Derivation map on indt «rtree»
Derivation map on indt «rtree» took 0.001819
Derivation lens on indt «rtree»
Derivation lens on indt «rtree» failed, continuing
Derivation param1 on indt «rtree»
Derivation param1 on indt «rtree» took 0.004966
Derivation param2 on indt «rtree»
Derivation param2 on indt «rtree» took 0.006877
Derivation tag on indt «rtree»
Derivation tag on indt «rtree» took 0.000983
Derivation eqType_ast on indt «rtree»
Derivation eqType_ast on indt «rtree» took 0.000393
Derivation lens_laws on indt «rtree»
Derivation lens_laws on indt «rtree» took 0.000048
Derivation param1_congr on indt «rtree»
Derivation param1_congr on indt «rtree» took 0.001990
Derivation param1_inhab on indt «rtree»
Derivation param1_inhab on indt «rtree» took 0.001805
Derivation param1_functor on indt «rtree»
Derivation param1_functor on indt «rtree» took 0.001868
Derivation fields on indt «rtree»
Derivation fields on indt «rtree» took 0.007629
Derivation param1_trivial on indt «rtree»
Derivation param1_trivial on indt «rtree» took 0.194454
Derivation induction on indt «rtree»
Derivation induction on indt «rtree» took 0.001923
Derivation eqb on indt «rtree»
Derivation eqb on indt «rtree» took 0.006101
Derivation eqbcorrect on indt «rtree»
Derivation eqbcorrect on indt «rtree» took 0.023002
Derivation eqbOK on indt «rtree»
Derivation eqbOK on indt «rtree» took 0.001242
Done
rtree.induction
:
forall (A : Type) (PA : A -> Type) (P : rtree A -> Type),
(forall a : A, PA a -> P (Leaf A a)) ->
(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
     : forall (A : Type) (PA : A -> Type) (P : rtree A -> Type),
       (forall a : A, PA a -> P (Leaf A a)) ->
       (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
Starting module Box
Declaring inductive 
parameter A explicit (sort (typ «elpi.apps.derive.examples.usage.387»)) 
 c0 \
 record Box (sort (typ «elpi.apps.derive.examples.usage.388»)) Build_Box 
  (field [coercion off, canonical tt] contents c0 c1 \
    field [coercion off, canonical tt] tag (global (indt «nat»)) c2 \
     end-record)
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.004124
Skipping derivation param1 on indt «Box» since the user did not select it
Skipping derivation param2 on indt «Box» since the user did not select it
Derivation tag on indt «Box»
Derivation tag on indt «Box» took 0.001179
Derivation eqType_ast on indt «Box»
Derivation eqType_ast on indt «Box» took 0.000269
Derivation lens_laws on indt «Box»
Derivation lens_laws on indt «Box» took 0.011507
Skipping derivation param1_congr on indt «Box» 
since the user did not select it
Skipping derivation param1_inhab on indt «Box» 
since the user did not select it
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.004563
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.002829
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
Done
Box.eqb : forall A : Type, (A -> A -> bool) -> Box A -> Box A -> bool
     : forall A : Type, (A -> A -> bool) -> Box A -> Box A -> bool
@Box._tag : forall A : Type, Lens (Box A) (Box A) nat nat
     : forall A : Type, Lens (Box A) (Box A) nat nat
Box._tag_set_set
:
forall (A : Type) (r : Box A) (y x : nat),
set Box._tag x (set Box._tag y r) = set Box._tag x r
     : forall (A : Type) (r : Box A) (y x : nat),
       set Box._tag x (set Box._tag y r) = set Box._tag x r
Box._tag_contents_exchange
:
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)
     : 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)
nat_eqb_OK : forall x y : nat, reflect (x = y) (nat_eqb x y)
     : forall x y : nat, reflect (x = y) (nat_eqb x y)
Derivation map on indt «a»
Derivation map on indt «a» took 0.000797
Derivation lens on indt «a»
Derivation lens on indt «a» failed, continuing
Derivation param1 on indt «a»
Derivation param1 on indt «a» took 0.002073
Derivation param2 on indt «a»
Derivation param2 on indt «a» took 0.005237
Derivation tag on indt «a»
Derivation tag on indt «a» took 0.000785
Derivation eqType_ast on indt «a»
Derivation eqType_ast on indt «a» took 0.000188
Derivation lens_laws on indt «a»
Derivation lens_laws on indt «a» took 0.000047
Derivation param1_congr on indt «a»
Derivation param1_congr on indt «a» took 0.000303
Derivation param1_inhab on indt «a»
Derivation param1_inhab on indt «a» took 0.000734
Derivation param1_functor on indt «a»
Derivation param1_functor on indt «a» took 0.000649
Derivation fields on indt «a»
Derivation fields on indt «a» took 0.002989
Derivation param1_trivial on indt «a»
Derivation param1_trivial on indt «a» took 0.001077
Derivation induction on indt «a»
Derivation induction on indt «a» took 0.000919
Derivation eqb on indt «a»
Derivation eqb on indt «a» took 0.001411
Derivation eqbcorrect on indt «a»
Derivation eqbcorrect on indt «a» took 0.002874
Derivation eqbOK on indt «a»
Derivation eqbOK on indt «a» took 0.000558
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.003638
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.000778
Derivation eqType_ast on indt «b»
Derivation eqType_ast on indt «b» took 0.000235
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.000871
Derivation param1_functor on indt «b»
Derivation param1_functor on indt «b» took 0.000782
Derivation fields on indt «b»
Derivation fields on indt «b» took 0.003130
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.001085
Derivation eqb on indt «b»
Derivation eqb on indt «b» took 0.001821
Derivation eqbcorrect on indt «b»
Derivation eqbcorrect on indt «b» took 0.003695
Derivation eqbOK on indt «b»
Derivation eqbOK on indt «b» took 0.000675
a_eqb
     : a -> a -> bool
b_eqb
     : b -> b -> bool
File "./apps/derive/examples/usage.v", line 52, characters 0-92:
Warning: Global name tag is taken, using tag1 instead
[elpi.renamed,elpi,default]
Inductive peano : Set :=  Zero : peano | Succ : peano -> peano.

Arguments Succ p
     = if pos_eq_dec (BinNums.xO BinNums.xH) BinNums.xH then true else false
     : bool
peano_eqb_OK
     : forall x1 x2 : peano, reflect (x1 = x2) (peano_eqb x1 x2)
Notation peano := peano.peano

Inductive peano : Set :=  Zero : peano | Succ : peano -> peano.

Arguments peano.Succ p
Inductive peano : Set :=  Zero : peano | Succ : peano -> peano.

Arguments peano.Succ p
     = if pos_eq_dec (BinNums.xO BinNums.xH) BinNums.xH then true else false
     : bool
peano.eqb_OK
     : forall x1 x2 : peano, reflect (x1 = x2) (peano.eqb x1 x2)
Notation peano := Peano.peano

Inductive peano : Set :=  Zero : peano | Succ : peano -> peano.

Arguments Peano.Succ p
Inductive peano : Set :=  Zero : peano | Succ : peano -> peano.

Arguments Peano.Succ p
     = if pos_eq_dec (BinNums.xO BinNums.xH) BinNums.xH then true else false
     : bool
Peano.eqb_OK
     : forall x1 x2 : peano, reflect (x1 = x2) (Peano.eqb x1 x2)
Notation peano := Peano.peano

Inductive peano : Set :=  Zero : peano | Succ : peano -> peano.

Arguments Peano.Succ p
Inductive peano : Set :=  Zero : peano | Succ : peano -> peano.

Arguments Peano.Succ p
Module
Peano
:= Struct
     Inductive peano : Set :=
         Zero : example4.peano | Succ : example4.peano -> example4.peano.
     Definition peano_rect :
       forall P : example4.peano -> Type,
       P example4.Zero ->
       (forall p : example4.peano, P p -> P (example4.Succ p)) ->
       forall p : example4.peano, P p.
     Definition peano_ind :
       forall P : example4.peano -> Prop,
       P example4.Zero ->
       (forall p : example4.peano, P p -> P (example4.Succ p)) ->
       forall p : example4.peano, P p.
     Definition peano_rec :
       forall P : example4.peano -> Set,
       P example4.Zero ->
       (forall p : example4.peano, P p -> P (example4.Succ p)) ->
       forall p : example4.peano, P p.
     Definition peano_sind :
       forall P : example4.peano -> SProp,
       P example4.Zero ->
       (forall p : example4.peano, P p -> P (example4.Succ p)) ->
       forall p : example4.peano, P p.
     Definition Peano_map : example4.peano -> example4.peano.
     Inductive is_peano : example4.peano -> Type :=
         is_Zero : is_peano example4.Zero
       | is_Succ : forall p : example4.peano,
                   is_peano p -> is_peano (example4.Succ p).
     Definition is_peano_rect :
       forall P : forall s1 : example4.peano, is_peano s1 -> Type,
       P example4.Zero is_Zero ->
       (forall (p : example4.peano) (Pp : is_peano p),
        P p Pp -> P (example4.Succ p) (is_Succ p Pp)) ->
       forall (s1 : example4.peano) (i : is_peano s1), P s1 i.
     Definition is_peano_ind :
       forall P : forall s1 : example4.peano, is_peano s1 -> Prop,
       P example4.Zero is_Zero ->
       (forall (p : example4.peano) (Pp : is_peano p),
        P p Pp -> P (example4.Succ p) (is_Succ p Pp)) ->
       forall (s1 : example4.peano) (i : is_peano s1), P s1 i.
     Definition is_peano_rec :
       forall P : forall s1 : example4.peano, is_peano s1 -> Set,
       P example4.Zero is_Zero ->
       (forall (p : example4.peano) (Pp : is_peano p),
        P p Pp -> P (example4.Succ p) (is_Succ p Pp)) ->
       forall (s1 : example4.peano) (i : is_peano s1), P s1 i.
     Definition is_peano_sind :
       forall P : forall s1 : example4.peano, is_peano s1 -> SProp,
       P example4.Zero is_Zero ->
       (forall (p : example4.peano) (Pp : is_peano p),
        P p Pp -> P (example4.Succ p) (is_Succ p Pp)) ->
       forall (s1 : example4.peano) (i : is_peano s1), P s1 i.
     Definition reali_is_peano : reali_db example4.peano is_peano.
     Definition reali_is_peano_Zero : reali_db example4.Zero is_Zero.
     Definition reali_is_peano_Succ : reali_db example4.Succ is_Succ.
     Inductive peano_R : example4.peano -> example4.peano -> Set :=
         Zero_R : peano_R example4.Zero example4.Zero
       | Succ_R : forall p1 p2 : example4.peano,
                  peano_R p1 p2 ->
                  peano_R (example4.Succ p1) (example4.Succ p2).
     Definition peano_R_rect :
       forall P : forall s1 s2 : example4.peano, peano_R s1 s2 -> Type,
       P example4.Zero example4.Zero Zero_R ->
       (forall (p1 p2 : example4.peano) (p_R : peano_R p1 p2),
        P p1 p2 p_R ->
        P (example4.Succ p1) (example4.Succ p2) (Succ_R p1 p2 p_R)) ->
       forall (s1 s2 : example4.peano) (p : peano_R s1 s2), P s1 s2 p.
     Definition peano_R_ind :
       forall P : forall s1 s2 : example4.peano, peano_R s1 s2 -> Prop,
       P example4.Zero example4.Zero Zero_R ->
       (forall (p1 p2 : example4.peano) (p_R : peano_R p1 p2),
        P p1 p2 p_R ->
        P (example4.Succ p1) (example4.Succ p2) (Succ_R p1 p2 p_R)) ->
       forall (s1 s2 : example4.peano) (p : peano_R s1 s2), P s1 s2 p.
     Definition peano_R_rec :
       forall P : forall s1 s2 : example4.peano, peano_R s1 s2 -> Set,
       P example4.Zero example4.Zero Zero_R ->
       (forall (p1 p2 : example4.peano) (p_R : peano_R p1 p2),
        P p1 p2 p_R ->
        P (example4.Succ p1) (example4.Succ p2) (Succ_R p1 p2 p_R)) ->
       forall (s1 s2 : example4.peano) (p : peano_R s1 s2), P s1 s2 p.
     Definition peano_R_sind :
       forall P : forall s1 s2 : example4.peano, peano_R s1 s2 -> SProp,
       P example4.Zero example4.Zero Zero_R ->
       (forall (p1 p2 : example4.peano) (p_R : peano_R p1 p2),
        P p1 p2 p_R ->
        P (example4.Succ p1) (example4.Succ p2) (Succ_R p1 p2 p_R)) ->
       forall (s1 s2 : example4.peano) (p : peano_R s1 s2), P s1 s2 p.
     Definition param_peano_R :
       param_db example4.peano example4.peano peano_R.
     Definition param_Zero_R : param_db example4.Zero example4.Zero Zero_R.
     Definition param_Succ_R : param_db example4.Succ example4.Succ Succ_R.
     Definition Peano_tag : example4.peano -> BinNums.positive.
     Definition congr_is_Zero : is_Zero = is_Zero.
     Definition congr_is_Succ :
       forall (x : example4.peano) (p1 p2 : is_peano x),
       p1 = p2 -> is_Succ x p1 = is_Succ x p2.
     Definition is_peano_inhab : forall x : example4.peano, is_peano x.
     Definition is_peano_functor :
       forall x : example4.peano, is_peano x -> is_peano x.
     Record box_peano_Zero : Type := Box_peano_Zero {  }.
     Record box_peano_Succ : Type := Box_peano_Succ
       { Box_peano_Succ_0 : example4.peano }.
     Definition Box_peano_Succ_0 : box_peano_Succ -> example4.peano.
     Definition Peano_fields_t : BinNums.positive -> Type.
     Definition Peano_fields :
       forall i : example4.peano, Peano_fields_t (Peano_tag i).
     Definition Peano_construct :
       forall p : BinNums.positive, Peano_fields_t p -> option example4.peano.
     Parameter Peano_constructP :
       forall i : example4.peano,
       Peano_construct (Peano_tag i) (Peano_fields i) = Some i.
     Definition is_peano_trivial :
       forall x : example4.peano,
       {u : is_peano x & forall v : is_peano x, u = v}.
     Definition Peano_induction :
       forall P : example4.peano -> Type,
       P example4.Zero ->
       (forall p : example4.peano, P p -> P (example4.Succ p)) ->
       forall s1 : example4.peano, is_peano s1 -> P s1.
     Definition Peano_eqb_fields :
       (example4.peano -> example4.peano -> bool) ->
       forall x : BinNums.positive,
       Peano_fields_t x -> Peano_fields_t x -> bool.
     Definition Peano_eqb : example4.peano -> example4.peano -> bool.
     Parameter Peano_eqb_correct :
       forall x : example4.peano, eqb_correct_on Peano_eqb x.
     Parameter Peano_eqb_refl :
       forall x : example4.peano, eqb_refl_on Peano_eqb x.
     Parameter Peano_eqb_OK :
       forall x1 x2 : example4.peano, reflect (x1 = x2) (Peano_eqb x1 x2).
   End
     = if pos_eq_dec (BinNums.xO BinNums.xH) BinNums.xH then true else false
     : bool
Peano.Peano_eqb_OK
     : forall x1 x2 : peano, reflect (x1 = x2) (Peano.Peano_eqb x1 x2)
Inductive peano : Set :=  Zero : peano | Succ : peano -> peano.

Arguments Succ p
     = if pos_eq_dec (BinNums.xO BinNums.xH) BinNums.xH then true else false
     : bool
eqb_OK
     : forall x1 x2 : peano, reflect (x1 = x2) (eqb x1 x2)
Inductive peano : Set :=
    Zero : Peano.peano | Succ : Peano.peano -> Peano.peano.

Arguments Peano.Succ p
     = if pos_eq_dec (BinNums.xO BinNums.xH) BinNums.xH then true else false
     : bool
Peano.eqb_OK
     : forall x1 x2 : Peano.peano, reflect (x1 = x2) (Peano.eqb x1 x2)
derive.param1_trivial: wrong shape  is_nest 
. It does not look like a unary parametricity translation of an inductive with no indexes.
derive.param1_trivial: wrong shape  is_vect A PA 
. It does not look like a unary parametricity translation of an inductive with no indexes.
Debug: Cannot enforce elpi_apps_derive_tests_stdlib.test_derive.3246 <= Set
Skipping derivation map on indt «nat» since it has been already run
Derivation lens on indt «nat»
Derivation lens on indt «nat» failed, continuing
Skipping derivation param1 on indt «nat» since it has been already run
Skipping derivation param2 on indt «nat» since it has been already run
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.001130
Derivation isK on indt «nat»
Derivation isK on indt «nat» took 0.001570
Derivation eq on indt «nat»
Derivation eq on indt «nat» took 0.001248
Derivation invert on indt «nat»
Derivation invert on indt «nat» took 0.001232
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
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 it has been already run
Derivation bcongr on indt «nat»
Derivation bcongr on indt «nat» took 0.002184
Derivation idx2inv on indt «nat»
Derivation idx2inv on indt «nat» failed, continuing
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 it has been already run
Derivation eqK on indt «nat»
Derivation eqK on indt «nat» took 0.002616
Skipping derivation eqbcorrect on indt «nat» since it has been already run
Derivation eqcorrect on indt «nat»
Derivation eqcorrect on indt «nat» took 0.000726
Skipping derivation eqbOK on indt «nat» since it has been already run
Derivation eqOK on indt «nat»
Derivation eqOK on indt «nat» took 0.000421
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.
derive.param1_trivial: wrong shape  is_triv 
. It does not look like a unary parametricity translation of an inductive with no indexes.
Debug: Cannot enforce elpi_apps_derive_tests_stdlib.test_derive.4293 <= Set
derive.param1_trivial: wrong shape  is_Pred 
. It does not look like a unary parametricity translation of an inductive with no indexes.
wimpls.wimpls not a defined object.
wimpls.Kwi not a defined object.
Skipping derivation map on indt «foo» since the user did not select it
Skipping derivation lens on indt «foo» since the user did not select it
Derivation param1 on indt «foo»
Derivation param1 on indt «foo» took 0.002901
Skipping derivation param2 on indt «foo» since the user did not select it
Derivation tag on indt «foo»
Derivation tag on indt «foo» took 0.000861
Derivation eqType_ast on indt «foo»
Derivation eqType_ast on indt «foo» took 0.000251
Skipping derivation projK on indt «foo» since the user did not select it
Skipping derivation isK on indt «foo» since the user did not select it
Skipping derivation eq on indt «foo» since the user did not select it
Skipping derivation invert on indt «foo» since the user did not select it
Skipping derivation lens_laws on indt «foo» 
since the user did not select it
Skipping derivation param1_congr on indt «foo» 
since the user did not select it
Derivation param1_inhab on indt «foo»
Derivation param1_inhab on indt «foo» took 0.000946
Derivation param1_functor on indt «foo»
Derivation param1_functor on indt «foo» took 0.000893
Derivation fields on indt «foo»
Derivation fields on indt «foo» took 0.003689
Skipping derivation bcongr on indt «foo» since the user did not select it
Skipping derivation idx2inv on indt «foo» since the user did not select it
Skipping derivation param1_trivial on indt «foo» 
since the user did not select it
Derivation induction on indt «foo»
Derivation induction on indt «foo» took 0.000995
Derivation eqb on indt «foo»
Derivation eqb on indt «foo» took 0.002047
Skipping derivation eqK on indt «foo» since the user did not select it
Derivation eqbcorrect on indt «foo»
Derivation eqbcorrect on indt «foo» took 0.004322
Skipping derivation eqcorrect on indt «foo» 
since the user did not select it
Derivation eqbOK on indt «foo»
Derivation eqbOK on indt «foo» took 0.000735
Skipping derivation eqOK on indt «foo» since the user did not select it
File "./apps/derive/tests-stdlib/test_derive.v", line 33, characters 2-9:
Warning: This command does not support this attribute: verbose.
[unsupported-attributes,parsing,default]
File "./apps/derive/tests-stdlib/test_derive.v", line 70, characters 0-15:
Warning: Using Vector.t is known to be technically difficult, see
<https://github.com/coq/coq/blob/master/theories/Vectors/Vector.v>.
[warn-library-file-stdlib-vector,stdlib-vector,warn-library-file,user-warn,default]
Finished transaction in 1.596 secs (0.685u,0.012s) (successful)
Finished transaction in 28.279 secs (15.017u,0.09s) (successful)
Finished transaction in 0.218 secs (0.216u,0.s) (successful)
dune build  builtin-doc
Warning: Cache directories could not be created: Permission denied; disabling
cache
Hint: Make sure the directory /nonexistent/second-build/.cache/dune/db/temp
can be created
make[2]: Leaving directory '/build/reproducible-path/coq-elpi-2.5.0'
make[1]: Leaving directory '/build/reproducible-path/coq-elpi-2.5.0'
   dh_auto_test
   create-stamp debian/debhelper-build-stamp
   dh_prep
   debian/rules override_dh_auto_install
make[1]: Entering directory '/build/reproducible-path/coq-elpi-2.5.0'
dune install rocq-elpi --destdir=/build/reproducible-path/coq-elpi-2.5.0/debian/tmp --prefix=/usr --libdir=/usr/lib/aarch64-linux-gnu/ocaml/5.3.0
Warning: Cache directories could not be created: Permission denied; disabling
cache
Hint: Make sure the directory /nonexistent/second-build/.cache/dune/db/temp
can be created
rm -fr /build/reproducible-path/coq-elpi-2.5.0/debian/tmp/usr/doc/coq-elpi
rm -fr /build/reproducible-path/coq-elpi-2.5.0/debian/tmp/usr/doc/rocq-elpi
make[1]: Leaving directory '/build/reproducible-path/coq-elpi-2.5.0'
   dh_install
   dh_ocamldoc
   dh_installdocs
   dh_installchangelogs
   dh_installexamples
   dh_perl
   dh_link
   dh_strip_nondeterminism
   dh_compress
   dh_fixperms
   dh_missing
   dh_dwz -a
dwz: debian/libcoq-elpi/usr/lib/aarch64-linux-gnu/ocaml/5.3.0/coq/user-contrib/elpi/apps/coercion/elpi_coercion_plugin.cmxs: DWARF compression not beneficial - old size 1378 new size 1378
dwz: debian/libcoq-elpi/usr/lib/aarch64-linux-gnu/ocaml/5.3.0/coq/user-contrib/elpi/apps/cs/elpi_cs_plugin.cmxs: DWARF compression not beneficial - old size 1029 new size 1029
dwz: debian/libcoq-elpi/usr/lib/aarch64-linux-gnu/ocaml/5.3.0/rocq-elpi/coercion/elpi_coercion_plugin.cmxs: DWARF compression not beneficial - old size 1378 new size 1378
dwz: debian/libcoq-elpi/usr/lib/aarch64-linux-gnu/ocaml/5.3.0/rocq-elpi/cs/elpi_cs_plugin.cmxs: DWARF compression not beneficial - old size 1029 new size 1029
   dh_strip -a
   dh_makeshlibs -a
   dh_shlibdeps -a
dpkg-shlibdeps: warning: diversions involved - output may be incorrect
 diversion by libc6 from: /lib/ld-linux-aarch64.so.1
dpkg-shlibdeps: warning: diversions involved - output may be incorrect
 diversion by libc6 to: /lib/ld-linux-aarch64.so.1.usr-is-merged
   dh_installdeb
   debian/rules override_dh_ocaml
make[1]: Entering directory '/build/reproducible-path/coq-elpi-2.5.0'
dh_ocaml --nodefined-map=libcoq-elpi-ocaml-dev:Elpi_parser,Elpi_util,Elpi_parser__Ast,Elpi__Runtime,Elpi__,Elpi_util__Util,Elpi__Builtin_checker,Elpi__Builtin,Elpi__Ptmap,Elpi_parser__Grammar,Elpi__Data,Elpi_lexer_config,Elpi__API,Elpi_parser__Parse,Elpi__Builtin_set,Trace_ppx_runtime,Elpi_parser__Parser_config,Elpi_parser__Error_messages,Elpi_parser__Lexer,Elpi,Elpi_exer_config__Tokens,Elpi_Builtin_stdlib,Elpi__Legacy_parser_proxy,Elpi__Builtin_map,Elpi_lexer_config__Tokens,Elpi__Compiler,Trace_ppx_runtime__Runtime,Elpi_lexer_config__Lexer_config,Elpi__Builtin_stdlib,Elpi__Runtime_trace_off,MenhirLib,Ppx_deriving_runtime,Re__Perl,Re__Core,Re__Pcre,Re_str,Re__Automata,Re__Emacs,Re,Re__Fmt,Re__Group,Re__,Re__Glob,Re__Pmark,Re__Category,Re__Str,Re__Posix,Re__Color_map,Re__Cset,Result
make[1]: Leaving directory '/build/reproducible-path/coq-elpi-2.5.0'
   dh_coq
   dh_gencontrol
dpkg-gencontrol: warning: package libcoq-elpi: substitution variable ${shlibs:Depends} unused, but is defined
dpkg-gencontrol: warning: package libcoq-elpi: substitution variable ${shlibs:Depends} unused, but is defined
   dh_md5sums
   dh_builddeb
dpkg-deb: building package 'libcoq-elpi-dbgsym' in '../libcoq-elpi-dbgsym_2.5.0-1_arm64.deb'.
dpkg-deb: building package 'libcoq-elpi' in '../libcoq-elpi_2.5.0-1_arm64.deb'.
 dpkg-genbuildinfo --build=binary -O../coq-elpi_2.5.0-1_arm64.buildinfo
 dpkg-genchanges --build=binary -O../coq-elpi_2.5.0-1_arm64.changes
dpkg-genchanges: info: binary-only upload (no source code included)
 dpkg-source --after-build .
dpkg-buildpackage: info: binary-only upload (no source included)
dpkg-genchanges: info: including full source code in upload
I: copying local configuration
I: user script /srv/workspace/pbuilder/1216037/tmp/hooks/B01_cleanup starting
I: user script /srv/workspace/pbuilder/1216037/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/1216037 and its subdirectories
I: Current time: Thu Mar 20 03:45:28 +14 2025
I: pbuilder-time-stamp: 1742391928