Diff of the two buildlogs: -- --- b1/build.log 2025-11-02 05:59:08.551157320 +0000 +++ b2/build.log 2025-11-02 06:00:49.371259904 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Sat Dec 5 00:20:41 -12 2026 -I: pbuilder-time-stamp: 1796473241 +I: Current time: Sun Nov 2 19:59:10 +14 2025 +I: pbuilder-time-stamp: 1762063150 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/forky-reproducible-base.tgz] I: copying local configuration @@ -24,53 +24,85 @@ dpkg-source: info: applying 0001-Increase-timeout-in-test-that-takes-a-bit-longer-on-.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/43278/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/4075339/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 Nov 2 05:59 /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/4075339/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/4075339/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='arm64' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 ' - DISTRIBUTION='forky' - HOME='/root' - HOST_ARCH='arm64' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="3" [2]="3" [3]="1" [4]="release" [5]="aarch64-unknown-linux-gnu") + BASH_VERSION='5.3.3(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=arm64 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 nocheck' + DIRSTACK=() + DISTRIBUTION=forky + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=aarch64 + HOST_ARCH=arm64 IFS=' ' - INVOCATION_ID='c30109e1a5974de79b06f882524bb0ad' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='43278' - PS1='# ' - PS2='> ' + INVOCATION_ID=9385bbf2504440d08e04fb3a94ae3f98 + 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=4075339 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.8NEfjCnl/pbuilderrc_Ti5Y --distribution forky --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/forky-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.8NEfjCnl/b1 --logfile b1/build.log coq-elpi_2.5.0-1.2.dsc' - SUDO_GID='109' - SUDO_HOME='/var/lib/jenkins' - SUDO_UID='104' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://192.168.101.4:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.8NEfjCnl/pbuilderrc_vevX --distribution forky --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/forky-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.8NEfjCnl/b2 --logfile b2/build.log coq-elpi_2.5.0-1.2.dsc' + SUDO_GID=109 + SUDO_HOME=/var/lib/jenkins + 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 codethink03-arm64 6.12.48+deb13-cloud-arm64 #1 SMP Debian 6.12.48-1 (2025-09-20) aarch64 GNU/Linux + Linux i-capture-the-hostname 6.12.48+deb13-cloud-arm64 #1 SMP Debian 6.12.48-1 (2025-09-20) aarch64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Aug 10 2025 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/43278/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Aug 10 12:30 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/4075339/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -83,7 +115,7 @@ 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 ... 19964 files and directories currently installed.) +(Reading database ... 19971 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: @@ -212,10 +244,10 @@ Get: 86 http://deb.debian.org/debian forky/main arm64 libstdio-ocaml-dev arm64 0.17.0-1+b2 [115 kB] Get: 87 http://deb.debian.org/debian forky/main arm64 libppx-optcomp-ocaml-dev arm64 1:0.17.1-1+b1 [328 kB] Get: 88 http://deb.debian.org/debian forky/main arm64 ocaml-dune arm64 3.20.2-3 [5696 kB] -Fetched 372 MB in 5s (75.0 MB/s) +Fetched 372 MB in 1s (290 MB/s) Preconfiguring packages ... Selecting previously unselected package libexpat1: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 ... 19964 files and directories currently installed.) +(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 ... 19971 files and directories currently installed.) Preparing to unpack .../libexpat1_2.7.3-1_arm64.deb ... Unpacking libexpat1:arm64 (2.7.3-1) ... Selecting previously unselected package libpython3.13-minimal:arm64. @@ -228,7 +260,7 @@ Setting up libexpat1:arm64 (2.7.3-1) ... Setting up python3.13-minimal (3.13.9-1) ... 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 ... 20298 files and directories currently installed.) +(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 ... 20305 files and directories currently installed.) Preparing to unpack .../0-python3-minimal_3.13.7-1_arm64.deb ... Unpacking python3-minimal (3.13.7-1) ... Selecting previously unselected package media-types. @@ -264,7 +296,7 @@ Unpacking libpython3-stdlib:arm64 (3.13.7-1) ... Setting up python3-minimal (3.13.7-1) ... 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 ... 21313 files and directories currently installed.) +(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 ... 21320 files and directories currently installed.) Preparing to unpack .../00-python3_3.13.7-1_arm64.deb ... Unpacking python3 (3.13.7-1) ... Selecting previously unselected package sensible-utils. @@ -508,8 +540,8 @@ Setting up tzdata (2025b-5) ... Current default time zone: 'Etc/UTC' -Local time is now: Sat Dec 5 12:21:12 UTC 2026. -Universal Time is now: Sat Dec 5 12:21:12 UTC 2026. +Local time is now: Sun Nov 2 05:59:38 UTC 2025. +Universal Time is now: Sun Nov 2 05:59:38 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up autotools-dev (20240727.1) ... @@ -591,7 +623,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/coq-elpi-2.5.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../coq-elpi_2.5.0-1.2_source.changes +I: user script /srv/workspace/pbuilder/4075339/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for forky +I: user script /srv/workspace/pbuilder/4075339/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/coq-elpi-2.5.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../coq-elpi_2.5.0-1.2_source.changes dpkg-buildpackage: info: source package coq-elpi dpkg-buildpackage: info: source version 2.5.0-1.2 dpkg-buildpackage: info: source distribution unstable @@ -605,7 +641,7 @@ dune clean Warning: Cache directories could not be created: Permission denied; disabling cache -Hint: Make sure the directory /nonexistent/first-build/.cache/dune/db/temp +Hint: Make sure the directory /nonexistent/second-build/.cache/dune/db/temp can be created make[1]: Leaving directory '/build/reproducible-path/coq-elpi-2.5.0' dh_ocamlclean @@ -623,7 +659,7 @@ dune build Warning: Cache directories could not be created: Permission denied; disabling cache -Hint: Make sure the directory /nonexistent/first-build/.cache/dune/db/temp +Hint: Make sure the directory /nonexistent/second-build/.cache/dune/db/temp can be created File "./elpi/dummy.v", line 1, characters 0-93: Warning: To avoid stack overflow, large numbers in nat are interpreted as @@ -779,12 +815,6 @@ 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 "./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/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] @@ -830,6 +860,12 @@ 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 "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) ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -851,6 +887,14 @@ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Warning 34 [unused-type-declaration]: unused type tactic_main. 3 + 7 becomes fun (x : ?e) (x0 : ?e0) => S (S x0) + S (S (S (S (S (S x))))) +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]), @@ -861,27 +905,6 @@ prod `_` (app [global (const «lt»), c1, c2]) c4 \ app [global (const «lt»), c0, c2] 3 -Notation p2 := (p2 nat 3 x) -example_import_projections.p1 nat 3 x : nat - : nat -p1 : forall (T : Type) (t : T), r T t -> nat - : forall (T : Type) (t : T), r T t -> nat -eq_refl -: -example_import_projections.p1 bool false (Build bool false 3 eq_refl eq_refl) = -3 - : example_import_projections.p1 bool false - (Build bool false 3 eq_refl eq_refl) = 3 -example_import_projections.f1 _ x - : bool -The Db contains [phone_prefix USA 1] -Phone prefix for USA is 1 -The Db contains -[phone_prefix USA 1, phone_prefix France 33, phone_prefix Italy 39] -Phone prefix for France is 33 -sweet! -brr -yummy! DEBUG: attempt at fuzzing binary op: global (indc «PLUS») DEBUG: attempt at fuzzing binary op: global (const «Nat.add») DEBUG: attempt at fuzzing binary op: global (indc «AND») @@ -915,104 +938,20 @@ 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 _ _ -foo = -{f1 : Type & {f2 : f1 -> Type & forall t : f1, f2 t -> bool}} - : Type -mk_foo = -fun (f1 : Type) (f2 : f1 -> Type) (f3 : forall t : f1, f2 t -> bool) => -existT (fun f4 : Type => {f5 : f4 -> Type & forall t : f4, f5 t -> bool}) f1 - (existT (fun f4 : f1 -> Type => forall t : f1, f4 t -> bool) f2 f3) - : forall (f1 : Type) (f2 : f1 -> Type), - (forall t : f1, f2 t -> bool) -> foo - -Arguments mk_foo f1%type_scope (f2 f3)%function_scope -(eq_refl : 2 = (let z := 1 in S z)) -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 +Notation p2 := (p2 nat 3 x) +example_import_projections.p1 nat 3 x : nat : 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.Module19» -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] +p1 : forall (T : Type) (t : T), r T t -> nat + : forall (T : Type) (t : T), r T t -> nat +eq_refl +: +example_import_projections.p1 bool false (Build bool false 3 eq_refl eq_refl) = +3 + : example_import_projections.p1 bool false + (Build bool false 3 eq_refl eq_refl) = 3 +example_import_projections.f1 _ x + : bool +(eq_refl : 2 = (let z := 1 in S z)) Query assignments: BO = fix `add` 0 (prod `n` (global (indt «nat»)) c0 \ @@ -1563,7 +1502,7 @@ c5 \ app [c2, c4, c5]]] Debug: [elpi] - Elpi: query-compilation:0.0015 static-check:0.0000 optimization:0.0001 runtime:0.0077 (with success) + Elpi: query-compilation:0.0014 static-check:0.0000 optimization:0.0001 runtime:0.0073 (with success) Query assignments: GR = indc «Ord» @@ -3967,7 +3906,7 @@ (X10 c0 c1 c2 c3 c4) Debug: [elpi] - Elpi: query-compilation:0.0011 static-check:0.0000 optimization:0.0001 runtime:0.0239 (with error) + Elpi: query-compilation:0.0012 static-check:0.0000 optimization:0.0001 runtime:0.0323 (with error) hd : forall A : Type, A -> list A -> A @@ -3981,6 +3920,17 @@ 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] +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 Query assignments: GRnat = indt «nat» GRplus = const «Nat.add» @@ -4414,6 +4364,92 @@ 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.Module15» +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 @@ -5262,6 +5298,691 @@ 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] +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] +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 +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] +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] +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» +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 q X0 +Query r X0 +Result r 1 +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] Debug: run 1 {{{ Debug: @@ -5675,7 +6396,7 @@ Debug: rid:0 step:12 gid:19 user:rule:backchain = success -Debug: }}} -> (0.000s) +Debug: }}} -> (0.008s) Debug: run 13 {{{ Debug: @@ -6602,7 +7323,7 @@ Debug: rid:1 step:363 gid:1037 user:rule:backchain:candidates = File "builtin_stdlib.elpi", line 279, column 0, characters 9290-9316: -Debug: }}} -> (0.001s) +Debug: }}} -> (0.013s) Debug: select 270 {{{ Debug: @@ -6827,7 +7548,7 @@ Debug: rid:1 step:364 gid:1048 user:newgoal = X8 = «expanded_g» -Debug: }}} -> (0.002s) +Debug: }}} -> (0.001s) Debug: run 365 {{{ Debug: @@ -7079,7 +7800,7 @@ Debug: rid:1 step:368 gid:1049 user:rule:eq = success -Debug: }}} -> (0.001s) +Debug: }}} -> (0.009s) Debug: run 369 {{{ Debug: @@ -7314,225 +8035,106 @@ Arguments expanded_g T%type_scope op%function_scope (l s)%list_scope h%bool_scope -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] -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] -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: +«elpi.tests.test_API_notations.abbr» Query assignments: - X = «elpi.tests.test_API.1» + 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.1} |= + {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: - X = typ «elpi.tests.test_API.2» - Y = typ «elpi.tests.test_API.3» + 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.3 elpi.tests.test_API.2} |= - elpi.tests.test_API.2 <= elpi.tests.test_API.3 + {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: - 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: - - + %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: - 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: - - + %arg1 = «elpi.tests.test_API_notations.abbr2» 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 + CA = «a» + CB = «b» + CC = «c» +d : nat -Arguments foo a%nat_scope [b]%nat_scope {c}%nat_scope +d is not universe polymorphic +Expands to: Variable d +eq_refl : e2 = 3 + : e2 = 3 Query assignments: - %arg1 = const «foo» + 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: E = fun `n` (global (indt «nat»)) c0 \ fun `t` (app [global (const «T2»), c0]) c1 \ @@ -7719,549 +8321,9 @@ File "./tests/test_API_elaborate.v", line 170, characters 33-34 Y is linear: name it _Y (discard) or Y_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -Query assignments: - I = const «imp» -X2.imp : forall (T : Type) (x : T), x = x -> Prop - -X2.imp is not universe polymorphic -Arguments X2.imp T%type_scope x _ -Expands to: Constant elpi.tests.test_API_arguments.X2.imp -Query assignments: - %arg1 = const «foo» -foo 3 - : nat -Query assignments: - %arg1 = const «f» - %arg2 = const «f» - %arg3 = const «f» - %arg4 = const «f» - %arg5 = const «f» -f : forall [S : Type], S -> Prop - -f is not universe polymorphic -Arguments f [S]%type_scope _ - (where some original arguments have been renamed) -f is transparent -Expands to: Constant elpi.tests.test_API_arguments.f -f (S:=bool * bool) - : bool * bool -> Prop -Query assignments: - %arg1 = const «f» -f : forall [S : Type], S -> Prop - -f is not universe polymorphic -Arguments f [S]%type_scope / _ - (where some original arguments have been renamed) -The reduction tactics unfold f when applied to 1 argument -f is transparent -Expands to: Constant elpi.tests.test_API_arguments.f -f (S:=bool * bool) - : bool * bool -> Prop - = fun x : bool => x = x - : bool -> Prop -Query assignments: - L = [gref (indt «Empty_set»), gref (const «Empty_set_rect»), - gref (const «Empty_set_ind»), gref (const «Empty_set_rec»), - gref (const «Empty_set_sind»), gref (indt «unit»), - gref (const «unit_rect»), gref (const «unit_ind»), - gref (const «unit_rec»), gref (const «unit_sind»), - gref (indt «bool»), gref (const «bool_rect»), - gref (const «bool_ind»), gref (const «bool_rec»), - gref (const «bool_sind»), gref (const «andb»), gref (const «orb»), - gref (const «implb»), gref (const «xorb»), gref (const «negb»), - gref (const «andb_prop»), gref (const «andb_true_intro»), - gref (indt «eq_true»), gref (const «eq_true_rect»), - gref (const «eq_true_ind»), gref (const «eq_true_rec»), - gref (const «eq_true_sind»), gref (const «is_true»), - gref (const «eq_true_ind_r»), gref (const «eq_true_rec_r»), - gref (const «eq_true_rect_r»), gref (indt «BoolSpec»), - gref (const «BoolSpec_ind»), gref (const «BoolSpec_sind»), - gref (indt «nat»), gref (const «nat_rect»), gref (const «nat_ind»), - gref (const «nat_rec»), gref (const «nat_sind»), - gref (indt «option»), gref (const «option_rect»), - gref (const «option_ind»), gref (const «option_rec»), - gref (const «option_sind»), gref (const «option_map»), - gref (indt «sum»), gref (const «sum_rect»), gref (const «sum_ind»), - gref (const «sum_rec»), gref (const «sum_sind»), gref (indt «prod»), - gref (const «prod_rect»), gref (const «prod_ind»), - gref (const «prod_rec»), gref (const «prod_sind»), - gref (const «fst»), gref (const «snd»), - gref (const «surjective_pairing»), - gref (const «injective_projections»), gref (const «pair_equal_spec»), - gref (const «curry»), gref (const «uncurry»), - gref (const «rew_pair»), gref (indt «list»), - gref (const «list_rect»), gref (const «list_ind»), - gref (const «list_rec»), gref (const «list_sind»), - gref (const «length»), gref (const «app»), gref (indt «comparison»), - gref (const «comparison_rect»), gref (const «comparison_ind»), - gref (const «comparison_rec»), gref (const «comparison_sind»), - gref (const «comparison_eq_stable»), gref (const «CompOpp»), - gref (const «CompOpp_involutive»), gref (const «CompOpp_inj»), - gref (const «CompOpp_iff»), gref (indt «CompareSpec»), - gref (const «CompareSpec_ind»), gref (const «CompareSpec_sind»), - gref (indt «CompareSpecT»), gref (const «CompareSpecT_rect»), - gref (const «CompareSpecT_ind»), gref (const «CompareSpecT_rec»), - gref (const «CompareSpecT_sind»), gref (const «CompareSpec2Type»), - gref (const «CompSpec»), gref (const «CompSpecT»), - gref (const «CompSpec2Type»), gref (const «ID»), gref (const «id»), - gref (const «IDProp»), gref (const «idProp»)] - MP = «Coq.Init.Datatypes» -elpi.tests.test_API_module.X.i -[elpi, tests, test_API_module, X, Y] -[elpi, tests, test_API_module, X, Y] -Query assignments: - %arg1 = elpi.tests.test_API_module.X.i - %arg2 = elpi.tests.test_API_module.X.i - %arg3 = elpi.tests.test_API_module.X.Y.i - %arg4 = [elpi, tests, test_API_module, X, Y] - %arg5 = [elpi, tests, test_API_module, X, Y] - L = [gref (indt «X.i»), gref (const «X.i_rect»), gref (const «X.i_ind»), - gref (const «X.i_rec»), gref (const «X.i_sind»), gref (const «X.d»), - submodule «elpi.tests.test_API_module.X.Y» - [gref (indt «X.Y.i»), gref (const «X.Y.i_rect»), - gref (const «X.Y.i_ind»), gref (const «X.Y.i_rec»), - gref (const «X.Y.i_sind»), gref (const «X.Y.d»)]] - MP = «elpi.tests.test_API_module.X» - XYi = «X.Y.i» - XYr = «X.Y.i_rect» - Xi = «X.i» -Query assignments: - I = «Y.i» - ID = j - J = «Y.j» - MP = «elpi.tests.test_API_module.Y» - P = [elpi, tests, test_API_module, Y] -Query assignments: - Mp_ta = «elpi.tests.test_API_module.TA» -Query assignments: - GRy = EXN PRINTING: Not_found - I = EXN PRINTING: Not_found - L = [gref (const «A.z»), gref (const «A.i»)] - MP = «elpi.tests.test_API_module.A» - MP_TA = «elpi.tests.test_API_module.TA» - X1_ = «A.i.u0» - X2_ = «elpi.tests.test_API_module.11» -Universe constraints: -UNIVERSES: - -ALGEBRAIC UNIVERSES: - {elpi.tests.test_API_module.11 A.i.u0} -FLEXIBLE UNIVERSES: - elpi.tests.test_API_module.11 - A.i.u0 -SORTS: - -WEAK CONSTRAINTS: - - -Module -A - : TA -:= Struct - Definition x - Module B - Definition z - Inductive i1 - Definition i1_rect - Definition i1_ind - Definition i1_rec - Definition i1_sind - Definition i - End -A.z - : nat -A.i - : Type -*** [ A.i : Type ] -Query assignments: - A = «elpi.tests.test_API_module.a» - MP_TA = «elpi.tests.test_API_module.TA» - TF = «elpi.tests.test_API_module.TF» -Query assignments: - %arg1 = «elpi.tests.test_API_module.a» - %arg2 = const const EXN PRINTING: Not_found - MP_TA = «elpi.tests.test_API_module.TA» - MP_TF = «elpi.tests.test_API_module.TF» -Module -F - : Funsig (a:TA) Funsig (b:TA) TF -:= Functor (a:TA) Functor (b:TA) Struct Definition w : nat. End -Module B : Sig Parameter w : nat. End := (F A A) -*** [ B.w : nat ] -Query assignments: - MP_TA = «elpi.tests.test_API_module.TA» -Module Type TB = Funsig (A:TA) Sig End -Query assignments: - A = «elpi.tests.test_API_module.A» -Query assignments: - %arg1 = «elpi.tests.test_API_module.A» -Module IA := Struct Definition z : nat. Definition i : Type. End -Query assignments: - %arg1 = «elpi.tests.test_API_module.IA» -Query assignments: - %arg1 = «elpi.tests.test_API_module.IA» -i - : Type -Query assignments: - %arg1 = «elpi.tests.test_API_module.TA» -Query assignments: - %arg1 = «elpi.tests.test_API_module.TA» -Module Type ITA = Sig Parameter z : nat. Parameter i : Type. End -Query assignments: - F = «elpi.tests.test_API_module.R.F» - FT = «elpi.tests.test_API_module.R.FT» - L = [submodule «elpi.tests.test_API_module.R.S» [gref (const «R.S.x»)], - module-type «elpi.tests.test_API_module.R.P1», - module-type «elpi.tests.test_API_module.R.P2», - «elpi.tests.test_API_module.R.F» module-functor - [«elpi.tests.test_API_module.R.P1», «elpi.tests.test_API_module.R.P2»], - «elpi.tests.test_API_module.R.FT» module-type-functor - [«elpi.tests.test_API_module.R.P2», «elpi.tests.test_API_module.R.P1»], - gref (const «R.a»)] - P1 = «elpi.tests.test_API_module.R.P1» - P2 = «elpi.tests.test_API_module.R.P2» - R = «elpi.tests.test_API_module.R» - S = «elpi.tests.test_API_module.R.S» -File "./tests/test_API_module.v", line 7, characters 69-70: -Warning: -File "./tests/test_API_module.v", line 7, characters 69-70 -L is linear: name it _L (discard) or L_ (fresh variable) -[elpi.linear-variable,elpi.typecheck,elpi,default] -File "./tests/test_API_module.v", line 50, characters 26-28: -Warning: -File "./tests/test_API_module.v", line 50, characters 26-28 -ID is linear: name it _ID (discard) or ID_ (fresh variable) -[elpi.linear-variable,elpi.typecheck,elpi,default] -File "./tests/test_API_module.v", line 49, characters 28-29: -Warning: -File "./tests/test_API_module.v", line 49, characters 28-29 -P is linear: name it _P (discard) or P_ (fresh variable) -[elpi.linear-variable,elpi.typecheck,elpi,default] -File "./tests/test_API_module.v", line 77, characters 21-22: -Warning: -File "./tests/test_API_module.v", line 77, characters 21-22 -L is linear: name it _L (discard) or L_ (fresh variable) -[elpi.linear-variable,elpi.typecheck,elpi,default] -File "./tests/test_API_module.v", line 67, characters 27-32: -Warning: -File "./tests/test_API_module.v", line 67, characters 27-32 -MP_TA is linear: name it _MP_TA (discard) or MP_TA_ (fresh variable) -[elpi.linear-variable,elpi.typecheck,elpi,default] -File "./tests/test_API_module.v", line 102, characters 31-36: -Warning: -File "./tests/test_API_module.v", line 102, characters 31-36 -MP_TA is linear: name it _MP_TA (discard) or MP_TA_ (fresh variable) -[elpi.linear-variable,elpi.typecheck,elpi,default] -File "./tests/test_API_module.v", line 101, characters 27-32: -Warning: -File "./tests/test_API_module.v", line 101, characters 27-32 -MP_TF is linear: name it _MP_TF (discard) or MP_TF_ (fresh variable) -[elpi.linear-variable,elpi.typecheck,elpi,default] -Query assignments: - 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] -«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» -Query q X0 -Query r X0 -Result r 1 -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/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 \ @@ -8398,32 +8460,26 @@ 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: - 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 +d1 : nat -bar : bool -> nat - : bool -> nat -File "./tests/test_File3.v", line 18, characters 2-16: -Warning: This command does not support this attribute: phase. -[unsupported-attributes,parsing,default] +d2 + : nat +i1 + : Prop +i2 + : Prop +k1 + : i1 +k2 + : i2 +r1 + : Set +r2 + : Type +f1 + : r1 -> nat +f2 + : r2 -> nat Goal: [decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»))] |- X0 c0 c1 : @@ -8527,26 +8583,42 @@ 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] -d1 - : nat -d2 - : nat -i1 - : Prop -i2 - : Prop -k1 - : i1 -k2 - : i2 -r1 - : Set -r2 - : Type -f1 - : r1 -> nat -f2 - : r2 -> nat +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: BO = fix `add` 0 (prod `n` (global (indt «nat»)) c0 \ @@ -10307,7 +10379,7 @@ RingMicromega.PsatzZ; RMicromega.CPow; Field_theory.FEinv; Tauto.IFF; Ring_polynom.PEpow; RMicromega.CInv; Field_theory.FEdiv; Tauto.EQ; RMicromega.COpp; Field_theory.FEpow; }} - T = 0.768189 + T = 1.602985 Query assignments: %arg1 = 4 S = {{ Nat.add; eq; nat; O; }} @@ -13257,180 +13329,6 @@ app [global (const «Nat.add»), c1, app [global (indc «S»), global (indc «O»)]]], c0] -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] 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: @@ -13438,42 +13336,6 @@ 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] -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: B = fix `add` 0 (prod `n` (global (indt «nat»)) c0 \ @@ -14112,963 +13974,184 @@ 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] - {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: +File "./apps/eltac/theories/apply.v", line 15, characters 16-19: Warning: -File "./tests/test_HOAS.v", line 94, characters 46-61 -X is linear: name it _X (discard) or X_ (fresh variable) +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] -File "./tests/test_HOAS.v", line 101, characters 19-24: +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_HOAS.v", line 101, characters 19-24 +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_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: +File "./tests/test_synterp.v", line 41, characters 12-13: Warning: -File "./tests/test_HOAS.v", line 629, characters 36-37 -U is linear: name it _U (discard) or U_ (fresh variable) +File "./tests/test_synterp.v", line 41, characters 12-13 +X is linear: name it _X (discard) or X_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] test2 test1 @@ -15122,11 +14205,6 @@ File "./tests/test_vernacular1.v", line 65, characters 26-27 X is linear: name it _X (discard) or X_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -File "./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] nabla c1 \ seal (goal [decl c1 `P` (sort prop)] (app [global (const «id»), X0, X1]) @@ -16033,7 +15111,7 @@ Debug: rid:0 step:4 gid:9 user:rule:backchain = success -Debug: }}} -> (0.000s) +Debug: }}} -> (0.005s) Debug: run 5 {{{ Debug: @@ -16419,7 +15497,7 @@ Debug: rid:4 step:104 gid:244 user:rule:pi = success -Debug: }}} -> (0.005s) +Debug: }}} -> (0.000s) Debug: run 105 {{{ Debug: @@ -16626,7 +15704,7 @@ 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: }}} -> (0.001s) Debug: select 54 {{{ Debug: @@ -17079,7 +16157,7 @@ Debug: rid:4 step:116 gid:253 user:rule:eq = success -Debug: }}} -> (0.000s) +Debug: }}} -> (0.012s) Debug: run 117 {{{ Debug: @@ -17206,8 +16284,964 @@ File "./tests/test_tactic.v", line 5, characters 28-32 Type is linear: name it _Type (discard) or Type_ (fresh variable) [elpi.linear-variable,elpi.typecheck,elpi,default] -1 - : nat + {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] This.Is.A.Long.Namespace.stuff = 1 : nat = 1 @@ -17226,14 +17260,10 @@ : nat default nat_def : nat : nat -(true && false)%bool - : bool -natmul R n : ringType_sort R - : ringType_sort R -natmul R n : ringType_sort R - : ringType_sort R Cats.And.Dogs.x = 42 : nat +1 + : nat Foo.x = 3 : nat Foo.x = 3 @@ -17269,7 +17299,28 @@ : nat A2.B2.f = 2 : nat +(true && false)%bool + : bool +natmul R n : ringType_sort R + : ringType_sort R +natmul R n : ringType_sort R + : ringType_sort R 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 test1 str hello str x @@ -17300,21 +17351,259 @@ 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] -it = elpi_subproof - : True -it : True +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 +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: + -it is not universe polymorphic -it is transparent -Expands to: Constant elpi.tests.test_ltac.it -elpi_subproof = I - : True -elpi_subproof : True +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) -elpi_subproof is not universe polymorphic -elpi_subproof is opaque -Expands to: Constant elpi.tests.test_ltac.elpi_subproof -Closed under the global context +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] +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, @@ -17715,263 +18004,12 @@ 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] -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] -d - : nat -trying i = i -trying elpi_ctx_entry_2_ = elpi_ctx_entry_2_ -trying elpi_ctx_entry_1_ = elpi_ctx_entry_1_ /\ p0 = p0 -trying elpi_ctx_entry_1_ = elpi_ctx_entry_1_ /\ p0 = p0 -program -[p] true : bool : bool +global (indc «O») +app + [global (indc «S»), + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] Module d3 : d3_Locked @@ -18062,10 +18100,8 @@ Called from Elpi_plugin__Rocq_elpi_vernacular.Compiler.run_and_print in file "src/rocq_elpi_vernacular.ml", line 166, characters 8-38 Called from Elpi_plugin__Rocq_elpi_vernacular.Interp.run_program.(fun) in file "src/rocq_elpi_vernacular.ml", line 557, characters 34-90 -global (indc «O») -app - [global (indc «S»), - app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] +program +[p] 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, @@ -18225,6 +18261,10 @@ File "./apps/derive/tests/test_param2.v", line 85, characters 0-30: Warning: Not a truly recursive fixpoint. [non-recursive,fixpoints,default] ok +[TC] For indt «C» : + elpi predicate : tc-C + search mode is : tc.deterministic + modes are : [o, o] In tc-A In tc-A In tc-B @@ -18257,10 +18297,32 @@ WEAK CONSTRAINTS: -[TC] For indt «C» : - elpi predicate : tc-C - search mode is : tc.deterministic - modes are : [o, o] +Query assignments: + Len = 2 + Rules = [tc.instance [] (const «Bool.Decidable_eq_bool») + (indt «DecidableClass.Decidable») [], + tc.instance [] (const «DecidableClass.Decidable_not») + (indt «DecidableClass.Decidable») []] +All the remaining goals are on the shelf. + +1 goal + +goal 1 is: + C +1 goal + + ============================ + C +All the remaining goals are on the shelf. + +1 goal + +goal 1 is: + C +1 goal + + ============================ + C ((fun (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)) @@ -18284,12 +18346,6 @@ ============================ (fun H0 : Type => f ?e0@{T:=H0}) nat = (fun H0 : Type => f ?e0@{T:=H0}) bool -Query assignments: - Len = 2 - Rules = [tc.instance [] (const «Bool.Decidable_eq_bool») - (indt «DecidableClass.Decidable») [], - tc.instance [] (const «DecidableClass.Decidable_not») - (indt «DecidableClass.Decidable») []] Debug: Calling typeclass resolution with flags: depth = ∞,unique = false,fail = true Debug: 1: looking for (C ?i) with backtracking @@ -18322,30 +18378,6 @@ Solution for C 1 is i1 Goal is E 1 Solution for E 1 is e1 -All the remaining goals are on the shelf. - -1 goal - -goal 1 is: - C -1 goal - - ============================ - C -All the remaining goals are on the shelf. - -1 goal - -goal 1 is: - C -1 goal - - ============================ - C -(fun x : tele => tele_fmap) -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 => @@ -18353,6 +18385,7 @@ (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 x : tele => tele_fmap) File "./apps/tc/tests/test_tc_declare.v", line 8, characters 2-36: Warning: This command does not fully mirror the watned behavior if the class has methods @@ -18373,11 +18406,9 @@ 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] -Query assignments: - S = app - [global (const «IsAnimal»), global (indc «Fly»), global (const «dove»)] -Query assignments: - S = X0 +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»)] (fun (T : Type) (p : nat -> T -> T -> Prop) (x : T) => partial_app T (p 0) x) eq_refl : @@ -18492,10 +18523,11 @@ 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 -File "./apps/eltac/tests-stdlib/test_injection.v", line 15, characters 0-15: -Warning: Using Vector.t is known to be technically difficult, see -. -[warn-library-file-stdlib-vector,stdlib-vector,warn-library-file,user-warn,default] +Query assignments: + S = app + [global (const «IsAnimal»), global (indc «Fly»), global (const «dove»)] +Query assignments: + S = X0 Instances list for indt «Eqb» is: const «eqBool» with locality [] const «eqProd» with locality [] @@ -18527,967 +18559,971 @@ 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 +. +[warn-library-file-stdlib-vector,stdlib-vector,warn-library-file,user-warn,default] 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.054 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] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: + EqP = const «eqU» +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) rewrite_relation_fun +(*external*) Morphisms.rewrite_relation_fun [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (equiv_rewrite_relation R) +(*external*) (RelationClasses.equiv_rewrite_relation R) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (eq_rewrite_relation A) +(*external*) (Morphisms.eq_rewrite_relation A) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @flip_StrictOrder) +(*external*) (Init.class_apply @RelationClasses.flip_StrictOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @PartialOrder_StrictOrder) +(*external*) (Init.class_apply @Morphisms.PartialOrder_StrictOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CRelationClasses.flip_StrictOrder) +(*external*) (Init.class_apply @CRelationClasses.flip_StrictOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CMorphisms.PartialOrder_StrictOrder) +(*external*) (Init.class_apply @CMorphisms.PartialOrder_StrictOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @flip_PreOrder) +(*external*) (Init.class_apply @RelationClasses.flip_PreOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @StrictOrder_PreOrder) +(*external*) (Init.class_apply @Morphisms.StrictOrder_PreOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CRelationClasses.flip_PreOrder) +(*external*) (Init.class_apply @CRelationClasses.flip_PreOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CMorphisms.StrictOrder_PreOrder) +(*external*) (Init.class_apply @CMorphisms.StrictOrder_PreOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CRelationClasses.flip_Antisymmetric) +(*external*) (Init.class_apply @CRelationClasses.flip_Antisymmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CRelationClasses.flip_Symmetric) +(*external*) (Init.class_apply @CRelationClasses.flip_Symmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CRelationClasses.complement_Symmetric) +(*external*) (Init.class_apply @CRelationClasses.complement_Symmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @PartialOrder_inverse) +(*external*) (Init.class_apply @RelationClasses.PartialOrder_inverse) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @StrictOrder_PartialOrder) +(*external*) (Init.class_apply @Morphisms.StrictOrder_PartialOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @eq_proper_proxy || - class_apply @reflexive_proper_proxy) +(*external*) (Init.class_apply @Morphisms.eq_proper_proxy || + Init.class_apply @Morphisms.reflexive_proper_proxy) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (not_evar R; class_apply @proper_proper_proxy) +(*external*) (not_evar R; Init.class_apply @Morphisms.proper_proper_proxy) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) normalizes +(*external*) Morphisms.normalizes [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @flip2) +(*external*) (Init.class_apply @Morphisms.flip2) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @flip1) +(*external*) (Init.class_apply @Morphisms.flip1) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (subrelation_tac T U) +(*external*) (Morphisms.subrelation_tac T U) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (apply (forall_subrelation B R S); intro) +(*external*) (apply (Morphisms.forall_subrelation B R S); intro) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @subrelation_symmetric) +(*external*) (Init.class_apply @RelationClasses.subrelation_symmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CRelationClasses.PartialOrder_inverse) +(*external*) (Init.class_apply @CRelationClasses.PartialOrder_inverse) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CMorphisms.StrictOrder_PartialOrder) +(*external*) (Init.class_apply @CMorphisms.StrictOrder_PartialOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @flip_Transitive) +(*external*) (Init.class_apply @RelationClasses.flip_Transitive) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CMorphisms.flip2) +(*external*) (Init.class_apply @CMorphisms.flip2) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CMorphisms.flip1) +(*external*) (Init.class_apply @CMorphisms.flip1) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: (*external*) (CMorphisms.subrelation_tac T U) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: (*external*) (apply (CMorphisms.forall_subrelation B R S); intro) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CRelationClasses.subrelation_symmetric) +(*external*) (Init.class_apply @CRelationClasses.subrelation_symmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: (*external*) (apply @CMorphisms.flip_proper) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CMorphisms.proper_flip_proper) +(*external*) (Init.class_apply @CMorphisms.proper_flip_proper) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: (*external*) CMorphisms.partial_application_tactic [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: (*external*) CMorphisms.proper_subrelation [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: (*external*) CMorphisms.proper_normalization [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: (*external*) CMorphisms.proper_reflexive [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CRelationClasses.flip_Transitive) +(*external*) (Init.class_apply @CRelationClasses.flip_Transitive) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @flip_Irreflexive) +(*external*) (Init.class_apply @RelationClasses.flip_Irreflexive) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @complement_Irreflexive) +(*external*) (Init.class_apply @RelationClasses.complement_Irreflexive) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @flip_Asymmetric) +(*external*) (Init.class_apply @RelationClasses.flip_Asymmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (apply @flip_proper) +(*external*) (apply @Morphisms.flip_proper) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (apply @complement_proper) +(*external*) (apply @Morphisms.complement_proper) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @proper_flip_proper) +(*external*) (Init.class_apply @Morphisms.proper_flip_proper) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) partial_application_tactic +(*external*) Morphisms.partial_application_tactic [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) proper_subrelation +(*external*) Morphisms.proper_subrelation [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) proper_normalization +(*external*) Morphisms.proper_normalization [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) proper_reflexive +(*external*) Morphisms.proper_reflexive [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CRelationClasses.flip_Irreflexive) +(*external*) (Init.class_apply @CRelationClasses.flip_Irreflexive) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CRelationClasses.complement_Irreflexive) +(*external*) (Init.class_apply @CRelationClasses.complement_Irreflexive) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CRelationClasses.flip_Asymmetric) +(*external*) (Init.class_apply @CRelationClasses.flip_Asymmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @irreflexivity) +(*external*) (Init.class_apply @RelationClasses.irreflexivity) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (apply flip_Reflexive) +(*external*) (apply RelationClasses.flip_Reflexive) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CRelationClasses.irreflexivity) +(*external*) (Init.class_apply @CRelationClasses.irreflexivity) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: (*external*) (apply CRelationClasses.flip_Reflexive) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) unconvertible +(*external*) Init.unconvertible [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @CMorphisms.eq_proper_proxy || - class_apply @CMorphisms.reflexive_proper_proxy) +(*external*) (Init.class_apply @CMorphisms.eq_proper_proxy || + Init.class_apply @CMorphisms.reflexive_proper_proxy) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (not_evar R; class_apply @CMorphisms.proper_proper_proxy) +(*external*) (not_evar R; Init.class_apply @CMorphisms.proper_proper_proxy) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: (*external*) CMorphisms.normalizes [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @flip_Antisymmetric) +(*external*) (Init.class_apply @RelationClasses.flip_Antisymmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @flip_Symmetric) +(*external*) (Init.class_apply @RelationClasses.flip_Symmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (class_apply @complement_Symmetric) +(*external*) (Init.class_apply @RelationClasses.complement_Symmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: +File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: Warning: There is an hint extern in the typeclass db: -(*external*) (reflexive_proxy_tac A R) +(*external*) (Morphisms.reflexive_proxy_tac A R) [elpi.TC.hints,elpi,default] -Received the following event -[str new_instance, str I4, str A, str Export, int -1] -Query assignments: - EqP = const «eqU» -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) Morphisms.rewrite_relation_fun +(*external*) rewrite_relation_fun [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (RelationClasses.equiv_rewrite_relation R) +(*external*) (equiv_rewrite_relation R) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Morphisms.eq_rewrite_relation A) +(*external*) (eq_rewrite_relation A) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @RelationClasses.flip_StrictOrder) +(*external*) (class_apply @flip_StrictOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @Morphisms.PartialOrder_StrictOrder) +(*external*) (class_apply @PartialOrder_StrictOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CRelationClasses.flip_StrictOrder) +(*external*) (class_apply @CRelationClasses.flip_StrictOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CMorphisms.PartialOrder_StrictOrder) +(*external*) (class_apply @CMorphisms.PartialOrder_StrictOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @RelationClasses.flip_PreOrder) +(*external*) (class_apply @flip_PreOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @Morphisms.StrictOrder_PreOrder) +(*external*) (class_apply @StrictOrder_PreOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CRelationClasses.flip_PreOrder) +(*external*) (class_apply @CRelationClasses.flip_PreOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CMorphisms.StrictOrder_PreOrder) +(*external*) (class_apply @CMorphisms.StrictOrder_PreOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CRelationClasses.flip_Antisymmetric) +(*external*) (class_apply @CRelationClasses.flip_Antisymmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CRelationClasses.flip_Symmetric) +(*external*) (class_apply @CRelationClasses.flip_Symmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CRelationClasses.complement_Symmetric) +(*external*) (class_apply @CRelationClasses.complement_Symmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @RelationClasses.PartialOrder_inverse) +(*external*) (class_apply @PartialOrder_inverse) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @Morphisms.StrictOrder_PartialOrder) +(*external*) (class_apply @StrictOrder_PartialOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @Morphisms.eq_proper_proxy || - Init.class_apply @Morphisms.reflexive_proper_proxy) +(*external*) (class_apply @eq_proper_proxy || + class_apply @reflexive_proper_proxy) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (not_evar R; Init.class_apply @Morphisms.proper_proper_proxy) +(*external*) (not_evar R; class_apply @proper_proper_proxy) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) Morphisms.normalizes +(*external*) normalizes [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @Morphisms.flip2) +(*external*) (class_apply @flip2) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @Morphisms.flip1) +(*external*) (class_apply @flip1) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Morphisms.subrelation_tac T U) +(*external*) (subrelation_tac T U) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (apply (Morphisms.forall_subrelation B R S); intro) +(*external*) (apply (forall_subrelation B R S); intro) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @RelationClasses.subrelation_symmetric) +(*external*) (class_apply @subrelation_symmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CRelationClasses.PartialOrder_inverse) +(*external*) (class_apply @CRelationClasses.PartialOrder_inverse) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CMorphisms.StrictOrder_PartialOrder) +(*external*) (class_apply @CMorphisms.StrictOrder_PartialOrder) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @RelationClasses.flip_Transitive) +(*external*) (class_apply @flip_Transitive) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CMorphisms.flip2) +(*external*) (class_apply @CMorphisms.flip2) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CMorphisms.flip1) +(*external*) (class_apply @CMorphisms.flip1) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: (*external*) (CMorphisms.subrelation_tac T U) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: (*external*) (apply (CMorphisms.forall_subrelation B R S); intro) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CRelationClasses.subrelation_symmetric) +(*external*) (class_apply @CRelationClasses.subrelation_symmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: (*external*) (apply @CMorphisms.flip_proper) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CMorphisms.proper_flip_proper) +(*external*) (class_apply @CMorphisms.proper_flip_proper) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: (*external*) CMorphisms.partial_application_tactic [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: (*external*) CMorphisms.proper_subrelation [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: (*external*) CMorphisms.proper_normalization [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: (*external*) CMorphisms.proper_reflexive [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CRelationClasses.flip_Transitive) +(*external*) (class_apply @CRelationClasses.flip_Transitive) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @RelationClasses.flip_Irreflexive) +(*external*) (class_apply @flip_Irreflexive) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @RelationClasses.complement_Irreflexive) +(*external*) (class_apply @complement_Irreflexive) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @RelationClasses.flip_Asymmetric) +(*external*) (class_apply @flip_Asymmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (apply @Morphisms.flip_proper) +(*external*) (apply @flip_proper) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (apply @Morphisms.complement_proper) +(*external*) (apply @complement_proper) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @Morphisms.proper_flip_proper) +(*external*) (class_apply @proper_flip_proper) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) Morphisms.partial_application_tactic +(*external*) partial_application_tactic [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) Morphisms.proper_subrelation +(*external*) proper_subrelation [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) Morphisms.proper_normalization +(*external*) proper_normalization [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) Morphisms.proper_reflexive +(*external*) proper_reflexive [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CRelationClasses.flip_Irreflexive) +(*external*) (class_apply @CRelationClasses.flip_Irreflexive) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CRelationClasses.complement_Irreflexive) +(*external*) (class_apply @CRelationClasses.complement_Irreflexive) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CRelationClasses.flip_Asymmetric) +(*external*) (class_apply @CRelationClasses.flip_Asymmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @RelationClasses.irreflexivity) +(*external*) (class_apply @irreflexivity) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (apply RelationClasses.flip_Reflexive) +(*external*) (apply flip_Reflexive) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CRelationClasses.irreflexivity) +(*external*) (class_apply @CRelationClasses.irreflexivity) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: (*external*) (apply CRelationClasses.flip_Reflexive) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) Init.unconvertible +(*external*) unconvertible [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @CMorphisms.eq_proper_proxy || - Init.class_apply @CMorphisms.reflexive_proper_proxy) +(*external*) (class_apply @CMorphisms.eq_proper_proxy || + class_apply @CMorphisms.reflexive_proper_proxy) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (not_evar R; Init.class_apply @CMorphisms.proper_proper_proxy) +(*external*) (not_evar R; class_apply @CMorphisms.proper_proper_proxy) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: (*external*) CMorphisms.normalizes [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @RelationClasses.flip_Antisymmetric) +(*external*) (class_apply @flip_Antisymmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @RelationClasses.flip_Symmetric) +(*external*) (class_apply @flip_Symmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Init.class_apply @RelationClasses.complement_Symmetric) +(*external*) (class_apply @complement_Symmetric) [elpi.TC.hints,elpi,default] -File "./apps/tc/tests-stdlib/test_commands_API.v", line 52, characters 2-25: +File "./apps/tc/tests-stdlib/stdppInj.v", line 13, characters 0-24: Warning: There is an hint extern in the typeclass db: -(*external*) (Morphisms.reflexive_proxy_tac A R) +(*external*) (reflexive_proxy_tac A R) [elpi.TC.hints,elpi,default] +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.032 secs (0.032u,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] Debug: [elpitime] Elpi: get_and_compile 0.0001 -Debug: [TC] - Time of instance search is 0.000080 -Debug: [TC] - Time of refine.typecheck is 0.000198 +Debug: [TC] - Time of instance search is 0.000300 +Debug: [TC] - Time of refine.typecheck is 0.000212 Debug: [elpitime] - Elpi: query-compilation:0.0001 static-check:0.0000 optimization:0.0001 runtime:0.0018 (with success) + Elpi: query-compilation:0.0001 static-check:0.0000 optimization:0.0001 runtime:0.0022 (with success) -Finished transaction in 0.002 secs (0.001u,0.s) (successful) +Finished transaction in 0.002 secs (0.002u,0.s) (successful) 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) @@ -19915,9 +19951,9 @@ peano.eqb_OK is opaque Expands to: Constant elpi.apps.derive.examples.readme.peano.eqb_OK Derivation param1 on const «Nat.add» -Derivation param1 on const «Nat.add» took 0.002774 +Derivation param1 on const «Nat.add» took 0.003223 Derivation param2 on const «Nat.add» -Derivation param2 on const «Nat.add» took 0.003572 +Derivation param2 on const «Nat.add» took 0.003869 Derivation eqb-alias on const «Nat.add» Derivation eqb-alias on const «Nat.add» failed, continuing Derivation eqbcorrect-alias on const «Nat.add» @@ -19957,37 +19993,37 @@ (arity (prod `l` (app [global (indt «tickle.tickle»), c1]) c2 \ c1))] Deriving Derivation map on indt «rtree» -Derivation map on indt «rtree» took 0.001779 +Derivation map on indt «rtree» took 0.001917 Derivation lens on indt «rtree» Derivation lens on indt «rtree» failed, continuing Derivation param1 on indt «rtree» -Derivation param1 on indt «rtree» took 0.005011 +Derivation param1 on indt «rtree» took 0.005536 Derivation param2 on indt «rtree» -Derivation param2 on indt «rtree» took 0.006662 +Derivation param2 on indt «rtree» took 0.007025 Derivation tag on indt «rtree» -Derivation tag on indt «rtree» took 0.001045 +Derivation tag on indt «rtree» took 0.001128 Derivation eqType_ast on indt «rtree» -Derivation eqType_ast on indt «rtree» took 0.000351 +Derivation eqType_ast on indt «rtree» took 0.000392 Derivation lens_laws on indt «rtree» -Derivation lens_laws on indt «rtree» took 0.000045 +Derivation lens_laws on indt «rtree» took 0.000050 Derivation param1_congr on indt «rtree» -Derivation param1_congr on indt «rtree» took 0.002197 +Derivation param1_congr on indt «rtree» took 0.002347 Derivation param1_inhab on indt «rtree» -Derivation param1_inhab on indt «rtree» took 0.001895 +Derivation param1_inhab on indt «rtree» took 0.001933 Derivation param1_functor on indt «rtree» -Derivation param1_functor on indt «rtree» took 0.002726 +Derivation param1_functor on indt «rtree» took 0.002138 Derivation fields on indt «rtree» -Derivation fields on indt «rtree» took 0.007336 +Derivation fields on indt «rtree» took 0.007099 Derivation param1_trivial on indt «rtree» -Derivation param1_trivial on indt «rtree» took 0.178176 +Derivation param1_trivial on indt «rtree» took 0.188538 Derivation induction on indt «rtree» -Derivation induction on indt «rtree» took 0.001913 +Derivation induction on indt «rtree» took 0.001983 Derivation eqb on indt «rtree» -Derivation eqb on indt «rtree» took 0.005847 +Derivation eqb on indt «rtree» took 0.006358 Derivation eqbcorrect on indt «rtree» -Derivation eqbcorrect on indt «rtree» took 0.022176 +Derivation eqbcorrect on indt «rtree» took 0.023918 Derivation eqbOK on indt «rtree» -Derivation eqbOK on indt «rtree» took 0.001224 +Derivation eqbOK on indt «rtree» took 0.001310 Done rtree.induction : @@ -20011,15 +20047,15 @@ Deriving Skipping derivation map on indt «Box» since the user did not select it Derivation lens on indt «Box» -Derivation lens on indt «Box» took 0.003414 +Derivation lens on indt «Box» took 0.003514 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.001189 +Derivation tag on indt «Box» took 0.001394 Derivation eqType_ast on indt «Box» -Derivation eqType_ast on indt «Box» took 0.000262 +Derivation eqType_ast on indt «Box» took 0.000312 Derivation lens_laws on indt «Box» -Derivation lens_laws on indt «Box» took 0.012004 +Derivation lens_laws on indt «Box» took 0.014130 Skipping derivation param1_congr on indt «Box» since the user did not select it Skipping derivation param1_inhab on indt «Box» @@ -20027,13 +20063,13 @@ Skipping derivation param1_functor on indt «Box» since the user did not select it Derivation fields on indt «Box» -Derivation fields on indt «Box» took 0.004810 +Derivation fields on indt «Box» took 0.005425 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.002933 +Derivation eqb on indt «Box» took 0.003219 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 @@ -20059,65 +20095,65 @@ nat_eqb_OK : forall x y : nat, reflect (x = y) (nat_eqb x y) : forall x y : nat, reflect (x = y) (nat_eqb x y) Derivation map on indt «a» -Derivation map on indt «a» took 0.000826 +Derivation map on indt «a» took 0.000910 Derivation lens on indt «a» Derivation lens on indt «a» failed, continuing Derivation param1 on indt «a» -Derivation param1 on indt «a» took 0.001904 +Derivation param1 on indt «a» took 0.002314 Derivation param2 on indt «a» -Derivation param2 on indt «a» took 0.002331 +Derivation param2 on indt «a» took 0.002568 Derivation tag on indt «a» -Derivation tag on indt «a» took 0.000644 +Derivation tag on indt «a» took 0.000829 Derivation eqType_ast on indt «a» -Derivation eqType_ast on indt «a» took 0.000152 +Derivation eqType_ast on indt «a» took 0.000174 Derivation lens_laws on indt «a» -Derivation lens_laws on indt «a» took 0.000042 +Derivation lens_laws on indt «a» took 0.000051 Derivation param1_congr on indt «a» -Derivation param1_congr on indt «a» took 0.000276 +Derivation param1_congr on indt «a» took 0.000352 Derivation param1_inhab on indt «a» -Derivation param1_inhab on indt «a» took 0.000691 +Derivation param1_inhab on indt «a» took 0.000829 Derivation param1_functor on indt «a» -Derivation param1_functor on indt «a» took 0.000713 +Derivation param1_functor on indt «a» took 0.000734 Derivation fields on indt «a» -Derivation fields on indt «a» took 0.002508 +Derivation fields on indt «a» took 0.002877 Derivation param1_trivial on indt «a» -Derivation param1_trivial on indt «a» took 0.001102 +Derivation param1_trivial on indt «a» took 0.001220 Derivation induction on indt «a» -Derivation induction on indt «a» took 0.000790 +Derivation induction on indt «a» took 0.000972 Derivation eqb on indt «a» -Derivation eqb on indt «a» took 0.001278 +Derivation eqb on indt «a» took 0.001603 Derivation eqbcorrect on indt «a» -Derivation eqbcorrect on indt «a» took 0.002924 +Derivation eqbcorrect on indt «a» took 0.003608 Derivation eqbOK on indt «a» -Derivation eqbOK on indt «a» took 0.000564 +Derivation eqbOK on indt «a» took 0.000670 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.002366 +Derivation param1 on indt «b» took 0.002554 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.000743 +Derivation tag on indt «b» took 0.000848 Derivation eqType_ast on indt «b» -Derivation eqType_ast on indt «b» took 0.000220 +Derivation eqType_ast on indt «b» took 0.000271 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.000864 +Derivation param1_inhab on indt «b» took 0.000967 Derivation param1_functor on indt «b» -Derivation param1_functor on indt «b» took 0.000812 +Derivation param1_functor on indt «b» took 0.000823 Derivation fields on indt «b» -Derivation fields on indt «b» took 0.003172 +Derivation fields on indt «b» took 0.003601 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.000992 +Derivation induction on indt «b» took 0.001132 Derivation eqb on indt «b» -Derivation eqb on indt «b» took 0.001742 +Derivation eqb on indt «b» took 0.002161 Derivation eqbcorrect on indt «b» -Derivation eqbcorrect on indt «b» took 0.003687 +Derivation eqbcorrect on indt «b» took 0.004069 Derivation eqbOK on indt «b» -Derivation eqbOK on indt «b» took 0.000609 +Derivation eqbOK on indt «b» took 0.000623 a_eqb : a -> a -> bool b_eqb @@ -20317,9 +20353,9 @@ : bool Peano.eqb_OK : forall x1 x2 : Peano.peano, reflect (x1 = x2) (Peano.eqb x1 x2) -Finished transaction in 0.842 secs (0.656u,0.02s) (successful) -Finished transaction in 17.459 secs (15.003u,0.066s) (successful) -Finished transaction in 0.229 secs (0.224u,0.003s) (successful) +Finished transaction in 1.064 secs (0.669u,0.025s) (successful) +Finished transaction in 20.004 secs (15.551u,0.043s) (successful) +Finished transaction in 0.24 secs (0.24u,0.s) (successful) derive.param1_trivial: wrong shape is_nest . It does not look like a unary parametricity translation of an inductive with no indexes. derive.param1_trivial: wrong shape is_vect A PA @@ -20333,13 +20369,13 @@ Skipping derivation tag on indt «nat» since it has been already run Skipping derivation eqType_ast on indt «nat» since it has been already run Derivation projK on indt «nat» -Derivation projK on indt «nat» took 0.001160 +Derivation projK on indt «nat» took 0.001201 Derivation isK on indt «nat» -Derivation isK on indt «nat» took 0.001518 +Derivation isK on indt «nat» took 0.001930 Derivation eq on indt «nat» -Derivation eq on indt «nat» took 0.001253 +Derivation eq on indt «nat» took 0.001515 Derivation invert on indt «nat» -Derivation invert on indt «nat» took 0.001200 +Derivation invert on indt «nat» took 0.001351 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 @@ -20349,7 +20385,7 @@ since it has been already run Skipping derivation fields on indt «nat» since it has been already run Derivation bcongr on indt «nat» -Derivation bcongr on indt «nat» took 0.002328 +Derivation bcongr on indt «nat» took 0.002635 Derivation idx2inv on indt «nat» Derivation idx2inv on indt «nat» failed, continuing Skipping derivation param1_trivial on indt «nat» @@ -20357,13 +20393,13 @@ Skipping derivation induction on indt «nat» since it has been already run Skipping derivation eqb on indt «nat» since it has been already run Derivation eqK on indt «nat» -Derivation eqK on indt «nat» took 0.037406 +Derivation eqK on indt «nat» took 0.041219 Skipping derivation eqbcorrect on indt «nat» since it has been already run Derivation eqcorrect on indt «nat» -Derivation eqcorrect on indt «nat» took 0.000762 +Derivation eqcorrect on indt «nat» took 0.000934 Skipping derivation eqbOK on indt «nat» since it has been already run Derivation eqOK on indt «nat» -Derivation eqOK on indt «nat» took 0.000427 +Derivation eqOK on indt «nat» took 0.000527 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 @@ -20408,12 +20444,12 @@ Skipping derivation map on indt «foo» since the user did not select it Skipping derivation lens on indt «foo» since the user did not select it Derivation param1 on indt «foo» -Derivation param1 on indt «foo» took 0.002776 +Derivation param1 on indt «foo» took 0.003184 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.000870 +Derivation tag on indt «foo» took 0.000954 Derivation eqType_ast on indt «foo» -Derivation eqType_ast on indt «foo» took 0.000277 +Derivation eqType_ast on indt «foo» took 0.000275 Skipping derivation projK on indt «foo» since the user did not select it Skipping derivation isK on indt «foo» since the user did not select it Skipping derivation eq on indt «foo» since the user did not select it @@ -20423,26 +20459,26 @@ Skipping derivation param1_congr on indt «foo» since the user did not select it Derivation param1_inhab on indt «foo» -Derivation param1_inhab on indt «foo» took 0.000996 +Derivation param1_inhab on indt «foo» took 0.001112 Derivation param1_functor on indt «foo» -Derivation param1_functor on indt «foo» took 0.000797 +Derivation param1_functor on indt «foo» took 0.000915 Derivation fields on indt «foo» -Derivation fields on indt «foo» took 0.003617 +Derivation fields on indt «foo» took 0.004255 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.000971 +Derivation induction on indt «foo» took 0.001186 Derivation eqb on indt «foo» -Derivation eqb on indt «foo» took 0.002038 +Derivation eqb on indt «foo» took 0.002479 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.004259 +Derivation eqbcorrect on indt «foo» took 0.004795 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.000745 +Derivation eqbOK on indt «foo» took 0.000902 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. @@ -20454,11 +20490,11 @@ dune build builtin-doc Warning: Cache directories could not be created: Permission denied; disabling cache -Hint: Make sure the directory /nonexistent/first-build/.cache/dune/db/temp +Hint: Make sure the directory /nonexistent/second-build/.cache/dune/db/temp can be created make[2]: Leaving directory '/build/reproducible-path/coq-elpi-2.5.0' make[1]: Leaving directory '/build/reproducible-path/coq-elpi-2.5.0' - dh_auto_test +dh: command-omitted: The call to "dh_auto_test" was omitted due to "DEB_BUILD_OPTIONS=nocheck" create-stamp debian/debhelper-build-stamp dh_prep debian/rules override_dh_auto_install @@ -20466,7 +20502,7 @@ 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/first-build/.cache/dune/db/temp +Hint: Make sure the directory /nonexistent/second-build/.cache/dune/db/temp can be created rm -fr /build/reproducible-path/coq-elpi-2.5.0/debian/tmp/usr/doc/coq-elpi rm -fr /build/reproducible-path/coq-elpi-2.5.0/debian/tmp/usr/doc/rocq-elpi @@ -20505,8 +20541,8 @@ 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.2_arm64.deb'. dpkg-deb: building package 'libcoq-elpi' in '../libcoq-elpi_2.5.0-1.2_arm64.deb'. +dpkg-deb: building package 'libcoq-elpi-dbgsym' in '../libcoq-elpi-dbgsym_2.5.0-1.2_arm64.deb'. dpkg-genbuildinfo --build=binary -O../coq-elpi_2.5.0-1.2_arm64.buildinfo dpkg-genchanges --build=binary -O../coq-elpi_2.5.0-1.2_arm64.changes dpkg-genchanges: info: binary-only upload (no source code included) @@ -20514,12 +20550,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/4075339/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/4075339/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/43278 and its subdirectories -I: Current time: Sat Dec 5 00:22:07 -12 2026 -I: pbuilder-time-stamp: 1796473327 +I: removing directory /srv/workspace/pbuilder/4075339 and its subdirectories +I: Current time: Sun Nov 2 20:00:48 +14 2025 +I: pbuilder-time-stamp: 1762063248