Diff of the two buildlogs: -- --- b1/build.log 2024-04-22 02:36:04.262801334 +0000 +++ b2/build.log 2024-04-22 03:00:59.078944539 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Sun Apr 21 14:22:23 -12 2024 -I: pbuilder-time-stamp: 1713752543 +I: Current time: Mon Apr 22 16:36:25 +14 2024 +I: pbuilder-time-stamp: 1713753385 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration @@ -28,52 +28,84 @@ dpkg-source: info: applying 0001-Increase-timeout-in-test-that-takes-a-bit-longer-on-.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/2897/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/5908/tmp/hooks/D01_modify_environment starting +debug: Running on cbxi4b. +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 Apr 22 02:37 /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/5908/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/5908/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='armhf' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=3 ' - DISTRIBUTION='trixie' - HOME='/root' - HOST_ARCH='armhf' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="2" [2]="21" [3]="1" [4]="release" [5]="arm-unknown-linux-gnueabihf") + BASH_VERSION='5.2.21(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=armhf + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=4 ' + DIRSTACK=() + DISTRIBUTION=trixie + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=arm + HOST_ARCH=armhf IFS=' ' - INVOCATION_ID='4fe97de2bbd34a93895e35f94a4a14f3' - 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='2897' - PS1='# ' - PS2='> ' + INVOCATION_ID=4551dc5147ed458faad636f28f1b9931 + LANG=C + LANGUAGE=it_CH:it + LC_ALL=C + MACHTYPE=arm-unknown-linux-gnueabihf + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnueabihf + 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=5908 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.04U66QQ8/pbuilderrc_IJA1 --distribution trixie --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.04U66QQ8/b1 --logfile b1/build.log coq-elpi_1.19.3-2.dsc' - SUDO_GID='114' - SUDO_UID='108' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://10.0.0.15:3142/' + 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.04U66QQ8/pbuilderrc_XS1p --distribution trixie --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.04U66QQ8/b2 --logfile b2/build.log coq-elpi_1.19.3-2.dsc' + SUDO_GID=116 + SUDO_UID=112 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://10.0.0.15:3142/ I: uname -a - Linux virt64a 6.1.0-20-arm64 #1 SMP Debian 6.1.85-1 (2024-04-11) aarch64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-20-armmp #1 SMP Debian 6.1.85-1 (2024-04-11) armv7l GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Apr 21 07:13 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/2897/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Apr 21 07:21 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/5908/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -199,7 +231,7 @@ Get: 76 http://deb.debian.org/debian trixie/main armhf libppx-deriving-ocaml-dev armhf 5.2.1-4+b3 [833 kB] Get: 77 http://deb.debian.org/debian trixie/main armhf libre-ocaml-dev armhf 1.11.0-1+b1 [924 kB] Get: 78 http://deb.debian.org/debian trixie/main armhf libelpi-ocaml-dev armhf 1.17.4-3+b1 [9262 kB] -Fetched 344 MB in 11s (32.6 MB/s) +Fetched 344 MB in 48s (7104 kB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libpython3.11-minimal:armhf. (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 ... 19635 files and directories currently installed.) @@ -458,8 +490,8 @@ Setting up tzdata (2024a-1) ... Current default time zone: 'Etc/UTC' -Local time is now: Mon Apr 22 02:26:34 UTC 2024. -Universal Time is now: Mon Apr 22 02:26:34 UTC 2024. +Local time is now: Mon Apr 22 02:40:38 UTC 2024. +Universal Time is now: Mon Apr 22 02:40:38 UTC 2024. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up autotools-dev (20220109.1) ... @@ -534,7 +566,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/coq-elpi-1.19.3/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../coq-elpi_1.19.3-2_source.changes +I: user script /srv/workspace/pbuilder/5908/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for trixie +I: user script /srv/workspace/pbuilder/5908/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/coq-elpi-1.19.3/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../coq-elpi_1.19.3-2_source.changes dpkg-buildpackage: info: source package coq-elpi dpkg-buildpackage: info: source version 1.19.3-2 dpkg-buildpackage: info: source distribution unstable @@ -814,7 +850,7 @@ app [global (indt «or»), global (indt «False»), global (indt «True»)] hit app [global (indt «or»), global (indt «False»), global (indt «True»)] -Finished transaction in 0.049 secs (0.024u,0.s) (successful) +Finished transaction in 0.077 secs (0.071u,0.s) (successful) ########################## building APPS ############################ make[3]: Entering directory '/build/reproducible-path/coq-elpi-1.19.3/apps/derive' Using coq found in /usr/bin//, from COQBIN or PATH @@ -840,6 +876,7 @@ COQC theories/derive/eqbcorrect.v COQC theories/derive/eqbOK.v COQC theories/derive/std.v +[skipping 9 clauses out of 1043 due to time limit] COQC theories/derive/projK.v COQC theories/derive/isK.v COQC theories/derive/eq.v @@ -905,7 +942,7 @@ make[2]: Leaving directory '/build/reproducible-path/coq-elpi-1.19.3' make[1]: Leaving directory '/build/reproducible-path/coq-elpi-1.19.3' dh_auto_test - make -j3 test + make -j4 test make[1]: Entering directory '/build/reproducible-path/coq-elpi-1.19.3' Using coq found in /usr/bin, from COQBIN or PATH ########################## building plugin ########################## @@ -922,6 +959,7 @@ Using coq found in /usr/bin//, from COQBIN or PATH COQC tests/test_API.v COQC tests/test_API_elaborate.v +COQC tests/test_API_typecheck.v make[4]: Nothing to be done for 'real-all'. make[2]: Leaving directory '/build/reproducible-path/coq-elpi-1.19.3/apps/eltac' make[2]: Entering directory '/build/reproducible-path/coq-elpi-1.19.3/apps/NES' @@ -931,9 +969,6 @@ make[2]: Entering directory '/build/reproducible-path/coq-elpi-1.19.3/apps/locker' Using coq found in /usr/bin//, from COQBIN or PATH make[4]: Nothing to be done for 'real-all'. -make[2]: Leaving directory '/build/reproducible-path/coq-elpi-1.19.3/apps/locker' -make[2]: Entering directory '/build/reproducible-path/coq-elpi-1.19.3/apps/coercion' -Using coq found in /usr/bin//, from COQBIN or PATH Query assignments: E = fun `n` (global (indt «nat»)) c0 \ fun `t` (app [global (const «T2»), c0]) c1 \ @@ -970,20 +1005,35 @@ WEAK CONSTRAINTS: -make[4]: Nothing to be done for 'real-all'. +make[2]: Leaving directory '/build/reproducible-path/coq-elpi-1.19.3/apps/locker' +make[2]: Entering directory '/build/reproducible-path/coq-elpi-1.19.3/apps/coercion' +Using coq found in /usr/bin//, from COQBIN or PATH +Query assignments: + BO = fix `add` 0 + (prod `n` (global (indt «nat»)) c0 \ + prod `m` (global (indt «nat»)) c1 \ global (indt «nat»)) c0 \ + fun `n` (global (indt «nat»)) c1 \ + fun `m` (global (indt «nat»)) c2 \ + match c1 (fun `n` (global (indt «nat»)) c3 \ global (indt «nat»)) + [c2, + fun `p` (global (indt «nat»)) c3 \ + app [global (indc «S»), app [c0, c3, c2]]] + GR = «Nat.add» + TY = prod `n` (global (indt «nat»)) c0 \ + prod `m` (global (indt «nat»)) c1 \ global (indt «nat») Coq version: 8.18.0 = 8 . 18 . 0 Query assignments: MA = 8 MI = 18 P = 0 V = 8.18.0 +make[4]: Nothing to be done for 'real-all'. make[2]: Leaving directory '/build/reproducible-path/coq-elpi-1.19.3/apps/coercion' ########################## testing APPS ############################ make[2]: Entering directory '/build/reproducible-path/coq-elpi-1.19.3/apps/derive' Using coq found in /usr/bin//, from COQBIN or PATH Warning: ../../theories (used in -R or -Q) is not a subdirectory of the current directory -COQDEP VFILES Query assignments: E = app [global (const «bar»), @@ -994,7 +1044,17 @@ TY = prop _uvk_4_ = X0 _uvk_5_ = X1 -COQC tests/test_derive_stdlib.v +COQDEP VFILES +c2 +global (indt «nat») +z +nat +Query assignments: + Spilled_1 = c0 \ c1 \ c2 \ +nat + Spilled_2 = c0 \ c1 \ c2 \ +z + T = global (indt «nat») hello world Query assignments: E = app @@ -1018,6 +1078,17 @@ WEAK CONSTRAINTS: +COQC tests/test_derive_stdlib.v +c2 +global (indt «nat») +z +nat +Query assignments: + Spilled_1 = c0 \ c1 \ c2 \ +nat + Spilled_2 = c0 \ c1 \ c2 \ +z + T = global (indt «nat») raw: parameter A explicit (global (const «T1»)) c0 \ inductive ind1 tt @@ -1103,7 +1174,15 @@ (prod `x` c0 c1 \ app [global (indt «eq»), c0, c1, c1]) c1 \ end-record) forall x : ind3, x -> Prop : Type -COQC tests/test_param2.v +Illegal application (Non-functional construction): +The expression "Prop" of type "Type" +cannot be applied to the term + "Prop" : "Type" +Query assignments: + E = Illegal application (Non-functional construction): +The expression "Prop" of type "Type" +cannot be applied to the term + "Prop" : "Type" Query assignments: E = app [global (const «op»), global (const «c»), @@ -1126,6 +1205,10 @@ unknown_gref +COQC tests/test_param2.v +Unable to unify "bool" with "nat". +Query assignments: + Msg = Unable to unify "bool" with "nat". nth_R = fun (T T0 : Type) (T1 : T -> T0 -> Type) (x0 : T) (x1 : T0) (x2 : T1 x0 x1) => @@ -1251,6 +1334,44 @@ Arguments nth_R (T T)%type_scope T%function_scope x0 x0 x0 (n n)%nat_scope n (l l)%list_scope l «elpi.tests.test_API_elaborate.52» «elpi.tests.test_API_elaborate.52» +COQC tests/test_API_env.v +Query assignments: + Cons = global (indc «cons») + GRCons = indc «cons» + GRList = indt «list» + GRNat = indt «nat» + GRNil = indc «nil» + GRZero = indc «O» + L = app + [global (indc «cons»), global (indt «nat»), global (indc «O»), + app [global (indc «nil»), global (indt «nat»)]] + LE = app + [global (indc «cons»), global (indt «nat»), global (indc «O»), + app [global (indc «nil»), global (indt «nat»)]] + List = global (indt «list») + Nat = global (indt «nat») + Nil = global (indc «nil») + Zero = global (indc «O») +Universe constraints: +UNIVERSES: + {elpi.tests.test_API_typecheck.4 elpi.tests.test_API_typecheck.3 + elpi.tests.test_API_typecheck.2 elpi.tests.test_API_typecheck.1} |= + elpi.tests.test_API_typecheck.3 < elpi.tests.test_API_typecheck.2 + elpi.tests.test_API_typecheck.4 < elpi.tests.test_API_typecheck.1 + Set <= elpi.tests.test_API_typecheck.3 + Set <= elpi.tests.test_API_typecheck.4 + elpi.tests.test_API_typecheck.3 <= list.u0 + elpi.tests.test_API_typecheck.4 <= list.u0 +ALGEBRAIC UNIVERSES: + {} +UNDEFINED UNIVERSES: + +SORTS: + α1 := Type + α2 := Type +WEAK CONSTRAINTS: + + pred_R = fun (n n0 : nat) (n1 : nat_R n n0) => match @@ -1276,10 +1397,11 @@ : nat2nat_R predn predn add_R : nat2nat2nat_R Nat.add Nat.add : nat2nat2nat_R Nat.add Nat.add -COQC tests/test_API_typecheck.v File "./tests/test_param2.v", line 85, characters 0-30: Warning: Not a truly recursive fixpoint. [non-recursive,fixpoints,default] COQC tests/test_invert.v +Query assignments: + GR = «nat» test_inv : Type -> bool -> Type : Type -> bool -> Type K1_inv : forall (A : Type) (b : bool), b = true -> test_inv A b @@ -1303,13 +1425,6 @@ Arguments consR_inv A%type_scope PA%function_scope idx0%list_scope a _ xs%list_scope _ _ COQC tests/test_idx2inv.v -is_list_to_is_list_inv -: -forall (A : Type) (PA : A -> Type) (l : list A), -is_list A PA l -> is_list_inv A PA l - : forall (A : Type) (PA : A -> Type) (l : list A), - is_list A PA l -> is_list_inv A PA l -COQC tests/test_lens.v Query assignments: BO = fix `add` 0 (prod `n` (global (indt «nat»)) c0 \ @@ -1321,8 +1436,87 @@ fun `p` (global (indt «nat»)) c3 \ app [global (indc «S»), app [c0, c3, c2]]] GR = «Nat.add» + GRNat = indt «nat» + GRSucc = indc «S» + Nat = global (indt «nat») + Succ = global (indc «S») TY = prod `n` (global (indt «nat»)) c0 \ prod `m` (global (indt «nat»)) c1 \ global (indt «nat») +global (indt «nat») +Query assignments: + T = global (indt «nat») + _uvk_5_ = global (indt «nat») + _uvk_6_ = global (indt «nat») +Universe constraints: +UNIVERSES: + {elpi.tests.test_API_typecheck.9 elpi.tests.test_API_typecheck.8 + elpi.tests.test_API_typecheck.7 elpi.tests.test_API_typecheck.6 + elpi.tests.test_API_typecheck.5} |= + Set < elpi.tests.test_API_typecheck.7 + elpi.tests.test_API_typecheck.8 < elpi.tests.test_API_typecheck.6 + elpi.tests.test_API_typecheck.9 < elpi.tests.test_API_typecheck.5 + Set <= elpi.tests.test_API_typecheck.8 + Set <= elpi.tests.test_API_typecheck.9 + elpi.tests.test_API_typecheck.8 <= list.u0 + elpi.tests.test_API_typecheck.9 <= list.u0 +ALGEBRAIC UNIVERSES: + {} +UNDEFINED UNIVERSES: + +SORTS: + α3 := Type + α4 := Type + α5 := Type +WEAK CONSTRAINTS: + + +is_list_to_is_list_inv +: +forall (A : Type) (PA : A -> Type) (l : list A), +is_list A PA l -> is_list_inv A PA l + : forall (A : Type) (PA : A -> Type) (l : list A), + is_list A PA l -> is_list_inv A PA l +COQC tests/test_lens.v +Query assignments: + GR = «Nat.add» + MP = «Coq.Init.Datatypes» +Query assignments: + GR = «empty_nat» + TY = global (indt «nat») +«elpi.tests.test_API_typecheck.10» +Query assignments: + U = «elpi.tests.test_API_typecheck.10» +Universe constraints: +UNIVERSES: + {elpi.tests.test_API_typecheck.10} |= + Set <= elpi.tests.test_API_typecheck.10 +ALGEBRAIC UNIVERSES: + {elpi.tests.test_API_typecheck.10} +UNDEFINED UNIVERSES: + elpi.tests.test_API_typecheck.10 +SORTS: + +WEAK CONSTRAINTS: + + +Query assignments: + GR1 = indc «Vector.nil» + GR2 = indt «nat» + GR3 = const «A» +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»] +Unable to unify "Set" with "Prop" (universe inconsistency: Cannot enforce Set +<= Prop). +Query assignments: + E = Unable to unify "Set" with "Prop" (universe inconsistency: Cannot enforce Set +<= Prop). +COQC tests/test_tag.v _f1 : Lens fo_record fo_record peano peano : Lens fo_record fo_record peano peano _f2 : Lens fo_record fo_record unit unit @@ -1336,41 +1530,53 @@ @_pf4 : forall A : Type, Lens (pr_record A) (pr_record A) A A : forall A : Type, Lens (pr_record A) (pr_record A) A A ok +COQC tests/test_eqType_ast.v +add_equal Query assignments: - GR = «nat» -COQC tests/test_tag.v -c2 -global (indt «nat») -z -nat -Query assignments: - Spilled_1 = c0 \ c1 \ c2 \ -nat - Spilled_2 = c0 \ c1 \ c2 \ -z - T = global (indt «nat») -c2 -global (indt «nat») -z -nat -Query assignments: - Spilled_1 = c0 \ c1 \ c2 \ -nat - Spilled_2 = c0 \ c1 \ c2 \ -z - T = global (indt «nat») -Query assignments: + BO = fix `add` 0 + (prod `n` (global (indt «nat»)) c0 \ + prod `m` (global (indt «nat»)) c1 \ global (indt «nat»)) c0 \ + fun `n` (global (indt «nat»)) c1 \ + fun `m` (global (indt «nat»)) c2 \ + match c1 (fun `n` (global (indt «nat»)) c3 \ global (indt «nat»)) + [c2, + fun `p` (global (indt «nat»)) c3 \ + app [global (indc «S»), app [c0, c3, c2]]] GR = «Nat.add» - MP = «Coq.Init.Datatypes» -Illegal application (Non-functional construction): -The expression "Prop" of type "Type" -cannot be applied to the term - "Prop" : "Type" + NGR = «add_equal» + Name = add_equal + S = add + Spilled_1 = add_equal + Spilled_2 = add_equal + TY = prod `n` (global (indt «nat»)) c0 \ + prod `m` (global (indt «nat»)) c1 \ global (indt «nat») +add_equal : nat -> nat -> nat + +add_equal is not universe polymorphic +Arguments add_equal (n m)%nat_scope +add_equal is opaque +Expands to: Constant elpi.tests.test_API_env.add_equal +Universe constraints: +«myfalse» Query assignments: - E = Illegal application (Non-functional construction): -The expression "Prop" of type "Type" -cannot be applied to the term - "Prop" : "Type" + F = indt «False» + GR = «myfalse» +myfalse + : False +Query assignments: + X = «elpi.tests.test_API.1» +Universe constraints: +UNIVERSES: + {elpi.tests.test_API.1} |= +ALGEBRAIC UNIVERSES: + {} +UNDEFINED UNIVERSES: + +SORTS: + +WEAK CONSTRAINTS: + + empty_tag : tag empty : tag empty unit_tag : tag unit @@ -1413,106 +1619,117 @@ : forall p : peano, tag (ord2 p) val_tag : tag val : tag val -COQC tests/test_eqType_ast.v -Query assignments: - A = «elpi.tests.test_API.succ» - GR = «Nat.add» - MP = «Coq.Init.Datatypes» - X1 = [loc-gref (const «Nat.add»)] - X2 = [loc-gref (const «Nat.add»)] - X3 = [loc-abbreviation «elpi.tests.test_API.succ»] - X4 = [loc-modpath «Coq.Init.Datatypes»] -Unable to unify "bool" with "nat". -Query assignments: - Msg = Unable to unify "bool" with "nat". -Universe constraints: Query assignments: - Cons = global (indc «cons») - GRCons = indc «cons» - GRList = indt «list» - GRNat = indt «nat» - GRNil = indc «nil» - GRZero = indc «O» - L = app - [global (indc «cons»), global (indt «nat»), global (indc «O»), - app [global (indc «nil»), global (indt «nat»)]] - LE = app - [global (indc «cons»), global (indt «nat»), global (indc «O»), - app [global (indc «nil»), global (indt «nat»)]] - List = global (indt «list») - Nat = global (indt «nat») - Nil = global (indc «nil») - Zero = global (indc «O») + X = typ «elpi.tests.test_API.2» + Y = typ «elpi.tests.test_API.3» Universe constraints: UNIVERSES: - {elpi.tests.test_API_typecheck.4 elpi.tests.test_API_typecheck.3 - elpi.tests.test_API_typecheck.2 elpi.tests.test_API_typecheck.1} |= - elpi.tests.test_API_typecheck.3 < elpi.tests.test_API_typecheck.2 - elpi.tests.test_API_typecheck.4 < elpi.tests.test_API_typecheck.1 - Set <= elpi.tests.test_API_typecheck.3 - Set <= elpi.tests.test_API_typecheck.4 - elpi.tests.test_API_typecheck.3 <= list.u0 - elpi.tests.test_API_typecheck.4 <= list.u0 + {elpi.tests.test_API.3 elpi.tests.test_API.2} |= + elpi.tests.test_API.2 <= elpi.tests.test_API.3 ALGEBRAIC UNIVERSES: {} UNDEFINED UNIVERSES: SORTS: - α1 := Type - α2 := Type + WEAK CONSTRAINTS: +parameter T X0 (sort (typ X1)) c0 \ + record eq_class (sort (typ X2)) mk_eq_class + (field [canonical ff, coercion regular] eq_f (global (indt «bool»)) c1 \ + field X3 eq_proof + (app [global (indt «eq»), global (indt «bool»), c1, c1]) c2 \ + end-record) COQC examples/usage.v Query assignments: - X = «elpi.tests.test_API.1» + DECL = parameter T X0 (sort (typ «eq_class.u0»)) c0 \ + record eq_class (sort (typ «eq_class.u1»)) mk_eq_class + (field [canonical ff, coercion regular] eq_f (global (indt «bool»)) c1 \ + field X3 eq_proof + (app [global (indt «eq»), global (indt «bool»), c1, c1]) c2 \ + end-record) + GR = «eq_class» + _uvk_1_ = «eq_class.u0» + _uvk_2_ = «eq_class.u1» Universe constraints: UNIVERSES: - {elpi.tests.test_API.1} |= + ALGEBRAIC UNIVERSES: - {} + {eq_class.u1 eq_class.u0} UNDEFINED UNIVERSES: - + eq_class.u1 + eq_class.u0 SORTS: WEAK CONSTRAINTS: -global (indt «nat») +Record eq_class (T : Type@{eq_class.u0}) : Type@{eq_class.u1} := mk_eq_class + { eq_f : bool; eq_proof : eq_f = eq_f }. + +Arguments eq_class T%type_scope +Arguments mk_eq_class T%type_scope eq_f%bool_scope eq_proof +fun x : eq_class nat => x : bool + : eq_class nat -> bool +p <- eq_proof ( xxx ) +COQC tests/test_API_module.v Query assignments: - T = global (indt «nat») - _uvk_5_ = global (indt «nat») - _uvk_6_ = global (indt «nat») + X = typ «elpi.tests.test_API.4» + Y = typ «elpi.tests.test_API.5» Universe constraints: UNIVERSES: - {elpi.tests.test_API_typecheck.9 elpi.tests.test_API_typecheck.8 - elpi.tests.test_API_typecheck.7 elpi.tests.test_API_typecheck.6 - elpi.tests.test_API_typecheck.5} |= - Set < elpi.tests.test_API_typecheck.7 - elpi.tests.test_API_typecheck.8 < elpi.tests.test_API_typecheck.6 - elpi.tests.test_API_typecheck.9 < elpi.tests.test_API_typecheck.5 - Set <= elpi.tests.test_API_typecheck.8 - Set <= elpi.tests.test_API_typecheck.9 - elpi.tests.test_API_typecheck.8 <= list.u0 - elpi.tests.test_API_typecheck.9 <= list.u0 + {elpi.tests.test_API.5 elpi.tests.test_API.4} |= + elpi.tests.test_API.4 <= elpi.tests.test_API.5 ALGEBRAIC UNIVERSES: {} UNDEFINED UNIVERSES: SORTS: - α3 := Type - α4 := Type - α5 := Type + WEAK CONSTRAINTS: Query assignments: - X = typ «elpi.tests.test_API.2» - Y = typ «elpi.tests.test_API.3» + DECL = parameter T X0 (sort (typ «prim_eq_class.u0»)) c0 \ + record prim_eq_class (sort (typ «prim_eq_class.u1»)) mk_prim_eq_class + (field [canonical ff, coercion reversible] prim_eq_f + (global (indt «bool»)) c1 \ + field X1 prim_eq_proof + (app [global (indt «eq»), global (indt «bool»), c1, c1]) c2 \ + end-record) + GR = «prim_eq_class» + _uvk_3_ = «prim_eq_class.u0» + _uvk_4_ = «prim_eq_class.u1» 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: + {prim_eq_class.u1 prim_eq_class.u0} +UNDEFINED UNIVERSES: + prim_eq_class.u1 + prim_eq_class.u0 +SORTS: + +WEAK CONSTRAINTS: + + +fun r : prim_eq_class nat => +eq_refl : r = {| prim_eq_f := r; prim_eq_proof := prim_eq_proof _ r |} + : forall r : prim_eq_class nat, + r = {| prim_eq_f := r; prim_eq_proof := prim_eq_proof _ r |} +(* {} |= prim_eq_class.u1 <= eq.u0 *) +fun `r` (app [global (indt «prim_eq_class»), global (indt «nat»)]) c0 \ + app [primitive (proj elpi.tests.test_API_env.prim_eq_f 1), c0] +Query assignments: + X = typ «elpi.tests.test_API.6» + Y = typ «elpi.tests.test_API.7» + Z = typ «elpi.tests.test_API.8» +Universe constraints: +UNIVERSES: + {elpi.tests.test_API.8 elpi.tests.test_API.7 elpi.tests.test_API.6} |= + elpi.tests.test_API.6 <= elpi.tests.test_API.8 + elpi.tests.test_API.7 <= elpi.tests.test_API.8 ALGEBRAIC UNIVERSES: {} UNDEFINED UNIVERSES: @@ -1522,6 +1739,53 @@ WEAK CONSTRAINTS: +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» more : (forall A : Type, A -> tickle A -> tickle A) : forall A : Type, A -> tickle A -> tickle A tickle.eqb @@ -1550,39 +1814,37 @@ (arity (prod `_` (app [global (indt «tickle.tickle»), c1]) c2 \ c1))] Deriving Derivation map on indt «rtree» -Derivation map on indt «rtree» took 0.025129 +Derivation map on indt «rtree» took 0.034369 Derivation lens on indt «rtree» Derivation lens on indt «rtree» failed, continuing Derivation param1 on indt «rtree» -Derivation param1 on indt «rtree» took 0.050012 +Derivation param1 on indt «rtree» took 0.090642 Derivation param2 on indt «rtree» -Derivation param2 on indt «rtree» took 0.064575 +Derivation param2 on indt «rtree» took 0.107443 Derivation tag on indt «rtree» -Derivation tag on indt «rtree» took 0.014198 +Derivation tag on indt «rtree» took 0.017551 Derivation eqType_ast on indt «rtree» -Derivation eqType_ast on indt «rtree» took 0.003561 +Derivation eqType_ast on indt «rtree» took 0.009355 Derivation lens_laws on indt «rtree» -Derivation lens_laws on indt «rtree» took 0.002270 +Derivation lens_laws on indt «rtree» took 0.006840 Derivation param1_congr on indt «rtree» -Derivation param1_congr on indt «rtree» took 0.024600 +Derivation param1_congr on indt «rtree» took 0.035357 Derivation param1_inhab on indt «rtree» -Derivation param1_inhab on indt «rtree» took 0.019164 +Derivation param1_inhab on indt «rtree» took 0.031562 Derivation param1_functor on indt «rtree» -Derivation param1_functor on indt «rtree» took 0.015361 +Derivation param1_functor on indt «rtree» took 0.032214 Derivation fields on indt «rtree» -Derivation fields on indt «rtree» took 0.055431 +Derivation fields on indt «rtree» took 0.091304 Derivation param1_trivial on indt «rtree» -Derivation param1_trivial on indt «rtree» took 0.472732 -Derivation induction on indt «rtree» -Derivation induction on indt «rtree» took 0.008071 -Derivation eqb on indt «rtree» Query assignments: - X = typ «elpi.tests.test_API.4» - Y = typ «elpi.tests.test_API.5» + C = «pc» +Query assignments: + X = typ «elpi.tests.test_API.9» + Y = typ «elpi.tests.test_API.10» Universe constraints: UNIVERSES: - {elpi.tests.test_API.5 elpi.tests.test_API.4} |= - elpi.tests.test_API.4 <= elpi.tests.test_API.5 + {elpi.tests.test_API.10 elpi.tests.test_API.9} |= + elpi.tests.test_API.9 < elpi.tests.test_API.10 ALGEBRAIC UNIVERSES: {} UNDEFINED UNIVERSES: @@ -1592,27 +1854,34 @@ WEAK CONSTRAINTS: -Derivation eqb on indt «rtree» took 0.060446 -«elpi.tests.test_API_typecheck.10» +elpi.tests.test_API_module.X.i +[elpi, tests, test_API_module, X, Y] +[elpi, tests, test_API_module, X, Y] Query assignments: + 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» + Spilled_1 = [elpi, tests, test_API_module, X, Y] + Spilled_2 = [elpi, tests, test_API_module, X, Y] + Spilled_3 = elpi.tests.test_API_module.X.Y.i + Spilled_4 = elpi.tests.test_API_module.X.i + Spilled_5 = elpi.tests.test_API_module.X.i + XYi = «X.Y.i» + XYr = «X.Y.i_rect» + Xi = «X.i» +Derivation param1_trivial on indt «rtree» took 0.778828 +Derivation induction on indt «rtree» +Derivation induction on indt «rtree» took 0.023051 +Derivation eqb on indt «rtree» +Derivation eqb on indt «rtree» took 0.096549 Derivation eqbcorrect on indt «rtree» - U = «elpi.tests.test_API_typecheck.10» -Universe constraints: -UNIVERSES: - {elpi.tests.test_API_typecheck.10} |= - Set <= elpi.tests.test_API_typecheck.10 -ALGEBRAIC UNIVERSES: - {elpi.tests.test_API_typecheck.10} -UNDEFINED UNIVERSES: - elpi.tests.test_API_typecheck.10 -SORTS: - -WEAK CONSTRAINTS: - - -Derivation eqbcorrect on indt «rtree» took 0.164466 +Derivation eqbcorrect on indt «rtree» took 0.289623 Derivation eqbOK on indt «rtree» -Derivation eqbOK on indt «rtree» took 0.006057 +Derivation eqbOK on indt «rtree» took 0.018622 Done rtree.induction : (forall (A : Type) (PA : A -> Type) (P : rtree A -> Type), @@ -1636,18 +1905,18 @@ 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.015974 +Derivation lens on indt «Box» took 0.049409 Skipping derivation param1 on indt «Box» since the user did not select it Skipping derivation param2 on indt «Box» since the user did not select it Derivation tag on indt «Box» File "./examples/usage.v", line 53, characters 0-84: Warning: Global name tag is taken, using tag1 instead [elpi.renamed,elpi,default] -Derivation tag on indt «Box» took 0.006298 +Derivation tag on indt «Box» took 0.017896 Derivation eqType_ast on indt «Box» -Derivation eqType_ast on indt «Box» took 0.002816 +Derivation eqType_ast on indt «Box» took 0.008596 Derivation lens_laws on indt «Box» -Derivation lens_laws on indt «Box» took 0.049249 +Derivation lens_laws on indt «Box» took 0.133759 Skipping derivation param1_congr on indt «Box» since the user did not select it Skipping derivation param1_inhab on indt «Box» @@ -1655,13 +1924,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.035947 +Derivation fields on indt «Box» took 0.059836 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.032955 +Derivation eqb on indt «Box» took 0.050335 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 @@ -1685,277 +1954,70 @@ 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.009453 +Derivation map on indt «a» took 0.019542 Derivation lens on indt «a» Derivation lens on indt «a» failed, continuing Derivation param1 on indt «a» -Derivation param1 on indt «a» took 0.068770 +Derivation param1 on indt «a» took 0.140788 Derivation param2 on indt «a» -Derivation param2 on indt «a» took 0.019370 +Derivation param2 on indt «a» took 0.049692 Derivation tag on indt «a» -Derivation tag on indt «a» took 0.005453 +Derivation tag on indt «a» took 0.012971 Derivation eqType_ast on indt «a» -Derivation eqType_ast on indt «a» took 0.002698 +Derivation eqType_ast on indt «a» took 0.007924 Derivation lens_laws on indt «a» -Derivation lens_laws on indt «a» took 0.002379 +Derivation lens_laws on indt «a» took 0.007013 Derivation param1_congr on indt «a» -Derivation param1_congr on indt «a» took 0.003489 +Derivation param1_congr on indt «a» took 0.009037 Derivation param1_inhab on indt «a» -Derivation param1_inhab on indt «a» took 0.007081 +Derivation param1_inhab on indt «a» took 0.020049 Derivation param1_functor on indt «a» -Derivation param1_functor on indt «a» took 0.006442 +Derivation param1_functor on indt «a» took 0.018654 Derivation fields on indt «a» -Derivation fields on indt «a» took 0.017529 +Derivation fields on indt «a» took 0.038119 Derivation param1_trivial on indt «a» -Derivation param1_trivial on indt «a» took 0.008219 +Derivation param1_trivial on indt «a» took 0.028630 Derivation induction on indt «a» -Derivation induction on indt «a» took 0.005156 +Derivation induction on indt «a» took 0.018048 Derivation eqb on indt «a» -Derivation eqb on indt «a» took 0.013936 +Derivation eqb on indt «a» took 0.034377 Derivation eqbcorrect on indt «a» -Derivation eqbcorrect on indt «a» took 0.032249 +Derivation eqbcorrect on indt «a» took 0.049521 Derivation eqbOK on indt «a» -Derivation eqbOK on indt «a» took 0.004192 +Derivation eqbOK on indt «a» took 0.011096 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.016459 +Derivation param1 on indt «b» took 0.047278 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.004998 +Derivation tag on indt «b» took 0.012886 Derivation eqType_ast on indt «b» -Derivation eqType_ast on indt «b» took 0.002804 +Derivation eqType_ast on indt «b» took 0.008335 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.006762 +Derivation param1_inhab on indt «b» took 0.020199 Derivation param1_functor on indt «b» -Derivation param1_functor on indt «b» took 0.006529 +Query assignments: + I = «Y.i» + ID = j + J = «Y.j» + MP = «elpi.tests.test_API_module.Y» + P = [elpi, tests, test_API_module, Y] +Derivation param1_functor on indt «b» took 0.021394 Derivation fields on indt «b» -Derivation fields on indt «b» took 0.017445 +Derivation fields on indt «b» took 0.041786 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.005039 +Derivation induction on indt «b» took 0.014481 Derivation eqb on indt «b» -Derivation eqb on indt «b» took 0.014671 +Derivation eqb on indt «b» took 0.036558 Derivation eqbcorrect on indt «b» -Derivation eqbcorrect on indt «b» took 0.030552 +Derivation eqbcorrect on indt «b» took 0.060265 Derivation eqbOK on indt «b» -Derivation eqbOK on indt «b» took 0.006407 -a_eqb - : a -> a -> bool -b_eqb - : b -> b -> bool -COQC examples/readme.v -Query assignments: - X = typ «elpi.tests.test_API.6» - Y = typ «elpi.tests.test_API.7» - Z = typ «elpi.tests.test_API.8» -Universe constraints: -UNIVERSES: - {elpi.tests.test_API.8 elpi.tests.test_API.7 elpi.tests.test_API.6} |= - elpi.tests.test_API.6 <= elpi.tests.test_API.8 - elpi.tests.test_API.7 <= elpi.tests.test_API.8 -ALGEBRAIC UNIVERSES: - {} -UNDEFINED UNIVERSES: - -SORTS: - -WEAK CONSTRAINTS: - - -Unable to unify "Set" with "Prop" (universe inconsistency: Cannot enforce Set -<= Prop). -Query assignments: - E = Unable to unify "Set" with "Prop" (universe inconsistency: Cannot enforce Set -<= Prop). -COQC tests/test_API_env.v -Query assignments: - X = typ «elpi.tests.test_API.9» - Y = typ «elpi.tests.test_API.10» -Universe constraints: -UNIVERSES: - {elpi.tests.test_API.10 elpi.tests.test_API.9} |= - elpi.tests.test_API.9 < elpi.tests.test_API.10 -ALGEBRAIC UNIVERSES: - {} -UNDEFINED UNIVERSES: - -SORTS: - -WEAK CONSTRAINTS: - - -Inductive peano : Set := Zero : peano | Succ : peano -> peano. - = false - : bool -peano.eqb_OK : forall x1 x2 : peano, reflect (x1 = x2) (peano.eqb x1 x2) - -peano.eqb_OK is not universe polymorphic -Arguments peano.eqb_OK x1 x2 -peano.eqb_OK is opaque -Expands to: Constant elpi.apps.derive.examples.readme.peano.eqb_OK -Derivation param1 on const «Nat.add» -Derivation param1 on const «Nat.add» took 0.015809 -Derivation param2 on const «Nat.add» -Derivation param2 on const «Nat.add» took 0.019122 -Derivation eqb-alias on const «Nat.add» -Derivation eqb-alias on const «Nat.add» failed, continuing -Derivation eqbcorrect-alias on const «Nat.add» -Derivation eqbcorrect-alias on const «Nat.add» failed, continuing -Derivation eqbOK-alias on const «Nat.add» -Derivation eqbOK-alias on const «Nat.add» failed, continuing -is_add - : forall n : nat, is_nat n -> forall m : nat, is_nat m -> is_nat (n + m) -COQC tests/test_projK.v -Query assignments: - BO = fix `add` 0 - (prod `n` (global (indt «nat»)) c0 \ - prod `m` (global (indt «nat»)) c1 \ global (indt «nat»)) c0 \ - fun `n` (global (indt «nat»)) c1 \ - fun `m` (global (indt «nat»)) c2 \ - match c1 (fun `n` (global (indt «nat»)) c3 \ global (indt «nat»)) - [c2, - fun `p` (global (indt «nat»)) c3 \ - app [global (indc «S»), app [c0, c3, c2]]] - GR = «Nat.add» - GRNat = indt «nat» - GRSucc = indc «S» - Nat = global (indt «nat») - Succ = global (indc «S») - TY = prod `n` (global (indt «nat»)) c0 \ - prod `m` (global (indt «nat»)) c1 \ global (indt «nat») -Query assignments: - GR = «empty_nat» - TY = global (indt «nat») -Query assignments: - GR1 = indc «Vector.nil» - GR2 = indt «nat» - GR3 = const «A» -[foo (const «X»), foo (indt «nat»), foo (indt «bool»)] -[foo (indt «nat»), foo (indt «bool»)] -[] -[foo (indt «nat»)] -add_equal -Query assignments: - BO = fix `add` 0 - (prod `n` (global (indt «nat»)) c0 \ - prod `m` (global (indt «nat»)) c1 \ global (indt «nat»)) c0 \ - fun `n` (global (indt «nat»)) c1 \ - fun `m` (global (indt «nat»)) c2 \ - match c1 (fun `n` (global (indt «nat»)) c3 \ global (indt «nat»)) - [c2, - fun `p` (global (indt «nat»)) c3 \ - app [global (indc «S»), app [c0, c3, c2]]] - GR = «Nat.add» - NGR = «add_equal» - Name = add_equal - S = add - Spilled_1 = add_equal - Spilled_2 = add_equal - TY = prod `n` (global (indt «nat»)) c0 \ - prod `m` (global (indt «nat»)) c1 \ global (indt «nat») -add_equal : nat -> nat -> nat - -add_equal is not universe polymorphic -Arguments add_equal (n m)%nat_scope -add_equal is opaque -Expands to: Constant elpi.tests.test_API_env.add_equal -«myfalse» -Query assignments: - F = indt «False» - GR = «myfalse» -myfalse - : False -parameter T X0 (sort (typ X1)) c0 \ - record eq_class (sort (typ X2)) mk_eq_class - (field [canonical ff, coercion regular] eq_f (global (indt «bool»)) c1 \ - field X3 eq_proof - (app [global (indt «eq»), global (indt «bool»), c1, c1]) c2 \ - end-record) -Query assignments: - DECL = parameter T X0 (sort (typ «eq_class.u0»)) c0 \ - record eq_class (sort (typ «eq_class.u1»)) mk_eq_class - (field [canonical ff, coercion regular] eq_f (global (indt «bool»)) c1 \ - field X3 eq_proof - (app [global (indt «eq»), global (indt «bool»), c1, c1]) c2 \ - end-record) - GR = «eq_class» - _uvk_1_ = «eq_class.u0» - _uvk_2_ = «eq_class.u1» -Universe constraints: -UNIVERSES: - -ALGEBRAIC UNIVERSES: - {eq_class.u1 eq_class.u0} -UNDEFINED UNIVERSES: - eq_class.u1 - eq_class.u0 -SORTS: - -WEAK CONSTRAINTS: - - -Record eq_class (T : Type@{eq_class.u0}) : Type@{eq_class.u1} := mk_eq_class - { eq_f : bool; eq_proof : eq_f = eq_f }. - -Arguments eq_class T%type_scope -Arguments mk_eq_class T%type_scope eq_f%bool_scope eq_proof -fun x : eq_class nat => x : bool - : eq_class nat -> bool -p <- eq_proof ( xxx ) -Query assignments: - DECL = parameter T X0 (sort (typ «prim_eq_class.u0»)) c0 \ - record prim_eq_class (sort (typ «prim_eq_class.u1»)) mk_prim_eq_class - (field [canonical ff, coercion reversible] prim_eq_f - (global (indt «bool»)) c1 \ - field X1 prim_eq_proof - (app [global (indt «eq»), global (indt «bool»), c1, c1]) c2 \ - end-record) - GR = «prim_eq_class» - _uvk_3_ = «prim_eq_class.u0» - _uvk_4_ = «prim_eq_class.u1» -Universe constraints: -UNIVERSES: - -ALGEBRAIC UNIVERSES: - {prim_eq_class.u1 prim_eq_class.u0} -UNDEFINED UNIVERSES: - prim_eq_class.u1 - prim_eq_class.u0 -SORTS: - -WEAK CONSTRAINTS: - - -fun r : prim_eq_class nat => -eq_refl : r = {| prim_eq_f := r; prim_eq_proof := prim_eq_proof _ r |} - : forall r : prim_eq_class nat, - r = {| prim_eq_f := r; prim_eq_proof := prim_eq_proof _ r |} -(* {} |= prim_eq_class.u1 <= eq.u0 *) -hello [int 1, int 2, trm (global (indt «nat»)), str x] -fun `r` (app [global (indt «prim_eq_class»), global (indt «nat»)]) c0 \ - app [primitive (proj elpi.tests.test_API_env.prim_eq_f 1), c0] -coq.pp.box (coq.pp.hv 2) - [coq.pp.str Module, coq.pp.spc, coq.pp.str Foo, coq.pp.spc, coq.pp.str :=, - coq.pp.brk 1 0, coq.pp.str body, coq.pp.spc, coq.pp.str End Foo.] -Module - Foo - := - body - End Foo. -fix foo (x : ?e3) (y : ?e4) {struct x} : ?e2 := - match x as x0 return ?e6@{x:=x0} with - | true => S (S (S O)) - | false => y - end -fix foo x y {struct x} := if x as x0 return ?e6@{x:=x0} then 3 else y -COQC tests/test_API_module.v -Query assignments: - C = «pc» Universe constraints: UNIVERSES: @@ -1972,107 +2034,16 @@ : Prop K2 true : myind true true : myind true true +Derivation eqbOK on indt «b» took 0.012322 myind1 true false : Prop : Prop K21 true : myind1 true true : myind1 true true -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» -Query assignments: - _uvk_6_ = «nuind.u0» - _uvk_7_ = «nuind.u1» -Universe constraints: -UNIVERSES: - -ALGEBRAIC UNIVERSES: - {nuind.u1 nuind.u0} -UNDEFINED UNIVERSES: - nuind.u1 - nuind.u0 -SORTS: - -WEAK CONSTRAINTS: - - -fun x : nuind nat 3 false => -match x in (nuind _ _ b) return (b = b) with -| k1 _ _ => eq_refl : true = true -| k2 _ _ x0 => (fun _ : nuind nat 1 false => eq_refl : false = false) x0 -end - : nuind nat 3 false -> false = false -elpi.tests.test_API_module.X.i -[elpi, tests, test_API_module, X, Y] -[elpi, tests, test_API_module, X, Y] -Query assignments: - 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» - Spilled_1 = [elpi, tests, test_API_module, X, Y] - Spilled_2 = [elpi, tests, test_API_module, X, Y] - Spilled_3 = elpi.tests.test_API_module.X.Y.i - Spilled_4 = elpi.tests.test_API_module.X.i - Spilled_5 = elpi.tests.test_API_module.X.i - XYi = «X.Y.i» - XYr = «X.Y.i_rect» - Xi = «X.i» -c0 global (indt «nat») -Query assignments: - T = global (indt «nat») -Query assignments: - I = «Y.i» - ID = j - J = «Y.j» - MP = «elpi.tests.test_API_module.Y» - P = [elpi, tests, test_API_module, Y] +a_eqb + : a -> a -> bool +b_eqb + : b -> b -> bool +COQC examples/readme.v Query assignments: GRy = EXN PRINTING: Not_found I = EXN PRINTING: Not_found @@ -2115,6 +2086,73 @@ : Type *** [ A.i : Type ] Query assignments: + _uvk_6_ = «nuind.u0» + _uvk_7_ = «nuind.u1» +Universe constraints: +UNIVERSES: + +ALGEBRAIC UNIVERSES: + {nuind.u1 nuind.u0} +UNDEFINED UNIVERSES: + nuind.u1 + nuind.u0 +SORTS: + +WEAK CONSTRAINTS: + + +fun x : nuind nat 3 false => +match x in (nuind _ _ b) return (b = b) with +| k1 _ _ => eq_refl : true = true +| k2 _ _ x0 => (fun _ : nuind nat 1 false => eq_refl : false = false) x0 +end + : nuind nat 3 false -> false = false +Query assignments: + MP_TA = «elpi.tests.test_API_module.TA» + MP_TF = «elpi.tests.test_API_module.TF» + Spilled_1 = «elpi.tests.test_API_module.a» + Spilled_2 = const const EXN PRINTING: Not_found +Module +F + : Funsig (a:TA) Funsig (b:TA) TF +:= Functor (a:TA) Functor (b:TA) Struct Definition w : nat. End + +Module B : Sig Parameter w : nat. End := (F A A) + +*** [ B.w : nat ] +c0 global (indt «nat») +Query assignments: + T = global (indt «nat») +Inductive peano : Set := Zero : peano | Succ : peano -> peano. + = false + : bool +peano.eqb_OK : forall x1 x2 : peano, reflect (x1 = x2) (peano.eqb x1 x2) + +peano.eqb_OK is not universe polymorphic +Arguments peano.eqb_OK x1 x2 +peano.eqb_OK is opaque +Expands to: Constant elpi.apps.derive.examples.readme.peano.eqb_OK +Derivation param1 on const «Nat.add» +Derivation param1 on const «Nat.add» took 0.076824 +Derivation param2 on const «Nat.add» +Derivation param2 on const «Nat.add» took 0.056864 +Derivation eqb-alias on const «Nat.add» +Derivation eqb-alias on const «Nat.add» failed, continuing +Derivation eqbcorrect-alias on const «Nat.add» +Derivation eqbcorrect-alias on const «Nat.add» failed, continuing +Derivation eqbOK-alias on const «Nat.add» +Derivation eqbOK-alias on const «Nat.add» failed, continuing +is_add + : forall n : nat, is_nat n -> forall m : nat, is_nat m -> is_nat (n + m) +COQC tests/test_projK.v +Query assignments: + MP_TA = «elpi.tests.test_API_module.TA» +Module Type TB = Funsig (A:TA) Sig End +[foo (const «X»), foo (indt «nat»), foo (indt «bool»)] +[foo (indt «nat»), foo (indt «bool»)] +[] +[foo (indt «nat»)] +Query assignments: D = parameter A X0 (sort (typ «tx.u0»)) c0 \ inductive tx X1 (parameter y X2 (global (indt «nat»)) c1 \ @@ -2167,18 +2205,9 @@ Query assignments: - MP_TA = «elpi.tests.test_API_module.TA» - MP_TF = «elpi.tests.test_API_module.TF» - Spilled_1 = «elpi.tests.test_API_module.a» - Spilled_2 = const const EXN PRINTING: Not_found -Module -F - : Funsig (a:TA) Funsig (b:TA) TF -:= Functor (a:TA) Functor (b:TA) Struct Definition w : nat. End - -Module B : Sig Parameter w : nat. End := (F A A) + Spilled_1 = «elpi.tests.test_API_module.A» +Module IA := Struct Definition z : nat. Definition i : Type. End -*** [ B.w : nat ] Query assignments: D = parameter A explicit (sort (typ «elpi.tests.test_API_env.20»)) c0 \ parameter a explicit c0 c1 \ @@ -2252,8 +2281,9 @@ Query assignments: - MP_TA = «elpi.tests.test_API_module.TA» -Module Type TB = Funsig (A:TA) Sig End + Spilled_1 = «elpi.tests.test_API_module.IA» +i + : Type Query assignments: D = parameter A explicit (sort (typ «elpi.tests.test_API_env.20»)) c0 \ parameter a explicit c0 c1 \ @@ -2327,13 +2357,8 @@ Query assignments: - Spilled_1 = «elpi.tests.test_API_module.A» -Module IA := Struct Definition z : nat. Definition i : Type. End - -Query assignments: - Spilled_1 = «elpi.tests.test_API_module.IA» -i - : Type + Spilled_1 = «elpi.tests.test_API_module.TA» +Module Type ITA = Sig Parameter z : nat. Parameter i : Type. End Query assignments: D = parameter P explicit (sort (typ «r1.u0»)) c0 \ parameter p explicit c0 c1 \ @@ -2351,6 +2376,23 @@ UP = «r1.u0» UR = «r1.u0» 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» +COQC tests/test_API_section.v +hello [int 1, int 2, trm (global (indt «nat»)), str x] +Query assignments: D = parameter P explicit (sort (typ «r1.u0»)) c0 \ parameter p explicit c0 c1 \ record r1 (sort (typ «r1.u0»)) mk_r1 @@ -2366,31 +2408,41 @@ I = «r1» UP = «r1.u0» UR = «r1.u0» -Query assignments: - Spilled_1 = «elpi.tests.test_API_module.TA» -Module Type ITA = Sig Parameter z : nat. Parameter i : Type. End +coq.pp.box (coq.pp.hv 2) + [coq.pp.str Module, coq.pp.spc, coq.pp.str Foo, coq.pp.spc, coq.pp.str :=, + coq.pp.brk 1 0, coq.pp.str body, coq.pp.spc, coq.pp.str End Foo.] +Module + Foo + := + body + End Foo. +fix foo (x : ?e3) (y : ?e4) {struct x} : ?e2 := + match x as x0 return ?e6@{x:=x0} with + | true => S (S (S O)) + | false => y + end +fix foo x y {struct x} := if x as x0 return ?e6@{x:=x0} then 3 else y +COQC tests/test_API_TC_CS.v {{ nat; S; }} {{ nat; S; }} Query assignments: GR = const «Nat.add» L = {{ nat; S; }} S = {{ nat; S; }} +?r : Reflexive R + : Reflexive R +where +?r : [ |- Reflexive R] 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» -COQC tests/test_API_section.v + CA = «a» + CB = «b» + CC = «c» +d : nat + +d is not universe polymorphic +Expands to: Variable d +eq_refl : e2 = 3 + : e2 = 3 {{ X.a; }} {{ X.a; Nat.add; nat; }} {{ X.a; }} {{ X.a; Nat.add; nat; O; S; }} Query assignments: @@ -2401,128 +2453,71 @@ M = «elpi.tests.test_API_env.HOAS.X» S = {{ X.a; }} Spilled_1 = const «X.a» -projSucc1 : peano -> peano -> peano - : peano -> peano -> peano -projSome1 : forall A : Type, A -> option A -> A - : forall A : Type, A -> option A -> A -projComma1 : forall A B : Type, A -> B -> pair A B -> A - : forall A B : Type, A -> B -> pair A B -> A -projComma2 : forall A B : Type, A -> B -> pair A B -> B - : forall A B : Type, A -> B -> pair A B -> B -projCons1 : forall A : Type, A -> seq A -> seq A -> A - : forall A : Type, A -> seq A -> seq A -> A -projCons2 : forall A : Type, A -> seq A -> seq A -> seq A - : forall A : Type, A -> seq A -> seq A -> seq A -projLeaf1 : forall A : Type, A -> rose A -> A - : forall A : Type, A -> rose A -> A -projNode1 : forall A : Type, seq (rose A) -> rose A -> seq (rose A) - : forall A : Type, seq (rose A) -> rose A -> seq (rose A) -projConsN1 : forall A : Type, A -> nest (pair A A) -> nest A -> A - : forall A : Type, A -> nest (pair A A) -> nest A -> A -projConsN2 -: -forall A : Type, A -> nest (pair A A) -> nest A -> nest (pair A A) - : forall A : Type, A -> nest (pair A A) -> nest A -> nest (pair A A) -projvia1 : forall A : Type, (A -> w A) -> w A -> A -> w A - : forall A : Type, (A -> w A) -> w A -> A -> w A -projVCons1 -: -forall (A : Type) (i : peano), -A -> forall j : peano, vect A j -> vect A i -> A - : forall (A : Type) (i : peano), - A -> forall j : peano, vect A j -> vect A i -> A -projVCons2 -: -forall (A : Type) (i : peano), -A -> forall j : peano, vect A j -> vect A i -> peano - : forall (A : Type) (i : peano), - A -> forall j : peano, vect A j -> vect A i -> peano -projVCons3 -: -forall (A : Type) (i : peano), -A -> forall j : peano, vect A j -> vect A i -> {w : peano & vect A w} - : forall (A : Type) (i : peano), - A -> forall j : peano, vect A j -> vect A i -> {w : peano & vect A w} -projbox1 : forall T : Type, T -> dyn -> Type - : forall T : Type, T -> dyn -> Type -projbox2 : forall T : Type, T -> dyn -> {T0 : Type & T0} - : forall T : Type, T -> dyn -> {T0 : Type & T0} -projEnvelope1 : forall A : Type, A -> A -> zeta A -> A - : forall A : Type, A -> A -> zeta A -> A -eq_refl : projEnvelope1 nat 1 1 (Envelope nat 0 1) = 0 - : projEnvelope1 nat 1 1 (Envelope nat 0 1) = 0 -projEnvelope2 : forall A : Type, A -> A -> zeta A -> A - : forall A : Type, A -> A -> zeta A -> A -eq_refl : projEnvelope2 nat 1 1 (Envelope nat 1 0) = 0 - : projEnvelope2 nat 1 1 (Envelope nat 1 0) = 0 -projRedex1 : forall A : Type, A -> beta A -> A - : forall A : Type, A -> beta A -> A -projWhy1 -: -forall n : peano, -match n with -| Zero => peano -| Succ _ => unit -end -> iota -> peano - : forall n : peano, - match n with - | Zero => peano - | Succ _ => unit - end -> iota -> peano -projWhy2 -: -forall n : peano, -match n with -| Zero => peano -| Succ _ => unit -end -> -iota -> {i : peano & match i with - | Zero => peano - | Succ _ => unit - end} - : forall n : peano, - match n with - | Zero => peano - | Succ _ => unit - end -> - iota -> - {i : peano & match i with - | Zero => peano - | Succ _ => unit - end} -projPI1 - : PrimInt63.int -> prim_int -> PrimInt63.int -projPF1 - : PrimFloat.float -> prim_float -> PrimFloat.float -projBuild_fo_record1 : peano -> unit -> fo_record -> peano - : peano -> unit -> fo_record -> peano -projBuild_fo_record2 : peano -> unit -> fo_record -> unit - : peano -> unit -> fo_record -> unit -projBuild_pa_record2 : forall A : Type, peano -> A -> pa_record A -> A - : forall A : Type, peano -> A -> pa_record A -> A -projBuild_pr_record2 : forall A : Type, peano -> A -> pr_record A -> A - : forall A : Type, peano -> A -> pr_record A -> A -COQC tests/test_derive.v -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 +Query assignments: + GR = const «myi» +myi : Reflexive R + : Reflexive R opaque_3 : nat opaque_3 is not universe polymorphic opaque_3 is opaque Expands to: Constant elpi.tests.test_API_section.opaque_3 Query assignments: + L = [tc-instance (const «subrelation_partial_order») 0, + tc-instance (const «PER_Transitive») 3, + tc-instance (const «PreOrder_Transitive») 2, + tc-instance (const «iff_Transitive») 0, + tc-instance (const «eq_Transitive») 0, + tc-instance (const «Equivalence_Transitive») 0, + tc-instance (const «impl_Transitive») 0, + tc-instance (const «StrictOrder_Transitive») 0, + tc-instance (const «StrictOrder_Irreflexive») 0, + tc-instance (const «StrictOrder_Asymmetric») 0, + tc-instance (const «predicate_equivalence_equivalence») 0, + tc-instance (const «relation_equivalence_equivalence») 0, + tc-instance (const «eq_equivalence») 10, + tc-instance (const «iff_equivalence») 0, + tc-instance (const «Equivalence_Reflexive») 0, + tc-instance (const «iff_Reflexive») 0, + tc-instance (const «impl_Reflexive») 0, + tc-instance (const «PreOrder_Reflexive») 2, + tc-instance (const «eq_Reflexive») 0, tc-instance (const «myi») 10, + tc-instance (const «partial_order_antisym») 0, + tc-instance (const «eq_Symmetric») 0, + tc-instance (const «Equivalence_Symmetric») 0, + tc-instance (const «PER_Symmetric») 3, + tc-instance (const «iff_Symmetric») 0, + tc-instance (const «neq_Symmetric») 0, + tc-instance (const «Bool.Decidable_eq_bool») 0, + tc-instance (const «DecidableClass.Decidable_not») 0, + tc-instance (const «inverse_impl_rewrite_relation») 3, + tc-instance (const «impl_rewrite_relation») 3, + tc-instance (const «iff_rewrite_relation») 2, + tc-instance (const «relation_equivalence_rewrite_relation») 0, + tc-instance (const «relation_implication_preorder») 0, + tc-instance (const «Equivalence_PreOrder») 10, + tc-instance (const «predicate_implication_preorder») 0, + tc-instance (const «Equivalence_PER») 10] +Query assignments: + GR = indt «RewriteRelation» + L = [tc-instance (const «inverse_impl_rewrite_relation») 3, + tc-instance (const «impl_rewrite_relation») 3, + tc-instance (const «iff_rewrite_relation») 2, + tc-instance (const «relation_equivalence_rewrite_relation») 0] +Query assignments: + GR = indt «RewriteRelation» +Query assignments: + GR = indt «True» +foo : nat + : nat +bar : bool -> nat + : bool -> nat +COQC tests/test_API_arguments.v +Query assignments: GR = const «Ranalysis5.derivable_pt_lim_CVU» S = {{ Field_theory.AF_1_neq_0; Field_theory.AF_AR; Field_theory.AFdiv_def; Field_theory.AFinv_l; Ring_theory.ARadd_0_l; Ring_theory.ARadd_0_r; @@ -3935,7 +3930,11 @@ Ring_polynom.PEpow; RMicromega.CInv; Field_theory.FEdiv; Tauto.EQ; RMicromega.COpp; Field_theory.FEpow; }} Spilled_1 = 3373 - T = 4.457482 + T = 8.353773 +Query assignments: + GR = const «myc» +eq_op myc t t + : bool Query assignments: S = {{ Nat.add; eq; nat; O; }} Spilled_1 = 4 @@ -3961,15 +3960,16 @@ WEAK CONSTRAINTS: -foo : nat - : nat -bar : bool -> nat - : bool -> nat -COQC tests/test_API_TC_CS.v -?r : Reflexive R - : Reflexive R -where -?r : [ |- Reflexive R] +Query assignments: + I = const «imp» +X2.imp : forall (T : Type) (x : T), x = x -> Prop + +X2.imp is not universe polymorphic +Arguments X2.imp T%type_scope x _ +Expands to: Constant elpi.tests.test_API_arguments.X2.imp +Query assignments: + L = [cs-instance (const «carrier») (cs-gref (const «W»)) (const «myc»), + cs-instance (const «eq_op») (cs-gref (const «Z»)) (const «myc»)] Query assignments: Decl = record Rec (sort (typ «elpi.tests.test_API_env.31»)) BuildRec (field [] f (sort (typ «elpi.tests.test_API_env.32»)) c0 \ end-record) @@ -4004,75 +4004,17 @@ Type@{elpi.tests.test_API_env.34} (* {elpi.tests.test_API_env.34 elpi.tests.test_API_env.33} |= elpi.tests.test_API_env.34 < elpi.tests.test_API_env.33 *) -derive.param1_trivial: wrong shape is_nest -. It does not look like a unary parametricity translation of an inductive with no indexes. -Query assignments: - GR = const «myi» -myi : Reflexive R - : Reflexive R -derive.param1_trivial: wrong shape is_vect A PA -. It does not look like a unary parametricity translation of an inductive with no indexes. -Query assignments: - LP = «Coq.ZArith.Znat» - MP = «Coq.ZArith.Znat.N2Z» -COQC tests/test_API_arguments.v -Query assignments: - L = [tc-instance (const «subrelation_partial_order») 0, - tc-instance (const «PER_Transitive») 3, - tc-instance (const «PreOrder_Transitive») 2, - tc-instance (const «iff_Transitive») 0, - tc-instance (const «eq_Transitive») 0, - tc-instance (const «Equivalence_Transitive») 0, - tc-instance (const «impl_Transitive») 0, - tc-instance (const «StrictOrder_Transitive») 0, - tc-instance (const «StrictOrder_Irreflexive») 0, - tc-instance (const «StrictOrder_Asymmetric») 0, - tc-instance (const «predicate_equivalence_equivalence») 0, - tc-instance (const «relation_equivalence_equivalence») 0, - tc-instance (const «eq_equivalence») 10, - tc-instance (const «iff_equivalence») 0, - tc-instance (const «Equivalence_Reflexive») 0, - tc-instance (const «iff_Reflexive») 0, - tc-instance (const «impl_Reflexive») 0, - tc-instance (const «PreOrder_Reflexive») 2, - tc-instance (const «eq_Reflexive») 0, tc-instance (const «myi») 10, - tc-instance (const «partial_order_antisym») 0, - tc-instance (const «eq_Symmetric») 0, - tc-instance (const «Equivalence_Symmetric») 0, - tc-instance (const «PER_Symmetric») 3, - tc-instance (const «iff_Symmetric») 0, - tc-instance (const «neq_Symmetric») 0, - tc-instance (const «Bool.Decidable_eq_bool») 0, - tc-instance (const «DecidableClass.Decidable_not») 0, - tc-instance (const «inverse_impl_rewrite_relation») 3, - tc-instance (const «impl_rewrite_relation») 3, - tc-instance (const «iff_rewrite_relation») 2, - tc-instance (const «relation_equivalence_rewrite_relation») 0, - tc-instance (const «relation_implication_preorder») 0, - tc-instance (const «Equivalence_PreOrder») 10, - tc-instance (const «predicate_implication_preorder») 0, - tc-instance (const «Equivalence_PER») 10] -Query assignments: - GR = indt «RewriteRelation» - L = [tc-instance (const «inverse_impl_rewrite_relation») 3, - tc-instance (const «impl_rewrite_relation») 3, - tc-instance (const «iff_rewrite_relation») 2, - tc-instance (const «relation_equivalence_rewrite_relation») 0] -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: - GR = indt «RewriteRelation» Query assignments: Spilled_1 = const «foo» foo 3 : nat Query assignments: - GR = indt «True» + I = «eq» + P1 = «carrier» + P2 = «eq_op» +Query assignments: + LP = «Coq.ZArith.Znat» + MP = «Coq.ZArith.Znat.N2Z» Query assignments: Spilled_1 = const «f» Spilled_2 = const «f» @@ -4088,7 +4030,11 @@ Expands to: Constant elpi.tests.test_API_arguments.f f (S:=bool * bool) : bool * bool -> Prop -Debug: Cannot enforce elpi.apps.derive.tests.test_derive.3354 <= Set +COQC tests/test_API_notations.v +Query assignments: + GR = const «myc1» +eq_op myc1 t1 t1 + : bool Query assignments: Spilled_1 = const «f» f : forall [S : Type], S -> Prop @@ -4103,50 +4049,10 @@ : bool * bool -> Prop = fun x : bool => x = x : bool -> Prop -COQC tests/test_API_notations.v +COQC tests/test_API2.v Query assignments: - GR = const «myc» -eq_op myc t t - : bool -Skipping derivation map on indt «nat» since it has been already run -Derivation lens on indt «nat» -Derivation lens on indt «nat» failed, continuing -Skipping derivation param1 on indt «nat» since it has been already run -Skipping derivation param2 on indt «nat» since it has been already run -Skipping derivation tag on indt «nat» since it has been already run -Skipping derivation eqType_ast on indt «nat» since it has been already run -Derivation projK on indt «nat» -Derivation projK on indt «nat» took 0.006812 -Derivation isK on indt «nat» -Derivation isK on indt «nat» took 0.025128 -Derivation eq on indt «nat» -Derivation eq on indt «nat» took 0.019993 -Derivation invert on indt «nat» -Derivation invert on indt «nat» took 0.026988 -Skipping derivation lens_laws on indt «nat» since it has been already run -Skipping derivation param1_congr on indt «nat» -since it has been already run -Skipping derivation param1_inhab on indt «nat» -since it has been already run -Skipping derivation param1_functor on indt «nat» -since it has been already run -Skipping derivation fields on indt «nat» since it has been already run -Derivation bcongr on indt «nat» -Derivation bcongr on indt «nat» took 0.030848 -Derivation idx2inv on indt «nat» -Derivation idx2inv on indt «nat» failed, continuing -Skipping derivation param1_trivial on indt «nat» -since it has been already run -Skipping derivation induction on indt «nat» since it has been already run -Skipping derivation eqb on indt «nat» since it has been already run -Derivation eqK on indt «nat» -Derivation eqK on indt «nat» took 0.032892 -Skipping derivation eqbcorrect on indt «nat» since it has been already run -Derivation eqcorrect on indt «nat» -Derivation eqcorrect on indt «nat» took 0.009870 + P = const «eq_op» «elpi.tests.test_API_notations.abbr» -Skipping derivation eqbOK on indt «nat» since it has been already run -Derivation eqOK on indt «nat» Query assignments: A = «elpi.tests.test_API_notations.abbr» _uvk_1_ = X0 @@ -4181,95 +4087,10 @@ 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 -Derivation eqOK on indt «nat» took 0.007491 4 = 4 : Prop -nat_eqb : nat -> nat -> bool - : nat -> nat -> bool -is_nat : nat -> Type - : nat -> Type -is_nat_inhab : (forall x : nat, is_nat x) - : forall x : nat, is_nat x -is_nat_functor : (forall x : nat, is_nat x -> is_nat x) - : forall x : nat, is_nat x -> is_nat x -nat_induction - : (forall P : nat -> Type, - P 0 -> - (forall n : nat, P n -> P (S n)) -> forall x : nat, is_nat x -> P x) - : forall P : nat -> Type, - P 0 -> - (forall n : nat, P n -> P (S n)) -> forall x : nat, is_nat x -> P x -nat_tag : nat -> BinNums.positive - : nat -> BinNums.positive -nat_fields_t : BinNums.positive -> Type - : BinNums.positive -> Type -nat_fields : (forall n : nat, nat_fields_t (nat_tag n)) - : forall n : nat, nat_fields_t (nat_tag n) -nat_construct : (forall p : BinNums.positive, nat_fields_t p -> option nat) - : forall p : BinNums.positive, nat_fields_t p -> option nat -nat_constructP - : (forall n : nat, nat_construct (nat_tag n) (nat_fields n) = Some n) - : forall n : nat, nat_construct (nat_tag n) (nat_fields n) = Some n -nat_eqb : nat -> nat -> bool - : nat -> nat -> bool -nat_eqb_correct - : forall x : nat, eqb_correct_on nat_eqb x -nat_eqb_refl - : forall x : nat, eqb_refl_on nat_eqb x -list_map : (forall A B : Type, (A -> B) -> list A -> list B) - : forall A B : Type, (A -> B) -> list A -> list B -is_nil : (forall (A : Type) (P : A -> Type), is_list A P nil) - : forall (A : Type) (P : A -> Type), is_list A P nil -is_cons - : (forall (A : Type) (P : A -> Type) (x : A), - P x -> forall tl : list A, is_list A P tl -> is_list A P (x :: tl)) - : forall (A : Type) (P : A -> Type) (x : A), - P x -> forall tl : list A, is_list A P tl -> is_list A P (x :: tl) -is_list_functor - : (forall (A : Type) (P Q : A -> Type), - (forall x : A, P x -> Q x) -> - forall l : list A, is_list A P l -> is_list A Q l) - : forall (A : Type) (P Q : A -> Type), - (forall x : A, P x -> Q x) -> - forall l : list A, is_list A P l -> is_list A Q l -list_induction - : (forall (A : Type) (PA : A -> Type) (P : list A -> Type), - P nil -> - (forall x : A, PA x -> forall xs : list A, P xs -> P (x :: xs)%list) -> - forall l : list A, is_list A PA l -> P l) - : forall (A : Type) (PA : A -> Type) (P : list A -> Type), - P nil -> - (forall x : A, PA x -> forall xs : list A, P xs -> P (x :: xs)%list) -> - forall l : list A, is_list A PA l -> P l -list_tag : (forall A : Type, list A -> BinNums.positive) - : forall A : Type, list A -> BinNums.positive -list_fields_t : Type -> BinNums.positive -> Type - : Type -> BinNums.positive -> Type -list_fields - : (forall (A : Type) (l : list A), list_fields_t A (list_tag A l)) - : forall (A : Type) (l : list A), list_fields_t A (list_tag A l) -list_construct - : (forall (A : Type) (p : BinNums.positive), - list_fields_t A p -> option (list A)) - : forall (A : Type) (p : BinNums.positive), - list_fields_t A p -> option (list A) -list_constructP - : (forall (A : Type) (l : list A), - list_construct A (list_tag A l) (list_fields A l) = Some l) - : forall (A : Type) (l : list A), - list_construct A (list_tag A l) (list_fields A l) = Some l -list_eqb : (forall A : Type, (A -> A -> bool) -> list A -> list A -> bool) - : forall A : Type, (A -> A -> bool) -> list A -> list A -> bool -list_eqb_correct - : forall (a : Type) (eqA : a -> a -> bool), - eqb_correct eqA -> - forall x : list a, eqb_correct_on (list_eqb a eqA) x -list_eqb_refl - : forall (a : Type) (eqA : a -> a -> bool), - eqb_reflexive eqA -> forall x : list a, eqb_refl_on (list_eqb a eqA) x Query assignments: - L = [cs-instance (const «carrier») (cs-gref (const «W»)) (const «myc»), - cs-instance (const «eq_op») (cs-gref (const «Z»)) (const «myc»)] + W = const «W» Query assignments: _uvk_16_ = X0 _uvk_17_ = c0 \ @@ -4303,12 +4124,13 @@ Notation abbr2 _elpi_ctx_entry_1_was_x_ := (fun H => _elpi_ctx_entry_1_was_x_ = _elpi_ctx_entry_1_was_x_) Expands to: Notation elpi.tests.test_API_notations.abbr2 +[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» (fun _ : nat => 2 = 2) 3 : Prop -Query assignments: - I = «eq» - P1 = «carrier» - P2 = «eq_op» fun `H` X0 c0 \ app [global (indt «eq»), X1 c0, fun `x` X2 c1 \ c1, fun `x` X2 c1 \ c1] Query assignments: @@ -4317,30 +4139,117 @@ app [global (indt «eq»), X1 c0, fun `x` X2 c1 \ c1, fun `x` X2 c1 \ c1] _uvk_31_ = X2 Query assignments: - GR = const «myc1» -eq_op myc1 t1 t1 - : bool -Query assignments: - Spilled_1 = «elpi.tests.test_API_notations.abbr2» -COQC tests/test_API2.v -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» + W = indt «nat» Query assignments: X1 = «x1» X2 = «x2» X3 = «x3» +projSucc1 : peano -> peano -> peano + : peano -> peano -> peano +projSome1 : forall A : Type, A -> option A -> A + : forall A : Type, A -> option A -> A +projComma1 : forall A B : Type, A -> B -> pair A B -> A + : forall A B : Type, A -> B -> pair A B -> A +projComma2 : forall A B : Type, A -> B -> pair A B -> B + : forall A B : Type, A -> B -> pair A B -> B +projCons1 : forall A : Type, A -> seq A -> seq A -> A + : forall A : Type, A -> seq A -> seq A -> A +projCons2 : forall A : Type, A -> seq A -> seq A -> seq A + : forall A : Type, A -> seq A -> seq A -> seq A +projLeaf1 : forall A : Type, A -> rose A -> A + : forall A : Type, A -> rose A -> A +projNode1 : forall A : Type, seq (rose A) -> rose A -> seq (rose A) + : forall A : Type, seq (rose A) -> rose A -> seq (rose A) +projConsN1 : forall A : Type, A -> nest (pair A A) -> nest A -> A + : forall A : Type, A -> nest (pair A A) -> nest A -> A +projConsN2 +: +forall A : Type, A -> nest (pair A A) -> nest A -> nest (pair A A) + : forall A : Type, A -> nest (pair A A) -> nest A -> nest (pair A A) +projvia1 : forall A : Type, (A -> w A) -> w A -> A -> w A + : forall A : Type, (A -> w A) -> w A -> A -> w A +projVCons1 +: +forall (A : Type) (i : peano), +A -> forall j : peano, vect A j -> vect A i -> A + : forall (A : Type) (i : peano), + A -> forall j : peano, vect A j -> vect A i -> A +projVCons2 +: +forall (A : Type) (i : peano), +A -> forall j : peano, vect A j -> vect A i -> peano + : forall (A : Type) (i : peano), + A -> forall j : peano, vect A j -> vect A i -> peano +projVCons3 +: +forall (A : Type) (i : peano), +A -> forall j : peano, vect A j -> vect A i -> {w : peano & vect A w} + : forall (A : Type) (i : peano), + A -> forall j : peano, vect A j -> vect A i -> {w : peano & vect A w} +projbox1 : forall T : Type, T -> dyn -> Type + : forall T : Type, T -> dyn -> Type +projbox2 : forall T : Type, T -> dyn -> {T0 : Type & T0} + : forall T : Type, T -> dyn -> {T0 : Type & T0} +projEnvelope1 : forall A : Type, A -> A -> zeta A -> A + : forall A : Type, A -> A -> zeta A -> A +eq_refl : projEnvelope1 nat 1 1 (Envelope nat 0 1) = 0 + : projEnvelope1 nat 1 1 (Envelope nat 0 1) = 0 +projEnvelope2 : forall A : Type, A -> A -> zeta A -> A + : forall A : Type, A -> A -> zeta A -> A +eq_refl : projEnvelope2 nat 1 1 (Envelope nat 1 0) = 0 + : projEnvelope2 nat 1 1 (Envelope nat 1 0) = 0 +projRedex1 : forall A : Type, A -> beta A -> A + : forall A : Type, A -> beta A -> A +projWhy1 +: +forall n : peano, +match n with +| Zero => peano +| Succ _ => unit +end -> iota -> peano + : forall n : peano, + match n with + | Zero => peano + | Succ _ => unit + end -> iota -> peano +projWhy2 +: +forall n : peano, +match n with +| Zero => peano +| Succ _ => unit +end -> +iota -> {i : peano & match i with + | Zero => peano + | Succ _ => unit + end} + : forall n : peano, + match n with + | Zero => peano + | Succ _ => unit + end -> + iota -> + {i : peano & match i with + | Zero => peano + | Succ _ => unit + end} +projPI1 + : PrimInt63.int -> prim_int -> PrimInt63.int +projPF1 + : PrimFloat.float -> prim_float -> PrimFloat.float +projBuild_fo_record1 : peano -> unit -> fo_record -> peano + : peano -> unit -> fo_record -> peano +projBuild_fo_record2 : peano -> unit -> fo_record -> unit + : peano -> unit -> fo_record -> unit +projBuild_pa_record2 : forall A : Type, peano -> A -> pa_record A -> A + : forall A : Type, peano -> A -> pa_record A -> A +projBuild_pr_record2 : forall A : Type, peano -> A -> pr_record A -> A + : forall A : Type, peano -> A -> pr_record A -> A +COQC tests/test_derive.v Query assignments: - P = const «eq_op» - W = indt «nat» -Query assignments: - M = [[mode-ground], [mode-input]] + Spilled_1 = «elpi.tests.test_API_notations.abbr2» +COQC tests/test_HOAS.v Query assignments: C1 = const «C1» GR1 = const «c12» @@ -4353,56 +4262,13 @@ fun x : C1 => x 3 : C1 -> nat Query assignments: + M = [[mode-ground], [mode-input]] +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: - Spilled_1 = const «nuc» -nuc : forall x : nat, C1 -> C3 x - -nuc is not universe polymorphic -Arguments nuc x%nat_scope _ -nuc is a reversible coercion -Expands to: Constant elpi.tests.test_API_TC_CS.nuc -COQC tests/test_HOAS.v -1 -1 -1.000000 -1.2 -Skipping derivation map on indt «nat» since the user did not select it -Skipping derivation lens on indt «nat» since the user did not select it -Skipping derivation param1 on indt «nat» since it has been already run -Skipping derivation param2 on indt «nat» since the user did not select it -Skipping derivation tag on indt «nat» since the user did not select it -Skipping derivation eqType_ast on indt «nat» -since the user did not select it -Skipping derivation projK on indt «nat» since it has been already run -Skipping derivation isK on indt «nat» since it has been already run -Skipping derivation eq on indt «nat» since it has been already run -Skipping derivation invert on indt «nat» since the user did not select it -Skipping derivation lens_laws on indt «nat» -since the user did not select it -Skipping derivation param1_congr on indt «nat» -since it has been already run -Skipping derivation param1_inhab on indt «nat» -since it has been already run -Skipping derivation param1_functor on indt «nat» -since it has been already run -Skipping derivation fields on indt «nat» since the user did not select it -Skipping derivation bcongr on indt «nat» since it has been already run -Skipping derivation idx2inv on indt «nat» since the user did not select it -Skipping derivation param1_trivial on indt «nat» -since it has been already run -Skipping derivation induction on indt «nat» since it has been already run -Skipping derivation eqb on indt «nat» since the user did not select it -Skipping derivation eqK on indt «nat» since it has been already run -Skipping derivation eqbcorrect on indt «nat» -since the user did not select it -Skipping derivation eqcorrect on indt «nat» since it has been already run -Skipping derivation eqbOK on indt «nat» since the user did not select it -Skipping derivation eqOK on indt «nat» since it has been already run {c0} : decl c0 `x` (global (indt «nat»)) ?- evar (X0 c0) (prod `_` (global (indt «bool»)) c1 \ global (indt «True»)) @@ -4425,95 +4291,15 @@ ?- evar (X0 c0) (prod `_` (global (indt «bool»)) c1 \ global (indt «True»)) (X1 c0) /* suspended on X0, X1 */ -derive.param1_trivial: wrong shape is_t A PA -. It does not look like a unary parametricity translation of an inductive with no indexes. -Vector.t_eq - : (forall A : Type, - (A -> A -> bool) -> forall n : nat, Vector.t A n -> Vector.t A n -> bool) - : forall A : Type, - (A -> A -> bool) -> - forall n : nat, Vector.t A n -> Vector.t A n -> bool -Vector.t_isk_nil : (forall (A : Type) (n : nat), Vector.t A n -> bool) - : forall (A : Type) (n : nat), Vector.t A n -> bool -Vector.t_isk_cons : (forall (A : Type) (n : nat), Vector.t A n -> bool) - : forall (A : Type) (n : nat), Vector.t A n -> bool -Vector.t_map - : (forall A B : Type, - (A -> B) -> forall n : nat, Vector.t A n -> Vector.t B n) - : forall A B : Type, - (A -> B) -> forall n : nat, Vector.t A n -> Vector.t B n -Vector.t_getk_cons1 - : (forall (A : Type) (n : nat), - A -> forall m : nat, Vector.t A m -> Vector.t A n -> A) - : forall (A : Type) (n : nat), - A -> forall m : nat, Vector.t A m -> Vector.t A n -> A -Vector.t_getk_cons2 - : (forall (A : Type) (n : nat), - A -> forall m : nat, Vector.t A m -> Vector.t A n -> nat) - : forall (A : Type) (n : nat), - A -> forall m : nat, Vector.t A m -> Vector.t A n -> nat -Vector.t_getk_cons3 - : (forall (A : Type) (n : nat), - A -> - forall m : nat, Vector.t A m -> Vector.t A n -> {k : nat & Vector.t A k}) - : forall (A : Type) (n : nat), - A -> - forall m : nat, - Vector.t A m -> Vector.t A n -> {k : nat & Vector.t A k} -Vector.is_t - : (forall A : Type, - (A -> Type) -> forall n : nat, is_nat n -> Vector.t A n -> Type) - : forall A : Type, - (A -> Type) -> forall n : nat, is_nat n -> Vector.t A n -> Type -Vector.is_nil - : (forall (A : Type) (PA : A -> Type), - Vector.is_t A PA 0 is_O (Vector.nil A)) - : forall (A : Type) (PA : A -> Type), - Vector.is_t A PA 0 is_O (Vector.nil A) -Vector.is_cons - : (forall (A : Type) (PA : A -> Type) (a : A), - PA a -> - forall (n : nat) (Pn : is_nat n) (H : Vector.t A n), - Vector.is_t A PA n Pn H -> - Vector.is_t A PA (S n) (is_S n Pn) (Vector.cons A a n H)) - : forall (A : Type) (PA : A -> Type) (a : A), - PA a -> - forall (n : nat) (Pn : is_nat n) (H : Vector.t A n), - Vector.is_t A PA n Pn H -> - Vector.is_t A PA (S n) (is_S n Pn) (Vector.cons A a n H) -Vector.is_t_functor - : (forall (A : Type) (PA QA : A -> Type), - (forall x : A, PA x -> QA x) -> - forall (n : nat) (nR : is_nat n) (v : Vector.t A n), - Vector.is_t A PA n nR v -> Vector.is_t A QA n nR v) - : forall (A : Type) (PA QA : A -> Type), - (forall x : A, PA x -> QA x) -> - forall (n : nat) (nR : is_nat n) (v : Vector.t A n), - Vector.is_t A PA n nR v -> Vector.is_t A QA n nR v -Vector.t_induction - : (forall (A : Type) (PA : A -> Type) - (P : forall n : nat, is_nat n -> Vector.t A n -> Type), - P 0 is_O (Vector.nil A) -> - (forall a : A, - PA a -> - forall (m : nat) (mR : is_nat m) (v : Vector.t A m), - P m mR v -> P (S m) (is_S m mR) (Vector.cons A a m v)) -> - forall (n : nat) (nR : is_nat n) (v : Vector.t A n), - Vector.is_t A PA n nR v -> P n nR v) - : forall (A : Type) (PA : A -> Type) - (P : forall n : nat, is_nat n -> Vector.t A n -> Type), - P 0 is_O (Vector.nil A) -> - (forall a : A, - PA a -> - forall (m : nat) (mR : is_nat m) (v : Vector.t A m), - P m mR v -> P (S m) (is_S m mR) (Vector.cons A a m v)) -> - forall (n : nat) (nR : is_nat n) (v : Vector.t A n), - Vector.is_t A PA n nR v -> P n nR v -Vector.t_tag - : (forall (A : Type) (i : nat), Vector.t A i -> BinNums.positive) - : forall (A : Type) (i : nat), Vector.t A i -> BinNums.positive -W_tag : (forall A : Type, W A -> BinNums.positive) - : forall A : Type, W A -> BinNums.positive +Query assignments: + Spilled_1 = const «nuc» +nuc : forall x : nat, C1 -> C3 x + +nuc is not universe polymorphic +Arguments nuc x%nat_scope _ +nuc is a reversible coercion +Expands to: Constant elpi.tests.test_API_TC_CS.nuc +COQC tests/test_arg_HOAS.v H [nabla c1 \ seal @@ -4525,1473 +4311,19 @@ global (indt «True»))] (X0 c1) (prod `b` (global (indt «bool»)) c2 \ app [global (indt «eq»), global (indt «bool»), c2, c2]) (X1 c1) [])] -XXX.rtree_tag : (forall A : Type, rtree A -> BinNums.positive) - : forall A : Type, rtree A -> BinNums.positive -XXX.rtree_fields_t : Type -> BinNums.positive -> Type - : Type -> BinNums.positive -> Type -XXX.rtree_fields - : (forall (A : Type) (l : rtree A), - XXX.rtree_fields_t A (XXX.rtree_tag A l)) - : forall (A : Type) (l : rtree A), - XXX.rtree_fields_t A (XXX.rtree_tag A l) -XXX.rtree_construct - : (forall (A : Type) (p : BinNums.positive), - XXX.rtree_fields_t A p -> option (rtree A)) - : forall (A : Type) (p : BinNums.positive), - XXX.rtree_fields_t A p -> option (rtree A) -XXX.rtree_constructP - : (forall (A : Type) (l : rtree A), - XXX.rtree_construct A (XXX.rtree_tag A l) (XXX.rtree_fields A l) = - Some l) - : forall (A : Type) (l : rtree A), - XXX.rtree_construct A (XXX.rtree_tag A l) (XXX.rtree_fields A l) = - Some l -XXX.rtree_eqb - : (forall A : Type, (A -> A -> bool) -> rtree A -> rtree A -> bool) - : forall A : Type, (A -> A -> bool) -> rtree A -> rtree A -> bool +1 +1 +1.000000 +1.2 [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»)) [])] -derive.param1_trivial: wrong shape is_triv -. It does not look like a unary parametricity translation of an inductive with no indexes. -triv.induction - : (forall P : forall H : Coverage.unit, is_unit H -> triv H -> Prop, - (forall (t : Coverage.unit) (Pt : is_unit t), P t Pt (one t)) -> - (forall (x : Coverage.unit) (Px : is_unit x), P x Px (more x)) -> - forall (u : Coverage.unit) (p : is_unit u) (s : triv u), - triv.is_triv u p s -> P u p s) - : forall P : forall H : Coverage.unit, is_unit H -> triv H -> Prop, - (forall (t : Coverage.unit) (Pt : is_unit t), P t Pt (one t)) -> - (forall (x : Coverage.unit) (Px : is_unit x), P x Px (more x)) -> - forall (u : Coverage.unit) (p : is_unit u) (s : triv u), - triv.is_triv u p s -> P u p s -Debug: Cannot enforce elpi.apps.derive.tests.test_derive.4344 <= Set Query assignments: T = sort (typ «elpi.tests.test_HOAS.3») U = «elpi.tests.test_HOAS.3» -derive.param1_trivial: wrong shape is_Pred -. It does not look like a unary parametricity translation of an inductive with no indexes. -Pred.Pred_to_Predinv : (forall T : RoseTree, Pred T -> Pred.Predinv T) - : forall T : RoseTree, Pred T -> Pred.Predinv T -File "./tests/test_API2.v", line 126, characters 0-16: -Warning: Option Foo Bar is deprecated. elpi -[deprecated-option,deprecated,default] -wimpls.wimpls : forall {A : Type}, rtree A -> Type - -wimpls.wimpls is not universe polymorphic -Arguments wimpls.wimpls {A}%type_scope {rtree0} -Expands to: Inductive -elpi.apps.derive.tests.test_derive.derive_container.wimpls.wimpls -wimpls.Kwi : forall {A : Type} {rtree0 : rtree A} (x : A), x = x -> wimpls - -wimpls.Kwi is not universe polymorphic -Arguments wimpls.Kwi {A}%type_scope {rtree0} x _ -Expands to: Constructor -elpi.apps.derive.tests.test_derive.derive_container.wimpls.Kwi -Kwi 3 eq_refl - : wimpls -where -?rtree0 : [ |- rtree nat] -COQC tests/test_eq.v -Query assignments: - U = «elpi.tests.test_HOAS.4» -Universe constraints: -UNIVERSES: - {elpi.tests.test_HOAS.4} |= -ALGEBRAIC UNIVERSES: - {} -UNDEFINED UNIVERSES: - -SORTS: - -WEAK CONSTRAINTS: - - -File "./tests/test_API2.v", line 134, characters 0-14: -Warning: Option Foo Bar is deprecated. elpi -[deprecated-option,deprecated,default] -Query assignments: - U = «foo» -Query assignments: - X = c0 \ c1 \ c2 \ -X0 c0 c1 c2 - _uvk_19_ = 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: - {} -UNDEFINED UNIVERSES: - -SORTS: - α3 := Type - α4 -WEAK CONSTRAINTS: - - -Query assignments: - C1 = «Nat.add» - C2 = «times» - X1 = tt - X2 = ff -empty_eq : eq_test empty - : eq_test empty -unit_eq : eq_test unit - : eq_test unit -peano_eq : eq_test peano - : eq_test peano -option_eq : forall A : Type, eq_test A -> eq_test (option A) - : forall A : Type, eq_test A -> eq_test (option A) -pair_eq -: -forall A : Type, -eq_test A -> forall B : Type, eq_test B -> eq_test (pair A B) - : forall A : Type, - eq_test A -> forall B : Type, eq_test B -> eq_test (pair A B) -seq_eq : forall A : Type, eq_test A -> eq_test (seq A) - : forall A : Type, eq_test A -> eq_test (seq A) -rose_eq : forall A : Type, eq_test A -> eq_test (rose A) - : forall A : Type, eq_test A -> eq_test (rose A) -vect_eq : forall A : Type, eq_test A -> forall i : peano, eq_test (vect A i) - : forall A : Type, eq_test A -> forall i : peano, eq_test (vect A i) -zeta_eq : forall A : Type, eq_test A -> eq_test (zeta A) - : forall A : Type, eq_test A -> eq_test (zeta A) -beta_eq : forall A : Type, eq_test A -> eq_test (beta A) - : forall A : Type, eq_test A -> eq_test (beta A) -large_eq : eq_test large - : eq_test large -prim_int_eq : eq_test prim_int - : eq_test prim_int -prim_float_eq : eq_test prim_float - : eq_test prim_float -fo_record_eq : eq_test fo_record - : eq_test fo_record -pa_record_eq : forall A : Type, eq_test A -> eq_test (pa_record A) - : forall A : Type, eq_test A -> eq_test (pa_record A) -pr_record_eq : forall A : Type, eq_test A -> eq_test (pr_record A) - : forall A : Type, eq_test A -> eq_test (pr_record A) -enum_eq : eq_test enum - : eq_test enum -COQC tests/test_isK.v ----------------------------------- - {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: - ?X11==[a |- ?elpi_evar] (internal placeholder) {?elpi_evar0} - ?X10==[ |- Type] (internal placeholder) {?elpi_evar} - ?X9==[a |- => ?elpi_evar0] (internal placeholder) - ?X8==[a |- => ?elpi_evar] (internal placeholder) - -SHELF: -FUTURE GOALS STACK:?X11 -?X10 - -Coq-Elpi mapping: -RAW: -?X10 <-> X0 -?X11 <-> X2 -ELAB: -?X10 <-> X1 -?X11 <-> X2 - -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: - {} -UNDEFINED UNIVERSES: - -SORTS: - α5 -WEAK CONSTRAINTS: - - -Query assignments: - C1 = «x» -Query assignments: - C1 = «x» - M = «elpi.tests.test_API2.xx» -File "./tests/test_HOAS.v", line 123, characters 0-34: -Warning: Use of “Require” inside a module is fragile. It is not recommended -to use this functionality in finished proof scripts. -[require-in-module,fragile,default] -Raw term: -app - [global (const «add»), primitive (uint63 2000000003333002), - primitive (uint63 1)] -Nice term: add 2000000003333002 1 -Red: -2000000003333003 -File "./tests/test_HOAS.v", line 127, characters 0-34: -Warning: Use of “Require” inside a module is fragile. It is not recommended -to use this functionality in finished proof scripts. -[require-in-module,fragile,default] -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 `n` (global (indt «nat»)) c3 \ global (indt «nat»)) - [c2, - fun `p` (global (indt «nat»)) c3 \ - app [global (indc «S»), app [c0, c3, c2]]], - app [global (indc «S»), global (indc «O»)], - app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] - _uvk_35_ = global (indt «nat») - _uvk_36_ = c0 \ -global (indt «nat») - _uvk_37_ = c0 \ c1 \ -global (indt «nat») - _uvk_38_ = c0 \ -global (indt «nat») - _uvk_39_ = c0 \ c1 \ -global (indt «nat») - _uvk_40_ = c0 \ c1 \ c2 \ -global (indt «nat») - _uvk_41_ = c0 \ c1 \ c2 \ -global (indt «nat») -Query assignments: - C1 = «x» - M = «elpi.tests.test_API2.xx2» -unit_is_tt : unit -> bool - : unit -> bool -peano_is_Zero : peano -> bool - : peano -> bool -peano_is_Succ : peano -> bool - : peano -> bool -option_is_None : forall A : Type, option A -> bool - : forall A : Type, option A -> bool -option_is_Some : forall A : Type, option A -> bool - : forall A : Type, option A -> bool -pair_is_Comma : forall A B : Type, pair A B -> bool - : forall A B : Type, pair A B -> bool -seq_is_Nil : forall A : Type, seq A -> bool - : forall A : Type, seq A -> bool -seq_is_Cons : forall A : Type, seq A -> bool - : forall A : Type, seq A -> bool -rose_is_Leaf : forall A : Type, rose A -> bool - : forall A : Type, rose A -> bool -rose_is_Node : forall A : Type, rose A -> bool - : forall A : Type, rose A -> bool -nest_is_NilN : forall A : Type, nest A -> bool - : forall A : Type, nest A -> bool -nest_is_ConsN : forall A : Type, nest A -> bool - : forall A : Type, nest A -> bool -w_is_via : forall A : Type, w A -> bool - : forall A : Type, w A -> bool -vect_is_VNil : forall (A : Type) (i : peano), vect A i -> bool - : forall (A : Type) (i : peano), vect A i -> bool -vect_is_VCons : forall (A : Type) (i : peano), vect A i -> bool - : forall (A : Type) (i : peano), vect A i -> bool -dyn_is_box : dyn -> bool - : dyn -> bool -zeta_is_Envelope : forall A : Type, zeta A -> bool - : forall A : Type, zeta A -> bool -beta_is_Redex : forall A : Type, beta A -> bool - : forall A : Type, beta A -> bool -iota_is_Why : iota -> bool - : iota -> bool -large_is_K1 - : large -> bool -large_is_K2 - : large -> bool -prim_int_is_PI - : prim_int -> bool -prim_float_is_PF - : prim_float -> bool -fo_record_is_Build_fo_record : fo_record -> bool - : fo_record -> bool -pa_record_is_Build_pa_record : forall A : Type, pa_record A -> bool - : forall A : Type, pa_record A -> bool -pr_record_is_Build_pr_record : forall A : Type, pr_record A -> bool - : forall A : Type, pr_record A -> bool -enum_is_E1 : enum -> bool - : enum -> bool -COQC tests/test_param1.v -Query assignments: - C = «Nat.add» - F = TODO - T = app - [fun `n` (global (indt «nat»)) c0 \ - fun `m` (global (indt «nat»)) c1 \ - match c0 (fun `n` (global (indt «nat»)) c2 \ global (indt «nat»)) - [c1, - fun `p` (global (indt «nat»)) c2 \ - app - [global (indc «S»), - app - [fix `add` 0 - (prod `n` (global (indt «nat»)) c3 \ - prod `m` (global (indt «nat»)) c4 \ global (indt «nat»)) - c3 \ - fun `n` (global (indt «nat»)) c4 \ - fun `m` (global (indt «nat»)) c5 \ - match c4 - (fun `n` (global (indt «nat»)) c6 \ global (indt «nat»)) - [c5, - fun `p` (global (indt «nat»)) c6 \ - app [global (indc «S»), app [c3, c6, c5]]], c2, c1]]], - app [global (indc «S»), global (indc «O»)], - app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] - T1 = app - [global (const «Nat.add»), - app [global (indc «S»), global (indc «O»)], - app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] - T2 = app - [fun `n` (global (indt «nat»)) c0 \ - fun `m` (global (indt «nat»)) c1 \ - match c0 (fun `n` (global (indt «nat»)) c2 \ global (indt «nat»)) - [c1, - fun `p` (global (indt «nat»)) c2 \ - app - [global (indc «S»), - app - [fix `plus` 0 - (prod `n` (global (indt «nat»)) c3 \ - prod `m` (global (indt «nat»)) c4 \ global (indt «nat»)) - c3 \ - fun `n` (global (indt «nat»)) c4 \ - fun `m` (global (indt «nat»)) c5 \ - match c4 - (fun `n` (global (indt «nat»)) c6 \ global (indt «nat»)) - [c5, - fun `p` (global (indt «nat»)) c6 \ - app [global (indc «S»), app [c3, c6, c5]]], c2, c1]]], - app [global (indc «S»), global (indc «O»)], - app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] - _uvk_42_ = global (indt «nat») - _uvk_43_ = c0 \ -global (indt «nat») - _uvk_44_ = c0 \ c1 \ -global (indt «nat») - _uvk_45_ = c0 \ c1 \ -global (indt «nat») - _uvk_46_ = c0 \ c1 \ c2 \ -global (indt «nat») - _uvk_47_ = c0 \ c1 \ c2 \ -global (indt «nat») - _uvk_48_ = c0 \ c1 \ c2 \ -global (indt «nat») - _uvk_49_ = c0 \ c1 \ c2 \ c3 \ -global (indt «nat») - _uvk_50_ = c0 \ c1 \ c2 \ c3 \ -global (indt «nat») - _uvk_51_ = c0 \ c1 \ c2 \ c3 \ -global (indt «nat») - _uvk_52_ = c0 \ c1 \ c2 \ c3 \ -global (indt «nat») -Query assignments: - C1 = «x» - M = «elpi.tests.test_API2.xx3» -Query assignments: - C = «Nat.add» - F = TODO - T = match (app [global (indc «S»), global (indc «O»)]) - (fun `n` (global (indt «nat»)) c0 \ global (indt «nat»)) - [app [global (indc «S»), app [global (indc «S»), global (indc «O»)]], - fun `p` (global (indt «nat»)) c0 \ - app - [global (indc «S»), - app - [fix `add` 0 - (prod `n` (global (indt «nat»)) c1 \ - prod `m` (global (indt «nat»)) c2 \ global (indt «nat»)) c1 \ - fun `n` (global (indt «nat»)) c2 \ - fun `m` (global (indt «nat»)) c3 \ - match c2 - (fun `n` (global (indt «nat»)) c4 \ global (indt «nat»)) - [c3, - fun `p` (global (indt «nat»)) c4 \ - app [global (indc «S»), app [c1, c4, c3]]], c0, - app - [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]]] - T1 = app - [global (const «Nat.add»), - app [global (indc «S»), global (indc «O»)], - app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] - T2 = match (app [global (indc «S»), global (indc «O»)]) - (fun `_` (global (indt «nat»)) c0 \ global (indt «nat»)) - [app [global (indc «S»), app [global (indc «S»), global (indc «O»)]], - fun `p` (global (indt «nat»)) c0 \ - app - [global (indc «S»), - app - [fix `plus` 0 - (prod `n` (global (indt «nat»)) c1 \ - prod `m` (global (indt «nat»)) c2 \ global (indt «nat»)) c1 \ - fun `n` (global (indt «nat»)) c2 \ - fun `m` (global (indt «nat»)) c3 \ - match c2 - (fun `n` (global (indt «nat»)) c4 \ global (indt «nat»)) - [c3, - fun `p` (global (indt «nat»)) c4 \ - app [global (indc «S»), app [c1, c4, c3]]], c0, - app - [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]]] - _uvk_53_ = c0 \ -global (indt «nat») - _uvk_54_ = global (indt «nat») - _uvk_55_ = c0 \ -global (indt «nat») - _uvk_56_ = c0 \ c1 \ -global (indt «nat») - _uvk_57_ = c0 \ c1 \ c2 \ -global (indt «nat») - _uvk_58_ = c0 \ c1 \ -global (indt «nat») - _uvk_59_ = c0 \ c1 \ c2 \ -global (indt «nat») - _uvk_60_ = c0 \ c1 \ c2 \ c3 \ -global (indt «nat») - _uvk_61_ = c0 \ c1 \ c2 \ c3 \ -global (indt «nat») -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»)]]] -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]) -Query assignments: - _uvk_1_ = X0 - _uvk_2_ = X1 -Syntactic constraints: - evar (X1) (X2) (X1) /* suspended on X1 */ - evar X3 (sort (typ «elpi.tests.test_API2.6»)) (X2) /* suspended on X3, X2 */ - evar (X0) (X4) (X0) /* suspended on X0 */ - evar X5 (sort (typ «elpi.tests.test_API2.5»)) (X4) /* suspended on X5, X4 */ -Universe constraints: -UNIVERSES: - {elpi.tests.test_API2.6 elpi.tests.test_API2.5} |= -ALGEBRAIC UNIVERSES: - {} -UNDEFINED UNIVERSES: - -SORTS: - α4 - α5 -WEAK CONSTRAINTS: - - -Non-discriminated database -Unfoldable variable definitions: all -Unfoldable constant definitions: all -Cut: emp -For any goal -> -For xeq -> exact xxx(level 0, pattern 0 = _, id 0) - -Query assignments: - _uvk_19_ = «elpi.tests.test_API2.7» -Universe constraints: -UNIVERSES: - -ALGEBRAIC UNIVERSES: - {elpi.tests.test_API2.7} -UNDEFINED UNIVERSES: - elpi.tests.test_API2.7 -SORTS: - -WEAK CONSTRAINTS: - - -is_empty : pred empty - : pred empty -is_unit : pred unit - : pred unit -is_peano : pred peano - : pred peano -is_option : forall A : Type, pred A -> pred (option A) - : forall A : Type, pred A -> pred (option A) -is_pair -: -forall A : Type, pred A -> forall B : Type, pred B -> pred (pair A B) - : forall A : Type, pred A -> forall B : Type, pred B -> pred (pair A B) -is_seq : forall A : Type, pred A -> pred (seq A) - : forall A : Type, pred A -> pred (seq A) -is_rose : forall A : Type, pred A -> pred (rose A) - : forall A : Type, pred A -> pred (rose A) -is_nest : forall A : Type, pred A -> pred (nest A) - : forall A : Type, pred A -> pred (nest A) -is_w : forall A : Type, pred A -> pred (w A) - : forall A : Type, pred A -> pred (w A) -is_vect -: -forall A : Type, pred A -> forall i : peano, is_peano i -> pred (vect A i) - : forall A : Type, - pred A -> forall i : peano, is_peano i -> pred (vect A i) -is_dyn : pred dyn - : pred dyn -is_zeta : forall A : Type, pred A -> pred (zeta A) - : forall A : Type, pred A -> pred (zeta A) -is_beta : forall A : Type, pred A -> pred (beta A) - : forall A : Type, pred A -> pred (beta A) -is_iota : pred iota - : pred iota -is_large : pred large - : pred large -is_prim_int : pred prim_int - : pred prim_int -is_prim_float : pred prim_float - : pred prim_float -is_fo_record : pred fo_record - : pred fo_record -is_pa_record : forall A : Type, pred A -> pred (pa_record A) - : forall A : Type, pred A -> pred (pa_record A) -is_pr_record : forall A : Type, pred A -> pred (pr_record A) - : forall A : Type, pred A -> pred (pr_record A) -is_enum : pred enum - : pred enum -is_ord : forall p : peano, is_peano p -> pred (ord p) - : forall p : peano, is_peano p -> pred (ord p) -is_ord2 : forall p : peano, is_peano p -> pred (ord2 p) - : forall p : peano, is_peano p -> pred (ord2 p) -is_val : pred val - : pred val -Query assignments: - GR = const const EXN PRINTING: Not_found - T = «elpi.tests.test_API2.T» -some - (pglobal (const «toto») - «elpi.tests.test_HOAS.19 elpi.tests.test_HOAS.20») -prod `T1` (sort (typ «elpi.tests.test_HOAS.19»)) c0 \ - prod `T2` (sort (typ «elpi.tests.test_HOAS.20»)) c1 \ prod `x` c0 c2 \ c0 -Query assignments: - Body = some - (pglobal (const «toto») - «elpi.tests.test_HOAS.19 elpi.tests.test_HOAS.20») - C = «titi» - Term = prod `T1` (sort (typ «elpi.tests.test_HOAS.19»)) c0 \ - prod `T2` (sort (typ «elpi.tests.test_HOAS.20»)) c1 \ prod `x` c0 c2 \ c0 -Universe constraints: -UNIVERSES: - {elpi.tests.test_HOAS.20 elpi.tests.test_HOAS.19} |= -ALGEBRAIC UNIVERSES: - {} -UNDEFINED UNIVERSES: - -SORTS: - -WEAK CONSTRAINTS: - - -pglobal (const «toto») X0 -pglobal (const «toto») «u1 u2» -toto -Query assignments: - Spilled_1 = toto - _uvk_62_ = X0 - _uvk_63_ = «elpi.tests.test_HOAS.23 elpi.tests.test_HOAS.24» -Universe constraints: -UNIVERSES: - {elpi.tests.test_HOAS.24 elpi.tests.test_HOAS.23} |= -ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.24 elpi.tests.test_HOAS.23} -UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.24 - elpi.tests.test_HOAS.23 -SORTS: - -WEAK CONSTRAINTS: - - -app - [pglobal (const «t») X0, global (indt «nat»), - pglobal (const «fnat») X1] -app - [pglobal (const «t») «elpi.tests.test_HOAS.29», global (indt «nat»), - pglobal (const «fnat») «»] -Query assignments: - T = app - [pglobal (const «t») «elpi.tests.test_HOAS.29», global (indt «nat»), - pglobal (const «fnat») «»] - Ty = global (indt «nat») - _uvk_64_ = «elpi.tests.test_HOAS.29» - _uvk_65_ = «» -Universe constraints: -UNIVERSES: - {elpi.tests.test_HOAS.29} |= - Set <= elpi.tests.test_HOAS.29 - Set = elpi.tests.test_HOAS.29 -ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.29} -UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.29 := Set -SORTS: - -WEAK CONSTRAINTS: - - -«elpi.tests.test_API2.G» -Query assignments: - F = «elpi.tests.test_API2.F» - G = «elpi.tests.test_API2.G» - X = «elpi.tests.test_API2.X» -Module G : Sig Definition id : X.T -> X.T. End := (F X) - -Query assignments: - Y = global (indc «is_O») -«elpi.tests.test_API2.H» -Query assignments: - F = «elpi.tests.test_API2.F» - H = «elpi.tests.test_API2.H» - X = «elpi.tests.test_API2.X» -Module H : Sig Definition id : nat -> nat. End := (F X) - -Query assignments: - A4 = «elpi.tests.test_HOAS.36» - A5 = «elpi.tests.test_HOAS.37» - A6 = «elpi.tests.test_HOAS.38» - A7 = «elpi.tests.test_HOAS.39» - A8 = «elpi.tests.test_HOAS.40» - Arity = prod `T` (sort (typ «elpi.tests.test_HOAS.30»)) c0 \ - sort (typ «elpi.tests.test_HOAS.30») - Arity1 = prod `T` (sort (typ «elpi.tests.test_HOAS.31»)) c0 \ - sort (typ «elpi.tests.test_HOAS.31») - Arity2 = prod `T` (sort (typ «elpi.tests.test_HOAS.32»)) c0 \ - sort (typ «elpi.tests.test_HOAS.32») - Arity4 = prod `T` (sort (typ «elpi.tests.test_HOAS.36»)) c0 \ - sort (typ «elpi.tests.test_HOAS.36») - Arity5 = prod `T` (sort (typ «elpi.tests.test_HOAS.37»)) c0 \ - sort (typ «elpi.tests.test_HOAS.37») - B = «Build_F» - B1 = «elpi.tests.test_HOAS.43» - B2 = «elpi.tests.test_HOAS.44» - BTy2 = prod `T` (sort (typ «elpi.tests.test_HOAS.42»)) c0 \ - prod `t` c0 c1 \ app [pglobal (indt «F») «elpi.tests.test_HOAS.42», c0] - BTy3 = prod `T` (sort (typ «elpi.tests.test_HOAS.43»)) c0 \ - prod `t` c0 c1 \ app [pglobal (indt «F») «elpi.tests.test_HOAS.43», c0] - BoN = none - BoT = some - (fun `T` (sort (typ «elpi.tests.test_HOAS.45»)) c0 \ - fun `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.45», c0]) c1 \ - match c1 - (fun `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.45», c0]) - c2 \ c0) [fun `t` c0 c2 \ c2]) - BoT1 = some - (fun `T` (sort (typ «elpi.tests.test_HOAS.46»)) c0 \ - fun `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.46», c0]) c1 \ - match c1 - (fun `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.46», c0]) - c2 \ c0) [fun `t` c0 c2 \ c2]) - BoT2 = some - (fun `T` (sort (typ «elpi.tests.test_HOAS.47»)) c0 \ - fun `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.47», c0]) c1 \ - match c1 - (fun `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.47», c0]) - c2 \ c0) [fun `t` c0 c2 \ c2]) - BoT4 = some - (fun `T` (sort (typ «elpi.tests.test_HOAS.49»)) c0 \ - fun `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.49», c0]) c1 \ - match c1 - (fun `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.49», c0]) - c2 \ c0) [fun `t` c0 c2 \ c2]) - BoT5 = some - (fun `T` (sort (typ «elpi.tests.test_HOAS.50»)) c0 \ - fun `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.50», c0]) c1 \ - match c1 - (fun `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.50», c0]) - c2 \ c0) [fun `t` c0 c2 \ c2]) - BoT6 = some - (fun `T` (sort (typ «elpi.tests.test_HOAS.64»)) c0 \ - fun `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.64», c0]) c1 \ - match c1 - (fun `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.64», c0]) - c2 \ c0) [fun `t` c0 c2 \ c2]) - BoT7 = some - (fun `T` (sort (typ «elpi.tests.test_HOAS.66»)) c0 \ - fun `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.66», c0]) c1 \ - match c1 - (fun `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.66», c0]) - c2 \ c0) [fun `t` c0 c2 \ c2]) - C1 = «elpi.tests.test_HOAS.54» - C2 = «elpi.tests.test_HOAS.55» - C3 = «elpi.tests.test_HOAS.58» - C4 = «elpi.tests.test_HOAS.59» - C5 = «elpi.tests.test_HOAS.62» - C6 = «elpi.tests.test_HOAS.63» - D1 = «elpi.tests.test_HOAS.49» - D2 = «elpi.tests.test_HOAS.50» - D3 = «elpi.tests.test_HOAS.51» - D4 = X0 - E5 = «elpi.tests.test_HOAS.66» - E6 = «elpi.tests.test_HOAS.67» - GRB = indc «Build_F» - GRF = indt «F» - GRn = const «n» - GRt = const «t» - I = «elpi.tests.test_HOAS.30» - I2 = «elpi.tests.test_HOAS.41» - I3 = «elpi.tests.test_HOAS.45» - I4 = «» - Ind = «F» - K = [«Build_F»] - KTys = [prod `T` (sort (typ «elpi.tests.test_HOAS.30»)) c0 \ - prod `t` c0 c1 \ app [pglobal (indt «F») «elpi.tests.test_HOAS.30», c0]] - KTys1 = [prod `T` (sort (typ «elpi.tests.test_HOAS.31»)) c0 \ - prod `t` c0 c1 \ app [pglobal (indt «F») «elpi.tests.test_HOAS.31», c0]] - KTys3 = [prod `T` (sort (typ «elpi.tests.test_HOAS.33»)) c0 \ - prod `t` c0 c1 \ app [pglobal (indt «F») «elpi.tests.test_HOAS.33», c0]] - KTys4 = [prod `T` (sort (typ «elpi.tests.test_HOAS.36»)) c0 \ - prod `t` c0 c1 \ app [pglobal (indt «F») «elpi.tests.test_HOAS.36», c0]] - KTys6 = [prod `T` (sort (typ «elpi.tests.test_HOAS.38»)) c0 \ - prod `t` c0 c1 \ app [pglobal (indt «F») «elpi.tests.test_HOAS.38», c0]] - N = «n» - T = «t» - TyB = prod `T` (sort (typ «elpi.tests.test_HOAS.41»)) c0 \ - prod `t` c0 c1 \ app [pglobal (indt «F») «elpi.tests.test_HOAS.41», c0] - TyB2 = prod `T` (sort (typ «elpi.tests.test_HOAS.56»)) c0 \ - prod `t` c0 c1 \ app [pglobal (indt «F») «elpi.tests.test_HOAS.56», c0] - TyB3 = prod `T` (sort (typ «elpi.tests.test_HOAS.58»)) c0 \ - prod `t` c0 c1 \ app [pglobal (indt «F») «elpi.tests.test_HOAS.58», c0] - TyF = prod `T` (sort (typ «elpi.tests.test_HOAS.30»)) c0 \ - sort (typ «elpi.tests.test_HOAS.30») - TyF2 = prod `T` (sort (typ «elpi.tests.test_HOAS.52»)) c0 \ - sort (typ «elpi.tests.test_HOAS.52») - TyF3 = prod `T` (sort (typ «elpi.tests.test_HOAS.54»)) c0 \ - sort (typ «elpi.tests.test_HOAS.54») - TyN = global (indt «nat») - TyT = prod `T` (sort (typ «elpi.tests.test_HOAS.45»)) c0 \ - prod `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.45», c0]) c1 \ - c0 - TyT1 = prod `T` (sort (typ «elpi.tests.test_HOAS.46»)) c0 \ - prod `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.46», c0]) c1 \ - c0 - TyT3 = prod `T` (sort (typ «elpi.tests.test_HOAS.48»)) c0 \ - prod `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.48», c0]) c1 \ - c0 - TyT4 = prod `T` (sort (typ «elpi.tests.test_HOAS.49»)) c0 \ - prod `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.49», c0]) c1 \ - c0 - TyT5 = prod `T` (sort (typ «elpi.tests.test_HOAS.51»)) c0 \ - prod `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.51», c0]) c1 \ - c0 - TyT6 = prod `T` (sort (typ «elpi.tests.test_HOAS.60»)) c0 \ - prod `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.60», c0]) c1 \ - c0 - TyT7 = prod `T` (sort (typ «elpi.tests.test_HOAS.62»)) c0 \ - prod `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.62», c0]) c1 \ - c0 - Tyt = prod `T` (sort (typ «elpi.tests.test_HOAS.45»)) c0 \ - prod `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.45», c0]) c1 \ - c0 -Universe constraints: -UNIVERSES: - {elpi.tests.test_HOAS.67 elpi.tests.test_HOAS.66 elpi.tests.test_HOAS.65 - elpi.tests.test_HOAS.64 elpi.tests.test_HOAS.63 elpi.tests.test_HOAS.62 - elpi.tests.test_HOAS.61 elpi.tests.test_HOAS.60 elpi.tests.test_HOAS.59 - elpi.tests.test_HOAS.58 elpi.tests.test_HOAS.57 elpi.tests.test_HOAS.56 - elpi.tests.test_HOAS.55 elpi.tests.test_HOAS.54 elpi.tests.test_HOAS.53 - elpi.tests.test_HOAS.52 elpi.tests.test_HOAS.51 elpi.tests.test_HOAS.50 - elpi.tests.test_HOAS.49 elpi.tests.test_HOAS.48 elpi.tests.test_HOAS.47 - elpi.tests.test_HOAS.46 elpi.tests.test_HOAS.45 elpi.tests.test_HOAS.44 - elpi.tests.test_HOAS.43 elpi.tests.test_HOAS.42 elpi.tests.test_HOAS.41 - elpi.tests.test_HOAS.40 elpi.tests.test_HOAS.39 elpi.tests.test_HOAS.38 - elpi.tests.test_HOAS.37 elpi.tests.test_HOAS.36 elpi.tests.test_HOAS.35 - elpi.tests.test_HOAS.34 elpi.tests.test_HOAS.33 elpi.tests.test_HOAS.32 - elpi.tests.test_HOAS.31 elpi.tests.test_HOAS.30} |= - -ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.45 elpi.tests.test_HOAS.44 elpi.tests.test_HOAS.43 - elpi.tests.test_HOAS.42 elpi.tests.test_HOAS.41 elpi.tests.test_HOAS.40 - elpi.tests.test_HOAS.39 elpi.tests.test_HOAS.38 elpi.tests.test_HOAS.37 - elpi.tests.test_HOAS.36 elpi.tests.test_HOAS.35 elpi.tests.test_HOAS.34 - elpi.tests.test_HOAS.33 elpi.tests.test_HOAS.32 elpi.tests.test_HOAS.31 - elpi.tests.test_HOAS.30} -UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.45 - elpi.tests.test_HOAS.44 - elpi.tests.test_HOAS.43 - elpi.tests.test_HOAS.42 - elpi.tests.test_HOAS.41 - elpi.tests.test_HOAS.40 - elpi.tests.test_HOAS.39 - elpi.tests.test_HOAS.38 - elpi.tests.test_HOAS.37 - elpi.tests.test_HOAS.36 - elpi.tests.test_HOAS.35 - elpi.tests.test_HOAS.34 - elpi.tests.test_HOAS.33 - elpi.tests.test_HOAS.32 - elpi.tests.test_HOAS.31 - elpi.tests.test_HOAS.30 -SORTS: - -WEAK CONSTRAINTS: - - -Query assignments: - Y = app - [global (indc «is_S»), app [global (indc «S»), global (indc «O»)], - app [global (indc «is_S»), global (indc «O»), global (indc «is_O»)]] -is_pred = -fun (n : nat) (Pn : is_nat n) => -match - Pn in (is_nat n0) return (is_nat match n0 with - | 0 => n - | S u => u - end) -with -| is_O => Pn -| is_S _ Pu => Pu -end - : forall n : nat, is_nat n -> is_nat (Nat.pred n) - -Arguments is_pred n%nat_scope Pn -is_pred : is_nat2nat Nat.pred - : is_nat2nat Nat.pred -is_predn : is_nat2nat predn - : is_nat2nat predn -is_add : is_nat2nat2nat Nat.add - : is_nat2nat2nat Nat.add -Inductive is_bla : forall H : nat, is_nat H -> bla H -> Type := - is_Bla : forall H : nat, is_nat H -> is_bla 0 is_O (Bla H) - | is_Blu : forall (n : nat) (Pn : is_nat n) (H : bla n), - is_bla n Pn H -> is_bla 1 (is_S 0 is_O) (Blu n H). - -Arguments is_bla _%nat_scope P_ s1 -Arguments is_Bla _%nat_scope P_ -Arguments is_Blu n%nat_scope Pn _ P_ -Query assignments: - GR = const const EXN PRINTING: Not_found - T = «elpi.tests.test_API2.T» -Module Type FT = Funsig (P:T) Sig Parameter idT : P.T -> P.T. End -«elpi.tests.test_HOAS.68» -parameter T explicit (sort (typ «elpi.tests.test_HOAS.68»)) c0 \ - record F (sort (typ «elpi.tests.test_HOAS.68»)) Build_F - (field [coercion off, canonical tt] t c0 c1 \ end-record) -«elpi.tests.test_HOAS.68» -parameter T explicit (sort (typ «elpi.tests.test_HOAS.68»)) c0 \ - record F (sort (typ «elpi.tests.test_HOAS.68»)) Build_F - (field [coercion off, canonical tt] t c0 c1 \ end-record) -parameter T explicit (sort (typ «elpi.tests.test_HOAS.69»)) c0 \ - record F (sort (typ «elpi.tests.test_HOAS.69»)) Build_F - (field [coercion off, canonical tt] t c0 c1 \ end-record) -Query assignments: - Decl = parameter T explicit (sort (typ «elpi.tests.test_HOAS.68»)) c0 \ - record F (sort (typ «elpi.tests.test_HOAS.68»)) Build_F - (field [coercion off, canonical tt] t c0 c1 \ end-record) - Decl1 = parameter T explicit (sort (typ «elpi.tests.test_HOAS.68»)) c0 \ - record F (sort (typ «elpi.tests.test_HOAS.68»)) Build_F - (field [coercion off, canonical tt] t c0 c1 \ end-record) - Decl2 = parameter T explicit (sort (typ «elpi.tests.test_HOAS.69»)) c0 \ - record F (sort (typ «elpi.tests.test_HOAS.69»)) Build_F - (field [coercion off, canonical tt] t c0 c1 \ end-record) - GRF = indt «F» - I = «elpi.tests.test_HOAS.68» - Ind = «F» -Universe constraints: -UNIVERSES: - {elpi.tests.test_HOAS.69 elpi.tests.test_HOAS.68} |= -ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.69 elpi.tests.test_HOAS.68} -UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.69 - elpi.tests.test_HOAS.68 -SORTS: - -WEAK CONSTRAINTS: - - -«elpi.tests.test_API2.GT» -Query assignments: - F = «elpi.tests.test_API2.FT» - G = «elpi.tests.test_API2.GT» - X = «elpi.tests.test_API2.X» -Module Type GT = Sig Parameter idT : X.T -> X.T. End -«elpi.tests.test_HOAS.70» «elpi.tests.test_HOAS.71» -Universe constraints: UNIVERSES: - {elpi.tests.test_HOAS.71 elpi.tests.test_HOAS.70} |= - ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.71 elpi.tests.test_HOAS.70} - UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.71 - elpi.tests.test_HOAS.70 - SORTS: - - WEAK CONSTRAINTS: - - -Universe constraints: UNIVERSES: - {elpi.tests.test_HOAS.71 elpi.tests.test_HOAS.70} |= - elpi.tests.test_HOAS.70 = elpi.tests.test_HOAS.71 - ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.71 elpi.tests.test_HOAS.70} - UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.71 - elpi.tests.test_HOAS.70 := elpi.tests.test_HOAS.71 - SORTS: - - WEAK CONSTRAINTS: - - -Query assignments: - GRF = indt «F» - I1 = «elpi.tests.test_HOAS.70» - I2 = «elpi.tests.test_HOAS.71» -Universe constraints: -UNIVERSES: - {elpi.tests.test_HOAS.71 elpi.tests.test_HOAS.70} |= - elpi.tests.test_HOAS.70 = elpi.tests.test_HOAS.71 -ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.71 elpi.tests.test_HOAS.70} -UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.71 - elpi.tests.test_HOAS.70 := elpi.tests.test_HOAS.71 -SORTS: - -WEAK CONSTRAINTS: - - -Query assignments: - PDb = [tc-instance (const «reali_is_fin_length») 0, - tc-instance (const «reali_is_vec_length») 0, - tc-instance (const «reali_is_predn») 0, - tc-instance (const «reali_is_plus'») 0, - tc-instance (const «reali_is_nat_S») 0, - tc-instance (const «reali_is_nat_O») 0, - tc-instance (const «reali_is_prim_float») 0, - tc-instance (const «reali_is_prim_float_PF») 0, - tc-instance (const «reali_is_nest_ConsN») 0, - tc-instance (const «reali_is_w_via») 0, - tc-instance (const «reali_is_val_V») 0, - tc-instance (const «reali_is_peano») 0, - tc-instance (const «reali_is_large») 0, - tc-instance (const «reali_is_empty») 0, - tc-instance (const «reali_is_iota_Why») 0, - tc-instance (const «reali_is_nat2nat2nat») 0, - tc-instance (const «reali_is_unit_tt») 0, - tc-instance (const «reali_is_nest_NilN») 0, - tc-instance (const «reali_is_prim_int») 0, - tc-instance (const «reali_is_vect_VCons») 0, - tc-instance (const «reali_is_large_K26») 0, - tc-instance (const «reali_is_large_K25») 0, - tc-instance (const «reali_is_large_K24») 0, - tc-instance (const «reali_is_large_K23») 0, - tc-instance (const «reali_is_large_K22») 0, - tc-instance (const «reali_is_large_K21») 0, - tc-instance (const «reali_is_large_K20») 0, - tc-instance (const «reali_is_large_K19») 0, - tc-instance (const «reali_is_large_K18») 0, - tc-instance (const «reali_is_large_K17») 0, - tc-instance (const «reali_is_large_K16») 0, - tc-instance (const «reali_is_large_K15») 0, - tc-instance (const «reali_is_large_K14») 0, - tc-instance (const «reali_is_large_K13») 0, - tc-instance (const «reali_is_large_K12») 0, - tc-instance (const «reali_is_large_K11») 0, - tc-instance (const «reali_is_large_K10») 0, - tc-instance (const «reali_is_eq_eq_refl») 0, - tc-instance (const «Coverage.reali_is_unit_tt») 0, - tc-instance (const «reali_is_large_K9») 0, - tc-instance (const «reali_is_large_K8») 0, - tc-instance (const «reali_is_large_K7») 0, - tc-instance (const «reali_is_large_K6») 0, - tc-instance (const «reali_is_large_K5») 0, - tc-instance (const «reali_is_large_K4») 0, - tc-instance (const «reali_is_large_K3») 0, - tc-instance (const «reali_is_large_K2») 0, - tc-instance (const «reali_is_large_K1») 0, - tc-instance (const «reali_is_seq_Cons») 0, - tc-instance (const «reali_is_ord_mkOrd») 0, - tc-instance (const «reali_is_peano_Zero») 0, - tc-instance (const «reali_is_peano_Succ») 0, - tc-instance (const «reali_is_fo_record») 0, - tc-instance (const «reali_is_vec_vcons») 0, - tc-instance (const «reali_is_quasidn») 0, - tc-instance (const «reali_is_vect_VNil») 0, - tc-instance (const «reali_is_seq_Nil») 0, - tc-instance (const «reali_is_zeta_Envelope») 0, - tc-instance (const «reali_is_list_cons») 0, - tc-instance (const «exports.reali_is_eq») 0, - tc-instance (const «reali_is_beta_Redex») 0, - tc-instance (const «reali_is_unit») 0, - tc-instance (const «reali_is_test») 0, - tc-instance (const «reali_is_prod») 0, - tc-instance (const «reali_is_pred») 0, - tc-instance (const «reali_is_list») 0, - tc-instance (const «reali_is_bool») 0, - tc-instance (const «reali_is_sigma_bool_Build_sigma_bool») 0, - tc-instance (const «reali_is_option_Some») 0, - tc-instance (const «reali_is_option_None») 0, - tc-instance (const «reali_is_box_peano») 0, - tc-instance (const «reali_is_nat2nat») 0, - tc-instance (const «reali_is_sigma_bool») 0, - tc-instance (const «reali_is_zeta») 0, - tc-instance (const «reali_is_vect») 0, - tc-instance (const «Coverage.reali_is_unit») 0, - tc-instance (const «reali_is_rose») 0, - tc-instance (const «reali_is_pair») 0, - tc-instance (const «reali_is_ord2») 0, - tc-instance (const «reali_is_nest») 0, - tc-instance (const «reali_is_iota») 0, - tc-instance (const «reali_is_enum») 0, - tc-instance (const «Coverage.reali_is_bool») 0, - tc-instance (const «reali_is_beta») 0, - tc-instance (const «reali_is_vec_length_type») 0, - tc-instance (const «reali_is_vec_length_rec») 0, - tc-instance (const «reali_is_pr_record») 0, - tc-instance (const «reali_is_rose_Node») 0, - tc-instance (const «reali_is_rose_Leaf») 0, - tc-instance (const «reali_is_rose_p_Nodep») 0, - tc-instance (const «reali_is_rose_p_Leafp») 0, - tc-instance (const «reali_is_eq») 0, - tc-instance (const «reali_is_is_list») 0, - tc-instance (const «reali_is_w») 0, - tc-instance (const «reali_is_vec_vnil») 0, - tc-instance (const «reali_is_dep_record_Build_dep_record») 0, - tc-instance (const «reali_is_pr_record_Build_pr_record») 0, - tc-instance (const «reali_is_rose_o_Nodeo») 0, - tc-instance (const «reali_is_rose_o_Leafo») 0, - tc-instance (const «reali_is_weirdn») 0, - tc-instance (const «reali_is_pair_Comma») 0, - tc-instance (const «reali_is_dep_record») 0, - tc-instance (const «reali_is_is_zero») 0, - tc-instance (const «reali_is_pa_record») 0, - tc-instance (const «reali_is_fin_FS») 0, - tc-instance (const «reali_is_fin_FO») 0, - tc-instance (const «reali_is_bool_true») 0, - tc-instance (const «reali_is_divmod») 0, - tc-instance (const «reali_is_prim_int_PI») 0, - tc-instance (const «reali_is_list_nil») 0, - tc-instance (const «reali_is_vec») 0, - tc-instance (const «reali_is_snd») 0, - tc-instance (const «reali_is_nat») 0, - tc-instance (const «reali_is_fst») 0, - tc-instance (const «reali_is_fin») 0, - tc-instance (const «reali_is_div») 0, - tc-instance (const «reali_is_bla») 0, - tc-instance (const «reali_is_add») 0, - tc-instance (const «reali_is_rose_p») 0, - tc-instance (const «reali_is_rose_o») 0, - tc-instance (const «reali_is_is_list_is_nil») 0, - tc-instance (const «reali_is_option») 0, - tc-instance (const «reali_is_is_leq») 0, - tc-instance (const «reali_is_bool_false») 0, - tc-instance (const «reali_is_prod_pair») 0, - tc-instance (const «Coverage.reali_is_bool_true») 0, - tc-instance (const «reali_is_val») 0, - tc-instance (const «reali_is_seq») 0, - tc-instance (const «reali_is_ord») 0, - tc-instance (const «reali_is_dyn») 0, - tc-instance (const «reali_is_is_list_is_cons») 0, - tc-instance (const «reali_is_fo_record_Build_fo_record») 0, - tc-instance (const «Coverage.reali_is_bool_false») 0, - tc-instance (const «reali_is_enum_E3») 0, - tc-instance (const «reali_is_enum_E2») 0, - tc-instance (const «reali_is_enum_E1») 0, - tc-instance (const «reali_is_dyn_box») 0, - tc-instance (const «exports.reali_is_eq_eq_refl») 0, - tc-instance (const «reali_is_box_peano_Box») 0, - tc-instance (const «reali_is_ord2_mkOrd2») 0, - tc-instance (const «reali_is_bla_Blu») 0, - tc-instance (const «reali_is_bla_Bla») 0, - tc-instance (const «reali_is_pa_record_Build_pa_record») 0] - Spilled_1 = indt «reali_db» -File "./tests/test_param1.v", line 158, characters 0-30: -Warning: Not a truly recursive fixpoint. [non-recursive,fixpoints,default] -«elpi.tests.test_HOAS.72» «» -Universe constraints: UNIVERSES: - {elpi.tests.test_HOAS.72} |= - ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.72} - UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.72 - SORTS: - - WEAK CONSTRAINTS: - - -different universe instance lengths -Universe constraints: UNIVERSES: - {elpi.tests.test_HOAS.72} |= - ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.72} - UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.72 - SORTS: - - WEAK CONSTRAINTS: - - -Query assignments: - E = different universe instance lengths - GRF = indt «F» - GRfnat = const «fnat» - I1 = «elpi.tests.test_HOAS.72» - I2 = «» -Universe constraints: -UNIVERSES: - {elpi.tests.test_HOAS.72} |= -ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.72} -UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.72 -SORTS: - -WEAK CONSTRAINTS: - - -«elpi.tests.test_API2.HT» -Query assignments: - F = «elpi.tests.test_API2.FT» - H = «elpi.tests.test_API2.HT» - X = «elpi.tests.test_API2.X» -Module Type HT = Sig Parameter idT : nat -> nat. End -Query assignments: - GRF = indt «F» - I1 = «elpi.tests.test_HOAS.73» - I2 = «elpi.tests.test_HOAS.73» - U = «elpi.tests.test_HOAS.73» - UL1 = [«elpi.tests.test_HOAS.73»] -Universe constraints: -UNIVERSES: - {elpi.tests.test_HOAS.73} |= -ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.73} -UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.73 -SORTS: - -WEAK CONSTRAINTS: - - -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} -UNDEFINED UNIVERSES: - elpi.tests.test_API2.9 - elpi.tests.test_API2.8 -SORTS: - -WEAK CONSTRAINTS: - - -File "./tests/test_API2.v", line 361, characters 3-201: -Warning: constant test has no declared type. [elpi.typecheck,elpi,default] -Cannot enforce elpi.tests.test_HOAS.74 = elpi.tests.test_HOAS.75 because -elpi.tests.test_HOAS.74 < elpi.tests.test_HOAS.75 -Query assignments: - E = Cannot enforce elpi.tests.test_HOAS.74 = elpi.tests.test_HOAS.75 because -elpi.tests.test_HOAS.74 < elpi.tests.test_HOAS.75 - GRF = indt «F» - I1 = «elpi.tests.test_HOAS.74» - I2 = «elpi.tests.test_HOAS.75» - L1 = «elpi.tests.test_HOAS.74» - L2 = «elpi.tests.test_HOAS.75» - U1 = «elpi.tests.test_HOAS.74» - U2 = «elpi.tests.test_HOAS.75» -Universe constraints: -UNIVERSES: - {elpi.tests.test_HOAS.75 elpi.tests.test_HOAS.74} |= - elpi.tests.test_HOAS.74 < elpi.tests.test_HOAS.75 -ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.75 elpi.tests.test_HOAS.74} -UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.75 - elpi.tests.test_HOAS.74 -SORTS: - -WEAK CONSTRAINTS: - - -File "./tests/test_param1.v", line 176, characters 0-66: -Warning: Not a truly recursive fixpoint. [non-recursive,fixpoints,default] -COQC tests/test_map.v -Query assignments: - _uvk_20_ = X0 - _uvk_21_ = X0 - _uvk_22_ = X1 - _uvk_23_ = X2 - _uvk_24_ = c0 \ -X3 c0 - _uvk_25_ = X4 - _uvk_26_ = c0 \ -X5 c0 - _uvk_27_ = X4 - _uvk_28_ = c0 \ -X5 c0 - _uvk_29_ = X6 - _uvk_30_ = c0 \ -X7 c0 - _uvk_31_ = c0 \ c1 \ -X8 c0 c1 - _uvk_32_ = X9 - _uvk_33_ = c0 \ -X10 c0 - _uvk_34_ = c0 \ c1 \ -X11 c0 c1 - _uvk_35_ = X12 - _uvk_36_ = c0 \ -X13 c0 - _uvk_37_ = c0 \ c1 \ -X14 c0 c1 - _uvk_38_ = X12 -Syntactic constraints: - evar X12 (sort (typ «elpi.tests.test_API2.25»)) X12 /* suspended on X12 */ - evar X12 (sort (typ «elpi.tests.test_API2.28»)) X12 /* suspended on X12 */ - {c0 c1} : decl c1 `x` (X13 c0), decl c0 `z` X12 - ?- evar (X14 c0 c1) (sort (typ «elpi.tests.test_API2.27»)) (X14 c0 c1) /* suspended on X14 */ - {c0} : decl c0 `z` X12 - ?- evar (X13 c0) (sort (typ «elpi.tests.test_API2.26»)) (X13 c0) /* suspended on X13 */ - {c0 c1} : decl c1 `x` (X10 c0), decl c0 `z` X9 - ?- evar (X11 c0 c1) (sort (typ «elpi.tests.test_API2.24»)) (X11 c0 c1) /* suspended on X11 */ - {c0} : decl c0 `z` X9 - ?- evar (X10 c0) (sort (typ «elpi.tests.test_API2.23»)) (X10 c0) /* suspended on X10 */ - evar (X9) (sort (typ «elpi.tests.test_API2.22»)) (X9) /* suspended on X9 */ - {c0 c1} : decl c1 `x` (X7 c0), decl c0 `z` X6 - ?- evar (X8 c0 c1) (sort (typ «elpi.tests.test_API2.21»)) (X8 c0 c1) /* suspended on X8 */ - {c0} : decl c0 `z` X6 - ?- evar (X7 c0) (sort (typ «elpi.tests.test_API2.20»)) (X7 c0) /* suspended on X7 */ - evar (X6) (sort (typ «elpi.tests.test_API2.19»)) (X6) /* suspended on X6 */ - evar X4 (sort (typ «elpi.tests.test_API2.15»)) X4 /* suspended on X4 */ - evar X4 (sort (typ «elpi.tests.test_API2.17»)) X4 /* suspended on X4 */ - {c0} : decl c0 `x` X4 - ?- evar (X5 c0) (sort (typ «elpi.tests.test_API2.16»)) (X5 c0) /* suspended on X5 */ - {c0} : decl c0 `x` X4 - ?- evar (X5 c0) (sort (typ «elpi.tests.test_API2.18»)) (X5 c0) /* suspended on X5 */ - {c0} : decl c0 `x` X2 - ?- evar (X3 c0) (sort (typ «elpi.tests.test_API2.14»)) (X3 c0) /* suspended on X3 */ - evar (X2) (sort (typ «elpi.tests.test_API2.13»)) (X2) /* suspended on X2 */ - evar (X1) (sort (typ «elpi.tests.test_API2.12»)) (X1) /* suspended on X1 */ - evar X0 (sort (typ «elpi.tests.test_API2.10»)) X0 /* suspended on X0 */ - evar X0 (sort (typ «elpi.tests.test_API2.11»)) X0 /* suspended on X0 */ -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: - {} -UNDEFINED UNIVERSES: - -SORTS: - α6 - α7 - α8 - α9 - α10 - α11 - α12 - α13 - α14 - α15 - α16 - α17 - α18 - α19 - α20 - α21 - α22 - α23 - α24 -WEAK CONSTRAINTS: - - -COQC tests/test_arg_HOAS.v -Universe constraints: UNIVERSES: - {elpi.tests.test_HOAS.79 elpi.tests.test_HOAS.78} |= - elpi.tests.test_HOAS.78 < elpi.tests.test_HOAS.79 - ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.79 elpi.tests.test_HOAS.78} - UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.79 - elpi.tests.test_HOAS.78 - SORTS: - - WEAK CONSTRAINTS: - - -Query assignments: - GRF = indt «F2» - I1 = «elpi.tests.test_HOAS.78» - I2 = «elpi.tests.test_HOAS.79» - L1 = «elpi.tests.test_HOAS.78» - L2 = «elpi.tests.test_HOAS.79» - U1 = «elpi.tests.test_HOAS.78» - U2 = «elpi.tests.test_HOAS.79» -Universe constraints: -UNIVERSES: - {elpi.tests.test_HOAS.79 elpi.tests.test_HOAS.78} |= - elpi.tests.test_HOAS.78 < elpi.tests.test_HOAS.79 - elpi.tests.test_HOAS.78 <= elpi.tests.test_HOAS.79 -ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.79 elpi.tests.test_HOAS.78} -UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.79 - elpi.tests.test_HOAS.78 -SORTS: - -WEAK CONSTRAINTS: - - -Universe constraints: UNIVERSES: - {elpi.tests.test_HOAS.81 elpi.tests.test_HOAS.80} |= - elpi.tests.test_HOAS.80 < elpi.tests.test_HOAS.81 - ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.81} - UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.81 - elpi.tests.test_HOAS.80 - SORTS: - - WEAK CONSTRAINTS: - - -Cannot enforce elpi.tests.test_HOAS.81 = elpi.tests.test_HOAS.80 because -elpi.tests.test_HOAS.80 < elpi.tests.test_HOAS.81 -Query assignments: - E = Cannot enforce elpi.tests.test_HOAS.81 = elpi.tests.test_HOAS.80 because -elpi.tests.test_HOAS.80 < elpi.tests.test_HOAS.81 - GRF = indt «F» - I1 = «elpi.tests.test_HOAS.80» - I2 = «elpi.tests.test_HOAS.81» - L1 = «elpi.tests.test_HOAS.80» - L2 = «elpi.tests.test_HOAS.81» - U1 = «elpi.tests.test_HOAS.80» - U2 = «elpi.tests.test_HOAS.81» -Universe constraints: -UNIVERSES: - {elpi.tests.test_HOAS.81 elpi.tests.test_HOAS.80} |= - elpi.tests.test_HOAS.80 < elpi.tests.test_HOAS.81 -ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.81} -UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.81 - elpi.tests.test_HOAS.80 -SORTS: - -WEAK CONSTRAINTS: - - -empty_map : map empty - : map empty -unit_map : map unit - : map unit -peano_map : map peano - : map peano -option_map : map1 option - : map1 option -pair_map -: -forall A B : Type, -(A -> B) -> forall C D : Type, (C -> D) -> pair A C -> pair B D - : forall A B : Type, - (A -> B) -> forall C D : Type, (C -> D) -> pair A C -> pair B D -seq_map : map1 seq - : map1 seq -rose_map : map1 rose - : map1 rose -vect_map -: -forall A B : Type, (A -> B) -> forall i : peano, vect A i -> vect B i - : forall A B : Type, (A -> B) -> forall i : peano, vect A i -> vect B i -dyn_map : map dyn - : map dyn -zeta_map : map1 zeta - : map1 zeta -iota_map : map iota - : map iota -large_map : map large - : map large -prim_int_map : map prim_int - : map prim_int -prim_float_map : map prim_float - : map prim_float -pa_record_map : map1 pa_record - : map1 pa_record -pr_record_map : map1 pr_record - : map1 pr_record -COQC tests/test_lens_laws.v -Query assignments: - GR = indt «nat» ----<<---- enter: coq.say raw: (parameter A1 maximal (sort (typ «elpi.tests.test_arg_HOAS.2»)) c0 \ @@ -6721,23 +5053,20 @@ ?B2 : [ |- Type] ?f : [ |- foo1 ?A2 (?B1 * ?B1) ?B2 3] Query assignments: - GR = indt «F» - I = «elpi.tests.test_HOAS.82» + U = «elpi.tests.test_HOAS.4» Universe constraints: UNIVERSES: - {elpi.tests.test_HOAS.82} |= + {elpi.tests.test_HOAS.4} |= ALGEBRAIC UNIVERSES: {} UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.82 + SORTS: WEAK CONSTRAINTS: Query assignments: - GR = indt «F» -Query assignments: D = parameter A explicit (sort (typ «t.u0»)) c0 \ inductive t tt (parameter y explicit (global (indt «nat»)) c1 \ @@ -7157,76 +5486,11 @@ prod `x` c0 c5 \ app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \ end-record)) «foo» -_f1_view_set : view_set _f1 - : view_set _f1 -_f2_view_set : view_set _f2 - : view_set _f2 -_f3_view_set : forall A : Type, view_set _f3 - : forall A : Type, view_set _f3 -_f4_view_set : forall A : Type, view_set _f4 - : forall A : Type, view_set _f4 -_pf3_view_set : forall A : Type, view_set _pf3 - : forall A : Type, view_set _pf3 -_pf4_view_set : forall A : Type, view_set _pf4 - : forall A : Type, view_set _pf4 -_f1_set_set : set_set _f1 - : set_set _f1 -_f2_set_set : set_set _f2 - : set_set _f2 -_f3_set_set : forall A : Type, set_set _f3 - : forall A : Type, set_set _f3 -_f4_set_set : forall A : Type, set_set _f4 - : forall A : Type, set_set _f4 -_pf3_set_set : forall A : Type, set_set _pf3 - : forall A : Type, set_set _pf3 -_pf4_set_set : forall A : Type, set_set _pf4 - : forall A : Type, set_set _pf4 -_f1_set_view : set_view _f1 - : set_view _f1 -_f2_set_view : set_view _f2 - : set_view _f2 -_f3_set_view : forall A : Type, set_view _f3 - : forall A : Type, set_view _f3 -_f4_set_view : forall A : Type, set_view _f4 - : forall A : Type, set_view _f4 -_pf3_set_view : forall A : Type, set_view _pf3 - : forall A : Type, set_view _pf3 -_pf4_set_view : forall A : Type, set_view _pf4 - : forall A : Type, set_view _pf4 -_f1_f2_exchange : exchange _f1 _f2 - : exchange _f1 _f2 -_f2_f1_exchange : exchange _f2 _f1 - : exchange _f2 _f1 -_f3_f4_exchange : forall A : Type, exchange _f3 _f4 - : forall A : Type, exchange _f3 _f4 -_f4_f3_exchange : forall A : Type, exchange _f4 _f3 - : forall A : Type, exchange _f4 _f3 -_pf3_pf4_exchange : forall A : Type, exchange _pf3 _pf4 - : forall A : Type, exchange _pf3 _pf4 -_pf4_pf3_exchange : forall A : Type, exchange _pf4 _pf3 - : forall A : Type, exchange _pf4 _pf3 -COQC tests/test_fields.v -pglobal (indt «F») «elpi.tests.test_HOAS.84» -«elpi.tests.test_HOAS.84» -pglobal (indc «Build_F») «elpi.tests.test_HOAS.84» Query assignments: - GR = indt «F» - GR1 = indc «Build_F» - I = «elpi.tests.test_HOAS.84» - Spilled_1 = pglobal (indc «Build_F») «elpi.tests.test_HOAS.84» - Spilled_2 = pglobal (indt «F») «elpi.tests.test_HOAS.84» -Universe constraints: -UNIVERSES: - {elpi.tests.test_HOAS.84} |= -ALGEBRAIC UNIVERSES: - {} -UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.84 -SORTS: - -WEAK CONSTRAINTS: - - + U = «foo» +File "./tests/test_API2.v", line 126, characters 0-16: +Warning: Option Foo Bar is deprecated. elpi +[deprecated-option,deprecated,default] Query assignments: I = «foo» ----<<---- enter: @@ -7458,19 +5722,34 @@ prod `x` c0 c5 \ app [global (indt «eq»), c0, app [c2, c5, c5], c5]) c4 \ end-record)) «foo» -«elpi.tests.test_HOAS.85 elpi.tests.test_HOAS.85» Query assignments: - I = «elpi.tests.test_HOAS.85 elpi.tests.test_HOAS.85» - U = «elpi.tests.test_HOAS.85» + X = c0 \ c1 \ c2 \ +X0 c0 c1 c2 + _uvk_19_ = 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.85} |= + {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: {} UNDEFINED UNIVERSES: SORTS: - + α3 := Type + α4 WEAK CONSTRAINTS: @@ -7539,6 +5818,9 @@ (prod `P` (sort (typ «x1.u0»)) c0 \ prod `w` c0 c1 \ prod `n` (global (indt «nat»)) c2 \ global (indt «nat»)) X1 «x1» +File "./tests/test_API2.v", line 134, characters 0-14: +Warning: Option Foo Bar is deprecated. elpi +[deprecated-option,deprecated,default] x1 : forall P : Type, P -> nat -> nat : forall P : Type, P -> nat -> nat eq_refl : x1 = (fun (P : Type) (_ : P) (n : nat) => n + 1) @@ -7716,66 +5998,6 @@ coq.env.add-const x (fun `n` (global (indt «nat»)) c0 \ app [global (indc «S»), c0]) (prod `n` (global (indt «nat»)) c0 \ global (indt «nat»)) X1 «x» -Universe constraints: ------------------- -Universe constraints: UNIVERSES: - {elpi.tests.test_HOAS.87 elpi.tests.test_HOAS.86} |= - elpi.tests.test_HOAS.86 < elpi.tests.test_HOAS.87 - ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.87 elpi.tests.test_HOAS.86} - UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.87 - elpi.tests.test_HOAS.86 - SORTS: - - WEAK CONSTRAINTS: - - -Universe constraints: UNIVERSES: - {elpi.tests.test_HOAS.87 elpi.tests.test_HOAS.86} |= - elpi.tests.test_HOAS.86 < elpi.tests.test_HOAS.87 - ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.87 elpi.tests.test_HOAS.86} - UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.87 - elpi.tests.test_HOAS.86 - SORTS: - - WEAK CONSTRAINTS: - - -Query assignments: - Body = sort (typ «elpi.tests.test_HOAS.86») - LX = «elpi.tests.test_HOAS.86» - LY = «elpi.tests.test_HOAS.87» - Type = sort (typ «elpi.tests.test_HOAS.87») - UX = «elpi.tests.test_HOAS.86» - UY = «elpi.tests.test_HOAS.87» -Universe constraints: -UNIVERSES: - {elpi.tests.test_HOAS.87 elpi.tests.test_HOAS.86} |= - elpi.tests.test_HOAS.86 < elpi.tests.test_HOAS.87 -ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.87 elpi.tests.test_HOAS.86} -UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.87 - elpi.tests.test_HOAS.86 -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.88} - : Type@{elpi.tests.test_HOAS.88} -(* {elpi.tests.test_HOAS.88} |= Set < elpi.tests.test_HOAS.88 *) -Box not a defined object. parameter A1 maximal (sort (typ «foo1.u0»)) c0 \ parameter A2 explicit c0 c1 \ inductive foo1 tt @@ -7848,282 +6070,58 @@ ?B1 : [ |- Type] ?B2 : [ |- Type] ?f : [ |- foo1 ?A2 (?B1 * ?B1) ?B2 3] -sort (typ «Set») +derive.param1_trivial: wrong shape is_nest +. It does not look like a unary parametricity translation of an inductive with no indexes. +---------------------------------- + {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: + ?X11==[a |- ?elpi_evar] (internal placeholder) {?elpi_evar0} + ?X10==[ |- Type] (internal placeholder) {?elpi_evar} + ?X9==[a |- => ?elpi_evar0] (internal placeholder) + ?X8==[a |- => ?elpi_evar] (internal placeholder) + +SHELF: +FUTURE GOALS STACK:?X11 +?X10 + +Coq-Elpi mapping: +RAW: +?X10 <-> X0 +?X11 <-> X2 +ELAB: +?X10 <-> X1 +?X11 <-> X2 + +X2 c0 : X1 Query assignments: - U = «elpi.tests.test_HOAS.89» + 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.89} |= Set = elpi.tests.test_HOAS.89 + {elpi.tests.test_HOAS.10} |= ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.89} + {} UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.89 := Set -SORTS: +SORTS: + α5 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 |= u <= list.u0 *) - -Arguments tree A%type_scope -Arguments leaf A%type_scope _ -Arguments node A%type_scope _ _%list_scope -empty_fields_t : positive -> Type - : positive -> Type -empty_fields : forall n : empty, empty_fields_t (empty_tag n) - : forall n : empty, empty_fields_t (empty_tag n) -empty_construct -: -forall p : positive, empty_fields_t p -> Datatypes.option empty - : forall p : positive, empty_fields_t p -> Datatypes.option empty -empty_constructP -: -forall n : empty, -empty_construct (empty_tag n) (empty_fields n) = Datatypes.Some n - : forall n : empty, - empty_construct (empty_tag n) (empty_fields n) = Datatypes.Some n -unit_fields_t : positive -> Type - : positive -> Type -unit_fields : forall n : unit, unit_fields_t (unit_tag n) - : forall n : unit, unit_fields_t (unit_tag n) -unit_construct -: -forall p : positive, unit_fields_t p -> Datatypes.option unit - : forall p : positive, unit_fields_t p -> Datatypes.option unit -unit_constructP -: -forall n : unit, -unit_construct (unit_tag n) (unit_fields n) = Datatypes.Some n - : forall n : unit, - unit_construct (unit_tag n) (unit_fields n) = Datatypes.Some n -peano_fields_t : positive -> Type - : positive -> Type -peano_fields : forall n : peano, peano_fields_t (peano_tag n) - : forall n : peano, peano_fields_t (peano_tag n) -peano_construct -: -forall p : positive, peano_fields_t p -> Datatypes.option peano - : forall p : positive, peano_fields_t p -> Datatypes.option peano -peano_constructP -: -forall n : peano, -peano_construct (peano_tag n) (peano_fields n) = Datatypes.Some n - : forall n : peano, - peano_construct (peano_tag n) (peano_fields n) = Datatypes.Some n -option_fields_t : Type -> positive -> Type - : Type -> positive -> Type -option_fields -: -forall (A : Type) (l : option A), option_fields_t A (option_tag A l) - : forall (A : Type) (l : option A), option_fields_t A (option_tag A l) -option_construct -: -forall (A : Type) (p : positive), -option_fields_t A p -> Datatypes.option (option A) - : forall (A : Type) (p : positive), - option_fields_t A p -> Datatypes.option (option A) -option_constructP -: -forall (A : Type) (l : option A), -option_construct A (option_tag A l) (option_fields A l) = Datatypes.Some l - : forall (A : Type) (l : option A), - option_construct A (option_tag A l) (option_fields A l) = - Datatypes.Some l -pair_fields_t : Type -> Type -> positive -> Type - : Type -> Type -> positive -> Type -pair_fields -: -forall (A B : Type) (l : pair A B), pair_fields_t A B (pair_tag A B l) - : forall (A B : Type) (l : pair A B), pair_fields_t A B (pair_tag A B l) -pair_construct -: -forall (A B : Type) (p : positive), -pair_fields_t A B p -> Datatypes.option (pair A B) - : forall (A B : Type) (p : positive), - pair_fields_t A B p -> Datatypes.option (pair A B) -pair_constructP -: -forall (A B : Type) (l : pair A B), -pair_construct A B (pair_tag A B l) (pair_fields A B l) = Datatypes.Some l - : forall (A B : Type) (l : pair A B), - pair_construct A B (pair_tag A B l) (pair_fields A B l) = - Datatypes.Some l -seq_fields_t : Type -> positive -> Type - : Type -> positive -> Type -seq_fields : forall (A : Type) (l : seq A), seq_fields_t A (seq_tag A l) - : forall (A : Type) (l : seq A), seq_fields_t A (seq_tag A l) -seq_construct -: -forall (A : Type) (p : positive), -seq_fields_t A p -> Datatypes.option (seq A) - : forall (A : Type) (p : positive), - seq_fields_t A p -> Datatypes.option (seq A) -seq_constructP -: -forall (A : Type) (l : seq A), -seq_construct A (seq_tag A l) (seq_fields A l) = Datatypes.Some l - : forall (A : Type) (l : seq A), - seq_construct A (seq_tag A l) (seq_fields A l) = Datatypes.Some l -rose_fields_t : Type -> positive -> Type - : Type -> positive -> Type -rose_fields : forall (A : Type) (l : rose A), rose_fields_t A (rose_tag A l) - : forall (A : Type) (l : rose A), rose_fields_t A (rose_tag A l) -rose_construct -: -forall (A : Type) (p : positive), -rose_fields_t A p -> Datatypes.option (rose A) - : forall (A : Type) (p : positive), - rose_fields_t A p -> Datatypes.option (rose A) -rose_constructP -: -forall (A : Type) (l : rose A), -rose_construct A (rose_tag A l) (rose_fields A l) = Datatypes.Some l - : forall (A : Type) (l : rose A), - rose_construct A (rose_tag A l) (rose_fields A l) = Datatypes.Some l -beta_fields_t : Type -> positive -> Type - : Type -> positive -> Type -beta_fields : forall (A : Type) (l : beta A), beta_fields_t A (beta_tag A l) - : forall (A : Type) (l : beta A), beta_fields_t A (beta_tag A l) -beta_construct -: -forall (A : Type) (p : positive), -beta_fields_t A p -> Datatypes.option (beta A) - : forall (A : Type) (p : positive), - beta_fields_t A p -> Datatypes.option (beta A) -beta_constructP -: -forall (A : Type) (l : beta A), -beta_construct A (beta_tag A l) (beta_fields A l) = Datatypes.Some l - : forall (A : Type) (l : beta A), - beta_construct A (beta_tag A l) (beta_fields A l) = Datatypes.Some l -large_fields_t : positive -> Type - : positive -> Type -large_fields : forall n : large, large_fields_t (large_tag n) - : forall n : large, large_fields_t (large_tag n) -large_construct -: -forall p : positive, large_fields_t p -> Datatypes.option large - : forall p : positive, large_fields_t p -> Datatypes.option large -large_constructP -: -forall n : large, -large_construct (large_tag n) (large_fields n) = Datatypes.Some n - : forall n : large, - large_construct (large_tag n) (large_fields n) = Datatypes.Some n -prim_int_fields_t : positive -> Type - : positive -> Type -prim_int_fields : forall n : prim_int, prim_int_fields_t (prim_int_tag n) - : forall n : prim_int, prim_int_fields_t (prim_int_tag n) -prim_int_construct -: -forall p : positive, prim_int_fields_t p -> Datatypes.option prim_int - : forall p : positive, prim_int_fields_t p -> Datatypes.option prim_int -prim_int_constructP -: -forall n : prim_int, -prim_int_construct (prim_int_tag n) (prim_int_fields n) = Datatypes.Some n - : forall n : prim_int, - prim_int_construct (prim_int_tag n) (prim_int_fields n) = - Datatypes.Some n -pa_record_fields_t : Type -> positive -> Type - : Type -> positive -> Type -pa_record_fields -: -forall (A : Type) (l : pa_record A), pa_record_fields_t A (pa_record_tag A l) - : forall (A : Type) (l : pa_record A), - pa_record_fields_t A (pa_record_tag A l) -pa_record_construct -: -forall (A : Type) (p : positive), -pa_record_fields_t A p -> Datatypes.option (pa_record A) - : forall (A : Type) (p : positive), - pa_record_fields_t A p -> Datatypes.option (pa_record A) -pa_record_constructP -: -forall (A : Type) (l : pa_record A), -pa_record_construct A (pa_record_tag A l) (pa_record_fields A l) = -Datatypes.Some l - : forall (A : Type) (l : pa_record A), - pa_record_construct A (pa_record_tag A l) (pa_record_fields A l) = - Datatypes.Some l -pr_record_fields_t : Type -> positive -> Type - : Type -> positive -> Type -pr_record_fields -: -forall (A : Type) (l : pr_record A), pr_record_fields_t A (pr_record_tag A l) - : forall (A : Type) (l : pr_record A), - pr_record_fields_t A (pr_record_tag A l) -pr_record_construct -: -forall (A : Type) (p : positive), -pr_record_fields_t A p -> Datatypes.option (pr_record A) - : forall (A : Type) (p : positive), - pr_record_fields_t A p -> Datatypes.option (pr_record A) -pr_record_constructP -: -forall (A : Type) (l : pr_record A), -pr_record_construct A (pr_record_tag A l) (pr_record_fields A l) = -Datatypes.Some l - : forall (A : Type) (l : pr_record A), - pr_record_construct A (pr_record_tag A l) (pr_record_fields A l) = - Datatypes.Some l -sigma_bool_fields_t : positive -> Type - : positive -> Type -sigma_bool_fields -: -forall l : sigma_bool, sigma_bool_fields_t (sigma_bool_tag l) - : forall l : sigma_bool, sigma_bool_fields_t (sigma_bool_tag l) -sigma_bool_construct -: -forall p : positive, sigma_bool_fields_t p -> Datatypes.option sigma_bool - : forall p : positive, - sigma_bool_fields_t p -> Datatypes.option sigma_bool -sigma_bool_constructP -: -forall l : sigma_bool, -sigma_bool_construct (sigma_bool_tag l) (sigma_bool_fields l) = -Datatypes.Some l - : forall l : sigma_bool, - sigma_bool_construct (sigma_bool_tag l) (sigma_bool_fields l) = - Datatypes.Some l -ord_fields_t : peano -> positive -> Type - : peano -> positive -> Type -ord_fields : forall (p : peano) (o : ord p), ord_fields_t p (ord_tag p o) - : forall (p : peano) (o : ord p), ord_fields_t p (ord_tag p o) -ord_construct -: -forall (n : peano) (p : positive), -ord_fields_t n p -> Datatypes.option (ord n) - : forall (n : peano) (p : positive), - ord_fields_t n p -> Datatypes.option (ord n) -ord_constructP -: -forall (p : peano) (o : ord p), -ord_construct p (ord_tag p o) (ord_fields p o) = Datatypes.Some o - : forall (p : peano) (o : ord p), - ord_construct p (ord_tag p o) (ord_fields p o) = Datatypes.Some o -ord2_fields_t : peano -> positive -> Type - : peano -> positive -> Type -ord2_fields : forall (p : peano) (o : ord2 p), ord2_fields_t p (ord2_tag p o) - : forall (p : peano) (o : ord2 p), ord2_fields_t p (ord2_tag p o) -ord2_construct -: -forall (n : peano) (p : positive), -ord2_fields_t n p -> Datatypes.option (ord2 n) - : forall (n : peano) (p : positive), - ord2_fields_t n p -> Datatypes.option (ord2 n) -ord2_constructP -: -forall (p : peano) (o : ord2 p), -ord2_construct p (ord2_tag p o) (ord2_fields p o) = Datatypes.Some o - : forall (p : peano) (o : ord2 p), - ord2_construct p (ord2_tag p o) (ord2_fields p o) = Datatypes.Some o -val_fields_t : positive -> Type - : positive -> Type -val_fields : forall i : val, val_fields_t (val_tag i) - : forall i : val, val_fields_t (val_tag i) +Query assignments: + C1 = «Nat.add» + C2 = «times» + X1 = tt + X2 = ff +derive.param1_trivial: wrong shape is_vect A PA +. It does not look like a unary parametricity translation of an inductive with no indexes. Query assignments: I = «inductive_nup.r» R = parameter A explicit (sort (typ «r.u0»)) c0 \ @@ -8133,17 +6131,10 @@ field [coercion off, canonical tt] g c0 c3 \ field [coercion off, canonical tt] p (app [global (indt «eq»), c0, c1, c3]) c4 \ end-record) -val_construct : forall p : positive, val_fields_t p -> Datatypes.option val - : forall p : positive, val_fields_t p -> Datatypes.option val Record r (A : Type) (a : A) : Type := R { f : A -> A; g : A; p : a = g }. Arguments r A%type_scope a Arguments R A%type_scope a f%function_scope g p -val_constructP -: -forall v : val, val_construct (val_tag v) (val_fields v) = Datatypes.Some v - : forall v : val, - val_construct (val_tag v) (val_fields v) = Datatypes.Some v ----<<---- enter: coq.say raw: (inductive X1 tt (arity (sort prop)) c0 \ []) raw: inductive X1 tt (arity (sort prop)) c0 \ [] ---->>---- exit: coq.say raw: (inductive X1 tt (arity (sort prop)) c0 \ []) @@ -8168,72 +6159,29 @@ X1 is not universe polymorphic Expands to: Inductive elpi.tests.test_arg_HOAS.X1 -parameter A explicit (sort (typ «elpi.tests.test_HOAS.98»)) c0 \ - inductive tree tt (arity (sort (typ «elpi.tests.test_HOAS.99»))) c1 \ - [constructor leaf (arity (prod `_` c0 c2 \ c1)), - constructor node - (arity - (prod `_` c0 c2 \ prod `_` (app [global (indt «list»), c1]) c3 \ c1))] -Universe constraints: UNIVERSES: - {elpi.tests.test_HOAS.103 elpi.tests.test_HOAS.102 - elpi.tests.test_HOAS.101 elpi.tests.test_HOAS.100 - elpi.tests.test_HOAS.99 elpi.tests.test_HOAS.98} |= - elpi.tests.test_HOAS.98 < elpi.tests.test_HOAS.100 - elpi.tests.test_HOAS.99 < elpi.tests.test_HOAS.101 - Set <= elpi.tests.test_HOAS.99 - Set <= elpi.tests.test_HOAS.103 - elpi.tests.test_HOAS.98 <= list.u0 - elpi.tests.test_HOAS.98 <= elpi.tests.test_HOAS.99 - elpi.tests.test_HOAS.98 <= elpi.tests.test_HOAS.102 - elpi.tests.test_HOAS.98 <= elpi.tests.test_HOAS.103 - elpi.tests.test_HOAS.99 <= list.u0 - elpi.tests.test_HOAS.99 <= elpi.tests.test_HOAS.102 - elpi.tests.test_HOAS.99 <= elpi.tests.test_HOAS.103 - elpi.tests.test_HOAS.102 <= elpi.tests.test_HOAS.99 - elpi.tests.test_HOAS.103 <= elpi.tests.test_HOAS.99 - ALGEBRAIC UNIVERSES: - {elpi.tests.test_HOAS.98} - UNDEFINED UNIVERSES: - elpi.tests.test_HOAS.98 - SORTS: - - WEAK CONSTRAINTS: - - +File "./tests/test_HOAS.v", line 123, characters 0-34: +Warning: Use of “Require” inside a module is fragile. It is not recommended +to use this functionality in finished proof scripts. +[require-in-module,fragile,default] +Raw term: +app + [global (const «add»), primitive (uint63 2000000003333002), + primitive (uint63 1)] +Nice term: add 2000000003333002 1 +Red: +2000000003333003 +File "./tests/test_HOAS.v", line 127, characters 0-34: +Warning: Use of “Require” inside a module is fragile. It is not recommended +to use this functionality in finished proof scripts. +[require-in-module,fragile,default] +Raw term: +app + [global (const «add»), primitive (float64 24000000000000), + primitive (float64 1)] +Nice term: 24000000000000 + 1 +Red: 24000000000001 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» - _uvk_66_ = X0 -Universe constraints: -UNIVERSES: - {elpi.tests.test_HOAS.103 elpi.tests.test_HOAS.102 elpi.tests.test_HOAS.101 - elpi.tests.test_HOAS.100} |= - M.tree.u0 < elpi.tests.test_HOAS.100 - M.tree.u1 < elpi.tests.test_HOAS.101 - Set <= M.tree.u1 - Set <= elpi.tests.test_HOAS.103 - M.tree.u0 <= elpi.tests.test_HOAS.102 - M.tree.u0 <= elpi.tests.test_HOAS.103 - M.tree.u1 <= elpi.tests.test_HOAS.102 - M.tree.u1 <= elpi.tests.test_HOAS.103 - elpi.tests.test_HOAS.102 <= M.tree.u1 - elpi.tests.test_HOAS.103 <= M.tree.u1 -ALGEBRAIC UNIVERSES: - {M.tree.u0} -UNDEFINED UNIVERSES: - M.tree.u0 -SORTS: - -WEAK CONSTRAINTS: - - -COQC tests/test_quotation.v -COQC tests/test_bcongr.v + C1 = «x» ----<<---- enter: coq.say raw: (inductive X3 tt (arity (sort (typ «elpi.tests.test_arg_HOAS.128»))) c0 \ @@ -8373,18 +6321,124 @@ X4 is universe polymorphic Expands to: Inductive elpi.tests.test_arg_HOAS.X4 Query assignments: - BO = fix `add` 0 - (prod `n` (global (indt «nat»)) c0 \ - prod `m` (global (indt «nat»)) c1 \ global (indt «nat»)) c0 \ - fun `n` (global (indt «nat»)) c1 \ - fun `m` (global (indt «nat»)) c2 \ - match c1 (fun `n` (global (indt «nat»)) c3 \ global (indt «nat»)) - [c2, - fun `p` (global (indt «nat»)) c3 \ - app [global (indc «S»), app [c0, c3, c2]]] - GR = «Nat.add» - TY = prod `n` (global (indt «nat»)) c0 \ - prod `m` (global (indt «nat»)) c1 \ global (indt «nat») + C = «Nat.add» + F = TODO + T = app + [fix `add` 0 + (prod `n` (global (indt «nat»)) c0 \ + prod `m` (global (indt «nat»)) c1 \ global (indt «nat»)) c0 \ + fun `n` (global (indt «nat»)) c1 \ + fun `m` (global (indt «nat»)) c2 \ + match c1 (fun `n` (global (indt «nat»)) c3 \ global (indt «nat»)) + [c2, + fun `p` (global (indt «nat»)) c3 \ + app [global (indc «S»), app [c0, c3, c2]]], + app [global (indc «S»), global (indc «O»)], + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] + T1 = app + [global (const «Nat.add»), + app [global (indc «S»), global (indc «O»)], + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] + T2 = app + [fix `plus` 0 + (prod `n` (global (indt «nat»)) c0 \ + prod `m` (global (indt «nat»)) c1 \ global (indt «nat»)) c0 \ + fun `n` (global (indt «nat»)) c1 \ + fun `m` (global (indt «nat»)) c2 \ + match c1 (fun `n` (global (indt «nat»)) c3 \ global (indt «nat»)) + [c2, + fun `p` (global (indt «nat»)) c3 \ + app [global (indc «S»), app [c0, c3, c2]]], + app [global (indc «S»), global (indc «O»)], + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] + _uvk_35_ = global (indt «nat») + _uvk_36_ = c0 \ +global (indt «nat») + _uvk_37_ = c0 \ c1 \ +global (indt «nat») + _uvk_38_ = c0 \ +global (indt «nat») + _uvk_39_ = c0 \ c1 \ +global (indt «nat») + _uvk_40_ = c0 \ c1 \ c2 \ +global (indt «nat») + _uvk_41_ = c0 \ c1 \ c2 \ +global (indt «nat») +Query assignments: + C1 = «x» + M = «elpi.tests.test_API2.xx» +Query assignments: + C = «Nat.add» + F = TODO + T = app + [fun `n` (global (indt «nat»)) c0 \ + fun `m` (global (indt «nat»)) c1 \ + match c0 (fun `n` (global (indt «nat»)) c2 \ global (indt «nat»)) + [c1, + fun `p` (global (indt «nat»)) c2 \ + app + [global (indc «S»), + app + [fix `add` 0 + (prod `n` (global (indt «nat»)) c3 \ + prod `m` (global (indt «nat»)) c4 \ global (indt «nat»)) + c3 \ + fun `n` (global (indt «nat»)) c4 \ + fun `m` (global (indt «nat»)) c5 \ + match c4 + (fun `n` (global (indt «nat»)) c6 \ global (indt «nat»)) + [c5, + fun `p` (global (indt «nat»)) c6 \ + app [global (indc «S»), app [c3, c6, c5]]], c2, c1]]], + app [global (indc «S»), global (indc «O»)], + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] + T1 = app + [global (const «Nat.add»), + app [global (indc «S»), global (indc «O»)], + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] + T2 = app + [fun `n` (global (indt «nat»)) c0 \ + fun `m` (global (indt «nat»)) c1 \ + match c0 (fun `n` (global (indt «nat»)) c2 \ global (indt «nat»)) + [c1, + fun `p` (global (indt «nat»)) c2 \ + app + [global (indc «S»), + app + [fix `plus` 0 + (prod `n` (global (indt «nat»)) c3 \ + prod `m` (global (indt «nat»)) c4 \ global (indt «nat»)) + c3 \ + fun `n` (global (indt «nat»)) c4 \ + fun `m` (global (indt «nat»)) c5 \ + match c4 + (fun `n` (global (indt «nat»)) c6 \ global (indt «nat»)) + [c5, + fun `p` (global (indt «nat»)) c6 \ + app [global (indc «S»), app [c3, c6, c5]]], c2, c1]]], + app [global (indc «S»), global (indc «O»)], + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] + _uvk_42_ = global (indt «nat») + _uvk_43_ = c0 \ +global (indt «nat») + _uvk_44_ = c0 \ c1 \ +global (indt «nat») + _uvk_45_ = c0 \ c1 \ +global (indt «nat») + _uvk_46_ = c0 \ c1 \ c2 \ +global (indt «nat») + _uvk_47_ = c0 \ c1 \ c2 \ +global (indt «nat») + _uvk_48_ = c0 \ c1 \ c2 \ +global (indt «nat») + _uvk_49_ = c0 \ c1 \ c2 \ c3 \ +global (indt «nat») + _uvk_50_ = c0 \ c1 \ c2 \ c3 \ +global (indt «nat») + _uvk_51_ = c0 \ c1 \ c2 \ c3 \ +global (indt «nat») + _uvk_52_ = c0 \ c1 \ c2 \ c3 \ +global (indt «nat») Query assignments: GR = indt «X3» Universe constraints: @@ -8399,53 +6453,71 @@ WEAK CONSTRAINTS: -fix X0 0 - (prod `n` (global (indt «nat»)) c0 \ - prod `m` (global (indt «nat»)) c1 \ global (indt «nat»)) c0 \ - fun `n` (global (indt «nat»)) c1 \ - fun `m` (global (indt «nat»)) c2 \ - match c1 (fun `n` (global (indt «nat»)) c3 \ X1 c2 c3) - [c2, fun `p` (X2 c1 c2) c3 \ app [c0, c3, c2]] -fix X0 0 - (prod `n` (global (indt «nat»)) c0 \ - prod `m` (global (indt «nat»)) c1 \ global (indt «nat»)) c0 \ - fun `n` (global (indt «nat»)) c1 \ - fun `m` (global (indt «nat»)) c2 \ - match c1 (fun `n` (global (indt «nat»)) c3 \ global (indt «nat»)) - [c2, fun `p` (X3 c1 c2) c3 \ app [c0, c3, c2]] Query assignments: - BO1 = fix X0 0 - (prod `n` (global (indt «nat»)) c0 \ - prod `m` (global (indt «nat»)) c1 \ global (indt «nat»)) c0 \ - fun `n` (global (indt «nat»)) c1 \ - fun `m` (global (indt «nat»)) c2 \ - match c1 (fun `n` (global (indt «nat»)) c3 \ global (indt «nat»)) - [c2, fun `p` (X3 c1 c2) c3 \ app [c0, c3, c2]] - GR = «Nat.add» - TY = prod `n` (global (indt «nat»)) c0 \ - prod `m` (global (indt «nat»)) c1 \ global (indt «nat») - _uvk_1_ = c0 \ c1 \ + C = «Nat.add» + F = TODO + T = match (app [global (indc «S»), global (indc «O»)]) + (fun `n` (global (indt «nat»)) c0 \ global (indt «nat»)) + [app [global (indc «S»), app [global (indc «S»), global (indc «O»)]], + fun `p` (global (indt «nat»)) c0 \ + app + [global (indc «S»), + app + [fix `add` 0 + (prod `n` (global (indt «nat»)) c1 \ + prod `m` (global (indt «nat»)) c2 \ global (indt «nat»)) c1 \ + fun `n` (global (indt «nat»)) c2 \ + fun `m` (global (indt «nat»)) c3 \ + match c2 + (fun `n` (global (indt «nat»)) c4 \ global (indt «nat»)) + [c3, + fun `p` (global (indt «nat»)) c4 \ + app [global (indc «S»), app [c1, c4, c3]]], c0, + app + [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]]] + T1 = app + [global (const «Nat.add»), + app [global (indc «S»), global (indc «O»)], + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] + T2 = match (app [global (indc «S»), global (indc «O»)]) + (fun `_` (global (indt «nat»)) c0 \ global (indt «nat»)) + [app [global (indc «S»), app [global (indc «S»), global (indc «O»)]], + fun `p` (global (indt «nat»)) c0 \ + app + [global (indc «S»), + app + [fix `plus` 0 + (prod `n` (global (indt «nat»)) c1 \ + prod `m` (global (indt «nat»)) c2 \ global (indt «nat»)) c1 \ + fun `n` (global (indt «nat»)) c2 \ + fun `m` (global (indt «nat»)) c3 \ + match c2 + (fun `n` (global (indt «nat»)) c4 \ global (indt «nat»)) + [c3, + fun `p` (global (indt «nat»)) c4 \ + app [global (indc «S»), app [c1, c4, c3]]], c0, + app + [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]]] + _uvk_53_ = c0 \ global (indt «nat») - _uvk_2_ = c0 \ c1 \ -X3 c0 c1 -Syntactic constraints: - {c0 c1} : - decl c1 `m` (global (indt «nat»)), decl c0 `n` (global (indt «nat»)) - ?- evar (X3 c0 c1) (sort (typ «elpi.tests.test_quotation.2»)) (X3 c0 c1) /* suspended on X3 */ -Universe constraints: -UNIVERSES: - {elpi.tests.test_quotation.3 elpi.tests.test_quotation.2 - elpi.tests.test_quotation.1} |= Set <= elpi.tests.test_quotation.3 -ALGEBRAIC UNIVERSES: - {} -UNDEFINED UNIVERSES: - elpi.tests.test_quotation.3 -SORTS: - α1 - α2 -WEAK CONSTRAINTS: - - + _uvk_54_ = global (indt «nat») + _uvk_55_ = c0 \ +global (indt «nat») + _uvk_56_ = c0 \ c1 \ +global (indt «nat») + _uvk_57_ = c0 \ c1 \ c2 \ +global (indt «nat») + _uvk_58_ = c0 \ c1 \ +global (indt «nat») + _uvk_59_ = c0 \ c1 \ c2 \ +global (indt «nat») + _uvk_60_ = c0 \ c1 \ c2 \ c3 \ +global (indt «nat») + _uvk_61_ = c0 \ c1 \ c2 \ c3 \ +global (indt «nat») +Query assignments: + C1 = «x» + M = «elpi.tests.test_API2.xx2» Query assignments: GR = indt «X4» Universe constraints: @@ -9335,194 +7407,348 @@ (prod `T` (sort (typ «uuu»)) c0 \ prod `T1` (sort (typ «elpi.tests.test_arg_HOAS.198»)) c1 \ prod `x` c0 c2 \ c0) X7 «f8''» -unit_bcongr_tt : reflect (tt = tt) true - : reflect (tt = tt) true -peano_bcongr_Zero : reflect (Zero = Zero) true - : reflect (Zero = Zero) true -peano_bcongr_Succ -: -forall (x y : peano) (b : bool), -reflect (x = y) b -> reflect (Succ x = Succ y) b - : forall (x y : peano) (b : bool), - reflect (x = y) b -> reflect (Succ x = Succ y) b -option_bcongr_None : forall A : Type, reflect (None A = None A) true - : forall A : Type, reflect (None A = None A) true -option_bcongr_Some -: -forall (A : Type) (x y : A) (b : bool), -reflect (x = y) b -> reflect (Some A x = Some A y) b - : forall (A : Type) (x y : A) (b : bool), - reflect (x = y) b -> reflect (Some A x = Some A y) b -pair_bcongr_Comma -: -forall (A B : Type) (x1 x2 : A) (b1 : bool), -reflect (x1 = x2) b1 -> -forall (y1 y2 : B) (b2 : bool), -reflect (y1 = y2) b2 -> -reflect (Comma A B x1 y1 = Comma A B x2 y2) (b1 && b2) - : forall (A B : Type) (x1 x2 : A) (b1 : bool), - reflect (x1 = x2) b1 -> - forall (y1 y2 : B) (b2 : bool), - reflect (y1 = y2) b2 -> - reflect (Comma A B x1 y1 = Comma A B x2 y2) (b1 && b2) -seq_bcongr_Nil : forall A : Type, reflect (Nil A = Nil A) true - : forall A : Type, reflect (Nil A = Nil A) true -seq_bcongr_Cons -: -forall (A : Type) (x y : A) (b1 : bool), -reflect (x = y) b1 -> -forall (xs ys : seq A) (b2 : bool), -reflect (xs = ys) b2 -> reflect (Cons A x xs = Cons A y ys) (b1 && b2) - : forall (A : Type) (x y : A) (b1 : bool), - reflect (x = y) b1 -> - forall (xs ys : seq A) (b2 : bool), - reflect (xs = ys) b2 -> reflect (Cons A x xs = Cons A y ys) (b1 && b2) -rose_bcongr_Leaf -: -forall (A : Type) (x y : A) (b : bool), -reflect (x = y) b -> reflect (Leaf A x = Leaf A y) b - : forall (A : Type) (x y : A) (b : bool), - reflect (x = y) b -> reflect (Leaf A x = Leaf A y) b -rose_bcongr_Node -: -forall (A : Type) (l1 l2 : seq (rose A)) (b : bool), -reflect (l1 = l2) b -> reflect (Node A l1 = Node A l2) b - : forall (A : Type) (l1 l2 : seq (rose A)) (b : bool), - reflect (l1 = l2) b -> reflect (Node A l1 = Node A l2) b -nest_bcongr_NilN : forall A : Type, reflect (NilN A = NilN A) true - : forall A : Type, reflect (NilN A = NilN A) true -nest_bcongr_ConsN -: -forall (A : Type) (x y : A) (b1 : bool), -reflect (x = y) b1 -> -forall (xs ys : nest (pair A A)) (b2 : bool), -reflect (xs = ys) b2 -> reflect (ConsN A x xs = ConsN A y ys) (b1 && b2) - : forall (A : Type) (x y : A) (b1 : bool), - reflect (x = y) b1 -> - forall (xs ys : nest (pair A A)) (b2 : bool), - reflect (xs = ys) b2 -> - reflect (ConsN A x xs = ConsN A y ys) (b1 && b2) -w_bcongr_via -: -forall (A : Type) (f g : A -> w A) (b : bool), -reflect (f = g) b -> reflect (via A f = via A g) b - : forall (A : Type) (f g : A -> w A) (b : bool), - reflect (f = g) b -> reflect (via A f = via A g) b -zeta_bcongr_Envelope -: -forall (A : Type) (x1 x2 : A) (b1 : bool), -reflect (x1 = x2) b1 -> -forall (y1 y2 : A) (b2 : bool), -reflect (y1 = y2) b2 -> -reflect (Envelope A x1 y1 = Envelope A x2 y2) (b1 && b2) - : forall (A : Type) (x1 x2 : A) (b1 : bool), - reflect (x1 = x2) b1 -> - forall (y1 y2 : A) (b2 : bool), - reflect (y1 = y2) b2 -> - reflect (Envelope A x1 y1 = Envelope A x2 y2) (b1 && b2) -beta_bcongr_Redex -: -forall (A : Type) (x y : A) (b : bool), -reflect (x = y) b -> reflect (Redex A x = Redex A y) b - : forall (A : Type) (x y : A) (b : bool), - reflect (x = y) b -> reflect (Redex A x = Redex A y) b -prim_int_bcongr_PI -: -forall (x y : PrimInt63.int) (b : bool), -reflect (x = y) b -> reflect (PI x = PI y) b - : forall (x y : PrimInt63.int) (b : bool), - reflect (x = y) b -> reflect (PI x = PI y) b -prim_float_bcongr_PF -: -forall (x y : PrimFloat.float) (b : bool), -reflect (x = y) b -> reflect (PF x = PF y) b - : forall (x y : PrimFloat.float) (b : bool), - reflect (x = y) b -> reflect (PF x = PF y) b -fo_record_bcongr_Build_fo_record -: -forall (x1 x2 : peano) (b1 : bool), -reflect (x1 = x2) b1 -> -forall (y1 y2 : unit) (b2 : bool), -reflect (y1 = y2) b2 -> -reflect ({| f1 := x1; f2 := y1 |} = {| f1 := x2; f2 := y2 |}) (b1 && b2) - : forall (x1 x2 : peano) (b1 : bool), - reflect (x1 = x2) b1 -> - forall (y1 y2 : unit) (b2 : bool), - reflect (y1 = y2) b2 -> - reflect ({| f1 := x1; f2 := y1 |} = {| f1 := x2; f2 := y2 |}) - (b1 && b2) -pa_record_bcongr_Build_pa_record -: -forall (A : Type) (x1 x2 : peano) (b1 : bool), -reflect (x1 = x2) b1 -> -forall (y1 y2 : A) (b2 : bool), -reflect (y1 = y2) b2 -> -reflect ({| f3 := x1; f4 := y1 |} = {| f3 := x2; f4 := y2 |}) (b1 && b2) - : forall (A : Type) (x1 x2 : peano) (b1 : bool), - reflect (x1 = x2) b1 -> - forall (y1 y2 : A) (b2 : bool), - reflect (y1 = y2) b2 -> - reflect ({| f3 := x1; f4 := y1 |} = {| f3 := x2; f4 := y2 |}) - (b1 && b2) -pr_record_bcongr_Build_pr_record -: -forall (A : Type) (x1 x2 : peano) (b1 : bool), -reflect (x1 = x2) b1 -> -forall (y1 y2 : A) (b2 : bool), -reflect (y1 = y2) b2 -> -reflect ({| pf3 := x1; pf4 := y1 |} = {| pf3 := x2; pf4 := y2 |}) (b1 && b2) - : forall (A : Type) (x1 x2 : peano) (b1 : bool), - reflect (x1 = x2) b1 -> - forall (y1 y2 : A) (b2 : bool), - reflect (y1 = y2) b2 -> - reflect ({| pf3 := x1; pf4 := y1 |} = {| pf3 := x2; pf4 := y2 |}) - (b1 && b2) -enum_bcongr_E1 : reflect (E1 = E1) true - : reflect (E1 = E1) true -enum_bcongr_E2 : reflect (E2 = E2) true - : reflect (E2 = E2) true -enum_bcongr_E3 : reflect (E3 = E3) true - : reflect (E3 = E3) true -fun `v` - (app - [global (indt «Vector.t»), global (indt «nat»), - app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]) - c0 \ - match c0 - (fun `_` (X0 c0) c1 \ - fun `v` (app [global (indt «Vector.t»), X1 c0 c1, X2 c0 c1]) c2 \ - X3 c1 c2) - [global (indc «O»), - fun `_` (X4 c0) c1 \ - fun `_` (X5 c0 c1) c2 \ - fun `_` (X6 c0 c1 c2) c3 \ - app [global (indc «S»), global (indc «O»)]] -fun `v` - (app - [global (indt «Vector.t»), global (indt «nat»), - app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]) - c0 \ - match c0 - (fun `_` (X7 c0) c1 \ - fun `v` - (app [global (indt «Vector.t»), global (indt «nat»), X8 c0 c1]) c2 \ - global (indt «nat»)) - [global (indc «O»), - fun `_` (X9 c0) c1 \ - fun `_` (X10 c0 c1) c2 \ - fun `_` (X11 c0 c1 c2) c3 \ - app [global (indc «S»), global (indc «O»)]] Query assignments: - T = fun `v` - (app - [global (indt «Vector.t»), global (indt «nat»), - app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]) - c0 \ - match c0 - (fun `_` (X7 c0) c1 \ - fun `v` - (app [global (indt «Vector.t»), global (indt «nat»), X8 c0 c1]) c2 \ - global (indt «nat»)) + 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: + C1 = «x» + M = «elpi.tests.test_API2.xx3» +const-decl D + (some + (fun `i` (global (indt «I»)) c0 \ + fun `l` (app [global (indt «L»), c0]) c1 \ global (indt «True»))) + (parameter i maximal (global (indt «I»)) c0 \ + parameter l maximal (app [global (indt «L»), c0]) c1 \ arity (sort prop)) +const-decl D + (some + (fun `i` (global (indt «I»)) c0 \ + fun `H` (app [global (indt «L»), c0]) c1 \ global (indt «True»))) + (parameter i maximal (global (indt «I»)) c0 \ + parameter H maximal (app [global (indt «L»), c0]) c1 \ arity (sort prop)) +const-decl D + (some + (fun `i` (global (indt «I»)) c0 \ + fun `H` (app [global (indt «L»), c0]) c1 \ + fun `n` (global (indt «nat»)) c2 \ global (indt «True»))) + (parameter i maximal (global (indt «I»)) c0 \ + parameter H maximal (app [global (indt «L»), c0]) c1 \ + parameter n explicit (global (indt «nat»)) c2 \ arity (sort prop)) +COQC tests/test_quotation.v +Debug: Cannot enforce elpi.apps.derive.tests.test_derive.3354 <= Set +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]) +Skipping derivation map on indt «nat» since it has been already run +Derivation lens on indt «nat» +Derivation lens on indt «nat» failed, continuing +Skipping derivation param1 on indt «nat» since it has been already run +Skipping derivation param2 on indt «nat» since it has been already run +Skipping derivation tag on indt «nat» since it has been already run +Skipping derivation eqType_ast on indt «nat» since it has been already run +Derivation projK on indt «nat» +Derivation projK on indt «nat» took 0.018491 +Derivation isK on indt «nat» +Derivation isK on indt «nat» took 0.035438 +Derivation eq on indt «nat» +Derivation eq on indt «nat» took 0.032229 +Derivation invert on indt «nat» +Query assignments: + BO = fix `add` 0 + (prod `n` (global (indt «nat»)) c0 \ + prod `m` (global (indt «nat»)) c1 \ global (indt «nat»)) c0 \ + fun `n` (global (indt «nat»)) c1 \ + fun `m` (global (indt «nat»)) c2 \ + match c1 (fun `n` (global (indt «nat»)) c3 \ global (indt «nat»)) + [c2, + fun `p` (global (indt «nat»)) c3 \ + app [global (indc «S»), app [c0, c3, c2]]] + GR = «Nat.add» + TY = prod `n` (global (indt «nat»)) c0 \ + prod `m` (global (indt «nat»)) c1 \ global (indt «nat») +Derivation invert on indt «nat» took 0.041846 +Skipping derivation lens_laws on indt «nat» since it has been already run +Skipping derivation param1_congr on indt «nat» +since it has been already run +Skipping derivation param1_inhab on indt «nat» +since it has been already run +Skipping derivation param1_functor on indt «nat» +since it has been already run +Skipping derivation fields on indt «nat» since it has been already run +Derivation bcongr on indt «nat» +Derivation bcongr on indt «nat» took 0.039934 +Derivation idx2inv on indt «nat» +Derivation idx2inv on indt «nat» failed, continuing +Skipping derivation param1_trivial on indt «nat» +since it has been already run +Skipping derivation induction on indt «nat» since it has been already run +Skipping derivation eqb on indt «nat» since it has been already run +Derivation eqK on indt «nat» +Derivation eqK on indt «nat» took 0.045630 +Skipping derivation eqbcorrect on indt «nat» since it has been already run +Derivation eqcorrect on indt «nat» +Derivation eqcorrect on indt «nat» took 0.016942 +Skipping derivation eqbOK on indt «nat» since it has been already run +Derivation eqOK on indt «nat» +Derivation eqOK on indt «nat» took 0.013408 +nat_eqb : nat -> nat -> bool + : nat -> nat -> bool +is_nat : nat -> Type + : nat -> Type +is_nat_inhab : (forall x : nat, is_nat x) + : forall x : nat, is_nat x +is_nat_functor : (forall x : nat, is_nat x -> is_nat x) + : forall x : nat, is_nat x -> is_nat x +nat_induction + : (forall P : nat -> Type, + P 0 -> + (forall n : nat, P n -> P (S n)) -> forall x : nat, is_nat x -> P x) + : forall P : nat -> Type, + P 0 -> + (forall n : nat, P n -> P (S n)) -> forall x : nat, is_nat x -> P x +nat_tag : nat -> BinNums.positive + : nat -> BinNums.positive +nat_fields_t : BinNums.positive -> Type + : BinNums.positive -> Type +nat_fields : (forall n : nat, nat_fields_t (nat_tag n)) + : forall n : nat, nat_fields_t (nat_tag n) +nat_construct : (forall p : BinNums.positive, nat_fields_t p -> option nat) + : forall p : BinNums.positive, nat_fields_t p -> option nat +nat_constructP + : (forall n : nat, nat_construct (nat_tag n) (nat_fields n) = Some n) + : forall n : nat, nat_construct (nat_tag n) (nat_fields n) = Some n +nat_eqb : nat -> nat -> bool + : nat -> nat -> bool +nat_eqb_correct + : forall x : nat, eqb_correct_on nat_eqb x +nat_eqb_refl + : forall x : nat, eqb_refl_on nat_eqb x +list_map : (forall A B : Type, (A -> B) -> list A -> list B) + : forall A B : Type, (A -> B) -> list A -> list B +is_nil : (forall (A : Type) (P : A -> Type), is_list A P nil) + : forall (A : Type) (P : A -> Type), is_list A P nil +is_cons + : (forall (A : Type) (P : A -> Type) (x : A), + P x -> forall tl : list A, is_list A P tl -> is_list A P (x :: tl)) + : forall (A : Type) (P : A -> Type) (x : A), + P x -> forall tl : list A, is_list A P tl -> is_list A P (x :: tl) +is_list_functor + : (forall (A : Type) (P Q : A -> Type), + (forall x : A, P x -> Q x) -> + forall l : list A, is_list A P l -> is_list A Q l) + : forall (A : Type) (P Q : A -> Type), + (forall x : A, P x -> Q x) -> + forall l : list A, is_list A P l -> is_list A Q l +list_induction + : (forall (A : Type) (PA : A -> Type) (P : list A -> Type), + P nil -> + (forall x : A, PA x -> forall xs : list A, P xs -> P (x :: xs)%list) -> + forall l : list A, is_list A PA l -> P l) + : forall (A : Type) (PA : A -> Type) (P : list A -> Type), + P nil -> + (forall x : A, PA x -> forall xs : list A, P xs -> P (x :: xs)%list) -> + forall l : list A, is_list A PA l -> P l +list_tag : (forall A : Type, list A -> BinNums.positive) + : forall A : Type, list A -> BinNums.positive +list_fields_t : Type -> BinNums.positive -> Type + : Type -> BinNums.positive -> Type +list_fields + : (forall (A : Type) (l : list A), list_fields_t A (list_tag A l)) + : forall (A : Type) (l : list A), list_fields_t A (list_tag A l) +list_construct + : (forall (A : Type) (p : BinNums.positive), + list_fields_t A p -> option (list A)) + : forall (A : Type) (p : BinNums.positive), + list_fields_t A p -> option (list A) +list_constructP + : (forall (A : Type) (l : list A), + list_construct A (list_tag A l) (list_fields A l) = Some l) + : forall (A : Type) (l : list A), + list_construct A (list_tag A l) (list_fields A l) = Some l +list_eqb : (forall A : Type, (A -> A -> bool) -> list A -> list A -> bool) + : forall A : Type, (A -> A -> bool) -> list A -> list A -> bool +list_eqb_correct + : forall (a : Type) (eqA : a -> a -> bool), + eqb_correct eqA -> + forall x : list a, eqb_correct_on (list_eqb a eqA) x +list_eqb_refl + : forall (a : Type) (eqA : a -> a -> bool), + eqb_reflexive eqA -> forall x : list a, eqb_refl_on (list_eqb a eqA) x +Query assignments: + _uvk_1_ = X0 + _uvk_2_ = X1 +Syntactic constraints: + evar (X1) (X2) (X1) /* suspended on X1 */ + evar X3 (sort (typ «elpi.tests.test_API2.6»)) (X2) /* suspended on X3, X2 */ + evar (X0) (X4) (X0) /* suspended on X0 */ + evar X5 (sort (typ «elpi.tests.test_API2.5»)) (X4) /* suspended on X5, X4 */ +Universe constraints: +UNIVERSES: + {elpi.tests.test_API2.6 elpi.tests.test_API2.5} |= +ALGEBRAIC UNIVERSES: + {} +UNDEFINED UNIVERSES: + +SORTS: + α4 + α5 +WEAK CONSTRAINTS: + + +Non-discriminated database +Unfoldable variable definitions: all +Unfoldable constant definitions: all +Cut: emp +For any goal -> +For xeq -> exact xxx(level 0, pattern 0 = _, id 0) + +fix X0 0 + (prod `n` (global (indt «nat»)) c0 \ + prod `m` (global (indt «nat»)) c1 \ global (indt «nat»)) c0 \ + fun `n` (global (indt «nat»)) c1 \ + fun `m` (global (indt «nat»)) c2 \ + match c1 (fun `n` (global (indt «nat»)) c3 \ X1 c2 c3) + [c2, fun `p` (X2 c1 c2) c3 \ app [c0, c3, c2]] +fix X0 0 + (prod `n` (global (indt «nat»)) c0 \ + prod `m` (global (indt «nat»)) c1 \ global (indt «nat»)) c0 \ + fun `n` (global (indt «nat»)) c1 \ + fun `m` (global (indt «nat»)) c2 \ + match c1 (fun `n` (global (indt «nat»)) c3 \ global (indt «nat»)) + [c2, fun `p` (X3 c1 c2) c3 \ app [c0, c3, c2]] +Query assignments: + BO1 = fix X0 0 + (prod `n` (global (indt «nat»)) c0 \ + prod `m` (global (indt «nat»)) c1 \ global (indt «nat»)) c0 \ + fun `n` (global (indt «nat»)) c1 \ + fun `m` (global (indt «nat»)) c2 \ + match c1 (fun `n` (global (indt «nat»)) c3 \ global (indt «nat»)) + [c2, fun `p` (X3 c1 c2) c3 \ app [c0, c3, c2]] + GR = «Nat.add» + TY = prod `n` (global (indt «nat»)) c0 \ + prod `m` (global (indt «nat»)) c1 \ global (indt «nat») + _uvk_1_ = c0 \ c1 \ +global (indt «nat») + _uvk_2_ = c0 \ c1 \ +X3 c0 c1 +Syntactic constraints: + {c0 c1} : + decl c1 `m` (global (indt «nat»)), decl c0 `n` (global (indt «nat»)) + ?- evar (X3 c0 c1) (sort (typ «elpi.tests.test_quotation.2»)) (X3 c0 c1) /* suspended on X3 */ +Universe constraints: +UNIVERSES: + {elpi.tests.test_quotation.3 elpi.tests.test_quotation.2 + elpi.tests.test_quotation.1} |= Set <= elpi.tests.test_quotation.3 +ALGEBRAIC UNIVERSES: + {} +UNDEFINED UNIVERSES: + elpi.tests.test_quotation.3 +SORTS: + α1 + α2 +WEAK CONSTRAINTS: + + +some + (pglobal (const «toto») + «elpi.tests.test_HOAS.19 elpi.tests.test_HOAS.20») +prod `T1` (sort (typ «elpi.tests.test_HOAS.19»)) c0 \ + prod `T2` (sort (typ «elpi.tests.test_HOAS.20»)) c1 \ prod `x` c0 c2 \ c0 +Query assignments: + Body = some + (pglobal (const «toto») + «elpi.tests.test_HOAS.19 elpi.tests.test_HOAS.20») + C = «titi» + Term = prod `T1` (sort (typ «elpi.tests.test_HOAS.19»)) c0 \ + prod `T2` (sort (typ «elpi.tests.test_HOAS.20»)) c1 \ prod `x` c0 c2 \ c0 +Universe constraints: +UNIVERSES: + {elpi.tests.test_HOAS.20 elpi.tests.test_HOAS.19} |= +ALGEBRAIC UNIVERSES: + {} +UNDEFINED UNIVERSES: + +SORTS: + +WEAK CONSTRAINTS: + + +Query assignments: + _uvk_19_ = «elpi.tests.test_API2.7» +Universe constraints: +UNIVERSES: + +ALGEBRAIC UNIVERSES: + {elpi.tests.test_API2.7} +UNDEFINED UNIVERSES: + elpi.tests.test_API2.7 +SORTS: + +WEAK CONSTRAINTS: + + +fun `v` + (app + [global (indt «Vector.t»), global (indt «nat»), + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]) + c0 \ + match c0 + (fun `_` (X0 c0) c1 \ + fun `v` (app [global (indt «Vector.t»), X1 c0 c1, X2 c0 c1]) c2 \ + X3 c1 c2) + [global (indc «O»), + fun `_` (X4 c0) c1 \ + fun `_` (X5 c0 c1) c2 \ + fun `_` (X6 c0 c1 c2) c3 \ + app [global (indc «S»), global (indc «O»)]] +fun `v` + (app + [global (indt «Vector.t»), global (indt «nat»), + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]) + c0 \ + match c0 + (fun `_` (X7 c0) c1 \ + fun `v` + (app [global (indt «Vector.t»), global (indt «nat»), X8 c0 c1]) c2 \ + global (indt «nat»)) + [global (indc «O»), + fun `_` (X9 c0) c1 \ + fun `_` (X10 c0 c1) c2 \ + fun `_` (X11 c0 c1 c2) c3 \ + app [global (indc «S»), global (indc «O»)]] +Query assignments: + T = fun `v` + (app + [global (indt «Vector.t»), global (indt «nat»), + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]]) + c0 \ + match c0 + (fun `_` (X7 c0) c1 \ + fun `v` + (app [global (indt «Vector.t»), global (indt «nat»), X8 c0 c1]) c2 \ + global (indt «nat»)) [global (indc «O»), fun `_` (X9 c0) c1 \ fun `_` (X10 c0 c1) c2 \ @@ -9623,98 +7849,246 @@ WEAK CONSTRAINTS: -COQC tests/test_param1_functor.v -const-decl D - (some - (fun `i` (global (indt «I»)) c0 \ - fun `l` (app [global (indt «L»), c0]) c1 \ global (indt «True»))) - (parameter i maximal (global (indt «I»)) c0 \ - parameter l maximal (app [global (indt «L»), c0]) c1 \ arity (sort prop)) -const-decl D - (some - (fun `i` (global (indt «I»)) c0 \ - fun `H` (app [global (indt «L»), c0]) c1 \ global (indt «True»))) - (parameter i maximal (global (indt «I»)) c0 \ - parameter H maximal (app [global (indt «L»), c0]) c1 \ arity (sort prop)) -const-decl D - (some - (fun `i` (global (indt «I»)) c0 \ - fun `H` (app [global (indt «L»), c0]) c1 \ - fun `n` (global (indt «nat»)) c2 \ global (indt «True»))) - (parameter i maximal (global (indt «I»)) c0 \ - parameter H maximal (app [global (indt «L»), c0]) c1 \ - parameter n explicit (global (indt «nat»)) c2 \ arity (sort prop)) -COQC tests/test_vernacular1.v -test2 -test1 -str hello -test1 -too many arguments -test1 -str hello my -str Dear -test1 -too many arguments +pglobal (const «toto») X0 +pglobal (const «toto») «u1 u2» +toto +Query assignments: + Spilled_1 = toto + _uvk_62_ = X0 + _uvk_63_ = «elpi.tests.test_HOAS.23 elpi.tests.test_HOAS.24» +Universe constraints: +UNIVERSES: + {elpi.tests.test_HOAS.24 elpi.tests.test_HOAS.23} |= +ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.24 elpi.tests.test_HOAS.23} +UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.24 + elpi.tests.test_HOAS.23 +SORTS: + +WEAK CONSTRAINTS: + + +Query assignments: + GR = const const EXN PRINTING: Not_found + T = «elpi.tests.test_API2.T» 3 Query assignments: X = 3 +app + [pglobal (const «t») X0, global (indt «nat»), + pglobal (const «fnat») X1] +app + [pglobal (const «t») «elpi.tests.test_HOAS.29», global (indt «nat»), + pglobal (const «fnat») «»] +Query assignments: + T = app + [pglobal (const «t») «elpi.tests.test_HOAS.29», global (indt «nat»), + pglobal (const «fnat») «»] + Ty = global (indt «nat») + _uvk_64_ = «elpi.tests.test_HOAS.29» + _uvk_65_ = «» +Universe constraints: +UNIVERSES: + {elpi.tests.test_HOAS.29} |= + Set <= elpi.tests.test_HOAS.29 + Set = elpi.tests.test_HOAS.29 +ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.29} +UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.29 := Set +SORTS: + +WEAK CONSTRAINTS: + + fun `x` X0 c0 \ app [X1, c0] Query assignments: X = X1 Y = fun `x` X0 c0 \ app [X1, c0] _uvk_34_ = X0 -is_empty_functor : func is_empty - : func is_empty -is_unit_functor : func is_unit - : func is_unit -is_peano_functor : func is_peano - : func is_peano -is_option_functor : func1 is_option - : func1 is_option -is_pair_functor : func2 is_pair - : func2 is_pair -is_seq_functor : func1 is_seq - : func1 is_seq -is_rose_functor : func1 is_rose - : func1 is_rose -is_vect_functor -: -forall (A : Type) (P Q : A -> Type), -(forall y : A, P y -> Q y) -> -forall (i : peano) (p : is_peano i) (v : vect A i), -is_vect A P i p v -> is_vect A Q i p v - : forall (A : Type) (P Q : A -> Type), - (forall y : A, P y -> Q y) -> - forall (i : peano) (p : is_peano i) (v : vect A i), - is_vect A P i p v -> is_vect A Q i p v -is_dyn_functor : func is_dyn - : func is_dyn -is_zeta_functor : func1 is_zeta - : func1 is_zeta -is_beta_functor : func1 is_beta - : func1 is_beta -is_iota_functor : func is_iota - : func is_iota -is_large_functor : func is_large - : func is_large -is_prim_int_functor : func is_prim_int - : func is_prim_int -is_prim_float_functor : func is_prim_float - : func is_prim_float -is_fo_record_functor : func is_fo_record - : func is_fo_record -is_pa_record_functor : func1 is_pa_record - : func1 is_pa_record -is_pr_record_functor : func1 is_pr_record - : func1 is_pr_record -is_enum_functor : func is_enum - : func is_enum -is_ord_functor : forall (n : peano) (pn : is_peano n), func (is_ord n pn) - : forall (n : peano) (pn : is_peano n), func (is_ord n pn) -is_ord2_functor : forall (n : peano) (pn : is_peano n), func (is_ord2 n pn) - : forall (n : peano) (pn : is_peano n), func (is_ord2 n pn) -is_val_functor : func is_val - : func is_val +Query assignments: + A4 = «elpi.tests.test_HOAS.36» + A5 = «elpi.tests.test_HOAS.37» + A6 = «elpi.tests.test_HOAS.38» + A7 = «elpi.tests.test_HOAS.39» + A8 = «elpi.tests.test_HOAS.40» + Arity = prod `T` (sort (typ «elpi.tests.test_HOAS.30»)) c0 \ + sort (typ «elpi.tests.test_HOAS.30») + Arity1 = prod `T` (sort (typ «elpi.tests.test_HOAS.31»)) c0 \ + sort (typ «elpi.tests.test_HOAS.31») + Arity2 = prod `T` (sort (typ «elpi.tests.test_HOAS.32»)) c0 \ + sort (typ «elpi.tests.test_HOAS.32») + Arity4 = prod `T` (sort (typ «elpi.tests.test_HOAS.36»)) c0 \ + sort (typ «elpi.tests.test_HOAS.36») + Arity5 = prod `T` (sort (typ «elpi.tests.test_HOAS.37»)) c0 \ + sort (typ «elpi.tests.test_HOAS.37») + B = «Build_F» + B1 = «elpi.tests.test_HOAS.43» + B2 = «elpi.tests.test_HOAS.44» + BTy2 = prod `T` (sort (typ «elpi.tests.test_HOAS.42»)) c0 \ + prod `t` c0 c1 \ app [pglobal (indt «F») «elpi.tests.test_HOAS.42», c0] + BTy3 = prod `T` (sort (typ «elpi.tests.test_HOAS.43»)) c0 \ + prod `t` c0 c1 \ app [pglobal (indt «F») «elpi.tests.test_HOAS.43», c0] + BoN = none + BoT = some + (fun `T` (sort (typ «elpi.tests.test_HOAS.45»)) c0 \ + fun `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.45», c0]) c1 \ + match c1 + (fun `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.45», c0]) + c2 \ c0) [fun `t` c0 c2 \ c2]) + BoT1 = some + (fun `T` (sort (typ «elpi.tests.test_HOAS.46»)) c0 \ + fun `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.46», c0]) c1 \ + match c1 + (fun `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.46», c0]) + c2 \ c0) [fun `t` c0 c2 \ c2]) + BoT2 = some + (fun `T` (sort (typ «elpi.tests.test_HOAS.47»)) c0 \ + fun `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.47», c0]) c1 \ + match c1 + (fun `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.47», c0]) + c2 \ c0) [fun `t` c0 c2 \ c2]) + BoT4 = some + (fun `T` (sort (typ «elpi.tests.test_HOAS.49»)) c0 \ + fun `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.49», c0]) c1 \ + match c1 + (fun `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.49», c0]) + c2 \ c0) [fun `t` c0 c2 \ c2]) + BoT5 = some + (fun `T` (sort (typ «elpi.tests.test_HOAS.50»)) c0 \ + fun `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.50», c0]) c1 \ + match c1 + (fun `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.50», c0]) + c2 \ c0) [fun `t` c0 c2 \ c2]) + BoT6 = some + (fun `T` (sort (typ «elpi.tests.test_HOAS.64»)) c0 \ + fun `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.64», c0]) c1 \ + match c1 + (fun `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.64», c0]) + c2 \ c0) [fun `t` c0 c2 \ c2]) + BoT7 = some + (fun `T` (sort (typ «elpi.tests.test_HOAS.66»)) c0 \ + fun `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.66», c0]) c1 \ + match c1 + (fun `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.66», c0]) + c2 \ c0) [fun `t` c0 c2 \ c2]) + C1 = «elpi.tests.test_HOAS.54» + C2 = «elpi.tests.test_HOAS.55» + C3 = «elpi.tests.test_HOAS.58» + C4 = «elpi.tests.test_HOAS.59» + C5 = «elpi.tests.test_HOAS.62» + C6 = «elpi.tests.test_HOAS.63» + D1 = «elpi.tests.test_HOAS.49» + D2 = «elpi.tests.test_HOAS.50» + D3 = «elpi.tests.test_HOAS.51» + D4 = X0 + E5 = «elpi.tests.test_HOAS.66» + E6 = «elpi.tests.test_HOAS.67» + GRB = indc «Build_F» + GRF = indt «F» + GRn = const «n» + GRt = const «t» + I = «elpi.tests.test_HOAS.30» + I2 = «elpi.tests.test_HOAS.41» + I3 = «elpi.tests.test_HOAS.45» + I4 = «» + Ind = «F» + K = [«Build_F»] + KTys = [prod `T` (sort (typ «elpi.tests.test_HOAS.30»)) c0 \ + prod `t` c0 c1 \ app [pglobal (indt «F») «elpi.tests.test_HOAS.30», c0]] + KTys1 = [prod `T` (sort (typ «elpi.tests.test_HOAS.31»)) c0 \ + prod `t` c0 c1 \ app [pglobal (indt «F») «elpi.tests.test_HOAS.31», c0]] + KTys3 = [prod `T` (sort (typ «elpi.tests.test_HOAS.33»)) c0 \ + prod `t` c0 c1 \ app [pglobal (indt «F») «elpi.tests.test_HOAS.33», c0]] + KTys4 = [prod `T` (sort (typ «elpi.tests.test_HOAS.36»)) c0 \ + prod `t` c0 c1 \ app [pglobal (indt «F») «elpi.tests.test_HOAS.36», c0]] + KTys6 = [prod `T` (sort (typ «elpi.tests.test_HOAS.38»)) c0 \ + prod `t` c0 c1 \ app [pglobal (indt «F») «elpi.tests.test_HOAS.38», c0]] + N = «n» + T = «t» + TyB = prod `T` (sort (typ «elpi.tests.test_HOAS.41»)) c0 \ + prod `t` c0 c1 \ app [pglobal (indt «F») «elpi.tests.test_HOAS.41», c0] + TyB2 = prod `T` (sort (typ «elpi.tests.test_HOAS.56»)) c0 \ + prod `t` c0 c1 \ app [pglobal (indt «F») «elpi.tests.test_HOAS.56», c0] + TyB3 = prod `T` (sort (typ «elpi.tests.test_HOAS.58»)) c0 \ + prod `t` c0 c1 \ app [pglobal (indt «F») «elpi.tests.test_HOAS.58», c0] + TyF = prod `T` (sort (typ «elpi.tests.test_HOAS.30»)) c0 \ + sort (typ «elpi.tests.test_HOAS.30») + TyF2 = prod `T` (sort (typ «elpi.tests.test_HOAS.52»)) c0 \ + sort (typ «elpi.tests.test_HOAS.52») + TyF3 = prod `T` (sort (typ «elpi.tests.test_HOAS.54»)) c0 \ + sort (typ «elpi.tests.test_HOAS.54») + TyN = global (indt «nat») + TyT = prod `T` (sort (typ «elpi.tests.test_HOAS.45»)) c0 \ + prod `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.45», c0]) c1 \ + c0 + TyT1 = prod `T` (sort (typ «elpi.tests.test_HOAS.46»)) c0 \ + prod `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.46», c0]) c1 \ + c0 + TyT3 = prod `T` (sort (typ «elpi.tests.test_HOAS.48»)) c0 \ + prod `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.48», c0]) c1 \ + c0 + TyT4 = prod `T` (sort (typ «elpi.tests.test_HOAS.49»)) c0 \ + prod `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.49», c0]) c1 \ + c0 + TyT5 = prod `T` (sort (typ «elpi.tests.test_HOAS.51»)) c0 \ + prod `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.51», c0]) c1 \ + c0 + TyT6 = prod `T` (sort (typ «elpi.tests.test_HOAS.60»)) c0 \ + prod `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.60», c0]) c1 \ + c0 + TyT7 = prod `T` (sort (typ «elpi.tests.test_HOAS.62»)) c0 \ + prod `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.62», c0]) c1 \ + c0 + Tyt = prod `T` (sort (typ «elpi.tests.test_HOAS.45»)) c0 \ + prod `f` (app [pglobal (indt «F») «elpi.tests.test_HOAS.45», c0]) c1 \ + c0 +Universe constraints: +UNIVERSES: + {elpi.tests.test_HOAS.67 elpi.tests.test_HOAS.66 elpi.tests.test_HOAS.65 + elpi.tests.test_HOAS.64 elpi.tests.test_HOAS.63 elpi.tests.test_HOAS.62 + elpi.tests.test_HOAS.61 elpi.tests.test_HOAS.60 elpi.tests.test_HOAS.59 + elpi.tests.test_HOAS.58 elpi.tests.test_HOAS.57 elpi.tests.test_HOAS.56 + elpi.tests.test_HOAS.55 elpi.tests.test_HOAS.54 elpi.tests.test_HOAS.53 + elpi.tests.test_HOAS.52 elpi.tests.test_HOAS.51 elpi.tests.test_HOAS.50 + elpi.tests.test_HOAS.49 elpi.tests.test_HOAS.48 elpi.tests.test_HOAS.47 + elpi.tests.test_HOAS.46 elpi.tests.test_HOAS.45 elpi.tests.test_HOAS.44 + elpi.tests.test_HOAS.43 elpi.tests.test_HOAS.42 elpi.tests.test_HOAS.41 + elpi.tests.test_HOAS.40 elpi.tests.test_HOAS.39 elpi.tests.test_HOAS.38 + elpi.tests.test_HOAS.37 elpi.tests.test_HOAS.36 elpi.tests.test_HOAS.35 + elpi.tests.test_HOAS.34 elpi.tests.test_HOAS.33 elpi.tests.test_HOAS.32 + elpi.tests.test_HOAS.31 elpi.tests.test_HOAS.30} |= + +ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.45 elpi.tests.test_HOAS.44 elpi.tests.test_HOAS.43 + elpi.tests.test_HOAS.42 elpi.tests.test_HOAS.41 elpi.tests.test_HOAS.40 + elpi.tests.test_HOAS.39 elpi.tests.test_HOAS.38 elpi.tests.test_HOAS.37 + elpi.tests.test_HOAS.36 elpi.tests.test_HOAS.35 elpi.tests.test_HOAS.34 + elpi.tests.test_HOAS.33 elpi.tests.test_HOAS.32 elpi.tests.test_HOAS.31 + elpi.tests.test_HOAS.30} +UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.45 + elpi.tests.test_HOAS.44 + elpi.tests.test_HOAS.43 + elpi.tests.test_HOAS.42 + elpi.tests.test_HOAS.41 + elpi.tests.test_HOAS.40 + elpi.tests.test_HOAS.39 + elpi.tests.test_HOAS.38 + elpi.tests.test_HOAS.37 + elpi.tests.test_HOAS.36 + elpi.tests.test_HOAS.35 + elpi.tests.test_HOAS.34 + elpi.tests.test_HOAS.33 + elpi.tests.test_HOAS.32 + elpi.tests.test_HOAS.31 + elpi.tests.test_HOAS.30 +SORTS: + +WEAK CONSTRAINTS: + + fun `r` (global (indt «nat»)) c0 \ fun `p` (prod `y` (global (indt «nat»)) c1 \ @@ -9742,32 +8116,16 @@ fun u : nat => {| val := oval u; Sub := Ord u; Sub_rect := inlined_sub_rect |} : forall u : nat, is_SUB nat (fun x : nat => leq x u) (ord u) -COQC tests/test_param1_congr.v -[attribute elpi.loc - (leaf-loc - File "./tests/test_vernacular1.v", line 48, column 5, character 947:), - attribute foo (leaf-str bar)] -[get-option elpi.loc - File "./tests/test_vernacular1.v", line 48, column 5, character 947:, - get-option foo bar] -[attribute elpi.loc - (leaf-loc - File "./tests/test_vernacular1.v", line 52, column 0, character 981:), - attribute foo (leaf-str bar), attribute poly (leaf-str )] -[get-option elpi.loc - File "./tests/test_vernacular1.v", line 52, column 0, character 981:, - get-option foo bar, get-option poly tt] -[attribute elpi.loc - (leaf-loc - File "./tests/test_vernacular1.v", line 53, column 0, character 1009:), - attribute foo (leaf-str bar), attribute poly (leaf-str ), - attribute suppa (node [attribute duppa (leaf-str )])] -[get-option elpi.loc - File "./tests/test_vernacular1.v", line 53, column 0, character 1009:, - get-option foo bar, get-option poly tt] +«elpi.tests.test_API2.G» +Query assignments: + F = «elpi.tests.test_API2.F» + G = «elpi.tests.test_API2.G» + X = «elpi.tests.test_API2.X» Query assignments: GR = indc «Ord» K = global (indc «Ord») +Module G : Sig Definition id : X.T -> X.T. End := (F X) + T = fun `u` X0 c0 \ app [global (indc «SubType»), X1 c0, X2 c0, X3 c0, @@ -9865,140 +8223,601 @@ WEAK CONSTRAINTS: -COQC tests/test_tactic.v -congr_is_tt : is_tt = is_tt - : is_tt = is_tt -congr_is_Zero : is_Zero = is_Zero - : is_Zero = is_Zero -congr_is_Succ -: -forall (x : peano) (p1 p2 : is_peano x), -p1 = p2 -> is_Succ x p1 = is_Succ x p2 - : forall (x : peano) (p1 p2 : is_peano x), - p1 = p2 -> is_Succ x p1 = is_Succ x p2 -congr_is_None -: -forall (A : Type) (PA : A -> Type), is_None A PA = is_None A PA - : forall (A : Type) (PA : A -> Type), is_None A PA = is_None A PA -congr_is_Some -: -forall (A : Type) (PA : A -> Type) (x : A) (p1 p2 : PA x), -p1 = p2 -> is_Some A PA x p1 = is_Some A PA x p2 - : forall (A : Type) (PA : A -> Type) (x : A) (p1 p2 : PA x), - p1 = p2 -> is_Some A PA x p1 = is_Some A PA x p2 -congr_is_Comma -: -forall (A : Type) (PA : A -> Type) (B : Type) (PB : B -> Type) - (x : A) (p1 p2 : PA x), -p1 = p2 -> -forall (y : B) (q1 q2 : PB y), -q1 = q2 -> is_Comma A PA B PB x p1 y q1 = is_Comma A PA B PB x p2 y q2 - : forall (A : Type) (PA : A -> Type) (B : Type) - (PB : B -> Type) (x : A) (p1 p2 : PA x), - p1 = p2 -> - forall (y : B) (q1 q2 : PB y), - q1 = q2 -> is_Comma A PA B PB x p1 y q1 = is_Comma A PA B PB x p2 y q2 -congr_is_Nil : forall (A : Type) (PA : A -> Type), is_Nil A PA = is_Nil A PA - : forall (A : Type) (PA : A -> Type), is_Nil A PA = is_Nil A PA -congr_is_Cons -: -forall (A : Type) (PA : A -> Type) (x : A) (p1 p2 : PA x), -p1 = p2 -> -forall (y : seq A) (q1 q2 : is_seq A PA y), -q1 = q2 -> is_Cons A PA x p1 y q1 = is_Cons A PA x p2 y q2 - : forall (A : Type) (PA : A -> Type) (x : A) (p1 p2 : PA x), - p1 = p2 -> - forall (y : seq A) (q1 q2 : is_seq A PA y), - q1 = q2 -> is_Cons A PA x p1 y q1 = is_Cons A PA x p2 y q2 -congr_is_Leaf -: -forall (A : Type) (PA : A -> Type) (x : A) (p1 p2 : PA x), -p1 = p2 -> is_Leaf A PA x p1 = is_Leaf A PA x p2 - : forall (A : Type) (PA : A -> Type) (x : A) (p1 p2 : PA x), - p1 = p2 -> is_Leaf A PA x p1 = is_Leaf A PA x p2 -congr_is_Node -: -forall (A : Type) (PA : A -> Type) (x : seq (rose A)) - (p1 p2 : is_seq (rose A) (is_rose A PA) x), -p1 = p2 -> is_Node A PA x p1 = is_Node A PA x p2 - : forall (A : Type) (PA : A -> Type) (x : seq (rose A)) - (p1 p2 : is_seq (rose A) (is_rose A PA) x), - p1 = p2 -> is_Node A PA x p1 = is_Node A PA x p2 -congr_is_via -: -forall (A : Type) (PA : A -> Type) (x : A -> w A) - (p1 p2 : forall H : A, PA H -> is_w A PA (x H)), -p1 = p2 -> is_via A PA x p1 = is_via A PA x p2 - : forall (A : Type) (PA : A -> Type) (x : A -> w A) - (p1 p2 : forall H : A, PA H -> is_w A PA (x H)), - p1 = p2 -> is_via A PA x p1 = is_via A PA x p2 -congr_is_VNil -: -forall (A : Type) (PA : A -> Type), is_VNil A PA = is_VNil A PA - : forall (A : Type) (PA : A -> Type), is_VNil A PA = is_VNil A PA +«elpi.tests.test_HOAS.68» +parameter T explicit (sort (typ «elpi.tests.test_HOAS.68»)) c0 \ + record F (sort (typ «elpi.tests.test_HOAS.68»)) Build_F + (field [coercion off, canonical tt] t c0 c1 \ end-record) +«elpi.tests.test_HOAS.68» +parameter T explicit (sort (typ «elpi.tests.test_HOAS.68»)) c0 \ + record F (sort (typ «elpi.tests.test_HOAS.68»)) Build_F + (field [coercion off, canonical tt] t c0 c1 \ end-record) +parameter T explicit (sort (typ «elpi.tests.test_HOAS.69»)) c0 \ + record F (sort (typ «elpi.tests.test_HOAS.69»)) Build_F + (field [coercion off, canonical tt] t c0 c1 \ end-record) +Query assignments: + Decl = parameter T explicit (sort (typ «elpi.tests.test_HOAS.68»)) c0 \ + record F (sort (typ «elpi.tests.test_HOAS.68»)) Build_F + (field [coercion off, canonical tt] t c0 c1 \ end-record) + Decl1 = parameter T explicit (sort (typ «elpi.tests.test_HOAS.68»)) c0 \ + record F (sort (typ «elpi.tests.test_HOAS.68»)) Build_F + (field [coercion off, canonical tt] t c0 c1 \ end-record) + Decl2 = parameter T explicit (sort (typ «elpi.tests.test_HOAS.69»)) c0 \ + record F (sort (typ «elpi.tests.test_HOAS.69»)) Build_F + (field [coercion off, canonical tt] t c0 c1 \ end-record) + GRF = indt «F» + I = «elpi.tests.test_HOAS.68» + Ind = «F» +Universe constraints: +UNIVERSES: + {elpi.tests.test_HOAS.69 elpi.tests.test_HOAS.68} |= +ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.69 elpi.tests.test_HOAS.68} +UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.69 + elpi.tests.test_HOAS.68 +SORTS: + +WEAK CONSTRAINTS: + + +COQC tests/test_vernacular1.v +«elpi.tests.test_API2.H» +Query assignments: + F = «elpi.tests.test_API2.F» + H = «elpi.tests.test_API2.H» + X = «elpi.tests.test_API2.X» +Module H : Sig Definition id : nat -> nat. End := (F X) + +test2 +test1 +str hello +test1 +too many arguments +test1 +str hello my +str Dear +test1 +too many arguments +«elpi.tests.test_HOAS.70» «elpi.tests.test_HOAS.71» +Universe constraints: UNIVERSES: + {elpi.tests.test_HOAS.71 elpi.tests.test_HOAS.70} |= + ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.71 elpi.tests.test_HOAS.70} + UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.71 + elpi.tests.test_HOAS.70 + SORTS: + + WEAK CONSTRAINTS: + + +Universe constraints: UNIVERSES: + {elpi.tests.test_HOAS.71 elpi.tests.test_HOAS.70} |= + elpi.tests.test_HOAS.70 = elpi.tests.test_HOAS.71 + ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.71 elpi.tests.test_HOAS.70} + UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.71 + elpi.tests.test_HOAS.70 := elpi.tests.test_HOAS.71 + SORTS: + + WEAK CONSTRAINTS: + + +Query assignments: + GRF = indt «F» + I1 = «elpi.tests.test_HOAS.70» + I2 = «elpi.tests.test_HOAS.71» +Universe constraints: +UNIVERSES: + {elpi.tests.test_HOAS.71 elpi.tests.test_HOAS.70} |= + elpi.tests.test_HOAS.70 = elpi.tests.test_HOAS.71 +ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.71 elpi.tests.test_HOAS.70} +UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.71 + elpi.tests.test_HOAS.70 := elpi.tests.test_HOAS.71 +SORTS: + +WEAK CONSTRAINTS: + + +Query assignments: + GR = const const EXN PRINTING: Not_found + T = «elpi.tests.test_API2.T» +Module Type FT = Funsig (P:T) Sig Parameter idT : P.T -> P.T. End +«elpi.tests.test_HOAS.72» «» +Universe constraints: UNIVERSES: + {elpi.tests.test_HOAS.72} |= + ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.72} + UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.72 + SORTS: + + WEAK CONSTRAINTS: + + +different universe instance lengths +Universe constraints: UNIVERSES: + {elpi.tests.test_HOAS.72} |= + ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.72} + UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.72 + SORTS: + + WEAK CONSTRAINTS: + + +Query assignments: + E = different universe instance lengths + GRF = indt «F» + GRfnat = const «fnat» + I1 = «elpi.tests.test_HOAS.72» + I2 = «» +Universe constraints: +UNIVERSES: + {elpi.tests.test_HOAS.72} |= +ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.72} +UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.72 +SORTS: + +WEAK CONSTRAINTS: + + +«elpi.tests.test_API2.GT» +Query assignments: + F = «elpi.tests.test_API2.FT» + G = «elpi.tests.test_API2.GT» + X = «elpi.tests.test_API2.X» +Module Type GT = Sig Parameter idT : X.T -> X.T. End +Query assignments: + GRF = indt «F» + I1 = «elpi.tests.test_HOAS.73» + I2 = «elpi.tests.test_HOAS.73» + U = «elpi.tests.test_HOAS.73» + UL1 = [«elpi.tests.test_HOAS.73»] +Universe constraints: +UNIVERSES: + {elpi.tests.test_HOAS.73} |= +ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.73} +UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.73 +SORTS: + +WEAK CONSTRAINTS: + + +[attribute elpi.loc + (leaf-loc + File "./tests/test_vernacular1.v", line 48, column 5, character 947:), + attribute foo (leaf-str bar)] +[get-option elpi.loc + File "./tests/test_vernacular1.v", line 48, column 5, character 947:, + get-option foo bar] +[attribute elpi.loc + (leaf-loc + File "./tests/test_vernacular1.v", line 52, column 0, character 981:), + attribute foo (leaf-str bar), attribute poly (leaf-str )] +[get-option elpi.loc + File "./tests/test_vernacular1.v", line 52, column 0, character 981:, + get-option foo bar, get-option poly tt] +[attribute elpi.loc + (leaf-loc + File "./tests/test_vernacular1.v", line 53, column 0, character 1009:), + attribute foo (leaf-str bar), attribute poly (leaf-str ), + attribute suppa (node [attribute duppa (leaf-str )])] +[get-option elpi.loc + File "./tests/test_vernacular1.v", line 53, column 0, character 1009:, + get-option foo bar, get-option poly tt] +«elpi.tests.test_API2.HT» +Query assignments: + F = «elpi.tests.test_API2.FT» + H = «elpi.tests.test_API2.HT» + X = «elpi.tests.test_API2.X» +Module Type HT = Sig Parameter idT : nat -> nat. End +Cannot enforce elpi.tests.test_HOAS.74 = elpi.tests.test_HOAS.75 because +elpi.tests.test_HOAS.74 < elpi.tests.test_HOAS.75 +Query assignments: + E = Cannot enforce elpi.tests.test_HOAS.74 = elpi.tests.test_HOAS.75 because +elpi.tests.test_HOAS.74 < elpi.tests.test_HOAS.75 + GRF = indt «F» + I1 = «elpi.tests.test_HOAS.74» + I2 = «elpi.tests.test_HOAS.75» + L1 = «elpi.tests.test_HOAS.74» + L2 = «elpi.tests.test_HOAS.75» + U1 = «elpi.tests.test_HOAS.74» + U2 = «elpi.tests.test_HOAS.75» +Universe constraints: +UNIVERSES: + {elpi.tests.test_HOAS.75 elpi.tests.test_HOAS.74} |= + elpi.tests.test_HOAS.74 < elpi.tests.test_HOAS.75 +ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.75 elpi.tests.test_HOAS.74} +UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.75 + elpi.tests.test_HOAS.74 +SORTS: + +WEAK CONSTRAINTS: + + +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} +UNDEFINED UNIVERSES: + elpi.tests.test_API2.9 + elpi.tests.test_API2.8 +SORTS: + +WEAK CONSTRAINTS: + + +Universe constraints: UNIVERSES: + {elpi.tests.test_HOAS.79 elpi.tests.test_HOAS.78} |= + elpi.tests.test_HOAS.78 < elpi.tests.test_HOAS.79 + ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.79 elpi.tests.test_HOAS.78} + UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.79 + elpi.tests.test_HOAS.78 + SORTS: + + WEAK CONSTRAINTS: + + +Query assignments: + GRF = indt «F2» + I1 = «elpi.tests.test_HOAS.78» + I2 = «elpi.tests.test_HOAS.79» + L1 = «elpi.tests.test_HOAS.78» + L2 = «elpi.tests.test_HOAS.79» + U1 = «elpi.tests.test_HOAS.78» + U2 = «elpi.tests.test_HOAS.79» +Universe constraints: +UNIVERSES: + {elpi.tests.test_HOAS.79 elpi.tests.test_HOAS.78} |= + elpi.tests.test_HOAS.78 < elpi.tests.test_HOAS.79 + elpi.tests.test_HOAS.78 <= elpi.tests.test_HOAS.79 +ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.79 elpi.tests.test_HOAS.78} +UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.79 + elpi.tests.test_HOAS.78 +SORTS: + +WEAK CONSTRAINTS: + + Query assignments: X = 3 app [global (const «Nat.mul»), X0, X1] type -congr_is_Envelope -: -forall (A : Type) (PA : A -> Type) (x : A) (p1 p2 : PA x), -p1 = p2 -> -forall (y : A) (q1 q2 : PA y), -q1 = q2 -> is_Envelope A PA x p1 y q1 = is_Envelope A PA x p2 y q2 - : forall (A : Type) (PA : A -> Type) (x : A) (p1 p2 : PA x), - p1 = p2 -> - forall (y : A) (q1 q2 : PA y), - q1 = q2 -> is_Envelope A PA x p1 y q1 = is_Envelope A PA x p2 y q2 -congr_is_Redex -: -forall (A : Type) (PA : A -> Type) (x : A) (p1 p2 : PA x), -p1 = p2 -> is_Redex A PA x p1 = is_Redex A PA x p2 - : forall (A : Type) (PA : A -> Type) (x : A) (p1 p2 : PA x), - p1 = p2 -> is_Redex A PA x p1 = is_Redex A PA x p2 -congr_is_PI - : forall (x : PrimInt63.int) (p1 p2 : is_uint63 x), - p1 = p2 -> is_PI x p1 = is_PI x p2 -congr_is_PF - : forall (x : PrimFloat.float) (p1 p2 : is_float64 x), - p1 = p2 -> is_PF x p1 = is_PF x p2 -congr_is_Build_fo_record -: -forall (n : peano) (p1 p2 : is_peano n), -p1 = p2 -> -forall (b : unit) (q1 q2 : is_unit b), -q1 = q2 -> is_Build_fo_record n p1 b q1 = is_Build_fo_record n p2 b q2 - : forall (n : peano) (p1 p2 : is_peano n), - p1 = p2 -> - forall (b : unit) (q1 q2 : is_unit b), - q1 = q2 -> is_Build_fo_record n p1 b q1 = is_Build_fo_record n p2 b q2 +COQC tests/test_tactic.v +File "./tests/test_API2.v", line 361, characters 3-201: +Warning: constant test has no declared type. [elpi.typecheck,elpi,default] +Skipping derivation map on indt «nat» since the user did not select it +Skipping derivation lens on indt «nat» since the user did not select it +Skipping derivation param1 on indt «nat» since it has been already run +Skipping derivation param2 on indt «nat» since the user did not select it +Skipping derivation tag on indt «nat» since the user did not select it +Skipping derivation eqType_ast on indt «nat» +since the user did not select it +Skipping derivation projK on indt «nat» since it has been already run +Skipping derivation isK on indt «nat» since it has been already run +Skipping derivation eq on indt «nat» since it has been already run +Skipping derivation invert on indt «nat» since the user did not select it +Skipping derivation lens_laws on indt «nat» +since the user did not select it +Skipping derivation param1_congr on indt «nat» +since it has been already run +Skipping derivation param1_inhab on indt «nat» +since it has been already run +Skipping derivation param1_functor on indt «nat» +since it has been already run +Skipping derivation fields on indt «nat» since the user did not select it +Skipping derivation bcongr on indt «nat» since it has been already run +Skipping derivation idx2inv on indt «nat» since the user did not select it +Skipping derivation param1_trivial on indt «nat» +since it has been already run +Skipping derivation induction on indt «nat» since it has been already run +Skipping derivation eqb on indt «nat» since the user did not select it +Skipping derivation eqK on indt «nat» since it has been already run +Skipping derivation eqbcorrect on indt «nat» +since the user did not select it +Skipping derivation eqcorrect on indt «nat» since it has been already run +Skipping derivation eqbOK on indt «nat» since the user did not select it +Skipping derivation eqOK on indt «nat» since it has been already run +derive.param1_trivial: wrong shape is_t A PA +. It does not look like a unary parametricity translation of an inductive with no indexes. +Vector.t_eq + : (forall A : Type, + (A -> A -> bool) -> forall n : nat, Vector.t A n -> Vector.t A n -> bool) + : forall A : Type, + (A -> A -> bool) -> + forall n : nat, Vector.t A n -> Vector.t A n -> bool +Vector.t_isk_nil : (forall (A : Type) (n : nat), Vector.t A n -> bool) + : forall (A : Type) (n : nat), Vector.t A n -> bool +Vector.t_isk_cons : (forall (A : Type) (n : nat), Vector.t A n -> bool) + : forall (A : Type) (n : nat), Vector.t A n -> bool +Vector.t_map + : (forall A B : Type, + (A -> B) -> forall n : nat, Vector.t A n -> Vector.t B n) + : forall A B : Type, + (A -> B) -> forall n : nat, Vector.t A n -> Vector.t B n +Vector.t_getk_cons1 + : (forall (A : Type) (n : nat), + A -> forall m : nat, Vector.t A m -> Vector.t A n -> A) + : forall (A : Type) (n : nat), + A -> forall m : nat, Vector.t A m -> Vector.t A n -> A +Vector.t_getk_cons2 + : (forall (A : Type) (n : nat), + A -> forall m : nat, Vector.t A m -> Vector.t A n -> nat) + : forall (A : Type) (n : nat), + A -> forall m : nat, Vector.t A m -> Vector.t A n -> nat +Vector.t_getk_cons3 + : (forall (A : Type) (n : nat), + A -> + forall m : nat, Vector.t A m -> Vector.t A n -> {k : nat & Vector.t A k}) + : forall (A : Type) (n : nat), + A -> + forall m : nat, + Vector.t A m -> Vector.t A n -> {k : nat & Vector.t A k} +Vector.is_t + : (forall A : Type, + (A -> Type) -> forall n : nat, is_nat n -> Vector.t A n -> Type) + : forall A : Type, + (A -> Type) -> forall n : nat, is_nat n -> Vector.t A n -> Type +Vector.is_nil + : (forall (A : Type) (PA : A -> Type), + Vector.is_t A PA 0 is_O (Vector.nil A)) + : forall (A : Type) (PA : A -> Type), + Vector.is_t A PA 0 is_O (Vector.nil A) +Vector.is_cons + : (forall (A : Type) (PA : A -> Type) (a : A), + PA a -> + forall (n : nat) (Pn : is_nat n) (H : Vector.t A n), + Vector.is_t A PA n Pn H -> + Vector.is_t A PA (S n) (is_S n Pn) (Vector.cons A a n H)) + : forall (A : Type) (PA : A -> Type) (a : A), + PA a -> + forall (n : nat) (Pn : is_nat n) (H : Vector.t A n), + Vector.is_t A PA n Pn H -> + Vector.is_t A PA (S n) (is_S n Pn) (Vector.cons A a n H) +Vector.is_t_functor + : (forall (A : Type) (PA QA : A -> Type), + (forall x : A, PA x -> QA x) -> + forall (n : nat) (nR : is_nat n) (v : Vector.t A n), + Vector.is_t A PA n nR v -> Vector.is_t A QA n nR v) + : forall (A : Type) (PA QA : A -> Type), + (forall x : A, PA x -> QA x) -> + forall (n : nat) (nR : is_nat n) (v : Vector.t A n), + Vector.is_t A PA n nR v -> Vector.is_t A QA n nR v +Vector.t_induction + : (forall (A : Type) (PA : A -> Type) + (P : forall n : nat, is_nat n -> Vector.t A n -> Type), + P 0 is_O (Vector.nil A) -> + (forall a : A, + PA a -> + forall (m : nat) (mR : is_nat m) (v : Vector.t A m), + P m mR v -> P (S m) (is_S m mR) (Vector.cons A a m v)) -> + forall (n : nat) (nR : is_nat n) (v : Vector.t A n), + Vector.is_t A PA n nR v -> P n nR v) + : forall (A : Type) (PA : A -> Type) + (P : forall n : nat, is_nat n -> Vector.t A n -> Type), + P 0 is_O (Vector.nil A) -> + (forall a : A, + PA a -> + forall (m : nat) (mR : is_nat m) (v : Vector.t A m), + P m mR v -> P (S m) (is_S m mR) (Vector.cons A a m v)) -> + forall (n : nat) (nR : is_nat n) (v : Vector.t A n), + Vector.is_t A PA n nR v -> P n nR v +Vector.t_tag + : (forall (A : Type) (i : nat), Vector.t A i -> BinNums.positive) + : forall (A : Type) (i : nat), Vector.t A i -> BinNums.positive +Universe constraints: UNIVERSES: + {elpi.tests.test_HOAS.81 elpi.tests.test_HOAS.80} |= + elpi.tests.test_HOAS.80 < elpi.tests.test_HOAS.81 + ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.81} + UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.81 + elpi.tests.test_HOAS.80 + SORTS: + + WEAK CONSTRAINTS: + + +Cannot enforce elpi.tests.test_HOAS.81 = elpi.tests.test_HOAS.80 because +elpi.tests.test_HOAS.80 < elpi.tests.test_HOAS.81 +Query assignments: + E = Cannot enforce elpi.tests.test_HOAS.81 = elpi.tests.test_HOAS.80 because +elpi.tests.test_HOAS.80 < elpi.tests.test_HOAS.81 + GRF = indt «F» + I1 = «elpi.tests.test_HOAS.80» + I2 = «elpi.tests.test_HOAS.81» + L1 = «elpi.tests.test_HOAS.80» + L2 = «elpi.tests.test_HOAS.81» + U1 = «elpi.tests.test_HOAS.80» + U2 = «elpi.tests.test_HOAS.81» +Universe constraints: +UNIVERSES: + {elpi.tests.test_HOAS.81 elpi.tests.test_HOAS.80} |= + elpi.tests.test_HOAS.80 < elpi.tests.test_HOAS.81 +ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.81} +UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.81 + elpi.tests.test_HOAS.80 +SORTS: + +WEAK CONSTRAINTS: + + +W_tag : (forall A : Type, W A -> BinNums.positive) + : forall A : Type, W A -> BinNums.positive +Query assignments: + _uvk_20_ = X0 + _uvk_21_ = X0 + _uvk_22_ = X1 + _uvk_23_ = X2 + _uvk_24_ = c0 \ +X3 c0 + _uvk_25_ = X4 + _uvk_26_ = c0 \ +X5 c0 + _uvk_27_ = X4 + _uvk_28_ = c0 \ +X5 c0 + _uvk_29_ = X6 + _uvk_30_ = c0 \ +X7 c0 + _uvk_31_ = c0 \ c1 \ +X8 c0 c1 + _uvk_32_ = X9 + _uvk_33_ = c0 \ +X10 c0 + _uvk_34_ = c0 \ c1 \ +X11 c0 c1 + _uvk_35_ = X12 + _uvk_36_ = c0 \ +X13 c0 + _uvk_37_ = c0 \ c1 \ +X14 c0 c1 + _uvk_38_ = X12 +Syntactic constraints: + evar X12 (sort (typ «elpi.tests.test_API2.25»)) X12 /* suspended on X12 */ + evar X12 (sort (typ «elpi.tests.test_API2.28»)) X12 /* suspended on X12 */ + {c0 c1} : decl c1 `x` (X13 c0), decl c0 `z` X12 + ?- evar (X14 c0 c1) (sort (typ «elpi.tests.test_API2.27»)) (X14 c0 c1) /* suspended on X14 */ + {c0} : decl c0 `z` X12 + ?- evar (X13 c0) (sort (typ «elpi.tests.test_API2.26»)) (X13 c0) /* suspended on X13 */ + {c0 c1} : decl c1 `x` (X10 c0), decl c0 `z` X9 + ?- evar (X11 c0 c1) (sort (typ «elpi.tests.test_API2.24»)) (X11 c0 c1) /* suspended on X11 */ + {c0} : decl c0 `z` X9 + ?- evar (X10 c0) (sort (typ «elpi.tests.test_API2.23»)) (X10 c0) /* suspended on X10 */ + evar (X9) (sort (typ «elpi.tests.test_API2.22»)) (X9) /* suspended on X9 */ + {c0 c1} : decl c1 `x` (X7 c0), decl c0 `z` X6 + ?- evar (X8 c0 c1) (sort (typ «elpi.tests.test_API2.21»)) (X8 c0 c1) /* suspended on X8 */ + {c0} : decl c0 `z` X6 + ?- evar (X7 c0) (sort (typ «elpi.tests.test_API2.20»)) (X7 c0) /* suspended on X7 */ + evar (X6) (sort (typ «elpi.tests.test_API2.19»)) (X6) /* suspended on X6 */ + evar X4 (sort (typ «elpi.tests.test_API2.15»)) X4 /* suspended on X4 */ + evar X4 (sort (typ «elpi.tests.test_API2.17»)) X4 /* suspended on X4 */ + {c0} : decl c0 `x` X4 + ?- evar (X5 c0) (sort (typ «elpi.tests.test_API2.16»)) (X5 c0) /* suspended on X5 */ + {c0} : decl c0 `x` X4 + ?- evar (X5 c0) (sort (typ «elpi.tests.test_API2.18»)) (X5 c0) /* suspended on X5 */ + {c0} : decl c0 `x` X2 + ?- evar (X3 c0) (sort (typ «elpi.tests.test_API2.14»)) (X3 c0) /* suspended on X3 */ + evar (X2) (sort (typ «elpi.tests.test_API2.13»)) (X2) /* suspended on X2 */ + evar (X1) (sort (typ «elpi.tests.test_API2.12»)) (X1) /* suspended on X1 */ + evar X0 (sort (typ «elpi.tests.test_API2.10»)) X0 /* suspended on X0 */ + evar X0 (sort (typ «elpi.tests.test_API2.11»)) X0 /* suspended on X0 */ +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: + {} +UNDEFINED UNIVERSES: + +SORTS: + α6 + α7 + α8 + α9 + α10 + α11 + α12 + α13 + α14 + α15 + α16 + α17 + α18 + α19 + α20 + α21 + α22 + α23 + α24 +WEAK CONSTRAINTS: + + COQC tests/test_elaborator.v -congr_is_Build_pa_record -: -forall (A : Type) (PA : A -> Type) (n : peano) (p1 p2 : is_peano n), -p1 = p2 -> -forall (b : A) (q1 q2 : PA b), -q1 = q2 -> -is_Build_pa_record A PA n p1 b q1 = is_Build_pa_record A PA n p2 b q2 - : forall (A : Type) (PA : A -> Type) (n : peano) (p1 p2 : is_peano n), - p1 = p2 -> - forall (b : A) (q1 q2 : PA b), - q1 = q2 -> - is_Build_pa_record A PA n p1 b q1 = is_Build_pa_record A PA n p2 b q2 -congr_is_Build_pr_record -: -forall (A : Type) (pr : A -> Type) (n : peano) (p1 p2 : is_peano n), -p1 = p2 -> -forall (b : A) (q1 q2 : pr b), -q1 = q2 -> -is_Build_pr_record A pr n p1 b q1 = is_Build_pr_record A pr n p2 b q2 - : forall (A : Type) (pr : A -> Type) (n : peano) (p1 p2 : is_peano n), - p1 = p2 -> - forall (b : A) (q1 q2 : pr b), - q1 = q2 -> - is_Build_pr_record A pr n p1 b q1 = is_Build_pr_record A pr n p2 b q2 -congr_is_E1 : is_E1 = is_E1 - : is_E1 = is_E1 -COQC tests/test_eqb.v +Query assignments: + GR = indt «nat» +XXX.rtree_tag : (forall A : Type, rtree A -> BinNums.positive) + : forall A : Type, rtree A -> BinNums.positive +XXX.rtree_fields_t : Type -> BinNums.positive -> Type + : Type -> BinNums.positive -> Type +XXX.rtree_fields + : (forall (A : Type) (l : rtree A), + XXX.rtree_fields_t A (XXX.rtree_tag A l)) + : forall (A : Type) (l : rtree A), + XXX.rtree_fields_t A (XXX.rtree_tag A l) +XXX.rtree_construct + : (forall (A : Type) (p : BinNums.positive), + XXX.rtree_fields_t A p -> option (rtree A)) + : forall (A : Type) (p : BinNums.positive), + XXX.rtree_fields_t A p -> option (rtree A) +XXX.rtree_constructP + : (forall (A : Type) (l : rtree A), + XXX.rtree_construct A (XXX.rtree_tag A l) (XXX.rtree_fields A l) = + Some l) + : forall (A : Type) (l : rtree A), + XXX.rtree_construct A (XXX.rtree_tag A l) (XXX.rtree_fields A l) = + Some l +XXX.rtree_eqb + : (forall A : Type, (A -> A -> bool) -> rtree A -> rtree A -> bool) + : forall A : Type, (A -> A -> bool) -> rtree A -> rtree A -> bool +derive.param1_trivial: wrong shape is_triv +. It does not look like a unary parametricity translation of an inductive with no indexes. +triv.induction + : (forall P : forall H : Coverage.unit, is_unit H -> triv H -> Prop, + (forall (t : Coverage.unit) (Pt : is_unit t), P t Pt (one t)) -> + (forall (x : Coverage.unit) (Px : is_unit x), P x Px (more x)) -> + forall (u : Coverage.unit) (p : is_unit u) (s : triv u), + triv.is_triv u p s -> P u p s) + : forall P : forall H : Coverage.unit, is_unit H -> triv H -> Prop, + (forall (t : Coverage.unit) (Pt : is_unit t), P t Pt (one t)) -> + (forall (x : Coverage.unit) (Px : is_unit x), P x Px (more x)) -> + forall (u : Coverage.unit) (p : is_unit u) (s : triv u), + triv.is_triv u p s -> P u p s +Query assignments: + GR = indt «F» + I = «elpi.tests.test_HOAS.82» +Universe constraints: +UNIVERSES: + {elpi.tests.test_HOAS.82} |= +ALGEBRAIC UNIVERSES: + {} +UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.82 +SORTS: + +WEAK CONSTRAINTS: + + +Debug: Cannot enforce elpi.apps.derive.tests.test_derive.4344 <= Set Query assignments: B = fix `add` 0 (prod `n` (global (indt «nat»)) c0 \ @@ -10081,6 +8900,28 @@ Query assignments: + GR = indt «F» +derive.param1_trivial: wrong shape is_Pred +. It does not look like a unary parametricity translation of an inductive with no indexes. +Pred.Pred_to_Predinv : (forall T : RoseTree, Pred T -> Pred.Predinv T) + : forall T : RoseTree, Pred T -> Pred.Predinv T +wimpls.wimpls : forall {A : Type}, rtree A -> Type + +wimpls.wimpls is not universe polymorphic +Arguments wimpls.wimpls {A}%type_scope {rtree0} +Expands to: Inductive +elpi.apps.derive.tests.test_derive.derive_container.wimpls.wimpls +wimpls.Kwi : forall {A : Type} {rtree0 : rtree A} (x : A), x = x -> wimpls + +wimpls.Kwi is not universe polymorphic +Arguments wimpls.Kwi {A}%type_scope {rtree0} x _ +Expands to: Constructor +elpi.apps.derive.tests.test_derive.derive_container.wimpls.Kwi +Kwi 3 eq_refl + : wimpls +where +?rtree0 : [ |- rtree nat] +Query assignments: B = fun `n` (global (indt «nat»)) c0 \ app [global (const «nat_ind»), @@ -10185,53 +9026,76 @@ WEAK CONSTRAINTS: -empty_eqb : eq_test2 empty empty - : eq_test2 empty empty -unit_eqb : eq_test2 unit unit - : eq_test2 unit unit -peano_eqb : eq_test2 peano peano - : eq_test2 peano peano -option_eqb : forall A : Type, eq_test2 A A -> eq_test2 (option A) (option A) - : forall A : Type, eq_test2 A A -> eq_test2 (option A) (option A) -pair_eqb -: -forall A : Type, -eq_test2 A A -> -forall B : Type, eq_test2 B B -> eq_test2 (pair A B) (pair A B) - : forall A : Type, - eq_test2 A A -> - forall B : Type, eq_test2 B B -> eq_test2 (pair A B) (pair A B) -seq_eqb : forall A : Type, eq_test2 A A -> eq_test2 (seq A) (seq A) - : forall A : Type, eq_test2 A A -> eq_test2 (seq A) (seq A) -rose_eqb : forall A : Type, eq_test2 A A -> eq_test2 (rose A) (rose A) - : forall A : Type, eq_test2 A A -> eq_test2 (rose A) (rose A) -beta_eqb : forall A : Type, eq_test2 A A -> eq_test2 (beta A) (beta A) - : forall A : Type, eq_test2 A A -> eq_test2 (beta A) (beta A) -prim_int_eqb : eq_test2 prim_int prim_int - : eq_test2 prim_int prim_int -fo_record_eqb : eq_test2 fo_record fo_record - : eq_test2 fo_record fo_record -pa_record_eqb -: -forall A : Type, eq_test2 A A -> eq_test2 (pa_record A) (pa_record A) - : forall A : Type, eq_test2 A A -> eq_test2 (pa_record A) (pa_record A) -pr_record_eqb -: -forall A : Type, eq_test2 A A -> eq_test2 (pr_record A) (pr_record A) - : forall A : Type, eq_test2 A A -> eq_test2 (pr_record A) (pr_record A) -enum_eqb : eq_test2 enum enum - : eq_test2 enum enum -sigma_bool_eqb : eq_test2 sigma_bool sigma_bool - : eq_test2 sigma_bool sigma_bool -ord_eqb : forall p1 p2 : peano, eq_test2 (ord p1) (ord p2) - : forall p1 p2 : peano, eq_test2 (ord p1) (ord p2) -ord2_eqb : forall p1 p2 : peano, eq_test2 (ord2 p1) (ord2 p2) - : forall p1 p2 : peano, eq_test2 (ord2 p1) (ord2 p2) -val_eqb : eq_test2 val val - : eq_test2 val val -alias_eqb : eq_test2 alias alias - : eq_test2 alias alias -COQC tests/test_eqK.v +pglobal (indt «F») «elpi.tests.test_HOAS.84» +«elpi.tests.test_HOAS.84» +pglobal (indc «Build_F») «elpi.tests.test_HOAS.84» +Query assignments: + GR = indt «F» + GR1 = indc «Build_F» + I = «elpi.tests.test_HOAS.84» + Spilled_1 = pglobal (indc «Build_F») «elpi.tests.test_HOAS.84» + Spilled_2 = pglobal (indt «F») «elpi.tests.test_HOAS.84» +Universe constraints: +UNIVERSES: + {elpi.tests.test_HOAS.84} |= +ALGEBRAIC UNIVERSES: + {} +UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.84 +SORTS: + +WEAK CONSTRAINTS: + + +COQC tests/test_eq.v +«elpi.tests.test_HOAS.85 elpi.tests.test_HOAS.85» +Query assignments: + I = «elpi.tests.test_HOAS.85 elpi.tests.test_HOAS.85» + U = «elpi.tests.test_HOAS.85» +Universe constraints: +UNIVERSES: + {elpi.tests.test_HOAS.85} |= +ALGEBRAIC UNIVERSES: + {} +UNDEFINED UNIVERSES: + +SORTS: + +WEAK CONSTRAINTS: + + +CHR: Uniqueness of typing of frozen--1011 + [] <-> [] +1 |> [decl c0 `x` (uvar frozen--1011 [])] |- frozen--1011 [] : +sort (typ «elpi.tests.test_elaborator.40») +0 |> [] |- frozen--1011 [] : sort (typ «elpi.tests.test_elaborator.39») +0 |> [] |- +unify-eq (sort (typ «elpi.tests.test_elaborator.40»)) + (sort (typ «elpi.tests.test_elaborator.39»)) + +Query assignments: + R = fun `x` X0 c0 \ c0 + T = prod `x` X0 c0 \ X0 + _uvk_87_ = X1 +Syntactic constraints: + {c0} : decl c0 `x` X0 + ?- evar X2 (sort (typ «elpi.tests.test_elaborator.40»)) X0 /* suspended on X2, X0 */ +Universe constraints: +UNIVERSES: + {elpi.tests.test_elaborator.42 elpi.tests.test_elaborator.41 + elpi.tests.test_elaborator.40 elpi.tests.test_elaborator.39} |= + elpi.tests.test_elaborator.39 <= elpi.tests.test_elaborator.41 + elpi.tests.test_elaborator.40 <= elpi.tests.test_elaborator.39 + elpi.tests.test_elaborator.40 <= elpi.tests.test_elaborator.41 + elpi.tests.test_elaborator.41 <= elpi.tests.test_elaborator.42 +ALGEBRAIC UNIVERSES: + {} +UNDEFINED UNIVERSES: + +SORTS: + +WEAK CONSTRAINTS: + + {c0 c1 c2 c3} : decl c3 `w` c0, decl c2 `h` @@ -10416,38 +9280,66 @@ app [global (indt «eq»), app [c1, c3], X1 c0 c1 c2 c3 c4 c5, X1 c0 c1 c2 c3 c4 c5] ?elpi_evar0 = ?elpi_evar0 -CHR: Uniqueness of typing of frozen--1011 + [] <-> [] -1 |> [decl c0 `x` (uvar frozen--1011 [])] |- frozen--1011 [] : -sort (typ «elpi.tests.test_elaborator.40») -0 |> [] |- frozen--1011 [] : sort (typ «elpi.tests.test_elaborator.39») -0 |> [] |- -unify-eq (sort (typ «elpi.tests.test_elaborator.40»)) - (sort (typ «elpi.tests.test_elaborator.39»)) - +Universe constraints: +------------------ +Universe constraints: UNIVERSES: + {elpi.tests.test_HOAS.87 elpi.tests.test_HOAS.86} |= + elpi.tests.test_HOAS.86 < elpi.tests.test_HOAS.87 + ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.87 elpi.tests.test_HOAS.86} + UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.87 + elpi.tests.test_HOAS.86 + SORTS: + + WEAK CONSTRAINTS: + + +Universe constraints: UNIVERSES: + {elpi.tests.test_HOAS.87 elpi.tests.test_HOAS.86} |= + elpi.tests.test_HOAS.86 < elpi.tests.test_HOAS.87 + ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.87 elpi.tests.test_HOAS.86} + UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.87 + elpi.tests.test_HOAS.86 + SORTS: + + WEAK CONSTRAINTS: + + Query assignments: - R = fun `x` X0 c0 \ c0 - T = prod `x` X0 c0 \ X0 - _uvk_87_ = X1 -Syntactic constraints: - {c0} : decl c0 `x` X0 - ?- evar X2 (sort (typ «elpi.tests.test_elaborator.40»)) X0 /* suspended on X2, X0 */ + Body = sort (typ «elpi.tests.test_HOAS.86») + LX = «elpi.tests.test_HOAS.86» + LY = «elpi.tests.test_HOAS.87» + Type = sort (typ «elpi.tests.test_HOAS.87») + UX = «elpi.tests.test_HOAS.86» + UY = «elpi.tests.test_HOAS.87» Universe constraints: UNIVERSES: - {elpi.tests.test_elaborator.42 elpi.tests.test_elaborator.41 - elpi.tests.test_elaborator.40 elpi.tests.test_elaborator.39} |= - elpi.tests.test_elaborator.39 <= elpi.tests.test_elaborator.41 - elpi.tests.test_elaborator.40 <= elpi.tests.test_elaborator.39 - elpi.tests.test_elaborator.40 <= elpi.tests.test_elaborator.41 - elpi.tests.test_elaborator.41 <= elpi.tests.test_elaborator.42 + {elpi.tests.test_HOAS.87 elpi.tests.test_HOAS.86} |= + elpi.tests.test_HOAS.86 < elpi.tests.test_HOAS.87 ALGEBRAIC UNIVERSES: - {} + {elpi.tests.test_HOAS.87 elpi.tests.test_HOAS.86} UNDEFINED UNIVERSES: - + elpi.tests.test_HOAS.87 + elpi.tests.test_HOAS.86 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.88} + : Type@{elpi.tests.test_HOAS.88} +(* {elpi.tests.test_HOAS.88} |= Set < elpi.tests.test_HOAS.88 *) +Box not a defined object. Query assignments: R = fun `x` (global (indt «nat»)) c0 \ app [global (const «Nat.add»), c0, global (indc «O»)] @@ -10469,6 +9361,2126 @@ WEAK CONSTRAINTS: +sort (typ «Set») +Query assignments: + U = «elpi.tests.test_HOAS.89» +Universe constraints: +UNIVERSES: + {elpi.tests.test_HOAS.89} |= Set = elpi.tests.test_HOAS.89 +ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.89} +UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.89 := 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 |= u <= list.u0 *) + +Arguments tree A%type_scope +Arguments leaf A%type_scope _ +Arguments node A%type_scope _ _%list_scope +sort (typ X0) +Query assignments: + _uvk_129_ = X0 +parameter A explicit (sort (typ «elpi.tests.test_HOAS.98»)) c0 \ + inductive tree tt (arity (sort (typ «elpi.tests.test_HOAS.99»))) c1 \ + [constructor leaf (arity (prod `_` c0 c2 \ c1)), + constructor node + (arity + (prod `_` c0 c2 \ prod `_` (app [global (indt «list»), c1]) c3 \ c1))] +Universe constraints: UNIVERSES: + {elpi.tests.test_HOAS.103 elpi.tests.test_HOAS.102 + elpi.tests.test_HOAS.101 elpi.tests.test_HOAS.100 + elpi.tests.test_HOAS.99 elpi.tests.test_HOAS.98} |= + elpi.tests.test_HOAS.98 < elpi.tests.test_HOAS.100 + elpi.tests.test_HOAS.99 < elpi.tests.test_HOAS.101 + Set <= elpi.tests.test_HOAS.99 + Set <= elpi.tests.test_HOAS.103 + elpi.tests.test_HOAS.98 <= list.u0 + elpi.tests.test_HOAS.98 <= elpi.tests.test_HOAS.99 + elpi.tests.test_HOAS.98 <= elpi.tests.test_HOAS.102 + elpi.tests.test_HOAS.98 <= elpi.tests.test_HOAS.103 + elpi.tests.test_HOAS.99 <= list.u0 + elpi.tests.test_HOAS.99 <= elpi.tests.test_HOAS.102 + elpi.tests.test_HOAS.99 <= elpi.tests.test_HOAS.103 + elpi.tests.test_HOAS.102 <= elpi.tests.test_HOAS.99 + elpi.tests.test_HOAS.103 <= elpi.tests.test_HOAS.99 + ALGEBRAIC UNIVERSES: + {elpi.tests.test_HOAS.98} + UNDEFINED UNIVERSES: + elpi.tests.test_HOAS.98 + 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» + _uvk_66_ = X0 +Universe constraints: +UNIVERSES: + {elpi.tests.test_HOAS.103 elpi.tests.test_HOAS.102 elpi.tests.test_HOAS.101 + elpi.tests.test_HOAS.100} |= + M.tree.u0 < elpi.tests.test_HOAS.100 + M.tree.u1 < elpi.tests.test_HOAS.101 + Set <= M.tree.u1 + Set <= elpi.tests.test_HOAS.103 + M.tree.u0 <= elpi.tests.test_HOAS.102 + M.tree.u0 <= elpi.tests.test_HOAS.103 + M.tree.u1 <= elpi.tests.test_HOAS.102 + M.tree.u1 <= elpi.tests.test_HOAS.103 + elpi.tests.test_HOAS.102 <= M.tree.u1 + elpi.tests.test_HOAS.103 <= M.tree.u1 +ALGEBRAIC UNIVERSES: + {M.tree.u0} +UNDEFINED UNIVERSES: + M.tree.u0 +SORTS: + +WEAK CONSTRAINTS: + + +COQC tests/test_ltac.v +empty_eq : eq_test empty + : eq_test empty +unit_eq : eq_test unit + : eq_test unit +peano_eq : eq_test peano + : eq_test peano +option_eq : forall A : Type, eq_test A -> eq_test (option A) + : forall A : Type, eq_test A -> eq_test (option A) +pair_eq +: +forall A : Type, +eq_test A -> forall B : Type, eq_test B -> eq_test (pair A B) + : forall A : Type, + eq_test A -> forall B : Type, eq_test B -> eq_test (pair A B) +seq_eq : forall A : Type, eq_test A -> eq_test (seq A) + : forall A : Type, eq_test A -> eq_test (seq A) +rose_eq : forall A : Type, eq_test A -> eq_test (rose A) + : forall A : Type, eq_test A -> eq_test (rose A) +vect_eq : forall A : Type, eq_test A -> forall i : peano, eq_test (vect A i) + : forall A : Type, eq_test A -> forall i : peano, eq_test (vect A i) +zeta_eq : forall A : Type, eq_test A -> eq_test (zeta A) + : forall A : Type, eq_test A -> eq_test (zeta A) +beta_eq : forall A : Type, eq_test A -> eq_test (beta A) + : forall A : Type, eq_test A -> eq_test (beta A) +large_eq : eq_test large + : eq_test large +prim_int_eq : eq_test prim_int + : eq_test prim_int +prim_float_eq : eq_test prim_float + : eq_test prim_float +fo_record_eq : eq_test fo_record + : eq_test fo_record +pa_record_eq : forall A : Type, eq_test A -> eq_test (pa_record A) + : forall A : Type, eq_test A -> eq_test (pa_record A) +pr_record_eq : forall A : Type, eq_test A -> eq_test (pr_record A) + : forall A : Type, eq_test A -> eq_test (pr_record A) +enum_eq : eq_test enum + : eq_test enum +COQC tests/test_isK.v +Query assignments: + S = sort (typ «elpi.tests.test_elaborator.48») + T = sort (typ «elpi.tests.test_elaborator.47») + _uvk_130_ = «elpi.tests.test_elaborator.47» +Universe constraints: +UNIVERSES: + {elpi.tests.test_elaborator.48 elpi.tests.test_elaborator.47} |= + elpi.tests.test_elaborator.47 < elpi.tests.test_elaborator.48 +ALGEBRAIC UNIVERSES: + {elpi.tests.test_elaborator.47} +UNDEFINED UNIVERSES: + elpi.tests.test_elaborator.47 +SORTS: + +WEAK CONSTRAINTS: + + + evar (X0) (global (indt «nat»)) X1 /* suspended on X0, X1 */ +X0 global (indt «nat») + evar (X2) (global (indt «nat»)) X3 /* suspended on X2, X3 */ +hello +eq_refl : one = 1 + : one = 1 +z + : nat +Query assignments: + S = sort (typ «elpi.tests.test_elaborator.50») + T = sort (typ «elpi.tests.test_elaborator.49») + TW = sort (typ «elpi.tests.test_elaborator.49») + W = sort (typ «elpi.tests.test_elaborator.51») + _uvk_131_ = «elpi.tests.test_elaborator.49» + _uvk_132_ = «elpi.tests.test_elaborator.51» +Universe constraints: +UNIVERSES: + {elpi.tests.test_elaborator.51 elpi.tests.test_elaborator.50 + elpi.tests.test_elaborator.49} |= + elpi.tests.test_elaborator.49 < elpi.tests.test_elaborator.50 + elpi.tests.test_elaborator.51 < elpi.tests.test_elaborator.49 +ALGEBRAIC UNIVERSES: + {elpi.tests.test_elaborator.51 elpi.tests.test_elaborator.49} +UNDEFINED UNIVERSES: + elpi.tests.test_elaborator.51 + elpi.tests.test_elaborator.49 +SORTS: + +WEAK CONSTRAINTS: + + +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 +COQC tests/test_ltac3.v +Debug: Cannot enforce elpi.tests.test_elaborator.52 < +elpi.tests.test_elaborator.52 because elpi.tests.test_elaborator.52 += elpi.tests.test_elaborator.52 +Query assignments: + X = sort (typ X0) + _uvk_133_ = X0 +[(c4 \ app [c1, c2]), (c4 \ app [c0, c2]), (c4 \ c4), (c4 \ + prod `x0` (app [c0, c2]) c5 \ + prod `x1` (global (indt «nat»)) c6 \ + sort (typ «elpi.tests.test_tactic.16»))] +[app + [global (indt «eq»), global (indt «nat»), c2, + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]], + sort prop] +Query assignments: + X = sort (typ «elpi.tests.test_elaborator.53») + Y = sort (typ «elpi.tests.test_elaborator.54») +Universe constraints: +UNIVERSES: + {elpi.tests.test_elaborator.54 elpi.tests.test_elaborator.53} |= + elpi.tests.test_elaborator.53 < elpi.tests.test_elaborator.54 +ALGEBRAIC UNIVERSES: + {elpi.tests.test_elaborator.54 elpi.tests.test_elaborator.53} +UNDEFINED UNIVERSES: + elpi.tests.test_elaborator.54 + elpi.tests.test_elaborator.53 +SORTS: + +WEAK CONSTRAINTS: + + +unit_is_tt : unit -> bool + : unit -> bool +peano_is_Zero : peano -> bool + : peano -> bool +peano_is_Succ : peano -> bool + : peano -> bool +option_is_None : forall A : Type, option A -> bool + : forall A : Type, option A -> bool +option_is_Some : forall A : Type, option A -> bool + : forall A : Type, option A -> bool +pair_is_Comma : forall A B : Type, pair A B -> bool + : forall A B : Type, pair A B -> bool +seq_is_Nil : forall A : Type, seq A -> bool + : forall A : Type, seq A -> bool +seq_is_Cons : forall A : Type, seq A -> bool + : forall A : Type, seq A -> bool +rose_is_Leaf : forall A : Type, rose A -> bool + : forall A : Type, rose A -> bool +rose_is_Node : forall A : Type, rose A -> bool + : forall A : Type, rose A -> bool +nest_is_NilN : forall A : Type, nest A -> bool + : forall A : Type, nest A -> bool +nest_is_ConsN : forall A : Type, nest A -> bool + : forall A : Type, nest A -> bool +w_is_via : forall A : Type, w A -> bool + : forall A : Type, w A -> bool +vect_is_VNil : forall (A : Type) (i : peano), vect A i -> bool + : forall (A : Type) (i : peano), vect A i -> bool +vect_is_VCons : forall (A : Type) (i : peano), vect A i -> bool + : forall (A : Type) (i : peano), vect A i -> bool +dyn_is_box : dyn -> bool + : dyn -> bool +zeta_is_Envelope : forall A : Type, zeta A -> bool + : forall A : Type, zeta A -> bool +beta_is_Redex : forall A : Type, beta A -> bool + : forall A : Type, beta A -> bool +iota_is_Why : iota -> bool + : iota -> bool +large_is_K1 + : large -> bool +large_is_K2 + : large -> bool +prim_int_is_PI + : prim_int -> bool +prim_float_is_PF + : prim_float -> bool +fo_record_is_Build_fo_record : fo_record -> bool + : fo_record -> bool +pa_record_is_Build_pa_record : forall A : Type, pa_record A -> bool + : forall A : Type, pa_record A -> bool +pr_record_is_Build_pr_record : forall A : Type, pr_record A -> bool + : forall A : Type, pr_record A -> bool +enum_is_E1 : enum -> bool + : enum -> bool +COQC tests/test_cache_async.v +COQC tests/test_param1.v +1356 + : nat +this 3 app [c4, X0 c0 c1 c2 c3 c4] +app [c3, app [c1, c2], global (const «a»)] foo.bar +COQC tests/test_COQ_ELPI_ATTRIBUTES.v +Query assignments: + D = X0 + R = app + [global (indc «ex_intro»), X0, + fun `hd_beta_auto` X0 c0 \ + app + [global (indt «eq»), global (indt «nat»), global (indc «O»), + global (indc «O»)], X1, global (const «p»)] + TY = app + [global (indt «ex»), X0, + fun `hd_beta_auto` X0 c0 \ + app + [global (indt «eq»), global (indt «nat»), global (indc «O»), + global (indc «O»)]] + _uvk_135_ = X2 + _uvk_136_ = X3 + _uvk_137_ = X4 +Syntactic constraints: + evar (X2) (sort (typ «ex.u0»)) X0 /* suspended on X2, X0 */ + evar (X4) X0 (X1) /* suspended on X4, X1 */ + evar (X1) X0 X5 /* suspended on X1, X5 */ +Query assignments: + R = app + [global (indc «ex_intro»), global (indt «nat»), + fun `hd_beta_auto` (global (indt «nat»)) c0 \ + app [global (indt «eq»), global (indt «nat»), c0, c0], + global (indc «O»), global (const «p»)] + TY = app + [global (indt «ex»), global (indt «nat»), + fun `hd_beta_auto` (global (indt «nat»)) c0 \ + app [global (indt «eq»), global (indt «nat»), c0, c0]] + _uvk_164_ = X0 + _uvk_165_ = X1 +[trm c0, trm (app [global (const «Nat.add»), c0, c1])] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[trm c0, trm (app [global (const «Nat.add»), X0 c0 c1, c1])] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X1 c0 c1) (global (indt «nat»)) (X0 c0 c1) /* suspended on X1, X0 */ + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X2 c0 c1) (global (indt «True»)) (X3 c0 c1) /* suspended on X2, X3 */ +[trm c0, trm (app [global (const «Nat.add»), X0 c0 c1, c1])] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X1 c0 c1) (global (indt «True»)) (X2 c0 c1) /* suspended on X1, X2 */ +[trm c0, trm c1] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[trm (app [global (const «Nat.add»), c0, c1])] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[trm (app [global (const «Nat.add»), X0 c0 c1, c1])] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X1 c0 c1) (global (indt «nat»)) (X0 c0 c1) /* suspended on X1, X0 */ + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X2 c0 c1) (global (indt «True»)) (X3 c0 c1) /* suspended on X2, X3 */ +[trm (app [global (const «Nat.add»), X0 c0 c1, c1])] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X1 c0 c1) (global (indt «True»)) (X2 c0 c1) /* suspended on X1, X2 */ +COQC tests/perf_calls.v +[trm (app [global (indc «O»), global (indc «O»)])] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[trm c0] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[int 1] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[int -1] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[str a] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[str a] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[str x] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[trm (app [global (const «Nat.add»), c0, c1])] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +[trm (app [global (const «Nat.add»), X0 c0 c1, c1])] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X1 c0 c1) (global (indt «True»)) (X2 c0 c1) /* suspended on X1, X2 */ +[trm (app [global (const «Nat.add»), X0 c0 c1, c1])] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X1 c0 c1) (global (indt «True»)) (X2 c0 c1) /* suspended on X1, X2 */ +[trm c0] + {c0 c1} : + decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) + ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ +Query assignments: + R = app + [global (indc «ex_intro»), global (indt «nat»), + fun `hd_beta_auto` (global (indt «nat»)) c0 \ + app [global (indt «eq»), global (indt «nat»), c0, global (indc «O»)], + global (indc «O»), global (const «p»)] + TY = app + [global (indt «ex»), global (indt «nat»), + fun `n` (global (indt «nat»)) c0 \ + app [global (indt «eq»), global (indt «nat»), c0, global (indc «O»)]] + _uvk_174_ = X0 + _uvk_175_ = c0 \ +X1 c0 + _uvk_176_ = X2 + _uvk_177_ = X3 +Universe constraints: +UNIVERSES: + {elpi.tests.test_elaborator.58 elpi.tests.test_elaborator.57 + elpi.tests.test_elaborator.56 elpi.tests.test_elaborator.55} |= + Set <= elpi.tests.test_elaborator.55 + elpi.tests.test_elaborator.55 <= elpi.tests.test_elaborator.57 + elpi.tests.test_elaborator.56 <= elpi.tests.test_elaborator.57 + elpi.tests.test_elaborator.57 <= elpi.tests.test_elaborator.58 +ALGEBRAIC UNIVERSES: + {} +UNDEFINED UNIVERSES: + +SORTS: + +WEAK CONSTRAINTS: + + +COQC tests/test_require_bad_order.v +Query assignments: + R = app + [global (indc «ex_intro»), global (indt «nat»), + fun `n` (global (indt «nat»)) c0 \ + app [global (indt «eq»), global (indt «nat»), c0, global (indc «O»)], + global (indc «O»), global (const «p»)] + TY = app + [global (indt «ex»), global (indt «nat»), + fun `n` (global (indt «nat»)) c0 \ + app [global (indt «eq»), global (indt «nat»), c0, global (indc «O»)]] + _uvk_211_ = X0 + _uvk_212_ = c0 \ +X1 c0 + _uvk_213_ = X2 + _uvk_214_ = X3 +Universe constraints: +UNIVERSES: + {elpi.tests.test_elaborator.62 elpi.tests.test_elaborator.61 + elpi.tests.test_elaborator.60 elpi.tests.test_elaborator.59} |= + Set <= elpi.tests.test_elaborator.59 + elpi.tests.test_elaborator.59 <= elpi.tests.test_elaborator.61 + elpi.tests.test_elaborator.60 <= elpi.tests.test_elaborator.61 + elpi.tests.test_elaborator.61 <= elpi.tests.test_elaborator.62 +ALGEBRAIC UNIVERSES: + {} +UNDEFINED UNIVERSES: + +SORTS: + +WEAK CONSTRAINTS: + + +is_empty : pred empty + : pred empty +is_unit : pred unit + : pred unit +is_peano : pred peano + : pred peano +is_option : forall A : Type, pred A -> pred (option A) + : forall A : Type, pred A -> pred (option A) +is_pair +: +forall A : Type, pred A -> forall B : Type, pred B -> pred (pair A B) + : forall A : Type, pred A -> forall B : Type, pred B -> pred (pair A B) +is_seq : forall A : Type, pred A -> pred (seq A) + : forall A : Type, pred A -> pred (seq A) +is_rose : forall A : Type, pred A -> pred (rose A) + : forall A : Type, pred A -> pred (rose A) +is_nest : forall A : Type, pred A -> pred (nest A) + : forall A : Type, pred A -> pred (nest A) +is_w : forall A : Type, pred A -> pred (w A) + : forall A : Type, pred A -> pred (w A) +is_vect +: +forall A : Type, pred A -> forall i : peano, is_peano i -> pred (vect A i) + : forall A : Type, + pred A -> forall i : peano, is_peano i -> pred (vect A i) +is_dyn : pred dyn + : pred dyn +is_zeta : forall A : Type, pred A -> pred (zeta A) + : forall A : Type, pred A -> pred (zeta A) +is_beta : forall A : Type, pred A -> pred (beta A) + : forall A : Type, pred A -> pred (beta A) +is_iota : pred iota + : pred iota +is_large : pred large + : pred large +is_prim_int : pred prim_int + : pred prim_int +is_prim_float : pred prim_float + : pred prim_float +is_fo_record : pred fo_record + : pred fo_record +is_pa_record : forall A : Type, pred A -> pred (pa_record A) + : forall A : Type, pred A -> pred (pa_record A) +is_pr_record : forall A : Type, pred A -> pred (pr_record A) + : forall A : Type, pred A -> pred (pr_record A) +is_enum : pred enum + : pred enum +is_ord : forall p : peano, is_peano p -> pred (ord p) + : forall p : peano, is_peano p -> pred (ord p) +is_ord2 : forall p : peano, is_peano p -> pred (ord2 p) + : forall p : peano, is_peano p -> pred (ord2 p) +is_val : pred val + : pred val +[attribute elpi.loc + (leaf-loc + File "./tests/test_tactic.v", line 300, column 10, character 6470:)] +Query assignments: + A = tt + B = 0 + C = 0 + D = sort (typ «Set») + E = [«true», «false»] + F = [global (indt «bool»), global (indt «bool»)] + GR = «bool» +COQC tests/test_ctx_cache.v +Entry binder_constr is +[ LEFTA + [ "exists2"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; ","; term LEVEL + "200"; "&"; term LEVEL "200" + | "exists2"; "'"; pattern LEVEL "0"; ","; term LEVEL "200"; "&"; term LEVEL + "200" + | "exists2"; name; ":"; term LEVEL "200"; ","; term LEVEL "200"; "&"; term + LEVEL "200" + | "exists2"; name; ","; term LEVEL "200"; "&"; term LEVEL "200" + | "exists"; "!"; open_binders; ","; term LEVEL "200" + | "exists"; open_binders; ","; term LEVEL "200" + | "forall"; open_binders; ","; term LEVEL "200" + | "fun"; open_binders; "=>"; term LEVEL "200" + | "let"; "fix"; fix_decl; "in"; term LEVEL "200" + | "let"; "cofix"; cofix_body; "in"; term LEVEL "200" + | "let"; "'"; pattern LEVEL "200"; ":="; term LEVEL "200"; "in"; term LEVEL + "200" + | "let"; "'"; pattern LEVEL "200"; ":="; term LEVEL "200"; case_type; "in"; + term LEVEL "200" + | "let"; "'"; pattern LEVEL "200"; "in"; pattern LEVEL "200"; ":="; term + LEVEL "200"; case_type; "in"; term LEVEL "200" + | "let"; name; binders; let_type_cstr; ":="; term LEVEL "200"; "in"; term + LEVEL "200" + | "let"; [ "("; LIST0 name SEP ","; ")" | "()" ]; as_return_type; ":="; + term LEVEL "200"; "in"; term LEVEL "200" + | "if"; term LEVEL "200"; as_return_type; "then"; term LEVEL "200"; "else"; + term LEVEL "200" + | "fix"; fix_decls + | "cofix"; cofix_decls ] ] + +Entry constr is +[ LEFTA + [ "@"; global; univ_annot + | term LEVEL "8" ] ] + +Entry lconstr is +[ LEFTA + [ term LEVEL "200" ] ] + +Entry term is +[ "200" RIGHTA + [ binder_constr ] +| "100" RIGHTA + [ SELF; "<:"; term LEVEL "200" + | SELF; "<<:"; term LEVEL "200" + | SELF; ":>"; term LEVEL "200" + | SELF; ":"; term LEVEL "200" ] +| "99" RIGHTA + [ SELF; "->"; term LEVEL "200" ] +| "95" RIGHTA + [ SELF; "<->"; NEXT ] +| "90" RIGHTA + [ ] +| "85" RIGHTA + [ SELF; "\\/"; term LEVEL "85" ] +| "80" RIGHTA + [ SELF; "/\\"; term LEVEL "80" ] +| "75" RIGHTA + [ "~"; term LEVEL "75" ] +| "70" RIGHTA + [ SELF; ">"; NEXT + | SELF; ">="; NEXT + | SELF; "<"; NEXT; "<="; NEXT + | SELF; "<"; NEXT; "<"; NEXT + | SELF; "<"; NEXT + | SELF; "<="; NEXT; "<"; NEXT + | SELF; "<="; NEXT; "<="; NEXT + | SELF; "<="; NEXT + | SELF; "<>"; NEXT; ":>"; NEXT + | SELF; "<>"; NEXT + | SELF; "="; NEXT; "="; NEXT + | SELF; "="; NEXT; ":>"; NEXT + | SELF; "="; NEXT ] +| "60" RIGHTA + [ SELF; "++"; term LEVEL "60" + | SELF; "::"; term LEVEL "60" ] +| "50" LEFTA + [ SELF; "||"; NEXT + | SELF; "-"; NEXT + | SELF; "+"; NEXT ] +| "40" LEFTA + [ SELF; "&&"; NEXT + | SELF; "/"; NEXT + | SELF; "*"; NEXT ] +| "35" RIGHTA + [ "/"; term LEVEL "35" + | "-"; term LEVEL "35" ] +| "30" RIGHTA + [ SELF; "^"; term LEVEL "30" ] +| LEFTA + [ IDENT "XX"; FIELD "xxx"; LIST0 arg ] +| "10" LEFTA + [ SELF; LIST1 arg + | "@"; global; univ_annot; LIST0 NEXT + | "@"; pattern_ident; LIST1 identref ] +| "9" LEFTA + [ ".."; term LEVEL "0"; ".." ] +| "8" LEFTA + [ ] +| "1" LEFTA + [ SELF; ".("; "@"; global; univ_annot; LIST0 (term LEVEL "9"); ")" + | SELF; ".("; global; univ_annot; LIST0 arg; ")" + | SELF; "%"; IDENT ] +| "0" LEFTA + [ "lib"; ":"; "@"; qualified_name + | "lib"; ":"; qualified_name + | QUOTATION "lp:" + | IDENT "ltac"; ":"; "("; ltac_expr; ")" + | "("; term LEVEL "200"; ","; term LEVEL "200"; ","; LIST1 (term LEVEL + "200") SEP ","; ")" + | "("; term LEVEL "200"; ","; term LEVEL "200"; ")" + | "("; term LEVEL "200"; ")" + | "{|"; record_declaration; '|}' + | "{"; "'"; pattern LEVEL "0"; "&"; term LEVEL "200"; "&"; term LEVEL + "200"; "}" + | "{"; "'"; pattern LEVEL "0"; "&"; term LEVEL "200"; "}" + | "{"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; "&"; term LEVEL + "200"; "&"; term LEVEL "200"; "}" + | "{"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; "&"; term LEVEL + "200"; "}" + | "{"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; "|"; term LEVEL + "200"; "&"; term LEVEL "200"; "}" + | "{"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; "|"; term LEVEL + "200"; "}" + | "{"; "'"; pattern LEVEL "0"; "|"; term LEVEL "200"; "&"; term LEVEL + "200"; "}" + | "{"; "'"; pattern LEVEL "0"; "|"; term LEVEL "200"; "}" + | "{"; term LEVEL "99"; "&"; term LEVEL "200"; "&"; term LEVEL "200"; "}" + | "{"; term LEVEL "99"; "&"; term LEVEL "200"; "}" + | "{"; term LEVEL "99"; ":"; term LEVEL "200"; "&"; term LEVEL "200"; "&"; + term LEVEL "200"; "}" + | "{"; term LEVEL "99"; ":"; term LEVEL "200"; "&"; term LEVEL "200"; "}" + | "{"; term LEVEL "99"; ":"; term LEVEL "200"; "|"; term LEVEL "200"; "&"; + term LEVEL "200"; "}" + | "{"; term LEVEL "99"; ":"; term LEVEL "200"; "|"; term LEVEL "200"; "}" + | "{"; term LEVEL "99"; "|"; term LEVEL "200"; "&"; term LEVEL "200"; "}" + | "{"; term LEVEL "99"; "|"; term LEVEL "200"; "}" + | "{"; term LEVEL "99"; "}" + | "{"; binder_constr; "}" + | "`{"; term LEVEL "200"; "}" + | "`("; term LEVEL "200"; ")" + | NUMBER + | atomic_constr + | term_match + | ident; fields; univ_annot + | ident; univ_annot + | test_array_opening; "["; "|"; array_elems; "|"; lconstr; type_cstr; + test_array_closing; "|"; "]"; univ_annot ] ] + +[attribute elpi.loc + (leaf-loc + File "./tests/test_tactic.v", line 311, column 12, character 6723:)] +skip int 1 +skip str 33 +skip trm (global (indt «bool»)) +[attribute elpi.loc + (leaf-loc + File "./tests/test_tactic.v", line 311, column 12, character 6723:)] +skip int 1 +skip str 33 +skip trm (global (indt «bool»)) +nat -> bool -> True + : Prop +[attribute elpi.loc + (leaf-loc + File "./tests/test_tactic.v", line 320, column 12, character 6909:)] +[attribute elpi.loc + (leaf-loc + File "./tests/test_tactic.v", line 320, column 12, character 6909:)] +[attribute elpi.loc + (leaf-loc + File "./tests/test_tactic.v", line 324, column 30, character 7010:)] +[attribute elpi.loc + (leaf-loc + File "./tests/test_tactic.v", line 324, column 30, character 7010:)] +[attribute elpi.loc + (leaf-loc File "./tests/test_tactic.v", line 332, column 7, character 7186:)] +[attribute elpi.loc + (leaf-loc File "./tests/test_tactic.v", line 332, column 7, character 7186:)] +Query assignments: + F = app [global (const «nat_of_bool»), global (indc «true»)] +H +goal [] (X0) (global (indt «True»)) X1 [trm (global (const «H»))] +goal [] (X0) (global (indt «True»)) X1 + [trm + (app + [global (indt «eq»), global (indt «True»), global (const «H»), + global (const «H»)])] +goal [] (X0) (global (indt «True»)) X1 [trm (global (const «H»))] +Query assignments: + Y = global (indc «is_O») +c0 \ app [global (const «nat_of_bool»), c0] +Query assignments: + Res = app + [global (const «map»), global (indt «bool»), global (indt «nat»), + fun `x` (global (indt «bool»)) c0 \ + app [global (const «nat_of_bool»), c0], + app + [global (indc «cons»), global (indt «bool»), global (indc «true»), + app [global (indc «nil»), global (indt «bool»)]]] + _uvk_238_ = X0 + _uvk_239_ = X1 +COQC tests/test_libobject_A.v +COQC tests/test_glob.v +Query assignments: + Res = app + [global (const «Z_of_nat»), + app [global (const «nat_of_bool»), global (indc «true»)]] +Query assignments: + Y = app + [global (indc «is_S»), app [global (indc «S»), global (indc «O»)], + app [global (indc «is_S»), global (indc «O»), global (indc «is_O»)]] +is_pred = +fun (n : nat) (Pn : is_nat n) => +match + Pn in (is_nat n0) return (is_nat match n0 with + | 0 => n + | S u => u + end) +with +| is_O => Pn +| is_S _ Pu => Pu +end + : forall n : nat, is_nat n -> is_nat (Nat.pred n) + +Arguments is_pred n%nat_scope Pn +is_pred : is_nat2nat Nat.pred + : is_nat2nat Nat.pred +is_predn : is_nat2nat predn + : is_nat2nat predn +is_add : is_nat2nat2nat Nat.add + : is_nat2nat2nat Nat.add +Inductive is_bla : forall H : nat, is_nat H -> bla H -> Type := + is_Bla : forall H : nat, is_nat H -> is_bla 0 is_O (Bla H) + | is_Blu : forall (n : nat) (Pn : is_nat n) (H : bla n), + is_bla n Pn H -> is_bla 1 (is_S 0 is_O) (Blu n H). + +Arguments is_bla _%nat_scope P_ s1 +Arguments is_Bla _%nat_scope P_ +Arguments is_Blu n%nat_scope Pn _ P_ +c0 \ +app [global (const «Z_of_nat»), app [global (const «nat_of_bool»), c0]] +Query assignments: + Res = app + [global (const «map»), global (indt «bool»), global (const «Z»), + fun `x` (global (indt «bool»)) c0 \ + app + [global (const «Z_of_nat»), app [global (const «nat_of_bool»), c0]], + app + [global (indc «cons»), global (indt «bool»), global (indc «true»), + app [global (indc «nil»), global (indt «bool»)]]] + _uvk_274_ = X0 + _uvk_275_ = X1 +d1 + : nat +d2 + : nat +i1 + : Prop +i2 + : Prop +k1 + : i1 +k2 + : i2 +r1 + : Set +r2 + : Type +f1 + : r1 -> nat +f2 + : r2 -> nat +COQC tests/test_link_perf.v +Query assignments: + PDb = [tc-instance (const «reali_is_fin_length») 0, + tc-instance (const «reali_is_vec_length») 0, + tc-instance (const «reali_is_predn») 0, + tc-instance (const «reali_is_plus'») 0, + tc-instance (const «reali_is_nat_S») 0, + tc-instance (const «reali_is_nat_O») 0, + tc-instance (const «reali_is_prim_float») 0, + tc-instance (const «reali_is_prim_float_PF») 0, + tc-instance (const «reali_is_nest_ConsN») 0, + tc-instance (const «reali_is_w_via») 0, + tc-instance (const «reali_is_val_V») 0, + tc-instance (const «reali_is_peano») 0, + tc-instance (const «reali_is_large») 0, + tc-instance (const «reali_is_empty») 0, + tc-instance (const «reali_is_iota_Why») 0, + tc-instance (const «reali_is_nat2nat2nat») 0, + tc-instance (const «reali_is_unit_tt») 0, + tc-instance (const «reali_is_nest_NilN») 0, + tc-instance (const «reali_is_prim_int») 0, + tc-instance (const «reali_is_vect_VCons») 0, + tc-instance (const «reali_is_large_K26») 0, + tc-instance (const «reali_is_large_K25») 0, + tc-instance (const «reali_is_large_K24») 0, + tc-instance (const «reali_is_large_K23») 0, + tc-instance (const «reali_is_large_K22») 0, + tc-instance (const «reali_is_large_K21») 0, + tc-instance (const «reali_is_large_K20») 0, + tc-instance (const «reali_is_large_K19») 0, + tc-instance (const «reali_is_large_K18») 0, + tc-instance (const «reali_is_large_K17») 0, + tc-instance (const «reali_is_large_K16») 0, + tc-instance (const «reali_is_large_K15») 0, + tc-instance (const «reali_is_large_K14») 0, + tc-instance (const «reali_is_large_K13») 0, + tc-instance (const «reali_is_large_K12») 0, + tc-instance (const «reali_is_large_K11») 0, + tc-instance (const «reali_is_large_K10») 0, + tc-instance (const «reali_is_eq_eq_refl») 0, + tc-instance (const «Coverage.reali_is_unit_tt») 0, + tc-instance (const «reali_is_large_K9») 0, + tc-instance (const «reali_is_large_K8») 0, + tc-instance (const «reali_is_large_K7») 0, + tc-instance (const «reali_is_large_K6») 0, + tc-instance (const «reali_is_large_K5») 0, + tc-instance (const «reali_is_large_K4») 0, + tc-instance (const «reali_is_large_K3») 0, + tc-instance (const «reali_is_large_K2») 0, + tc-instance (const «reali_is_large_K1») 0, + tc-instance (const «reali_is_seq_Cons») 0, + tc-instance (const «reali_is_ord_mkOrd») 0, + tc-instance (const «reali_is_peano_Zero») 0, + tc-instance (const «reali_is_peano_Succ») 0, + tc-instance (const «reali_is_fo_record») 0, + tc-instance (const «reali_is_vec_vcons») 0, + tc-instance (const «reali_is_quasidn») 0, + tc-instance (const «reali_is_vect_VNil») 0, + tc-instance (const «reali_is_seq_Nil») 0, + tc-instance (const «reali_is_zeta_Envelope») 0, + tc-instance (const «reali_is_list_cons») 0, + tc-instance (const «exports.reali_is_eq») 0, + tc-instance (const «reali_is_beta_Redex») 0, + tc-instance (const «reali_is_unit») 0, + tc-instance (const «reali_is_test») 0, + tc-instance (const «reali_is_prod») 0, + tc-instance (const «reali_is_pred») 0, + tc-instance (const «reali_is_list») 0, + tc-instance (const «reali_is_bool») 0, + tc-instance (const «reali_is_sigma_bool_Build_sigma_bool») 0, + tc-instance (const «reali_is_option_Some») 0, + tc-instance (const «reali_is_option_None») 0, + tc-instance (const «reali_is_box_peano») 0, + tc-instance (const «reali_is_nat2nat») 0, + tc-instance (const «reali_is_sigma_bool») 0, + tc-instance (const «reali_is_zeta») 0, + tc-instance (const «reali_is_vect») 0, + tc-instance (const «Coverage.reali_is_unit») 0, + tc-instance (const «reali_is_rose») 0, + tc-instance (const «reali_is_pair») 0, + tc-instance (const «reali_is_ord2») 0, + tc-instance (const «reali_is_nest») 0, + tc-instance (const «reali_is_iota») 0, + tc-instance (const «reali_is_enum») 0, + tc-instance (const «Coverage.reali_is_bool») 0, + tc-instance (const «reali_is_beta») 0, + tc-instance (const «reali_is_vec_length_type») 0, + tc-instance (const «reali_is_vec_length_rec») 0, + tc-instance (const «reali_is_pr_record») 0, + tc-instance (const «reali_is_rose_Node») 0, + tc-instance (const «reali_is_rose_Leaf») 0, + tc-instance (const «reali_is_rose_p_Nodep») 0, + tc-instance (const «reali_is_rose_p_Leafp») 0, + tc-instance (const «reali_is_eq») 0, + tc-instance (const «reali_is_is_list») 0, + tc-instance (const «reali_is_w») 0, + tc-instance (const «reali_is_vec_vnil») 0, + tc-instance (const «reali_is_dep_record_Build_dep_record») 0, + tc-instance (const «reali_is_pr_record_Build_pr_record») 0, + tc-instance (const «reali_is_rose_o_Nodeo») 0, + tc-instance (const «reali_is_rose_o_Leafo») 0, + tc-instance (const «reali_is_weirdn») 0, + tc-instance (const «reali_is_pair_Comma») 0, + tc-instance (const «reali_is_dep_record») 0, + tc-instance (const «reali_is_is_zero») 0, + tc-instance (const «reali_is_pa_record») 0, + tc-instance (const «reali_is_fin_FS») 0, + tc-instance (const «reali_is_fin_FO») 0, + tc-instance (const «reali_is_bool_true») 0, + tc-instance (const «reali_is_divmod») 0, + tc-instance (const «reali_is_prim_int_PI») 0, + tc-instance (const «reali_is_list_nil») 0, + tc-instance (const «reali_is_vec») 0, + tc-instance (const «reali_is_snd») 0, + tc-instance (const «reali_is_nat») 0, + tc-instance (const «reali_is_fst») 0, + tc-instance (const «reali_is_fin») 0, + tc-instance (const «reali_is_div») 0, + tc-instance (const «reali_is_bla») 0, + tc-instance (const «reali_is_add») 0, + tc-instance (const «reali_is_rose_p») 0, + tc-instance (const «reali_is_rose_o») 0, + tc-instance (const «reali_is_is_list_is_nil») 0, + tc-instance (const «reali_is_option») 0, + tc-instance (const «reali_is_is_leq») 0, + tc-instance (const «reali_is_bool_false») 0, + tc-instance (const «reali_is_prod_pair») 0, + tc-instance (const «Coverage.reali_is_bool_true») 0, + tc-instance (const «reali_is_val») 0, + tc-instance (const «reali_is_seq») 0, + tc-instance (const «reali_is_ord») 0, + tc-instance (const «reali_is_dyn») 0, + tc-instance (const «reali_is_is_list_is_cons») 0, + tc-instance (const «reali_is_fo_record_Build_fo_record») 0, + tc-instance (const «Coverage.reali_is_bool_false») 0, + tc-instance (const «reali_is_enum_E3») 0, + tc-instance (const «reali_is_enum_E2») 0, + tc-instance (const «reali_is_enum_E1») 0, + tc-instance (const «reali_is_dyn_box») 0, + tc-instance (const «exports.reali_is_eq_eq_refl») 0, + tc-instance (const «reali_is_box_peano_Box») 0, + tc-instance (const «reali_is_ord2_mkOrd2») 0, + tc-instance (const «reali_is_bla_Blu») 0, + tc-instance (const «reali_is_bla_Bla») 0, + tc-instance (const «reali_is_pa_record_Build_pa_record») 0] + Spilled_1 = indt «reali_db» +File "./tests/test_param1.v", line 158, characters 0-30: +Warning: Not a truly recursive fixpoint. [non-recursive,fixpoints,default] +Query assignments: + R = prod `r` (global (const «ring»)) c0 \ + prod `x` (app [global (const «carr»), c0]) c1 \ + app [global (indt «eq»), app [global (const «carr»), c0], c1, c1] + T = sort (typ «elpi.tests.test_elaborator.75») + _uvk_310_ = c0 \ c1 \ +X0 c0 c1 +Universe constraints: +UNIVERSES: + {elpi.tests.test_elaborator.75 elpi.tests.test_elaborator.74 + elpi.tests.test_elaborator.73 elpi.tests.test_elaborator.72 + elpi.tests.test_elaborator.70} |= + ring.u0 <= elpi.tests.test_elaborator.70 + elpi.tests.test_elaborator.70 <= elpi.tests.test_elaborator.75 + elpi.tests.test_elaborator.73 <= elpi.tests.test_elaborator.74 + elpi.tests.test_elaborator.74 <= elpi.tests.test_elaborator.75 +ALGEBRAIC UNIVERSES: + {} +UNDEFINED UNIVERSES: + +SORTS: + +WEAK CONSTRAINTS: + + +Finished transaction in 12.197 secs (12.158u,0.009s) (successful) +Query assignments: + T = global (const «int») + X = primitive (uint63 99) +File "./tests/test_param1.v", line 176, characters 0-66: +Warning: Not a truly recursive fixpoint. [non-recursive,fixpoints,default] +COQC tests/test_map.v +Query assignments: + T = global (const «float») + X = primitive (float64 993000) +empty_map : map empty + : map empty +unit_map : map unit + : map unit +peano_map : map peano + : map peano +option_map : map1 option + : map1 option +pair_map +: +forall A B : Type, +(A -> B) -> forall C D : Type, (C -> D) -> pair A C -> pair B D + : forall A B : Type, + (A -> B) -> forall C D : Type, (C -> D) -> pair A C -> pair B D +seq_map : map1 seq + : map1 seq +rose_map : map1 rose + : map1 rose +vect_map +: +forall A B : Type, (A -> B) -> forall i : peano, vect A i -> vect B i + : forall A B : Type, (A -> B) -> forall i : peano, vect A i -> vect B i +dyn_map : map dyn + : map dyn +zeta_map : map1 zeta + : map1 zeta +iota_map : map iota + : map iota +large_map : map large + : map large +prim_int_map : map prim_int + : map prim_int +prim_float_map : map prim_float + : map prim_float +pa_record_map : map1 pa_record + : map1 pa_record +pr_record_map : map1 pr_record + : map1 pr_record +COQC tests/test_lens_laws.v +Query assignments: + _uvk_323_ = X0 +COQC tests/test_link_order1.v +_f1_view_set : view_set _f1 + : view_set _f1 +_f2_view_set : view_set _f2 + : view_set _f2 +_f3_view_set : forall A : Type, view_set _f3 + : forall A : Type, view_set _f3 +_f4_view_set : forall A : Type, view_set _f4 + : forall A : Type, view_set _f4 +_pf3_view_set : forall A : Type, view_set _pf3 + : forall A : Type, view_set _pf3 +_pf4_view_set : forall A : Type, view_set _pf4 + : forall A : Type, view_set _pf4 +_f1_set_set : set_set _f1 + : set_set _f1 +_f2_set_set : set_set _f2 + : set_set _f2 +_f3_set_set : forall A : Type, set_set _f3 + : forall A : Type, set_set _f3 +_f4_set_set : forall A : Type, set_set _f4 + : forall A : Type, set_set _f4 +_pf3_set_set : forall A : Type, set_set _pf3 + : forall A : Type, set_set _pf3 +_pf4_set_set : forall A : Type, set_set _pf4 + : forall A : Type, set_set _pf4 +_f1_set_view : set_view _f1 + : set_view _f1 +_f2_set_view : set_view _f2 + : set_view _f2 +_f3_set_view : forall A : Type, set_view _f3 + : forall A : Type, set_view _f3 +_f4_set_view : forall A : Type, set_view _f4 + : forall A : Type, set_view _f4 +_pf3_set_view : forall A : Type, set_view _pf3 + : forall A : Type, set_view _pf3 +_pf4_set_view : forall A : Type, set_view _pf4 + : forall A : Type, set_view _pf4 +_f1_f2_exchange : exchange _f1 _f2 + : exchange _f1 _f2 +_f2_f1_exchange : exchange _f2 _f1 + : exchange _f2 _f1 +_f3_f4_exchange : forall A : Type, exchange _f3 _f4 + : forall A : Type, exchange _f3 _f4 +_f4_f3_exchange : forall A : Type, exchange _f4 _f3 + : forall A : Type, exchange _f4 _f3 +_pf3_pf4_exchange : forall A : Type, exchange _pf3 _pf4 + : forall A : Type, exchange _pf3 _pf4 +_pf4_pf3_exchange : forall A : Type, exchange _pf4 _pf3 + : forall A : Type, exchange _pf4 _pf3 +COQC tests/test_fields.v +COQC tests/test_link_order2.v +empty_fields_t : positive -> Type + : positive -> Type +empty_fields : forall n : empty, empty_fields_t (empty_tag n) + : forall n : empty, empty_fields_t (empty_tag n) +empty_construct +: +forall p : positive, empty_fields_t p -> Datatypes.option empty + : forall p : positive, empty_fields_t p -> Datatypes.option empty +empty_constructP +: +forall n : empty, +empty_construct (empty_tag n) (empty_fields n) = Datatypes.Some n + : forall n : empty, + empty_construct (empty_tag n) (empty_fields n) = Datatypes.Some n +unit_fields_t : positive -> Type + : positive -> Type +unit_fields : forall n : unit, unit_fields_t (unit_tag n) + : forall n : unit, unit_fields_t (unit_tag n) +unit_construct +: +forall p : positive, unit_fields_t p -> Datatypes.option unit + : forall p : positive, unit_fields_t p -> Datatypes.option unit +unit_constructP +: +forall n : unit, +unit_construct (unit_tag n) (unit_fields n) = Datatypes.Some n + : forall n : unit, + unit_construct (unit_tag n) (unit_fields n) = Datatypes.Some n +peano_fields_t : positive -> Type + : positive -> Type +peano_fields : forall n : peano, peano_fields_t (peano_tag n) + : forall n : peano, peano_fields_t (peano_tag n) +peano_construct +: +forall p : positive, peano_fields_t p -> Datatypes.option peano + : forall p : positive, peano_fields_t p -> Datatypes.option peano +peano_constructP +: +forall n : peano, +peano_construct (peano_tag n) (peano_fields n) = Datatypes.Some n + : forall n : peano, + peano_construct (peano_tag n) (peano_fields n) = Datatypes.Some n +option_fields_t : Type -> positive -> Type + : Type -> positive -> Type +option_fields +: +forall (A : Type) (l : option A), option_fields_t A (option_tag A l) + : forall (A : Type) (l : option A), option_fields_t A (option_tag A l) +option_construct +: +forall (A : Type) (p : positive), +option_fields_t A p -> Datatypes.option (option A) + : forall (A : Type) (p : positive), + option_fields_t A p -> Datatypes.option (option A) +option_constructP +: +forall (A : Type) (l : option A), +option_construct A (option_tag A l) (option_fields A l) = Datatypes.Some l + : forall (A : Type) (l : option A), + option_construct A (option_tag A l) (option_fields A l) = + Datatypes.Some l +pair_fields_t : Type -> Type -> positive -> Type + : Type -> Type -> positive -> Type +pair_fields +: +forall (A B : Type) (l : pair A B), pair_fields_t A B (pair_tag A B l) + : forall (A B : Type) (l : pair A B), pair_fields_t A B (pair_tag A B l) +pair_construct +: +forall (A B : Type) (p : positive), +pair_fields_t A B p -> Datatypes.option (pair A B) + : forall (A B : Type) (p : positive), + pair_fields_t A B p -> Datatypes.option (pair A B) +pair_constructP +: +forall (A B : Type) (l : pair A B), +pair_construct A B (pair_tag A B l) (pair_fields A B l) = Datatypes.Some l + : forall (A B : Type) (l : pair A B), + pair_construct A B (pair_tag A B l) (pair_fields A B l) = + Datatypes.Some l +seq_fields_t : Type -> positive -> Type + : Type -> positive -> Type +seq_fields : forall (A : Type) (l : seq A), seq_fields_t A (seq_tag A l) + : forall (A : Type) (l : seq A), seq_fields_t A (seq_tag A l) +seq_construct +: +forall (A : Type) (p : positive), +seq_fields_t A p -> Datatypes.option (seq A) + : forall (A : Type) (p : positive), + seq_fields_t A p -> Datatypes.option (seq A) +seq_constructP +: +forall (A : Type) (l : seq A), +seq_construct A (seq_tag A l) (seq_fields A l) = Datatypes.Some l + : forall (A : Type) (l : seq A), + seq_construct A (seq_tag A l) (seq_fields A l) = Datatypes.Some l +rose_fields_t : Type -> positive -> Type + : Type -> positive -> Type +rose_fields : forall (A : Type) (l : rose A), rose_fields_t A (rose_tag A l) + : forall (A : Type) (l : rose A), rose_fields_t A (rose_tag A l) +rose_construct +: +forall (A : Type) (p : positive), +rose_fields_t A p -> Datatypes.option (rose A) + : forall (A : Type) (p : positive), + rose_fields_t A p -> Datatypes.option (rose A) +rose_constructP +: +forall (A : Type) (l : rose A), +rose_construct A (rose_tag A l) (rose_fields A l) = Datatypes.Some l + : forall (A : Type) (l : rose A), + rose_construct A (rose_tag A l) (rose_fields A l) = Datatypes.Some l +beta_fields_t : Type -> positive -> Type + : Type -> positive -> Type +beta_fields : forall (A : Type) (l : beta A), beta_fields_t A (beta_tag A l) + : forall (A : Type) (l : beta A), beta_fields_t A (beta_tag A l) +beta_construct +: +forall (A : Type) (p : positive), +beta_fields_t A p -> Datatypes.option (beta A) + : forall (A : Type) (p : positive), + beta_fields_t A p -> Datatypes.option (beta A) +beta_constructP +: +forall (A : Type) (l : beta A), +beta_construct A (beta_tag A l) (beta_fields A l) = Datatypes.Some l + : forall (A : Type) (l : beta A), + beta_construct A (beta_tag A l) (beta_fields A l) = Datatypes.Some l +large_fields_t : positive -> Type + : positive -> Type +large_fields : forall n : large, large_fields_t (large_tag n) + : forall n : large, large_fields_t (large_tag n) +large_construct +: +forall p : positive, large_fields_t p -> Datatypes.option large + : forall p : positive, large_fields_t p -> Datatypes.option large +large_constructP +: +forall n : large, +large_construct (large_tag n) (large_fields n) = Datatypes.Some n + : forall n : large, + large_construct (large_tag n) (large_fields n) = Datatypes.Some n +prim_int_fields_t : positive -> Type + : positive -> Type +prim_int_fields : forall n : prim_int, prim_int_fields_t (prim_int_tag n) + : forall n : prim_int, prim_int_fields_t (prim_int_tag n) +prim_int_construct +: +forall p : positive, prim_int_fields_t p -> Datatypes.option prim_int + : forall p : positive, prim_int_fields_t p -> Datatypes.option prim_int +prim_int_constructP +: +forall n : prim_int, +prim_int_construct (prim_int_tag n) (prim_int_fields n) = Datatypes.Some n + : forall n : prim_int, + prim_int_construct (prim_int_tag n) (prim_int_fields n) = + Datatypes.Some n +pa_record_fields_t : Type -> positive -> Type + : Type -> positive -> Type +pa_record_fields +: +forall (A : Type) (l : pa_record A), pa_record_fields_t A (pa_record_tag A l) + : forall (A : Type) (l : pa_record A), + pa_record_fields_t A (pa_record_tag A l) +pa_record_construct +: +forall (A : Type) (p : positive), +pa_record_fields_t A p -> Datatypes.option (pa_record A) + : forall (A : Type) (p : positive), + pa_record_fields_t A p -> Datatypes.option (pa_record A) +pa_record_constructP +: +forall (A : Type) (l : pa_record A), +pa_record_construct A (pa_record_tag A l) (pa_record_fields A l) = +Datatypes.Some l + : forall (A : Type) (l : pa_record A), + pa_record_construct A (pa_record_tag A l) (pa_record_fields A l) = + Datatypes.Some l +pr_record_fields_t : Type -> positive -> Type + : Type -> positive -> Type +pr_record_fields +: +forall (A : Type) (l : pr_record A), pr_record_fields_t A (pr_record_tag A l) + : forall (A : Type) (l : pr_record A), + pr_record_fields_t A (pr_record_tag A l) +pr_record_construct +: +forall (A : Type) (p : positive), +pr_record_fields_t A p -> Datatypes.option (pr_record A) + : forall (A : Type) (p : positive), + pr_record_fields_t A p -> Datatypes.option (pr_record A) +pr_record_constructP +: +forall (A : Type) (l : pr_record A), +pr_record_construct A (pr_record_tag A l) (pr_record_fields A l) = +Datatypes.Some l + : forall (A : Type) (l : pr_record A), + pr_record_construct A (pr_record_tag A l) (pr_record_fields A l) = + Datatypes.Some l +sigma_bool_fields_t : positive -> Type + : positive -> Type +sigma_bool_fields +: +forall l : sigma_bool, sigma_bool_fields_t (sigma_bool_tag l) + : forall l : sigma_bool, sigma_bool_fields_t (sigma_bool_tag l) +sigma_bool_construct +: +forall p : positive, sigma_bool_fields_t p -> Datatypes.option sigma_bool + : forall p : positive, + sigma_bool_fields_t p -> Datatypes.option sigma_bool +sigma_bool_constructP +: +forall l : sigma_bool, +sigma_bool_construct (sigma_bool_tag l) (sigma_bool_fields l) = +Datatypes.Some l + : forall l : sigma_bool, + sigma_bool_construct (sigma_bool_tag l) (sigma_bool_fields l) = + Datatypes.Some l +ord_fields_t : peano -> positive -> Type + : peano -> positive -> Type +ord_fields : forall (p : peano) (o : ord p), ord_fields_t p (ord_tag p o) + : forall (p : peano) (o : ord p), ord_fields_t p (ord_tag p o) +ord_construct +: +forall (n : peano) (p : positive), +ord_fields_t n p -> Datatypes.option (ord n) + : forall (n : peano) (p : positive), + ord_fields_t n p -> Datatypes.option (ord n) +ord_constructP +: +forall (p : peano) (o : ord p), +ord_construct p (ord_tag p o) (ord_fields p o) = Datatypes.Some o + : forall (p : peano) (o : ord p), + ord_construct p (ord_tag p o) (ord_fields p o) = Datatypes.Some o +ord2_fields_t : peano -> positive -> Type + : peano -> positive -> Type +ord2_fields : forall (p : peano) (o : ord2 p), ord2_fields_t p (ord2_tag p o) + : forall (p : peano) (o : ord2 p), ord2_fields_t p (ord2_tag p o) +ord2_construct +: +forall (n : peano) (p : positive), +ord2_fields_t n p -> Datatypes.option (ord2 n) + : forall (n : peano) (p : positive), + ord2_fields_t n p -> Datatypes.option (ord2 n) +ord2_constructP +: +forall (p : peano) (o : ord2 p), +ord2_construct p (ord2_tag p o) (ord2_fields p o) = Datatypes.Some o + : forall (p : peano) (o : ord2 p), + ord2_construct p (ord2_tag p o) (ord2_fields p o) = Datatypes.Some o +val_fields_t : positive -> Type + : positive -> Type +val_fields : forall i : val, val_fields_t (val_tag i) + : forall i : val, val_fields_t (val_tag i) +val_construct : forall p : positive, val_fields_t p -> Datatypes.option val + : forall p : positive, val_fields_t p -> Datatypes.option val +val_constructP +: +forall v : val, val_construct (val_tag v) (val_fields v) = Datatypes.Some v + : forall v : val, + val_construct (val_tag v) (val_fields v) = Datatypes.Some v +COQC tests/test_bcongr.v +COQC tests/test_link_order3.v +unit_bcongr_tt : reflect (tt = tt) true + : reflect (tt = tt) true +peano_bcongr_Zero : reflect (Zero = Zero) true + : reflect (Zero = Zero) true +peano_bcongr_Succ +: +forall (x y : peano) (b : bool), +reflect (x = y) b -> reflect (Succ x = Succ y) b + : forall (x y : peano) (b : bool), + reflect (x = y) b -> reflect (Succ x = Succ y) b +option_bcongr_None : forall A : Type, reflect (None A = None A) true + : forall A : Type, reflect (None A = None A) true +option_bcongr_Some +: +forall (A : Type) (x y : A) (b : bool), +reflect (x = y) b -> reflect (Some A x = Some A y) b + : forall (A : Type) (x y : A) (b : bool), + reflect (x = y) b -> reflect (Some A x = Some A y) b +pair_bcongr_Comma +: +forall (A B : Type) (x1 x2 : A) (b1 : bool), +reflect (x1 = x2) b1 -> +forall (y1 y2 : B) (b2 : bool), +reflect (y1 = y2) b2 -> +reflect (Comma A B x1 y1 = Comma A B x2 y2) (b1 && b2) + : forall (A B : Type) (x1 x2 : A) (b1 : bool), + reflect (x1 = x2) b1 -> + forall (y1 y2 : B) (b2 : bool), + reflect (y1 = y2) b2 -> + reflect (Comma A B x1 y1 = Comma A B x2 y2) (b1 && b2) +seq_bcongr_Nil : forall A : Type, reflect (Nil A = Nil A) true + : forall A : Type, reflect (Nil A = Nil A) true +seq_bcongr_Cons +: +forall (A : Type) (x y : A) (b1 : bool), +reflect (x = y) b1 -> +forall (xs ys : seq A) (b2 : bool), +reflect (xs = ys) b2 -> reflect (Cons A x xs = Cons A y ys) (b1 && b2) + : forall (A : Type) (x y : A) (b1 : bool), + reflect (x = y) b1 -> + forall (xs ys : seq A) (b2 : bool), + reflect (xs = ys) b2 -> reflect (Cons A x xs = Cons A y ys) (b1 && b2) +rose_bcongr_Leaf +: +forall (A : Type) (x y : A) (b : bool), +reflect (x = y) b -> reflect (Leaf A x = Leaf A y) b + : forall (A : Type) (x y : A) (b : bool), + reflect (x = y) b -> reflect (Leaf A x = Leaf A y) b +rose_bcongr_Node +: +forall (A : Type) (l1 l2 : seq (rose A)) (b : bool), +reflect (l1 = l2) b -> reflect (Node A l1 = Node A l2) b + : forall (A : Type) (l1 l2 : seq (rose A)) (b : bool), + reflect (l1 = l2) b -> reflect (Node A l1 = Node A l2) b +nest_bcongr_NilN : forall A : Type, reflect (NilN A = NilN A) true + : forall A : Type, reflect (NilN A = NilN A) true +nest_bcongr_ConsN +: +forall (A : Type) (x y : A) (b1 : bool), +reflect (x = y) b1 -> +forall (xs ys : nest (pair A A)) (b2 : bool), +reflect (xs = ys) b2 -> reflect (ConsN A x xs = ConsN A y ys) (b1 && b2) + : forall (A : Type) (x y : A) (b1 : bool), + reflect (x = y) b1 -> + forall (xs ys : nest (pair A A)) (b2 : bool), + reflect (xs = ys) b2 -> + reflect (ConsN A x xs = ConsN A y ys) (b1 && b2) +w_bcongr_via +: +forall (A : Type) (f g : A -> w A) (b : bool), +reflect (f = g) b -> reflect (via A f = via A g) b + : forall (A : Type) (f g : A -> w A) (b : bool), + reflect (f = g) b -> reflect (via A f = via A g) b +zeta_bcongr_Envelope +: +forall (A : Type) (x1 x2 : A) (b1 : bool), +reflect (x1 = x2) b1 -> +forall (y1 y2 : A) (b2 : bool), +reflect (y1 = y2) b2 -> +reflect (Envelope A x1 y1 = Envelope A x2 y2) (b1 && b2) + : forall (A : Type) (x1 x2 : A) (b1 : bool), + reflect (x1 = x2) b1 -> + forall (y1 y2 : A) (b2 : bool), + reflect (y1 = y2) b2 -> + reflect (Envelope A x1 y1 = Envelope A x2 y2) (b1 && b2) +beta_bcongr_Redex +: +forall (A : Type) (x y : A) (b : bool), +reflect (x = y) b -> reflect (Redex A x = Redex A y) b + : forall (A : Type) (x y : A) (b : bool), + reflect (x = y) b -> reflect (Redex A x = Redex A y) b +prim_int_bcongr_PI +: +forall (x y : PrimInt63.int) (b : bool), +reflect (x = y) b -> reflect (PI x = PI y) b + : forall (x y : PrimInt63.int) (b : bool), + reflect (x = y) b -> reflect (PI x = PI y) b +prim_float_bcongr_PF +: +forall (x y : PrimFloat.float) (b : bool), +reflect (x = y) b -> reflect (PF x = PF y) b + : forall (x y : PrimFloat.float) (b : bool), + reflect (x = y) b -> reflect (PF x = PF y) b +fo_record_bcongr_Build_fo_record +: +forall (x1 x2 : peano) (b1 : bool), +reflect (x1 = x2) b1 -> +forall (y1 y2 : unit) (b2 : bool), +reflect (y1 = y2) b2 -> +reflect ({| f1 := x1; f2 := y1 |} = {| f1 := x2; f2 := y2 |}) (b1 && b2) + : forall (x1 x2 : peano) (b1 : bool), + reflect (x1 = x2) b1 -> + forall (y1 y2 : unit) (b2 : bool), + reflect (y1 = y2) b2 -> + reflect ({| f1 := x1; f2 := y1 |} = {| f1 := x2; f2 := y2 |}) + (b1 && b2) +pa_record_bcongr_Build_pa_record +: +forall (A : Type) (x1 x2 : peano) (b1 : bool), +reflect (x1 = x2) b1 -> +forall (y1 y2 : A) (b2 : bool), +reflect (y1 = y2) b2 -> +reflect ({| f3 := x1; f4 := y1 |} = {| f3 := x2; f4 := y2 |}) (b1 && b2) + : forall (A : Type) (x1 x2 : peano) (b1 : bool), + reflect (x1 = x2) b1 -> + forall (y1 y2 : A) (b2 : bool), + reflect (y1 = y2) b2 -> + reflect ({| f3 := x1; f4 := y1 |} = {| f3 := x2; f4 := y2 |}) + (b1 && b2) +pr_record_bcongr_Build_pr_record +: +forall (A : Type) (x1 x2 : peano) (b1 : bool), +reflect (x1 = x2) b1 -> +forall (y1 y2 : A) (b2 : bool), +reflect (y1 = y2) b2 -> +reflect ({| pf3 := x1; pf4 := y1 |} = {| pf3 := x2; pf4 := y2 |}) (b1 && b2) + : forall (A : Type) (x1 x2 : peano) (b1 : bool), + reflect (x1 = x2) b1 -> + forall (y1 y2 : A) (b2 : bool), + reflect (y1 = y2) b2 -> + reflect ({| pf3 := x1; pf4 := y1 |} = {| pf3 := x2; pf4 := y2 |}) + (b1 && b2) +enum_bcongr_E1 : reflect (E1 = E1) true + : reflect (E1 = E1) true +enum_bcongr_E2 : reflect (E2 = E2) true + : reflect (E2 = E2) true +enum_bcongr_E3 : reflect (E3 = E3) true + : reflect (E3 = E3) true +COQC tests/test_param1_functor.v +COQC tests/test_link_order4.v +is_empty_functor : func is_empty + : func is_empty +is_unit_functor : func is_unit + : func is_unit +is_peano_functor : func is_peano + : func is_peano +is_option_functor : func1 is_option + : func1 is_option +is_pair_functor : func2 is_pair + : func2 is_pair +is_seq_functor : func1 is_seq + : func1 is_seq +is_rose_functor : func1 is_rose + : func1 is_rose +is_vect_functor +: +forall (A : Type) (P Q : A -> Type), +(forall y : A, P y -> Q y) -> +forall (i : peano) (p : is_peano i) (v : vect A i), +is_vect A P i p v -> is_vect A Q i p v + : forall (A : Type) (P Q : A -> Type), + (forall y : A, P y -> Q y) -> + forall (i : peano) (p : is_peano i) (v : vect A i), + is_vect A P i p v -> is_vect A Q i p v +is_dyn_functor : func is_dyn + : func is_dyn +is_zeta_functor : func1 is_zeta + : func1 is_zeta +is_beta_functor : func1 is_beta + : func1 is_beta +is_iota_functor : func is_iota + : func is_iota +is_large_functor : func is_large + : func is_large +is_prim_int_functor : func is_prim_int + : func is_prim_int +is_prim_float_functor : func is_prim_float + : func is_prim_float +is_fo_record_functor : func is_fo_record + : func is_fo_record +is_pa_record_functor : func1 is_pa_record + : func1 is_pa_record +is_pr_record_functor : func1 is_pr_record + : func1 is_pr_record +is_enum_functor : func is_enum + : func is_enum +is_ord_functor : forall (n : peano) (pn : is_peano n), func (is_ord n pn) + : forall (n : peano) (pn : is_peano n), func (is_ord n pn) +is_ord2_functor : forall (n : peano) (pn : is_peano n), func (is_ord2 n pn) + : forall (n : peano) (pn : is_peano n), func (is_ord2 n pn) +is_val_functor : func is_val + : func is_val +COQC tests/test_param1_congr.v +congr_is_tt : is_tt = is_tt + : is_tt = is_tt +congr_is_Zero : is_Zero = is_Zero + : is_Zero = is_Zero +congr_is_Succ +: +forall (x : peano) (p1 p2 : is_peano x), +p1 = p2 -> is_Succ x p1 = is_Succ x p2 + : forall (x : peano) (p1 p2 : is_peano x), + p1 = p2 -> is_Succ x p1 = is_Succ x p2 +congr_is_None +: +forall (A : Type) (PA : A -> Type), is_None A PA = is_None A PA + : forall (A : Type) (PA : A -> Type), is_None A PA = is_None A PA +congr_is_Some +: +forall (A : Type) (PA : A -> Type) (x : A) (p1 p2 : PA x), +p1 = p2 -> is_Some A PA x p1 = is_Some A PA x p2 + : forall (A : Type) (PA : A -> Type) (x : A) (p1 p2 : PA x), + p1 = p2 -> is_Some A PA x p1 = is_Some A PA x p2 +congr_is_Comma +: +forall (A : Type) (PA : A -> Type) (B : Type) (PB : B -> Type) + (x : A) (p1 p2 : PA x), +p1 = p2 -> +forall (y : B) (q1 q2 : PB y), +q1 = q2 -> is_Comma A PA B PB x p1 y q1 = is_Comma A PA B PB x p2 y q2 + : forall (A : Type) (PA : A -> Type) (B : Type) + (PB : B -> Type) (x : A) (p1 p2 : PA x), + p1 = p2 -> + forall (y : B) (q1 q2 : PB y), + q1 = q2 -> is_Comma A PA B PB x p1 y q1 = is_Comma A PA B PB x p2 y q2 +congr_is_Nil : forall (A : Type) (PA : A -> Type), is_Nil A PA = is_Nil A PA + : forall (A : Type) (PA : A -> Type), is_Nil A PA = is_Nil A PA +congr_is_Cons +: +forall (A : Type) (PA : A -> Type) (x : A) (p1 p2 : PA x), +p1 = p2 -> +forall (y : seq A) (q1 q2 : is_seq A PA y), +q1 = q2 -> is_Cons A PA x p1 y q1 = is_Cons A PA x p2 y q2 + : forall (A : Type) (PA : A -> Type) (x : A) (p1 p2 : PA x), + p1 = p2 -> + forall (y : seq A) (q1 q2 : is_seq A PA y), + q1 = q2 -> is_Cons A PA x p1 y q1 = is_Cons A PA x p2 y q2 +congr_is_Leaf +: +forall (A : Type) (PA : A -> Type) (x : A) (p1 p2 : PA x), +p1 = p2 -> is_Leaf A PA x p1 = is_Leaf A PA x p2 + : forall (A : Type) (PA : A -> Type) (x : A) (p1 p2 : PA x), + p1 = p2 -> is_Leaf A PA x p1 = is_Leaf A PA x p2 +congr_is_Node +: +forall (A : Type) (PA : A -> Type) (x : seq (rose A)) + (p1 p2 : is_seq (rose A) (is_rose A PA) x), +p1 = p2 -> is_Node A PA x p1 = is_Node A PA x p2 + : forall (A : Type) (PA : A -> Type) (x : seq (rose A)) + (p1 p2 : is_seq (rose A) (is_rose A PA) x), + p1 = p2 -> is_Node A PA x p1 = is_Node A PA x p2 +congr_is_via +: +forall (A : Type) (PA : A -> Type) (x : A -> w A) + (p1 p2 : forall H : A, PA H -> is_w A PA (x H)), +p1 = p2 -> is_via A PA x p1 = is_via A PA x p2 + : forall (A : Type) (PA : A -> Type) (x : A -> w A) + (p1 p2 : forall H : A, PA H -> is_w A PA (x H)), + p1 = p2 -> is_via A PA x p1 = is_via A PA x p2 +congr_is_VNil +: +forall (A : Type) (PA : A -> Type), is_VNil A PA = is_VNil A PA + : forall (A : Type) (PA : A -> Type), is_VNil A PA = is_VNil A PA +congr_is_Envelope +: +forall (A : Type) (PA : A -> Type) (x : A) (p1 p2 : PA x), +p1 = p2 -> +forall (y : A) (q1 q2 : PA y), +q1 = q2 -> is_Envelope A PA x p1 y q1 = is_Envelope A PA x p2 y q2 + : forall (A : Type) (PA : A -> Type) (x : A) (p1 p2 : PA x), + p1 = p2 -> + forall (y : A) (q1 q2 : PA y), + q1 = q2 -> is_Envelope A PA x p1 y q1 = is_Envelope A PA x p2 y q2 +congr_is_Redex +: +forall (A : Type) (PA : A -> Type) (x : A) (p1 p2 : PA x), +p1 = p2 -> is_Redex A PA x p1 = is_Redex A PA x p2 + : forall (A : Type) (PA : A -> Type) (x : A) (p1 p2 : PA x), + p1 = p2 -> is_Redex A PA x p1 = is_Redex A PA x p2 +congr_is_PI + : forall (x : PrimInt63.int) (p1 p2 : is_uint63 x), + p1 = p2 -> is_PI x p1 = is_PI x p2 +congr_is_PF + : forall (x : PrimFloat.float) (p1 p2 : is_float64 x), + p1 = p2 -> is_PF x p1 = is_PF x p2 +congr_is_Build_fo_record +: +forall (n : peano) (p1 p2 : is_peano n), +p1 = p2 -> +forall (b : unit) (q1 q2 : is_unit b), +q1 = q2 -> is_Build_fo_record n p1 b q1 = is_Build_fo_record n p2 b q2 + : forall (n : peano) (p1 p2 : is_peano n), + p1 = p2 -> + forall (b : unit) (q1 q2 : is_unit b), + q1 = q2 -> is_Build_fo_record n p1 b q1 = is_Build_fo_record n p2 b q2 +congr_is_Build_pa_record +: +forall (A : Type) (PA : A -> Type) (n : peano) (p1 p2 : is_peano n), +p1 = p2 -> +forall (b : A) (q1 q2 : PA b), +q1 = q2 -> +is_Build_pa_record A PA n p1 b q1 = is_Build_pa_record A PA n p2 b q2 + : forall (A : Type) (PA : A -> Type) (n : peano) (p1 p2 : is_peano n), + p1 = p2 -> + forall (b : A) (q1 q2 : PA b), + q1 = q2 -> + is_Build_pa_record A PA n p1 b q1 = is_Build_pa_record A PA n p2 b q2 +congr_is_Build_pr_record +: +forall (A : Type) (pr : A -> Type) (n : peano) (p1 p2 : is_peano n), +p1 = p2 -> +forall (b : A) (q1 q2 : pr b), +q1 = q2 -> +is_Build_pr_record A pr n p1 b q1 = is_Build_pr_record A pr n p2 b q2 + : forall (A : Type) (pr : A -> Type) (n : peano) (p1 p2 : is_peano n), + p1 = p2 -> + forall (b : A) (q1 q2 : pr b), + q1 = q2 -> + is_Build_pr_record A pr n p1 b q1 = is_Build_pr_record A pr n p2 b q2 +congr_is_E1 : is_E1 = is_E1 + : is_E1 = is_E1 +COQC tests/test_eqb.v +COQC tests/test_link_order5.v +empty_eqb : eq_test2 empty empty + : eq_test2 empty empty +unit_eqb : eq_test2 unit unit + : eq_test2 unit unit +peano_eqb : eq_test2 peano peano + : eq_test2 peano peano +option_eqb : forall A : Type, eq_test2 A A -> eq_test2 (option A) (option A) + : forall A : Type, eq_test2 A A -> eq_test2 (option A) (option A) +pair_eqb +: +forall A : Type, +eq_test2 A A -> +forall B : Type, eq_test2 B B -> eq_test2 (pair A B) (pair A B) + : forall A : Type, + eq_test2 A A -> + forall B : Type, eq_test2 B B -> eq_test2 (pair A B) (pair A B) +seq_eqb : forall A : Type, eq_test2 A A -> eq_test2 (seq A) (seq A) + : forall A : Type, eq_test2 A A -> eq_test2 (seq A) (seq A) +rose_eqb : forall A : Type, eq_test2 A A -> eq_test2 (rose A) (rose A) + : forall A : Type, eq_test2 A A -> eq_test2 (rose A) (rose A) +beta_eqb : forall A : Type, eq_test2 A A -> eq_test2 (beta A) (beta A) + : forall A : Type, eq_test2 A A -> eq_test2 (beta A) (beta A) +prim_int_eqb : eq_test2 prim_int prim_int + : eq_test2 prim_int prim_int +fo_record_eqb : eq_test2 fo_record fo_record + : eq_test2 fo_record fo_record +pa_record_eqb +: +forall A : Type, eq_test2 A A -> eq_test2 (pa_record A) (pa_record A) + : forall A : Type, eq_test2 A A -> eq_test2 (pa_record A) (pa_record A) +pr_record_eqb +: +forall A : Type, eq_test2 A A -> eq_test2 (pr_record A) (pr_record A) + : forall A : Type, eq_test2 A A -> eq_test2 (pr_record A) (pr_record A) +enum_eqb : eq_test2 enum enum + : eq_test2 enum enum +sigma_bool_eqb : eq_test2 sigma_bool sigma_bool + : eq_test2 sigma_bool sigma_bool +ord_eqb : forall p1 p2 : peano, eq_test2 (ord p1) (ord p2) + : forall p1 p2 : peano, eq_test2 (ord p1) (ord p2) +ord2_eqb : forall p1 p2 : peano, eq_test2 (ord2 p1) (ord2 p2) + : forall p1 p2 : peano, eq_test2 (ord2 p1) (ord2 p2) +val_eqb : eq_test2 val val + : eq_test2 val val +alias_eqb : eq_test2 alias alias + : eq_test2 alias alias +COQC tests/test_eqK.v +[p 1, p 2, p 3, p 4, p 5, p 6, p 7, p 8, p 9, p 10, p 11, p 12, p 13, + p 14, p 15, p 16, p 17, p 18, p 19, p 20, p 21, p 22, p 23, p 24, p 25, + p 26, p 27, p 28, p 29, p 30, p 31, p 32, p 33, p 34, p 35, p 36, p 37, + p 38, p 39, p 40, p 41, p 42, p 43, p 44, p 45, p 46, p 47, p 48, p 49, + p 50, p 51, p 52, p 53, p 54, p 55, p 56, p 57, p 58, p 59, p 60, p 61, + p 62, p 63, p 64, p 65, p 66, p 67, p 68, p 69, p 70, p 71, p 72, p 73, + p 74, p 75, p 76, p 77, p 78, p 79, p 80, p 81, p 82, p 83, p 84, p 85, + p 86, p 87, p 88, p 89, p 90, p 91, p 92, p 93, p 94, p 95, p 96, p 97, + p 98, p 99, p 100, p 101, p 102, p 103, p 104, p 105, p 106, p 107, + p 108, p 109, p 110, p 111, p 112, p 113, p 114, p 115, p 116, p 117, + p 118, p 119, p 120, p 121, p 122, p 123, p 124, p 125, p 126, p 127, + p 128, p 129, p 130, p 131, p 132, p 133, p 134, p 135, p 136, p 137, + p 138, p 139, p 140, p 141, p 142, p 143, p 144, p 145, p 146, p 147, + p 148, p 149, p 150, p 151, p 152, p 153, p 154, p 155, p 156, p 157, + p 158, p 159, p 160, p 161, p 162, p 163, p 164, p 165, p 166, p 167, + p 168, p 169, p 170, p 171, p 172, p 173, p 174, p 175, p 176, p 177, + p 178, p 179, p 180, p 181, p 182, p 183, p 184, p 185, p 186, p 187, + p 188, p 189, p 190, p 191, p 192, p 193, p 194, p 195, p 196, p 197, + p 198, p 199, p 200, p 201, p 202, p 203, p 204, p 205, p 206, p 207, + p 208, p 209, p 210, p 211, p 212, p 213, p 214, p 215, p 216, p 217, + p 218, p 219, p 220, p 221, p 222, p 223, p 224, p 225, p 226, p 227, + p 228, p 229, p 230, p 231, p 232, p 233, p 234, p 235, p 236, p 237, + p 238, p 239, p 240, p 241, p 242, p 243, p 244, p 245, p 246, p 247, + p 248, p 249, p 250, p 251, p 252, p 253, p 254, p 255, p 256, p 257, + p 258, p 259, p 260, p 261, p 262, p 263, p 264, p 265, p 266, p 267, + p 268, p 269, p 270, p 271, p 272, p 273, p 274, p 275, p 276, p 277, + p 278, p 279, p 280, p 281, p 282, p 283, p 284, p 285, p 286, p 287, + p 288, p 289, p 290, p 291, p 292, p 293, p 294, p 295, p 296, p 297, + p 298, p 299, p 300, p 301, p 302, p 303, p 304, p 305, p 306, p 307, + p 308, p 309, p 310, p 311, p 312, p 313, p 314, p 315, p 316, p 317, + p 318, p 319, p 320, p 321, p 322, p 323, p 324, p 325, p 326, p 327, + p 328, p 329, p 330, p 331, p 332, p 333, p 334, p 335, p 336, p 337, + p 338, p 339, p 340, p 341, p 342, p 343, p 344, p 345, p 346, p 347, + p 348, p 349, p 350, p 351, p 352, p 353, p 354, p 355, p 356, p 357, + p 358, p 359, p 360, p 361, p 362, p 363, p 364, p 365, p 366, p 367, + p 368, p 369, p 370, p 371, p 372, p 373, p 374, p 375, p 376, p 377, + p 378, p 379, p 380, p 381, p 382, p 383, p 384, p 385, p 386, p 387, + p 388, p 389, p 390, p 391, p 392, p 393, p 394, p 395, p 396, p 397, + p 398, p 399, p 400, p 401, p 402, p 403, p 404, p 405, p 406, p 407, + p 408, p 409, p 410, p 411, p 412, p 413, p 414, p 415, p 416, p 417, + p 418, p 419, p 420, p 421, p 422, p 423, p 424, p 425, p 426, p 427, + p 428, p 429, p 430, p 431, p 432, p 433, p 434, p 435, p 436, p 437, + p 438, p 439, p 440, p 441, p 442, p 443, p 444, p 445, p 446, p 447, + p 448, p 449, p 450, p 451, p 452, p 453, p 454, p 455, p 456, p 457, + p 458, p 459, p 460, p 461, p 462, p 463, p 464, p 465, p 466, p 467, + p 468, p 469, p 470, p 471, p 472, p 473, p 474, p 475, p 476, p 477, + p 478, p 479, p 480, p 481, p 482, p 483, p 484, p 485, p 486, p 487, + p 488, p 489, p 490, p 491, p 492, p 493, p 494, p 495, p 496, p 497, + p 498, p 499, p 500, p 501, p 502, p 503, p 504, p 505, p 506, p 507, + p 508, p 509, p 510, p 511, p 512, p 513, p 514, p 515, p 516, p 517, + p 518, p 519, p 520, p 521, p 522, p 523, p 524, p 525, p 526, p 527, + p 528, p 529, p 530, p 531, p 532, p 533, p 534, p 535, p 536, p 537, + p 538, p 539, p 540, p 541, p 542, p 543, p 544, p 545, p 546, p 547, + p 548, p 549, p 550, p 551, p 552, p 553, p 554, p 555, p 556, p 557, + p 558, p 559, p 560, p 561, p 562, p 563, p 564, p 565, p 566, p 567, + p 568, p 569, p 570, p 571, p 572, p 573, p 574, p 575, p 576, p 577, + p 578, p 579, p 580, p 581, p 582, p 583, p 584, p 585, p 586, p 587, + p 588, p 589, p 590, p 591, p 592, p 593, p 594, p 595, p 596, p 597, + p 598, p 599, p 600, p 601, p 602, p 603, p 604, p 605, p 606, p 607, + p 608, p 609, p 610, p 611, p 612, p 613, p 614, p 615, p 616, p 617, + p 618, p 619, p 620, p 621, p 622, p 623, p 624, p 625, p 626, p 627, + p 628, p 629, p 630, p 631, p 632, p 633, p 634, p 635, p 636, p 637, + p 638, p 639, p 640, p 641, p 642, p 643, p 644, p 645, p 646, p 647, + p 648, p 649, p 650, p 651, p 652, p 653, p 654, p 655, p 656, p 657, + p 658, p 659, p 660, p 661, p 662, p 663, p 664, p 665, p 666, p 667, + p 668, p 669, p 670, p 671, p 672, p 673, p 674, p 675, p 676, p 677, + p 678, p 679, p 680, p 681, p 682, p 683, p 684, p 685, p 686, p 687, + p 688, p 689, p 690, p 691, p 692, p 693, p 694, p 695, p 696, p 697, + p 698, p 699, p 700, p 701, p 702, p 703, p 704, p 705, p 706, p 707, + p 708, p 709, p 710, p 711, p 712, p 713, p 714, p 715, p 716, p 717, + p 718, p 719, p 720, p 721, p 722, p 723, p 724, p 725, p 726, p 727, + p 728, p 729, p 730, p 731, p 732, p 733, p 734, p 735, p 736, p 737, + p 738, p 739, p 740, p 741, p 742, p 743, p 744, p 745, p 746, p 747, + p 748, p 749, p 750, p 751, p 752, p 753, p 754, p 755, p 756, p 757, + p 758, p 759, p 760, p 761, p 762, p 763, p 764, p 765, p 766, p 767, + p 768, p 769, p 770, p 771, p 772, p 773, p 774, p 775, p 776, p 777, + p 778, p 779, p 780, p 781, p 782, p 783, p 784, p 785, p 786, p 787, + p 788, p 789, p 790, p 791, p 792, p 793, p 794, p 795, p 796, p 797, + p 798, p 799, p 800, p 801, p 802, p 803, p 804, p 805, p 806, p 807, + p 808, p 809, p 810, p 811, p 812, p 813, p 814, p 815, p 816, p 817, + p 818, p 819, p 820, p 821, p 822, p 823, p 824, p 825, p 826, p 827, + p 828, p 829, p 830, p 831, p 832, p 833, p 834, p 835, p 836, p 837, + p 838, p 839, p 840, p 841, p 842, p 843, p 844, p 845, p 846, p 847, + p 848, p 849, p 850, p 851, p 852, p 853, p 854, p 855, p 856, p 857, + p 858, p 859, p 860, p 861, p 862, p 863, p 864, p 865, p 866, p 867, + p 868, p 869, p 870, p 871, p 872, p 873, p 874, p 875, p 876, p 877, + p 878, p 879, p 880, p 881, p 882, p 883, p 884, p 885, p 886, p 887, + p 888, p 889, p 890, p 891, p 892, p 893, p 894, p 895, p 896, p 897, + p 898, p 899, p 900, p 901, p 902, p 903, p 904, p 905, p 906, p 907, + p 908, p 909, p 910, p 911, p 912, p 913, p 914, p 915, p 916, p 917, + p 918, p 919, p 920, p 921, p 922, p 923, p 924, p 925, p 926, p 927, + p 928, p 929, p 930, p 931, p 932, p 933, p 934, p 935, p 936, p 937, + p 938, p 939, p 940, p 941, p 942, p 943, p 944, p 945, p 946, p 947, + p 948, p 949, p 950, p 951, p 952, p 953, p 954, p 955, p 956, p 957, + p 958, p 959, p 960, p 961, p 962, p 963, p 964, p 965, p 966, p 967, + p 968, p 969, p 970, p 971, p 972, p 973, p 974, p 975, p 976, p 977, + p 978, p 979, p 980, p 981, p 982, p 983, p 984, p 985, p 986, p 987, + p 988, p 989, p 990, p 991, p 992, p 993, p 994, p 995, p 996, p 997, + p 998, p 999, p 1000, p 1001, p 1002, p 1003, p 1004, p 1005, p 1006, + p 1007, p 1008, p 1009, p 1010, p 1011, p 1012, p 1013, p 1014, p 1015, + p 1016, p 1017, p 1018, p 1019, p 1020, p 1021, p 1022, p 1023, p 1024, + p 1025, p 1026, p 1027, p 1028, p 1029, p 1030, p 1031, p 1032, p 1033, + p 1034, p 1035, p 1036, p 1037, p 1038, p 1039, p 1040, p 1041, p 1042, + p 1043, p 1044, p 1045, p 1046, p 1047, p 1048, p 1049, p 1050, p 1051, + p 1052, p 1053, p 1054, p 1055, p 1056, p 1057, p 1058, p 1059, p 1060, + p 1061, p 1062, p 1063, p 1064, p 1065, p 1066, p 1067, p 1068, p 1069, + p 1070, p 1071, p 1072, p 1073, p 1074, p 1075, p 1076, p 1077, p 1078, + p 1079, p 1080, p 1081, p 1082, p 1083, p 1084, p 1085, p 1086, p 1087, + p 1088, p 1089, p 1090, p 1091, p 1092, p 1093, p 1094, p 1095, p 1096, + p 1097, p 1098, p 1099, p 1100, p 1101, p 1102, p 1103, p 1104, p 1105, + p 1106, p 1107, p 1108, p 1109, p 1110, p 1111, p 1112, p 1113, p 1114, + p 1115, p 1116, p 1117, p 1118, p 1119, p 1120, p 1121, p 1122, p 1123, + p 1124, p 1125, p 1126, p 1127, p 1128, p 1129, p 1130, p 1131, p 1132, + p 1133, p 1134, p 1135, p 1136, p 1137, p 1138, p 1139, p 1140, p 1141, + p 1142, p 1143, p 1144, p 1145, p 1146, p 1147, p 1148, p 1149, p 1150, + p 1151, p 1152, p 1153, p 1154, p 1155, p 1156, p 1157, p 1158, p 1159, + p 1160, p 1161, p 1162, p 1163, p 1164, p 1165, p 1166, p 1167, p 1168, + p 1169, p 1170, p 1171, p 1172, p 1173, p 1174, p 1175, p 1176, p 1177, + p 1178, p 1179, p 1180, p 1181, p 1182, p 1183, p 1184, p 1185, p 1186, + p 1187, p 1188, p 1189, p 1190, p 1191, p 1192, p 1193, p 1194, p 1195, + p 1196, p 1197, p 1198, p 1199, p 1200, p 1201, p 1202, p 1203, p 1204, + p 1205, p 1206, p 1207, p 1208, p 1209, p 1210, p 1211, p 1212, p 1213, + p 1214, p 1215, p 1216, p 1217, p 1218, p 1219, p 1220, p 1221, p 1222, + p 1223, p 1224, p 1225, p 1226, p 1227, p 1228, p 1229, p 1230, p 1231, + p 1232, p 1233, p 1234, p 1235, p 1236, p 1237, p 1238, p 1239, p 1240, + p 1241, p 1242, p 1243, p 1244, p 1245, p 1246, p 1247, p 1248, p 1249, + p 1250, p 1251, p 1252, p 1253, p 1254, p 1255, p 1256, p 1257, p 1258, + p 1259, p 1260, p 1261, p 1262, p 1263, p 1264, p 1265, p 1266, p 1267, + p 1268, p 1269, p 1270, p 1271, p 1272, p 1273, p 1274, p 1275, p 1276, + p 1277, p 1278, p 1279, p 1280, p 1281, p 1282, p 1283, p 1284, p 1285, + p 1286, p 1287, p 1288, p 1289, p 1290, p 1291, p 1292, p 1293, p 1294, + p 1295, p 1296, p 1297, p 1298, p 1299, p 1300, p 1301, p 1302, p 1303, + p 1304, p 1305, p 1306, p 1307, p 1308, p 1309, p 1310, p 1311, p 1312, + p 1313, p 1314, p 1315, p 1316, p 1317, p 1318, p 1319, p 1320, p 1321, + p 1322, p 1323, p 1324, p 1325, p 1326, p 1327, p 1328, p 1329, p 1330, + p 1331, p 1332, p 1333, p 1334, p 1335, p 1336, p 1337, p 1338, p 1339, + p 1340, p 1341, p 1342, p 1343, p 1344, p 1345, p 1346, p 1347, p 1348, + p 1349, p 1350, p 1351, p 1352, p 1353, p 1354, p 1355, p 1356, p 1357, + p 1358, p 1359, p 1360, p 1361, p 1362, p 1363, p 1364, p 1365, p 1366, + p 1367, p 1368, p 1369, p 1370, p 1371, p 1372, p 1373, p 1374, p 1375, + p 1376, p 1377, p 1378, p 1379, p 1380, p 1381, p 1382, p 1383, p 1384, + p 1385, p 1386, p 1387, p 1388, p 1389, p 1390, p 1391, p 1392, p 1393, + p 1394, p 1395, p 1396, p 1397, p 1398, p 1399, p 1400, p 1401, p 1402, + p 1403, p 1404, p 1405, p 1406, p 1407, p 1408, p 1409, p 1410, p 1411, + p 1412, p 1413, p 1414, p 1415, p 1416, p 1417, p 1418, p 1419, p 1420, + p 1421, p 1422, p 1423, p 1424, p 1425, p 1426, p 1427, p 1428, p 1429, + p 1430, p 1431, p 1432, p 1433, p 1434, p 1435, p 1436, p 1437, p 1438, + p 1439, p 1440, p 1441, p 1442, p 1443, p 1444, p 1445, p 1446, p 1447, + p 1448, p 1449, p 1450, p 1451, p 1452, p 1453, p 1454, p 1455, p 1456, + p 1457, p 1458, p 1459, p 1460, p 1461, p 1462, p 1463, p 1464, p 1465, + p 1466, p 1467, p 1468, p 1469, p 1470, p 1471, p 1472, p 1473, p 1474, + p 1475, p 1476, p 1477, p 1478, p 1479, p 1480, p 1481, p 1482, p 1483, + p 1484, p 1485, p 1486, p 1487, p 1488, p 1489, p 1490, p 1491, p 1492, + p 1493, p 1494, p 1495, p 1496, p 1497, p 1498, p 1499, p 1500, p 1501, + p 1502, p 1503, p 1504, p 1505, p 1506, p 1507, p 1508, p 1509, p 1510, + p 1511, p 1512, p 1513, p 1514, p 1515, p 1516, p 1517, p 1518, p 1519, + p 1520, p 1521, p 1522, p 1523, p 1524, p 1525, p 1526, p 1527, p 1528, + p 1529, p 1530, p 1531, p 1532, p 1533, p 1534, p 1535, p 1536, p 1537, + p 1538, p 1539, p 1540, p 1541, p 1542, p 1543, p 1544, p 1545, p 1546, + p 1547, p 1548, p 1549, p 1550, p 1551, p 1552, p 1553, p 1554, p 1555, + p 1556, p 1557, p 1558, p 1559, p 1560, p 1561, p 1562, p 1563, p 1564, + p 1565, p 1566, p 1567, p 1568, p 1569, p 1570, p 1571, p 1572, p 1573, + p 1574, p 1575, p 1576, p 1577, p 1578, p 1579, p 1580, p 1581, p 1582, + p 1583, p 1584, p 1585, p 1586, p 1587, p 1588, p 1589, p 1590, p 1591, + p 1592, p 1593, p 1594, p 1595, p 1596, p 1597, p 1598, p 1599, p 1600, + p 1601, p 1602, p 1603, p 1604, p 1605, p 1606, p 1607, p 1608, p 1609, + p 1610, p 1611, p 1612, p 1613, p 1614, p 1615, p 1616, p 1617, p 1618, + p 1619, p 1620, p 1621, p 1622, p 1623, p 1624, p 1625, p 1626, p 1627, + p 1628, p 1629, p 1630, p 1631, p 1632, p 1633, p 1634, p 1635, p 1636, + p 1637, p 1638, p 1639, p 1640, p 1641, p 1642, p 1643, p 1644, p 1645, + p 1646, p 1647, p 1648, p 1649, p 1650, p 1651, p 1652, p 1653, p 1654, + p 1655, p 1656, p 1657, p 1658, p 1659, p 1660, p 1661, p 1662, p 1663, + p 1664, p 1665, p 1666, p 1667, p 1668, p 1669, p 1670, p 1671, p 1672, + p 1673, p 1674, p 1675, p 1676, p 1677, p 1678, p 1679, p 1680, p 1681, + p 1682, p 1683, p 1684, p 1685, p 1686, p 1687, p 1688, p 1689, p 1690, + p 1691, p 1692, p 1693, p 1694, p 1695, p 1696, p 1697, p 1698, p 1699, + p 1700, p 1701, p 1702, p 1703, p 1704, p 1705, p 1706, p 1707, p 1708, + p 1709, p 1710, p 1711, p 1712, p 1713, p 1714, p 1715, p 1716, p 1717, + p 1718, p 1719, p 1720, p 1721, p 1722, p 1723, p 1724, p 1725, p 1726, + p 1727, p 1728, p 1729, p 1730, p 1731, p 1732, p 1733, p 1734, p 1735, + p 1736, p 1737, p 1738, p 1739, p 1740, p 1741, p 1742, p 1743, p 1744, + p 1745, p 1746, p 1747, p 1748, p 1749, p 1750, p 1751, p 1752, p 1753, + p 1754, p 1755, p 1756, p 1757, p 1758, p 1759, p 1760, p 1761, p 1762, + p 1763, p 1764, p 1765, p 1766, p 1767, p 1768, p 1769, p 1770, p 1771, + p 1772, p 1773, p 1774, p 1775, p 1776, p 1777, p 1778, p 1779, p 1780, + p 1781, p 1782, p 1783, p 1784, p 1785, p 1786, p 1787, p 1788, p 1789, + p 1790, p 1791, p 1792, p 1793, p 1794, p 1795, p 1796, p 1797, p 1798, + p 1799, p 1800, p 1801, p 1802, p 1803, p 1804, p 1805, p 1806, p 1807, + p 1808, p 1809, p 1810, p 1811, p 1812, p 1813, p 1814, p 1815, p 1816, + p 1817, p 1818, p 1819, p 1820, p 1821, p 1822, p 1823, p 1824, p 1825, + p 1826, p 1827, p 1828, p 1829, p 1830, p 1831, p 1832, p 1833, p 1834, + p 1835, p 1836, p 1837, p 1838, p 1839, p 1840, p 1841, p 1842, p 1843, + p 1844, p 1845, p 1846, p 1847, p 1848, p 1849, p 1850, p 1851, p 1852, + p 1853, p 1854, p 1855, p 1856, p 1857, p 1858, p 1859, p 1860, p 1861, + p 1862, p 1863, p 1864, p 1865, p 1866, p 1867, p 1868, p 1869, p 1870, + p 1871, p 1872, p 1873, p 1874, p 1875, p 1876, p 1877, p 1878, p 1879, + p 1880, p 1881, p 1882, p 1883, p 1884, p 1885, p 1886, p 1887, p 1888, + p 1889, p 1890, p 1891, p 1892, p 1893, p 1894, p 1895, p 1896, p 1897, + p 1898, p 1899, p 1900, p 1901, p 1902, p 1903, p 1904, p 1905, p 1906, + p 1907, p 1908, p 1909, p 1910, p 1911, p 1912, p 1913, p 1914, p 1915, + p 1916, p 1917, p 1918, p 1919, p 1920, p 1921, p 1922, p 1923, p 1924, + p 1925, p 1926, p 1927, p 1928, p 1929, p 1930, p 1931, p 1932, p 1933, + p 1934, p 1935, p 1936, p 1937, p 1938, p 1939, p 1940, p 1941, p 1942, + p 1943, p 1944, p 1945, p 1946, p 1947, p 1948, p 1949, p 1950, p 1951, + p 1952, p 1953, p 1954, p 1955, p 1956, p 1957, p 1958, p 1959, p 1960, + p 1961, p 1962, p 1963, p 1964, p 1965, p 1966, p 1967, p 1968, p 1969, + p 1970, p 1971, p 1972, p 1973, p 1974, p 1975, p 1976, p 1977, p 1978, + p 1979, p 1980, p 1981, p 1982, p 1983, p 1984, p 1985, p 1986, p 1987, + p 1988, p 1989, p 1990, p 1991, p 1992, p 1993, p 1994, p 1995, p 1996, + p 1997, p 1998, p 1999, p 2000, p 2001, p 2002, p 2003, p 2004, p 2005, + p 2006, p 2007, p 2008, p 2009, p 2010, p 2011, p 2012, p 2013, p 2014, + p 2015, p 2016, p 2017, p 2018, p 2019, p 2020, p 2021, p 2022, p 2023, + p 2024, p 2025, p 2026, p 2027, p 2028, p 2029, p 2030, p 2031, p 2032, + p 2033, p 2034, p 2035, p 2036, p 2037, p 2038, p 2039, p 2040, p 2041, + p 2042, p 2043, p 2044, p 2045, p 2046, p 2047, p 2048, p 2049, p 2050, + p 2051, p 2052, p 2053, p 2054, p 2055, p 2056, p 2057, p 2058, p 2059, + p 2060, p 2061, p 2062, p 2063, p 2064, p 2065, p 2066, p 2067, p 2068, + p 2069, p 2070, p 2071, p 2072, p 2073, p 2074, p 2075, p 2076, p 2077, + p 2078, p 2079, p 2080, p 2081, p 2082, p 2083, p 2084, p 2085, p 2086, + p 2087, p 2088, p 2089, p 2090, p 2091, p 2092, p 2093, p 2094, p 2095, + p 2096, p 2097, p 2098, p 2099, p 2100, p 2101, p 2102, p 2103, p 2104, + p 2105, p 2106, p 2107, p 2108, p 2109, p 2110, p 2111, p 2112, p 2113, + p 2114, p 2115, p 2116, p 2117, p 2118, p 2119, p 2120, p 2121, p 2122, + p 2123, p 2124, p 2125, p 2126, p 2127, p 2128, p 2129, p 2130, p 2131, + p 2132, p 2133, p 2134, p 2135, p 2136, p 2137, p 2138, p 2139, p 2140, + p 2141, p 2142, p 2143, p 2144, p 2145, p 2146, p 2147, p 2148, p 2149, + p 2150, p 2151, p 2152, p 2153, p 2154, p 2155, p 2156, p 2157, p 2158, + p 2159, p 2160, p 2161, p 2162, p 2163, p 2164, p 2165, p 2166, p 2167, + p 2168, p 2169, p 2170, p 2171, p 2172, p 2173, p 2174, p 2175, p 2176, + p 2177, p 2178, p 2179, p 2180, p 2181, p 2182, p 2183, p 2184, p 2185, + p 2186, p 2187, p 2188, p 2189, p 2190, p 2191, p 2192, p 2193, p 2194, + p 2195, p 2196, p 2197, p 2198, p 2199, p 2200, p 2201, p 2202, p 2203, + p 2204, p 2205, p 2206, p 2207, p 2208, p 2209, p 2210, p 2211, p 2212, + p 2213, p 2214, p 2215, p 2216, p 2217, p 2218, p 2219, p 2220, p 2221, + p 2222, p 2223, p 2224, p 2225, p 2226, p 2227, p 2228, p 2229, p 2230, + p 2231, p 2232, p 2233, p 2234, p 2235, p 2236, p 2237, p 2238, p 2239, + p 2240, p 2241, p 2242, p 2243, p 2244, p 2245, p 2246, p 2247, p 2248, + p 2249, p 2250, p 2251, p 2252, p 2253, p 2254, p 2255, p 2256, p 2257, + p 2258, p 2259, p 2260, p 2261, p 2262, p 2263, p 2264, p 2265, p 2266, + p 2267, p 2268, p 2269, p 2270, p 2271, p 2272, p 2273, p 2274, p 2275, + p 2276, p 2277, p 2278, p 2279, p 2280, p 2281, p 2282, p 2283, p 2284, + p 2285, p 2286, p 2287, p 2288, p 2289, p 2290, p 2291, p 2292, p 2293, + p 2294, p 2295, p 2296, p 2297, p 2298, p 2299, p 2300, p 2301, p 2302, + p 2303, p 2304, p 2305, p 2306, p 2307, p 2308, p 2309, p 2310, p 2311, + p 2312, p 2313, p 2314, p 2315, p 2316, p 2317, p 2318, p 2319, p 2320, + p 2321, p 2322, p 2323, p 2324, p 2325, p 2326, p 2327, p 2328, p 2329, + p 2330, p 2331, p 2332, p 2333, p 2334, p 2335, p 2336, p 2337, p 2338, + p 2339, p 2340, p 2341, p 2342, p 2343, p 2344, p 2345, p 2346, p 2347, + p 2348, p 2349, p 2350, p 2351, p 2352, p 2353, p 2354, p 2355, p 2356, + p 2357, p 2358, p 2359, p 2360, p 2361, p 2362, p 2363, p 2364, p 2365, + p 2366, p 2367, p 2368, p 2369, p 2370, p 2371, p 2372, p 2373, p 2374, + p 2375, p 2376, p 2377, p 2378, p 2379, p 2380, p 2381, p 2382, p 2383, + p 2384, p 2385, p 2386, p 2387, p 2388, p 2389, p 2390, p 2391, p 2392, + p 2393, p 2394, p 2395, p 2396, p 2397, p 2398, p 2399, p 2400, p 2401, + p 2402, p 2403, p 2404, p 2405, p 2406, p 2407, p 2408, p 2409, p 2410, + p 2411, p 2412, p 2413, p 2414, p 2415, p 2416, p 2417, p 2418, p 2419, + p 2420, p 2421, p 2422, p 2423, p 2424, p 2425, p 2426, p 2427, p 2428, + p 2429, p 2430, p 2431, p 2432, p 2433, p 2434, p 2435, p 2436, p 2437, + p 2438, p 2439, p 2440, p 2441, p 2442, p 2443, p 2444, p 2445, p 2446, + p 2447, p 2448, p 2449, p 2450, p 2451, p 2452, p 2453, p 2454, p 2455, + p 2456, p 2457, p 2458, p 2459, p 2460, p 2461, p 2462, p 2463, p 2464, + p 2465, p 2466, p 2467, p 2468, p 2469, p 2470, p 2471, p 2472, p 2473, + p 2474, p 2475, p 2476, p 2477, p 2478, p 2479, p 2480, p 2481, p 2482, + p 2483, p 2484, p 2485, p 2486, p 2487, p 2488, p 2489, p 2490, p 2491, + p 2492, p 2493, p 2494, p 2495, p 2496, p 2497, p 2498, p 2499, p 2500, + p 2501, p 2502, p 2503, p 2504, p 2505, p 2506, p 2507, p 2508, p 2509, + p 2510, p 2511, p 2512, p 2513, p 2514, p 2515, p 2516, p 2517, p 2518, + p 2519, p 2520, p 2521, p 2522, p 2523, p 2524, p 2525, p 2526, p 2527, + p 2528, p 2529, p 2530, p 2531, p 2532, p 2533, p 2534, p 2535, p 2536, + p 2537, p 2538, p 2539, p 2540, p 2541, p 2542, p 2543, p 2544, p 2545, + p 2546, p 2547, p 2548, p 2549, p 2550, p 2551, p 2552, p 2553, p 2554, + p 2555, p 2556, p 2557, p 2558, p 2559, p 2560, p 2561, p 2562, p 2563, + p 2564, p 2565, p 2566, p 2567, p 2568, p 2569, p 2570, p 2571, p 2572, + p 2573, p 2574, p 2575, p 2576, p 2577, p 2578, p 2579, p 2580, p 2581, + p 2582, p 2583, p 2584, p 2585, p 2586, p 2587, p 2588, p 2589, p 2590, + p 2591, p 2592, p 2593, p 2594, p 2595, p 2596, p 2597, p 2598, p 2599, + p 2600, p 2601, p 2602, p 2603, p 2604, p 2605, p 2606, p 2607, p 2608, + p 2609, p 2610, p 2611, p 2612, p 2613, p 2614, p 2615, p 2616, p 2617, + p 2618, p 2619, p 2620, p 2621, p 2622, p 2623, p 2624, p 2625, p 2626, + p 2627, p 2628, p 2629, p 2630, p 2631, p 2632, p 2633, p 2634, p 2635, + p 2636, p 2637, p 2638, p 2639, p 2640, p 2641, p 2642, p 2643, p 2644, + p 2645, p 2646, p 2647, p 2648, p 2649, p 2650, p 2651, p 2652, p 2653, + p 2654, p 2655, p 2656, p 2657, p 2658, p 2659, p 2660, p 2661, p 2662, + p 2663, p 2664, p 2665, p 2666, p 2667, p 2668, p 2669, p 2670, p 2671, + p 2672, p 2673, p 2674, p 2675, p 2676, p 2677, p 2678, p 2679, p 2680, + p 2681, p 2682, p 2683, p 2684, p 2685, p 2686, p 2687, p 2688, p 2689, + p 2690, p 2691, p 2692, p 2693, p 2694, p 2695, p 2696, p 2697, p 2698, + p 2699, p 2700, p 2701, p 2702, p 2703, p 2704, p 2705, p 2706, p 2707, + p 2708, p 2709, p 2710, p 2711, p 2712, p 2713, p 2714, p 2715, p 2716, + p 2717, p 2718, p 2719, p 2720, p 2721, p 2722, p 2723, p 2724, p 2725, + p 2726, p 2727, p 2728, p 2729, p 2730, p 2731, p 2732, p 2733, p 2734, + p 2735, p 2736, p 2737, p 2738, p 2739, p 2740, p 2741, p 2742, p 2743, + p 2744, p 2745, p 2746, p 2747, p 2748, p 2749, p 2750, p 2751, p 2752, + p 2753, p 2754, p 2755, p 2756, p 2757, p 2758, p 2759, p 2760, p 2761, + p 2762, p 2763, p 2764, p 2765, p 2766, p 2767, p 2768, p 2769, p 2770, + p 2771, p 2772, p 2773, p 2774, p 2775, p 2776, p 2777, p 2778, p 2779, + p 2780, p 2781, p 2782, p 2783, p 2784, p 2785, p 2786, p 2787, p 2788, + p 2789, p 2790, p 2791, p 2792, p 2793, p 2794, p 2795, p 2796, p 2797, + p 2798, p 2799, p 2800, p 2801, p 2802, p 2803, p 2804, p 2805, p 2806, + p 2807, p 2808, p 2809, p 2810, p 2811, p 2812, p 2813, p 2814, p 2815, + p 2816, p 2817, p 2818, p 2819, p 2820, p 2821, p 2822, p 2823, p 2824, + p 2825, p 2826, p 2827, p 2828, p 2829, p 2830, p 2831, p 2832, p 2833, + p 2834, p 2835, p 2836, p 2837, p 2838, p 2839, p 2840, p 2841, p 2842, + p 2843, p 2844, p 2845, p 2846, p 2847, p 2848, p 2849, p 2850, p 2851, + p 2852, p 2853, p 2854, p 2855, p 2856, p 2857, p 2858, p 2859, p 2860, + p 2861, p 2862, p 2863, p 2864, p 2865, p 2866, p 2867, p 2868, p 2869, + p 2870, p 2871, p 2872, p 2873, p 2874, p 2875, p 2876, p 2877, p 2878, + p 2879, p 2880, p 2881, p 2882, p 2883, p 2884, p 2885, p 2886, p 2887, + p 2888, p 2889, p 2890, p 2891, p 2892, p 2893, p 2894, p 2895, p 2896, + p 2897, p 2898, p 2899, p 2900, p 2901, p 2902, p 2903, p 2904, p 2905, + p 2906, p 2907, p 2908, p 2909, p 2910, p 2911, p 2912, p 2913, p 2914, + p 2915, p 2916, p 2917, p 2918, p 2919, p 2920, p 2921, p 2922, p 2923, + p 2924, p 2925, p 2926, p 2927, p 2928, p 2929, p 2930, p 2931, p 2932, + p 2933, p 2934, p 2935, p 2936, p 2937, p 2938, p 2939, p 2940, p 2941, + p 2942, p 2943, p 2944, p 2945, p 2946, p 2947, p 2948, p 2949, p 2950, + p 2951, p 2952, p 2953, p 2954, p 2955, p 2956, p 2957, p 2958, p 2959, + p 2960, p 2961, p 2962, p 2963, p 2964, p 2965, p 2966, p 2967, p 2968, + p 2969, p 2970, p 2971, p 2972, p 2973, p 2974, p 2975, p 2976, p 2977, + p 2978, p 2979, p 2980, p 2981, p 2982, p 2983, p 2984, p 2985, p 2986, + p 2987, p 2988, p 2989, p 2990, p 2991, p 2992, p 2993, p 2994, p 2995, + p 2996, p 2997, p 2998, p 2999, p 3000, p 3001, p 3002, p 3003, p 3004, + p 3005, p 3006, p 3007, p 3008, p 3009, p 3010, p 3011, p 3012, p 3013, + p 3014, p 3015, p 3016, p 3017, p 3018, p 3019, p 3020, p 3021, p 3022, + p 3023, p 3024, p 3025, p 3026, p 3027, p 3028, p 3029, p 3030, p 3031, + p 3032, p 3033, p 3034, p 3035, p 3036, p 3037, p 3038, p 3039, p 3040, + p 3041, p 3042, p 3043, p 3044, p 3045, p 3046, p 3047, p 3048, p 3049, + p 3050, p 3051, p 3052, p 3053, p 3054, p 3055, p 3056, p 3057, p 3058, + p 3059, p 3060, p 3061, p 3062, p 3063, p 3064, p 3065, p 3066, p 3067, + p 3068, p 3069, p 3070, p 3071, p 3072, p 3073, p 3074, p 3075, p 3076, + p 3077, p 3078, p 3079, p 3080, p 3081, p 3082, p 3083, p 3084, p 3085, + p 3086, p 3087, p 3088, p 3089, p 3090, p 3091, p 3092, p 3093, p 3094, + p 3095, p 3096, p 3097, p 3098, p 3099, p 3100, p 3101, p 3102, p 3103, + p 3104, p 3105, p 3106, p 3107, p 3108, p 3109, p 3110, p 3111, p 3112, + p 3113, p 3114, p 3115, p 3116, p 3117, p 3118, p 3119, p 3120, p 3121, + p 3122, p 3123, p 3124, p 3125, p 3126, p 3127, p 3128, p 3129, p 3130, + p 3131, p 3132, p 3133, p 3134, p 3135, p 3136, p 3137, p 3138, p 3139, + p 3140, p 3141, p 3142, p 3143, p 3144, p 3145, p 3146, p 3147, p 3148, + p 3149, p 3150, p 3151, p 3152, p 3153, p 3154, p 3155, p 3156, p 3157, + p 3158, p 3159, p 3160, p 3161, p 3162, p 3163, p 3164, p 3165, p 3166, + p 3167, p 3168, p 3169, p 3170, p 3171, p 3172, p 3173, p 3174, p 3175, + p 3176, p 3177, p 3178, p 3179, p 3180, p 3181, p 3182, p 3183, p 3184, + p 3185, p 3186, p 3187, p 3188, p 3189, p 3190, p 3191, p 3192, p 3193, + p 3194, p 3195, p 3196, p 3197, p 3198, p 3199, p 3200, p 3201, p 3202, + p 3203, p 3204, p 3205, p 3206, p 3207, p 3208, p 3209, p 3210, p 3211, + p 3212, p 3213, p 3214, p 3215, p 3216, p 3217, p 3218, p 3219, p 3220, + p 3221, p 3222, p 3223, p 3224, p 3225, p 3226, p 3227, p 3228, p 3229, + p 3230, p 3231, p 3232, p 3233, p 3234, p 3235, p 3236, p 3237, p 3238, + p 3239, p 3240, p 3241, p 3242, p 3243, p 3244, p 3245, p 3246, p 3247, + p 3248, p 3249, p 3250, p 3251, p 3252, p 3253, p 3254, p 3255, p 3256, + p 3257, p 3258, p 3259, p 3260, p 3261, p 3262, p 3263, p 3264, p 3265, + p 3266, p 3267, p 3268, p 3269, p 3270, p 3271, p 3272, p 3273, p 3274, + p 3275, p 3276, p 3277, p 3278, p 3279, p 3280, p 3281, p 3282, p 3283, + p 3284, p 3285, p 3286, p 3287, p 3288, p 3289, p 3290, p 3291, p 3292, + p 3293, p 3294, p 3295, p 3296, p 3297, p 3298, p 3299, p 3300, p 3301, + p 3302, p 3303, p 3304, p 3305, p 3306, p 3307, p 3308, p 3309, p 3310, + p 3311, p 3312, p 3313, p 3314, p 3315, p 3316, p 3317, p 3318, p 3319, + p 3320, p 3321, p 3322, p 3323, p 3324, p 3325, p 3326, p 3327, p 3328, + p 3329, p 3330, p 3331, p 3332, p 3333, p 3334, p 3335, p 3336, p 3337, + p 3338, p 3339, p 3340, p 3341, p 3342, p 3343, p 3344, p 3345, p 3346, + p 3347, p 3348, p 3349, p 3350, p 3351, p 3352, p 3353, p 3354, p 3355, + p 3356, p 3357, p 3358, p 3359, p 3360, p 3361, p 3362, p 3363, p 3364, + p 3365, p 3366, p 3367, p 3368, p 3369, p 3370, p 3371, p 3372, p 3373, + p 3374, p 3375, p 3376, p 3377, p 3378, p 3379, p 3380, p 3381, p 3382, + p 3383, p 3384, p 3385, p 3386, p 3387, p 3388, p 3389, p 3390, p 3391, + p 3392, p 3393, p 3394, p 3395, p 3396, p 3397, p 3398, p 3399, p 3400, + p 3401, p 3402, p 3403, p 3404, p 3405, p 3406, p 3407, p 3408, p 3409, + p 3410, p 3411, p 3412, p 3413, p 3414, p 3415, p 3416, p 3417, p 3418, + p 3419, p 3420, p 3421, p 3422, p 3423, p 3424, p 3425, p 3426, p 3427, + p 3428, p 3429, p 3430, p 3431, p 3432, p 3433, p 3434, p 3435, p 3436, + p 3437, p 3438, p 3439, p 3440, p 3441, p 3442, p 3443, p 3444, p 3445, + p 3446, p 3447, p 3448, p 3449, p 3450, p 3451, p 3452, p 3453, p 3454, + p 3455, p 3456, p 3457, p 3458, p 3459, p 3460, p 3461, p 3462, p 3463, + p 3464, p 3465, p 3466, p 3467, p 3468, p 3469, p 3470, p 3471, p 3472, + p 3473, p 3474, p 3475, p 3476, p 3477, p 3478, p 3479, p 3480, p 3481, + p 3482, p 3483, p 3484, p 3485, p 3486, p 3487, p 3488, p 3489, p 3490, + p 3491, p 3492, p 3493, p 3494, p 3495, p 3496, p 3497, p 3498, p 3499, + p 3500, p 3501, p 3502, p 3503, p 3504, p 3505, p 3506, p 3507, p 3508, + p 3509, p 3510, p 3511, p 3512, p 3513, p 3514, p 3515, p 3516, p 3517, + p 3518, p 3519, p 3520, p 3521, p 3522, p 3523, p 3524, p 3525, p 3526, + p 3527, p 3528, p 3529, p 3530, p 3531, p 3532, p 3533, p 3534, p 3535, + p 3536, p 3537, p 3538, p 3539, p 3540, p 3541, p 3542, p 3543, p 3544, + p 3545, p 3546, p 3547, p 3548, p 3549, p 3550, p 3551, p 3552, p 3553, + p 3554, p 3555, p 3556, p 3557, p 3558, p 3559, p 3560, p 3561, p 3562, + p 3563, p 3564, p 3565, p 3566, p 3567, p 3568, p 3569, p 3570, p 3571, + p 3572, p 3573, p 3574, p 3575, p 3576, p 3577, p 3578, p 3579, p 3580, + p 3581, p 3582, p 3583, p 3584, p 3585, p 3586, p 3587, p 3588, p 3589, + p 3590, p 3591, p 3592, p 3593, p 3594, p 3595, p 3596, p 3597, p 3598, + p 3599, p 3600, p 3601, p 3602, p 3603, p 3604, p 3605, p 3606, p 3607, + p 3608, p 3609, p 3610, p 3611, p 3612, p 3613, p 3614, p 3615, p 3616, + p 3617, p 3618, p 3619, p 3620, p 3621, p 3622, p 3623, p 3624, p 3625, + p 3626, p 3627, p 3628, p 3629, p 3630, p 3631, p 3632, p 3633, p 3634, + p 3635, p 3636, p 3637, p 3638, p 3639, p 3640, p 3641, p 3642, p 3643, + p 3644, p 3645, p 3646, p 3647, p 3648, p 3649, p 3650, p 3651, p 3652, + p 3653, p 3654, p 3655, p 3656, p 3657, p 3658, p 3659, p 3660, p 3661, + p 3662, p 3663, p 3664, p 3665, p 3666, p 3667, p 3668, p 3669, p 3670, + p 3671, p 3672, p 3673, p 3674, p 3675, p 3676, p 3677, p 3678, p 3679, + p 3680, p 3681, p 3682, p 3683, p 3684, p 3685, p 3686, p 3687, p 3688, + p 3689, p 3690, p 3691, p 3692, p 3693, p 3694, p 3695, p 3696, p 3697, + p 3698, p 3699, p 3700, p 3701, p 3702, p 3703, p 3704, p 3705, p 3706, + p 3707, p 3708, p 3709, p 3710] +COQC tests/test_link_order6.v +COQC tests/test_link_order7.v eq_axiom_tt : eq_axiom_at unit unit_eq tt : eq_axiom_at unit unit_eq tt eq_axiom_Zero : eq_axiom_at peano peano_eq Zero @@ -10595,32 +11607,7 @@ eq_axiom_E3 : eq_axiom_at enum enum_eq E3 : eq_axiom_at enum enum_eq E3 COQC tests/test_induction.v -sort (typ X0) -Query assignments: - _uvk_129_ = X0 - evar (X0) (global (indt «nat»)) X1 /* suspended on X0, X1 */ -X0 global (indt «nat») - evar (X2) (global (indt «nat»)) X3 /* suspended on X2, X3 */ -hello -eq_refl : one = 1 - : one = 1 -Query assignments: - S = sort (typ «elpi.tests.test_elaborator.48») - T = sort (typ «elpi.tests.test_elaborator.47») - _uvk_130_ = «elpi.tests.test_elaborator.47» -Universe constraints: -UNIVERSES: - {elpi.tests.test_elaborator.48 elpi.tests.test_elaborator.47} |= - elpi.tests.test_elaborator.47 < elpi.tests.test_elaborator.48 -ALGEBRAIC UNIVERSES: - {elpi.tests.test_elaborator.47} -UNDEFINED UNIVERSES: - elpi.tests.test_elaborator.47 -SORTS: - -WEAK CONSTRAINTS: - - +COQC tests/test_link_order8.v 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) @@ -10759,6 +11746,7 @@ | is_Zero => is_peano | is_Succ _ _ => is_unit end a -> P (Why n a)) -> forall s1 : iota, is_iota s1 -> P s1 +COQC tests/test_link_order9.v large_induction : forall P : large -> Type, (forall H : unit, is_unit H -> P (K1 H)) -> @@ -11230,29 +12218,6 @@ (forall x : peano, is_peano x -> forall y : unit, is_unit y -> P {| f1 := x; f2 := y |}) -> forall x : fo_record, is_fo_record x -> P x -Query assignments: - S = sort (typ «elpi.tests.test_elaborator.50») - T = sort (typ «elpi.tests.test_elaborator.49») - TW = sort (typ «elpi.tests.test_elaborator.49») - W = sort (typ «elpi.tests.test_elaborator.51») - _uvk_131_ = «elpi.tests.test_elaborator.49» - _uvk_132_ = «elpi.tests.test_elaborator.51» -Universe constraints: -UNIVERSES: - {elpi.tests.test_elaborator.51 elpi.tests.test_elaborator.50 - elpi.tests.test_elaborator.49} |= - elpi.tests.test_elaborator.49 < elpi.tests.test_elaborator.50 - elpi.tests.test_elaborator.51 < elpi.tests.test_elaborator.49 -ALGEBRAIC UNIVERSES: - {elpi.tests.test_elaborator.51 elpi.tests.test_elaborator.49} -UNDEFINED UNIVERSES: - elpi.tests.test_elaborator.51 - elpi.tests.test_elaborator.49 -SORTS: - -WEAK CONSTRAINTS: - - pa_record_induction : forall (A : Type) (PA : A -> Type) (P : pa_record A -> Type), @@ -11318,447 +12283,33 @@ forall o2 : ord p, is_ord p Pp o2 -> P (mkOrd2 p o1 o2)) -> forall o : ord2 p, is_ord2 p Pp o -> P o COQC tests/test_param1_trivial.v -Debug: Cannot enforce elpi.tests.test_elaborator.52 < -elpi.tests.test_elaborator.52 because elpi.tests.test_elaborator.52 -= elpi.tests.test_elaborator.52 -Query assignments: - X = sort (typ X0) - _uvk_133_ = X0 -[(c4 \ app [c1, c2]), (c4 \ app [c0, c2]), (c4 \ c4), (c4 \ - prod `x0` (app [c0, c2]) c5 \ - prod `x1` (global (indt «nat»)) c6 \ - sort (typ «elpi.tests.test_tactic.16»))] -[app - [global (indt «eq»), global (indt «nat»), c2, - app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]], - sort prop] -Query assignments: - X = sort (typ «elpi.tests.test_elaborator.53») - Y = sort (typ «elpi.tests.test_elaborator.54») -Universe constraints: -UNIVERSES: - {elpi.tests.test_elaborator.54 elpi.tests.test_elaborator.53} |= - elpi.tests.test_elaborator.53 < elpi.tests.test_elaborator.54 -ALGEBRAIC UNIVERSES: - {elpi.tests.test_elaborator.54 elpi.tests.test_elaborator.53} -UNDEFINED UNIVERSES: - elpi.tests.test_elaborator.54 - elpi.tests.test_elaborator.53 -SORTS: - -WEAK CONSTRAINTS: - - -1356 - : nat -this 3 app [c4, X0 c0 c1 c2 c3 c4] -app [c3, app [c1, c2], global (const «a»)] foo.bar -Query assignments: - D = X0 - R = app - [global (indc «ex_intro»), X0, - fun `hd_beta_auto` X0 c0 \ - app - [global (indt «eq»), global (indt «nat»), global (indc «O»), - global (indc «O»)], X1, global (const «p»)] - TY = app - [global (indt «ex»), X0, - fun `hd_beta_auto` X0 c0 \ - app - [global (indt «eq»), global (indt «nat»), global (indc «O»), - global (indc «O»)]] - _uvk_135_ = X2 - _uvk_136_ = X3 - _uvk_137_ = X4 -Syntactic constraints: - evar (X2) (sort (typ «ex.u0»)) X0 /* suspended on X2, X0 */ - evar (X4) X0 (X1) /* suspended on X4, X1 */ - evar (X1) X0 X5 /* suspended on X1, X5 */ -Query assignments: - R = app - [global (indc «ex_intro»), global (indt «nat»), - fun `hd_beta_auto` (global (indt «nat»)) c0 \ - app [global (indt «eq»), global (indt «nat»), c0, c0], - global (indc «O»), global (const «p»)] - TY = app - [global (indt «ex»), global (indt «nat»), - fun `hd_beta_auto` (global (indt «nat»)) c0 \ - app [global (indt «eq»), global (indt «nat»), c0, c0]] - _uvk_164_ = X0 - _uvk_165_ = X1 -[trm c0, trm (app [global (const «Nat.add»), c0, c1])] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -[trm c0, trm (app [global (const «Nat.add»), X0 c0 c1, c1])] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X1 c0 c1) (global (indt «nat»)) (X0 c0 c1) /* suspended on X1, X0 */ - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X2 c0 c1) (global (indt «True»)) (X3 c0 c1) /* suspended on X2, X3 */ -[trm c0, trm (app [global (const «Nat.add»), X0 c0 c1, c1])] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X1 c0 c1) (global (indt «True»)) (X2 c0 c1) /* suspended on X1, X2 */ -[trm c0, trm c1] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -[trm (app [global (const «Nat.add»), c0, c1])] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -[trm (app [global (const «Nat.add»), X0 c0 c1, c1])] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X1 c0 c1) (global (indt «nat»)) (X0 c0 c1) /* suspended on X1, X0 */ - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X2 c0 c1) (global (indt «True»)) (X3 c0 c1) /* suspended on X2, X3 */ -[trm (app [global (const «Nat.add»), X0 c0 c1, c1])] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X1 c0 c1) (global (indt «True»)) (X2 c0 c1) /* suspended on X1, X2 */ -[trm (app [global (indc «O»), global (indc «O»)])] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -[trm c0] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -[int 1] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -[int -1] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -[str a] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -[str a] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -[str x] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -[trm (app [global (const «Nat.add»), c0, c1])] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -[trm (app [global (const «Nat.add»), X0 c0 c1, c1])] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X1 c0 c1) (global (indt «True»)) (X2 c0 c1) /* suspended on X1, X2 */ -[trm (app [global (const «Nat.add»), X0 c0 c1, c1])] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X1 c0 c1) (global (indt «True»)) (X2 c0 c1) /* suspended on X1, X2 */ -[trm c0] - {c0 c1} : - decl c1 `y` (global (indt «nat»)), decl c0 `x` (global (indt «nat»)) - ?- evar (X0 c0 c1) (global (indt «True»)) (X1 c0 c1) /* suspended on X0, X1 */ -Query assignments: - R = app - [global (indc «ex_intro»), global (indt «nat»), - fun `hd_beta_auto` (global (indt «nat»)) c0 \ - app [global (indt «eq»), global (indt «nat»), c0, global (indc «O»)], - global (indc «O»), global (const «p»)] - TY = app - [global (indt «ex»), global (indt «nat»), - fun `n` (global (indt «nat»)) c0 \ - app [global (indt «eq»), global (indt «nat»), c0, global (indc «O»)]] - _uvk_174_ = X0 - _uvk_175_ = c0 \ -X1 c0 - _uvk_176_ = X2 - _uvk_177_ = X3 -Universe constraints: -UNIVERSES: - {elpi.tests.test_elaborator.58 elpi.tests.test_elaborator.57 - elpi.tests.test_elaborator.56 elpi.tests.test_elaborator.55} |= - Set <= elpi.tests.test_elaborator.55 - elpi.tests.test_elaborator.55 <= elpi.tests.test_elaborator.57 - elpi.tests.test_elaborator.56 <= elpi.tests.test_elaborator.57 - elpi.tests.test_elaborator.57 <= elpi.tests.test_elaborator.58 -ALGEBRAIC UNIVERSES: - {} -UNDEFINED UNIVERSES: - -SORTS: - -WEAK CONSTRAINTS: - - -Query assignments: - R = app - [global (indc «ex_intro»), global (indt «nat»), - fun `n` (global (indt «nat»)) c0 \ - app [global (indt «eq»), global (indt «nat»), c0, global (indc «O»)], - global (indc «O»), global (const «p»)] - TY = app - [global (indt «ex»), global (indt «nat»), - fun `n` (global (indt «nat»)) c0 \ - app [global (indt «eq»), global (indt «nat»), c0, global (indc «O»)]] - _uvk_211_ = X0 - _uvk_212_ = c0 \ -X1 c0 - _uvk_213_ = X2 - _uvk_214_ = X3 -Universe constraints: -UNIVERSES: - {elpi.tests.test_elaborator.62 elpi.tests.test_elaborator.61 - elpi.tests.test_elaborator.60 elpi.tests.test_elaborator.59} |= - Set <= elpi.tests.test_elaborator.59 - elpi.tests.test_elaborator.59 <= elpi.tests.test_elaborator.61 - elpi.tests.test_elaborator.60 <= elpi.tests.test_elaborator.61 - elpi.tests.test_elaborator.61 <= elpi.tests.test_elaborator.62 -ALGEBRAIC UNIVERSES: - {} -UNDEFINED UNIVERSES: - -SORTS: - -WEAK CONSTRAINTS: - - -[attribute elpi.loc - (leaf-loc - File "./tests/test_tactic.v", line 300, column 10, character 6470:)] -Query assignments: - A = tt - B = 0 - C = 0 - D = sort (typ «Set») - E = [«true», «false»] - F = [global (indt «bool»), global (indt «bool»)] - GR = «bool» -Entry binder_constr is -[ LEFTA - [ "exists2"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; ","; term LEVEL - "200"; "&"; term LEVEL "200" - | "exists2"; "'"; pattern LEVEL "0"; ","; term LEVEL "200"; "&"; term LEVEL - "200" - | "exists2"; name; ":"; term LEVEL "200"; ","; term LEVEL "200"; "&"; term - LEVEL "200" - | "exists2"; name; ","; term LEVEL "200"; "&"; term LEVEL "200" - | "exists"; "!"; open_binders; ","; term LEVEL "200" - | "exists"; open_binders; ","; term LEVEL "200" - | "forall"; open_binders; ","; term LEVEL "200" - | "fun"; open_binders; "=>"; term LEVEL "200" - | "let"; "fix"; fix_decl; "in"; term LEVEL "200" - | "let"; "cofix"; cofix_body; "in"; term LEVEL "200" - | "let"; "'"; pattern LEVEL "200"; ":="; term LEVEL "200"; "in"; term LEVEL - "200" - | "let"; "'"; pattern LEVEL "200"; ":="; term LEVEL "200"; case_type; "in"; - term LEVEL "200" - | "let"; "'"; pattern LEVEL "200"; "in"; pattern LEVEL "200"; ":="; term - LEVEL "200"; case_type; "in"; term LEVEL "200" - | "let"; name; binders; let_type_cstr; ":="; term LEVEL "200"; "in"; term - LEVEL "200" - | "let"; [ "("; LIST0 name SEP ","; ")" | "()" ]; as_return_type; ":="; - term LEVEL "200"; "in"; term LEVEL "200" - | "if"; term LEVEL "200"; as_return_type; "then"; term LEVEL "200"; "else"; - term LEVEL "200" - | "fix"; fix_decls - | "cofix"; cofix_decls ] ] - -Entry constr is -[ LEFTA - [ "@"; global; univ_annot - | term LEVEL "8" ] ] - -Entry lconstr is -[ LEFTA - [ term LEVEL "200" ] ] - -Entry term is -[ "200" RIGHTA - [ binder_constr ] -| "100" RIGHTA - [ SELF; "<:"; term LEVEL "200" - | SELF; "<<:"; term LEVEL "200" - | SELF; ":>"; term LEVEL "200" - | SELF; ":"; term LEVEL "200" ] -| "99" RIGHTA - [ SELF; "->"; term LEVEL "200" ] -| "95" RIGHTA - [ SELF; "<->"; NEXT ] -| "90" RIGHTA - [ ] -| "85" RIGHTA - [ SELF; "\\/"; term LEVEL "85" ] -| "80" RIGHTA - [ SELF; "/\\"; term LEVEL "80" ] -| "75" RIGHTA - [ "~"; term LEVEL "75" ] -| "70" RIGHTA - [ SELF; ">"; NEXT - | SELF; ">="; NEXT - | SELF; "<"; NEXT; "<="; NEXT - | SELF; "<"; NEXT; "<"; NEXT - | SELF; "<"; NEXT - | SELF; "<="; NEXT; "<"; NEXT - | SELF; "<="; NEXT; "<="; NEXT - | SELF; "<="; NEXT - | SELF; "<>"; NEXT; ":>"; NEXT - | SELF; "<>"; NEXT - | SELF; "="; NEXT; "="; NEXT - | SELF; "="; NEXT; ":>"; NEXT - | SELF; "="; NEXT ] -| "60" RIGHTA - [ SELF; "++"; term LEVEL "60" - | SELF; "::"; term LEVEL "60" ] -| "50" LEFTA - [ SELF; "||"; NEXT - | SELF; "-"; NEXT - | SELF; "+"; NEXT ] -| "40" LEFTA - [ SELF; "&&"; NEXT - | SELF; "/"; NEXT - | SELF; "*"; NEXT ] -| "35" RIGHTA - [ "/"; term LEVEL "35" - | "-"; term LEVEL "35" ] -| "30" RIGHTA - [ SELF; "^"; term LEVEL "30" ] -| LEFTA - [ IDENT "XX"; FIELD "xxx"; LIST0 arg ] -| "10" LEFTA - [ SELF; LIST1 arg - | "@"; global; univ_annot; LIST0 NEXT - | "@"; pattern_ident; LIST1 identref ] -| "9" LEFTA - [ ".."; term LEVEL "0"; ".." ] -| "8" LEFTA - [ ] -| "1" LEFTA - [ SELF; ".("; "@"; global; univ_annot; LIST0 (term LEVEL "9"); ")" - | SELF; ".("; global; univ_annot; LIST0 arg; ")" - | SELF; "%"; IDENT ] -| "0" LEFTA - [ "lib"; ":"; "@"; qualified_name - | "lib"; ":"; qualified_name - | QUOTATION "lp:" - | IDENT "ltac"; ":"; "("; ltac_expr; ")" - | "("; term LEVEL "200"; ","; term LEVEL "200"; ","; LIST1 (term LEVEL - "200") SEP ","; ")" - | "("; term LEVEL "200"; ","; term LEVEL "200"; ")" - | "("; term LEVEL "200"; ")" - | "{|"; record_declaration; '|}' - | "{"; "'"; pattern LEVEL "0"; "&"; term LEVEL "200"; "&"; term LEVEL - "200"; "}" - | "{"; "'"; pattern LEVEL "0"; "&"; term LEVEL "200"; "}" - | "{"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; "&"; term LEVEL - "200"; "&"; term LEVEL "200"; "}" - | "{"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; "&"; term LEVEL - "200"; "}" - | "{"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; "|"; term LEVEL - "200"; "&"; term LEVEL "200"; "}" - | "{"; "'"; pattern LEVEL "0"; ":"; term LEVEL "200"; "|"; term LEVEL - "200"; "}" - | "{"; "'"; pattern LEVEL "0"; "|"; term LEVEL "200"; "&"; term LEVEL - "200"; "}" - | "{"; "'"; pattern LEVEL "0"; "|"; term LEVEL "200"; "}" - | "{"; term LEVEL "99"; "&"; term LEVEL "200"; "&"; term LEVEL "200"; "}" - | "{"; term LEVEL "99"; "&"; term LEVEL "200"; "}" - | "{"; term LEVEL "99"; ":"; term LEVEL "200"; "&"; term LEVEL "200"; "&"; - term LEVEL "200"; "}" - | "{"; term LEVEL "99"; ":"; term LEVEL "200"; "&"; term LEVEL "200"; "}" - | "{"; term LEVEL "99"; ":"; term LEVEL "200"; "|"; term LEVEL "200"; "&"; - term LEVEL "200"; "}" - | "{"; term LEVEL "99"; ":"; term LEVEL "200"; "|"; term LEVEL "200"; "}" - | "{"; term LEVEL "99"; "|"; term LEVEL "200"; "&"; term LEVEL "200"; "}" - | "{"; term LEVEL "99"; "|"; term LEVEL "200"; "}" - | "{"; term LEVEL "99"; "}" - | "{"; binder_constr; "}" - | "`{"; term LEVEL "200"; "}" - | "`("; term LEVEL "200"; ")" - | NUMBER - | atomic_constr - | term_match - | ident; fields; univ_annot - | ident; univ_annot - | test_array_opening; "["; "|"; array_elems; "|"; lconstr; type_cstr; - test_array_closing; "|"; "]"; univ_annot ] ] - -[attribute elpi.loc - (leaf-loc - File "./tests/test_tactic.v", line 311, column 12, character 6723:)] -skip int 1 -skip str 33 -skip trm (global (indt «bool»)) -[attribute elpi.loc - (leaf-loc - File "./tests/test_tactic.v", line 311, column 12, character 6723:)] -skip int 1 -skip str 33 -skip trm (global (indt «bool»)) -nat -> bool -> True - : Prop -[attribute elpi.loc - (leaf-loc - File "./tests/test_tactic.v", line 320, column 12, character 6909:)] -[attribute elpi.loc - (leaf-loc - File "./tests/test_tactic.v", line 320, column 12, character 6909:)] -[attribute elpi.loc - (leaf-loc - File "./tests/test_tactic.v", line 324, column 30, character 7010:)] -[attribute elpi.loc - (leaf-loc - File "./tests/test_tactic.v", line 324, column 30, character 7010:)] -[attribute elpi.loc - (leaf-loc File "./tests/test_tactic.v", line 332, column 7, character 7186:)] -[attribute elpi.loc - (leaf-loc File "./tests/test_tactic.v", line 332, column 7, character 7186:)] -Query assignments: - F = app [global (const «nat_of_bool»), global (indc «true»)] -H -goal [] (X0) (global (indt «True»)) X1 [trm (global (const «H»))] -goal [] (X0) (global (indt «True»)) X1 - [trm - (app - [global (indt «eq»), global (indt «True»), global (const «H»), - global (const «H»)])] -goal [] (X0) (global (indt «True»)) X1 [trm (global (const «H»))] -c0 \ app [global (const «nat_of_bool»), c0] -Query assignments: - Res = app - [global (const «map»), global (indt «bool»), global (indt «nat»), - fun `x` (global (indt «bool»)) c0 \ - app [global (const «nat_of_bool»), c0], - app - [global (indc «cons»), global (indt «bool»), global (indc «true»), - app [global (indc «nil»), global (indt «bool»)]]] - _uvk_238_ = X0 - _uvk_239_ = X1 -COQC tests/test_ltac.v -Query assignments: - Res = app - [global (const «Z_of_nat»), - app [global (const «nat_of_bool»), global (indc «true»)]] -z - : nat -c0 \ -app [global (const «Z_of_nat»), app [global (const «nat_of_bool»), c0]] -Query assignments: - Res = app - [global (const «map»), global (indt «bool»), global (const «Z»), - fun `x` (global (indt «bool»)) c0 \ - app - [global (const «Z_of_nat»), app [global (const «nat_of_bool»), c0]], - app - [global (indc «cons»), global (indt «bool»), global (indc «true»), - app [global (indc «nil»), global (indt «bool»)]]] - _uvk_274_ = X0 - _uvk_275_ = X1 +COQC tests/test_API_new_pred.v +COQC tests/test_link_order_import0.v +COQC tests/test_vernacular2.v +test1 +str hello +str x +test1 +too many arguments +File "./tests/test_vernacular2.v", line 6, characters 2-17: +Warning: This command does not support this attribute: fwd_compat_attr. +[unsupported-attributes,parsing,default] +File "./tests/test_vernacular2.v", line 7, characters 2-17: +Warning: This command does not support this attribute: fwd_compat_attr. +[unsupported-attributes,parsing,default] +File "./tests/test_vernacular2.v", line 8, characters 2-17: +Warning: This command does not support this attribute: fwd_compat_attr. +[unsupported-attributes,parsing,default] +File "./tests/test_vernacular2.v", line 9, characters 2-17: +Warning: This command does not support this attribute: fwd_compat_attr. +[unsupported-attributes,parsing,default] +File "./tests/test_vernacular2.v", line 10, characters 2-17: +Warning: This command does not support this attribute: fwd_compat_attr. +[unsupported-attributes,parsing,default] +Query q X0 +Query r X0 +Result r 1 +COQC tests/test_ltac2.v it = elpi_subproof : True it : True @@ -11774,7 +12325,27 @@ elpi_subproof is opaque Expands to: Constant elpi.tests.test_ltac.elpi_subproof Closed under the global context -COQC tests/test_ltac3.v +COQC tests/test_libobject_B.v +[attribute elpi.loc + (leaf-loc + File "./tests/test_vernacular2.v", line 11, column 24, character 361:), + attribute fwd_compat_attr (leaf-str )] +[attribute elpi.loc + (leaf-loc + File "./tests/test_vernacular2.v", line 12, column 0, character 366:), + attribute fwd_compat_attr (leaf-str )] +COQC tests/test_link_order_import1.v +COQC tests/test_link_order_import2.v +COQC tests/test_libobject_C.v +COQC tests/test_link_order_import3.v +global (indc «O») +app + [global (indc «S»), + app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] +Finished transaction in 139.049 secs (132.617u,0.113s) (successful) +Finished transaction in 2.317 secs (2.313u,0.s) (successful) +test coqdoc hyperlinks +test link order is_empty_trivial : trivial empty is_empty : trivial empty is_empty is_unit_trivial : trivial unit is_unit @@ -11932,33 +12503,7 @@ is_val_inhab : full val is_val : full val is_val COQC tests/test_eqcorrect.v -Query assignments: - R = prod `r` (global (const «ring»)) c0 \ - prod `x` (app [global (const «carr»), c0]) c1 \ - app [global (indt «eq»), app [global (const «carr»), c0], c1, c1] - T = sort (typ «elpi.tests.test_elaborator.75») - _uvk_310_ = c0 \ c1 \ -X0 c0 c1 -Universe constraints: -UNIVERSES: - {elpi.tests.test_elaborator.75 elpi.tests.test_elaborator.74 - elpi.tests.test_elaborator.73 elpi.tests.test_elaborator.72 - elpi.tests.test_elaborator.70} |= - ring.u0 <= elpi.tests.test_elaborator.70 - elpi.tests.test_elaborator.70 <= elpi.tests.test_elaborator.75 - elpi.tests.test_elaborator.73 <= elpi.tests.test_elaborator.74 - elpi.tests.test_elaborator.74 <= elpi.tests.test_elaborator.75 -ALGEBRAIC UNIVERSES: - {} -UNDEFINED UNIVERSES: - -SORTS: - -WEAK CONSTRAINTS: - - -COQC tests/test_cache_async.v -COQC tests/test_COQ_ELPI_ATTRIBUTES.v +COQC tests/test_eqbcorrect.v empty_eq_correct : correct empty is_empty empty_eq : correct empty is_empty empty_eq unit_eq_correct : correct unit is_unit unit_eq @@ -12023,63 +12568,7 @@ (pr_record_eq A f) enum_eq_correct : correct enum is_enum enum_eq : correct enum is_enum enum_eq -COQC tests/test_eqbcorrect.v -Query assignments: - T = global (const «int») - X = primitive (uint63 99) -COQC tests/perf_calls.v -Query assignments: - T = global (const «float») - X = primitive (float64 993000) -COQC tests/test_require_bad_order.v -COQC tests/test_ctx_cache.v -Query assignments: - _uvk_323_ = X0 -COQC tests/test_libobject_A.v -COQC tests/test_glob.v -peano_eqb_correct : (forall n m : peano, peano_eqb n m = true -> n = m) - : forall n m : peano, peano_eqb n m = true -> n = m -peano_eqb_refl : (forall n : peano, peano_eqb n n = true) - : forall n : peano, peano_eqb n n = true -ord_eqb_correct : (forall n : peano, eqb_correct (ord_eqb n n)) - : forall n : peano, eqb_correct (ord_eqb n n) -ord_eqb_refl : (forall n : peano, eqb_reflexive (ord_eqb n n)) - : forall n : peano, eqb_reflexive (ord_eqb n n) -ord2_eqb_correct : (forall n : peano, eqb_correct (ord2_eqb n n)) - : forall n : peano, eqb_correct (ord2_eqb n n) -ord2_eqb_refl : (forall n : peano, eqb_reflexive (ord2_eqb n n)) - : forall n : peano, eqb_reflexive (ord2_eqb n n) -val_eqb_correct : eqb_correct val_eqb - : eqb_correct val_eqb -val_eqb_refl : eqb_reflexive val_eqb - : eqb_reflexive val_eqb -alias_eqb_correct : eqb_correct alias_eqb - : eqb_correct alias_eqb -alias_eqb_refl : eqb_reflexive alias_eqb - : eqb_reflexive alias_eqb COQC tests/test_eqOK.v -d1 - : nat -d2 - : nat -i1 - : Prop -i2 - : Prop -k1 - : i1 -k2 - : i2 -r1 - : Set -r2 - : Type -f1 - : r1 -> nat -f2 - : r2 -> nat -COQC tests/test_link_perf.v -Finished transaction in 3.879 secs (3.732u,0.s) (successful) empty_eq_OK : ok empty empty_eq : ok empty empty_eq unit_eq_OK : ok unit unit_eq @@ -12145,6 +12634,26 @@ forall (A : Type) (f : A -> A -> bool), ok A f -> ok (dlist A) (dlist_eq A f) : forall (A : Type) (f : A -> A -> bool), ok A f -> ok (dlist A) (dlist_eq A f) +peano_eqb_correct : (forall n m : peano, peano_eqb n m = true -> n = m) + : forall n m : peano, peano_eqb n m = true -> n = m +peano_eqb_refl : (forall n : peano, peano_eqb n n = true) + : forall n : peano, peano_eqb n n = true +ord_eqb_correct : (forall n : peano, eqb_correct (ord_eqb n n)) + : forall n : peano, eqb_correct (ord_eqb n n) +ord_eqb_refl : (forall n : peano, eqb_reflexive (ord_eqb n n)) + : forall n : peano, eqb_reflexive (ord_eqb n n) +ord2_eqb_correct : (forall n : peano, eqb_correct (ord2_eqb n n)) + : forall n : peano, eqb_correct (ord2_eqb n n) +ord2_eqb_refl : (forall n : peano, eqb_reflexive (ord2_eqb n n)) + : forall n : peano, eqb_reflexive (ord2_eqb n n) +val_eqb_correct : eqb_correct val_eqb + : eqb_correct val_eqb +val_eqb_refl : eqb_reflexive val_eqb + : eqb_reflexive val_eqb +alias_eqb_correct : eqb_correct alias_eqb + : eqb_correct alias_eqb +alias_eqb_refl : eqb_reflexive alias_eqb + : eqb_reflexive alias_eqb COQC tests/test_eqbOK.v peano_eqb_OK : forall n m : peano, Bool.reflect (n = m) (peano_eqb n m) : forall n m : peano, Bool.reflect (n = m) (peano_eqb n m) @@ -12171,20 +12680,20 @@ COQDEP VFILES COQC tests/test_assumption.v -COQC tests/test_constructor.v COQC tests/test_intro.v +COQC tests/test_constructor.v COQC tests/test_clear.v +COQC tests/test_fail.v d : nat -COQC tests/test_fail.v COQC tests/test_discriminate.v COQC tests/test_injection.v COQC tests/test_case.v +COQC tests/test_generalize.v 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 -COQC tests/test_generalize.v COQC tests/test_cycle.v COQC examples/usage_eltac.v make[2]: Leaving directory '/build/reproducible-path/coq-elpi-1.19.3/apps/eltac' @@ -12194,6 +12703,10 @@ COQDEP VFILES COQC tests/test_NES.v +COQC tests/test_NES_resolve.v +COQC tests/test_NES_perf.v +COQC tests/test_NES_perf_optimal.v +COQC tests/test_module_namespace.v Foo.x = 3 : nat Foo.x = 3 @@ -12229,418 +12742,7 @@ : nat A2.B2.f = 2 : nat -COQC tests/test_NES_resolve.v -COQC tests/test_NES_perf.v -[p 1, p 2, p 3, p 4, p 5, p 6, p 7, p 8, p 9, p 10, p 11, p 12, p 13, - p 14, p 15, p 16, p 17, p 18, p 19, p 20, p 21, p 22, p 23, p 24, p 25, - p 26, p 27, p 28, p 29, p 30, p 31, p 32, p 33, p 34, p 35, p 36, p 37, - p 38, p 39, p 40, p 41, p 42, p 43, p 44, p 45, p 46, p 47, p 48, p 49, - p 50, p 51, p 52, p 53, p 54, p 55, p 56, p 57, p 58, p 59, p 60, p 61, - p 62, p 63, p 64, p 65, p 66, p 67, p 68, p 69, p 70, p 71, p 72, p 73, - p 74, p 75, p 76, p 77, p 78, p 79, p 80, p 81, p 82, p 83, p 84, p 85, - p 86, p 87, p 88, p 89, p 90, p 91, p 92, p 93, p 94, p 95, p 96, p 97, - p 98, p 99, p 100, p 101, p 102, p 103, p 104, p 105, p 106, p 107, - p 108, p 109, p 110, p 111, p 112, p 113, p 114, p 115, p 116, p 117, - p 118, p 119, p 120, p 121, p 122, p 123, p 124, p 125, p 126, p 127, - p 128, p 129, p 130, p 131, p 132, p 133, p 134, p 135, p 136, p 137, - p 138, p 139, p 140, p 141, p 142, p 143, p 144, p 145, p 146, p 147, - p 148, p 149, p 150, p 151, p 152, p 153, p 154, p 155, p 156, p 157, - p 158, p 159, p 160, p 161, p 162, p 163, p 164, p 165, p 166, p 167, - p 168, p 169, p 170, p 171, p 172, p 173, p 174, p 175, p 176, p 177, - p 178, p 179, p 180, p 181, p 182, p 183, p 184, p 185, p 186, p 187, - p 188, p 189, p 190, p 191, p 192, p 193, p 194, p 195, p 196, p 197, - p 198, p 199, p 200, p 201, p 202, p 203, p 204, p 205, p 206, p 207, - p 208, p 209, p 210, p 211, p 212, p 213, p 214, p 215, p 216, p 217, - p 218, p 219, p 220, p 221, p 222, p 223, p 224, p 225, p 226, p 227, - p 228, p 229, p 230, p 231, p 232, p 233, p 234, p 235, p 236, p 237, - p 238, p 239, p 240, p 241, p 242, p 243, p 244, p 245, p 246, p 247, - p 248, p 249, p 250, p 251, p 252, p 253, p 254, p 255, p 256, p 257, - p 258, p 259, p 260, p 261, p 262, p 263, p 264, p 265, p 266, p 267, - p 268, p 269, p 270, p 271, p 272, p 273, p 274, p 275, p 276, p 277, - p 278, p 279, p 280, p 281, p 282, p 283, p 284, p 285, p 286, p 287, - p 288, p 289, p 290, p 291, p 292, p 293, p 294, p 295, p 296, p 297, - p 298, p 299, p 300, p 301, p 302, p 303, p 304, p 305, p 306, p 307, - p 308, p 309, p 310, p 311, p 312, p 313, p 314, p 315, p 316, p 317, - p 318, p 319, p 320, p 321, p 322, p 323, p 324, p 325, p 326, p 327, - p 328, p 329, p 330, p 331, p 332, p 333, p 334, p 335, p 336, p 337, - p 338, p 339, p 340, p 341, p 342, p 343, p 344, p 345, p 346, p 347, - p 348, p 349, p 350, p 351, p 352, p 353, p 354, p 355, p 356, p 357, - p 358, p 359, p 360, p 361, p 362, p 363, p 364, p 365, p 366, p 367, - p 368, p 369, p 370, p 371, p 372, p 373, p 374, p 375, p 376, p 377, - p 378, p 379, p 380, p 381, p 382, p 383, p 384, p 385, p 386, p 387, - p 388, p 389, p 390, p 391, p 392, p 393, p 394, p 395, p 396, p 397, - p 398, p 399, p 400, p 401, p 402, p 403, p 404, p 405, p 406, p 407, - p 408, p 409, p 410, p 411, p 412, p 413, p 414, p 415, p 416, p 417, - p 418, p 419, p 420, p 421, p 422, p 423, p 424, p 425, p 426, p 427, - p 428, p 429, p 430, p 431, p 432, p 433, p 434, p 435, p 436, p 437, - p 438, p 439, p 440, p 441, p 442, p 443, p 444, p 445, p 446, p 447, - p 448, p 449, p 450, p 451, p 452, p 453, p 454, p 455, p 456, p 457, - p 458, p 459, p 460, p 461, p 462, p 463, p 464, p 465, p 466, p 467, - p 468, p 469, p 470, p 471, p 472, p 473, p 474, p 475, p 476, p 477, - p 478, p 479, p 480, p 481, p 482, p 483, p 484, p 485, p 486, p 487, - p 488, p 489, p 490, p 491, p 492, p 493, p 494, p 495, p 496, p 497, - p 498, p 499, p 500, p 501, p 502, p 503, p 504, p 505, p 506, p 507, - p 508, p 509, p 510, p 511, p 512, p 513, p 514, p 515, p 516, p 517, - p 518, p 519, p 520, p 521, p 522, p 523, p 524, p 525, p 526, p 527, - p 528, p 529, p 530, p 531, p 532, p 533, p 534, p 535, p 536, p 537, - p 538, p 539, p 540, p 541, p 542, p 543, p 544, p 545, p 546, p 547, - p 548, p 549, p 550, p 551, p 552, p 553, p 554, p 555, p 556, p 557, - p 558, p 559, p 560, p 561, p 562, p 563, p 564, p 565, p 566, p 567, - p 568, p 569, p 570, p 571, p 572, p 573, p 574, p 575, p 576, p 577, - p 578, p 579, p 580, p 581, p 582, p 583, p 584, p 585, p 586, p 587, - p 588, p 589, p 590, p 591, p 592, p 593, p 594, p 595, p 596, p 597, - p 598, p 599, p 600, p 601, p 602, p 603, p 604, p 605, p 606, p 607, - p 608, p 609, p 610, p 611, p 612, p 613, p 614, p 615, p 616, p 617, - p 618, p 619, p 620, p 621, p 622, p 623, p 624, p 625, p 626, p 627, - p 628, p 629, p 630, p 631, p 632, p 633, p 634, p 635, p 636, p 637, - p 638, p 639, p 640, p 641, p 642, p 643, p 644, p 645, p 646, p 647, - p 648, p 649, p 650, p 651, p 652, p 653, p 654, p 655, p 656, p 657, - p 658, p 659, p 660, p 661, p 662, p 663, p 664, p 665, p 666, p 667, - p 668, p 669, p 670, p 671, p 672, p 673, p 674, p 675, p 676, p 677, - p 678, p 679, p 680, p 681, p 682, p 683, p 684, p 685, p 686, p 687, - p 688, p 689, p 690, p 691, p 692, p 693, p 694, p 695, p 696, p 697, - p 698, p 699, p 700, p 701, p 702, p 703, p 704, p 705, p 706, p 707, - p 708, p 709, p 710, p 711, p 712, p 713, p 714, p 715, p 716, p 717, - p 718, p 719, p 720, p 721, p 722, p 723, p 724, p 725, p 726, p 727, - p 728, p 729, p 730, p 731, p 732, p 733, p 734, p 735, p 736, p 737, - p 738, p 739, p 740, p 741, p 742, p 743, p 744, p 745, p 746, p 747, - p 748, p 749, p 750, p 751, p 752, p 753, p 754, p 755, p 756, p 757, - p 758, p 759, p 760, p 761, p 762, p 763, p 764, p 765, p 766, p 767, - p 768, p 769, p 770, p 771, p 772, p 773, p 774, p 775, p 776, p 777, - p 778, p 779, p 780, p 781, p 782, p 783, p 784, p 785, p 786, p 787, - p 788, p 789, p 790, p 791, p 792, p 793, p 794, p 795, p 796, p 797, - p 798, p 799, p 800, p 801, p 802, p 803, p 804, p 805, p 806, p 807, - p 808, p 809, p 810, p 811, p 812, p 813, p 814, p 815, p 816, p 817, - p 818, p 819, p 820, p 821, p 822, p 823, p 824, p 825, p 826, p 827, - p 828, p 829, p 830, p 831, p 832, p 833, p 834, p 835, p 836, p 837, - p 838, p 839, p 840, p 841, p 842, p 843, p 844, p 845, p 846, p 847, - p 848, p 849, p 850, p 851, p 852, p 853, p 854, p 855, p 856, p 857, - p 858, p 859, p 860, p 861, p 862, p 863, p 864, p 865, p 866, p 867, - p 868, p 869, p 870, p 871, p 872, p 873, p 874, p 875, p 876, p 877, - p 878, p 879, p 880, p 881, p 882, p 883, p 884, p 885, p 886, p 887, - p 888, p 889, p 890, p 891, p 892, p 893, p 894, p 895, p 896, p 897, - p 898, p 899, p 900, p 901, p 902, p 903, p 904, p 905, p 906, p 907, - p 908, p 909, p 910, p 911, p 912, p 913, p 914, p 915, p 916, p 917, - p 918, p 919, p 920, p 921, p 922, p 923, p 924, p 925, p 926, p 927, - p 928, p 929, p 930, p 931, p 932, p 933, p 934, p 935, p 936, p 937, - p 938, p 939, p 940, p 941, p 942, p 943, p 944, p 945, p 946, p 947, - p 948, p 949, p 950, p 951, p 952, p 953, p 954, p 955, p 956, p 957, - p 958, p 959, p 960, p 961, p 962, p 963, p 964, p 965, p 966, p 967, - p 968, p 969, p 970, p 971, p 972, p 973, p 974, p 975, p 976, p 977, - p 978, p 979, p 980, p 981, p 982, p 983, p 984, p 985, p 986, p 987, - p 988, p 989, p 990, p 991, p 992, p 993, p 994, p 995, p 996, p 997, - p 998, p 999, p 1000, p 1001, p 1002, p 1003, p 1004, p 1005, p 1006, - p 1007, p 1008, p 1009, p 1010, p 1011, p 1012, p 1013, p 1014, p 1015, - p 1016, p 1017, p 1018, p 1019, p 1020, p 1021, p 1022, p 1023, p 1024, - p 1025, p 1026, p 1027, p 1028, p 1029, p 1030, p 1031, p 1032, p 1033, - p 1034, p 1035, p 1036, p 1037, p 1038, p 1039, p 1040, p 1041, p 1042, - p 1043, p 1044, p 1045, p 1046, p 1047, p 1048, p 1049, p 1050, p 1051, - p 1052, p 1053, p 1054, p 1055, p 1056, p 1057, p 1058, p 1059, p 1060, - p 1061, p 1062, p 1063, p 1064, p 1065, p 1066, p 1067, p 1068, p 1069, - p 1070, p 1071, p 1072, p 1073, p 1074, p 1075, p 1076, p 1077, p 1078, - p 1079, p 1080, p 1081, p 1082, p 1083, p 1084, p 1085, p 1086, p 1087, - p 1088, p 1089, p 1090, p 1091, p 1092, p 1093, p 1094, p 1095, p 1096, - p 1097, p 1098, p 1099, p 1100, p 1101, p 1102, p 1103, p 1104, p 1105, - p 1106, p 1107, p 1108, p 1109, p 1110, p 1111, p 1112, p 1113, p 1114, - p 1115, p 1116, p 1117, p 1118, p 1119, p 1120, p 1121, p 1122, p 1123, - p 1124, p 1125, p 1126, p 1127, p 1128, p 1129, p 1130, p 1131, p 1132, - p 1133, p 1134, p 1135, p 1136, p 1137, p 1138, p 1139, p 1140, p 1141, - p 1142, p 1143, p 1144, p 1145, p 1146, p 1147, p 1148, p 1149, p 1150, - p 1151, p 1152, p 1153, p 1154, p 1155, p 1156, p 1157, p 1158, p 1159, - p 1160, p 1161, p 1162, p 1163, p 1164, p 1165, p 1166, p 1167, p 1168, - p 1169, p 1170, p 1171, p 1172, p 1173, p 1174, p 1175, p 1176, p 1177, - p 1178, p 1179, p 1180, p 1181, p 1182, p 1183, p 1184, p 1185, p 1186, - p 1187, p 1188, p 1189, p 1190, p 1191, p 1192, p 1193, p 1194, p 1195, - p 1196, p 1197, p 1198, p 1199, p 1200, p 1201, p 1202, p 1203, p 1204, - p 1205, p 1206, p 1207, p 1208, p 1209, p 1210, p 1211, p 1212, p 1213, - p 1214, p 1215, p 1216, p 1217, p 1218, p 1219, p 1220, p 1221, p 1222, - p 1223, p 1224, p 1225, p 1226, p 1227, p 1228, p 1229, p 1230, p 1231, - p 1232, p 1233, p 1234, p 1235, p 1236, p 1237, p 1238, p 1239, p 1240, - p 1241, p 1242, p 1243, p 1244, p 1245, p 1246, p 1247, p 1248, p 1249, - p 1250, p 1251, p 1252, p 1253, p 1254, p 1255, p 1256, p 1257, p 1258, - p 1259, p 1260, p 1261, p 1262, p 1263, p 1264, p 1265, p 1266, p 1267, - p 1268, p 1269, p 1270, p 1271, p 1272, p 1273, p 1274, p 1275, p 1276, - p 1277, p 1278, p 1279, p 1280, p 1281, p 1282, p 1283, p 1284, p 1285, - p 1286, p 1287, p 1288, p 1289, p 1290, p 1291, p 1292, p 1293, p 1294, - p 1295, p 1296, p 1297, p 1298, p 1299, p 1300, p 1301, p 1302, p 1303, - p 1304, p 1305, p 1306, p 1307, p 1308, p 1309, p 1310, p 1311, p 1312, - p 1313, p 1314, p 1315, p 1316, p 1317, p 1318, p 1319, p 1320, p 1321, - p 1322, p 1323, p 1324, p 1325, p 1326, p 1327, p 1328, p 1329, p 1330, - p 1331, p 1332, p 1333, p 1334, p 1335, p 1336, p 1337, p 1338, p 1339, - p 1340, p 1341, p 1342, p 1343, p 1344, p 1345, p 1346, p 1347, p 1348, - p 1349, p 1350, p 1351, p 1352, p 1353, p 1354, p 1355, p 1356, p 1357, - p 1358, p 1359, p 1360, p 1361, p 1362, p 1363, p 1364, p 1365, p 1366, - p 1367, p 1368, p 1369, p 1370, p 1371, p 1372, p 1373, p 1374, p 1375, - p 1376, p 1377, p 1378, p 1379, p 1380, p 1381, p 1382, p 1383, p 1384, - p 1385, p 1386, p 1387, p 1388, p 1389, p 1390, p 1391, p 1392, p 1393, - p 1394, p 1395, p 1396, p 1397, p 1398, p 1399, p 1400, p 1401, p 1402, - p 1403, p 1404, p 1405, p 1406, p 1407, p 1408, p 1409, p 1410, p 1411, - p 1412, p 1413, p 1414, p 1415, p 1416, p 1417, p 1418, p 1419, p 1420, - p 1421, p 1422, p 1423, p 1424, p 1425, p 1426, p 1427, p 1428, p 1429, - p 1430, p 1431, p 1432, p 1433, p 1434, p 1435, p 1436, p 1437, p 1438, - p 1439, p 1440, p 1441, p 1442, p 1443, p 1444, p 1445, p 1446, p 1447, - p 1448, p 1449, p 1450, p 1451, p 1452, p 1453, p 1454, p 1455, p 1456, - p 1457, p 1458, p 1459, p 1460, p 1461, p 1462, p 1463, p 1464, p 1465, - p 1466, p 1467, p 1468, p 1469, p 1470, p 1471, p 1472, p 1473, p 1474, - p 1475, p 1476, p 1477, p 1478, p 1479, p 1480, p 1481, p 1482, p 1483, - p 1484, p 1485, p 1486, p 1487, p 1488, p 1489, p 1490, p 1491, p 1492, - p 1493, p 1494, p 1495, p 1496, p 1497, p 1498, p 1499, p 1500, p 1501, - p 1502, p 1503, p 1504, p 1505, p 1506, p 1507, p 1508, p 1509, p 1510, - p 1511, p 1512, p 1513, p 1514, p 1515, p 1516, p 1517, p 1518, p 1519, - p 1520, p 1521, p 1522, p 1523, p 1524, p 1525, p 1526, p 1527, p 1528, - p 1529, p 1530, p 1531, p 1532, p 1533, p 1534, p 1535, p 1536, p 1537, - p 1538, p 1539, p 1540, p 1541, p 1542, p 1543, p 1544, p 1545, p 1546, - p 1547, p 1548, p 1549, p 1550, p 1551, p 1552, p 1553, p 1554, p 1555, - p 1556, p 1557, p 1558, p 1559, p 1560, p 1561, p 1562, p 1563, p 1564, - p 1565, p 1566, p 1567, p 1568, p 1569, p 1570, p 1571, p 1572, p 1573, - p 1574, p 1575, p 1576, p 1577, p 1578, p 1579, p 1580, p 1581, p 1582, - p 1583, p 1584, p 1585, p 1586, p 1587, p 1588, p 1589, p 1590, p 1591, - p 1592, p 1593, p 1594, p 1595, p 1596, p 1597, p 1598, p 1599, p 1600, - p 1601, p 1602, p 1603, p 1604, p 1605, p 1606, p 1607, p 1608, p 1609, - p 1610, p 1611, p 1612, p 1613, p 1614, p 1615, p 1616, p 1617, p 1618, - p 1619, p 1620, p 1621, p 1622, p 1623, p 1624, p 1625, p 1626, p 1627, - p 1628, p 1629, p 1630, p 1631, p 1632, p 1633, p 1634, p 1635, p 1636, - p 1637, p 1638, p 1639, p 1640, p 1641, p 1642, p 1643, p 1644, p 1645, - p 1646, p 1647, p 1648, p 1649, p 1650, p 1651, p 1652, p 1653, p 1654, - p 1655, p 1656, p 1657, p 1658, p 1659, p 1660, p 1661, p 1662, p 1663, - p 1664, p 1665, p 1666, p 1667, p 1668, p 1669, p 1670, p 1671, p 1672, - p 1673, p 1674, p 1675, p 1676, p 1677, p 1678, p 1679, p 1680, p 1681, - p 1682, p 1683, p 1684, p 1685, p 1686, p 1687, p 1688, p 1689, p 1690, - p 1691, p 1692, p 1693, p 1694, p 1695, p 1696, p 1697, p 1698, p 1699, - p 1700, p 1701, p 1702, p 1703, p 1704, p 1705, p 1706, p 1707, p 1708, - p 1709, p 1710, p 1711, p 1712, p 1713, p 1714, p 1715, p 1716, p 1717, - p 1718, p 1719, p 1720, p 1721, p 1722, p 1723, p 1724, p 1725, p 1726, - p 1727, p 1728, p 1729, p 1730, p 1731, p 1732, p 1733, p 1734, p 1735, - p 1736, p 1737, p 1738, p 1739, p 1740, p 1741, p 1742, p 1743, p 1744, - p 1745, p 1746, p 1747, p 1748, p 1749, p 1750, p 1751, p 1752, p 1753, - p 1754, p 1755, p 1756, p 1757, p 1758, p 1759, p 1760, p 1761, p 1762, - p 1763, p 1764, p 1765, p 1766, p 1767, p 1768, p 1769, p 1770, p 1771, - p 1772, p 1773, p 1774, p 1775, p 1776, p 1777, p 1778, p 1779, p 1780, - p 1781, p 1782, p 1783, p 1784, p 1785, p 1786, p 1787, p 1788, p 1789, - p 1790, p 1791, p 1792, p 1793, p 1794, p 1795, p 1796, p 1797, p 1798, - p 1799, p 1800, p 1801, p 1802, p 1803, p 1804, p 1805, p 1806, p 1807, - p 1808, p 1809, p 1810, p 1811, p 1812, p 1813, p 1814, p 1815, p 1816, - p 1817, p 1818, p 1819, p 1820, p 1821, p 1822, p 1823, p 1824, p 1825, - p 1826, p 1827, p 1828, p 1829, p 1830, p 1831, p 1832, p 1833, p 1834, - p 1835, p 1836, p 1837, p 1838, p 1839, p 1840, p 1841, p 1842, p 1843, - p 1844, p 1845, p 1846, p 1847, p 1848, p 1849, p 1850, p 1851, p 1852, - p 1853, p 1854, p 1855, p 1856, p 1857, p 1858, p 1859, p 1860, p 1861, - p 1862, p 1863, p 1864, p 1865, p 1866, p 1867, p 1868, p 1869, p 1870, - p 1871, p 1872, p 1873, p 1874, p 1875, p 1876, p 1877, p 1878, p 1879, - p 1880, p 1881, p 1882, p 1883, p 1884, p 1885, p 1886, p 1887, p 1888, - p 1889, p 1890, p 1891, p 1892, p 1893, p 1894, p 1895, p 1896, p 1897, - p 1898, p 1899, p 1900, p 1901, p 1902, p 1903, p 1904, p 1905, p 1906, - p 1907, p 1908, p 1909, p 1910, p 1911, p 1912, p 1913, p 1914, p 1915, - p 1916, p 1917, p 1918, p 1919, p 1920, p 1921, p 1922, p 1923, p 1924, - p 1925, p 1926, p 1927, p 1928, p 1929, p 1930, p 1931, p 1932, p 1933, - p 1934, p 1935, p 1936, p 1937, p 1938, p 1939, p 1940, p 1941, p 1942, - p 1943, p 1944, p 1945, p 1946, p 1947, p 1948, p 1949, p 1950, p 1951, - p 1952, p 1953, p 1954, p 1955, p 1956, p 1957, p 1958, p 1959, p 1960, - p 1961, p 1962, p 1963, p 1964, p 1965, p 1966, p 1967, p 1968, p 1969, - p 1970, p 1971, p 1972, p 1973, p 1974, p 1975, p 1976, p 1977, p 1978, - p 1979, p 1980, p 1981, p 1982, p 1983, p 1984, p 1985, p 1986, p 1987, - p 1988, p 1989, p 1990, p 1991, p 1992, p 1993, p 1994, p 1995, p 1996, - p 1997, p 1998, p 1999, p 2000, p 2001, p 2002, p 2003, p 2004, p 2005, - p 2006, p 2007, p 2008, p 2009, p 2010, p 2011, p 2012, p 2013, p 2014, - p 2015, p 2016, p 2017, p 2018, p 2019, p 2020, p 2021, p 2022, p 2023, - p 2024, p 2025, p 2026, p 2027, p 2028, p 2029, p 2030, p 2031, p 2032, - p 2033, p 2034, p 2035, p 2036, p 2037, p 2038, p 2039, p 2040, p 2041, - p 2042, p 2043, p 2044, p 2045, p 2046, p 2047, p 2048, p 2049, p 2050, - p 2051, p 2052, p 2053, p 2054, p 2055, p 2056, p 2057, p 2058, p 2059, - p 2060, p 2061, p 2062, p 2063, p 2064, p 2065, p 2066, p 2067, p 2068, - p 2069, p 2070, p 2071, p 2072, p 2073, p 2074, p 2075, p 2076, p 2077, - p 2078, p 2079, p 2080, p 2081, p 2082, p 2083, p 2084, p 2085, p 2086, - p 2087, p 2088, p 2089, p 2090, p 2091, p 2092, p 2093, p 2094, p 2095, - p 2096, p 2097, p 2098, p 2099, p 2100, p 2101, p 2102, p 2103, p 2104, - p 2105, p 2106, p 2107, p 2108, p 2109, p 2110, p 2111, p 2112, p 2113, - p 2114, p 2115, p 2116, p 2117, p 2118, p 2119, p 2120, p 2121, p 2122, - p 2123, p 2124, p 2125, p 2126, p 2127, p 2128, p 2129, p 2130, p 2131, - p 2132, p 2133, p 2134, p 2135, p 2136, p 2137, p 2138, p 2139, p 2140, - p 2141, p 2142, p 2143, p 2144, p 2145, p 2146, p 2147, p 2148, p 2149, - p 2150, p 2151, p 2152, p 2153, p 2154, p 2155, p 2156, p 2157, p 2158, - p 2159, p 2160, p 2161, p 2162, p 2163, p 2164, p 2165, p 2166, p 2167, - p 2168, p 2169, p 2170, p 2171, p 2172, p 2173, p 2174, p 2175, p 2176, - p 2177, p 2178, p 2179, p 2180, p 2181, p 2182, p 2183, p 2184, p 2185, - p 2186, p 2187, p 2188, p 2189, p 2190, p 2191, p 2192, p 2193, p 2194, - p 2195, p 2196, p 2197, p 2198, p 2199, p 2200, p 2201, p 2202, p 2203, - p 2204, p 2205, p 2206, p 2207, p 2208, p 2209, p 2210, p 2211, p 2212, - p 2213, p 2214, p 2215, p 2216, p 2217, p 2218, p 2219, p 2220, p 2221, - p 2222, p 2223, p 2224, p 2225, p 2226, p 2227, p 2228, p 2229, p 2230, - p 2231, p 2232, p 2233, p 2234, p 2235, p 2236, p 2237, p 2238, p 2239, - p 2240, p 2241, p 2242, p 2243, p 2244, p 2245, p 2246, p 2247, p 2248, - p 2249, p 2250, p 2251, p 2252, p 2253, p 2254, p 2255, p 2256, p 2257, - p 2258, p 2259, p 2260, p 2261, p 2262, p 2263, p 2264, p 2265, p 2266, - p 2267, p 2268, p 2269, p 2270, p 2271, p 2272, p 2273, p 2274, p 2275, - p 2276, p 2277, p 2278, p 2279, p 2280, p 2281, p 2282, p 2283, p 2284, - p 2285, p 2286, p 2287, p 2288, p 2289, p 2290, p 2291, p 2292, p 2293, - p 2294, p 2295, p 2296, p 2297, p 2298, p 2299, p 2300, p 2301, p 2302, - p 2303, p 2304, p 2305, p 2306, p 2307, p 2308, p 2309, p 2310, p 2311, - p 2312, p 2313, p 2314, p 2315, p 2316, p 2317, p 2318, p 2319, p 2320, - p 2321, p 2322, p 2323, p 2324, p 2325, p 2326, p 2327, p 2328, p 2329, - p 2330, p 2331, p 2332, p 2333, p 2334, p 2335, p 2336, p 2337, p 2338, - p 2339, p 2340, p 2341, p 2342, p 2343, p 2344, p 2345, p 2346, p 2347, - p 2348, p 2349, p 2350, p 2351, p 2352, p 2353, p 2354, p 2355, p 2356, - p 2357, p 2358, p 2359, p 2360, p 2361, p 2362, p 2363, p 2364, p 2365, - p 2366, p 2367, p 2368, p 2369, p 2370, p 2371, p 2372, p 2373, p 2374, - p 2375, p 2376, p 2377, p 2378, p 2379, p 2380, p 2381, p 2382, p 2383, - p 2384, p 2385, p 2386, p 2387, p 2388, p 2389, p 2390, p 2391, p 2392, - p 2393, p 2394, p 2395, p 2396, p 2397, p 2398, p 2399, p 2400, p 2401, - p 2402, p 2403, p 2404, p 2405, p 2406, p 2407, p 2408, p 2409, p 2410, - p 2411, p 2412, p 2413, p 2414, p 2415, p 2416, p 2417, p 2418, p 2419, - p 2420, p 2421, p 2422, p 2423, p 2424, p 2425, p 2426, p 2427, p 2428, - p 2429, p 2430, p 2431, p 2432, p 2433, p 2434, p 2435, p 2436, p 2437, - p 2438, p 2439, p 2440, p 2441, p 2442, p 2443, p 2444, p 2445, p 2446, - p 2447, p 2448, p 2449, p 2450, p 2451, p 2452, p 2453, p 2454, p 2455, - p 2456, p 2457, p 2458, p 2459, p 2460, p 2461, p 2462, p 2463, p 2464, - p 2465, p 2466, p 2467, p 2468, p 2469, p 2470, p 2471, p 2472, p 2473, - p 2474, p 2475, p 2476, p 2477, p 2478, p 2479, p 2480, p 2481, p 2482, - p 2483, p 2484, p 2485, p 2486, p 2487, p 2488, p 2489, p 2490, p 2491, - p 2492, p 2493, p 2494, p 2495, p 2496, p 2497, p 2498, p 2499, p 2500, - p 2501, p 2502, p 2503, p 2504, p 2505, p 2506, p 2507, p 2508, p 2509, - p 2510, p 2511, p 2512, p 2513, p 2514, p 2515, p 2516, p 2517, p 2518, - p 2519, p 2520, p 2521, p 2522, p 2523, p 2524, p 2525, p 2526, p 2527, - p 2528, p 2529, p 2530, p 2531, p 2532, p 2533, p 2534, p 2535, p 2536, - p 2537, p 2538, p 2539, p 2540, p 2541, p 2542, p 2543, p 2544, p 2545, - p 2546, p 2547, p 2548, p 2549, p 2550, p 2551, p 2552, p 2553, p 2554, - p 2555, p 2556, p 2557, p 2558, p 2559, p 2560, p 2561, p 2562, p 2563, - p 2564, p 2565, p 2566, p 2567, p 2568, p 2569, p 2570, p 2571, p 2572, - p 2573, p 2574, p 2575, p 2576, p 2577, p 2578, p 2579, p 2580, p 2581, - p 2582, p 2583, p 2584, p 2585, p 2586, p 2587, p 2588, p 2589, p 2590, - p 2591, p 2592, p 2593, p 2594, p 2595, p 2596, p 2597, p 2598, p 2599, - p 2600, p 2601, p 2602, p 2603, p 2604, p 2605, p 2606, p 2607, p 2608, - p 2609, p 2610, p 2611, p 2612, p 2613, p 2614, p 2615, p 2616, p 2617, - p 2618, p 2619, p 2620, p 2621, p 2622, p 2623, p 2624, p 2625, p 2626, - p 2627, p 2628, p 2629, p 2630, p 2631, p 2632, p 2633, p 2634, p 2635, - p 2636, p 2637, p 2638, p 2639, p 2640, p 2641, p 2642, p 2643, p 2644, - p 2645, p 2646, p 2647, p 2648, p 2649, p 2650, p 2651, p 2652, p 2653, - p 2654, p 2655, p 2656, p 2657, p 2658, p 2659, p 2660, p 2661, p 2662, - p 2663, p 2664, p 2665, p 2666, p 2667, p 2668, p 2669, p 2670, p 2671, - p 2672, p 2673, p 2674, p 2675, p 2676, p 2677, p 2678, p 2679, p 2680, - p 2681, p 2682, p 2683, p 2684, p 2685, p 2686, p 2687, p 2688, p 2689, - p 2690, p 2691, p 2692, p 2693, p 2694, p 2695, p 2696, p 2697, p 2698, - p 2699, p 2700, p 2701, p 2702, p 2703, p 2704, p 2705, p 2706, p 2707, - p 2708, p 2709, p 2710, p 2711, p 2712, p 2713, p 2714, p 2715, p 2716, - p 2717, p 2718, p 2719, p 2720, p 2721, p 2722, p 2723, p 2724, p 2725, - p 2726, p 2727, p 2728, p 2729, p 2730, p 2731, p 2732, p 2733, p 2734, - p 2735, p 2736, p 2737, p 2738, p 2739, p 2740, p 2741, p 2742, p 2743, - p 2744, p 2745, p 2746, p 2747, p 2748, p 2749, p 2750, p 2751, p 2752, - p 2753, p 2754, p 2755, p 2756, p 2757, p 2758, p 2759, p 2760, p 2761, - p 2762, p 2763, p 2764, p 2765, p 2766, p 2767, p 2768, p 2769, p 2770, - p 2771, p 2772, p 2773, p 2774, p 2775, p 2776, p 2777, p 2778, p 2779, - p 2780, p 2781, p 2782, p 2783, p 2784, p 2785, p 2786, p 2787, p 2788, - p 2789, p 2790, p 2791, p 2792, p 2793, p 2794, p 2795, p 2796, p 2797, - p 2798, p 2799, p 2800, p 2801, p 2802, p 2803, p 2804, p 2805, p 2806, - p 2807, p 2808, p 2809, p 2810, p 2811, p 2812, p 2813, p 2814, p 2815, - p 2816, p 2817, p 2818, p 2819, p 2820, p 2821, p 2822, p 2823, p 2824, - p 2825, p 2826, p 2827, p 2828, p 2829, p 2830, p 2831, p 2832, p 2833, - p 2834, p 2835, p 2836, p 2837, p 2838, p 2839, p 2840, p 2841, p 2842, - p 2843, p 2844, p 2845, p 2846, p 2847, p 2848, p 2849, p 2850, p 2851, - p 2852, p 2853, p 2854, p 2855, p 2856, p 2857, p 2858, p 2859, p 2860, - p 2861, p 2862, p 2863, p 2864, p 2865, p 2866, p 2867, p 2868, p 2869, - p 2870, p 2871, p 2872, p 2873, p 2874, p 2875, p 2876, p 2877, p 2878, - p 2879, p 2880, p 2881, p 2882, p 2883, p 2884, p 2885, p 2886, p 2887, - p 2888, p 2889, p 2890, p 2891, p 2892, p 2893, p 2894, p 2895, p 2896, - p 2897, p 2898, p 2899, p 2900, p 2901, p 2902, p 2903, p 2904, p 2905, - p 2906, p 2907, p 2908, p 2909, p 2910, p 2911, p 2912, p 2913, p 2914, - p 2915, p 2916, p 2917, p 2918, p 2919, p 2920, p 2921, p 2922, p 2923, - p 2924, p 2925, p 2926, p 2927, p 2928, p 2929, p 2930, p 2931, p 2932, - p 2933, p 2934, p 2935, p 2936, p 2937, p 2938, p 2939, p 2940, p 2941, - p 2942, p 2943, p 2944, p 2945, p 2946, p 2947, p 2948, p 2949, p 2950, - p 2951, p 2952, p 2953, p 2954, p 2955, p 2956, p 2957, p 2958, p 2959, - p 2960, p 2961, p 2962, p 2963, p 2964, p 2965, p 2966, p 2967, p 2968, - p 2969, p 2970, p 2971, p 2972, p 2973, p 2974, p 2975, p 2976, p 2977, - p 2978, p 2979, p 2980, p 2981, p 2982, p 2983, p 2984, p 2985, p 2986, - p 2987, p 2988, p 2989, p 2990, p 2991, p 2992, p 2993, p 2994, p 2995, - p 2996, p 2997, p 2998, p 2999, p 3000, p 3001, p 3002, p 3003, p 3004, - p 3005, p 3006, p 3007, p 3008, p 3009, p 3010, p 3011, p 3012, p 3013, - p 3014, p 3015, p 3016, p 3017, p 3018, p 3019, p 3020, p 3021, p 3022, - p 3023, p 3024, p 3025, p 3026, p 3027, p 3028, p 3029, p 3030, p 3031, - p 3032, p 3033, p 3034, p 3035, p 3036, p 3037, p 3038, p 3039, p 3040, - p 3041, p 3042, p 3043, p 3044, p 3045, p 3046, p 3047, p 3048, p 3049, - p 3050, p 3051, p 3052, p 3053, p 3054, p 3055, p 3056, p 3057, p 3058, - p 3059, p 3060, p 3061, p 3062, p 3063, p 3064, p 3065, p 3066, p 3067, - p 3068, p 3069, p 3070, p 3071, p 3072, p 3073, p 3074, p 3075, p 3076, - p 3077, p 3078, p 3079, p 3080, p 3081, p 3082, p 3083, p 3084, p 3085, - p 3086, p 3087, p 3088, p 3089, p 3090, p 3091, p 3092, p 3093, p 3094, - p 3095, p 3096, p 3097, p 3098, p 3099, p 3100, p 3101, p 3102, p 3103, - p 3104, p 3105, p 3106, p 3107, p 3108, p 3109, p 3110, p 3111, p 3112, - p 3113, p 3114, p 3115, p 3116, p 3117, p 3118, p 3119, p 3120, p 3121, - p 3122, p 3123, p 3124, p 3125, p 3126, p 3127, p 3128, p 3129, p 3130, - p 3131, p 3132, p 3133, p 3134, p 3135, p 3136, p 3137, p 3138, p 3139, - p 3140, p 3141, p 3142, p 3143, p 3144, p 3145, p 3146, p 3147, p 3148, - p 3149, p 3150, p 3151, p 3152, p 3153, p 3154, p 3155, p 3156, p 3157, - p 3158, p 3159, p 3160, p 3161, p 3162, p 3163, p 3164, p 3165, p 3166, - p 3167, p 3168, p 3169, p 3170, p 3171, p 3172, p 3173, p 3174, p 3175, - p 3176, p 3177, p 3178, p 3179, p 3180, p 3181, p 3182, p 3183, p 3184, - p 3185, p 3186, p 3187, p 3188, p 3189, p 3190, p 3191, p 3192, p 3193, - p 3194, p 3195, p 3196, p 3197, p 3198, p 3199, p 3200, p 3201, p 3202, - p 3203, p 3204, p 3205, p 3206, p 3207, p 3208, p 3209, p 3210, p 3211, - p 3212, p 3213, p 3214, p 3215, p 3216, p 3217, p 3218, p 3219, p 3220, - p 3221, p 3222, p 3223, p 3224, p 3225, p 3226, p 3227, p 3228, p 3229, - p 3230, p 3231, p 3232, p 3233, p 3234, p 3235, p 3236, p 3237, p 3238, - p 3239, p 3240, p 3241, p 3242, p 3243, p 3244, p 3245, p 3246, p 3247, - p 3248, p 3249, p 3250, p 3251, p 3252, p 3253, p 3254, p 3255, p 3256, - p 3257, p 3258, p 3259, p 3260, p 3261, p 3262, p 3263, p 3264, p 3265, - p 3266, p 3267, p 3268, p 3269, p 3270, p 3271, p 3272, p 3273, p 3274, - p 3275, p 3276, p 3277, p 3278, p 3279, p 3280, p 3281, p 3282, p 3283, - p 3284, p 3285, p 3286, p 3287, p 3288, p 3289, p 3290, p 3291, p 3292, - p 3293, p 3294, p 3295, p 3296, p 3297, p 3298, p 3299, p 3300, p 3301, - p 3302, p 3303, p 3304, p 3305, p 3306, p 3307, p 3308, p 3309, p 3310, - p 3311, p 3312, p 3313, p 3314, p 3315, p 3316, p 3317, p 3318, p 3319, - p 3320, p 3321, p 3322, p 3323, p 3324, p 3325, p 3326, p 3327, p 3328, - p 3329, p 3330, p 3331, p 3332, p 3333, p 3334, p 3335, p 3336, p 3337, - p 3338, p 3339, p 3340, p 3341, p 3342, p 3343, p 3344, p 3345, p 3346, - p 3347, p 3348, p 3349, p 3350, p 3351, p 3352, p 3353, p 3354, p 3355, - p 3356, p 3357, p 3358, p 3359, p 3360, p 3361, p 3362, p 3363, p 3364, - p 3365, p 3366, p 3367, p 3368, p 3369, p 3370, p 3371, p 3372, p 3373, - p 3374, p 3375, p 3376, p 3377, p 3378, p 3379, p 3380, p 3381, p 3382, - p 3383, p 3384, p 3385, p 3386, p 3387, p 3388, p 3389, p 3390, p 3391, - p 3392, p 3393, p 3394, p 3395, p 3396, p 3397, p 3398, p 3399, p 3400, - p 3401, p 3402, p 3403, p 3404, p 3405, p 3406, p 3407, p 3408, p 3409, - p 3410, p 3411, p 3412, p 3413, p 3414, p 3415, p 3416, p 3417, p 3418, - p 3419, p 3420, p 3421, p 3422, p 3423, p 3424, p 3425, p 3426, p 3427, - p 3428, p 3429, p 3430, p 3431, p 3432, p 3433, p 3434, p 3435, p 3436, - p 3437, p 3438, p 3439, p 3440, p 3441, p 3442, p 3443, p 3444, p 3445, - p 3446, p 3447, p 3448, p 3449, p 3450, p 3451, p 3452, p 3453, p 3454, - p 3455, p 3456, p 3457, p 3458, p 3459, p 3460, p 3461, p 3462, p 3463, - p 3464, p 3465, p 3466, p 3467, p 3468, p 3469, p 3470, p 3471, p 3472, - p 3473, p 3474, p 3475, p 3476, p 3477, p 3478, p 3479, p 3480, p 3481, - p 3482, p 3483, p 3484, p 3485, p 3486, p 3487, p 3488, p 3489, p 3490, - p 3491, p 3492, p 3493, p 3494, p 3495, p 3496, p 3497, p 3498, p 3499, - p 3500, p 3501, p 3502, p 3503, p 3504, p 3505, p 3506, p 3507, p 3508, - p 3509, p 3510, p 3511, p 3512, p 3513, p 3514, p 3515, p 3516, p 3517, - p 3518, p 3519, p 3520, p 3521, p 3522, p 3523, p 3524, p 3525, p 3526, - p 3527, p 3528, p 3529, p 3530, p 3531, p 3532, p 3533, p 3534, p 3535, - p 3536, p 3537, p 3538, p 3539, p 3540, p 3541, p 3542, p 3543, p 3544, - p 3545, p 3546, p 3547, p 3548, p 3549, p 3550, p 3551, p 3552, p 3553, - p 3554, p 3555, p 3556, p 3557, p 3558, p 3559, p 3560, p 3561, p 3562, - p 3563, p 3564, p 3565, p 3566, p 3567, p 3568, p 3569, p 3570, p 3571, - p 3572, p 3573, p 3574, p 3575, p 3576, p 3577, p 3578, p 3579, p 3580, - p 3581, p 3582, p 3583, p 3584, p 3585, p 3586, p 3587, p 3588, p 3589, - p 3590, p 3591, p 3592, p 3593, p 3594, p 3595, p 3596, p 3597, p 3598, - p 3599, p 3600, p 3601, p 3602, p 3603, p 3604, p 3605, p 3606, p 3607, - p 3608, p 3609, p 3610, p 3611, p 3612, p 3613, p 3614, p 3615, p 3616, - p 3617, p 3618, p 3619, p 3620, p 3621, p 3622, p 3623, p 3624, p 3625, - p 3626, p 3627, p 3628, p 3629, p 3630, p 3631, p 3632, p 3633, p 3634, - p 3635, p 3636, p 3637, p 3638, p 3639, p 3640, p 3641, p 3642, p 3643, - p 3644, p 3645, p 3646, p 3647, p 3648, p 3649, p 3650, p 3651, p 3652, - p 3653, p 3654, p 3655, p 3656, p 3657, p 3658, p 3659, p 3660, p 3661, - p 3662, p 3663, p 3664, p 3665, p 3666, p 3667, p 3668, p 3669, p 3670, - p 3671, p 3672, p 3673, p 3674, p 3675, p 3676, p 3677, p 3678, p 3679, - p 3680, p 3681, p 3682, p 3683, p 3684, p 3685, p 3686, p 3687, p 3688, - p 3689, p 3690, p 3691, p 3692, p 3693, p 3694, p 3695, p 3696, p 3697, - p 3698, p 3699, p 3700, p 3701, p 3702, p 3703, p 3704, p 3705, p 3706, - p 3707, p 3708, p 3709, p 3710] -COQC tests/test_link_order1.v -COQC tests/test_link_order2.v -COQC tests/test_link_order3.v -COQC tests/test_NES_perf_optimal.v -Finished transaction in 41.364 secs (37.332u,0.063s) (successful) -Finished transaction in 0.657 secs (0.657u,0.s) (successful) -COQC tests/test_link_order4.v -COQC tests/test_module_namespace.v COQC tests/test_NES_lib.v -COQC tests/test_link_order5.v COQC examples/usage_NES.v This.Is.A.Long.Namespace.stuff = 1 : nat @@ -12667,7 +12769,6 @@ COQDEP VFILES COQC tests/test_locker.v -COQC tests/test_link_order6.v Module d3 : d3_Locked @@ -12697,7 +12798,6 @@ Arguments id1 T%type_scope x id1 is transparent Expands to: Constant elpi.apps.locker.tests.test_locker.id1 -COQC tests/test_link_order7.v Query assignments: GR = const «id1» id2.body@{u} : forall T : Type@{u}, T -> T @@ -12721,7 +12821,6 @@ nup1.body is not universe polymorphic Arguments nup1.body T%type_scope x Expands to: Constant elpi.apps.locker.tests.test_locker.nup1.body -COQC tests/test_link_order8.v Query assignments: GR = const «nup1.body» up2.body@{u u0} : @@ -12739,86 +12838,24 @@ Using coq found in /usr/bin//, from COQBIN or PATH Warning: ../../theories (used in -R or -Q) is not a subdirectory of the current directory -COQC tests/test_link_order9.v COQDEP VFILES COQC tests/test_coercion.v -COQC tests/test_API_new_pred.v +COQC tests/test_coercion_open.v true && false : bool -COQC tests/test_link_order_import0.v -COQC tests/test_vernacular2.v natmul R n : ringType_sort R : ringType_sort R natmul R n : ringType_sort R : ringType_sort R -COQC tests/test_coercion_open.v -test1 -str hello -str x -test1 -too many arguments -File "./tests/test_vernacular2.v", line 6, characters 2-17: -Warning: This command does not support this attribute: fwd_compat_attr. -[unsupported-attributes,parsing,default] -File "./tests/test_vernacular2.v", line 7, characters 2-17: -Warning: This command does not support this attribute: fwd_compat_attr. -[unsupported-attributes,parsing,default] -File "./tests/test_vernacular2.v", line 8, characters 2-17: -Warning: This command does not support this attribute: fwd_compat_attr. -[unsupported-attributes,parsing,default] -File "./tests/test_vernacular2.v", line 9, characters 2-17: -Warning: This command does not support this attribute: fwd_compat_attr. -[unsupported-attributes,parsing,default] -File "./tests/test_vernacular2.v", line 10, characters 2-17: -Warning: This command does not support this attribute: fwd_compat_attr. -[unsupported-attributes,parsing,default] -Query q X0 -Query r X0 -Result r 1 -COQC tests/test_ltac2.v -[attribute elpi.loc - (leaf-loc - File "./tests/test_vernacular2.v", line 11, column 24, character 361:), - attribute fwd_compat_attr (leaf-str )] -[attribute elpi.loc - (leaf-loc - File "./tests/test_vernacular2.v", line 12, column 0, character 366:), - attribute fwd_compat_attr (leaf-str )] COQC tests/test_coercion_load.v -it = elpi_subproof - : True -it : True - -it is not universe polymorphic -it is transparent -Expands to: Constant elpi.tests.test_ltac.it -elpi_subproof = I - : True -elpi_subproof : True - -elpi_subproof is not universe polymorphic -elpi_subproof is opaque -Expands to: Constant elpi.tests.test_ltac.elpi_subproof -Closed under the global context true : bool : bool -COQC tests/test_libobject_B.v make[2]: Leaving directory '/build/reproducible-path/coq-elpi-1.19.3/apps/coercion' -COQC tests/test_link_order_import1.v -COQC tests/test_link_order_import2.v -COQC tests/test_libobject_C.v -global (indc «O») -app - [global (indc «S»), - app [global (indc «S»), app [global (indc «S»), global (indc «O»)]]] -COQC tests/test_link_order_import3.v -test coqdoc hyperlinks -test link order make[1]: Leaving directory '/build/reproducible-path/coq-elpi-1.19.3' create-stamp debian/debhelper-build-stamp dh_prep dh_auto_install --destdir=debian/libcoq-elpi/ - make -j3 install DESTDIR=/build/reproducible-path/coq-elpi-1.19.3/debian/libcoq-elpi AM_UPDATE_INFO_DIR=no "INSTALL=install --strip-program=true" + make -j4 install DESTDIR=/build/reproducible-path/coq-elpi-1.19.3/debian/libcoq-elpi AM_UPDATE_INFO_DIR=no "INSTALL=install --strip-program=true" make[1]: Entering directory '/build/reproducible-path/coq-elpi-1.19.3' Using coq found in /usr/bin, from COQBIN or PATH ########################## installing plugin ############################ @@ -13084,8 +13121,8 @@ dh_gencontrol dh_md5sums dh_builddeb -dpkg-deb: building package 'libcoq-elpi-dbgsym' in '../libcoq-elpi-dbgsym_1.19.3-2_armhf.deb'. dpkg-deb: building package 'libcoq-elpi' in '../libcoq-elpi_1.19.3-2_armhf.deb'. +dpkg-deb: building package 'libcoq-elpi-dbgsym' in '../libcoq-elpi-dbgsym_1.19.3-2_armhf.deb'. dpkg-genbuildinfo --build=binary -O../coq-elpi_1.19.3-2_armhf.buildinfo dpkg-genchanges --build=binary -O../coq-elpi_1.19.3-2_armhf.changes dpkg-genchanges: info: binary-only upload (no source code included) @@ -13093,12 +13130,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/5908/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/5908/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/2897 and its subdirectories -I: Current time: Sun Apr 21 14:35:56 -12 2024 -I: pbuilder-time-stamp: 1713753356 +I: removing directory /srv/workspace/pbuilder/5908 and its subdirectories +I: Current time: Mon Apr 22 17:00:51 +14 2024 +I: pbuilder-time-stamp: 1713754851