Input buildinfo: https://buildinfos.debian.net/buildinfo-pool/h/hol88/hol88_2.02.19940316-35.1_amd64.buildinfo Use metasnap for getting required timestamps New buildinfo file: /tmp/hol88-2.02.19940316-35.18oeu_iro/hol88_2.02.19940316-35.1_amd64.buildinfo Get source package info: hol88=2.02.19940316-35.1 Source URL: http://snapshot.notset.fr/mr/package/hol88/2.02.19940316-35.1/srcfiles?fileinfo=1 env -i PATH=/usr/sbin:/usr/bin:/sbin:/bin TMPDIR=/tmp mmdebstrap --arch=amd64 --include=autoconf=2.69-14 automake=1:1.16.3-2 autopoint=0.21-3 autotools-dev=20180224.1+nmu1 base-files=11 base-passwd=3.5.48 bash=5.1-2 binutils=2.35.1-6 binutils-common=2.35.1-6 binutils-x86-64-linux-gnu=2.35.1-6 bsdextrautils=2.36.1-4 bsdutils=1:2.36.1-4 build-essential=12.9 bzip2=1.0.8-4 coreutils=8.32-4+b1 cpp=4:10.2.0-1 cpp-10=10.2.1-3 dash=0.5.11+git20200708+dd9ef66-5 debconf=1.5.74 debhelper=13.3.1 debianutils=4.11.2 dh-autoreconf=19 dh-strip-nondeterminism=1.9.0-1 diffutils=1:3.7-5 dpkg=1.20.5 dpkg-dev=1.20.5 dwz=0.13+20201015-2 emacsen-common=3.0.4 file=1:5.39-3 findutils=4.7.0+git20201010-2 fontconfig-config=2.13.1-4.2 fonts-dejavu-core=2.37-2 fonts-lmodern=2.004.5-6.1 g++=4:10.2.0-1 g++-10=10.2.1-3 gcc=4:10.2.0-1 gcc-10=10.2.1-3 gcc-10-base=10.2.1-3 gcl=2.6.12-100 gettext=0.21-3 gettext-base=0.21-3 grep=3.6-1 groff-base=1.22.4-5 gzip=1.10-2 hostname=3.23 init-system-helpers=1.60 intltool-debian=0.35.0+20060710.5 libacl1=2.2.53-9 libarchive-zip-perl=1.68-1 libasan6=10.2.1-3 libatomic1=10.2.1-3 libattr1=1:2.4.48-6 libaudit-common=1:3.0-1 libaudit1=1:3.0-1 libbinutils=2.35.1-6 libblkid1=2.36.1-4 libbrotli1=1.0.9-2+b2 libbsd0=0.10.0-1 libbz2-1.0=1.0.8-4 libc-bin=2.31-7 libc-dev-bin=2.31-7 libc6=2.31-7 libc6-dev=2.31-7 libcairo2=1.16.0-5 libcanna1g=3.7p3-16 libcap-ng0=0.7.9-2.2+b1 libcc1-0=10.2.1-3 libcom-err2=1.45.6-1 libcompfaceg1=1:1.5.2-5+b2 libcrypt-dev=1:4.4.17-1 libcrypt1=1:4.4.17-1 libctf-nobfd0=2.35.1-6 libctf0=2.35.1-6 libdb5.3=5.3.28+dfsg1-0.6 libdebconfclient0=0.256 libdebhelper-perl=13.3.1 libdeflate0=1.7-1 libdpkg-perl=1.20.5 libelf1=0.182-2 libexpat1=2.2.10-1 libffi7=3.3-5 libfile-stripnondeterminism-perl=1.9.0-1 libfontconfig1=2.13.1-4.2 libfreetype6=2.10.4+dfsg-1 libgcc-10-dev=10.2.1-3 libgcc-s1=10.2.1-3 libgcrypt20=1.8.7-2 libgdbm-compat4=1.18.1-5.1 libgdbm6=1.18.1-5.1 libglib2.0-0=2.66.4-1 libgmp-dev=2:6.2.1+dfsg-1 libgmp10=2:6.2.1+dfsg-1 libgmp3-dev=2:6.2.1+dfsg-1 libgmpxx4ldbl=2:6.2.1+dfsg-1 libgnutls30=3.7.0-5 libgomp1=10.2.1-3 libgpg-error0=1.38-2 libgpm2=1.20.7-6 libgraphite2-3=1.3.14-1 libgssapi-krb5-2=1.18.3-4 libharfbuzz0b=2.6.7-1 libhogweed6=3.6-2 libice-dev=2:1.0.10-1 libice6=2:1.0.10-1 libicu67=67.1-5 libidn2-0=2.3.0-4 libisl23=0.23-1 libitm1=10.2.1-3 libjbig0=2.1-3.1+b2 libjpeg62-turbo=1:2.0.5-2 libk5crypto3=1.18.3-4 libkeyutils1=1.6.1-2 libkpathsea6=2020.20200327.54578-5 libkrb5-3=1.18.3-4 libkrb5support0=1.18.3-4 libldap-2.4-2=2.4.56+dfsg-1 liblsan0=10.2.1-3 liblz4-1=1.9.3-1 liblzma5=5.2.5-1.0 libmagic-mgc=1:5.39-3 libmagic1=1:5.39-3 libmount1=2.36.1-4 libmpc3=1.2.0-1 libmpfr6=4.1.0-3 libncurses-dev=6.2+20201114-2 libncurses6=6.2+20201114-2 libncursesw6=6.2+20201114-2 libnettle8=3.6-2 libnsl-dev=1.3.0-2 libnsl2=1.3.0-2 libp11-kit0=0.23.22-1 libpam-modules=1.4.0-2 libpam-modules-bin=1.4.0-2 libpam-runtime=1.4.0-2 libpam0g=1.4.0-2 libpaper-utils=1.1.28+b1 libpaper1=1.1.28+b1 libpcre2-8-0=10.36-2 libpcre3=2:8.39-13 libperl5.32=5.32.0-6 libpipeline1=1.5.3-1 libpixman-1-0=0.40.0-1 libpng16-16=1.6.37-3 libptexenc1=2020.20200327.54578-5 libpthread-stubs0-dev=0.4-1 libquadmath0=10.2.1-3 libreadline-dev=8.1-1 libreadline8=8.1-1 libsasl2-2=2.1.27+dfsg-2 libsasl2-modules-db=2.1.27+dfsg-2 libseccomp2=2.5.1-1 libselinux1=3.1-2+b2 libsigsegv2=2.12-3 libsm-dev=2:1.2.3-1 libsm6=2:1.2.3-1 libsmartcols1=2.36.1-4 libssl1.1=1.1.1i-1 libstdc++-10-dev=10.2.1-3 libstdc++6=10.2.1-3 libsub-override-perl=0.09-2 libsynctex2=2020.20200327.54578-5 libsystemd0=247.2-4 libtasn1-6=4.16.0-2 libtcl8.6=8.6.11+dfsg-1 libteckit0=2.5.10+ds1-3 libtexlua53=2020.20200327.54578-5 libtexluajit2=2020.20200327.54578-5 libtiff5=4.2.0-1 libtinfo6=6.2+20201114-2 libtirpc-common=1.3.1-1 libtirpc-dev=1.3.1-1 libtirpc3=1.3.1-1 libtk8.6=8.6.11-1 libtool=2.4.6-14 libtsan0=10.2.1-3 libubsan1=10.2.1-3 libuchardet0=0.0.7-1 libudev1=247.2-4 libunistring2=0.9.10-4 libuuid1=2.36.1-4 libwebp6=0.6.1-2+b1 libx11-6=2:1.6.12-1 libx11-data=2:1.6.12-1 libx11-dev=2:1.6.12-1 libxau-dev=1:1.0.8-1+b2 libxau6=1:1.0.8-1+b2 libxaw7=2:1.0.13-1.1 libxaw7-dev=2:1.0.13-1.1 libxcb-render0=1.14-2.1 libxcb-shm0=1.14-2.1 libxcb1=1.14-2.1 libxcb1-dev=1.14-2.1 libxdmcp-dev=1:1.1.2-3 libxdmcp6=1:1.1.2-3 libxext-dev=2:1.3.3-1.1 libxext6=2:1.3.3-1.1 libxft2=2.3.2-2 libxi6=2:1.7.10-1 libxml2=2.9.10+dfsg-6.3+b1 libxmu-dev=2:1.1.2-2+b3 libxmu-headers=2:1.1.2-2 libxmu6=2:1.1.2-2+b3 libxpm-dev=1:3.5.12-1 libxpm4=1:3.5.12-1 libxrender1=1:0.9.10-1 libxss1=1:1.2.3-1 libxt-dev=1:1.2.0-1 libxt6=1:1.2.0-1 libzstd1=1.4.8+dfsg-1 libzzip-0-13=0.13.62-3.2 linux-libc-dev=5.10.4-1 login=1:4.8.1-1 lsb-base=11.1.0 m4=1.4.18-4 make=4.3-4 man-db=2.9.3-2 mawk=1.3.4.20200120-2 ncurses-base=6.2+20201114-2 ncurses-bin=6.2+20201114-2 patch=2.7.6-6 perl=5.32.0-6 perl-base=5.32.0-6 perl-modules-5.32=5.32.0-6 po-debconf=1.0.21+nmu1 readline-common=8.1-1 sed=4.7-1 sensible-utils=0.0.12+nmu1 sysvinit-utils=2.96-5 t1utils=1.41-4 tar=1.32+dfsg-1 tex-common=6.15 texlive-base=2020.20201203-2 texlive-binaries=2020.20200327.54578-5 texlive-latex-base=2020.20201203-2 tzdata=2020f-1 ucf=3.0043 util-linux=2.36.1-4 x11-common=1:7.7+21 x11proto-core-dev=2020.1-1 x11proto-dev=2020.1-1 x11proto-xext-dev=2020.1-1 xdg-utils=1.1.3-2 xemacs21-basesupport=2009.02.17.dfsg.2-5 xemacs21-bin=21.4.24-9 xemacs21-mule-canna-wnn=21.4.24-9 xemacs21-mulesupport=2009.02.17.dfsg.2-5 xemacs21-support=21.4.24-9 xorg-sgml-doctools=1:1.11-1.1 xtrans-dev=1.4.0-1 xz-utils=5.2.5-1.0 zlib1g=1:1.2.11.dfsg-2 --variant=apt --aptopt=Acquire::Check-Valid-Until "false" --aptopt=Acquire::http::Dl-Limit "1000"; --aptopt=Acquire::https::Dl-Limit "1000"; --aptopt=Acquire::Retries "5"; --aptopt=APT::Get::allow-downgrades "true"; --keyring=/usr/share/keyrings/ --essential-hook=chroot "$1" sh -c "apt-get --yes install fakeroot util-linux" --essential-hook=copy-in /usr/share/keyrings/debian-archive-bullseye-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-security-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-stable.gpg /usr/share/keyrings/debian-archive-buster-automatic.gpg /usr/share/keyrings/debian-archive-buster-security-automatic.gpg /usr/share/keyrings/debian-archive-buster-stable.gpg /usr/share/keyrings/debian-archive-keyring.gpg /usr/share/keyrings/debian-archive-removed-keys.gpg /usr/share/keyrings/debian-archive-stretch-automatic.gpg /usr/share/keyrings/debian-archive-stretch-security-automatic.gpg /usr/share/keyrings/debian-archive-stretch-stable.gpg /usr/share/keyrings/debian-ports-archive-keyring-removed.gpg /usr/share/keyrings/debian-ports-archive-keyring.gpg /usr/share/keyrings/debian-keyring.gpg /etc/apt/trusted.gpg.d/ --essential-hook=chroot "$1" sh -c "rm /etc/apt/sources.list && echo 'deb http://snapshot.notset.fr/archive/debian/20210814T212851Z/ bookworm main deb-src http://snapshot.notset.fr/archive/debian/20210814T212851Z/ bookworm main deb http://snapshot.notset.fr/archive/debian/20210105T023154Z/ unstable main' >> /etc/apt/sources.list && apt-get update" --customize-hook=chroot "$1" useradd --no-create-home -d /nonexistent -p "" builduser -s /bin/bash --customize-hook=chroot "$1" env sh -c "apt-get source --only-source -d hol88=2.02.19940316-35.1 && mkdir -p /build/hol88-NNpOMw && dpkg-source --no-check -x /*.dsc /build/hol88-NNpOMw/hol88-2.02.19940316 && chown -R builduser:builduser /build/hol88-NNpOMw" --customize-hook=chroot "$1" env --unset=TMPDIR runuser builduser -c "cd /build/hol88-NNpOMw/hol88-2.02.19940316 && env DEB_BUILD_OPTIONS="parallel=4" LC_ALL="C.UTF-8" SOURCE_DATE_EPOCH="1609846651" dpkg-buildpackage -uc -a amd64 --build=any" --customize-hook=sync-out /build/hol88-NNpOMw /tmp/hol88-2.02.19940316-35.18oeu_iro bullseye /dev/null deb http://snapshot.notset.fr/archive/debian/20210105T023154Z unstable main I: automatically chosen mode: root I: chroot architecture amd64 is equal to the host's architecture I: automatically chosen format: tar I: using /tmp/mmdebstrap.i7k3i9YtI7 as tempdir I: running apt-get update... I: downloading packages with apt... I: extracting archives... I: installing essential packages... I: running --essential-hook in shell: sh -c 'chroot "$1" sh -c "apt-get --yes install fakeroot util-linux"' exec /tmp/mmdebstrap.i7k3i9YtI7 Reading package lists... Building dependency tree... util-linux is already the newest version (2.36.1-4). The following NEW packages will be installed: fakeroot libfakeroot 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. Need to get 134 kB of archives. After this operation, 397 kB of additional disk space will be used. Get:1 http://snapshot.notset.fr/archive/debian/20210105T023154Z unstable/main amd64 libfakeroot amd64 1.25.3-1.1 [47.0 kB] Get:2 http://snapshot.notset.fr/archive/debian/20210105T023154Z unstable/main amd64 fakeroot amd64 1.25.3-1.1 [87.0 kB] debconf: delaying package configuration, since apt-utils is not installed Fetched 134 kB in 0s (668 kB/s) Selecting previously unselected package libfakeroot:amd64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 4647 files and directories currently installed.) Preparing to unpack .../libfakeroot_1.25.3-1.1_amd64.deb ... Unpacking libfakeroot:amd64 (1.25.3-1.1) ... Selecting previously unselected package fakeroot. Preparing to unpack .../fakeroot_1.25.3-1.1_amd64.deb ... Unpacking fakeroot (1.25.3-1.1) ... Setting up libfakeroot:amd64 (1.25.3-1.1) ... Setting up fakeroot (1.25.3-1.1) ... update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode Processing triggers for libc-bin (2.31-7) ... I: running special hook: copy-in /usr/share/keyrings/debian-archive-bullseye-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-security-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-stable.gpg /usr/share/keyrings/debian-archive-buster-automatic.gpg /usr/share/keyrings/debian-archive-buster-security-automatic.gpg /usr/share/keyrings/debian-archive-buster-stable.gpg /usr/share/keyrings/debian-archive-keyring.gpg /usr/share/keyrings/debian-archive-removed-keys.gpg /usr/share/keyrings/debian-archive-stretch-automatic.gpg /usr/share/keyrings/debian-archive-stretch-security-automatic.gpg /usr/share/keyrings/debian-archive-stretch-stable.gpg /usr/share/keyrings/debian-ports-archive-keyring-removed.gpg /usr/share/keyrings/debian-ports-archive-keyring.gpg /usr/share/keyrings/debian-keyring.gpg /etc/apt/trusted.gpg.d/ I: running --essential-hook in shell: sh -c 'chroot "$1" sh -c "rm /etc/apt/sources.list && echo 'deb http://snapshot.notset.fr/archive/debian/20210814T212851Z/ bookworm main deb-src http://snapshot.notset.fr/archive/debian/20210814T212851Z/ bookworm main deb http://snapshot.notset.fr/archive/debian/20210105T023154Z/ unstable main' >> /etc/apt/sources.list && apt-get update"' exec /tmp/mmdebstrap.i7k3i9YtI7 Get:1 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm InRelease [81.6 kB] Hit:2 http://snapshot.notset.fr/archive/debian/20210105T023154Z unstable InRelease Ign:3 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main Sources Ign:4 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main amd64 Packages Ign:3 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main Sources Ign:4 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main amd64 Packages Ign:3 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main Sources Ign:4 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main amd64 Packages Get:3 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main Sources [11.4 MB] Get:4 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main amd64 Packages [11.1 MB] Fetched 22.6 MB in 20s (1136 kB/s) Reading package lists... I: installing remaining packages inside the chroot... I: running --customize-hook in shell: sh -c 'chroot "$1" useradd --no-create-home -d /nonexistent -p "" builduser -s /bin/bash' exec /tmp/mmdebstrap.i7k3i9YtI7 I: running --customize-hook in shell: sh -c 'chroot "$1" env sh -c "apt-get source --only-source -d hol88=2.02.19940316-35.1 && mkdir -p /build/hol88-NNpOMw && dpkg-source --no-check -x /*.dsc /build/hol88-NNpOMw/hol88-2.02.19940316 && chown -R builduser:builduser /build/hol88-NNpOMw"' exec /tmp/mmdebstrap.i7k3i9YtI7 Reading package lists... Need to get 10.4 MB of source archives. Get:1 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main hol88 2.02.19940316-35.1 (dsc) [2297 B] Get:2 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main hol88 2.02.19940316-35.1 (tar) [10.2 MB] Get:3 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main hol88 2.02.19940316-35.1 (diff) [131 kB] Fetched 10.4 MB in 9s (1192 kB/s) Download complete and in download only mode W: Download is performed unsandboxed as root as file 'hol88_2.02.19940316-35.1.dsc' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) dpkg-source: info: extracting hol88 in /build/hol88-NNpOMw/hol88-2.02.19940316 dpkg-source: info: unpacking hol88_2.02.19940316.orig.tar.gz dpkg-source: info: unpacking hol88_2.02.19940316-35.1.debian.tar.xz dpkg-source: info: using patch list from debian/patches/series dpkg-source: info: applying quilt-source-init dpkg-source: info: applying FTBFS_detection_fix I: running --customize-hook in shell: sh -c 'chroot "$1" env --unset=TMPDIR runuser builduser -c "cd /build/hol88-NNpOMw/hol88-2.02.19940316 && env DEB_BUILD_OPTIONS="parallel=4" LC_ALL="C.UTF-8" SOURCE_DATE_EPOCH="1609846651" dpkg-buildpackage -uc -a amd64 --build=any"' exec /tmp/mmdebstrap.i7k3i9YtI7 dpkg-buildpackage: info: source package hol88 dpkg-buildpackage: info: source version 2.02.19940316-35.1 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Holger Levsen dpkg-source --before-build . dpkg-buildpackage: info: host architecture amd64 fakeroot debian/rules clean dh_testdir dh_testroot rm -f build-arch-stamp build-indep-stamp configure-stamp [ ! -f Makefile ] || /usr/bin/make clean make[1]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316' /bin/rm -f ml/*_ml.o ml/*_ml.l ml/site.ml lisp/*.o /bin/rm -f hol-lcf basic-hol hol /usr/bin/make clean-library make[2]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316' (cd /build/hol88-NNpOMw/hol88-2.02.19940316/Library; /usr/bin/make Obj=o clean; cd ..) make[3]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library' for lib in unwind taut sets reduce arith pred_sets string finite_sets res_quan wellorder abs_theory reals window pair word record_proof parser prettyp trs latex-hol more_arithmetic numeral ind_defs ; \ do (cd $lib; /usr/bin/make Obj=o clean; cd ..) ; \ done make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/unwind' rm -f *_ml.o *_ml.l ===> library unwind: all object code deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/unwind' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/taut' rm -f taut_check_ml.o taut_check_ml.l ===> library taut: all object code deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/taut' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/sets' rm -f *_ml.o ===> library sets: all object code deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/sets' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/reduce' rm -f boolconv_ml.o arithconv_ml.o reduce_ml.o make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/reduce' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/arith' rm -f *_ml.l *_ml.o ===> library arith: all object code deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/arith' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/pred_sets' rm -f *_ml.o ===> library pred_sets: all object code deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/pred_sets' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/string' rm -f *_ml.o ===> library string: all object code deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/string' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/finite_sets' rm -f *_ml.o ===> library finite_sets: all object code deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/finite_sets' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/res_quan' rm -f *_ml.o ===> library res_quan: all object code deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/res_quan' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/wellorder' make[4]: 'clean' is up to date. make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/wellorder' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/abs_theory' /bin/rm -f *_ml.o ===> abs_theory. All object code deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/abs_theory' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/reals' cd theories; make clean make[5]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/reals/theories' rm -f *_ml.o make[5]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/reals/theories' make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/reals' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/window' rm -f *.l *.c *.o *.h *.data ===> library window: all object code deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/window' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/pair' rm -f *.l *.c *.o *.h *.data *.i *.s *.ir ===> library pair: all object code deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/pair' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/word' rm -f *_ml.o ===> library word: all object code deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/word' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/record_proof' rm -f *_ml.o ===> library record_proof: all object code deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/record_proof' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/parser' rm -f *_ml.o *_ml.l *.o ===> library parser: all object code deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/parser' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/prettyp' rm -f PP_printer/*_ml.o PP_printer/*_ml.l rm -f PP_parser/*_ml.o PP_parser/*_ml.l rm -f PP_hol/*_ml.o PP_hol/*_ml.l ===> library prettyp: all object code deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/prettyp' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/trs' rm -f *_ml.l *_ml.o ===> library trs: all object code deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/trs' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/latex-hol' rm -f *.o ===> library latex-hol: all object code deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/latex-hol' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/more_arithmetic' rm -f *_ml.o ===> library more_arithmetic: all object code deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/more_arithmetic' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/numeral' rm -f numeral_rules_ml.o make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/numeral' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/ind_defs' rm -f *_ml.o ===> library ind_defs: all object code deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/ind_defs' ===> all library object code deleted make[3]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library' make[2]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316' =======> all hol and lisp object code deleted make[1]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316' [ ! -f Makefile ] || /usr/bin/make clobber make[1]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316' /bin/rm -f ml/*_ml.o ml/*_ml.l ml/site.ml lisp/*.o /bin/rm -f /build/hol88-NNpOMw/hol88-2.02.19940316/theories/*.th hol-lcf basic-hol hol /usr/bin/make clobber-library make[2]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316' (cd /build/hol88-NNpOMw/hol88-2.02.19940316/Library; /usr/bin/make Obj=o clobber; cd ..) make[3]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library' for lib in unwind taut sets reduce arith pred_sets string finite_sets res_quan wellorder abs_theory reals window pair word record_proof parser prettyp trs latex-hol more_arithmetic numeral ind_defs ; \ do (cd $lib; /usr/bin/make Obj=o clobber; cd ..) ; \ done make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/unwind' rm -f *_ml.o *_ml.l ===> library unwind: all object code deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/unwind' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/taut' rm -f taut_check_ml.o taut_check_ml.l ===> library taut: all object code deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/taut' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/sets' rm -f *_ml.o *_ml.l *.th ===> library sets: all object code and theory files deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/sets' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/reduce' rm -f boolconv_ml.o arithconv_ml.o reduce_ml.o make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/reduce' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/arith' rm -f *_ml.l *_ml.o ===> library arith: all object code deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/arith' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/pred_sets' rm -f *_ml.o *_ml.l *.th ===> library pred_sets: all object code and theory files deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/pred_sets' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/string' rm -f *_ml.o *_ml.l *.th ===> library string: all object code and theory files deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/string' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/finite_sets' rm -f *_ml.o *_ml.l *.th ===> library finite_sets: object code and theory files deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/finite_sets' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/res_quan' rm -f *_ml.o *_ml.l *.th ===> library res_quan: all object code and theory files deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/res_quan' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/wellorder' rm -f WELLORDER.th make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/wellorder' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/abs_theory' /bin/rm -f *_ml.o *.th print ===> abs_theory: All object code and theory files deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/abs_theory' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/reals' cd theories; make clobber make[5]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/reals/theories' rm -f *_ml.o rm -f *.th make[5]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/reals/theories' make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/reals' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/window' rm -f *.l *.c *.o *.th *.h *.data ===> library window: all object code and theory files deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/window' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/pair' rm -f *.l *.c *.o *.th *.h *.data *.i *.s *.ir ===> library pair: all object code and theory files deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/pair' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/word' rm -f *_ml.o *_ml.l *.th ===> library word: all object code and theory files deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/word' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/record_proof' rm -f *_ml.o *_ml.l *.th ===> library record_proof: all object code and theory files deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/record_proof' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/parser' rm -f *_ml.o *_ml.l *.o ===> library parser: all object code deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/parser' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/prettyp' rm -f PP_printer/*_ml.o PP_printer/*_ml.l rm -f PP_parser/*_ml.o PP_parser/*_ml.l PP_parser/*_pp.ml rm -f PP_hol/*_ml.o PP_hol/*_ml.l PP_hol/*_pp.ml ===> library prettyp: all object code and _pp.ml files deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/prettyp' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/trs' rm -f *_ml.l *_ml.o ===> library trs: all object code deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/trs' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/latex-hol' rm -f latex_*_pp.ml *.o ===> library latex-hol: all object code and _pp.ml file deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/latex-hol' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/more_arithmetic' rm -f *_ml.o *_ml.l *.th ===> library more_arithmetic: all object code and theory files deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/more_arithmetic' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/numeral' rm -f numeral_rules_ml.o rm -f numeral.th make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/numeral' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/ind_defs' rm -f *_ml.o *_ml.l ===> library ind_defs: all object code deleted make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/ind_defs' ===> all library object code and theory files deleted make[3]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library' make[2]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316' =======> all object code and theory files deleted make[1]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316' for i in $(find Library -name index.tex) Library/pred_sets/Manual/theorems.tex Library/record_proof/Manual/record_proof.ind ; do\ [ -e $i.sve ] || cp $i $i.sve ; done [ ! -f Makefile ] || /usr/bin/make -C Manual clean make[1]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Manual' for i in Tutorial Description Reference Libraries Covers ; do /usr/bin/make -C $i clean ; done make[2]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Manual/Tutorial' rm -f *.dvi *.aux *.toc *.log make[2]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Manual/Tutorial' make[2]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Manual/Description' rm -f *.dvi *.aux *.toc *.log *.idx *.ilg make[2]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Manual/Description' make[2]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Manual/Reference' rm -f *.dvi *.aux *.toc *.log *.idx *.ilg make[2]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Manual/Reference' make[2]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Manual/Libraries' rm -f *.dvi *.aux *.toc *.log make[2]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Manual/Libraries' make[2]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Manual/Covers' rm -f *.log core *.aux *~ #* LOG ===> Fancy end and title pages cleaned up make[2]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Manual/Covers' make[1]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Manual' [ ! -f Makefile ] || for i in $(find Library -name Manual); do /usr/bin/make -C $i clean ; done make[1]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/string/Manual' rm -f *.dvi *.aux *.toc *.log *.idx *.ilg make[1]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/string/Manual' make[1]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/abs_theory/Manual' \ rm -f *.dvi *.aux *.toc *.log *.idx *.ilg entries.tex; \ printf '\\begin{theindex}' >index.tex; \ printf '\\mbox{}' >>index.tex; \ printf '\\end{theindex}' >>index.tex make[1]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/abs_theory/Manual' make[1]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/wellorder/Manual' \ rm -f *.dvi *.aux *.toc *.log *.idx *.ilg entries.tex; \ printf '\\begin{theindex}' >index.tex; \ printf '\\mbox{}' >>index.tex; \ printf '\\end{theindex}' >>index.tex make[1]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/wellorder/Manual' make[1]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/pair/Manual' rm -f *.dvi *.aux *.toc *.log *.idx *.ilg entries.tex theorems.tex; \ printf '\\begin{theindex}' >index.tex; \ printf '\\mbox{}' >>index.tex; \ printf '\\end{theindex}' >>index.tex make[1]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/pair/Manual' make[1]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/more_arithmetic/Manual' rm -f *.dvi *.aux *.toc *.log *.idx *.ilg make[1]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/more_arithmetic/Manual' make[1]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/taut/Manual' rm -f *.dvi *.aux *.toc *.log *.idx *.ilg make[1]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/taut/Manual' make[1]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/arith/Manual' rm -f *.dvi *.aux *.toc *.log *.idx *.ilg make[1]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/arith/Manual' make[1]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/word/Manual' rm -f *.dvi *.aux *.toc *.log *.idx *.ilg make[1]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/word/Manual' make[1]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/reals/Manual' \ rm -f *.dvi *.aux *.toc *.log *.idx *.ilg; \ printf '\\begin{theindex}' >index.tex; \ printf '\\mbox{}' >>index.tex; \ printf '\\end{theindex}' >>index.tex make[1]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/reals/Manual' make[1]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/sets/Manual' rm -f *.dvi *.aux *.toc *.log *.idx *.ilg make[1]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/sets/Manual' make[1]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/record_proof/Manual' rm -f *.dvi *.aux *.toc *.log *.idx *.ilg make[1]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/record_proof/Manual' make[1]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/numeral/Manual' \ rm -f *.dvi *.aux *.toc *.log *.idx *.ilg entries.tex; \ printf '\\begin{theindex}' >index.tex; \ printf '\\mbox{}' >>index.tex; \ printf '\\end{theindex}' >>index.tex make[1]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/numeral/Manual' make[1]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/window/Manual' rm -f *.dvi *.aux *.toc *.log *.idx *.ilg entries.tex *.bak; \ printf '\\begin{theindex}' >index.tex; \ printf '\\mbox{}' >>index.tex; \ printf '\\end{theindex}' >>index.tex make[1]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/window/Manual' make[1]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/finite_sets/Manual' rm -f *.dvi *.aux *.toc *.log *.idx *.ilg make[1]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/finite_sets/Manual' make[1]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/parser/Manual' rm -f *.dvi *.aux *.toc *.log *.idx *.ilg make[1]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/parser/Manual' make[1]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/res_quan/Manual' rm -f *.dvi *.aux *.toc *.log *.idx *.ilg make[1]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/res_quan/Manual' make[1]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/pred_sets/Manual' rm -f *.dvi *.aux *.toc *.log *.idx *.ilg make[1]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/pred_sets/Manual' make[1]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/latex-hol/Manual' rm -f *.dvi *.aux *.toc *.log *.idx *.ilg make[1]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/latex-hol/Manual' make[1]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/reduce/Manual' \ rm -f *.dvi *.aux *.toc *.log *.idx *.ilg entries.tex; \ printf '\\begin{theindex}' >index.tex; \ printf '\\mbox{}' >>index.tex; \ printf '\\end{theindex}' >>index.tex make[1]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/reduce/Manual' make[1]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/unwind/Manual' rm -f *.dvi *.aux *.toc *.log *.idx *.ilg make[1]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/unwind/Manual' make[1]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/prettyp/Manual' rm -f *.dvi *.aux *.toc *.log *.idx *.ilg make[1]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/prettyp/Manual' make[1]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/trs/Manual' rm -f *.dvi *.aux *.toc *.log *.idx *.ilg make[1]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/trs/Manual' find -name X.tex -exec rm -rf {} \; dh_clean -X./ml/site.ml.orig -X./contrib/tooltool/Makefile.orig \ -X./contrib/tooltool/events.c.orig -X./contrib/tooltool/func_fix.c.orig \ -X./contrib/tooltool/lex.c.orig -X./contrib/tooltool/parse.y.orig \ -X./contrib/tooltool/patchlevel.h.orig -X./contrib/tooltool/windows.c.orig \ -X./contrib/Xhelp/hol_apro.orig -X./contrib/Xhelp/hol_ref.orig \ -X./contrib/Xhelp/xholhelp.h.orig -X./contrib/Xhelp/hol_thm.orig dh_clean: warning: Compatibility levels before 10 are deprecated (level 9 in use) for i in $(find Library -name "*.sve") ; do mv $i $(echo $i | sed "s,\.sve,,1"); done rm -f debian/hol88.install debian/hol88-library.install debian/hol88-source.install debian/hol88-help.install debian/hol88-library-source.install debian/hol88-library-help.install debian/hol88-contrib-source.install debian/hol88-contrib-help.install debian/hol88-doc.install debian/hol88.links debian/hol88-library.links debian/hol88.sh find -name "*.dvi" -exec rm {} \; rm -f Manual/Tutorial/ack.tex Manual/Reference/ack.tex Manual/Description/ack.tex rm -f Manual/Covers/titlepages.ps Manual/Covers/endpages.ps rm -f bm.l foo* gcl ./lisp/f-ol-syntax.data cp debian/site_ml_orig ml/site.ml.orig rm -f Library/finite_sets/Manual/entries.tex \ Library/finite_sets/Manual/theorems.tex \ Library/more_arithmetic/Manual/theorems.tex \ Library/numeral/Manual/theorems.tex \ Library/pred_sets/Manual/entries.tex \ Library/prettyp/Manual/entries.tex \ Library/reals/Manual/theorems.tex \ Library/res_quan/Manual/entries.tex \ Library/sets/Manual/entries.tex \ Library/sets/Manual/theorems.tex \ Library/string/Manual/theorems.tex \ Library/wellorder/Manual/theorems.tex \ Library/word/Manual/theorems.tex \ Manual/Reference/entries.tex \ Manual/Reference/theorems.tex debian/rules build-arch dh_testdir touch configure-stamp echo '#-native-reloc(bye -1)' | gcl || cat debian/gcl_patch.l debian/gcl_save.l | gcl GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >PATH=$(pwd):$PATH /usr/bin/make all make[1]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316' date Wed Oct 13 15:58:26 UTC 2021 /usr/bin/make hol make[2]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316' if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(compile-file "lisp/f-cl.l") (quit)'\ | gcl; else\ lisp/f-franz; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ > Compiling lisp/f-cl.l. ; (DEFUN SET-FASL-FLAG ...) is being compiled. ;; The variable |%print_fasl-flag| is undefined. ;; The compiler will assume this variable is a global. End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-cl.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-cl.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/f-macro.l") (quit)'\ | gcl; else\ lisp/f-macro; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/f-macro.l. ; (DEFUN EXISTS ...) is being compiled. ;; Warning: The variable IGNORE is not used. ; (DEFUN FORALL ...) is being compiled. ;; Warning: The variable IGNORE is not used. End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-macro.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-macro.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/f-system.l") (quit)'\ | gcl; else\ lisp/f-system; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/f-system.l. ;;; Including lisp/f-macrostart address -T 0x97bbc0 ; (DEFUN FILETOKP ...) is being compiled. ;; Warning: The variable KIND is not used. ;; Warning: The variable TOK is not used. ; (DEFUN COMPILE-LISP ...) is being compiled. ;; Warning: The variable X is not used. ;; Warning: The variable X is not used. End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-system.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-system.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/f-help.l") (quit)'\ | gcl; else\ lisp/f-help; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/f-help.l. ;;; Including lisp/f-macrostart address -T 0x97bbc0 End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-help.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-help.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/f-ol-rec.l") (quit)'\ | gcl; else\ lisp/f-ol-rec; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/f-ol-rec.l. End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-ol-rec.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-ol-rec.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/genmacs.l") (quit)'\ | gcl; else\ lisp/genmacs; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/genmacs.l. ;;; Including lisp/f-macrostart address -T 0x97bbc0 ;;; Including lisp/f-ol-recstart address -T 0x97f130 End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/genmacs.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/genmacs.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/mk-ml.l") (quit)'\ | gcl; else\ lisp/mk-ml; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/mk-ml.l. End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/mk-ml.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/mk-ml.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/mk-hol-lcf.l") (quit)'\ | gcl; else\ lisp/mk-hol-lcf; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/mk-hol-lcf.l. End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/mk-hol-lcf.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/mk-hol-lcf.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/f-constants.l") (quit)'\ | gcl; else\ lisp/f-constants; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/f-constants.l. End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-constants.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-constants.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/f-site.l") (quit)'\ | gcl; else\ lisp/f-site; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/f-site.l. ;;; Including lisp/f-constantsstart address -T 0x9207a0 End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-site.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-site.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/f-gp.l") (quit)'\ | gcl; else\ lisp/f-gp; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/f-gp.l. ;;; Including lisp/f-constantsstart address -T 0x9207a0 ;;; Including lisp/f-macrostart address -T 0x97dbc0 End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-gp.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-gp.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/f-parser.l") (quit)'\ | gcl; else\ lisp/f-parser; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/f-parser.l. ;;; Including lisp/f-constantsstart address -T 0x9207a0 ;;; Including lisp/f-macrostart address -T 0x97dbc0 End of Pass 1. ;; Note: Tail-recursive call of GNC was replaced by iteration. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-parser.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-parser.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/f-parsml.l") (quit)'\ | gcl; else\ lisp/f-parsml; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/f-parsml.l. ;;; Including lisp/f-constantsstart address -T 0x9207a0 ;;; Including lisp/f-macrostart address -T 0x97dbc0 End of Pass 1. ;; Note: Tail-recursive call of ULTABSTR was replaced by iteration. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-parsml.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-parsml.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/f-mlprin.l") (quit)'\ | gcl; else\ lisp/f-mlprin; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/f-mlprin.l. ;;; Including lisp/f-constantsstart address -T 0x9207a0 ;;; Including lisp/f-macrostart address -T 0x97dbc0 End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-mlprin.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-mlprin.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/f-typeml.l") (quit)'\ | gcl; else\ lisp/f-typeml; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/f-typeml.l. ;;; Including lisp/f-constantsstart address -T 0x9207a0 ;;; Including lisp/f-macrostart address -T 0x97dbc0 End of Pass 1. ;; Note: Tail-recursive call of TYPING was replaced by iteration. ;; Note: Tail-recursive call of TYPING was replaced by iteration. ;; Note: Tail-recursive call of TYPING was replaced by iteration. ;; Note: Tail-recursive call of TYPING was replaced by iteration. ;; Note: Tail-recursive call of ADJUST-FUNDEF was replaced by iteration. ;; Note: Tail-recursive call of ADJUST-FUNDEF was replaced by iteration. ;; Note: Tail-recursive call of ADJUST-ABSTRACTION was replaced by iteration. ;; Note: Tail-recursive call of IS-LOCAL-CONSTRUCTOR was replaced by iteration. ;; Note: Tail-recursive call of LAYER was replaced by iteration. ;; Note: Tail-recursive call of GETTYPEID was replaced by iteration. ;; Note: Tail-recursive call of MUTANT1 was replaced by iteration. ;; Note: Tail-recursive call of IMMUT was replaced by iteration. ;; Note: Tail-recursive call of ATCH was replaced by iteration. ;; Note: Tail-recursive call of TIDYUP was replaced by iteration. ;; Note: Tail-recursive call of PRINTTYTAIL was replaced by iteration. ;; Note: Tail-recursive call of PRUNE was replaced by iteration. ;; Note: Tail-recursive call of UNIFYTL was replaced by iteration. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-typeml.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-typeml.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/f-dml.l") (quit)'\ | gcl; else\ lisp/f-dml; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/f-dml.l. ;;; Including lisp/f-macrostart address -T 0x97bbc0 ;;; Including lisp/f-constantsstart address -T 0x924830 End of Pass 1. ;; Note: Tail-recursive call of ML-ORD was replaced by iteration. ;; Note: Tail-recursive call of ML-ORD was replaced by iteration. End of Pass 2. /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-dml.c: In function ‘L2’: /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-dml.c:1123:19: warning: unused variable ‘V12’ [-Wunused-variable] 1123 | {register object V12; | ^~~ OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-dml.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-dml.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/f-format.l") (quit)'\ | gcl; else\ lisp/f-format; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/f-format.l. ;;; Including lisp/f-macrostart address -T 0x97bbc0 ;;; Including lisp/f-constantsstart address -T 0x924830 End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-format.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-format.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/f-tran.l") (quit)'\ | gcl; else\ lisp/f-tran; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/f-tran.l. ;;; Including lisp/f-constantsstart address -T 0x9207a0 ;;; Including lisp/f-macrostart address -T 0x97dbc0 End of Pass 1. ;; Note: Tail-recursive call of STORST was replaced by iteration. ;; Note: Tail-recursive call of VARPAT was replaced by iteration. ;; Note: Tail-recursive call of TRE was replaced by iteration. ;; Note: Tail-recursive call of TRE was replaced by iteration. ;; Note: Tail-recursive call of TRE was replaced by iteration. ;; Note: Tail-recursive call of TRE was replaced by iteration. ;; Note: Tail-recursive call of TRE was replaced by iteration. ;; Note: Tail-recursive call of INSERTTRANSFUN was replaced by iteration. ;; Note: Tail-recursive call of FAP was replaced by iteration. ;; Note: Tail-recursive call of CHECKS was replaced by iteration. End of Pass 2. /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-tran.c: In function ‘L44’: /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-tran.c:4167:19: warning: unused variable ‘V248’ [-Wunused-variable] 4167 | {register object V248; | ^~~~ OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-tran.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-tran.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/f-iox-stand.l") (quit)'\ | gcl; else\ lisp/f-iox-stand; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/f-iox-stand.l. ;;; Including lisp/f-constantsstart address -T 0x9207a0 ;;; Including lisp/f-macrostart address -T 0x97dbc0 End of Pass 1. End of Pass 2. /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-iox-stand.c: In function ‘L2’: /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-iox-stand.c:1134:19: warning: unused variable ‘V6’ [-Wunused-variable] 1134 | {register object V6; | ^~ OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-iox-stand.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-iox-stand.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/f-writml.l") (quit)'\ | gcl; else\ lisp/f-writml; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/f-writml.l. ;;; Including lisp/f-constantsstart address -T 0x9207a0 ;;; Including lisp/f-macrostart address -T 0x97dbc0 ; (DEFUN ML-PRINT_VOID ...) is being compiled. ;; Warning: The variable IGNORE is not used. ; (DEFUN PRINT_PROD ...) is being compiled. ;; Warning: The variable CL is not used. ; (DEFUN PRINT_CONC ...) is being compiled. ;; Warning: The variable TY is not used. End of Pass 1. ;; Note: Tail-recursive call of PRLET was replaced by iteration. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-writml.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-writml.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/f-tml.l") (quit)'\ | gcl; else\ lisp/f-tml; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/f-tml.l. ;;; Including lisp/f-constantsstart address -T 0x9207a0 ;;; Including lisp/f-macrostart address -T 0x97dbc0 ; (DEFUN HOL-ERR ...) is being compiled. ;; Warning: The variable X is not used. ; (DEFUN OKPASS ...) is being compiled. ;; Warning: The variable ERRTOK is not used. ; (DEFUN ML-COMPILE ...) is being compiled. ;; Warning: The variable $GCPRINT is not used. End of Pass 1. ;; Note: Tail-recursive call of EXTEND-ENV was replaced by iteration. ;; Note: Tail-recursive call of SETBINDINGS was replaced by iteration. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-tml.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-tml.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/f-lis.l") (quit)'\ | gcl; else\ lisp/f-lis; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/f-lis.l. ;;; Including lisp/f-constantsstart address -T 0x9207a0 ;;; Including lisp/f-macrostart address -T 0x97dbc0 End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-lis.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-lis.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/f-parsol.l") (quit)'\ | gcl; else\ lisp/f-parsol; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/f-parsol.l. ;;; Including lisp/f-constantsstart address -T 0x9207a0 ;;; Including lisp/f-macrostart address -T 0x97dbc0 ; (DEFUN OLVARINFIX ...) is being compiled. ;; The variable HOL-VAR-BINOPS is undefined. ;; The compiler will assume this variable is a global. End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-parsol.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-parsol.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/f-typeol.l") (quit)'\ | gcl; else\ lisp/f-typeol; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/f-typeol.l. ;;; Including lisp/f-constantsstart address -T 0x9207a0 ;;; Including lisp/f-macrostart address -T 0x97dbc0 ;;; Including lisp/f-ol-recstart address -T 0x981130 End of Pass 1. ;; Note: Tail-recursive call of HOL-TRUNC was replaced by iteration. ;; Note: Tail-recursive call of HOL-TRUNC was replaced by iteration. ;; Note: Tail-recursive call of CANON-TY was replaced by iteration. End of Pass 2. /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-typeol.c: In function ‘L3’: /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-typeol.c:1211:10: warning: unused variable ‘V10’ [-Wunused-variable] 1211 | {object V10; | ^~~ OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-typeol.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-typeol.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/f-writol.l") (quit)'\ | gcl; else\ lisp/f-writol; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/f-writol.l. ;;; Including lisp/f-constantsstart address -T 0x9207a0 ;;; Including lisp/f-macrostart address -T 0x97dbc0 ;;; Including lisp/f-ol-recstart address -T 0x981130 ;;; Including lisp/genmacsstart address -T 0x984690 End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-writol.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-writol.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/f-thyfns.l") (quit)'\ | gcl; else\ lisp/f-thyfns; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/f-thyfns.l. ;;; Including lisp/f-constantsstart address -T 0x9207a0 ;;; Including lisp/f-macrostart address -T 0x97dbc0 ;;; Including lisp/f-ol-recstart address -T 0x981130 ; (DEFUN OPEN-THY-FILE ...) is being compiled. ;; Warning: The variable ERTOK is not used. ; (DEFUN THY-READ ...) is being compiled. ;; Warning: The variable ERTOK is not used. ; (DEFUN GET-PARENT ...) is being compiled. ;; Warning: The variable PARDATA is not used. ; (DEFUN UNLOAD-THEORY ...) is being compiled. ;; Warning: The variable TOK is not used. ; (DEFUN WRITE-THY-FILE ...) is being compiled. ;; Warning: The variable $GCPRINT is not used. End of Pass 1. ;; Note: Tail-recursive call of ABS-TYPE was replaced by iteration. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-thyfns.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-thyfns.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/f-freadth.l") (quit)'\ | gcl; else\ touch lisp/f-freadth.o; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/f-freadth.l. ;;; Including lisp/f-macrostart address -T 0x97bbc0 ; (DEFUN THY-READ ...) is being compiled. ;; The variable %FAILTOK is undefined. ;; The compiler will assume this variable is a global. ;; Warning: The variable ERTOK is not used. End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-freadth.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-freadth.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/f-ol-syntax.l") (quit)'\ | gcl; else\ lisp/f-ol-syntax; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/f-ol-syntax.l. ;;; Including lisp/f-constantsstart address -T 0x9207a0 ;;; Including lisp/f-macrostart address -T 0x97dbc0 ;;; Including lisp/f-ol-recstart address -T 0x981130 ; (DEFUN Q-MK_EQUIV ...) is being compiled. ;; Warning: The variable TOK is not used. ; (DEFUN Q-MK_INEQUIV ...) is being compiled. ;; Warning: The variable TOK is not used. ; (DEFUN ML-MK_COMB ...) is being compiled. ;; Warning: The variable TOK is not used. End of Pass 1. ;; Note: Tail-recursive call of PREP-TERM-FN was replaced by iteration. ;; Note: Tail-recursive call of ADD-TERM-LINKS was replaced by iteration. ;; Note: Tail-recursive call of ADD-TYPE-LINKS was replaced by iteration. ;; Note: Tail-recursive call of GET-TYPE-LINKS was replaced by iteration. ;; Note: Tail-recursive call of GET-TERM-LINKS was replaced by iteration. ;; Note: Tail-recursive call of PREP-TY-FN was replaced by iteration. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-ol-syntax.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-ol-syntax.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/f-subst.l") (quit)'\ | gcl; else\ lisp/f-subst; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/f-subst.l. ;;; Including lisp/f-constantsstart address -T 0x9207a0 ;;; Including lisp/f-macrostart address -T 0x97dbc0 ;;; Including lisp/f-ol-recstart address -T 0x981130 End of Pass 1. ;; Note: Tail-recursive call of ALPHA-FM was replaced by iteration. ;; Note: Tail-recursive call of ALPHA-TM was replaced by iteration. ;; Note: Tail-recursive call of VARS-FM was replaced by iteration. ;; Note: Tail-recursive call of VARS-FM was replaced by iteration. ;; Note: Tail-recursive call of VARS-TM was replaced by iteration. ;; Note: Tail-recursive call of VARS-TM was replaced by iteration. ;; Note: Tail-recursive call of VARFILTER was replaced by iteration. ;; Note: Tail-recursive call of FREEIN-FM was replaced by iteration. ;; Note: Tail-recursive call of FREEIN-FM was replaced by iteration. ;; Note: Tail-recursive call of FREEIN-TM was replaced by iteration. ;; Note: Tail-recursive call of FREEIN-TM was replaced by iteration. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-subst.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-subst.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/f-inst.l") (quit)'\ | gcl; else\ lisp/f-inst; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/f-inst.l. ;;; Including lisp/f-constantsstart address -T 0x9207a0 ;;; Including lisp/f-macrostart address -T 0x97dbc0 ;;; Including lisp/f-ol-recstart address -T 0x981130 End of Pass 1. ;; Note: Tail-recursive call of TYPE-IN-FM was replaced by iteration. ;; Note: Tail-recursive call of TYPE-IN-FM was replaced by iteration. ;; Note: Tail-recursive call of TYPE-IN-TM was replaced by iteration. ;; Note: Tail-recursive call of TYPE-IN-TM was replaced by iteration. ;; Note: Tail-recursive call of TYVARS-FM was replaced by iteration. ;; Note: Tail-recursive call of TYVARS-FM was replaced by iteration. ;; Note: Tail-recursive call of TYVARS-TM was replaced by iteration. ;; Note: Tail-recursive call of TYVARS-TM was replaced by iteration. ;; Note: Tail-recursive call of STRIP-PRIMES-AUX was replaced by iteration. ;; Note: Tail-recursive call of TYPEL-IN-TM was replaced by iteration. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-inst.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-inst.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/f-simpl.l") (quit)'\ | gcl; else\ lisp/f-simpl; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/f-simpl.l. ;;; Including lisp/f-constantsstart address -T 0x9207a0 ;;; Including lisp/f-macrostart address -T 0x97dbc0 ;;; Including lisp/f-ol-recstart address -T 0x981130 End of Pass 1. ;; Note: Tail-recursive call of TERM-MATCH was replaced by iteration. ;; Note: Tail-recursive call of PREPARE-SUBSTL was replaced by iteration. ;; Note: Tail-recursive call of PREPARE-INSTTYL was replaced by iteration. End of Pass 2. /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-simpl.c: In function ‘L3’: /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-simpl.c:1396:10: warning: unused variable ‘V27’ [-Wunused-variable] 1396 | {object V27; | ^~~ OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-simpl.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-simpl.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/f-ol-net.l") (quit)'\ | gcl; else\ lisp/f-ol-net; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/f-ol-net.l. ;;; Including lisp/f-constantsstart address -T 0x9207a0 ;;; Including lisp/f-macrostart address -T 0x97dbc0 ;;; Including lisp/f-ol-recstart address -T 0x981130 End of Pass 1. ;; Note: Tail-recursive call of FOLLOW-FM was replaced by iteration. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-ol-net.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/f-ol-net.o" >echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/mk-ml")'\ '(load "lisp/mk-hol-lcf")'\ '(setq %system-name "HOL-LCF")'\ '(setq %liszt "")'\ '(setq %version "2.02 (GCL)")'\ '(set-make)'\ '(tml)'\ 'compile(`ml/ml-curry`,true);;'\ 'quit();;'\ | gcl GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/mk-ml" ;; Loading "lisp/f-cl" start address -T 0x9725e0 ;; Finished loading "lisp/f-cl" ;; Loading "lisp/f-system" start address -T 0x979bc0 ;; Finished loading "lisp/f-system" ;; Loading "lisp/f-constants" start address -T 0x924840 ;; Finished loading "lisp/f-constants" ;; Loading "lisp/f-site" start address -T 0x935f00 ;; Finished loading "lisp/f-site" ;; Loading "lisp/f-gp" start address -T 0x982c50 ;; Finished loading "lisp/f-gp" ;; Loading "lisp/f-parser" start address -T 0x986d10 ;; Finished loading "lisp/f-parser" ;; Loading "lisp/f-parsml" start address -T 0x98da80 ;; Finished loading "lisp/f-parsml" ;; Loading "lisp/f-mlprin" start address -T 0x9974a0 ;; Finished loading "lisp/f-mlprin" ;; Loading "lisp/f-typeml" start address -T 0x99bb10 ;; Finished loading "lisp/f-typeml" ;; Loading "lisp/f-dml" start address -T 0x9a9460 ;; Finished loading "lisp/f-dml" ;; Loading "lisp/f-format" start address -T 0x9b0010 ;; Finished loading "lisp/f-format" ;; Loading "lisp/f-tran" start address -T 0x9b4e00 ;; Finished loading "lisp/f-tran" ;; Loading "lisp/f-iox-stand" start address -T 0x9c2540 ;; Finished loading "lisp/f-iox-stand" ;; Loading "lisp/f-writml" start address -T 0x9c7260 ;; Finished loading "lisp/f-writml" ;; Loading "lisp/f-tml" start address -T 0x9cba10 ;; Finished loading "lisp/f-tml" ;; Loading "lisp/f-lis" start address -T 0x9d7fd0 ;; Finished loading "lisp/f-lis" ;; Loading "lisp/f-ol-rec" start address -T 0x9db480 ;; Finished loading "lisp/f-ol-rec" ;; Loading "lisp/f-help" start address -T 0x9dec10 ;; Finished loading "lisp/f-help" start address -T 0x9240b0 ;; Finished loading "lisp/mk-ml" 976 >;; Loading "lisp/mk-hol-lcf" ;; Loading "lisp/f-parsol" start address -T 0x9e3a80 ;; Finished loading "lisp/f-parsol" ;; Loading "lisp/f-typeol" start address -T 0x9e93e0 ;; Finished loading "lisp/f-typeol" ;; Loading "lisp/f-help" start address -T 0x9ee6d0 ;; Finished loading "lisp/f-help" ;; Loading "lisp/f-format" start address -T 0x9f0f40 ;; Finished loading "lisp/f-format" ;; Loading "lisp/f-writol" start address -T 0xb4c010 ;; Finished loading "lisp/f-writol" ;; Loading "lisp/f-thyfns" start address -T 0xb52820 ;; Finished loading "lisp/f-thyfns" ;; Loading "lisp/f-freadth" Warning: lisp/f-freadth.l is redefining function THY-READ start address -T 0xb603a0 ;; Finished loading "lisp/f-freadth" ;; Loading "lisp/f-ol-syntax" start address -T 0xb64180 ;; Finished loading "lisp/f-ol-syntax" ;; Loading "lisp/f-subst" start address -T 0xb6d6b0 ;; Finished loading "lisp/f-subst" ;; Loading "lisp/f-inst" start address -T 0xb73cf0 ;; Finished loading "lisp/f-inst" ;; Loading "lisp/f-simpl" start address -T 0xb79ed0 ;; Finished loading "lisp/f-simpl" ;; Loading "lisp/f-ol-net" start address -T 0xb7d550 ;; Finished loading "lisp/f-ol-net" start address -T 0x9e1480 ;; Finished loading "lisp/mk-hol-lcf" 976 > "HOL-LCF" > "" > "2.02 (GCL)" > NIL > HOL-LCF version 2.02 (GCL) created 13/10/21 # mem = - : (* -> * list -> bool) map = - : ((* -> **) -> * list -> ** list) exists = - : ((* -> bool) -> * list -> bool) forall = - : ((* -> bool) -> * list -> bool) find = - : ((* -> bool) -> * list -> *) tryfind = - : ((* -> **) -> * list -> **) filter = - : ((* -> bool) -> * list -> * list) mapfilter = - : ((* -> **) -> * list -> ** list) rev_itlist = - : ((* -> ** -> **) -> * list -> ** -> **) compiling = false : bool compiling_stack = [] : bool list load = - : ((string # bool) -> void) compile = - : ((string # bool) -> void) Calling Lisp compiler File ml/ml-curry compiled () : void #echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/mk-ml")'\ '(load "lisp/mk-hol-lcf")'\ '(setq %system-name "HOL-LCF")'\ '(setq %liszt "")'\ '(setq %version "2.02 (GCL)")'\ '(set-make)'\ '(tml)'\ 'load(`ml/ml-curry`,false);;'\ 'compile(`ml/lis`,true);;'\ 'quit();;'\ | gcl GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/mk-ml" ;; Loading "lisp/f-cl" start address -T 0x9725e0 ;; Finished loading "lisp/f-cl" ;; Loading "lisp/f-system" start address -T 0x979bc0 ;; Finished loading "lisp/f-system" ;; Loading "lisp/f-constants" start address -T 0x924840 ;; Finished loading "lisp/f-constants" ;; Loading "lisp/f-site" start address -T 0x935f00 ;; Finished loading "lisp/f-site" ;; Loading "lisp/f-gp" start address -T 0x982c50 ;; Finished loading "lisp/f-gp" ;; Loading "lisp/f-parser" start address -T 0x986d10 ;; Finished loading "lisp/f-parser" ;; Loading "lisp/f-parsml" start address -T 0x98da80 ;; Finished loading "lisp/f-parsml" ;; Loading "lisp/f-mlprin" start address -T 0x9974a0 ;; Finished loading "lisp/f-mlprin" ;; Loading "lisp/f-typeml" start address -T 0x99bb10 ;; Finished loading "lisp/f-typeml" ;; Loading "lisp/f-dml" start address -T 0x9a9460 ;; Finished loading "lisp/f-dml" ;; Loading "lisp/f-format" start address -T 0x9b0010 ;; Finished loading "lisp/f-format" ;; Loading "lisp/f-tran" start address -T 0x9b4e00 ;; Finished loading "lisp/f-tran" ;; Loading "lisp/f-iox-stand" start address -T 0x9c2540 ;; Finished loading "lisp/f-iox-stand" ;; Loading "lisp/f-writml" start address -T 0x9c7260 ;; Finished loading "lisp/f-writml" ;; Loading "lisp/f-tml" start address -T 0x9cba10 ;; Finished loading "lisp/f-tml" ;; Loading "lisp/f-lis" start address -T 0x9d7fd0 ;; Finished loading "lisp/f-lis" ;; Loading "lisp/f-ol-rec" start address -T 0x9db480 ;; Finished loading "lisp/f-ol-rec" ;; Loading "lisp/f-help" start address -T 0x9dec10 ;; Finished loading "lisp/f-help" start address -T 0x9240b0 ;; Finished loading "lisp/mk-ml" 976 >;; Loading "lisp/mk-hol-lcf" ;; Loading "lisp/f-parsol" start address -T 0x9e3a80 ;; Finished loading "lisp/f-parsol" ;; Loading "lisp/f-typeol" start address -T 0x9e93e0 ;; Finished loading "lisp/f-typeol" ;; Loading "lisp/f-help" start address -T 0x9ee6d0 ;; Finished loading "lisp/f-help" ;; Loading "lisp/f-format" start address -T 0x9f0f40 ;; Finished loading "lisp/f-format" ;; Loading "lisp/f-writol" start address -T 0xb4c010 ;; Finished loading "lisp/f-writol" ;; Loading "lisp/f-thyfns" start address -T 0xb52820 ;; Finished loading "lisp/f-thyfns" ;; Loading "lisp/f-freadth" Warning: lisp/f-freadth.l is redefining function THY-READ start address -T 0xb603a0 ;; Finished loading "lisp/f-freadth" ;; Loading "lisp/f-ol-syntax" start address -T 0xb64180 ;; Finished loading "lisp/f-ol-syntax" ;; Loading "lisp/f-subst" start address -T 0xb6d6b0 ;; Finished loading "lisp/f-subst" ;; Loading "lisp/f-inst" start address -T 0xb73cf0 ;; Finished loading "lisp/f-inst" ;; Loading "lisp/f-simpl" start address -T 0xb79ed0 ;; Finished loading "lisp/f-simpl" ;; Loading "lisp/f-ol-net" start address -T 0xb7d550 ;; Finished loading "lisp/f-ol-net" start address -T 0x9e1480 ;; Finished loading "lisp/mk-hol-lcf" 976 > "HOL-LCF" > "" > "2.02 (GCL)" > NIL > HOL-LCF version 2.02 (GCL) created 13/10/21 #.............start address -T 0xb89450 () : void append = - : (* list -> * list -> * list) itlist = - : ((* -> ** -> **) -> * list -> ** -> **) end_itlist = - : ((* -> * -> *) -> * list -> *) assoc = - : (* -> (* # **) list -> (* # **)) rev_assoc = - : (* -> (** # *) list -> (** # *)) intersect = - : (* list -> * list -> * list) subtract = - : (* list -> * list -> * list) union = - : (* list -> * list -> * list) setify = - : (* list -> * list) split = - : ((* # **) list -> (* list # ** list)) combine = - : ((* list # ** list) -> (* # **) list) () : void com = - : ((* list # ** list) -> (* # **) list) distinct = - : (* list -> bool) chop_list = - : (int -> * list -> (* list # * list)) last = - : (* list -> *) butlast = - : (* list -> * list) partition = - : ((* -> bool) -> * list -> (* list # * list)) replicate = - : (* -> int -> * list) sort = - : (((* # *) -> bool) -> * list -> * list) splitp = - : ((* -> bool) -> * list -> (* list # * list)) remove = - : ((* -> bool) -> * list -> (* # * list)) Calling Lisp compiler File ml/lis compiled () : void #echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/mk-ml")'\ '(load "lisp/mk-hol-lcf")'\ '(setq %system-name "HOL-LCF")'\ '(setq %liszt "")'\ '(setq %version "2.02 (GCL)")'\ '(set-make)'\ '(tml)'\ 'load(`ml/ml-curry`,false);;'\ 'load(`ml/lis`,false);;'\ 'compile(`ml/gen`,true);;'\ 'quit();;'\ | gcl GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/mk-ml" ;; Loading "lisp/f-cl" start address -T 0x9725e0 ;; Finished loading "lisp/f-cl" ;; Loading "lisp/f-system" start address -T 0x979bc0 ;; Finished loading "lisp/f-system" ;; Loading "lisp/f-constants" start address -T 0x924840 ;; Finished loading "lisp/f-constants" ;; Loading "lisp/f-site" start address -T 0x935f00 ;; Finished loading "lisp/f-site" ;; Loading "lisp/f-gp" start address -T 0x982c50 ;; Finished loading "lisp/f-gp" ;; Loading "lisp/f-parser" start address -T 0x986d10 ;; Finished loading "lisp/f-parser" ;; Loading "lisp/f-parsml" start address -T 0x98da80 ;; Finished loading "lisp/f-parsml" ;; Loading "lisp/f-mlprin" start address -T 0x9974a0 ;; Finished loading "lisp/f-mlprin" ;; Loading "lisp/f-typeml" start address -T 0x99bb10 ;; Finished loading "lisp/f-typeml" ;; Loading "lisp/f-dml" start address -T 0x9a9460 ;; Finished loading "lisp/f-dml" ;; Loading "lisp/f-format" start address -T 0x9b0010 ;; Finished loading "lisp/f-format" ;; Loading "lisp/f-tran" start address -T 0x9b4e00 ;; Finished loading "lisp/f-tran" ;; Loading "lisp/f-iox-stand" start address -T 0x9c2540 ;; Finished loading "lisp/f-iox-stand" ;; Loading "lisp/f-writml" start address -T 0x9c7260 ;; Finished loading "lisp/f-writml" ;; Loading "lisp/f-tml" start address -T 0x9cba10 ;; Finished loading "lisp/f-tml" ;; Loading "lisp/f-lis" start address -T 0x9d7fd0 ;; Finished loading "lisp/f-lis" ;; Loading "lisp/f-ol-rec" start address -T 0x9db480 ;; Finished loading "lisp/f-ol-rec" ;; Loading "lisp/f-help" start address -T 0x9dec10 ;; Finished loading "lisp/f-help" start address -T 0x9240b0 ;; Finished loading "lisp/mk-ml" 976 >;; Loading "lisp/mk-hol-lcf" ;; Loading "lisp/f-parsol" start address -T 0x9e3a80 ;; Finished loading "lisp/f-parsol" ;; Loading "lisp/f-typeol" start address -T 0x9e93e0 ;; Finished loading "lisp/f-typeol" ;; Loading "lisp/f-help" start address -T 0x9ee6d0 ;; Finished loading "lisp/f-help" ;; Loading "lisp/f-format" start address -T 0x9f0f40 ;; Finished loading "lisp/f-format" ;; Loading "lisp/f-writol" start address -T 0xb4c010 ;; Finished loading "lisp/f-writol" ;; Loading "lisp/f-thyfns" start address -T 0xb52820 ;; Finished loading "lisp/f-thyfns" ;; Loading "lisp/f-freadth" Warning: lisp/f-freadth.l is redefining function THY-READ start address -T 0xb603a0 ;; Finished loading "lisp/f-freadth" ;; Loading "lisp/f-ol-syntax" start address -T 0xb64180 ;; Finished loading "lisp/f-ol-syntax" ;; Loading "lisp/f-subst" start address -T 0xb6d6b0 ;; Finished loading "lisp/f-subst" ;; Loading "lisp/f-inst" start address -T 0xb73cf0 ;; Finished loading "lisp/f-inst" ;; Loading "lisp/f-simpl" start address -T 0xb79ed0 ;; Finished loading "lisp/f-simpl" ;; Loading "lisp/f-ol-net" start address -T 0xb7d550 ;; Finished loading "lisp/f-ol-net" start address -T 0x9e1480 ;; Finished loading "lisp/mk-hol-lcf" 976 > "HOL-LCF" > "" > "2.02 (GCL)" > NIL > HOL-LCF version 2.02 (GCL) created 13/10/21 #.............start address -T 0xb89450 () : void ......................start address -T 0xb8dfd0 () : void words2 = - : (string -> string -> string list) words = - : (string -> string list) maptok = - : ((string -> *) -> string -> * list) loadt = - : (string -> void) loadf = - : (string -> void) compilet = - : (string -> void) compilef = - : (string -> void) concat = - : (string -> string -> string) concatl = - : (string list -> string) () : void ^ = - : (string -> string -> string) message = - : (string -> void) () : void () : void () : void () : void o = - : (((* -> **) # (*** -> *)) -> *** -> **) CB = - : ((* -> **) -> (** -> ***) -> * -> ***) # = - : (((* -> **) # (*** -> ****)) -> (* # ***) -> (** # ****)) oo = - : ((((* # **) -> ***) # (**** -> *) # (**** -> **)) -> **** -> ***) I = - : (* -> *) K = - : (* -> ** -> *) KI = - : (* -> ** -> **) C = - : ((* -> ** -> ***) -> ** -> * -> ***) W = - : ((* -> * -> **) -> * -> **) B = - : ((* -> **) -> (*** -> *) -> *** -> **) S = - : ((* -> ** -> ***) -> (* -> **) -> * -> ***) () : void Co = - : (((* -> ** -> ***) # (**** -> *)) -> ** -> **** -> ***) pair = - : (* -> ** -> (* # **)) curry = - : (((* # **) -> ***) -> * -> ** -> ***) can = - : ((* -> **) -> * -> bool) assert = - : ((* -> bool) -> * -> *) syserror = - : (string -> *) set_fail_prefix = - : (string -> (* -> **) -> * -> **) set_fail = - : (string -> (* -> **) -> * -> **) funpow = - : (int -> (* -> *) -> * -> *) () : void install = - : (string -> void) Calling Lisp compiler File ml/gen compiled () : void #sed -e "s;ml/;/build/hol88-NNpOMw/hol88-2.02.19940316/ml/;g" \ -e "s;lisp/;/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/;g" ml/site.ml.orig > ml/site.ml echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/mk-ml")'\ '(load "lisp/mk-hol-lcf")'\ '(setq %system-name "HOL-LCF")'\ '(setq %liszt "")'\ '(setq %version "2.02 (GCL)")'\ '(set-make)'\ '(tml)'\ 'compile(`ml/site`,true);;'\ 'quit();;'\ | gcl GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/mk-ml" ;; Loading "lisp/f-cl" start address -T 0x9725e0 ;; Finished loading "lisp/f-cl" ;; Loading "lisp/f-system" start address -T 0x979bc0 ;; Finished loading "lisp/f-system" ;; Loading "lisp/f-constants" start address -T 0x924840 ;; Finished loading "lisp/f-constants" ;; Loading "lisp/f-site" start address -T 0x935f00 ;; Finished loading "lisp/f-site" ;; Loading "lisp/f-gp" start address -T 0x982c50 ;; Finished loading "lisp/f-gp" ;; Loading "lisp/f-parser" start address -T 0x986d10 ;; Finished loading "lisp/f-parser" ;; Loading "lisp/f-parsml" start address -T 0x98da80 ;; Finished loading "lisp/f-parsml" ;; Loading "lisp/f-mlprin" start address -T 0x9974a0 ;; Finished loading "lisp/f-mlprin" ;; Loading "lisp/f-typeml" start address -T 0x99bb10 ;; Finished loading "lisp/f-typeml" ;; Loading "lisp/f-dml" start address -T 0x9a9460 ;; Finished loading "lisp/f-dml" ;; Loading "lisp/f-format" start address -T 0x9b0010 ;; Finished loading "lisp/f-format" ;; Loading "lisp/f-tran" start address -T 0x9b4e00 ;; Finished loading "lisp/f-tran" ;; Loading "lisp/f-iox-stand" start address -T 0x9c2540 ;; Finished loading "lisp/f-iox-stand" ;; Loading "lisp/f-writml" start address -T 0x9c7260 ;; Finished loading "lisp/f-writml" ;; Loading "lisp/f-tml" start address -T 0x9cba10 ;; Finished loading "lisp/f-tml" ;; Loading "lisp/f-lis" start address -T 0x9d7fd0 ;; Finished loading "lisp/f-lis" ;; Loading "lisp/f-ol-rec" start address -T 0x9db480 ;; Finished loading "lisp/f-ol-rec" ;; Loading "lisp/f-help" start address -T 0x9dec10 ;; Finished loading "lisp/f-help" start address -T 0x9240b0 ;; Finished loading "lisp/mk-ml" 976 >;; Loading "lisp/mk-hol-lcf" ;; Loading "lisp/f-parsol" start address -T 0x9e3a80 ;; Finished loading "lisp/f-parsol" ;; Loading "lisp/f-typeol" start address -T 0x9e93e0 ;; Finished loading "lisp/f-typeol" ;; Loading "lisp/f-help" start address -T 0x9ee6d0 ;; Finished loading "lisp/f-help" ;; Loading "lisp/f-format" start address -T 0x9f0f40 ;; Finished loading "lisp/f-format" ;; Loading "lisp/f-writol" start address -T 0xb4c010 ;; Finished loading "lisp/f-writol" ;; Loading "lisp/f-thyfns" start address -T 0xb52820 ;; Finished loading "lisp/f-thyfns" ;; Loading "lisp/f-freadth" Warning: lisp/f-freadth.l is redefining function THY-READ start address -T 0xb603a0 ;; Finished loading "lisp/f-freadth" ;; Loading "lisp/f-ol-syntax" start address -T 0xb64180 ;; Finished loading "lisp/f-ol-syntax" ;; Loading "lisp/f-subst" start address -T 0xb6d6b0 ;; Finished loading "lisp/f-subst" ;; Loading "lisp/f-inst" start address -T 0xb73cf0 ;; Finished loading "lisp/f-inst" ;; Loading "lisp/f-simpl" start address -T 0xb79ed0 ;; Finished loading "lisp/f-simpl" ;; Loading "lisp/f-ol-net" start address -T 0xb7d550 ;; Finished loading "lisp/f-ol-net" start address -T 0x9e1480 ;; Finished loading "lisp/mk-hol-lcf" 976 > "HOL-LCF" > "" > "2.02 (GCL)" > NIL > HOL-LCF version 2.02 (GCL) created 13/10/21 # concat = - : (string -> string -> string) ml_dir_pathname = `/build/hol88-NNpOMw/hol88-2.02.19940316/ml/` : string lisp_dir_pathname = `/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/` : string Calling Lisp compiler File ml/site compiled () : void #echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/mk-ml")'\ '(load "lisp/mk-hol-lcf")'\ '(setq %version "2.02 (GCL)")'\ '(set-make)'\ '(tml)'\ 'load(`ml/site`,false);;'\ 'load(`ml/ml-curry`,false);;'\ 'load(`ml/lis`,false);;'\ 'load(`ml/gen`,false);;'\ 'load(`ml/killpp`,false);;'\ 'lisp `(setq %system-name "HOL-LCF")`;;'\ 'lisp `(setq %liszt "")`;;'\ 'lisp `(setup)`;;' >foo echo '#+native-reloc(progn (load "foo")(ml-save "hol-lcf"))#-native-reloc(let ((si::*collect-binary-modules* t)(si::*binary-modules* nil)) (load "foo")(compiler::link (remove-duplicates si::*binary-modules* :test (function equal)) "hol-lcf" "(load \"debian/gcl_patch.l\")(load \"foo\")(ml-save \"hol-lcf\")" "" nil)(with-open-file (s "bm.l" :direction :output) (prin1 si::*binary-modules* s)))(quit)' | gcl GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "foo" ;; Loading "lisp/mk-ml" ;; Loading "lisp/f-cl" start address -T 0x9745e0 ;; Finished loading "lisp/f-cl" ;; Loading "lisp/f-system" start address -T 0x97bbc0 ;; Finished loading "lisp/f-system" ;; Loading "lisp/f-constants" start address -T 0x9207a0 ;; Finished loading "lisp/f-constants" ;; Loading "lisp/f-site" start address -T 0x9360e0 ;; Finished loading "lisp/f-site" ;; Loading "lisp/f-gp" start address -T 0x984e30 ;; Finished loading "lisp/f-gp" ;; Loading "lisp/f-parser" start address -T 0x988ef0 ;; Finished loading "lisp/f-parser" ;; Loading "lisp/f-parsml" start address -T 0x98fc60 ;; Finished loading "lisp/f-parsml" ;; Loading "lisp/f-mlprin" start address -T 0x999680 ;; Finished loading "lisp/f-mlprin" ;; Loading "lisp/f-typeml" start address -T 0x99dcf0 ;; Finished loading "lisp/f-typeml" ;; Loading "lisp/f-dml" start address -T 0x9ab640 ;; Finished loading "lisp/f-dml" ;; Loading "lisp/f-format" start address -T 0x9b21f0 ;; Finished loading "lisp/f-format" ;; Loading "lisp/f-tran" start address -T 0x9b6fe0 ;; Finished loading "lisp/f-tran" ;; Loading "lisp/f-iox-stand" start address -T 0x9c4720 ;; Finished loading "lisp/f-iox-stand" ;; Loading "lisp/f-writml" start address -T 0x9c9440 ;; Finished loading "lisp/f-writml" ;; Loading "lisp/f-tml" start address -T 0x9cdbf0 ;; Finished loading "lisp/f-tml" ;; Loading "lisp/f-lis" start address -T 0x9da1b0 ;; Finished loading "lisp/f-lis" ;; Loading "lisp/f-ol-rec" start address -T 0x9dd660 ;; Finished loading "lisp/f-ol-rec" ;; Loading "lisp/f-help" start address -T 0x9e0df0 ;; Finished loading "lisp/f-help" start address -T 0x924290 ;; Finished loading "lisp/mk-ml" ;; Loading "lisp/mk-hol-lcf" ;; Loading "lisp/f-parsol" start address -T 0x9e5c60 ;; Finished loading "lisp/f-parsol" ;; Loading "lisp/f-typeol" start address -T 0x9eb5c0 ;; Finished loading "lisp/f-typeol" ;; Loading "lisp/f-help" start address -T 0x9f08b0 ;; Finished loading "lisp/f-help" ;; Loading "lisp/f-format" start address -T 0xb47010 ;; Finished loading "lisp/f-format" ;; Loading "lisp/f-writol" start address -T 0xb4bbd0 ;; Finished loading "lisp/f-writol" ;; Loading "lisp/f-thyfns" start address -T 0xb523e0 ;; Finished loading "lisp/f-thyfns" ;; Loading "lisp/f-freadth" Warning: lisp/f-freadth.l is redefining function THY-READ start address -T 0xb5ff60 ;; Finished loading "lisp/f-freadth" ;; Loading "lisp/f-ol-syntax" start address -T 0xb63d40 ;; Finished loading "lisp/f-ol-syntax" ;; Loading "lisp/f-subst" start address -T 0xb6d270 ;; Finished loading "lisp/f-subst" ;; Loading "lisp/f-inst" start address -T 0xb738b0 ;; Finished loading "lisp/f-inst" ;; Loading "lisp/f-simpl" start address -T 0xb79a90 ;; Finished loading "lisp/f-simpl" ;; Loading "lisp/f-ol-net" start address -T 0xb7d110 ;; Finished loading "lisp/f-ol-net" start address -T 0x9e3660 ;; Finished loading "lisp/mk-hol-lcf" version 2.02 (GCL) created 13/10/21 #...start address -T 0x9f44d0 () : void .............start address -T 0xb8b010 () : void ......................start address -T 0xb8fb90 () : void ..................................start address -T 0xb98500 () : void ............() : void #() : void () : void () : void #;; Finished loading "foo" =======> hol-lcf made if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/genfns.l") (quit)'\ | gcl; else\ lisp/genfns; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/genfns.l. ;;; Including lisp/f-macrostart address -T 0x97bbc0 End of Pass 1. ;; Note: Tail-recursive call of SEG was replaced by iteration. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/genfns.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/genfns.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/gnt.l") (quit)'\ | gcl; else\ lisp/gnt; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/gnt.l. ;;; Including lisp/f-constantsstart address -T 0x9207a0 ;;; Including lisp/f-macrostart address -T 0x97dbc0 ;;; Including lisp/f-ol-recstart address -T 0x981130 End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/gnt.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/gnt.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/hol-pars.l") (quit)'\ | gcl; else\ lisp/hol-pars; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/hol-pars.l. ;;; Including lisp/f-constantsstart address -T 0x9207a0 ;;; Including lisp/f-macrostart address -T 0x97dbc0 ;;; Including lisp/f-ol-recstart address -T 0x981130 ;;; Including lisp/genmacsstart address -T 0x984690 ; (DEFUN LAMQ-RTN ...) is being compiled. ;; Warning: The variable CONSTR is not used. End of Pass 1. ;; Note: Tail-recursive call of BUILD-LAM-STRUC was replaced by iteration. ;; Note: Tail-recursive call of BUILD-LAM-STRUC was replaced by iteration. ;; Note: Tail-recursive call of DISTINCTP was replaced by iteration. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/hol-pars.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/hol-pars.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/parslist.l") (quit)'\ | gcl; else\ lisp/parslist; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/parslist.l. ;;; Including lisp/f-constantsstart address -T 0x9207a0 ;;; Including lisp/f-macrostart address -T 0x97dbc0 ;;; Including lisp/f-ol-recstart address -T 0x981130 ;;; Including lisp/genmacsstart address -T 0x984690 ; (DEFUN HOL-SCOLONSETUP ...) is being compiled. ;; The variable %HOL-LIST-DEPTH is undefined. ;; The compiler will assume this variable is a global. ; (DEFUN ML-DEFINE_FINITE_SET_SYNTAX ...) is being compiled. ;; The variable |%print_set-flag| is undefined. ;; The compiler will assume this variable is a global. ;; Warning: The variable SET-PROP is not used. ; (DEFUN ML-DEFINE_SET_ABSTRACTION_SYNTAX ...) is being compiled. ;; Warning: The variable SET-PROP is not used. End of Pass 1. ;; Note: Tail-recursive call of GET-FREES-IN-PT was replaced by iteration. ;; Note: Tail-recursive call of INTERSECT was replaced by iteration. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/parslist.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/parslist.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/parslet.l") (quit)'\ | gcl; else\ lisp/parslet; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/parslet.l. ;;; Including lisp/f-constantsstart address -T 0x9207a0 ;;; Including lisp/f-macrostart address -T 0x97dbc0 ;;; Including lisp/f-ol-recstart address -T 0x981130 End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/parslet.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/parslet.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/constp.l") (quit)'\ | gcl; else\ lisp/constp; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/constp.l. End of Pass 1. ;; Note: Tail-recursive call of TEST-LIST-ELS was replaced by iteration. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/constp.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/constp.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/hol-writ.l") (quit)'\ | gcl; else\ lisp/hol-writ; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/hol-writ.l. ;;; Including lisp/f-constantsstart address -T 0x9207a0 ;;; Including lisp/f-macrostart address -T 0x97dbc0 ;;; Including lisp/f-ol-recstart address -T 0x981130 ;;; Including lisp/genmacsstart address -T 0x984690 ; (DEFUN PREP-TM ...) is being compiled. ;; The variable %EMPTY-SET is undefined. ;; The compiler will assume this variable is a global. ; (DEFUN PRINT-TM ...) is being compiled. ;; The variable HOL-VAR-BINOPS is undefined. ;; The compiler will assume this variable is a global. ; (DEFUN IS-OL-SET-CONS ...) is being compiled. ;; The variable %FINITE-SET-CONSTRUCTOR is undefined. ;; The compiler will assume this variable is a global. ; (DEFUN PREP-OL-SET-ABSTRACTION ...) is being compiled. ;; The variable %SET-ABSTRACTION-CONSTRUCTOR is undefined. ;; The compiler will assume this variable is a global. ; (DEFUN PREP-OL-QUANT ...) is being compiled. ;; Warning: The variable TY is not used. ; (DEFUN PREP-OL-RESTRICT ...) is being compiled. ;; Warning: The variable TY is not used. ; (DEFUN PREP-OL-UNOP ...) is being compiled. ;; Warning: The variable TY is not used. ; (DEFUN PREP-OL-BINOP ...) is being compiled. ;; Warning: The variable TY is not used. ; (DEFUN ML-PRINT_THM ...) is being compiled. ;; Warning: The variable X is not used. ;; The variable %MARGIN is undefined. ;; The compiler will assume this variable is a global. End of Pass 1. ;; Note: Tail-recursive call of SUBTRACT was replaced by iteration. ;; Note: Tail-recursive call of IS-SUBSET was replaced by iteration. ;; Note: Tail-recursive call of IS-OL-LIST was replaced by iteration. ;; Note: Tail-recursive call of IS-OL-FINITE-SET was replaced by iteration. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/hol-writ.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/hol-writ.o" >if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/mk_pp_thm.l") (quit)'\ | gcl; else\ lisp/mk_pp_thm; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/mk_pp_thm.l. ;;; Including lisp/f-macrostart address -T 0x97bbc0 ;;; Including lisp/f-ol-recstart address -T 0x97f130 ;;; Including lisp/genmacsstart address -T 0x982690 End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/mk_pp_thm.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/mk_pp_thm.o" >cd /build/hol88-NNpOMw/hol88-2.02.19940316/theories; rm -f PPLAMB.th;\ /build/hol88-NNpOMw/hol88-2.02.19940316/hol-lcf < /build/hol88-NNpOMw/hol88-2.02.19940316/theories/mk_PPLAMB.ml;\ cd /build/hol88-NNpOMw/hol88-2.02.19940316 HOL-LCF version 2.02 (GCL) created 13/10/21 ###########################() : void ##() : void ##() : void ##=======> theory PPLAMB built cd /build/hol88-NNpOMw/hol88-2.02.19940316/theories; rm -f bool.th;\ /build/hol88-NNpOMw/hol88-2.02.19940316/hol-lcf < /build/hol88-NNpOMw/hol88-2.02.19940316/theories/mk_bool.ml;\ cd /build/hol88-NNpOMw/hol88-2.02.19940316 HOL-LCF version 2.02 (GCL) created 13/10/21 ################################################################################################() : void ##Theory PPLAMB loaded () : void ##() : void ##() : void ##() : void #####|-"HOL_ASSERT $= = $=" : thm ### () : void () : void () : void () : void () : void () : void () : void () : void ........() : void ...................................................................................................................................() : void File /build/hol88-NNpOMw/hol88-2.02.19940316/ml/hol-in-out loaded () : void ###() : void ##() : void ##() : void ##() : void ##############() : void ##|- T = ((\x. x) = (\x. x)) ##() : void ##|- $! = (\P. P = (\x. T)) ###########|- $? = (\P. P($@ P)) ##() : void ##|- $/\ = (\t1 t2. !t. (t1 ==> t2 ==> t) ==> t) ##() : void ##|- $\/ = (\t1 t2. !t. (t1 ==> t) ==> (t2 ==> t) ==> t) ############|- F = (!t. t) ##() : void ##|- $~ = (\t. t ==> F) ##() : void ####|- $?! = (\P. $? P /\ (!x y. P x /\ P y ==> (x = y))) ##|- LET = (\f x. f x) ###|- COND = (\t t1 t2. @x. ((t = T) ==> (x = t1)) /\ ((t = F) ==> (x = t2))) #######|- !P B. RES_FORALL P B = (!x. P x ==> B x) ###|- !P B. RES_EXISTS P B = (?x. P x /\ B x) ###|- !P B. RES_SELECT P B = (@x. P x /\ B x) ###|- ARB = (@x. T) ###|- !P B. RES_ABSTRACT P B = (\x. (P x => B x | ARB)) ###########|- !f. ONE_ONE f = (!x1 x2. (f x1 = f x2) ==> (x1 = x2)) ###|- !f. ONTO f = (!y. ?x. y = f x) ###############[|- !t. (t = T) \/ (t = F); |- !t1 t2. (t1 ==> t2) ==> (t2 ==> t1) ==> (t1 = t2); |- !t. (\x. t x) = t; |- !P x. P x ==> P($@ P)] : thm list #########|- !t1 t2. t1 IS_ASSUMPTION_OF t2 = t1 ==> t2 ##########|- !P rep. TYPE_DEFINITION P rep = (!x' x''. (rep x' = rep x'') ==> (x' = x'')) /\ (!x. P x = (?x'. x = rep x')) ######MK_PAIR_DEF = |- !x y. MK_PAIR x y = (\a b. (a = x) /\ (b = y)) ###IS_PAIR_DEF = |- !p. IS_PAIR p = (?x y. p = MK_PAIR x y) #########################################PAIR_EXISTS = |- ?p. IS_PAIR p ####|- ?rep. TYPE_DEFINITION IS_PAIR rep ###########|- REP_prod = (@rep. (!p' p''. (rep p' = rep p'') ==> (p' = p'')) /\ (!p. IS_PAIR p = (?p'. p = rep p'))) ##() : void ###|- !x y. x,y = (@p. REP_prod p = MK_PAIR x y) ###|- !p. FST p = (@x. ?y. MK_PAIR x y = REP_prod p) ###|- !p. SND p = (@y. ?x. MK_PAIR x y = REP_prod p) ##########[|- !x. FST x,SND x = x; |- !x y. FST(x,y) = x; |- !x y. SND(x,y) = y] : thm list #############################PAIR_EQ = |- !x y a b. (x,y = a,b) = (x = a) /\ (y = b) #####|- !f x y. UNCURRY f(x,y) = f x y ###|- !f x y. CURRY f x y = f(x,y) ##() : void ##=======> theory bool built cd /build/hol88-NNpOMw/hol88-2.02.19940316/theories; rm -f ind.th;\ /build/hol88-NNpOMw/hol88-2.02.19940316/hol-lcf < /build/hol88-NNpOMw/hol88-2.02.19940316/theories/mk_ind.ml;\ cd /build/hol88-NNpOMw/hol88-2.02.19940316 HOL-LCF version 2.02 (GCL) created 13/10/21 ############################() : void ##Theory bool loaded () : void ##() : void ## () : void () : void () : void () : void () : void () : void () : void () : void ........() : void ...................................................................................................................................() : void File /build/hol88-NNpOMw/hol88-2.02.19940316/ml/hol-in-out loaded () : void ##|- ?f. ONE_ONE f /\ ~ONTO f ##() : void ##=======> theory ind built cd /build/hol88-NNpOMw/hol88-2.02.19940316/theories; rm -f BASIC-HOL.th;\ /build/hol88-NNpOMw/hol88-2.02.19940316/hol-lcf < /build/hol88-NNpOMw/hol88-2.02.19940316/theories/mk_BASIC-HOL.ml;\ cd /build/hol88-NNpOMw/hol88-2.02.19940316 HOL-LCF version 2.02 (GCL) created 13/10/21 ############################Theory ind loaded () : void ###.....................................................................................................................................................() : void ####.............() : void #...................................................................................() : void #............................() : void ##() : void #####() : void ##################TYPE_DEFINITION = |- !P rep. TYPE_DEFINITION P rep = (!x' x''. (rep x' = rep x'') ==> (x' = x'')) /\ (!x. P x = (?x'. x = rep x')) #############################ABS_REP_THM = |- !P. (?rep. TYPE_DEFINITION P rep) ==> (?rep abs. (!a. abs(rep a) = a) /\ (!r. P r = (rep(abs r) = r))) ###|- !P. (?rep. TYPE_DEFINITION P rep) ==> (?rep abs. (!a. abs(rep a) = a) /\ (!r. P r = (rep(abs r) = r))) ##=======> theory BASIC-HOL built echo 'compilet `ml/genfns`;;'\ 'quit();;'\ | hol-lcf HOL-LCF version 2.02 (GCL) created 13/10/21 # map2 = - : (((* # **) -> ***) -> (* list # ** list) -> *** list) itlist2 = - : (((* # **) -> *** -> ***) -> (* list # ** list) -> *** -> ***) set_equal = - : (* list -> * list -> bool) el = - : (int -> * list -> *) word_separators = [` `; ` `] : string list words = - : (string -> string list) maptok = - : ((string -> *) -> string -> * list) uncurry = - : ((* -> ** -> ***) -> (* # **) -> ***) Calling Lisp compiler File ml/genfns compiled () : void #echo 'set_search_path[``; `/build/hol88-NNpOMw/hol88-2.02.19940316/theories/`];;'\ 'load_theory `bool`;;'\ 'lisp `(load "lisp/genfns")`;;'\ 'lisp `(load "lisp/gnt")`;;'\ 'lisp `(load "lisp/hol-pars")`;;'\ 'lisp `(load "lisp/parslist")`;;'\ 'lisp `(load "lisp/parslet")`;;'\ 'lisp `(load "lisp/constp")`;;'\ 'lisp `(load "lisp/hol-writ")`;;'\ 'lisp `(load "lisp/mk_pp_thm")`;;'\ 'compilet `ml/hol-syn`;;'\ 'quit();;'\ | hol-lcf HOL-LCF version 2.02 (GCL) created 13/10/21 #() : void Theory bool loaded () : void () : void () : void () : void () : void () : void () : void () : void () : void () : void New constructors declared: AssumeStep : (term -> step) ReflStep : (term -> step) SubstStep : (((thm # term) list # term # thm) -> step) BetaConvStep : (term -> step) AbsStep : ((term # thm) -> step) InstTypeStep : (((type # type) list # thm) -> step) DischStep : ((term # thm) -> step) MpStep : ((thm # thm) -> step) MkCombStep : ((thm # thm) -> step) MkAbsStep : (thm -> step) AlphaStep : ((term # term) -> step) AddAssumStep : ((term # thm) -> step) SymStep : (thm -> step) TransStep : ((thm # thm) -> step) ImpTransStep : ((thm # thm) -> step) ApTermStep : ((term # thm) -> step) ApThmStep : ((thm # term) -> step) EqMpStep : ((thm # thm) -> step) EqImpRuleStep : (thm -> step) SpecStep : ((term # thm) -> step) EqtIntroStep : (thm -> step) GenStep : ((term # thm) -> step) EtaConvStep : (term -> step) ExtStep : (thm -> step) ExistsStep : (((term # term) # thm) -> step) ChooseStep : (((term # thm) # thm) -> step) ImpAntisymRuleStep : ((thm # thm) -> step) MkExistsStep : (thm -> step) SubsStep : ((thm list # thm) -> step) SubsOccsStep : (((int list # thm) list # thm) -> step) SubstConvStep : (((thm # term) list # term # term) -> step) ConjStep : ((thm # thm) -> step) Conjunct1Step : (thm -> step) Conjunct2Step : (thm -> step) Disj1Step : ((thm # term) -> step) Disj2Step : ((term # thm) -> step) DisjCasesStep : ((thm # thm # thm) -> step) NotIntroStep : (thm -> step) NotElimStep : (thm -> step) ContrStep : ((term # thm) -> step) CcontrStep : ((term # thm) -> step) InstStep : (((term # term) list # thm) -> step) StoreDefinitionStep : ((string # term) -> step) DefinitionStep : ((string # string) -> step) DefExistsRuleStep : (term -> step) NewAxiomStep : ((string # term) -> step) AxiomStep : ((string # string) -> step) TheoremStep : ((string # string) -> step) NewConstantStep : ((string # type) -> step) NewTypeStep : ((int # string) -> step) NumConvStep : (term -> step) steplist = [] : step list record_proof_flag = false : bool suspended = false : bool is_recording_proof = - : (void -> bool) record_proof = - : (bool -> void) suspend_recording = - : (* -> void) resume_recording = - : (* -> void) RecordStep = - : (step -> void) get_steps = - : (void -> step list) ((-), (-), (-), (-), (-), -) : ((bool -> void) # (void -> bool) # (step -> void) # (void -> step list) # (* -> void) # (** -> void)) record_proof = - : (bool -> void) is_recording_proof = - : (void -> bool) RecordStep = - : (step -> void) get_steps = - : (void -> step list) suspend_recording = - : (* -> void) resume_recording = - : (* -> void) new_constant = - : ((string # type) -> void) arb_term = "arb" : term ARB_THM = |- $= = $= falsity = "F" : term bool_ty = ":bool" : type mk_forall = - : ((term # term) -> term) mk_exists = - : ((term # term) -> term) mk_select = - : ((term # term) -> term) mk_conj = - : ((term # term) -> term) mk_disj = - : ((term # term) -> term) mk_imp = - : ((term # term) -> term) mk_eq = - : ((term # term) -> term) mk_pair = - : ((term # term) -> term) mk_neg = - : (term -> term) dest_forall = - : (term -> (term # term)) dest_exists = - : (term -> (term # term)) dest_select = - : (term -> (term # term)) dest_conj = - : (term -> (term # term)) dest_disj = - : (term -> (term # term)) dest_eq = - : (term -> (term # term)) dest_pair = - : (term -> (term # term)) dest_imp = - : (term -> (term # term)) dest_neg = - : (term -> term) dest_neg_imp = - : (term -> (term # term)) dest_form = - : (form -> term) mk_form = - : (term -> form) mk_thm = - : ((term list # term) -> thm) dest_thm = - : (thm -> (term list # term)) hyp = - : (thm -> term list) concl = - : (thm -> term) hyp_union = - : (thm list -> term list) is_forall = - : (term -> bool) is_exists = - : (term -> bool) is_select = - : (term -> bool) is_conj = - : (term -> bool) is_disj = - : (term -> bool) is_imp = - : (term -> bool) is_eq = - : (term -> bool) is_pair = - : (term -> bool) is_neg = - : (term -> bool) is_neg_imp = - : (term -> bool) aconv = - : (term -> term -> bool) subst = - : ((term # term) list -> term -> term) subst_occs = - : (int list list -> (term # term) list -> term -> term) free_in = - : (term -> term -> bool) variant = - : (term list -> term -> term) type_in_type = - : (type -> type -> bool) type_in = - : (type -> term -> bool) inst_type = - : ((type # type) list -> type -> type) inst = - : (term list -> (type # type) list -> term -> term) match = - : (term -> term -> ((term # term) list # (type # type) list)) freesl = - : (term list -> term list) varsl = - : (term list -> term list) tyvarsl = - : (term list -> type list) thm_frees = - : (thm -> term list) disch = - : ((term # term list) -> term list) is_pred = - : (term -> bool) mk_pred = - : ((string # term) -> term) dest_pred = - : (term -> (string # term)) list_mk_abs = - : ((term list # term) -> term) list_mk_comb = - : ((term # term list) -> term) list_mk_conj = - : (term list -> term) list_mk_disj = - : (term list -> term) list_mk_imp = - : ((term list # term) -> term) list_mk_forall = - : ((term list # term) -> term) list_mk_exists = - : ((term list # term) -> term) list_mk_pair = - : (term list -> term) strip_abs = - : (term -> (term list # term)) strip_comb = - : (term -> (term # term list)) conjuncts = - : (term -> term list) disjuncts = - : (term -> term list) strip_imp = - : (term -> (term list # term)) strip_forall = - : (term -> (term list # term)) strip_exists = - : (term -> (term list # term)) strip_pair = - : (term -> term list) mk_cond = - : ((term # term # term) -> term) is_cond = - : (term -> bool) dest_cond = - : (term -> (term # term # term)) dest_let = - : (term -> (term # term)) mk_let = - : ((term # term) -> term) is_let = - : (term -> bool) mk_cons = - : ((term # term) -> term) dest_cons = - : (term -> (term # term)) is_cons = - : (term -> bool) mk_list = - : ((term list # type) -> term) dest_list = - : (term -> (term list # type)) is_list = - : (term -> bool) mk_pabs = - : ((term # term) -> term) dest_pabs = - : (term -> (term # term)) is_pabs = - : (term -> bool) lhs = - : (term -> term) rhs = - : (term -> term) find_term = - : ((term -> bool) -> term -> term) rator = - : (term -> term) rand = - : (term -> term) bndvar = - : (term -> term) body = - : (term -> term) find_terms = - : ((term -> bool) -> term -> term list) mk_primed_var = - : ((string # type) -> term) new_axiom = - : ((string # term) -> thm) new_open_axiom = - : ((string # term) -> thm) new_predicate = - : ((string # type) -> void) mk_definition = - : (term -> term) dest_definition = - : (term -> term) is_definition = - : (term -> bool) store_definition = - : ((string # term) -> thm) theorem = - : (string -> string -> thm) new_type = - : (int -> string -> void) delete_thm = - : (string -> string -> thm) pp_axiom = - : (string -> string -> thm) axiom = - : (string -> string -> thm) definition = - : (string -> string -> thm) new_infix = - : ((string # type) -> void) store_binders = - : (term list -> thm) list_of_binders = [] : term list new_binder = - : ((string # type) -> void) n_strip_quant = - : ((* -> (** # *)) -> int -> * -> (** list # *)) is_infix_type = - : (type -> bool) is_binder_type = - : (type -> bool) check_specification = - : (* -> (string # string) list -> thm -> (term list # term)) new_specification = - : (string -> (string # string) list -> thm -> thm) check_varstruct = - : (term -> term list) check_lhs = - : (term -> term list) get_type = - : (term -> type -> type) DEF_EXISTS_RULE = - : (term -> thm) new_gen_definition = - : (string -> (string # term) -> thm) new_definition = - : ((string # term) -> thm) new_infix_definition = - : ((string # term) -> thm) new_theory = - : (string -> void) close_theory = - : (void -> void) binders = - : (string -> term list) activate_binders = - : (string -> string list) ancestors = - : (string -> string list) thy_chked = [] : string list activate_all_binders = - : (string -> string list) load_theory = - : (string -> void) extend_theory = - : (string -> void) new_parent = - : (string -> void) ((-), (-), -) : ((string -> void) # (string -> void) # (string -> void)) load_theory = - : (string -> void) extend_theory = - : (string -> void) new_parent = - : (string -> void) new_binder_definition = - : ((string # term) -> thm) new_type_definition = - : ((string # term # thm) -> thm) ML_eval = - : (string -> void) New constructors declared: preterm_var : (string -> preterm) preterm_const : (string -> preterm) preterm_comb : ((preterm # preterm) -> preterm) preterm_abs : ((preterm # preterm) -> preterm) preterm_typed : ((preterm # type) -> preterm) preterm_antiquot : (term -> preterm) preterm_to_term = - : (preterm -> term) Calling Lisp compiler File ml/hol-syn compiled () : void #echo 'set_search_path[``; `/build/hol88-NNpOMw/hol88-2.02.19940316/theories/`];;'\ 'load_theory `bool`;;'\ 'compilet `ml/hol-rule`;;'\ 'quit();;'\ | hol-lcf HOL-LCF version 2.02 (GCL) created 13/10/21 #() : void Theory bool loaded () : void () : void T_DEF = |- T = ((\x. x) = (\x. x)) F_DEF = |- F = (!t. t) FORALL_DEF = |- $! = (\P. P = (\x. T)) AND_DEF = |- $/\ = (\t1 t2. !t. (t1 ==> t2 ==> t) ==> t) OR_DEF = |- $\/ = (\t1 t2. !t. (t1 ==> t) ==> (t2 ==> t) ==> t) EXISTS_DEF = |- $? = (\P. P($@ P)) NOT_DEF = |- $~ = (\t. t ==> F) EXISTS_UNIQUE_DEF = |- ?! = (\P. $? P /\ (!x y. P x /\ P y ==> (x = y))) LET_DEF = |- LET = (\f x. f x) UNCURRY_DEF = |- !f x y. UNCURRY f(x,y) = f x y CURRY_DEF = |- !f x y. CURRY f x y = f(x,y) COND_DEF = |- COND = (\t t1 t2. @x. ((t = T) ==> (x = t1)) /\ ((t = F) ==> (x = t2))) TYPE_DEFINITION = |- !P rep. TYPE_DEFINITION P rep = (!x' x''. (rep x' = rep x'') ==> (x' = x'')) /\ (!x. P x = (?x'. x = rep x')) BOOL_CASES_AX = |- !t. (t = T) \/ (t = F) IMP_ANTISYM_AX = |- !t1 t2. (t1 ==> t2) ==> (t2 ==> t1) ==> (t1 = t2) ETA_AX = |- !t. (\x. t x) = t SELECT_AX = |- !P x. P x ==> P($@ P) PAIR = |- !x. FST x,SND x = x FST = |- !x y. FST(x,y) = x SND = |- !x y. SND(x,y) = y PAIR_EQ = |- !x y a b. (x,y = a,b) = (x = a) /\ (y = b) ASSUME = - : (term -> thm) REFL = - : (term -> thm) SUBST = - : ((thm # term) list -> term -> thm -> thm) BETA_CONV = - : (term -> thm) ABS = - : (term -> thm -> thm) INST_TYPE = - : ((type # type) list -> thm -> thm) DISCH = - : (term -> thm -> thm) MP = - : (thm -> thm -> thm) Calling Lisp compiler File ml/hol-rule compiled () : void #echo 'set_search_path[``; `/build/hol88-NNpOMw/hol88-2.02.19940316/theories/`];;'\ 'load_theory `bool`;;'\ 'compilet `ml/hol-drule`;;'\ 'quit();;'\ | hol-lcf HOL-LCF version 2.02 (GCL) created 13/10/21 #() : void Theory bool loaded () : void () : void ADD_ASSUM = - : (term -> thm -> thm) SYM = - : (thm -> thm) () : void TRANS = - : (thm -> thm -> thm) IMP_TRANS = - : (thm -> thm -> thm) AP_TERM = - : (term -> thm -> thm) AP_THM = - : (thm -> term -> thm) EQ_MP = - : (thm -> thm -> thm) EQ_IMP_RULE = - : (thm -> (thm # thm)) TRUTH = |- T EQT_ELIM = - : (thm -> thm) SPEC = - : (term -> thm -> thm) SPECL = - : (term list -> thm -> thm) EQT_INTRO = - : (thm -> thm) GEN = - : (term -> thm -> thm) GENL = - : (term list -> thm -> thm) ETA_CONV = - : (term -> thm) EXT = - : (thm -> thm) SELECT_INTRO = - : (thm -> thm) SELECT_ELIM = - : (thm -> (term # thm) -> thm) EXISTS = - : ((term # term) -> thm -> thm) CHOOSE = - : ((term # thm) -> thm -> thm) SELECT_RULE = - : (thm -> thm) IMP_ANTISYM_RULE = - : (thm -> thm -> thm) MK_EXISTS = - : (thm -> thm) LIST_MK_EXISTS = - : (term list -> thm -> thm) FORALL_EQ = - : (term -> thm -> thm) EXISTS_EQ = - : (term -> thm -> thm) SELECT_EQ = - : (term -> thm -> thm) SUBS = - : (thm list -> thm -> thm) SUBS_OCCS = - : ((int list # thm) list -> thm -> thm) SUBST_CONV = - : ((thm # term) list -> term -> term -> thm) RIGHT_BETA = - : (thm -> thm) LIST_BETA_CONV = - : (term -> thm) RIGHT_LIST_BETA = - : (thm -> thm) AND_INTRO_THM = |- !t1 t2. t1 ==> t2 ==> t1 /\ t2 CONJ = - : (thm -> thm -> thm) AND1_THM = |- !t1 t2. t1 /\ t2 ==> t1 CONJUNCT1 = - : (thm -> thm) AND2_THM = |- !t1 t2. t1 /\ t2 ==> t2 CONJUNCT2 = - : (thm -> thm) CONJ_SYM = |- !t1 t2. t1 /\ t2 = t2 /\ t1 CONJ_ASSOC = |- !t1 t2 t3. t1 /\ t2 /\ t3 = (t1 /\ t2) /\ t3 CONJUNCTS_CONV = - : ((term # term) -> thm) CONJ_SET_CONV = - : (term list -> term list -> thm) FRONT_CONJ_CONV = - : (term list -> term -> thm) CONJ_DISCH = - : (term -> thm -> thm) CONJ_DISCHL = - : (term list -> thm -> thm) OR_INTRO_THM1 = |- !t1 t2. t1 ==> t1 \/ t2 DISJ1 = - : (thm -> term -> thm) OR_INTRO_THM2 = |- !t1 t2. t2 ==> t1 \/ t2 DISJ2 = - : (term -> thm -> thm) OR_ELIM_THM = |- !t t1 t2. t1 \/ t2 ==> (t1 ==> t) ==> (t2 ==> t) ==> t DISJ_CASES = - : (thm -> thm -> thm -> thm) FALSITY = |- !t. F ==> t IMP_F = |- !t. (t ==> F) ==> ~t NOT_INTRO = - : (thm -> thm) NEG_DISCH = - : (term -> thm -> thm) F_IMP = |- !t. ~t ==> t ==> F NOT_MP = - : (thm -> thm -> thm) UNDISCH = - : (thm -> thm) NOT_ELIM = - : (thm -> thm) NOT_EQ_SYM = - : (thm -> thm) AND_CLAUSES = |- !t. (T /\ t = t) /\ (t /\ T = t) /\ (F /\ t = F) /\ (t /\ F = F) /\ (t /\ t = t) OR_CLAUSES = |- !t. (T \/ t = T) /\ (t \/ T = T) /\ (F \/ t = t) /\ (t \/ F = t) /\ (t \/ t = t) IMP_CLAUSES = |- !t. (T ==> t = t) /\ (t ==> T = T) /\ (F ==> t = T) /\ (t ==> t = T) /\ (t ==> F = ~t) CONTR = - : (term -> thm -> thm) EQF_INTRO = - : (thm -> thm) EQF_ELIM = - : (thm -> thm) EXCLUDED_MIDDLE = |- !t. t \/ ~t CCONTR = - : (term -> thm -> thm) INST = - : ((term # term) list -> thm -> thm) NOT_F = |- !t. ~t ==> (t = F) NOT_AND = |- ~(t /\ ~t) OR_IMP_THM = |- !t1 t2. (t1 = t2 \/ t1) = t2 ==> t1 NOT_IMP = |- !t1 t2. ~(t1 ==> t2) = t1 /\ ~t2 DISJ_ASSOC = |- !t1 t2 t3. t1 \/ t2 \/ t3 = (t1 \/ t2) \/ t3 DISJ_SYM = |- !t1 t2. t1 \/ t2 = t2 \/ t1 DE_MORGAN_THM = |- !t1 t2. (~(t1 /\ t2) = ~t1 \/ ~t2) /\ (~(t1 \/ t2) = ~t1 /\ ~t2) ISPEC = - : (term -> thm -> thm) ISPECL = - : (term list -> thm -> thm) SELECT_REFL = |- !x. (@y. y = x) = x SELECT_UNIQUE = |- !P x. (!y. P y = (y = x)) ==> ($@ P = x) Calling Lisp compiler File ml/hol-drule compiled () : void #echo 'set_search_path[``; `/build/hol88-NNpOMw/hol88-2.02.19940316/theories/`];;'\ 'load_theory `bool`;;'\ 'compilet `ml/drul`;;'\ 'quit();;'\ | hol-lcf HOL-LCF version 2.02 (GCL) created 13/10/21 #() : void Theory bool loaded () : void () : void GEN_ALL = - : (thm -> thm) DISCH_ALL = - : (thm -> thm) SPEC_VAR = - : (thm -> (term # thm)) UNDISCH_ALL = - : (thm -> thm) SPEC_ALL = - : (thm -> thm) PROVE_HYP = - : (thm -> thm -> thm) CONJ_PAIR = - : (thm -> (thm # thm)) LIST_CONJ = - : (thm list -> thm) CONJ_LIST = - : (int -> thm -> thm list) CONJUNCTS = - : (thm -> thm list) BODY_CONJUNCTS = - : (thm -> thm list) IMP_CANON = - : (thm -> thm list) LIST_MP = - : (thm list -> thm -> thm) CONTRAPOS = - : (thm -> thm) DISJ_IMP = - : (thm -> thm) IMP_ELIM = - : (thm -> thm) NOT_CLAUSES = |- (!t. ~~t = t) /\ (~T = F) /\ (~F = T) DISJ_CASES_UNION = - : (thm -> thm -> thm -> thm) EQ_REFL = |- !x. x = x REFL_CLAUSE = |- !x. (x = x) = T EQ_SYM = |- !x y. (x = y) ==> (y = x) EQ_SYM_EQ = |- !x y. (x = y) = (y = x) EQ_EXT = |- !f g. (!x. f x = g x) ==> (f = g) EQ_TRANS = |- !x y z. (x = y) /\ (y = z) ==> (x = z) BOOL_EQ_DISTINCT = |- ~(T = F) /\ ~(F = T) EQ_CLAUSES = |- !t. ((T = t) = t) /\ ((t = T) = t) /\ ((F = t) = ~t) /\ ((t = F) = ~t) MK_COMB = - : ((thm # thm) -> thm) MK_ABS = - : (thm -> thm) HALF_MK_ABS = - : (thm -> thm) ALPHA_CONV = - : (term -> term -> thm) ALPHA = - : (term -> term -> thm) GEN_ALPHA_CONV = - : (term -> term -> thm) COND_CLAUSES = |- !t1 t2. ((T => t1 | t2) = t1) /\ ((F => t1 | t2) = t2) COND_ID = |- !b t. (b => t | t) = t IMP_CONJ = - : (thm -> thm -> thm) EXISTS_IMP = - : (term -> thm -> thm) LEFT_AND_OVER_OR = |- !t1 t2 t3. t1 /\ (t2 \/ t3) = t1 /\ t2 \/ t1 /\ t3 RIGHT_AND_OVER_OR = |- !t1 t2 t3. (t2 \/ t3) /\ t1 = t2 /\ t1 \/ t3 /\ t1 LEFT_OR_OVER_AND = |- !t1 t2 t3. t1 \/ t2 /\ t3 = (t1 \/ t2) /\ (t1 \/ t3) RIGHT_OR_OVER_AND = |- !t1 t2 t3. t2 /\ t3 \/ t1 = (t2 \/ t1) /\ (t3 \/ t1) IMP_DISJ_THM = |- !t1 t2. t1 ==> t2 = ~t1 \/ t2 IMP_F_EQ_F = |- !t. t ==> F = (t = F) AND_IMP_INTRO = |- !t1 t2 t3. t1 ==> t2 ==> t3 = t1 /\ t2 ==> t3 EQ_IMP_THM = |- !t1 t2. (t1 = t2) = (t1 ==> t2) /\ (t2 ==> t1) EQ_EXPAND = |- !t1 t2. (t1 = t2) = t1 /\ t2 \/ ~t1 /\ ~t2 COND_RATOR = |- !b f g x. (b => f | g)x = (b => f x | g x) COND_RAND = |- !f b x y. f(b => x | y) = (b => f x | f y) COND_ABS = |- !b f g. (\x. (b => f x | g x)) = (b => f | g) COND_EXPAND = |- !b t1 t2. (b => t1 | t2) = (~b \/ t1) /\ (b \/ t2) Calling Lisp compiler File ml/drul compiled () : void #echo 'set_search_path[``; `/build/hol88-NNpOMw/hol88-2.02.19940316/theories/`];;'\ 'load_theory `bool`;;'\ 'compilet `ml/hol-thyfn`;;'\ 'quit();;'\ | hol-lcf HOL-LCF version 2.02 (GCL) created 13/10/21 #() : void Theory bool loaded () : void () : void IS_ASSUMPTION_OF = |- !t1 t2. t1 IS_ASSUMPTION_OF t2 = t1 ==> t2 ASSUMPTION_DISCH = - : (term -> thm -> thm) ASSUMPTION_DISCH_ALL = - : (thm -> thm) ASSUMPTION_UNDISCH = - : (thm -> thm) ASSUMPTION_UNDISCH_ALL = - : (thm -> thm) save_thm = - : ((string # thm) -> thm) theorem = - : (string -> string -> thm) delete_thm = - : (string -> string -> thm) theorems = - : (string -> (string # thm) list) ((-), (-), (-), -) : (((string # thm) -> thm) # (string -> string -> thm) # (string -> string -> thm) # (string -> (string # thm) list)) save_thm = - : ((string # thm) -> thm) theorem = - : (string -> string -> thm) delete_thm = - : (string -> string -> thm) theorems = - : (string -> (string # thm) list) constants = - : (string -> term list) axioms = - : (string -> (string # thm) list) definition = - : (string -> string -> thm) definitions = - : (string -> (string # thm) list) print_list = - : (bool -> string -> (* -> **) -> * list -> void) print_theory = - : (string -> void) theorem_lfn = - : (string list -> thm) theorem_msg_lfn = - : (string list -> thm) load_theorem = - : (string -> string -> void) load_theorems = - : (string -> void list) definition_lfn = - : (string list -> thm) definition_msg_lfn = - : (string list -> thm) load_definition = - : (string -> string -> void) load_definitions = - : (string -> void list) axiom_lfn = - : (string list -> thm) axiom_msg_lfn = - : (string list -> thm) load_axiom = - : (string -> string -> void) load_axioms = - : (string -> void list) Calling Lisp compiler File ml/hol-thyfn compiled () : void #echo 'set_search_path[``; `/build/hol88-NNpOMw/hol88-2.02.19940316/theories/`];;'\ 'load_theory `bool`;;'\ 'compilet `ml/tacticals`;;'\ 'quit();;'\ | hol-lcf HOL-LCF version 2.02 (GCL) created 13/10/21 #() : void Theory bool loaded () : void () : void type proof defined type goal defined type tactic defined TAC_PROOF = - : ((goal # tactic) -> thm) prove = - : ((term # tactic) -> thm) ASSUM_LIST = - : ((thm list -> tactic) -> tactic) POP_ASSUM = - : ((thm -> tactic) -> tactic) POP_ASSUM_LIST = - : ((thm list -> tactic) -> tactic) () : void () : void mapshape = - : (int list -> (* list -> **) list -> * list -> ** list) THEN = - : (tactic -> tactic -> tactic) THENL = - : (tactic -> tactic list -> tactic) ((-), -) : ((tactic -> tactic -> tactic) # (tactic -> tactic list -> tactic)) THEN = - : (tactic -> tactic -> tactic) THENL = - : (tactic -> tactic list -> tactic) () : void ORELSE = - : (tactic -> tactic -> tactic) FAIL_TAC = - : (string -> tactic) NO_TAC = - : tactic ALL_TAC = - : tactic TRY = - : (tactic -> tactic) REPEAT = - : (tactic -> tactic) achieves = - : (thm -> goal -> bool) chktac = - : ((goal list # proof) -> thm) check_valid = - : (goal -> (goal list # proof) -> bool) VALID = - : (tactic -> tactic) EVERY = - : (tactic list -> tactic) FIRST = - : (tactic list -> tactic) MAP_EVERY = - : ((* -> tactic) -> * list -> tactic) MAP_FIRST = - : ((* -> tactic) -> * list -> tactic) EVERY_ASSUM = - : ((thm -> tactic) -> tactic) FIRST_ASSUM = - : ((thm -> tactic) -> tactic) SUBGOAL_THEN = - : (term -> (thm -> tactic) -> tactic) CHANGED_TAC = - : (tactic -> tactic) Calling Lisp compiler File ml/tacticals compiled () : void #echo 'set_search_path[``; `/build/hol88-NNpOMw/hol88-2.02.19940316/theories/`];;'\ 'load_theory `bool`;;'\ 'compilet `ml/tacont`;;'\ 'quit();;'\ | hol-lcf HOL-LCF version 2.02 (GCL) created 13/10/21 #() : void Theory bool loaded () : void () : void type thm_tactic defined type thm_tactical defined () : void () : void THEN_TCL = - : (thm_tactical -> thm_tactical -> thm_tactical) ORELSE_TCL = - : (thm_tactical -> thm_tactical -> thm_tactical) REPEAT_TCL = - : (thm_tactical -> thm_tactical) REPEAT_GTCL = - : (thm_tactical -> thm_tactical) ALL_THEN = - : thm_tactical NO_THEN = - : thm_tactical EVERY_TCL = - : (thm_tactical list -> thm_tactical) FIRST_TCL = - : (thm_tactical list -> thm_tactical) CONJUNCTS_THEN2 = - : (thm_tactic -> thm_tactical) CONJUNCTS_THEN = - : thm_tactical DISJ_CASES_THEN2 = - : (thm_tactic -> thm_tactical) DISJ_CASES_THEN = - : thm_tactical DISJ_CASES_THENL = - : (thm_tactic list -> thm_tactic) DISCH_THEN = - : (thm_tactic -> tactic) X_CHOOSE_THEN = - : (term -> thm_tactical) CHOOSE_THEN = - : thm_tactical X_CASES_THENL = - : (term list list -> thm_tactic list -> thm_tactic) X_CASES_THEN = - : (term list list -> thm_tactical) CASES_THENL = - : (thm_tactic list -> thm_tactic) STRIP_THM_THEN = - : thm_tactical Calling Lisp compiler File ml/tacont compiled () : void #echo 'set_search_path[``; `/build/hol88-NNpOMw/hol88-2.02.19940316/theories/`];;'\ 'load_theory `bool`;;'\ 'compilet `ml/tactics`;;'\ 'quit();;'\ | hol-lcf HOL-LCF version 2.02 (GCL) created 13/10/21 #() : void Theory bool loaded () : void () : void ACCEPT_TAC = - : thm_tactic DISCARD_TAC = - : thm_tactic CONTR_TAC = - : thm_tactic ASSUME_TAC = - : thm_tactic FREEZE_THEN = - : thm_tactical CONJ_TAC = - : tactic DISJ1_TAC = - : tactic DISJ2_TAC = - : tactic MP_TAC = - : thm_tactic EQ_TAC = - : tactic X_GEN_TAC = - : (term -> tactic) GEN_TAC = - : tactic SPEC_TAC = - : ((term # term) -> tactic) EXISTS_TAC = - : (term -> tactic) GSUBST_TAC = - : (((term # term) list -> term -> term) -> thm list -> tactic) SUBST_TAC = - : (thm list -> tactic) SUBST_OCCS_TAC = - : ((int list # thm) list -> tactic) SUBST1_TAC = - : thm_tactic RULE_ASSUM_TAC = - : ((thm -> thm) -> tactic) SUBST_ALL_TAC = - : thm_tactic CHECK_ASSUME_TAC = - : thm_tactic STRIP_ASSUME_TAC = - : thm_tactic STRUCT_CASES_TAC = - : thm_tactic COND_CASES_TAC = - : tactic BOOL_CASES_TAC = - : (term -> tactic) STRIP_GOAL_THEN = - : (thm_tactic -> tactic) FILTER_GEN_TAC = - : (term -> tactic) FILTER_DISCH_THEN = - : (thm_tactic -> term -> tactic) FILTER_STRIP_THEN = - : (thm_tactic -> term -> tactic) DISCH_TAC = - : tactic DISJ_CASES_TAC = - : thm_tactic CHOOSE_TAC = - : thm_tactic X_CHOOSE_TAC = - : (term -> thm_tactic) STRIP_TAC = - : tactic FILTER_DISCH_TAC = - : (term -> tactic) FILTER_STRIP_TAC = - : (term -> tactic) ASM_CASES_TAC = - : (term -> tactic) REFL_TAC = - : tactic UNDISCH_TAC = - : (term -> tactic) AP_TERM_TAC = - : tactic AP_THM_TAC = - : tactic Calling Lisp compiler File ml/tactics compiled () : void #echo 'set_search_path[``; `/build/hol88-NNpOMw/hol88-2.02.19940316/theories/`];;'\ 'load_theory `bool`;;'\ 'compilet `ml/conv`;;'\ 'quit();;'\ | hol-lcf HOL-LCF version 2.02 (GCL) created 13/10/21 #() : void Theory bool loaded () : void () : void type conv defined INST_TY_TERM = - : (((term # term) list # (type # type) list) -> thm -> thm) GSPEC = - : (thm -> thm) PART_MATCH = - : ((term -> term) -> thm -> conv) MATCH_MP = - : (thm -> thm -> thm) REWR_CONV = - : (thm -> conv) NO_CONV = - : conv ALL_CONV = - : conv () : void () : void THENC = - : (conv -> conv -> conv) ORELSEC = - : (conv -> conv -> conv) FIRST_CONV = - : (conv list -> conv) EVERY_CONV = - : (conv list -> conv) REPEATC = - : (conv -> conv) CHANGED_CONV = - : (conv -> conv) TRY_CONV = - : (conv -> conv) SUB_CONV = - : (conv -> conv) qconv = `QCONV` : string QCONV = - : (conv -> conv) ALL_QCONV = - : conv THENQC = - : (conv -> conv -> conv) ORELSEQC = - : ((term -> *) -> (term -> *) -> term -> *) REPEATQC = - : (conv -> conv) CHANGED_QCONV = - : (conv -> conv) TRY_QCONV = - : (conv -> conv) SUB_QCONV = - : (conv -> conv) SUB_ALPHA_QCONV = - : (conv -> conv) DEPTH_QCONV = - : ((conv -> conv) -> conv -> conv) DEPTH_CONV = - : (conv -> conv) REDEPTH_QCONV = - : ((conv -> conv) -> conv -> conv) REDEPTH_CONV = - : (conv -> conv) TOP_DEPTH_QCONV = - : ((conv -> conv) -> conv -> conv) TOP_DEPTH_CONV = - : (conv -> conv) ONCE_DEPTH_QCONV = - : ((conv -> conv) -> conv -> conv) ONCE_DEPTH_CONV = - : (conv -> conv) REW_DEPTH_CONV = - : (conv -> conv) ONCE_REW_DEPTH_CONV = - : (conv -> conv) ((-), (-), (-), (-), (-), -) : ((conv -> conv) # (conv -> conv) # (conv -> conv) # (conv -> conv) # (conv -> conv) # (conv -> conv)) DEPTH_CONV = - : (conv -> conv) REDEPTH_CONV = - : (conv -> conv) TOP_DEPTH_CONV = - : (conv -> conv) ONCE_DEPTH_CONV = - : (conv -> conv) REW_DEPTH_CONV = - : (conv -> conv) ONCE_REW_DEPTH_CONV = - : (conv -> conv) CONV_RULE = - : (conv -> thm -> thm) CONV_TAC = - : (conv -> tactic) BETA_RULE = - : (thm -> thm) BETA_TAC = - : tactic NOT_FORALL_CONV = - : conv NOT_EXISTS_CONV = - : conv EXISTS_NOT_CONV = - : conv FORALL_NOT_CONV = - : conv FORALL_AND_CONV = - : conv EXISTS_OR_CONV = - : conv AND_FORALL_CONV = - : conv LEFT_AND_FORALL_CONV = - : conv RIGHT_AND_FORALL_CONV = - : conv OR_EXISTS_CONV = - : conv LEFT_OR_EXISTS_CONV = - : conv RIGHT_OR_EXISTS_CONV = - : conv EXISTS_AND_CONV = - : conv AND_EXISTS_CONV = - : conv LEFT_AND_EXISTS_CONV = - : conv RIGHT_AND_EXISTS_CONV = - : conv FORALL_OR_CONV = - : conv OR_FORALL_CONV = - : conv LEFT_OR_FORALL_CONV = - : conv RIGHT_OR_FORALL_CONV = - : conv FORALL_IMP_CONV = - : conv LEFT_IMP_EXISTS_CONV = - : conv RIGHT_IMP_FORALL_CONV = - : conv EXISTS_IMP_CONV = - : conv LEFT_IMP_FORALL_CONV = - : conv RIGHT_IMP_EXISTS_CONV = - : conv X_SKOLEM_CONV = - : (term -> conv) SKOLEM_CONV = - : conv SYM_CONV = - : conv RIGHT_CONV_RULE = - : (conv -> thm -> thm) FUN_EQ_CONV = - : conv X_FUN_EQ_CONV = - : (term -> conv) CONTRAPOS_CONV = - : conv ANTE_CONJ_CONV = - : conv SWAP_EXISTS_CONV = - : conv RAND_CONV = - : (conv -> conv) RATOR_CONV = - : (conv -> conv) ABS_CONV = - : (conv -> conv) SELECT_CONV = - : conv bool_EQ_CONV = - : conv EXISTS_UNIQUE_CONV = - : conv COND_CONV = - : conv PAIRED_BETA_CONV = - : conv PAIRED_ETA_CONV = - : conv GEN_BETA_CONV = - : conv ITER_BETA_CONV = - : conv ARGS_CONV = - : (conv list -> conv) RED_WHERE = - : (term -> term -> conv) REDUCE = - : (term -> term -> thm -> thm) let_CONV = - : conv - : conv let_CONV = - : conv EXISTENCE = - : (thm -> thm) AC_CONV = - : ((thm # thm) -> conv) GSYM = - : (thm -> thm) Calling Lisp compiler File ml/conv compiled () : void #echo 'set_search_path[``; `/build/hol88-NNpOMw/hol88-2.02.19940316/theories/`];;'\ 'load_theory `bool`;;'\ 'compilet `ml/hol-net`;;'\ 'quit();;'\ | hol-lcf HOL-LCF version 2.02 (GCL) created 13/10/21 #() : void Theory bool loaded () : void () : void nil_term_net = - : * term_net enter_term = - : ((term # *) -> * term_net -> * term_net) lookup_term = - : (* term_net -> term -> * list) merge_term_nets = - : (* term_net -> * term_net -> * term_net) Calling Lisp compiler File ml/hol-net compiled () : void #echo 'set_search_path[``; `/build/hol88-NNpOMw/hol88-2.02.19940316/theories/`];;'\ 'load_theory `bool`;;'\ 'compilet `ml/rewrite`;;'\ 'quit();;'\ | hol-lcf HOL-LCF version 2.02 (GCL) created 13/10/21 #() : void Theory bool loaded () : void () : void mk_rewrites = - : (thm -> thm list) mk_rewritesl = - : (thm list -> thm list) mk_conv_net = - : (thm list -> conv term_net) - : (thm list -> conv term_net) mk_conv_net = - : (thm list -> conv term_net) FORALL_SIMP = |- !t. (!x. t) = t EXISTS_SIMP = |- !t. (?x. t) = t ABS_SIMP = |- !t1 t2. (\x. t1)t2 = t1 basic_rewrites = [|- !x. (x = x) = T; |- !t. ((T = t) = t) /\ ((t = T) = t) /\ ((F = t) = ~t) /\ ((t = F) = ~t); |- (!t. ~~t = t) /\ (~T = F) /\ (~F = T); |- !t. (T /\ t = t) /\ (t /\ T = t) /\ (F /\ t = F) /\ (t /\ F = F) /\ (t /\ t = t); |- !t. (T \/ t = T) /\ (t \/ T = T) /\ (F \/ t = t) /\ (t \/ F = t) /\ (t \/ t = t); |- !t. (T ==> t = t) /\ (t ==> T = T) /\ (F ==> t = T) /\ (t ==> t = T) /\ (t ==> F = ~t); |- !t1 t2. ((T => t1 | t2) = t1) /\ ((F => t1 | t2) = t2); |- !t. (!x. t) = t; |- !t. (?x. t) = t; |- !t1 t2. (\x. t1)t2 = t1; |- !x. FST x,SND x = x; |- !x y. FST(x,y) = x; |- !x y. SND(x,y) = y] : thm list GEN_REWRITE_CONV = - : ((conv -> conv) -> thm list -> thm list -> conv) PURE_REWRITE_CONV = - : (thm list -> conv) REWRITE_CONV = - : (thm list -> conv) PURE_ONCE_REWRITE_CONV = - : (thm list -> conv) ONCE_REWRITE_CONV = - : (thm list -> conv) GEN_REWRITE_RULE = - : ((conv -> conv) -> thm list -> thm list -> thm -> thm) PURE_REWRITE_RULE = - : (thm list -> thm -> thm) REWRITE_RULE = - : (thm list -> thm -> thm) PURE_ONCE_REWRITE_RULE = - : (thm list -> thm -> thm) ONCE_REWRITE_RULE = - : (thm list -> thm -> thm) PURE_ASM_REWRITE_RULE = - : (thm list -> thm -> thm) ASM_REWRITE_RULE = - : (thm list -> thm -> thm) PURE_ONCE_ASM_REWRITE_RULE = - : (thm list -> thm -> thm) ONCE_ASM_REWRITE_RULE = - : (thm list -> thm -> thm) FILTER_PURE_ASM_REWRITE_RULE = - : ((term -> bool) -> thm list -> thm -> thm) FILTER_ASM_REWRITE_RULE = - : ((term -> bool) -> thm list -> thm -> thm) FILTER_PURE_ONCE_ASM_REWRITE_RULE = - : ((term -> bool) -> thm list -> thm -> thm) FILTER_ONCE_ASM_REWRITE_RULE = - : ((term -> bool) -> thm list -> thm -> thm) GEN_REWRITE_TAC = - : ((conv -> conv) -> thm list -> thm list -> tactic) PURE_REWRITE_TAC = - : (thm list -> tactic) REWRITE_TAC = - : (thm list -> tactic) PURE_ONCE_REWRITE_TAC = - : (thm list -> tactic) ONCE_REWRITE_TAC = - : (thm list -> tactic) PURE_ASM_REWRITE_TAC = - : (thm list -> tactic) ASM_REWRITE_TAC = - : (thm list -> tactic) PURE_ONCE_ASM_REWRITE_TAC = - : (thm list -> tactic) ONCE_ASM_REWRITE_TAC = - : (thm list -> tactic) FILTER_PURE_ASM_REWRITE_TAC = - : ((term -> bool) -> thm list -> tactic) FILTER_ASM_REWRITE_TAC = - : ((term -> bool) -> thm list -> tactic) FILTER_PURE_ONCE_ASM_REWRITE_TAC = - : ((term -> bool) -> thm list -> tactic) FILTER_ONCE_ASM_REWRITE_TAC = - : ((term -> bool) -> thm list -> tactic) find_match = - : (term -> term -> ((term # term) list # (type # type) list)) SUBST_MATCH = - : (thm -> thm -> thm) Calling Lisp compiler File ml/rewrite compiled () : void #echo 'set_search_path[``; `/build/hol88-NNpOMw/hol88-2.02.19940316/theories/`];;'\ 'load_theory `bool`;;'\ 'compilet `ml/resolve`;;'\ 'quit();;'\ | hol-lcf HOL-LCF version 2.02 (GCL) created 13/10/21 #() : void Theory bool loaded () : void () : void MATCH_ACCEPT_TAC = - : thm_tactic ANTE_RES_THEN = - : thm_tactical RES_CANON = - : (thm -> thm list) MATCH_MP = - : (thm -> thm -> thm) check = - : (string -> * list -> * list) IMP_RES_THEN = - : thm_tactical RES_THEN = - : (thm_tactic -> tactic) ((-), -) : (thm_tactical # (thm_tactic -> tactic)) IMP_RES_THEN = - : thm_tactical RES_THEN = - : (thm_tactic -> tactic) IMP_RES_TAC = - : thm_tactic RES_TAC = - : tactic MATCH_MP_TAC = - : thm_tactic Calling Lisp compiler File ml/resolve compiled () : void #echo 'set_search_path[``; `/build/hol88-NNpOMw/hol88-2.02.19940316/theories/`];;'\ 'load_theory `bool`;;'\ 'compilet `ml/goals`;;'\ 'quit();;'\ | hol-lcf HOL-LCF version 2.02 (GCL) created 13/10/21 #() : void Theory bool loaded () : void () : void assignable_print_term = - : (term -> void) () : void print_hyps = - : (term list -> void) print_goal = - : (goal -> void) PROVE = - : ((term # tactic) -> thm) prove_thm = - : ((string # term # tactic) -> thm) type subgoals defined root_goal = - : tactic attempt_first = - : (subgoals -> tactic -> subgoals) rotate_goals = - : (subgoals -> subgoals) achieve_first = - : (subgoals -> thm -> subgoals) apply_proof = - : (subgoals -> thm) () : void print_subgoals = - : (subgoals -> void) print_stack = - : (subgoals list -> int -> void) pop_proofs = - : (subgoals list -> subgoals list) pop_proofs_print = - : (subgoals list -> subgoals list) push_print = - : (subgoals -> subgoals list -> subgoals list) push_fsubgoals = - : (subgoals list -> tactic -> subgoals list) push_subgoals = - : (subgoals list -> tactic -> subgoals list) rotate_top = - : (int -> subgoals list -> subgoals list) new_stack = - : (goal -> subgoals list) top_proof = - : (subgoals list -> thm) Calling Lisp compiler File ml/goals compiled () : void #echo 'set_search_path[``; `/build/hol88-NNpOMw/hol88-2.02.19940316/theories/`];;'\ 'load_theory `bool`;;'\ 'compilet `ml/stack`;;'\ 'quit();;'\ | hol-lcf HOL-LCF version 2.02 (GCL) created 13/10/21 #() : void Theory bool loaded () : void () : void abs_goals = - : (subgoals list -> goalstack) rep_goals = - : (goalstack -> subgoals list) goals = - : goalstack backup_list = [] : goalstack list backup_limit = 12 : int print_state = - : (int -> void) change_state = - : (goalstack -> void) set_goal = - : (goal -> void) expandf = - : (tactic -> void) expand = - : (tactic -> void) rotate = - : (int -> void) backup = - : (void -> void) top_thm = - : (void -> thm) save_top_thm = - : (string -> thm) top_goal = - : (void -> goal) get_state = - : (void -> goalstack) set_state = - : (goalstack -> void) g = - : (term -> void) e = - : (tactic -> void) p = - : (int -> void) b = - : (void -> void) r = - : (int -> void) Calling Lisp compiler File ml/stack compiled () : void #echo 'set_search_path[``; `/build/hol88-NNpOMw/hol88-2.02.19940316/theories/`];;'\ 'load_theory `BASIC-HOL`;;'\ 'compilet `ml/abs-rep`;;'\ 'quit();;'\ | hol-lcf HOL-LCF version 2.02 (GCL) created 13/10/21 #() : void Theory BASIC-HOL loaded () : void () : void ABS_REP_THM = |- !P. (?rep. TYPE_DEFINITION P rep) ==> (?rep abs. (!a. abs(rep a) = a) /\ (!r. P r = (rep(abs r) = r))) define_new_type_bijections = - : (string -> string -> string -> thm -> thm) prove_rep_fn_one_one = - : (thm -> thm) prove_rep_fn_onto = - : (thm -> thm) prove_abs_fn_onto = - : (thm -> thm) prove_abs_fn_one_one = - : (thm -> thm) Calling Lisp compiler File ml/abs-rep compiled () : void #echo 'set_search_path[``; `/build/hol88-NNpOMw/hol88-2.02.19940316/theories/`];;'\ 'load_theory `BASIC-HOL`;;'\ 'loadf `ml/hol-in-out`;;'\ 'loadf `ml/hol-rule`;;'\ 'loadf `ml/hol-drule`;;'\ 'loadf `ml/drul`;;'\ 'loadf `ml/tacticals`;;'\ 'loadf `ml/tacont`;;'\ 'loadf `ml/tactics`;;'\ 'loadf `ml/conv`;;'\ 'loadf `ml/hol-net`;;'\ 'loadf `ml/rewrite`;;'\ 'loadf `ml/resolve`;;'\ 'loadf `ml/hol-thyfn`;;'\ 'loadf `ml/goals`;;'\ 'loadf `ml/stack`;;'\ 'loadf `ml/abs-rep`;;'\ 'activate_binders `bool`;;'\ 'lisp `(setq %liszt "")`;;'\ 'lisp `(setq %version "2.02 (GCL)")`;;'\ 'lisp `(setq %system-name "BASIC-HOL")`;;'\ 'lisp `(setup)`;;' >foo1 echo 'lisp `(throw (quote eof) t)`;; #+native-reloc(progn (with-open-file (s "foo1") (let ((*standard-input* s)) (tml)))(ml-save "basic-hol")) #-native-reloc(let ((si::*collect-binary-modules* t)(si::*binary-modules* (with-open-file (s "bm.l") (read s)))) (with-open-file (s "foo1") (let ((*standard-input* s)) (tml)))(compiler::link (remove-duplicates si::*binary-modules* :test (function equal)) "basic-hol" "(progn (load \"debian/gcl_patch.l\")(load \"foo\")(with-open-file (s \"foo1\") (let ((*standard-input* s)) (tml)))(ml-save \"basic-hol\")(quit))" "" nil)(with-open-file (s "bm.l" :direction :output) (prin1 si::*binary-modules* s))(quit))`;;' | hol-lcf HOL-LCF version 2.02 (GCL) created 13/10/21 #GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ > HOL-LCF version 2.02 (GCL) created 13/10/21 #() : void Theory BASIC-HOL loaded () : void .....................................................................................................................................................() : void #.............() : void ...................................................................................() : void ..................................................() : void ...................................() : void .........................() : void ..........................................() : void ...................................................................................................() : void ..() : void ......................() : void .............() : void ............................() : void ........................() : void .................() : void .......() : void [`?!`; `!`; `?`; `@`] : string list () : void () : void () : void () : void #=======> basic-hol88 made cd /build/hol88-NNpOMw/hol88-2.02.19940316/theories; rm -f combin.th;\ /build/hol88-NNpOMw/hol88-2.02.19940316/basic-hol < /build/hol88-NNpOMw/hol88-2.02.19940316/theories/mk_combin.ml;\ cd /build/hol88-NNpOMw/hol88-2.02.19940316 BASIC-HOL version 2.02 (GCL) created 13/10/21 ##########################() : void #####o_DEF = |- !f g. f o g = (\x. f(g x)) ###K_DEF = |- K = (\x y. x) ######S_DEF = |- S = (\f g x. f x(g x)) ########I_DEF = |- I = S K K ###() : void #########o_THM = |- !f g x. (f o g)x = f(g x) ########o_ASSOC = |- !f g h. f o (g o h) = (f o g) o h ########K_THM = |- !x y. K x y = x ########S_THM = |- !f g x. S f g x = f x(g x) ########I_THM = |- !x. I x = x ##########I_o_ID = |- !f. (I o f = f) /\ (f o I = f) ##=======> theory combin built cd /build/hol88-NNpOMw/hol88-2.02.19940316/theories; rm -f num.th;\ /build/hol88-NNpOMw/hol88-2.02.19940316/basic-hol < /build/hol88-NNpOMw/hol88-2.02.19940316/theories/mk_num.ml;\ cd /build/hol88-NNpOMw/hol88-2.02.19940316 BASIC-HOL version 2.02 (GCL) created 13/10/21 ##############################() : void ##INFINITY_AX = |- ?f. ONE_ONE f /\ ~ONTO f ##ONE_ONE_DEF = |- !f. ONE_ONE f = (!x1 x2. (f x1 = f x2) ==> (x1 = x2)) #ONTO_DEF = |- !f. ONTO f = (!y. ?x. y = f x) ######SUC_REP_DEF = |- SUC_REP = (@f. ONE_ONE f /\ ~ONTO f) #####ZERO_REP_DEF = |- ZERO_REP = (@x. !y. ~(x = SUC_REP y)) ##########IS_NUM_REP = |- !m. IS_NUM_REP m = (!P. P ZERO_REP /\ (!n. P n ==> P(SUC_REP n)) ==> P m) ########EXISTS_NUM_REP = |- ?n. IS_NUM_REP n ####num_TY_DEF = |- ?rep. TYPE_DEFINITION IS_NUM_REP rep ##########num_ISO_DEF = |- (!a. ABS_num(REP_num a) = a) /\ (!r. IS_NUM_REP r = (REP_num(ABS_num r) = r)) #####R_11 = |- !a a'. (REP_num a = REP_num a') = (a = a') R_ONTO = |- !r. IS_NUM_REP r = (?a. r = REP_num a) A_11 = |- !r r'. IS_NUM_REP r ==> IS_NUM_REP r' ==> ((ABS_num r = ABS_num r') = (r = r')) A_ONTO = |- !a. ?r. (a = ABS_num r) /\ IS_NUM_REP r ###############() : void #() : void ###ZERO_DEF = |- 0 = ABS_num ZERO_REP ####SUC_DEF = |- !m. SUC m = ABS_num(SUC_REP(REP_num m)) ##() : void ######IS_NUM_REP_ZERO = |- IS_NUM_REP ZERO_REP #######IS_NUM_SUC_REP = |- !i. IS_NUM_REP i ==> IS_NUM_REP(SUC_REP i) #######IS_NUM_REP_SUC_REP = |- !n. IS_NUM_REP(SUC_REP(REP_num n)) ####thm1 = |- ONE_ONE SUC_REP /\ ~ONTO SUC_REP #thm2 = |- (!x1 x2. (SUC_REP x1 = SUC_REP x2) ==> (x1 = x2)) /\ ~(!y. ?x. y = SUC_REP x) ####SUC_REP_11 = |- !x1 x2. (SUC_REP x1 = SUC_REP x2) ==> (x1 = x2) ########NOT_SUC_ZERO = |- !x. ~(SUC_REP x = ZERO_REP) ################NOT_SUC = |- !n. ~(SUC n = 0) ##############INV_SUC = |- !m n. (SUC m = SUC n) ==> (m = n) ###########ind_lemma1 = |- !P. P ZERO_REP /\ (!i. P i ==> P(SUC_REP i)) ==> (!i. IS_NUM_REP i ==> P i) ####lemma = |- A ==> A /\ B = A ==> B ############ind_lemma2 = |- !P. P ZERO_REP /\ (!i. IS_NUM_REP i /\ P i ==> P(SUC_REP i)) ==> (!i. IS_NUM_REP i ==> P i) ##########lemma1 = |- (!i. IS_NUM_REP i ==> P(ABS_num i)) = (!n. P n) ###############INDUCTION = |- !P. P 0 /\ (!n. P n ==> P(SUC n)) ==> (!n. P n) ##=======> theory num built cd /build/hol88-NNpOMw/hol88-2.02.19940316/theories; rm -f prim_rec.th;\ /build/hol88-NNpOMw/hol88-2.02.19940316/basic-hol < /build/hol88-NNpOMw/hol88-2.02.19940316/theories/mk_prim_rec.ml;\ cd /build/hol88-NNpOMw/hol88-2.02.19940316 BASIC-HOL version 2.02 (GCL) created 13/10/21 #######################################################################() : void ##Theory num loaded () : void #####NOT_SUC = |- !n. ~(SUC n = 0) INV_SUC = |- !m n. (SUC m = SUC n) ==> (m = n) INDUCTION = |- !P. P 0 /\ (!n. P n ==> P(SUC n)) ==> (!n. P n) #####LESS = |- !m n. m < n = (?P. (!n'. P(SUC n') ==> P n') /\ P m /\ ~P n) ########### Section INDUCT_THEN begun BETAS = - : (term -> term -> conv) GTAC = - : (term -> tactic) TACF = - : (term -> term -> thm_tactic -> tactic) TACS = - : (term -> term -> thm_tactic -> tactic list) GOALS = - : (* -> ((* # term) -> (** # ***)) list -> term -> (** list # *** list)) GALPH = - : conv GALPHA = - : conv mapshape = - : (int list -> (* list -> **) list -> * list -> ** list) INDUCT_THEN = - : (thm -> thm_tactic -> tactic) - : (thm -> thm_tactic -> tactic) Section INDUCT_THEN ended INDUCT_THEN = - : (thm -> thm_tactic -> tactic) File /build/hol88-NNpOMw/hol88-2.02.19940316/ml/ind.ml loaded () : void ####INDUCT_TAC = - : tactic ########INV_SUC_EQ = |- !m n. (SUC m = SUC n) = (m = n) ######LESS_REFL = |- !n. ~n < n ##########SUC_LESS = |- !m n. (SUC m) < n ==> m < n #########NOT_LESS_0 = |- !n. ~n < 0 #########LESS_0_0 = |- 0 < (SUC 0) #####################LESS_MONO = |- !m n. m < n ==> (SUC m) < (SUC n) #########LESS_SUC_REFL = |- !n. n < (SUC n) ###########LESS_SUC = |- !m n. m < n ==> m < (SUC n) #################LESS_LEMMA1 = |- !m n. m < (SUC n) ==> (m = n) \/ m < n ########LESS_LEMMA2 = |- !m n. (m = n) \/ m < n ==> m < (SUC n) #######LESS_THM = |- !m n. m < (SUC n) = (m = n) \/ m < n #########LESS_SUC_IMP = |- !m n. m < (SUC n) ==> ~(m = n) ==> m < n #######LESS_0 = |- !n. 0 < (SUC n) ##########EQ_LESS = |- !n. (SUC m = n) ==> m < n #######SUC_ID = |- !n. ~(SUC n = n) ########NOT_LESS_EQ = |- !m n. (m = n) ==> ~m < n ###########LESS_NOT_EQ = |- !m n. m < n ==> ~(m = n) ################################################SIMP_REC_REL = |- !fun x f n. SIMP_REC_REL fun x f n = (fun 0 = x) /\ (!m. m < n ==> (fun(SUC m) = f(fun m))) ######SIMP_REC_FUN = |- !x f n. SIMP_REC_FUN x f n = (@fun. SIMP_REC_REL fun x f n) ######SIMP_REC = |- !x f n. SIMP_REC x f n = SIMP_REC_FUN x f(SUC n)n ######################SIMP_REC_FUN_LEMMA = |- (?fun. SIMP_REC_REL fun x f n) = (SIMP_REC_FUN x f n 0 = x) /\ (!m. m < n ==> (SIMP_REC_FUN x f n(SUC m) = f(SIMP_REC_FUN x f n m))) ##################################SIMP_REC_EXISTS = |- !x f n. ?fun. SIMP_REC_REL fun x f n #############SIMP_REC_FUN_THM = |- !x f n. (SIMP_REC_FUN x f n 0 = x) /\ (!m. m < n ==> (SIMP_REC_FUN x f n(SUC m) = f(SIMP_REC_FUN x f n m))) ###SIMP_REC_FUN_THM1 = |- !x f n. SIMP_REC_FUN x f n 0 = x ###SIMP_REC_FUN_THM2 = |- !n m. m < n ==> (SIMP_REC_FUN x f n(SUC m) = f(SIMP_REC_FUN x f n m)) ###################SIMP_REC_UNIQUE = |- !n m1 m2 x f. n < m1 ==> n < m2 ==> (SIMP_REC_FUN x f m1 n = SIMP_REC_FUN x f m2 n) #######LESS_SUC_SUC = |- !m. m < (SUC m) /\ m < (SUC(SUC m)) ###############SIMP_REC_THM = |- !x f. (SIMP_REC x f 0 = x) /\ (!m. SIMP_REC x f(SUC m) = f(SIMP_REC x f m)) ########################PRE_DEF = |- !m. PRE m = ((m = 0) => 0 | (@n. m = SUC n)) ########SELECT_LEMMA = |- (@n. m = n) = m #######PRE = |- (PRE 0 = 0) /\ (!m. PRE(SUC m) = m) ######PRIM_REC_FUN = |- !x f. PRIM_REC_FUN x f = SIMP_REC(\n. x)(\fun n. f(fun(PRE n))n) ###########PRIM_REC_EQN = |- !x f. (!n. PRIM_REC_FUN x f 0 n = x) /\ (!m n. PRIM_REC_FUN x f(SUC m)n = f(PRIM_REC_FUN x f m(PRE n))n) #####PRIM_REC = |- !x f m. PRIM_REC x f m = PRIM_REC_FUN x f m(PRE m) ###########PRIM_REC_THM = |- !x f. (PRIM_REC x f 0 = x) /\ (!m. PRIM_REC x f(SUC m) = f(PRIM_REC x f m)m) ####################num_Axiom = |- !e f. ?! fn. (fn 0 = e) /\ (!n. fn(SUC n) = f(fn n)n) ###() : void ##=======> theory prim_rec built cd /build/hol88-NNpOMw/hol88-2.02.19940316/theories; rm -f fun.th;\ /build/hol88-NNpOMw/hol88-2.02.19940316/basic-hol < /build/hol88-NNpOMw/hol88-2.02.19940316/theories/mk_fun.ml;\ cd /build/hol88-NNpOMw/hol88-2.02.19940316 BASIC-HOL version 2.02 (GCL) created 13/10/21 ###########################() : void ######ASSOC_DEF = |- !f. ASSOC f = (!x y z. f x(f y z) = f(f x y)z) ###COMM_DEF = |- !f. COMM f = (!x y. f x y = f y x) ####FCOMM_DEF = |- !f g. FCOMM f g = (!x y z. g x(f y z) = f(g x y)z) ###RIGHT_ID_DEF = |- !f e. RIGHT_ID f e = (!x. f x e = x) ###LEFT_ID_DEF = |- !f e. LEFT_ID f e = (!x. f e x = x) ###MONOID_DEF = |- !f e. MONOID f e = ASSOC f /\ RIGHT_ID f e /\ LEFT_ID f e ###() : void #######ASSOC_CONJ = |- ASSOC $/\ ####ASSOC_DISJ = |- ASSOC $\/ ####FCOMM_ASSOC = |- !f. FCOMM f f = ASSOC f #####################MONOID_CONJ_T = |- MONOID $/\ T ####MONOID_DISJ_F = |- MONOID $\/ F ##=======> theory fun built cd /build/hol88-NNpOMw/hol88-2.02.19940316/theories; rm -f arithmetic.th;\ /build/hol88-NNpOMw/hol88-2.02.19940316/basic-hol < /build/hol88-NNpOMw/hol88-2.02.19940316/theories/mk_arith.ml;\ /build/hol88-NNpOMw/hol88-2.02.19940316/basic-hol < /build/hol88-NNpOMw/hol88-2.02.19940316/theories/mk_arith_thms.ml;\ cd /build/hol88-NNpOMw/hol88-2.02.19940316 BASIC-HOL version 2.02 (GCL) created 13/10/21 #############################() : void ##Theory prim_rec loaded Theory fun loaded [(); ()] : void list ########### Section prove_rec_fn_exists begun derive_existence_thm = - : (thm -> conv) mk_fn = - : ((term # term # term list # term # goal) -> (term # term list # thm)) instantiate_existence_thm = - : (thm -> conv) closeup = - : (term -> term) prove_rec_fn_exists = - : (thm -> conv) - : (thm -> conv) Section prove_rec_fn_exists ended prove_rec_fn_exists = - : (thm -> conv) new_recursive_definition = - : (bool -> thm -> string -> conv) File /build/hol88-NNpOMw/hol88-2.02.19940316/ml/prim_rec.ml loaded () : void ###num_Axiom = |- !e f. ?! fn. (fn 0 = e) /\ (!n. fn(SUC n) = f(fn n)n) ####ADD = |- (!n. 0 + n = n) /\ (!m n. (SUC m) + n = SUC(m + n)) ####SUB = |- (!m. 0 - m = 0) /\ (!m n. (SUC m) - n = (m < n => 0 | SUC(m - n))) ####MULT = |- (!n. 0 * n = 0) /\ (!m n. (SUC m) * n = (m * n) + n) ####EXP = |- (!m. m EXP 0 = 1) /\ (!m n. m EXP (SUC n) = m * (m EXP n)) ########GREATER = |- !m n. m > n = n < m ###LESS_OR_EQ = |- !m n. m <= n = m < n \/ (m = n) ###GREATER_OR_EQ = |- !m n. m >= n = m > n \/ (m = n) ########FACT = |- (FACT 0 = 1) /\ (!n. FACT(SUC n) = (SUC n) * (FACT n)) ####EVEN = |- (EVEN 0 = T) /\ (!n. EVEN(SUC n) = ~EVEN n) ####ODD = |- (ODD 0 = F) /\ (!n. ODD(SUC n) = ~ODD n) #################() : void ## BASIC-HOL version 2.02 (GCL) created 13/10/21 ###########################Theory arithmetic loaded () : void ##########ADD = |- (!n. 0 + n = n) /\ (!m n. (SUC m) + n = SUC(m + n)) SUB = |- (!m. 0 - m = 0) /\ (!m n. (SUC m) - n = (m < n => 0 | SUC(m - n))) MULT = |- (!n. 0 * n = 0) /\ (!m n. (SUC m) * n = (m * n) + n) EXP = |- (!m. m EXP 0 = 1) /\ (!m n. m EXP (SUC n) = m * (m EXP n)) FACT = |- (FACT 0 = 1) /\ (!n. FACT(SUC n) = (SUC n) * (FACT n)) EVEN = |- (EVEN 0 = T) /\ (!n. EVEN(SUC n) = ~EVEN n) ODD = |- (ODD 0 = F) /\ (!n. ODD(SUC n) = ~ODD n) ####GREATER = |- !m n. m > n = n < m LESS_OR_EQ = |- !m n. m <= n = m < n \/ (m = n) GREATER_OR_EQ = |- !m n. m >= n = m > n \/ (m = n) ##################INV_SUC_EQ = |- !m n. (SUC m = SUC n) = (m = n) LESS_REFL = |- !n. ~n < n SUC_LESS = |- !m n. (SUC m) < n ==> m < n NOT_LESS_0 = |- !n. ~n < 0 LESS_MONO = |- !m n. m < n ==> (SUC m) < (SUC n) LESS_SUC_REFL = |- !n. n < (SUC n) LESS_SUC = |- !m n. m < n ==> m < (SUC n) LESS_THM = |- !m n. m < (SUC n) = (m = n) \/ m < n LESS_SUC_IMP = |- !m n. m < (SUC n) ==> ~(m = n) ==> m < n LESS_0 = |- !n. 0 < (SUC n) EQ_LESS = |- !n. (SUC m = n) ==> m < n SUC_ID = |- !n. ~(SUC n = n) NOT_LESS_EQ = |- !m n. (m = n) ==> ~m < n LESS_NOT_EQ = |- !m n. m < n ==> ~(m = n) LESS_SUC_SUC = |- !m. m < (SUC m) /\ m < (SUC(SUC m)) PRE = |- (PRE 0 = 0) /\ (!m. PRE(SUC m) = m) #####NOT_SUC = |- !n. ~(SUC n = 0) INV_SUC = |- !m n. (SUC m = SUC n) ==> (m = n) INDUCTION = |- !P. P 0 /\ (!n. P n ==> P(SUC n)) ==> (!n. P n) ######ASSOC_DEF = |- !f. ASSOC f = (!x y z. f x(f y z) = f(f x y)z) RIGHT_ID_DEF = |- !f e. RIGHT_ID f e = (!x. f x e = x) LEFT_ID_DEF = |- !f e. LEFT_ID f e = (!x. f e x = x) MONOID_DEF = |- !f e. MONOID f e = ASSOC f /\ RIGHT_ID f e /\ LEFT_ID f e ##### num_CONV = - : conv File /build/hol88-NNpOMw/hol88-2.02.19940316/ml/numconv.ml loaded () : void ########### Section INDUCT_THEN begun BETAS = - : (term -> term -> conv) GTAC = - : (term -> tactic) TACF = - : (term -> term -> thm_tactic -> tactic) TACS = - : (term -> term -> thm_tactic -> tactic list) GOALS = - : (* -> ((* # term) -> (** # ***)) list -> term -> (** list # *** list)) GALPH = - : conv GALPHA = - : conv mapshape = - : (int list -> (* list -> **) list -> * list -> ** list) INDUCT_THEN = - : (thm -> thm_tactic -> tactic) - : (thm -> thm_tactic -> tactic) Section INDUCT_THEN ended INDUCT_THEN = - : (thm -> thm_tactic -> tactic) File /build/hol88-NNpOMw/hol88-2.02.19940316/ml/ind.ml loaded () : void #####INDUCT_TAC = - : tactic ###########SUC_NOT = |- !n. ~(0 = SUC n) ########ADD_0 = |- !m. m + 0 = m ########ADD_SUC = |- !m n. SUC(m + n) = m + (SUC n) #########ADD_CLAUSES = |- (0 + m = m) /\ (m + 0 = m) /\ ((SUC m) + n = SUC(m + n)) /\ (m + (SUC n) = SUC(m + n)) ########ADD_SYM = |- !m n. m + n = n + m #########num_CASES = |- !m. (m = 0) \/ (?n. m = SUC n) ###########LESS_MONO_REV = |- !m n. (SUC m) < (SUC n) ==> m < n #########LESS_MONO_EQ = |- !m n. (SUC m) < (SUC n) = m < n ########SUC_SUB1 = |- !m. (SUC m) - 1 = m ########PRE_SUB1 = |- !m. PRE m = m - 1 ###############LESS_ADD = |- !m n. n < m ==> (?p. p + n = m) #######SUB_0 = |- !m. (0 - m = 0) /\ (m - 0 = m) ###############LESS_TRANS = |- !m n p. m < n /\ n < p ==> m < p #######ADD1 = |- !m. SUC m = m + 1 ###########LESS_ANTISYM = |- !m n. ~(m < n /\ n < m) ###########LESS_LESS_SUC = |- !m n. ~(m < n /\ n < (SUC m)) ##########FUN_EQ_LEMMA = |- !f x1 x2. f x1 /\ ~f x2 ==> ~(x1 = x2) ############LESS_OR = |- !m n. m < n ==> (SUC m) <= n ###########OR_LESS = |- !m n. (SUC m) <= n ==> m < n #######LESS_EQ = |- !m n. m < n = (SUC m) <= n ###########LESS_SUC_EQ_COR = |- !m n. m < n /\ ~(SUC m = n) ==> (SUC m) < n ###############LESS_NOT_SUC = |- !m n. m < n /\ ~(n = SUC m) ==> (SUC m) < n #######LESS_0_CASES = |- !m. (0 = m) \/ 0 < m #####################LESS_CASES_IMP = |- !m n. ~m < n /\ ~(m = n) ==> n < m ###########LESS_CASES = |- !m n. m < n \/ n <= m #########ADD_INV_0 = |- !m n. (m + n = m) ==> (n = 0) ###############LESS_EQ_ADD = |- !m n. m <= (m + n) #######LESS_EQ_SUC_REFL = |- !m. m <= (SUC m) #############LESS_ADD_NONZERO = |- !m n. ~(n = 0) ==> m < (m + n) ############LESS_EQ_ANTISYM = |- !m n. ~(m < n /\ n <= m) #############NOT_LESS = |- !m n. ~m < n = n <= m ######################SUB_EQ_0 = |- !m n. (m - n = 0) = m <= n #######ADD_ASSOC = |- !m n p. m + (n + p) = (m + n) + p #######MULT_0 = |- !m. m * 0 = 0 #######MULT_SUC = |- !m n. m * (SUC n) = m + (m * n) #######MULT_LEFT_1 = |- !m. 1 * m = m ########MULT_RIGHT_1 = |- !m. m * 1 = m ###########MULT_CLAUSES = |- !m n. (0 * m = 0) /\ (m * 0 = 0) /\ (1 * m = m) /\ (m * 1 = m) /\ ((SUC m) * n = (m * n) + n) /\ (m * (SUC n) = m + (m * n)) ########MULT_SYM = |- !m n. m * n = n * m ############RIGHT_ADD_DISTRIB = |- !m n p. (m + n) * p = (m * p) + (n * p) ###############LEFT_ADD_DISTRIB = |- !m n p. p * (m + n) = (p * m) + (p * n) #######MULT_ASSOC = |- !m n p. m * (n * p) = (m * n) * p ###############SUB_ADD = |- !m n. n <= m ==> ((m - n) + n = m) #############PRE_SUB = |- !m n. PRE(m - n) = (PRE m) - n ########ADD_EQ_0 = |- !m n. (m + n = 0) = (m = 0) /\ (n = 0) ##########ADD_INV_0_EQ = |- !m n. (m + n = m) = (n = 0) ########PRE_SUC_EQ = |- !m n. 0 < n ==> ((m = PRE n) = (SUC m = n)) ########INV_PRE_EQ = |- !m n. 0 < m /\ 0 < n ==> ((PRE m = PRE n) = (m = n)) ##########LESS_SUC_NOT = |- !m n. m < n ==> ~n < (SUC m) ##################TOTALLY_AD_HOC_LEMMA = |- !m n. (m + (SUC n) = n) = (SUC m = 0) #######################ADD_EQ_SUB = |- !m n p. n <= p ==> ((m + n = p) = (m = p - n)) ###########LESS_MONO_ADD = |- !m n p. m < n ==> (m + p) < (n + p) #########LESS_MONO_ADD_INV = |- !m n p. (m + p) < (n + p) ==> m < n ########LESS_MONO_ADD_EQ = |- !m n p. (m + p) < (n + p) = m < n #########EQ_MONO_ADD_EQ = |- !m n p. (m + p = n + p) = (m = n) #########LESS_EQ_MONO_ADD_EQ = |- !m n p. (m + p) <= (n + p) = m <= n ###########LESS_EQ_TRANS = |- !m n p. m <= n /\ n <= p ==> m <= p #############LESS_EQ_LESS_EQ_MONO = |- !m n p q. m <= p /\ n <= q ==> (m + n) <= (p + q) #######LESS_EQ_REFL = |- !m. m <= m #######LESS_IMP_LESS_OR_EQ = |- !m n. m < n ==> m <= n ##############LESS_MONO_MULT = |- !m n p. m <= n ==> (m * p) <= (n * p) ##################RIGHT_SUB_DISTRIB = |- !m n p. (m - n) * p = (m * p) - (n * p) ###########LEFT_SUB_DISTRIB = |- !m n p. p * (m - n) = (p * m) - (p * n) ################LESS_ADD_1 = |- !m n. n < m ==> (?p. m = n + (p + 1)) #############EXP_ADD = |- !p q n. n EXP (p + q) = (n EXP p) * (n EXP q) ##########NOT_ODD_EQ_EVEN = |- !n m. ~(SUC(n + n) = m + m) #######################MULT_SUC_EQ = |- !p m n. (n * (SUC p) = m * (SUC p)) = (n = m) ########MULT_EXP_MONO = |- !p q n m. (n * ((SUC q) EXP p) = m * ((SUC q) EXP p)) = (n = m) #########LESS_EQUAL_ANTISYM = |- !n m. n <= m /\ m <= n ==> (n = m) #########LESS_ADD_SUC = |- !m n. m < (m + (SUC n)) #########ZERO_LESS_EQ = |- !n. 0 <= n ######LESS_EQ_MONO = |- !n m. (SUC n) <= (SUC m) = n <= m #############LESS_OR_EQ_ADD = |- !n m. n < m \/ (?p. n = p + m) ############################lemma = |- ~(?n. P n /\ (!m. m < n ==> ~P m)) ==> (!n m. m < n ==> ~P m) ###############WOP = |- !P. (?n. P n) ==> (?n. P n /\ (!m. m < n ==> ~P m)) ###################exists_lemma = |- ?r q. k = (q * n) + r #############smallest_lemma = |- ?n'. (?q. k = (q * n) + n') /\ (!m. m < n' ==> (!q. ~(k = (q * n) + m))) ###########leq_add_lemma = |- !m n. n <= m ==> (?p. m = n + p) #####k_expr_lemma = |- (k = (q * n) + (n + p)) ==> (k = ((q + 1) * n) + p) ########less_add = . |- p < (n + p) #############DA = |- !k n. 0 < n ==> (?r q. (k = (q * n) + r) /\ r < n) #########Theory arithmetic loaded () : void #############MOD_exists = |- ?MOD. !n. 0 < n ==> (!k. ?q. (k = (q * n) + (MOD k n)) /\ (MOD k n) < n) ################MOD_DIV_exist = |- ?MOD DIV. !n. 0 < n ==> (!k. (k = ((DIV k n) * n) + (MOD k n)) /\ (MOD k n) < n) ####DIVISION = |- !n. 0 < n ==> (!k. (k = ((k DIV n) * n) + (k MOD n)) /\ (k MOD n) < n) ##() : void #############MOD_ONE = |- !k. k MOD (SUC 0) = 0 ################DIV_LESS_EQ = |- !n. 0 < n ==> (!k. (k DIV n) <= k) ###########################################################DIV_UNIQUE = |- !n k q. (?r. (k = (q * n) + r) /\ r < n) ==> (k DIV n = q) #########lemma = |- !n k q r. (k = (q * n) + r) /\ r < n ==> (k DIV n = q) #################MOD_UNIQUE = |- !n k r. (?q. (k = (q * n) + r) /\ r < n) ==> (k MOD n = r) ###############DIV_MULT = |- !n r. r < n ==> (!q. ((q * n) + r) DIV n = q) #########LESS_MOD = |- !n k. k < n ==> (k MOD n = k) ###########MOD_EQ_0 = |- !n. 0 < n ==> (!k. (k * n) MOD n = 0) ########ZERO_MOD = |- !n. 0 < n ==> (0 MOD n = 0) #########ZERO_DIV = |- !n. 0 < n ==> (0 DIV n = 0) #########MOD_MULT = |- !n r. r < n ==> (!q. ((q * n) + r) MOD n = r) ############MOD_TIMES = |- !n. 0 < n ==> (!q r. ((q * n) + r) MOD n = r MOD n) #############MOD_PLUS = |- !n. 0 < n ==> (!j k. ((j MOD n) + (k MOD n)) MOD n = (j + k) MOD n) ########MOD_MOD = |- !n. 0 < n ==> (!k. (k MOD n) MOD n = k MOD n) ###########SUB_MONO_EQ = |- !n m. (SUC n) - (SUC m) = n - m ##########SUB_PLUS = |- !a b c. a - (b + c) = (a - b) - c ######################INV_PRE_LESS = |- !m. 0 < m ==> (!n. (PRE m) < (PRE n) = m < n) ##########INV_PRE_LESS_EQ = |- !n. 0 < n ==> (!m. (PRE m) <= (PRE n) = m <= n) ########SUB_LESS_EQ = |- !n m. (n - m) <= n ##############SUB_EQ_EQ_0 = |- !m n. (m - n = m) = (m = 0) \/ (n = 0) ###########SUB_LESS_0 = |- !n m. m < n = 0 < (n - m) #########SUB_LESS_OR = |- !m n. n < m ==> n <= (m - 1) ################LESS_SUB_ADD_LESS = |- !n m i. i < (n - m) ==> (i + m) < n ########TIMES2 = |- !n. 2 * n = n + n #####################LESS_MULT_MONO = |- !m i n. ((SUC n) * m) < ((SUC n) * i) = m < i #######################MULT_MONO_EQ = |- !m i n. ((SUC n) * m = (SUC n) * i) = (m = i) ###########ADD_SUB = |- !a c. (a + c) - c = a ###############LESS_EQ_ADD_SUB = |- !c b. c <= b ==> (!a. (a + b) - c = a + (b - c)) ########SUB_EQUAL_0 = |- !c. c - c = 0 ##################LESS_EQ_SUB_LESS = |- !a b. b <= a ==> (!c. (a - b) < c = a < (b + c)) ######NOT_SUC_LESS_EQ = |- !n m. ~(SUC n) <= m = m <= n ###############SUB_SUB = |- !b c. c <= b ==> (!a. a - (b - c) = (a + c) - b) ###########LESS_IMP_LESS_ADD = |- !n m. n < m ==> (!p. n < (m + p)) ########LESS_EQ_IMP_LESS_SUC = |- !n m. n <= m ==> n < (SUC m) ###############SUB_LESS_EQ_ADD = |- !m p. m <= p ==> (!n. (p - m) <= n = p <= (m + n)) #############################SUB_CANCEL = |- !p n m. n <= p /\ m <= p ==> ((p - n = p - m) = (n = m)) ##########################CANCEL_SUB = |- !p n m. p <= n /\ p <= m ==> ((n - p = m - p) = (n = m)) ###########NOT_EXP_0 = |- !m n. ~((SUC n) EXP m = 0) ##########ZERO_LESS_EXP = |- !m n. 0 < ((SUC n) EXP m) ##########ODD_OR_EVEN = |- !n. ?m. (n = (SUC(SUC 0)) * m) \/ (n = ((SUC(SUC 0)) * m) + 1) ##########LESS_EXP_SUC_MONO = |- !n m. ((SUC(SUC m)) EXP n) < ((SUC(SUC m)) EXP (SUC n)) #########LESS_LESS_CASES = |- !m n. (m = n) \/ m < n \/ n < m #####GREATER_EQ = |- !n m. n >= m = m <= n ######LESS_EQ_CASES = |- !m n. m <= n \/ n <= m #######LESS_EQUAL_ADD = |- !m n. m <= n ==> (?p. n = m + p) ######LESS_EQ_EXISTS = |- !m n. m <= n = (?p. n = m + p) ####NOT_LESS_EQUAL = |- !m n. ~m <= n = n < m #######LESS_EQ_0 = |- !n. n <= 0 = (n = 0) ######MULT_EQ_0 = |- !m n. (m * n = 0) = (m = 0) \/ (n = 0) #####LESS_MULT2 = |- !m n. 0 < m /\ 0 < n ==> 0 < (m * n) #####LESS_EQ_LESS_TRANS = |- !m n p. m <= n /\ n < p ==> m < p #####LESS_LESS_EQ_TRANS = |- !m n p. m < n /\ n <= p ==> m < p #########FACT_LESS = |- !n. 0 < (FACT n) ########EVEN_ODD = |- !n. EVEN n = ~ODD n ####ODD_EVEN = |- !n. ODD n = ~EVEN n ####EVEN_OR_ODD = |- !n. EVEN n \/ ODD n ####EVEN_AND_ODD = |- !n. ~(EVEN n /\ ODD n) #####EVEN_ADD = |- !m n. EVEN(m + n) = (EVEN m = EVEN n) #####EVEN_MULT = |- !m n. EVEN(m * n) = EVEN m \/ EVEN n #####ODD_ADD = |- !m n. ODD(m + n) = ~(ODD m = ODD n) ####ODD_MULT = |- !m n. ODD(m * n) = ODD m /\ ODD n #####EVEN_DOUBLE = |- !n. EVEN(2 * n) ####ODD_DOUBLE = |- !n. ODD(SUC(2 * n)) ###########EVEN_ODD_EXISTS = |- !n. (EVEN n ==> (?m. n = 2 * m)) /\ (ODD n ==> (?m. n = SUC(2 * m))) ######EVEN_EXISTS = |- !n. EVEN n = (?m. n = 2 * m) ######ODD_EXISTS = |- !n. ODD n = (?m. n = SUC(2 * m)) ############EQ_LESS_EQ = |- !m n. (m = n) = m <= n /\ n <= m #######ADD_MONO_LESS_EQ = |- !m n p. (m + n) <= (m + p) = n <= p ######NOT_SUC_LESS_EQ_0 = |- !n. ~(SUC n) <= 0 ###########NOT_LEQ = |- !m n. ~m <= n = (SUC n) <= m #######NOT_NUM_EQ = |- !m n. ~(m = n) = (SUC m) <= n \/ (SUC n) <= m ######NOT_GREATER = |- !m n. ~m > n = m <= n ######NOT_GREATER_EQ = |- !m n. ~m >= n = (SUC m) <= n ########SUC_ONE_ADD = |- !n. SUC n = 1 + n ########SUC_ADD_SYM = |- !m n. SUC(m + n) = (SUC n) + m ########NOT_SUC_ADD_LESS_EQ = |- !m n. ~(SUC(m + n)) <= m #########################MULT_LESS_EQ_SUC = |- !m n p. m <= n = ((SUC p) * m) <= ((SUC p) * n) ################SUB_LEFT_ADD = |- !m n p. m + (n - p) = (n <= p => m | (m + n) - p) ################SUB_RIGHT_ADD = |- !m n p. (m - n) + p = (m <= n => p | (m + p) - n) ##############SUB_LEFT_SUB = |- !m n p. m - (n - p) = (n <= p => m | (m + p) - n) #########SUB_RIGHT_SUB = |- !m n p. (m - n) - p = m - (n + p) ###########SUB_LEFT_SUC = |- !m n. SUC(m - n) = (m <= n => SUC 0 | (SUC m) - n) ##########################SUB_LEFT_LESS_EQ = |- !m n p. m <= (n - p) = (m + p) <= n \/ m <= 0 #################SUB_RIGHT_LESS_EQ = |- !m n p. (m - n) <= p = m <= (n + p) #########SUB_LEFT_LESS = |- !m n p. m < (n - p) = (m + p) < n #################SUB_RIGHT_LESS = |- !m n p. (m - n) < p = m < (n + p) /\ 0 < p ############SUB_LEFT_GREATER_EQ = |- !m n p. m >= (n - p) = (m + p) >= n ############SUB_RIGHT_GREATER_EQ = |- !m n p. (m - n) >= p = m >= (n + p) \/ 0 >= p #########SUB_LEFT_GREATER = |- !m n p. m > (n - p) = (m + p) > n /\ m > 0 #########SUB_RIGHT_GREATER = |- !m n p. (m - n) > p = m > (n + p) #############SUB_LEFT_EQ = |- !m n p. (m = n - p) = (m + p = n) \/ m <= 0 /\ n <= p ##############SUB_RIGHT_EQ = |- !m n p. (m - n = p) = (m = n + p) \/ m <= n /\ p <= 0 #######ASSOC_ADD = |- ASSOC $+ ####RIGHT_ID_ADD_0 = |- RIGHT_ID $+ 0 ####LEFT_ID_ADD_0 = |- LEFT_ID $+ 0 #####MONOID_ADD_0 = |- MONOID $+ 0 ####ASSOC_MULT = |- ASSOC $* ####RIGHT_ID_MULT_1 = |- RIGHT_ID $* 1 ####LEFT_ID_MULT_1 = |- LEFT_ID $* 1 ####MONOID_MULT_1 = |- MONOID $* 1 ##=======> theory arithmetic built cd /build/hol88-NNpOMw/hol88-2.02.19940316/theories; rm -f list.th;\ /build/hol88-NNpOMw/hol88-2.02.19940316/basic-hol < /build/hol88-NNpOMw/hol88-2.02.19940316/theories/mk_list.ml;\ /build/hol88-NNpOMw/hol88-2.02.19940316/basic-hol < /build/hol88-NNpOMw/hol88-2.02.19940316/theories/mk_list_defs.ml;\ /build/hol88-NNpOMw/hol88-2.02.19940316/basic-hol < /build/hol88-NNpOMw/hol88-2.02.19940316/theories/mk_list_thms.ml;\ cd /build/hol88-NNpOMw/hol88-2.02.19940316 BASIC-HOL version 2.02 (GCL) created 13/10/21 ##################################() : void ###Theory arithmetic loaded () : void ###NOT_LESS_0 = |- !n. ~n < 0 #PRIM_REC_THM = |- !x f. (PRIM_REC x f 0 = x) /\ (!m. PRIM_REC x f(SUC m) = f(PRIM_REC x f m)m) #PRE = |- (PRE 0 = 0) /\ (!m. PRE(SUC m) = m) #LESS_0 = |- !n. 0 < (SUC n) ###NOT_SUC = |- !n. ~(SUC n = 0) #INDUCTION = |- !P. P 0 /\ (!n. P n ==> P(SUC n)) ==> (!n. P n) ###ADD_CLAUSES = |- (0 + m = m) /\ (m + 0 = m) /\ ((SUC m) + n = SUC(m + n)) /\ (m + (SUC n) = SUC(m + n)) #LESS_ADD_1 = |- !m n. n < m ==> (?p. m = n + (p + 1)) #LESS_EQ = |- !m n. m < n = (SUC m) <= n #NOT_LESS = |- !m n. ~m < n = n <= m #LESS_EQ_ADD = |- !m n. m <= (m + n) #num_CASES = |- !m. (m = 0) \/ (?n. m = SUC n) #LESS_MONO_EQ = |- !m n. (SUC m) < (SUC n) = m < n ########### Section INDUCT_THEN begun BETAS = - : (term -> term -> conv) GTAC = - : (term -> tactic) TACF = - : (term -> term -> thm_tactic -> tactic) TACS = - : (term -> term -> thm_tactic -> tactic list) GOALS = - : (* -> ((* # term) -> (** # ***)) list -> term -> (** list # *** list)) GALPH = - : conv GALPHA = - : conv mapshape = - : (int list -> (* list -> **) list -> * list -> ** list) INDUCT_THEN = - : (thm -> thm_tactic -> tactic) - : (thm -> thm_tactic -> tactic) Section INDUCT_THEN ended INDUCT_THEN = - : (thm -> thm_tactic -> tactic) File /build/hol88-NNpOMw/hol88-2.02.19940316/ml/ind.ml loaded () : void #####INDUCT_TAC = - : tactic #### num_CONV = - : conv File /build/hol88-NNpOMw/hol88-2.02.19940316/ml/numconv.ml loaded () : void ######IS_list_REP = |- !r. IS_list_REP r = (?f n. r = (\m. (m < n => f m | (@x. T))),n) ########EXISTS_list_REP = |- ?p. IS_list_REP p #####list_TY_DEF = |- ?rep. TYPE_DEFINITION IS_list_REP rep ##########list_ISO_DEF = |- (!a. ABS_list(REP_list a) = a) /\ (!r. IS_list_REP r = (REP_list(ABS_list r) = r)) #####R_ONTO = |- !r. IS_list_REP r = (?a. r = REP_list a) A_11 = |- !r r'. IS_list_REP r ==> IS_list_REP r' ==> ((ABS_list r = ABS_list r') = (r = r')) A_R = |- !a. ABS_list(REP_list a) = a R_A = |- !r. IS_list_REP r = (REP_list(ABS_list r) = r) ########NIL_DEF = |- [] = ABS_list((\n. @e. T),0) #######CONS_DEF = |- !h t. CONS h t = ABS_list ((\m. ((m = 0) => h | FST(REP_list t)(PRE m))),SUC(SND(REP_list t))) ##() : void #######################lemma1 = |- !x f. ?fn. (!g. fn(g,0) = x) /\ (!g n. fn(g,n + 1) = f(fn((\i. g(i + 1)),n))(g 0)(ABS_list((\i. g(i + 1)),n))) ######NIL_lemma = |- REP_list[] = (\n. @x. T),0 ######REP_lemma = |- IS_list_REP(REP_list l) ########################CONS_lemma = |- REP_list(CONS h t) = (\m. ((m = 0) => h | FST(REP_list t)(PRE m))),SUC(SND(REP_list t)) #############exists_lemma = |- !x f. ?fn. (fn[] = x) /\ (!h t. fn(CONS h t) = f(fn t)h t) ####A_11_lemma = |- (IS_list_REP r' /\ IS_list_REP r) /\ (r = r') ==> (ABS_list r = ABS_list r') #########R_A_lemma = |- REP_list(ABS_list((\m. (m < n => f(SUC m) | (@x. T))),n)) = (\m. (m < n => f(SUC m) | (@x. T))),n #####################cons_lemma = |- ABS_list((\m. (m < (SUC n) => f m | (@x. T))),SUC n) = CONS(f 0)(ABS_list((\m. (m < n => f(SUC m) | (@x. T))),n)) ###########################list_Axiom = |- !x f. ?! fn. (fn[] = x) /\ (!h t. fn(CONS h t) = f(fn t)h t) ## BASIC-HOL version 2.02 (GCL) created 13/10/21 #################################Theory list loaded () : void #Theory combin loaded () : void #####list_Axiom = |- !x f. ?! fn. (fn[] = x) /\ (!h t. fn(CONS h t) = f(fn t)h t) ##num_Axiom = |- !e f. ?! fn. (fn 0 = e) /\ (!n. fn(SUC n) = f(fn n)n) #PRE = |- (PRE 0 = 0) /\ (!m. PRE(SUC m) = m) ##UNCURRY_DEF = |- !f x y. UNCURRY f(x,y) = f x y #o_DEF = |- !f g. f o g = (\x. f(g x)) ################################# Section INDUCT_THEN begun BETAS = - : (term -> term -> conv) GTAC = - : (term -> tactic) TACF = - : (term -> term -> thm_tactic -> tactic) TACS = - : (term -> term -> thm_tactic -> tactic list) GOALS = - : (* -> ((* # term) -> (** # ***)) list -> term -> (** list # *** list)) GALPH = - : conv GALPHA = - : conv mapshape = - : (int list -> (* list -> **) list -> * list -> ** list) INDUCT_THEN = - : (thm -> thm_tactic -> tactic) - : (thm -> thm_tactic -> tactic) Section INDUCT_THEN ended INDUCT_THEN = - : (thm -> thm_tactic -> tactic) File /build/hol88-NNpOMw/hol88-2.02.19940316/ml/ind.ml loaded () : void #####INDUCT_TAC = - : tactic ########## Section prove_rec_fn_exists begun derive_existence_thm = - : (thm -> conv) mk_fn = - : ((term # term # term list # term # goal) -> (term # term list # thm)) instantiate_existence_thm = - : (thm -> conv) closeup = - : (term -> term) prove_rec_fn_exists = - : (thm -> conv) - : (thm -> conv) Section prove_rec_fn_exists ended prove_rec_fn_exists = - : (thm -> conv) new_recursive_definition = - : (bool -> thm -> string -> conv) File /build/hol88-NNpOMw/hol88-2.02.19940316/ml/prim_rec.ml loaded () : void ###### () : void Section prove_induction_thm begun UNIQUENESS = - : (thm -> thm) DEPTH_FORALL_CONV = - : (conv -> conv) CONJS_CONV = - : (conv -> conv) CONJS_SIMP = - : (conv -> conv) T_AND_CONV = - : conv GENL_T = - : (term list -> thm) SIMP_CONV = - : conv HYP_SIMP = - : conv ANTE_ALL_CONV = - : conv CONCL_SIMP = - : conv prove_induction_thm = - : (thm -> thm) - : (thm -> thm) Section prove_induction_thm ended prove_induction_thm = - : (thm -> thm) Section prove_cases_thm begun NOT_ALL_THENC = - : (conv -> conv) BASE_CONV = - : conv STEP_CONV = - : conv NOT_IN_CONV = - : conv STEP_SIMP = - : conv DISJS_CHAIN = - : (conv -> thm -> thm) prove_cases_thm = - : (thm -> thm) - : (thm -> thm) Section prove_cases_thm ended prove_cases_thm = - : (thm -> thm) Section prove_constructors_one_one begun PAIR_EQ_CONV = - : conv list_variant = - : (term list -> term list -> term list) prove_const_one_one = - : (thm -> conv) prove_constructors_one_one = - : (thm -> thm) - : (thm -> thm) Section prove_constructors_one_one ended prove_constructors_one_one = - : (thm -> thm) prove_constructors_distinct = - : (thm -> thm) File /build/hol88-NNpOMw/hol88-2.02.19940316/ml/tyfns.ml loaded () : void ####LIST_INDUCT_TAC = - : tactic ## num_CONV = - : conv File /build/hol88-NNpOMw/hol88-2.02.19940316/ml/numconv.ml loaded () : void ########NULL_DEF = |- (NULL[] = T) /\ (!h t. NULL(CONS h t) = F) ####HD = |- !h t. HD(CONS h t) = h ####TL = |- !h t. TL(CONS h t) = t ###new_list_rec_definition = - : ((string # term) -> thm) ########SNOC = |- (!x. SNOC x[] = [x]) /\ (!x x' l. SNOC x(CONS x' l) = CONS x'(SNOC x l)) ##########FOLDR = |- (!f e. FOLDR f e[] = e) /\ (!f e x l. FOLDR f e(CONS x l) = f x(FOLDR f e l)) ####FOLDL = |- (!f e. FOLDL f e[] = e) /\ (!f e x l. FOLDL f e(CONS x l) = FOLDL f(f e x)l) ###########FILTER = |- (!P. FILTER P[] = []) /\ (!P x l. FILTER P(CONS x l) = (P x => CONS x(FILTER P l) | FILTER P l)) ############SCANL = |- (!f e. SCANL f e[] = [e]) /\ (!f e x l. SCANL f e(CONS x l) = CONS e(SCANL f(f e x)l)) #####SCANR = |- (!f e. SCANR f e[] = [e]) /\ (!f e x l. SCANR f e(CONS x l) = CONS(f x(HD(SCANR f e l)))(SCANR f e l)) ############REVERSE = |- (REVERSE[] = []) /\ (!x l. REVERSE(CONS x l) = SNOC x(REVERSE l)) ###########APPEND = |- (!l. APPEND[]l = l) /\ (!l1 l2 h. APPEND(CONS h l1)l2 = CONS h(APPEND l1 l2)) ###########FLAT = |- (FLAT[] = []) /\ (!h t. FLAT(CONS h t) = APPEND h(FLAT t)) ##########LENGTH = |- (LENGTH[] = 0) /\ (!h t. LENGTH(CONS h t) = SUC(LENGTH t)) ##########MAP = |- (!f. MAP f[] = []) /\ (!f h t. MAP f(CONS h t) = CONS(f h)(MAP f t)) #############################MAP2 = |- (!f. MAP2 f[][] = []) /\ (!f h1 t1 h2 t2. MAP2 f(CONS h1 t1)(CONS h2 t2) = CONS(f h1 h2)(MAP2 f t1 t2)) #################ALL_EL = |- (!P. ALL_EL P[] = T) /\ (!P x l. ALL_EL P(CONS x l) = P x /\ ALL_EL P l) #########SOME_EL = |- (!P. SOME_EL P[] = F) /\ (!P x l. SOME_EL P(CONS x l) = P x \/ SOME_EL P l) ########IS_EL_DEF = |- !x l. IS_EL x l = SOME_EL($= x)l ###AND_EL_DEF = |- AND_EL = ALL_EL I ###OR_EL_DEF = |- OR_EL = SOME_EL I #####################FIRSTN = |- (!l. FIRSTN 0 l = []) /\ (!n x l. FIRSTN(SUC n)(CONS x l) = CONS x(FIRSTN n l)) ###########BUTFIRSTN = |- (!l. BUTFIRSTN 0 l = l) /\ (!n x l. BUTFIRSTN(SUC n)(CONS x l) = BUTFIRSTN n l) ###############SEG = |- (!k l. SEG 0 k l = []) /\ (!m x l. SEG(SUC m)0(CONS x l) = CONS x(SEG m 0 l)) /\ (!m k x l. SEG(SUC m)(SUC k)(CONS x l) = SEG(SUC m)k l) ######LAST_DEF = |- !l. LAST l = HD(SEG 1(PRE(LENGTH l))l) ###BUTLAST_DEF = |- !l. BUTLAST l = SEG(PRE(LENGTH l))0 l ####LENGTH_SNOC = |- !x l. LENGTH(SNOC x l) = SUC(LENGTH l) ###########LAST = |- !x l. LAST(SNOC x l) = x #########BUTLAST = |- !x l. BUTLAST(SNOC x l) = l ###########LASTN = |- (!l. LASTN 0 l = []) /\ (!n x l. LASTN(SUC n)(SNOC x l) = SNOC x(LASTN n l)) ###########BUTLASTN = |- (!l. BUTLASTN 0 l = l) /\ (!n x l. BUTLASTN(SUC n)(SNOC x l) = BUTLASTN n l) ###########EL = |- (!l. EL 0 l = HD l) /\ (!l n. EL(SUC n)l = EL n(TL l)) ####ELL = |- (!l. ELL 0 l = LAST l) /\ (!n l. ELL(SUC n)l = ELL n(BUTLAST l)) ################################IS_PREFIX = |- (!l. IS_PREFIX l[] = T) /\ (!x l. IS_PREFIX[](CONS x l) = F) /\ (!x1 l1 x2 l2. IS_PREFIX(CONS x1 l1)(CONS x2 l2) = (x1 = x2) /\ IS_PREFIX l1 l2) #####REVERSE_SNOC = |- !x l. REVERSE(SNOC x l) = CONS x(REVERSE l) ###REVERSE_REVERSE = |- !l. REVERSE(REVERSE l) = l ######forall_REVERSE = |- !P. (!l. P(REVERSE l)) = (!l. P l) ########f_REVERSE_lemma = |- !f1 f2. ((\x. f1(REVERSE x)) = (\x. f2(REVERSE x))) = (f1 = f2) #######################SNOC_Axiom = |- !e f. ?! fn. (fn[] = e) /\ (!x l. fn(SNOC x l) = f(fn l)x l) ####################################IS_SUFFIX = |- (!l. IS_SUFFIX l[] = T) /\ (!x l. IS_SUFFIX[](SNOC x l) = F) /\ (!x1 l1 x2 l2. IS_SUFFIX(SNOC x1 l1)(SNOC x2 l2) = (x1 = x2) /\ IS_SUFFIX l1 l2) ################IS_SUBLIST = |- (!l. IS_SUBLIST l[] = T) /\ (!x l. IS_SUBLIST[](CONS x l) = F) /\ (!x1 l1 x2 l2. IS_SUBLIST(CONS x1 l1)(CONS x2 l2) = (x1 = x2) /\ IS_PREFIX l1 l2 \/ IS_SUBLIST l1(CONS x2 l2)) ######SPLITP = |- (!P. SPLITP P[] = [],[]) /\ (!P x l. SPLITP P(CONS x l) = (P x => ([],CONS x l) | (CONS x(FST(SPLITP P l)),SND(SPLITP P l)))) ###PREFIX_DEF = |- !P l. PREFIX P l = FST(SPLITP($~ o P)l) ###SUFFIX_DEF = |- !P l. SUFFIX P l = FOLDL(\l' x. (P x => SNOC x l' | []))[]l ######################ZIP = |- (ZIP([],[]) = []) /\ (!x1 l1 x2 l2. ZIP(CONS x1 l1,CONS x2 l2) = CONS(x1,x2)(ZIP(l1,l2))) #####UNZIP = |- (UNZIP[] = [],[]) /\ (!x l. UNZIP(CONS x l) = CONS(FST x)(FST(UNZIP l)),CONS(SND x)(SND(UNZIP l))) ###UNZIP_FST_DEF = |- !l. UNZIP_FST l = FST(UNZIP l) ###UNZIP_SND_DEF = |- !l. UNZIP_SND l = SND(UNZIP l) #########SUM = |- (SUM[] = 0) /\ (!h t. SUM(CONS h t) = h + (SUM t)) ##########GENLIST = |- (!f. GENLIST f 0 = []) /\ (!f n. GENLIST f(SUC n) = SNOC(f n)(GENLIST f n)) ####REPLICATE = |- (!x. REPLICATE 0 x = []) /\ (!n x. REPLICATE(SUC n)x = CONS x(REPLICATE n x)) ##() : void ## BASIC-HOL version 2.02 (GCL) created 13/10/21 ###############################Theory list loaded () : void #####list_Axiom = |- !x f. ?! fn. (fn[] = x) /\ (!h t. fn(CONS h t) = f(fn t)h t) #NULL_DEF = |- (NULL[] = T) /\ (!h t. NULL(CONS h t) = F) #HD = |- !h t. HD(CONS h t) = h #TL = |- !h t. TL(CONS h t) = t #SNOC = |- (!x. SNOC x[] = [x]) /\ (!x x' l. SNOC x(CONS x' l) = CONS x'(SNOC x l)) #FOLDR = |- (!f e. FOLDR f e[] = e) /\ (!f e x l. FOLDR f e(CONS x l) = f x(FOLDR f e l)) #FOLDL = |- (!f e. FOLDL f e[] = e) /\ (!f e x l. FOLDL f e(CONS x l) = FOLDL f(f e x)l) #FILTER = |- (!P. FILTER P[] = []) /\ (!P x l. FILTER P(CONS x l) = (P x => CONS x(FILTER P l) | FILTER P l)) #MAP = |- (!f. MAP f[] = []) /\ (!f h t. MAP f(CONS h t) = CONS(f h)(MAP f t)) #MAP2 = |- (!f. MAP2 f[][] = []) /\ (!f h1 t1 h2 t2. MAP2 f(CONS h1 t1)(CONS h2 t2) = CONS(f h1 h2)(MAP2 f t1 t2)) #SCANR = |- (!f e. SCANR f e[] = [e]) /\ (!f e x l. SCANR f e(CONS x l) = CONS(f x(HD(SCANR f e l)))(SCANR f e l)) #SCANL = |- (!f e. SCANL f e[] = [e]) /\ (!f e x l. SCANL f e(CONS x l) = CONS e(SCANL f(f e x)l)) #SEG = |- (!k l. SEG 0 k l = []) /\ (!m x l. SEG(SUC m)0(CONS x l) = CONS x(SEG m 0 l)) /\ (!m k x l. SEG(SUC m)(SUC k)(CONS x l) = SEG(SUC m)k l) #REVERSE = |- (REVERSE[] = []) /\ (!x l. REVERSE(CONS x l) = SNOC x(REVERSE l)) #APPEND = |- (!l. APPEND[]l = l) /\ (!l1 l2 h. APPEND(CONS h l1)l2 = CONS h(APPEND l1 l2)) #FLAT = |- (FLAT[] = []) /\ (!h t. FLAT(CONS h t) = APPEND h(FLAT t)) #LENGTH = |- (LENGTH[] = 0) /\ (!h t. LENGTH(CONS h t) = SUC(LENGTH t)) #ALL_EL = |- (!P. ALL_EL P[] = T) /\ (!P x l. ALL_EL P(CONS x l) = P x /\ ALL_EL P l) #SOME_EL = |- (!P. SOME_EL P[] = F) /\ (!P x l. SOME_EL P(CONS x l) = P x \/ SOME_EL P l) #IS_EL_DEF = |- !x l. IS_EL x l = SOME_EL($= x)l #AND_EL_DEF = |- AND_EL = ALL_EL I #OR_EL_DEF = |- OR_EL = SOME_EL I #FIRSTN = |- (!l. FIRSTN 0 l = []) /\ (!n x l. FIRSTN(SUC n)(CONS x l) = CONS x(FIRSTN n l)) #BUTFIRSTN = |- (!l. BUTFIRSTN 0 l = l) /\ (!n x l. BUTFIRSTN(SUC n)(CONS x l) = BUTFIRSTN n l) #LASTN = |- (!l. LASTN 0 l = []) /\ (!n x l. LASTN(SUC n)(SNOC x l) = SNOC x(LASTN n l)) #BUTLASTN = |- (!l. BUTLASTN 0 l = l) /\ (!n x l. BUTLASTN(SUC n)(SNOC x l) = BUTLASTN n l) #LAST_DEF = |- !l. LAST l = HD(SEG 1(PRE(LENGTH l))l) #BUTLAST_DEF = |- !l. BUTLAST l = SEG(PRE(LENGTH l))0 l #EL = |- (!l. EL 0 l = HD l) /\ (!l n. EL(SUC n)l = EL n(TL l)) #ELL = |- (!l. ELL 0 l = LAST l) /\ (!n l. ELL(SUC n)l = ELL n(BUTLAST l)) #IS_PREFIX = |- (!l. IS_PREFIX l[] = T) /\ (!x l. IS_PREFIX[](CONS x l) = F) /\ (!x1 l1 x2 l2. IS_PREFIX(CONS x1 l1)(CONS x2 l2) = (x1 = x2) /\ IS_PREFIX l1 l2) #IS_SUFFIX = |- (!l. IS_SUFFIX l[] = T) /\ (!x l. IS_SUFFIX[](SNOC x l) = F) /\ (!x1 l1 x2 l2. IS_SUFFIX(SNOC x1 l1)(SNOC x2 l2) = (x1 = x2) /\ IS_SUFFIX l1 l2) #IS_SUBLIST = |- (!l. IS_SUBLIST l[] = T) /\ (!x l. IS_SUBLIST[](CONS x l) = F) /\ (!x1 l1 x2 l2. IS_SUBLIST(CONS x1 l1)(CONS x2 l2) = (x1 = x2) /\ IS_PREFIX l1 l2 \/ IS_SUBLIST l1(CONS x2 l2)) #SPLITP = |- (!P. SPLITP P[] = [],[]) /\ (!P x l. SPLITP P(CONS x l) = (P x => ([],CONS x l) | (CONS x(FST(SPLITP P l)),SND(SPLITP P l)))) #PREFIX_DEF = |- !P l. PREFIX P l = FST(SPLITP($~ o P)l) #SUFFIX_DEF = |- !P l. SUFFIX P l = FOLDL(\l' x. (P x => SNOC x l' | []))[]l #ZIP = |- (ZIP([],[]) = []) /\ (!x1 l1 x2 l2. ZIP(CONS x1 l1,CONS x2 l2) = CONS(x1,x2)(ZIP(l1,l2))) #UNZIP = |- (UNZIP[] = [],[]) /\ (!x l. UNZIP(CONS x l) = CONS(FST x)(FST(UNZIP l)),CONS(SND x)(SND(UNZIP l))) #UNZIP_FST_DEF = |- !l. UNZIP_FST l = FST(UNZIP l) #UNZIP_SND_DEF = |- !l. UNZIP_SND l = SND(UNZIP l) #SUM = |- (SUM[] = 0) /\ (!h t. SUM(CONS h t) = h + (SUM t)) #GENLIST = |- (!f. GENLIST f 0 = []) /\ (!f n. GENLIST f(SUC n) = SNOC(f n)(GENLIST f n)) #REPLICATE = |- (!x. REPLICATE 0 x = []) /\ (!n x. REPLICATE(SUC n)x = CONS x(REPLICATE n x)) #####NOT_SUC = |- !n. ~(SUC n = 0) #INV_SUC = |- !m n. (SUC m = SUC n) ==> (m = n) #INDUCTION = |- !P. P 0 /\ (!n. P n ==> P(SUC n)) ==> (!n. P n) ##############################[(); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); ()] : void list #####################################################################################################[(); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); ()] : void list #######ASSOC_DEF = |- !f. ASSOC f = (!x y z. f x(f y z) = f(f x y)z) #COMM_DEF = |- !f. COMM f = (!x y. f x y = f y x) #FCOMM_DEF = |- !f g. FCOMM f g = (!x y z. g x(f y z) = f(g x y)z) #RIGHT_ID_DEF = |- !f e. RIGHT_ID f e = (!x. f x e = x) #LEFT_ID_DEF = |- !f e. LEFT_ID f e = (!x. f e x = x) #MONOID_DEF = |- !f e. MONOID f e = ASSOC f /\ RIGHT_ID f e /\ LEFT_ID f e ##ASSOC_CONJ = |- ASSOC $/\ #ASSOC_DISJ = |- ASSOC $\/ #FCOMM_ASSOC = |- !f. FCOMM f f = ASSOC f #MONOID_CONJ_T = |- MONOID $/\ T #MONOID_DISJ_F = |- MONOID $/\ T ####o_DEF = |- !f g. f o g = (\x. f(g x)) #o_THM = |- !f g x. (f o g)x = f(g x) #I_THM = |- !x. I x = x ##UNCURRY_DEF = |- !f x y. UNCURRY f(x,y) = f x y ######### Section INDUCT_THEN begun BETAS = - : (term -> term -> conv) GTAC = - : (term -> tactic) TACF = - : (term -> term -> thm_tactic -> tactic) TACS = - : (term -> term -> thm_tactic -> tactic list) GOALS = - : (* -> ((* # term) -> (** # ***)) list -> term -> (** list # *** list)) GALPH = - : conv GALPHA = - : conv mapshape = - : (int list -> (* list -> **) list -> * list -> ** list) INDUCT_THEN = - : (thm -> thm_tactic -> tactic) - : (thm -> thm_tactic -> tactic) Section INDUCT_THEN ended INDUCT_THEN = - : (thm -> thm_tactic -> tactic) File /build/hol88-NNpOMw/hol88-2.02.19940316/ml/ind.ml loaded () : void #####INDUCT_TAC = - : tactic ########## Section prove_rec_fn_exists begun derive_existence_thm = - : (thm -> conv) mk_fn = - : ((term # term # term list # term # goal) -> (term # term list # thm)) instantiate_existence_thm = - : (thm -> conv) closeup = - : (term -> term) prove_rec_fn_exists = - : (thm -> conv) - : (thm -> conv) Section prove_rec_fn_exists ended prove_rec_fn_exists = - : (thm -> conv) new_recursive_definition = - : (bool -> thm -> string -> conv) File /build/hol88-NNpOMw/hol88-2.02.19940316/ml/prim_rec.ml loaded () : void ###### () : void Section prove_induction_thm begun UNIQUENESS = - : (thm -> thm) DEPTH_FORALL_CONV = - : (conv -> conv) CONJS_CONV = - : (conv -> conv) CONJS_SIMP = - : (conv -> conv) T_AND_CONV = - : conv GENL_T = - : (term list -> thm) SIMP_CONV = - : conv HYP_SIMP = - : conv ANTE_ALL_CONV = - : conv CONCL_SIMP = - : conv prove_induction_thm = - : (thm -> thm) - : (thm -> thm) Section prove_induction_thm ended prove_induction_thm = - : (thm -> thm) Section prove_cases_thm begun NOT_ALL_THENC = - : (conv -> conv) BASE_CONV = - : conv STEP_CONV = - : conv NOT_IN_CONV = - : conv STEP_SIMP = - : conv DISJS_CHAIN = - : (conv -> thm -> thm) prove_cases_thm = - : (thm -> thm) - : (thm -> thm) Section prove_cases_thm ended prove_cases_thm = - : (thm -> thm) Section prove_constructors_one_one begun PAIR_EQ_CONV = - : conv list_variant = - : (term list -> term list -> term list) prove_const_one_one = - : (thm -> conv) prove_constructors_one_one = - : (thm -> thm) - : (thm -> thm) Section prove_constructors_one_one ended prove_constructors_one_one = - : (thm -> thm) prove_constructors_distinct = - : (thm -> thm) File /build/hol88-NNpOMw/hol88-2.02.19940316/ml/tyfns.ml loaded () : void ## num_CONV = - : conv File /build/hol88-NNpOMw/hol88-2.02.19940316/ml/numconv.ml loaded () : void #########NULL = |- NULL[] /\ (!h t. ~NULL(CONS h t)) ######list_INDUCT = |- !P. P[] /\ (!t. P t ==> (!h. P(CONS h t))) ==> (!l. P l) ###LIST_INDUCT_TAC = - : tactic ####list_CASES = |- !l. (l = []) \/ (?t h. l = CONS h t) ####CONS_11 = |- !h t h' t'. (CONS h t = CONS h' t') = (h = h') /\ (t = t') ###NOT_NIL_CONS = |- !h t. ~([] = CONS h t) ####NOT_CONS_NIL = |- !h t. ~(CONS h t = []) ######LIST_NOT_EQ = |- !l1 l2. ~(l1 = l2) ==> (!h1 h2. ~(CONS h1 l1 = CONS h2 l2)) ######NOT_EQ_LIST = |- !h1 h2. ~(h1 = h2) ==> (!l1 l2. ~(CONS h1 l1 = CONS h2 l2)) ######EQ_LIST = |- !h1 h2. (h1 = h2) ==> (!l1 l2. (l1 = l2) ==> (CONS h1 l1 = CONS h2 l2)) #########CONS = |- !l. ~NULL l ==> (CONS(HD l)(TL l) = l) ########APPEND_ASSOC = |- !l1 l2 l3. APPEND l1(APPEND l2 l3) = APPEND(APPEND l1 l2)l3 #######Theorem ADD_CLAUSES autoloading from theory `arithmetic` ... ADD_CLAUSES = |- (0 + m = m) /\ (m + 0 = m) /\ ((SUC m) + n = SUC(m + n)) /\ (m + (SUC n) = SUC(m + n)) LENGTH_APPEND = |- !l1 l2. LENGTH(APPEND l1 l2) = (LENGTH l1) + (LENGTH l2) ########MAP_APPEND = |- !f l1 l2. MAP f(APPEND l1 l2) = APPEND(MAP f l1)(MAP f l2) ######LENGTH_MAP = |- !l f. LENGTH(MAP f l) = LENGTH l #########################################LENGTH_NIL = |- !l. (LENGTH l = 0) = (l = []) ##############Theorem INV_SUC_EQ autoloading from theory `prim_rec` ... INV_SUC_EQ = |- !m n. (SUC m = SUC n) = (m = n) LENGTH_CONS = |- !l n. (LENGTH l = SUC n) = (?h l'. (LENGTH l' = n) /\ (l = CONS h l')) #################LENGTH_EQ_SUC = |- !P n. (!l. (LENGTH l = SUC n) ==> P l) = (!l. (LENGTH l = n) ==> (\l. !x. P(CONS x l))l) ###########LENGTH_EQ_NIL = |- !P. (!l. (LENGTH l = 0) ==> P l) = P[] ####################Theorem SUC_NOT autoloading from theory `arithmetic` ... SUC_NOT = |- !n. ~(0 = SUC n) LENGTH_MAP2 = |- !l1 l2. (LENGTH l1 = LENGTH l2) ==> (!f. (LENGTH(MAP2 f l1 l2) = LENGTH l1) /\ (LENGTH(MAP2 f l1 l2) = LENGTH l2)) ## Section begun chk_var = - : (term list -> term -> bool) FORALL_PERM_RULE = - : (term list -> thm -> thm) FORALL_PERM_CONV = - : (term list -> conv) FORALL_PERM_TAC = - : (term list -> tactic) ((-), (-), -) : ((term list -> thm -> thm) # (term list -> conv) # (term list -> tactic)) Section ended FORALL_PERM_RULE = - : (term list -> thm -> thm) FORALL_PERM_CONV = - : (term list -> conv) FORALL_PERM_TAC = - : (term list -> tactic) NULL_EQ_NIL = |- !l. NULL l = (l = []) LENGTH_EQ = |- !x y. (x = y) ==> (LENGTH x = LENGTH y) Theorem LESS_0 autoloading from theory `prim_rec` ... LESS_0 = |- !n. 0 < (SUC n) Theorem NOT_LESS_0 autoloading from theory `prim_rec` ... NOT_LESS_0 = |- !n. ~n < 0 LENGTH_NOT_NULL = |- !l. 0 < (LENGTH l) = ~NULL l REVERSE_SNOC = |- !x l. REVERSE(SNOC x l) = CONS x(REVERSE l) REVERSE_REVERSE = |- !l. REVERSE(REVERSE l) = l forall_REVERSE = |- !P. (!l. P(REVERSE l)) = (!l. P l) f_REVERSE_lemma = |- !f1 f2. ((\x. f1(REVERSE x)) = (\x. f2(REVERSE x))) = (f1 = f2) SNOC_Axiom = |- !e f. ?! fn. (fn[] = e) /\ (!x l. fn(SNOC x l) = f(fn l)x l) SNOC_INDUCT = |- !P. P[] /\ (!l. P l ==> (!x. P(SNOC x l))) ==> (!l. P l) SNOC_CASES = |- !l. (l = []) \/ (?l' x. l = SNOC x l') LENGTH_SNOC = |- !x l. LENGTH(SNOC x l) = SUC(LENGTH l) NOT_NULL_SNOC = |- !x l. ~NULL(SNOC x l) NOT_NIL_SNOC = |- !x l. ~([] = SNOC x l) NOT_SNOC_NIL = |- !x l. ~(SNOC x l = []) SNOC_11 = |- !x l x' l'. (SNOC x l = SNOC x' l') = (x = x') /\ (l = l') Theorem ADD1 autoloading from theory `arithmetic` ... ADD1 = |- !m. SUC m = m + 1 Theorem EQ_MONO_ADD_EQ autoloading from theory `arithmetic` ... EQ_MONO_ADD_EQ = |- !m n p. (m + p = n + p) = (m = n) SNOC_EQ_LENGTH_EQ = |- !x1 l1 x2 l2. (SNOC x1 l1 = SNOC x2 l2) ==> (LENGTH l1 = LENGTH l2) SNOC_REVERSE_CONS = |- !x l. SNOC x l = REVERSE(CONS x(REVERSE l)) SNOC_APPEND = |- !x l. SNOC x l = APPEND l[x] MAP_SNOC = |- !f x l. MAP f(SNOC x l) = SNOC(f x)(MAP f l) FOLDR_SNOC = |- !f e x l. FOLDR f e(SNOC x l) = FOLDR f(f x e)l FOLDL_SNOC = |- !f e x l. FOLDL f e(SNOC x l) = f(FOLDL f e l)x SNOC_INDUCT_TAC = - : tactic FOLDR_FOLDL = |- !f e. MONOID f e ==> (!l. FOLDR f e l = FOLDL f e l) LENGTH_FOLDR = |- !l. LENGTH l = FOLDR(\x l'. SUC l')0 l LENGTH_FOLDL = |- !l. LENGTH l = FOLDL(\l' x. SUC l')0 l MAP_FOLDR = |- !f l. MAP f l = FOLDR(\x l'. CONS(f x)l')[]l MAP_FOLDL = |- !f l. MAP f l = FOLDL(\l' x. SNOC(f x)l')[]l MAP_o = |- !f g. MAP(f o g) = (MAP f) o (MAP g) MAP_MAP_o = |- !f g l. MAP f(MAP g l) = MAP(f o g)l FILTER_FOLDR = |- !P l. FILTER P l = FOLDR(\x l'. (P x => CONS x l' | l'))[]l FILTER_SNOC = |- !P x l. FILTER P(SNOC x l) = (P x => SNOC x(FILTER P l) | FILTER P l) FILTER_FOLDL = |- !P l. FILTER P l = FOLDL(\l' x. (P x => SNOC x l' | l'))[]l FILTER_COMM = |- !f1 f2 l. FILTER f1(FILTER f2 l) = FILTER f2(FILTER f1 l) FILTER_IDEM = |- !f l. FILTER f(FILTER f l) = FILTER f l FILTER_MAP = |- !f1 f2 l. FILTER f1(MAP f2 l) = MAP f2(FILTER(f1 o f2)l) Theorem ADD_SUC autoloading from theory `arithmetic` ... ADD_SUC = |- !m n. SUC(m + n) = m + (SUC n) Theorem LESS_EQ_MONO autoloading from theory `arithmetic` ... LESS_EQ_MONO = |- !n m. (SUC n) <= (SUC m) = n <= m Definition ADD autoloading from theory `arithmetic` ... ADD = |- (!n. 0 + n = n) /\ (!m n. (SUC m) + n = SUC(m + n)) Definition LESS_OR_EQ autoloading from theory `arithmetic` ... LESS_OR_EQ = |- !m n. m <= n = m < n \/ (m = n) Theorem ADD_0 autoloading from theory `arithmetic` ... ADD_0 = |- !m. m + 0 = m LENGTH_SEG = |- !n k l. (n + k) <= (LENGTH l) ==> (LENGTH(SEG n k l) = n) APPEND_NIL = |- (!l. APPEND l[] = l) /\ (!l. APPEND[]l = l) APPEND_SNOC = |- !l1 x l2. APPEND l1(SNOC x l2) = SNOC x(APPEND l1 l2) REVERSE_APPEND = |- !l1 l2. REVERSE(APPEND l1 l2) = APPEND(REVERSE l2)(REVERSE l1) APPEND_FOLDR = |- !l1 l2. APPEND l1 l2 = FOLDR CONS l2 l1 APPEND_FOLDL = |- !l1 l2. APPEND l1 l2 = FOLDL(\l' x. SNOC x l')l1 l2 FOLDR_APPEND = |- !f e l1 l2. FOLDR f e(APPEND l1 l2) = FOLDR f(FOLDR f e l2)l1 FOLDL_APPEND = |- !f e l1 l2. FOLDL f e(APPEND l1 l2) = FOLDL f(FOLDL f e l1)l2 CONS_APPEND = |- !x l. CONS x l = APPEND[x]l ASSOC_APPEND = |- ASSOC APPEND RIGHT_ID_APPEND_NIL = |- RIGHT_ID APPEND[] LEFT_ID_APPEND_NIL = |- LEFT_ID APPEND[] MONOID_APPEND_NIL = |- MONOID APPEND[] APPEND_LENGTH_EQ = |- !l1 l1'. (LENGTH l1 = LENGTH l1') ==> (!l2 l2'. (LENGTH l2 = LENGTH l2') ==> ((APPEND l1 l2 = APPEND l1' l2') = (l1 = l1') /\ (l2 = l2'))) FILTER_APPEND = |- !f l1 l2. FILTER f(APPEND l1 l2) = APPEND(FILTER f l1)(FILTER f l2) FLAT_SNOC = |- !x l. FLAT(SNOC x l) = APPEND(FLAT l)x FLAT_FOLDR = |- !l. FLAT l = FOLDR APPEND[]l FLAT_FOLDL = |- !l. FLAT l = FOLDL APPEND[]l LENGTH_FLAT = |- !l. LENGTH(FLAT l) = SUM(MAP LENGTH l) REVERSE_FOLDR = |- !l. REVERSE l = FOLDR SNOC[]l REVERSE_FOLDL = |- !l. REVERSE l = FOLDL(\l' x. CONS x l')[]l LENGTH_REVERSE = |- !l. LENGTH(REVERSE l) = LENGTH l REVERSE_EQ_NIL = |- !l. (REVERSE l = []) = (l = []) ALL_EL_SNOC = |- !P x l. ALL_EL P(SNOC x l) = ALL_EL P l /\ P x ALL_EL_CONJ = |- !P Q l. ALL_EL(\x. P x /\ Q x)l = ALL_EL P l /\ ALL_EL Q l ALL_EL_MAP = |- !P f l. ALL_EL P(MAP f l) = ALL_EL(P o f)l ALL_EL_APPEND = |- !P l1 l2. ALL_EL P(APPEND l1 l2) = ALL_EL P l1 /\ ALL_EL P l2 SOME_EL_SNOC = |- !P x l. SOME_EL P(SNOC x l) = P x \/ SOME_EL P l NOT_ALL_EL_SOME_EL = |- !P l. ~ALL_EL P l = SOME_EL($~ o P)l NOT_SOME_EL_ALL_EL = |- !P l. ~SOME_EL P l = ALL_EL($~ o P)l IS_EL = |- (!x. IS_EL x[] = F) /\ (!y x l. IS_EL y(CONS x l) = (y = x) \/ IS_EL y l) IS_EL_SNOC = |- !y x l. IS_EL y(SNOC x l) = (y = x) \/ IS_EL y l Theorem ADD_ASSOC autoloading from theory `arithmetic` ... ADD_ASSOC = |- !m n p. m + (n + p) = (m + n) + p SUM_SNOC = |- !x l. SUM(SNOC x l) = (SUM l) + x SUM_FOLDR = |- !l. SUM l = FOLDR $+ 0 l SUM_FOLDL = |- !l. SUM l = FOLDL $+ 0 l IS_PREFIX_APPEND = |- !l1 l2. IS_PREFIX l1 l2 = (?l. l1 = APPEND l2 l) IS_SUFFIX_APPEND = |- !l1 l2. IS_SUFFIX l1 l2 = (?l. l1 = APPEND l l2) IS_SUBLIST_APPEND = |- !l1 l2. IS_SUBLIST l1 l2 = (?l l'. l1 = APPEND l(APPEND l2 l')) IS_PREFIX_IS_SUBLIST = |- !l1 l2. IS_PREFIX l1 l2 ==> IS_SUBLIST l1 l2 IS_SUFFIX_IS_SUBLIST = |- !l1 l2. IS_SUFFIX l1 l2 ==> IS_SUBLIST l1 l2 IS_PREFIX_REVERSE = |- !l1 l2. IS_PREFIX(REVERSE l1)(REVERSE l2) = IS_SUFFIX l1 l2 IS_SUFFIX_REVERSE = |- !l1 l2. IS_SUFFIX(REVERSE l1)(REVERSE l2) = IS_PREFIX l1 l2 IS_SUBLIST_REVERSE = |- !l1 l2. IS_SUBLIST(REVERSE l1)(REVERSE l2) = IS_SUBLIST l1 l2 PREFIX_FOLDR = |- !P l. PREFIX P l = FOLDR(\x l'. (P x => CONS x l' | []))[]l PREFIX = |- (!P. PREFIX P[] = []) /\ (!P x l. PREFIX P(CONS x l) = (P x => CONS x(PREFIX P l) | [])) IS_PREFIX_PREFIX = |- !P l. IS_PREFIX l(PREFIX P l) LENGTH_SCANL = |- !f e l. LENGTH(SCANL f e l) = SUC(LENGTH l) LENGTH_SCANR = |- !f e l. LENGTH(SCANR f e l) = SUC(LENGTH l) COMM_MONOID_FOLDL = |- !f. COMM f ==> (!e'. MONOID f e' ==> (!e l. FOLDL f e l = f e(FOLDL f e' l))) COMM_MONOID_FOLDR = |- !f. COMM f ==> (!e'. MONOID f e' ==> (!e l. FOLDR f e l = f e(FOLDR f e' l))) FCOMM_FOLDR_APPEND = |- !g f. FCOMM g f ==> (!e. LEFT_ID g e ==> (!l1 l2. FOLDR f e(APPEND l1 l2) = g(FOLDR f e l1)(FOLDR f e l2))) FCOMM_FOLDL_APPEND = |- !f g. FCOMM f g ==> (!e. RIGHT_ID g e ==> (!l1 l2. FOLDL f e(APPEND l1 l2) = g(FOLDL f e l1)(FOLDL f e l2))) MONOID_FOLDR_APPEND_FOLDR = |- !f e. MONOID f e ==> (!l1 l2. FOLDR f e(APPEND l1 l2) = f(FOLDR f e l1)(FOLDR f e l2)) MONOID_FOLDL_APPEND_FOLDL = |- !f e. MONOID f e ==> (!l1 l2. FOLDL f e(APPEND l1 l2) = f(FOLDL f e l1)(FOLDL f e l2)) FOLDL_SINGLE = |- !f e x. FOLDL f e[x] = f e x FOLDR_SINGLE = |- !f e x. FOLDR f e[x] = f x e FOLDR_CONS_NIL = |- !l. FOLDR CONS[]l = l FOLDL_SNOC_NIL = |- !l. FOLDL(\xs x. SNOC x xs)[]l = l FOLDR_FOLDL_REVERSE = |- !f e l. FOLDR f e l = FOLDL(\x y. f y x)e(REVERSE l) FOLDL_FOLDR_REVERSE = |- !f e l. FOLDL f e l = FOLDR(\x y. f y x)e(REVERSE l) FOLDR_REVERSE = |- !f e l. FOLDR f e(REVERSE l) = FOLDL(\x y. f y x)e l FOLDL_REVERSE = |- !f e l. FOLDL f e(REVERSE l) = FOLDR(\x y. f y x)e l FOLDR_MAP = |- !f e g l. FOLDR f e(MAP g l) = FOLDR(\x y. f(g x)y)e l FOLDL_MAP = |- !f e g l. FOLDL f e(MAP g l) = FOLDL(\x y. f x(g y))e l ALL_EL_FOLDR = |- !P l. ALL_EL P l = FOLDR(\x l'. P x /\ l')T l ALL_EL_FOLDL = |- !P l. ALL_EL P l = FOLDL(\l' x. l' /\ P x)T l SOME_EL_FOLDR = |- !P l. SOME_EL P l = FOLDR(\x l'. P x \/ l')F l SOME_EL_FOLDL = |- !P l. SOME_EL P l = FOLDL(\l' x. l' \/ P x)F l ALL_EL_FOLDR_MAP = |- !P l. ALL_EL P l = FOLDR $/\ T(MAP P l) ALL_EL_FOLDL_MAP = |- !P l. ALL_EL P l = FOLDL $/\ T(MAP P l) SOME_EL_FOLDR_MAP = |- !P l. SOME_EL P l = FOLDR $\/ F(MAP P l) SOME_EL_FOLDL_MAP = |- !P l. SOME_EL P l = FOLDL $\/ F(MAP P l) FOLDR_FILTER = |- !f e P l. FOLDR f e(FILTER P l) = FOLDR(\x y. (P x => f x y | y))e l FOLDL_FILTER = |- !f e P l. FOLDL f e(FILTER P l) = FOLDL(\x y. (P y => f x y | x))e l ASSOC_FOLDR_FLAT = |- !f. ASSOC f ==> (!e. LEFT_ID f e ==> (!l. FOLDR f e(FLAT l) = FOLDR f e(MAP(FOLDR f e)l))) ASSOC_FOLDL_FLAT = |- !f. ASSOC f ==> (!e. RIGHT_ID f e ==> (!l. FOLDL f e(FLAT l) = FOLDL f e(MAP(FOLDL f e)l))) MAP_FLAT = |- !f l. MAP f(FLAT l) = FLAT(MAP(MAP f)l) FILTER_FLAT = |- !P l. FILTER P(FLAT l) = FLAT(MAP(FILTER P)l) SOME_EL_MAP = |- !P f l. SOME_EL P(MAP f l) = SOME_EL(P o f)l SOME_EL_APPEND = |- !P l1 l2. SOME_EL P(APPEND l1 l2) = SOME_EL P l1 \/ SOME_EL P l2 SOME_EL_DISJ = |- !P Q l. SOME_EL(\x. P x \/ Q x)l = SOME_EL P l \/ SOME_EL Q l IS_EL_APPEND = |- !l1 l2 x. IS_EL x(APPEND l1 l2) = IS_EL x l1 \/ IS_EL x l2 IS_EL_FOLDR = |- !y l. IS_EL y l = FOLDR(\x l'. (y = x) \/ l')F l IS_EL_FOLDL = |- !y l. IS_EL y l = FOLDL(\l' x. l' \/ (y = x))F l NULL_FOLDR = |- !l. NULL l = FOLDR(\x l'. F)T l NULL_FOLDL = |- !l. NULL l = FOLDL(\x l'. F)T l MAP_REVERSE = |- !f l. MAP f(REVERSE l) = REVERSE(MAP f l) FILTER_REVERSE = |- !P l. FILTER P(REVERSE l) = REVERSE(FILTER P l) Theorem PRE autoloading from theory `prim_rec` ... PRE = |- (PRE 0 = 0) /\ (!m. PRE(SUC m) = m) LAST = |- !x l. LAST(SNOC x l) = x BUTLAST = |- !x l. BUTLAST(SNOC x l) = l SEG_LENGTH_ID = |- !l. SEG(LENGTH l)0 l = l SEG_SUC_CONS = |- !m n l x. SEG m(SUC n)(CONS x l) = SEG m n l SEG_0_SNOC = |- !m l x. m <= (LENGTH l) ==> (SEG m 0(SNOC x l) = SEG m 0 l) Theorem SUB_LESS_EQ autoloading from theory `arithmetic` ... SUB_LESS_EQ = |- !n m. (n - m) <= n Theorem SUB_MONO_EQ autoloading from theory `arithmetic` ... SUB_MONO_EQ = |- !n m. (SUC n) - (SUC m) = n - m Theorem SUB_0 autoloading from theory `arithmetic` ... SUB_0 = |- !m. (0 - m = 0) /\ (m - 0 = m) BUTLASTN_SEG = |- !n l. n <= (LENGTH l) ==> (BUTLASTN n l = SEG((LENGTH l) - n)0 l) LASTN_CONS = |- !n l. n <= (LENGTH l) ==> (!x. LASTN n(CONS x l) = LASTN n l) LENGTH_LASTN = |- !n l. n <= (LENGTH l) ==> (LENGTH(LASTN n l) = n) LASTN_LENGTH_ID = |- !l. LASTN(LENGTH l)l = l Theorem ZERO_LESS_EQ autoloading from theory `arithmetic` ... ZERO_LESS_EQ = |- !n. 0 <= n LASTN_LASTN = |- !l n m. m <= (LENGTH l) ==> n <= m ==> (LASTN n(LASTN m l) = LASTN n l) Theorem NOT_SUC_LESS_EQ_0 autoloading from theory `arithmetic` ... NOT_SUC_LESS_EQ_0 = |- !n. ~(SUC n) <= 0 NOT_SUC_LESS_EQ_0 = |- !n. ~(SUC n) <= 0 FIRSTN_LENGTH_ID = |- !l. FIRSTN(LENGTH l)l = l FIRSTN_SNOC = |- !n l. n <= (LENGTH l) ==> (!x. FIRSTN n(SNOC x l) = FIRSTN n l) BUTLASTN_LENGTH_NIL = |- !l. BUTLASTN(LENGTH l)l = [] BUTLASTN_SUC_BUTLAST = |- !n l. n < (LENGTH l) ==> (BUTLASTN(SUC n)l = BUTLASTN n(BUTLAST l)) Theorem LESS_MONO_EQ autoloading from theory `arithmetic` ... LESS_MONO_EQ = |- !m n. (SUC m) < (SUC n) = m < n BUTLASTN_BUTLAST = |- !n l. n < (LENGTH l) ==> (BUTLASTN n(BUTLAST l) = BUTLAST(BUTLASTN n l)) LENGTH_BUTLASTN = |- !n l. n <= (LENGTH l) ==> (LENGTH(BUTLASTN n l) = (LENGTH l) - n) ADD_SUC_lem = |- !m n. m + (SUC n) = (SUC m) + n BUTLASTN_BUTLASTN = |- !m n l. (n + m) <= (LENGTH l) ==> (BUTLASTN n(BUTLASTN m l) = BUTLASTN(n + m)l) APPEND_BUTLASTN_LASTN = |- !n l. n <= (LENGTH l) ==> (APPEND(BUTLASTN n l)(LASTN n l) = l) Theorem LESS_EQ_ADD autoloading from theory `arithmetic` ... LESS_EQ_ADD = |- !m n. m <= (m + n) Theorem ADD_SYM autoloading from theory `arithmetic` ... ADD_SYM = |- !m n. m + n = n + m APPEND_FIRSTN_LASTN = |- !m n l. (m + n = LENGTH l) ==> (APPEND(FIRSTN n l)(LASTN m l) = l) BUTLASTN_APPEND2 = |- !n l1 l2. n <= (LENGTH l2) ==> (BUTLASTN n(APPEND l1 l2) = APPEND l1(BUTLASTN n l2)) Theorem LESS_EQ_REFL autoloading from theory `arithmetic` ... LESS_EQ_REFL = |- !m. m <= m BUTLASTN_LENGTH_APPEND = |- !l2 l1. BUTLASTN(LENGTH l2)(APPEND l1 l2) = l1 LASTN_LENGTH_APPEND = |- !l1 l2. LASTN(LENGTH l2)(APPEND l1 l2) = l2 BUTLASTN_CONS = |- !n l. n <= (LENGTH l) ==> (!x. BUTLASTN n(CONS x l) = CONS x(BUTLASTN n l)) BUTLASTN_LENGTH_CONS = |- !l x. BUTLASTN(LENGTH l)(CONS x l) = [x] LAST_LASTN_LAST = |- !n l. n <= (LENGTH l) ==> 0 < n ==> (LAST(LASTN n l) = LAST l) BUTLASTN_LASTN_NIL = |- !n l. n <= (LENGTH l) ==> (BUTLASTN n(LASTN n l) = []) LASTN_BUTLASTN = |- !n m l. (n + m) <= (LENGTH l) ==> (LASTN n(BUTLASTN m l) = BUTLASTN m(LASTN(n + m)l)) BUTLASTN_LASTN = |- !m n l. m <= n /\ n <= (LENGTH l) ==> (BUTLASTN m(LASTN n l) = LASTN(n - m)(BUTLASTN m l)) LASTN_1 = |- !l. ~(l = []) ==> (LASTN 1 l = [LAST l]) BUTLASTN_1 = |- !l. ~(l = []) ==> (BUTLASTN 1 l = BUTLAST l) BUTLASTN_APPEND1 = |- !l2 n. (LENGTH l2) <= n ==> (!l1. BUTLASTN n(APPEND l1 l2) = BUTLASTN(n - (LENGTH l2))l1) LASTN_APPEND2 = |- !n l2. n <= (LENGTH l2) ==> (!l1. LASTN n(APPEND l1 l2) = LASTN n l2) LASTN_APPEND1 = |- !l2 n. (LENGTH l2) <= n ==> (!l1. LASTN n(APPEND l1 l2) = APPEND(LASTN(n - (LENGTH l2))l1)l2) LASTN_MAP = |- !n l. n <= (LENGTH l) ==> (!f. LASTN n(MAP f l) = MAP f(LASTN n l)) BUTLASTN_MAP = |- !n l. n <= (LENGTH l) ==> (!f. BUTLASTN n(MAP f l) = MAP f(BUTLASTN n l)) ALL_EL_LASTN = |- !P l. ALL_EL P l ==> (!m. m <= (LENGTH l) ==> ALL_EL P(LASTN m l)) ALL_EL_BUTLASTN = |- !P l. ALL_EL P l ==> (!m. m <= (LENGTH l) ==> ALL_EL P(BUTLASTN m l)) LENGTH_FIRSTN = |- !n l. n <= (LENGTH l) ==> (LENGTH(FIRSTN n l) = n) FIRSTN_FIRSTN = |- !m l. m <= (LENGTH l) ==> (!n. n <= m ==> (FIRSTN n(FIRSTN m l) = FIRSTN n l)) LENGTH_BUTFIRSTN = |- !n l. n <= (LENGTH l) ==> (LENGTH(BUTFIRSTN n l) = (LENGTH l) - n) BUTFIRSTN_LENGTH_NIL = |- !l. BUTFIRSTN(LENGTH l)l = [] BUTFIRSTN_APPEND1 = |- !n l1. n <= (LENGTH l1) ==> (!l2. BUTFIRSTN n(APPEND l1 l2) = APPEND(BUTFIRSTN n l1)l2) BUTFIRSTN_APPEND2 = |- !l1 n. (LENGTH l1) <= n ==> (!l2. BUTFIRSTN n(APPEND l1 l2) = BUTFIRSTN(n - (LENGTH l1))l2) BUTFIRSTN_BUTFIRSTN = |- !n m l. (n + m) <= (LENGTH l) ==> (BUTFIRSTN n(BUTFIRSTN m l) = BUTFIRSTN(n + m)l) APPEND_FIRSTN_BUTFIRSTN = |- !n l. n <= (LENGTH l) ==> (APPEND(FIRSTN n l)(BUTFIRSTN n l) = l) Theorem SUB_EQUAL_0 autoloading from theory `arithmetic` ... SUB_EQUAL_0 = |- !c. c - c = 0 Theorem LESS_EQ autoloading from theory `arithmetic` ... LESS_EQ = |- !m n. m < n = (SUC m) <= n Definition SUB autoloading from theory `arithmetic` ... SUB = |- (!m. 0 - m = 0) /\ (!m n. (SUC m) - n = (m < n => 0 | SUC(m - n))) Theorem LESS_SUC_NOT autoloading from theory `arithmetic` ... LESS_SUC_NOT = |- !m n. m < n ==> ~n < (SUC m) LASTN_SEG = |- !n l. n <= (LENGTH l) ==> (LASTN n l = SEG n((LENGTH l) - n)l) FIRSTN_SEG = |- !n l. n <= (LENGTH l) ==> (FIRSTN n l = SEG n 0 l) BUTFIRSTN_SEG = |- !n l. n <= (LENGTH l) ==> (BUTFIRSTN n l = SEG((LENGTH l) - n)n l) APPEND_BUTLAST_LAST = |- !l. ~(l = []) ==> (APPEND(BUTLAST l)[LAST l] = l) BUTFIRSTN_SNOC = |- !n l. n <= (LENGTH l) ==> (!x. BUTFIRSTN n(SNOC x l) = SNOC x(BUTFIRSTN n l)) APPEND_BUTLASTN_BUTFIRSTN = |- !m n l. (m + n = LENGTH l) ==> (APPEND(BUTLASTN m l)(BUTFIRSTN n l) = l) SEG_SEG = |- !n1 m1 n2 m2 l. (n1 + m1) <= (LENGTH l) /\ (n2 + m2) <= n1 ==> (SEG n2 m2(SEG n1 m1 l) = SEG n2(m1 + m2)l) SEG_APPEND1 = |- !n m l1. (n + m) <= (LENGTH l1) ==> (!l2. SEG n m(APPEND l1 l2) = SEG n m l1) SEG_APPEND2 = |- !l1 m n l2. (LENGTH l1) <= m /\ n <= (LENGTH l2) ==> (SEG n m(APPEND l1 l2) = SEG n(m - (LENGTH l1))l2) SEG_FIRSTN_BUTFIRSTN = |- !n m l. (n + m) <= (LENGTH l) ==> (SEG n m l = FIRSTN n(BUTFIRSTN m l)) Theorem ADD_SUB autoloading from theory `arithmetic` ... ADD_SUB = |- !a c. (a + c) - c = a Theorem NOT_LESS autoloading from theory `arithmetic` ... NOT_LESS = |- !m n. ~m < n = n <= m Theorem LESS_0_CASES autoloading from theory `arithmetic` ... LESS_0_CASES = |- !m. (0 = m) \/ 0 < m Theorem LESS_EQUAL_ANTISYM autoloading from theory `arithmetic` ... LESS_EQUAL_ANTISYM = |- !n m. n <= m /\ m <= n ==> (n = m) SEG_APPEND = |- !m l1 n l2. m < (LENGTH l1) /\ (LENGTH l1) <= (n + m) /\ (n + m) <= ((LENGTH l1) + (LENGTH l2)) ==> (SEG n m(APPEND l1 l2) = APPEND(SEG((LENGTH l1) - m)m l1)(SEG((n + m) - (LENGTH l1))0 l2)) SEG_LENGTH_SNOC = |- !l x. SEG 1(LENGTH l)(SNOC x l) = [x] SEG_SNOC = |- !n m l. (n + m) <= (LENGTH l) ==> (!x. SEG n m(SNOC x l) = SEG n m l) Theorem SUB_LESS_0 autoloading from theory `arithmetic` ... SUB_LESS_0 = |- !n m. m < n = 0 < (n - m) Theorem PRE_SUC_EQ autoloading from theory `arithmetic` ... PRE_SUC_EQ = |- !m n. 0 < n ==> ((m = PRE n) = (SUC m = n)) ELL_SEG = |- !n l. n < (LENGTH l) ==> (ELL n l = HD(SEG 1(PRE((LENGTH l) - n))l)) REWRITE1_TAC = - : thm_tactic SNOC_FOLDR = |- !x l. SNOC x l = FOLDR CONS[x]l IS_EL_FOLDR_MAP = |- !x l. IS_EL x l = FOLDR $\/ F(MAP($= x)l) IS_EL_FOLDL_MAP = |- !x l. IS_EL x l = FOLDL $\/ F(MAP($= x)l) FILTER_FILTER = |- !P Q l. FILTER P(FILTER Q l) = FILTER(\x. P x /\ Q x)l FCOMM_FOLDR_FLAT = |- !g f. FCOMM g f ==> (!e. LEFT_ID g e ==> (!l. FOLDR f e(FLAT l) = FOLDR g e(MAP(FOLDR f e)l))) FCOMM_FOLDL_FLAT = |- !f g. FCOMM f g ==> (!e. RIGHT_ID g e ==> (!l. FOLDL f e(FLAT l) = FOLDL g e(MAP(FOLDL f e)l))) FOLDR1 = |- !f. (!a b c. f a(f b c) = f b(f a c)) ==> (!e l. FOLDR f(f h e)l = f h(FOLDR f e l)) FOLDL1 = |- !f. (!a b c. f(f a b)c = f(f a c)b) ==> (!e l. FOLDL f(f e h)l = f(FOLDL f e l)h) FOLDR_REVERSE2 = |- !f. (!a b c. f a(f b c) = f b(f a c)) ==> (!e l. FOLDR f e(REVERSE l) = FOLDR f e l) FOLDR_MAP_REVERSE = |- !f. (!a b c. f a(f b c) = f b(f a c)) ==> (!e g l. FOLDR f e(MAP g(REVERSE l)) = FOLDR f e(MAP g l)) FOLDR_FILTER_REVERSE = |- !f. (!a b c. f a(f b c) = f b(f a c)) ==> (!e P l. FOLDR f e(FILTER P(REVERSE l)) = FOLDR f e(FILTER P l)) FOLDL_REVERSE2 = |- !f. (!a b c. f(f a b)c = f(f a c)b) ==> (!e l. FOLDL f e(REVERSE l) = FOLDL f e l) COMM_ASSOC_LEM1 = |- !f. COMM f ==> ASSOC f ==> (!a b c. f a(f b c) = f b(f a c)) COMM_ASSOC_LEM2 = |- !f. COMM f ==> ASSOC f ==> (!a b c. f(f a b)c = f(f a c)b) COMM_ASSOC_FOLDR_REVERSE = |- !f. COMM f ==> ASSOC f ==> (!e l. FOLDR f e(REVERSE l) = FOLDR f e l) COMM_ASSOC_FOLDL_REVERSE = |- !f. COMM f ==> ASSOC f ==> (!e l. FOLDL f e(REVERSE l) = FOLDL f e l) ELL_LAST = |- !l. ~NULL l ==> (ELL 0 l = LAST l) ELL_0_SNOC = |- !l x. ELL 0(SNOC x l) = x ELL_SNOC = |- !n. 0 < n ==> (!x l. ELL n(SNOC x l) = ELL(PRE n)l) ELL_SUC_SNOC = |- !n x l. ELL(SUC n)(SNOC x l) = ELL n l ELL_CONS = |- !n l. n < (LENGTH l) ==> (!x. ELL n(CONS x l) = ELL n l) ELL_LENGTH_CONS = |- !l x. ELL(LENGTH l)(CONS x l) = x ELL_LENGTH_SNOC = |- !l x. ELL(LENGTH l)(SNOC x l) = (NULL l => x | HD l) ELL_APPEND2 = |- !n l2. n < (LENGTH l2) ==> (!l1. ELL n(APPEND l1 l2) = ELL n l2) ELL_APPEND1 = |- !l2 n. (LENGTH l2) <= n ==> (!l1. ELL n(APPEND l1 l2) = ELL(n - (LENGTH l2))l1) ELL_PRE_LENGTH = |- !l. ~(l = []) ==> (ELL(PRE(LENGTH l))l = HD l) EL_LENGTH_SNOC = |- !l x. EL(LENGTH l)(SNOC x l) = x EL_PRE_LENGTH = |- !l. ~(l = []) ==> (EL(PRE(LENGTH l))l = LAST l) EL_SNOC = |- !n l. n < (LENGTH l) ==> (!x. EL n(SNOC x l) = EL n l) Theorem LESS_THM autoloading from theory `prim_rec` ... LESS_THM = |- !m n. m < (SUC n) = (m = n) \/ m < n Theorem LESS_SUC_REFL autoloading from theory `prim_rec` ... LESS_SUC_REFL = |- !n. n < (SUC n) Theorem LESS_REFL autoloading from theory `prim_rec` ... LESS_REFL = |- !n. ~n < n LESS_PRE_SUB_LESS = |- !n m. m < n ==> (PRE(n - m)) < n EL_ELL = |- !n l. n < (LENGTH l) ==> (EL n l = ELL(PRE((LENGTH l) - n))l) EL_LENGTH_APPEND = |- !l2 l1. ~NULL l2 ==> (EL(LENGTH l1)(APPEND l1 l2) = HD l2) Theorem LESS_SUC autoloading from theory `prim_rec` ... LESS_SUC = |- !m n. m < n ==> m < (SUC n) ELL_EL = |- !n l. n < (LENGTH l) ==> (ELL n l = EL(PRE((LENGTH l) - n))l) ELL_MAP = |- !n l f. n < (LENGTH l) ==> (ELL n(MAP f l) = f(ELL n l)) LENGTH_BUTLAST = |- !l. ~(l = []) ==> (LENGTH(BUTLAST l) = PRE(LENGTH l)) BUTFIRSTN_LENGTH_APPEND = |- !l1 l2. BUTFIRSTN(LENGTH l1)(APPEND l1 l2) = l2 FIRSTN_APPEND1 = |- !n l1. n <= (LENGTH l1) ==> (!l2. FIRSTN n(APPEND l1 l2) = FIRSTN n l1) FIRSTN_APPEND2 = |- !l1 n. (LENGTH l1) <= n ==> (!l2. FIRSTN n(APPEND l1 l2) = APPEND l1(FIRSTN(n - (LENGTH l1))l2)) FIRSTN_LENGTH_APPEND = |- !l1 l2. FIRSTN(LENGTH l1)(APPEND l1 l2) = l1 REVERSE_FLAT = |- !l. REVERSE(FLAT l) = FLAT(REVERSE(MAP REVERSE l)) MAP_COND = |- !f c l1 l2. MAP f(c => l1 | l2) = (c => MAP f l1 | MAP f l2) MAP_FILTER = |- !f P l. (!x. P(f x) = P x) ==> (MAP f(FILTER P l) = FILTER P(MAP f l)) FLAT_APPEND = |- !l1 l2. FLAT(APPEND l1 l2) = APPEND(FLAT l1)(FLAT l2) FLAT_REVERSE = |- !l. FLAT(REVERSE l) = REVERSE(FLAT(MAP REVERSE l)) FLAT_FLAT = |- !l. FLAT(FLAT l) = FLAT(MAP FLAT l) ALL_EL_REVERSE = |- !P l. ALL_EL P(REVERSE l) = ALL_EL P l SOME_EL_REVERSE = |- !P l. SOME_EL P(REVERSE l) = SOME_EL P l ALL_EL_SEG = |- !P l. ALL_EL P l ==> (!m k. (m + k) <= (LENGTH l) ==> ALL_EL P(SEG m k l)) ALL_EL_FIRSTN = |- !P l. ALL_EL P l ==> (!m. m <= (LENGTH l) ==> ALL_EL P(FIRSTN m l)) Theorem SUB_ADD autoloading from theory `arithmetic` ... SUB_ADD = |- !m n. n <= m ==> ((m - n) + n = m) ALL_EL_BUTFIRSTN = |- !P l. ALL_EL P l ==> (!m. m <= (LENGTH l) ==> ALL_EL P(BUTFIRSTN m l)) SOME_EL_SEG = |- !m k l. (m + k) <= (LENGTH l) ==> (!P. SOME_EL P(SEG m k l) ==> SOME_EL P l) SOME_EL_FIRSTN = |- !m l. m <= (LENGTH l) ==> (!P. SOME_EL P(FIRSTN m l) ==> SOME_EL P l) SOME_EL_BUTFIRSTN = |- !m l. m <= (LENGTH l) ==> (!P. SOME_EL P(BUTFIRSTN m l) ==> SOME_EL P l) SOME_EL_LASTN = |- !m l. m <= (LENGTH l) ==> (!P. SOME_EL P(LASTN m l) ==> SOME_EL P l) SOME_EL_BUTLASTN = |- !m l. m <= (LENGTH l) ==> (!P. SOME_EL P(BUTLASTN m l) ==> SOME_EL P l) IS_EL_REVERSE = |- !x l. IS_EL x(REVERSE l) = IS_EL x l IS_EL_FILTER = |- !P x. P x ==> (!l. IS_EL x(FILTER P l) = IS_EL x l) IS_EL_SEG = |- !n m l. (n + m) <= (LENGTH l) ==> (!x. IS_EL x(SEG n m l) ==> IS_EL x l) IS_EL_SOME_EL = |- !x l. IS_EL x l = SOME_EL($= x)l IS_EL_FIRSTN = |- !m l. m <= (LENGTH l) ==> (!x. IS_EL x(FIRSTN m l) ==> IS_EL x l) IS_EL_BUTFIRSTN = |- !m l. m <= (LENGTH l) ==> (!x. IS_EL x(BUTFIRSTN m l) ==> IS_EL x l) IS_EL_BUTLASTN = |- !m l. m <= (LENGTH l) ==> (!x. IS_EL x(BUTLASTN m l) ==> IS_EL x l) IS_EL_LASTN = |- !m l. m <= (LENGTH l) ==> (!x. IS_EL x(LASTN m l) ==> IS_EL x l) ZIP_SNOC = |- !l1 l2. (LENGTH l1 = LENGTH l2) ==> (!x1 x2. ZIP(SNOC x1 l1,SNOC x2 l2) = SNOC(x1,x2)(ZIP(l1,l2))) UNZIP_SNOC = |- !x l. UNZIP(SNOC x l) = SNOC(FST x)(FST(UNZIP l)),SNOC(SND x)(SND(UNZIP l)) LENGTH_ZIP = |- !l1 l2. (LENGTH l1 = LENGTH l2) ==> (LENGTH(ZIP(l1,l2)) = LENGTH l1) /\ (LENGTH(ZIP(l1,l2)) = LENGTH l2) LENGTH_UNZIP_FST = |- !l. LENGTH(UNZIP_FST l) = LENGTH l LENGTH_UNZIP_SND = |- !l. LENGTH(UNZIP_SND l) = LENGTH l ZIP_UNZIP = |- !l. ZIP(UNZIP l) = l UNZIP_ZIP = |- !l1 l2. (LENGTH l1 = LENGTH l2) ==> (UNZIP(ZIP(l1,l2)) = l1,l2) SUM_APPEND = |- !l1 l2. SUM(APPEND l1 l2) = (SUM l1) + (SUM l2) SUM_REVERSE = |- !l. SUM(REVERSE l) = SUM l SUM_FLAT = |- !l. SUM(FLAT l) = SUM(MAP SUM l) EL_APPEND1 = |- !n l1 l2. n < (LENGTH l1) ==> (EL n(APPEND l1 l2) = EL n l1) EL_APPEND2 = |- !l1 n. (LENGTH l1) <= n ==> (!l2. EL n(APPEND l1 l2) = EL(n - (LENGTH l1))l2) EL_MAP = |- !n l. n < (LENGTH l) ==> (!f. EL n(MAP f l) = f(EL n l)) EL_CONS = |- !n. 0 < n ==> (!x l. EL n(CONS x l) = EL(PRE n)l) EL_SEG = |- !n l. n < (LENGTH l) ==> (EL n l = HD(SEG 1 n l)) EL_IS_EL = |- !n l. n < (LENGTH l) ==> IS_EL(EL n l)l TL_SNOC = |- !x l. TL(SNOC x l) = (NULL l => [] | SNOC x(TL l)) SUB_SUC_LESS = |- !m n. n < m ==> (m - (SUC n)) < m Theorem SUB_PLUS autoloading from theory `arithmetic` ... SUB_PLUS = |- !a b c. a - (b + c) = (a - b) - c Theorem PRE_SUB1 autoloading from theory `arithmetic` ... PRE_SUB1 = |- !m. PRE m = m - 1 EL_REVERSE = |- !n l. n < (LENGTH l) ==> (EL n(REVERSE l) = EL(PRE((LENGTH l) - n))l) EL_REVERSE_ELL = |- !n l. n < (LENGTH l) ==> (EL n(REVERSE l) = ELL n l) ELL_LENGTH_APPEND = |- !l1 l2. ~NULL l1 ==> (ELL(LENGTH l2)(APPEND l1 l2) = LAST l1) ELL_IS_EL = |- !n l. n < (LENGTH l) ==> IS_EL(EL n l)l ELL_REVERSE = |- !n l. n < (LENGTH l) ==> (ELL n(REVERSE l) = ELL(PRE((LENGTH l) - n))l) ELL_REVERSE_EL = |- !n l. n < (LENGTH l) ==> (ELL n(REVERSE l) = EL n l) Theorem LESS_EQ_TRANS autoloading from theory `arithmetic` ... LESS_EQ_TRANS = |- !m n p. m <= n /\ n <= p ==> m <= p LESS_EQ_SPLIT = |- !m n p. (m + n) <= p ==> n <= p /\ m <= p Theorem LESS_EQ_MONO_ADD_EQ autoloading from theory `arithmetic` ... LESS_EQ_MONO_ADD_EQ = |- !m n p. (m + p) <= (n + p) = m <= n Theorem GREATER_EQ autoloading from theory `arithmetic` ... GREATER_EQ = |- !n m. n >= m = m <= n SUB_GREATER_EQ_ADD = |- !p n m. p >= n ==> ((p - n) >= m = p >= (m + n)) Theorem SUB_LESS_EQ_ADD autoloading from theory `arithmetic` ... SUB_LESS_EQ_ADD = |- !m p. m <= p ==> (!n. (p - m) <= n = p <= (m + n)) SUB_LESS_EQ_ADD = |- !p n m. n <= p ==> (m <= (p - n) = (m + n) <= p) FIRSTN_BUTLASTN = |- !n l. n <= (LENGTH l) ==> (FIRSTN n l = BUTLASTN((LENGTH l) - n)l) BUTLASTN_FIRSTN = |- !n l. n <= (LENGTH l) ==> (BUTLASTN n l = FIRSTN((LENGTH l) - n)l) LASTN_BUTFIRSTN = |- !n l. n <= (LENGTH l) ==> (LASTN n l = BUTFIRSTN((LENGTH l) - n)l) BUTFIRSTN_LASTN = |- !n l. n <= (LENGTH l) ==> (BUTFIRSTN n l = LASTN((LENGTH l) - n)l) SUB_ADD_lem = |- !l n m. (n + m) <= l ==> ((l - (n + m)) + n = l - m) SEG_LASTN_BUTLASTN = |- !n m l. (n + m) <= (LENGTH l) ==> (SEG n m l = LASTN n(BUTLASTN((LENGTH l) - (n + m))l)) BUTFIRSTN_REVERSE = |- !n l. n <= (LENGTH l) ==> (BUTFIRSTN n(REVERSE l) = REVERSE(BUTLASTN n l)) BUTLASTN_REVERSE = |- !n l. n <= (LENGTH l) ==> (BUTLASTN n(REVERSE l) = REVERSE(BUTFIRSTN n l)) LASTN_REVERSE = |- !n l. n <= (LENGTH l) ==> (LASTN n(REVERSE l) = REVERSE(FIRSTN n l)) FIRSTN_REVERSE = |- !n l. n <= (LENGTH l) ==> (FIRSTN n(REVERSE l) = REVERSE(LASTN n l)) Theorem SUB_SUB autoloading from theory `arithmetic` ... SUB_SUB = |- !b c. c <= b ==> (!a. a - (b - c) = (a + c) - b) SEG_REVERSE = |- !n m l. (n + m) <= (LENGTH l) ==> (SEG n m(REVERSE l) = REVERSE(SEG n((LENGTH l) - (n + m))l)) LENGTH_GENLIST = |- !f n. LENGTH(GENLIST f n) = n LENGTH_REPLICATE = |- !n x. LENGTH(REPLICATE n x) = n IS_EL_REPLICATE = |- !n. 0 < n ==> (!x. IS_EL x(REPLICATE n x)) ALL_EL_REPLICATE = |- !x n. ALL_EL($= x)(REPLICATE n x) AND_EL_FOLDL = |- !l. AND_EL l = FOLDL $/\ T l AND_EL_FOLDR = |- !l. AND_EL l = FOLDR $/\ T l OR_EL_FOLDL = |- !l. OR_EL l = FOLDL $\/ F l OR_EL_FOLDR = |- !l. OR_EL l = FOLDR $\/ F l MAP2_ZIP = |- !l1 l2. (LENGTH l1 = LENGTH l2) ==> (!f. MAP2 f l1 l2 = MAP(UNCURRY f)(ZIP(l1,l2))) File mk_list_thm2 loaded () : void ##=======> theory list built cd /build/hol88-NNpOMw/hol88-2.02.19940316/theories; rm -f tree.th;\ /build/hol88-NNpOMw/hol88-2.02.19940316/basic-hol < /build/hol88-NNpOMw/hol88-2.02.19940316/theories/mk_tree.ml;\ cd /build/hol88-NNpOMw/hol88-2.02.19940316 BASIC-HOL version 2.02 (GCL) created 13/10/21 #############################() : void ###Theory list loaded () : void #########list_Axiom = |- !x f. ?! fn. (fn[] = x) /\ (!h t. fn(CONS h t) = f(fn t)h t) list_INDUCT = |- !P. P[] /\ (!t. P t ==> (!h. P(CONS h t))) ==> (!l. P l) CONS_11 = |- !h t h' t'. (CONS h t = CONS h' t') = (h = h') /\ (t = t') NULL = |- NULL[] /\ (!h t. ~NULL(CONS h t)) NOT_CONS_NIL = |- !h t. ~(CONS h t = []) NOT_NIL_CONS = |- !h t. ~([] = CONS h t) ALL_EL_CONJ = |- !P Q l. ALL_EL(\x. P x /\ Q x)l = ALL_EL P l /\ ALL_EL Q l ######ALL_EL = |- (!P. ALL_EL P[] = T) /\ (!P x l. ALL_EL P(CONS x l) = P x /\ ALL_EL P l) MAP = |- (!f. MAP f[] = []) /\ (!f h t. MAP f(CONS h t) = CONS(f h)(MAP f t)) HD = |- !h t. HD(CONS h t) = h TL = |- !h t. TL(CONS h t) = t ####LESS_OR_EQ = |- !m n. m <= n = m < n \/ (m = n) ###EXP = |- (!m. m EXP 0 = 1) /\ (!m n. m EXP (SUC n) = m * (m EXP n)) ####################LESS_ADD_1 = |- !m n. n < m ==> (?p. m = n + (p + 1)) ADD_SYM = |- !m n. m + n = n + m EXP_ADD = |- !p q n. n EXP (p + q) = (n EXP p) * (n EXP q) MULT_ASSOC = |- !m n p. m * (n * p) = (m * n) * p MULT_EXP_MONO = |- !p q n m. (n * ((SUC q) EXP p) = m * ((SUC q) EXP p)) = (n = m) MULT_CLAUSES = |- !m n. (0 * m = 0) /\ (m * 0 = 0) /\ (1 * m = m) /\ (m * 1 = m) /\ ((SUC m) * n = (m * n) + n) /\ (m * (SUC n) = m + (m * n)) ADD_CLAUSES = |- (0 + m = m) /\ (m + 0 = m) /\ ((SUC m) + n = SUC(m + n)) /\ (m + (SUC n) = SUC(m + n)) NOT_ODD_EQ_EVEN = |- !n m. ~(SUC(n + n) = m + m) LESS_CASES = |- !m n. m < n \/ n <= m WOP = |- !P. (?n. P n) ==> (?n. P n /\ (!m. m < n ==> ~P m)) num_CASES = |- !m. (m = 0) \/ (?n. m = SUC n) NOT_LESS = |- !m n. ~m < n = n <= m LESS_IMP_LESS_OR_EQ = |- !m n. m < n ==> m <= n LESS_EQ_TRANS = |- !m n p. m <= n /\ n <= p ==> m <= p LESS_EQ_ADD = |- !m n. m <= (m + n) LESS_TRANS = |- !m n p. m < n /\ n < p ==> m < p LESS_EQ_ANTISYM = |- !m n. ~(m < n /\ n <= m) LESS_EQ = |- !m n. m < n = (SUC m) <= n ###########INV_SUC_EQ = |- !m n. (SUC m = SUC n) = (m = n) PRIM_REC_THM = |- !x f. (PRIM_REC x f 0 = x) /\ (!m. PRIM_REC x f(SUC m) = f(PRIM_REC x f m)m) LESS_0 = |- !n. 0 < (SUC n) LESS_SUC_REFL = |- !n. n < (SUC n) LESS_THM = |- !m n. m < (SUC n) = (m = n) \/ m < n LESS_SUC = |- !m n. m < n ==> m < (SUC n) NOT_LESS_0 = |- !n. ~n < 0 LESS_REFL = |- !n. ~n < n ####NOT_SUC = |- !n. ~(SUC n = 0) INDUCTION = |- !P. P 0 /\ (!n. P n ==> P(SUC n)) ==> (!n. P n) ####### num_CONV = - : conv File /build/hol88-NNpOMw/hol88-2.02.19940316/ml/numconv.ml loaded () : void ####### Section INDUCT_THEN begun BETAS = - : (term -> term -> conv) GTAC = - : (term -> tactic) TACF = - : (term -> term -> thm_tactic -> tactic) TACS = - : (term -> term -> thm_tactic -> tactic list) GOALS = - : (* -> ((* # term) -> (** # ***)) list -> term -> (** list # *** list)) GALPH = - : conv GALPHA = - : conv mapshape = - : (int list -> (* list -> **) list -> * list -> ** list) INDUCT_THEN = - : (thm -> thm_tactic -> tactic) - : (thm -> thm_tactic -> tactic) Section INDUCT_THEN ended INDUCT_THEN = - : (thm -> thm_tactic -> tactic) File /build/hol88-NNpOMw/hol88-2.02.19940316/ml/ind.ml loaded () : void ####### Section prove_rec_fn_exists begun derive_existence_thm = - : (thm -> conv) mk_fn = - : ((term # term # term list # term # goal) -> (term # term list # thm)) instantiate_existence_thm = - : (thm -> conv) closeup = - : (term -> term) prove_rec_fn_exists = - : (thm -> conv) - : (thm -> conv) Section prove_rec_fn_exists ended prove_rec_fn_exists = - : (thm -> conv) new_recursive_definition = - : (bool -> thm -> string -> conv) File /build/hol88-NNpOMw/hol88-2.02.19940316/ml/prim_rec.ml loaded () : void ###INDUCT_TAC = - : tactic ###LIST_INDUCT_TAC = - : tactic #####################arith_lemma = |- !p q n m. p < q ==> ~((SUC(n + n)) * (2 EXP p) = (SUC(m + m)) * (2 EXP q)) #############fun_11_1 = |- !p q n m. ((SUC(n + n)) * (2 EXP p) = (SUC(m + m)) * (2 EXP q)) ==> (p = q) ##############fun_11_2 = |- !p q n m. ((SUC(n + n)) * (2 EXP p) = (SUC(m + m)) * (2 EXP q)) ==> (n = m) #######ty = ":num" : type #########node_REP = |- (node_REP[] = 0) /\ (!h t. node_REP(CONS h t) = (SUC(h + h)) * (2 EXP (node_REP t))) ########################node_REP_one_one = |- !l1 l2. (node_REP l1 = node_REP l2) = (l1 = l2) #############Is_tree_REP = |- Is_tree_REP = (\t. !P. (!tl. ALL_EL P tl ==> P(node_REP tl)) ==> P t) #############ALL_EL_Is_tree_REP = |- !trl. ALL_EL Is_tree_REP trl = (!P. ALL_EL(\t. (!tl. ALL_EL P tl ==> P(node_REP tl)) ==> P t)trl) ##########Is_tree_lemma1 = |- !trl. ALL_EL Is_tree_REP trl ==> Is_tree_REP(node_REP trl) #####taut1 = |- !a b. ~(a ==> b) = a /\ ~b ###########################Is_tree_lemma2 = |- !t. Is_tree_REP t ==> (?trl. ALL_EL Is_tree_REP trl /\ (t = node_REP trl)) #######Is_tree_lemma3 = |- !tl. Is_tree_REP(node_REP tl) ==> ALL_EL Is_tree_REP tl #########Is_tree_lemma4 = |- !tl. Is_tree_REP(node_REP tl) = ALL_EL Is_tree_REP tl #########Exists_tree_REP = |- ?t. Is_tree_REP t ############tree_TY_DEF = |- ?rep. TYPE_DEFINITION Is_tree_REP rep ##########tree_ISO_DEF = |- (!a. ABS_tree(REP_tree a) = a) /\ (!r. Is_tree_REP r = (REP_tree(ABS_tree r) = r)) #######R_11 = |- !a a'. (REP_tree a = REP_tree a') = (a = a') R_ONTO = |- !r. Is_tree_REP r = (?a. r = REP_tree a) A_11 = |- !r r'. Is_tree_REP r ==> Is_tree_REP r' ==> ((ABS_tree r = ABS_tree r') = (r = r')) A_ONTO = |- !a. ?r. (a = ABS_tree r) /\ Is_tree_REP r A_R = |- !a. ABS_tree(REP_tree a) = a R_A = |- !r. Is_tree_REP r = (REP_tree(ABS_tree r) = r) ######node = |- !tl. node tl = ABS_tree(node_REP(MAP REP_tree tl)) #####dest_node = |- !t. dest_node t = (@p. t = node p) ##########IS_REP_lemma = |- !tl. ALL_EL Is_tree_REP(MAP REP_tree tl) ############REP_ABS_lemma = |- !tl. REP_tree(node tl) = node_REP(MAP REP_tree tl) ######ABS_REP = |- !tl. Is_tree_REP(node_REP(MAP REP_tree tl)) #####ABS_11_lemma = |- (ABS_tree(node_REP(MAP REP_tree tl1)) = ABS_tree(node_REP(MAP REP_tree tl2))) = (node_REP(MAP REP_tree tl1) = node_REP(MAP REP_tree tl2)) ###################node_11 = |- !tl1 tl2. (node tl1 = node tl2) = (tl1 = tl2) ########A_R_list = |- !tl. tl = MAP ABS_tree(MAP REP_tree tl) ######R_A_R = |- REP_tree(ABS_tree(REP_tree t)) = REP_tree t #####Is_R = |- Is_tree_REP(REP_tree t) ######R_A_R_list = |- !tl. MAP REP_tree(MAP ABS_tree(MAP REP_tree tl)) = MAP REP_tree tl ###########A_ONTO_list = |- !tl. ?trl. (tl = MAP ABS_tree trl) /\ ALL_EL Is_tree_REP trl ############R_ONTO_list = |- !trl. ALL_EL Is_tree_REP trl ==> (?tl. trl = MAP REP_tree tl) ########R_A_list = |- !trl. ALL_EL Is_tree_REP trl ==> (MAP REP_tree(MAP ABS_tree trl) = trl) ############################induct_lemma1 = |- (!tl. ALL_EL P tl ==> P(node tl)) = (!trl. ALL_EL Is_tree_REP trl ==> ALL_EL(\x. P(ABS_tree x))trl ==> (\x. P(ABS_tree x))(node_REP trl)) #################induct_lemma2 = |- (!t. P t) = (!rep. Is_tree_REP rep ==> (\r. Is_tree_REP r /\ (\x. P(ABS_tree x))r)rep) #############tree_Induct = |- !P. (!tl. ALL_EL P tl ==> P(node tl)) ==> (!t. P t) #######################tree_INDUCT = - : (thm -> thm) ####################tree_INDUCT_TAC = - : tactic ##############bht = |- bht = PRIM_REC (\tr. tr = node[]) (\res n tr. ?trl. (tr = node trl) /\ ALL_EL res trl) #########bht_thm = |- (bht 0 tr = (tr = node[])) /\ (bht(SUC n)tr = (?trl. (tr = node trl) /\ ALL_EL(bht n)trl)) ##################bht_lemma1 = |- !n tr. bht n tr ==> bht(SUC n)tr #########bht_lemma2 = |- !n tr. bht n tr ==> (!m. bht(n + m)tr) ######################bht_lemma3 = |- !trl. ALL_EL(\tr. ?n. bht n tr)trl ==> (?n. ALL_EL(bht n)trl) ##########exists_bht = |- !t. ?n. bht n t ##########min_bht = |- !t. ?n. bht n t /\ (!m. m < n ==> ~bht m t) ######HT = |- !t. HT t = (@n. bht n t /\ (!m. m < n ==> ~bht m t)) ###########HT_thm1 = |- !tr. bht(HT tr)tr ######HT_thm2 = |- !tr m. m < (HT tr) ==> ~bht m tr ##################HT_leaf = |- !trl. (HT(node trl) = 0) = (trl = []) ############HT_thm3 = |- !m tr. ~bht m tr ==> m < (HT tr) #####HT_thm4 = |- !tr m. m < (HT tr) = ~bht m tr ###################HT_thm5 = |- !n tl h. ~bht n(node tl) ==> ~bht n(node(CONS h tl)) ###########HT_thm6 = |- !trl tl t. ALL_EL(\t'. ~bht(HT t')(node tl))trl ==> ALL_EL(\t'. ~bht(HT t')(node(CONS h tl)))trl ##########################HT_node = |- !tl. ALL_EL(\t. (HT t) < (HT(node tl)))tl ########Less_lemma = |- !n m. n < (SUC m) = n <= m #############less_HT = |- !trl m n. m <= n ==> ALL_EL(\t. (HT t) < m)trl ==> ALL_EL(\t. (HT t) <= n)trl ###################less_HT2 = |- !trl n. (HT(node trl)) < n ==> ALL_EL(\t. (HT t) < n)trl ##########less_HT3 = |- !trl. (HT(node trl)) <= (HT(node[node trl])) ################less_HT4 = |- !trl m n. m <= n ==> ALL_EL(\t. (HT t) < m)trl ==> ALL_EL(\t. (HT t) < n)trl ######less_HT5 = |- !h. (HT h) < (HT(node[h])) ########less_HT6 = |- !h trl. (HT h) < (HT(node[node(CONS h trl)])) #####less_HT7 = |- ALL_EL(\t. (HT t) < (HT(node[node tl])))tl #####less_HT8 = |- ALL_EL(\t. (HT t) < (HT(node[node(CONS h trl)])))trl ##########dest_node_thm = |- !tl. dest_node(node tl) = tl ########################################approx_lemma = |- !f n. ?fn. !trl. (HT(node trl)) <= n ==> (fn(node trl) = f(MAP fn trl)) #########trf = |- !n f. trf n f = (@fn. !trl. (HT(node trl)) <= n ==> (fn(node trl) = f(MAP fn trl))) #########trf_thm = |- !f n trl. (HT(node trl)) <= n ==> (trf n f(node trl) = f(MAP(trf n f)trl)) #######################trf_EQ_thm = |- !t n m f. (HT t) < n /\ (HT t) < m ==> (trf n f t = trf m f t) #############trf_EQ_thm2 = |- !trl n m f. ALL_EL(\t. (HT t) < n)trl /\ ALL_EL(\t. (HT t) < m)trl ==> (MAP(trf n f)trl = MAP(trf m f)trl) ##############################FN_EXISTS = |- !f. ?fn. !trl. fn(node trl) = f(MAP fn trl) ##########FN_thm = |- ?FN. !f trl. FN f(node trl) = f(MAP(FN f)trl) ######AP = |- ?AP. (!l. AP[]l = []) /\ (!h t l. AP(CONS h t)l = CONS(h(HD l))(AP t(TL l))) ###AP = |- ?AP. (!l. AP[]l = []) /\ (!h t l. AP(CONS h t)l = CONS(h(HD l))(AP t(TL l))) #AP_DEF = ["!l. AP[]l = []"; "!h t l. AP(CONS h t)l = CONS(h(HD l))(AP t(TL l))"] : term list #########AP_MAP = .. |- !l. AP(MAP f l)l = MAP(\x. f x x)l #################EXISTS_THM = |- !f. ?fn. !tl. fn(node tl) = f(MAP fn tl)tl #########lemma = |- !l. ALL_EL(\x. f x = g x)l ==> (MAP f l = MAP g l) ###############tree_Axiom = |- !f. ?! fn. !tl. fn(node tl) = f(MAP fn tl)tl ###() : void ##=======> theory tree built cd /build/hol88-NNpOMw/hol88-2.02.19940316/theories; rm -f ltree.th;\ /build/hol88-NNpOMw/hol88-2.02.19940316/basic-hol < /build/hol88-NNpOMw/hol88-2.02.19940316/theories/mk_ltree.ml;\ cd /build/hol88-NNpOMw/hol88-2.02.19940316 BASIC-HOL version 2.02 (GCL) created 13/10/21 ############################() : void ###Theory tree loaded () : void ###Theory combin loaded () : void #####node_11 = |- !tl1 tl2. (node tl1 = node tl2) = (tl1 = tl2) tree_Induct = |- !P. (!tl. ALL_EL P tl ==> P(node tl)) ==> (!t. P t) tree_Axiom = |- !f. ?! fn. !tl. fn(node tl) = f(MAP fn tl)tl ##########SUM = |- (SUM[] = 0) /\ (!h t. SUM(CONS h t) = h + (SUM t)) LENGTH = |- (LENGTH[] = 0) /\ (!h t. LENGTH(CONS h t) = SUC(LENGTH t)) MAP = |- (!f. MAP f[] = []) /\ (!f h t. MAP f(CONS h t) = CONS(f h)(MAP f t)) FLAT = |- (FLAT[] = []) /\ (!h t. FLAT(CONS h t) = APPEND h(FLAT t)) APPEND = |- (!l. APPEND[]l = l) /\ (!l1 l2 h. APPEND(CONS h l1)l2 = CONS h(APPEND l1 l2)) HD = |- !h t. HD(CONS h t) = h TL = |- !h t. TL(CONS h t) = t ALL_EL = |- (!P. ALL_EL P[] = T) /\ (!P x l. ALL_EL P(CONS x l) = P x /\ ALL_EL P l) #######list_Axiom = |- !x f. ?! fn. (fn[] = x) /\ (!h t. fn(CONS h t) = f(fn t)h t) list_INDUCT = |- !P. P[] /\ (!t. P t ==> (!h. P(CONS h t))) ==> (!l. P l) LENGTH_APPEND = |- !l1 l2. LENGTH(APPEND l1 l2) = (LENGTH l1) + (LENGTH l2) LENGTH_NIL = |- !l. (LENGTH l = 0) = (l = []) LENGTH_CONS = |- !l n. (LENGTH l = SUC n) = (?h l'. (LENGTH l' = n) /\ (l = CONS h l')) ####o_THM = |- !f g x. (f o g)x = f(g x) ####ADD_CLAUSES = |- (0 + m = m) /\ (m + 0 = m) /\ ((SUC m) + n = SUC(m + n)) /\ (m + (SUC n) = SUC(m + n)) ADD_EQ_0 = |- !m n. (m + n = 0) = (m = 0) /\ (n = 0) #####num_Axiom = |- !e f. ?! fn. (fn 0 = e) /\ (!n. fn(SUC n) = f(fn n)n) INV_SUC_EQ = |- !m n. (SUC m = SUC n) = (m = n) ###INDUCTION = |- !P. P 0 /\ (!n. P n ==> P(SUC n)) ==> (!n. P n) ########### Section INDUCT_THEN begun BETAS = - : (term -> term -> conv) GTAC = - : (term -> tactic) TACF = - : (term -> term -> thm_tactic -> tactic) TACS = - : (term -> term -> thm_tactic -> tactic list) GOALS = - : (* -> ((* # term) -> (** # ***)) list -> term -> (** list # *** list)) GALPH = - : conv GALPHA = - : conv mapshape = - : (int list -> (* list -> **) list -> * list -> ** list) INDUCT_THEN = - : (thm -> thm_tactic -> tactic) - : (thm -> thm_tactic -> tactic) Section INDUCT_THEN ended INDUCT_THEN = - : (thm -> thm_tactic -> tactic) File /build/hol88-NNpOMw/hol88-2.02.19940316/ml/ind.ml loaded () : void ####### Section prove_rec_fn_exists begun derive_existence_thm = - : (thm -> conv) mk_fn = - : ((term # term # term list # term # goal) -> (term # term list # thm)) instantiate_existence_thm = - : (thm -> conv) closeup = - : (term -> term) prove_rec_fn_exists = - : (thm -> conv) - : (thm -> conv) Section prove_rec_fn_exists ended prove_rec_fn_exists = - : (thm -> conv) new_recursive_definition = - : (bool -> thm -> string -> conv) File /build/hol88-NNpOMw/hol88-2.02.19940316/ml/prim_rec.ml loaded () : void #######################tree_INDUCT = - : (thm -> thm) ####################tree_INDUCT_TAC = - : tactic ###LIST_INDUCT_TAC = - : tactic ###INDUCT_TAC = - : tactic ########Size = |- Size = (@fn. !tl. fn(node tl) = SUC(SUM(MAP fn tl))) ###########Size_thm = |- !tl. Size(node tl) = SUC(SUM(MAP Size tl)) #########Is_ltree = |- !t l. Is_ltree(t,l) = (Size t = LENGTH l) ###ty = ":tree # (*)list" : type ######Exists_ltree_REP = |- ?t. Is_ltree t #######ltree_TY_DEF = |- ?rep. TYPE_DEFINITION Is_ltree rep ##########ltree_ISO_DEF = |- (!a. ABS_ltree(REP_ltree a) = a) /\ (!r. Is_ltree r = (REP_ltree(ABS_ltree r) = r)) #######R_11 = |- !a a'. (REP_ltree a = REP_ltree a') = (a = a') R_ONTO = |- !r. Is_ltree r = (?a. r = REP_ltree a) A_11 = |- !r r'. Is_ltree r ==> Is_ltree r' ==> ((ABS_ltree r = ABS_ltree r') = (r = r')) A_ONTO = |- !a. ?r. (a = ABS_ltree r) /\ Is_ltree r A_R = |- !a. ABS_ltree(REP_ltree a) = a R_A = |- !r. Is_ltree r = (REP_ltree(ABS_ltree r) = r) ########Node = |- !v tl. Node v tl = ABS_ltree (node(MAP(FST o REP_ltree)tl),CONS v(FLAT(MAP(SND o REP_ltree)tl))) ######################REP_Node = |- !tl. REP_ltree(Node v tl) = node(MAP(FST o REP_ltree)tl),CONS v(FLAT(MAP(SND o REP_ltree)tl)) ###########Size_LENGTH_lemma = |- !t. Size(FST(REP_ltree t)) = LENGTH(SND(REP_ltree t)) #########MAP_Size_LENGTH = |- !tl. MAP Size(MAP(FST o REP_ltree)tl) = MAP LENGTH(MAP(SND o REP_ltree)tl) ##############AP = |- (!l. AP[]l = []) /\ (!h t l. AP(CONS h t)l = CONS(h(HD l))(AP t(TL l))) ######SPLIT = |- (!l. SPLIT 0 l = [],l) /\ (!n l. SPLIT(SUC n)l = CONS(HD l)(FST(SPLIT n(TL l))),SND(SPLIT n(TL l))) ######PART = |- (!l. PART[]l = []) /\ (!n t l. PART(CONS n t)l = CONS(FST(SPLIT n l))(PART t(SND(SPLIT n l)))) ##########SPLIT_APPEND = |- !l l'. SPLIT(LENGTH l)(APPEND l l') = l,l' ######PART_FLAT = |- !l. PART(MAP LENGTH l)(FLAT l) = l ###############LENGTH_SND_SPLIT = |- !l n m. (LENGTH l = n + m) ==> (LENGTH(SND(SPLIT n l)) = m) ###############LENGTH_FST_SPLIT = |- !l n m. (LENGTH l = n + m) ==> (LENGTH(FST(SPLIT n l)) = n) #################APPEND_SPLIT = |- !l n m. (LENGTH l = n + m) ==> (APPEND(FST(SPLIT n l))(SND(SPLIT n l)) = l) ##################################REP_REC_lemma = |- !f. ?! fn. !tl l. fn(node tl,l) = f (AP(MAP(\t e. fn(t,e))tl)(PART(MAP Size tl)(TL l))) (HD l) (MAP ABS_ltree(AP(MAP $, tl)(PART(MAP Size tl)(TL l)))) ############lemma1 = |- !tl. MAP ABS_ltree (AP (MAP $,(MAP(FST o REP_ltree)tl)) (PART (MAP Size(MAP(FST o REP_ltree)tl)) (FLAT(MAP(SND o REP_ltree)tl)))) = tl ##############lemma2 = |- !tl. AP (MAP(\t e. fn(t,e))(MAP(FST o REP_ltree)tl)) (PART (MAP Size(MAP(FST o REP_ltree)tl)) (FLAT(MAP(SND o REP_ltree)tl))) = MAP(fn o REP_ltree)tl #######################lemma3 = |- !trl l. (LENGTH l = SUM(MAP Size trl)) ==> (FLAT (MAP (SND o REP_ltree) (MAP ABS_ltree(AP(MAP $, trl)(PART(MAP Size trl)l)))) = l) #########################lemma4 = |- !trl l. (LENGTH l = SUM(MAP Size trl)) ==> (node (MAP (FST o REP_ltree) (MAP ABS_ltree(AP(MAP $, trl)(PART(MAP Size trl)l)))) = node trl) ####################lemma5 = |- !trl l. (Size(node trl) = LENGTH l) ==> (ABS_ltree(node trl,l) = Node(HD l)(MAP ABS_ltree(AP(MAP $, trl)(PART(MAP Size trl)(TL l))))) #######################lemma6 = |- !trl l. (Size(node trl) = LENGTH l) ==> ALL_EL (\p. Size(FST p) = LENGTH(SND p)) (AP(MAP $, trl)(PART(MAP Size trl)(TL l))) ##################lemma7 = |- !trl. ALL_EL (\t. !l. (Size t = LENGTH l) ==> (x(ABS_ltree(t,l)) = y(ABS_ltree(t,l)))) trl ==> (!l. ALL_EL(\p. Size(FST p) = LENGTH(SND p))(AP(MAP $, trl)l) ==> (MAP x(MAP ABS_ltree(AP(MAP $, trl)l)) = MAP y(MAP ABS_ltree(AP(MAP $, trl)l)))) ###########################ltree_Axiom = |- !f. ?! fn. !v tl. fn(Node v tl) = f(MAP fn tl)v tl ####unique_lemma = |- !f fn fn'. (!v tl. fn(Node v tl) = f(MAP fn tl)v tl) /\ (!v tl. fn'(Node v tl) = f(MAP fn' tl)v tl) ==> (fn = fn') ##############################ltree_Induct = |- !P. (!t. ALL_EL P t ==> (!h. P(Node h t))) ==> (!l. P l) ###exists_lemma = |- !f. ?fn. !v tl. fn(Node v tl) = f(MAP fn tl)v tl ################Node_11 = |- !v1 v2 trl1 trl2. (Node v1 trl1 = Node v2 trl2) = (v1 = v2) /\ (trl1 = trl2) #######################ltree_INDUCT = - : (thm -> thm) #######################ltree_INDUCT_TAC = - : tactic ########Node_onto = |- !l. ?v trl. l = Node v trl ##() : void ##=======> theory ltree built cd /build/hol88-NNpOMw/hol88-2.02.19940316/theories; rm -f tydefs.th;\ /build/hol88-NNpOMw/hol88-2.02.19940316/basic-hol < /build/hol88-NNpOMw/hol88-2.02.19940316/theories/mk_tydefs.ml;\ cd /build/hol88-NNpOMw/hol88-2.02.19940316 BASIC-HOL version 2.02 (GCL) created 13/10/21 ############################() : void ###Theory ltree loaded [()] : void list ###o_THM = |- !f g x. (f o g)x = f(g x) ###list_INDUCT = |- !P. P[] /\ (!t. P t ==> (!h. P(CONS h t))) ==> (!l. P l) #MAP_o = |- !f g. MAP(f o g) = (MAP f) o (MAP g) ####ltree_Axiom = |- !f. ?! fn. !v tl. fn(Node v tl) = f(MAP fn tl)v tl ltree_Induct = |- !P. (!t. ALL_EL P t ==> (!h. P(Node h t))) ==> (!l. P l) ####ALL_EL = |- (!P. ALL_EL P[] = T) /\ (!P x l. ALL_EL P(CONS x l) = P x /\ ALL_EL P l) MAP = |- (!f. MAP f[] = []) /\ (!f h t. MAP f(CONS h t) = CONS(f h)(MAP f t)) ########### Section INDUCT_THEN begun BETAS = - : (term -> term -> conv) GTAC = - : (term -> tactic) TACF = - : (term -> term -> thm_tactic -> tactic) TACS = - : (term -> term -> thm_tactic -> tactic list) GOALS = - : (* -> ((* # term) -> (** # ***)) list -> term -> (** list # *** list)) GALPH = - : conv GALPHA = - : conv mapshape = - : (int list -> (* list -> **) list -> * list -> ** list) INDUCT_THEN = - : (thm -> thm_tactic -> tactic) - : (thm -> thm_tactic -> tactic) Section INDUCT_THEN ended INDUCT_THEN = - : (thm -> thm_tactic -> tactic) File /build/hol88-NNpOMw/hol88-2.02.19940316/ml/ind.ml loaded () : void ###LIST_INDUCT_TAC = - : tactic ########################ltree_INDUCT = - : (thm -> thm) #######################ltree_INDUCT_TAC = - : tactic #######Node_onto = |- !l. ?v trl. l = Node v trl #########ALL_EL_MAP_lemma = |- !l. ALL_EL(\x. x)(MAP P l) = ALL_EL P l ####exists_lemma = |- !f. ?fn. !v tl. fn(Node v tl) = f(MAP fn tl)v tl ###############TRP_thm = |- !P. ?TRP. !v tl. TRP(Node v tl) = P v tl /\ ALL_EL TRP tl ##########lemma1 = |- !l x y. ALL_EL P l /\ ALL_EL(\e. P e ==> (x e = y e))l ==> (MAP x l = MAP y l) ######################TRP_EU = |- !TRP P. (!v tl. TRP(Node v tl) = P v tl /\ ALL_EL TRP tl) ==> (!f. (?fn. !v tl. TRP(Node v tl) ==> (fn(Node v tl) = f(MAP fn tl)v tl)) /\ (!x y. (!v tl. TRP(Node v tl) ==> (x(Node v tl) = f(MAP x tl)v tl)) ==> (!v tl. TRP(Node v tl) ==> (y(Node v tl) = f(MAP y tl)v tl)) ==> (!l. TRP l ==> (x l = y l)))) ######TRP_DEF = |- !P. TRP P = (@trp. !v tl. trp(Node v tl) = P v tl /\ ALL_EL trp tl) ########TRP = |- !P v tl. TRP P(Node v tl) = P v tl /\ ALL_EL(TRP P)tl ##############TRP_EU_thm = |- !P f. (?fn. !v tl. TRP P(Node v tl) ==> (fn(Node v tl) = f(MAP fn tl)v tl)) /\ (!x y. (!v tl. TRP P(Node v tl) ==> (x(Node v tl) = f(MAP x tl)v tl)) ==> (!v tl. TRP P(Node v tl) ==> (y(Node v tl) = f(MAP y tl)v tl)) ==> (!l. TRP P l ==> (x l = y l))) ########AR_lemma1 = |- (!a. ABS(REP a) = a) ==> (!r. TRP P r = (REP(ABS r) = r)) ==> (!tl. ALL_EL(TRP P)(MAP REP tl)) ############AR_lemma2 = |- (!a. ABS(REP a) = a) ==> (!r. TRP P r = (REP(ABS r) = r)) ==> (!tl v. P v(MAP REP tl) ==> (REP(ABS(Node v(MAP REP tl))) = Node v(MAP REP tl))) ############AR_lemma3 = |- (!a. ABS(REP a) = a) ==> (!r. TRP P r = (REP(ABS r) = r)) ==> (!trl. ALL_EL(TRP P)trl ==> (?tl. trl = MAP REP tl)) #######AR_lemma4 = |- (!a. ABS(REP a) = a) ==> (!al. MAP ABS(MAP REP al) = al) #####AR_lemma5 = .. |- !a. ?r. (a = ABS r) /\ TRP P r ###############################################################TY_DEF_THM = |- !REP ABS P. (!a. ABS(REP a) = a) /\ (!r. TRP P r = (REP(ABS r) = r)) ==> (!f. ?! fn. !v tl. P v(MAP REP tl) ==> (fn(ABS(Node v(MAP REP tl))) = f(MAP fn tl)v tl)) ########exists_TRP = |- !P. (?v. P v[]) ==> (?t. TRP P t) ##() : void ##=======> theory tydefs built cd /build/hol88-NNpOMw/hol88-2.02.19940316/theories; rm -f sum.th;\ /build/hol88-NNpOMw/hol88-2.02.19940316/basic-hol < /build/hol88-NNpOMw/hol88-2.02.19940316/theories/mk_sum.ml;\ cd /build/hol88-NNpOMw/hol88-2.02.19940316 BASIC-HOL version 2.02 (GCL) created 13/10/21 ############################################() : void ###Theory combin loaded () : void ###o_DEF = |- !f g. f o g = (\x. f(g x)) #o_THM = |- !f g x. (f o g)x = f(g x) ###################IS_SUM_REP = |- !f. IS_SUM_REP f = (?v1 v2. (f = (\b x y. (x = v1) /\ b)) \/ (f = (\b x y. (y = v2) /\ ~b))) ###########EXISTS_SUM_REP = |- ?f. IS_SUM_REP f #########sum_TY_DEF = |- ?rep. TYPE_DEFINITION IS_SUM_REP rep ##########sum_ISO_DEF = |- (!a. ABS_sum(REP_sum a) = a) /\ (!r. IS_SUM_REP r = (REP_sum(ABS_sum r) = r)) ######R_A = |- !r. (REP_sum(ABS_sum r) = r) = IS_SUM_REP r R_11 = |- (a = a') = (REP_sum a = REP_sum a') A_ONTO = |- !a. ?r. (a = ABS_sum r) /\ (?v1 v2. (r = (\b x y. (x = v1) /\ b)) \/ (r = (\b x y. (y = v2) /\ ~b))) ##########INL_DEF = |- !e. INL e = ABS_sum(\b x y. (x = e) /\ b) ######INR_DEF = |- !e. INR e = ABS_sum(\b x y. (y = e) /\ ~b) #######SIMP = - : (thm -> thm) #REWRITE1_TAC = - : thm_tactic #######REP_INL = |- REP_sum(INL v) = (\b x y. (x = v) /\ b) #######REP_INR = |- REP_sum(INR v) = (\b x y. (y = v) /\ ~b) #########INL_11 = |- (INL x = INL y) = (x = y) #########INR_11 = |- (INR x = INR y) = (x = y) ########INR_neq_INL = |- !v1 v2. ~(INR v2 = INL v1) ######EPS_lemma = |- (@x. y = x) = y #############################sum_axiom = |- !f g. ?! h. (h o INL = f) /\ (h o INR = g) ##############sum_Axiom = |- !f g. ?! h. (!x. h(INL x) = f x) /\ (!x. h(INR x) = g x) ################ISL_DEF = |- ?ISL. (!x. ISL(INL x)) /\ (!y. ~ISL(INR y)) ###ISL = |- (!x. ISL(INL x)) /\ (!y. ~ISL(INR y)) ##########ISR_DEF = |- ?ISR. (!x. ISR(INR x)) /\ (!y. ~ISR(INL y)) ###ISR = |- (!x. ISR(INR x)) /\ (!y. ~ISR(INL y)) ##########OUTL_DEF = |- ?OUTL. !x. OUTL(INL x) = x ###OUTL = |- !x. OUTL(INL x) = x ##########OUTR_DEF = |- ?OUTR. !x. OUTR(INR x) = x ###OUTR = |- !x. OUTR(INR x) = x ###() : void ###########################sum_EXISTS = |- !f g. ?h. (!x. h(INL x) = f x) /\ (!x. h(INR x) = g x) sum_UNIQUE = |- !f g h h'. ((!x. h(INL x) = f x) /\ (!x. h(INR x) = g x)) /\ (!x. h'(INL x) = f x) /\ (!x. h'(INR x) = g x) ==> (!s. h s = h' s) ########################sum_lemma = |- !v. (?x. v = INL x) \/ (?x. v = INR x) ########ISL_OR_ISR = |- !x. ISL x \/ ISR x ########INL = |- !x. ISL x ==> (INL(OUTL x) = x) ########INR = |- !x. ISR x ==> (INR(OUTR x) = x) ##=======> theory sum built cd /build/hol88-NNpOMw/hol88-2.02.19940316/theories; rm -f one.th;\ /build/hol88-NNpOMw/hol88-2.02.19940316/basic-hol < /build/hol88-NNpOMw/hol88-2.02.19940316/theories/mk_one.ml;\ cd /build/hol88-NNpOMw/hol88-2.02.19940316 BASIC-HOL version 2.02 (GCL) created 13/10/21 ##################################() : void ################EXISTS_ONE_REP = |- ?b. (\b. b)b #######one_TY_DEF = |- ?rep. (!x' x''. (rep x' = rep x'') ==> (x' = x'')) /\ (!x'''. (\b. b)x''' = (?x'. x''' = rep x')) ###one_DEF = |- one = (@x. T) ###() : void ###################one_axiom = |- !f g. f = g ##########one = |- !v. v = one ###########one_Axiom = |- !e. ?! fn. fn one = e ##=======> theory one built cd /build/hol88-NNpOMw/hol88-2.02.19940316/theories; rm -f HOL.th;\ echo 'new_theory `HOL`;;'\ 'map new_parent [`one`;`sum`;`tydefs`];;'\ 'close_theory();;'\ 'quit();;'\ | /build/hol88-NNpOMw/hol88-2.02.19940316/basic-hol;\ cd /build/hol88-NNpOMw/hol88-2.02.19940316 BASIC-HOL version 2.02 (GCL) created 13/10/21 #() : void Theory one loaded Theory sum loaded Theory tydefs loaded [(); (); ()] : void list () : void =======> theory HOL built echo 'load_theory `num`;;'\ 'compilet `ml/numconv`;;'\ 'quit();;'\ | basic-hol BASIC-HOL version 2.02 (GCL) created 13/10/21 #Theory num loaded () : void num_CONV = - : conv Calling Lisp compiler File ml/numconv compiled () : void #echo 'set_search_path[``; `/build/hol88-NNpOMw/hol88-2.02.19940316/theories/`];;'\ 'load_theory `HOL`;;'\ 'compilet `ml/tydefs`;;'\ 'quit();;'\ | basic-hol BASIC-HOL version 2.02 (GCL) created 13/10/21 #() : void Theory HOL loaded () : void ignore = - : (string -> bool) is_sing = - : (string -> bool) getid = - : (string -> string list -> (string # string list)) gettyvid = - : (string -> string list -> (string # string list)) gnt = - : (string list -> ((string + string + string + void) # string list)) isid = - : ((* + **) -> bool) istyvar = - : ((* + ** + ***) -> bool) is = - : ((* + ** + *** + ****) -> *** -> bool) end = - : ((* + ** + *** + ****) -> bool) istyop = - : ((string + *) -> bool) ckrb = - : ((* + ** + string + ***) -> (* + ** + string + ***)) mk_ty = - : ((string # type list) -> type) parse_types = - : (string -> string list -> ((type + void) list # string list)) parse_clause = - : (string -> string -> string list -> string list -> (string # (type + void) list # string list)) parse_clauses = - : (string -> string list -> string list -> (string # (type + void) list) list) parse_input = - : (string -> (string # (string # (type + void) list) list)) pargs = - : ((* + **) list -> (* list # term)) mk_tuple_ty = - : (type list -> type) mk_tuple = - : (term list -> term) mk_sum_ty = - : (type list -> type) inject = - : (type -> term list -> term list) mkvars = - : (type list -> term list) mk_subset_pred = - : ((type + *) list list -> term) splitf = - : ((* -> bool) -> * list -> (* list # * # * list)) prove_existence_thm = - : conv variant_tyvar = - : (type list -> string list -> type) OR_IMP_CONV = - : conv FORALL_IN_CONV = - : conv CONJS_CONV = - : (conv -> conv) EQN_ELIM_CONV = - : conv LENGTH_MAP_CONV = - : (thm -> conv) LENGTH_ELIM_CONV = - : conv MAP_CONV = - : conv ELIM_MAP_CONV = - : conv TRANSFORM = - : (term -> thm -> (term # thm)) part = - : (int -> * list -> (* list # * list)) define_const = - : ((string # (* + **) list # term) -> thm) DEFINE_CONSTRUCTORS = - : (string list -> (* + **) list list -> thm -> thm) mk_tests = - : (* list -> type -> (term # term list)) mk_proj = - : (term -> * list -> type -> term list) extract_list = - : (type -> term -> term -> term list) strip_inj = - : (term -> term) extract_tuple = - : (type -> term -> term -> term list) gen_names = - : ((bool # bool) -> * list list -> string list) mk_fun_ty = - : (term -> type -> type) make_rhs = - : (type -> term -> term -> (bool # term # string # term list) -> (term # term)) make_conditional = - : (term list -> term list -> term) make_function = - : ((* + **) list list -> thm -> goal) PROJ_CONV = - : conv TEST_SIMP_CONV = - : conv LIST_ELS = - : (term -> thm list) GEN_PROJ_CONV = - : conv TUPLE_COMPS = - : (thm -> thm list) SIMP_CONV = - : conv SIMPLIFY = - : (thm -> thm) define_type = - : (string -> string -> thm) - : (string -> string -> thm) define_type = - : (string -> string -> thm) Calling Lisp compiler File ml/tydefs compiled () : void #echo 'compilet `ml/ind`;;'\ 'quit();;'\ | basic-hol BASIC-HOL version 2.02 (GCL) created 13/10/21 # BETAS = - : (term -> term -> conv) GTAC = - : (term -> tactic) TACF = - : (term -> term -> thm_tactic -> tactic) TACS = - : (term -> term -> thm_tactic -> tactic list) GOALS = - : (* -> ((* # term) -> (** # ***)) list -> term -> (** list # *** list)) GALPH = - : conv GALPHA = - : conv mapshape = - : (int list -> (* list -> **) list -> * list -> ** list) INDUCT_THEN = - : (thm -> thm_tactic -> tactic) - : (thm -> thm_tactic -> tactic) INDUCT_THEN = - : (thm -> thm_tactic -> tactic) Calling Lisp compiler File ml/ind compiled () : void #echo 'compilet `ml/prim_rec`;;'\ 'quit();;'\ | basic-hol BASIC-HOL version 2.02 (GCL) created 13/10/21 # derive_existence_thm = - : (thm -> conv) mk_fn = - : ((term # term # term list # term # goal) -> (term # term list # thm)) instantiate_existence_thm = - : (thm -> conv) closeup = - : (term -> term) prove_rec_fn_exists = - : (thm -> conv) - : (thm -> conv) prove_rec_fn_exists = - : (thm -> conv) new_recursive_definition = - : (bool -> thm -> string -> conv) Calling Lisp compiler File ml/prim_rec compiled () : void #echo 'set_search_path[``; `/build/hol88-NNpOMw/hol88-2.02.19940316/theories/`];;'\ 'load_theory `HOL`;;'\ 'compilet `ml/tyfns`;;'\ 'quit();;'\ | basic-hol BASIC-HOL version 2.02 (GCL) created 13/10/21 #() : void Theory HOL loaded () : void () : void UNIQUENESS = - : (thm -> thm) DEPTH_FORALL_CONV = - : (conv -> conv) CONJS_CONV = - : (conv -> conv) CONJS_SIMP = - : (conv -> conv) T_AND_CONV = - : conv GENL_T = - : (term list -> thm) SIMP_CONV = - : conv HYP_SIMP = - : conv ANTE_ALL_CONV = - : conv CONCL_SIMP = - : conv prove_induction_thm = - : (thm -> thm) - : (thm -> thm) prove_induction_thm = - : (thm -> thm) NOT_ALL_THENC = - : (conv -> conv) BASE_CONV = - : conv STEP_CONV = - : conv NOT_IN_CONV = - : conv STEP_SIMP = - : conv DISJS_CHAIN = - : (conv -> thm -> thm) prove_cases_thm = - : (thm -> thm) - : (thm -> thm) prove_cases_thm = - : (thm -> thm) PAIR_EQ_CONV = - : conv list_variant = - : (term list -> term list -> term list) prove_const_one_one = - : (thm -> conv) prove_constructors_one_one = - : (thm -> thm) - : (thm -> thm) prove_constructors_one_one = - : (thm -> thm) prove_constructors_distinct = - : (thm -> thm) Calling Lisp compiler File ml/tyfns compiled () : void #echo 'set_search_path[``; `/build/hol88-NNpOMw/hol88-2.02.19940316/theories/`];;'\ 'load_theory `HOL`;;'\ 'compilet `ml/num`;;'\ 'quit();;'\ | basic-hol BASIC-HOL version 2.02 (GCL) created 13/10/21 #() : void Theory HOL loaded () : void () : void INDUCT = - : ((thm # thm) -> thm) INDUCT_TAC = - : tactic new_prim_rec_definition = - : ((string # term) -> thm) new_infix_prim_rec_definition = - : ((string # term) -> thm) ADD_CONV = - : conv num_EQ_CONV = - : conv EXISTS_LEAST_CONV = - : conv EXISTS_GREATEST_CONV = - : conv term_of_int = - : (int -> term) int_of_term = - : (term -> int) Calling Lisp compiler File ml/num compiled () : void #echo 'set_search_path[``; `/build/hol88-NNpOMw/hol88-2.02.19940316/theories/`];;'\ 'load_theory `HOL`;;'\ 'compilet `ml/list`;;'\ 'quit();;'\ | basic-hol BASIC-HOL version 2.02 (GCL) created 13/10/21 #() : void Theory HOL loaded () : void () : void LIST_INDUCT = - : ((thm # thm) -> thm) LIST_INDUCT_TAC = - : tactic SNOC_INDUCT_TAC = - : tactic EQ_LENGTH_INDUCT_TAC = - : tactic EQ_LENGTH_SNOC_INDUCT_TAC = - : tactic new_list_rec_definition = - : ((string # term) -> thm) new_infix_list_rec_definition = - : ((string # term) -> thm) LENGTH_CONV = - : conv list_EQ_CONV = - : (conv -> conv) check_const = - : (string -> term -> bool) int_of_term = - : (term -> int) term_of_int = - : (int -> term) APPEND_CONV = - : conv MAP_CONV = - : (conv -> conv) FOLDR_CONV = - : (conv -> conv) FOLDL_CONV = - : (conv -> conv) list_FOLD_CONV = - : (thm -> conv -> conv) SUM_CONV = - : conv FILTER_CONV = - : (conv -> conv) SNOC_CONV = - : conv REVERSE_CONV = - : conv FLAT_CONV = - : conv EL_CONV = - : conv ELL_CONV = - : conv MAP2_CONV = - : (conv -> conv) ALL_EL_CONV = - : (conv -> conv) SOME_EL_CONV = - : (conv -> conv) IS_EL_CONV = - : (conv -> conv) LAST_CONV = - : conv BUTLAST_CONV = - : conv SUC_CONV = - : conv SEG_CONV = - : conv LASTN_CONV = - : conv BUTLASTN_CONV = - : conv BUTFIRSTN_CONV = - : conv FIRSTN_CONV = - : conv SCANL_CONV = - : (conv -> conv) SCANR_CONV = - : (conv -> conv) REPLICATE_CONV = - : conv GENLIST_CONV = - : (conv -> conv) ((-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), -) : (conv # (conv -> conv) # (conv -> conv) # (conv -> conv) # (thm -> conv -> conv) # conv # (conv -> conv) # conv # conv # conv # conv # conv # (conv -> conv) # (conv -> conv) # (conv -> conv) # (conv -> conv) # conv # conv # conv # conv # conv # conv # conv # (conv -> conv) # (conv -> conv) # conv # (conv -> conv)) APPEND_CONV = - : conv MAP_CONV = - : (conv -> conv) FOLDR_CONV = - : (conv -> conv) FOLDL_CONV = - : (conv -> conv) list_FOLD_CONV = - : (thm -> conv -> conv) SUM_CONV = - : conv FILTER_CONV = - : (conv -> conv) SNOC_CONV = - : conv REVERSE_CONV = - : conv FLAT_CONV = - : conv EL_CONV = - : conv ELL_CONV = - : conv MAP2_CONV = - : (conv -> conv) ALL_EL_CONV = - : (conv -> conv) SOME_EL_CONV = - : (conv -> conv) IS_EL_CONV = - : (conv -> conv) LAST_CONV = - : conv BUTLAST_CONV = - : conv SEG_CONV = - : conv LASTN_CONV = - : conv BUTLASTN_CONV = - : conv BUTFIRSTN_CONV = - : conv FIRSTN_CONV = - : conv SCANL_CONV = - : (conv -> conv) SCANR_CONV = - : (conv -> conv) REPLICATE_CONV = - : conv GENLIST_CONV = - : (conv -> conv) Calling Lisp compiler File ml/list compiled () : void #echo 'compilet `ml/lib_loader`;;'\ 'quit();;'\ | basic-hol BASIC-HOL version 2.02 (GCL) created 13/10/21 # define_load_lib_function = - : (string list -> void -> void) library_loader = - : ((string # string list # string list # string list # string # string # string list) -> void) Calling Lisp compiler File ml/lib_loader compiled () : void #if [ cl = cl ]; then\ echo '#+allegro (progn () (set-case-mode :case-insensitive-upper) (setq *cltl1-in-package-compatibility-p* t) (setq comp:*cltl1-compile-file-toplevel-compatibility-p* t) (setq *enable-package-locked-errors* nil))'\ '(load "lisp/f-cl") (compile-file "lisp/banner.l") (quit)'\ | gcl; else\ lisp/banner; fi GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ >;; Loading "lisp/f-cl" start address -T 0x9705e0 ;; Finished loading "lisp/f-cl" 21984 > Compiling lisp/banner.l. End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/hol88-NNpOMw/hol88-2.02.19940316/lisp/banner.o. #p"/build/hol88-NNpOMw/hol88-2.02.19940316/lisp/banner.o" >echo 'set_search_path[``; `/build/hol88-NNpOMw/hol88-2.02.19940316/theories/`];;'\ 'load_theory `HOL`;;'\ 'loadf `ml/load_thms`;;'\ 'loadf `ml/lib_loader`;;'\ 'loadf `ml/numconv`;;'\ 'loadf `ml/tydefs`;;'\ 'loadf `ml/ind`;;'\ 'loadf `ml/prim_rec`;;'\ 'loadf `ml/tyfns`;;'\ 'loadf `ml/num`;;'\ 'loadf `ml/list`;;'\ 'map delete_cache [`arithmetic`;`sum`;`list`];;'\ 'map delete_cache [`tree`;`ltree`;`prim_rec`];;'\ 'lisp `(load "lisp/banner")`;;'\ 'lisp `(setq %system-name "HOL")`;;'\ 'lisp `(setq %hol-dir "/build/hol88-NNpOMw/hol88-2.02.19940316")`;;'\ 'lisp `(setq %lib-dir "/build/hol88-NNpOMw/hol88-2.02.19940316/Library")`;;'\ 'lisp `(setq %liszt "")`;;'\ 'lisp `(setq %version "2.02 (GCL)")`;;'\ 'set_flag(`abort_when_fail`,false);;'\ 'set_search_path[``; `~/`; `/build/hol88-NNpOMw/hol88-2.02.19940316/theories/`];;'\ 'set_help_search_path (words `/build/hol88-NNpOMw/hol88-2.02.19940316/help/ENTRIES/`);;'\ 'set_library_search_path [`/build/hol88-NNpOMw/hol88-2.02.19940316/Library/`];;'\ 'lisp `(setup)`;;' >foo2 echo 'lisp `(throw (quote eof) t)`;; #+native-reloc(progn (with-open-file (s "foo2") (let ((*standard-input* s)) (tml)))(ml-save "hol")) #-native-reloc(let ((si::*collect-binary-modules* t)(si::*binary-modules* (with-open-file (s "bm.l") (read s)))) (with-open-file (s "foo2") (let ((*standard-input* s)) (tml)))(compiler::link (remove-duplicates si::*binary-modules* :test (function equal)) "hol" "(progn (load \"debian/gcl_patch.l\")(load \"foo\")(with-open-file (s \"foo1\") (let ((*standard-input* s)) (tml)))(with-open-file (s \"foo2\") (let ((*standard-input* s)) (tml)))(ml-save \"hol\")(quit))" "" nil)(quit))`;;' | basic-hol BASIC-HOL version 2.02 (GCL) created 13/10/21 #GCL (GNU Common Lisp) 2.6.12 CLtL1 Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files: /tmp/ > BASIC-HOL version 2.02 (GCL) created 13/10/21 #() : void Theory HOL loaded () : void .........() : void #..() : void .() : void .......................................................() : void ...........() : void ........() : void ..............................() : void ...........() : void ...........................................() : void [(); (); ()] : void list [(); (); ()] : void list () : void () : void () : void () : void () : void () : void true : bool () : void () : void () : void () : void #make permissions make[3]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316' find $(ls -1 | grep -v debian) \ \( -type d -exec chmod 775 {} \; \) -o\ \( -type f -exec chmod 664 {} \; \) for f in hol hol-lcf basic-hol Manual/LaTeX/makeindex Manual/LaTeX/makeindex.bin/*/makeindex Manual/Reference/bin/mktex Manual/Reference/bin/typecheck ; do\ ( if [ -f $f ] ; then\ find $f -exec chmod 775 {} \; ;fi) ; \ done make[3]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316' =======> hol88 version 2.02 (GCL) made make[2]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316' date Wed Oct 13 16:01:12 UTC 2021 /usr/bin/make library make[2]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316' date Wed Oct 13 16:01:12 UTC 2021 (cd /build/hol88-NNpOMw/hol88-2.02.19940316/Library; /usr/bin/make LispType=cl\ Obj=o\ Lisp=gcl\ Liszt=\ LispDir=/build/hol88-NNpOMw/hol88-2.02.19940316/lisp\ Hol=/build/hol88-NNpOMw/hol88-2.02.19940316/hol library; cd ..) make[3]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library' for lib in unwind taut sets reduce arith pred_sets string finite_sets res_quan wellorder abs_theory reals window pair word record_proof parser prettyp trs latex-hol more_arithmetic numeral ind_defs ; \ do (cd $lib; /usr/bin/make LispType=cl\ Obj=o\ Lisp=gcl\ Liszt=\ LispDir=/build/hol88-NNpOMw/hol88-2.02.19940316/lisp\ Hol=/build/hol88-NNpOMw/hol88-2.02.19940316/hol all; cd ..) ; \ done make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/unwind' echo 'set_flag(`abort_when_fail`,true);;'\ 'compilet `unwinding`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool DEPTH_FORALL_CONV = - : (conv -> conv) DEPTH_EXISTS_CONV = - : (conv -> conv) FLATTEN_CONJ_CONV = - : conv CONJ_FORALL_ONCE_CONV = - : conv FORALL_CONJ_ONCE_CONV = - : conv CONJ_FORALL_CONV = - : conv FORALL_CONJ_CONV = - : conv CONJ_FORALL_RIGHT_RULE = - : (thm -> thm) FORALL_CONJ_RIGHT_RULE = - : (thm -> thm) UNFOLD_CONV = - : (thm list -> conv) UNFOLD_RIGHT_RULE = - : (thm list -> thm -> thm) line_var = - : (term -> term) line_name = - : (term -> string) UNWIND_ONCE_CONV = - : ((term -> bool) -> conv) UNWIND_CONV = - : ((term -> bool) -> conv) UNWIND_ALL_BUT_CONV = - : (string list -> conv) UNWIND_AUTO_CONV = - : conv UNWIND_ALL_BUT_RIGHT_RULE = - : (string list -> thm -> thm) UNWIND_AUTO_RIGHT_RULE = - : (thm -> thm) EXISTS_DEL1_CONV = - : conv EXISTS_DEL_CONV = - : conv EXISTS_EQN_CONV = - : conv PRUNE_ONCE_CONV = - : conv PRUNE_ONE_CONV = - : (string -> conv) PRUNE_SOME_CONV = - : (string list -> conv) PRUNE_CONV = - : conv PRUNE_SOME_RIGHT_RULE = - : (string list -> thm -> thm) PRUNE_RIGHT_RULE = - : (thm -> thm) EXPAND_ALL_BUT_CONV = - : (string list -> thm list -> conv) EXPAND_AUTO_CONV = - : (thm list -> conv) EXPAND_ALL_BUT_RIGHT_RULE = - : (string list -> thm list -> thm -> thm) EXPAND_AUTO_RIGHT_RULE = - : (thm list -> thm -> thm) Calling Lisp compiler File unwinding compiled () : void #===> library unwind rebuilt make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/unwind' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/taut' echo 'set_flag(`abort_when_fail`,true);;'\ 'compilet `taut_check`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool is_T = - : (term -> bool) is_F = - : (term -> bool) BOOL_CASES_T_F = |- !f. (f T = F) ==> ((!x. f x) = F) BOOL_CASES_F_F = |- !f. (f F = F) ==> ((!x. f x) = F) BOOL_CASES_BOTH_T_RULE = - : ((thm # thm) -> conv) BOOL_CASES_T_F_RULE = - : (thm -> conv) BOOL_CASES_F_F_RULE = - : (thm -> conv) qconv = `QCONV` : string QCONV = - : (conv -> conv) ALL_QCONV = - : conv THENQC = - : (conv -> conv -> conv) ORELSEQC = - : (conv -> conv -> conv) TRY_QCONV = - : (conv -> conv) RAND_QCONV = - : (conv -> conv) RATOR_QCONV = - : (conv -> conv) ABS_QCONV = - : (conv -> conv) T_REFL = |- T = T F_REFL = |- F = F NOT_CONV = - : conv EQ_CONV = - : conv EQ_THEN_NOT_CONV = - : conv AND_CONV = - : conv OR_CONV = - : conv IMP_CONV = - : conv IMP_THEN_NOT_CONV = - : conv IF_CONV = - : conv SIMP_PROP_QCONV = - : conv DEPTH_FORALL_QCONV = - : (conv -> conv) FORALL_T = - : (term list -> thm) FORALL_F = - : (term list -> thm) TAUT_CHECK_CONV = - : conv PTAUT_CONV = - : conv PTAUT_TAC = - : tactic PTAUT_PROVE = - : conv non_prop_terms = - : (term -> term list) TAUT_CONV = - : conv TAUT_TAC = - : tactic TAUT_PROVE = - : conv ((-), (-), (-), (-), (-), -) : (conv # tactic # conv # conv # tactic # conv) PTAUT_CONV = - : conv PTAUT_TAC = - : tactic PTAUT_PROVE = - : conv TAUT_CONV = - : conv TAUT_TAC = - : tactic TAUT_PROVE = - : conv Calling Lisp compiler File taut_check compiled () : void #===> library taut rebuilt make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/taut' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/sets' rm -f sets.th echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `mk_sets`;;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool () : void EXISTENCE_THM = |- ?s. (\p. T)s set_TY_DEF = |- ?rep. TYPE_DEFINITION(\p. T)rep set_ISO_DEF = |- (!a. SPEC(CHF a) = a) /\ (!r. (\p. T)r = (CHF(SPEC r) = r)) CHF_11 = |- !a a'. (CHF a = CHF a') = (a = a') set_ISO_DEF = |- (!a. SPEC(CHF a) = a) /\ (!r. CHF(SPEC r) = r) IN_DEF = |- !x s. x IN s = CHF s x SPECIFICATION = |- !P x. x IN (SPEC P) = P x EXTENSION = |- !s t. (s = t) = (!x. x IN s = x IN t) NOT_EQUAL_SETS = |- !s t. ~(s = t) = (?x. x IN t = ~x IN s) Theorem NOT_LESS autoloading from theory `arithmetic` ... NOT_LESS = |- !m n. ~m < n = n <= m Theorem WOP autoloading from theory `arithmetic` ... WOP = |- !P. (?n. P n) ==> (?n. P n /\ (!m. m < n ==> ~P m)) NUM_SET_WOP = |- !s. (?n. n IN s) = (?n. n IN s /\ (!m. m IN s ==> n <= m)) GSPEC_DEF = |- !f. GSPEC f = SPEC(\y. ?x. y,T = f x) GSPECIFICATION = |- !f v. v IN (GSPEC f) = (?x. v,T = f x) Section SET_SPEC_CONV begun dest_tuple = - : (term -> term list) MK_PAIR = - : (* list -> conv) EXISTS_TUPLE_CONV = - : (term list -> conv) PAIR_EQ_CONV = - : conv ELIM_EXISTS_CONV = - : conv PROVE_EXISTS = - : conv list_variant = - : (term list -> term list -> term list) SET_SPEC_CONV = - : conv - : conv Section SET_SPEC_CONV ended SET_SPEC_CONV = - : conv File gspec.ml loaded () : void () : void true : bool lemma = |- !s x. x IN s ==> (!f. (f x) IN {f x | x IN s}) SET_MINIMUM = |- !s M. (?x. x IN s) = (?x. x IN s /\ (!y. y IN s ==> (M x) <= (M y))) EMPTY_DEF = |- EMPTY = SPEC(\x. F) NOT_IN_EMPTY = |- !x. ~x IN EMPTY MEMBER_NOT_EMPTY = |- !s. (?x. x IN s) = ~(s = EMPTY) UNIV_DEF = |- UNIV = SPEC(\x. T) IN_UNIV = |- !x. x IN UNIV UNIV_NOT_EMPTY = |- ~(UNIV = EMPTY) EMPTY_NOT_UNIV = |- ~(EMPTY = UNIV) EQ_UNIV = |- (!x. x IN s) = (s = UNIV) SUBSET_DEF = |- !s t. s SUBSET t = (!x. x IN s ==> x IN t) SUBSET_TRANS = |- !s t u. s SUBSET t /\ t SUBSET u ==> s SUBSET u SUBSET_REFL = |- !s. s SUBSET s SUBSET_ANTISYM = |- !s t. s SUBSET t /\ t SUBSET s ==> (s = t) EMPTY_SUBSET = |- !s. EMPTY SUBSET s SUBSET_EMPTY = |- !s. s SUBSET EMPTY = (s = EMPTY) SUBSET_UNIV = |- !s. s SUBSET UNIV UNIV_SUBSET = |- !s. UNIV SUBSET s = (s = UNIV) PSUBSET_DEF = |- !s t. s PSUBSET t = s SUBSET t /\ ~(s = t) PSUBSET_TRANS = |- !s t u. s PSUBSET t /\ t PSUBSET u ==> s PSUBSET u PSUBSET_IRREFL = |- !s. ~s PSUBSET s NOT_PSUBSET_EMPTY = |- !s. ~s PSUBSET EMPTY NOT_UNIV_PSUBSET = |- !s. ~UNIV PSUBSET s PSUBSET_UNIV = |- !s. s PSUBSET UNIV = (?x. ~x IN s) UNION_DEF = |- !s t. s UNION t = {x | x IN s \/ x IN t} IN_UNION = |- !s t x. x IN (s UNION t) = x IN s \/ x IN t UNION_ASSOC = |- !s t u. (s UNION t) UNION u = s UNION (t UNION u) UNION_IDEMPOT = |- !s. s UNION s = s UNION_COMM = |- !s t. s UNION t = t UNION s SUBSET_UNION = |- (!s t. s SUBSET (s UNION t)) /\ (!s t. s SUBSET (t UNION s)) SUBSET_UNION_ABSORPTION = |- !s t. s SUBSET t = (s UNION t = t) UNION_EMPTY = |- (!s. EMPTY UNION s = s) /\ (!s. s UNION EMPTY = s) UNION_UNIV = |- (!s. UNIV UNION s = UNIV) /\ (!s. s UNION UNIV = UNIV) EMPTY_UNION = |- !s t. (s UNION t = EMPTY) = (s = EMPTY) /\ (t = EMPTY) INTER_DEF = |- !s t. s INTER t = {x | x IN s /\ x IN t} IN_INTER = |- !s t x. x IN (s INTER t) = x IN s /\ x IN t INTER_ASSOC = |- !s t u. (s INTER t) INTER u = s INTER (t INTER u) INTER_IDEMPOT = |- !s. s INTER s = s INTER_COMM = |- !s t. s INTER t = t INTER s INTER_SUBSET = |- (!s t. (s INTER t) SUBSET s) /\ (!s t. (t INTER s) SUBSET s) SUBSET_INTER_ABSORPTION = |- !s t. s SUBSET t = (s INTER t = s) INTER_EMPTY = |- (!s. EMPTY INTER s = EMPTY) /\ (!s. s INTER EMPTY = EMPTY) INTER_UNIV = |- (!s. UNIV INTER s = s) /\ (!s. s INTER UNIV = s) UNION_OVER_INTER = |- !s t u. s INTER (t UNION u) = (s INTER t) UNION (s INTER u) INTER_OVER_UNION = |- !s t u. s UNION (t INTER u) = (s UNION t) INTER (s UNION u) DISJOINT_DEF = |- !s t. DISJOINT s t = (s INTER t = EMPTY) IN_DISJOINT = |- !s t. DISJOINT s t = ~(?x. x IN s /\ x IN t) DISJOINT_SYM = |- !s t. DISJOINT s t = DISJOINT t s DISJOINT_EMPTY = |- !s. DISJOINT EMPTY s /\ DISJOINT s EMPTY DISJOINT_EMPTY_REFL = |- !s. (s = EMPTY) = DISJOINT s s DISJOINT_UNION = |- !s t u. DISJOINT(s UNION t)u = DISJOINT s u /\ DISJOINT t u DIFF_DEF = |- !s t. s DIFF t = {x | x IN s /\ ~x IN t} IN_DIFF = |- !s t x. x IN (s DIFF t) = x IN s /\ ~x IN t DIFF_EMPTY = |- !s. s DIFF EMPTY = s EMPTY_DIFF = |- !s. EMPTY DIFF s = EMPTY DIFF_UNIV = |- !s. s DIFF UNIV = EMPTY DIFF_DIFF = |- !s t. (s DIFF t) DIFF t = s DIFF t DIFF_EQ_EMPTY = |- !s. s DIFF s = EMPTY INSERT_DEF = |- !x s. x INSERT s = {y | (y = x) \/ y IN s} () : void IN_INSERT = |- !x y s. x IN (y INSERT s) = (x = y) \/ x IN s COMPONENT = |- !x s. x IN (x INSERT s) SET_CASES = |- !s. (s = {}) \/ (?x t. (s = x INSERT t) /\ ~x IN t) DECOMPOSITION = |- !s x. x IN s = (?t. (s = x INSERT t) /\ ~x IN t) ABSORPTION = |- !x s. x IN s = (x INSERT s = s) INSERT_INSERT = |- !x s. x INSERT (x INSERT s) = x INSERT s INSERT_COMM = |- !x y s. x INSERT (y INSERT s) = y INSERT (x INSERT s) INSERT_UNIV = |- !x. x INSERT UNIV = UNIV NOT_INSERT_EMPTY = |- !x s. ~(x INSERT s = {}) NOT_EMPTY_INSERT = |- !x s. ~({} = x INSERT s) INSERT_UNION = |- !x s t. (x INSERT s) UNION t = (x IN t => s UNION t | x INSERT (s UNION t)) INSERT_UNION_EQ = |- !x s t. (x INSERT s) UNION t = x INSERT (s UNION t) INSERT_INTER = |- !x s t. (x INSERT s) INTER t = (x IN t => x INSERT (s INTER t) | s INTER t) DISJOINT_INSERT = |- !x s t. DISJOINT(x INSERT s)t = DISJOINT s t /\ ~x IN t INSERT_SUBSET = |- !x s t. (x INSERT s) SUBSET t = x IN t /\ s SUBSET t SUBSET_INSERT = |- !x s. ~x IN s ==> (!t. s SUBSET (x INSERT t) = s SUBSET t) INSERT_DIFF = |- !s t x. (x INSERT s) DIFF t = (x IN t => s DIFF t | x INSERT (s DIFF t)) DELETE_DEF = |- !s x. s DELETE x = s DIFF {x} IN_DELETE = |- !s x y. x IN (s DELETE y) = x IN s /\ ~(x = y) DELETE_NON_ELEMENT = |- !x s. ~x IN s = (s DELETE x = s) IN_DELETE_EQ = |- !s x x'. (x IN s = x' IN s) = (x IN (s DELETE x') = x' IN (s DELETE x)) EMPTY_DELETE = |- !x. {} DELETE x = {} DELETE_DELETE = |- !x s. (s DELETE x) DELETE x = s DELETE x DELETE_COMM = |- !x y s. (s DELETE x) DELETE y = (s DELETE y) DELETE x DELETE_SUBSET = |- !x s. (s DELETE x) SUBSET s SUBSET_DELETE = |- !x s t. s SUBSET (t DELETE x) = ~x IN s /\ s SUBSET t SUBSET_INSERT_DELETE = |- !x s t. s SUBSET (x INSERT t) = (s DELETE x) SUBSET t DIFF_INSERT = |- !s t x. s DIFF (x INSERT t) = (s DELETE x) DIFF t PSUBSET_INSERT_SUBSET = |- !s t. s PSUBSET t = (?x. ~x IN s /\ (x INSERT s) SUBSET t) lemma = |- ~(a = b) = (b = ~a) PSUBSET_MEMBER = |- !s t. s PSUBSET t = s SUBSET t /\ (?y. y IN t /\ ~y IN s) DELETE_INSERT = |- !x y s. (x INSERT s) DELETE y = ((x = y) => s DELETE y | x INSERT (s DELETE y)) INSERT_DELETE = |- !x s. x IN s ==> (x INSERT (s DELETE x) = s) DELETE_INTER = |- !s t x. (s DELETE x) INTER t = (s INTER t) DELETE x DISJOINT_DELETE_SYM = |- !s t x. DISJOINT(s DELETE x)t = DISJOINT(t DELETE x)s CHOICE_EXISTS = |- ?CHOICE. !s. ~(s = {}) ==> (CHOICE s) IN s CHOICE_DEF = |- !s. ~(s = {}) ==> (CHOICE s) IN s REST_DEF = |- !s. REST s = s DELETE (CHOICE s) CHOICE_NOT_IN_REST = |- !s. ~(CHOICE s) IN (REST s) CHOICE_INSERT_REST = |- !s. ~(s = {}) ==> ((CHOICE s) INSERT (REST s) = s) REST_SUBSET = |- !s. (REST s) SUBSET s lemma = |- (P /\ Q = P) = P ==> Q REST_PSUBSET = |- !s. ~(s = {}) ==> (REST s) PSUBSET s SING_DEF = |- !s. SING s = (?x. s = {x}) SING = |- !x. SING{x} IN_SING = |- !x y. x IN {y} = (x = y) NOT_SING_EMPTY = |- !x. ~({x} = {}) NOT_EMPTY_SING = |- !x. ~({} = {x}) EQUAL_SING = |- !x y. ({x} = {y}) = (x = y) DISJOINT_SING_EMPTY = |- !x. DISJOINT{x}{} INSERT_SING_UNION = |- !s x. x INSERT s = {x} UNION s SING_DELETE = |- !x. {x} DELETE x = {} DELETE_EQ_SING = |- !s x. x IN s ==> ((s DELETE x = {}) = (s = {x})) CHOICE_SING = |- !x. CHOICE{x} = x REST_SING = |- !x. REST{x} = {} SING_IFF_EMPTY_REST = |- !s. SING s = ~(s = {}) /\ (REST s = {}) IMAGE_DEF = |- !f s. IMAGE f s = {f x | x IN s} IN_IMAGE = |- !y s f. y IN (IMAGE f s) = (?x. (y = f x) /\ x IN s) IMAGE_IN = |- !x s. x IN s ==> (!f. (f x) IN (IMAGE f s)) IMAGE_EMPTY = |- !f. IMAGE f{} = {} IMAGE_ID = |- !s. IMAGE(\x. x)s = s Theorem o_THM autoloading from theory `combin` ... o_THM = |- !f g x. (f o g)x = f(g x) IMAGE_COMPOSE = |- !f g s. IMAGE(f o g)s = IMAGE f(IMAGE g s) IMAGE_INSERT = |- !f x s. IMAGE f(x INSERT s) = (f x) INSERT (IMAGE f s) IMAGE_EQ_EMPTY = |- !s f. (IMAGE f s = {}) = (s = {}) IMAGE_DELETE = |- !f x s. ~x IN s ==> (IMAGE f(s DELETE x) = IMAGE f s) IMAGE_UNION = |- !f s t. IMAGE f(s UNION t) = (IMAGE f s) UNION (IMAGE f t) IMAGE_SUBSET = |- !s t. s SUBSET t ==> (!f. (IMAGE f s) SUBSET (IMAGE f t)) IMAGE_INTER = |- !f s t. (IMAGE f(s INTER t)) SUBSET ((IMAGE f s) INTER (IMAGE f t)) INJ_DEF = |- !f s t. INJ f s t = (!x. x IN s ==> (f x) IN t) /\ (!x y. x IN s /\ y IN s ==> (f x = f y) ==> (x = y)) INJ_ID = |- !s. INJ(\x. x)s s INJ_COMPOSE = |- !f g s t u. INJ f s t /\ INJ g t u ==> INJ(g o f)s u INJ_EMPTY = |- !f. (!s. INJ f{}s) /\ (!s. INJ f s{} = (s = {})) SURJ_DEF = |- !f s t. SURJ f s t = (!x. x IN s ==> (f x) IN t) /\ (!x. x IN t ==> (?y. y IN s /\ (f y = x))) SURJ_ID = |- !s. SURJ(\x. x)s s SURJ_COMPOSE = |- !f g s t u. SURJ f s t /\ SURJ g t u ==> SURJ(g o f)s u SURJ_EMPTY = |- !f. (!s. SURJ f{}s = (s = {})) /\ (!s. SURJ f s{} = (s = {})) IMAGE_SURJ = |- !f s t. SURJ f s t = (IMAGE f s = t) BIJ_DEF = |- !f s t. BIJ f s t = INJ f s t /\ SURJ f s t BIJ_ID = |- !s. BIJ(\x. x)s s BIJ_EMPTY = |- !f. (!s. BIJ f{}s = (s = {})) /\ (!s. BIJ f s{} = (s = {})) BIJ_COMPOSE = |- !f g s t u. BIJ f s t /\ BIJ g t u ==> BIJ(g o f)s u lemma1 = |- !f s. (!x y. x IN s /\ y IN s ==> (f x = f y) ==> (x = y)) = (!y. y IN s ==> (!x. x IN s /\ (f x = f y) = y IN s /\ (x = y))) lemma2 = |- !f s. ?g. !t. INJ f s t ==> (!x. x IN s ==> (g(f x) = x)) LINV_DEF = |- !f s t. INJ f s t ==> (!x. x IN s ==> (LINV f s(f x) = x)) lemma3 = |- !f s. ?g. !t. SURJ f s t ==> (!x. x IN t ==> (f(g x) = x)) RINV_DEF = |- !f s t. SURJ f s t ==> (!x. x IN t ==> (f(RINV f s x) = x)) FINITE_DEF = |- !s. FINITE s = (!P. P{} /\ (!s'. P s' ==> (!e. P(e INSERT s'))) ==> P s) FINITE_EMPTY = |- FINITE{} FINITE_INSERT = |- !s. FINITE s ==> (!x. FINITE(x INSERT s)) SIMPLE_FINITE_INDUCT = |- !P. P{} /\ (!s. P s ==> (!e. P(e INSERT s))) ==> (!s. FINITE s ==> P s) lemma = |- P{} /\ (!s. FINITE s /\ P s ==> (!e. FINITE(e INSERT s) /\ P(e INSERT s))) ==> (!s. FINITE s ==> P s) FINITE_INDUCT = |- !P. P{} /\ (!s. FINITE s /\ P s ==> (!e. ~e IN s ==> P(e INSERT s))) ==> (!s. FINITE s ==> P s) SET_INDUCT_TAC = - : tactic File set_ind loaded () : void FINITE_DELETE = |- !s. FINITE s ==> (!x. FINITE(s DELETE x)) INSERT_FINITE = |- !x s. FINITE(x INSERT s) ==> FINITE s FINITE_INSERT = |- !x s. FINITE(x INSERT s) = FINITE s DELETE_FINITE = |- !x s. FINITE(s DELETE x) ==> FINITE s FINITE_DELETE = |- !x s. FINITE(s DELETE x) = FINITE s UNION_FINITE = |- !s. FINITE s ==> (!t. FINITE t ==> FINITE(s UNION t)) FINITE_UNION_LEMMA = |- !s. FINITE s ==> (!t. FINITE(s UNION t) ==> FINITE t) FINITE_UNION = |- !s t. FINITE(s UNION t) ==> FINITE s /\ FINITE t FINITE_UNION = |- !s t. FINITE(s UNION t) = FINITE s /\ FINITE t INTER_FINITE = |- !s. FINITE s ==> (!t. FINITE(s INTER t)) SUBSET_FINITE = |- !s. FINITE s ==> (!t. t SUBSET s ==> FINITE t) PSUBSET_FINITE = |- !s. FINITE s ==> (!t. t PSUBSET s ==> FINITE t) FINITE_DIFF = |- !s. FINITE s ==> (!t. FINITE(s DIFF t)) FINITE_SING = |- !x. FINITE{x} SING_FINITE = |- !s. SING s ==> FINITE s IMAGE_FINITE = |- !s. FINITE s ==> (!f. FINITE(IMAGE f s)) card_rel_def = "(!s. R s 0 = (s = {})) /\ (!s n. R s(SUC n) = (?x. x IN s /\ R(s DELETE x)n))" : term Theorem num_Axiom autoloading from theory `prim_rec` ... num_Axiom = |- !e f. ?! fn. (fn 0 = e) /\ (!n. fn(SUC n) = f(fn n)n) CARD_REL_EXISTS = |- ?R. (!s. R s 0 = (s = {})) /\ (!s n. R s(SUC n) = (?x. x IN s /\ R(s DELETE x)n)) CARD_REL_DEL_LEMMA = .. |- !n s x. x IN s ==> R(s DELETE x)n ==> (!y. y IN s ==> R(s DELETE y)n) Theorem INV_SUC_EQ autoloading from theory `prim_rec` ... INV_SUC_EQ = |- !m n. (SUC m = SUC n) = (m = n) Theorem NOT_SUC autoloading from theory `num` ... NOT_SUC = |- !n. ~(SUC n = 0) CARD_REL_UNIQUE = .. |- !n s. R s n ==> (!m. R s m ==> (n = m)) CARD_REL_EXISTS_LEMMA = .. |- !s. FINITE s ==> (?n. R s n) CARD_REL_THM = .. |- !m s. FINITE s ==> (((@n. R s n) = m) = R s m) CARD_EXISTS = |- ?CARD. (CARD{} = 0) /\ (!s. FINITE s ==> (!x. CARD(x INSERT s) = (x IN s => CARD s | SUC(CARD s)))) CARD_DEF = |- (CARD{} = 0) /\ (!s. FINITE s ==> (!x. CARD(x INSERT s) = (x IN s => CARD s | SUC(CARD s)))) CARD_EMPTY = |- CARD{} = 0 CARD_INSERT = |- !s. FINITE s ==> (!x. CARD(x INSERT s) = (x IN s => CARD s | SUC(CARD s))) CARD_EQ_0 = |- !s. FINITE s ==> ((CARD s = 0) = (s = {})) Theorem num_CASES autoloading from theory `arithmetic` ... num_CASES = |- !m. (m = 0) \/ (?n. m = SUC n) Theorem SUC_SUB1 autoloading from theory `arithmetic` ... SUC_SUB1 = |- !m. (SUC m) - 1 = m CARD_DELETE = |- !s. FINITE s ==> (!x. CARD(s DELETE x) = (x IN s => (CARD s) - 1 | CARD s)) Theorem LESS_MONO_EQ autoloading from theory `arithmetic` ... LESS_MONO_EQ = |- !m n. (SUC m) < (SUC n) = m < n Definition LESS_OR_EQ autoloading from theory `arithmetic` ... LESS_OR_EQ = |- !m n. m <= n = m < n \/ (m = n) lemma1 = |- !n m. (SUC n) <= (SUC m) = n <= m Theorem LESS_THM autoloading from theory `prim_rec` ... LESS_THM = |- !m n. m < (SUC n) = (m = n) \/ m < n lemma2 = |- !n m. n <= (SUC m) = n <= m \/ (n = SUC m) Theorem LESS_EQ_REFL autoloading from theory `arithmetic` ... LESS_EQ_REFL = |- !m. m <= m CARD_INTER_LESS_EQ = |- !s. FINITE s ==> (!t. (CARD(s INTER t)) <= (CARD s)) Theorem ADD_CLAUSES autoloading from theory `arithmetic` ... ADD_CLAUSES = |- (0 + m = m) /\ (m + 0 = m) /\ ((SUC m) + n = SUC(m + n)) /\ (m + (SUC n) = SUC(m + n)) CARD_UNION = |- !s. FINITE s ==> (!t. FINITE t ==> ((CARD(s UNION t)) + (CARD(s INTER t)) = (CARD s) + (CARD t))) lemma = |- !n m. n <= (SUC m) = n <= m \/ (n = SUC m) Theorem LESS_0 autoloading from theory `prim_rec` ... LESS_0 = |- !n. 0 < (SUC n) CARD_SUBSET = |- !s. FINITE s ==> (!t. t SUBSET s ==> (CARD t) <= (CARD s)) Theorem LESS_EQ autoloading from theory `arithmetic` ... LESS_EQ = |- !m n. m < n = (SUC m) <= n CARD_PSUBSET = |- !s. FINITE s ==> (!t. t PSUBSET s ==> (CARD t) < (CARD s)) CARD_SING = |- !x. CARD{x} = 1 SING_IFF_CARD1 = |- !s. SING s = (CARD s = 1) /\ FINITE s Theorem SUB_PLUS autoloading from theory `arithmetic` ... SUB_PLUS = |- !a b c. a - (b + c) = (a - b) - c Theorem SUB_0 autoloading from theory `arithmetic` ... SUB_0 = |- !m. (0 - m = 0) /\ (m - 0 = m) CARD_DIFF = |- !t. FINITE t ==> (!s. FINITE s ==> (CARD(s DIFF t) = (CARD s) - (CARD(s INTER t)))) Theorem SUB_LESS_0 autoloading from theory `arithmetic` ... SUB_LESS_0 = |- !n m. m < n = 0 < (n - m) LESS_CARD_DIFF = |- !t. FINITE t ==> (!s. FINITE s ==> (CARD t) < (CARD s) ==> 0 < (CARD(s DIFF t))) INFINITE_DEF = |- !s. INFINITE s = ~FINITE s NOT_IN_FINITE = |- INFINITE UNIV = (!s. FINITE s ==> (?x. ~x IN s)) INVERSE_LEMMA = |- !f. (!x y. (f x = f y) ==> (x = y)) ==> ((\x. @y. x = f y) o f = (\x. x)) IMAGE_11_INFINITE = |- !f. (!x y. (f x = f y) ==> (x = y)) ==> (!s. INFINITE s ==> INFINITE(IMAGE f s)) INFINITE_SUBSET = |- !s. INFINITE s ==> (!t. s SUBSET t ==> INFINITE t) IN_INFINITE_NOT_FINITE = |- !s t. INFINITE s /\ FINITE t ==> (?x. x IN s /\ ~x IN t) gdef = ["g 0 = {}"; "!n. g(SUC n) = (@x. ~x IN (g n)) INSERT (g n)"] : term list g_finite = .. |- !n. FINITE(g n) g_subset = . |- !n x. x IN (g n) ==> (!i. x IN (g(n + i))) lemma = |- (A \/ B) /\ ~B = A /\ ~B Theorem LESS_SUC_REFL autoloading from theory `prim_rec` ... LESS_SUC_REFL = |- !n. n < (SUC n) g_cases = .. |- (!s. FINITE s ==> (?x. ~x IN s)) ==> (!x. (?n. x IN (g n)) ==> (?m. x IN (g(SUC m)) /\ ~x IN (g m))) z_in_g1 = .. |- (@x. ~x IN {}) IN (g(SUC 0)) Theorem ADD_SYM autoloading from theory `arithmetic` ... ADD_SYM = |- !m n. m + n = n + m Theorem ADD1 autoloading from theory `arithmetic` ... ADD1 = |- !m. SUC m = m + 1 z_in_gn = .. |- !n. (@x. ~x IN {}) IN (g(SUC n)) in_lemma = . |- !n. (@x. ~x IN (g n)) IN (g(SUC n)) not_in_lemma = .. |- (!s. FINITE s ==> (?x. ~x IN s)) ==> (!i n. ~(@x. ~x IN (g(n + i))) IN (g n)) Theorem LESS_NOT_EQ autoloading from theory `prim_rec` ... LESS_NOT_EQ = |- !m n. m < n ==> ~(m = n) Theorem LESS_REFL autoloading from theory `prim_rec` ... LESS_REFL = |- !n. ~n < n less_lemma = |- !m n. ~(m = n) = m < n \/ n < m Theorem LESS_ADD_1 autoloading from theory `arithmetic` ... LESS_ADD_1 = |- !m n. n < m ==> (?p. m = n + (p + 1)) gn_unique = .. |- (!s. FINITE s ==> (?x. ~x IN s)) ==> (!n m. ((@x. ~x IN (g n)) = (@x. ~x IN (g m))) = (n = m)) x_unique = .. |- !n x y. ~x IN (g n) /\ ~y IN (g n) ==> x IN (g(SUC n)) ==> y IN (g(SUC n)) ==> (x = y) fdef = "\x. ((?n. x IN (g n)) => (@y. ~y IN (g(SUC(@n. x IN (g(SUC n)) /\ ~x IN (g n))))) | x)" : term cases = |- !x. (?n. x IN (g n)) \/ (!n. ~x IN (g n)) INF_IMP_INFINITY = |- (!s. FINITE s ==> (?x. ~x IN s)) ==> (?f. (!x y. (f x = f y) ==> (x = y)) /\ (?y. !x. ~(f x = y))) prth = |- ?fn. (!f x. fn f x 0 = x) /\ (!f x n. fn f x(SUC n) = f(fn f x n)) prmth = |- !x f. ?fn. (fn 0 = x) /\ (!n. fn(SUC n) = f(fn n)) num_fn_thm = |- (?f. (!x y. (f x = f y) ==> (x = y)) /\ (?y. !x. ~(f x = y))) ==> (?fn. !n m. (fn n = fn m) ==> (n = m)) Theorem LESS_IMP_LESS_ADD autoloading from theory `arithmetic` ... LESS_IMP_LESS_ADD = |- !n m. n < m ==> (!p. n < (m + p)) Theorem LESS_ADD_SUC autoloading from theory `arithmetic` ... LESS_ADD_SUC = |- !m n. m < (m + (SUC n)) finite_N_bounded = |- !s. FINITE s ==> (?m. !n. n IN s ==> n < m) N_lemma = |- INFINITE UNIV main_lemma = |- !s. FINITE s ==> (!f. (!n m. (f n = f m) ==> (n = m)) ==> (?n. ~(f n) IN s)) INFINITY_IMP_INF = |- (?f. (!x y. (f x = f y) ==> (x = y)) /\ (?y. !x. ~(f x = y))) ==> (!s. FINITE s ==> (?x. ~x IN s)) INFINITE_UNIV = |- INFINITE UNIV = (?f. (!x y. (f x = f y) ==> (x = y)) /\ (?y. !x. ~(f x = y))) FINITE_PSUBSET_INFINITE = |- !s. INFINITE s = (!t. FINITE t ==> t SUBSET s ==> t PSUBSET s) FINITE_PSUBSET_UNIV = |- INFINITE UNIV = (!s. FINITE s ==> s PSUBSET UNIV) INFINITE_DIFF_FINITE = |- !s t. INFINITE s /\ FINITE t ==> ~(s DIFF t = {}) Theorem NOT_LESS_0 autoloading from theory `prim_rec` ... NOT_LESS_0 = |- !n. ~n < 0 FINITE_ISO_NUM = |- !s. FINITE s ==> (?f. (!n m. n < (CARD s) /\ m < (CARD s) ==> (f n = f m) ==> (n = m)) /\ (s = {f n | n < (CARD s)})) echo 'set_flag(`abort_when_fail`,true);;'\ 'load_theory `sets`;;'\ 'compilet `set_ind`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Theory sets loaded () : void SET_INDUCT_TAC = - : tactic Calling Lisp compiler File set_ind compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'load_theory `sets`;;'\ 'compilet `gspec`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Theory sets loaded () : void dest_tuple = - : (term -> term list) MK_PAIR = - : (* list -> conv) EXISTS_TUPLE_CONV = - : (term list -> conv) PAIR_EQ_CONV = - : conv ELIM_EXISTS_CONV = - : conv PROVE_EXISTS = - : conv list_variant = - : (term list -> term list -> term list) SET_SPEC_CONV = - : conv - : conv SET_SPEC_CONV = - : conv Calling Lisp compiler File gspec compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'load_theory `sets`;;'\ 'compilet `fset_conv`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Theory sets loaded () : void FINITE_CONV = - : conv IN_CONV = - : (conv -> conv) DELETE_CONV = - : (conv -> conv) UNION_CONV = - : (conv -> conv) INSERT_CONV = - : (conv -> conv) IMAGE_CONV = - : (conv -> conv -> conv) Calling Lisp compiler File fset_conv compiled () : void #===> library sets rebuilt make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/sets' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/reduce' \ echo 'set_flag(`abort_when_fail`,true);;' \ 'compilet `arithconv`;;' \ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool dest_op = - : (term -> term -> term list) term_of_int = - : (int -> term) int_of_term = - : (term -> int) provelt = - : (int -> int -> thm) NEQ_CONV = - : conv LT_CONV = - : conv GT_CONV = - : conv LE_CONV = - : conv GE_CONV = - : conv SUC_CONV = - : conv PRE_CONV = - : conv SBC_CONV = - : conv ADD_CONV = - : conv MUL_CONV = - : conv EXP_CONV = - : conv DIV_CONV = - : conv MOD_CONV = - : conv Calling Lisp compiler File arithconv compiled () : void #\ echo 'set_flag(`abort_when_fail`,true);;' \ 'compilet `boolconv`;;' \ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool dest_op = - : (term -> term -> term list) NOT_CONV = - : conv AND_CONV = - : conv OR_CONV = - : conv IMP_CONV = - : conv BEQ_CONV = - : conv COND_CONV = - : conv Calling Lisp compiler File boolconv compiled () : void #\ echo 'set_flag(`abort_when_fail`,true);;' \ 'compilet `reduce`;;' \ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Extending help search path() : void Loading boolean conversions() : void Loading arithmetic conversions() : void Loading general conversions, rule and tactic() : void RED_CONV = - : conv REDUCE_CONV = - : conv REDUCE_RULE = - : (thm -> thm) REDUCE_TAC = - : tactic Calling Lisp compiler File reduce compiled () : void #make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/reduce' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/arith' echo 'set_flag(`abort_when_fail`,true);;'\ 'compilet `int_extra`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool abs = - : (int -> int) () : void mod = - : (int -> int -> int) gcd = - : ((int # int) -> int) lcm = - : ((int # int) -> int) Calling Lisp compiler File int_extra compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `int_extra`;;'\ 'compilet `arith_cons`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool .....() : void mk_arith_op = - : (string -> string -> (term # term) -> term) mk_plus = - : ((term # term) -> term) mk_minus = - : ((term # term) -> term) mk_mult = - : ((term # term) -> term) dest_arith_op = - : (string -> string -> term -> (term # term)) dest_plus = - : (term -> (term # term)) dest_minus = - : (term -> (term # term)) dest_mult = - : (term -> (term # term)) is_plus = - : (term -> bool) is_minus = - : (term -> bool) is_mult = - : (term -> bool) is_arith_op = - : (term -> bool) mk_num_reln = - : (string -> string -> (term # term) -> term) mk_less = - : ((term # term) -> term) mk_leq = - : ((term # term) -> term) mk_great = - : ((term # term) -> term) mk_geq = - : ((term # term) -> term) dest_num_reln = - : (string -> string -> term -> (term # term)) dest_less = - : (term -> (term # term)) dest_leq = - : (term -> (term # term)) dest_great = - : (term -> (term # term)) dest_geq = - : (term -> (term # term)) is_less = - : (term -> bool) is_leq = - : (term -> bool) is_great = - : (term -> bool) is_geq = - : (term -> bool) is_num_reln = - : (term -> bool) mk_suc = - : (term -> term) dest_suc = - : (term -> term) is_suc = - : (term -> bool) is_num_const = - : (term -> bool) is_zero = - : (term -> bool) int_of_term = - : (term -> int) term_of_int = - : (int -> term) mk_num_var = - : (string -> term) arg1 = - : (term -> term) arg2 = - : (term -> term) Calling Lisp compiler File arith_cons compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'compilet `string_extra`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool string_less = - : (string -> string -> bool) Calling Lisp compiler File string_extra compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `int_extra`;;'\ 'loadf `arith_cons`;;'\ 'loadf `string_extra`;;'\ 'compilet `term_coeffs`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool .....() : void .....................() : void .() : void negate_coeffs = - : ((int # (* # int) list) -> (int # (* # int) list)) merge_coeffs = - : ((int # (string # int) list) -> (int # (string # int) list) -> (int # (string # int) list)) lhs_coeffs = - : ((int # (* # int) list) -> (int # (* # int) list)) rhs_coeffs = - : ((int # (* # int) list) -> (int # (* # int) list)) diff_of_coeffs = - : (((int # (string # int) list) # int # (string # int) list) -> ((int # (string # int) list) # int # (string # int) list)) vars_of_coeffs = - : ((* # (** # ***) list) list -> ** list) var_of_prod = - : (term -> string) coeffs_of_arith = - : (term -> (int # (string # int) list)) coeffs_of_leq = - : (term -> (int # (string # int) list)) coeffs_of_leq_set = - : (term -> (int # (string # int) list) list) build_arith = - : ((int # (string # int) list) -> term) build_leq = - : ((int # (string # int) list) -> term) Calling Lisp compiler File term_coeffs compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'compilet `qconv`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool qconv = `QCONV` : string qfailwith = - : (string -> string -> *) QCONV = - : (conv -> conv) ALL_QCONV = - : conv () : void THENQC = - : (conv -> conv -> conv) () : void ORELSEQC = - : (conv -> conv -> conv) REPEATQC = - : (conv -> conv) CHANGED_QCONV = - : (conv -> conv) TRY_QCONV = - : (conv -> conv) QCONV_RULE = - : (conv -> thm -> thm) RAND_QCONV = - : (conv -> conv) RATOR_QCONV = - : (conv -> conv) ABS_QCONV = - : (conv -> conv) ARGS_QCONV = - : (conv -> conv) Calling Lisp compiler File qconv compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'compilet `decls`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ONE_PLUS = |- T ZERO_PLUS = |- T PLUS_ZERO = |- T SUC_ADD1 = |- T SUC_ADD2 = |- T ZERO_MULT = |- T ONE_MULT = |- T MULT_ZERO = |- T MULT_ONE = |- T MULT_SUC = |- T MULT_COMM = |- T SUC_ADD_LESS_EQ_F = |- T MULT_LEQ_SUC = |- T ZERO_LESS_EQ_T = |- T SUC_LESS_EQ_ZERO_F = |- T ZERO_LESS_EQ_ONE_TIMES = |- T LESS_EQ_PLUS = |- T LESS_EQ_TRANSIT = |- T NOT_T_F = |- T NOT_F_T = |- T CONJ_ASSOC_NORM_CONV = - : conv DISJ_ASSOC_NORM_CONV = - : conv EQ_EXPAND_CONV = - : conv IMP_EXPAND_CONV = - : conv IMP_F_EQ_F_CONV = - : conv IMP_IMP_CONJ_IMP_CONV = - : conv LEFT_DIST_NORM_CONV = - : conv NOT_CONJ_NORM_CONV = - : conv NOT_DISJ_NORM_CONV = - : conv NOT_NOT_NORM_CONV = - : conv OR_F_CONV = - : conv RIGHT_DIST_NORM_CONV = - : conv ADD_ASSOC_CONV = - : conv ADD_SYM_CONV = - : conv GATHER_BOTH_CONV = - : conv GATHER_LEFT_CONV = - : conv GATHER_NEITHER_CONV = - : conv GATHER_RIGHT_CONV = - : conv GEQ_NORM_CONV = - : conv GREAT_NORM_CONV = - : conv LEFT_ADD_DISTRIB_CONV = - : conv LESS_NORM_CONV = - : conv MULT_ASSOC_CONV = - : conv MULT_COMM_CONV = - : conv NOT_GEQ_NORM_CONV = - : conv NOT_GREAT_NORM_CONV = - : conv NOT_LEQ_NORM_CONV = - : conv NOT_LESS_NORM_CONV = - : conv NOT_NUM_EQ_NORM_CONV = - : conv NUM_EQ_NORM_CONV = - : conv PLUS_ZERO_CONV = - : conv SYM_ADD_ASSOC_CONV = - : conv SYM_ONE_MULT_CONV = - : conv ZERO_MULT_CONV = - : conv ZERO_MULT_PLUS_CONV = - : conv ZERO_PLUS_CONV = - : conv LEQ_PLUS_CONV = - : conv FORALL_SIMP_CONV = - : conv NUM_COND_RATOR_CONV = - : conv NUM_COND_RAND_CONV = - : conv SUB_NORM_CONV = - : conv COND_RATOR_CONV = - : conv COND_RAND_CONV = - : conv COND_EXPAND_CONV = - : conv Calling Lisp compiler File decls compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `int_extra`;;'\ 'loadf `arith_cons`;;'\ 'loadf `string_extra`;;'\ 'loadf `term_coeffs`;;'\ 'loadf `qconv`;;'\ 'loadf `decls`;;'\ 'compilet `norm_bool`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool .....() : void .....................() : void .() : void ............() : void ................() : void ................................................................() : void EQ_IMP_ELIM_QCONV = - : ((term -> bool) -> conv) MOVE_NOT_DOWN_QCONV = - : ((term -> bool) -> conv -> conv) DISJ_LINEAR_QCONV = - : conv DISJ_NORM_FORM_QCONV = - : conv Calling Lisp compiler File norm_bool compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `int_extra`;;'\ 'loadf `arith_cons`;;'\ 'loadf `string_extra`;;'\ 'loadf `term_coeffs`;;'\ 'loadf `qconv`;;'\ 'loadf `decls`;;'\ 'loadf `norm_bool`;;'\ 'compilet `norm_arith`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool .....() : void .....................() : void .() : void ............() : void ................() : void ................................................................() : void ....() : void COLLECT_NUM_CONSTS_CONV = - : conv NUM_RELN_NORM_QCONV = - : (conv -> conv -> conv) MULT_CONV = - : conv mult_lookup = - : (((int # int) # thm) list -> (int # int) -> thm) multiplication_theorems = [] : ((int # int) # thm) list FAST_MULT_CONV = - : conv reset_multiplication_theorems = - : (void -> ((int # int) # thm) list) multiplication_theorems = - : (void -> ((int # int) # thm) list) SUM_OF_PRODUCTS_SUC_CONV = - : conv SUM_OF_PRODUCTS_MULT_QCONV = - : conv SUM_OF_PRODUCTS_QCONV = - : conv LINEAR_SUM_QCONV = - : conv GATHER_QCONV = - : conv IN_LINE_SUM_QCONV = - : (conv -> conv) ONE_PASS_SORT_QCONV = - : conv SORT_AND_GATHER_QCONV = - : conv SYM_ONE_MULT_VAR_CONV = - : conv NORM_ZERO_AND_ONE_QCONV = - : conv Calling Lisp compiler File norm_arith compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `int_extra`;;'\ 'loadf `arith_cons`;;'\ 'loadf `string_extra`;;'\ 'loadf `term_coeffs`;;'\ 'loadf `qconv`;;'\ 'loadf `decls`;;'\ 'loadf `norm_bool`;;'\ 'loadf `norm_arith`;;'\ 'compilet `norm_ineqs`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool .....() : void .....................() : void .() : void ............() : void ................() : void ................................................................() : void ....() : void ..................() : void ADD_TERM_TO_LEQ_CONV = - : (term -> conv) ADD_COEFFS_TO_LEQ_QCONV = - : ((int # (string # int) list) -> conv) LESS_OR_EQ_GATHER_QCONV = - : conv ARITH_FORM_NORM_QCONV = - : conv Calling Lisp compiler File norm_ineqs compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `int_extra`;;'\ 'loadf `arith_cons`;;'\ 'loadf `string_extra`;;'\ 'loadf `term_coeffs`;;'\ 'loadf `qconv`;;'\ 'loadf `decls`;;'\ 'loadf `norm_bool`;;'\ 'loadf `norm_arith`;;'\ 'loadf `norm_ineqs`;;'\ 'compilet `solve_ineqs`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool .....() : void .....................() : void .() : void ............() : void ................() : void ................................................................() : void ....() : void ..................() : void ....() : void CONST_TIMES_ARITH_QCONV = - : conv MULT_LEQ_BY_CONST_QCONV = - : (term -> conv) LEQ_CONV = - : conv WEIGHTED_SUM = - : (string -> ((int # (string # int) list) # int # (string # int) list) -> ((int # (string # int) list) # (void -> thm))) var_to_elim = - : ((* # (string # int) list) list -> string) VAR_ELIM = - : ((int # (string # int) list) list -> (int list # (void -> thm))) Calling Lisp compiler File solve_ineqs compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `int_extra`;;'\ 'loadf `arith_cons`;;'\ 'loadf `string_extra`;;'\ 'loadf `term_coeffs`;;'\ 'loadf `qconv`;;'\ 'loadf `decls`;;'\ 'loadf `norm_bool`;;'\ 'loadf `norm_arith`;;'\ 'loadf `norm_ineqs`;;'\ 'loadf `solve_ineqs`;;'\ 'compilet `solve`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool .....() : void .....................() : void .() : void ............() : void ................() : void ................................................................() : void ....() : void ..................() : void ....() : void ......() : void INEQS_FALSE_CONV = - : conv DISJ_INEQS_FALSE_QCONV = - : conv NOT_NOT_INTRO_CONV = - : conv is_T = - : (term -> bool) is_F = - : (term -> bool) NEGATE_CONV = - : (conv -> conv) DEPTH_FORALL_QCONV = - : (conv -> conv) FORALL_ARITH_CONV = - : conv Calling Lisp compiler File solve compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `int_extra`;;'\ 'compilet `rationals`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool .....() : void Rat = - : ((int # int) -> rat) Numerator = - : (rat -> int) Denominator = - : (rat -> int) rat_inv = - : (rat -> rat) rat_plus = - : (rat -> rat -> rat) rat_minus = - : (rat -> rat -> rat) rat_mult = - : (rat -> rat -> rat) rat_div = - : (rat -> rat -> rat) print_rat = - : (rat -> void) - : (rat -> void) rat_of_int = - : (int -> rat) lower_int_of_rat = - : (rat -> int) upper_int_of_rat = - : (rat -> int) rat_zero = 0 : rat rat_one = 1 : rat rat_less = - : (rat -> rat -> bool) Calling Lisp compiler File rationals compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `int_extra`;;'\ 'loadf `rationals`;;'\ 'loadf `string_extra`;;'\ 'compilet `sup-inf`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool .....() : void ........() : void .() : void New constructors declared: Bound : ((rat # (string # rat) list) -> bound) Max_bound : (bound list -> bound) Min_bound : (bound list -> bound) Pos_inf : bound Neg_inf : bound New constructors declared: Ibound : (bound -> internal_bound) Mult_ibound : ((rat # internal_bound) -> internal_bound) Plus_ibound : ((internal_bound # internal_bound) -> internal_bound) Max_ibound : (internal_bound list -> internal_bound) Min_ibound : (internal_bound list -> internal_bound) solve_ineqs = - : ((int # (* # int) list) list -> * -> ((rat # (* # rat) list) list # (rat # (* # rat) list) list)) UPPER = - : ((int # (string # int) list) list -> string -> bound) LOWER = - : ((int # (string # int) list) list -> string -> bound) SIMP_mult = - : (rat -> bound -> bound) sum_bindings = - : ((string # rat) list -> (string # rat) list -> (string # rat) list) SIMP_plus = - : (bound -> bound -> bound) SIMP = - : (internal_bound -> bound) SUPP = - : ((string # bound) -> bound) INFF = - : ((string # bound) -> bound) occurs_in_bound = - : (string -> bound -> bool) occurs_in_ibound = - : (string -> internal_bound -> bool) SUP = - : ((int # (string # int) list) list -> (bound # string list) -> internal_bound) INF = - : ((int # (string # int) list) list -> (bound # string list) -> internal_bound) eval_max_bound = - : (bound list -> bound) eval_min_bound = - : (bound list -> bound) eval_bound = - : (bound -> bound) SUP_INF = - : ((int # (string # int) list) list -> (string # bound # bound) list) Calling Lisp compiler File sup-inf compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'compilet `streams`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool New constructors declared: Stream : ((* # (void -> * stream)) -> * stream) stream_map = - : ((* -> **) -> (void -> * stream) -> void -> ** stream) stream_append = - : ((void -> * stream) -> (void -> * stream) -> void -> * stream) stream_flat = - : ((void -> (void -> * stream) stream) -> void -> * stream) permutations = - : (* list -> void -> * list stream) Calling Lisp compiler File streams compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `int_extra`;;'\ 'loadf `rationals`;;'\ 'loadf `string_extra`;;'\ 'loadf `sup-inf`;;'\ 'loadf `streams`;;'\ 'compilet `sol_ranges`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool .....() : void ........() : void .() : void ..................() : void .....() : void less_bound = - : (bound -> bound -> bool) is_neg_bound = - : (bound -> bool) is_finite_bound = - : (bound -> bool) rat_of_bound = - : (bound -> rat) is_int_range = - : (rat -> rat -> bool) non_neg_int_between = - : (bound -> bound -> int) inst_var_in_coeffs = - : ((string # int) -> (int # (string # int) list) list -> (int # (string # int) list) list) Shostak = - : ((int # (string # int) list) list -> (string # int) list) Calling Lisp compiler File sol_ranges compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'load_library `reduce`;;'\ 'loadf `int_extra`;;'\ 'loadf `arith_cons`;;'\ 'loadf `string_extra`;;'\ 'loadf `term_coeffs`;;'\ 'loadf `qconv`;;'\ 'loadf `decls`;;'\ 'loadf `norm_bool`;;'\ 'loadf `norm_arith`;;'\ 'loadf `norm_ineqs`;;'\ 'loadf `rationals`;;'\ 'loadf `sup-inf`;;'\ 'loadf `streams`;;'\ 'loadf `sol_ranges`;;'\ 'compilet `exists_arith`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Loading library reduce ... Extending help search path. Loading boolean conversions........ Loading arithmetic conversions.................. Loading general conversions, rule and tactic..... Library reduce loaded. () : void .....() : void .....................() : void .() : void ............() : void ................() : void ................................................................() : void ....() : void ..................() : void ....() : void ........() : void ..................() : void .....() : void ........() : void NUM_REDUCE_QCONV = - : conv INEQ_REDUCE_QCONV = - : conv BOOL_REDUCE_QCONV = - : conv WITNESS = - : ((string # int) list -> conv) witness = - : (term list -> (string # int) list) EXISTS_ARITH_CONV = - : conv Calling Lisp compiler File exists_arith compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `decls`;;'\ 'compilet `sub_and_cond`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ................................................................() : void COND_ABS_CONV = - : conv SUB_AND_COND_ELIM_CONV = - : conv COND_ELIM_CONV = - : conv Calling Lisp compiler File sub_and_cond compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `decls`;;'\ 'compilet `prenex`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ................................................................() : void QUANT_EQ_IMP_CONV = - : conv is_prenex = - : (term -> bool) PRENEX_CONV = - : conv Calling Lisp compiler File prenex compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'compilet `instance`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool INSTANCE_T_CONV = - : ((term -> term list) -> conv -> conv) Calling Lisp compiler File instance compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'load_library `reduce`;;'\ 'loadf `int_extra`;;'\ 'loadf `arith_cons`;;'\ 'loadf `string_extra`;;'\ 'loadf `term_coeffs`;;'\ 'loadf `qconv`;;'\ 'loadf `decls`;;'\ 'loadf `norm_bool`;;'\ 'loadf `norm_arith`;;'\ 'loadf `norm_ineqs`;;'\ 'loadf `solve_ineqs`;;'\ 'loadf `solve`;;'\ 'loadf `rationals`;;'\ 'loadf `sup-inf`;;'\ 'loadf `streams`;;'\ 'loadf `sol_ranges`;;'\ 'loadf `exists_arith`;;'\ 'loadf `sub_and_cond`;;'\ 'loadf `prenex`;;'\ 'loadf `instance`;;'\ 'compilet `gen_arith`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Loading library reduce ... Extending help search path. Loading boolean conversions........ Loading arithmetic conversions.................. Loading general conversions, rule and tactic..... Library reduce loaded. () : void .....() : void .....................() : void .() : void ............() : void ................() : void ................................................................() : void ....() : void ..................() : void ....() : void ......() : void .......() : void ........() : void ..................() : void .....() : void ........() : void ......() : void ...() : void ...() : void .() : void contains_var = - : (term -> bool) is_linear_mult = - : (term -> bool) non_presburger_subterms = - : (term -> term list) is_presburger = - : (term -> bool) ARITH_CONV = - : conv Calling Lisp compiler File gen_arith compiled () : void #===> library arith rebuilt make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/arith' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/pred_sets' rm -f pred_sets.th echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `mk_pred_sets`;;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool () : void SPECIFICATION = |- !P x. x IN P = P x EXTENSION = |- !s t. (s = t) = (!x. x IN s = x IN t) NOT_EQUAL_SETS = |- !s t. ~(s = t) = (?x. x IN t = ~x IN s) Theorem NOT_LESS autoloading from theory `arithmetic` ... NOT_LESS = |- !m n. ~m < n = n <= m Theorem WOP autoloading from theory `arithmetic` ... WOP = |- !P. (?n. P n) ==> (?n. P n /\ (!m. m < n ==> ~P m)) NUM_SET_WOP = |- !s. (?n. n IN s) = (?n. n IN s /\ (!m. m IN s ==> n <= m)) GSPEC_DEF_LEMMA = |- ?g. !f v. v IN (g f) = (?x. v,T = f x) GSPECIFICATION = |- !f v. v IN (GSPEC f) = (?x. v,T = f x) Section SET_SPEC_CONV begun dest_tuple = - : (term -> term list) MK_PAIR = - : (* list -> conv) EXISTS_TUPLE_CONV = - : (term list -> conv) PAIR_EQ_CONV = - : conv ELIM_EXISTS_CONV = - : conv PROVE_EXISTS = - : conv list_variant = - : (term list -> term list -> term list) SET_SPEC_CONV = - : conv - : conv Section SET_SPEC_CONV ended SET_SPEC_CONV = - : conv File gspec.ml loaded () : void () : void true : bool lemma = |- !s x. x IN s ==> (!f. (f x) IN {f x | x IN s}) SET_MINIMUM = |- !s M. (?x. x IN s) = (?x. x IN s /\ (!y. y IN s ==> (M x) <= (M y))) EMPTY_DEF = |- EMPTY = (\x. F) NOT_IN_EMPTY = |- !x. ~x IN EMPTY MEMBER_NOT_EMPTY = |- !s. (?x. x IN s) = ~(s = EMPTY) UNIV_DEF = |- UNIV = (\x. T) IN_UNIV = |- !x. x IN UNIV UNIV_NOT_EMPTY = |- ~(UNIV = EMPTY) EMPTY_NOT_UNIV = |- ~(EMPTY = UNIV) EQ_UNIV = |- (!x. x IN s) = (s = UNIV) SUBSET_DEF = |- !s t. s SUBSET t = (!x. x IN s ==> x IN t) SUBSET_TRANS = |- !s t u. s SUBSET t /\ t SUBSET u ==> s SUBSET u SUBSET_REFL = |- !s. s SUBSET s SUBSET_ANTISYM = |- !s t. s SUBSET t /\ t SUBSET s ==> (s = t) EMPTY_SUBSET = |- !s. EMPTY SUBSET s SUBSET_EMPTY = |- !s. s SUBSET EMPTY = (s = EMPTY) SUBSET_UNIV = |- !s. s SUBSET UNIV UNIV_SUBSET = |- !s. UNIV SUBSET s = (s = UNIV) PSUBSET_DEF = |- !s t. s PSUBSET t = s SUBSET t /\ ~(s = t) PSUBSET_TRANS = |- !s t u. s PSUBSET t /\ t PSUBSET u ==> s PSUBSET u PSUBSET_IRREFL = |- !s. ~s PSUBSET s NOT_PSUBSET_EMPTY = |- !s. ~s PSUBSET EMPTY NOT_UNIV_PSUBSET = |- !s. ~UNIV PSUBSET s PSUBSET_UNIV = |- !s. s PSUBSET UNIV = (?x. ~x IN s) UNION_DEF = |- !s t. s UNION t = {x | x IN s \/ x IN t} IN_UNION = |- !s t x. x IN (s UNION t) = x IN s \/ x IN t UNION_ASSOC = |- !s t u. (s UNION t) UNION u = s UNION (t UNION u) UNION_IDEMPOT = |- !s. s UNION s = s UNION_COMM = |- !s t. s UNION t = t UNION s SUBSET_UNION = |- (!s t. s SUBSET (s UNION t)) /\ (!s t. s SUBSET (t UNION s)) SUBSET_UNION_ABSORPTION = |- !s t. s SUBSET t = (s UNION t = t) UNION_EMPTY = |- (!s. EMPTY UNION s = s) /\ (!s. s UNION EMPTY = s) UNION_UNIV = |- (!s. UNIV UNION s = UNIV) /\ (!s. s UNION UNIV = UNIV) EMPTY_UNION = |- !s t. (s UNION t = EMPTY) = (s = EMPTY) /\ (t = EMPTY) INTER_DEF = |- !s t. s INTER t = {x | x IN s /\ x IN t} IN_INTER = |- !s t x. x IN (s INTER t) = x IN s /\ x IN t INTER_ASSOC = |- !s t u. (s INTER t) INTER u = s INTER (t INTER u) INTER_IDEMPOT = |- !s. s INTER s = s INTER_COMM = |- !s t. s INTER t = t INTER s INTER_SUBSET = |- (!s t. (s INTER t) SUBSET s) /\ (!s t. (t INTER s) SUBSET s) SUBSET_INTER_ABSORPTION = |- !s t. s SUBSET t = (s INTER t = s) INTER_EMPTY = |- (!s. EMPTY INTER s = EMPTY) /\ (!s. s INTER EMPTY = EMPTY) INTER_UNIV = |- (!s. UNIV INTER s = s) /\ (!s. s INTER UNIV = s) UNION_OVER_INTER = |- !s t u. s INTER (t UNION u) = (s INTER t) UNION (s INTER u) INTER_OVER_UNION = |- !s t u. s UNION (t INTER u) = (s UNION t) INTER (s UNION u) DISJOINT_DEF = |- !s t. DISJOINT s t = (s INTER t = EMPTY) IN_DISJOINT = |- !s t. DISJOINT s t = ~(?x. x IN s /\ x IN t) DISJOINT_SYM = |- !s t. DISJOINT s t = DISJOINT t s DISJOINT_EMPTY = |- !s. DISJOINT EMPTY s /\ DISJOINT s EMPTY DISJOINT_EMPTY_REFL = |- !s. (s = EMPTY) = DISJOINT s s DISJOINT_UNION = |- !s t u. DISJOINT(s UNION t)u = DISJOINT s u /\ DISJOINT t u DIFF_DEF = |- !s t. s DIFF t = {x | x IN s /\ ~x IN t} IN_DIFF = |- !s t x. x IN (s DIFF t) = x IN s /\ ~x IN t DIFF_EMPTY = |- !s. s DIFF EMPTY = s EMPTY_DIFF = |- !s. EMPTY DIFF s = EMPTY DIFF_UNIV = |- !s. s DIFF UNIV = EMPTY DIFF_DIFF = |- !s t. (s DIFF t) DIFF t = s DIFF t DIFF_EQ_EMPTY = |- !s. s DIFF s = EMPTY INSERT_DEF = |- !x s. x INSERT s = {y | (y = x) \/ y IN s} () : void IN_INSERT = |- !x y s. x IN (y INSERT s) = (x = y) \/ x IN s COMPONENT = |- !x s. x IN (x INSERT s) SET_CASES = |- !s. (s = {}) \/ (?x t. (s = x INSERT t) /\ ~x IN t) DECOMPOSITION = |- !s x. x IN s = (?t. (s = x INSERT t) /\ ~x IN t) ABSORPTION = |- !x s. x IN s = (x INSERT s = s) INSERT_INSERT = |- !x s. x INSERT (x INSERT s) = x INSERT s INSERT_COMM = |- !x y s. x INSERT (y INSERT s) = y INSERT (x INSERT s) INSERT_UNIV = |- !x. x INSERT UNIV = UNIV NOT_INSERT_EMPTY = |- !x s. ~(x INSERT s = {}) NOT_EMPTY_INSERT = |- !x s. ~({} = x INSERT s) INSERT_UNION = |- !x s t. (x INSERT s) UNION t = (x IN t => s UNION t | x INSERT (s UNION t)) INSERT_UNION_EQ = |- !x s t. (x INSERT s) UNION t = x INSERT (s UNION t) INSERT_INTER = |- !x s t. (x INSERT s) INTER t = (x IN t => x INSERT (s INTER t) | s INTER t) DISJOINT_INSERT = |- !x s t. DISJOINT(x INSERT s)t = DISJOINT s t /\ ~x IN t INSERT_SUBSET = |- !x s t. (x INSERT s) SUBSET t = x IN t /\ s SUBSET t SUBSET_INSERT = |- !x s. ~x IN s ==> (!t. s SUBSET (x INSERT t) = s SUBSET t) INSERT_DIFF = |- !s t x. (x INSERT s) DIFF t = (x IN t => s DIFF t | x INSERT (s DIFF t)) DELETE_DEF = |- !s x. s DELETE x = s DIFF {x} IN_DELETE = |- !s x y. x IN (s DELETE y) = x IN s /\ ~(x = y) DELETE_NON_ELEMENT = |- !x s. ~x IN s = (s DELETE x = s) IN_DELETE_EQ = |- !s x x'. (x IN s = x' IN s) = (x IN (s DELETE x') = x' IN (s DELETE x)) EMPTY_DELETE = |- !x. {} DELETE x = {} DELETE_DELETE = |- !x s. (s DELETE x) DELETE x = s DELETE x DELETE_COMM = |- !x y s. (s DELETE x) DELETE y = (s DELETE y) DELETE x DELETE_SUBSET = |- !x s. (s DELETE x) SUBSET s SUBSET_DELETE = |- !x s t. s SUBSET (t DELETE x) = ~x IN s /\ s SUBSET t SUBSET_INSERT_DELETE = |- !x s t. s SUBSET (x INSERT t) = (s DELETE x) SUBSET t DIFF_INSERT = |- !s t x. s DIFF (x INSERT t) = (s DELETE x) DIFF t PSUBSET_INSERT_SUBSET = |- !s t. s PSUBSET t = (?x. ~x IN s /\ (x INSERT s) SUBSET t) lemma = |- ~(a = b) = (b = ~a) PSUBSET_MEMBER = |- !s t. s PSUBSET t = s SUBSET t /\ (?y. y IN t /\ ~y IN s) DELETE_INSERT = |- !x y s. (x INSERT s) DELETE y = ((x = y) => s DELETE y | x INSERT (s DELETE y)) INSERT_DELETE = |- !x s. x IN s ==> (x INSERT (s DELETE x) = s) DELETE_INTER = |- !s t x. (s DELETE x) INTER t = (s INTER t) DELETE x DISJOINT_DELETE_SYM = |- !s t x. DISJOINT(s DELETE x)t = DISJOINT(t DELETE x)s CHOICE_EXISTS = |- ?CHOICE. !s. ~(s = {}) ==> (CHOICE s) IN s CHOICE_DEF = |- !s. ~(s = {}) ==> (CHOICE s) IN s REST_DEF = |- !s. REST s = s DELETE (CHOICE s) CHOICE_NOT_IN_REST = |- !s. ~(CHOICE s) IN (REST s) CHOICE_INSERT_REST = |- !s. ~(s = {}) ==> ((CHOICE s) INSERT (REST s) = s) REST_SUBSET = |- !s. (REST s) SUBSET s lemma = |- (P /\ Q = P) = P ==> Q REST_PSUBSET = |- !s. ~(s = {}) ==> (REST s) PSUBSET s SING_DEF = |- !s. SING s = (?x. s = {x}) SING = |- !x. SING{x} IN_SING = |- !x y. x IN {y} = (x = y) NOT_SING_EMPTY = |- !x. ~({x} = {}) NOT_EMPTY_SING = |- !x. ~({} = {x}) EQUAL_SING = |- !x y. ({x} = {y}) = (x = y) DISJOINT_SING_EMPTY = |- !x. DISJOINT{x}{} INSERT_SING_UNION = |- !s x. x INSERT s = {x} UNION s SING_DELETE = |- !x. {x} DELETE x = {} DELETE_EQ_SING = |- !s x. x IN s ==> ((s DELETE x = {}) = (s = {x})) CHOICE_SING = |- !x. CHOICE{x} = x REST_SING = |- !x. REST{x} = {} SING_IFF_EMPTY_REST = |- !s. SING s = ~(s = {}) /\ (REST s = {}) IMAGE_DEF = |- !f s. IMAGE f s = {f x | x IN s} IN_IMAGE = |- !y s f. y IN (IMAGE f s) = (?x. (y = f x) /\ x IN s) IMAGE_IN = |- !x s. x IN s ==> (!f. (f x) IN (IMAGE f s)) IMAGE_EMPTY = |- !f. IMAGE f{} = {} IMAGE_ID = |- !s. IMAGE(\x. x)s = s Theorem o_THM autoloading from theory `combin` ... o_THM = |- !f g x. (f o g)x = f(g x) IMAGE_COMPOSE = |- !f g s. IMAGE(f o g)s = IMAGE f(IMAGE g s) IMAGE_INSERT = |- !f x s. IMAGE f(x INSERT s) = (f x) INSERT (IMAGE f s) IMAGE_EQ_EMPTY = |- !s f. (IMAGE f s = {}) = (s = {}) IMAGE_DELETE = |- !f x s. ~x IN s ==> (IMAGE f(s DELETE x) = IMAGE f s) IMAGE_UNION = |- !f s t. IMAGE f(s UNION t) = (IMAGE f s) UNION (IMAGE f t) IMAGE_SUBSET = |- !s t. s SUBSET t ==> (!f. (IMAGE f s) SUBSET (IMAGE f t)) IMAGE_INTER = |- !f s t. (IMAGE f(s INTER t)) SUBSET ((IMAGE f s) INTER (IMAGE f t)) INJ_DEF = |- !f s t. INJ f s t = (!x. x IN s ==> (f x) IN t) /\ (!x y. x IN s /\ y IN s ==> (f x = f y) ==> (x = y)) INJ_ID = |- !s. INJ(\x. x)s s INJ_COMPOSE = |- !f g s t u. INJ f s t /\ INJ g t u ==> INJ(g o f)s u INJ_EMPTY = |- !f. (!s. INJ f{}s) /\ (!s. INJ f s{} = (s = {})) SURJ_DEF = |- !f s t. SURJ f s t = (!x. x IN s ==> (f x) IN t) /\ (!x. x IN t ==> (?y. y IN s /\ (f y = x))) SURJ_ID = |- !s. SURJ(\x. x)s s SURJ_COMPOSE = |- !f g s t u. SURJ f s t /\ SURJ g t u ==> SURJ(g o f)s u SURJ_EMPTY = |- !f. (!s. SURJ f{}s = (s = {})) /\ (!s. SURJ f s{} = (s = {})) IMAGE_SURJ = |- !f s t. SURJ f s t = (IMAGE f s = t) BIJ_DEF = |- !f s t. BIJ f s t = INJ f s t /\ SURJ f s t BIJ_ID = |- !s. BIJ(\x. x)s s BIJ_EMPTY = |- !f. (!s. BIJ f{}s = (s = {})) /\ (!s. BIJ f s{} = (s = {})) BIJ_COMPOSE = |- !f g s t u. BIJ f s t /\ BIJ g t u ==> BIJ(g o f)s u lemma1 = |- !f s. (!x y. x IN s /\ y IN s ==> (f x = f y) ==> (x = y)) = (!y. y IN s ==> (!x. x IN s /\ (f x = f y) = y IN s /\ (x = y))) lemma2 = |- !f s. ?g. !t. INJ f s t ==> (!x. x IN s ==> (g(f x) = x)) LINV_DEF = |- !f s t. INJ f s t ==> (!x. x IN s ==> (LINV f s(f x) = x)) lemma3 = |- !f s. ?g. !t. SURJ f s t ==> (!x. x IN t ==> (f(g x) = x)) RINV_DEF = |- !f s t. SURJ f s t ==> (!x. x IN t ==> (f(RINV f s x) = x)) FINITE_DEF = |- !s. FINITE s = (!P. P{} /\ (!s'. P s' ==> (!e. P(e INSERT s'))) ==> P s) FINITE_EMPTY = |- FINITE{} FINITE_INSERT = |- !s. FINITE s ==> (!x. FINITE(x INSERT s)) SIMPLE_FINITE_INDUCT = |- !P. P{} /\ (!s. P s ==> (!e. P(e INSERT s))) ==> (!s. FINITE s ==> P s) lemma = |- P{} /\ (!s. FINITE s /\ P s ==> (!e. FINITE(e INSERT s) /\ P(e INSERT s))) ==> (!s. FINITE s ==> P s) FINITE_INDUCT = |- !P. P{} /\ (!s. FINITE s /\ P s ==> (!e. ~e IN s ==> P(e INSERT s))) ==> (!s. FINITE s ==> P s) SET_INDUCT_TAC = - : tactic File set_ind loaded () : void FINITE_DELETE = |- !s. FINITE s ==> (!x. FINITE(s DELETE x)) INSERT_FINITE = |- !x s. FINITE(x INSERT s) ==> FINITE s FINITE_INSERT = |- !x s. FINITE(x INSERT s) = FINITE s DELETE_FINITE = |- !x s. FINITE(s DELETE x) ==> FINITE s FINITE_DELETE = |- !x s. FINITE(s DELETE x) = FINITE s UNION_FINITE = |- !s. FINITE s ==> (!t. FINITE t ==> FINITE(s UNION t)) FINITE_UNION_LEMMA = |- !s. FINITE s ==> (!t. FINITE(s UNION t) ==> FINITE t) FINITE_UNION = |- !s t. FINITE(s UNION t) ==> FINITE s /\ FINITE t FINITE_UNION = |- !s t. FINITE(s UNION t) = FINITE s /\ FINITE t INTER_FINITE = |- !s. FINITE s ==> (!t. FINITE(s INTER t)) SUBSET_FINITE = |- !s. FINITE s ==> (!t. t SUBSET s ==> FINITE t) PSUBSET_FINITE = |- !s. FINITE s ==> (!t. t PSUBSET s ==> FINITE t) FINITE_DIFF = |- !s. FINITE s ==> (!t. FINITE(s DIFF t)) FINITE_SING = |- !x. FINITE{x} SING_FINITE = |- !s. SING s ==> FINITE s IMAGE_FINITE = |- !s. FINITE s ==> (!f. FINITE(IMAGE f s)) card_rel_def = "(!s. R s 0 = (s = {})) /\ (!s n. R s(SUC n) = (?x. x IN s /\ R(s DELETE x)n))" : term Theorem num_Axiom autoloading from theory `prim_rec` ... num_Axiom = |- !e f. ?! fn. (fn 0 = e) /\ (!n. fn(SUC n) = f(fn n)n) CARD_REL_EXISTS = |- ?R. (!s. R s 0 = (s = {})) /\ (!s n. R s(SUC n) = (?x. x IN s /\ R(s DELETE x)n)) CARD_REL_DEL_LEMMA = .. |- !n s x. x IN s ==> R(s DELETE x)n ==> (!y. y IN s ==> R(s DELETE y)n) Theorem INV_SUC_EQ autoloading from theory `prim_rec` ... INV_SUC_EQ = |- !m n. (SUC m = SUC n) = (m = n) Theorem NOT_SUC autoloading from theory `num` ... NOT_SUC = |- !n. ~(SUC n = 0) CARD_REL_UNIQUE = .. |- !n s. R s n ==> (!m. R s m ==> (n = m)) CARD_REL_EXISTS_LEMMA = .. |- !s. FINITE s ==> (?n. R s n) CARD_REL_THM = .. |- !m s. FINITE s ==> (((@n. R s n) = m) = R s m) CARD_EXISTS = |- ?CARD. (CARD{} = 0) /\ (!s. FINITE s ==> (!x. CARD(x INSERT s) = (x IN s => CARD s | SUC(CARD s)))) CARD_DEF = |- (CARD{} = 0) /\ (!s. FINITE s ==> (!x. CARD(x INSERT s) = (x IN s => CARD s | SUC(CARD s)))) CARD_EMPTY = |- CARD{} = 0 CARD_INSERT = |- !s. FINITE s ==> (!x. CARD(x INSERT s) = (x IN s => CARD s | SUC(CARD s))) CARD_EQ_0 = |- !s. FINITE s ==> ((CARD s = 0) = (s = {})) Theorem num_CASES autoloading from theory `arithmetic` ... num_CASES = |- !m. (m = 0) \/ (?n. m = SUC n) Theorem SUC_SUB1 autoloading from theory `arithmetic` ... SUC_SUB1 = |- !m. (SUC m) - 1 = m CARD_DELETE = |- !s. FINITE s ==> (!x. CARD(s DELETE x) = (x IN s => (CARD s) - 1 | CARD s)) Theorem LESS_MONO_EQ autoloading from theory `arithmetic` ... LESS_MONO_EQ = |- !m n. (SUC m) < (SUC n) = m < n Definition LESS_OR_EQ autoloading from theory `arithmetic` ... LESS_OR_EQ = |- !m n. m <= n = m < n \/ (m = n) lemma1 = |- !n m. (SUC n) <= (SUC m) = n <= m Theorem LESS_THM autoloading from theory `prim_rec` ... LESS_THM = |- !m n. m < (SUC n) = (m = n) \/ m < n lemma2 = |- !n m. n <= (SUC m) = n <= m \/ (n = SUC m) Theorem LESS_EQ_REFL autoloading from theory `arithmetic` ... LESS_EQ_REFL = |- !m. m <= m CARD_INTER_LESS_EQ = |- !s. FINITE s ==> (!t. (CARD(s INTER t)) <= (CARD s)) Theorem ADD_CLAUSES autoloading from theory `arithmetic` ... ADD_CLAUSES = |- (0 + m = m) /\ (m + 0 = m) /\ ((SUC m) + n = SUC(m + n)) /\ (m + (SUC n) = SUC(m + n)) CARD_UNION = |- !s. FINITE s ==> (!t. FINITE t ==> ((CARD(s UNION t)) + (CARD(s INTER t)) = (CARD s) + (CARD t))) lemma = |- !n m. n <= (SUC m) = n <= m \/ (n = SUC m) Theorem LESS_0 autoloading from theory `prim_rec` ... LESS_0 = |- !n. 0 < (SUC n) CARD_SUBSET = |- !s. FINITE s ==> (!t. t SUBSET s ==> (CARD t) <= (CARD s)) Theorem LESS_EQ autoloading from theory `arithmetic` ... LESS_EQ = |- !m n. m < n = (SUC m) <= n CARD_PSUBSET = |- !s. FINITE s ==> (!t. t PSUBSET s ==> (CARD t) < (CARD s)) CARD_SING = |- !x. CARD{x} = 1 SING_IFF_CARD1 = |- !s. SING s = (CARD s = 1) /\ FINITE s Theorem SUB_PLUS autoloading from theory `arithmetic` ... SUB_PLUS = |- !a b c. a - (b + c) = (a - b) - c Theorem SUB_0 autoloading from theory `arithmetic` ... SUB_0 = |- !m. (0 - m = 0) /\ (m - 0 = m) CARD_DIFF = |- !t. FINITE t ==> (!s. FINITE s ==> (CARD(s DIFF t) = (CARD s) - (CARD(s INTER t)))) Theorem SUB_LESS_0 autoloading from theory `arithmetic` ... SUB_LESS_0 = |- !n m. m < n = 0 < (n - m) LESS_CARD_DIFF = |- !t. FINITE t ==> (!s. FINITE s ==> (CARD t) < (CARD s) ==> 0 < (CARD(s DIFF t))) INFINITE_DEF = |- !s. INFINITE s = ~FINITE s NOT_IN_FINITE = |- INFINITE UNIV = (!s. FINITE s ==> (?x. ~x IN s)) INVERSE_LEMMA = |- !f. (!x y. (f x = f y) ==> (x = y)) ==> ((\x. @y. x = f y) o f = (\x. x)) IMAGE_11_INFINITE = |- !f. (!x y. (f x = f y) ==> (x = y)) ==> (!s. INFINITE s ==> INFINITE(IMAGE f s)) INFINITE_SUBSET = |- !s. INFINITE s ==> (!t. s SUBSET t ==> INFINITE t) IN_INFINITE_NOT_FINITE = |- !s t. INFINITE s /\ FINITE t ==> (?x. x IN s /\ ~x IN t) gdef = ["g 0 = {}"; "!n. g(SUC n) = (@x. ~x IN (g n)) INSERT (g n)"] : term list g_finite = .. |- !n. FINITE(g n) g_subset = . |- !n x. x IN (g n) ==> (!i. x IN (g(n + i))) lemma = |- (A \/ B) /\ ~B = A /\ ~B Theorem LESS_SUC_REFL autoloading from theory `prim_rec` ... LESS_SUC_REFL = |- !n. n < (SUC n) g_cases = .. |- (!s. FINITE s ==> (?x. ~x IN s)) ==> (!x. (?n. x IN (g n)) ==> (?m. x IN (g(SUC m)) /\ ~x IN (g m))) z_in_g1 = .. |- (@x. ~x IN {}) IN (g(SUC 0)) Theorem ADD_SYM autoloading from theory `arithmetic` ... ADD_SYM = |- !m n. m + n = n + m Theorem ADD1 autoloading from theory `arithmetic` ... ADD1 = |- !m. SUC m = m + 1 z_in_gn = .. |- !n. (@x. ~x IN {}) IN (g(SUC n)) in_lemma = . |- !n. (@x. ~x IN (g n)) IN (g(SUC n)) not_in_lemma = .. |- (!s. FINITE s ==> (?x. ~x IN s)) ==> (!i n. ~(@x. ~x IN (g(n + i))) IN (g n)) Theorem LESS_NOT_EQ autoloading from theory `prim_rec` ... LESS_NOT_EQ = |- !m n. m < n ==> ~(m = n) Theorem LESS_REFL autoloading from theory `prim_rec` ... LESS_REFL = |- !n. ~n < n less_lemma = |- !m n. ~(m = n) = m < n \/ n < m Theorem LESS_ADD_1 autoloading from theory `arithmetic` ... LESS_ADD_1 = |- !m n. n < m ==> (?p. m = n + (p + 1)) gn_unique = .. |- (!s. FINITE s ==> (?x. ~x IN s)) ==> (!n m. ((@x. ~x IN (g n)) = (@x. ~x IN (g m))) = (n = m)) x_unique = .. |- !n x y. ~x IN (g n) /\ ~y IN (g n) ==> x IN (g(SUC n)) ==> y IN (g(SUC n)) ==> (x = y) fdef = "\x. ((?n. x IN (g n)) => (@y. ~y IN (g(SUC(@n. x IN (g(SUC n)) /\ ~x IN (g n))))) | x)" : term cases = |- !x. (?n. x IN (g n)) \/ (!n. ~x IN (g n)) INF_IMP_INFINITY = |- (!s. FINITE s ==> (?x. ~x IN s)) ==> (?f. (!x y. (f x = f y) ==> (x = y)) /\ (?y. !x. ~(f x = y))) prth = |- ?fn. (!f x. fn f x 0 = x) /\ (!f x n. fn f x(SUC n) = f(fn f x n)) prmth = |- !x f. ?fn. (fn 0 = x) /\ (!n. fn(SUC n) = f(fn n)) num_fn_thm = |- (?f. (!x y. (f x = f y) ==> (x = y)) /\ (?y. !x. ~(f x = y))) ==> (?fn. !n m. (fn n = fn m) ==> (n = m)) Theorem LESS_IMP_LESS_ADD autoloading from theory `arithmetic` ... LESS_IMP_LESS_ADD = |- !n m. n < m ==> (!p. n < (m + p)) Theorem LESS_ADD_SUC autoloading from theory `arithmetic` ... LESS_ADD_SUC = |- !m n. m < (m + (SUC n)) finite_N_bounded = |- !s. FINITE s ==> (?m. !n. n IN s ==> n < m) N_lemma = |- INFINITE UNIV main_lemma = |- !s. FINITE s ==> (!f. (!n m. (f n = f m) ==> (n = m)) ==> (?n. ~(f n) IN s)) INFINITY_IMP_INF = |- (?f. (!x y. (f x = f y) ==> (x = y)) /\ (?y. !x. ~(f x = y))) ==> (!s. FINITE s ==> (?x. ~x IN s)) INFINITE_UNIV = |- INFINITE UNIV = (?f. (!x y. (f x = f y) ==> (x = y)) /\ (?y. !x. ~(f x = y))) FINITE_PSUBSET_INFINITE = |- !s. INFINITE s = (!t. FINITE t ==> t SUBSET s ==> t PSUBSET s) FINITE_PSUBSET_UNIV = |- INFINITE UNIV = (!s. FINITE s ==> s PSUBSET UNIV) INFINITE_DIFF_FINITE = |- !s t. INFINITE s /\ FINITE t ==> ~(s DIFF t = {}) Theorem NOT_LESS_0 autoloading from theory `prim_rec` ... NOT_LESS_0 = |- !n. ~n < 0 FINITE_ISO_NUM = |- !s. FINITE s ==> (?f. (!n m. n < (CARD s) /\ m < (CARD s) ==> (f n = f m) ==> (n = m)) /\ (s = {f n | n < (CARD s)})) echo 'set_flag(`abort_when_fail`,true);;'\ 'load_theory `pred_sets`;;'\ 'compilet `set_ind`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Theory pred_sets loaded () : void SET_INDUCT_TAC = - : tactic Calling Lisp compiler File set_ind compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'load_theory `pred_sets`;;'\ 'compilet `gspec`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Theory pred_sets loaded () : void dest_tuple = - : (term -> term list) MK_PAIR = - : (* list -> conv) EXISTS_TUPLE_CONV = - : (term list -> conv) PAIR_EQ_CONV = - : conv ELIM_EXISTS_CONV = - : conv PROVE_EXISTS = - : conv list_variant = - : (term list -> term list -> term list) SET_SPEC_CONV = - : conv - : conv SET_SPEC_CONV = - : conv Calling Lisp compiler File gspec compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'load_theory `pred_sets`;;'\ 'compilet `fset_conv`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Theory pred_sets loaded () : void FINITE_CONV = - : conv IN_CONV = - : (conv -> conv) DELETE_CONV = - : (conv -> conv) UNION_CONV = - : (conv -> conv) INSERT_CONV = - : (conv -> conv) IMAGE_CONV = - : (conv -> conv -> conv) Calling Lisp compiler File fset_conv compiled () : void #===> library pred_sets rebuilt make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/pred_sets' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/string' rm -f ascii.th echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `mk_ascii`;;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool () : void ascii_Axiom = |- !f. ?! fn. !b0 b1 b2 b3 b4 b5 b6 b7. fn(ASCII b0 b1 b2 b3 b4 b5 b6 b7) = f b0 b1 b2 b3 b4 b5 b6 b7 ascii_Induct = |- !P. (!b0 b1 b2 b3 b4 b5 b6 b7. P(ASCII b0 b1 b2 b3 b4 b5 b6 b7)) ==> (!a. P a) ascii_CASES = |- !a. ?b0 b1 b2 b3 b4 b5 b6 b7. a = ASCII b0 b1 b2 b3 b4 b5 b6 b7 ASCII_11 = |- !b0 b1 b2 b3 b4 b5 b6 b7 b0' b1' b2' b3' b4' b5' b6' b7'. (ASCII b0 b1 b2 b3 b4 b5 b6 b7 = ASCII b0' b1' b2' b3' b4' b5' b6' b7') = (b0 = b0') /\ (b1 = b1') /\ (b2 = b2') /\ (b3 = b3') /\ (b4 = b4') /\ (b5 = b5') /\ (b6 = b6') /\ (b7 = b7') rm -f string.th echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `mk_string`;;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool () : void Theory ascii loaded () : void () : void () : void () : void () : void string_Axiom = `string_Axiom` : string spec = `string = `` | STRING ascii string` : string tok = `tok` : string string_Induct = `string_Induct` : string string_CASES = `string_CASES` : string STRING_11 = `STRING_11` : string NOT_STRING_EMPTY = `NOT_STRING_EMPTY` : string NOT_EMPTY_STRING = `NOT_EMPTY_STRING` : string () : void string_Axiom = |- !e f. ?! fn. (fn `` = e) /\ (!a s. fn(STRING a s) = f(fn s)a s) () : void string_Induct = |- !P. P `` /\ (!s. P s ==> (!a. P(STRING a s))) ==> (!s. P s) string_CASES = |- !s. (s = ``) \/ (?s' a. s = STRING a s') STRING_11 = |- !a s a' s'. (STRING a s = STRING a' s') = (a = a') /\ (s = s') NOT_STRING_EMPTY = |- !a s. ~(`` = STRING a s) NOT_EMPTY_STRING = |- !a s. ~(STRING a s = ``) () : void echo 'set_flag(`abort_when_fail`,true);;'\ 'load_theory `ascii`;;'\ 'compilet `ascii`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Theory ascii loaded () : void ascii_EQ_CONV = - : conv Calling Lisp compiler File ascii compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'load_theory `string`;;'\ 'compilet `stringconv`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Theory string loaded () : void string_CONV = - : conv Calling Lisp compiler File stringconv compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'load_theory `string`;;'\ 'loadf `stringconv`;;'\ 'loadf `ascii`;;'\ 'compilet `string_rules`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Theory string loaded () : void .() : void .() : void string_EQ_CONV = - : conv Calling Lisp compiler File string_rules compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'load_theory `string`;;'\ 'compilet `string`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Theory string loaded () : void Updating search path () : void Updating help search path () : void Theory string loaded () : void () : void () : void Calling Lisp compiler File string compiled () : void #===> library string rebuilt make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/string' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/finite_sets' rm -f finite_sets.th echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `mk_finite_sets`;;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool () : void IS_SET_REP = "\s. !P. P(\x. F) /\ (!t. P t ==> (!x. P(\y. (y = x) \/ t y))) ==> P s" : term IS_SET_REP_EMPTY = |- (\s. !P. P(\x. F) /\ (!t. P t ==> (!x. P(\y. (y = x) \/ t y))) ==> P s) (\x. F) INSERTION_PRESERVES_IS_SET_REP = |- !s. (\s. !P. P(\x. F) /\ (!t. P t ==> (!x. P(\y. (y = x) \/ t y))) ==> P s) s ==> (!x. (\s. !P. P(\x. F) /\ (!t. P t ==> (!x. P(\y. (y = x) \/ t y))) ==> P s) (\y. (y = x) \/ s y)) REP_INDUCT = |- !P. P(\x. F) /\ (!t. P t ==> (!x. P(\y. (y = x) \/ t y))) ==> (!s. (\s. !P. P(\x. F) /\ (!t. P t ==> (!x. P(\y. (y = x) \/ t y))) ==> P s) s ==> P s) IS_SET_REP_EXISTS = |- ?IS_SET_REP. IS_SET_REP(\x. F) /\ (!s. IS_SET_REP s ==> (!x. IS_SET_REP(\y. (y = x) \/ s y))) /\ (!P. P(\x. F) /\ (!t. P t ==> (!x. P(\y. (y = x) \/ t y))) ==> (!s. IS_SET_REP s ==> P s)) IS_SET_REP = |- IS_SET_REP(\x. F) /\ (!s. IS_SET_REP s ==> (!x. IS_SET_REP(\y. (y = x) \/ s y))) /\ (!P. P(\x. F) /\ (!t. P t ==> (!x. P(\y. (y = x) \/ t y))) ==> (!s. IS_SET_REP s ==> P s)) STRONG_SET_REP_INDUCT = |- !P. P(\x. F) /\ (!t. IS_SET_REP t ==> P t ==> (!x. P(\y. (y = x) \/ t y))) ==> (!s. IS_SET_REP s ==> P s) EXISTENCE_THM = |- ?s. IS_SET_REP s set_TY_DEF = |- ?rep. TYPE_DEFINITION IS_SET_REP rep EXISTENCE_LEMMA = |- ?EMPTY INSERT IN. (!x. ~IN x EMPTY) /\ (!x y s. IN x(INSERT y s) = (x = y) \/ IN x s) /\ (!x s. INSERT x(INSERT x s) = INSERT x s) /\ (!x y s. INSERT x(INSERT y s) = INSERT y(INSERT x s)) /\ (!P. P EMPTY /\ (!s. P s ==> (!e. P(INSERT e s))) ==> (!s. P s)) FINITE_SET_DEF = |- (!x. ~x IN EMPTY) /\ (!x y s. x IN (y INSERT s) = (x = y) \/ x IN s) /\ (!x s. x INSERT (x INSERT s) = x INSERT s) /\ (!x y s. x INSERT (y INSERT s) = y INSERT (x INSERT s)) /\ (!P. P EMPTY /\ (!s. P s ==> (!e. P(e INSERT s))) ==> (!s. P s)) () : void NOT_IN_EMPTY = |- !x. ~x IN {} IN_INSERT = |- !x y s. x IN (y INSERT s) = (x = y) \/ x IN s INSERT_INSERT = |- !x s. x INSERT (x INSERT s) = x INSERT s INSERT_COMM = |- !x y s. x INSERT (y INSERT s) = y INSERT (x INSERT s) |- !x. ~x IN {} |- !x y s. x IN (y INSERT s) = (x = y) \/ x IN s |- !x s. x INSERT (x INSERT s) = x INSERT s |- !x y s. x INSERT (y INSERT s) = y INSERT (x INSERT s) COMPONENT = |- !x s. x IN (x INSERT s) NOT_EMPTY_INSERT = |- !x s. ~({} = x INSERT s) NOT_INSERT_EMPTY = |- !x s. ~(x INSERT s = {}) lemma = |- !x s. x IN s ==> (x INSERT s = s) ABSORPTION = |- !x s. x IN s = (x INSERT s = s) SET_INDUCT = |- !P. P{} /\ (!s. P s ==> (!e. ~e IN s ==> P(e INSERT s))) ==> (!s. P s) SET_INDUCT_TAC = - : tactic File set_ind.ml loaded () : void DECOMPOSITION = |- !s x. x IN s = (?t. (s = x INSERT t) /\ ~x IN t) MEMBER_NOT_EMPTY = |- !s. (?x. x IN s) = ~(s = {}) lemma = |- !s t. (!x. x IN s = x IN t) ==> (s = t) EXTENSION = |- !s t. (s = t) = (!x. x IN s = x IN t) NOT_EQUAL_SETS = |- !s t. ~(s = t) = (?x. x IN t = ~x IN s) Theorem NOT_LESS autoloading from theory `arithmetic` ... NOT_LESS = |- !m n. ~m < n = n <= m Theorem WOP autoloading from theory `arithmetic` ... WOP = |- !P. (?n. P n) ==> (?n. P n /\ (!m. m < n ==> ~P m)) NUM_SET_WOP = |- !s. (?n. n IN s) = (?n. n IN s /\ (!m. m IN s ==> n <= m)) SET_CASES = |- !s. (s = {}) \/ (?x t. (s = x INSERT t) /\ ~x IN t) SUBSET_DEF = |- !s t. s SUBSET t = (!x. x IN s ==> x IN t) SUBSET_TRANS = |- !s t u. s SUBSET t /\ t SUBSET u ==> s SUBSET u SUBSET_REFL = |- !s. s SUBSET s SUBSET_ANTISYM = |- !s t. s SUBSET t /\ t SUBSET s ==> (s = t) EMPTY_SUBSET = |- !s. {} SUBSET s SUBSET_EMPTY = |- !s. s SUBSET {} = (s = {}) INSERT_SUBSET = |- !x s t. (x INSERT s) SUBSET t = x IN t /\ s SUBSET t SUBSET_INSERT = |- !x s. ~x IN s ==> (!t. s SUBSET (x INSERT t) = s SUBSET t) PSUBSET_DEF = |- !s t. s PSUBSET t = s SUBSET t /\ ~(s = t) PSUBSET_TRANS = |- !s t u. s PSUBSET t /\ t PSUBSET u ==> s PSUBSET u PSUBSET_IRREFL = |- !s. ~s PSUBSET s NOT_PSUBSET_EMPTY = |- !s. ~s PSUBSET {} PSUBSET_INSERT_SUBSET = |- !s t. s PSUBSET t = (?x. ~x IN s /\ (x INSERT s) SUBSET t) lemma = |- ~(a = b) = (b = ~a) PSUBSET_MEMBER = |- !s t. s PSUBSET t = s SUBSET t /\ (?y. y IN t /\ ~y IN s) UNION_EXISTS = |- !s t. ?u. !x. x IN u = x IN s \/ x IN t IN_UNION = |- !s t x. x IN (s UNION t) = x IN s \/ x IN t UNION_ASSOC = |- !s t u. (s UNION t) UNION u = s UNION (t UNION u) UNION_IDEMPOT = |- !s. s UNION s = s UNION_COMM = |- !s t. s UNION t = t UNION s SUBSET_UNION = |- (!s t. s SUBSET (s UNION t)) /\ (!s t. s SUBSET (t UNION s)) SUBSET_UNION_ABSORPTION = |- !s t. s SUBSET t = (s UNION t = t) UNION_EMPTY = |- (!s. {} UNION s = s) /\ (!s. s UNION {} = s) EMPTY_UNION = |- !s t. (s UNION t = {}) = (s = {}) /\ (t = {}) INSERT_UNION = |- !x s t. (x INSERT s) UNION t = (x IN t => s UNION t | x INSERT (s UNION t)) INSERT_UNION_EQ = |- !x s t. (x INSERT s) UNION t = x INSERT (s UNION t) INTER_EXISTS = |- !s t. ?i. !x. x IN i = x IN s /\ x IN t IN_INTER = |- !s t x. x IN (s INTER t) = x IN s /\ x IN t INTER_ASSOC = |- !s t u. (s INTER t) INTER u = s INTER (t INTER u) INTER_IDEMPOT = |- !s. s INTER s = s INTER_COMM = |- !s t. s INTER t = t INTER s INTER_SUBSET = |- (!s t. (s INTER t) SUBSET s) /\ (!s t. (t INTER s) SUBSET s) SUBSET_INTER_ABSORPTION = |- !s t. s SUBSET t = (s INTER t = s) INTER_EMPTY = |- (!s. {} INTER s = {}) /\ (!s. s INTER {} = {}) INSERT_INTER = |- !x s t. (x INSERT s) INTER t = (x IN t => x INSERT (s INTER t) | s INTER t) UNION_OVER_INTER = |- !s t u. s INTER (t UNION u) = (s INTER t) UNION (s INTER u) INTER_OVER_UNION = |- !s t u. s UNION (t INTER u) = (s UNION t) INTER (s UNION u) DISJOINT_DEF = |- !s t. DISJOINT s t = (s INTER t = {}) IN_DISJOINT = |- !s t. DISJOINT s t = ~(?x. x IN s /\ x IN t) DISJOINT_SYM = |- !s t. DISJOINT s t = DISJOINT t s DISJOINT_EMPTY = |- !s. DISJOINT{}s /\ DISJOINT s{} DISJOINT_EMPTY_REFL = |- !s. (s = {}) = DISJOINT s s DISJOINT_INSERT = |- !x s t. DISJOINT(x INSERT s)t = DISJOINT s t /\ ~x IN t DISJOINT_UNION = |- !s t u. DISJOINT(s UNION t)u = DISJOINT s u /\ DISJOINT t u DIFF_EXISTS = |- !s t. ?d. !x. x IN d = x IN s /\ ~x IN t IN_DIFF = |- !s t x. x IN (s DIFF t) = x IN s /\ ~x IN t DIFF_EMPTY = |- !s. s DIFF {} = s EMPTY_DIFF = |- !s. {} DIFF s = {} DIFF_DIFF = |- !s t. (s DIFF t) DIFF t = s DIFF t DIFF_EQ_EMPTY = |- !s. s DIFF s = {} DELETE_DEF = |- !s x. s DELETE x = s DIFF {x} IN_DELETE = |- !s x y. x IN (s DELETE y) = x IN s /\ ~(x = y) DELETE_NON_ELEMENT = |- !x s. ~x IN s = (s DELETE x = s) IN_DELETE_EQ = |- !s x x'. (x IN s = x' IN s) = (x IN (s DELETE x') = x' IN (s DELETE x)) EMPTY_DELETE = |- !x. {} DELETE x = {} DELETE_DELETE = |- !x s. (s DELETE x) DELETE x = s DELETE x DELETE_COMM = |- !x y s. (s DELETE x) DELETE y = (s DELETE y) DELETE x DELETE_SUBSET = |- !x s. (s DELETE x) SUBSET s SUBSET_DELETE = |- !x s t. s SUBSET (t DELETE x) = ~x IN s /\ s SUBSET t SUBSET_INSERT_DELETE = |- !x s t. s SUBSET (x INSERT t) = (s DELETE x) SUBSET t DIFF_INSERT = |- !s t x. s DIFF (x INSERT t) = (s DELETE x) DIFF t DELETE_INSERT = |- !x y s. (x INSERT s) DELETE y = ((x = y) => s DELETE y | x INSERT (s DELETE y)) INSERT_DELETE = |- !x s. x IN s ==> (x INSERT (s DELETE x) = s) DELETE_INTER = |- !s t x. (s DELETE x) INTER t = (s INTER t) DELETE x DISJOINT_DELETE_SYM = |- !s t x. DISJOINT(s DELETE x)t = DISJOINT(t DELETE x)s CHOICE_EXISTS = |- ?CHOICE. !s. ~(s = {}) ==> (CHOICE s) IN s CHOICE_DEF = |- !s. ~(s = {}) ==> (CHOICE s) IN s REST_DEF = |- !s. REST s = s DELETE (CHOICE s) CHOICE_NOT_IN_REST = |- !s. ~(CHOICE s) IN (REST s) CHOICE_INSERT_REST = |- !s. ~(s = {}) ==> ((CHOICE s) INSERT (REST s) = s) REST_SUBSET = |- !s. (REST s) SUBSET s lemma = |- (P /\ Q = P) = P ==> Q REST_PSUBSET = |- !s. ~(s = {}) ==> (REST s) PSUBSET s SING_DEF = |- !s. SING s = (?x. s = {x}) SING = |- !x. SING{x} IN_SING = |- !x y. x IN {y} = (x = y) NOT_SING_EMPTY = |- !x. ~({x} = {}) NOT_EMPTY_SING = |- !x. ~({} = {x}) EQUAL_SING = |- !x y. ({x} = {y}) = (x = y) DISJOINT_SING_EMPTY = |- !x. DISJOINT{x}{} INSERT_SING_UNION = |- !s x. x INSERT s = {x} UNION s SING_DELETE = |- !x. {x} DELETE x = {} DELETE_EQ_SING = |- !s x. x IN s ==> ((s DELETE x = {}) = (s = {x})) CHOICE_SING = |- !x. CHOICE{x} = x REST_SING = |- !x. REST{x} = {} SING_IFF_EMPTY_REST = |- !s. SING s = ~(s = {}) /\ (REST s = {}) IMAGE_EXISTS = |- !f s. ?t. !y. y IN t = (?x. (y = f x) /\ x IN s) IN_IMAGE = |- !f s y. y IN (IMAGE f s) = (?x. (y = f x) /\ x IN s) IMAGE_IN = |- !x s. x IN s ==> (!f. (f x) IN (IMAGE f s)) IMAGE_EMPTY = |- !f. IMAGE f{} = {} IMAGE_ID = |- !s. IMAGE(\x. x)s = s Theorem o_THM autoloading from theory `combin` ... o_THM = |- !f g x. (f o g)x = f(g x) IMAGE_COMPOSE = |- !f g s. IMAGE(f o g)s = IMAGE f(IMAGE g s) IMAGE_INSERT = |- !f x s. IMAGE f(x INSERT s) = (f x) INSERT (IMAGE f s) IMAGE_EQ_EMPTY = |- !s f. (IMAGE f s = {}) = (s = {}) IMAGE_DELETE = |- !f x s. ~x IN s ==> (IMAGE f(s DELETE x) = IMAGE f s) IMAGE_UNION = |- !f s t. IMAGE f(s UNION t) = (IMAGE f s) UNION (IMAGE f t) IMAGE_SUBSET = |- !s t. s SUBSET t ==> (!f. (IMAGE f s) SUBSET (IMAGE f t)) IMAGE_INTER = |- !f s t. (IMAGE f(s INTER t)) SUBSET ((IMAGE f s) INTER (IMAGE f t)) lemma = |- !s x. x IN s ==> (!f. (f x) IN (IMAGE f s)) SET_MINIMUM = |- !s M. (?x. x IN s) = (?x. x IN s /\ (!y. y IN s ==> (M x) <= (M y))) INJ_DEF = |- !f s t. INJ f s t = (!x. x IN s ==> (f x) IN t) /\ (!x y. x IN s /\ y IN s ==> (f x = f y) ==> (x = y)) INJ_ID = |- !s. INJ(\x. x)s s INJ_COMPOSE = |- !f g s t u. INJ f s t /\ INJ g t u ==> INJ(g o f)s u INJ_EMPTY = |- !f. (!s. INJ f{}s) /\ (!s. INJ f s{} = (s = {})) SURJ_DEF = |- !f s t. SURJ f s t = (!x. x IN s ==> (f x) IN t) /\ (!x. x IN t ==> (?y. y IN s /\ (f y = x))) SURJ_ID = |- !s. SURJ(\x. x)s s SURJ_COMPOSE = |- !f g s t u. SURJ f s t /\ SURJ g t u ==> SURJ(g o f)s u SURJ_EMPTY = |- !f. (!s. SURJ f{}s = (s = {})) /\ (!s. SURJ f s{} = (s = {})) IMAGE_SURJ = |- !f s t. SURJ f s t = (IMAGE f s = t) BIJ_DEF = |- !f s t. BIJ f s t = INJ f s t /\ SURJ f s t BIJ_ID = |- !s. BIJ(\x. x)s s BIJ_EMPTY = |- !f. (!s. BIJ f{}s = (s = {})) /\ (!s. BIJ f s{} = (s = {})) BIJ_COMPOSE = |- !f g s t u. BIJ f s t /\ BIJ g t u ==> BIJ(g o f)s u lemma1 = |- !f s. (!x y. x IN s /\ y IN s ==> (f x = f y) ==> (x = y)) = (!y. y IN s ==> (!x. x IN s /\ (f x = f y) = y IN s /\ (x = y))) lemma2 = |- !f s. ?g. !t. INJ f s t ==> (!x. x IN s ==> (g(f x) = x)) LINV_DEF = |- !f s t. INJ f s t ==> (!x. x IN s ==> (LINV f s(f x) = x)) lemma3 = |- !f s. ?g. !t. SURJ f s t ==> (!x. x IN t ==> (f(g x) = x)) RINV_DEF = |- !f s t. SURJ f s t ==> (!x. x IN t ==> (f(RINV f s x) = x)) card_rel_def = "(!s. R s 0 = (s = {})) /\ (!s n. R s(SUC n) = (?x. x IN s /\ R(s DELETE x)n))" : term Theorem num_Axiom autoloading from theory `prim_rec` ... num_Axiom = |- !e f. ?! fn. (fn 0 = e) /\ (!n. fn(SUC n) = f(fn n)n) CARD_REL_EXISTS = |- ?R. (!s. R s 0 = (s = {})) /\ (!s n. R s(SUC n) = (?x. x IN s /\ R(s DELETE x)n)) CARD_REL_DEL_LEMMA = .. |- !n s x. x IN s ==> R(s DELETE x)n ==> (!y. y IN s ==> R(s DELETE y)n) Theorem INV_SUC_EQ autoloading from theory `prim_rec` ... INV_SUC_EQ = |- !m n. (SUC m = SUC n) = (m = n) Theorem NOT_SUC autoloading from theory `num` ... NOT_SUC = |- !n. ~(SUC n = 0) CARD_REL_UNIQUE = .. |- !n s. R s n ==> (!m. R s m ==> (n = m)) CARD_REL_EXISTS_LEMMA = .. |- !s. ?n. R s n CARD_REL_THM = .. |- !m s. ((@n. R s n) = m) = R s m CARD_EXISTS = |- ?CARD. (CARD{} = 0) /\ (!s x. CARD(x INSERT s) = (x IN s => CARD s | SUC(CARD s))) CARD_DEF = |- (CARD{} = 0) /\ (!s x. CARD(x INSERT s) = (x IN s => CARD s | SUC(CARD s))) CARD_EMPTY = |- CARD{} = 0 CARD_INSERT = |- !s x. CARD(x INSERT s) = (x IN s => CARD s | SUC(CARD s)) CARD_EQ_0 = |- !s. (CARD s = 0) = (s = {}) Theorem num_CASES autoloading from theory `arithmetic` ... num_CASES = |- !m. (m = 0) \/ (?n. m = SUC n) Theorem SUC_SUB1 autoloading from theory `arithmetic` ... SUC_SUB1 = |- !m. (SUC m) - 1 = m CARD_DELETE = |- !s x. CARD(s DELETE x) = (x IN s => (CARD s) - 1 | CARD s) Theorem LESS_MONO_EQ autoloading from theory `arithmetic` ... LESS_MONO_EQ = |- !m n. (SUC m) < (SUC n) = m < n Definition LESS_OR_EQ autoloading from theory `arithmetic` ... LESS_OR_EQ = |- !m n. m <= n = m < n \/ (m = n) lemma1 = |- !n m. (SUC n) <= (SUC m) = n <= m Theorem LESS_THM autoloading from theory `prim_rec` ... LESS_THM = |- !m n. m < (SUC n) = (m = n) \/ m < n lemma2 = |- !n m. n <= (SUC m) = n <= m \/ (n = SUC m) Theorem LESS_EQ_REFL autoloading from theory `arithmetic` ... LESS_EQ_REFL = |- !m. m <= m CARD_INTER_LESS_EQ = |- !s t. (CARD(s INTER t)) <= (CARD s) Theorem ADD_CLAUSES autoloading from theory `arithmetic` ... ADD_CLAUSES = |- (0 + m = m) /\ (m + 0 = m) /\ ((SUC m) + n = SUC(m + n)) /\ (m + (SUC n) = SUC(m + n)) CARD_UNION = |- !s t. (CARD(s UNION t)) + (CARD(s INTER t)) = (CARD s) + (CARD t) lemma = |- !n m. n <= (SUC m) = n <= m \/ (n = SUC m) Theorem LESS_0 autoloading from theory `prim_rec` ... LESS_0 = |- !n. 0 < (SUC n) CARD_SUBSET = |- !s t. t SUBSET s ==> (CARD t) <= (CARD s) Theorem LESS_EQ autoloading from theory `arithmetic` ... LESS_EQ = |- !m n. m < n = (SUC m) <= n CARD_PSUBSET = |- !s t. t PSUBSET s ==> (CARD t) < (CARD s) CARD_SING = |- !x. CARD{x} = 1 SING_IFF_CARD1 = |- !s. SING s = (CARD s = 1) Theorem SUB_PLUS autoloading from theory `arithmetic` ... SUB_PLUS = |- !a b c. a - (b + c) = (a - b) - c Theorem SUB_0 autoloading from theory `arithmetic` ... SUB_0 = |- !m. (0 - m = 0) /\ (m - 0 = m) CARD_DIFF = |- !t s. CARD(s DIFF t) = (CARD s) - (CARD(s INTER t)) Theorem SUB_LESS_0 autoloading from theory `arithmetic` ... SUB_LESS_0 = |- !n m. m < n = 0 < (n - m) LESS_CARD_DIFF = |- !t s. (CARD t) < (CARD s) ==> 0 < (CARD(s DIFF t)) echo 'set_flag(`abort_when_fail`,true);;'\ 'load_theory `finite_sets`;;'\ 'compilet `set_ind`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Theory finite_sets loaded () : void SET_INDUCT_TAC = - : tactic Calling Lisp compiler File set_ind compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'load_theory `finite_sets`;;'\ 'compilet `fset_conv`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Theory finite_sets loaded () : void IN_CONV = - : (conv -> conv) DELETE_CONV = - : (conv -> conv) UNION_CONV = - : (conv -> conv) INSERT_CONV = - : (conv -> conv) IMAGE_CONV = - : (conv -> conv -> conv) Calling Lisp compiler File fset_conv compiled () : void #===> library finite_sets rebuilt make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/finite_sets' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/res_quan' rm -f res_quan.th echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `mk_res_quan`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool () : void RESQ_FORALL = |- !P B. RES_FORALL P B = (!x. P x ==> B x) RESQ_EXISTS = |- !P B. RES_EXISTS P B = (?x. P x /\ B x) RESQ_SELECT = |- !P B. RES_SELECT P B = (@x. P x /\ B x) RESQ_ABSTRACT = |- !P B. RES_ABSTRACT P B = (\x. (P x => B x | ARB)) RESQ_FORALL_CONJ_DIST = |- !P Q R. (!i :: P. Q i /\ R i) = (!i :: P. Q i) /\ (!i :: P. R i) RESQ_FORALL_DISJ_DIST = |- !P Q R. (!i :: \i. P i \/ Q i. R i) = (!i :: P. R i) /\ (!i :: Q. R i) RESQ_FORALL_UNIQUE = |- !P j. (!i :: $= j. P i) = P j RESQ_FORALL_FORALL = |- !P R x. (!x. !i :: P. R i x) = (!i :: P. !x. R i x) RESQ_FORALL_REORDER = |- !P Q R. (!i :: P. !j :: Q. R i j) = (!j :: Q. !i :: P. R i j) RESQ_EXISTS_DISJ_DIST = |- !P Q R. (?i :: P. Q i \/ R i) = (?i :: P. Q i) \/ (?i :: P. R i) RESQ_DISJ_EXISTS_DIST = |- !P Q R. (?i :: \i. P i \/ Q i. R i) = (?i :: P. R i) \/ (?i :: Q. R i) RESQ_EXISTS_UNIQUE = |- !P j. (?i :: $= j. P i) = P j RESQ_EXISTS_REORDER = |- !P Q R. (?i :: P. ?j :: Q. R i j) = (?j :: Q. ?i :: P. R i j) () : void File mk_res_quan loaded () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'compilet `cond_rewr`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool match_aa = - : (term -> term -> ((term # term) list # (type # type) list) list) match_ok = - : (* list -> ((** # *) list # *** list) list -> bool) match_aal = - : (term list -> term -> term list -> ((term # term) list # term) list) subset = - : (* list -> * list -> bool) match_asm = - : (term list -> term list -> ((term # term) list # term list) -> term list -> ((term # term) list # term list)) var_cap = - : (thm -> term list -> term list -> term list -> (term list # thm)) MATCH_SUBS1 = - : (thm -> term list -> term list -> ((term # term) list # (type # type) list) -> (term list # thm)) MATCH_SUBS = - : (thm -> term list -> term list -> ((term # term) list # (type # type) list) list -> (term list # thm list)) COND_REWR_TAC = - : ((term -> term -> ((term # term) list # (type # type) list) list) -> thm_tactic) - : ((term -> term -> ((term # term) list # (type # type) list) list) -> thm_tactic) COND_REWR_TAC = - : ((term -> term -> ((term # term) list # (type # type) list) list) -> thm_tactic) search_top_down = - : (term -> term -> ((term # term) list # (type # type) list) list) COND_REWR_CANON = - : (thm -> thm) COND_REWRITE1_TAC = - : thm_tactic COND_REWR_CONV = - : ((term -> term -> ((term # term) list # (type # type) list) list) -> thm -> conv) COND_REWRITE1_CONV = - : (thm list -> thm -> conv) Calling Lisp compiler File cond_rewr compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'load_theory `res_quan`;;'\ 'loadf `cond_rewr`;;'\ 'compilet `res_rules`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Theory res_quan loaded () : void ................() : void rtheory = `res_quan` : string mk_resq_forall = - : ((term # term # term) -> term) mk_resq_exists = - : ((term # term # term) -> term) mk_resq_select = - : ((term # term # term) -> term) mk_resq_abstract = - : ((term # term # term) -> term) list_mk_resq_forall = - : (((term # term) list # term) -> term) list_mk_resq_exists = - : (((term # term) list # term) -> term) dest_resq_forall = - : (term -> (term # term # term)) dest_resq_exists = - : (term -> (term # term # term)) dest_resq_select = - : (term -> (term # term # term)) dest_resq_abstract = - : (term -> (term # term # term)) strip_resq_forall = - : (term -> ((term # term) list # term)) strip_resq_exists = - : (term -> ((term # term) list # term)) is_resq_forall = - : (term -> bool) is_resq_exists = - : (term -> bool) is_resq_select = - : (term -> bool) is_resq_abstract = - : (term -> bool) RESQ_SPEC = - : (term -> thm -> thm) RESQ_SPECL = - : (term list -> thm -> thm) RESQ_SPEC_ALL = - : (thm -> thm) GQSPEC = - : (term -> thm -> thm) GQSPECL = - : (term list -> thm -> thm) GQSPEC_ALL = - : (thm -> thm) RESQ_HALF_SPEC = - : (thm -> thm) RESQ_HALF_EXISTS = - : (thm -> thm) RESQ_GEN = - : ((term # term) -> thm -> thm) RESQ_GENL = - : ((term # term) list -> thm -> thm) RESQ_GEN_ALL = - : (thm -> thm) RESQ_MATCH_MP = - : (thm -> thm -> thm) RESQ_HALF_GEN_TAC = - : tactic RESQ_GEN_TAC = - : tactic GGEN_TAC = - : tactic RESQ_EXISTS_TAC = - : (term -> tactic) MATCH_MP = - : (thm -> thm -> thm) check = - : (string -> * list -> * list) check_res = - : (thm -> thm) RESQ_IMP_RES_THEN = - : thm_tactical RESQ_RES_THEN = - : (thm_tactic -> tactic) ((-), -) : (thm_tactical # (thm_tactic -> tactic)) RESQ_IMP_RES_THEN = - : thm_tactical RESQ_RES_THEN = - : (thm_tactic -> tactic) RESQ_IMP_RES_TAC = - : thm_tactic RESQ_RES_TAC = - : tactic LHS_CONV = - : (conv -> conv) RHS_CONV = - : (conv -> conv) BOTH_CONV = - : (conv -> conv) LEFT_THENC_RIGHT = - : (conv -> conv -> conv) RF_BODY_CONV = - : (conv -> conv) RF_PRED_CONV = - : (conv -> conv) RF_CONV = - : (conv -> conv) PRED_THENC_BODY = - : (conv -> conv -> conv) RESQ_FORALL_CONV = - : conv LIST_RESQ_FORALL_CONV = - : conv IMP_RESQ_FORALL_CONV = - : conv RESQ_FORALL_AND_CONV = - : conv AND_RESQ_FORALL_CONV = - : conv RESQ_FORALL_SWAP_CONV = - : conv RESQ_EXISTS_CONV = - : conv RESQ_REWR_CANON = - : (thm -> thm) RESQ_REWRITE1_TAC = - : thm_tactic RESQ_REWRITE1_CONV = - : (thm list -> thm -> conv) check_varstruct = - : (term -> term list) check_lhs = - : (term -> term list) get_type = - : (term -> type -> type) RESQ_DEF_EXISTS_RULE = - : conv new_gen_resq_definition = - : (string -> (string # term) -> thm) new_resq_definition = - : ((string # term) -> thm) new_infix_resq_definition = - : ((string # term) -> thm) new_binder_resq_definition = - : ((string # term) -> thm) ((-), (-), -) : (((string # term) -> thm) # ((string # term) -> thm) # ((string # term) -> thm)) new_resq_definition = - : ((string # term) -> thm) new_infix_resq_definition = - : ((string # term) -> thm) new_binder_resq_definition = - : ((string # term) -> thm) Calling Lisp compiler File res_rules compiled () : void #===> library res_quan rebuilt make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/res_quan' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/wellorder' \ echo 'set_flag(`abort_when_fail`,true);;' \ 'loadt `mk_wellorder`;;' \ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool false : bool () : void false : bool Run time: 0.0s ty = ":* # * -> bool" : type Run time: 0.0s set_wo_map = - : (void -> void) unset_wo_map = - : (void -> void) Run time: 0.0s TAUT_CONV = - : conv Run time: 0.0s GEN_PAIR_TAC = - : tactic Run time: 0.0s PBETA_TAC = - : tactic Run time: 0.0s ABBREV_TAC = - : (term -> tactic) Run time: 0.0s EXPAND_TAC = - : (string -> tactic) Run time: 0.0s ANTE_RES_THEN = - : thm_tactical Run time: 0.0s IMP_RES_THEN = - : thm_tactical Run time: 0.0s LAND_CONV = - : (conv -> conv) Run time: 0.0s less = |- !l x y. wo_less l(x,y) = l(x,y) /\ ~(x = y) Run time: 0.0s Intermediate theorems generated: 2 subset = |- !P Q. P wo_subset Q = (!x. P x ==> Q x) Run time: 0.0s Intermediate theorems generated: 2 Union = |- !P. wo_Union P = (\x. ?p. P p /\ p x) Run time: 0.0s Intermediate theorems generated: 2 fl = |- !l x. wo_fl l x = (?y. l(x,y) \/ l(y,x)) Run time: 0.0s Intermediate theorems generated: 2 poset = |- !l. wo_poset l = (!x. wo_fl l x ==> l(x,x)) /\ (!x y z. l(x,y) /\ l(y,z) ==> l(x,z)) /\ (!x y. l(x,y) /\ l(y,x) ==> (x = y)) Run time: 0.0s Intermediate theorems generated: 2 chain = |- !l P. wo_chain l P = (!x y. P x /\ P y ==> l(x,y) \/ l(y,x)) Run time: 0.0s Intermediate theorems generated: 2 woset = |- !l. wo_woset l = (!x. wo_fl l x ==> l(x,x)) /\ (!x y z. l(x,y) /\ l(y,z) ==> l(x,z)) /\ (!x y. l(x,y) /\ l(y,x) ==> (x = y)) /\ (!x y. wo_fl l x /\ wo_fl l y ==> l(x,y) \/ l(y,x)) /\ (!P. (!x. P x ==> wo_fl l x) /\ (?x. P x) ==> (?y. P y /\ (!z. P z ==> l(y,z)))) Run time: 0.0s Intermediate theorems generated: 2 inseg = |- !l m. l wo_inseg m = (!x y. l(x,y) = m(x,y) /\ wo_fl l y) Run time: 0.0s Intermediate theorems generated: 2 linseg = |- !l a. wo_linseg l a = (\(x,y). l(x,y) /\ wo_less l(y,a)) Run time: 0.0s Intermediate theorems generated: 2 ordinal = |- !l. wo_ordinal l = wo_woset l /\ (!x. wo_fl l x ==> (x = (@y. ~wo_less l(y,x)))) Run time: 0.0s Intermediate theorems generated: 2 () : void Run time: 0.0s SUBSET_REFL = |- !P. P subset P Run time: 0.0s Intermediate theorems generated: 22 SUBSET_ANTISYM = |- !P Q. P subset Q /\ Q subset P ==> (P = Q) Run time: 0.0s Intermediate theorems generated: 100 SUBSET_TRANS = |- !P Q R. P subset Q /\ Q subset R ==> P subset R Run time: 0.0s Intermediate theorems generated: 121 POSET_REFL = |- !l. poset l ==> (!x. fl l x ==> l(x,x)) POSET_TRANS = |- !l. poset l ==> (!x y z. l(x,y) /\ l(y,z) ==> l(x,z)) POSET_ANTISYM = |- !l. poset l ==> (!x y. l(x,y) /\ l(y,x) ==> (x = y)) Run time: 0.0s Intermediate theorems generated: 16 POSET_FLEQ = |- !l. poset l ==> (!x. fl l x = l(x,x)) Run time: 0.0s Intermediate theorems generated: 34 CHAIN_SUBSET = |- !l P Q. chain l P /\ Q subset P ==> chain l Q Run time: 0.0s Intermediate theorems generated: 90 WOSET_REFL = |- !l. woset l ==> (!x. fl l x ==> l(x,x)) WOSET_TRANS = |- !l. woset l ==> (!x y z. l(x,y) /\ l(y,z) ==> l(x,z)) WOSET_ANTISYM = |- !l. woset l ==> (!x y. l(x,y) /\ l(y,x) ==> (x = y)) WOSET_TOTAL = |- !l. woset l ==> (!x y. fl l x /\ fl l y ==> l(x,y) \/ l(y,x)) WOSET_WELL = |- !l. woset l ==> (!P. (!x. P x ==> fl l x) /\ (?x. P x) ==> (?y. P y /\ (!z. P z ==> l(y,z)))) Run time: 0.0s Intermediate theorems generated: 24 WOSET_POSET = |- !l. woset l ==> poset l Run time: 0.0s Intermediate theorems generated: 98 WOSET_FLEQ = |- !l. woset l ==> (!x. fl l x = l(x,x)) Run time: 0.0s Intermediate theorems generated: 8 WOSET_TRANS_LESS = |- !l. woset l ==> (!x y z. less l(x,y) /\ l(y,z) ==> less l(x,z)) Run time: 0.0s Intermediate theorems generated: 144 WOSET = |- !l. woset l = (!x y. l(x,y) /\ l(y,x) ==> (x = y)) /\ (!P. (!x. P x ==> fl l x) /\ (?x. P x) ==> (?y. P y /\ (!z. P z ==> l(y,z)))) Run time: 0.0s Intermediate theorems generated: 1294 PAIRED_EXT = |- !l m. (!x y. l(x,y) = m(x,y)) = (l = m) Run time: 0.0s Intermediate theorems generated: 63 WOSET_REFL = |- !l. woset l ==> (!x. fl l x ==> l(x,x)) WOSET_TRANS = |- !l. woset l ==> (!x y z. l(x,y) /\ l(y,z) ==> l(x,z)) WOSET_ANTISYM = |- !l. woset l ==> (!x y. l(x,y) /\ l(y,x) ==> (x = y)) WOSET_TOTAL = |- !l. woset l ==> (!x y. fl l x /\ fl l y ==> l(x,y) \/ l(y,x)) WOSET_WELL = |- !l. woset l ==> (!P. (!x. P x ==> fl l x) /\ (?x. P x) ==> (?y. P y /\ (!z. P z ==> l(y,z)))) Run time: 0.0s Intermediate theorems generated: 24 WOSET_TRANS_LE = |- !l. woset l ==> (!x y z. l(x,y) /\ less l(y,z) ==> less l(x,z)) Run time: 0.0s Intermediate theorems generated: 143 WOSET_WELL_CONTRAPOS = |- !l. woset l ==> (!P. (!x. P x ==> fl l x) /\ (?x. P x) ==> (?y. P y /\ (!z. less l(z,y) ==> ~P z))) Run time: 0.0s Intermediate theorems generated: 109 WOSET_TOTAL_LE = |- !l. woset l ==> (!x y. fl l x /\ fl l y ==> l(x,y) \/ less l(y,x)) Run time: 0.0s Intermediate theorems generated: 138 WOSET_TOTAL_LT = |- !l. woset l ==> (!x y. fl l x /\ fl l y ==> (x = y) \/ less l(x,y) \/ less l(y,x)) Run time: 0.0s Intermediate theorems generated: 172 WO_INDUCT = |- !P l. woset l /\ (!x. fl l x /\ (!y. less l(y,x) ==> P y) ==> P x) ==> (!x. fl l x ==> P x) Run time: 0.1s Intermediate theorems generated: 469 WO_INDUCT_TAC = - : tactic Run time: 0.0s Intermediate theorems generated: 2 AGREE_LEMMA = |- !l h ms m n f g z. woset l /\ (!x. fl l(ms x)) /\ (!f f' x. (!y. less l(ms y,ms x) ==> (f y = f' y)) ==> (h f x = h f' x)) /\ (!x. l(ms x,m) ==> (f x = h f x)) /\ (!x. l(ms x,n) ==> (g x = h g x)) /\ l(ms z,m) /\ l(ms z,n) ==> (f z = g z) Run time: 0.0s Intermediate theorems generated: 1165 WO_RECURSE_LOCAL = |- !l h ms. woset l /\ (!x. fl l(ms x)) /\ (!f f' x. (!y. less l(ms y,ms x) ==> (f y = f' y)) ==> (h f x = h f' x)) ==> (!n. ?f. !x. l(ms x,n) ==> (f x = h f x)) Run time: 0.0s Intermediate theorems generated: 1556 WO_RECURSE_EXISTS = |- !l h ms. woset l /\ (!x. fl l(ms x)) /\ (!f f' x. (!y. less l(ms y,ms x) ==> (f y = f' y)) ==> (h f x = h f' x)) ==> (?f. !x. f x = h f x) Run time: 0.0s Intermediate theorems generated: 444 WO_RECURSE = |- !l h ms. woset l /\ (!x. fl l(ms x)) /\ (!f g x. (!y. less l(ms y,ms x) ==> (f y = g y)) ==> (h f x = h g x)) ==> (?! f. !x. f x = h f x) Run time: 0.0s Intermediate theorems generated: 280 Theorem LESS_EQ_REFL autoloading from theory `arithmetic` ... LESS_EQ_REFL = |- !m. m <= m Run time: 0.0s FL_NUM = |- !n. fl(\(m,n). m <= n)n Run time: 0.0s Intermediate theorems generated: 39 Theorem WOP autoloading from theory `arithmetic` ... WOP = |- !P. (?n. P n) ==> (?n. P n /\ (!m. m < n ==> ~P m)) Run time: 0.0s Theorem NOT_LESS_EQUAL autoloading from theory `arithmetic` ... NOT_LESS_EQUAL = |- !m n. ~m <= n = n < m Run time: 0.0s Theorem LESS_EQUAL_ANTISYM autoloading from theory `arithmetic` ... LESS_EQUAL_ANTISYM = |- !n m. n <= m /\ m <= n ==> (n = m) Run time: 0.0s WOSET_NUM = |- woset(\(m,n). m <= n) Run time: 0.0s Intermediate theorems generated: 148 Theorem LESS_NOT_EQ autoloading from theory `prim_rec` ... LESS_NOT_EQ = |- !m n. m < n ==> ~(m = n) Run time: 0.0s Definition LESS_OR_EQ autoloading from theory `arithmetic` ... LESS_OR_EQ = |- !m n. m <= n = m < n \/ (m = n) Run time: 0.0s Intermediate theorems generated: 1 WO_RECURSE_NUM = |- !h ms. (!f g x. (!y. (ms y) < (ms x) ==> (f y = g y)) ==> (h f x = h g x)) ==> (?! f. !x. f x = h f x) Run time: 0.0s Intermediate theorems generated: 259 UNION_FL = |- !P l. fl(Union P)x = (?l. P l /\ fl l x) Run time: 0.0s Intermediate theorems generated: 170 UNION_INSEG = |- !P l. (!m. P m ==> m inseg l) ==> (Union P) inseg l Run time: 0.1s Intermediate theorems generated: 232 INSEG_SUBSET = |- !l m. m inseg l ==> (!x y. m(x,y) ==> l(x,y)) Run time: 0.0s Intermediate theorems generated: 68 INSEG_SUBSET_FL = |- !l m. m inseg l ==> (!x. fl m x ==> fl l x) Run time: 0.0s Intermediate theorems generated: 187 INSEG_WOSET = |- !l m. m inseg l /\ woset l ==> woset m Run time: 0.0s Intermediate theorems generated: 401 LINSEG_INSEG = |- !l a. woset l ==> (linseg l a) inseg l Run time: 0.0s Intermediate theorems generated: 240 LINSEG_WOSET = |- !l a. woset l ==> woset(linseg l a) Run time: 0.0s Intermediate theorems generated: 39 LINSEG_FL = |- !l a x. woset l ==> (fl(linseg l a)x = less l(x,a)) Run time: 0.0s Intermediate theorems generated: 142 INSEG_PROPER_SUBSET = |- !l m. m inseg l /\ ~(l = m) ==> (?x y. l(x,y) /\ ~m(x,y)) Run time: 0.0s Intermediate theorems generated: 213 INSEG_PROPER_SUBSET_FL = |- !l m. m inseg l /\ ~(l = m) ==> (?a. fl l a /\ ~fl m a) Run time: 0.0s Intermediate theorems generated: 107 INSEG_LINSEG = |- !l m. woset l ==> (m inseg l = (m = l) \/ (?a. fl l a /\ (m = linseg l a))) Run time: 0.0s Intermediate theorems generated: 1172 EXTEND_FL = |- !l x. woset l ==> (fl(\(x,y). l(x,y) /\ l(y,a))x = l(x,a)) Run time: 0.0s Intermediate theorems generated: 143 EXTEND_INSEG = |- !l a. woset l /\ fl l a ==> (\(x,y). l(x,y) /\ l(y,a)) inseg l Run time: 0.0s Intermediate theorems generated: 57 EXTEND_LINSEG = |- !l a. woset l /\ fl l a ==> (\(x,y). linseg l a(x,y) \/ (y = a) /\ (fl(linseg l a)x \/ (x = a))) inseg l Run time: 0.1s Intermediate theorems generated: 489 ORDINAL_CHAINED = |- !l m. ordinal l /\ ordinal m ==> m inseg l \/ l inseg m Run time: 0.0s Intermediate theorems generated: 997 FL_SUC = |- !l a. fl(\(x,y). l(x,y) \/ (y = a) /\ (fl l x \/ (x = a)))x = fl l x \/ (x = a) Run time: 0.0s Intermediate theorems generated: 659 ORDINAL_SUC = |- !l. ordinal l /\ (?x. ~fl l x) ==> ordinal (\(x,y). l(x,y) \/ (y = (@y. ~fl l y)) /\ (fl l x \/ (x = (@y. ~fl l y)))) Run time: 0.0s Intermediate theorems generated: 2338 ORDINAL_UNION = |- !P. (!l. P l ==> ordinal l) ==> ordinal(Union P) Run time: 0.1s Intermediate theorems generated: 2015 ORDINAL_UNION_LEMMA = |- !l x. ordinal l ==> fl l x ==> fl(Union ordinal)x Run time: 0.0s Intermediate theorems generated: 30 ORDINAL_UP = |- !l. ordinal l ==> (!x. fl l x) \/ (?m x. ordinal m /\ fl m x /\ ~fl l x) Run time: 0.0s Intermediate theorems generated: 154 WO_LEMMA = |- ?l. ordinal l /\ (!x. fl l x) Run time: 0.0s Intermediate theorems generated: 135 WO_FL_RESTRICT = |- !l. woset l ==> (!P. fl(\(x,y). P x /\ P y /\ l(x,y))x = P x /\ fl l x) Run time: 0.0s Intermediate theorems generated: 392 WO = |- !P. ?l. woset l /\ (fl l = P) Run time: 0.0s Intermediate theorems generated: 403 HP = |- !l. poset l ==> (?P. chain l P /\ (!Q. chain l Q /\ P subset Q ==> (Q = P))) Run time: 0.0s Intermediate theorems generated: 2506 ZL = |- !l. poset l /\ (!P. chain l P ==> (?y. fl l y /\ (!x. P x ==> l(x,y)))) ==> (?y. fl l y /\ (!x. l(y,x) ==> (y = x))) Run time: 0.0s Intermediate theorems generated: 795 kl_tm = "\(c1,c2). C subset c1 /\ c1 subset c2 /\ chain l c2" : term Run time: 0.0s KL_POSET_LEMMA = |- poset(\(c1,c2). C subset c1 /\ c1 subset c2 /\ chain l c2) Run time: 0.0s Intermediate theorems generated: 386 KL = |- !l. poset l ==> (!C. chain l C ==> (?P. (chain l P /\ C subset P) /\ (!R. chain l R /\ P subset R ==> (R = P)))) Run time: 0.0s Intermediate theorems generated: 1083 () : void Run time: 0.0s Intermediate theorems generated: 1 File mk_wellorder loaded () : void Run time: 0.5s Intermediate theorems generated: 22538 #make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/wellorder' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/abs_theory' Making ../../Library/abs_theory/monoid_def.th... =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool true : bool false : bool false : bool Run time: 0.0s () : void Run time: 0.0s true : bool Run time: 0.0s .loading abs_theory .Extending help search path......................................() : void Run time: 0.0s SYM_RULE = - : (thm -> thm) Run time: 0.0s /bin/rm: cannot remove 'monoid_def.th': No such file or directory 1 : int Run time: 0.0s () : void Run time: 0.0s Intermediate theorems generated: 1 MONOID = |- !f. ?! fn. !f' x. fn(monoid f' x) = f f' x Run time: 0.0s Intermediate theorems generated: 431 () : void Run time: 0.0s Intermediate theorems generated: 2 "!f. (!a. (op m a f = a) /\ (op m f a = a)) ==> (f = e m)" 3 ["!x y z. op m x(op m y z) = op m(op m x y)z" ] 2 ["!x. op m(e m)x = x" ] 1 ["!x. op m x(e m) = x" ] () : void Run time: 0.0s Intermediate theorems generated: 1 OK.. "f = e m" 4 ["!x y z. op m x(op m y z) = op m(op m x y)z" ] 3 ["!x. op m(e m)x = x" ] 2 ["!x. op m x(e m) = x" ] 1 ["!a. (op m a f = a) /\ (op m f a = a)" ] () : void Run time: 0.0s Intermediate theorems generated: 6 OK.. "f = e m" 5 ["!x y z. op m x(op m y z) = op m(op m x y)z" ] 4 ["!x. op m(e m)x = x" ] 3 ["!x. op m x(e m) = x" ] 2 ["!a. (op m a f = a) /\ (op m f a = a)" ] 1 ["e m = op m(e m)f" ] () : void Run time: 0.0s Intermediate theorems generated: 10 OK.. "f = op m(e m)f" 5 ["!x y z. op m x(op m y z) = op m(op m x y)z" ] 4 ["!x. op m(e m)x = x" ] 3 ["!x. op m x(e m) = x" ] 2 ["!a. (op m a f = a) /\ (op m f a = a)" ] 1 ["e m = op m(e m)f" ] () : void Run time: 0.0s Intermediate theorems generated: 4 OK.. goal proved . |- f = op m(e m)f .. |- f = e m .. |- f = e m . |- !f. (!a. (op m a f = a) /\ (op m f a = a)) ==> (f = e m) Previous subproof: goal proved () : void Run time: 0.0s Intermediate theorems generated: 43 IDENTITY_UNIQUE = . |- !f. (!a. (op m a f = a) /\ (op m f a = a)) ==> (f = e m) Run time: 0.0s Intermediate theorems generated: 36 . |- !f. (!a. (op m a f = a) /\ (op m f a = a)) ==> (f = e m) Run time: 0.0s Intermediate theorems generated: 2 OP_DETERMINES_IDENTITY = .. |- (op m1 = op m2) ==> (e m1 = e m2) Run time: 0.0s Intermediate theorems generated: 73 .. |- (op m1 = op m2) ==> (e m1 = e m2) Run time: 0.0s Intermediate theorems generated: 4 () : void Run time: 0.0s Intermediate theorems generated: 1 File ../../Library/abs_theory/monoid_def.ml loaded () : void Run time: 0.0s Intermediate theorems generated: 614 Making ../../Library/abs_theory/group_def.th... =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool true : bool false : bool false : bool Run time: 0.0s () : void Run time: 0.0s true : bool Run time: 0.0s .loading abs_theory .Extending help search path......................................() : void Run time: 0.0s SYM_RULE = - : (thm -> thm) Run time: 0.0s /bin/rm: cannot remove 'group_def.th': No such file or directory 1 : int Run time: 0.0s () : void Run time: 0.0s Intermediate theorems generated: 1 Theory monoid_def loaded () : void Run time: 0.0s Intermediate theorems generated: 6 GROUP = |- !f. ?! fn. !f0 x f1. fn(group f0 x f1) = f f0 x f1 Run time: 0.0s Intermediate theorems generated: 601 () : void Run time: 0.0s Intermediate theorems generated: 2 GROUP_EXTENDS_MONOID = ... |- IS_MONOID(monoid(fn g)(id g)) Run time: 0.0s Intermediate theorems generated: 144 IDENTITY_UNIQUE = ... |- !f. (!a. (fn g a f = a) /\ (fn g f a = a)) ==> (f = id g) Run time: 0.0s Intermediate theorems generated: 144 ":(*)group" : type Run time: 0.0s Intermediate theorems generated: 3 ... |- !f. (!a. (fn g a f = a) /\ (fn g f a = a)) ==> (f = id g) Run time: 0.0s Intermediate theorems generated: 6 LEFT_CANCELLATION = ... |- !x y a. (fn g a x = fn g a y) ==> (x = y) Run time: 0.0s Intermediate theorems generated: 67 INVERSE_INVERSE_LEMMA = |- !g. IS_GROUP g ==> (!a. inv g(inv g a) = a) Run time: 0.0s Intermediate theorems generated: 45 ALTERNATE_INVERSE_INVERSE_LEMMA = |- !g. IS_GROUP g ==> (!a. inv g(inv g a) = a) Run time: 0.0s Intermediate theorems generated: 69 () : void Run time: 0.0s Intermediate theorems generated: 1 File ../../Library/abs_theory/group_def.ml loaded () : void Run time: 0.0s Intermediate theorems generated: 1089 Making ../../Library/abs_theory/example.th... =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool true : bool false : bool false : bool Run time: 0.0s () : void Run time: 0.0s true : bool Run time: 0.0s .loading abs_theory .Extending help search path......................................() : void Run time: 0.0s /bin/rm: cannot remove 'example.th': No such file or directory 1 : int Run time: 0.0s () : void Run time: 0.0s Intermediate theorems generated: 1 Loading library taut ... Updating help search path ........................................ Library taut loaded. () : void Run time: 0.0s Intermediate theorems generated: 153 Theory group_def loaded () : void Run time: 0.0s Intermediate theorems generated: 7 Theorem I_THM autoloading from theory `combin` ... I_THM = |- !x. I x = x Run time: 0.0s GROUP_THOBS = |- IS_GROUP(group(\x y. ~(x = y))F I) Run time: 0.0s Intermediate theorems generated: 378 |- !f. (!a. (~(a = f) = a) /\ (~(f = a) = a)) ==> ~f Run time: 0.0s Intermediate theorems generated: 733 |- !x y a. (~(a = x) = ~(a = y)) ==> (x = y) Run time: 0.0s Intermediate theorems generated: 732 |- !a. I(I a) = a Run time: 0.0s Intermediate theorems generated: 1106 concrete_rep = "group(\x y. x = y)T I" : term Run time: 0.0s GROUP_THOBS = |- IS_GROUP(group(\x y. x = y)T I) Run time: 0.0s Intermediate theorems generated: 356 inst_func = - : (string -> thm) Run time: 0.0s [|- !f. (!a. ((a = f) = a) /\ ((f = a) = a)) ==> f; |- !x y a. ((a = x) = (a = y)) ==> (x = y); |- !a. I(I a) = a] : thm list Run time: 0.1s Intermediate theorems generated: 2546 () : void Run time: 0.0s Intermediate theorems generated: 1 File ../../Library/abs_theory/example.ml loaded () : void Run time: 0.1s Intermediate theorems generated: 6013 ===> abs_theory rebuilt on Wed Oct 13 16:02:26 UTC 2021 Making abs_theory.ml =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool true : bool false : bool false : bool Run time: 0.0s () : void Run time: 0.0s () : void loading abs_theory () : void Extending help search path() : void int_to_term = - : (int -> term) term_to_int = - : (term -> int) for = - : (int -> * list -> * list) ol = - : ((* -> *) list -> * -> *) X_SPEC = - : (term -> term -> thm -> thm) CONJ_IMP = - : (thm -> thm) abs_type_info = - : (thm -> type) dest_all_type = - : (type -> (string # type list)) string_from_type = - : (type -> string) ty_str = - : (string -> type list -> string) def_prefix = `abs_def_` : string new_abstract_representation = - : (string -> (string # type) list -> thm) get_abs_defs = - : (string -> thm list) instantiate_abstract_definition = - : (string -> string -> thm -> (term # term) list -> thm) thobs = [] : (type # thm) list thobs_prefix = `thobs_` : string new_theory_obligations = - : ((string # term) -> void) get_thobs = - : (string -> (type # thm) list) orelsef = - : ((* -> **) -> (* -> **) -> * -> **) () : void D = - : (((* -> **) # (* -> ***)) -> * -> (** # ***)) () : void make_abs_goal = - : (goal -> goal) prove_abs_thm = - : ((string # term # tactic) -> thm) ABS_TAC_PROOF = - : ((goal # tactic) -> thm) set_abs_goal = - : (goal -> void) g = - : (term -> void) STRIP_THOBS_THEN = - : (thm_tactic -> tactic) STRIP_THOBS_TAC = - : tactic new_abstract_parent = - : (string -> void) EXPAND_THOBS_TAC = - : (string -> tactic) instantiate_abstract_theorem = - : (string -> string -> (term # term) list -> proof) close_theory_orig = - : (void -> void) close_theory = - : (void -> void) new_theory_orig = - : (string -> void) new_theory = - : (string -> void) ((-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), -) : (((goal # tactic) -> thm) # (string -> tactic) # tactic # (thm_tactic -> tactic) # (thm -> type) # (void -> void) # (term -> void) # (string -> string -> thm -> (term # term) list -> thm) # (string -> string -> (term # term) list -> proof) # (string -> void) # (string -> (string # type) list -> thm) # (string -> void) # ((string # term) -> void) # ((string # term # tactic) -> thm) # (goal -> void)) ABS_TAC_PROOF = - : ((goal # tactic) -> thm) EXPAND_THOBS_TAC = - : (string -> tactic) STRIP_THOBS_TAC = - : tactic STRIP_THOBS_THEN = - : (thm_tactic -> tactic) abs_type_info = - : (thm -> type) close_theory = - : (void -> void) g = - : (term -> void) instantiate_abstract_definition = - : (string -> string -> thm -> (term # term) list -> thm) instantiate_abstract_theorem = - : (string -> string -> (term # term) list -> proof) new_abstract_parent = - : (string -> void) new_abstract_representation = - : (string -> (string # type) list -> thm) new_theory = - : (string -> void) new_theory_obligations = - : ((string # term) -> void) prove_abs_thm = - : ((string # term # tactic) -> thm) set_abs_goal = - : (goal -> void) Calling Lisp compiler File abs_theory compiled () : void Run time: 0.0s make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/abs_theory' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/reals' cd theories; make all make[5]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/reals/theories' \ echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `hrat.ml`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool false : bool () : void false : bool Run time: 0.0s LAND_CONV = - : (conv -> conv) Run time: 0.0s TAUT_CONV = - : conv Run time: 0.0s AC = - : ((thm # thm) -> conv) Run time: 0.0s GEN_PAIR_TAC = - : tactic Run time: 0.0s MK_COMB_TAC = - : tactic Run time: 0.0s BINOP_TAC = - : tactic Run time: 0.0s SYM_CANON_CONV = - : (thm -> ((term # term) -> bool) -> conv) Run time: 0.0s IMP_SUBST_TAC = - : thm_tactic Run time: 0.0s ABBREV_TAC = - : (term -> tactic) Run time: 0.0s EXT_CONV = - : conv Run time: 0.0s ABS_TAC = - : tactic Run time: 0.0s EQUAL_TAC = - : tactic Run time: 0.0s X_BETA_CONV = - : (term -> conv) Run time: 0.0s EXACT_CONV = - : (thm list -> conv) Run time: 0.0s HABS_CONV = - : conv Run time: 0.0s autoload_definitions = - : (string -> void) Run time: 0.0s autoload_theorems = - : (string -> void) Run time: 0.0s EXPAND_TAC = - : (string -> tactic) Run time: 0.0s File useful loaded () : void Run time: 0.0s define_equivalence_type = - : (string -> thm -> (term # string # bool) list -> thm list -> thm list -> thm list) Run time: 0.0s File equiv loaded () : void Run time: 0.0s Theorem ADD_CLAUSES autoloading from theory `arithmetic` ... ADD_CLAUSES = |- (0 + m = m) /\ (m + 0 = m) /\ ((SUC m) + n = SUC(m + n)) /\ (m + (SUC n) = SUC(m + n)) Run time: 0.0s Theorem MULT_CLAUSES autoloading from theory `arithmetic` ... MULT_CLAUSES = |- !m n. (0 * m = 0) /\ (m * 0 = 0) /\ (1 * m = m) /\ (m * 1 = m) /\ ((SUC m) * n = (m * n) + n) /\ (m * (SUC n) = m + (m * n)) Run time: 0.0s Theorem PRE autoloading from theory `prim_rec` ... PRE = |- (PRE 0 = 0) /\ (!m. PRE(SUC m) = m) Run time: 0.0s Theorem NOT_SUC autoloading from theory `num` ... NOT_SUC = |- !n. ~(SUC n = 0) Run time: 0.0s Theorem num_CASES autoloading from theory `arithmetic` ... num_CASES = |- !m. (m = 0) \/ (?n. m = SUC n) Run time: 0.0s UNSUCK_TAC = - : tactic Run time: 0.0s Intermediate theorems generated: 336 trat_1 = |- trat_1 = 0,0 Run time: 0.0s Intermediate theorems generated: 2 trat_inv = |- !x y. trat_inv(x,y) = y,x Run time: 0.0s Intermediate theorems generated: 2 trat_add = |- !x y x' y'. (x,y) trat_add (x',y') = PRE(((SUC x) * (SUC y')) + ((SUC x') * (SUC y))), PRE((SUC y) * (SUC y')) Run time: 0.0s Intermediate theorems generated: 2 trat_mul = |- !x y x' y'. (x,y) trat_mul (x',y') = PRE((SUC x) * (SUC x')),PRE((SUC y) * (SUC y')) Run time: 0.0s Intermediate theorems generated: 2 trat_sucint = |- (trat_sucint 0 = trat_1) /\ (!n. trat_sucint(SUC n) = (trat_sucint n) trat_add trat_1) Run time: 0.0s Intermediate theorems generated: 136 trat_eq = |- !x y x' y'. (x,y) trat_eq (x',y') = ((SUC x) * (SUC y') = (SUC x') * (SUC y)) Run time: 0.0s Intermediate theorems generated: 2 TRAT_EQ_REFL = |- !p. p trat_eq p Run time: 0.0s Intermediate theorems generated: 22 TRAT_EQ_SYM = |- !p q. p trat_eq q = q trat_eq p Run time: 0.0s Intermediate theorems generated: 37 Theorem MULT_ASSOC autoloading from theory `arithmetic` ... MULT_ASSOC = |- !m n p. m * (n * p) = (m * n) * p Run time: 0.0s Theorem MULT_SYM autoloading from theory `arithmetic` ... MULT_SYM = |- !m n. m * n = n * m Run time: 0.0s Theorem MULT_SUC_EQ autoloading from theory `arithmetic` ... MULT_SUC_EQ = |- !p m n. (n * (SUC p) = m * (SUC p)) = (n = m) Run time: 0.0s TRAT_EQ_TRANS = |- !p q r. p trat_eq q /\ q trat_eq r ==> p trat_eq r Run time: 0.0s Intermediate theorems generated: 152 TRAT_EQ_AP = |- !p q. (p = q) ==> p trat_eq q Run time: 0.0s Intermediate theorems generated: 8 Theorem ADD_SYM autoloading from theory `arithmetic` ... ADD_SYM = |- !m n. m + n = n + m Run time: 0.0s TRAT_ADD_SYM_EQ = |- !h i. h trat_add i = i trat_add h Run time: 0.0s Intermediate theorems generated: 62 TRAT_MUL_SYM_EQ = |- !h i. h trat_mul i = i trat_mul h Run time: 0.0s Intermediate theorems generated: 58 TRAT_INV_WELLDEFINED = |- !p q. p trat_eq q ==> (trat_inv p) trat_eq (trat_inv q) Run time: 0.0s Intermediate theorems generated: 61 Theorem RIGHT_ADD_DISTRIB autoloading from theory `arithmetic` ... RIGHT_ADD_DISTRIB = |- !m n p. (m + n) * p = (m * p) + (n * p) Run time: 0.0s TRAT_ADD_WELLDEFINED = |- !p q r. p trat_eq q ==> (p trat_add r) trat_eq (q trat_add r) Run time: 0.0s Intermediate theorems generated: 297 TRAT_ADD_WELLDEFINED2 = |- !p1 p2 q1 q2. p1 trat_eq p2 /\ q1 trat_eq q2 ==> (p1 trat_add q1) trat_eq (p2 trat_add q2) Run time: 0.0s Intermediate theorems generated: 65 TRAT_MUL_WELLDEFINED = |- !p q r. p trat_eq q ==> (p trat_mul r) trat_eq (q trat_mul r) Run time: 0.0s Intermediate theorems generated: 207 TRAT_MUL_WELLDEFINED2 = |- !p1 p2 q1 q2. p1 trat_eq p2 /\ q1 trat_eq q2 ==> (p1 trat_mul q1) trat_eq (p2 trat_mul q2) Run time: 0.0s Intermediate theorems generated: 65 TRAT_ADD_SYM = |- !h i. (h trat_add i) trat_eq (i trat_add h) Run time: 0.0s Intermediate theorems generated: 15 Theorem ADD_ASSOC autoloading from theory `arithmetic` ... ADD_ASSOC = |- !m n p. m + (n + p) = (m + n) + p Run time: 0.0s TRAT_ADD_ASSOC = |- !h i j. (h trat_add (i trat_add j)) trat_eq ((h trat_add i) trat_add j) Run time: 0.1s Intermediate theorems generated: 297 TRAT_MUL_SYM = |- !h i. (h trat_mul i) trat_eq (i trat_mul h) Run time: 0.0s Intermediate theorems generated: 15 TRAT_MUL_ASSOC = |- !h i j. (h trat_mul (i trat_mul j)) trat_eq ((h trat_mul i) trat_mul j) Run time: 0.0s Intermediate theorems generated: 189 Theorem LEFT_ADD_DISTRIB autoloading from theory `arithmetic` ... LEFT_ADD_DISTRIB = |- !m n p. p * (m + n) = (p * m) + (p * n) Run time: 0.0s TRAT_LDISTRIB = |- !h i j. (h trat_mul (i trat_add j)) trat_eq ((h trat_mul i) trat_add (h trat_mul j)) Run time: 0.0s Intermediate theorems generated: 611 TRAT_MUL_LID = |- !h. (trat_1 trat_mul h) trat_eq h Run time: 0.0s Intermediate theorems generated: 127 TRAT_MUL_LINV = |- !h. ((trat_inv h) trat_mul h) trat_eq trat_1 Run time: 0.0s Intermediate theorems generated: 136 Theorem ADD_INV_0_EQ autoloading from theory `arithmetic` ... ADD_INV_0_EQ = |- !m n. (m + n = m) = (n = 0) Run time: 0.0s TRAT_NOZERO = |- !h i. ~(h trat_add i) trat_eq h Run time: 0.0s Intermediate theorems generated: 250 Theorem LESS_ADD_1 autoloading from theory `arithmetic` ... LESS_ADD_1 = |- !m n. n < m ==> (?p. m = n + (p + 1)) Run time: 0.0s Theorem ADD1 autoloading from theory `arithmetic` ... ADD1 = |- !m. SUC m = m + 1 Run time: 0.0s Theorem LESS_LESS_CASES autoloading from theory `arithmetic` ... LESS_LESS_CASES = |- !m n. (m = n) \/ m < n \/ n < m Run time: 0.0s TRAT_ADD_TOTAL = |- !h i. h trat_eq i \/ (?d. h trat_eq (i trat_add d)) \/ (?d. i trat_eq (h trat_add d)) Run time: 0.0s Intermediate theorems generated: 599 TRAT_SUCINT_0 = |- !n. (trat_sucint n) trat_eq (n,0) Run time: 0.0s Intermediate theorems generated: 233 Theorem LESS_ADD_NONZERO autoloading from theory `arithmetic` ... LESS_ADD_NONZERO = |- !m n. ~(n = 0) ==> m < (m + n) Run time: 0.0s Theorem LESS_IMP_LESS_OR_EQ autoloading from theory `arithmetic` ... LESS_IMP_LESS_OR_EQ = |- !m n. m < n ==> m <= n Run time: 0.0s Theorem LESS_MONO_MULT autoloading from theory `arithmetic` ... LESS_MONO_MULT = |- !m n p. m <= n ==> (m * p) <= (n * p) Run time: 0.0s Theorem SUB_ADD autoloading from theory `arithmetic` ... SUB_ADD = |- !m n. n <= m ==> ((m - n) + n = m) Run time: 0.0s Theorem RIGHT_SUB_DISTRIB autoloading from theory `arithmetic` ... RIGHT_SUB_DISTRIB = |- !m n p. (m - n) * p = (m * p) - (n * p) Run time: 0.0s Theorem NOT_LESS autoloading from theory `arithmetic` ... NOT_LESS = |- !m n. ~m < n = n <= m Run time: 0.0s Theorem SUB_EQ_0 autoloading from theory `arithmetic` ... SUB_EQ_0 = |- !m n. (m - n = 0) = m <= n Run time: 0.0s TRAT_ARCH = |- !h. ?n d. (trat_sucint n) trat_eq (h trat_add d) Run time: 0.0s Intermediate theorems generated: 395 TRAT_SUCINT = |- (trat_sucint 0) trat_eq trat_1 /\ (!n. (trat_sucint(SUC n)) trat_eq ((trat_sucint n) trat_add trat_1)) Run time: 0.0s Intermediate theorems generated: 37 TRAT_EQ_EQUIV = |- !p q. p trat_eq q = ($trat_eq p = $trat_eq q) Run time: 0.0s Intermediate theorems generated: 73 HRAT_ADD_SYM = |- !h i. h hrat_add i = i hrat_add h HRAT_ADD_ASSOC = |- !h i j. h hrat_add (i hrat_add j) = (h hrat_add i) hrat_add j HRAT_MUL_SYM = |- !h i. h hrat_mul i = i hrat_mul h HRAT_MUL_ASSOC = |- !h i j. h hrat_mul (i hrat_mul j) = (h hrat_mul i) hrat_mul j HRAT_LDISTRIB = |- !h i j. h hrat_mul (i hrat_add j) = (h hrat_mul i) hrat_add (h hrat_mul j) HRAT_MUL_LID = |- !h. hrat_1 hrat_mul h = h HRAT_MUL_LINV = |- !h. (hrat_inv h) hrat_mul h = hrat_1 HRAT_NOZERO = |- !h i. ~(h hrat_add i = h) HRAT_ADD_TOTAL = |- !h i. (h = i) \/ (?d. h = i hrat_add d) \/ (?d. i = h hrat_add d) HRAT_ARCH = |- !h. ?n d. hrat_sucint n = h hrat_add d HRAT_SUCINT = |- (hrat_sucint 0 = hrat_1) /\ (!n. hrat_sucint(SUC n) = (hrat_sucint n) hrat_add hrat_1) Run time: 0.2s Intermediate theorems generated: 6487 HRAT_ADD_SYM = |- !h i. h hrat_add i = i hrat_add h Run time: 0.0s Intermediate theorems generated: 5 HRAT_ADD_ASSOC = |- !h i j. h hrat_add (i hrat_add j) = (h hrat_add i) hrat_add j Run time: 0.0s Intermediate theorems generated: 7 HRAT_MUL_SYM = |- !h i. h hrat_mul i = i hrat_mul h Run time: 0.0s Intermediate theorems generated: 5 HRAT_MUL_ASSOC = |- !h i j. h hrat_mul (i hrat_mul j) = (h hrat_mul i) hrat_mul j Run time: 0.0s Intermediate theorems generated: 7 HRAT_LDISTRIB = |- !h i j. h hrat_mul (i hrat_add j) = (h hrat_mul i) hrat_add (h hrat_mul j) Run time: 0.0s Intermediate theorems generated: 7 HRAT_MUL_LID = |- !h. hrat_1 hrat_mul h = h Run time: 0.0s Intermediate theorems generated: 3 HRAT_MUL_LINV = |- !h. (hrat_inv h) hrat_mul h = hrat_1 Run time: 0.0s Intermediate theorems generated: 3 HRAT_NOZERO = |- !h i. ~(h hrat_add i = h) Run time: 0.0s Intermediate theorems generated: 5 HRAT_ADD_TOTAL = |- !h i. (h = i) \/ (?d. h = i hrat_add d) \/ (?d. i = h hrat_add d) Run time: 0.0s Intermediate theorems generated: 5 HRAT_ARCH = |- !h. ?n d. hrat_sucint n = h hrat_add d Run time: 0.0s Intermediate theorems generated: 3 HRAT_SUCINT = |- (hrat_sucint 0 = hrat_1) /\ (!n. hrat_sucint(SUC n) = (hrat_sucint n) hrat_add hrat_1) Run time: 0.0s () : void Run time: 0.0s Intermediate theorems generated: 1 File hrat.ml loaded () : void Run time: 0.3s Intermediate theorems generated: 11032 #\ echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `hreal.ml`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool false : bool () : void Theory HRAT loaded () : void false : bool Run time: 0.0s LAND_CONV = - : (conv -> conv) Run time: 0.0s TAUT_CONV = - : conv Run time: 0.0s AC = - : ((thm # thm) -> conv) Run time: 0.0s GEN_PAIR_TAC = - : tactic Run time: 0.0s MK_COMB_TAC = - : tactic Run time: 0.0s BINOP_TAC = - : tactic Run time: 0.0s SYM_CANON_CONV = - : (thm -> ((term # term) -> bool) -> conv) Run time: 0.0s IMP_SUBST_TAC = - : thm_tactic Run time: 0.0s ABBREV_TAC = - : (term -> tactic) Run time: 0.0s EXT_CONV = - : conv Run time: 0.0s ABS_TAC = - : tactic Run time: 0.0s EQUAL_TAC = - : tactic Run time: 0.0s X_BETA_CONV = - : (term -> conv) Run time: 0.0s EXACT_CONV = - : (thm list -> conv) Run time: 0.0s HABS_CONV = - : conv Run time: 0.0s autoload_definitions = - : (string -> void) Run time: 0.0s autoload_theorems = - : (string -> void) Run time: 0.0s EXPAND_TAC = - : (string -> tactic) Run time: 0.0s File useful loaded () : void Run time: 0.0s () : void Run time: 0.0s hrat_lt = |- !x y. x hrat_lt y = (?d. y = x hrat_add d) Run time: 0.0s Intermediate theorems generated: 2 Theorem HRAT_NOZERO autoloading from theory `HRAT` ... HRAT_NOZERO = |- !h i. ~(h hrat_add i = h) Run time: 0.0s HRAT_LT_REFL = |- !x. ~x hrat_lt x Run time: 0.0s Intermediate theorems generated: 41 Theorem HRAT_ADD_ASSOC autoloading from theory `HRAT` ... HRAT_ADD_ASSOC = |- !h i j. h hrat_add (i hrat_add j) = (h hrat_add i) hrat_add j Run time: 0.0s HRAT_LT_TRANS = |- !x y z. x hrat_lt y /\ y hrat_lt z ==> x hrat_lt z Run time: 0.0s Intermediate theorems generated: 63 HRAT_LT_ANTISYM = |- !x y. ~(x hrat_lt y /\ y hrat_lt x) Run time: 0.0s Intermediate theorems generated: 24 Theorem HRAT_ADD_TOTAL autoloading from theory `HRAT` ... HRAT_ADD_TOTAL = |- !h i. (h = i) \/ (?d. h = i hrat_add d) \/ (?d. i = h hrat_add d) Run time: 0.0s HRAT_LT_TOTAL = |- !x y. (x = y) \/ x hrat_lt y \/ y hrat_lt x Run time: 0.0s Intermediate theorems generated: 49 Theorem HRAT_MUL_LID autoloading from theory `HRAT` ... HRAT_MUL_LID = |- !h. hrat_1 hrat_mul h = h Run time: 0.0s Theorem HRAT_MUL_SYM autoloading from theory `HRAT` ... HRAT_MUL_SYM = |- !h i. h hrat_mul i = i hrat_mul h Run time: 0.0s HRAT_MUL_RID = |- !x. x hrat_mul hrat_1 = x Run time: 0.0s Intermediate theorems generated: 14 Theorem HRAT_MUL_LINV autoloading from theory `HRAT` ... HRAT_MUL_LINV = |- !h. (hrat_inv h) hrat_mul h = hrat_1 Run time: 0.0s HRAT_MUL_RINV = |- !x. x hrat_mul (hrat_inv x) = hrat_1 Run time: 0.0s Intermediate theorems generated: 14 Theorem HRAT_LDISTRIB autoloading from theory `HRAT` ... HRAT_LDISTRIB = |- !h i j. h hrat_mul (i hrat_add j) = (h hrat_mul i) hrat_add (h hrat_mul j) Run time: 0.0s HRAT_RDISTRIB = |- !x y z. (x hrat_add y) hrat_mul z = (x hrat_mul z) hrat_add (y hrat_mul z) Run time: 0.0s Intermediate theorems generated: 22 HRAT_LT_ADDL = |- !x y. x hrat_lt (x hrat_add y) Run time: 0.0s Intermediate theorems generated: 13 Theorem HRAT_ADD_SYM autoloading from theory `HRAT` ... HRAT_ADD_SYM = |- !h i. h hrat_add i = i hrat_add h Run time: 0.0s HRAT_LT_ADDR = |- !x y. y hrat_lt (x hrat_add y) Run time: 0.0s Intermediate theorems generated: 19 HRAT_LT_GT = |- !x y. x hrat_lt y ==> ~y hrat_lt x Run time: 0.0s Intermediate theorems generated: 78 HRAT_LT_NE = |- !x y. x hrat_lt y ==> ~(x = y) Run time: 0.0s Intermediate theorems generated: 33 HRAT_EQ_LADD = |- !x y z. (x hrat_add y = x hrat_add z) = (y = z) Run time: 0.0s Intermediate theorems generated: 126 Theorem HRAT_MUL_ASSOC autoloading from theory `HRAT` ... HRAT_MUL_ASSOC = |- !h i j. h hrat_mul (i hrat_mul j) = (h hrat_mul i) hrat_mul j Run time: 0.0s HRAT_EQ_LMUL = |- !x y z. (x hrat_mul y = x hrat_mul z) = (y = z) Run time: 0.0s Intermediate theorems generated: 50 HRAT_LT_ADD2 = |- !u v x y. u hrat_lt x /\ v hrat_lt y ==> (u hrat_add v) hrat_lt (x hrat_add y) Run time: 0.0s Intermediate theorems generated: 79 HRAT_LT_LADD = |- !x y z. (z hrat_add x) hrat_lt (z hrat_add y) = x hrat_lt y Run time: 0.0s Intermediate theorems generated: 77 HRAT_LT_RADD = |- !x y z. (x hrat_add z) hrat_lt (y hrat_add z) = x hrat_lt y Run time: 0.0s Intermediate theorems generated: 21 HRAT_LT_MUL2 = |- !u v x y. u hrat_lt x /\ v hrat_lt y ==> (u hrat_mul v) hrat_lt (x hrat_mul y) Run time: 0.0s Intermediate theorems generated: 100 HRAT_LT_LMUL = |- !x y z. (z hrat_mul x) hrat_lt (z hrat_mul y) = x hrat_lt y Run time: 0.0s Intermediate theorems generated: 149 HRAT_LT_RMUL = |- !x y z. (x hrat_mul z) hrat_lt (y hrat_mul z) = x hrat_lt y Run time: 0.0s Intermediate theorems generated: 21 HRAT_LT_LMUL1 = |- !x y. (x hrat_mul y) hrat_lt y = x hrat_lt hrat_1 Run time: 0.0s Intermediate theorems generated: 21 HRAT_LT_RMUL1 = |- !x y. (x hrat_mul y) hrat_lt x = y hrat_lt hrat_1 Run time: 0.0s Intermediate theorems generated: 18 HRAT_GT_LMUL1 = |- !x y. y hrat_lt (x hrat_mul y) = hrat_1 hrat_lt x Run time: 0.0s Intermediate theorems generated: 22 HRAT_LT_L1 = |- !x y. ((hrat_inv x) hrat_mul y) hrat_lt hrat_1 = y hrat_lt x Run time: 0.0s Intermediate theorems generated: 10 HRAT_LT_R1 = |- !x y. (x hrat_mul (hrat_inv y)) hrat_lt hrat_1 = x hrat_lt y Run time: 0.0s Intermediate theorems generated: 10 HRAT_GT_L1 = |- !x y. hrat_1 hrat_lt ((hrat_inv x) hrat_mul y) = x hrat_lt y Run time: 0.0s Intermediate theorems generated: 10 HRAT_INV_MUL = |- !x y. hrat_inv(x hrat_mul y) = (hrat_inv x) hrat_mul (hrat_inv y) Run time: 0.1s Intermediate theorems generated: 85 HRAT_UP = |- !x. ?y. x hrat_lt y Run time: 0.0s Intermediate theorems generated: 13 HRAT_DOWN = |- !x. ?y. y hrat_lt x Run time: 0.0s Intermediate theorems generated: 45 HRAT_DOWN2 = |- !x y. ?z. z hrat_lt x /\ z hrat_lt y Run time: 0.0s Intermediate theorems generated: 154 HRAT_MEAN = |- !x y. x hrat_lt y ==> (?z. x hrat_lt z /\ z hrat_lt y) Run time: 0.0s Intermediate theorems generated: 133 isacut = |- !C. isacut C = (?x. C x) /\ (?x. ~C x) /\ (!x y. C x /\ y hrat_lt x ==> C y) /\ (!x. C x ==> (?y. C y /\ x hrat_lt y)) Run time: 0.0s Intermediate theorems generated: 2 cut_of_hrat = |- !x. cut_of_hrat x = (\y. y hrat_lt x) Run time: 0.0s Intermediate theorems generated: 2 ISACUT_HRAT = |- !h. isacut(cut_of_hrat h) Run time: 0.0s Intermediate theorems generated: 221 hreal_tydef = |- ?rep. TYPE_DEFINITION isacut rep Run time: 0.0s Intermediate theorems generated: 4 hreal_tybij = |- (!a. hreal(cut a) = a) /\ (!r. isacut r = (cut(hreal r) = r)) Run time: 0.0s Intermediate theorems generated: 4 EQUAL_CUTS = |- !X Y. (cut X = cut Y) ==> (X = Y) Run time: 0.0s Intermediate theorems generated: 24 CUT_ISACUT = |- !X. isacut(cut X) Run time: 0.0s Intermediate theorems generated: 26 CUT_PROPERTIES = |- (?x. cut X x) /\ (?x. ~cut X x) /\ (!x y. cut X x /\ y hrat_lt x ==> cut X y) /\ (!x. cut X x ==> (?y. cut X y /\ x hrat_lt y)) Run time: 0.0s Intermediate theorems generated: 3 CUT_NONEMPTY = |- !X. ?x. cut X x Run time: 0.0s Intermediate theorems generated: 37 CUT_BOUNDED = |- !X. ?x. ~cut X x Run time: 0.0s Intermediate theorems generated: 37 CUT_DOWN = |- !X x y. cut X x /\ y hrat_lt x ==> cut X y Run time: 0.0s Intermediate theorems generated: 49 CUT_UP = |- !X x. cut X x ==> (?y. cut X y /\ x hrat_lt y) Run time: 0.0s Intermediate theorems generated: 42 CUT_UBOUND = |- !X x y. ~cut X x /\ x hrat_lt y ==> ~cut X y Run time: 0.0s Intermediate theorems generated: 102 CUT_STRADDLE = |- !X x y. cut X x /\ ~cut X y ==> x hrat_lt y Run time: 0.0s Intermediate theorems generated: 137 Theorem LESS_SUC_REFL autoloading from theory `prim_rec` ... LESS_SUC_REFL = |- !n. n < (SUC n) Run time: 0.0s Theorem NOT_LESS_0 autoloading from theory `prim_rec` ... NOT_LESS_0 = |- !n. ~n < 0 Run time: 0.0s Theorem HRAT_SUCINT autoloading from theory `HRAT` ... HRAT_SUCINT = |- (hrat_sucint 0 = hrat_1) /\ (!n. hrat_sucint(SUC n) = (hrat_sucint n) hrat_add hrat_1) Run time: 0.0s Theorem num_CASES autoloading from theory `arithmetic` ... num_CASES = |- !m. (m = 0) \/ (?n. m = SUC n) Run time: 0.0s Theorem HRAT_ARCH autoloading from theory `HRAT` ... HRAT_ARCH = |- !h. ?n d. hrat_sucint n = h hrat_add d Run time: 0.0s CUT_NEARTOP_ADD = |- !X e. ?x. cut X x /\ ~cut X(x hrat_add e) Run time: 0.0s Intermediate theorems generated: 303 CUT_NEARTOP_MUL = |- !X u. hrat_1 hrat_lt u ==> (?x. cut X x /\ ~cut X(u hrat_mul x)) Run time: 0.0s Intermediate theorems generated: 234 hreal_1 = |- hreal_1 = hreal(cut_of_hrat hrat_1) Run time: 0.0s Intermediate theorems generated: 2 hreal_add = |- !X Y. X hreal_add Y = hreal(\w. ?x y. (w = x hrat_add y) /\ cut X x /\ cut Y y) Run time: 0.1s Intermediate theorems generated: 2 hreal_mul = |- !X Y. X hreal_mul Y = hreal(\w. ?x y. (w = x hrat_mul y) /\ cut X x /\ cut Y y) Run time: 0.0s Intermediate theorems generated: 2 hreal_inv = |- !X. hreal_inv X = hreal (\w. ?d. d hrat_lt hrat_1 /\ (!x. cut X x ==> (w hrat_mul x) hrat_lt d)) Run time: 0.0s Intermediate theorems generated: 2 hreal_sup = |- !P. hreal_sup P = hreal(\w. ?X. P X /\ cut X w) Run time: 0.0s Intermediate theorems generated: 2 hreal_lt = |- !X Y. X hreal_lt Y = ~(X = Y) /\ (!x. cut X x ==> cut Y x) Run time: 0.0s Intermediate theorems generated: 2 HREAL_INV_ISACUT = |- !X. isacut (\w. ?d. d hrat_lt hrat_1 /\ (!x. cut X x ==> (w hrat_mul x) hrat_lt d)) Run time: 0.0s Intermediate theorems generated: 502 HREAL_ADD_ISACUT = |- !X Y. isacut(\w. ?x y. (w = x hrat_add y) /\ cut X x /\ cut Y y) Run time: 0.0s Intermediate theorems generated: 521 HREAL_MUL_ISACUT = |- !X Y. isacut(\w. ?x y. (w = x hrat_mul y) /\ cut X x /\ cut Y y) Run time: 0.0s Intermediate theorems generated: 537 HREAL_ADD_SYM = |- !X Y. X hreal_add Y = Y hreal_add X Run time: 0.0s Intermediate theorems generated: 124 HREAL_MUL_SYM = |- !X Y. X hreal_mul Y = Y hreal_mul X Run time: 0.0s Intermediate theorems generated: 124 HREAL_ADD_ASSOC = |- !X Y Z. X hreal_add (Y hreal_add Z) = (X hreal_add Y) hreal_add Z Run time: 0.0s Intermediate theorems generated: 490 HREAL_MUL_ASSOC = |- !X Y Z. X hreal_mul (Y hreal_mul Z) = (X hreal_mul Y) hreal_mul Z Run time: 0.0s Intermediate theorems generated: 490 HREAL_LDISTRIB = |- !X Y Z. X hreal_mul (Y hreal_add Z) = (X hreal_mul Y) hreal_add (X hreal_mul Z) Run time: 0.0s Intermediate theorems generated: 935 HREAL_MUL_LID = |- !X. hreal_1 hreal_mul X = X Run time: 0.0s Intermediate theorems generated: 278 HREAL_MUL_LINV = |- !X. (hreal_inv X) hreal_mul X = hreal_1 Run time: 0.0s Intermediate theorems generated: 485 HREAL_NOZERO = |- !X Y. ~(X hreal_add Y = X) Run time: 0.0s Intermediate theorems generated: 155 hreal_sub = |- !Y X. Y hreal_sub X = hreal(\w. ?x. ~cut X x /\ cut Y(x hrat_add w)) Run time: 0.0s Intermediate theorems generated: 2 HREAL_LT_LEMMA = |- !X Y. X hreal_lt Y ==> (?x. ~cut X x /\ cut Y x) Run time: 0.0s Intermediate theorems generated: 210 HREAL_SUB_ISACUT = |- !X Y. X hreal_lt Y ==> isacut(\w. ?x. ~cut X x /\ cut Y(x hrat_add w)) Run time: 0.0s Intermediate theorems generated: 400 HREAL_SUB_ADD = |- !X Y. X hreal_lt Y ==> ((Y hreal_sub X) hreal_add X = Y) Run time: 0.1s Intermediate theorems generated: 837 HREAL_LT_TOTAL = |- !X Y. (X = Y) \/ X hreal_lt Y \/ Y hreal_lt X Run time: 0.0s Intermediate theorems generated: 492 HREAL_LT = |- !X Y. X hreal_lt Y = (?D. Y = X hreal_add D) Run time: 0.0s Intermediate theorems generated: 196 HREAL_ADD_TOTAL = |- !X Y. (X = Y) \/ (?D. Y = X hreal_add D) \/ (?D. X = Y hreal_add D) Run time: 0.0s Intermediate theorems generated: 19 HREAL_SUP_ISACUT = |- !P. (?X. P X) /\ (?Y. !X. P X ==> X hreal_lt Y) ==> isacut(\w. ?X. P X /\ cut X w) Run time: 0.0s Intermediate theorems generated: 349 HREAL_SUP = |- !P. (?X. P X) /\ (?Y. !X. P X ==> X hreal_lt Y) ==> (!Y. (?X. P X /\ Y hreal_lt X) = Y hreal_lt (hreal_sup P)) Run time: 0.0s Intermediate theorems generated: 553 () : void Run time: 0.0s Intermediate theorems generated: 1 File hreal.ml loaded () : void Run time: 0.4s Intermediate theorems generated: 10456 #\ echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `realax.ml`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool false : bool () : void Theory HREAL loaded () : void false : bool Run time: 0.0s LAND_CONV = - : (conv -> conv) Run time: 0.0s TAUT_CONV = - : conv Run time: 0.0s AC = - : ((thm # thm) -> conv) Run time: 0.0s GEN_PAIR_TAC = - : tactic Run time: 0.0s MK_COMB_TAC = - : tactic Run time: 0.0s BINOP_TAC = - : tactic Run time: 0.0s SYM_CANON_CONV = - : (thm -> ((term # term) -> bool) -> conv) Run time: 0.0s IMP_SUBST_TAC = - : thm_tactic Run time: 0.0s ABBREV_TAC = - : (term -> tactic) Run time: 0.0s EXT_CONV = - : conv Run time: 0.0s ABS_TAC = - : tactic Run time: 0.0s EQUAL_TAC = - : tactic Run time: 0.0s X_BETA_CONV = - : (term -> conv) Run time: 0.0s EXACT_CONV = - : (thm list -> conv) Run time: 0.0s HABS_CONV = - : conv Run time: 0.0s autoload_definitions = - : (string -> void) Run time: 0.0s autoload_theorems = - : (string -> void) Run time: 0.0s EXPAND_TAC = - : (string -> tactic) Run time: 0.0s File useful loaded () : void Run time: 0.0s () : void Run time: 0.0s Intermediate theorems generated: 12 () : void Run time: 0.0s define_equivalence_type = - : (string -> thm -> (term # string # bool) list -> thm list -> thm list -> thm list) Run time: 0.0s File equiv loaded () : void Run time: 0.0s Theorem HREAL_LDISTRIB autoloading from theory `HREAL` ... HREAL_LDISTRIB = |- !X Y Z. X hreal_mul (Y hreal_add Z) = (X hreal_mul Y) hreal_add (X hreal_mul Z) Run time: 0.0s Theorem HREAL_MUL_SYM autoloading from theory `HREAL` ... HREAL_MUL_SYM = |- !X Y. X hreal_mul Y = Y hreal_mul X Run time: 0.0s HREAL_RDISTRIB = |- !x y z. (x hreal_add y) hreal_mul z = (x hreal_mul z) hreal_add (y hreal_mul z) Run time: 0.0s Intermediate theorems generated: 22 Theorem HREAL_NOZERO autoloading from theory `HREAL` ... HREAL_NOZERO = |- !X Y. ~(X hreal_add Y = X) Run time: 0.0s HREAL_EQ_ADDR = |- !x y. ~(x hreal_add y = x) Run time: 0.0s Intermediate theorems generated: 5 HREAL_EQ_ADDL = |- !x y. ~(x = x hreal_add y) Run time: 0.0s Intermediate theorems generated: 11 Theorem HREAL_ADD_ASSOC autoloading from theory `HREAL` ... HREAL_ADD_ASSOC = |- !X Y Z. X hreal_add (Y hreal_add Z) = (X hreal_add Y) hreal_add Z Run time: 0.0s Theorem HREAL_ADD_TOTAL autoloading from theory `HREAL` ... HREAL_ADD_TOTAL = |- !X Y. (X = Y) \/ (?D. Y = X hreal_add D) \/ (?D. X = Y hreal_add D) Run time: 0.0s HREAL_EQ_LADD = |- !x y z. (x hreal_add y = x hreal_add z) = (y = z) Run time: 0.0s Intermediate theorems generated: 94 Theorem HREAL_LT autoloading from theory `HREAL` ... HREAL_LT = |- !X Y. X hreal_lt Y = (?D. Y = X hreal_add D) Run time: 0.0s HREAL_LT_REFL = |- !x. ~x hreal_lt x Run time: 0.0s Intermediate theorems generated: 33 HREAL_LT_ADDL = |- !x y. x hreal_lt (x hreal_add y) Run time: 0.0s Intermediate theorems generated: 13 HREAL_LT_NE = |- !x y. x hreal_lt y ==> ~(x = y) Run time: 0.0s Intermediate theorems generated: 23 HREAL_LT_ADDR = |- !x y. ~(x hreal_add y) hreal_lt x Run time: 0.0s Intermediate theorems generated: 56 HREAL_LT_GT = |- !x y. x hreal_lt y ==> ~y hreal_lt x Run time: 0.0s Intermediate theorems generated: 66 Theorem HREAL_ADD_SYM autoloading from theory `HREAL` ... HREAL_ADD_SYM = |- !X Y. X hreal_add Y = Y hreal_add X Run time: 0.0s HREAL_LT_ADD2 = |- !x1 x2 y1 y2. x1 hreal_lt y1 /\ x2 hreal_lt y2 ==> (x1 hreal_add x2) hreal_lt (y1 hreal_add y2) Run time: 0.0s Intermediate theorems generated: 79 HREAL_LT_LADD = |- !x y z. (x hreal_add y) hreal_lt (x hreal_add z) = y hreal_lt z Run time: 0.0s Intermediate theorems generated: 77 CANCEL_CONV = - : ((thm # thm # thm list) -> conv) Run time: 0.0s CANCEL_TAC = - : tactic Run time: 0.0s Intermediate theorems generated: 106 treal_0 = |- treal_0 = hreal_1,hreal_1 Run time: 0.0s Intermediate theorems generated: 2 treal_1 = |- treal_1 = hreal_1 hreal_add hreal_1,hreal_1 Run time: 0.0s Intermediate theorems generated: 2 treal_neg = |- !x y. treal_neg(x,y) = y,x Run time: 0.0s Intermediate theorems generated: 2 treal_add = |- !x1 y1 x2 y2. (x1,y1) treal_add (x2,y2) = x1 hreal_add x2,y1 hreal_add y2 Run time: 0.0s Intermediate theorems generated: 2 treal_mul = |- !x1 y1 x2 y2. (x1,y1) treal_mul (x2,y2) = (x1 hreal_mul x2) hreal_add (y1 hreal_mul y2), (x1 hreal_mul y2) hreal_add (y1 hreal_mul x2) Run time: 0.0s Intermediate theorems generated: 2 treal_lt = |- !x1 y1 x2 y2. (x1,y1) treal_lt (x2,y2) = (x1 hreal_add y2) hreal_lt (x2 hreal_add y1) Run time: 0.0s Intermediate theorems generated: 2 treal_inv = |- !x y. treal_inv(x,y) = ((x = y) => treal_0 | (y hreal_lt x => ((hreal_inv(x hreal_sub y)) hreal_add hreal_1,hreal_1) | (hreal_1,(hreal_inv(y hreal_sub x)) hreal_add hreal_1))) Run time: 0.0s Intermediate theorems generated: 2 treal_eq = |- !x1 y1 x2 y2. (x1,y1) treal_eq (x2,y2) = (x1 hreal_add y2 = x2 hreal_add y1) Run time: 0.0s Intermediate theorems generated: 2 TREAL_EQ_REFL = |- !x. x treal_eq x Run time: 0.0s Intermediate theorems generated: 22 TREAL_EQ_SYM = |- !x y. x treal_eq y = y treal_eq x Run time: 0.0s Intermediate theorems generated: 37 TREAL_EQ_TRANS = |- !x y z. x treal_eq y /\ y treal_eq z ==> x treal_eq z Run time: 0.0s Intermediate theorems generated: 1147 TREAL_EQ_EQUIV = |- !p q. p treal_eq q = ($treal_eq p = $treal_eq q) Run time: 0.1s Intermediate theorems generated: 73 TREAL_EQ_AP = |- !p q. (p = q) ==> p treal_eq q Run time: 0.0s Intermediate theorems generated: 8 TREAL_10 = |- ~treal_1 treal_eq treal_0 Run time: 0.0s Intermediate theorems generated: 32 TREAL_ADD_SYM = |- !x y. x treal_add y = y treal_add x Run time: 0.0s Intermediate theorems generated: 44 TREAL_MUL_SYM = |- !x y. x treal_mul y = y treal_mul x Run time: 0.0s Intermediate theorems generated: 75 TREAL_ADD_ASSOC = |- !x y z. x treal_add (y treal_add z) = (x treal_add y) treal_add z Run time: 0.0s Intermediate theorems generated: 63 Theorem HREAL_MUL_ASSOC autoloading from theory `HREAL` ... HREAL_MUL_ASSOC = |- !X Y Z. X hreal_mul (Y hreal_mul Z) = (X hreal_mul Y) hreal_mul Z Run time: 0.0s TREAL_MUL_ASSOC = |- !x y z. x treal_mul (y treal_mul z) = (x treal_mul y) treal_mul z Run time: 0.0s Intermediate theorems generated: 388 TREAL_LDISTRIB = |- !x y z. x treal_mul (y treal_add z) = (x treal_mul y) treal_add (x treal_mul z) Run time: 0.0s Intermediate theorems generated: 345 TREAL_ADD_LID = |- !x. (treal_0 treal_add x) treal_eq x Run time: 0.0s Intermediate theorems generated: 158 Theorem HREAL_MUL_LID autoloading from theory `HREAL` ... HREAL_MUL_LID = |- !X. hreal_1 hreal_mul X = X Run time: 0.0s TREAL_MUL_LID = |- !x. (treal_1 treal_mul x) treal_eq x Run time: 0.0s Intermediate theorems generated: 217 TREAL_ADD_LINV = |- !x. ((treal_neg x) treal_add x) treal_eq treal_0 Run time: 0.0s Intermediate theorems generated: 169 Theorem HREAL_SUB_ADD autoloading from theory `HREAL` ... HREAL_SUB_ADD = |- !X Y. X hreal_lt Y ==> ((Y hreal_sub X) hreal_add X = Y) Run time: 0.0s Theorem HREAL_MUL_LINV autoloading from theory `HREAL` ... HREAL_MUL_LINV = |- !X. (hreal_inv X) hreal_mul X = hreal_1 Run time: 0.0s Theorem HREAL_LT_TOTAL autoloading from theory `HREAL` ... HREAL_LT_TOTAL = |- !X Y. (X = Y) \/ X hreal_lt Y \/ Y hreal_lt X Run time: 0.0s TREAL_MUL_LINV = |- !x. ~x treal_eq treal_0 ==> ((treal_inv x) treal_mul x) treal_eq treal_1 Run time: 0.0s Intermediate theorems generated: 3953 TREAL_LT_TOTAL = |- !x y. x treal_eq y \/ x treal_lt y \/ y treal_lt x Run time: 0.0s Intermediate theorems generated: 48 TREAL_LT_REFL = |- !x. ~x treal_lt x Run time: 0.0s Intermediate theorems generated: 24 TREAL_LT_TRANS = |- !x y z. x treal_lt y /\ y treal_lt z ==> x treal_lt z Run time: 0.0s Intermediate theorems generated: 1063 TREAL_LT_ADD = |- !x y z. y treal_lt z ==> (x treal_add y) treal_lt (x treal_add z) Run time: 0.0s Intermediate theorems generated: 1045 TREAL_LT_MUL = |- !x y. treal_0 treal_lt x /\ treal_0 treal_lt y ==> treal_0 treal_lt (x treal_mul y) Run time: 0.1s Intermediate theorems generated: 866 treal_of_hreal = |- !x. treal_of_hreal x = x hreal_add hreal_1,hreal_1 Run time: 0.0s Intermediate theorems generated: 2 hreal_of_treal = |- !x y. hreal_of_treal(x,y) = (@d. x = y hreal_add d) Run time: 0.0s Intermediate theorems generated: 2 TREAL_BIJ = |- (!h. hreal_of_treal(treal_of_hreal h) = h) /\ (!r. treal_0 treal_lt r = (treal_of_hreal(hreal_of_treal r)) treal_eq r) Run time: 0.0s Intermediate theorems generated: 986 TREAL_ISO = |- !h i. h hreal_lt i ==> (treal_of_hreal h) treal_lt (treal_of_hreal i) Run time: 0.0s Intermediate theorems generated: 450 TREAL_BIJ_WELLDEF = |- !h i. h treal_eq i ==> (hreal_of_treal h = hreal_of_treal i) Run time: 0.0s Intermediate theorems generated: 1446 TREAL_NEG_WELLDEF = |- !x1 x2. x1 treal_eq x2 ==> (treal_neg x1) treal_eq (treal_neg x2) Run time: 0.0s Intermediate theorems generated: 58 TREAL_ADD_WELLDEFR = |- !x1 x2 y. x1 treal_eq x2 ==> (x1 treal_add y) treal_eq (x2 treal_add y) Run time: 0.0s Intermediate theorems generated: 1044 TREAL_ADD_WELLDEF = |- !x1 x2 y1 y2. x1 treal_eq x2 /\ y1 treal_eq y2 ==> (x1 treal_add y1) treal_eq (x2 treal_add y2) Run time: 0.0s Intermediate theorems generated: 65 TREAL_MUL_WELLDEFR = |- !x1 x2 y. x1 treal_eq x2 ==> (x1 treal_mul y) treal_eq (x2 treal_mul y) Run time: 0.0s Intermediate theorems generated: 183 TREAL_MUL_WELLDEF = |- !x1 x2 y1 y2. x1 treal_eq x2 /\ y1 treal_eq y2 ==> (x1 treal_mul y1) treal_eq (x2 treal_mul y2) Run time: 0.0s Intermediate theorems generated: 65 TREAL_LT_WELLDEFR = |- !x1 x2 y. x1 treal_eq x2 ==> (x1 treal_lt y = x2 treal_lt y) Run time: 0.0s Intermediate theorems generated: 519 TREAL_LT_WELLDEFL = |- !x y1 y2. y1 treal_eq y2 ==> (x treal_lt y1 = x treal_lt y2) Run time: 0.1s Intermediate theorems generated: 612 TREAL_LT_WELLDEF = |- !x1 x2 y1 y2. x1 treal_eq x2 /\ y1 treal_eq y2 ==> (x1 treal_lt y1 = x2 treal_lt y2) Run time: 0.0s Intermediate theorems generated: 60 TREAL_INV_WELLDEF = |- !x1 x2. x1 treal_eq x2 ==> (treal_inv x1) treal_eq (treal_inv x2) Run time: 0.0s Intermediate theorems generated: 2545 REAL_10 = |- ~(r1 = r0) REAL_ADD_SYM = |- !x y. x real_add y = y real_add x REAL_MUL_SYM = |- !x y. x real_mul y = y real_mul x REAL_ADD_ASSOC = |- !x y z. x real_add (y real_add z) = (x real_add y) real_add z REAL_MUL_ASSOC = |- !x y z. x real_mul (y real_mul z) = (x real_mul y) real_mul z REAL_LDISTRIB = |- !x y z. x real_mul (y real_add z) = (x real_mul y) real_add (x real_mul z) REAL_ADD_LID = |- !x. r0 real_add x = x REAL_MUL_LID = |- !x. r1 real_mul x = x REAL_ADD_LINV = |- !x. (real_neg x) real_add x = r0 REAL_MUL_LINV = |- !x. ~(x = r0) ==> ((real_inv x) real_mul x = r1) REAL_LT_TOTAL = |- !x y. (x = y) \/ x real_lt y \/ y real_lt x REAL_LT_REFL = |- !x. ~x real_lt x REAL_LT_TRANS = |- !x y z. x real_lt y /\ y real_lt z ==> x real_lt z REAL_LT_IADD = |- !x y z. y real_lt z ==> (x real_add y) real_lt (x real_add z) REAL_LT_MUL = |- !x y. r0 real_lt x /\ r0 real_lt y ==> r0 real_lt (x real_mul y) REAL_BIJ = |- (!h. hreal_of_real(real_of_hreal h) = h) /\ (!r. r0 real_lt r = (real_of_hreal(hreal_of_real r) = r)) REAL_ISO = |- !h i. h hreal_lt i ==> (real_of_hreal h) real_lt (real_of_hreal i) Run time: 0.1s Intermediate theorems generated: 7766 REAL_ISO_EQ = |- !h i. h hreal_lt i = (real_of_hreal h) real_lt (real_of_hreal i) Run time: 0.0s Intermediate theorems generated: 98 REAL_POS = |- !X. r0 real_lt (real_of_hreal X) Run time: 0.0s Intermediate theorems generated: 20 SUP_ALLPOS_LEMMA1 = |- (!x. P x ==> r0 real_lt x) ==> ((?x. P x /\ y real_lt x) = (?X. P(real_of_hreal X) /\ y real_lt (real_of_hreal X))) Run time: 0.0s Intermediate theorems generated: 68 SUP_ALLPOS_LEMMA2 = |- P(real_of_hreal X) = (\h. P(real_of_hreal h))X Run time: 0.0s Intermediate theorems generated: 5 SUP_ALLPOS_LEMMA3 = |- (!x. P x ==> r0 real_lt x) /\ (?x. P x) /\ (?z. !x. P x ==> x real_lt z) ==> (?X. (\h. P(real_of_hreal h))X) /\ (?Y. !X. (\h. P(real_of_hreal h))X ==> X hreal_lt Y) Run time: 0.0s Intermediate theorems generated: 135 SUP_ALLPOS_LEMMA4 = |- !y. ~r0 real_lt y ==> (!x. y real_lt (real_of_hreal x)) Run time: 0.1s Intermediate theorems generated: 75 Theorem HREAL_SUP autoloading from theory `HREAL` ... HREAL_SUP = |- !P. (?X. P X) /\ (?Y. !X. P X ==> X hreal_lt Y) ==> (!Y. (?X. P X /\ Y hreal_lt X) = Y hreal_lt (hreal_sup P)) Run time: 0.0s REAL_SUP_ALLPOS = |- !P. (!x. P x ==> r0 real_lt x) /\ (?x. P x) /\ (?z. !x. P x ==> x real_lt z) ==> (?s. !y. (?x. P x /\ y real_lt x) = y real_lt s) Run time: 0.0s Intermediate theorems generated: 199 [|- ~(r1 = r0); |- !x y. x real_add y = y real_add x; |- !x y. x real_mul y = y real_mul x; |- !x y z. x real_add (y real_add z) = (x real_add y) real_add z; |- !x y z. x real_mul (y real_mul z) = (x real_mul y) real_mul z; |- !x y z. x real_mul (y real_add z) = (x real_mul y) real_add (x real_mul z); |- !x. r0 real_add x = x; |- !x. r1 real_mul x = x; |- !x. (real_neg x) real_add x = r0; |- !x. ~(x = r0) ==> ((real_inv x) real_mul x = r1); |- !x y. (x = y) \/ x real_lt y \/ y real_lt x; |- !x. ~x real_lt x; |- !x y z. x real_lt y /\ y real_lt z ==> x real_lt z; |- !x y z. y real_lt z ==> (x real_add y) real_lt (x real_add z); |- !x y. r0 real_lt x /\ r0 real_lt y ==> r0 real_lt (x real_mul y)] : thm list Run time: 0.0s () : void Run time: 0.0s Intermediate theorems generated: 1 File realax.ml loaded () : void Run time: 0.5s Intermediate theorems generated: 26795 #\ echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `real.ml`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool false : bool () : void Theory REALAX loaded () : void false : bool Run time: 0.0s LAND_CONV = - : (conv -> conv) Run time: 0.0s TAUT_CONV = - : conv Run time: 0.0s AC = - : ((thm # thm) -> conv) Run time: 0.0s GEN_PAIR_TAC = - : tactic Run time: 0.0s MK_COMB_TAC = - : tactic Run time: 0.0s BINOP_TAC = - : tactic Run time: 0.0s SYM_CANON_CONV = - : (thm -> ((term # term) -> bool) -> conv) Run time: 0.0s IMP_SUBST_TAC = - : thm_tactic Run time: 0.0s ABBREV_TAC = - : (term -> tactic) Run time: 0.0s EXT_CONV = - : conv Run time: 0.0s ABS_TAC = - : tactic Run time: 0.0s EQUAL_TAC = - : tactic Run time: 0.0s X_BETA_CONV = - : (term -> conv) Run time: 0.0s EXACT_CONV = - : (thm list -> conv) Run time: 0.0s HABS_CONV = - : conv Run time: 0.0s autoload_definitions = - : (string -> void) Run time: 0.0s autoload_theorems = - : (string -> void) Run time: 0.0s EXPAND_TAC = - : (string -> tactic) Run time: 0.0s File useful loaded () : void Run time: 0.0s () : void Run time: 0.0s real_sub = |- !x y. x real_sub y = x real_add (real_neg y) Run time: 0.0s Intermediate theorems generated: 2 real_le = |- !x y. x real_le y = ~y real_lt x Run time: 0.0s Intermediate theorems generated: 2 real_gt = |- !x y. x real_gt y = y real_lt x Run time: 0.0s Intermediate theorems generated: 2 real_ge = |- !x y. x real_ge y = y real_le x Run time: 0.0s Intermediate theorems generated: 2 real_div = |- !x y. x / y = x real_mul (real_inv y) Run time: 0.0s Intermediate theorems generated: 2 real_of_num = |- (real_of_num 0 = r0) /\ (!n. real_of_num(SUC n) = (real_of_num n) real_add r1) Run time: 0.0s Intermediate theorems generated: 136 REAL_0 = |- r0 = real_of_num 0 Run time: 0.0s Intermediate theorems generated: 11 REAL_1 = |- r1 = real_of_num 1 Run time: 0.0s Intermediate theorems generated: 23 () : void Run time: 0.0s [] : (string # string) list Run time: 0.0s gonk = - : (string list -> thm) Run time: 0.0s reeducate = - : (string -> void) Run time: 0.0s () : void Run time: 0.0s REAL_10 = |- ~(& 1 = & 0) Run time: 0.0s Intermediate theorems generated: 4 REAL_ADD_SYM = |- !x y. x + y = y + x Run time: 0.0s Intermediate theorems generated: 2 REAL_MUL_SYM = |- !x y. x * y = y * x Run time: 0.0s Intermediate theorems generated: 2 REAL_ADD_ASSOC = |- !x y z. x + (y + z) = (x + y) + z Run time: 0.0s Intermediate theorems generated: 2 REAL_MUL_ASSOC = |- !x y z. x * (y * z) = (x * y) * z Run time: 0.0s Intermediate theorems generated: 2 REAL_ADD_LID = |- !x. (& 0) + x = x Run time: 0.0s Intermediate theorems generated: 7 REAL_MUL_LID = |- !x. (& 1) * x = x Run time: 0.0s Intermediate theorems generated: 7 REAL_ADD_LINV = |- !x. (-- x) + x = & 0 Run time: 0.0s Intermediate theorems generated: 4 REAL_MUL_LINV = |- !x. ~(x = & 0) ==> ((inv x) * x = & 1) Run time: 0.0s Intermediate theorems generated: 8 REAL_LDISTRIB = |- !x y z. x * (y + z) = (x * y) + (x * z) Run time: 0.0s Intermediate theorems generated: 2 REAL_LT_TOTAL = |- !x y. (x = y) \/ x < y \/ y < x Run time: 0.0s Intermediate theorems generated: 2 REAL_LT_REFL = |- !x. ~x < x Run time: 0.0s Intermediate theorems generated: 2 REAL_LT_TRANS = |- !x y z. x < y /\ y < z ==> x < z Run time: 0.0s Intermediate theorems generated: 2 REAL_LT_IADD = |- !x y z. y < z ==> (x + y) < (x + z) Run time: 0.0s Intermediate theorems generated: 2 REAL_LT_MUL = |- !x y. (& 0) < x /\ (& 0) < y ==> (& 0) < (x * y) Run time: 0.0s Intermediate theorems generated: 15 REAL_SUP_ALLPOS = |- !P. (!x. P x ==> (& 0) < x) /\ (?x. P x) /\ (?z. !x. P x ==> x < z) ==> (?s. !y. (?x. P x /\ y < x) = y < s) Run time: 0.0s Intermediate theorems generated: 12 REAL_ADD_RID = |- !x. x + (& 0) = x Run time: 0.0s Intermediate theorems generated: 14 REAL_ADD_RINV = |- !x. x + (-- x) = & 0 Run time: 0.0s Intermediate theorems generated: 14 REAL_MUL_RID = |- !x. x * (& 1) = x Run time: 0.0s Intermediate theorems generated: 14 REAL_MUL_RINV = |- !x. ~(x = & 0) ==> (x * (inv x) = & 1) Run time: 0.0s Intermediate theorems generated: 15 REAL_RDISTRIB = |- !x y z. (x + y) * z = (x * z) + (y * z) Run time: 0.0s Intermediate theorems generated: 22 REAL_EQ_LADD = |- !x y z. (x + y = x + z) = (y = z) Run time: 0.0s Intermediate theorems generated: 50 REAL_EQ_RADD = |- !x y z. (x + z = y + z) = (x = y) Run time: 0.0s Intermediate theorems generated: 21 REAL_ADD_LID_UNIQ = |- !x y. (x + y = y) = (x = & 0) Run time: 0.0s Intermediate theorems generated: 21 REAL_ADD_RID_UNIQ = |- !x y. (x + y = x) = (y = & 0) Run time: 0.0s Intermediate theorems generated: 18 REAL_LNEG_UNIQ = |- !x y. (x + y = & 0) = (x = -- y) Run time: 0.0s Intermediate theorems generated: 10 REAL_RNEG_UNIQ = |- !x y. (x + y = & 0) = (y = -- x) Run time: 0.0s Intermediate theorems generated: 18 REAL_NEG_ADD = |- !x y. --(x + y) = (-- x) + (-- y) Run time: 0.0s Intermediate theorems generated: 101 REAL_MUL_LZERO = |- !x. (& 0) * x = & 0 Run time: 0.0s Intermediate theorems generated: 40 REAL_MUL_RZERO = |- !x. x * (& 0) = & 0 Run time: 0.0s Intermediate theorems generated: 14 REAL_NEG_LMUL = |- !x y. --(x * y) = (-- x) * y Run time: 0.0s Intermediate theorems generated: 62 REAL_NEG_RMUL = |- !x y. --(x * y) = x * (-- y) Run time: 0.0s Intermediate theorems generated: 18 REAL_NEGNEG = |- !x. --(-- x) = x Run time: 0.0s Intermediate theorems generated: 33 REAL_NEG_MUL2 = |- !x y. (-- x) * (-- y) = x * y Run time: 0.0s Intermediate theorems generated: 56 REAL_ENTIRE = |- !x y. (x * y = & 0) = (x = & 0) \/ (y = & 0) Run time: 0.0s Intermediate theorems generated: 116 REAL_LT_LADD = |- !x y z. (x + y) < (x + z) = y < z Run time: 0.0s Intermediate theorems generated: 54 REAL_LT_RADD = |- !x y z. (x + z) < (y + z) = x < y Run time: 0.0s Intermediate theorems generated: 21 REAL_NOT_LT = |- !x y. ~x < y = y <= x Run time: 0.0s Intermediate theorems generated: 15 REAL_LT_ANTISYM = |- !x y. ~(x < y /\ y < x) Run time: 0.0s Intermediate theorems generated: 24 REAL_LT_GT = |- !x y. x < y ==> ~y < x Run time: 0.0s Intermediate theorems generated: 26 REAL_NOT_LE = |- !x y. ~x <= y = y < x Run time: 0.0s Intermediate theorems generated: 19 REAL_LE_TOTAL = |- !x y. x <= y \/ y <= x Run time: 0.0s Intermediate theorems generated: 55 REAL_LET_TOTAL = |- !x y. x <= y \/ y < x Run time: 0.0s Intermediate theorems generated: 28 REAL_LTE_TOTAL = |- !x y. x < y \/ y <= x Run time: 0.1s Intermediate theorems generated: 27 REAL_LE_REFL = |- !x. x <= x Run time: 0.0s Intermediate theorems generated: 21 REAL_LE_LT = |- !x y. x <= y = x < y \/ (x = y) Run time: 0.0s Intermediate theorems generated: 93 REAL_LT_LE = |- !x y. x < y = x <= y /\ ~(x = y) Run time: 0.0s Intermediate theorems generated: 125 REAL_LT_IMP_LE = |- !x y. x < y ==> x <= y Run time: 0.0s Intermediate theorems generated: 22 REAL_LTE_TRANS = |- !x y z. x < y /\ y <= z ==> x < z Run time: 0.0s Intermediate theorems generated: 47 REAL_LET_TRANS = |- !x y z. x <= y /\ y < z ==> x < z Run time: 0.0s Intermediate theorems generated: 46 REAL_LE_TRANS = |- !x y z. x <= y /\ y <= z ==> x <= z Run time: 0.0s Intermediate theorems generated: 51 REAL_LE_ANTISYM = |- !x y. x <= y /\ y <= x = (x = y) Run time: 0.0s Intermediate theorems generated: 94 REAL_LET_ANTISYM = |- !x y. ~(x < y /\ y <= x) Run time: 0.0s Intermediate theorems generated: 32 REAL_LTE_ANTSYM = |- !x y. ~(x <= y /\ y < x) Run time: 0.0s Intermediate theorems generated: 15 REAL_NEG_LT0 = |- !x. (-- x) < (& 0) = (& 0) < x Run time: 0.0s Intermediate theorems generated: 24 REAL_NEG_GT0 = |- !x. (& 0) < (-- x) = x < (& 0) Run time: 0.0s Intermediate theorems generated: 25 REAL_NEG_LE0 = |- !x. (-- x) <= (& 0) = (& 0) <= x Run time: 0.0s Intermediate theorems generated: 25 REAL_NEG_GE0 = |- !x. (& 0) <= (-- x) = x <= (& 0) Run time: 0.0s Intermediate theorems generated: 25 REAL_LT_NEGTOTAL = |- !x. (x = & 0) \/ (& 0) < x \/ (& 0) < (-- x) Run time: 0.0s Intermediate theorems generated: 79 REAL_LE_NEGTOTAL = |- !x. (& 0) <= x \/ (& 0) <= (-- x) Run time: 0.0s Intermediate theorems generated: 73 REAL_LE_MUL = |- !x y. (& 0) <= x /\ (& 0) <= y ==> (& 0) <= (x * y) Run time: 0.0s Intermediate theorems generated: 276 REAL_LE_SQUARE = |- !x. (& 0) <= (x * x) Run time: 0.0s Intermediate theorems generated: 68 REAL_LE_01 = |- (& 0) <= (& 1) Run time: 0.0s Intermediate theorems generated: 6 REAL_LT_01 = |- (& 0) < (& 1) Run time: 0.0s Intermediate theorems generated: 29 REAL_LE_LADD = |- !x y z. (x + y) <= (x + z) = y <= z Run time: 0.0s Intermediate theorems generated: 20 REAL_LE_RADD = |- !x y z. (x + z) <= (y + z) = x <= y Run time: 0.0s Intermediate theorems generated: 20 REAL_LT_ADD2 = |- !w x y z. w < x /\ y < z ==> (w + y) < (x + z) Run time: 0.0s Intermediate theorems generated: 55 REAL_LE_ADD2 = |- !w x y z. w <= x /\ y <= z ==> (w + y) <= (x + z) Run time: 0.0s Intermediate theorems generated: 55 REAL_LE_ADD = |- !x y. (& 0) <= x /\ (& 0) <= y ==> (& 0) <= (x + y) Run time: 0.0s Intermediate theorems generated: 22 REAL_LT_ADD = |- !x y. (& 0) < x /\ (& 0) < y ==> (& 0) < (x + y) Run time: 0.0s Intermediate theorems generated: 22 REAL_LT_ADDNEG = |- !x y z. y < (x + (-- z)) = (y + z) < x Run time: 0.0s Intermediate theorems generated: 48 REAL_LT_ADDNEG2 = |- !x y z. (x + (-- y)) < z = x < (z + y) Run time: 0.0s Intermediate theorems generated: 49 REAL_LT_ADD1 = |- !x y. x <= y ==> x < (y + (& 1)) Run time: 0.0s Intermediate theorems generated: 75 REAL_SUB_ADD = |- !x y. (x - y) + y = x Run time: 0.0s Intermediate theorems generated: 50 REAL_SUB_ADD2 = |- !x y. y + (x - y) = x Run time: 0.0s Intermediate theorems generated: 16 REAL_SUB_REFL = |- !x. x - x = & 0 Run time: 0.1s Intermediate theorems generated: 20 REAL_SUB_0 = |- !x y. (x - y = & 0) = (x = y) Run time: 0.0s Intermediate theorems generated: 33 REAL_LE_DOUBLE = |- !x. (& 0) <= (x + x) = (& 0) <= x Run time: 0.0s Intermediate theorems generated: 72 REAL_LE_NEGL = |- !x. (-- x) <= x = (& 0) <= x Run time: 0.0s Intermediate theorems generated: 25 REAL_LE_NEGR = |- !x. x <= (-- x) = x <= (& 0) Run time: 0.0s Intermediate theorems generated: 42 REAL_NEG_EQ0 = |- !x. (-- x = & 0) = (x = & 0) Run time: 0.0s Intermediate theorems generated: 45 REAL_NEG_0 = |- --(& 0) = & 0 Run time: 0.0s Intermediate theorems generated: 9 REAL_NEG_SUB = |- !x y. --(x - y) = y - x Run time: 0.0s Intermediate theorems generated: 32 REAL_SUB_LT = |- !x y. (& 0) < (x - y) = y < x Run time: 0.0s Intermediate theorems generated: 28 REAL_SUB_LE = |- !x y. (& 0) <= (x - y) = y <= x Run time: 0.0s Intermediate theorems generated: 28 REAL_ADD_SUB = |- !x y. (x + y) - x = y Run time: 0.0s Intermediate theorems generated: 61 REAL_EQ_LMUL = |- !x y z. (x * y = x * z) = (x = & 0) \/ (y = z) Run time: 0.0s Intermediate theorems generated: 122 REAL_EQ_RMUL = |- !x y z. (x * z = y * z) = (z = & 0) \/ (x = y) Run time: 0.0s Intermediate theorems generated: 21 REAL_SUB_LDISTRIB = |- !x y z. x * (y - z) = (x * y) - (x * z) Run time: 0.0s Intermediate theorems generated: 39 REAL_SUB_RDISTRIB = |- !x y z. (x - y) * z = (x * z) - (y * z) Run time: 0.0s Intermediate theorems generated: 22 REAL_NEG_EQ = |- !x y. (-- x = y) = (x = -- y) Run time: 0.0s Intermediate theorems generated: 30 REAL_NEG_MINUS1 = |- !x. -- x = (--(& 1)) * x Run time: 0.0s Intermediate theorems generated: 30 REAL_INV_NZ = |- !x. ~(x = & 0) ==> ~(inv x = & 0) Run time: 0.0s Intermediate theorems generated: 35 REAL_INVINV = |- !x. ~(x = & 0) ==> (inv(inv x) = x) Run time: 0.0s Intermediate theorems generated: 114 REAL_LT_IMP_NE = |- !x y. x < y ==> ~(x = y) Run time: 0.0s Intermediate theorems generated: 43 REAL_INV_POS = |- !x. (& 0) < x ==> (& 0) < (inv x) Run time: 0.0s Intermediate theorems generated: 133 REAL_LT_LMUL_0 = |- !x y. (& 0) < x ==> ((& 0) < (x * y) = (& 0) < y) Run time: 0.0s Intermediate theorems generated: 87 REAL_LT_RMUL_0 = |- !x y. (& 0) < y ==> ((& 0) < (x * y) = (& 0) < x) Run time: 0.0s Intermediate theorems generated: 18 REAL_LT_LMUL = |- !x y z. (& 0) < x ==> ((x * y) < (x * z) = y < z) Run time: 0.0s Intermediate theorems generated: 57 REAL_LT_RMUL = |- !x y z. (& 0) < z ==> ((x * z) < (y * z) = x < y) Run time: 0.0s Intermediate theorems generated: 22 REAL_LT_RMUL_IMP = |- !x y z. x < y /\ (& 0) < z ==> (x * z) < (y * z) Run time: 0.0s Intermediate theorems generated: 29 REAL_LT_LMUL_IMP = |- !x y z. y < z /\ (& 0) < x ==> (x * y) < (x * z) Run time: 0.0s Intermediate theorems generated: 29 REAL_LINV_UNIQ = |- !x y. (x * y = & 1) ==> (x = inv y) Run time: 0.0s Intermediate theorems generated: 111 REAL_RINV_UNIQ = |- !x y. (x * y = & 1) ==> (y = inv x) Run time: 0.0s Intermediate theorems generated: 18 REAL_NEG_INV = |- !x. ~(x = & 0) ==> (--(inv x) = inv(-- x)) Run time: 0.0s Intermediate theorems generated: 71 REAL_INV_1OVER = |- !x. inv x = (& 1) / x Run time: 0.0s Intermediate theorems generated: 19 REAL_LE_ADDR = |- !x y. x <= (x + y) = (& 0) <= y Run time: 0.0s Intermediate theorems generated: 20 REAL_LE_ADDL = |- !x y. y <= (x + y) = (& 0) <= x Run time: 0.0s Intermediate theorems generated: 17 REAL_LT_ADDR = |- !x y. x < (x + y) = (& 0) < y Run time: 0.0s Intermediate theorems generated: 20 REAL_LT_ADDL = |- !x y. y < (x + y) = (& 0) < x Run time: 0.0s Intermediate theorems generated: 17 REAL = |- !n. &(SUC n) = (& n) + (& 1) Run time: 0.0s Intermediate theorems generated: 19 REAL_POS = |- !n. (& 0) <= (& n) Run time: 0.0s Intermediate theorems generated: 70 Theorem LESS_0 autoloading from theory `prim_rec` ... LESS_0 = |- !n. 0 num_lt (SUC n) Run time: 0.0s Theorem NOT_LESS autoloading from theory `arithmetic` ... NOT_LESS = |- !m n. ~m num_lt n = n num_le m Run time: 0.0s Theorem LESS_EQ_MONO autoloading from theory `arithmetic` ... LESS_EQ_MONO = |- !n m. (SUC n) num_le (SUC m) = n num_le m Run time: 0.0s Theorem ZERO_LESS_EQ autoloading from theory `arithmetic` ... ZERO_LESS_EQ = |- !n. 0 num_le n Run time: 0.0s REAL_LE = |- !m n. (& m) <= (& n) = m num_le n Run time: 0.0s Intermediate theorems generated: 321 REAL_LT = |- !m n. (& m) < (& n) = m num_lt n Run time: 0.0s Intermediate theorems generated: 48 Theorem LESS_EQUAL_ANTISYM autoloading from theory `arithmetic` ... LESS_EQUAL_ANTISYM = |- !n m. n num_le m /\ m num_le n ==> (n = m) Run time: 0.0s Theorem LESS_EQ_REFL autoloading from theory `arithmetic` ... LESS_EQ_REFL = |- !m. m num_le m Run time: 0.0s REAL_INJ = |- !m n. (& m = & n) = (m = n) Run time: 0.0s Intermediate theorems generated: 57 Definition ADD autoloading from theory `arithmetic` ... ADD = |- (!n. 0 num_add n = n) /\ (!m n. (SUC m) num_add n = SUC(m num_add n)) Run time: 0.0s Intermediate theorems generated: 1 REAL_ADD = |- !m n. (& m) + (& n) = &(m num_add n) Run time: 0.0s Intermediate theorems generated: 131 Theorem MULT_CLAUSES autoloading from theory `arithmetic` ... MULT_CLAUSES = |- !m n. (0 num_mul m = 0) /\ (m num_mul 0 = 0) /\ (1 num_mul m = m) /\ (m num_mul 1 = m) /\ ((SUC m) num_mul n = (m num_mul n) num_add n) /\ (m num_mul (SUC n) = m num_add (m num_mul n)) Run time: 0.0s REAL_MUL = |- !m n. (& m) * (& n) = &(m num_mul n) Run time: 0.0s Intermediate theorems generated: 148 REAL_INV1 = |- inv(& 1) = & 1 Run time: 0.0s Intermediate theorems generated: 26 REAL_OVER1 = |- !x. x / (& 1) = x Run time: 0.0s Intermediate theorems generated: 22 REAL_DIV_REFL = |- !x. ~(x = & 0) ==> (x / x = & 1) Run time: 0.0s Intermediate theorems generated: 19 REAL_DIV_LZERO = |- !x. (& 0) / x = & 0 Run time: 0.0s Intermediate theorems generated: 20 REAL_LT_NZ = |- !n. ~(& n = & 0) = (& 0) < (& n) Run time: 0.0s Intermediate theorems generated: 90 REAL_NZ_IMP_LT = |- !n. ~(n = 0) ==> (& 0) < (& n) Run time: 0.0s Intermediate theorems generated: 28 REAL_LT_RDIV_0 = |- !y z. (& 0) < z ==> ((& 0) < (y / z) = (& 0) < y) Run time: 0.0s Intermediate theorems generated: 40 REAL_LT_RDIV = |- !x y z. (& 0) < z ==> ((x / z) < (y / z) = x < y) Run time: 0.0s Intermediate theorems generated: 44 REAL_LT_FRACTION_0 = |- !n d. ~(n = 0) ==> ((& 0) < (d / (& n)) = (& 0) < d) Run time: 0.0s Intermediate theorems generated: 44 Theorem LESS_TRANS autoloading from theory `arithmetic` ... LESS_TRANS = |- !m n p. m num_lt n /\ n num_lt p ==> m num_lt p Run time: 0.0s Theorem NOT_LESS_0 autoloading from theory `prim_rec` ... NOT_LESS_0 = |- !n. ~n num_lt 0 Run time: 0.0s REAL_LT_MULTIPLE = |- !n d. 1 num_lt n ==> (d < ((& n) * d) = (& 0) < d) Run time: 0.1s Intermediate theorems generated: 268 REAL_LT_FRACTION = |- !n d. 1 num_lt n ==> ((d / (& n)) < d = (& 0) < d) Run time: 0.0s Intermediate theorems generated: 184 Theorem NOT_SUC autoloading from theory `num` ... NOT_SUC = |- !n. ~(SUC n = 0) Run time: 0.0s REAL_LT_HALF1 = |- !d. (& 0) < (d / (& 2)) = (& 0) < d Run time: 0.0s Intermediate theorems generated: 27 Theorem LESS_SUC_REFL autoloading from theory `prim_rec` ... LESS_SUC_REFL = |- !n. n num_lt (SUC n) Run time: 0.0s REAL_LT_HALF2 = |- !d. (d / (& 2)) < d = (& 0) < d Run time: 0.0s Intermediate theorems generated: 22 REAL_DOUBLE = |- !x. x + x = (& 2) * x Run time: 0.0s Intermediate theorems generated: 37 REAL_DIV_LMUL = |- !x y. ~(y = & 0) ==> (y * (x / y) = x) Run time: 0.0s Intermediate theorems generated: 70 REAL_DIV_RMUL = |- !x y. ~(y = & 0) ==> ((x / y) * y = x) Run time: 0.0s Intermediate theorems generated: 17 REAL_HALF_DOUBLE = |- !x. (x / (& 2)) + (x / (& 2)) = x Run time: 0.0s Intermediate theorems generated: 51 REAL_DOWN = |- !x. (& 0) < x ==> (?y. (& 0) < y /\ y < x) Run time: 0.0s Intermediate theorems generated: 24 REAL_DOWN2 = |- !x y. (& 0) < x /\ (& 0) < y ==> (?z. (& 0) < z /\ z < x /\ z < y) Run time: 0.0s Intermediate theorems generated: 145 REAL_SUB_SUB = |- !x y. (x - y) - x = -- y Run time: 0.0s Intermediate theorems generated: 91 REAL_LT_ADD_SUB = |- !x y z. (x + y) < z = x < (z - y) Run time: 0.0s Intermediate theorems generated: 23 REAL_LT_SUB_RADD = |- !x y z. (x - y) < z = x < (z + y) Run time: 0.0s Intermediate theorems generated: 25 REAL_LT_SUB_LADD = |- !x y z. x < (y - z) = (x + z) < y Run time: 0.0s Intermediate theorems generated: 57 REAL_LE_SUB_LADD = |- !x y z. x <= (y - z) = (x + z) <= y Run time: 0.0s Intermediate theorems generated: 38 REAL_LE_SUB_RADD = |- !x y z. (x - y) <= z = x <= (z + y) Run time: 0.0s Intermediate theorems generated: 38 REAL_LT_NEG = |- !x y. (-- x) < (-- y) = y < x Run time: 0.0s Intermediate theorems generated: 79 REAL_LE_NEG = |- !x y. (-- x) <= (-- y) = y <= x Run time: 0.0s Intermediate theorems generated: 37 REAL_ADD2_SUB2 = |- !a b c d. (a + b) - (c + d) = (a - c) + (b - d) Run time: 0.0s Intermediate theorems generated: 73 REAL_SUB_LZERO = |- !x. (& 0) - x = -- x Run time: 0.0s Intermediate theorems generated: 20 REAL_SUB_RZERO = |- !x. x - (& 0) = x Run time: 0.0s Intermediate theorems generated: 22 REAL_LET_ADD2 = |- !w x y z. w <= x /\ y < z ==> (w + y) < (x + z) Run time: 0.0s Intermediate theorems generated: 58 REAL_LTE_ADD2 = |- !w x y z. w < x /\ y <= z ==> (w + y) < (x + z) Run time: 0.1s Intermediate theorems generated: 33 REAL_LET_ADD = |- !x y. (& 0) <= x /\ (& 0) < y ==> (& 0) < (x + y) Run time: 0.0s Intermediate theorems generated: 33 REAL_LTE_ADD = |- !x y. (& 0) < x /\ (& 0) <= y ==> (& 0) < (x + y) Run time: 0.0s Intermediate theorems generated: 33 REAL_LT_MUL2 = |- !x1 x2 y1 y2. (& 0) <= x1 /\ (& 0) <= y1 /\ x1 < x2 /\ y1 < y2 ==> (x1 * y1) < (x2 * y2) Run time: 0.0s Intermediate theorems generated: 344 REAL_LT_INV = |- !x y. (& 0) < x /\ x < y ==> (inv y) < (inv x) Run time: 0.0s Intermediate theorems generated: 282 REAL_SUB_LNEG = |- !x y. (-- x) - y = --(x + y) Run time: 0.0s Intermediate theorems generated: 23 REAL_SUB_RNEG = |- !x y. x - (-- y) = x + y Run time: 0.0s Intermediate theorems generated: 22 REAL_SUB_NEG2 = |- !x y. (-- x) - (-- y) = y - x Run time: 0.0s Intermediate theorems generated: 40 REAL_SUB_TRIANGLE = |- !a b c. (a - b) + (b - c) = a - c Run time: 0.0s Intermediate theorems generated: 93 REAL_EQ_SUB_LADD = |- !x y z. (x = y - z) = (x + z = y) Run time: 0.0s Intermediate theorems generated: 24 REAL_EQ_SUB_RADD = |- !x y z. (x - y = z) = (x = z + y) Run time: 0.0s Intermediate theorems generated: 17 REAL_INV_MUL = |- !x y. ~(x = & 0) /\ ~(y = & 0) ==> (inv(x * y) = (inv x) * (inv y)) Run time: 0.0s Intermediate theorems generated: 142 REAL_LE_LMUL = |- !x y z. (& 0) < x ==> ((x * y) <= (x * z) = y <= z) Run time: 0.0s Intermediate theorems generated: 43 REAL_LE_RMUL = |- !x y z. (& 0) < z ==> ((x * z) <= (y * z) = x <= y) Run time: 0.0s Intermediate theorems generated: 22 REAL_SUB_INV2 = |- !x y. ~(x = & 0) /\ ~(y = & 0) ==> ((inv x) - (inv y) = (y - x) / (x * y)) Run time: 0.0s Intermediate theorems generated: 153 REAL_SUB_SUB2 = |- !x y. x - (x - y) = y Run time: 0.0s Intermediate theorems generated: 40 REAL_ADD_SUB2 = |- !x y. x - (x + y) = -- y Run time: 0.0s Intermediate theorems generated: 36 REAL_MEAN = |- !x y. x < y ==> (?z. x < z /\ z < y) Run time: 0.0s Intermediate theorems generated: 91 REAL_EQ_LMUL2 = |- !x y z. ~(x = & 0) ==> ((y = z) = (x * y = x * z)) Run time: 0.0s Intermediate theorems generated: 35 REAL_LE_MUL2 = |- !x1 x2 y1 y2. (& 0) <= x1 /\ (& 0) <= y1 /\ x1 <= x2 /\ y1 <= y2 ==> (x1 * y1) <= (x2 * y2) Run time: 0.0s Intermediate theorems generated: 345 REAL_LE_LDIV = |- !x y z. (& 0) < x /\ y <= (z * x) ==> (y / x) <= z Run time: 0.0s Intermediate theorems generated: 102 REAL_LE_RDIV = |- !x y z. (& 0) < x /\ (y * x) <= z ==> y <= (z / x) Run time: 0.0s Intermediate theorems generated: 101 REAL_LT_1 = |- !x y. (& 0) <= x /\ x < y ==> (x / y) < (& 1) Run time: 0.0s Intermediate theorems generated: 120 REAL_LE_LMUL_IMP = |- !x y z. (& 0) <= x /\ y <= z ==> (x * y) <= (x * z) Run time: 0.0s Intermediate theorems generated: 65 REAL_LE_RMUL_IMP = |- !x y z. (& 0) <= x /\ y <= z ==> (y * x) <= (z * x) Run time: 0.0s Intermediate theorems generated: 26 REAL_EQ_IMP_LE = |- !x y. (x = y) ==> x <= y Run time: 0.0s Intermediate theorems generated: 8 REAL_INV_LT1 = |- !x. (& 0) < x /\ x < (& 1) ==> (& 1) < (inv x) Run time: 0.0s Intermediate theorems generated: 290 REAL_POS_NZ = |- !x. (& 0) < x ==> ~(x = & 0) Run time: 0.0s Intermediate theorems generated: 17 REAL_EQ_RMUL_IMP = |- !x y z. ~(z = & 0) /\ (x * z = y * z) ==> (x = y) Run time: 0.0s Intermediate theorems generated: 36 REAL_EQ_LMUL_IMP = |- !x y z. ~(x = & 0) /\ (x * y = x * z) ==> (y = z) Run time: 0.0s Intermediate theorems generated: 28 Theorem FACT_LESS autoloading from theory `arithmetic` ... FACT_LESS = |- !n. 0 num_lt (FACT n) Run time: 0.0s REAL_FACT_NZ = |- !n. ~(&(FACT n) = & 0) Run time: 0.0s Intermediate theorems generated: 25 REAL_DIFFSQ = |- !x y. (x + y) * (x - y) = (x * x) - (y * y) Run time: 0.0s Intermediate theorems generated: 165 REAL_POSSQ = |- !x. (& 0) < (x * x) = ~(x = & 0) Run time: 0.1s Intermediate theorems generated: 68 REAL_SUMSQ = |- !x y. ((x * x) + (y * y) = & 0) = (x = & 0) /\ (y = & 0) Run time: 0.0s Intermediate theorems generated: 163 REAL_EQ_NEG = |- !x y. (-- x = -- y) = (x = y) Run time: 0.0s Intermediate theorems generated: 36 REAL_DIV_MUL2 = |- !x z. ~(x = & 0) /\ ~(z = & 0) ==> (!y. y / z = (x * y) / (x * z)) Run time: 0.0s Intermediate theorems generated: 169 REAL_MIDDLE1 = |- !a b. a <= b ==> a <= ((a + b) / (& 2)) Run time: 0.0s Intermediate theorems generated: 89 REAL_MIDDLE2 = |- !a b. a <= b ==> ((a + b) / (& 2)) <= b Run time: 0.0s Intermediate theorems generated: 87 abs = |- !x. abs x = ((& 0) <= x => x | -- x) Run time: 0.0s Intermediate theorems generated: 2 ABS_ZERO = |- !x. (abs x = & 0) = (x = & 0) Run time: 0.0s Intermediate theorems generated: 52 ABS_0 = |- abs(& 0) = & 0 Run time: 0.0s Intermediate theorems generated: 9 ABS_1 = |- abs(& 1) = & 1 Run time: 0.0s Intermediate theorems generated: 31 ABS_NEG = |- !x. abs(-- x) = abs x Run time: 0.0s Intermediate theorems generated: 178 ABS_TRIANGLE = |- !x y. (abs(x + y)) <= ((abs x) + (abs y)) Run time: 0.0s Intermediate theorems generated: 604 ABS_POS = |- !x. (& 0) <= (abs x) Run time: 0.0s Intermediate theorems generated: 67 ABS_MUL = |- !x y. abs(x * y) = (abs x) * (abs y) Run time: 0.1s Intermediate theorems generated: 385 ABS_LT_MUL2 = |- !w x y z. (abs w) < y /\ (abs x) < z ==> (abs(w * x)) < (y * z) Run time: 0.0s Intermediate theorems generated: 56 ABS_SUB = |- !x y. abs(x - y) = abs(y - x) Run time: 0.0s Intermediate theorems generated: 31 ABS_NZ = |- !x. ~(x = & 0) = (& 0) < (abs x) Run time: 0.0s Intermediate theorems generated: 139 ABS_INV = |- !x. ~(x = & 0) ==> (abs(inv x) = inv(abs x)) Run time: 0.0s Intermediate theorems generated: 105 ABS_ABS = |- !x. abs(abs x) = abs x Run time: 0.0s Intermediate theorems generated: 27 ABS_LE = |- !x. x <= (abs x) Run time: 0.0s Intermediate theorems generated: 75 ABS_REFL = |- !x. (abs x = x) = (& 0) <= x Run time: 0.0s Intermediate theorems generated: 156 ABS_N = |- !n. abs(& n) = & n Run time: 0.0s Intermediate theorems generated: 21 ABS_BETWEEN = |- !x y d. (& 0) < d /\ (x - d) < y /\ y < (x + d) = (abs(y - x)) < d Run time: 0.0s Intermediate theorems generated: 372 ABS_BOUND = |- !x y d. (abs(x - y)) < d ==> y < (x + d) Run time: 0.1s Intermediate theorems generated: 54 ABS_STILLNZ = |- !x y. (abs(x - y)) < (abs y) ==> ~(x = & 0) Run time: 0.0s Intermediate theorems generated: 56 ABS_CASES = |- !x. (x = & 0) \/ (& 0) < (abs x) Run time: 0.0s Intermediate theorems generated: 29 ABS_BETWEEN1 = |- !x y z. x < z /\ (abs(y - x)) < (z - x) ==> y < z Run time: 0.0s Intermediate theorems generated: 102 ABS_SIGN = |- !x y. (abs(x - y)) < y ==> (& 0) < x Run time: 0.0s Intermediate theorems generated: 22 ABS_SIGN2 = |- !x y. (abs(x - y)) < (-- y) ==> x < (& 0) Run time: 0.0s Intermediate theorems generated: 68 ABS_DIV = |- !y. ~(y = & 0) ==> (!x. abs(x / y) = (abs x) / (abs y)) Run time: 0.0s Intermediate theorems generated: 41 ABS_CIRCLE = |- !x y h. (abs h) < ((abs y) - (abs x)) ==> (abs(x + h)) < (abs y) Run time: 0.0s Intermediate theorems generated: 61 REAL_SUB_ABS = |- !x y. ((abs x) - (abs y)) <= (abs(x - y)) Run time: 0.0s Intermediate theorems generated: 94 ABS_SUB_ABS = |- !x y. (abs((abs x) - (abs y))) <= (abs(x - y)) Run time: 0.0s Intermediate theorems generated: 80 ABS_BETWEEN2 = |- !x0 x y0 y. x0 < y0 /\ (abs(x - x0)) < ((y0 - x0) / (& 2)) /\ (abs(y - y0)) < ((y0 - x0) / (& 2)) ==> x < y Run time: 0.1s Intermediate theorems generated: 935 ABS_BOUNDS = |- !x k. (abs x) <= k = (-- k) <= x /\ x <= k Run time: 0.0s Intermediate theorems generated: 250 pow = |- (!x. x pow 0 = & 1) /\ (!x n. x pow (SUC n) = x * (x pow n)) Run time: 0.0s Intermediate theorems generated: 175 POW_0 = |- !n. (& 0) pow (SUC n) = & 0 Run time: 0.0s Intermediate theorems generated: 56 POW_NZ = |- !c n. ~(c = & 0) ==> ~(c pow n = & 0) Run time: 0.0s Intermediate theorems generated: 108 POW_INV = |- !c. ~(c = & 0) ==> (!n. inv(c pow n) = (inv c) pow n) Run time: 0.0s Intermediate theorems generated: 126 POW_ABS = |- !c n. (abs c) pow n = abs(c pow n) Run time: 0.0s Intermediate theorems generated: 83 POW_PLUS1 = |- !e. (& 0) < e ==> (!n. ((& 1) + ((& n) * e)) <= (((& 1) + e) pow n)) Run time: 0.0s Intermediate theorems generated: 298 Theorem ADD_CLAUSES autoloading from theory `arithmetic` ... ADD_CLAUSES = |- (0 num_add m = m) /\ (m num_add 0 = m) /\ ((SUC m) num_add n = SUC(m num_add n)) /\ (m num_add (SUC n) = SUC(m num_add n)) Run time: 0.0s POW_ADD = |- !c m n. c pow (m num_add n) = (c pow m) * (c pow n) Run time: 0.0s Intermediate theorems generated: 152 POW_1 = |- !x. x pow 1 = x Run time: 0.0s Intermediate theorems generated: 34 POW_2 = |- !x. x pow 2 = x * x Run time: 0.1s Intermediate theorems generated: 32 POW_POS = |- !x. (& 0) <= x ==> (!n. (& 0) <= (x pow n)) Run time: 0.0s Intermediate theorems generated: 68 POW_LE = |- !n x y. (& 0) <= x /\ x <= y ==> (x pow n) <= (y pow n) Run time: 0.0s Intermediate theorems generated: 160 POW_M1 = |- !n. abs((--(& 1)) pow n) = & 1 Run time: 0.0s Intermediate theorems generated: 80 POW_MUL = |- !n x y. (x * y) pow n = (x pow n) * (y pow n) Run time: 0.0s Intermediate theorems generated: 135 REAL_LE_POW2 = |- !x. (& 0) <= (x pow 2) Run time: 0.0s Intermediate theorems generated: 14 ABS_POW2 = |- !x. abs(x pow 2) = x pow 2 Run time: 0.0s Intermediate theorems generated: 13 REAL_POW2_ABS = |- !x. (abs x) pow 2 = x pow 2 Run time: 0.0s Intermediate theorems generated: 62 REAL_LE1_POW2 = |- !x. (& 1) <= x ==> (& 1) <= (x pow 2) Run time: 0.0s Intermediate theorems generated: 54 REAL_LT1_POW2 = |- !x. (& 1) < x ==> (& 1) < (x pow 2) Run time: 0.0s Intermediate theorems generated: 54 POW_POS_LT = |- !x n. (& 0) < x ==> (& 0) < (x pow (SUC n)) Run time: 0.0s Intermediate theorems generated: 73 Theorem LESS_EQ_SUC_REFL autoloading from theory `arithmetic` ... LESS_EQ_SUC_REFL = |- !m. m num_le (SUC m) Run time: 0.0s POW_2_LE1 = |- !n. (& 1) <= ((& 2) pow n) Run time: 0.1s Intermediate theorems generated: 118 Theorem ADD1 autoloading from theory `arithmetic` ... ADD1 = |- !m. SUC m = m num_add 1 Run time: 0.0s POW_2_LT = |- !n. (& n) < ((& 2) pow n) Run time: 0.0s Intermediate theorems generated: 103 POW_MINUS1 = |- !n. (--(& 1)) pow (2 num_mul n) = & 1 Run time: 0.0s Intermediate theorems generated: 231 REAL_SUP_SOMEPOS = |- !P. (?x. P x /\ (& 0) < x) /\ (?z. !x. P x ==> x < z) ==> (?s. !y. (?x. P x /\ y < x) = y < s) Run time: 0.0s Intermediate theorems generated: 325 SUP_LEMMA1 = |- !d. (!y. (?x. (\x. P(x + d))x /\ y < x) = y < s) ==> (!y. (?x. P x /\ y < x) = y < (s + d)) Run time: 0.0s Intermediate theorems generated: 119 SUP_LEMMA2 = |- (?x. P x) ==> (?d x. (\x. P(x + d))x /\ (& 0) < x) Run time: 0.0s Intermediate theorems generated: 121 SUP_LEMMA3 = |- !d. (?z. !x. P x ==> x < z) ==> (?z. !x. (\x. P(x + d))x ==> x < z) Run time: 0.0s Intermediate theorems generated: 42 REAL_SUP_EXISTS = |- !P. (?x. P x) /\ (?z. !x. P x ==> x < z) ==> (?s. !y. (?x. P x /\ y < x) = y < s) Run time: 0.0s Intermediate theorems generated: 45 sup = |- !P. sup P = (@s. !y. (?x. P x /\ y < x) = y < s) Run time: 0.0s Intermediate theorems generated: 2 REAL_SUP = |- !P. (?x. P x) /\ (?z. !x. P x ==> x < z) ==> (!y. (?x. P x /\ y < x) = y < (sup P)) Run time: 0.0s Intermediate theorems generated: 31 REAL_SUP_UBOUND = |- !P. (?x. P x) /\ (?z. !x. P x ==> x < z) ==> (!y. P y ==> y <= (sup P)) Run time: 0.1s Intermediate theorems generated: 87 SETOK_LE_LT = |- !P. (?x. P x) /\ (?z. !x. P x ==> x <= z) = (?x. P x) /\ (?z. !x. P x ==> x < z) Run time: 0.0s Intermediate theorems generated: 53 REAL_SUP_LE = |- !P. (?x. P x) /\ (?z. !x. P x ==> x <= z) ==> (!y. (?x. P x /\ y < x) = y < (sup P)) Run time: 0.0s Intermediate theorems generated: 15 REAL_SUP_UBOUND_LE = |- !P. (?x. P x) /\ (?z. !x. P x ==> x <= z) ==> (!y. P y ==> y <= (sup P)) Run time: 0.0s Intermediate theorems generated: 15 REAL_ARCH = |- !x. (& 0) < x ==> (!y. ?n. y < ((& n) * x)) Run time: 0.0s Intermediate theorems generated: 342 Theorem PRE autoloading from theory `prim_rec` ... PRE = |- (PRE 0 = 0) /\ (!m. PRE(SUC m) = m) Run time: 0.0s Theorem num_CASES autoloading from theory `arithmetic` ... num_CASES = |- !m. (m = 0) \/ (?n. m = SUC n) Run time: 0.0s REAL_ARCH_LEAST = |- !y. (& 0) < y ==> (!x. (& 0) <= x ==> (?n. ((& n) * y) <= x /\ x < ((&(SUC n)) * y))) Run time: 0.0s Intermediate theorems generated: 222 sum = |- (!n f. sum n 0 f = & 0) /\ (!n m f. sum n(SUC m)f = (sum n m f) + (f(n num_add m))) Run time: 0.0s Intermediate theorems generated: 202 Sum_DEF = |- !m n f. Sum(m,n)f = sum m n f Run time: 0.0s Intermediate theorems generated: 2 Sum = |- (Sum(n,0)f = & 0) /\ (Sum(n,SUC m)f = (Sum(n,m)f) + (f(n num_add m))) Run time: 0.0s Intermediate theorems generated: 51 SUM_TWO = |- !f n p. (Sum(0,n)f) + (Sum(n,p)f) = Sum(0,n num_add p)f Run time: 0.1s Intermediate theorems generated: 109 SUM_DIFF = |- !f m n. Sum(m,n)f = (Sum(0,m num_add n)f) - (Sum(0,m)f) Run time: 0.0s Intermediate theorems generated: 30 ABS_SUM = |- !f m n. (abs(Sum(m,n)f)) <= (Sum(m,n)(\n'. abs(f n'))) Run time: 0.0s Intermediate theorems generated: 103 Theorem LESS_EQ_ADD autoloading from theory `arithmetic` ... LESS_EQ_ADD = |- !m n. m num_le (m num_add n) Run time: 0.0s Theorem ADD_SYM autoloading from theory `arithmetic` ... ADD_SYM = |- !m n. m num_add n = n num_add m Run time: 0.0s SUM_LE = |- !f g m n. (!r. m num_le r /\ r num_lt (n num_add m) ==> (f r) <= (g r)) ==> (Sum(m,n)f) <= (Sum(m,n)g) Run time: 0.0s Intermediate theorems generated: 272 SUM_EQ = |- !f g m n. (!r. m num_le r /\ r num_lt (n num_add m) ==> (f r = g r)) ==> (Sum(m,n)f = Sum(m,n)g) Run time: 0.0s Intermediate theorems generated: 82 SUM_POS = |- !f. (!n. (& 0) <= (f n)) ==> (!m n. (& 0) <= (Sum(m,n)f)) Run time: 0.0s Intermediate theorems generated: 78 SUM_POS_GEN = |- !f m. (!n. m num_le n ==> (& 0) <= (f n)) ==> (!n. (& 0) <= (Sum(m,n)f)) Run time: 0.0s Intermediate theorems generated: 91 SUM_ABS = |- !f m n. abs(Sum(m,n)(\m. abs(f m))) = Sum(m,n)(\m. abs(f m)) Run time: 0.0s Intermediate theorems generated: 42 SUM_ABS_LE = |- !f m n. (abs(Sum(m,n)f)) <= (Sum(m,n)(\n'. abs(f n'))) Run time: 0.0s Intermediate theorems generated: 105 Theorem ADD_ASSOC autoloading from theory `arithmetic` ... ADD_ASSOC = |- !m n p. m num_add (n num_add p) = (m num_add n) num_add p Run time: 0.0s Theorem LESS_EQUAL_ADD autoloading from theory `arithmetic` ... LESS_EQUAL_ADD = |- !m n. m num_le n ==> (?p. n = m num_add p) Run time: 0.0s Theorem GREATER_EQ autoloading from theory `arithmetic` ... GREATER_EQ = |- !n m. n num_ge m = m num_le n Run time: 0.0s SUM_ZERO = |- !f N. (!n. n num_ge N ==> (f n = & 0)) ==> (!m n. m num_ge N ==> (Sum(m,n)f = & 0)) Run time: 0.0s Intermediate theorems generated: 145 SUM_ADD = |- !f g m n. Sum(m,n)(\n'. (f n') + (g n')) = (Sum(m,n)f) + (Sum(m,n)g) Run time: 0.1s Intermediate theorems generated: 133 SUM_CMUL = |- !f c m n. Sum(m,n)(\n'. c * (f n')) = c * (Sum(m,n)f) Run time: 0.0s Intermediate theorems generated: 100 SUM_NEG = |- !f n d. Sum(n,d)(\n'. --(f n')) = --(Sum(n,d)f) Run time: 0.0s Intermediate theorems generated: 89 SUM_SUB = |- !f g m n. Sum(m,n)(\n. (f n) - (g n)) = (Sum(m,n)f) - (Sum(m,n)g) Run time: 0.0s Intermediate theorems generated: 74 Theorem LESS_MONO_ADD autoloading from theory `arithmetic` ... LESS_MONO_ADD = |- !m n p. m num_lt n ==> (m num_add p) num_lt (n num_add p) Run time: 0.0s Theorem LESS_IMP_LESS_OR_EQ autoloading from theory `arithmetic` ... LESS_IMP_LESS_OR_EQ = |- !m n. m num_lt n ==> m num_le n Run time: 0.0s Theorem LESS_EQ_IMP_LESS_SUC autoloading from theory `arithmetic` ... LESS_EQ_IMP_LESS_SUC = |- !n m. n num_le m ==> n num_lt (SUC m) Run time: 0.0s SUM_SUBST = |- !f g m n. (!p. m num_le p /\ p num_lt (m num_add n) ==> (f p = g p)) ==> (Sum(m,n)f = Sum(m,n)g) Run time: 0.0s Intermediate theorems generated: 221 SUM_NSUB = |- !n f c. (Sum(0,n)f) - ((& n) * c) = Sum(0,n)(\p. (f p) - c) Run time: 0.0s Intermediate theorems generated: 239 Theorem LESS_SUC autoloading from theory `prim_rec` ... LESS_SUC = |- !m n. m num_lt n ==> m num_lt (SUC n) Run time: 0.0s SUM_BOUND = |- !f K m n. (!p. m num_le p /\ p num_lt (m num_add n) ==> (f p) <= K) ==> (Sum(m,n)f) <= ((& n) * K) Run time: 0.0s Intermediate theorems generated: 226 SUM_GROUP = |- !n k f. Sum(0,n)(\m. Sum(m num_mul k,k)f) = Sum(0,n num_mul k)f Run time: 0.0s Intermediate theorems generated: 169 SUM_1 = |- !f n. Sum(n,1)f = f n Run time: 0.0s Intermediate theorems generated: 56 SUM_2 = |- !f n. Sum(n,2)f = (f n) + (f(n num_add 1)) Run time: 0.0s Intermediate theorems generated: 81 SUM_OFFSET = |- !f n k. Sum(0,n)(\m. f(m num_add k)) = (Sum(0,n num_add k)f) - (Sum(0,k)f) Run time: 0.1s Intermediate theorems generated: 141 SUM_REINDEX = |- !f m k n. Sum(m num_add k,n)f = Sum(m,n)(\r. f(r num_add k)) Run time: 0.0s Intermediate theorems generated: 117 SUM_0 = |- !m n. Sum(m,n)(\r. & 0) = & 0 Run time: 0.0s Intermediate theorems generated: 72 Theorem ADD_SUC autoloading from theory `arithmetic` ... ADD_SUC = |- !m n. SUC(m num_add n) = m num_add (SUC n) Run time: 0.0s Theorem INV_SUC_EQ autoloading from theory `prim_rec` ... INV_SUC_EQ = |- !m n. (SUC m = SUC n) = (m = n) Run time: 0.0s Theorem LESS_REFL autoloading from theory `prim_rec` ... LESS_REFL = |- !n. ~n num_lt n Run time: 0.0s Theorem LESS_ADD_SUC autoloading from theory `arithmetic` ... LESS_ADD_SUC = |- !m n. m num_lt (m num_add (SUC n)) Run time: 0.0s Theorem LESS_MONO_EQ autoloading from theory `arithmetic` ... LESS_MONO_EQ = |- !m n. (SUC m) num_lt (SUC n) = m num_lt n Run time: 0.0s Theorem SUC_SUB1 autoloading from theory `arithmetic` ... SUC_SUB1 = |- !m. (SUC m) num_sub 1 = m Run time: 0.0s Theorem LESS_ADD_1 autoloading from theory `arithmetic` ... LESS_ADD_1 = |- !m n. n num_lt m ==> (?p. m = n num_add (p num_add 1)) Run time: 0.0s Definition LESS_OR_EQ autoloading from theory `arithmetic` ... LESS_OR_EQ = |- !m n. m num_le n = m num_lt n \/ (m = n) Run time: 0.0s Intermediate theorems generated: 1 Theorem LESS_EQ autoloading from theory `arithmetic` ... LESS_EQ = |- !m n. m num_lt n = (SUC m) num_le n Run time: 0.0s Theorem LESS_CASES autoloading from theory `arithmetic` ... LESS_CASES = |- !m n. m num_lt n \/ n num_le m Run time: 0.0s SUM_PERMUTE_0 = |- !n p. (!y. y num_lt n ==> (?! x. x num_lt n /\ (p x = y))) ==> (!f. Sum(0,n)(\n'. f(p n')) = Sum(0,n)f) Run time: 0.0s Intermediate theorems generated: 2469 SUM_CANCEL = |- !f n d. Sum(n,d)(\n'. (f(SUC n')) - (f n')) = (f(n num_add d)) - (f n) Run time: 0.0s Intermediate theorems generated: 206 () : void Run time: 0.1s Intermediate theorems generated: 1 File real.ml loaded () : void Run time: 1.7s Intermediate theorems generated: 23746 #\ echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `topology.ml`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool false : bool () : void Theory REAL loaded () : void false : bool Run time: 0.0s LAND_CONV = - : (conv -> conv) Run time: 0.0s TAUT_CONV = - : conv Run time: 0.0s AC = - : ((thm # thm) -> conv) Run time: 0.0s GEN_PAIR_TAC = - : tactic Run time: 0.0s MK_COMB_TAC = - : tactic Run time: 0.0s BINOP_TAC = - : tactic Run time: 0.0s SYM_CANON_CONV = - : (thm -> ((term # term) -> bool) -> conv) Run time: 0.0s IMP_SUBST_TAC = - : thm_tactic Run time: 0.0s ABBREV_TAC = - : (term -> tactic) Run time: 0.0s EXT_CONV = - : conv Run time: 0.0s ABS_TAC = - : tactic Run time: 0.0s EQUAL_TAC = - : tactic Run time: 0.0s X_BETA_CONV = - : (term -> conv) Run time: 0.0s EXACT_CONV = - : (thm list -> conv) Run time: 0.0s HABS_CONV = - : conv Run time: 0.0s autoload_definitions = - : (string -> void) Run time: 0.0s autoload_theorems = - : (string -> void) Run time: 0.0s EXPAND_TAC = - : (string -> tactic) Run time: 0.0s File useful loaded () : void Run time: 0.0s [] : (string # string) list Run time: 0.0s () : void Run time: 0.0s Intermediate theorems generated: 11 () : void Run time: 0.0s () : void Run time: 0.0s re_Union = |- !S. re_Union S = (\x. ?s. S s /\ s x) Run time: 0.0s Intermediate theorems generated: 2 re_union = |- !P Q. P re_union Q = (\x. P x \/ Q x) Run time: 0.0s Intermediate theorems generated: 2 re_intersect = |- !P Q. P re_intersect Q = (\x. P x /\ Q x) Run time: 0.0s Intermediate theorems generated: 2 re_null = |- re_null = (\x. F) Run time: 0.0s Intermediate theorems generated: 2 re_universe = |- re_universe = (\x. T) Run time: 0.0s Intermediate theorems generated: 2 re_subset = |- !P Q. P re_subset Q = (!x. P x ==> Q x) Run time: 0.0s Intermediate theorems generated: 2 re_compl = |- !S. re_compl S = (\x. ~S x) Run time: 0.0s Intermediate theorems generated: 2 SUBSET_REFL = |- !S. S re_subset S Run time: 0.0s Intermediate theorems generated: 16 COMPL_MEM = |- !S x. S x = ~re_compl S x Run time: 0.0s Intermediate theorems generated: 23 SUBSET_ANTISYM = |- !P Q. P re_subset Q /\ Q re_subset P = (P = Q) Run time: 0.0s Intermediate theorems generated: 99 SUBSET_TRANS = |- !P Q R. P re_subset Q /\ Q re_subset R ==> P re_subset R Run time: 0.0s Intermediate theorems generated: 49 istopology = |- !L. istopology L = L re_null /\ L re_universe /\ (!a b. L a /\ L b ==> L(a re_intersect b)) /\ (!P. P re_subset L ==> L(re_Union P)) Run time: 0.0s Intermediate theorems generated: 2 topology_tydef = |- ?rep. TYPE_DEFINITION istopology rep Run time: 0.0s Intermediate theorems generated: 86 topology_tybij = |- (!a. topology(open a) = a) /\ (!r. istopology r = (open(topology r) = r)) Run time: 0.0s Intermediate theorems generated: 4 TOPOLOGY = |- !L. open L re_null /\ open L re_universe /\ (!x y. open L x /\ open L y ==> open L(x re_intersect y)) /\ (!P. P re_subset (open L) ==> open L(re_Union P)) Run time: 0.0s Intermediate theorems generated: 34 TOPOLOGY_UNION = |- !L P. P re_subset (open L) ==> open L(re_Union P) Run time: 0.0s Intermediate theorems generated: 45 neigh = |- !top N x. neigh top(N,x) = (?P. open top P /\ P re_subset N /\ P x) Run time: 0.0s Intermediate theorems generated: 2 OPEN_OWN_NEIGH = |- !S top x. open top S /\ S x ==> neigh top(S,x) Run time: 0.0s Intermediate theorems generated: 40 OPEN_UNOPEN = |- !S top. open top S = (re_Union(\P. open top P /\ P re_subset S) = S) Run time: 0.1s Intermediate theorems generated: 212 OPEN_SUBOPEN = |- !S top. open top S = (!x. S x ==> (?P. P x /\ open top P /\ P re_subset S)) Run time: 0.0s Intermediate theorems generated: 245 OPEN_NEIGH = |- !S top. open top S = (!x. S x ==> (?N. neigh top(N,x) /\ N re_subset S)) Run time: 0.0s Intermediate theorems generated: 170 closed = |- !L S. closed L S = open L(re_compl S) Run time: 0.0s Intermediate theorems generated: 2 limpt = |- !top x S. limpt top x S = (!N. neigh top(N,x) ==> (?y. ~(x = y) /\ S y /\ N y)) Run time: 0.0s Intermediate theorems generated: 2 CLOSED_LIMPT = |- !top S. closed top S = (!x. limpt top x S ==> S x) Run time: 0.0s Intermediate theorems generated: 433 ismet = |- !m. ismet m = (!x y. (m(x,y) = & 0) = (x = y)) /\ (!x y z. (m(y,z)) <= ((m(x,y)) + (m(x,z)))) Run time: 0.0s Intermediate theorems generated: 2 Theorem REAL_LE_ADD2 autoloading from theory `REAL` ... REAL_LE_ADD2 = |- !w x y z. w <= x /\ y <= z ==> (w + y) <= (x + z) Run time: 0.0s Theorem REAL_LE_01 autoloading from theory `REAL` ... REAL_LE_01 = |- (& 0) <= (& 1) Run time: 0.0s Theorem REAL_LE_REFL autoloading from theory `REAL` ... REAL_LE_REFL = |- !x. x <= x Run time: 0.0s Theorem REAL_ADD_RID autoloading from theory `REAL` ... REAL_ADD_RID = |- !x. x + (& 0) = x Run time: 0.0s Theorem REAL_ADD_LID autoloading from theory `REAL` ... REAL_ADD_LID = |- !x. (& 0) + x = x Run time: 0.0s Theorem REAL_10 autoloading from theory `REAL` ... REAL_10 = |- ~(& 1 = & 0) Run time: 0.0s metric_tydef = |- ?rep. TYPE_DEFINITION ismet rep Run time: 0.0s Intermediate theorems generated: 560 metric_tybij = |- (!a. metric(dist a) = a) /\ (!r. ismet r = (dist(metric r) = r)) Run time: 0.0s Intermediate theorems generated: 4 METRIC_ISMET = |- !m. ismet(dist m) Run time: 0.0s Intermediate theorems generated: 20 METRIC_ZERO = |- !m x y. (dist m(x,y) = & 0) = (x = y) Run time: 0.0s Intermediate theorems generated: 41 METRIC_SAME = |- !m x. dist m(x,x) = & 0 Run time: 0.0s Intermediate theorems generated: 16 Theorem REAL_LT_ADD2 autoloading from theory `REAL` ... REAL_LT_ADD2 = |- !w x y z. w < x /\ y < z ==> (w + y) < (x + z) Run time: 0.0s Theorem REAL_NOT_LE autoloading from theory `REAL` ... REAL_NOT_LE = |- !x y. ~x <= y = y < x Run time: 0.0s METRIC_POS = |- !m x y. (& 0) <= (dist m(x,y)) Run time: 0.0s Intermediate theorems generated: 91 Theorem REAL_LE_ANTISYM autoloading from theory `REAL` ... REAL_LE_ANTISYM = |- !x y. x <= y /\ y <= x = (x = y) Run time: 0.0s METRIC_SYM = |- !m x y. dist m(x,y) = dist m(y,x) Run time: 0.0s Intermediate theorems generated: 99 METRIC_TRIANGLE = |- !m x y z. (dist m(x,z)) <= ((dist m(x,y)) + (dist m(y,z))) Run time: 0.0s Intermediate theorems generated: 52 Theorem REAL_LE_LT autoloading from theory `REAL` ... REAL_LE_LT = |- !x y. x <= y = x < y \/ (x = y) Run time: 0.0s METRIC_NZ = |- !m x y. ~(x = y) ==> (& 0) < (dist m(x,y)) Run time: 0.0s Intermediate theorems generated: 78 mtop = |- !m. mtop m = topology (\S. !x. S x ==> (?e. (& 0) < e /\ (!y. (dist m(x,y)) < e ==> S y))) Run time: 0.0s Intermediate theorems generated: 2 Theorem REAL_LT_TRANS autoloading from theory `REAL` ... REAL_LT_TRANS = |- !x y z. x < y /\ y < z ==> x < z Run time: 0.0s Theorem REAL_LT_TOTAL autoloading from theory `REAL` ... REAL_LT_TOTAL = |- !x y. (x = y) \/ x < y \/ y < x Run time: 0.0s Theorem REAL_LT_01 autoloading from theory `REAL` ... REAL_LT_01 = |- (& 0) < (& 1) Run time: 0.0s mtop_istopology = |- !m. istopology (\S. !x. S x ==> (?e. (& 0) < e /\ (!y. (dist m(x,y)) < e ==> S y))) Run time: 0.0s Intermediate theorems generated: 544 MTOP_OPEN = |- !m. open(mtop m)S = (!x. S x ==> (?e. (& 0) < e /\ (!y. (dist m(x,y)) < e ==> S y))) Run time: 0.1s Intermediate theorems generated: 38 ball = |- !m x e. B m(x,e) = (\y. (dist m(x,y)) < e) Run time: 0.0s Intermediate theorems generated: 2 Theorem REAL_LET_TRANS autoloading from theory `REAL` ... REAL_LET_TRANS = |- !x y z. x <= y /\ y < z ==> x < z Run time: 0.0s Theorem REAL_ADD_SYM autoloading from theory `REAL` ... REAL_ADD_SYM = |- !x y. x + y = y + x Run time: 0.0s Theorem REAL_LT_SUB_LADD autoloading from theory `REAL` ... REAL_LT_SUB_LADD = |- !x y z. x < (y - z) = (x + z) < y Run time: 0.0s Theorem REAL_SUB_LT autoloading from theory `REAL` ... REAL_SUB_LT = |- !x y. (& 0) < (x - y) = y < x Run time: 0.0s BALL_OPEN = |- !m x e. (& 0) < e ==> open(mtop m)(B m(x,e)) Run time: 0.0s Intermediate theorems generated: 161 BALL_NEIGH = |- !m x e. (& 0) < e ==> neigh(mtop m)(B m(x,e),x) Run time: 0.0s Intermediate theorems generated: 76 MTOP_LIMPT = |- !m x S. limpt(mtop m)x S = (!e. (& 0) < e ==> (?y. ~(x = y) /\ S y /\ (dist m(x,y)) < e)) Run time: 0.0s Intermediate theorems generated: 298 Theorem REAL_ADD_LINV autoloading from theory `REAL` ... REAL_ADD_LINV = |- !x. (-- x) + x = & 0 Run time: 0.0s Theorem REAL_ADD_ASSOC autoloading from theory `REAL` ... REAL_ADD_ASSOC = |- !x y z. x + (y + z) = (x + y) + z Run time: 0.0s Definition real_sub autoloading from theory `REAL` ... real_sub = |- !x y. x - y = x + (-- y) Run time: 0.0s Intermediate theorems generated: 1 Theorem ABS_TRIANGLE autoloading from theory `REAL` ... ABS_TRIANGLE = |- !x y. (abs(x + y)) <= ((abs x) + (abs y)) Run time: 0.0s Theorem ABS_NEG autoloading from theory `REAL` ... ABS_NEG = |- !x. abs(-- x) = abs x Run time: 0.0s Theorem REAL_NEG_SUB autoloading from theory `REAL` ... REAL_NEG_SUB = |- !x y. --(x - y) = y - x Run time: 0.0s Theorem REAL_SUB_0 autoloading from theory `REAL` ... REAL_SUB_0 = |- !x y. (x - y = & 0) = (x = y) Run time: 0.0s Theorem ABS_ZERO autoloading from theory `REAL` ... ABS_ZERO = |- !x. (abs x = & 0) = (x = & 0) Run time: 0.0s ISMET_R1 = |- ismet(\(x,y). abs(y - x)) Run time: 0.0s Intermediate theorems generated: 204 mr1 = |- mr1 = metric(\(x,y). abs(y - x)) Run time: 0.0s Intermediate theorems generated: 2 MR1_DEF = |- !x y. dist mr1(x,y) = abs(y - x) Run time: 0.0s Intermediate theorems generated: 32 Theorem REAL_ADD_SUB autoloading from theory `REAL` ... REAL_ADD_SUB = |- !x y. (x + y) - x = y Run time: 0.0s MR1_ADD = |- !x d. dist mr1(x,x + d) = abs d Run time: 0.0s Intermediate theorems generated: 25 Theorem REAL_SUB_SUB autoloading from theory `REAL` ... REAL_SUB_SUB = |- !x y. (x - y) - x = -- y Run time: 0.0s MR1_SUB = |- !x d. dist mr1(x,x - d) = abs d Run time: 0.0s Intermediate theorems generated: 30 Definition abs autoloading from theory `REAL` ... abs = |- !x. abs x = ((& 0) <= x => x | -- x) Run time: 0.0s Intermediate theorems generated: 1 MR1_ADD_LE = |- !x d. (& 0) <= d ==> (dist mr1(x,x + d) = d) Run time: 0.0s Intermediate theorems generated: 34 MR1_SUB_LE = |- !x d. (& 0) <= d ==> (dist mr1(x,x - d) = d) Run time: 0.0s Intermediate theorems generated: 34 Theorem REAL_LT_IMP_LE autoloading from theory `REAL` ... REAL_LT_IMP_LE = |- !x y. x < y ==> x <= y Run time: 0.0s MR1_ADD_LT = |- !x d. (& 0) < d ==> (dist mr1(x,x + d) = d) Run time: 0.0s Intermediate theorems generated: 11 MR1_SUB_LT = |- !x d. (& 0) < d ==> (dist mr1(x,x - d) = d) Run time: 0.0s Intermediate theorems generated: 11 Theorem ABS_BETWEEN1 autoloading from theory `REAL` ... ABS_BETWEEN1 = |- !x y z. x < z /\ (abs(y - x)) < (z - x) ==> y < z Run time: 0.0s MR1_BETWEEN1 = |- !x y z. x < z /\ (dist mr1(x,y)) < (z - x) ==> y < z Run time: 0.0s Intermediate theorems generated: 29 Theorem REAL_LT_IMP_NE autoloading from theory `REAL` ... REAL_LT_IMP_NE = |- !x y. x < y ==> ~(x = y) Run time: 0.0s Theorem REAL_ADD_RID_UNIQ autoloading from theory `REAL` ... REAL_ADD_RID_UNIQ = |- !x y. (x + y = x) = (y = & 0) Run time: 0.0s Theorem REAL_LT_HALF2 autoloading from theory `REAL` ... REAL_LT_HALF2 = |- !d. (d / (& 2)) < d = (& 0) < d Run time: 0.0s Theorem REAL_LT_HALF1 autoloading from theory `REAL` ... REAL_LT_HALF1 = |- !d. (& 0) < (d / (& 2)) = (& 0) < d Run time: 0.0s MR1_LIMPT = |- !x. limpt(mtop mr1)x re_universe Run time: 0.0s Intermediate theorems generated: 143 () : void Run time: 0.0s Intermediate theorems generated: 1 File topology.ml loaded () : void Run time: 0.2s Intermediate theorems generated: 4132 #\ echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `nets.ml`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool false : bool () : void Theory TOPOLOGY loaded () : void false : bool Run time: 0.0s LAND_CONV = - : (conv -> conv) Run time: 0.0s TAUT_CONV = - : conv Run time: 0.0s AC = - : ((thm # thm) -> conv) Run time: 0.0s GEN_PAIR_TAC = - : tactic Run time: 0.0s MK_COMB_TAC = - : tactic Run time: 0.0s BINOP_TAC = - : tactic Run time: 0.0s SYM_CANON_CONV = - : (thm -> ((term # term) -> bool) -> conv) Run time: 0.0s IMP_SUBST_TAC = - : thm_tactic Run time: 0.0s ABBREV_TAC = - : (term -> tactic) Run time: 0.0s EXT_CONV = - : conv Run time: 0.0s ABS_TAC = - : tactic Run time: 0.0s EQUAL_TAC = - : tactic Run time: 0.0s X_BETA_CONV = - : (term -> conv) Run time: 0.0s EXACT_CONV = - : (thm list -> conv) Run time: 0.0s HABS_CONV = - : conv Run time: 0.0s autoload_definitions = - : (string -> void) Run time: 0.0s autoload_theorems = - : (string -> void) Run time: 0.0s EXPAND_TAC = - : (string -> tactic) Run time: 0.0s File useful loaded () : void Run time: 0.0s real_interface_map = [(`--`, `real_neg`); (`num_add`, `+`); (`+`, `real_add`); (`num_mul`, `*`); (`*`, `real_mul`); (`num_sub`, `-`); (`-`, `real_sub`); (`num_lt`, `<`); (`<`, `real_lt`); (`num_le`, `<=`); (`<=`, `real_le`); (`num_gt`, `>`); (`>`, `real_gt`); (`num_ge`, `>=`); (`>=`, `real_ge`); (`inv`, `real_inv`); (`&`, `real_of_num`)] : (string # string) list Run time: 0.0s [] : (string # string) list Run time: 0.0s () : void Run time: 0.0s Intermediate theorems generated: 30 () : void Run time: 0.0s () : void Run time: 0.0s dorder = |- !g. dorder g = (!x y. g x x /\ g y y ==> (?z. g z z /\ (!w. g w z ==> g w x /\ g w y))) Run time: 0.0s Intermediate theorems generated: 2 tends = |- !s l top g. (s tends l)(top,g) = (!N. neigh top(N,l) ==> (?n. g n n /\ (!m. g m n ==> N(s m)))) Run time: 0.0s Intermediate theorems generated: 2 bounded = |- !m g f. bounded(m,g)f = (?k x N. g N N /\ (!n. g n N ==> (dist m(f n,x)) < k)) Run time: 0.0s Intermediate theorems generated: 2 tendsto = |- !m x y z. tendsto(m,x)y z = (& 0) < (dist m(x,y)) /\ (dist m(x,y)) <= (dist m(x,z)) Run time: 0.0s Intermediate theorems generated: 2 [(`--`, `real_neg`); (`num_add`, `+`); (`+`, `real_add`); (`num_mul`, `*`); (`*`, `real_mul`); (`num_sub`, `-`); (`-`, `real_sub`); (`num_lt`, `<`); (`<`, `real_lt`); (`num_le`, `<=`); (`<=`, `real_le`); (`num_gt`, `>`); (`>`, `real_gt`); (`num_ge`, `>=`); (`>=`, `real_ge`); (`inv`, `real_inv`); (`&`, `real_of_num`)] : (string # string) list Run time: 0.0s DORDER_LEMMA = |- !g. dorder g ==> (!P Q. (?n. g n n /\ (!m. g m n ==> P m)) /\ (?n. g n n /\ (!m. g m n ==> Q m)) ==> (?n. g n n /\ (!m. g m n ==> P m /\ Q m))) Run time: 0.0s Intermediate theorems generated: 312 DORDER_THEN = - : ((thm -> *) -> thm -> *) Run time: 0.0s Theorem LESS_EQ_TRANS autoloading from theory `arithmetic` ... LESS_EQ_TRANS = |- !m n p. m num_le n /\ n num_le p ==> m num_le p Run time: 0.0s Theorem LESS_EQ_CASES autoloading from theory `arithmetic` ... LESS_EQ_CASES = |- !m n. m num_le n \/ n num_le m Run time: 0.0s Theorem LESS_EQ_REFL autoloading from theory `arithmetic` ... LESS_EQ_REFL = |- !m. m num_le m Run time: 0.0s Theorem GREATER_EQ autoloading from theory `arithmetic` ... GREATER_EQ = |- !n m. n num_ge m = m num_le n Run time: 0.0s DORDER_NGE = |- dorder $num_ge Run time: 0.0s Intermediate theorems generated: 136 Theorem REAL_LE_TRANS autoloading from theory `REAL` ... REAL_LE_TRANS = |- !x y z. x <= y /\ y <= z ==> x <= z Run time: 0.0s Theorem REAL_LE_TOTAL autoloading from theory `REAL` ... REAL_LE_TOTAL = |- !x y. x <= y \/ y <= x Run time: 0.1s Theorem REAL_LE_REFL autoloading from theory `REAL` ... REAL_LE_REFL = |- !x. x <= x Run time: 0.0s DORDER_TENDSTO = |- !m x. dorder(tendsto(m,x)) Run time: 0.0s Intermediate theorems generated: 257 Definition re_subset autoloading from theory `TOPOLOGY` ... re_subset = |- !P Q. P re_subset Q = (!x. P x ==> Q x) Run time: 0.0s Intermediate theorems generated: 1 Theorem MTOP_OPEN autoloading from theory `TOPOLOGY` ... MTOP_OPEN = |- !m. open(mtop m)S = (!x. S x ==> (?e. (& 0) < e /\ (!y. (dist m(x,y)) < e ==> S y))) Run time: 0.0s Definition neigh autoloading from theory `TOPOLOGY` ... neigh = |- !top N x. neigh top(N,x) = (?P. open top P /\ P re_subset N /\ P x) Run time: 0.0s Intermediate theorems generated: 1 Theorem METRIC_SYM autoloading from theory `TOPOLOGY` ... METRIC_SYM = |- !m x y. dist m(x,y) = dist m(y,x) Run time: 0.0s Definition ball autoloading from theory `TOPOLOGY` ... ball = |- !m x e. B m(x,e) = (\y. (dist m(x,y)) < e) Run time: 0.0s Intermediate theorems generated: 1 Theorem BALL_NEIGH autoloading from theory `TOPOLOGY` ... BALL_NEIGH = |- !m x e. (& 0) < e ==> neigh(mtop m)(B m(x,e),x) Run time: 0.0s MTOP_TENDS = |- !d g x x0. (x --> x0)(mtop d,g) = (!e. (& 0) < e ==> (?n. g n n /\ (!m. g m n ==> (dist d(x m,x0)) < e))) Run time: 0.0s Intermediate theorems generated: 373 Theorem METRIC_TRIANGLE autoloading from theory `TOPOLOGY` ... METRIC_TRIANGLE = |- !m x y z. (dist m(x,z)) <= ((dist m(x,y)) + (dist m(y,z))) Run time: 0.0s Theorem REAL_NOT_LT autoloading from theory `REAL` ... REAL_NOT_LT = |- !x y. ~x < y = y <= x Run time: 0.0s Theorem REAL_HALF_DOUBLE autoloading from theory `REAL` ... REAL_HALF_DOUBLE = |- !x. (x / (& 2)) + (x / (& 2)) = x Run time: 0.0s Theorem REAL_LT_ADD2 autoloading from theory `REAL` ... REAL_LT_ADD2 = |- !w x y z. w < x /\ y < z ==> (w + y) < (x + z) Run time: 0.0s Theorem METRIC_NZ autoloading from theory `TOPOLOGY` ... METRIC_NZ = |- !m x y. ~(x = y) ==> (& 0) < (dist m(x,y)) Run time: 0.0s Theorem REAL_LT_HALF1 autoloading from theory `REAL` ... REAL_LT_HALF1 = |- !d. (& 0) < (d / (& 2)) = (& 0) < d Run time: 0.0s MTOP_TENDS_UNIQ = |- !g d. dorder g ==> (x --> x0)(mtop d,g) /\ (x --> x1)(mtop d,g) ==> (x0 = x1) Run time: 0.0s Intermediate theorems generated: 313 SEQ_TENDS = |- !d x x0. (x --> x0)(mtop d,$num_ge) = (!e. (& 0) < e ==> (?N. !n. n num_ge N ==> (dist d(x n,x0)) < e)) Run time: 0.0s Intermediate theorems generated: 64 Theorem REAL_LT_IMP_LE autoloading from theory `REAL` ... REAL_LT_IMP_LE = |- !x y. x < y ==> x <= y Run time: 0.0s Definition re_universe autoloading from theory `TOPOLOGY` ... re_universe = |- re_universe = (\x. T) Run time: 0.0s Intermediate theorems generated: 1 Theorem MTOP_LIMPT autoloading from theory `TOPOLOGY` ... MTOP_LIMPT = |- !m x S. limpt(mtop m)x S = (!e. (& 0) < e ==> (?y. ~(x = y) /\ S y /\ (dist m(x,y)) < e)) Run time: 0.0s LIM_TENDS = |- !m1 m2 f x0 y0. limpt(mtop m1)x0 re_universe ==> ((f --> y0)(mtop m2,tendsto(m1,x0)) = (!e. (& 0) < e ==> (?d. (& 0) < d /\ (!x. (& 0) < (dist m1(x,x0)) /\ (dist m1(x,x0)) <= d ==> (dist m2(f x,y0)) < e)))) Run time: 0.0s Intermediate theorems generated: 459 Theorem REAL_LT_HALF2 autoloading from theory `REAL` ... REAL_LT_HALF2 = |- !d. (d / (& 2)) < d = (& 0) < d Run time: 0.0s Theorem REAL_LET_TRANS autoloading from theory `REAL` ... REAL_LET_TRANS = |- !x y z. x <= y /\ y < z ==> x < z Run time: 0.0s LIM_TENDS2 = |- !m1 m2 f x0 y0. limpt(mtop m1)x0 re_universe ==> ((f --> y0)(mtop m2,tendsto(m1,x0)) = (!e. (& 0) < e ==> (?d. (& 0) < d /\ (!x. (& 0) < (dist m1(x,x0)) /\ (dist m1(x,x0)) < d ==> (dist m2(f x,y0)) < e)))) Run time: 0.0s Intermediate theorems generated: 246 Theorem ABS_NEG autoloading from theory `REAL` ... ABS_NEG = |- !x. abs(-- x) = abs x Run time: 0.0s Theorem REAL_SUB_LZERO autoloading from theory `REAL` ... REAL_SUB_LZERO = |- !x. (& 0) - x = -- x Run time: 0.0s Theorem ABS_SUB autoloading from theory `REAL` ... ABS_SUB = |- !x y. abs(x - y) = abs(y - x) Run time: 0.0s Theorem REAL_LT_RADD autoloading from theory `REAL` ... REAL_LT_RADD = |- !x y z. (x + z) < (y + z) = x < y Run time: 0.0s Theorem REAL_ADD_SYM autoloading from theory `REAL` ... REAL_ADD_SYM = |- !x y. x + y = y + x Run time: 0.0s Theorem ABS_TRIANGLE autoloading from theory `REAL` ... ABS_TRIANGLE = |- !x y. (abs(x + y)) <= ((abs x) + (abs y)) Run time: 0.0s Theorem REAL_SUB_ADD autoloading from theory `REAL` ... REAL_SUB_ADD = |- !x y. (x - y) + y = x Run time: 0.0s Theorem MR1_DEF autoloading from theory `TOPOLOGY` ... MR1_DEF = |- !x y. dist mr1(x,y) = abs(y - x) Run time: 0.0s MR1_BOUNDED = |- !g f. bounded(mr1,g)f = (?k N. g N N /\ (!n. g n N ==> (abs(f n)) < k)) Run time: 0.0s Intermediate theorems generated: 331 Theorem REAL_NEG_SUB autoloading from theory `REAL` ... REAL_NEG_SUB = |- !x y. --(x - y) = y - x Run time: 0.0s NET_NULL = |- !g x x0. (x --> x0)(mtop mr1,g) = ((\n. (x n) - x0) --> (& 0))(mtop mr1,g) Run time: 0.0s Intermediate theorems generated: 151 Theorem LESS_0 autoloading from theory `prim_rec` ... LESS_0 = |- !n. 0 num_lt (SUC n) Run time: 0.0s Theorem REAL_LT autoloading from theory `REAL` ... REAL_LT = |- !m n. (& m) < (& n) = m num_lt n Run time: 0.0s NET_CONV_BOUNDED = |- !g x x0. (x --> x0)(mtop mr1,g) ==> bounded(mr1,g)x Run time: 0.0s Intermediate theorems generated: 119 Theorem REAL_LT_REFL autoloading from theory `REAL` ... REAL_LT_REFL = |- !x. ~x < x Run time: 0.0s Theorem REAL_SUB_RZERO autoloading from theory `REAL` ... REAL_SUB_RZERO = |- !x. x - (& 0) = x Run time: 0.0s Theorem ABS_NZ autoloading from theory `REAL` ... ABS_NZ = |- !x. ~(x = & 0) = (& 0) < (abs x) Run time: 0.0s NET_CONV_NZ = |- !g x x0. (x --> x0)(mtop mr1,g) /\ ~(x0 = & 0) ==> (?N. g N N /\ (!n. g n N ==> ~(x n = & 0))) Run time: 0.0s Intermediate theorems generated: 165 Theorem REAL_LT_INV autoloading from theory `REAL` ... REAL_LT_INV = |- !x y. (& 0) < x /\ x < y ==> (inv y) < (inv x) Run time: 0.0s Theorem ABS_INV autoloading from theory `REAL` ... ABS_INV = |- !x. ~(x = & 0) ==> (abs(inv x) = inv(abs x)) Run time: 0.0s Theorem REAL_INJ autoloading from theory `REAL` ... REAL_INJ = |- !m n. (& m = & n) = (m = n) Run time: 0.0s Theorem ABS_ABS autoloading from theory `REAL` ... ABS_ABS = |- !x. abs(abs x) = abs x Run time: 0.0s Theorem REAL_MUL_LID autoloading from theory `REAL` ... REAL_MUL_LID = |- !x. (& 1) * x = x Run time: 0.0s Theorem REAL_MUL_LINV autoloading from theory `REAL` ... REAL_MUL_LINV = |- !x. ~(x = & 0) ==> ((inv x) * x = & 1) Run time: 0.0s Theorem REAL_MUL_SYM autoloading from theory `REAL` ... REAL_MUL_SYM = |- !x y. x * y = y * x Run time: 0.0s Theorem REAL_MUL_ASSOC autoloading from theory `REAL` ... REAL_MUL_ASSOC = |- !x y z. x * (y * z) = (x * y) * z Run time: 0.0s Definition real_div autoloading from theory `REAL` ... real_div = |- !x y. x / y = x * (inv y) Run time: 0.0s Intermediate theorems generated: 1 Theorem REAL_RINV_UNIQ autoloading from theory `REAL` ... REAL_RINV_UNIQ = |- !x y. (x * y = & 1) ==> (y = inv x) Run time: 0.0s Theorem REAL_LT_TRANS autoloading from theory `REAL` ... REAL_LT_TRANS = |- !x y z. x < y /\ y < z ==> x < z Run time: 0.0s Theorem REAL_LT_LADD autoloading from theory `REAL` ... REAL_LT_LADD = |- !x y z. (x + y) < (x + z) = y < z Run time: 0.0s NET_CONV_IBOUNDED = |- !g x x0. (x --> x0)(mtop mr1,g) /\ ~(x0 = & 0) ==> bounded(mr1,g)(\n. inv(x n)) Run time: 0.0s Intermediate theorems generated: 493 NET_NULL_ADD = |- !g. dorder g ==> (!x y. (x --> (& 0))(mtop mr1,g) /\ (y --> (& 0))(mtop mr1,g) ==> ((\n. (x n) + (y n)) --> (& 0))(mtop mr1,g)) Run time: 0.0s Intermediate theorems generated: 324 Theorem REAL_LT_MUL2 autoloading from theory `REAL` ... REAL_LT_MUL2 = |- !x1 x2 y1 y2. (& 0) <= x1 /\ (& 0) <= y1 /\ x1 < x2 /\ y1 < y2 ==> (x1 * y1) < (x2 * y2) Run time: 0.0s Theorem ABS_MUL autoloading from theory `REAL` ... ABS_MUL = |- !x y. abs(x * y) = (abs x) * (abs y) Run time: 0.0s Theorem REAL_DIV_LMUL autoloading from theory `REAL` ... REAL_DIV_LMUL = |- !x y. ~(y = & 0) ==> (y * (x / y) = x) Run time: 0.0s Theorem REAL_LT_RDIV_0 autoloading from theory `REAL` ... REAL_LT_RDIV_0 = |- !y z. (& 0) < z ==> ((& 0) < (y / z) = (& 0) < y) Run time: 0.0s Theorem ABS_POS autoloading from theory `REAL` ... ABS_POS = |- !x. (& 0) <= (abs x) Run time: 0.0s NET_NULL_MUL = |- !g. dorder g ==> (!x y. bounded(mr1,g)x /\ (y --> (& 0))(mtop mr1,g) ==> ((\n. (x n) * (y n)) --> (& 0))(mtop mr1,g)) Run time: 0.0s Intermediate theorems generated: 484 Theorem REAL_LT_LMUL autoloading from theory `REAL` ... REAL_LT_LMUL = |- !x y z. (& 0) < x ==> ((x * y) < (x * z) = y < z) Run time: 0.0s Theorem ABS_ZERO autoloading from theory `REAL` ... ABS_ZERO = |- !x. (abs x = & 0) = (x = & 0) Run time: 0.0s Theorem REAL_INV_POS autoloading from theory `REAL` ... REAL_INV_POS = |- !x. (& 0) < x ==> (& 0) < (inv x) Run time: 0.0s Theorem REAL_LT_MUL autoloading from theory `REAL` ... REAL_LT_MUL = |- !x y. (& 0) < x /\ (& 0) < y ==> (& 0) < (x * y) Run time: 0.0s Definition abs autoloading from theory `REAL` ... abs = |- !x. abs x = ((& 0) <= x => x | -- x) Run time: 0.0s Intermediate theorems generated: 1 Theorem REAL_MUL_LZERO autoloading from theory `REAL` ... REAL_MUL_LZERO = |- !x. (& 0) * x = & 0 Run time: 0.0s Theorem LESS_SUC_REFL autoloading from theory `prim_rec` ... LESS_SUC_REFL = |- !n. n num_lt (SUC n) Run time: 0.0s NET_NULL_CMUL = |- !g k x. (x --> (& 0))(mtop mr1,g) ==> ((\n. k * (x n)) --> (& 0))(mtop mr1,g) Run time: 0.0s Intermediate theorems generated: 506 Theorem REAL_ADD_ASSOC autoloading from theory `REAL` ... REAL_ADD_ASSOC = |- !x y z. x + (y + z) = (x + y) + z Run time: 0.0s Theorem REAL_NEG_ADD autoloading from theory `REAL` ... REAL_NEG_ADD = |- !x y. --(x + y) = (-- x) + (-- y) Run time: 0.0s Definition real_sub autoloading from theory `REAL` ... real_sub = |- !x y. x - y = x + (-- y) Run time: 0.0s Intermediate theorems generated: 1 NET_ADD = |- !g. dorder g ==> (!x x0 y y0. (x --> x0)(mtop mr1,g) /\ (y --> y0)(mtop mr1,g) ==> ((\n. (x n) + (y n)) --> (x0 + y0))(mtop mr1,g)) Run time: 0.0s Intermediate theorems generated: 167 Theorem REAL_SUB_NEG2 autoloading from theory `REAL` ... REAL_SUB_NEG2 = |- !x y. (-- x) - (-- y) = y - x Run time: 0.0s NET_NEG = |- !g. dorder g ==> (!x x0. (x --> x0)(mtop mr1,g) = ((\n. --(x n)) --> (-- x0))(mtop mr1,g)) Run time: 0.0s Intermediate theorems generated: 121 NET_SUB = |- !g. dorder g ==> (!x x0 y y0. (x --> x0)(mtop mr1,g) /\ (y --> y0)(mtop mr1,g) ==> ((\n. (x n) - (y n)) --> (x0 - y0))(mtop mr1,g)) Run time: 0.0s Intermediate theorems generated: 95 Theorem REAL_ADD_LID autoloading from theory `REAL` ... REAL_ADD_LID = |- !x. (& 0) + x = x Run time: 0.0s Theorem REAL_ADD_LINV autoloading from theory `REAL` ... REAL_ADD_LINV = |- !x. (-- x) + x = & 0 Run time: 0.0s Theorem REAL_NEG_RMUL autoloading from theory `REAL` ... REAL_NEG_RMUL = |- !x y. --(x * y) = x * (-- y) Run time: 0.0s Theorem REAL_NEG_LMUL autoloading from theory `REAL` ... REAL_NEG_LMUL = |- !x y. --(x * y) = (-- x) * y Run time: 0.0s Theorem REAL_RDISTRIB autoloading from theory `REAL` ... REAL_RDISTRIB = |- !x y z. (x + y) * z = (x * z) + (y * z) Run time: 0.0s Theorem REAL_LDISTRIB autoloading from theory `REAL` ... REAL_LDISTRIB = |- !x y z. x * (y + z) = (x * y) + (x * z) Run time: 0.0s NET_MUL = |- !g. dorder g ==> (!x y x0 y0. (x --> x0)(mtop mr1,g) /\ (y --> y0)(mtop mr1,g) ==> ((\n. (x n) * (y n)) --> (x0 * y0))(mtop mr1,g)) Run time: 0.0s Intermediate theorems generated: 338 Theorem REAL_INV_NZ autoloading from theory `REAL` ... REAL_INV_NZ = |- !x. ~(x = & 0) ==> ~(inv x = & 0) Run time: 0.0s Theorem ABS_LT_MUL2 autoloading from theory `REAL` ... ABS_LT_MUL2 = |- !w x y z. (abs w) < y /\ (abs x) < z ==> (abs(w * x)) < (y * z) Run time: 0.0s Definition LESS_OR_EQ autoloading from theory `arithmetic` ... LESS_OR_EQ = |- !m n. m num_le n = m num_lt n \/ (m = n) Run time: 0.0s Intermediate theorems generated: 1 Theorem REAL_LE autoloading from theory `REAL` ... REAL_LE = |- !m n. (& m) <= (& n) = m num_le n Run time: 0.0s Theorem REAL_LT_IMP_NE autoloading from theory `REAL` ... REAL_LT_IMP_NE = |- !x y. x < y ==> ~(x = y) Run time: 0.0s Theorem REAL_MUL_RINV autoloading from theory `REAL` ... REAL_MUL_RINV = |- !x. ~(x = & 0) ==> (x * (inv x) = & 1) Run time: 0.1s Theorem REAL_MUL_RID autoloading from theory `REAL` ... REAL_MUL_RID = |- !x. x * (& 1) = x Run time: 0.0s Theorem REAL_SUB_LDISTRIB autoloading from theory `REAL` ... REAL_SUB_LDISTRIB = |- !x y z. x * (y - z) = (x * y) - (x * z) Run time: 0.0s NET_INV = |- !g. dorder g ==> (!x x0. (x --> x0)(mtop mr1,g) /\ ~(x0 = & 0) ==> ((\n. inv(x n)) --> (inv x0))(mtop mr1,g)) Run time: 0.0s Intermediate theorems generated: 1253 NET_DIV = |- !g. dorder g ==> (!x x0 y y0. (x --> x0)(mtop mr1,g) /\ (y --> y0)(mtop mr1,g) /\ ~(y0 = & 0) ==> ((\n. (x n) / (y n)) --> (x0 / y0))(mtop mr1,g)) Run time: 0.0s Intermediate theorems generated: 106 Theorem ABS_SUB_ABS autoloading from theory `REAL` ... ABS_SUB_ABS = |- !x y. (abs((abs x) - (abs y))) <= (abs(x - y)) Run time: 0.0s NET_ABS = |- !x x0. (x --> x0)(mtop mr1,g) ==> ((\n. abs(x n)) --> (abs x0))(mtop mr1,g) Run time: 0.0s Intermediate theorems generated: 128 Theorem ABS_BETWEEN2 autoloading from theory `REAL` ... ABS_BETWEEN2 = |- !x0 x y0 y. x0 < y0 /\ (abs(x - x0)) < ((y0 - x0) / (& 2)) /\ (abs(y - y0)) < ((y0 - x0) / (& 2)) ==> x < y Run time: 0.0s Theorem REAL_SUB_LT autoloading from theory `REAL` ... REAL_SUB_LT = |- !x y. (& 0) < (x - y) = y < x Run time: 0.0s Theorem REAL_NOT_LE autoloading from theory `REAL` ... REAL_NOT_LE = |- !x y. ~x <= y = y < x Run time: 0.0s NET_LE = |- !g. dorder g ==> (!x x0 y y0. (x --> x0)(mtop mr1,g) /\ (y --> y0)(mtop mr1,g) /\ (?N. g N N /\ (!n. g n N ==> (x n) <= (y n))) ==> x0 <= y0) Run time: 0.0s Intermediate theorems generated: 400 () : void Run time: 0.0s Intermediate theorems generated: 1 File nets.ml loaded () : void Run time: 0.3s Intermediate theorems generated: 7389 #\ echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `seq.ml`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool false : bool () : void Theory NETS loaded () : void false : bool Run time: 0.0s LAND_CONV = - : (conv -> conv) Run time: 0.0s TAUT_CONV = - : conv Run time: 0.0s AC = - : ((thm # thm) -> conv) Run time: 0.0s GEN_PAIR_TAC = - : tactic Run time: 0.0s MK_COMB_TAC = - : tactic Run time: 0.0s BINOP_TAC = - : tactic Run time: 0.0s SYM_CANON_CONV = - : (thm -> ((term # term) -> bool) -> conv) Run time: 0.0s IMP_SUBST_TAC = - : thm_tactic Run time: 0.0s ABBREV_TAC = - : (term -> tactic) Run time: 0.0s EXT_CONV = - : conv Run time: 0.0s ABS_TAC = - : tactic Run time: 0.0s EQUAL_TAC = - : tactic Run time: 0.0s X_BETA_CONV = - : (term -> conv) Run time: 0.0s EXACT_CONV = - : (thm list -> conv) Run time: 0.0s HABS_CONV = - : conv Run time: 0.0s autoload_definitions = - : (string -> void) Run time: 0.0s autoload_theorems = - : (string -> void) Run time: 0.0s EXPAND_TAC = - : (string -> tactic) Run time: 0.0s File useful loaded () : void Run time: 0.0s real_interface_map = [(`--`, `real_neg`); (`num_add`, `+`); (`+`, `real_add`); (`num_mul`, `*`); (`*`, `real_mul`); (`num_sub`, `-`); (`-`, `real_sub`); (`num_lt`, `<`); (`<`, `real_lt`); (`num_le`, `<=`); (`<=`, `real_le`); (`num_gt`, `>`); (`>`, `real_gt`); (`num_ge`, `>=`); (`>=`, `real_ge`); (`inv`, `real_inv`); (`&`, `real_of_num`)] : (string # string) list Run time: 0.0s [] : (string # string) list Run time: 0.0s () : void Run time: 0.0s Intermediate theorems generated: 34 () : void Run time: 0.0s [(); ()] : void list Run time: 0.0s tends_num_real = |- !x x0. x tends_num_real x0 = (x tends x0)(mtop mr1,$num_ge) Run time: 0.0s Intermediate theorems generated: 2 [(`--`, `real_neg`); (`num_add`, `+`); (`+`, `real_add`); (`num_mul`, `*`); (`*`, `real_mul`); (`num_sub`, `-`); (`-`, `real_sub`); (`num_lt`, `<`); (`<`, `real_lt`); (`num_le`, `<=`); (`<=`, `real_le`); (`num_gt`, `>`); (`>`, `real_gt`); (`num_ge`, `>=`); (`>=`, `real_ge`); (`inv`, `real_inv`); (`&`, `real_of_num`)] : (string # string) list Run time: 0.0s Theorem ABS_SUB autoloading from theory `REAL` ... ABS_SUB = |- !x y. abs(x - y) = abs(y - x) Run time: 0.0s Theorem MR1_DEF autoloading from theory `TOPOLOGY` ... MR1_DEF = |- !x y. dist mr1(x,y) = abs(y - x) Run time: 0.0s Theorem SEQ_TENDS autoloading from theory `NETS` ... SEQ_TENDS = |- !d x x0. (x tends x0)(mtop d,$num_ge) = (!e. (& 0) < e ==> (?N. !n. n num_ge N ==> (dist d(x n,x0)) < e)) Run time: 0.0s SEQ = |- !x x0. x --> x0 = (!e. (& 0) < e ==> (?N. !n. n num_ge N ==> (abs((x n) - x0)) < e)) Run time: 0.0s Intermediate theorems generated: 64 Theorem ABS_0 autoloading from theory `REAL` ... ABS_0 = |- abs(& 0) = & 0 Run time: 0.0s Theorem REAL_SUB_REFL autoloading from theory `REAL` ... REAL_SUB_REFL = |- !x. x - x = & 0 Run time: 0.0s SEQ_CONST = |- !k. (\x. k) --> k Run time: 0.0s Intermediate theorems generated: 58 Theorem DORDER_NGE autoloading from theory `NETS` ... DORDER_NGE = |- dorder $num_ge Run time: 0.0s Theorem NET_ADD autoloading from theory `NETS` ... NET_ADD = |- !g. dorder g ==> (!x x0 y y0. (x tends x0)(mtop mr1,g) /\ (y tends y0)(mtop mr1,g) ==> ((\n. (x n) + (y n)) tends (x0 + y0))(mtop mr1,g)) Run time: 0.0s SEQ_ADD = |- !x x0 y y0. x --> x0 /\ y --> y0 ==> (\n. (x n) + (y n)) --> (x0 + y0) Run time: 0.0s Intermediate theorems generated: 33 Theorem NET_MUL autoloading from theory `NETS` ... NET_MUL = |- !g. dorder g ==> (!x y x0 y0. (x tends x0)(mtop mr1,g) /\ (y tends y0)(mtop mr1,g) ==> ((\n. (x n) * (y n)) tends (x0 * y0))(mtop mr1,g)) Run time: 0.0s SEQ_MUL = |- !x x0 y y0. x --> x0 /\ y --> y0 ==> (\n. (x n) * (y n)) --> (x0 * y0) Run time: 0.0s Intermediate theorems generated: 33 Theorem NET_NEG autoloading from theory `NETS` ... NET_NEG = |- !g. dorder g ==> (!x x0. (x tends x0)(mtop mr1,g) = ((\n. --(x n)) tends (-- x0))(mtop mr1,g)) Run time: 0.0s SEQ_NEG = |- !x x0. x --> x0 = (\n. --(x n)) --> (-- x0) Run time: 0.0s Intermediate theorems generated: 26 Theorem NET_INV autoloading from theory `NETS` ... NET_INV = |- !g. dorder g ==> (!x x0. (x tends x0)(mtop mr1,g) /\ ~(x0 = & 0) ==> ((\n. inv(x n)) tends (inv x0))(mtop mr1,g)) Run time: 0.0s SEQ_INV = |- !x x0. x --> x0 /\ ~(x0 = & 0) ==> (\n. inv(x n)) --> (inv x0) Run time: 0.1s Intermediate theorems generated: 28 Theorem NET_SUB autoloading from theory `NETS` ... NET_SUB = |- !g. dorder g ==> (!x x0 y y0. (x tends x0)(mtop mr1,g) /\ (y tends y0)(mtop mr1,g) ==> ((\n. (x n) - (y n)) tends (x0 - y0))(mtop mr1,g)) Run time: 0.0s SEQ_SUB = |- !x x0 y y0. x --> x0 /\ y --> y0 ==> (\n. (x n) - (y n)) --> (x0 - y0) Run time: 0.0s Intermediate theorems generated: 33 Theorem NET_DIV autoloading from theory `NETS` ... NET_DIV = |- !g. dorder g ==> (!x x0 y y0. (x tends x0)(mtop mr1,g) /\ (y tends y0)(mtop mr1,g) /\ ~(y0 = & 0) ==> ((\n. (x n) / (y n)) tends (x0 / y0))(mtop mr1,g)) Run time: 0.0s SEQ_DIV = |- !x x0 y y0. x --> x0 /\ y --> y0 /\ ~(y0 = & 0) ==> (\n. (x n) / (y n)) --> (x0 / y0) Run time: 0.0s Intermediate theorems generated: 35 Theorem MTOP_TENDS_UNIQ autoloading from theory `NETS` ... MTOP_TENDS_UNIQ = |- !g d. dorder g ==> (x tends x0)(mtop d,g) /\ (x tends x1)(mtop d,g) ==> (x0 = x1) Run time: 0.0s SEQ_UNIQ = |- !x x1 x2. x --> x1 /\ x --> x2 ==> (x1 = x2) Run time: 0.0s Intermediate theorems generated: 28 convergent = |- !f. convergent f = (?l. f --> l) Run time: 0.0s Intermediate theorems generated: 2 cauchy = |- !f. cauchy f = (!e. (& 0) < e ==> (?N. !m n. m num_ge N /\ n num_ge N ==> (abs((f m) - (f n))) < e)) Run time: 0.0s Intermediate theorems generated: 2 lim = |- !f. lim f = (@l. f --> l) Run time: 0.0s Intermediate theorems generated: 2 SEQ_LIM = |- !f. convergent f = f --> (lim f) Run time: 0.0s Intermediate theorems generated: 36 subseq = |- !f. subseq f = (!m n. m num_lt n ==> (f m) num_lt (f n)) Run time: 0.0s Intermediate theorems generated: 2 Theorem ADD_CLAUSES autoloading from theory `arithmetic` ... ADD_CLAUSES = |- (0 num_add m = m) /\ (m num_add 0 = m) /\ ((SUC m) num_add n = SUC(m num_add n)) /\ (m num_add (SUC n) = SUC(m num_add n)) Run time: 0.0s Theorem LESS_TRANS autoloading from theory `arithmetic` ... LESS_TRANS = |- !m n p. m num_lt n /\ n num_lt p ==> m num_lt p Run time: 0.0s Theorem ADD1 autoloading from theory `arithmetic` ... ADD1 = |- !m. SUC m = m num_add 1 Run time: 0.0s Theorem LESS_ADD_1 autoloading from theory `arithmetic` ... LESS_ADD_1 = |- !m n. n num_lt m ==> (?p. m = n num_add (p num_add 1)) Run time: 0.0s Theorem LESS_SUC_REFL autoloading from theory `prim_rec` ... LESS_SUC_REFL = |- !n. n num_lt (SUC n) Run time: 0.0s SUBSEQ_SUC = |- !f. subseq f = (!n. (f n) num_lt (f(SUC n))) Run time: 0.0s Intermediate theorems generated: 182 mono = |- !f. mono f = (!m n. m num_le n ==> (f m) <= (f n)) \/ (!m n. m num_le n ==> (f m) >= (f n)) Run time: 0.0s Intermediate theorems generated: 2 Theorem REAL_LE_TRANS autoloading from theory `REAL` ... REAL_LE_TRANS = |- !x y z. x <= y /\ y <= z ==> x <= z Run time: 0.0s Theorem REAL_LE_REFL autoloading from theory `REAL` ... REAL_LE_REFL = |- !x. x <= x Run time: 0.0s Theorem LESS_EQUAL_ADD autoloading from theory `arithmetic` ... LESS_EQUAL_ADD = |- !m n. m num_le n ==> (?p. n = m num_add p) Run time: 0.0s Theorem LESS_EQ_SUC_REFL autoloading from theory `arithmetic` ... LESS_EQ_SUC_REFL = |- !m. m num_le (SUC m) Run time: 0.0s Definition real_ge autoloading from theory `REAL` ... real_ge = |- !x y. x >= y = y <= x Run time: 0.0s Intermediate theorems generated: 1 MONO_SUC = |- !f. mono f = (!n. (f(SUC n)) >= (f n)) \/ (!n. (f(SUC n)) <= (f n)) Run time: 0.0s Intermediate theorems generated: 528 Theorem REAL_LT_IMP_LE autoloading from theory `REAL` ... REAL_LT_IMP_LE = |- !x y. x < y ==> x <= y Run time: 0.0s Theorem REAL_LT_ADD1 autoloading from theory `REAL` ... REAL_LT_ADD1 = |- !x y. x <= y ==> x < (y + (& 1)) Run time: 0.0s Theorem LESS_THM autoloading from theory `prim_rec` ... LESS_THM = |- !m n. m num_lt (SUC n) = (m = n) \/ m num_lt n Run time: 0.0s Theorem REAL_LET_TOTAL autoloading from theory `REAL` ... REAL_LET_TOTAL = |- !x y. x <= y \/ y < x Run time: 0.0s Theorem NOT_LESS_0 autoloading from theory `prim_rec` ... NOT_LESS_0 = |- !n. ~n num_lt 0 Run time: 0.0s MAX_LEMMA = |- !s N. ?k. !n. n num_lt N ==> (abs(s n)) < k Run time: 0.0s Intermediate theorems generated: 241 Theorem REAL_LTE_TRANS autoloading from theory `REAL` ... REAL_LTE_TRANS = |- !x y z. x < y /\ y <= z ==> x < z Run time: 0.0s Theorem LESS_CASES autoloading from theory `arithmetic` ... LESS_CASES = |- !m n. m num_lt n \/ n num_le m Run time: 0.0s Theorem REAL_LE_TOTAL autoloading from theory `REAL` ... REAL_LE_TOTAL = |- !x y. x <= y \/ y <= x Run time: 0.0s Theorem LESS_EQ_REFL autoloading from theory `arithmetic` ... LESS_EQ_REFL = |- !m. m num_le m Run time: 0.0s Theorem GREATER_EQ autoloading from theory `arithmetic` ... GREATER_EQ = |- !n m. n num_ge m = m num_le n Run time: 0.0s Theorem MR1_BOUNDED autoloading from theory `NETS` ... MR1_BOUNDED = |- !g f. bounded(mr1,g)f = (?k N. g N N /\ (!n. g n N ==> (abs(f n)) < k)) Run time: 0.0s SEQ_BOUNDED = |- !s. bounded(mr1,$num_ge)s = (?k. !n. (abs(s n)) < k) Run time: 0.0s Intermediate theorems generated: 273 Theorem REAL_LE_NEG autoloading from theory `REAL` ... REAL_LE_NEG = |- !x y. (-- x) <= (-- y) = y <= x Run time: 0.0s Theorem REAL_LE_ADDR autoloading from theory `REAL` ... REAL_LE_ADDR = |- !x y. x <= (x + y) = (& 0) <= y Run time: 0.0s Theorem ABS_LE autoloading from theory `REAL` ... ABS_LE = |- !x. x <= (abs x) Run time: 0.0s Theorem ABS_POS autoloading from theory `REAL` ... ABS_POS = |- !x. (& 0) <= (abs x) Run time: 0.0s Theorem REAL_LE_ADDL autoloading from theory `REAL` ... REAL_LE_ADDL = |- !x y. y <= (x + y) = (& 0) <= x Run time: 0.0s Definition abs autoloading from theory `REAL` ... abs = |- !x. abs x = ((& 0) <= x => x | -- x) Run time: 0.0s Intermediate theorems generated: 1 Theorem REAL_LT_01 autoloading from theory `REAL` ... REAL_LT_01 = |- (& 0) < (& 1) Run time: 0.0s Theorem REAL_LT_ADDR autoloading from theory `REAL` ... REAL_LT_ADDR = |- !x y. x < (x + y) = (& 0) < y Run time: 0.0s Theorem REAL_LET_TRANS autoloading from theory `REAL` ... REAL_LET_TRANS = |- !x y z. x <= y /\ y < z ==> x < z Run time: 0.0s SEQ_BOUNDED_2 = |- !f k K. (!n. k <= (f n) /\ (f n) <= K) ==> bounded(mr1,$num_ge)f Run time: 0.0s Intermediate theorems generated: 334 Definition bounded autoloading from theory `NETS` ... bounded = |- !m g f. bounded(m,g)f = (?k x N. g N N /\ (!n. g n N ==> (dist m(f n,x)) < k)) Run time: 0.0s Intermediate theorems generated: 1 SEQ_CBOUNDED = |- !f. cauchy f ==> bounded(mr1,$num_ge)f Run time: 0.0s Intermediate theorems generated: 110 Theorem REAL_LE_RADD autoloading from theory `REAL` ... REAL_LE_RADD = |- !x y z. (x + z) <= (y + z) = x <= y Run time: 0.0s Theorem REAL_ADD_RINV autoloading from theory `REAL` ... REAL_ADD_RINV = |- !x. x + (-- x) = & 0 Run time: 0.0s Definition real_sub autoloading from theory `REAL` ... real_sub = |- !x y. x - y = x + (-- y) Run time: 0.0s Intermediate theorems generated: 1 Theorem REAL_NEG_SUB autoloading from theory `REAL` ... REAL_NEG_SUB = |- !x y. --(x - y) = y - x Run time: 0.0s Theorem REAL_NOT_LT autoloading from theory `REAL` ... REAL_NOT_LT = |- !x y. ~x < y = y <= x Run time: 0.0s Theorem REAL_LT_REFL autoloading from theory `REAL` ... REAL_LT_REFL = |- !x. ~x < x Run time: 0.0s Theorem REAL_ADD_SYM autoloading from theory `REAL` ... REAL_ADD_SYM = |- !x y. x + y = y + x Run time: 0.0s Theorem REAL_LT_SUB_RADD autoloading from theory `REAL` ... REAL_LT_SUB_RADD = |- !x y z. (x - y) < z = x < (z + y) Run time: 0.0s Theorem REAL_SUP autoloading from theory `REAL` ... REAL_SUP = |- !P. (?x. P x) /\ (?z. !x. P x ==> x < z) ==> (!y. (?x. P x /\ y < x) = y < (sup P)) Run time: 0.0s SEQ_ICONV = |- !f. bounded(mr1,$num_ge)f /\ (!m n. m num_ge n ==> (f m) >= (f n)) ==> convergent f Run time: 0.0s Intermediate theorems generated: 910 Theorem REAL_NEGNEG autoloading from theory `REAL` ... REAL_NEGNEG = |- !x. --(-- x) = x Run time: 0.0s SEQ_NEG_CONV = |- !f. convergent f = convergent(\n. --(f n)) Run time: 0.0s Intermediate theorems generated: 72 Theorem ABS_NEG autoloading from theory `REAL` ... ABS_NEG = |- !x. abs(-- x) = abs x Run time: 0.0s SEQ_NEG_BOUNDED = |- !f. bounded(mr1,$num_ge)(\n. --(f n)) = bounded(mr1,$num_ge)f Run time: 0.0s Intermediate theorems generated: 39 SEQ_BCONV = |- !f. bounded(mr1,$num_ge)f /\ mono f ==> convergent f Run time: 0.0s Intermediate theorems generated: 209 Theorem LESS_EQ_TRANS autoloading from theory `arithmetic` ... LESS_EQ_TRANS = |- !m n p. m num_le n /\ n num_le p ==> m num_le p Run time: 0.0s Definition LESS_OR_EQ autoloading from theory `arithmetic` ... LESS_OR_EQ = |- !m n. m num_le n = m num_lt n \/ (m = n) Run time: 0.0s Intermediate theorems generated: 1 Theorem LESS_EQ autoloading from theory `arithmetic` ... LESS_EQ = |- !m n. m num_lt n = (SUC m) num_le n Run time: 0.0s Theorem REAL_NOT_LE autoloading from theory `REAL` ... REAL_NOT_LE = |- !x y. ~x <= y = y < x Run time: 0.0s Theorem LESS_IMP_LESS_OR_EQ autoloading from theory `arithmetic` ... LESS_IMP_LESS_OR_EQ = |- !m n. m num_lt n ==> m num_le n Run time: 0.0s Theorem num_CASES autoloading from theory `arithmetic` ... num_CASES = |- !m. (m = 0) \/ (?n. m = SUC n) Run time: 0.0s Definition GREATER autoloading from theory `arithmetic` ... GREATER = |- !m n. m num_gt n = n num_lt m Run time: 0.0s Intermediate theorems generated: 1 Theorem num_Axiom autoloading from theory `prim_rec` ... num_Axiom = |- !e f. ?! fn. (fn 0 = e) /\ (!n. fn(SUC n) = f(fn n)n) Run time: 0.0s SEQ_MONOSUB = |- !s. ?f. subseq f /\ mono(\n. s(f n)) Run time: 0.0s Intermediate theorems generated: 1286 SEQ_SBOUNDED = |- !s f. bounded(mr1,$num_ge)s ==> bounded(mr1,$num_ge)(\n. s(f n)) Run time: 0.0s Intermediate theorems generated: 34 Theorem LESS_EQ_MONO autoloading from theory `arithmetic` ... LESS_EQ_MONO = |- !n m. (SUC n) num_le (SUC m) = n num_le m Run time: 0.0s Theorem NOT_LESS autoloading from theory `arithmetic` ... NOT_LESS = |- !m n. ~m num_lt n = n num_le m Run time: 0.0s SEQ_SUBLE = |- !f. subseq f ==> (!n. n num_le (f n)) Run time: 0.0s Intermediate theorems generated: 116 Theorem LESS_EQ_CASES autoloading from theory `arithmetic` ... LESS_EQ_CASES = |- !m n. m num_le n \/ n num_le m Run time: 0.0s SEQ_DIRECT = |- !f. subseq f ==> (!N1 N2. ?n. n num_ge N1 /\ (f n) num_ge N2) Run time: 0.0s Intermediate theorems generated: 118 Theorem REAL_LT_ADD2 autoloading from theory `REAL` ... REAL_LT_ADD2 = |- !w x y z. w < x /\ y < z ==> (w + y) < (x + z) Run time: 0.0s Theorem REAL_HALF_DOUBLE autoloading from theory `REAL` ... REAL_HALF_DOUBLE = |- !x. (x / (& 2)) + (x / (& 2)) = x Run time: 0.0s Theorem ABS_TRIANGLE autoloading from theory `REAL` ... ABS_TRIANGLE = |- !x y. (abs(x + y)) <= ((abs x) + (abs y)) Run time: 0.0s Theorem REAL_SUB_TRIANGLE autoloading from theory `REAL` ... REAL_SUB_TRIANGLE = |- !a b c. (a - b) + (b - c) = a - c Run time: 0.0s Theorem REAL_LT_HALF1 autoloading from theory `REAL` ... REAL_LT_HALF1 = |- !d. (& 0) < (d / (& 2)) = (& 0) < d Run time: 0.0s SEQ_CAUCHY = |- !f. cauchy f = convergent f Run time: 0.0s Intermediate theorems generated: 665 Theorem NET_LE autoloading from theory `NETS` ... NET_LE = |- !g. dorder g ==> (!x x0 y y0. (x tends x0)(mtop mr1,g) /\ (y tends y0)(mtop mr1,g) /\ (?N. g N N /\ (!n. g n N ==> (x n) <= (y n))) ==> x0 <= y0) Run time: 0.0s SEQ_LE = |- !f g l m. f --> l /\ g --> m /\ (?N. !n. n num_ge N ==> (f n) <= (g n)) ==> l <= m Run time: 0.0s Intermediate theorems generated: 80 Theorem LESS_0 autoloading from theory `prim_rec` ... LESS_0 = |- !n. 0 num_lt (SUC n) Run time: 0.0s SEQ_SUC = |- !f l. f --> l = (\n. f(SUC n)) --> l Run time: 0.0s Intermediate theorems generated: 236 Theorem ABS_ABS autoloading from theory `REAL` ... ABS_ABS = |- !x. abs(abs x) = abs x Run time: 0.0s Theorem REAL_SUB_RZERO autoloading from theory `REAL` ... REAL_SUB_RZERO = |- !x. x - (& 0) = x Run time: 0.0s SEQ_ABS = |- !f. (\n. abs(f n)) --> (& 0) = f --> (& 0) Run time: 0.0s Intermediate theorems generated: 70 Theorem NET_ABS autoloading from theory `NETS` ... NET_ABS = |- !x x0. (x tends x0)(mtop mr1,g) ==> ((\n. abs(x n)) tends (abs x0))(mtop mr1,g) Run time: 0.0s SEQ_ABS_IMP = |- !f l. f --> l ==> (\n. abs(f n)) --> (abs l) Run time: 0.0s Intermediate theorems generated: 20 Theorem REAL_LT_INV autoloading from theory `REAL` ... REAL_LT_INV = |- !x y. (& 0) < x /\ x < y ==> (inv y) < (inv x) Run time: 0.0s Theorem REAL_INVINV autoloading from theory `REAL` ... REAL_INVINV = |- !x. ~(x = & 0) ==> (inv(inv x) = x) Run time: 0.0s Theorem ABS_INV autoloading from theory `REAL` ... ABS_INV = |- !x. ~(x = & 0) ==> (abs(inv x) = inv(abs x)) Run time: 0.0s Theorem REAL_LT_IMP_NE autoloading from theory `REAL` ... REAL_LT_IMP_NE = |- !x y. x < y ==> ~(x = y) Run time: 0.0s Theorem REAL_LT_TRANS autoloading from theory `REAL` ... REAL_LT_TRANS = |- !x y z. x < y /\ y < z ==> x < z Run time: 0.0s Theorem REAL_INV_POS autoloading from theory `REAL` ... REAL_INV_POS = |- !x. (& 0) < x ==> (& 0) < (inv x) Run time: 0.0s Definition real_gt autoloading from theory `REAL` ... real_gt = |- !x y. x > y = y < x Run time: 0.0s Intermediate theorems generated: 1 SEQ_INV0 = |- !f. (!y. ?N. !n. n num_ge N ==> (f n) > y) ==> (\n. inv(f n)) --> (& 0) Run time: 0.0s Intermediate theorems generated: 423 Theorem POW_0 autoloading from theory `REAL` ... POW_0 = |- !n. (& 0) pow (SUC n) = & 0 Run time: 0.0s Theorem REAL_SUB_ADD autoloading from theory `REAL` ... REAL_SUB_ADD = |- !x y. (x - y) + y = x Run time: 0.0s Theorem POW_PLUS1 autoloading from theory `REAL` ... POW_PLUS1 = |- !e. (& 0) < e ==> (!n. ((& 1) + ((& n) * e)) <= (((& 1) + e) pow n)) Run time: 0.0s Theorem REAL_LT_ADDL autoloading from theory `REAL` ... REAL_LT_ADDL = |- !x y. y < (x + y) = (& 0) < x Run time: 0.0s Theorem REAL_LE autoloading from theory `REAL` ... REAL_LE = |- !m n. (& m) <= (& n) = m num_le n Run time: 0.0s Theorem REAL_LE_RMUL autoloading from theory `REAL` ... REAL_LE_RMUL = |- !x y z. (& 0) < z ==> ((x * z) <= (y * z) = x <= y) Run time: 0.0s Theorem REAL_ARCH autoloading from theory `REAL` ... REAL_ARCH = |- !x. (& 0) < x ==> (!y. ?n. y < ((& n) * x)) Run time: 0.0s Theorem REAL_INV1 autoloading from theory `REAL` ... REAL_INV1 = |- inv(& 1) = & 1 Run time: 0.0s Theorem REAL_ADD_LID autoloading from theory `REAL` ... REAL_ADD_LID = |- !x. (& 0) + x = x Run time: 0.0s Theorem REAL_LT_SUB_LADD autoloading from theory `REAL` ... REAL_LT_SUB_LADD = |- !x y z. x < (y - z) = (x + z) < y Run time: 0.0s Theorem POW_INV autoloading from theory `REAL` ... POW_INV = |- !c. ~(c = & 0) ==> (!n. inv(c pow n) = (inv c) pow n) Run time: 0.0s Theorem ABS_NZ autoloading from theory `REAL` ... ABS_NZ = |- !x. ~(x = & 0) = (& 0) < (abs x) Run time: 0.0s Theorem POW_NZ autoloading from theory `REAL` ... POW_NZ = |- !c n. ~(c = & 0) ==> ~(c pow n = & 0) Run time: 0.0s Theorem REAL_LE_LT autoloading from theory `REAL` ... REAL_LE_LT = |- !x y. x <= y = x < y \/ (x = y) Run time: 0.0s SEQ_POWER_ABS = |- !c. (abs c) < (& 1) ==> (\n. (abs c) pow n) --> (& 0) Run time: 0.0s Intermediate theorems generated: 573 Theorem POW_ABS autoloading from theory `REAL` ... POW_ABS = |- !c n. (abs c) pow n = abs(c pow n) Run time: 0.0s SEQ_POWER = |- !c. (abs c) < (& 1) ==> (\n. c pow n) --> (& 0) Run time: 0.0s Intermediate theorems generated: 49 Theorem REAL_LE_LADD autoloading from theory `REAL` ... REAL_LE_LADD = |- !x y z. (x + y) <= (x + z) = y <= z Run time: 0.0s Theorem REAL_SUB_LE autoloading from theory `REAL` ... REAL_SUB_LE = |- !x y. (& 0) <= (x - y) = y <= x Run time: 0.0s Theorem LESS_EQ_ADD autoloading from theory `arithmetic` ... LESS_EQ_ADD = |- !m n. m num_le (m num_add n) Run time: 0.0s Theorem REAL_SUB_LT autoloading from theory `REAL` ... REAL_SUB_LT = |- !x y. (& 0) < (x - y) = y < x Run time: 0.0s NEST_LEMMA = |- !f g. (!n. (f(SUC n)) >= (f n)) /\ (!n. (g(SUC n)) <= (g n)) /\ (!n. (f n) <= (g n)) ==> (?l m. l <= m /\ ((!n. (f n) <= l) /\ f --> l) /\ (!n. m <= (g n)) /\ g --> m) Run time: 0.0s Intermediate theorems generated: 2190 Theorem REAL_SUB_0 autoloading from theory `REAL` ... REAL_SUB_0 = |- !x y. (x - y = & 0) = (x = y) Run time: 0.0s NEST_LEMMA_UNIQ = |- !f g. (!n. (f(SUC n)) >= (f n)) /\ (!n. (g(SUC n)) <= (g n)) /\ (!n. (f n) <= (g n)) /\ (\n. (f n) - (g n)) --> (& 0) ==> (?l. ((!n. (f n) <= l) /\ f --> l) /\ (!n. l <= (g n)) /\ g --> l) Run time: 0.0s Intermediate theorems generated: 295 Theorem ADD_SYM autoloading from theory `arithmetic` ... ADD_SYM = |- !m n. m num_add n = n num_add m Run time: 0.0s Theorem REAL_MUL_LINV autoloading from theory `REAL` ... REAL_MUL_LINV = |- !x. ~(x = & 0) ==> ((inv x) * x = & 1) Run time: 0.0s Theorem REAL_LT autoloading from theory `REAL` ... REAL_LT = |- !m n. (& m) < (& n) = m num_lt n Run time: 0.0s Theorem REAL_LT_RMUL autoloading from theory `REAL` ... REAL_LT_RMUL = |- !x y z. (& 0) < z ==> ((x * z) < (y * z) = x < y) Run time: 0.0s Theorem ABS_N autoloading from theory `REAL` ... ABS_N = |- !n. abs(& n) = & n Run time: 0.0s Theorem REAL_MUL_RZERO autoloading from theory `REAL` ... REAL_MUL_RZERO = |- !x. x * (& 0) = & 0 Run time: 0.0s Theorem REAL_NEG_0 autoloading from theory `REAL` ... REAL_NEG_0 = |- --(& 0) = & 0 Run time: 0.0s Theorem REAL_MUL_RINV autoloading from theory `REAL` ... REAL_MUL_RINV = |- !x. ~(x = & 0) ==> (x * (inv x) = & 1) Run time: 0.0s Theorem REAL_MUL_LID autoloading from theory `REAL` ... REAL_MUL_LID = |- !x. (& 1) * x = x Run time: 0.0s Theorem REAL_INV_MUL autoloading from theory `REAL` ... REAL_INV_MUL = |- !x y. ~(x = & 0) /\ ~(y = & 0) ==> (inv(x * y) = (inv x) * (inv y)) Run time: 0.0s Theorem REAL_MUL_ASSOC autoloading from theory `REAL` ... REAL_MUL_ASSOC = |- !x y z. x * (y * z) = (x * y) * z Run time: 0.0s Theorem REAL_MUL_SYM autoloading from theory `REAL` ... REAL_MUL_SYM = |- !x y. x * y = y * x Run time: 0.0s Theorem REAL_ADD_ASSOC autoloading from theory `REAL` ... REAL_ADD_ASSOC = |- !x y z. x + (y + z) = (x + y) + z Run time: 0.0s Theorem REAL_ADD_LINV autoloading from theory `REAL` ... REAL_ADD_LINV = |- !x. (-- x) + x = & 0 Run time: 0.0s Theorem REAL_ADD_RID autoloading from theory `REAL` ... REAL_ADD_RID = |- !x. x + (& 0) = x Run time: 0.0s Theorem REAL_NEG_ADD autoloading from theory `REAL` ... REAL_NEG_ADD = |- !x y. --(x + y) = (-- x) + (-- y) Run time: 0.0s Theorem REAL_DOUBLE autoloading from theory `REAL` ... REAL_DOUBLE = |- !x. x + x = (& 2) * x Run time: 0.0s Theorem REAL_INJ autoloading from theory `REAL` ... REAL_INJ = |- !m n. (& m = & n) = (m = n) Run time: 0.0s Theorem REAL_DIV_LMUL autoloading from theory `REAL` ... REAL_DIV_LMUL = |- !x y. ~(y = & 0) ==> (y * (x / y) = x) Run time: 0.0s Theorem REAL_SUB_LDISTRIB autoloading from theory `REAL` ... REAL_SUB_LDISTRIB = |- !x y z. x * (y - z) = (x * y) - (x * z) Run time: 0.0s Theorem REAL_EQ_LMUL_IMP autoloading from theory `REAL` ... REAL_EQ_LMUL_IMP = |- !x y z. ~(x = & 0) /\ (x * y = x * z) ==> (y = z) Run time: 0.0s Theorem REAL_MUL_RID autoloading from theory `REAL` ... REAL_MUL_RID = |- !x. x * (& 1) = x Run time: 0.0s Definition real_div autoloading from theory `REAL` ... real_div = |- !x y. x / y = x * (inv y) Run time: 0.0s Intermediate theorems generated: 1 Definition pow autoloading from theory `REAL` ... pow = |- (!x. x pow 0 = & 1) /\ (!x n. x pow (SUC n) = x * (x pow n)) Run time: 0.0s Intermediate theorems generated: 1 Theorem REAL_MIDDLE1 autoloading from theory `REAL` ... REAL_MIDDLE1 = |- !a b. a <= b ==> a <= ((a + b) / (& 2)) Run time: 0.0s Theorem REAL_MIDDLE2 autoloading from theory `REAL` ... REAL_MIDDLE2 = |- !a b. a <= b ==> ((a + b) / (& 2)) <= b Run time: 0.0s BOLZANO_LEMMA = |- !P. (!a b c. a <= b /\ b <= c /\ P(a,b) /\ P(b,c) ==> P(a,c)) /\ (!x. ?d. (& 0) < d /\ (!a b. a <= x /\ x <= b /\ (b - a) < d ==> P(a,b))) ==> (!a b. a <= b ==> P(a,b)) Run time: 0.1s Intermediate theorems generated: 3396 sums = |- !f s. f sums s = (\n. Sum(0,n)f) --> s Run time: 0.0s Intermediate theorems generated: 2 summable = |- !f. summable f = (?s. f sums s) Run time: 0.0s Intermediate theorems generated: 2 suminf = |- !f. suminf f = (@s. f sums s) Run time: 0.0s Intermediate theorems generated: 2 SUM_SUMMABLE = |- !f l. f sums l ==> summable f Run time: 0.0s Intermediate theorems generated: 16 SUMMABLE_SUM = |- !f. summable f ==> f sums (suminf f) Run time: 0.0s Intermediate theorems generated: 30 SUM_UNIQ = |- !f x. f sums x ==> (x = suminf f) Run time: 0.0s Intermediate theorems generated: 69 Theorem SUM_ZERO autoloading from theory `REAL` ... SUM_ZERO = |- !f N. (!n. n num_ge N ==> (f n = & 0)) ==> (!m n. m num_ge N ==> (Sum(m,n)f = & 0)) Run time: 0.0s Theorem REAL_ADD_RID_UNIQ autoloading from theory `REAL` ... REAL_ADD_RID_UNIQ = |- !x y. (x + y = x) = (y = & 0) Run time: 0.0s Theorem SUM_TWO autoloading from theory `REAL` ... SUM_TWO = |- !f n p. (Sum(0,n)f) + (Sum(n,p)f) = Sum(0,n num_add p)f Run time: 0.0s Theorem ABS_ZERO autoloading from theory `REAL` ... ABS_ZERO = |- !x. (abs x = & 0) = (x = & 0) Run time: 0.0s SER_0 = |- !f n. (!m. n num_le m ==> (f m = & 0)) ==> f sums (Sum(0,n)f) Run time: 0.0s Intermediate theorems generated: 175 Theorem SUM_POS_GEN autoloading from theory `REAL` ... SUM_POS_GEN = |- !f m. (!n. m num_le n ==> (& 0) <= (f n)) ==> (!n. (& 0) <= (Sum(m,n)f)) Run time: 0.0s SER_POS_LE = |- !f n. summable f /\ (!m. n num_le m ==> (& 0) <= (f m)) ==> (Sum(0,n)f) <= (suminf f) Run time: 0.0s Intermediate theorems generated: 220 Theorem Sum autoloading from theory `REAL` ... Sum = |- (Sum(n,0)f = & 0) /\ (Sum(n,SUC m)f = (Sum(n,m)f) + (f(n num_add m))) Run time: 0.0s SER_POS_LT = |- !f n. summable f /\ (!m. n num_le m ==> (& 0) < (f m)) ==> (Sum(0,n)f) < (suminf f) Run time: 0.0s Intermediate theorems generated: 209 Theorem LESS_REFL autoloading from theory `prim_rec` ... LESS_REFL = |- !n. ~n num_lt n Run time: 0.0s Theorem LESS_EQ_0 autoloading from theory `arithmetic` ... LESS_EQ_0 = |- !n. n num_le 0 = (n = 0) Run time: 0.0s Theorem MULT_CLAUSES autoloading from theory `arithmetic` ... MULT_CLAUSES = |- !m n. (0 num_mul m = 0) /\ (m num_mul 0 = 0) /\ (1 num_mul m = m) /\ (m num_mul 1 = m) /\ ((SUC m) num_mul n = (m num_mul n) num_add n) /\ (m num_mul (SUC n) = m num_add (m num_mul n)) Run time: 0.0s Theorem SUM_GROUP autoloading from theory `REAL` ... SUM_GROUP = |- !n k f. Sum(0,n)(\m. Sum(m num_mul k,k)f) = Sum(0,n num_mul k)f Run time: 0.0s SER_GROUP = |- !f k. summable f /\ 0 num_lt k ==> (\n. Sum(n num_mul k,k)f) sums (suminf f) Run time: 0.0s Intermediate theorems generated: 258 Theorem MULT_SYM autoloading from theory `arithmetic` ... MULT_SYM = |- !m n. m num_mul n = n num_mul m Run time: 0.0s SER_PAIR = |- !f. summable f ==> (\n. Sum(2 num_mul n,2)f) sums (suminf f) Run time: 0.0s Intermediate theorems generated: 34 Theorem SUM_OFFSET autoloading from theory `REAL` ... SUM_OFFSET = |- !f n k. Sum(0,n)(\m. f(m num_add k)) = (Sum(0,n num_add k)f) - (Sum(0,k)f) Run time: 0.0s SER_OFFSET = |- !f. summable f ==> (!k. (\n. f(n num_add k)) sums ((suminf f) - (Sum(0,k)f))) Run time: 0.0s Intermediate theorems generated: 299 Theorem REAL_EQ_IMP_LE autoloading from theory `REAL` ... REAL_EQ_IMP_LE = |- !x y. (x = y) ==> x <= y Run time: 0.0s Theorem ADD_ASSOC autoloading from theory `arithmetic` ... ADD_ASSOC = |- !m n p. m num_add (n num_add p) = (m num_add n) num_add p Run time: 0.0s SER_POS_LT_PAIR = |- !f n. summable f /\ (!d. (& 0) < ((f(n num_add (2 num_mul d))) + (f(n num_add ((2 num_mul d) num_add 1))))) ==> (Sum(0,n)f) < (suminf f) Run time: 0.0s Intermediate theorems generated: 1204 Theorem SUM_ADD autoloading from theory `REAL` ... SUM_ADD = |- !f g m n. Sum(m,n)(\n'. (f n') + (g n')) = (Sum(m,n)f) + (Sum(m,n)g) Run time: 0.0s SER_ADD = |- !x x0 y y0. x sums x0 /\ y sums y0 ==> (\n. (x n) + (y n)) sums (x0 + y0) Run time: 0.0s Intermediate theorems generated: 62 Theorem SUM_CMUL autoloading from theory `REAL` ... SUM_CMUL = |- !f c m n. Sum(m,n)(\n'. c * (f n')) = c * (Sum(m,n)f) Run time: 0.0s SER_CMUL = |- !x x0 c. x sums x0 ==> (\n. c * (x n)) sums (c * x0) Run time: 0.0s Intermediate theorems generated: 82 Theorem REAL_NEG_MINUS1 autoloading from theory `REAL` ... REAL_NEG_MINUS1 = |- !x. -- x = (--(& 1)) * x Run time: 0.0s SER_NEG = |- !x x0. x sums x0 ==> (\n. --(x n)) sums (-- x0) Run time: 0.0s Intermediate theorems generated: 17 SER_SUB = |- !x x0 y y0. x sums x0 /\ y sums y0 ==> (\n. (x n) - (y n)) sums (x0 - y0) Run time: 0.0s Intermediate theorems generated: 43 SER_CDIV = |- !x x0 c. x sums x0 ==> (\n. (x n) / c) sums (x0 / c) Run time: 0.0s Intermediate theorems generated: 35 Theorem SUM_DIFF autoloading from theory `REAL` ... SUM_DIFF = |- !f m n. Sum(m,n)f = (Sum(0,m num_add n)f) - (Sum(0,m)f) Run time: 0.0s SER_CAUCHY = |- !f. summable f = (!e. (& 0) < e ==> (?N. !m n. m num_ge N ==> (abs(Sum(m,n)f)) < e)) Run time: 0.0s Intermediate theorems generated: 412 SER_ZERO = |- !f. summable f ==> f --> (& 0) Run time: 0.0s Intermediate theorems generated: 121 Theorem SUM_LE autoloading from theory `REAL` ... SUM_LE = |- !f g m n. (!r. m num_le r /\ r num_lt (n num_add m) ==> (f r) <= (g r)) ==> (Sum(m,n)f) <= (Sum(m,n)g) Run time: 0.0s Theorem ABS_SUM autoloading from theory `REAL` ... ABS_SUM = |- !f m n. (abs(Sum(m,n)f)) <= (Sum(m,n)(\n'. abs(f n'))) Run time: 0.0s SER_COMPAR = |- !f g. (?N. !n. n num_ge N ==> (abs(f n)) <= (g n)) /\ summable g ==> summable f Run time: 0.0s Intermediate theorems generated: 395 SER_COMPARA = |- !f g. (?N. !n. n num_ge N ==> (abs(f n)) <= (g n)) /\ summable g ==> summable(\k. abs(f k)) Run time: 0.0s Intermediate theorems generated: 41 Theorem ZERO_LESS_EQ autoloading from theory `arithmetic` ... ZERO_LESS_EQ = |- !n. 0 num_le n Run time: 0.0s SER_LE = |- !f g. (!n. (f n) <= (g n)) /\ summable f /\ summable g ==> (suminf f) <= (suminf g) Run time: 0.0s Intermediate theorems generated: 191 SER_LE2 = |- !f g. (!n. (abs(f n)) <= (g n)) /\ summable g ==> summable f /\ (suminf f) <= (suminf g) Run time: 0.0s Intermediate theorems generated: 136 Theorem SUM_ABS autoloading from theory `REAL` ... SUM_ABS = |- !f m n. abs(Sum(m,n)(\m. abs(f m))) = Sum(m,n)(\m. abs(f m)) Run time: 0.0s SER_ACONV = |- !f. summable(\n. abs(f n)) ==> summable f Run time: 0.0s Intermediate theorems generated: 126 Theorem SUM_ABS_LE autoloading from theory `REAL` ... SUM_ABS_LE = |- !f m n. (abs(Sum(m,n)f)) <= (Sum(m,n)(\n'. abs(f n'))) Run time: 0.0s SER_ABS = |- !f. summable(\n. abs(f n)) ==> (abs(suminf f)) <= (suminf(\n. abs(f n))) Run time: 0.0s Intermediate theorems generated: 92 Theorem REAL_DIV_RMUL autoloading from theory `REAL` ... REAL_DIV_RMUL = |- !x y. ~(y = & 0) ==> ((x / y) * y = x) Run time: 0.0s Theorem REAL_RDISTRIB autoloading from theory `REAL` ... REAL_RDISTRIB = |- !x y z. (x + y) * z = (x * z) + (y * z) Run time: 0.0s Theorem REAL_EQ_RMUL autoloading from theory `REAL` ... REAL_EQ_RMUL = |- !x y z. (x * z = y * z) = (z = & 0) \/ (x = y) Run time: 0.0s Theorem REAL_DIV_LZERO autoloading from theory `REAL` ... REAL_DIV_LZERO = |- !x. (& 0) / x = & 0 Run time: 0.0s GP_FINITE = |- !x. ~(x = & 1) ==> (!n. Sum(0,n)(\n'. x pow n') = ((x pow n) - (& 1)) / (x - (& 1))) Run time: 0.0s Intermediate theorems generated: 411 Theorem REAL_NEG_INV autoloading from theory `REAL` ... REAL_NEG_INV = |- !x. ~(x = & 0) ==> (--(inv x) = inv(-- x)) Run time: 0.0s Theorem REAL_NEG_MUL2 autoloading from theory `REAL` ... REAL_NEG_MUL2 = |- !x y. (-- x) * (-- y) = x * y Run time: 0.0s Theorem REAL_INV_1OVER autoloading from theory `REAL` ... REAL_INV_1OVER = |- !x. inv x = (& 1) / x Run time: 0.0s Theorem ABS_1 autoloading from theory `REAL` ... ABS_1 = |- abs(& 1) = & 1 Run time: 0.0s GP = |- !x. (abs x) < (& 1) ==> (\n. x pow n) sums (inv((& 1) - x)) Run time: 0.0s Intermediate theorems generated: 343 Theorem REAL_NEG_LMUL autoloading from theory `REAL` ... REAL_NEG_LMUL = |- !x y. --(x * y) = (-- x) * y Run time: 0.0s Theorem REAL_LE_MUL autoloading from theory `REAL` ... REAL_LE_MUL = |- !x y. (& 0) <= x /\ (& 0) <= y ==> (& 0) <= (x * y) Run time: 0.0s Theorem REAL_NEG_GE0 autoloading from theory `REAL` ... REAL_NEG_GE0 = |- !x. (& 0) <= (-- x) = x <= (& 0) Run time: 0.0s ABS_NEG_LEMMA = |- !c. c <= (& 0) ==> (!x y. (abs x) <= (c * (abs y)) ==> (x = & 0)) Run time: 0.0s Intermediate theorems generated: 114 Theorem REAL_LE_LMUL autoloading from theory `REAL` ... REAL_LE_LMUL = |- !x y z. (& 0) < x ==> ((x * y) <= (x * z) = y <= z) Run time: 0.0s Theorem POW_ADD autoloading from theory `REAL` ... POW_ADD = |- !c m n. c pow (m num_add n) = (c pow m) * (c pow n) Run time: 0.0s Theorem OR_LESS autoloading from theory `arithmetic` ... OR_LESS = |- !m n. (SUC m) num_le n ==> m num_lt n Run time: 0.0s SER_RATIO = |- !f c N. c < (& 1) /\ (!n. n num_ge N ==> (abs(f(SUC n))) <= (c * (abs(f n)))) ==> summable f Run time: 0.0s Intermediate theorems generated: 683 () : void Run time: 0.0s Intermediate theorems generated: 1 File seq.ml loaded () : void Run time: 0.6s Intermediate theorems generated: 18704 #\ echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `lim.ml`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool false : bool () : void Theory SEQ loaded () : void false : bool Run time: 0.0s LAND_CONV = - : (conv -> conv) Run time: 0.0s TAUT_CONV = - : conv Run time: 0.0s AC = - : ((thm # thm) -> conv) Run time: 0.0s GEN_PAIR_TAC = - : tactic Run time: 0.0s MK_COMB_TAC = - : tactic Run time: 0.0s BINOP_TAC = - : tactic Run time: 0.0s SYM_CANON_CONV = - : (thm -> ((term # term) -> bool) -> conv) Run time: 0.0s IMP_SUBST_TAC = - : thm_tactic Run time: 0.0s ABBREV_TAC = - : (term -> tactic) Run time: 0.0s EXT_CONV = - : conv Run time: 0.0s ABS_TAC = - : tactic Run time: 0.0s EQUAL_TAC = - : tactic Run time: 0.0s X_BETA_CONV = - : (term -> conv) Run time: 0.0s EXACT_CONV = - : (thm list -> conv) Run time: 0.0s HABS_CONV = - : conv Run time: 0.0s autoload_definitions = - : (string -> void) Run time: 0.0s autoload_theorems = - : (string -> void) Run time: 0.0s EXPAND_TAC = - : (string -> tactic) Run time: 0.0s File useful loaded () : void Run time: 0.0s real_interface_map = [(`--`, `real_neg`); (`num_add`, `+`); (`+`, `real_add`); (`num_mul`, `*`); (`*`, `real_mul`); (`num_sub`, `-`); (`-`, `real_sub`); (`num_lt`, `<`); (`<`, `real_lt`); (`num_le`, `<=`); (`<=`, `real_le`); (`num_gt`, `>`); (`>`, `real_gt`); (`num_ge`, `>=`); (`>=`, `real_ge`); (`inv`, `real_inv`); (`&`, `real_of_num`)] : (string # string) list Run time: 0.0s () : void Run time: 0.0s Intermediate theorems generated: 43 () : void Run time: 0.0s () : void Run time: 0.0s tends_real_real = |- !f l x0. (f tends_real_real l)x0 = (f tends l)(mtop mr1,tendsto(mr1,x0)) Run time: 0.0s Intermediate theorems generated: 2 [] : (string # string) list Run time: 0.0s Theorem ABS_SUB autoloading from theory `REAL` ... ABS_SUB = |- !x y. abs(x - y) = abs(y - x) Run time: 0.0s Theorem MR1_DEF autoloading from theory `TOPOLOGY` ... MR1_DEF = |- !x y. dist mr1(x,y) = abs(y - x) Run time: 0.0s Theorem MR1_LIMPT autoloading from theory `TOPOLOGY` ... MR1_LIMPT = |- !x. limpt(mtop mr1)x re_universe Run time: 0.0s Theorem LIM_TENDS2 autoloading from theory `NETS` ... LIM_TENDS2 = |- !m1 m2 f x0 y0. limpt(mtop m1)x0 re_universe ==> ((f tends y0)(mtop m2,tendsto(m1,x0)) = (!e. (& 0) < e ==> (?d. (& 0) < d /\ (!x. (& 0) < (dist m1(x,x0)) /\ (dist m1(x,x0)) < d ==> (dist m2(f x,y0)) < e)))) Run time: 0.0s LIM = |- !f y0 x0. (f --> y0)x0 = (!e. (& 0) < e ==> (?d. (& 0) < d /\ (!x. (& 0) < (abs(x - x0)) /\ (abs(x - x0)) < d ==> (abs((f x) - y0)) < e))) Run time: 0.0s Intermediate theorems generated: 102 Theorem REAL_SUB_0 autoloading from theory `REAL` ... REAL_SUB_0 = |- !x y. (x - y = & 0) = (x = y) Run time: 0.0s Theorem ABS_NZ autoloading from theory `REAL` ... ABS_NZ = |- !x. ~(x = & 0) = (& 0) < (abs x) Run time: 0.0s Theorem MTOP_LIMPT autoloading from theory `TOPOLOGY` ... MTOP_LIMPT = |- !m x S. limpt(mtop m)x S = (!e. (& 0) < e ==> (?y. ~(x = y) /\ S y /\ (dist m(x,y)) < e)) Run time: 0.0s Theorem REAL_LE_REFL autoloading from theory `REAL` ... REAL_LE_REFL = |- !x. x <= x Run time: 0.0s Definition tendsto autoloading from theory `NETS` ... tendsto = |- !m x y z. tendsto(m,x)y z = (& 0) < (dist m(x,y)) /\ (dist m(x,y)) <= (dist m(x,z)) Run time: 0.0s Intermediate theorems generated: 1 Theorem METRIC_SAME autoloading from theory `TOPOLOGY` ... METRIC_SAME = |- !m x. dist m(x,x) = & 0 Run time: 0.0s Theorem MTOP_TENDS autoloading from theory `NETS` ... MTOP_TENDS = |- !d g x x0. (x tends x0)(mtop d,g) = (!e. (& 0) < e ==> (?n. g n n /\ (!m. g m n ==> (dist d(x m,x0)) < e))) Run time: 0.0s LIM_CONST = |- !k x. ((\x. k) --> k)x Run time: 0.0s Intermediate theorems generated: 193 Theorem DORDER_TENDSTO autoloading from theory `NETS` ... DORDER_TENDSTO = |- !m x. dorder(tendsto(m,x)) Run time: 0.0s Theorem NET_ADD autoloading from theory `NETS` ... NET_ADD = |- !g. dorder g ==> (!x x0 y y0. (x tends x0)(mtop mr1,g) /\ (y tends y0)(mtop mr1,g) ==> ((\n. (x n) + (y n)) tends (x0 + y0))(mtop mr1,g)) Run time: 0.0s LIM_ADD = |- !f g l m. (f --> l)x /\ (g --> m)x ==> ((\x. (f x) + (g x)) --> (l + m))x Run time: 0.0s Intermediate theorems generated: 40 Theorem NET_MUL autoloading from theory `NETS` ... NET_MUL = |- !g. dorder g ==> (!x y x0 y0. (x tends x0)(mtop mr1,g) /\ (y tends y0)(mtop mr1,g) ==> ((\n. (x n) * (y n)) tends (x0 * y0))(mtop mr1,g)) Run time: 0.0s LIM_MUL = |- !f g l m. (f --> l)x /\ (g --> m)x ==> ((\x. (f x) * (g x)) --> (l * m))x Run time: 0.0s Intermediate theorems generated: 40 Theorem NET_NEG autoloading from theory `NETS` ... NET_NEG = |- !g. dorder g ==> (!x x0. (x tends x0)(mtop mr1,g) = ((\n. --(x n)) tends (-- x0))(mtop mr1,g)) Run time: 0.0s LIM_NEG = |- !f l. (f --> l)x = ((\x. --(f x)) --> (-- l))x Run time: 0.0s Intermediate theorems generated: 33 Theorem NET_INV autoloading from theory `NETS` ... NET_INV = |- !g. dorder g ==> (!x x0. (x tends x0)(mtop mr1,g) /\ ~(x0 = & 0) ==> ((\n. inv(x n)) tends (inv x0))(mtop mr1,g)) Run time: 0.0s LIM_INV = |- !f l. (f --> l)x /\ ~(l = & 0) ==> ((\x. inv(f x)) --> (inv l))x Run time: 0.1s Intermediate theorems generated: 35 Theorem NET_SUB autoloading from theory `NETS` ... NET_SUB = |- !g. dorder g ==> (!x x0 y y0. (x tends x0)(mtop mr1,g) /\ (y tends y0)(mtop mr1,g) ==> ((\n. (x n) - (y n)) tends (x0 - y0))(mtop mr1,g)) Run time: 0.0s LIM_SUB = |- !f g l m. (f --> l)x /\ (g --> m)x ==> ((\x. (f x) - (g x)) --> (l - m))x Run time: 0.0s Intermediate theorems generated: 40 Theorem NET_DIV autoloading from theory `NETS` ... NET_DIV = |- !g. dorder g ==> (!x x0 y y0. (x tends x0)(mtop mr1,g) /\ (y tends y0)(mtop mr1,g) /\ ~(y0 = & 0) ==> ((\n. (x n) / (y n)) tends (x0 / y0))(mtop mr1,g)) Run time: 0.0s LIM_DIV = |- !f g l m. (f --> l)x /\ (g --> m)x /\ ~(m = & 0) ==> ((\x. (f x) / (g x)) --> (l / m))x Run time: 0.0s Intermediate theorems generated: 42 Theorem NET_NULL autoloading from theory `NETS` ... NET_NULL = |- !g x x0. (x tends x0)(mtop mr1,g) = ((\n. (x n) - x0) tends (& 0))(mtop mr1,g) Run time: 0.0s LIM_NULL = |- !f l x. (f --> l)x = ((\x. (f x) - l) --> (& 0))x Run time: 0.0s Intermediate theorems generated: 23 LIM_X = |- !x0. ((\x. x) --> x0)x0 Run time: 0.0s Intermediate theorems generated: 52 Theorem MTOP_TENDS_UNIQ autoloading from theory `NETS` ... MTOP_TENDS_UNIQ = |- !g d. dorder g ==> (x tends x0)(mtop d,g) /\ (x tends x1)(mtop d,g) ==> (x0 = x1) Run time: 0.0s LIM_UNIQ = |- !f l m x. (f --> l)x /\ (f --> m)x ==> (l = m) Run time: 0.0s Intermediate theorems generated: 36 LIM_EQUAL = |- !f g l x0. (!x. ~(x = x0) ==> (f x = g x)) ==> ((f --> l)x0 = (g --> l)x0) Run time: 0.0s Intermediate theorems generated: 171 Theorem REAL_LT_TRANS autoloading from theory `REAL` ... REAL_LT_TRANS = |- !x y z. x < y /\ y < z ==> x < z Run time: 0.0s Theorem REAL_LT_ADD2 autoloading from theory `REAL` ... REAL_LT_ADD2 = |- !w x y z. w < x /\ y < z ==> (w + y) < (x + z) Run time: 0.0s Theorem ABS_TRIANGLE autoloading from theory `REAL` ... ABS_TRIANGLE = |- !x y. (abs(x + y)) <= ((abs x) + (abs y)) Run time: 0.0s Theorem REAL_SUB_TRIANGLE autoloading from theory `REAL` ... REAL_SUB_TRIANGLE = |- !a b c. (a - b) + (b - c) = a - c Run time: 0.0s Theorem REAL_LET_TRANS autoloading from theory `REAL` ... REAL_LET_TRANS = |- !x y z. x <= y /\ y < z ==> x < z Run time: 0.0s Theorem REAL_HALF_DOUBLE autoloading from theory `REAL` ... REAL_HALF_DOUBLE = |- !x. (x / (& 2)) + (x / (& 2)) = x Run time: 0.0s Theorem REAL_LTE_TRANS autoloading from theory `REAL` ... REAL_LTE_TRANS = |- !x y z. x < y /\ y <= z ==> x < z Run time: 0.0s Theorem REAL_DOWN2 autoloading from theory `REAL` ... REAL_DOWN2 = |- !x y. (& 0) < x /\ (& 0) < y ==> (?z. (& 0) < z /\ z < x /\ z < y) Run time: 0.0s Theorem REAL_SUB_RZERO autoloading from theory `REAL` ... REAL_SUB_RZERO = |- !x. x - (& 0) = x Run time: 0.0s Theorem REAL_LT_HALF1 autoloading from theory `REAL` ... REAL_LT_HALF1 = |- !d. (& 0) < (d / (& 2)) = (& 0) < d Run time: 0.0s LIM_TRANSFORM = |- !f g x0 l. ((\x. (f x) - (g x)) --> (& 0))x0 /\ (g --> l)x0 ==> (f --> l)x0 Run time: 0.0s Intermediate theorems generated: 473 diffl = |- !f l x. (f diffl l)x = ((\h. ((f(x + h)) - (f x)) / h) --> l)(& 0) Run time: 0.0s Intermediate theorems generated: 2 contl = |- !f x. f contl x = ((\h. f(x + h)) --> (f x))(& 0) Run time: 0.0s Intermediate theorems generated: 2 differentiable = |- !f x. f differentiable x = (?l. (f diffl l)x) Run time: 0.0s Intermediate theorems generated: 2 DIFF_UNIQ = |- !f l m x. (f diffl l)x /\ (f diffl m)x ==> (l = m) Run time: 0.0s Intermediate theorems generated: 26 Theorem REAL_MUL_RZERO autoloading from theory `REAL` ... REAL_MUL_RZERO = |- !x. x * (& 0) = & 0 Run time: 0.0s Theorem REAL_DIV_RMUL autoloading from theory `REAL` ... REAL_DIV_RMUL = |- !x y. ~(y = & 0) ==> ((x / y) * y = x) Run time: 0.0s DIFF_CONT = |- !f l x. (f diffl l)x ==> f contl x Run time: 0.0s Intermediate theorems generated: 290 Theorem REAL_ADD_SUB autoloading from theory `REAL` ... REAL_ADD_SUB = |- !x y. (x + y) - x = y Run time: 0.0s Theorem REAL_SUB_ADD2 autoloading from theory `REAL` ... REAL_SUB_ADD2 = |- !x y. y + (x - y) = x Run time: 0.0s CONTL_LIM = |- !f x. f contl x = (f --> (f x))x Run time: 0.0s Intermediate theorems generated: 275 CONT_CONST = |- !x. (\x. k) contl x Run time: 0.0s Intermediate theorems generated: 20 CONT_ADD = |- !x. f contl x /\ g contl x ==> (\x. (f x) + (g x)) contl x Run time: 0.0s Intermediate theorems generated: 29 CONT_MUL = |- !x. f contl x /\ g contl x ==> (\x. (f x) * (g x)) contl x Run time: 0.0s Intermediate theorems generated: 29 CONT_NEG = |- !x. f contl x ==> (\x. --(f x)) contl x Run time: 0.0s Intermediate theorems generated: 43 CONT_INV = |- !x. f contl x /\ ~(f x = & 0) ==> (\x. inv(f x)) contl x Run time: 0.0s Intermediate theorems generated: 26 CONT_SUB = |- !x. f contl x /\ g contl x ==> (\x. (f x) - (g x)) contl x Run time: 0.0s Intermediate theorems generated: 29 CONT_DIV = |- !x. f contl x /\ g contl x /\ ~(g x = & 0) ==> (\x. (f x) / (g x)) contl x Run time: 0.0s Intermediate theorems generated: 31 Theorem REAL_LT_IMP_LE autoloading from theory `REAL` ... REAL_LT_IMP_LE = |- !x y. x < y ==> x <= y Run time: 0.0s Theorem REAL_NOT_LT autoloading from theory `REAL` ... REAL_NOT_LT = |- !x y. ~x < y = y <= x Run time: 0.0s Theorem REAL_SUB_ADD autoloading from theory `REAL` ... REAL_SUB_ADD = |- !x y. (x - y) + y = x Run time: 0.0s Theorem REAL_ADD_SYM autoloading from theory `REAL` ... REAL_ADD_SYM = |- !x y. x + y = y + x Run time: 0.0s Theorem REAL_LE_RADD autoloading from theory `REAL` ... REAL_LE_RADD = |- !x y z. (x + z) <= (y + z) = x <= y Run time: 0.0s Theorem REAL_LE_NEG autoloading from theory `REAL` ... REAL_LE_NEG = |- !x y. (-- x) <= (-- y) = y <= x Run time: 0.0s Theorem REAL_LE_LADD autoloading from theory `REAL` ... REAL_LE_LADD = |- !x y z. (x + y) <= (x + z) = y <= z Run time: 0.0s Definition real_sub autoloading from theory `REAL` ... real_sub = |- !x y. x - y = x + (-- y) Run time: 0.0s Intermediate theorems generated: 1 Theorem REAL_NOT_LE autoloading from theory `REAL` ... REAL_NOT_LE = |- !x y. ~x <= y = y < x Run time: 0.0s Theorem REAL_LT_LE autoloading from theory `REAL` ... REAL_LT_LE = |- !x y. x < y = x <= y /\ ~(x = y) Run time: 0.0s Theorem REAL_SUB_LT autoloading from theory `REAL` ... REAL_SUB_LT = |- !x y. (& 0) < (x - y) = y < x Run time: 0.0s Theorem REAL_SUB_LE autoloading from theory `REAL` ... REAL_SUB_LE = |- !x y. (& 0) <= (x - y) = y <= x Run time: 0.0s Definition abs autoloading from theory `REAL` ... abs = |- !x. abs x = ((& 0) <= x => x | -- x) Run time: 0.0s Intermediate theorems generated: 1 Theorem REAL_LT_TOTAL autoloading from theory `REAL` ... REAL_LT_TOTAL = |- !x y. (x = y) \/ x < y \/ y < x Run time: 0.0s Theorem REAL_LT_01 autoloading from theory `REAL` ... REAL_LT_01 = |- (& 0) < (& 1) Run time: 0.0s Theorem REAL_LE_TRANS autoloading from theory `REAL` ... REAL_LE_TRANS = |- !x y z. x <= y /\ y <= z ==> x <= z Run time: 0.0s Theorem REAL_LE_TOTAL autoloading from theory `REAL` ... REAL_LE_TOTAL = |- !x y. x <= y \/ y <= x Run time: 0.0s Theorem BOLZANO_LEMMA autoloading from theory `SEQ` ... BOLZANO_LEMMA = |- !P. (!a b c. a <= b /\ b <= c /\ P(a,b) /\ P(b,c) ==> P(a,c)) /\ (!x. ?d. (& 0) < d /\ (!a b. a <= x /\ x <= b /\ (b - a) < d ==> P(a,b))) ==> (!a b. a <= b ==> P(a,b)) Run time: 0.0s IVT = |- !f a b y. a <= b /\ ((f a) <= y /\ y <= (f b)) /\ (!x. a <= x /\ x <= b ==> f contl x) ==> (?x. a <= x /\ x <= b /\ (f x = y)) Run time: 0.1s Intermediate theorems generated: 2647 Theorem REAL_NEGNEG autoloading from theory `REAL` ... REAL_NEGNEG = |- !x. --(-- x) = x Run time: 0.0s Theorem REAL_NEG_EQ autoloading from theory `REAL` ... REAL_NEG_EQ = |- !x y. (-- x = y) = (x = -- y) Run time: 0.0s IVT2 = |- !f a b y. a <= b /\ ((f b) <= y /\ y <= (f a)) /\ (!x. a <= x /\ x <= b ==> f contl x) ==> (?x. a <= x /\ x <= b /\ (f x = y)) Run time: 0.0s Intermediate theorems generated: 158 Theorem REAL_MUL_LZERO autoloading from theory `REAL` ... REAL_MUL_LZERO = |- !x. (& 0) * x = & 0 Run time: 0.0s Definition real_div autoloading from theory `REAL` ... real_div = |- !x y. x / y = x * (inv y) Run time: 0.0s Intermediate theorems generated: 1 Theorem REAL_SUB_REFL autoloading from theory `REAL` ... REAL_SUB_REFL = |- !x. x - x = & 0 Run time: 0.0s DIFF_CONST = |- !k x. ((\x. k) diffl (& 0))x Run time: 0.0s Intermediate theorems generated: 59 Theorem REAL_RDISTRIB autoloading from theory `REAL` ... REAL_RDISTRIB = |- !x y z. (x + y) * z = (x * z) + (y * z) Run time: 0.0s Theorem REAL_ADD2_SUB2 autoloading from theory `REAL` ... REAL_ADD2_SUB2 = |- !a b c d. (a + b) - (c + d) = (a - c) + (b - d) Run time: 0.0s DIFF_ADD = |- !f g l m x. (f diffl l)x /\ (g diffl m)x ==> ((\x. (f x) + (g x)) diffl (l + m))x Run time: 0.0s Intermediate theorems generated: 150 Theorem REAL_MUL_SYM autoloading from theory `REAL` ... REAL_MUL_SYM = |- !x y. x * y = y * x Run time: 0.0s Theorem REAL_MUL_ASSOC autoloading from theory `REAL` ... REAL_MUL_ASSOC = |- !x y z. x * (y * z) = (x * y) * z Run time: 0.0s Theorem REAL_SUB_RDISTRIB autoloading from theory `REAL` ... REAL_SUB_RDISTRIB = |- !x y z. (x - y) * z = (x * z) - (y * z) Run time: 0.0s Theorem REAL_SUB_LDISTRIB autoloading from theory `REAL` ... REAL_SUB_LDISTRIB = |- !x y z. x * (y - z) = (x * y) - (x * z) Run time: 0.0s Theorem REAL_ADD_LID autoloading from theory `REAL` ... REAL_ADD_LID = |- !x. (& 0) + x = x Run time: 0.0s Theorem REAL_ADD_LINV autoloading from theory `REAL` ... REAL_ADD_LINV = |- !x. (-- x) + x = & 0 Run time: 0.0s Theorem REAL_ADD_ASSOC autoloading from theory `REAL` ... REAL_ADD_ASSOC = |- !x y z. x + (y + z) = (x + y) + z Run time: 0.0s DIFF_MUL = |- !f g l m x. (f diffl l)x /\ (g diffl m)x ==> ((\x. (f x) * (g x)) diffl ((l * (g x)) + (m * (f x))))x Run time: 0.0s Intermediate theorems generated: 567 DIFF_CMUL = |- !f c l x. (f diffl l)x ==> ((\x. c * (f x)) diffl (c * l))x Run time: 0.0s Intermediate theorems generated: 100 Theorem REAL_NEG_MINUS1 autoloading from theory `REAL` ... REAL_NEG_MINUS1 = |- !x. -- x = (--(& 1)) * x Run time: 0.0s DIFF_NEG = |- !f l x. (f diffl l)x ==> ((\x. --(f x)) diffl (-- l))x Run time: 0.0s Intermediate theorems generated: 20 DIFF_SUB = |- !f g l m x. (f diffl l)x /\ (g diffl m)x ==> ((\x. (f x) - (g x)) diffl (l - m))x Run time: 0.0s Intermediate theorems generated: 50 Theorem NET_NULL_MUL autoloading from theory `NETS` ... NET_NULL_MUL = |- !g. dorder g ==> (!x y. bounded(mr1,g)x /\ (y tends (& 0))(mtop mr1,g) ==> ((\n. (x n) * (y n)) tends (& 0))(mtop mr1,g)) Run time: 0.1s LIM_NULL_MUL = |- !x x0 y. bounded(mr1,tendsto(mr1,x0))x /\ (y --> (& 0))x0 ==> ((\u. (x u) * (y u)) --> (& 0))x0 Run time: 0.0s Intermediate theorems generated: 35 Theorem REAL_LT_HALF2 autoloading from theory `REAL` ... REAL_LT_HALF2 = |- !d. (d / (& 2)) < d = (& 0) < d Run time: 0.0s Theorem ABS_REFL autoloading from theory `REAL` ... ABS_REFL = |- !x. (abs x = x) = (& 0) <= x Run time: 0.0s Theorem ABS_LE autoloading from theory `REAL` ... ABS_LE = |- !x. x <= (abs x) Run time: 0.0s Theorem MR1_BOUNDED autoloading from theory `NETS` ... MR1_BOUNDED = |- !g f. bounded(mr1,g)f = (?k N. g N N /\ (!n. g n N ==> (abs(f n)) < k)) Run time: 0.0s LIM_BOUNDED = |- bounded(mr1,tendsto(mr1,x0))f = (?k d. (& 0) < d /\ (!x. (& 0) < (abs(x - x0)) /\ (abs(x - x0)) < d ==> (abs(f x)) < k)) Run time: 0.0s Intermediate theorems generated: 362 Theorem REAL_MUL_LID autoloading from theory `REAL` ... REAL_MUL_LID = |- !x. (& 1) * x = x Run time: 0.0s Theorem REAL_MUL_LINV autoloading from theory `REAL` ... REAL_MUL_LINV = |- !x. ~(x = & 0) ==> ((inv x) * x = & 1) Run time: 0.0s CHAIN_LEMMA1 = |- !f g x h. ((f(g(x + h))) - (f(g x))) / h = (((f(g(x + h))) - (f(g x))) / ((g(x + h)) - (g x))) * (((g(x + h)) - (g x)) / h) Run time: 0.0s Intermediate theorems generated: 170 Theorem REAL_LT_RADD autoloading from theory `REAL` ... REAL_LT_RADD = |- !x y z. (x + z) < (y + z) = x < y Run time: 0.0s CHAIN_LEMMA2 = |- !x y d. (abs(x - y)) < d ==> (abs x) < ((abs y) + d) Run time: 0.0s Intermediate theorems generated: 65 Theorem ABS_POS autoloading from theory `REAL` ... ABS_POS = |- !x. (& 0) <= (abs x) Run time: 0.0s Theorem REAL_LE_ADDL autoloading from theory `REAL` ... REAL_LE_ADDL = |- !x y. y <= (x + y) = (& 0) <= x Run time: 0.0s Theorem ABS_0 autoloading from theory `REAL` ... ABS_0 = |- abs(& 0) = & 0 Run time: 0.0s Theorem REAL_LT_REFL autoloading from theory `REAL` ... REAL_LT_REFL = |- !x. ~x < x Run time: 0.0s Theorem ABS_NEG autoloading from theory `REAL` ... ABS_NEG = |- !x. abs(-- x) = abs x Run time: 0.0s Theorem REAL_SUB_LZERO autoloading from theory `REAL` ... REAL_SUB_LZERO = |- !x. (& 0) - x = -- x Run time: 0.0s DIFF_CHAIN = |- !f g x. (f diffl l)(g x) /\ (g diffl m)x ==> ((\x. f(g x)) diffl (l * m))x Run time: 0.1s Intermediate theorems generated: 2058 Theorem REAL_DIV_REFL autoloading from theory `REAL` ... REAL_DIV_REFL = |- !x. ~(x = & 0) ==> (x / x = & 1) Run time: 0.0s DIFF_X = |- !x. ((\x. x) diffl (& 1))x Run time: 0.0s Intermediate theorems generated: 148 Theorem REAL_MUL_RID autoloading from theory `REAL` ... REAL_MUL_RID = |- !x. x * (& 1) = x Run time: 0.0s Theorem POW_ADD autoloading from theory `REAL` ... POW_ADD = |- !c m n. c pow (m num_add n) = (c pow m) * (c pow n) Run time: 0.0s Theorem num_CASES autoloading from theory `arithmetic` ... num_CASES = |- !m. (m = 0) \/ (?n. m = SUC n) Run time: 0.0s Theorem ADD_SUB autoloading from theory `arithmetic` ... ADD_SUB = |- !a c. (a num_add c) num_sub c = a Run time: 0.0s Theorem ADD1 autoloading from theory `arithmetic` ... ADD1 = |- !m. SUC m = m num_add 1 Run time: 0.0s Theorem REAL autoloading from theory `REAL` ... REAL = |- !n. &(SUC n) = (& n) + (& 1) Run time: 0.0s Definition pow autoloading from theory `REAL` ... pow = |- (!x. x pow 0 = & 1) /\ (!x n. x pow (SUC n) = x * (x pow n)) Run time: 0.0s Intermediate theorems generated: 1 DIFF_POW = |- !n x. ((\x'. x' pow n) diffl ((& n) * (x pow (n num_sub 1))))x Run time: 0.0s Intermediate theorems generated: 335 Theorem REAL_ADD_RID autoloading from theory `REAL` ... REAL_ADD_RID = |- !x. x + (& 0) = x Run time: 0.0s Theorem POW_2 autoloading from theory `REAL` ... POW_2 = |- !x. x pow 2 = x * x Run time: 0.0s Theorem REAL_NEG_SUB autoloading from theory `REAL` ... REAL_NEG_SUB = |- !x y. --(x - y) = y - x Run time: 0.0s Theorem REAL_NEG_RMUL autoloading from theory `REAL` ... REAL_NEG_RMUL = |- !x y. --(x * y) = x * (-- y) Run time: 0.0s Theorem REAL_NEG_LMUL autoloading from theory `REAL` ... REAL_NEG_LMUL = |- !x y. --(x * y) = (-- x) * y Run time: 0.0s Theorem REAL_ENTIRE autoloading from theory `REAL` ... REAL_ENTIRE = |- !x y. (x * y = & 0) = (x = & 0) \/ (y = & 0) Run time: 0.0s Theorem REAL_EQ_LMUL autoloading from theory `REAL` ... REAL_EQ_LMUL = |- !x y z. (x * y = x * z) = (x = & 0) \/ (y = z) Run time: 0.0s Theorem REAL_LNEG_UNIQ autoloading from theory `REAL` ... REAL_LNEG_UNIQ = |- !x y. (x + y = & 0) = (x = -- y) Run time: 0.0s Theorem ABS_ZERO autoloading from theory `REAL` ... ABS_ZERO = |- !x. (abs x = & 0) = (x = & 0) Run time: 0.0s DIFF_XM1 = |- !x. ~(x = & 0) ==> ((\x. inv x) diffl (--((inv x) pow 2)))x Run time: 0.0s Intermediate theorems generated: 818 Theorem POW_INV autoloading from theory `REAL` ... POW_INV = |- !c. ~(c = & 0) ==> (!n. inv(c pow n) = (inv c) pow n) Run time: 0.0s DIFF_INV = |- !f l x. (f diffl l)x /\ ~(f x = & 0) ==> ((\x. inv(f x)) diffl (--(l / ((f x) pow 2))))x Run time: 0.0s Intermediate theorems generated: 106 Theorem REAL_MUL_RINV autoloading from theory `REAL` ... REAL_MUL_RINV = |- !x. ~(x = & 0) ==> (x * (inv x) = & 1) Run time: 0.0s Theorem REAL_INV_MUL autoloading from theory `REAL` ... REAL_INV_MUL = |- !x y. ~(x = & 0) /\ ~(y = & 0) ==> (inv(x * y) = (inv x) * (inv y)) Run time: 0.0s Theorem REAL_LDISTRIB autoloading from theory `REAL` ... REAL_LDISTRIB = |- !x y z. x * (y + z) = (x * y) + (x * z) Run time: 0.0s DIFF_DIV = |- !f g l m. (f diffl l)x /\ (g diffl m)x /\ ~(g x = & 0) ==> ((\x. (f x) / (g x)) diffl (((l * (g x)) - (m * (f x))) / ((g x) pow 2))) x Run time: 0.0s Intermediate theorems generated: 293 Theorem LESS_EQ_ADD autoloading from theory `arithmetic` ... LESS_EQ_ADD = |- !m n. m num_le (m num_add n) Run time: 0.0s Theorem LESS_SUC_REFL autoloading from theory `prim_rec` ... LESS_SUC_REFL = |- !n. n num_lt (SUC n) Run time: 0.0s Theorem ADD_CLAUSES autoloading from theory `arithmetic` ... ADD_CLAUSES = |- (0 num_add m = m) /\ (m num_add 0 = m) /\ ((SUC m) num_add n = SUC(m num_add n)) /\ (m num_add (SUC n) = SUC(m num_add n)) Run time: 0.0s Theorem LESS_TRANS autoloading from theory `arithmetic` ... LESS_TRANS = |- !m n p. m num_lt n /\ n num_lt p ==> m num_lt p Run time: 0.0s Theorem Sum autoloading from theory `REAL` ... Sum = |- (Sum(n,0)f = & 0) /\ (Sum(n,SUC m)f = (Sum(n,m)f) + (f(n num_add m))) Run time: 0.0s DIFF_SUM = |- !f f' m n x. (!r. m num_le r /\ r num_lt (m num_add n) ==> ((\x'. f r x') diffl (f' r x))x) ==> ((\x'. Sum(m,n)(\n'. f n' x')) diffl (Sum(m,n)(\r. f' r x)))x Run time: 0.0s Intermediate theorems generated: 301 CONT_BOUNDED = |- !f a b. a <= b /\ (!x. a <= x /\ x <= b ==> f contl x) ==> (?M. !x. a <= x /\ x <= b ==> (f x) <= M) Run time: 0.1s Intermediate theorems generated: 1866 Theorem REAL_LE_LT autoloading from theory `REAL` ... REAL_LE_LT = |- !x y. x <= y = x < y \/ (x = y) Run time: 0.0s Theorem REAL_SUP_LE autoloading from theory `REAL` ... REAL_SUP_LE = |- !P. (?x. P x) /\ (?z. !x. P x ==> x <= z) ==> (!y. (?x. P x /\ y < x) = y < (sup P)) Run time: 0.0s CONT_HASSUP = |- !f a b. a <= b /\ (!x. a <= x /\ x <= b ==> f contl x) ==> (?M. (!x. a <= x /\ x <= b ==> (f x) <= M) /\ (!N. N < M ==> (?x. a <= x /\ x <= b /\ N < (f x)))) Run time: 0.0s Intermediate theorems generated: 412 Theorem REAL_LT_SUB_RADD autoloading from theory `REAL` ... REAL_LT_SUB_RADD = |- !x y z. (x - y) < z = x < (z + y) Run time: 0.0s Theorem REAL_LT_SUB_LADD autoloading from theory `REAL` ... REAL_LT_SUB_LADD = |- !x y z. x < (y - z) = (x + z) < y Run time: 0.0s Theorem REAL_INVINV autoloading from theory `REAL` ... REAL_INVINV = |- !x. ~(x = & 0) ==> (inv(inv x) = x) Run time: 0.0s Theorem REAL_LT_INV autoloading from theory `REAL` ... REAL_LT_INV = |- !x y. (& 0) < x /\ x < y ==> (inv y) < (inv x) Run time: 0.0s Theorem REAL_LT_ADDR autoloading from theory `REAL` ... REAL_LT_ADDR = |- !x y. x < (x + y) = (& 0) < y Run time: 0.0s Theorem REAL_INV_POS autoloading from theory `REAL` ... REAL_INV_POS = |- !x. (& 0) < x ==> (& 0) < (inv x) Run time: 0.0s Theorem REAL_LT_IMP_NE autoloading from theory `REAL` ... REAL_LT_IMP_NE = |- !x y. x < y ==> ~(x = y) Run time: 0.0s CONT_ATTAINS = |- !f a b. a <= b /\ (!x. a <= x /\ x <= b ==> f contl x) ==> (?M. (!x. a <= x /\ x <= b ==> (f x) <= M) /\ (?x. a <= x /\ x <= b /\ (f x = M))) Run time: 0.0s Intermediate theorems generated: 1646 CONT_ATTAINS2 = |- !f a b. a <= b /\ (!x. a <= x /\ x <= b ==> f contl x) ==> (?M. (!x. a <= x /\ x <= b ==> M <= (f x)) /\ (?x. a <= x /\ x <= b /\ (f x = M))) Run time: 0.0s Intermediate theorems generated: 177 Theorem ABS_SIGN autoloading from theory `REAL` ... ABS_SIGN = |- !x y. (abs(x - y)) < y ==> (& 0) < x Run time: 0.0s Theorem REAL_LT_RMUL autoloading from theory `REAL` ... REAL_LT_RMUL = |- !x y z. (& 0) < z ==> ((x * z) < (y * z) = x < y) Run time: 0.0s DIFF_LINC = |- !f x l. (f diffl l)x /\ (& 0) < l ==> (?d. (& 0) < d /\ (!h. (& 0) < h /\ h < d ==> (f x) < (f(x + h)))) Run time: 0.0s Intermediate theorems generated: 270 Theorem REAL_NEG_LE0 autoloading from theory `REAL` ... REAL_NEG_LE0 = |- !x. (-- x) <= (& 0) = (& 0) <= x Run time: 0.0s Theorem ABS_SIGN2 autoloading from theory `REAL` ... ABS_SIGN2 = |- !x y. (abs(x - y)) < (-- y) ==> x < (& 0) Run time: 0.0s Theorem REAL_NEG_INV autoloading from theory `REAL` ... REAL_NEG_INV = |- !x. ~(x = & 0) ==> (--(inv x) = inv(-- x)) Run time: 0.0s Theorem REAL_NEG_LT0 autoloading from theory `REAL` ... REAL_NEG_LT0 = |- !x. (-- x) < (& 0) = (& 0) < x Run time: 0.0s DIFF_LDEC = |- !f x l. (f diffl l)x /\ l < (& 0) ==> (?d. (& 0) < d /\ (!h. (& 0) < h /\ h < d ==> (f x) < (f(x - h)))) Run time: 0.0s Intermediate theorems generated: 469 Theorem REAL_ADD_SUB2 autoloading from theory `REAL` ... REAL_ADD_SUB2 = |- !x y. x - (x + y) = -- y Run time: 0.0s Theorem REAL_SUB_SUB2 autoloading from theory `REAL` ... REAL_SUB_SUB2 = |- !x y. x - (x - y) = y Run time: 0.0s DIFF_LMAX = |- !f x l. (f diffl l)x /\ (?d. (& 0) < d /\ (!y. (abs(x - y)) < d ==> (f y) <= (f x))) ==> (l = & 0) Run time: 0.1s Intermediate theorems generated: 572 Theorem REAL_NEG_EQ0 autoloading from theory `REAL` ... REAL_NEG_EQ0 = |- !x. (-- x = & 0) = (x = & 0) Run time: 0.0s DIFF_LMIN = |- !f x l. (f diffl l)x /\ (?d. (& 0) < d /\ (!y. (abs(x - y)) < d ==> (f x) <= (f y))) ==> (l = & 0) Run time: 0.0s Intermediate theorems generated: 88 DIFF_LCONST = |- !f x l. (f diffl l)x /\ (?d. (& 0) < d /\ (!y. (abs(x - y)) < d ==> (f y = f x))) ==> (l = & 0) Run time: 0.0s Intermediate theorems generated: 96 INTERVAL_LEMMA = |- !a b x. a < x /\ x < b ==> (?d. (& 0) < d /\ (!y. (abs(x - y)) < d ==> a <= y /\ y <= b)) Run time: 0.0s Intermediate theorems generated: 466 Theorem REAL_MEAN autoloading from theory `REAL` ... REAL_MEAN = |- !x y. x < y ==> (?z. x < z /\ z < y) Run time: 0.0s Theorem REAL_LE_ANTISYM autoloading from theory `REAL` ... REAL_LE_ANTISYM = |- !x y. x <= y /\ y <= x = (x = y) Run time: 0.0s ROLLE = |- !f a b. a < b /\ (f a = f b) /\ (!x. a <= x /\ x <= b ==> f contl x) /\ (!x. a < x /\ x < b ==> f differentiable x) ==> (?z. a < z /\ z < b /\ (f diffl (& 0))z) Run time: 0.0s Intermediate theorems generated: 3178 gfn = "\x. (f x) - ((((f b) - (f a)) / (b - a)) * x)" : term Run time: 0.0s Theorem REAL_NEG_ADD autoloading from theory `REAL` ... REAL_NEG_ADD = |- !x y. --(x + y) = (-- x) + (-- y) Run time: 0.0s Theorem REAL_EQ_RMUL autoloading from theory `REAL` ... REAL_EQ_RMUL = |- !x y z. (x * z = y * z) = (z = & 0) \/ (x = y) Run time: 0.0s MVT_LEMMA = |- !f a b. (\x. (f x) - ((((f b) - (f a)) / (b - a)) * x))a = (\x. (f x) - ((((f b) - (f a)) / (b - a)) * x))b Run time: 0.0s Intermediate theorems generated: 443 Theorem REAL_DIV_LMUL autoloading from theory `REAL` ... REAL_DIV_LMUL = |- !x y. ~(y = & 0) ==> (y * (x / y) = x) Run time: 0.0s MVT = |- !f a b. a < b /\ (!x. a <= x /\ x <= b ==> f contl x) /\ (!x. a < x /\ x < b ==> f differentiable x) ==> (?l z. a < z /\ z < b /\ (f diffl l)z /\ ((f b) - (f a) = (b - a) * l)) Run time: 0.0s Intermediate theorems generated: 612 DIFF_ISCONST_END = |- !f a b. a < b /\ (!x. a <= x /\ x <= b ==> f contl x) /\ (!x. a < x /\ x < b ==> (f diffl (& 0))x) ==> (f b = f a) Run time: 0.0s Intermediate theorems generated: 253 DIFF_ISCONST = |- !f a b. a < b /\ (!x. a <= x /\ x <= b ==> f contl x) /\ (!x. a < x /\ x < b ==> (f diffl (& 0))x) ==> (!x. a <= x /\ x <= b ==> (f x = f a)) Run time: 0.1s Intermediate theorems generated: 310 DIFF_ISCONST_ALL = |- !f. (!x. (f diffl (& 0))x) ==> (!x y. f x = f y) Run time: 0.0s Intermediate theorems generated: 172 () : void Run time: 0.0s Intermediate theorems generated: 1 File lim.ml loaded () : void Run time: 0.7s Intermediate theorems generated: 21608 #\ echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `powser.ml`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool false : bool () : void Theory SEQ loaded Theory LIM loaded () : void false : bool Run time: 0.0s LAND_CONV = - : (conv -> conv) Run time: 0.0s TAUT_CONV = - : conv Run time: 0.0s AC = - : ((thm # thm) -> conv) Run time: 0.0s GEN_PAIR_TAC = - : tactic Run time: 0.0s MK_COMB_TAC = - : tactic Run time: 0.0s BINOP_TAC = - : tactic Run time: 0.0s SYM_CANON_CONV = - : (thm -> ((term # term) -> bool) -> conv) Run time: 0.0s IMP_SUBST_TAC = - : thm_tactic Run time: 0.0s ABBREV_TAC = - : (term -> tactic) Run time: 0.0s EXT_CONV = - : conv Run time: 0.0s ABS_TAC = - : tactic Run time: 0.0s EQUAL_TAC = - : tactic Run time: 0.0s X_BETA_CONV = - : (term -> conv) Run time: 0.0s EXACT_CONV = - : (thm list -> conv) Run time: 0.0s HABS_CONV = - : conv Run time: 0.0s autoload_definitions = - : (string -> void) Run time: 0.0s autoload_theorems = - : (string -> void) Run time: 0.0s EXPAND_TAC = - : (string -> tactic) Run time: 0.0s File useful loaded () : void Run time: 0.0s real_interface_map = [(`--`, `real_neg`); (`num_add`, `+`); (`+`, `real_add`); (`num_mul`, `*`); (`*`, `real_mul`); (`num_sub`, `-`); (`-`, `real_sub`); (`num_lt`, `<`); (`<`, `real_lt`); (`num_le`, `<=`); (`<=`, `real_le`); (`num_gt`, `>`); (`>`, `real_gt`); (`num_ge`, `>=`); (`>=`, `real_ge`); (`inv`, `real_inv`); (`&`, `real_of_num`)] : (string # string) list Run time: 0.0s [(); ()] : void list Run time: 0.0s [] : (string # string) list Run time: 0.0s () : void Run time: 0.0s Intermediate theorems generated: 47 () : void Run time: 0.0s Definition pow autoloading from theory `REAL` ... pow = |- (!x. x pow 0 = & 1) /\ (!x n. x pow (SUC n) = x * (x pow n)) Run time: 0.0s Intermediate theorems generated: 1 Definition SUB autoloading from theory `arithmetic` ... SUB = |- (!m. 0 num_sub m = 0) /\ (!m n. (SUC m) num_sub n = (m num_lt n => 0 | SUC(m num_sub n))) Run time: 0.0s Intermediate theorems generated: 1 Theorem LESS_IMP_LESS_OR_EQ autoloading from theory `arithmetic` ... LESS_IMP_LESS_OR_EQ = |- !m n. m num_lt n ==> m num_le n Run time: 0.0s Theorem LESS_EQ_REFL autoloading from theory `arithmetic` ... LESS_EQ_REFL = |- !m. m num_le m Run time: 0.0s Theorem LESS_THM autoloading from theory `prim_rec` ... LESS_THM = |- !m n. m num_lt (SUC n) = (m = n) \/ m num_lt n Run time: 0.0s Theorem NOT_LESS autoloading from theory `arithmetic` ... NOT_LESS = |- !m n. ~m num_lt n = n num_le m Run time: 0.0s Theorem ADD_CLAUSES autoloading from theory `arithmetic` ... ADD_CLAUSES = |- (0 num_add m = m) /\ (m num_add 0 = m) /\ ((SUC m) num_add n = SUC(m num_add n)) /\ (m num_add (SUC n) = SUC(m num_add n)) Run time: 0.0s Theorem REAL_MUL_ASSOC autoloading from theory `REAL` ... REAL_MUL_ASSOC = |- !x y z. x * (y * z) = (x * y) * z Run time: 0.0s Theorem REAL_MUL_SYM autoloading from theory `REAL` ... REAL_MUL_SYM = |- !x y. x * y = y * x Run time: 0.0s Theorem SUM_SUBST autoloading from theory `REAL` ... SUM_SUBST = |- !f g m n. (!p. m num_le p /\ p num_lt (m num_add n) ==> (f p = g p)) ==> (Sum(m,n)f = Sum(m,n)g) Run time: 0.0s Theorem SUM_CMUL autoloading from theory `REAL` ... SUM_CMUL = |- !f c m n. Sum(m,n)(\n'. c * (f n')) = c * (Sum(m,n)f) Run time: 0.0s POWDIFF_LEMMA = |- !n x y. Sum(0,SUC n)(\p. (x pow p) * (y pow ((SUC n) num_sub p))) = y * (Sum(0,SUC n)(\p. (x pow p) * (y pow (n num_sub p)))) Run time: 0.0s Intermediate theorems generated: 223 Theorem REAL_ADD_LINV autoloading from theory `REAL` ... REAL_ADD_LINV = |- !x. (-- x) + x = & 0 Run time: 0.0s Theorem REAL_ADD_LID_UNIQ autoloading from theory `REAL` ... REAL_ADD_LID_UNIQ = |- !x y. (x + y = y) = (x = & 0) Run time: 0.0s Theorem REAL_ADD_SYM autoloading from theory `REAL` ... REAL_ADD_SYM = |- !x y. x + y = y + x Run time: 0.0s Theorem REAL_ADD_ASSOC autoloading from theory `REAL` ... REAL_ADD_ASSOC = |- !x y z. x + (y + z) = (x + y) + z Run time: 0.0s Definition real_sub autoloading from theory `REAL` ... real_sub = |- !x y. x - y = x + (-- y) Run time: 0.0s Intermediate theorems generated: 1 Theorem REAL_SUB_LDISTRIB autoloading from theory `REAL` ... REAL_SUB_LDISTRIB = |- !x y z. x * (y - z) = (x * y) - (x * z) Run time: 0.0s Theorem SUB_EQUAL_0 autoloading from theory `arithmetic` ... SUB_EQUAL_0 = |- !c. c num_sub c = 0 Run time: 0.0s Theorem REAL_LDISTRIB autoloading from theory `REAL` ... REAL_LDISTRIB = |- !x y z. x * (y + z) = (x * y) + (x * z) Run time: 0.0s Theorem REAL_MUL_RID autoloading from theory `REAL` ... REAL_MUL_RID = |- !x. x * (& 1) = x Run time: 0.0s Theorem SUB_0 autoloading from theory `arithmetic` ... SUB_0 = |- !m. (0 num_sub m = 0) /\ (m num_sub 0 = m) Run time: 0.0s Theorem REAL_ADD_LID autoloading from theory `REAL` ... REAL_ADD_LID = |- !x. (& 0) + x = x Run time: 0.0s Theorem Sum autoloading from theory `REAL` ... Sum = |- (Sum(n,0)f = & 0) /\ (Sum(n,SUC m)f = (Sum(n,m)f) + (f(n num_add m))) Run time: 0.0s POWDIFF = |- !n x y. (x pow (SUC n)) - (y pow (SUC n)) = (x - y) * (Sum(0,SUC n)(\p. (x pow p) * (y pow (n num_sub p)))) Run time: 0.0s Intermediate theorems generated: 485 Theorem REAL_NEG_SUB autoloading from theory `REAL` ... REAL_NEG_SUB = |- !x y. --(x - y) = y - x Run time: 0.0s Theorem REAL_NEG_LMUL autoloading from theory `REAL` ... REAL_NEG_LMUL = |- !x y. --(x * y) = (-- x) * y Run time: 0.0s Theorem REAL_NEGNEG autoloading from theory `REAL` ... REAL_NEGNEG = |- !x. --(-- x) = x Run time: 0.0s Theorem REAL_SUB_0 autoloading from theory `REAL` ... REAL_SUB_0 = |- !x y. (x - y = & 0) = (x = y) Run time: 0.0s Theorem ADD_SYM autoloading from theory `arithmetic` ... ADD_SYM = |- !m n. m num_add n = n num_add m Run time: 0.0s Theorem POW_ADD autoloading from theory `REAL` ... POW_ADD = |- !c m n. c pow (m num_add n) = (c pow m) * (c pow n) Run time: 0.0s Theorem REAL_EQ_LMUL2 autoloading from theory `REAL` ... REAL_EQ_LMUL2 = |- !x y z. ~(x = & 0) ==> ((y = z) = (x * y = x * z)) Run time: 0.0s POWREV = |- !n x y. Sum(0,SUC n)(\p. (x pow p) * (y pow (n num_sub p))) = Sum(0,SUC n)(\p. (x pow (n num_sub p)) * (y pow p)) Run time: 0.0s Intermediate theorems generated: 235 Theorem REAL_LT_IMP_NE autoloading from theory `REAL` ... REAL_LT_IMP_NE = |- !x y. x < y ==> ~(x = y) Run time: 0.0s Theorem POW_INV autoloading from theory `REAL` ... POW_INV = |- !c. ~(c = & 0) ==> (!n. inv(c pow n) = (inv c) pow n) Run time: 0.0s Theorem POW_MUL autoloading from theory `REAL` ... POW_MUL = |- !n x y. (x * y) pow n = (x pow n) * (y pow n) Run time: 0.0s Theorem POW_ABS autoloading from theory `REAL` ... POW_ABS = |- !c n. (abs c) pow n = abs(c pow n) Run time: 0.0s Theorem REAL_LT_1 autoloading from theory `REAL` ... REAL_LT_1 = |- !x y. (& 0) <= x /\ x < y ==> (x / y) < (& 1) Run time: 0.0s Theorem REAL_NOT_LT autoloading from theory `REAL` ... REAL_NOT_LT = |- !x y. ~x < y = y <= x Run time: 0.0s Theorem ABS_INV autoloading from theory `REAL` ... ABS_INV = |- !x. ~(x = & 0) ==> (abs(inv x) = inv(abs x)) Run time: 0.0s Theorem GP autoloading from theory `SEQ` ... GP = |- !x. (abs x) < (& 1) ==> (\n. x pow n) sums (inv((& 1) - x)) Run time: 0.0s Theorem SER_CMUL autoloading from theory `SEQ` ... SER_CMUL = |- !x x0 c. x sums x0 ==> (\n. c * (x n)) sums (c * x0) Run time: 0.0s Definition real_div autoloading from theory `REAL` ... real_div = |- !x y. x / y = x * (inv y) Run time: 0.0s Intermediate theorems generated: 1 Definition summable autoloading from theory `SEQ` ... summable = |- !f. summable f = (?s. f sums s) Run time: 0.0s Intermediate theorems generated: 1 Theorem REAL_LT_IMP_LE autoloading from theory `REAL` ... REAL_LT_IMP_LE = |- !x y. x < y ==> x <= y Run time: 0.0s Theorem REAL_LE_RMUL autoloading from theory `REAL` ... REAL_LE_RMUL = |- !x y z. (& 0) < z ==> ((x * z) <= (y * z) = x <= y) Run time: 0.0s Theorem REAL_LE_REFL autoloading from theory `REAL` ... REAL_LE_REFL = |- !x. x <= x Run time: 0.0s Theorem REAL_MUL_RZERO autoloading from theory `REAL` ... REAL_MUL_RZERO = |- !x. x * (& 0) = & 0 Run time: 0.0s Theorem ABS_0 autoloading from theory `REAL` ... ABS_0 = |- abs(& 0) = & 0 Run time: 0.0s Theorem ABS_CASES autoloading from theory `REAL` ... ABS_CASES = |- !x. (x = & 0) \/ (& 0) < (abs x) Run time: 0.0s Theorem ABS_ABS autoloading from theory `REAL` ... ABS_ABS = |- !x. abs(abs x) = abs x Run time: 0.0s Theorem ABS_MUL autoloading from theory `REAL` ... ABS_MUL = |- !x y. abs(x * y) = (abs x) * (abs y) Run time: 0.0s Theorem ABS_POS autoloading from theory `REAL` ... ABS_POS = |- !x. (& 0) <= (abs x) Run time: 0.0s Theorem REAL_LET_TRANS autoloading from theory `REAL` ... REAL_LET_TRANS = |- !x y z. x <= y /\ y < z ==> x < z Run time: 0.0s Theorem POW_NZ autoloading from theory `REAL` ... POW_NZ = |- !c n. ~(c = & 0) ==> ~(c pow n = & 0) Run time: 0.0s Theorem ABS_NZ autoloading from theory `REAL` ... ABS_NZ = |- !x. ~(x = & 0) = (& 0) < (abs x) Run time: 0.0s Theorem REAL_LE_RDIV autoloading from theory `REAL` ... REAL_LE_RDIV = |- !x y z. (& 0) < x /\ (y * x) <= z ==> y <= (z / x) Run time: 0.0s Theorem SER_COMPAR autoloading from theory `SEQ` ... SER_COMPAR = |- !f g. (?N. !n. n num_ge N ==> (abs(f n)) <= (g n)) /\ summable g ==> summable f Run time: 0.0s Theorem SEQ_BOUNDED autoloading from theory `SEQ` ... SEQ_BOUNDED = |- !s. bounded(mr1,$num_ge)s = (?k. !n. (abs(s n)) < k) Run time: 0.0s Theorem SEQ_CBOUNDED autoloading from theory `SEQ` ... SEQ_CBOUNDED = |- !f. cauchy f ==> bounded(mr1,$num_ge)f Run time: 0.0s Theorem SEQ_CAUCHY autoloading from theory `SEQ` ... SEQ_CAUCHY = |- !f. cauchy f = convergent f Run time: 0.0s Theorem SER_ZERO autoloading from theory `SEQ` ... SER_ZERO = |- !f. summable f ==> f tends_num_real (& 0) Run time: 0.0s Definition convergent autoloading from theory `SEQ` ... convergent = |- !f. convergent f = (?l. f tends_num_real l) Run time: 0.0s Intermediate theorems generated: 1 POWSER_INSIDEA = |- !f x z. summable(\n. (f n) * (x pow n)) /\ (abs z) < (abs x) ==> summable(\n. (abs(f n)) * (z pow n)) Run time: 0.0s Intermediate theorems generated: 753 Theorem SER_ACONV autoloading from theory `SEQ` ... SER_ACONV = |- !f. summable(\n. abs(f n)) ==> summable f Run time: 0.0s POWSER_INSIDE = |- !f x z. summable(\n. (f n) * (x pow n)) /\ (abs z) < (abs x) ==> summable(\n. (f n) * (z pow n)) Run time: 0.0s Intermediate theorems generated: 67 diffs = |- !c. diffs c = (\n. (&(SUC n)) * (c(SUC n))) Run time: 0.0s Intermediate theorems generated: 2 Theorem REAL_NEG_RMUL autoloading from theory `REAL` ... REAL_NEG_RMUL = |- !x y. --(x * y) = x * (-- y) Run time: 0.0s DIFFS_NEG = |- !c. diffs(\n. --(c n)) = (\n. --(diffs c n)) Run time: 0.0s Intermediate theorems generated: 37 Theorem SUC_SUB1 autoloading from theory `arithmetic` ... SUC_SUB1 = |- !m. (SUC m) num_sub 1 = m Run time: 0.0s Theorem REAL_MUL_LZERO autoloading from theory `REAL` ... REAL_MUL_LZERO = |- !x. (& 0) * x = & 0 Run time: 0.0s DIFFS_LEMMA = |- !n c x. Sum(0,n)(\n'. (diffs c n') * (x pow n')) = (Sum(0,n)(\n'. (& n') * ((c n') * (x pow (n' num_sub 1))))) + ((& n) * ((c n) * (x pow (n num_sub 1)))) Run time: 0.0s Intermediate theorems generated: 229 Theorem REAL_EQ_SUB_LADD autoloading from theory `REAL` ... REAL_EQ_SUB_LADD = |- !x y z. (x = y - z) = (x + z = y) Run time: 0.0s DIFFS_LEMMA2 = |- !n c x. Sum(0,n)(\n. (& n) * ((c n) * (x pow (n num_sub 1)))) = (Sum(0,n)(\n. (diffs c n) * (x pow n))) - ((& n) * ((c n) * (x pow (n num_sub 1)))) Run time: 0.0s Intermediate theorems generated: 34 Theorem REAL_SUB_RZERO autoloading from theory `REAL` ... REAL_SUB_RZERO = |- !x. x - (& 0) = x Run time: 0.0s Theorem SEQ_SUB autoloading from theory `SEQ` ... SEQ_SUB = |- !x x0 y y0. x tends_num_real x0 /\ y tends_num_real y0 ==> (\n. (x n) - (y n)) tends_num_real (x0 - y0) Run time: 0.0s Definition sums autoloading from theory `SEQ` ... sums = |- !f s. f sums s = (\n. Sum(0,n)f) tends_num_real s Run time: 0.0s Intermediate theorems generated: 1 Theorem SUMMABLE_SUM autoloading from theory `SEQ` ... SUMMABLE_SUM = |- !f. summable f ==> f sums (suminf f) Run time: 0.0s Theorem SEQ_SUC autoloading from theory `SEQ` ... SEQ_SUC = |- !f l. f tends_num_real l = (\n. f(SUC n)) tends_num_real l Run time: 0.0s DIFFS_EQUIV = |- !c x. summable(\n. (diffs c n) * (x pow n)) ==> (\n. (& n) * ((c n) * (x pow (n num_sub 1)))) sums (suminf(\n. (diffs c n) * (x pow n))) Run time: 0.0s Intermediate theorems generated: 180 Theorem SUB_ADD autoloading from theory `arithmetic` ... SUB_ADD = |- !m n. n num_le m ==> ((m num_sub n) num_add n = m) Run time: 0.0s TERMDIFF_LEMMA1 = |- !m z h. Sum(0,m)(\p. (((z + h) pow (m num_sub p)) * (z pow p)) - (z pow m)) = Sum (0,m) (\p. (z pow p) * (((z + h) pow (m num_sub p)) - (z pow (m num_sub p)))) Run time: 0.0s Intermediate theorems generated: 131 Theorem SUB_MONO_EQ autoloading from theory `arithmetic` ... SUB_MONO_EQ = |- !n m. (SUC n) num_sub (SUC m) = n num_sub m Run time: 0.0s Theorem ADD_SUB autoloading from theory `arithmetic` ... ADD_SUB = |- !a c. (a num_add c) num_sub c = a Run time: 0.0s Theorem ADD1 autoloading from theory `arithmetic` ... ADD1 = |- !m. SUC m = m num_add 1 Run time: 0.0s Theorem LESS_ADD_1 autoloading from theory `arithmetic` ... LESS_ADD_1 = |- !m n. n num_lt m ==> (?p. m = n num_add (p num_add 1)) Run time: 0.0s Theorem SUM_NSUB autoloading from theory `REAL` ... SUM_NSUB = |- !n f c. (Sum(0,n)f) - ((& n) * c) = Sum(0,n)(\p. (f p) - c) Run time: 0.0s Theorem REAL_ADD_RID autoloading from theory `REAL` ... REAL_ADD_RID = |- !x. x + (& 0) = x Run time: 0.0s Theorem REAL_ADD2_SUB2 autoloading from theory `REAL` ... REAL_ADD2_SUB2 = |- !a b c d. (a + b) - (c + d) = (a - c) + (b - d) Run time: 0.0s Theorem REAL_RDISTRIB autoloading from theory `REAL` ... REAL_RDISTRIB = |- !x y z. (x + y) * z = (x * z) + (y * z) Run time: 0.0s Theorem REAL_MUL_LID autoloading from theory `REAL` ... REAL_MUL_LID = |- !x. (& 1) * x = x Run time: 0.0s Theorem REAL autoloading from theory `REAL` ... REAL = |- !n. &(SUC n) = (& n) + (& 1) Run time: 0.0s Theorem REAL_EQ_LMUL autoloading from theory `REAL` ... REAL_EQ_LMUL = |- !x y z. (x * y = x * z) = (x = & 0) \/ (y = z) Run time: 0.0s Theorem REAL_ADD_SUB autoloading from theory `REAL` ... REAL_ADD_SUB = |- !x y. (x + y) - x = y Run time: 0.0s Theorem REAL_SUB_REFL autoloading from theory `REAL` ... REAL_SUB_REFL = |- !x. x - x = & 0 Run time: 0.0s Theorem num_CASES autoloading from theory `arithmetic` ... num_CASES = |- !m. (m = 0) \/ (?n. m = SUC n) Run time: 0.0s Theorem REAL_DIV_LMUL autoloading from theory `REAL` ... REAL_DIV_LMUL = |- !x y. ~(y = & 0) ==> (y * (x / y) = x) Run time: 0.0s TERMDIFF_LEMMA2 = |- !z h. ~(h = & 0) ==> (((((z + h) pow n) - (z pow n)) / h) - ((& n) * (z pow (n num_sub 1))) = h * (Sum (0,n num_sub 1) (\p. (z pow p) * (Sum (0,(n num_sub 1) num_sub p) (\q. ((z + h) pow q) * (z pow (((n num_sub 2) num_sub p) num_sub q))))))) Run time: 0.0s Intermediate theorems generated: 866 Theorem INV_SUC_EQ autoloading from theory `prim_rec` ... INV_SUC_EQ = |- !m n. (SUC m = SUC n) = (m = n) Run time: 0.0s Theorem LESS_SUC_REFL autoloading from theory `prim_rec` ... LESS_SUC_REFL = |- !n. n num_lt (SUC n) Run time: 0.0s Theorem LESS_EQ_ADD autoloading from theory `arithmetic` ... LESS_EQ_ADD = |- !m n. m num_le (m num_add n) Run time: 0.0s Theorem LESS_EQ_TRANS autoloading from theory `arithmetic` ... LESS_EQ_TRANS = |- !m n p. m num_le n /\ n num_le p ==> m num_le p Run time: 0.0s Theorem LESS_EQ_MONO autoloading from theory `arithmetic` ... LESS_EQ_MONO = |- !n m. (SUC n) num_le (SUC m) = n num_le m Run time: 0.0s Theorem REAL_LE autoloading from theory `REAL` ... REAL_LE = |- !m n. (& m) <= (& n) = m num_le n Run time: 0.0s Theorem REAL_LE_LT autoloading from theory `REAL` ... REAL_LE_LT = |- !x y. x <= y = x < y \/ (x = y) Run time: 0.0s Theorem POW_POS autoloading from theory `REAL` ... POW_POS = |- !x. (& 0) <= x ==> (!n. (& 0) <= (x pow n)) Run time: 0.0s Theorem POW_LE autoloading from theory `REAL` ... POW_LE = |- !n x y. (& 0) <= x /\ x <= y ==> (x pow n) <= (y pow n) Run time: 0.0s Theorem REAL_LE_MUL2 autoloading from theory `REAL` ... REAL_LE_MUL2 = |- !x1 x2 y1 y2. (& 0) <= x1 /\ (& 0) <= y1 /\ x1 <= x2 /\ y1 <= y2 ==> (x1 * y1) <= (x2 * y2) Run time: 0.0s Theorem SUM_BOUND autoloading from theory `REAL` ... SUM_BOUND = |- !f K m n. (!p. m num_le p /\ p num_lt (m num_add n) ==> (f p) <= K) ==> (Sum(m,n)f) <= ((& n) * K) Run time: 0.0s Theorem REAL_LE_LMUL autoloading from theory `REAL` ... REAL_LE_LMUL = |- !x y z. (& 0) < x ==> ((x * y) <= (x * z) = y <= z) Run time: 0.0s Theorem ABS_SUM autoloading from theory `REAL` ... ABS_SUM = |- !f m n. (abs(Sum(m,n)f)) <= (Sum(m,n)(\n'. abs(f n'))) Run time: 0.0s Theorem REAL_LE_TRANS autoloading from theory `REAL` ... REAL_LE_TRANS = |- !x y z. x <= y /\ y <= z ==> x <= z Run time: 0.0s TERMDIFF_LEMMA3 = |- !z h n K. ~(h = & 0) /\ (abs z) <= K /\ (abs(z + h)) <= K ==> (abs (((((z + h) pow n) - (z pow n)) / h) - ((& n) * (z pow (n num_sub 1))))) <= ((& n) * ((&(n num_sub 1)) * ((K pow (n num_sub 2)) * (abs h)))) Run time: 0.0s Intermediate theorems generated: 1294 Theorem REAL_MUL_LINV autoloading from theory `REAL` ... REAL_MUL_LINV = |- !x. ~(x = & 0) ==> ((inv x) * x = & 1) Run time: 0.0s Theorem REAL_LT_RDIV autoloading from theory `REAL` ... REAL_LT_RDIV = |- !x y z. (& 0) < z ==> ((x / z) < (y / z) = x < y) Run time: 0.0s Theorem REAL_LT_LMUL autoloading from theory `REAL` ... REAL_LT_LMUL = |- !x y z. (& 0) < x ==> ((x * y) < (x * z) = y < z) Run time: 0.0s Theorem REAL_LT_TRANS autoloading from theory `REAL` ... REAL_LT_TRANS = |- !x y z. x < y /\ y < z ==> x < z Run time: 0.0s Theorem REAL_DOWN2 autoloading from theory `REAL` ... REAL_DOWN2 = |- !x y. (& 0) < x /\ (& 0) < y ==> (?z. (& 0) < z /\ z < x /\ z < y) Run time: 0.0s Theorem LESS_0 autoloading from theory `prim_rec` ... LESS_0 = |- !n. 0 num_lt (SUC n) Run time: 0.0s Theorem REAL_LT autoloading from theory `REAL` ... REAL_LT = |- !m n. (& m) < (& n) = m num_lt n Run time: 0.0s Theorem REAL_INV_POS autoloading from theory `REAL` ... REAL_INV_POS = |- !x. (& 0) < x ==> (& 0) < (inv x) Run time: 0.0s Theorem REAL_LT_MUL autoloading from theory `REAL` ... REAL_LT_MUL = |- !x y. (& 0) < x /\ (& 0) < y ==> (& 0) < (x * y) Run time: 0.0s Theorem REAL_LE_ANTISYM autoloading from theory `REAL` ... REAL_LE_ANTISYM = |- !x y. x <= y /\ y <= x = (x = y) Run time: 0.0s Theorem REAL_LT_HALF2 autoloading from theory `REAL` ... REAL_LT_HALF2 = |- !d. (d / (& 2)) < d = (& 0) < d Run time: 0.0s Definition abs autoloading from theory `REAL` ... abs = |- !x. abs x = ((& 0) <= x => x | -- x) Run time: 0.0s Intermediate theorems generated: 1 Theorem REAL_LT_HALF1 autoloading from theory `REAL` ... REAL_LT_HALF1 = |- !d. (& 0) < (d / (& 2)) = (& 0) < d Run time: 0.0s Theorem LIM autoloading from theory `LIM` ... LIM = |- !f y0 x0. (f tends_real_real y0)x0 = (!e. (& 0) < e ==> (?d. (& 0) < d /\ (!x. (& 0) < (abs(x - x0)) /\ (abs(x - x0)) < d ==> (abs((f x) - y0)) < e))) Run time: 0.0s TERMDIFF_LEMMA4 = |- !f K k. (& 0) < k /\ (!h. (& 0) < (abs h) /\ (abs h) < k ==> (abs(f h)) <= (K * (abs h))) ==> (f tends_real_real (& 0))(& 0) Run time: 0.0s Intermediate theorems generated: 917 Theorem SER_LE autoloading from theory `SEQ` ... SER_LE = |- !f g. (!n. (f n) <= (g n)) /\ summable f /\ summable g ==> (suminf f) <= (suminf g) Run time: 0.0s Theorem SER_ABS autoloading from theory `SEQ` ... SER_ABS = |- !f. summable(\n. abs(f n)) ==> (abs(suminf f)) <= (suminf(\n. abs(f n))) Run time: 0.0s Theorem SUM_SUMMABLE autoloading from theory `SEQ` ... SUM_SUMMABLE = |- !f l. f sums l ==> summable f Run time: 0.0s Theorem SUM_UNIQ autoloading from theory `SEQ` ... SUM_UNIQ = |- !f x. f sums x ==> (x = suminf f) Run time: 0.0s TERMDIFF_LEMMA5 = |- !f g k. (& 0) < k /\ summable f /\ (!h. (& 0) < (abs h) /\ (abs h) < k ==> (!n. (abs(g h n)) <= ((f n) * (abs h)))) ==> ((\h. suminf(g h)) tends_real_real (& 0))(& 0) Run time: 0.0s Intermediate theorems generated: 502 Theorem REAL_LT_SUB_LADD autoloading from theory `REAL` ... REAL_LT_SUB_LADD = |- !x y z. x < (y - z) = (x + z) < y Run time: 0.0s Theorem ABS_TRIANGLE autoloading from theory `REAL` ... ABS_TRIANGLE = |- !x y. (abs(x + y)) <= ((abs x) + (abs y)) Run time: 0.0s Theorem REAL_LE_LMUL_IMP autoloading from theory `REAL` ... REAL_LE_LMUL_IMP = |- !x y z. (& 0) <= x /\ y <= z ==> (x * y) <= (x * z) Run time: 0.0s Theorem REAL_MUL_RINV autoloading from theory `REAL` ... REAL_MUL_RINV = |- !x. ~(x = & 0) ==> (x * (inv x) = & 1) Run time: 0.0s Theorem ABS_LE autoloading from theory `REAL` ... ABS_LE = |- !x. x <= (abs x) Run time: 0.0s Theorem REAL_LTE_TRANS autoloading from theory `REAL` ... REAL_LTE_TRANS = |- !x y z. x < y /\ y <= z ==> x < z Run time: 0.0s Theorem POW_1 autoloading from theory `REAL` ... POW_1 = |- !x. x pow 1 = x Run time: 0.0s Theorem ABS_N autoloading from theory `REAL` ... ABS_N = |- !n. abs(& n) = & n Run time: 0.0s Theorem ABS_REFL autoloading from theory `REAL` ... ABS_REFL = |- !x. (abs x = x) = (& 0) <= x Run time: 0.0s Theorem REAL_MEAN autoloading from theory `REAL` ... REAL_MEAN = |- !x y. x < y ==> (?z. x < z /\ z < y) Run time: 0.0s Theorem REAL_SUB_RDISTRIB autoloading from theory `REAL` ... REAL_SUB_RDISTRIB = |- !x y z. (x - y) * z = (x * z) - (y * z) Run time: 0.0s Theorem LIM_NULL autoloading from theory `LIM` ... LIM_NULL = |- !f l x. (f tends_real_real l)x = ((\x. (f x) - l) tends_real_real (& 0))x Run time: 0.0s Theorem SER_CDIV autoloading from theory `SEQ` ... SER_CDIV = |- !x x0 c. x sums x0 ==> (\n. (x n) / c) sums (x0 / c) Run time: 0.0s Theorem SER_SUB autoloading from theory `SEQ` ... SER_SUB = |- !x x0 y y0. x sums x0 /\ y sums y0 ==> (\n. (x n) - (y n)) sums (x0 - y0) Run time: 0.0s Theorem ABS_ZERO autoloading from theory `REAL` ... ABS_ZERO = |- !x. (abs x = & 0) = (x = & 0) Run time: 0.0s Theorem ABS_CIRCLE autoloading from theory `REAL` ... ABS_CIRCLE = |- !x y h. (abs h) < ((abs y) - (abs x)) ==> (abs(x + h)) < (abs y) Run time: 0.0s Theorem REAL_SUB_LT autoloading from theory `REAL` ... REAL_SUB_LT = |- !x y. (& 0) < (x - y) = y < x Run time: 0.0s Theorem LIM_TRANSFORM autoloading from theory `LIM` ... LIM_TRANSFORM = |- !f g x0 l. ((\x. (f x) - (g x)) tends_real_real (& 0))x0 /\ (g tends_real_real l)x0 ==> (f tends_real_real l)x0 Run time: 0.0s Definition diffl autoloading from theory `LIM` ... diffl = |- !f l x. (f diffl l)x = ((\h. ((f(x + h)) - (f x)) / h) tends_real_real l)(& 0) Run time: 0.0s Intermediate theorems generated: 1 TERMDIFF = |- !c K. summable(\n. (c n) * (K pow n)) /\ summable(\n. (diffs c n) * (K pow n)) /\ summable(\n. (diffs(diffs c)n) * (K pow n)) /\ (abs x) < (abs K) ==> ((\x. suminf(\n. (c n) * (x pow n))) diffl (suminf(\n. (diffs c n) * (x pow n)))) x Run time: 0.1s Intermediate theorems generated: 2494 () : void Run time: 0.0s Intermediate theorems generated: 1 File powser.ml loaded () : void Run time: 0.3s Intermediate theorems generated: 8507 #\ echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `transc.ml`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Loading library reduce ... Extending help search path. Loading boolean conversions........ Loading arithmetic conversions.................. Loading general conversions, rule and tactic..... Library reduce loaded. () : void false : bool Run time: 0.0s LAND_CONV = - : (conv -> conv) Run time: 0.0s TAUT_CONV = - : conv Run time: 0.0s AC = - : ((thm # thm) -> conv) Run time: 0.0s GEN_PAIR_TAC = - : tactic Run time: 0.0s MK_COMB_TAC = - : tactic Run time: 0.0s BINOP_TAC = - : tactic Run time: 0.0s SYM_CANON_CONV = - : (thm -> ((term # term) -> bool) -> conv) Run time: 0.0s IMP_SUBST_TAC = - : thm_tactic Run time: 0.0s ABBREV_TAC = - : (term -> tactic) Run time: 0.0s EXT_CONV = - : conv Run time: 0.0s ABS_TAC = - : tactic Run time: 0.0s EQUAL_TAC = - : tactic Run time: 0.0s X_BETA_CONV = - : (term -> conv) Run time: 0.0s EXACT_CONV = - : (thm list -> conv) Run time: 0.0s HABS_CONV = - : conv Run time: 0.0s autoload_definitions = - : (string -> void) Run time: 0.0s autoload_theorems = - : (string -> void) Run time: 0.0s EXPAND_TAC = - : (string -> tactic) Run time: 0.0s File useful loaded () : void Run time: 0.0s false : bool Run time: 0.0s () : void Run time: 0.0s Intermediate theorems generated: 1 Theory POWSER loaded () : void Run time: 0.1s Theorem ADD_CLAUSES autoloading from theory `arithmetic` ... ADD_CLAUSES = |- (0 + m = m) /\ (m + 0 = m) /\ ((SUC m) + n = SUC(m + n)) /\ (m + (SUC n) = SUC(m + n)) Run time: 0.0s Theorem DIV_MULT autoloading from theory `arithmetic` ... DIV_MULT = |- !n r. r < n ==> (!q. ((q * n) + r) DIV n = q) Run time: 0.0s Theorem MULT_SYM autoloading from theory `arithmetic` ... MULT_SYM = |- !m n. m * n = n * m Run time: 0.0s MULT_DIV_2 = |- !n. (2 * n) DIV 2 = n Run time: 0.0s Intermediate theorems generated: 66 Theorem LEFT_ADD_DISTRIB autoloading from theory `arithmetic` ... LEFT_ADD_DISTRIB = |- !m n p. p * (m + n) = (p * m) + (p * n) Run time: 0.0s Theorem ADD_ASSOC autoloading from theory `arithmetic` ... ADD_ASSOC = |- !m n p. m + (n + p) = (m + n) + p Run time: 0.0s Theorem ADD1 autoloading from theory `arithmetic` ... ADD1 = |- !m. SUC m = m + 1 Run time: 0.0s Theorem SUC_SUB1 autoloading from theory `arithmetic` ... SUC_SUB1 = |- !m. (SUC m) - 1 = m Run time: 0.0s Theorem ODD_EXISTS autoloading from theory `arithmetic` ... ODD_EXISTS = |- !n. ODD n = (?m. n = SUC(2 * m)) Run time: 0.0s Theorem EVEN_ODD autoloading from theory `arithmetic` ... EVEN_ODD = |- !n. EVEN n = ~ODD n Run time: 0.0s EVEN_DIV2 = |- !n. ~EVEN n ==> ((SUC n) DIV 2 = SUC((n - 1) DIV 2)) Run time: 0.0s Intermediate theorems generated: 152 real_interface_map = [(`--`, `real_neg`); (`num_add`, `+`); (`+`, `real_add`); (`num_mul`, `*`); (`*`, `real_mul`); (`num_sub`, `-`); (`-`, `real_sub`); (`num_lt`, `<`); (`<`, `real_lt`); (`num_le`, `<=`); (`<=`, `real_le`); (`num_gt`, `>`); (`>`, `real_gt`); (`num_ge`, `>=`); (`>=`, `real_ge`); (`inv`, `real_inv`); (`&`, `real_of_num`)] : (string # string) list Run time: 0.0s [(); ()] : void list Run time: 0.0s [] : (string # string) list Run time: 0.0s () : void Run time: 0.0s Intermediate theorems generated: 48 () : void Run time: 0.0s basic_diffs = [] : thm list Run time: 0.0s Theorem DIFF_CHAIN autoloading from theory `LIM` ... DIFF_CHAIN = |- !f g x. (f diffl l)(g x) /\ (g diffl m)x ==> ((\x. f(g x)) diffl (l * m))x Run time: 0.0s Theorem DIFF_POW autoloading from theory `LIM` ... DIFF_POW = |- !n x. ((\x'. x' pow n) diffl ((& n) * (x pow (n num_sub 1))))x Run time: 0.0s Theorem DIFF_X autoloading from theory `LIM` ... DIFF_X = |- !x. ((\x. x) diffl (& 1))x Run time: 0.0s Theorem DIFF_CONST autoloading from theory `LIM` ... DIFF_CONST = |- !k x. ((\x. k) diffl (& 0))x Run time: 0.0s Theorem DIFF_NEG autoloading from theory `LIM` ... DIFF_NEG = |- !f l x. (f diffl l)x ==> ((\x. --(f x)) diffl (-- l))x Run time: 0.0s Theorem DIFF_SUB autoloading from theory `LIM` ... DIFF_SUB = |- !f g l m x. (f diffl l)x /\ (g diffl m)x ==> ((\x. (f x) - (g x)) diffl (l - m))x Run time: 0.0s Theorem DIFF_MUL autoloading from theory `LIM` ... DIFF_MUL = |- !f g l m x. (f diffl l)x /\ (g diffl m)x ==> ((\x. (f x) * (g x)) diffl ((l * (g x)) + (m * (f x))))x Run time: 0.0s Theorem DIFF_ADD autoloading from theory `LIM` ... DIFF_ADD = |- !f g l m x. (f diffl l)x /\ (g diffl m)x ==> ((\x. (f x) + (g x)) diffl (l + m))x Run time: 0.0s Theorem DIFF_DIV autoloading from theory `LIM` ... DIFF_DIV = |- !f g l m. (f diffl l)x /\ (g diffl m)x /\ ~(g x = & 0) ==> ((\x. (f x) / (g x)) diffl (((l * (g x)) - (m * (f x))) / ((g x) pow 2))) x Run time: 0.0s Theorem DIFF_INV autoloading from theory `LIM` ... DIFF_INV = |- !f l x. (f diffl l)x /\ ~(f x = & 0) ==> ((\x. inv(f x)) diffl (--(l / ((f x) pow 2))))x Run time: 0.0s DIFF_CONV = - : conv Run time: 0.0s exp_ser = "\n. inv(&(FACT n))" : term Run time: 0.0s sin_ser = "\n. (EVEN n => & 0 | ((--(& 1)) pow ((n num_sub 1) DIV 2)) / (&(FACT n)))" : term Run time: 0.0s cos_ser = "\n. (EVEN n => ((--(& 1)) pow (n DIV 2)) / (&(FACT n)) | & 0)" : term Run time: 0.0s exp = |- !x. exp x = suminf(\n. ((\n'. inv(&(FACT n')))n) * (x pow n)) Run time: 0.0s Intermediate theorems generated: 2 sin = |- !x. sin x = suminf (\n. ((\n'. (EVEN n' => & 0 | ((--(& 1)) pow ((n' num_sub 1) DIV 2)) / (&(FACT n')))) n) * (x pow n)) Run time: 0.0s Intermediate theorems generated: 2 cos = |- !x. cos x = suminf (\n. ((\n'. (EVEN n' => ((--(& 1)) pow (n' DIV 2)) / (&(FACT n')) | & 0)) n) * (x pow n)) Run time: 0.0s Intermediate theorems generated: 2 Theorem LESS_EQ_SUC_REFL autoloading from theory `arithmetic` ... LESS_EQ_SUC_REFL = |- !m. m num_le (SUC m) Run time: 0.0s Theorem LESS_EQ_TRANS autoloading from theory `arithmetic` ... LESS_EQ_TRANS = |- !m n p. m num_le n /\ n num_le p ==> m num_le p Run time: 0.0s Theorem REAL_LE_RMUL autoloading from theory `REAL` ... REAL_LE_RMUL = |- !x y z. (& 0) < z ==> ((x * z) <= (y * z) = x <= y) Run time: 0.0s Theorem REAL_LT_IMP_LE autoloading from theory `REAL` ... REAL_LT_IMP_LE = |- !x y. x < y ==> x <= y Run time: 0.0s Theorem REAL_LE_TRANS autoloading from theory `REAL` ... REAL_LE_TRANS = |- !x y z. x <= y /\ y <= z ==> x <= z Run time: 0.0s Theorem ZERO_LESS_EQ autoloading from theory `arithmetic` ... ZERO_LESS_EQ = |- !n. 0 num_le n Run time: 0.0s Theorem REAL_LE autoloading from theory `REAL` ... REAL_LE = |- !m n. (& m) <= (& n) = m num_le n Run time: 0.0s Theorem ABS_REFL autoloading from theory `REAL` ... ABS_REFL = |- !x. (abs x = x) = (& 0) <= x Run time: 0.0s Theorem ABS_NZ autoloading from theory `REAL` ... ABS_NZ = |- !x. ~(x = & 0) = (& 0) < (abs x) Run time: 0.0s Theorem REAL_LE_LDIV autoloading from theory `REAL` ... REAL_LE_LDIV = |- !x y z. (& 0) < x /\ y <= (z * x) ==> (y / x) <= z Run time: 0.0s Definition real_div autoloading from theory `REAL` ... real_div = |- !x y. x / y = x * (inv y) Run time: 0.0s Intermediate theorems generated: 1 Theorem ABS_INV autoloading from theory `REAL` ... ABS_INV = |- !x. ~(x = & 0) ==> (abs(inv x) = inv(abs x)) Run time: 0.0s Theorem LESS_0 autoloading from theory `prim_rec` ... LESS_0 = |- !n. 0 num_lt (SUC n) Run time: 0.0s Theorem NOT_SUC autoloading from theory `num` ... NOT_SUC = |- !n. ~(SUC n = 0) Run time: 0.0s Theorem REAL_INJ autoloading from theory `REAL` ... REAL_INJ = |- !m n. (& m = & n) = (m = n) Run time: 0.0s Theorem REAL_INV_MUL autoloading from theory `REAL` ... REAL_INV_MUL = |- !x y. ~(x = & 0) /\ ~(y = & 0) ==> (inv(x * y) = (inv x) * (inv y)) Run time: 0.0s Theorem REAL_MUL autoloading from theory `REAL` ... REAL_MUL = |- !m n. (& m) * (& n) = &(m num_mul n) Run time: 0.0s Definition FACT autoloading from theory `arithmetic` ... FACT = |- (FACT 0 = 1) /\ (!n. FACT(SUC n) = (SUC n) num_mul (FACT n)) Run time: 0.0s Intermediate theorems generated: 1 Theorem ABS_POS autoloading from theory `REAL` ... ABS_POS = |- !x. (& 0) <= (abs x) Run time: 0.0s Theorem REAL_LE_RMUL_IMP autoloading from theory `REAL` ... REAL_LE_RMUL_IMP = |- !x y z. (& 0) <= x /\ y <= z ==> (y * x) <= (z * x) Run time: 0.0s Theorem REAL_MUL_SYM autoloading from theory `REAL` ... REAL_MUL_SYM = |- !x y. x * y = y * x Run time: 0.0s Theorem POW_1 autoloading from theory `REAL` ... POW_1 = |- !x. x pow 1 = x Run time: 0.0s Theorem REAL_MUL_ASSOC autoloading from theory `REAL` ... REAL_MUL_ASSOC = |- !x y z. x * (y * z) = (x * y) * z Run time: 0.0s Theorem ABS_MUL autoloading from theory `REAL` ... ABS_MUL = |- !x y. abs(x * y) = (abs x) * (abs y) Run time: 0.0s Theorem POW_ADD autoloading from theory `REAL` ... POW_ADD = |- !c m n. c pow (m num_add n) = (c pow m) * (c pow n) Run time: 0.0s Theorem GREATER_EQ autoloading from theory `arithmetic` ... GREATER_EQ = |- !n m. n num_ge m = m num_le n Run time: 0.0s Theorem REAL_ARCH autoloading from theory `REAL` ... REAL_ARCH = |- !x. (& 0) < x ==> (!y. ?n. y < ((& n) * x)) Run time: 0.0s Theorem REAL_LT_01 autoloading from theory `REAL` ... REAL_LT_01 = |- (& 0) < (& 1) Run time: 0.0s Theorem REAL_DOWN autoloading from theory `REAL` ... REAL_DOWN = |- !x. (& 0) < x ==> (?y. (& 0) < y /\ y < x) Run time: 0.0s Theorem SER_RATIO autoloading from theory `SEQ` ... SER_RATIO = |- !f c N. c < (& 1) /\ (!n. n num_ge N ==> (abs(f(SUC n))) <= (c * (abs(f n)))) ==> summable f Run time: 0.0s Theorem SUMMABLE_SUM autoloading from theory `SEQ` ... SUMMABLE_SUM = |- !f. summable f ==> f sums (suminf f) Run time: 0.0s Theorem FACT_LESS autoloading from theory `arithmetic` ... FACT_LESS = |- !n. 0 num_lt (FACT n) Run time: 0.0s Theorem REAL_LT autoloading from theory `REAL` ... REAL_LT = |- !m n. (& m) < (& n) = m num_lt n Run time: 0.0s Theorem REAL_LT_IMP_NE autoloading from theory `REAL` ... REAL_LT_IMP_NE = |- !x y. x < y ==> ~(x = y) Run time: 0.0s EXP_CONVERGES = |- !x. (\n. ((\n. inv(&(FACT n)))n) * (x pow n)) sums (exp x) Run time: 0.0s Intermediate theorems generated: 628 Theorem REAL_INV_POS autoloading from theory `REAL` ... REAL_INV_POS = |- !x. (& 0) < x ==> (& 0) < (inv x) Run time: 0.0s Theorem REAL_EQ_IMP_LE autoloading from theory `REAL` ... REAL_EQ_IMP_LE = |- !x y. (x = y) ==> x <= y Run time: 0.0s Theorem REAL_MUL_LID autoloading from theory `REAL` ... REAL_MUL_LID = |- !x. (& 1) * x = x Run time: 0.0s Theorem POW_M1 autoloading from theory `REAL` ... POW_M1 = |- !n. abs((--(& 1)) pow n) = & 1 Run time: 0.0s Theorem REAL_LE_MUL autoloading from theory `REAL` ... REAL_LE_MUL = |- !x y. (& 0) <= x /\ (& 0) <= y ==> (& 0) <= (x * y) Run time: 0.0s Theorem REAL_MUL_LZERO autoloading from theory `REAL` ... REAL_MUL_LZERO = |- !x. (& 0) * x = & 0 Run time: 0.0s Theorem ABS_0 autoloading from theory `REAL` ... ABS_0 = |- abs(& 0) = & 0 Run time: 0.0s Theorem POW_ABS autoloading from theory `REAL` ... POW_ABS = |- !c n. (abs c) pow n = abs(c pow n) Run time: 0.0s Theorem SUM_SUMMABLE autoloading from theory `SEQ` ... SUM_SUMMABLE = |- !f l. f sums l ==> summable f Run time: 0.0s Theorem SER_COMPAR autoloading from theory `SEQ` ... SER_COMPAR = |- !f g. (?N. !n. n num_ge N ==> (abs(f n)) <= (g n)) /\ summable g ==> summable f Run time: 0.0s SIN_CONVERGES = |- !x. (\n. ((\n. (EVEN n => & 0 | ((--(& 1)) pow ((n num_sub 1) DIV 2)) / (&(FACT n)))) n) * (x pow n)) sums (sin x) Run time: 0.1s Intermediate theorems generated: 272 COS_CONVERGES = |- !x. (\n. ((\n. (EVEN n => ((--(& 1)) pow (n DIV 2)) / (&(FACT n)) | & 0))n) * (x pow n)) sums (cos x) Run time: 0.0s Intermediate theorems generated: 272 Theorem REAL_MUL_RINV autoloading from theory `REAL` ... REAL_MUL_RINV = |- !x. ~(x = & 0) ==> (x * (inv x) = & 1) Run time: 0.0s Theorem REAL_EQ_RMUL autoloading from theory `REAL` ... REAL_EQ_RMUL = |- !x y z. (x * z = y * z) = (z = & 0) \/ (x = y) Run time: 0.0s Definition diffs autoloading from theory `POWSER` ... diffs = |- !c. diffs c = (\n. (&(SUC n)) * (c(SUC n))) Run time: 0.0s Intermediate theorems generated: 1 EXP_FDIFF = |- diffs(\n. inv(&(FACT n))) = (\n. inv(&(FACT n))) Run time: 0.0s Intermediate theorems generated: 193 Theorem REAL_MUL_RZERO autoloading from theory `REAL` ... REAL_MUL_RZERO = |- !x. x * (& 0) = & 0 Run time: 0.0s Definition EVEN autoloading from theory `arithmetic` ... EVEN = |- (EVEN 0 = T) /\ (!n. EVEN(SUC n) = ~EVEN n) Run time: 0.0s Intermediate theorems generated: 1 SIN_FDIFF = |- diffs (\n. (EVEN n => & 0 | ((--(& 1)) pow ((n num_sub 1) DIV 2)) / (&(FACT n)))) = (\n. (EVEN n => ((--(& 1)) pow (n DIV 2)) / (&(FACT n)) | & 0)) Run time: 0.0s Intermediate theorems generated: 361 Theorem REAL_NEG_MINUS1 autoloading from theory `REAL` ... REAL_NEG_MINUS1 = |- !x. -- x = (--(& 1)) * x Run time: 0.0s Definition pow autoloading from theory `REAL` ... pow = |- (!x. x pow 0 = & 1) /\ (!x n. x pow (SUC n) = x * (x pow n)) Run time: 0.0s Intermediate theorems generated: 1 Theorem REAL_NEG_LMUL autoloading from theory `REAL` ... REAL_NEG_LMUL = |- !x y. --(x * y) = (-- x) * y Run time: 0.0s Theorem REAL_NEG_0 autoloading from theory `REAL` ... REAL_NEG_0 = |- --(& 0) = & 0 Run time: 0.0s COS_FDIFF = |- diffs(\n. (EVEN n => ((--(& 1)) pow (n DIV 2)) / (&(FACT n)) | & 0)) = (\n. -- ((\n. (EVEN n => & 0 | ((--(& 1)) pow ((n num_sub 1) DIV 2)) / (&(FACT n)))) n)) Run time: 0.0s Intermediate theorems generated: 407 Theorem SER_NEG autoloading from theory `SEQ` ... SER_NEG = |- !x x0. x sums x0 ==> (\n. --(x n)) sums (-- x0) Run time: 0.0s Theorem SUM_UNIQ autoloading from theory `SEQ` ... SUM_UNIQ = |- !f x. f sums x ==> (x = suminf f) Run time: 0.0s SIN_NEGLEMMA = |- !x. --(sin x) = suminf (\n. -- (((\n. (EVEN n => & 0 | ((--(& 1)) pow ((n num_sub 1) DIV 2)) / (&(FACT n)))) n) * (x pow n))) Run time: 0.0s Intermediate theorems generated: 42 Theorem REAL_LT_ADDR autoloading from theory `REAL` ... REAL_LT_ADDR = |- !x y. x < (x + y) = (& 0) < y Run time: 0.0s Theorem ABS_LE autoloading from theory `REAL` ... ABS_LE = |- !x. x <= (abs x) Run time: 0.0s Theorem REAL_LTE_TRANS autoloading from theory `REAL` ... REAL_LTE_TRANS = |- !x y z. x < y /\ y <= z ==> x < z Run time: 0.0s Theorem TERMDIFF autoloading from theory `POWSER` ... TERMDIFF = |- !c K. summable(\n. (c n) * (K pow n)) /\ summable(\n. (diffs c n) * (K pow n)) /\ summable(\n. (diffs(diffs c)n) * (K pow n)) /\ (abs x) < (abs K) ==> ((\x. suminf(\n. (c n) * (x pow n))) diffl (suminf(\n. (diffs c n) * (x pow n)))) x Run time: 0.0s DIFF_EXP = |- !x. (exp diffl (exp x))x Run time: 0.0s Intermediate theorems generated: 144 DIFF_SIN = |- !x. (sin diffl (cos x))x Run time: 0.0s Intermediate theorems generated: 200 Theorem DIFFS_NEG autoloading from theory `POWSER` ... DIFFS_NEG = |- !c. diffs(\n. --(c n)) = (\n. --(diffs c n)) Run time: 0.0s DIFF_COS = |- !x. (cos diffl (--(sin x)))x Run time: 0.0s Intermediate theorems generated: 283 [|- !x. (exp diffl (exp x))x; |- !x. (sin diffl (cos x))x; |- !x. (cos diffl (--(sin x)))x] : thm list Run time: 0.0s Theorem POW_0 autoloading from theory `REAL` ... POW_0 = |- !n. (& 0) pow (SUC n) = & 0 Run time: 0.0s Theorem LESS_ADD_1 autoloading from theory `arithmetic` ... LESS_ADD_1 = |- !m n. n num_lt m ==> (?p. m = n num_add (p num_add 1)) Run time: 0.0s Theorem LESS_EQ autoloading from theory `arithmetic` ... LESS_EQ = |- !m n. m num_lt n = (SUC m) num_le n Run time: 0.0s Theorem REAL_INV1 autoloading from theory `REAL` ... REAL_INV1 = |- inv(& 1) = & 1 Run time: 0.0s Theorem REAL_MUL_RID autoloading from theory `REAL` ... REAL_MUL_RID = |- !x. x * (& 1) = x Run time: 0.0s Theorem REAL_ADD_LID autoloading from theory `REAL` ... REAL_ADD_LID = |- !x. (& 0) + x = x Run time: 0.0s Theorem Sum autoloading from theory `REAL` ... Sum = |- (Sum(n,0)f = & 0) /\ (Sum(n,SUC m)f = (Sum(n,m)f) + (f(n num_add m))) Run time: 0.0s Theorem SER_0 autoloading from theory `SEQ` ... SER_0 = |- !f n. (!m. n num_le m ==> (f m = & 0)) ==> f sums (Sum(0,n)f) Run time: 0.0s EXP_0 = |- exp(& 0) = & 1 Run time: 0.0s Intermediate theorems generated: 274 Theorem REAL_LE_REFL autoloading from theory `REAL` ... REAL_LE_REFL = |- !x. x <= x Run time: 0.0s Theorem REAL_ADD_RID autoloading from theory `REAL` ... REAL_ADD_RID = |- !x. x + (& 0) = x Run time: 0.0s Theorem MULT_CLAUSES autoloading from theory `arithmetic` ... MULT_CLAUSES = |- !m n. (0 num_mul m = 0) /\ (m num_mul 0 = 0) /\ (1 num_mul m = m) /\ (m num_mul 1 = m) /\ ((SUC m) num_mul n = (m num_mul n) num_add n) /\ (m num_mul (SUC n) = m num_add (m num_mul n)) Run time: 0.0s Theorem POW_POS autoloading from theory `REAL` ... POW_POS = |- !x. (& 0) <= x ==> (!n. (& 0) <= (x pow n)) Run time: 0.0s Theorem SER_POS_LE autoloading from theory `SEQ` ... SER_POS_LE = |- !f n. summable f /\ (!m. n num_le m ==> (& 0) <= (f m)) ==> (Sum(0,n)f) <= (suminf f) Run time: 0.0s Theorem REAL_LE_LT autoloading from theory `REAL` ... REAL_LE_LT = |- !x y. x <= y = x < y \/ (x = y) Run time: 0.0s EXP_LE_X = |- !x. (& 0) <= x ==> ((& 1) + x) <= (exp x) Run time: 0.0s Intermediate theorems generated: 420 EXP_LT_1 = |- !x. (& 0) < x ==> (& 1) < (exp x) Run time: 0.0s Intermediate theorems generated: 56 Theorem REAL_SUB_0 autoloading from theory `REAL` ... REAL_SUB_0 = |- !x y. (x - y = & 0) = (x = y) Run time: 0.0s Definition real_sub autoloading from theory `REAL` ... real_sub = |- !x y. x - y = x + (-- y) Run time: 0.0s Intermediate theorems generated: 1 Theorem REAL_NEG_RMUL autoloading from theory `REAL` ... REAL_NEG_RMUL = |- !x y. --(x * y) = x * (-- y) Run time: 0.0s Theorem DIFF_ISCONST_ALL autoloading from theory `LIM` ... DIFF_ISCONST_ALL = |- !f. (!x. (f diffl (& 0))x) ==> (!x y. f x = f y) Run time: 0.0s EXP_ADD_MUL = |- !x y. (exp(x + y)) * (exp(-- x)) = exp y Run time: 0.1s Intermediate theorems generated: 660 EXP_NEG_MUL = |- !x. (exp x) * (exp(-- x)) = & 1 Run time: 0.0s Intermediate theorems generated: 19 EXP_NEG_MUL2 = |- !x. (exp(-- x)) * (exp x) = & 1 Run time: 0.0s Intermediate theorems generated: 16 Theorem REAL_RINV_UNIQ autoloading from theory `REAL` ... REAL_RINV_UNIQ = |- !x y. (x * y = & 1) ==> (y = inv x) Run time: 0.0s EXP_NEG = |- !x. exp(-- x) = inv(exp x) Run time: 0.0s Intermediate theorems generated: 13 Theorem EXP_ADD autoloading from theory `arithmetic` ... EXP_ADD = |- !p q n. n EXP (p num_add q) = (n EXP p) num_mul (n EXP q) Run time: 0.0s EXP_ADD = |- !x y. exp(x + y) = (exp x) * (exp y) Run time: 0.0s Intermediate theorems generated: 71 Theorem REAL_LE_SQUARE autoloading from theory `REAL` ... REAL_LE_SQUARE = |- !x. (& 0) <= (x * x) Run time: 0.0s Theorem REAL_HALF_DOUBLE autoloading from theory `REAL` ... REAL_HALF_DOUBLE = |- !x. (x / (& 2)) + (x / (& 2)) = x Run time: 0.0s EXP_POS_LE = |- !x. (& 0) <= (exp x) Run time: 0.0s Intermediate theorems generated: 27 Theorem REAL_10 autoloading from theory `REAL` ... REAL_10 = |- ~(& 1 = & 0) Run time: 0.0s EXP_NZ = |- !x. ~(exp x = & 0) Run time: 0.0s Intermediate theorems generated: 29 Theorem REAL_LT_LE autoloading from theory `REAL` ... REAL_LT_LE = |- !x y. x < y = x <= y /\ ~(x = y) Run time: 0.0s EXP_POS_LT = |- !x. (& 0) < (exp x) Run time: 0.0s Intermediate theorems generated: 38 Theorem REAL_RDISTRIB autoloading from theory `REAL` ... REAL_RDISTRIB = |- !x y z. (x + y) * z = (x * z) + (y * z) Run time: 0.0s Theorem REAL_ADD autoloading from theory `REAL` ... REAL_ADD = |- !m n. (& m) + (& n) = &(m num_add n) Run time: 0.0s Theorem ADD_SYM autoloading from theory `arithmetic` ... ADD_SYM = |- !m n. m num_add n = n num_add m Run time: 0.0s EXP_N = |- !n x. exp((& n) * x) = (exp x) pow n Run time: 0.0s Intermediate theorems generated: 152 EXP_SUB = |- !x y. exp(x - y) = (exp x) / (exp y) Run time: 0.0s Intermediate theorems generated: 38 Theorem REAL_LT_RMUL autoloading from theory `REAL` ... REAL_LT_RMUL = |- !x y z. (& 0) < z ==> ((x * z) < (y * z) = x < y) Run time: 0.0s Theorem REAL_SUB_LT autoloading from theory `REAL` ... REAL_SUB_LT = |- !x y. (& 0) < (x - y) = y < x Run time: 0.0s EXP_MONO_IMP = |- !x y. x < y ==> (exp x) < (exp y) Run time: 0.0s Intermediate theorems generated: 127 Theorem REAL_NOT_LT autoloading from theory `REAL` ... REAL_NOT_LT = |- !x y. ~x < y = y <= x Run time: 0.0s EXP_MONO_LT = |- !x y. (exp x) < (exp y) = x < y Run time: 0.0s Intermediate theorems generated: 85 EXP_MONO_LE = |- !x y. (exp x) <= (exp y) = x <= y Run time: 0.0s Intermediate theorems generated: 37 Theorem REAL_LE_ANTISYM autoloading from theory `REAL` ... REAL_LE_ANTISYM = |- !x y. x <= y /\ y <= x = (x = y) Run time: 0.0s EXP_INJ = |- !x y. (exp x = exp y) = (x = y) Run time: 0.0s Intermediate theorems generated: 39 Theorem DIFF_CONT autoloading from theory `LIM` ... DIFF_CONT = |- !f l x. (f diffl l)x ==> f contl x Run time: 0.0s Theorem REAL_SUB_ADD2 autoloading from theory `REAL` ... REAL_SUB_ADD2 = |- !x y. y + (x - y) = x Run time: 0.0s Theorem REAL_SUB_LE autoloading from theory `REAL` ... REAL_SUB_LE = |- !x y. (& 0) <= (x - y) = y <= x Run time: 0.0s Theorem REAL_LE_SUB_LADD autoloading from theory `REAL` ... REAL_LE_SUB_LADD = |- !x y z. x <= (y - z) = (x + z) <= y Run time: 0.0s Theorem IVT autoloading from theory `LIM` ... IVT = |- !f a b y. a <= b /\ ((f a) <= y /\ y <= (f b)) /\ (!x. a <= x /\ x <= b ==> f contl x) ==> (?x. a <= x /\ x <= b /\ (f x = y)) Run time: 0.0s EXP_TOTAL_LEMMA = |- !y. (& 1) <= y ==> (?x. (& 0) <= x /\ x <= (y - (& 1)) /\ (exp x = y)) Run time: 0.0s Intermediate theorems generated: 116 Theorem REAL_INVINV autoloading from theory `REAL` ... REAL_INVINV = |- !x. ~(x = & 0) ==> (inv(inv x) = x) Run time: 0.0s Theorem REAL_INV_LT1 autoloading from theory `REAL` ... REAL_INV_LT1 = |- !x. (& 0) < x /\ x < (& 1) ==> (& 1) < (inv x) Run time: 0.0s Theorem REAL_LET_TOTAL autoloading from theory `REAL` ... REAL_LET_TOTAL = |- !x y. x <= y \/ y < x Run time: 0.0s EXP_TOTAL = |- !y. (& 0) < y ==> (?x. exp x = y) Run time: 0.0s Intermediate theorems generated: 134 ln = |- !x. ln x = (@u. exp u = x) Run time: 0.0s Intermediate theorems generated: 2 LN_EXP = |- !x. ln(exp x) = x Run time: 0.0s Intermediate theorems generated: 52 EXP_LN = |- !x. (exp(ln x) = x) = (& 0) < x Run time: 0.0s Intermediate theorems generated: 41 Theorem REAL_LT_MUL autoloading from theory `REAL` ... REAL_LT_MUL = |- !x y. (& 0) < x /\ (& 0) < y ==> (& 0) < (x * y) Run time: 0.0s LN_MUL = |- !x y. (& 0) < x /\ (& 0) < y ==> (ln(x * y) = (ln x) + (ln y)) Run time: 0.0s Intermediate theorems generated: 113 LN_INJ = |- !x y. (& 0) < x /\ (& 0) < y ==> ((ln x = ln y) = (x = y)) Run time: 0.0s Intermediate theorems generated: 53 LN_1 = |- ln(& 1) = & 0 Run time: 0.0s Intermediate theorems generated: 27 Theorem REAL_POS_NZ autoloading from theory `REAL` ... REAL_POS_NZ = |- !x. (& 0) < x ==> ~(x = & 0) Run time: 0.0s Theorem REAL_RNEG_UNIQ autoloading from theory `REAL` ... REAL_RNEG_UNIQ = |- !x y. (x + y = & 0) = (y = -- x) Run time: 0.0s LN_INV = |- !x. (& 0) < x ==> (ln(inv x) = --(ln x)) Run time: 0.0s Intermediate theorems generated: 81 LN_DIV = |- !x. (& 0) < x /\ (& 0) < y ==> (ln(x / y) = (ln x) - (ln y)) Run time: 0.0s Intermediate theorems generated: 78 LN_MONO_LT = |- !x y. (& 0) < x /\ (& 0) < y ==> ((ln x) < (ln y) = x < y) Run time: 0.0s Intermediate theorems generated: 53 LN_MONO_LE = |- !x y. (& 0) < x /\ (& 0) < y ==> ((ln x) <= (ln y) = x <= y) Run time: 0.0s Intermediate theorems generated: 53 LN_POW = |- !n x. (& 0) < x ==> (ln(x pow n) = (& n) * (ln x)) Run time: 0.0s Intermediate theorems generated: 42 root = |- !n x. root n x = (@u. ((& 0) < x ==> (& 0) < u) /\ (u pow n = x)) Run time: 0.0s Intermediate theorems generated: 2 sqrt = |- !x. sqrt x = root 2 x Run time: 0.0s Intermediate theorems generated: 2 Theorem REAL_MUL_LINV autoloading from theory `REAL` ... REAL_MUL_LINV = |- !x. ~(x = & 0) ==> ((inv x) * x = & 1) Run time: 0.0s ROOT_LT_LEMMA = |- !n x. (& 0) < x ==> ((exp((ln x) / (&(SUC n)))) pow (SUC n) = x) Run time: 0.0s Intermediate theorems generated: 123 ROOT_LN = |- !n x. (& 0) < x ==> (!n. root(SUC n)x = exp((ln x) / (&(SUC n)))) Run time: 0.0s Intermediate theorems generated: 282 Theorem REAL_ENTIRE autoloading from theory `REAL` ... REAL_ENTIRE = |- !x y. (x * y = & 0) = (x = & 0) \/ (y = & 0) Run time: 0.0s Theorem REAL_LT_REFL autoloading from theory `REAL` ... REAL_LT_REFL = |- !x. ~x < x Run time: 0.0s ROOT_0 = |- !n. root(SUC n)(& 0) = & 0 Run time: 0.0s Intermediate theorems generated: 209 Theorem REAL_DIV_LZERO autoloading from theory `REAL` ... REAL_DIV_LZERO = |- !x. (& 0) / x = & 0 Run time: 0.0s ROOT_1 = |- !n. root(SUC n)(& 1) = & 1 Run time: 0.0s Intermediate theorems generated: 28 ROOT_POW_POS = |- !n x. (& 0) <= x ==> ((root(SUC n)x) pow (SUC n) = x) Run time: 0.0s Intermediate theorems generated: 66 SQRT_0 = |- sqrt(& 0) = & 0 Run time: 0.0s Intermediate theorems generated: 20 SQRT_1 = |- sqrt(& 1) = & 1 Run time: 0.0s Intermediate theorems generated: 20 Theorem REAL_LE_POW2 autoloading from theory `REAL` ... REAL_LE_POW2 = |- !x. (& 0) <= (x pow 2) Run time: 0.0s SQRT_POW2 = |- !x. ((sqrt x) pow 2 = x) = (& 0) <= x Run time: 0.0s Intermediate theorems generated: 33 Theorem ODD_EVEN autoloading from theory `arithmetic` ... ODD_EVEN = |- !n. ODD n = ~EVEN n Run time: 0.0s SIN_0 = |- sin(& 0) = & 0 Run time: 0.0s Intermediate theorems generated: 206 Theorem REAL_DIV_REFL autoloading from theory `REAL` ... REAL_DIV_REFL = |- !x. ~(x = & 0) ==> (x / x = & 1) Run time: 0.0s Theorem DIV_UNIQUE autoloading from theory `arithmetic` ... DIV_UNIQUE = |- !n k q. (?r. (k = (q num_mul n) num_add r) /\ r num_lt n) ==> (k DIV n = q) Run time: 0.0s COS_0 = |- cos(& 0) = & 1 Run time: 0.0s Intermediate theorems generated: 454 SIN_CIRCLE = |- !x. ((sin x) pow 2) + ((cos x) pow 2) = & 1 Run time: 0.0s Intermediate theorems generated: 690 Theorem REAL_ADD_RINV autoloading from theory `REAL` ... REAL_ADD_RINV = |- !x. x + (-- x) = & 0 Run time: 0.0s Theorem REAL_ADD_SYM autoloading from theory `REAL` ... REAL_ADD_SYM = |- !x y. x + y = y + x Run time: 0.0s Theorem REAL_ADD_ASSOC autoloading from theory `REAL` ... REAL_ADD_ASSOC = |- !x y z. x + (y + z) = (x + y) + z Run time: 0.0s Theorem REAL_LTE_ADD autoloading from theory `REAL` ... REAL_LTE_ADD = |- !x y. (& 0) < x /\ (& 0) <= y ==> (& 0) < (x + y) Run time: 0.0s Theorem POW_2 autoloading from theory `REAL` ... POW_2 = |- !x. x pow 2 = x * x Run time: 0.0s Theorem REAL_POW2_ABS autoloading from theory `REAL` ... REAL_POW2_ABS = |- !x. (abs x) pow 2 = x pow 2 Run time: 0.0s Theorem REAL_LT1_POW2 autoloading from theory `REAL` ... REAL_LT1_POW2 = |- !x. (& 1) < x ==> (& 1) < (x pow 2) Run time: 0.0s Theorem REAL_NOT_LE autoloading from theory `REAL` ... REAL_NOT_LE = |- !x y. ~x <= y = y < x Run time: 0.0s SIN_BOUND = |- !x. (abs(sin x)) <= (& 1) Run time: 0.0s Intermediate theorems generated: 212 Theorem ABS_BOUNDS autoloading from theory `REAL` ... ABS_BOUNDS = |- !x k. (abs x) <= k = (-- k) <= x /\ x <= k Run time: 0.0s SIN_BOUNDS = |- !x. (--(& 1)) <= (sin x) /\ (sin x) <= (& 1) Run time: 0.0s Intermediate theorems generated: 24 Theorem REAL_LET_ADD autoloading from theory `REAL` ... REAL_LET_ADD = |- !x y. (& 0) <= x /\ (& 0) < y ==> (& 0) < (x + y) Run time: 0.0s COS_BOUND = |- !x. (abs(cos x)) <= (& 1) Run time: 0.0s Intermediate theorems generated: 160 COS_BOUNDS = |- !x. (--(& 1)) <= (cos x) /\ (cos x) <= (& 1) Run time: 0.0s Intermediate theorems generated: 24 Theorem REAL_NEGNEG autoloading from theory `REAL` ... REAL_NEGNEG = |- !x. --(-- x) = x Run time: 0.0s Theorem REAL_NEG_ADD autoloading from theory `REAL` ... REAL_NEG_ADD = |- !x y. --(x + y) = (-- x) + (-- y) Run time: 0.0s Theorem REAL_SUB_LZERO autoloading from theory `REAL` ... REAL_SUB_LZERO = |- !x. (& 0) - x = -- x Run time: 0.0s Theorem REAL_EQ_SUB_LADD autoloading from theory `REAL` ... REAL_EQ_SUB_LADD = |- !x y z. (x = y - z) = (x + z = y) Run time: 0.0s Theorem REAL_SUB_REFL autoloading from theory `REAL` ... REAL_SUB_REFL = |- !x. x - x = & 0 Run time: 0.0s Theorem REAL_SUB_RZERO autoloading from theory `REAL` ... REAL_SUB_RZERO = |- !x. x - (& 0) = x Run time: 0.0s SIN_COS_ADD = |- !x y. (((sin(x + y)) - (((sin x) * (cos y)) + ((cos x) * (sin y)))) pow 2) + (((cos(x + y)) - (((cos x) * (cos y)) - ((sin x) * (sin y)))) pow 2) = & 0 Run time: 0.1s Intermediate theorems generated: 1747 SIN_COS_NEG = |- !x. (((sin(-- x)) + (sin x)) pow 2) + (((cos(-- x)) - (cos x)) pow 2) = & 0 Run time: 0.0s Intermediate theorems generated: 1099 Theorem REAL_SUMSQ autoloading from theory `REAL` ... REAL_SUMSQ = |- !x y. ((x * x) + (y * y) = & 0) = (x = & 0) /\ (y = & 0) Run time: 0.0s SIN_ADD = |- !x y. sin(x + y) = ((sin x) * (cos y)) + ((cos x) * (sin y)) Run time: 0.0s Intermediate theorems generated: 51 COS_ADD = |- !x y. cos(x + y) = ((cos x) * (cos y)) - ((sin x) * (sin y)) Run time: 0.0s Intermediate theorems generated: 51 Theorem REAL_LNEG_UNIQ autoloading from theory `REAL` ... REAL_LNEG_UNIQ = |- !x y. (x + y = & 0) = (x = -- y) Run time: 0.0s SIN_NEG = |- !x. sin(-- x) = --(sin x) Run time: 0.0s Intermediate theorems generated: 48 COS_NEG = |- !x. cos(-- x) = cos x Run time: 0.0s Intermediate theorems generated: 47 Theorem REAL_DOUBLE autoloading from theory `REAL` ... REAL_DOUBLE = |- !x. x + x = (& 2) * x Run time: 0.0s SIN_DOUBLE = |- !x. sin((& 2) * x) = (& 2) * ((sin x) * (cos x)) Run time: 0.0s Intermediate theorems generated: 29 COS_DOUBLE = |- !x. cos((& 2) * x) = ((cos x) pow 2) - ((sin x) pow 2) Run time: 0.0s Intermediate theorems generated: 34 Theorem ODD_DOUBLE autoloading from theory `arithmetic` ... ODD_DOUBLE = |- !n. ODD(SUC(2 num_mul n)) Run time: 0.0s Theorem EVEN_DOUBLE autoloading from theory `arithmetic` ... EVEN_DOUBLE = |- !n. EVEN(2 num_mul n) Run time: 0.0s Theorem SUM_2 autoloading from theory `REAL` ... SUM_2 = |- !f n. Sum(n,2)f = (f n) + (f(n num_add 1)) Run time: 0.0s Theorem SER_PAIR autoloading from theory `SEQ` ... SER_PAIR = |- !f. summable f ==> (\n. Sum(2 num_mul n,2)f) sums (suminf f) Run time: 0.0s SIN_PAIRED = |- !x. (\n. (((--(& 1)) pow n) / (&(FACT((2 num_mul n) num_add 1)))) * (x pow ((2 num_mul n) num_add 1))) sums (sin x) Run time: 0.0s Intermediate theorems generated: 183 Theorem LESS_EQ_MONO autoloading from theory `arithmetic` ... LESS_EQ_MONO = |- !n m. (SUC n) num_le (SUC m) = n num_le m Run time: 0.0s Theorem LESS_SUC_REFL autoloading from theory `prim_rec` ... LESS_SUC_REFL = |- !n. n num_lt (SUC n) Run time: 0.0s Theorem REAL_LT_TRANS autoloading from theory `REAL` ... REAL_LT_TRANS = |- !x y z. x < y /\ y < z ==> x < z Run time: 0.0s Theorem REAL_LT_MUL2 autoloading from theory `REAL` ... REAL_LT_MUL2 = |- !x1 x2 y1 y2. (& 0) <= x1 /\ (& 0) <= y1 /\ x1 < x2 /\ y1 < y2 ==> (x1 * y1) < (x2 * y2) Run time: 0.0s Theorem REAL_LT_1 autoloading from theory `REAL` ... REAL_LT_1 = |- !x y. (& 0) <= x /\ x < y ==> (x / y) < (& 1) Run time: 0.0s Theorem POW_POS_LT autoloading from theory `REAL` ... POW_POS_LT = |- !x n. (& 0) < x ==> (& 0) < (x pow (SUC n)) Run time: 0.0s Theorem REAL_LT_RMUL_IMP autoloading from theory `REAL` ... REAL_LT_RMUL_IMP = |- !x y z. x < y /\ (& 0) < z ==> (x * z) < (y * z) Run time: 0.0s Theorem SER_POS_LT autoloading from theory `SEQ` ... SER_POS_LT = |- !f n. summable f /\ (!m. n num_le m ==> (& 0) < (f m)) ==> (Sum(0,n)f) < (suminf f) Run time: 0.0s Theorem POW_MINUS1 autoloading from theory `REAL` ... POW_MINUS1 = |- !n. (--(& 1)) pow (2 num_mul n) = & 1 Run time: 0.0s SIN_POS = |- !x. (& 0) < x /\ x < (& 2) ==> (& 0) < (sin x) Run time: 0.0s Intermediate theorems generated: 2052 COS_PAIRED = |- !x. (\n. (((--(& 1)) pow n) / (&(FACT(2 num_mul n)))) * (x pow (2 num_mul n))) sums (cos x) Run time: 0.1s Intermediate theorems generated: 163 Theorem LESS_MONO_EQ autoloading from theory `arithmetic` ... LESS_MONO_EQ = |- !m n. (SUC m) num_lt (SUC n) = m num_lt n Run time: 0.0s Theorem SER_POS_LT_PAIR autoloading from theory `SEQ` ... SER_POS_LT_PAIR = |- !f n. summable f /\ (!d. (& 0) < ((f(n num_add (2 num_mul d))) + (f(n num_add ((2 num_mul d) num_add 1))))) ==> (Sum(0,n)f) < (suminf f) Run time: 0.0s Theorem REAL_ADD_LINV autoloading from theory `REAL` ... REAL_ADD_LINV = |- !x. (-- x) + x = & 0 Run time: 0.0s Theorem REAL_EQ_LMUL_IMP autoloading from theory `REAL` ... REAL_EQ_LMUL_IMP = |- !x y z. ~(x = & 0) /\ (x * y = x * z) ==> (y = z) Run time: 0.0s Theorem REAL_NEG_LT0 autoloading from theory `REAL` ... REAL_NEG_LT0 = |- !x. (-- x) < (& 0) = (& 0) < x Run time: 0.0s COS_2 = |- (cos(& 2)) < (& 0) Run time: 0.0s Intermediate theorems generated: 3794 Theorem REAL_LET_TRANS autoloading from theory `REAL` ... REAL_LET_TRANS = |- !x y z. x <= y /\ y < z ==> x < z Run time: 0.0s Theorem REAL_NEG_EQ0 autoloading from theory `REAL` ... REAL_NEG_EQ0 = |- !x. (-- x = & 0) = (x = & 0) Run time: 0.0s Theorem DIFF_UNIQ autoloading from theory `LIM` ... DIFF_UNIQ = |- !f l m x. (f diffl l)x /\ (f diffl m)x ==> (l = m) Run time: 0.0s Theorem ROLLE autoloading from theory `LIM` ... ROLLE = |- !f a b. a < b /\ (f a = f b) /\ (!x. a <= x /\ x <= b ==> f contl x) /\ (!x. a < x /\ x < b ==> f differentiable x) ==> (?z. a < z /\ z < b /\ (f diffl (& 0))z) Run time: 0.0s Definition differentiable autoloading from theory `LIM` ... differentiable = |- !f x. f differentiable x = (?l. (f diffl l)x) Run time: 0.0s Intermediate theorems generated: 1 Theorem REAL_LT_TOTAL autoloading from theory `REAL` ... REAL_LT_TOTAL = |- !x y. (x = y) \/ x < y \/ y < x Run time: 0.0s Theorem REAL_LE_01 autoloading from theory `REAL` ... REAL_LE_01 = |- (& 0) <= (& 1) Run time: 0.0s Theorem IVT2 autoloading from theory `LIM` ... IVT2 = |- !f a b y. a <= b /\ ((f b) <= y /\ y <= (f a)) /\ (!x. a <= x /\ x <= b ==> f contl x) ==> (?x. a <= x /\ x <= b /\ (f x = y)) Run time: 0.0s COS_ISZERO = |- ?! x. (& 0) <= x /\ x <= (& 2) /\ (cos x = & 0) Run time: 0.0s Intermediate theorems generated: 775 pi = |- pi = (& 2) * (@x. (& 0) <= x /\ x <= (& 2) /\ (cos x = & 0)) Run time: 0.0s Intermediate theorems generated: 2 PI2 = |- pi / (& 2) = (@x. (& 0) <= x /\ x <= (& 2) /\ (cos x = & 0)) Run time: 0.1s Intermediate theorems generated: 117 COS_PI2 = |- cos(pi / (& 2)) = & 0 Run time: 0.0s Intermediate theorems generated: 42 PI2_BOUNDS = |- (& 0) < (pi / (& 2)) /\ (pi / (& 2)) < (& 2) Run time: 0.0s Intermediate theorems generated: 124 Theorem REAL_LT_ADD autoloading from theory `REAL` ... REAL_LT_ADD = |- !x y. (& 0) < x /\ (& 0) < y ==> (& 0) < (x + y) Run time: 0.0s PI_POS = |- (& 0) < pi Run time: 0.0s Intermediate theorems generated: 31 Theorem REAL_LT_GT autoloading from theory `REAL` ... REAL_LT_GT = |- !x y. x < y ==> ~y < x Run time: 0.0s Theorem REAL_DIFFSQ autoloading from theory `REAL` ... REAL_DIFFSQ = |- !x y. (x + y) * (x - y) = (x * x) - (y * y) Run time: 0.0s SIN_PI2 = |- sin(pi / (& 2)) = & 1 Run time: 0.0s Intermediate theorems generated: 212 Theorem REAL_DIV_LMUL autoloading from theory `REAL` ... REAL_DIV_LMUL = |- !x y. ~(y = & 0) ==> (y * (x / y) = x) Run time: 0.0s COS_PI = |- cos pi = --(& 1) Run time: 0.0s Intermediate theorems generated: 84 SIN_PI = |- sin pi = & 0 Run time: 0.0s Intermediate theorems generated: 79 SIN_COS = |- !x. sin x = cos((pi / (& 2)) - x) Run time: 0.0s Intermediate theorems generated: 66 COS_SIN = |- !x. cos x = sin((pi / (& 2)) - x) Run time: 0.0s Intermediate theorems generated: 56 SIN_PERIODIC_PI = |- !x. sin(x + pi) = --(sin x) Run time: 0.0s Intermediate theorems generated: 59 COS_PERIODIC_PI = |- !x. cos(x + pi) = --(cos x) Run time: 0.0s Intermediate theorems generated: 59 SIN_PERIODIC = |- !x. sin(x + ((& 2) * pi)) = sin x Run time: 0.0s Intermediate theorems generated: 47 COS_PERIODIC = |- !x. cos(x + ((& 2) * pi)) = cos x Run time: 0.0s Intermediate theorems generated: 47 COS_NPI = |- !n. cos((& n) * pi) = (--(& 1)) pow n Run time: 0.0s Intermediate theorems generated: 134 SIN_NPI = |- !n. sin((& n) * pi) = & 0 Run time: 0.0s Intermediate theorems generated: 137 SIN_POS_PI2 = |- !x. (& 0) < x /\ x < (pi / (& 2)) ==> (& 0) < (sin x) Run time: 0.0s Intermediate theorems generated: 53 COS_POS_PI2 = |- !x. (& 0) < x /\ x < (pi / (& 2)) ==> (& 0) < (cos x) Run time: 0.0s Intermediate theorems generated: 450 Theorem REAL_LT_NEG autoloading from theory `REAL` ... REAL_LT_NEG = |- !x y. (-- x) < (-- y) = y < x Run time: 0.0s COS_POS_PI = |- !x. (--(pi / (& 2))) < x /\ x < (pi / (& 2)) ==> (& 0) < (cos x) Run time: 0.0s Intermediate theorems generated: 143 Theorem REAL_LT_SUB_RADD autoloading from theory `REAL` ... REAL_LT_SUB_RADD = |- !x y z. (x - y) < z = x < (z + y) Run time: 0.0s Theorem REAL_LT_SUB_LADD autoloading from theory `REAL` ... REAL_LT_SUB_LADD = |- !x y z. x < (y - z) = (x + z) < y Run time: 0.0s Theorem REAL_NEG_SUB autoloading from theory `REAL` ... REAL_NEG_SUB = |- !x y. --(x - y) = y - x Run time: 0.0s SIN_POS_PI = |- !x. (& 0) < x /\ x < pi ==> (& 0) < (sin x) Run time: 0.0s Intermediate theorems generated: 96 COS_TOTAL = |- !y. (--(& 1)) <= y /\ y <= (& 1) ==> (?! x. (& 0) <= x /\ x <= pi /\ (cos x = y)) Run time: 0.0s Intermediate theorems generated: 766 Theorem REAL_EQ_RADD autoloading from theory `REAL` ... REAL_EQ_RADD = |- !x y z. (x + z = y + z) = (x = y) Run time: 0.0s Theorem REAL_SUB_ADD autoloading from theory `REAL` ... REAL_SUB_ADD = |- !x y. (x - y) + y = x Run time: 0.0s Theorem REAL_LE_NEG autoloading from theory `REAL` ... REAL_LE_NEG = |- !x y. (-- x) <= (-- y) = y <= x Run time: 0.0s Theorem REAL_ADD_SUB autoloading from theory `REAL` ... REAL_ADD_SUB = |- !x y. (x + y) - x = y Run time: 0.0s Theorem REAL_EQ_NEG autoloading from theory `REAL` ... REAL_EQ_NEG = |- !x y. (-- x = -- y) = (x = y) Run time: 0.0s Theorem REAL_LE_SUB_RADD autoloading from theory `REAL` ... REAL_LE_SUB_RADD = |- !x y z. (x - y) <= z = x <= (z + y) Run time: 0.0s SIN_TOTAL = |- !y. (--(& 1)) <= y /\ y <= (& 1) ==> (?! x. (--(pi / (& 2))) <= x /\ x <= (pi / (& 2)) /\ (sin x = y)) Run time: 0.0s Intermediate theorems generated: 431 Theorem REAL_DIV_RMUL autoloading from theory `REAL` ... REAL_DIV_RMUL = |- !x y. ~(y = & 0) ==> ((x / y) * y = x) Run time: 0.0s Theorem REAL_EQ_SUB_RADD autoloading from theory `REAL` ... REAL_EQ_SUB_RADD = |- !x y z. (x - y = z) = (x = z + y) Run time: 0.0s Theorem REAL_LT_HALF2 autoloading from theory `REAL` ... REAL_LT_HALF2 = |- !d. (d / (& 2)) < d = (& 0) < d Run time: 0.0s Theorem REAL_LT_HALF1 autoloading from theory `REAL` ... REAL_LT_HALF1 = |- !d. (& 0) < (d / (& 2)) = (& 0) < d Run time: 0.0s Theorem REAL_NEG_LE0 autoloading from theory `REAL` ... REAL_NEG_LE0 = |- !x. (-- x) <= (& 0) = (& 0) <= x Run time: 0.0s Theorem REAL_ARCH_LEAST autoloading from theory `REAL` ... REAL_ARCH_LEAST = |- !y. (& 0) < y ==> (!x. (& 0) <= x ==> (?n. ((& n) * y) <= x /\ x < ((&(SUC n)) * y))) Run time: 0.0s COS_ZERO_LEMMA = |- !x. (& 0) <= x /\ (cos x = & 0) ==> (?n. ~EVEN n /\ (x = (& n) * (pi / (& 2)))) Run time: 0.0s Intermediate theorems generated: 675 Theorem REAL_LE_ADDR autoloading from theory `REAL` ... REAL_LE_ADDR = |- !x y. x <= (x + y) = (& 0) <= y Run time: 0.0s SIN_ZERO_LEMMA = |- !x. (& 0) <= x /\ (sin x = & 0) ==> (?n. EVEN n /\ (x = (& n) * (pi / (& 2)))) Run time: 0.0s Intermediate theorems generated: 305 Theorem REAL_NEG_EQ autoloading from theory `REAL` ... REAL_NEG_EQ = |- !x y. (-- x = y) = (x = -- y) Run time: 0.0s Theorem REAL_LE_TOTAL autoloading from theory `REAL` ... REAL_LE_TOTAL = |- !x y. x <= y \/ y <= x Run time: 0.0s COS_ZERO = |- !x. (cos x = & 0) = (?n. ~EVEN n /\ (x = (& n) * (pi / (& 2)))) \/ (?n. ~EVEN n /\ (x = --((& n) * (pi / (& 2))))) Run time: 0.0s Intermediate theorems generated: 630 Theorem EVEN_EXISTS autoloading from theory `arithmetic` ... EVEN_EXISTS = |- !n. EVEN n = (?m. n = 2 num_mul m) Run time: 0.0s Theorem REAL_NEG_GE0 autoloading from theory `REAL` ... REAL_NEG_GE0 = |- !x. (& 0) <= (-- x) = x <= (& 0) Run time: 0.0s SIN_ZERO = |- !x. (sin x = & 0) = (?n. EVEN n /\ (x = (& n) * (pi / (& 2)))) \/ (?n. EVEN n /\ (x = --((& n) * (pi / (& 2))))) Run time: 0.1s Intermediate theorems generated: 319 tan = |- !x. tan x = (sin x) / (cos x) Run time: 0.0s Intermediate theorems generated: 2 TAN_0 = |- tan(& 0) = & 0 Run time: 0.0s Intermediate theorems generated: 19 TAN_PI = |- tan pi = & 0 Run time: 0.0s Intermediate theorems generated: 19 TAN_NPI = |- !n. tan((& n) * pi) = & 0 Run time: 0.0s Intermediate theorems generated: 24 TAN_NEG = |- !x. tan(-- x) = --(tan x) Run time: 0.0s Intermediate theorems generated: 46 TAN_PERIODIC = |- !x. tan(x + ((& 2) * pi)) = tan x Run time: 0.0s Intermediate theorems generated: 24 Theorem REAL_LDISTRIB autoloading from theory `REAL` ... REAL_LDISTRIB = |- !x y z. x * (y + z) = (x * y) + (x * z) Run time: 0.0s Theorem REAL_SUB_LDISTRIB autoloading from theory `REAL` ... REAL_SUB_LDISTRIB = |- !x y z. x * (y - z) = (x * y) - (x * z) Run time: 0.0s Theorem REAL_DIV_MUL2 autoloading from theory `REAL` ... REAL_DIV_MUL2 = |- !x z. ~(x = & 0) /\ ~(z = & 0) ==> (!y. y / z = (x * y) / (x * z)) Run time: 0.0s TAN_ADD = |- !x y. ~(cos x = & 0) /\ ~(cos y = & 0) /\ ~(cos(x + y) = & 0) ==> (tan(x + y) = ((tan x) + (tan y)) / ((& 1) - ((tan x) * (tan y)))) Run time: 0.0s Intermediate theorems generated: 869 TAN_DOUBLE = |- !x. ~(cos x = & 0) /\ ~(cos((& 2) * x) = & 0) ==> (tan((& 2) * x) = ((& 2) * (tan x)) / ((& 1) - ((tan x) pow 2))) Run time: 0.0s Intermediate theorems generated: 68 TAN_POS_PI2 = |- !x. (& 0) < x /\ x < (pi / (& 2)) ==> (& 0) < (tan x) Run time: 0.0s Intermediate theorems generated: 78 Theorem REAL_INV_1OVER autoloading from theory `REAL` ... REAL_INV_1OVER = |- !x. inv x = (& 1) / x Run time: 0.0s DIFF_TAN = |- !x. ~(cos x = & 0) ==> (tan diffl (inv((cos x) pow 2)))x Run time: 0.0s Intermediate theorems generated: 532 Theorem REAL_LT_INV autoloading from theory `REAL` ... REAL_LT_INV = |- !x y. (& 0) < x /\ x < y ==> (inv y) < (inv x) Run time: 0.0s Theorem ABS_NEG autoloading from theory `REAL` ... ABS_NEG = |- !x. abs(-- x) = abs x Run time: 0.0s Theorem REAL_SUB_SUB autoloading from theory `REAL` ... REAL_SUB_SUB = |- !x y. (x - y) - x = -- y Run time: 0.0s Theorem REAL_DOWN2 autoloading from theory `REAL` ... REAL_DOWN2 = |- !x y. (& 0) < x /\ (& 0) < y ==> (?z. (& 0) < z /\ z < x /\ z < y) Run time: 0.0s Theorem LIM autoloading from theory `LIM` ... LIM = |- !f y0 x0. (f tends_real_real y0)x0 = (!e. (& 0) < e ==> (?d. (& 0) < d /\ (!x. (& 0) < (abs(x - x0)) /\ (abs(x - x0)) < d ==> (abs((f x) - y0)) < e))) Run time: 0.0s Theorem CONTL_LIM autoloading from theory `LIM` ... CONTL_LIM = |- !f x. f contl x = (f tends_real_real (f x))x Run time: 0.0s Theorem LIM_DIV autoloading from theory `LIM` ... LIM_DIV = |- !f g l m. (f tends_real_real l)x /\ (g tends_real_real m)x /\ ~(m = & 0) ==> ((\x. (f x) / (g x)) tends_real_real (l / m))x Run time: 0.0s TAN_TOTAL_LEMMA = |- !y. (& 0) < y ==> (?x. (& 0) < x /\ x < (pi / (& 2)) /\ y < (tan x)) Run time: 0.0s Intermediate theorems generated: 1046 TAN_TOTAL_POS = |- !y. (& 0) <= y ==> (?x. (& 0) <= x /\ x < (pi / (& 2)) /\ (tan x = y)) Run time: 0.0s Intermediate theorems generated: 372 Theorem POW_NZ autoloading from theory `REAL` ... POW_NZ = |- !c n. ~(c = & 0) ==> ~(c pow n = & 0) Run time: 0.0s Theorem REAL_INV_NZ autoloading from theory `REAL` ... REAL_INV_NZ = |- !x. ~(x = & 0) ==> ~(inv x = & 0) Run time: 0.0s Theorem REAL_LE_NEGL autoloading from theory `REAL` ... REAL_LE_NEGL = |- !x. (-- x) <= x = (& 0) <= x Run time: 0.0s Theorem REAL_LE_NEGTOTAL autoloading from theory `REAL` ... REAL_LE_NEGTOTAL = |- !x. (& 0) <= x \/ (& 0) <= (-- x) Run time: 0.0s TAN_TOTAL = |- !y. ?! x. (--(pi / (& 2))) < x /\ x < (pi / (& 2)) /\ (tan x = y) Run time: 0.0s Intermediate theorems generated: 1301 asn = |- !y. asn y = (@x. (--(pi / (& 2))) <= x /\ x <= (pi / (& 2)) /\ (sin x = y)) Run time: 0.0s Intermediate theorems generated: 2 acs = |- !y. acs y = (@x. (& 0) <= x /\ x <= pi /\ (cos x = y)) Run time: 0.0s Intermediate theorems generated: 2 atn = |- !y. atn y = (@x. (--(pi / (& 2))) < x /\ x < (pi / (& 2)) /\ (tan x = y)) Run time: 0.0s Intermediate theorems generated: 2 ASN = |- !y. (--(& 1)) <= y /\ y <= (& 1) ==> (--(pi / (& 2))) <= (asn y) /\ (asn y) <= (pi / (& 2)) /\ (sin(asn y) = y) Run time: 0.0s Intermediate theorems generated: 79 ASN_SIN = |- !y. (--(& 1)) <= y /\ y <= (& 1) ==> (sin(asn y) = y) Run time: 0.0s Intermediate theorems generated: 18 ASN_BOUNDS = |- !y. (--(& 1)) <= y /\ y <= (& 1) ==> (--(pi / (& 2))) <= (asn y) /\ (asn y) <= (pi / (& 2)) Run time: 0.0s Intermediate theorems generated: 17 SIN_ASN = |- !x. (--(pi / (& 2))) <= x /\ x <= (pi / (& 2)) ==> (asn(sin x) = x) Run time: 0.1s Intermediate theorems generated: 86 ACS = |- !y. (--(& 1)) <= y /\ y <= (& 1) ==> (& 0) <= (acs y) /\ (acs y) <= pi /\ (cos(acs y) = y) Run time: 0.0s Intermediate theorems generated: 79 ACS_COS = |- !y. (--(& 1)) <= y /\ y <= (& 1) ==> (cos(acs y) = y) Run time: 0.0s Intermediate theorems generated: 18 ACS_BOUNDS = |- !y. (--(& 1)) <= y /\ y <= (& 1) ==> (& 0) <= (acs y) /\ (acs y) <= pi Run time: 0.0s Intermediate theorems generated: 17 COS_ACS = |- !x. (& 0) <= x /\ x <= pi ==> (acs(cos x) = x) Run time: 0.0s Intermediate theorems generated: 86 ATN = |- !y. (--(pi / (& 2))) < (atn y) /\ (atn y) < (pi / (& 2)) /\ (tan(atn y) = y) Run time: 0.0s Intermediate theorems generated: 76 ATN_TAN = |- !y. tan(atn y) = y Run time: 0.0s Intermediate theorems generated: 28 ATN_BOUNDS = |- !y. (--(pi / (& 2))) < (atn y) /\ (atn y) < (pi / (& 2)) Run time: 0.0s Intermediate theorems generated: 28 TAN_ATN = |- !x. (--(pi / (& 2))) < x /\ x < (pi / (& 2)) ==> (atn(tan x) = x) Run time: 0.0s Intermediate theorems generated: 103 () : void Run time: 0.0s Intermediate theorems generated: 1 File transc.ml loaded () : void Run time: 1.1s Intermediate theorems generated: 30503 #make[5]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/reals/theories' make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/reals' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/window' rm -f win.th echo 'set_flag(`abort_when_fail`,true);;' \ 'loadt `mk_win_th`;;' \ 'quit ();;' | ../../hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool () : void |- !a b. a <== b = b ==> a () : void File mk_win_th loaded () : void #echo 'set_flag(`abort_when_fail`,true);;' \ 'compilet `ml_ext`;;' \ 'quit();;' | ../../hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool () : void le = - : (int -> int -> bool) () : void ge = - : (int -> int -> bool) prefix = - : (* list -> * list -> bool) suffix = - : (* list -> * list -> bool) after = - : (* list -> * list -> * list) before = - : (* list -> * list -> * list) index = - : ((* -> bool) -> * list -> int) merge = - : (((* # *) -> bool) -> * list -> * list -> * list) best = - : (((* # *) -> bool) -> * list -> *) first = - : (int -> * list -> * list) last = - : (int -> * list -> * list) New constructors declared: POINTER : (((void -> *) # (* -> void) # (void -> void)) -> * pointer) value = - : (* pointer -> *) store = - : (* pointer -> * -> void) dispose = - : (* pointer -> void) is_nil = - : (* pointer -> bool) ptrtype = - : (string -> string -> void) New constructors declared: SIGNAL : (((* -> void) # (void -> void) # ((* -> void) -> void)) -> * signal) signal = - : (* signal -> * -> void) clear = - : (* signal -> void) handle = - : (* signal -> (* -> void) -> void) sigtype = - : (string -> string -> void) Calling Lisp compiler File ml_ext compiled () : void #echo 'set_flag(`abort_when_fail`,true);;' \ 'load_theory `win`;;' \ 'compilet `thms`;;' \ 'quit();;' | ../../hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Theory win loaded () : void PMI_DEF = |- !a b. a <== b = b ==> a IMP_REFL_THM = |- !x. x ==> x IMP_TRANS_THM = |- !x y z. (x ==> y) /\ (y ==> z) ==> x ==> z PMI_REFL_THM = |- !x. x <== x PMI_TRANS_THM = |- !x y z. x <== y /\ y <== z ==> x <== z Calling Lisp compiler File thms compiled () : void #echo 'set_flag(`abort_when_fail`,true);;' \ 'load_theory `win`;;' \ 'loadf `thms`;;' \ 'compilet `hol_ext`;;' \ 'quit();;' | ../../hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Theory win loaded () : void .....() : void goal_frees = - : (goal -> term list) term_mem = - : (term -> term list -> bool) term_subset = - : (term list -> term list -> bool) term_setify = - : (term list -> term list) term_intersect = - : (term list -> term list -> term list) term_union = - : (term list -> term list -> term list) better_thm = - : (thm -> thm -> bool) better_goal = - : (goal -> goal -> bool) thm_subset = - : (thm list -> thm list -> bool) thm_set_equal = - : (thm list -> thm list -> bool) goal_subset = - : (goal list -> goal list -> bool) goal_set_equal = - : (goal list -> goal list -> bool) thm_setify = - : (thm list -> thm list) goal_setify = - : (goal list -> goal list) is_fun = - : (term -> bool) dom = - : (term -> type) ran = - : (term -> type) is_trueimp = - : (term -> bool) is_pmi = - : (term -> bool) dest_pmi = - : (term -> (term # term)) IMP_PMI_CONV = - : conv IMP_PMI = - : (thm -> thm) PMI_IMP_CONV = - : conv PMI_IMP = - : (thm -> thm) IMP_REFL = - : conv PMI_REFL = - : conv PMI_TRANS = - : (thm -> thm -> thm) EXISTS_PMI = - : (term -> thm -> thm) DNEG_THM = |- !t. ~~t = t NOT_DISJ_THM = |- !t1 t2. ~(t1 \/ t2) = ~t1 /\ ~t2 NOT_IMP_THM = |- !t1 t2. ~(t1 ==> t2) = t1 /\ ~t2 NOT_PMI_THM = |- !t1 t2. ~t1 <== t2 = ~t1 /\ t2 COND_F_THM = |- !t1 t2. (t1 => t2 | F) = t1 /\ t2 SMASH = - : (thm -> thm list) - : (thm -> thm list) SMASH = - : (thm -> thm list) smash = - : (term -> term list) prove_hyp = - : (goal -> goal -> goal) true_tm = "T" : term false_tm = "F" : term imp_tm = "$==>" : term pmi_tm = "$<==" : term equiv_tm = "$=" : term Calling Lisp compiler File hol_ext compiled () : void #echo 'set_flag(`abort_when_fail`,true);;' \ 'load_theory `win`;;' \ 'loadf `thms`;;' \ 'loadf `hol_ext`;;' \ 'compilet `tables`;;' \ 'quit();;' | ../../hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Theory win loaded () : void .....() : void .......................................() : void FAST_MATCH_MP = - : (thm -> thm -> thm) refl_ptr = - : conv add_refl = - : (thm -> void) reflexive = - : conv trans_ptr = - : (thm -> thm) add_trans = - : (thm -> void) transitive = - : (thm -> thm) known_relation = - : (term -> bool) weakenings = [] : thm list weak_table = [] : (term # term list) list check_weak_thm = - : (thm -> (term # term)) MATCH_IMP_TRANS = - : (thm -> thm -> thm) stronger = - : ((term # term) -> bool) weaker = - : ((term # term) -> bool) match_type = - : (term -> term -> (type # type) list) rel_str = - : (term -> term list) add_weak = - : (thm -> void) weaken = - : (term -> thm -> thm) relative_strengths = - : (term -> term list) add_relation = - : ((thm # thm) -> void) () : void () : void () : void ((-), (-), (-), (-), (-), -) : (((thm # thm) -> void) # conv # (thm -> thm) # (thm -> void) # (term -> thm -> thm) # (term -> term list)) add_relation = - : ((thm # thm) -> void) reflexive = - : conv transitive = - : (thm -> thm) add_weak = - : (thm -> void) weaken = - : (term -> thm -> thm) relative_strengths = - : (term -> term list) New constructors declared: RATOR : path_elt RAND : path_elt BODY : path_elt type path defined traverse = - : (path -> term -> term) New constructors declared: FOCUS_PATH : (path -> win_path) CONTEXT_PATH : ((term # path) -> win_path) type window_rule defined New constructors declared: TREE : ((((* list # **) -> void) # (* list -> (* list # **) list) # (void -> void)) -> (*,**) tree) plant = - : ((*,**) tree -> (* list # **) -> void) harvest = - : ((*,**) tree -> * list -> (* list # **) list) purge = - : ((*,**) tree -> void -> void) newtree = - : (void -> (path_elt,((term -> bool) # (term -> term -> term) # (term -> term -> term) # (term -> thm list -> thm list) # (term -> term list) # (term -> thm -> thm))) tree) rule_tree = TREE((-), (-), -) : (path_elt,((term -> bool) # (term -> term -> term) # (term -> term -> term) # (term -> thm list -> thm list) # (term -> term list) # (term -> thm -> thm))) tree store_rule = - : (window_rule -> void) search_rule = - : (path -> window_rule list) empty_rules = - : (void -> void) ((-), (-), -) : ((window_rule -> void) # (path -> window_rule list) # (void -> void)) store_rule = - : (window_rule -> void) search_rule = - : (path -> window_rule list) empty_rules = - : (void -> void) Calling Lisp compiler File tables compiled () : void #echo 'set_flag(`abort_when_fail`,true);;' \ 'load_theory `win`;;' \ 'loadf `thms`;;' \ 'loadf `hol_ext`;;' \ 'loadf `tables`;;' \ 'compilet `basic_close`;;' \ 'quit();;' | ../../hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Theory win loaded () : void .....() : void .......................................() : void .....................................() : void RATOR_CLOSE = - : (term -> thm -> thm) RAND_CLOSE = - : (term -> thm -> thm) BODY_CLOSE = - : (term -> thm -> thm) COND1_THM = |- !R A B C D. (!x. R x x) ==> (A ==> R D B) ==> R(A => D | C)(A => B | C) COND1_CLOSE = - : (term -> thm -> thm) COND2_THM = |- !R A B C D. (!x. R x x) ==> (~A ==> R D C) ==> R(A => B | D)(A => B | C) COND2_CLOSE = - : (term -> thm -> thm) BODY2_THM = |- !c f g r. (!v. (v = c) ==> r(f v)(g v)) ==> r(f c)(g c) BODY2_CLOSE = - : (term -> thm -> thm) LET_THM = |- !c f g r. (!v. (v = c) ==> r(f v)(g v)) ==> r(LET f c)(LET g c) LET_CLOSE = - : (term -> thm -> thm) () : void () : void () : void () : void () : void () : void () : void Section basic_close ended Calling Lisp compiler File basic_close compiled () : void #echo 'set_flag(`abort_when_fail`,true);;' \ 'load_theory `win`;;' \ 'loadf `thms`;;' \ 'loadf `hol_ext`;;' \ 'loadf `tables`;;' \ 'compilet `eq_close`;;' \ 'quit();;' | ../../hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Theory win loaded () : void .....() : void .......................................() : void .....................................() : void CONJ1_THM = |- !A B C. (B ==> (C = A)) ==> (C /\ B = A /\ B) CONJ1_CLOSE = - : (term -> thm -> thm) CONJ2_THM = |- !A B C. (A ==> (C = B)) ==> (A /\ C = A /\ B) CONJ2_CLOSE = - : (term -> thm -> thm) IMP1_THM = |- !A B C. (~B ==> (C = A)) ==> (C ==> B = A ==> B) IMP1_CLOSE = - : (term -> thm -> thm) IMP2_THM = |- !A B C. (A ==> (C = B)) ==> (A ==> C = A ==> B) IMP2_CLOSE = - : (term -> thm -> thm) PMI1_THM = |- !A B C. (B ==> (C = A)) ==> (C <== B = A <== B) PMI1_CLOSE = - : (term -> thm -> thm) PMI2_THM = |- !A B C. (~A ==> (C = B)) ==> (A <== C = A <== B) PMI2_CLOSE = - : (term -> thm -> thm) DISJ1_THM = |- !A B C. (~B ==> (C = A)) ==> (C \/ B = A \/ B) DISJ1_CLOSE = - : (term -> thm -> thm) DISJ2_THM = |- !A B C. (~A ==> (C = B)) ==> (A \/ C = A \/ B) DISJ2_CLOSE = - : (term -> thm -> thm) () : void () : void () : void () : void () : void () : void () : void () : void Section eq_close ended Calling Lisp compiler File eq_close compiled () : void #echo 'set_flag(`abort_when_fail`,true);;' \ 'load_theory `win`;;' \ 'loadf `thms`;;' \ 'loadf `hol_ext`;;' \ 'loadf `tables`;;' \ 'compilet `imp_close`;;' \ 'quit();;' | ../../hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Theory win loaded () : void .....() : void .......................................() : void .....................................() : void IMP_CONJ1_THM = |- !A B C. (B ==> C ==> A) ==> C /\ B ==> A /\ B IMP_CONJ1_CLOSE = - : (term -> thm -> thm) IMP_CONJ2_THM = |- !A B C. (A ==> C ==> B) ==> A /\ C ==> A /\ B IMP_CONJ2_CLOSE = - : (term -> thm -> thm) IMP_IMP1_THM = |- !A B C. (~B ==> C <== A) ==> (C ==> B) ==> A ==> B IMP_IMP1_CLOSE = - : (term -> thm -> thm) IMP_IMP2_THM = |- !A B C. (A ==> C ==> B) ==> (A ==> C) ==> A ==> B IMP_IMP2_CLOSE = - : (term -> thm -> thm) IMP_PMI1_THM = |- !A B C. (B ==> C ==> A) ==> C <== B ==> A <== B IMP_PMI1_CLOSE = - : (term -> thm -> thm) IMP_PMI2_THM = |- !A B C. (~A ==> C <== B) ==> A <== C ==> A <== B IMP_PMI2_CLOSE = - : (term -> thm -> thm) IMP_DISJ1_THM = |- !A B C. (~B ==> C ==> A) ==> C \/ B ==> A \/ B IMP_DISJ1_CLOSE = - : (term -> thm -> thm) IMP_DISJ2_THM = |- !A B C. (~A ==> C ==> B) ==> A \/ C ==> A \/ B IMP_DISJ2_CLOSE = - : (term -> thm -> thm) IMP_NEG_THM = |- !A B. B <== A ==> ~B ==> ~A IMP_NEG_CLOSE = - : (term -> thm -> thm) IMP_ALL_CLOSE = - : (term -> thm -> thm) IMP_EXISTS_CLOSE = - : (term -> thm -> thm) PMI_CONJ1_THM = |- !A B C. (B ==> C <== A) ==> (C /\ B) <== (A /\ B) PMI_CONJ1_CLOSE = - : (term -> thm -> thm) PMI_CONJ2_THM = |- !A B C. (A ==> C <== B) ==> (A /\ C) <== (A /\ B) PMI_CONJ2_CLOSE = - : (term -> thm -> thm) PMI_IMP1_THM = |- !A B C. (~B ==> C ==> A) ==> (C ==> B) <== (A ==> B) PMI_IMP1_CLOSE = - : (term -> thm -> thm) PMI_IMP2_THM = |- !A B C. (A ==> C <== B) ==> (A ==> C) <== (A ==> B) PMI_IMP2_CLOSE = - : (term -> thm -> thm) PMI_PMI1_THM = |- !A B C. (B ==> C <== A) ==> (C <== B) <== (A <== B) PMI_PMI1_CLOSE = - : (term -> thm -> thm) PMI_PMI2_THM = |- !A B C. (~A ==> C ==> B) ==> (A <== C) <== (A <== B) PMI_PMI2_CLOSE = - : (term -> thm -> thm) PMI_DISJ1_THM = |- !A B C. (~B ==> C <== A) ==> (C \/ B) <== (A \/ B) PMI_DISJ1_CLOSE = - : (term -> thm -> thm) PMI_DISJ2_THM = |- !A B C. (~A ==> C <== B) ==> (A \/ C) <== (A \/ B) PMI_DISJ2_CLOSE = - : (term -> thm -> thm) PMI_NEG_THM = |- !A B. (B ==> A) ==> (~B) <== (~A) PMI_NEG_CLOSE = - : (term -> thm -> thm) PMI_ALL_CLOSE = - : (term -> thm -> thm) PMI_EXISTS_CLOSE = - : (term -> thm -> thm) () : void () : void () : void () : void () : void () : void () : void () : void () : void () : void () : void () : void () : void () : void () : void () : void () : void () : void () : void () : void () : void () : void Calling Lisp compiler File imp_close compiled () : void #echo 'set_flag(`abort_when_fail`,true);;' \ 'loadf `ml_ext`;;' \ 'load_theory `win`;;' \ 'loadf `thms`;;' \ 'loadf `hol_ext`;;' \ 'loadf `tables`;;' \ 'compilet `win`;;' \ 'quit();;' | ../../hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ...................() : void Theory win loaded () : void .....() : void .......................................() : void .....................................() : void type window defined win_thm = - : (window -> thm) relation = - : (window -> term) focus = - : (window -> term) origin = - : (window -> term) bound = - : (window -> term list) hyp_thms = - : (window -> thm list) hypotheses = - : (window -> term list) disp_hypotheses = - : (window -> term list) all_hypotheses = - : (window -> term list) used_hypotheses = - : (window -> term list) lemma_thms = - : (window -> thm list) suppositions = - : (window -> goal list) conjectures = - : (window -> term list) used_conjectures = - : (window -> term list) lemmas = - : (window -> term list) context = - : (window -> term list) make_win = - : (term -> goal list -> term list -> thm list -> thm list -> window) create_win = - : (term -> term list -> thm list -> window) transform = - : (term -> term list -> thm list -> (window -> window) -> thm) get_thm = - : (term -> window -> thm) add_suppose = - : (goal -> window -> window) conjecture = - : (term -> window -> window) add_theorem = - : (thm -> window -> window) transform_win = - : (thm -> window -> window) match_transform_win = - : (thm -> window -> window) convert_win = - : (conv -> window -> window) rule_win = - : ((thm -> thm) -> window -> window) thm_rule_win = - : ((thm -> thm) -> window -> window) foc_rule_win = - : (conv -> window -> window) tactic_win = - : (tactic -> window -> window) gen_rewrite_win = - : ((conv -> conv) -> thm list -> thm list -> window -> window) pure_rewrite_win = - : (thm list -> window -> window) rewrite_win = - : (thm list -> window -> window) pure_once_rewrite_win = - : (thm list -> window -> window) once_rewrite_win = - : (thm list -> window -> window) pure_asm_rewrite_win = - : (thm list -> window -> window) asm_rewrite_win = - : (thm list -> window -> window) pure_once_asm_rewrite_win = - : (thm list -> window -> window) once_asm_rewrite_win = - : (thm list -> window -> window) filter_pure_asm_rewrite_win = - : ((term -> bool) -> thm list -> window -> window) filter_asm_rewrite_win = - : ((term -> bool) -> thm list -> window -> window) filter_pure_once_asm_rewrite_win = - : ((term -> bool) -> thm list -> window -> window) filter_once_asm_rewrite_win = - : ((term -> bool) -> thm list -> window -> window) transfer_sups_thms = - : (window -> window -> window) open_win_basis = - : (win_path -> window -> (window # (window -> window -> window))) open_context_basis = - : (win_path -> window -> (window # (window -> window -> window))) gen_open_basis = - : (win_path -> window -> (window # (window -> window -> window))) establish_basis = - : (win_path -> window -> (window # (window -> window -> window))) open_win = - : (path -> (window -> window) -> window -> window) open_context = - : (term -> path -> (window -> window) -> window -> window) gen_open_win = - : (win_path -> (window -> window) -> window -> window) establish = - : (term -> (window -> window) -> window -> window) Calling Lisp compiler File win compiled () : void #echo 'set_flag(`abort_when_fail`,true);;' \ 'loadf `ml_ext`;;' \ 'load_theory `win`;;' \ 'loadf `thms`;;' \ 'loadf `hol_ext`;;' \ 'loadf `tables`;;' \ 'loadf `win`;;' \ 'compilet `inter`;;' \ 'quit();;' | ../../hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ...................() : void Theory win loaded () : void .....() : void .......................................() : void .....................................() : void ............................................() : void epoch = - : (int -> * -> * history) present = - : (* history -> *) dodo = - : ((* -> *) -> * history -> * history) undo = - : (* history -> * history) redo = - : (* history -> * history) set_max_hist = - : (int -> * history -> * history) get_max_hist = - : (* history -> int) create_stack = - : (window -> window_stack) change_window = - : ((window -> window) -> window_stack -> window_stack) open_window = - : (win_path -> (win_path -> window -> (window # (window -> window -> window))) -> window_stack -> window_stack) pop_window = - : (window_stack -> window_stack) close_window = - : (window_stack -> window_stack) depth_stack = - : (window_stack -> int) top_window = - : (window_stack -> window) top_path = - : (window_stack -> win_path) bad_conjectures = - : (window_stack -> term list) print_stack = - : (window_stack -> void) () : void - : (string signal -> void) newsig_stk_sig = - : (void -> string signal) () : void - : (void signal -> void) newsig_win_sig = - : (void -> void signal) beg_stack_sig = (-) : string signal end_stack_sig = (-) : string signal set_stack_sig = (-) : string signal psh_win_sig = (-) : void signal pop_win_sig = (-) : void signal cng_win_sig = (-) : void signal () : void - : (window_stack history pointer -> void) new_wshp = - : (void -> window_stack history pointer) stack_table = [] : (string # window_stack history pointer) list cur_nam_st_hist = inr () : ((string # window_stack history pointer) + void) CURRENT_STACK = - : (void -> window_stack) CURRENT_NAME = - : (void -> string) CURRENT_SHP = - : (void -> window_stack history pointer) history_size = 20 : int EPOCH = - : (window_stack -> void) DO = - : ((window_stack -> window_stack) -> void) UNDO = - : (void -> void) REDO = - : (void -> void) SET_MAX_HIST = - : (int -> void list) GET_MAX_HIST = - : (void -> int) BEGIN_STACK = - : (string -> term -> term list -> thm list -> void) END_STACK = - : (string -> void) SET_STACK = - : (string -> void) GET_STACK = - : (string -> window_stack) ALL_STACKS = - : (void -> string list) ((-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), -) : ((void -> window_stack) # (void -> string) # ((window_stack -> window_stack) -> void) # (void -> void) # (void -> void) # (int -> void list) # (void -> int) # (string -> term -> term list -> thm list -> void) # (string -> void) # (string -> void) # (string -> window_stack) # (void -> string list)) CURRENT_STACK = - : (void -> window_stack) CURRENT_NAME = - : (void -> string) DO = - : ((window_stack -> window_stack) -> void) UNDO = - : (void -> void) REDO = - : (void -> void) SET_MAX_HIST = - : (int -> void list) GET_MAX_HIST = - : (void -> int) BEGIN_STACK = - : (string -> term -> term list -> thm list -> void) END_STACK = - : (string -> void) SET_STACK = - : (string -> void) GET_STACK = - : (string -> window_stack) ALL_STACKS = - : (void -> string list) APPLY_OPEN = - : (win_path -> (win_path -> window -> (window # (window -> window -> window))) -> void) APPLY_TRANSFORM = - : ((window -> window) -> void) CLOSE_WIN = - : (void -> void) UNDO_WIN = - : (void -> void) GEN_OPEN_WIN = - : (win_path -> void) OPEN_WIN = - : (path -> void) OPEN_CONTEXT = - : (term -> path -> void) ESTABLISH = - : (term -> void) TOP_WIN = - : (void -> window) BAD_CONJECTURES = - : (void -> term list) TRANSFORM_WIN = - : (thm -> void) MATCH_TRANSFORM_WIN = - : (thm -> void) CONVERT_WIN = - : (conv -> void) RULE_WIN = - : ((thm -> thm) -> void) THM_RULE_WIN = - : ((thm -> thm) -> void) FOC_RULE_WIN = - : (conv -> void) TACTIC_WIN = - : (tactic -> void) ADD_THEOREM = - : (thm -> void) ADD_SUPPOSE = - : (goal -> void) CONJECTURE = - : (term -> void) FOCUS = - : (void -> term) LEMMA_THMS = - : (void -> thm list) WIN_THM = - : (void -> thm) GEN_REWRITE_WIN = - : ((conv -> conv) -> thm list -> thm list -> void) PURE_REWRITE_WIN = - : (thm list -> void) REWRITE_WIN = - : (thm list -> void) PURE_ONCE_REWRITE_WIN = - : (thm list -> void) ONCE_REWRITE_WIN = - : (thm list -> void) PURE_ASM_REWRITE_WIN = - : (thm list -> void) ASM_REWRITE_WIN = - : (thm list -> void) PURE_ONCE_ASM_REWRITE_WIN = - : (thm list -> void) ONCE_ASM_REWRITE_WIN = - : (thm list -> void) FILTER_PURE_ASM_REWRITE_WIN = - : ((term -> bool) -> thm list -> void) FILTER_ASM_REWRITE_WIN = - : ((term -> bool) -> thm list -> void) FILTER_PURE_ONCE_ASM_REWRITE_WIN = - : ((term -> bool) -> thm list -> void) FILTER_ONCE_ASM_REWRITE_WIN = - : ((term -> bool) -> thm list -> void) SAVE_WIN_THM = - : (void -> thm) PRINT_STACK = - : (void -> void) () : void () : void () : void () : void () : void Calling Lisp compiler File inter compiled () : void #echo 'set_flag(`abort_when_fail`,true);;' \ 'load_theory `win`;;' \ 'compilet `load_code`;;' \ 'quit();;' | ../../hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Theory win loaded () : void () : void Calling Lisp compiler File load_code compiled () : void #echo 'set_flag(`abort_when_fail`,true);;' \ 'compilet `load_window`;;' \ 'quit();;' | ../../hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool load_window = - : (void -> void) Calling Lisp compiler File load_window compiled () : void #echo 'set_flag(`abort_when_fail`,true);;' \ 'compilet `window`;;' \ 'quit();;' | ../../hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Extending help search path () : void Extending search path () : void Theory win loaded () : void () : void window_version = `Revision: 3.1` : string window Library (Revision: 3.1) loaded. Copyright (c) Jim Grundy 1992 () : void All rights reserved () : void Calling Lisp compiler File window compiled () : void #echo 'set_flag(`abort_when_fail`,true);;' \ 'loadf `ml_ext`;;' \ 'load_theory `win`;;' \ 'loadf `thms`;;' \ 'loadf `hol_ext`;;' \ 'loadf `tables`;;' \ 'loadf `win`;;' \ 'loadf `inter`;;' \ 'compilet `xlabel`;;' \ 'quit();;' | ../../hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ...................() : void Theory win loaded () : void .....() : void .......................................() : void .....................................() : void ............................................() : void ......................................................() : void () : void - : (string pointer -> void) new_strptr = - : (void -> string pointer) set_title = - : (string -> void) label = (-) : string pointer xset_stack = - : (string -> void) xbeg_stack = - : (string -> void) xend_stack = - : (string -> void) () : void () : void () : void () : void Calling Lisp compiler File xlabel compiled () : void #echo 'set_flag(`abort_when_fail`,true);;' \ 'loadf `ml_ext`;;' \ 'load_theory `win`;;' \ 'loadf `thms`;;' \ 'loadf `hol_ext`;;' \ 'loadf `tables`;;' \ 'loadf `win`;;' \ 'loadf `inter`;;' \ 'compilet `tactic`;;' \ 'quit();;' | ../../hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ...................() : void Theory win loaded () : void .....() : void .......................................() : void .....................................() : void ............................................() : void ......................................................() : void open_TAC = - : (path -> thm list -> (window -> window) -> tactic) close_table = [] : (string # window # (window -> window -> window)) list BEGIN_STACK_TAC = - : (string -> path -> thm list -> tactic) END_STACK_TAC = - : (string -> tactic) ((-), -) : ((string -> path -> thm list -> tactic) # (string -> tactic)) BEGIN_STACK_TAC = - : (string -> path -> thm list -> tactic) END_STACK_TAC = - : (string -> tactic) Calling Lisp compiler File tactic compiled () : void #===> library window built make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/window' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/pair' echo 'set_flag(`abort_when_fail`,true);;' \ 'compilet `syn`;;' \ 'quit();;' | ../../hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool mk_pabs = - : ((term # term) -> term) mk_pforall = - : ((term # term) -> term) mk_pexists = - : ((term # term) -> term) mk_pselect = - : ((term # term) -> term) dest_pabs = - : (term -> (term # term)) dest_pforall = - : (term -> (term # term)) dest_pexists = - : (term -> (term # term)) dest_pselect = - : (term -> (term # term)) is_pabs = - : (term -> bool) is_pforall = - : (term -> bool) is_pexists = - : (term -> bool) is_pselect = - : (term -> bool) rip_pair = - : (term -> term list) is_pvar = - : (term -> bool) pvariant = - : (term list -> term -> term) genlike = - : (term -> term) list_mk_pabs = - : (goal -> term) list_mk_pforall = - : (goal -> term) list_mk_pexists = - : (goal -> term) strip_pabs = - : (term -> goal) strip_pforall = - : (term -> goal) strip_pexists = - : (term -> goal) bndpair = - : (term -> term) pbody = - : (term -> term) occs_in = - : (term -> term -> bool) is_prod = - : (type -> bool) dest_prod = - : (type -> (type # type)) mk_prod = - : ((type # type) -> type) Calling Lisp compiler File syn compiled () : void #echo 'set_flag(`abort_when_fail`,true);;' \ 'loadf `syn`;;' \ 'compilet `basic`;;' \ 'quit();;' | ../../hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ........................() : void MK_PAIR = - : ((thm # thm) -> thm) PABS = - : (term -> thm -> thm) PABS_CONV = - : (conv -> conv) PSUB_CONV = - : (conv -> conv) CURRY_CONV = - : conv UNCURRY_CONV = - : conv PBETA_CONV = - : conv PBETA_RULE = - : (thm -> thm) PBETA_TAC = - : tactic RIGHT_PBETA = - : (thm -> thm) LIST_PBETA_CONV = - : conv RIGHT_LIST_PBETA = - : (thm -> thm) LEFT_PBETA = - : (thm -> thm) LEFT_LIST_PBETA = - : (thm -> thm) UNPBETA_CONV = - : (term -> conv) CURRY_UNCURRY_THM = |- !f. CURRY(UNCURRY f) = f UNCURRY_CURRY_THM = |- !f. UNCURRY(CURRY f) = f PETA_CONV = - : conv PALPHA_CONV = - : (term -> conv) GEN_PALPHA_CONV = - : (term -> conv) PALPHA = - : (term -> conv) paconv = - : (term -> term -> bool) PAIR_CONV = - : (conv -> conv) CURRY_ONE_ONE_THM = |- (CURRY f = CURRY g) = (f = g) UNCURRY_ONE_ONE_THM = |- (UNCURRY f = UNCURRY g) = (f = g) Calling Lisp compiler File basic compiled () : void #echo 'set_flag(`abort_when_fail`,true);;' \ 'loadf `syn`;;' \ 'loadf `basic`;;' \ 'compilet `both1`;;' \ 'quit();;' | ../../hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ........................() : void ........................() : void PFORALL_THM = |- !f. (!x y. f x y) = (!(x,y). f x y) PEXISTS_THM = |- !f. (?x y. f x y) = (?(x,y). f x y) CURRY_FORALL_CONV = - : conv CURRY_EXISTS_CONV = - : conv UNCURRY_FORALL_CONV = - : conv UNCURRY_EXISTS_CONV = - : conv Calling Lisp compiler File both1 compiled () : void #echo 'set_flag(`abort_when_fail`,true);;' \ 'loadf `syn`;;' \ 'loadf `basic`;;' \ 'loadf `both1`;;' \ 'compilet `all`;;' \ 'quit();;' | ../../hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ........................() : void ........................() : void ......() : void PSPEC = - : (term -> thm -> thm) PSPECL = - : (term list -> thm -> thm) IPSPEC = - : (term -> thm -> thm) IPSPECL = - : (term list -> thm -> thm) PSPEC_PAIR = - : (thm -> (term # thm)) PSPEC_ALL = - : (thm -> thm) GPSPEC = - : (thm -> thm) PSPEC_TAC = - : ((term # term) -> tactic) PGEN = - : (term -> thm -> thm) PGENL = - : (term list -> thm -> thm) P_PGEN_TAC = - : (term -> tactic) PGEN_TAC = - : tactic FILTER_PGEN_TAC = - : (term -> tactic) Calling Lisp compiler File all compiled () : void #echo 'set_flag(`abort_when_fail`,true);;' \ 'loadf `syn`;;' \ 'loadf `basic`;;' \ 'loadf `both1`;;' \ 'loadf `all`;;' \ 'compilet `exi`;;' \ 'quit();;' | ../../hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ........................() : void ........................() : void ......() : void .............() : void PEXISTS_CONV = - : conv PSELECT_RULE = - : (thm -> thm) PSELECT_CONV = - : conv PEXISTS_RULE = - : (thm -> thm) PSELECT_INTRO = - : (thm -> thm) PSELECT_ELIM = - : (thm -> (term # thm) -> thm) PEXISTS = - : ((term # term) -> thm -> thm) PCHOOSE = - : ((term # thm) -> thm -> thm) P_PCHOOSE_THEN = - : (term -> thm_tactical) PCHOOSE_THEN = - : thm_tactical P_PCHOOSE_TAC = - : (term -> thm_tactic) PCHOOSE_TAC = - : thm_tactic PEXISTS_TAC = - : (term -> tactic) PEXISTENCE = - : (thm -> thm) PEXISTS_UNIQUE_CONV = - : conv BABY_P_PSKOLEM_CONV = - : (term -> conv) P_PSKOLEM_CONV = - : (term -> conv) - : (term -> conv) P_PSKOLEM_CONV = - : (term -> conv) PSKOLEM_CONV = - : conv Calling Lisp compiler File exi compiled () : void #echo 'set_flag(`abort_when_fail`,true);;' \ 'loadf `syn`;;' \ 'loadf `basic`;;' \ 'loadf `both1`;;' \ 'loadf `all`;;' \ 'loadf `exi`;;' \ 'compilet `both2`;;' \ 'quit();;' | ../../hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ........................() : void ........................() : void ......() : void .............() : void ....................() : void PSTRIP_THM_THEN = - : thm_tactical PSTRIP_ASSUME_TAC = - : thm_tactic PSTRUCT_CASES_TAC = - : thm_tactic PSTRIP_GOAL_THEN = - : (thm_tactic -> tactic) FILTER_PSTRIP_THEN = - : (thm_tactic -> term -> tactic) PSTRIP_TAC = - : tactic FILTER_PSTRIP_TAC = - : (term -> tactic) PEXT = - : (thm -> thm) P_FUN_EQ_CONV = - : (term -> conv) MK_PABS = - : (thm -> thm) HALF_MK_PABS = - : (thm -> thm) MK_PFORALL = - : (thm -> thm) MK_PEXISTS = - : (thm -> thm) MK_PEXISTS = - : (thm -> thm) PFORALL_EQ = - : (term -> thm -> thm) PEXISTS_EQ = - : (term -> thm -> thm) PSELECT_EQ = - : (term -> thm -> thm) LIST_MK_PFORALL = - : (term list -> thm -> thm) LIST_MK_PEXISTS = - : (term list -> thm -> thm) PEXISTS_IMP = - : (term -> thm -> thm) SWAP_PFORALL_CONV = - : conv SWAP_PEXISTS_CONV = - : conv PART_PMATCH = - : ((term -> term) -> thm -> conv) PMATCH_MP_TAC = - : thm_tactic PMATCH_MP = - : (thm -> thm -> thm) Calling Lisp compiler File both2 compiled () : void #echo 'set_flag(`abort_when_fail`,true);;' \ 'loadf `syn`;;' \ 'loadf `basic`;;' \ 'compilet `conv`;;' \ 'quit();;' | ../../hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ........................() : void ........................() : void NOT_FORALL_THM = |- !f. ~(!x. f x) = (?x. ~f x) NOT_EXISTS_THM = |- !f. ~(?x. f x) = (!x. ~f x) NOT_PFORALL_CONV = - : conv NOT_PEXISTS_CONV = - : conv PEXISTS_NOT_CONV = - : conv PFORALL_NOT_CONV = - : conv FORALL_AND_THM = |- !f g. (!x. f x /\ g x) = (!x. f x) /\ (!x. g x) PFORALL_AND_CONV = - : conv EXISTS_OR_THM = |- !f g. (?x. f x \/ g x) = (?x. f x) \/ (?x. g x) PEXISTS_OR_CONV = - : conv AND_PFORALL_CONV = - : conv LEFT_AND_FORALL_THM = |- !Q f. (!x. f x) /\ Q = (!x. f x /\ Q) LEFT_AND_PFORALL_CONV = - : conv RIGHT_AND_FORALL_THM = |- !P g. P /\ (!x. g x) = (!x. P /\ g x) RIGHT_AND_PFORALL_CONV = - : conv OR_PEXISTS_CONV = - : conv LEFT_OR_EXISTS_THM = |- !Q f. (?x. f x) \/ Q = (?x. f x \/ Q) LEFT_OR_PEXISTS_CONV = - : conv RIGHT_OR_EXISTS_THM = |- !P g. P \/ (?x. g x) = (?x. P \/ g x) RIGHT_OR_PEXISTS_CONV = - : conv BOTH_EXISTS_AND_THM = |- !P Q. (?x. P /\ Q) = (?x. P) /\ (?x. Q) LEFT_EXISTS_AND_THM = |- !Q f. (?x. f x /\ Q) = (?x. f x) /\ Q RIGHT_EXISTS_AND_THM = |- !P g. (?x. P /\ g x) = P /\ (?x. g x) PEXISTS_AND_CONV = - : conv AND_PEXISTS_CONV = - : conv LEFT_AND_PEXISTS_CONV = - : conv RIGHT_AND_PEXISTS_CONV = - : conv BOTH_FORALL_OR_THM = |- !P Q. (!x. P \/ Q) = (!x. P) \/ (!x. Q) LEFT_FORALL_OR_THM = |- !Q f. (!x. f x \/ Q) = (!x. f x) \/ Q RIGHT_FORALL_OR_THM = |- !P g. (!x. P \/ g x) = P \/ (!x. g x) PFORALL_OR_CONV = - : conv OR_PFORALL_CONV = - : conv LEFT_OR_PFORALL_CONV = - : conv RIGHT_OR_PFORALL_CONV = - : conv BOTH_FORALL_IMP_THM = |- !P Q. (!x. P ==> Q) = (?x. P) ==> (!x. Q) LEFT_FORALL_IMP_THM = |- !Q f. (!x. f x ==> Q) = (?x. f x) ==> Q RIGHT_FORALL_IMP_THM = |- !P g. (!x. P ==> g x) = P ==> (!x. g x) BOTH_EXISTS_IMP_THM = |- !P Q. (?x. P ==> Q) = (!x. P) ==> (?x. Q) LEFT_EXISTS_IMP_THM = |- !Q f. (?x. f x ==> Q) = (!x. f x) ==> Q RIGHT_EXISTS_IMP_THM = |- !P g. (?x. P ==> g x) = P ==> (?x. g x) PFORALL_IMP_CONV = - : conv LEFT_IMP_PEXISTS_CONV = - : conv RIGHT_IMP_PFORALL_CONV = - : conv PEXISTS_IMP_CONV = - : conv LEFT_IMP_PFORALL_CONV = - : conv RIGHT_IMP_PEXISTS_CONV = - : conv ((-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), -) : (conv # conv # conv # conv # conv # conv # conv # conv # conv # conv # conv # conv # conv # conv # conv # conv # conv # conv # conv # conv # conv # conv # conv # conv # conv # conv) NOT_PFORALL_CONV = - : conv NOT_PEXISTS_CONV = - : conv PEXISTS_NOT_CONV = - : conv PFORALL_NOT_CONV = - : conv PFORALL_AND_CONV = - : conv PEXISTS_OR_CONV = - : conv AND_PFORALL_CONV = - : conv LEFT_AND_PFORALL_CONV = - : conv RIGHT_AND_PFORALL_CONV = - : conv OR_PEXISTS_CONV = - : conv LEFT_OR_PEXISTS_CONV = - : conv RIGHT_OR_PEXISTS_CONV = - : conv PEXISTS_AND_CONV = - : conv AND_PEXISTS_CONV = - : conv LEFT_AND_PEXISTS_CONV = - : conv RIGHT_AND_PEXISTS_CONV = - : conv PFORALL_OR_CONV = - : conv OR_PFORALL_CONV = - : conv LEFT_OR_PFORALL_CONV = - : conv RIGHT_OR_PFORALL_CONV = - : conv PFORALL_IMP_CONV = - : conv LEFT_IMP_PEXISTS_CONV = - : conv RIGHT_IMP_PFORALL_CONV = - : conv PEXISTS_IMP_CONV = - : conv LEFT_IMP_PFORALL_CONV = - : conv RIGHT_IMP_PEXISTS_CONV = - : conv Calling Lisp compiler File conv compiled () : void #echo 'set_flag(`abort_when_fail`,true);;' \ 'compilet `pair`;;' \ 'quit();;' | ../../hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Extending help search path () : void () : void pair_version = `Revision: 3.1` : string pair Library (Revision: 3.1) loaded. Copyright (c) Jim Grundy 1992 () : void All rights reserved () : void Calling Lisp compiler File pair compiled () : void #===> library pair built make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/pair' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/word' rm -f word_base.th echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `mk_word_base`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool autoload_all = - : (string -> void) Loading library arith ... Loading library reduce ... Extending help search path. Loading boolean conversions........ Loading arithmetic conversions.................. Loading general conversions, rule and tactic..... Library reduce loaded. .Updating help search path ....................................................................................................................................................................................................................................................................................... Library arith loaded. () : void Loading library res_quan ... Updating search path Theory res_quan loaded ...............................................................................Updating help search path . Library res_quan loaded. () : void ....() : void File ver_202 loaded () : void Theorem LESS_EQ_ADD autoloading from theory `arithmetic` ... LESS_EQ_ADD = |- !m n. m <= (m + n) Theorem ADD_SYM autoloading from theory `arithmetic` ... ADD_SYM = |- !m n. m + n = n + m Theorem LESS_EQ_TRANS autoloading from theory `arithmetic` ... LESS_EQ_TRANS = |- !m n p. m <= n /\ n <= p ==> m <= p LESS_EQ_SPLIT = |- !m n p. (m + n) <= p ==> n <= p /\ m <= p Theorem SUB_ADD autoloading from theory `arithmetic` ... SUB_ADD = |- !m n. n <= m ==> ((m - n) + n = m) Theorem LESS_EQ_MONO_ADD_EQ autoloading from theory `arithmetic` ... LESS_EQ_MONO_ADD_EQ = |- !m n p. (m + p) <= (n + p) = m <= n Theorem GREATER_EQ autoloading from theory `arithmetic` ... GREATER_EQ = |- !n m. n >= m = m <= n SUB_GREATER_EQ_ADD = |- !p n m. p >= n ==> ((p - n) >= m = p >= (m + n)) ADD_LESS_EQ_SUB = |- !p n m. n <= p ==> ((m + n) <= p = m <= (p - n)) Theorem LESS_EQ_MONO autoloading from theory `arithmetic` ... LESS_EQ_MONO = |- !n m. (SUC n) <= (SUC m) = n <= m Theorem NOT_SUC_LESS_EQ_0 autoloading from theory `arithmetic` ... NOT_SUC_LESS_EQ_0 = |- !n. ~(SUC n) <= 0 Definition ADD autoloading from theory `arithmetic` ... ADD = |- (!n. 0 + n = n) /\ (!m n. (SUC m) + n = SUC(m + n)) ADD_LESS_EQ_TRANS = |- !m n p q. (m + n) <= p /\ q <= n ==> (m + q) <= p Theorem LESS_ANTISYM autoloading from theory `arithmetic` ... LESS_ANTISYM = |- !m n. ~(m < n /\ n < m) Theorem LESS_IMP_LESS_ADD autoloading from theory `arithmetic` ... LESS_IMP_LESS_ADD = |- !n m. n < m ==> (!p. n < (m + p)) Definition SUB autoloading from theory `arithmetic` ... SUB = |- (!m. 0 - m = 0) /\ (!m n. (SUC m) - n = (m < n => 0 | SUC(m - n))) Theorem SUB_MONO_EQ autoloading from theory `arithmetic` ... SUB_MONO_EQ = |- !n m. (SUC n) - (SUC m) = n - m Theorem SUB_0 autoloading from theory `arithmetic` ... SUB_0 = |- !m. (0 - m = 0) /\ (m - 0 = m) Theorem LESS_MONO_EQ autoloading from theory `arithmetic` ... LESS_MONO_EQ = |- !m n. (SUC m) < (SUC n) = m < n Theorem ADD_CLAUSES autoloading from theory `arithmetic` ... ADD_CLAUSES = |- (0 + m = m) /\ (m + 0 = m) /\ ((SUC m) + n = SUC(m + n)) /\ (m + (SUC n) = SUC(m + n)) Theorem NOT_LESS_0 autoloading from theory `prim_rec` ... NOT_LESS_0 = |- !n. ~n < 0 ADD_SUB_LEM = |- !m n p. p < n ==> ((m + n) - p = m + (n - p)) LESS_EQ_0_EQ = |- !m. m <= 0 ==> (m = 0) Theorem LESS_SUC_REFL autoloading from theory `prim_rec` ... LESS_SUC_REFL = |- !n. n < (SUC n) Theorem PRE autoloading from theory `prim_rec` ... PRE = |- (PRE 0 = 0) /\ (!m. PRE(SUC m) = m) Theorem LESS_0 autoloading from theory `prim_rec` ... LESS_0 = |- !n. 0 < (SUC n) Theorem LESS_REFL autoloading from theory `prim_rec` ... LESS_REFL = |- !n. ~n < n Theorem INDUCTION autoloading from theory `num` ... INDUCTION = |- !P. P 0 /\ (!n. P n ==> P(SUC n)) ==> (!n. P n) PRE_LESS_REFL = |- !m. 0 < m ==> (PRE m) < m Theorem DIV_MULT autoloading from theory `arithmetic` ... DIV_MULT = |- !n r. r < n ==> (!q. ((q * n) + r) DIV n = q) Definition MULT autoloading from theory `arithmetic` ... MULT = |- (!n. 0 * n = 0) /\ (!m n. (SUC m) * n = (m * n) + n) LESS_DIV_EQ_ZERO = |- !r n. r < n ==> (r DIV n = 0) Theorem ADD_0 autoloading from theory `arithmetic` ... ADD_0 = |- !m. m + 0 = m MULT_DIV = |- !n q. 0 < n ==> ((q * n) DIV n = q) Theorem RIGHT_ADD_DISTRIB autoloading from theory `arithmetic` ... RIGHT_ADD_DISTRIB = |- !m n p. (m + n) * p = (m * p) + (n * p) Theorem ADD_ASSOC autoloading from theory `arithmetic` ... ADD_ASSOC = |- !m n p. m + (n + p) = (m + n) + p Theorem DA autoloading from theory `arithmetic` ... DA = |- !k n. 0 < n ==> (?r q. (k = (q * n) + r) /\ r < n) ADD_DIV_ADD_DIV = |- !n. 0 < n ==> (!x r. ((x * n) + r) DIV n = x + (r DIV n)) Theorem MULT_CLAUSES autoloading from theory `arithmetic` ... MULT_CLAUSES = |- !m n. (0 * m = 0) /\ (m * 0 = 0) /\ (1 * m = m) /\ (m * 1 = m) /\ ((SUC m) * n = (m * n) + n) /\ (m * (SUC n) = m + (m * n)) NOT_MULT_LESS_0 = |- !m n. 0 < m /\ 0 < n ==> 0 < (m * n) Theorem MOD_TIMES autoloading from theory `arithmetic` ... MOD_TIMES = |- !n. 0 < n ==> (!q r. ((q * n) + r) MOD n = r MOD n) Theorem MULT_ASSOC autoloading from theory `arithmetic` ... MULT_ASSOC = |- !m n p. m * (n * p) = (m * n) * p Theorem MULT_SYM autoloading from theory `arithmetic` ... MULT_SYM = |- !m n. m * n = n * m Theorem MOD_MULT autoloading from theory `arithmetic` ... MOD_MULT = |- !n r. r < n ==> (!q. ((q * n) + r) MOD n = r) MOD_MULT_MOD = |- !m n. 0 < n /\ 0 < m ==> (!x. (x MOD (n * m)) MOD n = x MOD n) MULT_RIGHT_1 = |- !m. m * 1 = m DIV_ONE = |- !q. q DIV (SUC 0) = q Theorem ADD1 autoloading from theory `arithmetic` ... ADD1 = |- !m. SUC m = m + 1 Theorem LESS_THM autoloading from theory `prim_rec` ... LESS_THM = |- !m n. m < (SUC n) = (m = n) \/ m < n Less_lemma = |- !m n. m < n ==> (?p. (n = m + p) /\ 0 < p) Theorem LESS_TRANS autoloading from theory `arithmetic` ... LESS_TRANS = |- !m n p. m < n /\ n < p ==> m < p Theorem LESS_LESS_EQ_TRANS autoloading from theory `arithmetic` ... LESS_LESS_EQ_TRANS = |- !m n p. m < n /\ n <= p ==> m < p Less_MULT_lemma = |- !r m p. 0 < p ==> r < m ==> r < (p * m) Theorem LESS_MONO_ADD_EQ autoloading from theory `arithmetic` ... LESS_MONO_ADD_EQ = |- !m n p. (m + p) < (n + p) = m < n Less_MULT_ADD_lemma = |- !m n r r'. 0 < m /\ 0 < n /\ r < m /\ r' < n ==> ((r' * m) + r) < (n * m) Theorem ADD_INV_0_EQ autoloading from theory `arithmetic` ... ADD_INV_0_EQ = |- !m n. (m + n = m) = (n = 0) DIV_DIV_DIV_MULT = |- !m n. 0 < m /\ 0 < n ==> (!x. (x DIV m) DIV n = x DIV (m * n)) File arith_thms loaded () : void () : void Theorem SUB_LESS_EQ autoloading from theory `arithmetic` ... SUB_LESS_EQ = |- !n m. (n - m) <= n Theorem SUB_LESS_0 autoloading from theory `arithmetic` ... SUB_LESS_0 = |- !n m. m < n = 0 < (n - m) Theorem LESS_OR autoloading from theory `arithmetic` ... LESS_OR = |- !m n. m < n ==> (SUC m) <= n Theorem PRE_SUB1 autoloading from theory `arithmetic` ... PRE_SUB1 = |- !m. PRE m = m - 1 Theorem SEG_SEG autoloading from theory `list` ... SEG_SEG = |- !n1 m1 n2 m2 l. (n1 + m1) <= (LENGTH l) /\ (n2 + m2) <= n1 ==> (SEG n2 m2(SEG n1 m1 l) = SEG n2(m1 + m2)l) Definition LESS_OR_EQ autoloading from theory `arithmetic` ... LESS_OR_EQ = |- !m n. m <= n = m < n \/ (m = n) Theorem LENGTH_SEG autoloading from theory `list` ... LENGTH_SEG = |- !n k l. (n + k) <= (LENGTH l) ==> (LENGTH(SEG n k l) = n) Theorem ELL_SEG autoloading from theory `list` ... ELL_SEG = |- !n l. n < (LENGTH l) ==> (ELL n l = HD(SEG 1(PRE((LENGTH l) - n))l)) Theorem LASTN_SEG autoloading from theory `list` ... LASTN_SEG = |- !n l. n <= (LENGTH l) ==> (LASTN n l = SEG n((LENGTH l) - n)l) Theorem LESS_EQ_REFL autoloading from theory `arithmetic` ... LESS_EQ_REFL = |- !m. m <= m ELL_LASTN = |- !l m j. m <= (LENGTH l) ==> j < m ==> (ELL j(LASTN m l) = ELL j l) Theorem ELL_SUC_SNOC autoloading from theory `list` ... ELL_SUC_SNOC = |- !n x l. ELL(SUC n)(SNOC x l) = ELL n l Definition BUTLASTN autoloading from theory `list` ... BUTLASTN = |- (!l. BUTLASTN 0 l = l) /\ (!n x l. BUTLASTN(SUC n)(SNOC x l) = BUTLASTN n l) Theorem ADD_EQ_0 autoloading from theory `arithmetic` ... ADD_EQ_0 = |- !m n. (m + n = 0) = (m = 0) /\ (n = 0) Theorem LENGTH_SNOC autoloading from theory `list` ... LENGTH_SNOC = |- !x l. LENGTH(SNOC x l) = SUC(LENGTH l) Definition LENGTH autoloading from theory `list` ... LENGTH = |- (LENGTH[] = 0) /\ (!h t. LENGTH(CONS h t) = SUC(LENGTH t)) ELL_BUTLASTN = |- !l k j. (j + k) <= (LENGTH l) ==> (ELL j(BUTLASTN k l) = ELL(j + k)l) Theorem SNOC_11 autoloading from theory `list` ... SNOC_11 = |- !x l x' l'. (SNOC x l = SNOC x' l') = (x = x') /\ (l = l') Theorem APPEND_SNOC autoloading from theory `list` ... APPEND_SNOC = |- !l1 x l2. APPEND l1(SNOC x l2) = SNOC x(APPEND l1 l2) Theorem APPEND_NIL autoloading from theory `list` ... APPEND_NIL = |- (!l. APPEND l[] = l) /\ (!l. APPEND[]l = l) Definition LASTN autoloading from theory `list` ... LASTN = |- (!l. LASTN 0 l = []) /\ (!n x l. LASTN(SUC n)(SNOC x l) = SNOC x(LASTN n l)) APPEND_LASTN_LASTN = |- !l m1 m2. (m1 + m2) <= (LENGTH l) ==> (APPEND(LASTN m2(BUTLASTN m1 l))(LASTN m1 l) = LASTN(m1 + m2)l) Theorem LASTN_BUTLASTN autoloading from theory `list` ... LASTN_BUTLASTN = |- !n m l. (n + m) <= (LENGTH l) ==> (LASTN n(BUTLASTN m l) = BUTLASTN m(LASTN(n + m)l)) Theorem SUB_SUB autoloading from theory `arithmetic` ... SUB_SUB = |- !b c. c <= b ==> (!a. a - (b - c) = (a + c) - b) Theorem SUB_LESS_EQ_ADD autoloading from theory `arithmetic` ... SUB_LESS_EQ_ADD = |- !m p. m <= p ==> (!n. (p - m) <= n = p <= (m + n)) Theorem LENGTH_BUTLASTN autoloading from theory `list` ... LENGTH_BUTLASTN = |- !n l. n <= (LENGTH l) ==> (LENGTH(BUTLASTN n l) = (LENGTH l) - n) Theorem LESS_IMP_LESS_OR_EQ autoloading from theory `arithmetic` ... LESS_IMP_LESS_OR_EQ = |- !m n. m < n ==> m <= n Theorem BUTLASTN_APPEND2 autoloading from theory `list` ... BUTLASTN_APPEND2 = |- !n l1 l2. n <= (LENGTH l2) ==> (BUTLASTN n(APPEND l1 l2) = APPEND l1(BUTLASTN n l2)) Theorem LASTN_APPEND1 autoloading from theory `list` ... LASTN_APPEND1 = |- !l2 n. (LENGTH l2) <= n ==> (!l1. LASTN n(APPEND l1 l2) = APPEND(LASTN(n - (LENGTH l2))l1)l2) Theorem LASTN_LENGTH_ID autoloading from theory `list` ... LASTN_LENGTH_ID = |- !l. LASTN(LENGTH l)l = l Theorem ADD_SUB autoloading from theory `arithmetic` ... ADD_SUB = |- !a c. (a + c) - c = a Theorem SUB_EQUAL_0 autoloading from theory `arithmetic` ... SUB_EQUAL_0 = |- !c. c - c = 0 Theorem LESS_EQUAL_ANTISYM autoloading from theory `arithmetic` ... LESS_EQUAL_ANTISYM = |- !n m. n <= m /\ m <= n ==> (n = m) Definition APPEND autoloading from theory `list` ... APPEND = |- (!l. APPEND[]l = l) /\ (!l1 l2 h. APPEND(CONS h l1)l2 = CONS h(APPEND l1 l2)) LASTN_BUTLASTN_APPEND = |- !l1 l2 m k. (m + k) <= ((LENGTH l1) + (LENGTH l2)) /\ k < (LENGTH l2) /\ (LENGTH l2) <= (m + k) ==> (LASTN m(BUTLASTN k(APPEND l1 l2)) = APPEND (LASTN((m + k) - (LENGTH l2))l1) (LASTN((LENGTH l2) - k)(BUTLASTN k l2))) word_Ax = |- !f. ?! fn. !l. fn(WORD l) = f l WORD_11 = |- !l l'. (WORD l = WORD l') = (l = l') word_induct = |- !P. (!l. P(WORD l)) ==> (!w. P w) word_cases = |- !w. ?l. w = WORD l WORDLEN_DEF = |- !l. WORDLEN(WORD l) = LENGTH l PWORDLEN_DEF = |- !n l. PWORDLEN n(WORD l) = (n = LENGTH l) word_CASES_TAC = - : (term -> tactic) word_INDUCT_TAC = - : tactic RESQ_WORDLEN_TAC = - : tactic File word_funs loaded () : void PWORDLEN = |- !n w. PWORDLEN n w = (WORDLEN w = n) Theorem NOT_SUC autoloading from theory `num` ... NOT_SUC = |- !n. ~(SUC n = 0) PWORDLEN0 = |- !w. PWORDLEN 0 w ==> (w = WORD[]) PWORDLEN1 = |- !x. PWORDLEN 1(WORD[x]) WSEG_DEF = |- !m k l. WSEG m k(WORD l) = WORD(LASTN m(BUTLASTN k l)) WSEG0 = |- !k w. WSEG 0 k w = WORD[] Theorem LENGTH_LASTN autoloading from theory `list` ... LENGTH_LASTN = |- !n l. n <= (LENGTH l) ==> (LENGTH(LASTN n l) = n) WSEG_PWORDLEN = |- !n. !w :: PWORDLEN n. !m k. (m + k) <= n ==> PWORDLEN m(WSEG m k w) WSEG_WORDLEN = |- !n. !w :: PWORDLEN n. !m k. (m + k) <= n ==> (WORDLEN(WSEG m k w) = m) WSEG_WORD_LENGTH = |- !n. !w :: PWORDLEN n. WSEG n 0 w = w BIT_DEF = |- !k l. BIT k(WORD l) = ELL k l Definition SNOC autoloading from theory `list` ... SNOC = |- (!x. SNOC x[] = [x]) /\ (!x x' l. SNOC x(CONS x' l) = CONS x'(SNOC x l)) Theorem LAST autoloading from theory `list` ... LAST = |- !x l. LAST(SNOC x l) = x Definition ELL autoloading from theory `list` ... ELL = |- (!l. ELL 0 l = LAST l) /\ (!n l. ELL(SUC n)l = ELL n(BUTLAST l)) BIT0 = |- !b. BIT 0(WORD[b]) = b Theorem BUTLAST autoloading from theory `list` ... BUTLAST = |- !x l. BUTLAST(SNOC x l) = l WSEG_BIT = |- !n. !w :: PWORDLEN n. !k. k < n ==> (WSEG 1 k w = WORD[BIT k w]) BIT_WSEG = |- !n. !w :: PWORDLEN n. !m k j. (m + k) <= n ==> j < m ==> (BIT j(WSEG m k w) = BIT(j + k)w) MSB_DEF = |- !l. MSB(WORD l) = HD l Theorem ELL_PRE_LENGTH autoloading from theory `list` ... ELL_PRE_LENGTH = |- !l. ~(l = []) ==> (ELL(PRE(LENGTH l))l = HD l) Theorem NULL_EQ_NIL autoloading from theory `list` ... NULL_EQ_NIL = |- !l. NULL l = (l = []) Theorem LENGTH_NOT_NULL autoloading from theory `list` ... LENGTH_NOT_NULL = |- !l. 0 < (LENGTH l) = ~NULL l MSB = |- !n. !w :: PWORDLEN n. 0 < n ==> (MSB w = BIT(PRE n)w) LSB_DEF = |- !l. LSB(WORD l) = LAST l Theorem ELL_LAST autoloading from theory `list` ... ELL_LAST = |- !l. ~NULL l ==> (ELL 0 l = LAST l) LSB = |- !n. !w :: PWORDLEN n. 0 < n ==> (LSB w = BIT 0 w) WSPLIT_DEF = |- !m l. WSPLIT m(WORD l) = WORD(BUTLASTN m l),WORD(LASTN m l) th = |- ?bt. !l. bt(WORD l) = l word_bits = |- ?bt. (!l. bt(WORD l) = l) /\ (!w. WORD(bt w) = w) WCAT_lemma = |- ?WCAT. !l1 l2. WCAT(WORD l1,WORD l2) = WORD(APPEND l1 l2) WCAT_DEF = |- !l1 l2. WCAT(WORD l1,WORD l2) = WORD(APPEND l1 l2) Theorem APPEND_BUTLASTN_LASTN autoloading from theory `list` ... APPEND_BUTLASTN_LASTN = |- !n l. n <= (LENGTH l) ==> (APPEND(BUTLASTN n l)(LASTN n l) = l) WCAT_WSPLIT = |- !n. !w :: PWORDLEN n. !m. m <= n ==> (WCAT(WSPLIT m w) = w) Theorem LASTN_LENGTH_APPEND autoloading from theory `list` ... LASTN_LENGTH_APPEND = |- !l1 l2. LASTN(LENGTH l2)(APPEND l1 l2) = l2 Theorem BUTLASTN_LENGTH_APPEND autoloading from theory `list` ... BUTLASTN_LENGTH_APPEND = |- !l2 l1. BUTLASTN(LENGTH l2)(APPEND l1 l2) = l1 WSPLIT_WCAT = |- !n m. !w1 :: PWORDLEN n. !w2 :: PWORDLEN m. WSPLIT m(WCAT(w1,w2)) = w1,w2 WORD_PARTITION = |- (!n. !w :: PWORDLEN n. !m. m <= n ==> (WCAT(WSPLIT m w) = w)) /\ (!n m. !w1 :: PWORDLEN n. !w2 :: PWORDLEN m. WSPLIT m(WCAT(w1,w2)) = w1,w2) Theorem APPEND_ASSOC autoloading from theory `list` ... APPEND_ASSOC = |- !l1 l2 l3. APPEND l1(APPEND l2 l3) = APPEND(APPEND l1 l2)l3 WCAT_ASSOC = |- !w1 w2 w3. WCAT(w1,WCAT(w2,w3)) = WCAT(WCAT(w1,w2),w3) WCAT0 = |- !w. (WCAT(WORD[],w) = w) /\ (WCAT(w,WORD[]) = w) Theorem APPEND_LENGTH_EQ autoloading from theory `list` ... APPEND_LENGTH_EQ = |- !l1 l1'. (LENGTH l1 = LENGTH l1') ==> (!l2 l2'. (LENGTH l2 = LENGTH l2') ==> ((APPEND l1 l2 = APPEND l1' l2') = (l1 = l1') /\ (l2 = l2'))) WCAT_11 = |- !m n. !wm1 wm2 :: PWORDLEN m. !wn1 wn2 :: PWORDLEN n. (WCAT(wm1,wn1) = WCAT(wm2,wn2)) = (wm1 = wm2) /\ (wn1 = wn2) WSPLIT_PWORDLEN = |- !n. !w :: PWORDLEN n. !m. m <= n ==> PWORDLEN(n - m)(FST(WSPLIT m w)) /\ PWORDLEN m(SND(WSPLIT m w)) Theorem LENGTH_APPEND autoloading from theory `list` ... LENGTH_APPEND = |- !l1 l2. LENGTH(APPEND l1 l2) = (LENGTH l1) + (LENGTH l2) WCAT_PWORDLEN = |- !n1. !w1 :: PWORDLEN n1. !n2. !w2 :: PWORDLEN n2. PWORDLEN(n1 + n2)(WCAT(w1,w2)) Theorem LESS_EQ_SUC_REFL autoloading from theory `arithmetic` ... LESS_EQ_SUC_REFL = |- !m. m <= (SUC m) WORDLEN_SUC_WCAT = |- !n w. PWORDLEN(SUC n)w ==> (?b :: PWORDLEN 1. ?w' :: PWORDLEN n. w = WCAT(b,w')) Theorem LASTN_LASTN autoloading from theory `list` ... LASTN_LASTN = |- !l n m. m <= (LENGTH l) ==> n <= m ==> (LASTN n(LASTN m l) = LASTN n l) Theorem BUTLASTN_BUTLASTN autoloading from theory `list` ... BUTLASTN_BUTLASTN = |- !m n l. (n + m) <= (LENGTH l) ==> (BUTLASTN n(BUTLASTN m l) = BUTLASTN(n + m)l) Theorem BUTLASTN_LASTN autoloading from theory `list` ... BUTLASTN_LASTN = |- !m n l. m <= n /\ n <= (LENGTH l) ==> (BUTLASTN m(LASTN n l) = LASTN(n - m)(BUTLASTN m l)) WSEG_WSEG = |- !n. !w :: PWORDLEN n. !m1 k1 m2 k2. (m1 + k1) <= n /\ (m2 + k2) <= m1 ==> (WSEG m2 k2(WSEG m1 k1 w) = WSEG m2(k1 + k2)w) WSPLIT_WSEG = |- !n. !w :: PWORDLEN n. !k. k <= n ==> (WSPLIT k w = WSEG(n - k)k w,WSEG k 0 w) WSPLIT_WSEG1 = |- !n. !w :: PWORDLEN n. !k. k <= n ==> (FST(WSPLIT k w) = WSEG(n - k)k w) WSPLIT_WSEG2 = |- !n. !w :: PWORDLEN n. !k. k <= n ==> (SND(WSPLIT k w) = WSEG k 0 w) WCAT_WSEG_WSEG = |- !n. !w :: PWORDLEN n. !m1 m2 k. (m1 + (m2 + k)) <= n ==> (WCAT(WSEG m2(m1 + k)w,WSEG m1 k w) = WSEG(m1 + m2)k w) WORD_SPLIT = |- !n1 n2. !w :: PWORDLEN(n1 + n2). w = WCAT(WSEG n1 n2 w,WSEG n2 0 w) WORDLEN_SUC_WCAT_WSEG_WSEG = |- !w :: PWORDLEN(SUC n). w = WCAT(WSEG 1 n w,WSEG n 0 w) WORDLEN_SUC_WCAT_WSEG_WSEG_RIGHT = |- !w :: PWORDLEN(SUC n). w = WCAT(WSEG n 1 w,WSEG 1 0 w) WORDLEN_SUC_WCAT_BIT_WSEG = |- !n. !w :: PWORDLEN(SUC n). w = WCAT(WORD[BIT n w],WSEG n 0 w) WORDLEN_SUC_WCAT_BIT_WSEG_RIGHT = |- !n. !w :: PWORDLEN(SUC n). w = WCAT(WSEG n 1 w,WORD[BIT 0 w]) WSEG_WCAT1 = |- !n1 n2. !w1 :: PWORDLEN n1. !w2 :: PWORDLEN n2. WSEG n1 n2(WCAT(w1,w2)) = w1 WSEG_WCAT2 = |- !n1 n2. !w1 :: PWORDLEN n1. !w2 :: PWORDLEN n2. WSEG n2 0(WCAT(w1,w2)) = w2 Theorem CONS_APPEND autoloading from theory `list` ... CONS_APPEND = |- !x l. CONS x l = APPEND[x]l WORD_CONS_WCAT = |- !x l. WORD(CONS x l) = WCAT(WORD[x],WORD l) Theorem SNOC_APPEND autoloading from theory `list` ... SNOC_APPEND = |- !x l. SNOC x l = APPEND l[x] WORD_SNOC_WCAT = |- !x l. WORD(SNOC x l) = WCAT(WORD l,WORD[x]) Theorem ELL_APPEND1 autoloading from theory `list` ... ELL_APPEND1 = |- !l2 n. (LENGTH l2) <= n ==> (!l1. ELL n(APPEND l1 l2) = ELL(n - (LENGTH l2))l1) BIT_WCAT_FST = |- !n1 n2. !w1 :: PWORDLEN n1. !w2 :: PWORDLEN n2. !k. n2 <= k /\ k < (n1 + n2) ==> (BIT k(WCAT(w1,w2)) = BIT(k - n2)w1) Theorem ELL_APPEND2 autoloading from theory `list` ... ELL_APPEND2 = |- !n l2. n < (LENGTH l2) ==> (!l1. ELL n(APPEND l1 l2) = ELL n l2) BIT_WCAT_SND = |- !n1 n2. !w1 :: PWORDLEN n1. !w2 :: PWORDLEN n2. !k. k < n2 ==> (BIT k(WCAT(w1,w2)) = BIT k w2) Theorem ELL_LENGTH_CONS autoloading from theory `list` ... ELL_LENGTH_CONS = |- !l x. ELL(LENGTH l)(CONS x l) = x BIT_WCAT1 = |- !n. !w :: PWORDLEN n. !b. BIT n(WCAT(WORD[b],w)) = b Theorem BUTLASTN_APPEND1 autoloading from theory `list` ... BUTLASTN_APPEND1 = |- !l2 n. (LENGTH l2) <= n ==> (!l1. BUTLASTN n(APPEND l1 l2) = BUTLASTN(n - (LENGTH l2))l1) WSEG_WCAT_WSEG1 = |- !n1 n2. !w1 :: PWORDLEN n1. !w2 :: PWORDLEN n2. !m k. m <= n1 /\ n2 <= k ==> (WSEG m k(WCAT(w1,w2)) = WSEG m(k - n2)w1) Theorem LASTN_APPEND2 autoloading from theory `list` ... LASTN_APPEND2 = |- !n l2. n <= (LENGTH l2) ==> (!l1. LASTN n(APPEND l1 l2) = LASTN n l2) WSEG_WCAT_WSEG2 = |- !n1 n2. !w1 :: PWORDLEN n1. !w2 :: PWORDLEN n2. !m k. (m + k) <= n2 ==> (WSEG m k(WCAT(w1,w2)) = WSEG m k w2) WSEG_WCAT_WSEG = |- !n1 n2. !w1 :: PWORDLEN n1. !w2 :: PWORDLEN n2. !m k. (m + k) <= (n1 + n2) /\ k < n2 /\ n2 <= (m + k) ==> (WSEG m k(WCAT(w1,w2)) = WCAT(WSEG((m + k) - n2)0 w1,WSEG(n2 - k)k w2)) PWORDLEN_BIT1 = |- !x. PWORDLEN 1(WORD[x]) Theorem LESS_SUC autoloading from theory `prim_rec` ... LESS_SUC = |- !m n. m < n ==> m < (SUC n) Theorem CONS_11 autoloading from theory `list` ... CONS_11 = |- !h t h' t'. (CONS h t = CONS h' t') = (h = h') /\ (t = t') BIT_EQ_IMP_WORD_EQ = |- !n. !w1 w2 :: PWORDLEN n. (!k. k < n ==> (BIT k w1 = BIT k w2)) ==> (w1 = w2) () : void File mk_word_base loaded () : void #rm -f word_bitop.th echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `mk_word_bitop`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool autoload_all = - : (string -> void) Loading library arith ... Loading library reduce ... Extending help search path. Loading boolean conversions........ Loading arithmetic conversions.................. Loading general conversions, rule and tactic..... Library reduce loaded. .Updating help search path ....................................................................................................................................................................................................................................................................................... Library arith loaded. () : void Loading library res_quan ... Updating search path Theory res_quan loaded ...............................................................................Updating help search path . Library res_quan loaded. () : void ....() : void File ver_202 loaded () : void .........................................................() : void Theory word_base loaded () : void () : void () : void ...() : void Theorem SUB_LESS_EQ autoloading from theory `arithmetic` ... SUB_LESS_EQ = |- !n m. (n - m) <= n Theorem SEG_LASTN_BUTLASTN autoloading from theory `list` ... SEG_LASTN_BUTLASTN = |- !n m l. (n + m) <= (LENGTH l) ==> (SEG n m l = LASTN n(BUTLASTN((LENGTH l) - (n + m))l)) LASTN_BUTLASTN_SEG = |- !m k l. (m + k) <= (LENGTH l) ==> (LASTN m(BUTLASTN k l) = SEG m((LENGTH l) - (m + k))l) PBITOP_DEF = |- !op. PBITOP op = (!n. !w :: PWORDLEN n. PWORDLEN n(op w) /\ (!m k. (m + k) <= n ==> (op(WSEG m k w) = WSEG m k(op w)))) PBITOP_PWORDLEN = |- !op :: PBITOP. !n. !w :: PWORDLEN n. PWORDLEN n(op w) PBITOP_WSEG = |- !op :: PBITOP. !n. !w :: PWORDLEN n. !m k. (m + k) <= n ==> (op(WSEG m k w) = WSEG m k(op w)) Theorem LESS_EQ autoloading from theory `arithmetic` ... LESS_EQ = |- !m n. m < n = (SUC m) <= n Theorem WSEG_BIT autoloading from theory `word_base` ... WSEG_BIT = |- !n. !w :: PWORDLEN n. !k. k < n ==> (WSEG 1 k w = WORD[BIT k w]) PBITOP_BIT = |- !op :: PBITOP. !n. !w :: PWORDLEN n. !k. k < n ==> (op(WORD[BIT k w]) = WORD[BIT k(op w)]) Theorem BIT0 autoloading from theory `word_base` ... BIT0 = |- !b. BIT 0(WORD[b]) = b BIT_op_EXISTS = |- !op :: PBITOP. ?op'. !n. !w :: PWORDLEN n. !k. k < n ==> (BIT k(op w) = op'(BIT k w)) PBITBOP_DEF = |- !op. PBITBOP op = (!n. !w1 :: PWORDLEN n. !w2 :: PWORDLEN n. PWORDLEN n(op w1 w2) /\ (!m k. (m + k) <= n ==> (op(WSEG m k w1)(WSEG m k w2) = WSEG m k(op w1 w2)))) PBITBOP_PWORDLEN = |- !op :: PBITBOP. !n. !w1 :: PWORDLEN n. !w2 :: PWORDLEN n. PWORDLEN n(op w1 w2) PBITBOP_WSEG = |- !op :: PBITBOP. !n. !w1 :: PWORDLEN n. !w2 :: PWORDLEN n. !m k. (m + k) <= n ==> (op(WSEG m k w1)(WSEG m k w2) = WSEG m k(op w1 w2)) Theorem word_Ax autoloading from theory `word_base` ... word_Ax = |- !f. ?! fn. !l. fn(WORD l) = f l PBITBOP_EXISTS = |- !f. ?fn. !l1 l2. fn(WORD l1)(WORD l2) = WORD(MAP2 f l1 l2) WMAP_DEF = |- !f l. WMAP f(WORD l) = WORD(MAP f l) Theorem LENGTH_MAP autoloading from theory `list` ... LENGTH_MAP = |- !l f. LENGTH(MAP f l) = LENGTH l Definition PWORDLEN_DEF autoloading from theory `word_base` ... PWORDLEN_DEF = |- !n l. PWORDLEN n(WORD l) = (n = LENGTH l) WMAP_PWORDLEN = |- !w :: PWORDLEN n. !f. PWORDLEN n(WMAP f w) Definition MAP autoloading from theory `list` ... MAP = |- (!f. MAP f[] = []) /\ (!f h t. MAP f(CONS h t) = CONS(f h)(MAP f t)) WMAP0 = |- !f. WMAP f(WORD[]) = WORD[] Theorem ELL_MAP autoloading from theory `list` ... ELL_MAP = |- !n l f. n < (LENGTH l) ==> (ELL n(MAP f l) = f(ELL n l)) Definition BIT_DEF autoloading from theory `word_base` ... BIT_DEF = |- !k l. BIT k(WORD l) = ELL k l WMAP_BIT = |- !n. !w :: PWORDLEN n. !k. k < n ==> (!f. BIT k(WMAP f w) = f(BIT k w)) Theorem LENGTH_BUTLASTN autoloading from theory `list` ... LENGTH_BUTLASTN = |- !n l. n <= (LENGTH l) ==> (LENGTH(BUTLASTN n l) = (LENGTH l) - n) Theorem LASTN_MAP autoloading from theory `list` ... LASTN_MAP = |- !n l. n <= (LENGTH l) ==> (!f. LASTN n(MAP f l) = MAP f(LASTN n l)) Theorem BUTLASTN_MAP autoloading from theory `list` ... BUTLASTN_MAP = |- !n l. n <= (LENGTH l) ==> (!f. BUTLASTN n(MAP f l) = MAP f(BUTLASTN n l)) Theorem WORD_11 autoloading from theory `word_base` ... WORD_11 = |- !l l'. (WORD l = WORD l') = (l = l') Definition WSEG_DEF autoloading from theory `word_base` ... WSEG_DEF = |- !m k l. WSEG m k(WORD l) = WORD(LASTN m(BUTLASTN k l)) WMAP_WSEG = |- !n. !w :: PWORDLEN n. !m k. (m + k) <= n ==> (!f. WMAP f(WSEG m k w) = WSEG m k(WMAP f w)) WMAP_PBITOP = |- !f. PBITOP(WMAP f) Theorem MAP_APPEND autoloading from theory `list` ... MAP_APPEND = |- !f l1 l2. MAP f(APPEND l1 l2) = APPEND(MAP f l1)(MAP f l2) Definition WCAT_DEF autoloading from theory `word_base` ... WCAT_DEF = |- !l1 l2. WCAT(WORD l1,WORD l2) = WORD(APPEND l1 l2) WMAP_WCAT = |- !w1 w2 f. WMAP f(WCAT(w1,w2)) = WCAT(WMAP f w1,WMAP f w2) Theorem MAP_MAP_o autoloading from theory `list` ... MAP_MAP_o = |- !f g l. MAP f(MAP g l) = MAP(f o g)l WMAP_o = |- !w f g. WMAP g(WMAP f w) = WMAP(g o f)w FORALLBITS_DEF = |- !P l. FORALLBITS P(WORD l) = ALL_EL P l Theorem ELL_CONS autoloading from theory `list` ... ELL_CONS = |- !n l. n < (LENGTH l) ==> (!x. ELL n(CONS x l) = ELL n l) Theorem ELL_LENGTH_CONS autoloading from theory `list` ... ELL_LENGTH_CONS = |- !l x. ELL(LENGTH l)(CONS x l) = x Definition ALL_EL autoloading from theory `list` ... ALL_EL = |- (!P. ALL_EL P[] = T) /\ (!P x l. ALL_EL P(CONS x l) = P x /\ ALL_EL P l) Definition LENGTH autoloading from theory `list` ... LENGTH = |- (LENGTH[] = 0) /\ (!h t. LENGTH(CONS h t) = SUC(LENGTH t)) FORALLBITS = |- !n. !w :: PWORDLEN n. !P. FORALLBITS P w = (!k. k < n ==> P(BIT k w)) Theorem ALL_EL_LASTN autoloading from theory `list` ... ALL_EL_LASTN = |- !P l. ALL_EL P l ==> (!m. m <= (LENGTH l) ==> ALL_EL P(LASTN m l)) Theorem ALL_EL_SNOC autoloading from theory `list` ... ALL_EL_SNOC = |- !P x l. ALL_EL P(SNOC x l) = ALL_EL P l /\ P x Theorem LENGTH_SNOC autoloading from theory `list` ... LENGTH_SNOC = |- !x l. LENGTH(SNOC x l) = SUC(LENGTH l) Definition BUTLASTN autoloading from theory `list` ... BUTLASTN = |- (!l. BUTLASTN 0 l = l) /\ (!n x l. BUTLASTN(SUC n)(SNOC x l) = BUTLASTN n l) Definition LASTN autoloading from theory `list` ... LASTN = |- (!l. LASTN 0 l = []) /\ (!n x l. LASTN(SUC n)(SNOC x l) = SNOC x(LASTN n l)) Theorem ADD_EQ_0 autoloading from theory `arithmetic` ... ADD_EQ_0 = |- !m n. (m + n = 0) = (m = 0) /\ (n = 0) FORALLBITS_WSEG = |- !n. !w :: PWORDLEN n. !P. FORALLBITS P w ==> (!m k. (m + k) <= n ==> FORALLBITS P(WSEG m k w)) Theorem ALL_EL_APPEND autoloading from theory `list` ... ALL_EL_APPEND = |- !P l1 l2. ALL_EL P(APPEND l1 l2) = ALL_EL P l1 /\ ALL_EL P l2 FORALLBITS_WCAT = |- !w1 w2 P. FORALLBITS P(WCAT(w1,w2)) = FORALLBITS P w1 /\ FORALLBITS P w2 EXISTSABIT_DEF = |- !P l. EXISTSABIT P(WORD l) = SOME_EL P l Theorem NOT_SOME_EL_ALL_EL autoloading from theory `list` ... NOT_SOME_EL_ALL_EL = |- !P l. ~SOME_EL P l = ALL_EL($~ o P)l NOT_EXISTSABIT = |- !P w. ~EXISTSABIT P w = FORALLBITS($~ o P)w Theorem NOT_ALL_EL_SOME_EL autoloading from theory `list` ... NOT_ALL_EL_SOME_EL = |- !P l. ~ALL_EL P l = SOME_EL($~ o P)l NOT_FORALLBITS = |- !P w. ~FORALLBITS P w = EXISTSABIT($~ o P)w Definition SOME_EL autoloading from theory `list` ... SOME_EL = |- (!P. SOME_EL P[] = F) /\ (!P x l. SOME_EL P(CONS x l) = P x \/ SOME_EL P l) EXISTSABIT_BIT = |- !n. !w :: PWORDLEN n. !P. EXISTSABIT P w = (?k. k < n /\ P(BIT k w)) Theorem SOME_EL_SEG autoloading from theory `list` ... SOME_EL_SEG = |- !m k l. (m + k) <= (LENGTH l) ==> (!P. SOME_EL P(SEG m k l) ==> SOME_EL P l) EXISTSABIT_WSEG = |- !n. !w :: PWORDLEN n. !m k. (m + k) <= n ==> (!P. EXISTSABIT P(WSEG m k w) ==> EXISTSABIT P w) Theorem SOME_EL_APPEND autoloading from theory `list` ... SOME_EL_APPEND = |- !P l1 l2. SOME_EL P(APPEND l1 l2) = SOME_EL P l1 \/ SOME_EL P l2 EXISTSABIT_WCAT = |- !w1 w2 P. EXISTSABIT P(WCAT(w1,w2)) = EXISTSABIT P w1 \/ EXISTSABIT P w2 SHR_DEF = |- !f b w. SHR f b w = WCAT ((f => WSEG 1(PRE(WORDLEN w))w | WORD[b]),WSEG(PRE(WORDLEN w))1 w), BIT 0 w SHL_DEF = |- !f w b. SHL f w b = BIT(PRE(WORDLEN w))w, WCAT(WSEG(PRE(WORDLEN w))0 w,(f => WSEG 1 0 w | WORD[b])) Theorem BIT_WSEG autoloading from theory `word_base` ... BIT_WSEG = |- !n. !w :: PWORDLEN n. !m k j. (m + k) <= n ==> j < m ==> (BIT j(WSEG m k w) = BIT(j + k)w) Theorem WSEG_WSEG autoloading from theory `word_base` ... WSEG_WSEG = |- !n. !w :: PWORDLEN n. !m1 k1 m2 k2. (m1 + k1) <= n /\ (m2 + k2) <= m1 ==> (WSEG m2 k2(WSEG m1 k1 w) = WSEG m2(k1 + k2)w) Theorem PRE_SUB1 autoloading from theory `arithmetic` ... PRE_SUB1 = |- !m. PRE m = m - 1 Theorem WSEG_WORDLEN autoloading from theory `word_base` ... WSEG_WORDLEN = |- !n. !w :: PWORDLEN n. !m k. (m + k) <= n ==> (WORDLEN(WSEG m k w) = m) SHR_WSEG = |- !n. !w :: PWORDLEN n. !m k. (m + k) <= n ==> 0 < m ==> (!f b. SHR f b(WSEG m k w) = (f => WCAT(WSEG 1(k + (m - 1))w,WSEG(m - 1)(k + 1)w) | WCAT(WORD[b],WSEG(m - 1)(k + 1)w)),BIT k w) SHR_WSEG_1F = |- !n. !w :: PWORDLEN n. !m k. (m + k) <= n ==> 0 < m ==> (!b. SHR F b(WSEG m k w) = WCAT(WORD[b],WSEG(m - 1)(k + 1)w),BIT k w) SHR_WSEG_NF_lem1 = |- 0 < m ==> ((m - 1) + 1 = m) SHR_WSEG_NF_lem2 = |- 0 < m ==> ((m - 1) + (k + 1) = m + k) Theorem LESS_OR autoloading from theory `arithmetic` ... LESS_OR = |- !m n. m < n ==> (SUC m) <= n Theorem WCAT_WSEG_WSEG autoloading from theory `word_base` ... WCAT_WSEG_WSEG = |- !n. !w :: PWORDLEN n. !m1 m2 k. (m1 + (m2 + k)) <= n ==> (WCAT(WSEG m2(m1 + k)w,WSEG m1 k w) = WSEG(m1 + m2)k w) Theorem LESS_IMP_LESS_OR_EQ autoloading from theory `arithmetic` ... LESS_IMP_LESS_OR_EQ = |- !m n. m < n ==> m <= n SHR_WSEG_NF = |- !n. !w :: PWORDLEN n. !m k. (m + k) < n ==> 0 < m ==> (SHR F(BIT(m + k)w)(WSEG m k w) = WSEG m(k + 1)w,BIT k w) SHL_WSEG = |- !n. !w :: PWORDLEN n. !m k. (m + k) <= n ==> 0 < m ==> (!f b. SHL f(WSEG m k w)b = BIT(k + (m - 1))w, (f => WCAT(WSEG(m - 1)k w,WSEG 1 k w) | WCAT(WSEG(m - 1)k w,WORD[b]))) SHL_WSEG_1F = |- !n. !w :: PWORDLEN n. !m k. (m + k) <= n ==> 0 < m ==> (!b. SHL F(WSEG m k w)b = BIT(k + (m - 1))w,WCAT(WSEG(m - 1)k w,WORD[b])) SHL_WSEG_NF = |- !n. !w :: PWORDLEN n. !m k. (m + k) <= n ==> 0 < m ==> 0 < k ==> (SHL F(WSEG m k w)(BIT(k - 1)w) = BIT(k + (m - 1))w,WSEG m(k - 1)w) Theorem PWORDLEN1 autoloading from theory `word_base` ... PWORDLEN1 = |- !x. PWORDLEN 1(WORD[x]) Theorem ZERO_LESS_EQ autoloading from theory `arithmetic` ... ZERO_LESS_EQ = |- !n. 0 <= n Theorem LESS_EQ_SUC_REFL autoloading from theory `arithmetic` ... LESS_EQ_SUC_REFL = |- !m. m <= (SUC m) Theorem WSEG_PWORDLEN autoloading from theory `word_base` ... WSEG_PWORDLEN = |- !n. !w :: PWORDLEN n. !m k. (m + k) <= n ==> PWORDLEN m(WSEG m k w) Theorem WSEG_WCAT_WSEG1 autoloading from theory `word_base` ... WSEG_WCAT_WSEG1 = |- !n1 n2. !w1 :: PWORDLEN n1. !w2 :: PWORDLEN n2. !m k. m <= n1 /\ n2 <= k ==> (WSEG m k(WCAT(w1,w2)) = WSEG m(k - n2)w1) Theorem PWORDLEN autoloading from theory `word_base` ... PWORDLEN = |- !n w. PWORDLEN n w = (WORDLEN w = n) WSEG_SHL = |- !n. !w :: PWORDLEN(SUC n). !m k. 0 < k /\ (m + k) <= (SUC n) ==> (!b. WSEG m k(SND(SHL f w b)) = WSEG m(k - 1)w) Theorem WSEG_WORD_LENGTH autoloading from theory `word_base` ... WSEG_WORD_LENGTH = |- !n. !w :: PWORDLEN n. WSEG n 0 w = w Theorem WSEG_WCAT_WSEG autoloading from theory `word_base` ... WSEG_WCAT_WSEG = |- !n1 n2. !w1 :: PWORDLEN n1. !w2 :: PWORDLEN n2. !m k. (m + k) <= (n1 + n2) /\ k < n2 /\ n2 <= (m + k) ==> (WSEG m k(WCAT(w1,w2)) = WCAT(WSEG((m + k) - n2)0 w1,WSEG(n2 - k)k w2)) WSEG_SHL_0 = |- !n. !w :: PWORDLEN(SUC n). !m b. 0 < m /\ m <= (SUC n) ==> (WSEG m 0(SND(SHL f w b)) = WCAT(WSEG(m - 1)0 w,(f => WSEG 1 0 w | WORD[b]))) () : void File mk_word_bitop loaded () : void #rm -f word_num.th echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `mk_word_num`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool autoload_all = - : (string -> void) Loading library arith ... Loading library reduce ... Extending help search path. Loading boolean conversions........ Loading arithmetic conversions.................. Loading general conversions, rule and tactic..... Library reduce loaded. .Updating help search path ....................................................................................................................................................................................................................................................................................... Library arith loaded. () : void Loading library res_quan ... Updating search path Theory res_quan loaded ...............................................................................Updating help search path . Library res_quan loaded. () : void ....() : void File ver_202 loaded () : void Theory word_base loaded () : void [()] : void list () : void ...() : void LVAL_DEF = |- !f b l. LVAL f b l = FOLDL(\e x. (b * e) + (f x))0 l Theorem LEFT_ADD_DISTRIB autoloading from theory `arithmetic` ... LEFT_ADD_DISTRIB = |- !m n p. p * (m + n) = (p * m) + (p * n) Theorem ADD_ASSOC autoloading from theory `arithmetic` ... ADD_ASSOC = |- !m n p. m + (n + p) = (m + n) + p Theorem MULT_SYM autoloading from theory `arithmetic` ... MULT_SYM = |- !m n. m * n = n * m Theorem MULT_ASSOC autoloading from theory `arithmetic` ... MULT_ASSOC = |- !m n p. m * (n * p) = (m * n) * p Theorem LENGTH_SNOC autoloading from theory `list` ... LENGTH_SNOC = |- !x l. LENGTH(SNOC x l) = SUC(LENGTH l) Theorem FOLDL_SNOC autoloading from theory `list` ... FOLDL_SNOC = |- !f e x l. FOLDL f e(SNOC x l) = f(FOLDL f e l)x Definition EXP autoloading from theory `arithmetic` ... EXP = |- (!m. m EXP 0 = 1) /\ (!m n. m EXP (SUC n) = m * (m EXP n)) Definition LENGTH autoloading from theory `list` ... LENGTH = |- (LENGTH[] = 0) /\ (!h t. LENGTH(CONS h t) = SUC(LENGTH t)) Theorem ADD_CLAUSES autoloading from theory `arithmetic` ... ADD_CLAUSES = |- (0 + m = m) /\ (m + 0 = m) /\ ((SUC m) + n = SUC(m + n)) /\ (m + (SUC n) = SUC(m + n)) Theorem MULT_CLAUSES autoloading from theory `arithmetic` ... MULT_CLAUSES = |- !m n. (0 * m = 0) /\ (m * 0 = 0) /\ (1 * m = m) /\ (m * 1 = m) /\ ((SUC m) * n = (m * n) + n) /\ (m * (SUC n) = m + (m * n)) Definition FOLDL autoloading from theory `list` ... FOLDL = |- (!f e. FOLDL f e[] = e) /\ (!f e x l. FOLDL f e(CONS x l) = FOLDL f(f e x)l) LVAL = |- (!f b. LVAL f b[] = 0) /\ (!l f b x. LVAL f b(CONS x l) = ((f x) * (b EXP (LENGTH l))) + (LVAL f b l)) Theorem word_Ax autoloading from theory `word_base` ... word_Ax = |- !f. ?! fn. !l. fn(WORD l) = f l NVAL_DEF = |- !f b l. NVAL f b(WORD l) = LVAL f b l Theorem RIGHT_ADD_DISTRIB autoloading from theory `arithmetic` ... RIGHT_ADD_DISTRIB = |- !m n p. (m + n) * p = (m * p) + (n * p) Definition MULT autoloading from theory `arithmetic` ... MULT = |- (!n. 0 * n = 0) /\ (!m n. (SUC m) * n = (m * n) + n) Definition SNOC autoloading from theory `list` ... SNOC = |- (!x. SNOC x[] = [x]) /\ (!x x' l. SNOC x(CONS x' l) = CONS x'(SNOC x l)) LVAL_SNOC = |- !l h f b. LVAL f b(SNOC h l) = ((LVAL f b l) * b) + (f h) Definition LESS_OR_EQ autoloading from theory `arithmetic` ... LESS_OR_EQ = |- !m n. m <= n = m < n \/ (m = n) Theorem LESS_THM autoloading from theory `prim_rec` ... LESS_THM = |- !m n. m < (SUC n) = (m = n) \/ m < n LESS_SUC_IMP_LESS_EQ = |- !m n. m < (SUC n) = m <= n Theorem LESS_LESS_EQ_TRANS autoloading from theory `arithmetic` ... LESS_LESS_EQ_TRANS = |- !m n p. m < n /\ n <= p ==> m < p Theorem LESS_MONO_ADD autoloading from theory `arithmetic` ... LESS_MONO_ADD = |- !m n p. m < n ==> (m + p) < (n + p) Theorem ADD_SYM autoloading from theory `arithmetic` ... ADD_SYM = |- !m n. m + n = n + m LVAL_MAX_lem = |- !a b c y. (a + b) < (SUC c) /\ y < b ==> (a + y) < c Theorem LESS_OR autoloading from theory `arithmetic` ... LESS_OR = |- !m n. m < n ==> (SUC m) <= n Theorem LESS_EQ_LESS_EQ_MONO autoloading from theory `arithmetic` ... LESS_EQ_LESS_EQ_MONO = |- !m n p q. m <= p /\ n <= q ==> (m + n) <= (p + q) Theorem LESS_EQ_REFL autoloading from theory `arithmetic` ... LESS_EQ_REFL = |- !m. m <= m Theorem INDUCTION autoloading from theory `num` ... INDUCTION = |- !P. P 0 /\ (!n. P n ==> P(SUC n)) ==> (!n. P n) LESS_MULT_PLUS_DIFF = |- !n k l. k < l ==> ((k * n) + n) <= (l * n) Theorem LESS_EQ_IMP_LESS_SUC autoloading from theory `arithmetic` ... LESS_EQ_IMP_LESS_SUC = |- !n m. n <= m ==> n < (SUC m) Theorem LESS_0 autoloading from theory `prim_rec` ... LESS_0 = |- !n. 0 < (SUC n) LVAL_MAX = |- !l f b. (!x. (f x) < b) ==> (LVAL f b l) < (b EXP (LENGTH l)) NVAL_MAX = |- !f b. (!x. (f x) < b) ==> (!n. !w :: PWORDLEN n. (NVAL f b w) < (b EXP n)) NVAL0 = |- !f b. NVAL f b(WORD[]) = 0 NVAL1 = |- !f b x. NVAL f b(WORD[x]) = f x Theorem PWORDLEN0 autoloading from theory `word_base` ... PWORDLEN0 = |- !w. PWORDLEN 0 w ==> (w = WORD[]) NVAL_WORDLEN_0 = |- !w :: PWORDLEN 0. !fv r. NVAL fv r w = 0 Theorem SNOC_APPEND autoloading from theory `list` ... SNOC_APPEND = |- !x l. SNOC x l = APPEND l[x] Definition WCAT_DEF autoloading from theory `word_base` ... WCAT_DEF = |- !l1 l2. WCAT(WORD l1,WORD l2) = WORD(APPEND l1 l2) NVAL_WCAT1 = |- !w f b x. NVAL f b(WCAT(w,WORD[x])) = ((NVAL f b w) * b) + (f x) Theorem CONS_APPEND autoloading from theory `list` ... CONS_APPEND = |- !x l. CONS x l = APPEND[x]l NVAL_WCAT2 = |- !n. !w :: PWORDLEN n. !f b x. NVAL f b(WCAT(WORD[x],w)) = ((f x) * (b EXP n)) + (NVAL f b w) Theorem EXP_ADD autoloading from theory `arithmetic` ... EXP_ADD = |- !p q n. n EXP (p + q) = (n EXP p) * (n EXP q) Theorem EQ_MONO_ADD_EQ autoloading from theory `arithmetic` ... EQ_MONO_ADD_EQ = |- !m n p. (m + p = n + p) = (m = n) Theorem WCAT_PWORDLEN autoloading from theory `word_base` ... WCAT_PWORDLEN = |- !n1. !w1 :: PWORDLEN n1. !n2. !w2 :: PWORDLEN n2. PWORDLEN(n1 + n2)(WCAT(w1,w2)) Theorem WCAT_ASSOC autoloading from theory `word_base` ... WCAT_ASSOC = |- !w1 w2 w3. WCAT(w1,WCAT(w2,w3)) = WCAT(WCAT(w1,w2),w3) Theorem WORDLEN_SUC_WCAT_BIT_WSEG autoloading from theory `word_base` ... WORDLEN_SUC_WCAT_BIT_WSEG = |- !n. !w :: PWORDLEN(SUC n). w = WCAT(WORD[BIT n w],WSEG n 0 w) Definition ADD autoloading from theory `arithmetic` ... ADD = |- (!n. 0 + n = n) /\ (!m n. (SUC m) + n = SUC(m + n)) Theorem WCAT0 autoloading from theory `word_base` ... WCAT0 = |- !w. (WCAT(WORD[],w) = w) /\ (WCAT(w,WORD[]) = w) Theorem WSEG_PWORDLEN autoloading from theory `word_base` ... WSEG_PWORDLEN = |- !n. !w :: PWORDLEN n. !m k. (m + k) <= n ==> PWORDLEN m(WSEG m k w) Theorem LESS_EQ_SUC_REFL autoloading from theory `arithmetic` ... LESS_EQ_SUC_REFL = |- !m. m <= (SUC m) Theorem ADD_0 autoloading from theory `arithmetic` ... ADD_0 = |- !m. m + 0 = m NVAL_WCAT = |- !n m. !w1 :: PWORDLEN n. !w2 :: PWORDLEN m. !f b. NVAL f b(WCAT(w1,w2)) = ((NVAL f b w1) * (b EXP m)) + (NVAL f b w2) NLIST_DEF = |- (!frep b m. NLIST 0 frep b m = []) /\ (!n frep b m. NLIST(SUC n)frep b m = SNOC(frep(m MOD b))(NLIST n frep b(m DIV b))) NWORD_DEF = |- !n frep b m. NWORD n frep b m = WORD(NLIST n frep b m) NLIST_LENGTH = |- !n f b m. LENGTH(NLIST n f b m) = n Definition WORDLEN_DEF autoloading from theory `word_base` ... WORDLEN_DEF = |- !l. WORDLEN(WORD l) = LENGTH l NWORD_LENGTH = |- !n f b m. WORDLEN(NWORD n f b m) = n Definition PWORDLEN_DEF autoloading from theory `word_base` ... PWORDLEN_DEF = |- !n l. PWORDLEN n(WORD l) = (n = LENGTH l) NWORD_PWORDLEN = |- !n f b m. PWORDLEN n(NWORD n f b m) () : void File mk_word_num loaded () : void #rm -f bword_bitop.th echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `mk_bword_bitop`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool autoload_all = - : (string -> void) Loading library arith ... Loading library reduce ... Extending help search path. Loading boolean conversions........ Loading arithmetic conversions.................. Loading general conversions, rule and tactic..... Library reduce loaded. .Updating help search path ....................................................................................................................................................................................................................................................................................... Library arith loaded. () : void Loading library res_quan ... Updating search path Theory res_quan loaded ...............................................................................Updating help search path . Library res_quan loaded. () : void ....() : void File ver_202 loaded () : void .........................................................() : void Theory word_bitop loaded () : void [(); ()] : void list () : void ...() : void Theorem CONS_11 autoloading from theory `list` ... CONS_11 = |- !h t h' t'. (CONS h t = CONS h' t') = (h = h') /\ (t = t') Theorem INV_SUC_EQ autoloading from theory `prim_rec` ... INV_SUC_EQ = |- !m n. (SUC m = SUC n) = (m = n) Definition LENGTH autoloading from theory `list` ... LENGTH = |- (LENGTH[] = 0) /\ (!h t. LENGTH(CONS h t) = SUC(LENGTH t)) Definition MAP2 autoloading from theory `list` ... MAP2 = |- (!f. MAP2 f[][] = []) /\ (!f h1 t1 h2 t2. MAP2 f(CONS h1 t1)(CONS h2 t2) = CONS(f h1 h2)(MAP2 f t1 t2)) Definition SNOC autoloading from theory `list` ... SNOC = |- (!x. SNOC x[] = [x]) /\ (!x x' l. SNOC x(CONS x' l) = CONS x'(SNOC x l)) MAP2_SNOC = |- !f h1 h2 l1 l2. (LENGTH l1 = LENGTH l2) ==> (MAP2 f(SNOC h1 l1)(SNOC h2 l2) = SNOC(f h1 h2)(MAP2 f l1 l2)) Definition BUTLASTN autoloading from theory `list` ... BUTLASTN = |- (!l. BUTLASTN 0 l = l) /\ (!n x l. BUTLASTN(SUC n)(SNOC x l) = BUTLASTN n l) BUTLASTN_MAP2 = |- !l1 l2. (LENGTH l1 = LENGTH l2) ==> (!n. n <= (LENGTH l1) ==> (!f. BUTLASTN n(MAP2 f l1 l2) = MAP2 f(BUTLASTN n l1)(BUTLASTN n l2))) Theorem SNOC_11 autoloading from theory `list` ... SNOC_11 = |- !x l x' l'. (SNOC x l = SNOC x' l') = (x = x') /\ (l = l') Theorem LENGTH_LASTN autoloading from theory `list` ... LENGTH_LASTN = |- !n l. n <= (LENGTH l) ==> (LENGTH(LASTN n l) = n) Definition LASTN autoloading from theory `list` ... LASTN = |- (!l. LASTN 0 l = []) /\ (!n x l. LASTN(SUC n)(SNOC x l) = SNOC x(LASTN n l)) LASTN_MAP2 = |- !l1 l2. (LENGTH l1 = LENGTH l2) ==> (!n. n <= (LENGTH l1) ==> (!f. LASTN n(MAP2 f l1 l2) = MAP2 f(LASTN n l1)(LASTN n l2))) Theorem word_Ax autoloading from theory `word_base` ... word_Ax = |- !f. ?! fn. !l. fn(WORD l) = f l WNOT_DEF = |- !l. WNOT(WORD l) = WORD(MAP $~ l) Theorem LENGTH_BUTLASTN autoloading from theory `list` ... LENGTH_BUTLASTN = |- !n l. n <= (LENGTH l) ==> (LENGTH(BUTLASTN n l) = (LENGTH l) - n) Theorem LASTN_MAP autoloading from theory `list` ... LASTN_MAP = |- !n l. n <= (LENGTH l) ==> (!f. LASTN n(MAP f l) = MAP f(LASTN n l)) Theorem BUTLASTN_MAP autoloading from theory `list` ... BUTLASTN_MAP = |- !n l. n <= (LENGTH l) ==> (!f. BUTLASTN n(MAP f l) = MAP f(BUTLASTN n l)) Theorem WORD_11 autoloading from theory `word_base` ... WORD_11 = |- !l l'. (WORD l = WORD l') = (l = l') Theorem LENGTH_MAP autoloading from theory `list` ... LENGTH_MAP = |- !l f. LENGTH(MAP f l) = LENGTH l Definition WSEG_DEF autoloading from theory `word_base` ... WSEG_DEF = |- !m k l. WSEG m k(WORD l) = WORD(LASTN m(BUTLASTN k l)) Definition PWORDLEN_DEF autoloading from theory `word_base` ... PWORDLEN_DEF = |- !n l. PWORDLEN n(WORD l) = (n = LENGTH l) BIT_WNOT_SYM_lemma = |- !n. !w :: PWORDLEN n. PWORDLEN n(WNOT w) /\ (!m k. (m + k) <= n ==> (WNOT(WSEG m k w) = WSEG m k(WNOT w))) Definition PBITOP_DEF autoloading from theory `word_bitop` ... PBITOP_DEF = |- !op. PBITOP op = (!n. !w :: PWORDLEN n. PWORDLEN n(op w) /\ (!m k. (m + k) <= n ==> (op(WSEG m k w) = WSEG m k(op w)))) PBITOP_WNOT = |- PBITOP WNOT Definition MAP autoloading from theory `list` ... MAP = |- (!f. MAP f[] = []) /\ (!f h t. MAP f(CONS h t) = CONS(f h)(MAP f t)) WNOT_WNOT = |- !w. WNOT(WNOT w) = w Theorem MAP_APPEND autoloading from theory `list` ... MAP_APPEND = |- !f l1 l2. MAP f(APPEND l1 l2) = APPEND(MAP f l1)(MAP f l2) Definition WCAT_DEF autoloading from theory `word_base` ... WCAT_DEF = |- !l1 l2. WCAT(WORD l1,WORD l2) = WORD(APPEND l1 l2) WCAT_WNOT = |- !n1 n2. !w1 :: PWORDLEN n1. !w2 :: PWORDLEN n2. WCAT(WNOT w1,WNOT w2) = WNOT(WCAT(w1,w2)) Theorem LENGTH_MAP2 autoloading from theory `list` ... LENGTH_MAP2 = |- !l1 l2. (LENGTH l1 = LENGTH l2) ==> (!f. (LENGTH(MAP2 f l1 l2) = LENGTH l1) /\ (LENGTH(MAP2 f l1 l2) = LENGTH l2)) LENGTH_MAP22 = |- !l1 l2 f. (LENGTH l1 = LENGTH l2) ==> (LENGTH(MAP2 f l1 l2) = LENGTH l2) Theorem PBITBOP_EXISTS autoloading from theory `word_bitop` ... PBITBOP_EXISTS = |- !f. ?fn. !l1 l2. fn(WORD l1)(WORD l2) = WORD(MAP2 f l1 l2) WAND_DEF = |- !l1 l2. (WORD l1) WAND (WORD l2) = WORD(MAP2 $/\ l1 l2) PBITBOP_WAND_lemma = |- !n. !w1 w2 :: PWORDLEN n. PWORDLEN n(w1 WAND w2) /\ (!m k. (m + k) <= n ==> ((WSEG m k w1) WAND (WSEG m k w2) = WSEG m k(w1 WAND w2))) Definition PBITBOP_DEF autoloading from theory `word_bitop` ... PBITBOP_DEF = |- !op. PBITBOP op = (!n. !w1 :: PWORDLEN n. !w2 :: PWORDLEN n. PWORDLEN n(op w1 w2) /\ (!m k. (m + k) <= n ==> (op(WSEG m k w1)(WSEG m k w2) = WSEG m k(op w1 w2)))) PBITBOP_WAND = |- PBITBOP $WAND WOR_DEF = |- !l1 l2. (WORD l1) WOR (WORD l2) = WORD(MAP2 $\/ l1 l2) PBITBOP_WOR_lemma = |- !n. !w1 w2 :: PWORDLEN n. PWORDLEN n(w1 WOR w2) /\ (!m k. (m + k) <= n ==> ((WSEG m k w1) WOR (WSEG m k w2) = WSEG m k(w1 WOR w2))) PBITBOP_WOR = |- PBITBOP $WOR WXOR_DEF = |- !l1 l2. (WORD l1) WXOR (WORD l2) = WORD(MAP2(\x y. ~(x = y))l1 l2) PBITBOP_WXOR_lemma = |- !n. !w1 w2 :: PWORDLEN n. PWORDLEN n(w1 WXOR w2) /\ (!m k. (m + k) <= n ==> ((WSEG m k w1) WXOR (WSEG m k w2) = WSEG m k(w1 WXOR w2))) PBITBOP_WXOR = |- PBITBOP $WXOR () : void File mk_bword_bitop loaded () : void #rm -f bword_num.th echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `mk_bword_num`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool autoload_all = - : (string -> void) Loading library arith ... Loading library reduce ... Extending help search path. Loading boolean conversions........ Loading arithmetic conversions.................. Loading general conversions, rule and tactic..... Library reduce loaded. .Updating help search path ....................................................................................................................................................................................................................................................................................... Library arith loaded. () : void Loading library res_quan ... Updating search path Theory res_quan loaded ...............................................................................Updating help search path . Library res_quan loaded. () : void ....() : void File ver_202 loaded () : void .........................................................() : void Theory word_bitop loaded () : void () : void Theory word_num loaded () : void [(); (); ()] : void list ...() : void BV_DEF = |- !b. BV b = (b => SUC 0 | 0) Theorem word_Ax autoloading from theory `word_base` ... word_Ax = |- !f. ?! fn. !l. fn(WORD l) = f l BNVAL_DEF = |- !l. BNVAL(WORD l) = LVAL BV 2 l BV_LESS_2 = |- !x. (BV x) < 2 Definition NVAL_DEF autoloading from theory `word_num` ... NVAL_DEF = |- !f b l. NVAL f b(WORD l) = LVAL f b l BNVAL_NVAL = |- !w. BNVAL w = NVAL BV 2 w Theorem NVAL0 autoloading from theory `word_num` ... NVAL0 = |- !f b. NVAL f b(WORD[]) = 0 BNVAL0 = |- BNVAL(WORD[]) = 0 Theorem SUC_LESS autoloading from theory `prim_rec` ... SUC_LESS = |- !m n. (SUC m) < n ==> m < n Theorem INV_SUC_EQ autoloading from theory `prim_rec` ... INV_SUC_EQ = |- !m n. (SUC m = SUC n) = (m = n) Theorem NOT_SUC autoloading from theory `num` ... NOT_SUC = |- !n. ~(SUC n = 0) Theorem ADD_EQ_0 autoloading from theory `arithmetic` ... ADD_EQ_0 = |- !m n. (m + n = 0) = (m = 0) /\ (n = 0) Theorem LESS_NOT_EQ autoloading from theory `prim_rec` ... LESS_NOT_EQ = |- !m n. m < n ==> ~(m = n) BNVAL_11_lem = |- !m n p. m < p /\ n < p ==> ~(p + m = n) Theorem EQ_MONO_ADD_EQ autoloading from theory `arithmetic` ... EQ_MONO_ADD_EQ = |- !m n p. (m + p = n + p) = (m = n) Theorem CONS_11 autoloading from theory `list` ... CONS_11 = |- !h t h' t'. (CONS h t = CONS h' t') = (h = h') /\ (t = t') Theorem LVAL autoloading from theory `word_num` ... LVAL = |- (!f b. LVAL f b[] = 0) /\ (!l f b x. LVAL f b(CONS x l) = ((f x) * (b EXP (LENGTH l))) + (LVAL f b l)) Theorem WORD_11 autoloading from theory `word_base` ... WORD_11 = |- !l l'. (WORD l = WORD l') = (l = l') Definition WORDLEN_DEF autoloading from theory `word_base` ... WORDLEN_DEF = |- !l. WORDLEN(WORD l) = LENGTH l Theorem LVAL_MAX autoloading from theory `word_num` ... LVAL_MAX = |- !l f b. (!x. (f x) < b) ==> (LVAL f b l) < (b EXP (LENGTH l)) BNVAL_11 = |- !w1 w2. (WORDLEN w1 = WORDLEN w2) ==> (BNVAL w1 = BNVAL w2) ==> (w1 = w2) BNVAL_ONTO = |- !w. ?n. BNVAL w = n BNVAL_MAX = |- !n. !w :: PWORDLEN n. (BNVAL w) < (2 EXP n) Theorem LVAL_SNOC autoloading from theory `word_num` ... LVAL_SNOC = |- !l h f b. LVAL f b(SNOC h l) = ((LVAL f b l) * b) + (f h) Theorem SNOC_APPEND autoloading from theory `list` ... SNOC_APPEND = |- !x l. SNOC x l = APPEND l[x] Definition WCAT_DEF autoloading from theory `word_base` ... WCAT_DEF = |- !l1 l2. WCAT(WORD l1,WORD l2) = WORD(APPEND l1 l2) BNVAL_WCAT1 = |- !n. !w :: PWORDLEN n. !x. BNVAL(WCAT(w,WORD[x])) = ((BNVAL w) * 2) + (BV x) Theorem NVAL_WCAT2 autoloading from theory `word_num` ... NVAL_WCAT2 = |- !n. !w :: PWORDLEN n. !f b x. NVAL f b(WCAT(WORD[x],w)) = ((f x) * (b EXP n)) + (NVAL f b w) BNVAL_WCAT2 = |- !n. !w :: PWORDLEN n. !x. BNVAL(WCAT(WORD[x],w)) = ((BV x) * (2 EXP n)) + (BNVAL w) Theorem NVAL_WCAT autoloading from theory `word_num` ... NVAL_WCAT = |- !n m. !w1 :: PWORDLEN n. !w2 :: PWORDLEN m. !f b. NVAL f b(WCAT(w1,w2)) = ((NVAL f b w1) * (b EXP m)) + (NVAL f b w2) BNVAL_WCAT = |- !n m. !w1 :: PWORDLEN n. !w2 :: PWORDLEN m. BNVAL(WCAT(w1,w2)) = ((BNVAL w1) * (2 EXP m)) + (BNVAL w2) VB_DEF = |- !n. VB n = ~(n MOD 2 = 0) NBWORD_DEF = |- !n m. NBWORD n m = WORD(NLIST n VB 2 m) Definition NLIST_DEF autoloading from theory `word_num` ... NLIST_DEF = |- (!frep b m. NLIST 0 frep b m = []) /\ (!n frep b m. NLIST(SUC n)frep b m = SNOC(frep(m MOD b))(NLIST n frep b(m DIV b))) NBWORD0 = |- !m. NBWORD 0 m = WORD[] Theorem LENGTH_SNOC autoloading from theory `list` ... LENGTH_SNOC = |- !x l. LENGTH(SNOC x l) = SUC(LENGTH l) Definition LENGTH autoloading from theory `list` ... LENGTH = |- (LENGTH[] = 0) /\ (!h t. LENGTH(CONS h t) = SUC(LENGTH t)) NLIST_LENGTH = |- !n f b m. LENGTH(NLIST n f b m) = n WORDLEN_NBWORD = |- !n m. WORDLEN(NBWORD n m) = n Theorem PWORDLEN autoloading from theory `word_base` ... PWORDLEN = |- !n w. PWORDLEN n w = (WORDLEN w = n) PWORDLEN_NBWORD = |- !n m. PWORDLEN n(NBWORD n m) Theorem WORD_SNOC_WCAT autoloading from theory `word_base` ... WORD_SNOC_WCAT = |- !x l. WORD(SNOC x l) = WCAT(WORD l,WORD[x]) NBWORD_SUC = |- !n m. NBWORD(SUC n)m = WCAT(NBWORD n(m DIV 2),WORD[VB(m MOD 2)]) Theorem SUC_ID autoloading from theory `prim_rec` ... SUC_ID = |- !n. ~(SUC n = n) Theorem LESS_MOD autoloading from theory `arithmetic` ... LESS_MOD = |- !n k. k < n ==> (k MOD n = k) VB_BV = |- !x. VB(BV x) = x Theorem ZERO_MOD autoloading from theory `arithmetic` ... ZERO_MOD = |- !n. 0 < n ==> (0 MOD n = 0) Theorem ZERO_DIV autoloading from theory `arithmetic` ... ZERO_DIV = |- !n. 0 < n ==> (0 DIV n = 0) BV_VB = |- !x. x < 2 ==> (BV(VB x) = x) Theorem MOD_EQ_0 autoloading from theory `arithmetic` ... MOD_EQ_0 = |- !n. 0 < n ==> (!k. (k * n) MOD n = 0) Theorem MOD_MOD autoloading from theory `arithmetic` ... MOD_MOD = |- !n. 0 < n ==> (!k. (k MOD n) MOD n = k MOD n) Theorem SNOC_11 autoloading from theory `list` ... SNOC_11 = |- !x l x' l'. (SNOC x l = SNOC x' l') = (x = x') /\ (l = l') NBWORD_BNVAL = |- !n. !w :: PWORDLEN n. NBWORD n(BNVAL w) = w Theorem LESS_MULT_MONO autoloading from theory `arithmetic` ... LESS_MULT_MONO = |- !m i n. ((SUC n) * m) < ((SUC n) * i) = m < i Theorem ZERO_LESS_EXP autoloading from theory `arithmetic` ... ZERO_LESS_EXP = |- !m n. 0 < ((SUC n) EXP m) Definition EXP autoloading from theory `arithmetic` ... EXP = |- (!m. m EXP 0 = 1) /\ (!m n. m EXP (SUC n) = m * (m EXP n)) Definition DIVISION autoloading from theory `arithmetic` ... DIVISION = |- !n. 0 < n ==> (!k. (k = ((k DIV n) * n) + (k MOD n)) /\ (k MOD n) < n) BNVAL_NBWORD = |- !n m. m < (2 EXP n) ==> (BNVAL(NBWORD n m) = m) ZERO_WORD_VAL = |- !n. !w :: PWORDLEN n. (w = NBWORD n 0) = (BNVAL w = 0) Theorem WCAT_ASSOC autoloading from theory `word_base` ... WCAT_ASSOC = |- !w1 w2 w3. WCAT(w1,WCAT(w2,w3)) = WCAT(WCAT(w1,w2),w3) Theorem ADD_SUC autoloading from theory `arithmetic` ... ADD_SUC = |- !m n. SUC(m + n) = m + (SUC n) Theorem WCAT0 autoloading from theory `word_base` ... WCAT0 = |- !w. (WCAT(WORD[],w) = w) /\ (WCAT(w,WORD[]) = w) WCAT_NBWORD_0 = |- !n1 n2. WCAT(NBWORD n1 0,NBWORD n2 0) = NBWORD(n1 + n2)0 WSPLIT_NBWORD_0 = |- !m n. m <= n ==> (WSPLIT m(NBWORD n 0) = NBWORD(n - m)0,NBWORD m 0) Theorem LESS_EQ_REFL autoloading from theory `arithmetic` ... LESS_EQ_REFL = |- !m. m <= m Theorem WSEG_PWORDLEN autoloading from theory `word_base` ... WSEG_PWORDLEN = |- !n. !w :: PWORDLEN n. !m k. (m + k) <= n ==> PWORDLEN m(WSEG m k w) Theorem WCAT_11 autoloading from theory `word_base` ... WCAT_11 = |- !m n. !wm1 wm2 :: PWORDLEN m. !wn1 wn2 :: PWORDLEN n. (WCAT(wm1,wn1) = WCAT(wm2,wn2)) = (wm1 = wm2) /\ (wn1 = wn2) Theorem WSPLIT_WSEG autoloading from theory `word_base` ... WSPLIT_WSEG = |- !n. !w :: PWORDLEN n. !k. k <= n ==> (WSPLIT k w = WSEG(n - k)k w,WSEG k 0 w) EQ_NBWORD0_SPLIT = |- !n. !w :: PWORDLEN n. !m. m <= n ==> ((w = NBWORD n 0) = (WSEG(n - m)m w = NBWORD(n - m)0) /\ (WSEG m 0 w = NBWORD m 0)) Theorem MULT_0 autoloading from theory `arithmetic` ... MULT_0 = |- !m. m * 0 = 0 LESS2_DIV2 = |- !r y. 0 < y /\ r < (2 * y) ==> (r DIV 2) < y less2 = |- 0 < 2 MOD_DIV_lemma = |- !x y. 0 < y ==> ((x MOD (2 * y)) DIV 2 = (x DIV 2) MOD y) Definition PWORDLEN_DEF autoloading from theory `word_base` ... PWORDLEN_DEF = |- !n l. PWORDLEN n(WORD l) = (n = LENGTH l) NBWORD_MOD = |- !n m. NBWORD n(m MOD (2 EXP n)) = NBWORD n m Theorem WSEG_WORD_LENGTH autoloading from theory `word_base` ... WSEG_WORD_LENGTH = |- !n. !w :: PWORDLEN n. WSEG n 0 w = w Theorem SUC_SUB1 autoloading from theory `arithmetic` ... SUC_SUB1 = |- !m. (SUC m) - 1 = m Theorem ZERO_LESS_EQ autoloading from theory `arithmetic` ... ZERO_LESS_EQ = |- !n. 0 <= n Theorem LESS_EQ_SUC_REFL autoloading from theory `arithmetic` ... LESS_EQ_SUC_REFL = |- !m. m <= (SUC m) Theorem PWORDLEN1 autoloading from theory `word_base` ... PWORDLEN1 = |- !x. PWORDLEN 1(WORD[x]) Theorem WSEG_WCAT_WSEG autoloading from theory `word_base` ... WSEG_WCAT_WSEG = |- !n1 n2. !w1 :: PWORDLEN n1. !w2 :: PWORDLEN n2. !m k. (m + k) <= (n1 + n2) /\ k < n2 /\ n2 <= (m + k) ==> (WSEG m k(WCAT(w1,w2)) = WCAT(WSEG((m + k) - n2)0 w1,WSEG(n2 - k)k w2)) Theorem WSEG0 autoloading from theory `word_base` ... WSEG0 = |- !k w. WSEG 0 k w = WORD[] WSEG_NBWORD_SUC = |- !n m. WSEG n 0(NBWORD(SUC n)m) = NBWORD n m Theorem NVAL_MAX autoloading from theory `word_num` ... NVAL_MAX = |- !f b. (!x. (f x) < b) ==> (!n. !w :: PWORDLEN n. (NVAL f b w) < (b EXP n)) Theorem WORDLEN_SUC_WCAT_BIT_WSEG autoloading from theory `word_base` ... WORDLEN_SUC_WCAT_BIT_WSEG = |- !n. !w :: PWORDLEN(SUC n). w = WCAT(WORD[BIT n w],WSEG n 0 w) NBWORD_SUC_WSEG = |- !n. !w :: PWORDLEN(SUC n). NBWORD n(BNVAL w) = WSEG n 0 w Theorem TIMES2 autoloading from theory `arithmetic` ... TIMES2 = |- !n. 2 * n = n + n Definition SHL_DEF autoloading from theory `word_bitop` ... SHL_DEF = |- !f w b. SHL f w b = BIT(PRE(WORDLEN w))w, WCAT(WSEG(PRE(WORDLEN w))0 w,(f => WSEG 1 0 w | WORD[b])) DOUBLE_EQ_SHL = |- !n. 0 < n ==> (!w :: PWORDLEN n. !b. NBWORD n((BNVAL w) + ((BNVAL w) + (BV b))) = SND(SHL F w b)) Theorem LESS_ADD_SUC autoloading from theory `arithmetic` ... LESS_ADD_SUC = |- !m n. m < (m + (SUC n)) Theorem BIT_WCAT_FST autoloading from theory `word_base` ... BIT_WCAT_FST = |- !n1 n2. !w1 :: PWORDLEN n1. !w2 :: PWORDLEN n2. !k. n2 <= k /\ k < (n1 + n2) ==> (BIT k(WCAT(w1,w2)) = BIT(k - n2)w1) Definition SNOC autoloading from theory `list` ... SNOC = |- (!x. SNOC x[] = [x]) /\ (!x x' l. SNOC x(CONS x' l) = CONS x'(SNOC x l)) Theorem BIT0 autoloading from theory `word_base` ... BIT0 = |- !b. BIT 0(WORD[b]) = b MSB_NBWORD = |- !n m. BIT n(NBWORD(SUC n)m) = VB((m DIV (2 EXP n)) MOD 2) ZERO_LESS_TWO_EXP = |- !m. 0 < (2 EXP m) NBWORD_SPLIT = |- !n1 n2 m. NBWORD(n1 + n2)m = WCAT(NBWORD n1(m DIV (2 EXP n2)),NBWORD n2 m) Theorem WSEG_WCAT2 autoloading from theory `word_base` ... WSEG_WCAT2 = |- !n1 n2. !w1 :: PWORDLEN n1. !w2 :: PWORDLEN n2. WSEG n2 0(WCAT(w1,w2)) = w2 Theorem SUB_EQUAL_0 autoloading from theory `arithmetic` ... SUB_EQUAL_0 = |- !c. c - c = 0 Theorem WSEG_WCAT_WSEG1 autoloading from theory `word_base` ... WSEG_WCAT_WSEG1 = |- !n1 n2. !w1 :: PWORDLEN n1. !w2 :: PWORDLEN n2. !m k. m <= n1 /\ n2 <= k ==> (WSEG m k(WCAT(w1,w2)) = WSEG m(k - n2)w1) WSEG_NBWORD = |- !m k n. (m + k) <= n ==> (!l. WSEG m k(NBWORD n l) = NBWORD m(l DIV (2 EXP k))) NBWORD_SUC_FST = |- !n m. NBWORD(SUC n)m = WCAT(WORD[VB((m DIV (2 EXP n)) MOD 2)],NBWORD n m) Theorem BIT_WSEG autoloading from theory `word_base` ... BIT_WSEG = |- !n. !w :: PWORDLEN n. !m k j. (m + k) <= n ==> j < m ==> (BIT j(WSEG m k w) = BIT(j + k)w) BIT_NBWORD0 = |- !k n. k < n ==> (BIT k(NBWORD n 0) = F) add_lem = |- !m1 m2 n1 n2 p. ((m1 * p) + n1) + ((m2 * p) + n2) = ((m1 * p) + (m2 * p)) + (n1 + n2) ADD_BNVAL_LEFT = |- !n. !w1 w2 :: PWORDLEN(SUC n). (BNVAL w1) + (BNVAL w2) = (((BV(BIT n w1)) + (BV(BIT n w2))) * (2 EXP n)) + ((BNVAL(WSEG n 0 w1)) + (BNVAL(WSEG n 0 w2))) Theorem WORDLEN_SUC_WCAT_BIT_WSEG_RIGHT autoloading from theory `word_base` ... WORDLEN_SUC_WCAT_BIT_WSEG_RIGHT = |- !n. !w :: PWORDLEN(SUC n). w = WCAT(WSEG n 1 w,WORD[BIT 0 w]) ADD_BNVAL_RIGHT = |- !n. !w1 w2 :: PWORDLEN(SUC n). (BNVAL w1) + (BNVAL w2) = (((BNVAL(WSEG n 1 w1)) + (BNVAL(WSEG n 1 w2))) * 2) + ((BV(BIT 0 w1)) + (BV(BIT 0 w2))) Theorem WCAT_WSEG_WSEG autoloading from theory `word_base` ... WCAT_WSEG_WSEG = |- !n. !w :: PWORDLEN n. !m1 m2 k. (m1 + (m2 + k)) <= n ==> (WCAT(WSEG m2(m1 + k)w,WSEG m1 k w) = WSEG(m1 + m2)k w) ADD_BNVAL_SPLIT = |- !n1 n2. !w1 w2 :: PWORDLEN(n1 + n2). (BNVAL w1) + (BNVAL w2) = (((BNVAL(WSEG n1 n2 w1)) + (BNVAL(WSEG n1 n2 w2))) * (2 EXP n2)) + ((BNVAL(WSEG n2 0 w1)) + (BNVAL(WSEG n2 0 w2))) () : void File mk_bword_num loaded () : void #rm -f bword_arith.th echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `mk_bword_arith`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool autoload_all = - : (string -> void) Loading library arith ... Loading library reduce ... Extending help search path. Loading boolean conversions........ Loading arithmetic conversions.................. Loading general conversions, rule and tactic..... Library reduce loaded. .Updating help search path ....................................................................................................................................................................................................................................................................................... Library arith loaded. () : void Loading library res_quan ... Updating search path Theory res_quan loaded ...............................................................................Updating help search path . Library res_quan loaded. () : void ....() : void File ver_202 loaded () : void .........................................................() : void Theory bword_num loaded () : void [(); (); ()] : void list () : void MULT_LEFT_1 = |- !m. 1 * m = m ADD_DIV_SUC_DIV = |- !n. 0 < n ==> (!r. (n + r) DIV n = SUC(r DIV n)) Theorem LESS_EQ autoloading from theory `arithmetic` ... LESS_EQ = |- !m n. m < n = (SUC m) <= n Theorem ZERO_LESS_EQ autoloading from theory `arithmetic` ... ZERO_LESS_EQ = |- !n. 0 <= n LESS_IMP_LESS_EQ_PRE = |- !m n. 0 < n ==> (m < n = m <= (PRE n)) LESS_MONO_DIV = |- !n. 0 < n ==> (!p q. p < q ==> (p DIV n) <= (q DIV n)) Theorem LESS_EQ_REFL autoloading from theory `arithmetic` ... LESS_EQ_REFL = |- !m. m <= m Definition LESS_OR_EQ autoloading from theory `arithmetic` ... LESS_OR_EQ = |- !m n. m <= n = m < n \/ (m = n) LESS_EQ_MONO_DIV = |- !n. 0 < n ==> (!p q. p <= q ==> (p DIV n) <= (q DIV n)) Theorem PRE_SUC_EQ autoloading from theory `arithmetic` ... PRE_SUC_EQ = |- !m n. 0 < n ==> ((m = PRE n) = (SUC m = n)) SUC_PRE = |- !n. 0 < n ==> (SUC(PRE n) = n) Theorem TIMES2 autoloading from theory `arithmetic` ... TIMES2 = |- !n. 2 * n = n + n Definition EXP autoloading from theory `arithmetic` ... EXP = |- (!m. m EXP 0 = 1) /\ (!m n. m EXP (SUC n) = m * (m EXP n)) ONE_LESS_TWO_EXP_SUC = |- !n. 1 < (2 EXP (SUC n)) ADD_MONO_EQ = |- !m n p. (p + m = p + n) = (m = n) ACARRY_DEF = |- (!w1 w2 cin. ACARRY 0 w1 w2 cin = cin) /\ (!n w1 w2 cin. ACARRY(SUC n)w1 w2 cin = VB (((BV(BIT n w1)) + ((BV(BIT n w2)) + (BV(ACARRY n w1 w2 cin)))) DIV 2)) ICARRY_DEF = |- (!w1 w2 cin. ICARRY 0 w1 w2 cin = cin) /\ (!n w1 w2 cin. ICARRY(SUC n)w1 w2 cin = BIT n w1 /\ BIT n w2 \/ (BIT n w1 \/ BIT n w2) /\ ICARRY n w1 w2 cin) Theorem ZERO_MOD autoloading from theory `arithmetic` ... ZERO_MOD = |- !n. 0 < n ==> (0 MOD n = 0) Theorem ZERO_DIV autoloading from theory `arithmetic` ... ZERO_DIV = |- !n. 0 < n ==> (0 DIV n = 0) div_mod_lemmas = [|- !x. (SUC(SUC x)) DIV 2 = SUC(x DIV 2); |- (SUC 0) DIV 2 = 0; |- 0 DIV 2 = 0; |- (SUC 0) MOD 2 = SUC 0; |- 0 MOD 2 = 0] : thm list Theorem SUC_NOT autoloading from theory `arithmetic` ... SUC_NOT = |- !n. ~(0 = SUC n) Theorem NOT_SUC autoloading from theory `num` ... NOT_SUC = |- !n. ~(SUC n = 0) Definition VB_DEF autoloading from theory `bword_num` ... VB_DEF = |- !n. VB n = ~(n MOD 2 = 0) Definition BV_DEF autoloading from theory `bword_num` ... BV_DEF = |- !b. BV b = (b => SUC 0 | 0) Theorem LESS_IMP_LESS_OR_EQ autoloading from theory `arithmetic` ... LESS_IMP_LESS_OR_EQ = |- !m n. m < n ==> m <= n ACARRY_EQ_ICARRY = |- !n. !w1 w2 :: PWORDLEN n. !cin k. k <= n ==> (ACARRY k w1 w2 cin = ICARRY k w1 w2 cin) Less2 = |- 0 < 2 Less2_SUC0 = |- (SUC 0) < 2 Theorem LESS_EQ_SUC_REFL autoloading from theory `arithmetic` ... LESS_EQ_SUC_REFL = |- !m. m <= (SUC m) BV_LESS_EQ_1 = |- !x. (BV x) <= 1 Theorem LESS_EQ_LESS_EQ_MONO autoloading from theory `arithmetic` ... LESS_EQ_LESS_EQ_MONO = |- !m n p q. m <= p /\ n <= q ==> (m + n) <= (p + q) ADD_BV_LESS_EQ_2 = |- !x1 x2. ((BV x1) + (BV x2)) <= 2 LESS_EQ1_LESS2 = |- n < 2 = n <= 1 Theorem BNVAL_MAX autoloading from theory `bword_num` ... BNVAL_MAX = |- !n. !w :: PWORDLEN n. (BNVAL w) < (2 EXP n) Theorem ZERO_LESS_EXP autoloading from theory `arithmetic` ... ZERO_LESS_EXP = |- !m n. 0 < ((SUC n) EXP m) Theorem PRE_SUB1 autoloading from theory `arithmetic` ... PRE_SUB1 = |- !m. PRE m = m - 1 BNVAL_LESS_EQ = |- !n. !w :: PWORDLEN n. (BNVAL w) <= ((2 EXP n) - 1) Theorem LESS_MONO_MULT autoloading from theory `arithmetic` ... LESS_MONO_MULT = |- !m n p. m <= n ==> (m * p) <= (n * p) Theorem LEFT_SUB_DISTRIB autoloading from theory `arithmetic` ... LEFT_SUB_DISTRIB = |- !m n p. p * (m - n) = (p * m) - (p * n) ADD_BNVAL_LESS_EQ = |- !n. !w1 w2 :: PWORDLEN n. !cin. ((BNVAL w1) + ((BNVAL w2) + (BV cin))) <= ((2 EXP (SUC n)) - 1) ZERO_LESS_TWO_EXP = |- !m. 0 < (2 EXP m) EXP_SUB1_LESS = |- ((2 EXP n) - 1) < (2 EXP n) ADD_BNVAL_LESS_EQ1 = |- !n cin. !w1 w2 :: PWORDLEN n. (((BNVAL w1) + ((BNVAL w2) + (BV cin))) DIV (2 EXP n)) <= (SUC 0) ADD_BV_BNVAL_DIV_LESS_EQ1 = |- !n x1 x2 cin. !w1 w2 :: PWORDLEN n. ((((BV x1) + (BV x2)) + (((BNVAL w1) + ((BNVAL w2) + (BV cin))) DIV (2 EXP n))) DIV 2) <= 1 Theorem SUC_LESS autoloading from theory `prim_rec` ... SUC_LESS = |- !m n. (SUC m) < n ==> m < n ADD_BV_BNVAL_LESS_EQ = |- !n x1 x2 cin. !w1 w2 :: PWORDLEN n. (((BV x1) + (BV x2)) + ((BNVAL w1) + ((BNVAL w2) + (BV cin)))) <= (SUC(2 EXP (SUC n))) ADD_BV_BNVAL_LESS_EQ1 = |- !n x1 x2 cin. !w1 w2 :: PWORDLEN n. ((((BV x1) + (BV x2)) + ((BNVAL w1) + ((BNVAL w2) + (BV cin)))) DIV (2 EXP (n + 1))) <= 1 Theorem WSEG_PWORDLEN autoloading from theory `word_base` ... WSEG_PWORDLEN = |- !n. !w :: PWORDLEN n. !m k. (m + k) <= n ==> PWORDLEN m(WSEG m k w) seg_pw = |- !w. PWORDLEN n w ==> (SUC k) <= n ==> PWORDLEN(SUC k)(WSEG(SUC k)0 w) Theorem BIT_WSEG autoloading from theory `word_base` ... BIT_WSEG = |- !n. !w :: PWORDLEN n. !m k j. (m + k) <= n ==> j < m ==> (BIT j(WSEG m k w) = BIT(j + k)w) bit_thm = |- !w. PWORDLEN n w ==> (SUC k) <= n ==> (BIT k(WSEG(SUC k)0 w) = BIT k w) Theorem WSEG_WSEG autoloading from theory `word_base` ... WSEG_WSEG = |- !n. !w :: PWORDLEN n. !m1 k1 m2 k2. (m1 + k1) <= n /\ (m2 + k2) <= m1 ==> (WSEG m2 k2(WSEG m1 k1 w) = WSEG m2(k1 + k2)w) seg_thm = |- !w. PWORDLEN n w ==> (SUC k) <= n ==> (WSEG k 0(WSEG(SUC k)0 w) = WSEG k 0 w) seg_pw_thm' = |- !w. PWORDLEN n w ==> k <= n ==> PWORDLEN k(WSEG k 0 w) spec_thm = - : (thm -> thm list) Theorem ADD_BNVAL_LEFT autoloading from theory `bword_num` ... ADD_BNVAL_LEFT = |- !n. !w1 w2 :: PWORDLEN(SUC n). (BNVAL w1) + (BNVAL w2) = (((BV(BIT n w1)) + (BV(BIT n w2))) * (2 EXP n)) + ((BNVAL(WSEG n 0 w1)) + (BNVAL(WSEG n 0 w2))) add_left = ... |- (BNVAL(WSEG(SUC k)0 w1)) + (BNVAL(WSEG(SUC k)0 w2)) = (((BV(BIT k w1)) + (BV(BIT k w2))) * (2 EXP k)) + ((BNVAL(WSEG k 0 w1)) + (BNVAL(WSEG k 0 w2))) less1_lem = ... |- ((((BV(BIT k w1)) + (BV(BIT k w2))) + (((BNVAL(WSEG k 0 w1)) + ((BNVAL(WSEG k 0 w2)) + (BV cin))) DIV (2 EXP k))) DIV 2) <= 1 Theorem BV_VB autoloading from theory `bword_num` ... BV_VB = |- !x. x < 2 ==> (BV(VB x) = x) Theorem BNVAL0 autoloading from theory `bword_num` ... BNVAL0 = |- BNVAL(WORD[]) = 0 Theorem WSEG0 autoloading from theory `word_base` ... WSEG0 = |- !k w. WSEG 0 k w = WORD[] ACARRY_EQ_ADD_DIV = |- !n. !w1 w2 :: PWORDLEN n. !k. k < n ==> (BV(ACARRY k w1 w2 cin) = ((BNVAL(WSEG k 0 w1)) + ((BNVAL(WSEG k 0 w2)) + (BV cin))) DIV (2 EXP k)) Theorem NBWORD_MOD autoloading from theory `bword_num` ... NBWORD_MOD = |- !n m. NBWORD n(m MOD (2 EXP n)) = NBWORD n m Theorem LESS_ADD_NONZERO autoloading from theory `arithmetic` ... LESS_ADD_NONZERO = |- !m n. ~(n = 0) ==> m < (m + n) Theorem NBWORD_SPLIT autoloading from theory `bword_num` ... NBWORD_SPLIT = |- !n1 n2 m. NBWORD(n1 + n2)m = WCAT(NBWORD n1(m DIV (2 EXP n2)),NBWORD n2 m) Theorem WSEG_WORD_LENGTH autoloading from theory `word_base` ... WSEG_WORD_LENGTH = |- !n. !w :: PWORDLEN n. WSEG n 0 w = w Theorem WCAT0 autoloading from theory `word_base` ... WCAT0 = |- !w. (WCAT(WORD[],w) = w) /\ (WCAT(w,WORD[]) = w) Theorem NBWORD0 autoloading from theory `bword_num` ... NBWORD0 = |- !m. NBWORD 0 m = WORD[] Theorem PWORDLEN_NBWORD autoloading from theory `bword_num` ... PWORDLEN_NBWORD = |- !n m. PWORDLEN n(NBWORD n m) Theorem WCAT_11 autoloading from theory `word_base` ... WCAT_11 = |- !m n. !wm1 wm2 :: PWORDLEN m. !wn1 wn2 :: PWORDLEN n. (WCAT(wm1,wn1) = WCAT(wm2,wn2)) = (wm1 = wm2) /\ (wn1 = wn2) Theorem ADD_BNVAL_SPLIT autoloading from theory `bword_num` ... ADD_BNVAL_SPLIT = |- !n1 n2. !w1 w2 :: PWORDLEN(n1 + n2). (BNVAL w1) + (BNVAL w2) = (((BNVAL(WSEG n1 n2 w1)) + (BNVAL(WSEG n1 n2 w2))) * (2 EXP n2)) + ((BNVAL(WSEG n2 0 w1)) + (BNVAL(WSEG n2 0 w2))) ADD_WORD_SPLIT = |- !n1 n2. !w1 w2 :: PWORDLEN(n1 + n2). !cin. NBWORD(n1 + n2)((BNVAL w1) + ((BNVAL w2) + (BV cin))) = WCAT (NBWORD n1 ((BNVAL(WSEG n1 n2 w1)) + ((BNVAL(WSEG n1 n2 w2)) + (BV(ACARRY n2 w1 w2 cin)))), NBWORD n2 ((BNVAL(WSEG n2 0 w1)) + ((BNVAL(WSEG n2 0 w2)) + (BV cin)))) Theorem WSEG_WCAT2 autoloading from theory `word_base` ... WSEG_WCAT2 = |- !n1 n2. !w1 :: PWORDLEN n1. !w2 :: PWORDLEN n2. WSEG n2 0(WCAT(w1,w2)) = w2 Theorem WSEG_WCAT_WSEG1 autoloading from theory `word_base` ... WSEG_WCAT_WSEG1 = |- !n1 n2. !w1 :: PWORDLEN n1. !w2 :: PWORDLEN n2. !m k. m <= n1 /\ n2 <= k ==> (WSEG m k(WCAT(w1,w2)) = WSEG m(k - n2)w1) Theorem SUB_EQUAL_0 autoloading from theory `arithmetic` ... SUB_EQUAL_0 = |- !c. c - c = 0 WSEG_NBWORD_ADD = |- !n. !w1 w2 :: PWORDLEN n. !m k cin. (m + k) <= n ==> (WSEG m k(NBWORD n((BNVAL w1) + ((BNVAL w2) + (BV cin)))) = NBWORD m ((BNVAL(WSEG m k w1)) + ((BNVAL(WSEG m k w2)) + (BV(ACARRY k w1 w2 cin))))) ADD_NBWORD_EQ0_SPLIT = |- !n1 n2. !w1 w2 :: PWORDLEN(n1 + n2). !cin. (NBWORD(n1 + n2)((BNVAL w1) + ((BNVAL w2) + (BV cin))) = NBWORD(n1 + n2)0) = (NBWORD n1 ((BNVAL(WSEG n1 n2 w1)) + ((BNVAL(WSEG n1 n2 w2)) + (BV(ACARRY n2 w1 w2 cin)))) = NBWORD n1 0) /\ (NBWORD n2 ((BNVAL(WSEG n2 0 w1)) + ((BNVAL(WSEG n2 0 w2)) + (BV cin))) = NBWORD n2 0) Theorem MOD_MOD autoloading from theory `arithmetic` ... MOD_MOD = |- !n. 0 < n ==> (!k. (k MOD n) MOD n = k MOD n) VB_MOD_2 = |- !n. VB(n MOD 2) = VB n Theorem NBWORD_SUC_FST autoloading from theory `bword_num` ... NBWORD_SUC_FST = |- !n m. NBWORD(SUC n)m = WCAT(WORD[VB((m DIV (2 EXP n)) MOD 2)],NBWORD n m) Theorem VB_BV autoloading from theory `bword_num` ... VB_BV = |- !x. VB(BV x) = x Theorem BV_LESS_2 autoloading from theory `bword_num` ... BV_LESS_2 = |- !x. (BV x) < 2 Theorem LESS_MOD autoloading from theory `arithmetic` ... LESS_MOD = |- !n k. k < n ==> (k MOD n = k) Theorem NVAL0 autoloading from theory `word_num` ... NVAL0 = |- !f b. NVAL f b(WORD[]) = 0 Theorem NBWORD_SUC autoloading from theory `bword_num` ... NBWORD_SUC = |- !n m. NBWORD(SUC n)m = WCAT(NBWORD n(m DIV 2),WORD[VB(m MOD 2)]) Theorem BNVAL_NVAL autoloading from theory `bword_num` ... BNVAL_NVAL = |- !w. BNVAL w = NVAL BV 2 w Theorem PWORDLEN0 autoloading from theory `word_base` ... PWORDLEN0 = |- !w. PWORDLEN 0 w ==> (w = WORD[]) Theorem BIT_WCAT_FST autoloading from theory `word_base` ... BIT_WCAT_FST = |- !n1 n2. !w1 :: PWORDLEN n1. !w2 :: PWORDLEN n2. !k. n2 <= k /\ k < (n1 + n2) ==> (BIT k(WCAT(w1,w2)) = BIT(k - n2)w1) Theorem BIT0 autoloading from theory `word_base` ... BIT0 = |- !b. BIT 0(WORD[b]) = b Theorem LESS_ADD_SUC autoloading from theory `arithmetic` ... LESS_ADD_SUC = |- !m n. m < (m + (SUC n)) Theorem PWORDLEN1 autoloading from theory `word_base` ... PWORDLEN1 = |- !x. PWORDLEN 1(WORD[x]) ACARRY_MSB = |- !n. !w1 w2 :: PWORDLEN n. !cin. ACARRY n w1 w2 cin = BIT n(NBWORD(SUC n)((BNVAL w1) + ((BNVAL w2) + (BV cin)))) Theorem LESS_SUC autoloading from theory `prim_rec` ... LESS_SUC = |- !m n. m < n ==> m < (SUC n) ACARRY_WSEG = |- !n. !w1 w2 :: PWORDLEN n. !cin k m. k < m /\ m <= n ==> (ACARRY k(WSEG m 0 w1)(WSEG m 0 w2)cin = ACARRY k w1 w2 cin) ICARRY_WSEG = |- !n. !w1 w2 :: PWORDLEN n. !cin k m. k < m /\ m <= n ==> (ICARRY k(WSEG m 0 w1)(WSEG m 0 w2)cin = ICARRY k w1 w2 cin) ACARRY_ACARRY_WSEG = |- !n. !w1 w2 :: PWORDLEN n. !cin m k1 k2. k1 < m /\ k2 < n /\ (m + k2) <= n ==> (ACARRY k1(WSEG m k2 w1)(WSEG m k2 w2)(ACARRY k2 w1 w2 cin) = ACARRY(k1 + k2)w1 w2 cin) () : void File mk_bword_arith loaded () : void #rm -f word.th echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `mk_word`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool autoload_all = - : (string -> void) Loading library arith ... Loading library reduce ... Extending help search path. Loading boolean conversions........ Loading arithmetic conversions.................. Loading general conversions, rule and tactic..... Library reduce loaded. .Updating help search path ....................................................................................................................................................................................................................................................................................... Library arith loaded. () : void Loading library res_quan ... Updating search path Theory res_quan loaded ...............................................................................Updating help search path . Library res_quan loaded. () : void ....() : void File ver_202 loaded () : void () : void Theory bword_bitop loaded Theory bword_num loaded Theory bword_arith loaded [(); (); ()] : void list () : void File mk_word loaded () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'load_library`res_quan`;;'\ 'load_theory `word`;;'\ 'compilet `word_convs`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Loading library res_quan ... Updating search path Theory res_quan loaded ...............................................................................Updating help search path . Library res_quan loaded. () : void #Theory word loaded () : void word_CASES_TAC = - : (term -> tactic) word_INDUCT_TAC = - : tactic RESQ_WORDLEN_TAC = - : tactic BIT_CONV = - : conv WSEG_CONV = - : conv LESS_CONV = - : conv LESS_EQ_CONV = - : conv word_inst_thm = - : ((term # term) -> thm -> thm) WNOT_PWORDLEN = |- !n. !w :: PWORDLEN n. PWORDLEN n(WNOT w) WAND_PWORDLEN = |- !n. !w1 w2 :: PWORDLEN n. PWORDLEN n(w1 WAND w2) WOR_PWORDLEN = |- !n. !w1 w2 :: PWORDLEN n. PWORDLEN n(w1 WOR w2) WXOR_PWORDLEN = |- !n. !w1 w2 :: PWORDLEN n. PWORDLEN n(w1 WXOR w2) pwordlen_bitop_funs = [(`WNOT`, |- !n. !w :: PWORDLEN n. PWORDLEN n(WNOT w)); (`WAND`, |- !n. !w1 w2 :: PWORDLEN n. PWORDLEN n(w1 WAND w2)); (`WOR`, |- !n. !w1 w2 :: PWORDLEN n. PWORDLEN n(w1 WOR w2)); (`WXOR`, |- !n. !w1 w2 :: PWORDLEN n. PWORDLEN n(w1 WXOR w2))] : (string # thm) list pwordlen_funs = [(`WORD`, -); (`WSEG`, -); (`WNOT`, -); (`WAND`, -); (`WOR`, -); (`WXOR`, -); (`WCAT`, -)] : (string # (term list -> term -> term list -> thm)) list check = - : (string -> term -> term) pick_fn = - : (string -> (string # *) list -> term -> *) PWORDLEN_CONV = - : (term list -> conv) PWORDLEN_bitop_CONV = - : conv WSEG_WSEG_CONV = - : (term -> conv) ((-), (-), -) : ((term list -> conv) # conv # (term -> conv)) PWORDLEN_CONV = - : (term list -> conv) PWORDLEN_bitop_CONV = - : conv WSEG_WSEG_CONV = - : (term -> conv) PWORDLEN_TAC = - : (term list -> tactic) Calling Lisp compiler File word_convs compiled () : void #===> library word rebuilt make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/word' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/record_proof' echo 'set_flag(`abort_when_fail`,true);;'\ 'compilet `proof_rec`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool New constructors declared: Hypothesis : justification Assume : (term -> justification) Refl : (term -> justification) Subst : (((int # term) list # term # int) -> justification) BetaConv : (term -> justification) Abs : ((term # int) -> justification) InstType : (((type # type) list # int) -> justification) Disch : ((term # int) -> justification) Mp : ((int # int) -> justification) MkComb : ((int # int) -> justification) MkAbs : (int -> justification) Alpha : ((term # term) -> justification) AddAssum : ((term # int) -> justification) Sym : (int -> justification) Trans : ((int # int) -> justification) ImpTrans : ((int # int) -> justification) ApTerm : ((term # int) -> justification) ApThm : ((int # term) -> justification) EqMp : ((int # int) -> justification) EqImpRuleR : (int -> justification) EqImpRuleL : (int -> justification) Spec : ((term # int) -> justification) EqtIntro : (int -> justification) Gen : ((term # int) -> justification) EtaConv : (term -> justification) Ext : (int -> justification) Exists : (((term # term) # int) -> justification) Choose : (((term # int) # int) -> justification) ImpAntisymRule : ((int # int) -> justification) MkExists : (int -> justification) Subs : ((int list # int) -> justification) SubsOccs : (((int list # int) list # int) -> justification) SubstConv : (((int # term) list # term # term) -> justification) Conj : ((int # int) -> justification) Conjunct1 : (int -> justification) Conjunct2 : (int -> justification) Disj1 : ((int # term) -> justification) Disj2 : ((term # int) -> justification) DisjCases : ((int # int # int) -> justification) NotIntro : (int -> justification) NotElim : (int -> justification) Contr : ((term # int) -> justification) Ccontr : ((term # int) -> justification) Inst : (((term # term) list # int) -> justification) StoreDefinition : ((string # term) -> justification) Definition : ((string # string) -> justification) DefExistsRule : (term -> justification) NewAxiom : ((string # term) -> justification) Axiom : ((string # string) -> justification) Theorem : ((string # string) -> justification) NewConstant : ((string # type) -> justification) NewType : ((int # string) -> justification) NumConv : (term -> justification) New constructors declared: Line : ((int # thm # justification) -> line) MakeProof = - : (step list -> line list) output_strings = - : (string -> string list -> void) write_pair = - : (string -> ((string -> * -> **) # (string -> *** -> ****)) -> (* # ***) -> void) write_list = - : (string -> (string -> * -> **) -> * list -> void) write_type = - : (string -> type -> void) write_term = - : (string -> term -> void) write_thm = - : (string -> thm -> void) write_all_thm = - : (string -> thm -> void) write_int = - : (string -> int -> void) write_just = - : (string -> justification -> void) write_line = - : (string -> line -> void) write_tyconst = - : (string -> (int # string) -> void) write_sig = - : (string -> (string # type) -> void) write_env = - : (string -> void) write_thm_list = - : (string -> thm list -> void) ((-), (-), -) : ((string -> line -> void) # (string -> thm list -> void) # (string -> void)) write_line = - : (string -> line -> void) write_thm_list = - : (string -> thm list -> void) write_env = - : (string -> void) format_version = `(VERSION PRF FORMAT 1.0 EXTENDED) ` : string write_proof_add_to = - : (string -> string -> thm list -> line list -> void) write_proof_to = - : (string -> string -> thm list -> line list -> void) proof_file_name = `` : string proof_file_port = `` : string proof_name = `` : string proof_count = 0 : int current_goals = [] : thm list write_last_proof = - : (string -> thm list -> void) current_proof_file = - : (void -> string) current_proof = - : (void -> string) close_proof_file = - : (void -> void) new_proof_file = - : (string -> void) begin_proof = - : (string -> void) end_proof = - : (* -> void) sanitise = - : (string -> string) TAC_PROOF = - : ((goal # tactic) -> thm) PROVE = - : ((term # tactic) -> thm) prove = - : ((term # tactic) -> thm) prove_thm = - : ((string # term # tactic) -> thm) ((-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), (-), -) : ((string -> string -> thm list -> line list -> void) # (string -> string -> thm list -> line list -> void) # (string -> thm list -> void) # (void -> string) # (void -> string) # (string -> void) # (void -> void) # (string -> void) # (* -> void) # ((goal # tactic) -> thm) # ((term # tactic) -> thm) # ((term # tactic) -> thm) # ((string # term # tactic) -> thm)) write_proof_add_to = - : (string -> string -> thm list -> line list -> void) write_proof_to = - : (string -> string -> thm list -> line list -> void) write_last_proof = - : (string -> thm list -> void) current_proof = - : (void -> string) current_proof_file = - : (void -> string) new_proof_file = - : (string -> void) close_proof_file = - : (void -> void) begin_proof = - : (string -> void) end_proof = - : (* -> void) TAC_PROOF = - : ((goal # tactic) -> thm) PROVE = - : ((term # tactic) -> thm) prove = - : ((term # tactic) -> thm) prove_thm = - : ((string # term # tactic) -> thm) Calling Lisp compiler File proof_rec compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'compilet `dummy_funs`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool new_proof_file = - : (string -> void) close_proof_file = - : (void -> void) begin_proof = - : (string -> void) end_proof = - : (void -> void) current_proof = - : (void -> string) current_proof_file = - : (void -> string) write_proof_add_to = - : (string -> string -> thm list -> * list -> void) write_proof_to = - : (string -> string -> thm list -> * list -> void) write_last_proof = - : (string -> thm list -> void) Calling Lisp compiler File dummy_funs compiled () : void #===> library record_proof rebuilt make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/record_proof' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/parser' echo 'set_flag(`abort_when_fail`,true);;'\ 'compilet `general`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool FIRST_CHARS = [] : string list CHARS = [] : string list DEBUG = false : bool IGNORE = [] : (string # string) list USEFUL = [] : (string # string) list push = - : (* -> * list -> * list) pop = - : (* list -> (* # * list)) write_string = - : (string -> string -> void) read_char = - : (string -> string) close_file = - : (string -> void) open_file = - : (string -> string -> string) e_w_s = - : (string -> string -> string list -> string) e_w_s_ok = - : (string -> string -> string list -> string) determine_lst = - : (* -> * list -> * list -> bool) get_word2 = - : (string -> string list -> string -> string list -> (string # *) list -> (string # **) list -> (string # ***) list -> (string list # string)) get_word1 = - : (string -> string list -> string -> string list -> string list -> (string list # string)) complete_separator = - : (string -> string -> string list -> (string # string list) list -> (string # *) list -> (string # **) list -> (string # string)) get_word = - : (string -> string list -> string -> (string # string list) list -> string -> (string # *) list -> (string # **) list -> (string # string)) useful_stuff = - : (string -> string -> string -> string list -> (string # string)) ignore_stuff = - : (string -> string -> string -> string list -> string) read_input = - : (string -> string list -> string list -> (string # string list) list -> string -> (string # string) list -> (string # string) list -> string list) gnt = - : (string list -> string -> string -> (string # string list)) eat_terminal = - : (string -> string -> string list -> * -> (string # string list)) chop_off = - : (int -> * list -> * list -> (* list # * list)) debug_return = - : (string -> string -> void) do_return_1 = - : (* list -> ** -> string -> ** -> ** list -> ** -> (* # * list # ** # ** list)) do_return = - : (* list -> string -> string -> string -> string list -> string -> (* # * list # string # string list)) debug_enter = - : ((string # string # string) -> void) debug_on = - : (* -> bool) debug_off = - : (* -> bool) Calling Lisp compiler File general compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'compilet `parser`;;' \ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool () : void EXPECTED = [] : string list pg_failwith = - : (string -> string -> string -> *) escaped = - : (string -> string -> string) write_string = - : (string -> string -> void) read_char = - : (string -> string) split_filename = - : (string list -> string list -> bool -> (string # string)) close_file = - : (string -> void) bad_read = - : (string -> *) terminal_read_1 = - : (string -> string list) terminal_read = - : (* -> string) make_Makefile = - : (string -> string -> string -> void) make_makefile = - : (string -> void) open_file = - : (string -> string -> (string # string)) eat_white_space = - : (string -> string -> string) e_w_s = - : (string -> string -> string) e_w_s_ok = - : (string -> string -> string) write_comments = - : (string -> string -> string -> string -> string) get_word1 = - : (string -> string list -> string -> string -> string -> string -> (string list # string)) first_test = - : (string -> string -> bool) get_word = - : (string -> string -> string -> string -> string -> (string # string)) get_inits1 = - : (string -> string list -> string -> (string list # string)) get_inits = - : (string -> string -> string -> string) get_inits1_specials = - : (string -> string list -> string -> (string list # string)) get_inits_specials = - : (string -> string -> string -> string) separator = - : (string -> string) MK_word = - : (string -> string list) MK_start = - : (string -> string list) EOF = - : (string -> string) write_conditional = - : (string -> string list list) write_if = - : (string -> string -> string list list) finish_terminal = - : (string -> string -> * list) epsilon_start = - : (string -> string list list) get_terminal_2 = - : (string -> string -> string -> string list) is_EOF = - : (string -> string) get_terminal_1 = - : (string -> string -> string -> string -> * -> (string list list # string # string # bool)) get_terminal = - : (string -> string -> string -> string -> * -> (string list list # string # string # bool)) system_function_args = - : (string -> bool) prdn_errors_args = - : (string -> string -> void) tmp_var = - : (string -> int -> string) HOL_term = - : (string -> bool) top_or_middle = - : (string -> string list) get_args_prdn = - : (string -> * -> string -> string -> (string # string)) finish_arg = - : (string -> string -> string -> string list) get_argn1 = - : (string -> string -> string -> string -> string -> bool -> string list) get_arg_name = - : (string -> string -> string -> string -> bool -> (string # string)) add_new_calls = - : (* list -> string -> * list -> * list -> (* list # * list)) require_start = - : (string -> string -> string -> (string list # string)) need_to_use_pops = - : (int -> string list) add_EXPECTED = - : (string -> bool -> string list) pop_or_reg = - : (string -> string -> bool -> (string list # string # string # bool)) mk_lets = - : (string -> int -> string -> bool -> (string list # string # int # string # bool)) comma = - : (bool -> string -> string) failed_arg = - : (string -> bool) preprocess_args = - : (string -> string list -> string list -> string list -> string -> string -> int -> string -> string -> bool -> int -> bool -> (string list # string # int # string list # int # string # bool)) get_args_act = - : (string -> string -> string -> string list list -> int -> string -> string -> bool -> (string list list # string list # int # string # string # bool)) write_tabs = - : (int -> string -> void) then_if = - : (int -> string -> int) pop_EXPECTED = - : (* -> string) write_final = - : (string -> string list -> int -> string -> (int # string)) write_final_all = - : (string list list -> string -> int -> string -> void) eat_arrow = - : (string -> string -> string -> int -> string) unwind_parens = - : (int -> string list) finish_arm = - : (* list -> * list -> * -> * list -> * -> * list -> * list) new_letrefs = - : (string -> string -> string -> bool -> string list list) NT_letrefs = - : (string -> string -> string -> string list list) ACTION_letrefs = - : (string -> string -> string -> string list list) MK_failed = - : (bool -> * -> ** -> *** -> string list list) MK_return = - : (string -> bool -> string -> string list) system_function = - : (string -> bool) terminal_errors = - : (string -> string -> string -> void) prdn_errors = - : (string -> string -> void) action_errors = - : (string -> string -> void) final_trap = - : (bool -> * -> string list list) get_rest_of_prdn = - : (string -> string list list -> string list list -> string -> string -> int -> int -> bool -> string -> string -> bool -> string list list) process = - : (string -> string -> string -> string -> string list list) MK_lambda = - : (string -> string list list -> string list list) write_decs = - : (string -> string -> string -> void) make_main_wrapper = - : (string -> void) emit_firsts = - : (string -> string -> string -> void) emit_specials = - : (string -> string -> string -> void) token_failwith = - : (string -> *) make_tokeniser = - : (string -> bool -> bool -> void) decls_fail = - : (string -> *) decls_errors = - : (string -> bool -> bool -> (bool # bool)) make_productions = - : (string -> string -> string -> string -> bool -> bool -> void) get_ty = - : (string list -> bool -> string) parse = - : (* -> void) - : (* -> void) parse = - : (* -> void) Calling Lisp compiler File parser compiled () : void #===> library parser rebuilt make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/parser' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/prettyp' echo 'set_flag(`abort_when_fail`,true);;'\ 'compilet `PP_printer/extents`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool max = - : (int list -> int) min = - : (int list -> int) change_assocl = - : ((* # **) list -> (* # **) list -> (* # **) list) Nat = - : (int -> nat) Int = - : (nat -> int) print_nat = - : (nat -> void) - : (nat -> void) get_margin = - : (void -> int) Calling Lisp compiler File PP_printer/extents compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/extents`;;'\ 'compilet `PP_printer/strings`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ......() : void substr = - : (int -> int -> string -> string) strlen = - : (string -> int) num_of_leading_chars = - : (string list -> string -> int) trim_leading_chars = - : (string list -> string -> string) trim_trailing_chars = - : (string list -> string -> string) trim_enclosing_chars = - : (string list -> string -> string) string_contains = - : (string -> string -> bool) strings_contain = - : (string list -> string -> bool) string_copies = - : (string -> int -> string) Calling Lisp compiler File PP_printer/strings compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/extents`;;'\ 'loadf `PP_printer/strings`;;'\ 'compilet `PP_printer/ptree`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ......() : void .........() : void New constructors declared: Print_node : ((string # print_tree list) -> print_tree) print_tree_name = - : (print_tree -> string) print_tree_children = - : (print_tree -> print_tree list) Calling Lisp compiler File PP_printer/ptree compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/extents`;;'\ 'loadf `PP_printer/strings`;;'\ 'loadf `PP_printer/ptree`;;'\ 'compilet `PP_printer/treematch`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ......() : void .........() : void ...() : void New constructors declared: No_address : address Address : (int list -> address) New constructors declared: Bound_name : ((string # address) -> metavar_binding) Bound_names : ((string # address) list -> metavar_binding) Bound_child : ((print_tree # address) -> metavar_binding) Bound_children : ((print_tree # address) list -> metavar_binding) type print_binding defined type print_test defined New constructors declared: Default : loop_limit Val : (nat -> loop_limit) New constructors declared: Const_name : ((string # child_metavar list) -> print_patt_tree) Var_name : ((string # child_metavar list) -> print_patt_tree) Wild_name : (child_metavar list -> print_patt_tree) Var_child : (string -> print_patt_tree) Wild_child : print_patt_tree Link_child : (((loop_limit # loop_limit) # string list) -> print_patt_tree) Print_label : ((string # print_patt_tree) -> print_patt_tree) Print_link : ((((loop_limit # loop_limit) # string list) # print_patt_tree) -> print_patt_tree) Print_loop : ((print_patt_tree # print_patt_tree) -> print_patt_tree) Var_children : (string -> child_metavar) Wild_children : child_metavar Patt_child : (print_patt_tree -> child_metavar) type print_pattern defined New constructors declared: No_link : print_loop_link Link : ((((loop_limit # loop_limit) # string list) # print_tree # int list) -> print_loop_link) lookup_metavar = - : (print_binding -> string -> metavar_binding) eq_metavar_bind = - : (metavar_binding -> metavar_binding -> bool) no_address_meta = - : (metavar_binding -> metavar_binding) replace = - : ((* # **) list -> (* # **) -> (* # **) list) replacel = - : ((* # **) list -> (* # **) list -> (* # **) list) print_merge = - : (print_binding -> print_binding -> print_binding) print_loop_merge = - : (print_binding -> print_binding -> print_binding) raise_binding = - : (print_binding -> print_binding) raise_bindings = - : (print_binding -> print_binding -> print_binding) correspond_bindings = - : (print_binding -> print_binding -> print_binding) raise_bindings_safe = - : (print_binding -> print_binding -> print_binding) extract_info_from_patt = - : (print_patt_tree -> ((string list # string list) # print_loop_link)) extract_info_from_child = - : (child_metavar -> ((string list # string list) # print_loop_link)) zero_loop_info = - : (print_patt_tree -> (print_binding # loop_limit)) new_addresses = - : (int list -> print_tree list -> (print_tree # int list) list) split_list = - : ((int # int) -> * list -> (* list # * list # * list)) print_tree_match' = - : (print_patt_tree -> (print_tree # int list) -> (print_binding # print_loop_link)) children_match = - : (child_metavar list -> (print_tree # int list) list -> (print_binding # print_loop_link)) print_tree_match = - : (print_patt_tree -> print_tree -> (print_binding # print_loop_link)) add_context = - : (string -> (string # int) list -> (string # int) list) print_pattern_match = - : (print_pattern -> string -> (string # int) list -> print_tree -> print_binding) ((-), -) : ((string -> (string # int) list -> (string # int) list) # (print_pattern -> string -> (string # int) list -> print_tree -> print_binding)) add_context = - : (string -> (string # int) list -> (string # int) list) print_pattern_match = - : (print_pattern -> string -> (string # int) list -> print_tree -> print_binding) Calling Lisp compiler File PP_printer/treematch compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/extents`;;'\ 'loadf `PP_printer/strings`;;'\ 'loadf `PP_printer/ptree`;;'\ 'loadf `PP_printer/treematch`;;'\ 'compilet `PP_printer/boxes`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ......() : void .........() : void ...() : void .............................() : void New constructors declared: N_box : * print_box A_box : (((nat # string) # *) -> * print_box) L_box : (((nat # nat # * print_box # * print_box) # *) -> * print_box) C_box : ((((nat # nat # nat) # nat # (int # nat) # * print_box # * print_box) # *) -> * print_box) print_box_io = - : (* print_box -> int) print_box_width = - : (* print_box -> int) print_box_fo = - : (* print_box -> int) print_box_height = - : (* print_box -> int) print_box_sizes = - : (* print_box -> ((int # int # int) # int)) replace_box_label = - : (* -> * print_box -> * print_box) New constructors declared: Abs : (int -> print_indent) Inc : (int -> print_indent) New constructors declared: UB_H : (((int -> int -> * print_box) # (nat # (int -> int -> * print_box)) list) -> * unbuilt_box) UB_V : (((int -> int -> * print_box) # ((print_indent # nat) # (int -> int -> * print_box)) list) -> * unbuilt_box) UB_HV : (((int -> int -> * print_box) # ((nat # print_indent # nat) # (int -> int -> * print_box)) list) -> * unbuilt_box) UB_HoV : (((int -> int -> * print_box) # ((nat # print_indent # nat) # (int -> int -> * print_box)) list) -> * unbuilt_box) join_boxes = - : (int -> int -> * print_box -> * print_box -> * -> * print_box) join_H_boxes = - : (nat -> * print_box -> * print_box -> * -> * print_box) join_V_boxes = - : (int -> nat -> * print_box -> * print_box -> * -> * print_box) build_H_box = - : (int -> int -> * -> (int -> int -> * print_box) -> (nat # (int -> int -> * print_box)) list -> * print_box) build_V_box = - : (int -> int -> * -> (int -> int -> * print_box) -> ((print_indent # nat) # (int -> int -> * print_box)) list -> * print_box) build_HV_box = - : (int -> int -> * -> (int -> int -> * print_box) -> ((nat # print_indent # nat) # (int -> int -> * print_box)) list -> * print_box) build_HoV_box = - : (int -> int -> * -> (int -> int -> * print_box) -> ((nat # print_indent # nat) # (int -> int -> * print_box)) list -> * print_box) build_print_box = - : (int -> int -> * -> * unbuilt_box -> * print_box) - : (int -> int -> * -> * unbuilt_box -> * print_box) build_print_box = - : (int -> int -> * -> * unbuilt_box -> * print_box) Calling Lisp compiler File PP_printer/boxes compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/extents`;;'\ 'loadf `PP_printer/strings`;;'\ 'loadf `PP_printer/ptree`;;'\ 'loadf `PP_printer/treematch`;;'\ 'loadf `PP_printer/boxes`;;'\ 'compilet `PP_printer/treetobox`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ......() : void .........() : void ...() : void .............................() : void ...................() : void type print_special defined type print_int_exp defined New constructors declared: H_box : ((nat # print_object) list -> print_box_spec) V_box : (((print_indent # nat) # print_object) list -> print_box_spec) HV_box : (((nat # print_indent # nat) # print_object) list -> print_box_spec) HoV_box : (((nat # print_indent # nat) # print_object) list -> print_box_spec) PF_empty : print_format PF : (print_box_spec -> print_format) PF_branch : ((print_test # print_format # print_format) -> print_format) PO_constant : (string -> print_object) PO_leaf : ((string # (string -> string)) -> print_object) PO_subcall : (((string # ((print_tree # address) list -> (print_tree # address) list)) # (string # print_int_exp) list) -> print_object) PO_context_subcall : ((string # (string # ((print_tree # address) list -> (print_tree # address) list)) # (string # print_int_exp) list) -> print_object) PO_format : (print_format -> print_object) PO_expand : (print_box_spec -> print_object) PF_H = - : ((nat # print_object) list -> print_format) PF_V = - : (((print_indent # nat) # print_object) list -> print_format) PF_HV = - : (((nat # print_indent # nat) # print_object) list -> print_format) PF_HoV = - : (((nat # print_indent # nat) # print_object) list -> print_format) type print_rule defined type print_rule_function defined print_special_fun = - : (string -> (string # int) list -> print_binding -> print_special list -> print_binding) print_rule_fun = - : (print_rule list -> print_rule_function) () : void then_try = - : (print_rule_function -> print_rule_function -> print_rule_function) raw_tree_rules = [((``, (Var_name(`n`, [Var_children `cl`; Patt_child(Var_child `c`)])), -), [], PF(HV_box[((0, (Abs 0), 0), PO_leaf(`n`, -)); ((0, (Abs 3), 0), PO_format(PF(H_box[(0, PO_constant `(`); (0, PO_format(PF(HoV_box[((0, (Abs 0), 0), PO_expand(H_box[(0, PO_subcall((`cl`, -), [])); (0, PO_constant `,`)])); ((0, (Abs 0), 0), PO_subcall((`c`, -), []))]))); (0, PO_constant `)`)])))])); ((``, (Var_name(`n`, [])), -), [], PF(H_box[(0, PO_leaf(`n`, -))]))] : print_rule list raw_tree_rules_fun = - : print_rule_function expand_binding = - : ((* # metavar_binding) list -> (* # metavar_binding) list list) extract_expanded_from_spec = - : (print_box_spec -> string list) extract_expanded_from_object = - : (print_object -> string list) print_tree_to_box = - : (int -> int -> print_rule_function -> string -> (string # int) list -> print_tree -> address print_box) print_box_spec_fun = - : (int -> int -> print_rule_function -> string -> (string # int) list -> print_binding -> print_binding -> bool -> print_box_spec -> address print_box) print_format_fun = - : (int -> int -> print_rule_function -> string -> (string # int) list -> print_binding -> print_format -> address print_box) print_object_fun = - : (print_rule_function -> string -> (string # int) list -> print_binding -> print_binding -> bool -> print_object -> (int -> int -> address print_box) list) - : (int -> int -> print_rule_function -> string -> (string # int) list -> print_tree -> address print_box) print_tree_to_box = - : (int -> int -> print_rule_function -> string -> (string # int) list -> print_tree -> address print_box) Calling Lisp compiler File PP_printer/treetobox compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/extents`;;'\ 'loadf `PP_printer/strings`;;'\ 'loadf `PP_printer/ptree`;;'\ 'loadf `PP_printer/treematch`;;'\ 'loadf `PP_printer/boxes`;;'\ 'loadf `PP_printer/treetobox`;;'\ 'compilet `PP_printer/boxtostring`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ......() : void .........() : void ...() : void .............................() : void ...................() : void .................() : void join_strings = - : ((string # int) -> (string # int) -> (string # int)) merge_string_lists = - : ((string # int # int) list -> (string # int # int) list -> (string # int # int) list) stringify_print_box = - : (int -> int -> * print_box -> (string # int # int) list) fill_in_strings = - : (bool -> int -> int -> (string # int # int) list -> string list) print_box_to_strings = - : (bool -> int -> * print_box -> string list) - : (bool -> int -> * print_box -> string list) print_box_to_strings = - : (bool -> int -> * print_box -> string list) Calling Lisp compiler File PP_printer/boxtostring compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/extents`;;'\ 'loadf `PP_printer/strings`;;'\ 'loadf `PP_printer/ptree`;;'\ 'loadf `PP_printer/treematch`;;'\ 'loadf `PP_printer/boxes`;;'\ 'loadf `PP_printer/treetobox`;;'\ 'loadf `PP_printer/boxtostring`;;'\ 'compilet `PP_printer/print`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ......() : void .........() : void ...() : void .............................() : void ...................() : void .................() : void .......() : void display_strings = - : (string list -> void) output_strings = - : (string -> string list -> void) insert_strings = - : (string list -> void) pretty_print = - : (int -> int -> print_rule_function -> string -> (string # int) list -> print_tree -> void) pp_write = - : (string -> int -> int -> print_rule_function -> string -> (string # int) list -> print_tree -> void) pp = - : (print_rule_function -> string -> (string # int) list -> print_tree -> void) ((-), (-), -) : ((int -> int -> print_rule_function -> string -> (string # int) list -> print_tree -> void) # (string -> int -> int -> print_rule_function -> string -> (string # int) list -> print_tree -> void) # (print_rule_function -> string -> (string # int) list -> print_tree -> void)) pretty_print = - : (int -> int -> print_rule_function -> string -> (string # int) list -> print_tree -> void) pp_write = - : (string -> int -> int -> print_rule_function -> string -> (string # int) list -> print_tree -> void) pp = - : (print_rule_function -> string -> (string # int) list -> print_tree -> void) Calling Lisp compiler File PP_printer/print compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/extents`;;'\ 'loadf `PP_printer/strings`;;'\ 'loadf `PP_printer/ptree`;;'\ 'loadf `PP_printer/treematch`;;'\ 'loadf `PP_printer/boxes`;;'\ 'loadf `PP_printer/treetobox`;;'\ 'loadf `PP_printer/boxtostring`;;'\ 'loadf `PP_printer/print`;;'\ 'compilet `PP_printer/utils`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ......() : void .........() : void ...() : void .............................() : void ...................() : void .................() : void .......() : void ........() : void () : void is_a_member_of = - : (string -> string list -> print_test) bound_number = - : (string -> print_int_exp) bound_name = - : (string -> (string # int) list -> print_binding -> string) bound_names = - : (string -> (string # int) list -> print_binding -> string list) bound_child = - : (string -> (string # int) list -> print_binding -> print_tree) bound_children = - : (string -> (string # int) list -> print_binding -> print_tree list) bound_context = - : ((string # int) list -> print_binding -> string) apply0 = - : (* -> (string # int) list -> print_binding -> *) apply1 = - : ((* -> **) -> ((string # int) list -> print_binding -> *) -> (string # int) list -> print_binding -> **) apply2 = - : ((* -> ** -> ***) -> ((string # int) list -> print_binding -> *) -> ((string # int) list -> print_binding -> **) -> (string # int) list -> print_binding -> ***) new_name = - : ((string -> string) -> string -> (string # int) list -> print_binding -> metavar_binding) new_names = - : (((string # address) list -> (string # address) list) -> string -> (string # int) list -> print_binding -> metavar_binding) new_child = - : ((print_tree -> print_tree) -> string -> (string # int) list -> print_binding -> metavar_binding) new_children = - : (((print_tree # address) list -> (print_tree # address) list) -> string -> (string # int) list -> print_binding -> metavar_binding) Calling Lisp compiler File PP_printer/utils compiled () : void #(cd PP_parser; cp pp_lang1.build pp_lang1_pp.ml) (cd PP_parser; cp pp_lang2.build pp_lang2_pp.ml) echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/PP_printer`;;'\ 'compilet `PP_parser/pp_lang1_pp`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ..................................................................................................................() : void # pp_lang1_rules = [] : print_rule list pp_lang1_rules_fun = - : print_rule_function Calling Lisp compiler File PP_parser/pp_lang1_pp compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/PP_printer`;;'\ 'loadf `PP_parser/pp_lang1_pp`;;'\ 'compilet `PP_parser/pp_lang2_pp`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ..................................................................................................................() : void #..() : void pp_lang2_rules = [] : print_rule list pp_lang2_rules_fun = - : print_rule_function Calling Lisp compiler File PP_parser/pp_lang2_pp compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/PP_printer`;;'\ 'loadf `PP_parser/pp_lang1_pp`;;'\ 'loadf `PP_parser/pp_lang2_pp`;;'\ 'compilet `PP_parser/lex`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ..................................................................................................................() : void #..() : void ..() : void copy_chars = - : (int -> (string -> string) -> string -> (string -> void) -> void) New constructors declared: Lex_spec : (string -> lex_symb) Lex_num : (string -> lex_symb) Lex_id : (string -> lex_symb) Lex_block : (((string # string) # string list) -> lex_symb) is_lex_char = - : ((string # string # string) -> bool) is_lex_ucase = - : (string -> bool) is_lex_lcase = - : (string -> bool) is_lex_letter = - : (string -> bool) is_lex_digit = - : (string -> bool) is_lex_underscore = - : (string -> bool) is_lex_eof = - : (string -> bool) is_lex_eol = - : (string -> bool) is_lex_space = - : (string -> bool) lex_error = - : ((string -> string) -> string -> string -> string -> *) read_char = - : ((* -> string) -> * -> string) read_number = - : ((* -> string) -> * -> string -> (lex_symb # string)) read_identifier = - : ((string -> string) -> string -> string -> (lex_symb # string)) read_block = - : ((string -> string) -> string -> (string # string) -> string -> (lex_symb # string)) read_special = - : ((string -> string) -> string -> string list -> string -> (lex_symb # string)) read_symb = - : ((string -> string) -> string -> (string # string) list -> string list -> string list -> string -> (lex_symb # string)) - : ((string -> string) -> string -> (string # string) list -> string list -> string list -> string -> (lex_symb # string)) read_symb = - : ((string -> string) -> string -> (string # string) list -> string list -> string list -> string -> (lex_symb # string)) Calling Lisp compiler File PP_parser/lex compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/PP_printer`;;'\ 'loadf `PP_parser/pp_lang1_pp`;;'\ 'loadf `PP_parser/pp_lang2_pp`;;'\ 'loadf `PP_parser/lex`;;'\ 'compilet `PP_parser/syntax`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ..................................................................................................................() : void #..() : void ..() : void ....................() : void PP_quotes = [(`'`, `'`); (`"`, `"`); (`{`, `}`); (`#`, `#`); (`%`, `%`)] : (string # string) list PP_keywords = [`prettyprinter`; `rules`; `declarations`; `abbreviations`; `with`; `end`; `where`; `if`; `then`; `else`; `h`; `v`; `hv`; `hov`] : string list PP_specials = [`+`; `-`; `*`; `**`; `***`; `,`; `;`; `:`; `::`; `=`; `:=`; `->`; `..`; `(`; `)`; `**[`; `[`; `]`; `<`; `>`; `<<`; `>>`; `|`] : string list syntax_error = - : ((string -> string) -> string -> string -> string -> lex_symb -> *) general_error = - : ((string -> string) -> string -> string -> string -> string -> *) read_PP_symb = - : ((string -> string) -> string -> string -> (lex_symb # string)) read_PP_number = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_integer = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_string = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_terminal = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_ML_function = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_identifier = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_name_metavar = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_child_metavar = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_children_metavar = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_metavar_list = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_min = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_max = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_loop_range = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_loop_link = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_label = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_node_name = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_child = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_child_list = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_pattern_tree = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_loop = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_test = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_pattern = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_transformation = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_p_special = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_p_special_list = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_int_expression = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_assignment = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_assignments = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_fun_subcall = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_context_subcall = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_leaf_or_subcall = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_indent = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_h_params = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_v_params = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_hv_params = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_hov_params = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_h_box = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_v_box = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_hv_box = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_hov_box = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_object = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_h_object = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_v_object = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_hv_object = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_hov_object = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_h_object_list = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_v_object_list = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_hv_object_list = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_hov_object_list = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_box_spec = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_expand = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_format = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_rule = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_rule_list = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_rules = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_binding = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_binding_list = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_declarations = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_abbreviations = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_body = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP = - : ((string -> string) -> string -> print_tree) - : ((string -> string) -> string -> print_tree) read_PP = - : ((string -> string) -> string -> print_tree) Calling Lisp compiler File PP_parser/syntax compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/PP_printer`;;'\ 'loadf `PP_parser/pp_lang1_pp`;;'\ 'loadf `PP_parser/pp_lang2_pp`;;'\ 'loadf `PP_parser/lex`;;'\ 'loadf `PP_parser/syntax`;;'\ 'compilet `PP_parser/convert`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ..................................................................................................................() : void #..() : void ..() : void ....................() : void .......................................................() : void construction_error = - : (print_tree -> string -> *) indirect_string = - : (string -> string) convert_NUM = - : ((print_tree # *) -> (print_tree # ** list)) convert_NEG = - : ((print_tree # *) -> (print_tree # ** list)) convert_ML_FUN = - : ((print_tree # *) -> (print_tree # ** list)) convert_ID_to_VAR = - : ((print_tree # *) -> (print_tree # ** list)) convert_ID_to_TOKCONST = - : ((print_tree # *) -> (print_tree # ** list)) convert_METAVAR = - : ((print_tree # *) -> (print_tree # ** list)) convert_METAVAR_to_TOKCONST = - : ((print_tree # *) -> (print_tree # ** list)) convert_METAVAR_LIST = - : ((print_tree # *) -> (print_tree # ** list)) convert_MIN = - : ((print_tree # *) -> (print_tree # ** list)) convert_MAX = - : ((print_tree # *) -> (print_tree # ** list)) convert_LOOP_RANGE = - : ((print_tree # *) -> (print_tree # ** list)) convert_LOOP_LINK = - : ((print_tree # *) -> (print_tree # ** list)) convert_LABEL = - : ((print_tree # *) -> (print_tree # ** list)) convert_NODE_NAME = - : ((print_tree # (string # print_tree) list) -> (print_tree # * list)) convert_CHILD = - : ((print_tree # (string # print_tree) list) -> (print_tree # * list)) convert_CHILD_LIST = - : ((print_tree # (string # print_tree) list) -> (print_tree # * list)) convert_PATT_TREE = - : ((print_tree # (string # print_tree) list) -> (print_tree # * list)) convert_LOOP = - : ((print_tree # (string # print_tree) list) -> (print_tree # * list)) convert_STRING = - : ((print_tree # *) -> (print_tree # ** list)) convert_TEST = - : ((print_tree # (string # print_tree) list) -> (print_tree # * list)) convert_PATTERN = - : ((print_tree # (string # print_tree) list) -> (print_tree # * list)) convert_TRANSFORM = - : ((print_tree # (string # print_tree) list) -> (print_tree # * list)) convert_P_SPECIAL = - : ((print_tree # (string # print_tree) list) -> (print_tree # * list)) convert_P_SPECIAL_LIST = - : ((print_tree # (string # print_tree) list) -> (print_tree # * list)) convert_INT_EXP = - : ((print_tree # (string # print_tree) list) -> (print_tree # * list)) convert_ASSIGN = - : ((print_tree # (string # print_tree) list) -> (print_tree # * list)) convert_ASSIGNMENTS = - : ((print_tree # (string # print_tree) list) -> (print_tree # * list)) convert_F_SUBCALL = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_C_SUBCALL = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_LEAF_OR_SUBCALL = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_TERMINAL = - : ((print_tree # *) -> (print_tree # ** list)) convert_INC = - : ((print_tree # *) -> (print_tree # ** list)) convert_H_PARAMS = - : ((print_tree # *) -> (print_tree # ** list)) convert_V_PARAMS = - : ((print_tree # *) -> (print_tree # ** list)) convert_HV_PARAMS = - : ((print_tree # *) -> (print_tree # ** list)) convert_HOV_PARAMS = - : ((print_tree # *) -> (print_tree # ** list)) convert_BOX = - : ((print_tree # *) -> (print_tree # ** list)) convert_OBJECT = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_H_OBJECT = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_V_OBJECT = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_HV_OBJECT = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_HOV_OBJECT = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_H_OBJECT_LIST = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_V_OBJECT_LIST = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_HV_OBJECT_LIST = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_HOV_OBJECT_LIST = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_BOX_SPEC = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_EXPAND = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_FORMAT = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_RULE = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_RULE_LIST = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_RULES = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_BINDING = - : ((print_tree # *) -> (print_tree # ** list)) convert_BINDING_LIST_to_LIST = - : ((print_tree # *) -> (print_tree # ** list)) convert_BINDING_LIST_to_LETREC = - : ((print_tree # *) -> (print_tree # ** list)) convert_DECLARS = - : ((print_tree # *) -> (print_tree # ** list)) convert_ABBREVS = - : ((print_tree # *) -> (print_tree # (string # print_tree) list)) convert_BODY = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_PP = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_PP = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) Calling Lisp compiler File PP_parser/convert compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/PP_printer`;;'\ 'loadf `PP_parser/pp_lang1_pp`;;'\ 'loadf `PP_parser/pp_lang2_pp`;;'\ 'loadf `PP_parser/lex`;;'\ 'loadf `PP_parser/syntax`;;'\ 'loadf `PP_parser/convert`;;'\ 'compilet `PP_parser/generate`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ..................................................................................................................() : void #..() : void ..() : void ....................() : void .......................................................() : void .................................................() : void PP_to_ML_rules = [((`name`, (Var_name(`n`, [])), -), [], PF(H_box[(0, PO_leaf(`n`, -))])); ((``, (Const_name(`INTCONST`, [Patt_child(Var_name(`n`, []))])), -), [], PF(H_box[(0, PO_leaf(`n`, -))])); ((``, (Const_name(`TOKCONST`, [Patt_child(Var_name(`n`, []))])), -), [], PF(H_box[(0, PO_constant ```); (0, PO_leaf(`n`, -)); (0, PO_constant ```)])); ((``, (Const_name(`VAR`, [Patt_child(Var_name(`n`, []))])), -), [], PF(H_box[(0, PO_leaf(`n`, -))])); ((``, (Const_name(`CON`, [Patt_child(Var_name(`n`, []))])), -), [], PF(H_box[(0, PO_leaf(`n`, -))])); ((``, (Const_name(`CON0`, [Patt_child(Var_name(`n`, []))])), -), [], PF(H_box[(0, PO_leaf(`n`, -))])); ((``, (Const_name(`UNOP`, [Patt_child(Var_name(`n`, [])); Patt_child(Var_child `c`)])), -), [], PF(H_box[(0, PO_constant `(`); (0, PO_format(PF(HV_box[((0, (Abs 0), 0), PO_leaf(`n`, -)); ((0, (Abs 0), 0), PO_subcall((`c`, -), []))]))); (0, PO_constant `)`)])); ((``, (Const_name(`APPN`, [Patt_child(Var_child `c1`); Patt_child(Var_child `c2`)])), -), [], PF(H_box[(0, PO_constant `(`); (0, PO_format(PF(HV_box[((1, (Abs 1), 0), PO_subcall((`c1`, -), [])); ((1, (Abs 1), 0), PO_subcall((`c2`, -), []))]))); (0, PO_constant `)`)])); ((``, (Const_name(`ABSTR`, [Patt_child(Var_child `c1`); Patt_child(Var_child `c2`)])), -), [], PF(H_box[(0, PO_constant `(\`); (0, PO_format(PF(HV_box[((1, (Abs 1), 0), PO_format(PF(H_box[(0, PO_subcall((`c1`, -), [])); (0, PO_constant `.`)]))); ((1, (Abs 1), 0), PO_subcall((`c2`, -), []))]))); (0, PO_constant `)`)])); ((``, (Const_name(`LIST`, [Var_children `cl`; Patt_child(Var_child `c`)])), -), [], PF(H_box[(0, PO_constant `[`); (0, PO_format(PF(HoV_box[((0, (Abs 0), 0), PO_expand(H_box[(0, PO_subcall((`cl`, -), [])); (0, PO_constant `;`)])); ((0, (Abs 0), 0), PO_subcall((`c`, -), []))]))); (0, PO_constant `]`)])); ((``, (Const_name(`LIST`, [])), -), [], PF(H_box[(0, PO_constant `[]`)])); ((``, (Print_loop((Const_name(`DUPL`, [Patt_child(Var_child `cl`); Patt_child(Link_child(((Val 1), Default), []))])), Var_child `c`)), -), [], PF(H_box[(0, PO_constant `(`); (0, PO_format(PF(HV_box[((0, (Abs 0), 0), PO_expand(H_box[(0, PO_subcall((`cl`, -), [])); (0, PO_constant `,`)])); ((0, (Abs 0), 0), PO_subcall((`c`, -), []))]))); (0, PO_constant `)`)])); ((``, (Const_name(`LETREC`, [Patt_child(Const_name(`DUPL`, [Patt_child(Var_child `var1`); Patt_child(Print_loop((Const_name(`DUPL`, [Patt_child(Var_child `varl`); Patt_child(Link_child(((Default), Default), []))])), Var_child `varl`))])); Patt_child(Const_name(`DUPL`, [Patt_child(Var_child `body1`); Patt_child(Print_loop((Const_name(`DUPL`, [Patt_child(Var_child `bodyl`); Patt_child(Link_child(((Default), Default), []))])), Var_child `bodyl`))]))])), -), [], PF(V_box[(((Abs 0), 0), PO_format(PF(HV_box[((1, (Inc 1), 0), PO_constant `letrec`); ((1, (Inc 1), 0), PO_format(PF(H_box[(1, PO_subcall((`var1`, -), [])); (1, PO_constant `=`)]))); ((1, (Inc 1), 0), PO_subcall((`body1`, -), []))]))); (((Abs 0), 0), PO_expand(HV_box[((1, (Inc 1), 0), PO_constant `and`); ((1, (Inc 1), 0), PO_expand(H_box[(1, PO_subcall((`varl`, -), [])); (1, PO_constant `=`)])); ((1, (Inc 1), 0), PO_subcall((`bodyl`, -), []))]))])); ((``, (Const_name(`LETREC`, [Patt_child(Var_child `c1`); Patt_child(Var_child `c2`)])), -), [], PF(HV_box[((1, (Inc 1), 0), PO_constant `letrec`); ((1, (Inc 1), 0), PO_format(PF(H_box[(1, PO_subcall((`c1`, -), [])); (1, PO_constant `=`)]))); ((1, (Inc 1), 0), PO_subcall((`c2`, -), []))])); ((``, (Const_name(`ML_FUN`, [Var_children `cl`])), -), [], PF(H_box[(0, PO_constant `(`); (0, PO_format(PF(V_box[(((Abs 0), 0), PO_context_subcall(`name`, (`cl`, -), []))]))); (0, PO_constant `)`)]))] : print_rule list PP_to_ML_rules_fun = - : print_rule_function write_strings = - : (((* # string) -> **) -> * -> string list -> void) generate_rule = - : (print_tree -> string list) write_rule = - : (((* # string) -> **) -> * -> print_tree -> void) write_rules = - : (((* # string) -> **) -> * -> print_tree list -> void) generate_declarations = - : (print_tree -> string list) write_declarations = - : (((* # string) -> **) -> * -> print_tree -> void) generate_head = - : (string -> string list) write_head = - : (((* # string) -> **) -> * -> string -> void) generate_tail = - : (string -> string list) write_tail = - : (((* # string) -> **) -> * -> string -> void) generate_ML = - : (((string # string) -> void) -> string -> print_tree -> void) - : (((string # string) -> void) -> string -> print_tree -> void) generate_ML = - : (((string # string) -> void) -> string -> print_tree -> void) Calling Lisp compiler File PP_parser/generate compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/PP_printer`;;'\ 'loadf `PP_parser/pp_lang1_pp`;;'\ 'loadf `PP_parser/pp_lang2_pp`;;'\ 'loadf `PP_parser/lex`;;'\ 'loadf `PP_parser/syntax`;;'\ 'loadf `PP_parser/convert`;;'\ 'loadf `PP_parser/generate`;;'\ 'compilet `PP_parser/PP_to_ML`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ..................................................................................................................() : void #..() : void ..() : void ....................() : void .......................................................() : void .................................................() : void ...............() : void PP_to_ML = - : (bool -> string -> string -> void) Calling Lisp compiler File PP_parser/PP_to_ML compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/PP_printer`;;'\ 'loadf `PP_parser/pp_lang1_pp`;;'\ 'loadf `PP_parser/pp_lang2_pp`;;'\ 'loadf `PP_parser/lex`;;'\ 'loadf `PP_parser/syntax`;;'\ 'loadf `PP_parser/convert`;;'\ 'loadf `PP_parser/generate`;;'\ 'loadf `PP_parser/PP_to_ML`;;'\ 'PP_to_ML false `PP_parser/pp_lang1` ``;;'\ 'PP_to_ML false `PP_parser/pp_lang2` ``;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ..................................................................................................................() : void #..() : void ..() : void ....................() : void .......................................................() : void .................................................() : void ...............() : void .() : void () : void () : void echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/PP_printer`;;'\ 'compilet `PP_parser/pp_lang1_pp`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ..................................................................................................................() : void # pp_lang1_rules = [((``, (Const_name(`NUM`, [Patt_child(Var_name(`num`, []))])), -), [], PF(H_box[(0, PO_leaf(`num`, -))])); ((``, (Const_name(`NEG`, [Patt_child(Var_child `num`)])), -), [], PF(H_box[(0, PO_constant `-`); (0, PO_subcall((`num`, -), []))])); ((``, (Const_name(`STRING`, [Patt_child(Var_name(`string`, []))])), -), [], PF(H_box[(0, PO_constant `'`); (0, PO_leaf(`string`, -)); (0, PO_constant `'`)])); ((``, (Const_name(`TERMINAL`, [Patt_child(Var_name(`string`, []))])), -), [], PF(H_box[(0, PO_constant `"`); (0, PO_leaf(`string`, -)); (0, PO_constant `"`)])); ((``, (Const_name(`ML_FUN`, [Var_children `strings`])), -), [], PF(H_box[(0, PO_constant `{`); (0, PO_format(PF(V_box[(((Abs 0), 0), PO_subcall((`strings`, -), []))]))); (0, PO_constant `}`)])); ((``, (Const_name(`ID`, [Patt_child(Var_name(`id`, []))])), -), [], PF(H_box[(0, PO_leaf(`id`, -))])); ((``, (Const_name(`NAME_META`, [Var_children `id`])), -), [], PF(H_box[(0, PO_constant `***`); (0, PO_subcall((`id`, -), []))])); ((``, (Const_name(`CHILD_META`, [Var_children `id`])), -), [], PF(H_box[(0, PO_constant `*`); (0, PO_subcall((`id`, -), []))])); ((``, (Const_name(`CHILDREN_META`, [Var_children `id`])), -), [], PF(H_box[(0, PO_constant `**`); (0, PO_subcall((`id`, -), []))])); ((``, (Print_loop((Const_name(`METAVAR_LIST`, [Patt_child(Var_child `metavars`); Patt_child(Link_child(((Default), Default), []))])), Const_name(`METAVAR_LIST`, [Patt_child(Var_child `metavar`)]))), -), [], PF(HV_box[((0, (Abs 3), 0), PO_expand(H_box[(0, PO_subcall((`metavars`, -), [])); (0, PO_constant `;`)])); ((0, (Abs 3), 0), PO_subcall((`metavar`, -), []))])); ((``, (Const_name(`MIN`, [Patt_child(Var_child `num`)])), -), [], PF(H_box[(0, PO_subcall((`num`, -), []))])); ((``, (Const_name(`MAX`, [Patt_child(Var_child `num`)])), -), [], PF(H_box[(0, PO_subcall((`num`, -), []))])); ((``, (Const_name(`LOOP_RANGE`, [Patt_child(Const_name(`MIN`, [Patt_child(Var_child `num`)]))])), -), [], PF(H_box[(0, PO_subcall((`num`, -), [])); (0, PO_constant `..`)])); ((``, (Const_name(`LOOP_RANGE`, [Patt_child(Const_name(`MAX`, [Patt_child(Var_child `num`)]))])), -), [], PF(H_box[(0, PO_constant `..`); (0, PO_subcall((`num`, -), []))])); ((``, (Const_name(`LOOP_RANGE`, [Patt_child(Var_child `min`); Patt_child(Var_child `max`)])), -), [], PF(H_box[(0, PO_subcall((`min`, -), [])); (0, PO_constant `..`); (0, PO_subcall((`max`, -), []))])); ((``, (Const_name(`LOOP_LINK`, [Patt_child(Var_child `loop_range`); Patt_child(Var_child `metavar_list`)])), -), [], PF(H_box[(0, PO_constant `<`); (0, PO_subcall((`loop_range`, -), [])); (0, PO_constant `:`); (1, PO_subcall((`metavar_list`, -), [])); (0, PO_constant `>`)])); ((``, (Const_name(`LOOP_LINK`, [Var_children `metavar_list`])), -), [], PF(H_box[(0, PO_constant `<`); (0, PO_subcall((`metavar_list`, -), [])); (0, PO_constant `>`)])); ((``, (Const_name(`LABEL`, [Patt_child(Var_child `child_meta`)])), -), [], PF(H_box[(0, PO_constant `|`); (0, PO_subcall((`child_meta`, -), [])); (0, PO_constant `|`)])); ((``, (Const_name(`NODE_NAME`, [Patt_child(Var_child `node_name`)])), -), [], PF(H_box[(0, PO_subcall((`node_name`, -), []))])); ((``, (Const_name(`CHILD`, [Patt_child(Var_child `child`)])), -), [], PF(H_box[(0, PO_subcall((`child`, -), []))])); ((``, (Print_loop((Const_name(`CHILD_LIST`, [Patt_child(Var_child `children`); Patt_child(Link_child(((Default), Default), []))])), Const_name(`CHILD_LIST`, [Patt_child(Var_child `child`)]))), -), [], PF(HV_box[((0, (Abs 3), 0), PO_expand(H_box[(0, PO_subcall((`children`, -), [])); (0, PO_constant `,`)])); ((0, (Abs 3), 0), PO_subcall((`child`, -), []))])); ((``, (Const_name(`PATT_TREE`, [Patt_child(Const_name(`NODE_NAME`, [Patt_child(Var_child `node_name`)])); Patt_child(Var_child `child_list`)])), -), [], PF(HV_box[((0, (Abs 3), 0), PO_subcall((`node_name`, -), [])); ((0, (Abs 3), 0), PO_format(PF(H_box[(0, PO_constant `(`); (0, PO_subcall((`child_list`, -), [])); (0, PO_constant `)`)])))])); ((``, (Const_name(`PATT_TREE`, [Patt_child(Const_name(`NODE_NAME`, [Patt_child(Var_child `node_name`)]))])), -), [], PF(H_box[(0, PO_subcall((`node_name`, -), [])); (0, PO_constant `()`)])); ((``, (Const_name(`PATT_TREE`, [Var_children `x`])), -), [], PF(HV_box[((0, (Abs 3), 0), PO_subcall((`x`, -), []))])); ((``, (Const_name(`LOOP`, [Patt_child(Var_child `patt_tree`)])), -), [], PF(H_box[(0, PO_constant `[`); (0, PO_subcall((`patt_tree`, -), [])); (0, PO_constant `]`)])); ((``, (Const_name(`TEST`, [Patt_child(Var_child `test`)])), -), [], PF(H_box[(0, PO_subcall((`test`, -), []))])); ((``, (Const_name(`PATTERN`, [Patt_child(Var_child `string`); Patt_child(Var_child `patt_tree`); Var_children `test`])), -), [], PF(H_box[(0, PO_subcall((`string`, -), [])); (0, PO_constant `::`); (0, PO_format(PF(HV_box[((1, (Abs 3), 0), PO_subcall((`patt_tree`, -), [])); ((1, (Abs 3), 0), PO_expand(HV_box[((1, (Abs 3), 0), PO_constant `where`); ((1, (Abs 3), 0), PO_subcall((`test`, -), []))]))])))])); ((``, (Const_name(`TRANSFORM`, [Patt_child(Var_child `transform`)])), -), [], PF(H_box[(0, PO_subcall((`transform`, -), []))])); ((``, (Const_name(`P_SPECIAL`, [Patt_child(Var_child `metavar`); Patt_child(Var_child `transform`)])), -), [], PF(HV_box[((1, (Abs 3), 0), PO_format(PF(H_box[(1, PO_subcall((`metavar`, -), [])); (1, PO_constant `=`)]))); ((1, (Abs 3), 0), PO_subcall((`transform`, -), []))])); ((``, (Print_loop((Const_name(`P_SPECIAL_LIST`, [Patt_child(Var_child `p_specials`); Patt_child(Link_child(((Default), Default), []))])), Const_name(`P_SPECIAL_LIST`, [Patt_child(Var_child `p_special`)]))), -), [], PF(HoV_box[((1, (Abs 0), 0), PO_expand(H_box[(0, PO_subcall((`p_specials`, -), [])); (0, PO_constant `;`)])); ((1, (Abs 0), 0), PO_subcall((`p_special`, -), []))]))] : print_rule list pp_lang1_rules_fun = - : print_rule_function Calling Lisp compiler File PP_parser/pp_lang1_pp compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/PP_printer`;;'\ 'loadf `PP_parser/pp_lang1_pp`;;'\ 'compilet `PP_parser/pp_lang2_pp`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ..................................................................................................................() : void #..() : void pp_lang2_rules = [((``, (Const_name(`INT_EXP`, [Patt_child(Var_child `int_exp`)])), -), [], PF(H_box[(0, PO_subcall((`int_exp`, -), []))])); ((``, (Const_name(`ASSIGN`, [Patt_child(Var_child `id`); Patt_child(Var_child `exp`)])), -), [], PF(HV_box[((1, (Abs 3), 0), PO_format(PF(H_box[(1, PO_subcall((`id`, -), [])); (1, PO_constant `:=`)]))); ((1, (Abs 3), 0), PO_subcall((`exp`, -), []))])); ((``, (Print_loop((Const_name(`ASSIGNMENTS`, [Patt_child(Var_child `assigns`); Patt_child(Link_child(((Default), Default), []))])), Const_name(`ASSIGNMENTS`, [Patt_child(Var_child `assign`)]))), -), [], PF(HoV_box[((1, (Abs 0), 0), PO_expand(H_box[(0, PO_subcall((`assigns`, -), [])); (0, PO_constant `;`)])); ((1, (Abs 0), 0), PO_subcall((`assign`, -), []))])); ((``, (Const_name(`F_SUBCALL`, [Patt_child(Var_child `child`)])), -), [], PF(H_box[(0, PO_subcall((`child`, -), []))])); ((``, (Const_name(`F_SUBCALL`, [Patt_child(Var_child `transform`); Patt_child(Var_child `metavar`)])), -), [], PF(HV_box[((0, (Abs 3), 0), PO_subcall((`transform`, -), [])); ((0, (Abs 3), 0), PO_format(PF(H_box[(0, PO_constant `(`); (0, PO_subcall((`metavar`, -), [])); (0, PO_constant `)`)])))])); ((``, (Const_name(`C_SUBCALL`, [Patt_child(Var_child `f_subcall`)])), -), [], PF(H_box[(0, PO_subcall((`f_subcall`, -), []))])); ((``, (Const_name(`C_SUBCALL`, [Patt_child(Var_child `string`); Patt_child(Var_child `f_subcall`)])), -), [], PF(HV_box[((0, (Abs 3), 0), PO_format(PF(H_box[(0, PO_subcall((`string`, -), [])); (0, PO_constant `::`)]))); ((0, (Abs 3), 0), PO_subcall((`f_subcall`, -), []))])); ((``, (Const_name(`LEAF_OR_SUBCALL`, [Patt_child(Var_child `c_subcall`); Var_children `assigns`])), -), [], PF(HV_box[((1, (Abs 3), 0), PO_subcall((`c_subcall`, -), [])); ((1, (Abs 3), 0), PO_expand(V_box[(((Abs 0), 0), PO_constant `with`); (((Abs 3), 0), PO_subcall((`assigns`, -), [])); (((Abs 0), 0), PO_constant `end with`)]))])); ((``, (Const_name(`INC`, [Patt_child(Var_child `num`)])), -), [], PF(H_box[(0, PO_constant `+`); (0, PO_subcall((`num`, -), []))])); ((``, (Const_name(`H_PARAMS`, [Patt_child(Var_child `num`)])), -), [], PF(H_box[(0, PO_subcall((`num`, -), []))])); ((``, (Const_name(`V_PARAMS`, [Patt_child(Var_child `indent`); Patt_child(Var_child `num`)])), -), [], PF(H_box[(0, PO_subcall((`indent`, -), [])); (0, PO_constant `,`); (0, PO_subcall((`num`, -), []))])); ((``, (Const_name(`HV_PARAMS`, [Patt_child(Var_child `num1`); Patt_child(Var_child `indent`); Patt_child(Var_child `num2`)])), -), [], PF(H_box[(0, PO_subcall((`num1`, -), [])); (0, PO_constant `,`); (0, PO_subcall((`indent`, -), [])); (0, PO_constant `,`); (0, PO_subcall((`num2`, -), []))])); ((``, (Const_name(`HOV_PARAMS`, [Patt_child(Var_child `num1`); Patt_child(Var_child `indent`); Patt_child(Var_child `num2`)])), -), [], PF(H_box[(0, PO_subcall((`num1`, -), [])); (0, PO_constant `,`); (0, PO_subcall((`indent`, -), [])); (0, PO_constant `,`); (0, PO_subcall((`num2`, -), []))])); ((``, (Const_name(`H_BOX`, [Patt_child(Var_child `h_params`)])), -), [], PF(H_box[(1, PO_constant `h`); (1, PO_subcall((`h_params`, -), []))])); ((``, (Const_name(`V_BOX`, [Patt_child(Var_child `v_params`)])), -), [], PF(H_box[(1, PO_constant `v`); (1, PO_subcall((`v_params`, -), []))])); ((``, (Const_name(`HV_BOX`, [Patt_child(Var_child `hv_params`)])), -), [], PF(H_box[(1, PO_constant `hv`); (1, PO_subcall((`hv_params`, -), []))])); ((``, (Const_name(`HOV_BOX`, [Patt_child(Var_child `hov_params`)])), -), [], PF(H_box[(1, PO_constant `hov`); (1, PO_subcall((`hov_params`, -), []))])); ((``, (Const_name(`OBJECT`, [Patt_child(Var_child `object`)])), -), [], PF(H_box[(0, PO_subcall((`object`, -), []))])); ((``, (Const_name(`H_OBJECT`, [Var_children `h_params`; Patt_child(Var_child `object`)])), -), [], PF(HV_box[((1, (Abs 3), 0), PO_expand(H_box[(0, PO_constant `<`); (0, PO_subcall((`h_params`, -), [])); (0, PO_constant `>`)])); ((1, (Abs 3), 0), PO_subcall((`object`, -), []))])); ((``, (Const_name(`V_OBJECT`, [Var_children `v_params`; Patt_child(Var_child `object`)])), -), [], PF(HV_box[((1, (Abs 3), 0), PO_expand(H_box[(0, PO_constant `<`); (0, PO_subcall((`v_params`, -), [])); (0, PO_constant `>`)])); ((1, (Abs 3), 0), PO_subcall((`object`, -), []))])); ((``, (Const_name(`HV_OBJECT`, [Var_children `hv_params`; Patt_child(Var_child `object`)])), -), [], PF(HV_box[((1, (Abs 3), 0), PO_expand(H_box[(0, PO_constant `<`); (0, PO_subcall((`hv_params`, -), [])); (0, PO_constant `>`)])); ((1, (Abs 3), 0), PO_subcall((`object`, -), []))])); ((``, (Const_name(`HOV_OBJECT`, [Var_children `hov_params`; Patt_child(Var_child `object`)])), -), [], PF(HV_box[((1, (Abs 3), 0), PO_expand(H_box[(0, PO_constant `<`); (0, PO_subcall((`hov_params`, -), [])); (0, PO_constant `>`)])); ((1, (Abs 3), 0), PO_subcall((`object`, -), []))])); ((``, (Print_loop((Const_name(`H_OBJECT_LIST`, [Patt_child(Var_child `h_objects`); Patt_child(Link_child(((Default), Default), []))])), Const_name(`H_OBJECT_LIST`, [Patt_child(Var_child `h_object`)]))), -), [], PF(HoV_box[((1, (Abs 0), 0), PO_subcall((`h_objects`, -), [])); ((1, (Abs 0), 0), PO_subcall((`h_object`, -), []))])); ((``, (Print_loop((Const_name(`V_OBJECT_LIST`, [Patt_child(Var_child `v_objects`); Patt_child(Link_child(((Default), Default), []))])), Const_name(`V_OBJECT_LIST`, [Patt_child(Var_child `v_object`)]))), -), [], PF(HoV_box[((1, (Abs 0), 0), PO_subcall((`v_objects`, -), [])); ((1, (Abs 0), 0), PO_subcall((`v_object`, -), []))])); ((``, (Print_loop((Const_name(`HV_OBJECT_LIST`, [Patt_child(Var_child `hv_objects`); Patt_child(Link_child(((Default), Default), []))])), Const_name(`HV_OBJECT_LIST`, [Patt_child(Var_child `hv_object`)]))), -), [], PF(HoV_box[((1, (Abs 0), 0), PO_subcall((`hv_objects`, -), [])); ((1, (Abs 0), 0), PO_subcall((`hv_object`, -), []))])); ((``, (Print_loop((Const_name(`HOV_OBJECT_LIST`, [Patt_child(Var_child `hov_objects`); Patt_child(Link_child(((Default), Default), []))])), Const_name(`HOV_OBJECT_LIST`, [Patt_child(Var_child `hov_object`)]))), -), [], PF(HoV_box[((1, (Abs 0), 0), PO_subcall((`hov_objects`, -), [])); ((1, (Abs 0), 0), PO_subcall((`hov_object`, -), []))])); ((``, (Const_name(`BOX_SPEC`, [Patt_child(Var_child `box`); Patt_child(Var_child `object_list`)])), -), [], PF(H_box[(0, PO_constant `<`); (0, PO_subcall((`box`, -), [])); (0, PO_constant `>`); (1, PO_subcall((`object_list`, -), []))])); ((``, (Const_name(`EXPAND`, [Patt_child(Var_child `box_spec`)])), -), [], PF(H_box[(0, PO_constant `**[`); (0, PO_subcall((`box_spec`, -), [])); (0, PO_constant `]`)])); ((``, (Const_name(`FORMAT`, [])), -), [], PF(H_box[(0, PO_constant `[]`)])); ((``, (Const_name(`FORMAT`, [Patt_child(Var_child `box_spec`)])), -), [], PF(H_box[(0, PO_constant `[`); (0, PO_subcall((`box_spec`, -), [])); (0, PO_constant `]`)])); ((``, (Const_name(`FORMAT`, [Patt_child(Var_child `test`); Patt_child(Var_child `format1`); Patt_child(Var_child `format2`)])), -), [], PF(HoV_box[((1, (Abs 0), 0), PO_format(PF(H_box[(1, PO_constant `if`); (1, PO_subcall((`test`, -), []))]))); ((1, (Abs 0), 0), PO_format(PF(H_box[(1, PO_constant `then`); (1, PO_subcall((`format1`, -), []))]))); ((1, (Abs 0), 0), PO_format(PF(H_box[(1, PO_constant `else`); (1, PO_subcall((`format2`, -), []))])))])); ((``, (Const_name(`RULE`, [Patt_child(Const_name(`PATTERN`, [Patt_child(Var_child `string`); Patt_child(Var_child `patt_tree`); Var_children `test`])); Var_children `p_specials`; Patt_child(Var_child `format`)])), -), [], PF(H_box[(0, PO_subcall((`string`, -), [])); (0, PO_constant `::`); (0, PO_format(PF(HoV_box[((1, (Abs 0), 0), PO_format(PF(H_box[(1, PO_format(PF(HV_box[((1, (Abs 3), 0), PO_subcall((`patt_tree`, -), [])); ((1, (Abs 3), 0), PO_expand(HV_box[((1, (Abs 3), 0), PO_constant `where`); ((1, (Abs 3), 0), PO_subcall((`test`, -), []))]))]))); (1, PO_constant `->`)]))); ((1, (Abs 0), 0), PO_expand(H_box[(1, PO_constant `<<`); (1, PO_subcall((`p_specials`, -), [])); (1, PO_constant `>>`)])); ((1, (Abs 0), 0), PO_subcall((`format`, -), []))])))])); ((``, (Print_loop((Const_name(`RULE_LIST`, [Patt_child(Var_child `rules`); Patt_child(Link_child(((Default), Default), []))])), Const_name(`RULE_LIST`, [Patt_child(Var_child `rule`)]))), -), [], PF(V_box[(((Abs 0), 1), PO_expand(H_box[(0, PO_subcall((`rules`, -), [])); (0, PO_constant `;`)])); (((Abs 0), 1), PO_format(PF(H_box[(0, PO_subcall((`rule`, -), [])); (0, PO_constant `;`)])))])); ((``, (Const_name(`RULES`, [Patt_child(Var_child `rule_list`)])), -), [], PF(V_box[(((Abs 3), 0), PO_constant `rules`); (((Abs 3), 0), PO_subcall((`rule_list`, -), [])); (((Abs 0), 1), PO_constant `end rules`)])); ((``, (Const_name(`BINDING`, [Patt_child(Var_child `id`); Patt_child(Var_child `ml_fun`)])), -), [], PF(HV_box[((1, (Abs 3), 0), PO_format(PF(H_box[(1, PO_subcall((`id`, -), [])); (1, PO_constant `=`)]))); ((1, (Abs 3), 0), PO_subcall((`ml_fun`, -), []))])); ((``, (Print_loop((Const_name(`BINDING_LIST`, [Patt_child(Var_child `bindings`); Patt_child(Link_child(((Default), Default), []))])), Const_name(`BINDING_LIST`, [Patt_child(Var_child `binding`)]))), -), [], PF(V_box[(((Abs 0), 1), PO_expand(H_box[(0, PO_subcall((`bindings`, -), [])); (0, PO_constant `;`)])); (((Abs 0), 1), PO_format(PF(H_box[(0, PO_subcall((`binding`, -), [])); (0, PO_constant `;`)])))])); ((``, (Const_name(`DECLARS`, [Patt_child(Var_child `binding_list`)])), -), [], PF(V_box[(((Abs 3), 0), PO_constant `declarations`); (((Abs 3), 0), PO_subcall((`binding_list`, -), [])); (((Abs 0), 1), PO_constant `end declarations`)])); ((``, (Const_name(`ABBREVS`, [Patt_child(Var_child `binding_list`)])), -), [], PF(V_box[(((Abs 3), 0), PO_constant `abbreviations`); (((Abs 3), 0), PO_subcall((`binding_list`, -), [])); (((Abs 0), 1), PO_constant `end abbreviations`)])); ((``, (Const_name(`BODY`, [Var_children `x`])), -), [], PF(V_box[(((Abs 0), 2), PO_subcall((`x`, -), []))])); ((``, (Const_name(`PP`, [Patt_child(Var_child `id`); Patt_child(Var_child `body`)])), -), [], PF(V_box[(((Abs 0), 1), PO_format(PF(H_box[(1, PO_constant `prettyprinter`); (1, PO_subcall((`id`, -), [])); (1, PO_constant `=`)]))); (((Abs 0), 1), PO_subcall((`body`, -), [])); (((Abs 0), 2), PO_constant `end prettyprinter`)]))] : print_rule list pp_lang2_rules_fun = - : print_rule_function Calling Lisp compiler File PP_parser/pp_lang2_pp compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/PP_printer`;;'\ 'loadf `PP_parser/pp_lang1_pp`;;'\ 'loadf `PP_parser/pp_lang2_pp`;;'\ 'compilet `PP_parser/lex`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ..................................................................................................................() : void #..() : void ..() : void copy_chars = - : (int -> (string -> string) -> string -> (string -> void) -> void) New constructors declared: Lex_spec : (string -> lex_symb) Lex_num : (string -> lex_symb) Lex_id : (string -> lex_symb) Lex_block : (((string # string) # string list) -> lex_symb) is_lex_char = - : ((string # string # string) -> bool) is_lex_ucase = - : (string -> bool) is_lex_lcase = - : (string -> bool) is_lex_letter = - : (string -> bool) is_lex_digit = - : (string -> bool) is_lex_underscore = - : (string -> bool) is_lex_eof = - : (string -> bool) is_lex_eol = - : (string -> bool) is_lex_space = - : (string -> bool) lex_error = - : ((string -> string) -> string -> string -> string -> *) read_char = - : ((* -> string) -> * -> string) read_number = - : ((* -> string) -> * -> string -> (lex_symb # string)) read_identifier = - : ((string -> string) -> string -> string -> (lex_symb # string)) read_block = - : ((string -> string) -> string -> (string # string) -> string -> (lex_symb # string)) read_special = - : ((string -> string) -> string -> string list -> string -> (lex_symb # string)) read_symb = - : ((string -> string) -> string -> (string # string) list -> string list -> string list -> string -> (lex_symb # string)) - : ((string -> string) -> string -> (string # string) list -> string list -> string list -> string -> (lex_symb # string)) read_symb = - : ((string -> string) -> string -> (string # string) list -> string list -> string list -> string -> (lex_symb # string)) Calling Lisp compiler File PP_parser/lex compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/PP_printer`;;'\ 'loadf `PP_parser/pp_lang1_pp`;;'\ 'loadf `PP_parser/pp_lang2_pp`;;'\ 'loadf `PP_parser/lex`;;'\ 'compilet `PP_parser/syntax`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ..................................................................................................................() : void #..() : void ..() : void ....................() : void PP_quotes = [(`'`, `'`); (`"`, `"`); (`{`, `}`); (`#`, `#`); (`%`, `%`)] : (string # string) list PP_keywords = [`prettyprinter`; `rules`; `declarations`; `abbreviations`; `with`; `end`; `where`; `if`; `then`; `else`; `h`; `v`; `hv`; `hov`] : string list PP_specials = [`+`; `-`; `*`; `**`; `***`; `,`; `;`; `:`; `::`; `=`; `:=`; `->`; `..`; `(`; `)`; `**[`; `[`; `]`; `<`; `>`; `<<`; `>>`; `|`] : string list syntax_error = - : ((string -> string) -> string -> string -> string -> lex_symb -> *) general_error = - : ((string -> string) -> string -> string -> string -> string -> *) read_PP_symb = - : ((string -> string) -> string -> string -> (lex_symb # string)) read_PP_number = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_integer = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_string = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_terminal = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_ML_function = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_identifier = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_name_metavar = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_child_metavar = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_children_metavar = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_metavar_list = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_min = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_max = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_loop_range = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_loop_link = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_label = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_node_name = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_child = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_child_list = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_pattern_tree = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_loop = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_test = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_pattern = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_transformation = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_p_special = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_p_special_list = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_int_expression = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_assignment = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_assignments = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_fun_subcall = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_context_subcall = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_leaf_or_subcall = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_indent = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_h_params = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_v_params = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_hv_params = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_hov_params = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_h_box = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_v_box = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_hv_box = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_hov_box = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_object = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_h_object = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_v_object = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_hv_object = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_hov_object = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_h_object_list = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_v_object_list = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_hv_object_list = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_hov_object_list = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_box_spec = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_expand = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_format = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_rule = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_rule_list = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_rules = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_binding = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_binding_list = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_declarations = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_abbreviations = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP_body = - : ((string -> string) -> string -> (lex_symb # string) -> (print_tree # lex_symb # string)) read_PP = - : ((string -> string) -> string -> print_tree) - : ((string -> string) -> string -> print_tree) read_PP = - : ((string -> string) -> string -> print_tree) Calling Lisp compiler File PP_parser/syntax compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/PP_printer`;;'\ 'loadf `PP_parser/pp_lang1_pp`;;'\ 'loadf `PP_parser/pp_lang2_pp`;;'\ 'loadf `PP_parser/lex`;;'\ 'loadf `PP_parser/syntax`;;'\ 'compilet `PP_parser/convert`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ..................................................................................................................() : void #..() : void ..() : void ....................() : void .......................................................() : void construction_error = - : (print_tree -> string -> *) indirect_string = - : (string -> string) convert_NUM = - : ((print_tree # *) -> (print_tree # ** list)) convert_NEG = - : ((print_tree # *) -> (print_tree # ** list)) convert_ML_FUN = - : ((print_tree # *) -> (print_tree # ** list)) convert_ID_to_VAR = - : ((print_tree # *) -> (print_tree # ** list)) convert_ID_to_TOKCONST = - : ((print_tree # *) -> (print_tree # ** list)) convert_METAVAR = - : ((print_tree # *) -> (print_tree # ** list)) convert_METAVAR_to_TOKCONST = - : ((print_tree # *) -> (print_tree # ** list)) convert_METAVAR_LIST = - : ((print_tree # *) -> (print_tree # ** list)) convert_MIN = - : ((print_tree # *) -> (print_tree # ** list)) convert_MAX = - : ((print_tree # *) -> (print_tree # ** list)) convert_LOOP_RANGE = - : ((print_tree # *) -> (print_tree # ** list)) convert_LOOP_LINK = - : ((print_tree # *) -> (print_tree # ** list)) convert_LABEL = - : ((print_tree # *) -> (print_tree # ** list)) convert_NODE_NAME = - : ((print_tree # (string # print_tree) list) -> (print_tree # * list)) convert_CHILD = - : ((print_tree # (string # print_tree) list) -> (print_tree # * list)) convert_CHILD_LIST = - : ((print_tree # (string # print_tree) list) -> (print_tree # * list)) convert_PATT_TREE = - : ((print_tree # (string # print_tree) list) -> (print_tree # * list)) convert_LOOP = - : ((print_tree # (string # print_tree) list) -> (print_tree # * list)) convert_STRING = - : ((print_tree # *) -> (print_tree # ** list)) convert_TEST = - : ((print_tree # (string # print_tree) list) -> (print_tree # * list)) convert_PATTERN = - : ((print_tree # (string # print_tree) list) -> (print_tree # * list)) convert_TRANSFORM = - : ((print_tree # (string # print_tree) list) -> (print_tree # * list)) convert_P_SPECIAL = - : ((print_tree # (string # print_tree) list) -> (print_tree # * list)) convert_P_SPECIAL_LIST = - : ((print_tree # (string # print_tree) list) -> (print_tree # * list)) convert_INT_EXP = - : ((print_tree # (string # print_tree) list) -> (print_tree # * list)) convert_ASSIGN = - : ((print_tree # (string # print_tree) list) -> (print_tree # * list)) convert_ASSIGNMENTS = - : ((print_tree # (string # print_tree) list) -> (print_tree # * list)) convert_F_SUBCALL = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_C_SUBCALL = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_LEAF_OR_SUBCALL = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_TERMINAL = - : ((print_tree # *) -> (print_tree # ** list)) convert_INC = - : ((print_tree # *) -> (print_tree # ** list)) convert_H_PARAMS = - : ((print_tree # *) -> (print_tree # ** list)) convert_V_PARAMS = - : ((print_tree # *) -> (print_tree # ** list)) convert_HV_PARAMS = - : ((print_tree # *) -> (print_tree # ** list)) convert_HOV_PARAMS = - : ((print_tree # *) -> (print_tree # ** list)) convert_BOX = - : ((print_tree # *) -> (print_tree # ** list)) convert_OBJECT = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_H_OBJECT = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_V_OBJECT = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_HV_OBJECT = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_HOV_OBJECT = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_H_OBJECT_LIST = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_V_OBJECT_LIST = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_HV_OBJECT_LIST = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_HOV_OBJECT_LIST = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_BOX_SPEC = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_EXPAND = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_FORMAT = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_RULE = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_RULE_LIST = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_RULES = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_BINDING = - : ((print_tree # *) -> (print_tree # ** list)) convert_BINDING_LIST_to_LIST = - : ((print_tree # *) -> (print_tree # ** list)) convert_BINDING_LIST_to_LETREC = - : ((print_tree # *) -> (print_tree # ** list)) convert_DECLARS = - : ((print_tree # *) -> (print_tree # ** list)) convert_ABBREVS = - : ((print_tree # *) -> (print_tree # (string # print_tree) list)) convert_BODY = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_PP = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) convert_PP = - : ((print_tree # (string # print_tree) list) -> (print_tree # (string # print_tree) list)) Calling Lisp compiler File PP_parser/convert compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/PP_printer`;;'\ 'loadf `PP_parser/pp_lang1_pp`;;'\ 'loadf `PP_parser/pp_lang2_pp`;;'\ 'loadf `PP_parser/lex`;;'\ 'loadf `PP_parser/syntax`;;'\ 'loadf `PP_parser/convert`;;'\ 'compilet `PP_parser/generate`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ..................................................................................................................() : void #..() : void ..() : void ....................() : void .......................................................() : void .................................................() : void PP_to_ML_rules = [((`name`, (Var_name(`n`, [])), -), [], PF(H_box[(0, PO_leaf(`n`, -))])); ((``, (Const_name(`INTCONST`, [Patt_child(Var_name(`n`, []))])), -), [], PF(H_box[(0, PO_leaf(`n`, -))])); ((``, (Const_name(`TOKCONST`, [Patt_child(Var_name(`n`, []))])), -), [], PF(H_box[(0, PO_constant ```); (0, PO_leaf(`n`, -)); (0, PO_constant ```)])); ((``, (Const_name(`VAR`, [Patt_child(Var_name(`n`, []))])), -), [], PF(H_box[(0, PO_leaf(`n`, -))])); ((``, (Const_name(`CON`, [Patt_child(Var_name(`n`, []))])), -), [], PF(H_box[(0, PO_leaf(`n`, -))])); ((``, (Const_name(`CON0`, [Patt_child(Var_name(`n`, []))])), -), [], PF(H_box[(0, PO_leaf(`n`, -))])); ((``, (Const_name(`UNOP`, [Patt_child(Var_name(`n`, [])); Patt_child(Var_child `c`)])), -), [], PF(H_box[(0, PO_constant `(`); (0, PO_format(PF(HV_box[((0, (Abs 0), 0), PO_leaf(`n`, -)); ((0, (Abs 0), 0), PO_subcall((`c`, -), []))]))); (0, PO_constant `)`)])); ((``, (Const_name(`APPN`, [Patt_child(Var_child `c1`); Patt_child(Var_child `c2`)])), -), [], PF(H_box[(0, PO_constant `(`); (0, PO_format(PF(HV_box[((1, (Abs 1), 0), PO_subcall((`c1`, -), [])); ((1, (Abs 1), 0), PO_subcall((`c2`, -), []))]))); (0, PO_constant `)`)])); ((``, (Const_name(`ABSTR`, [Patt_child(Var_child `c1`); Patt_child(Var_child `c2`)])), -), [], PF(H_box[(0, PO_constant `(\`); (0, PO_format(PF(HV_box[((1, (Abs 1), 0), PO_format(PF(H_box[(0, PO_subcall((`c1`, -), [])); (0, PO_constant `.`)]))); ((1, (Abs 1), 0), PO_subcall((`c2`, -), []))]))); (0, PO_constant `)`)])); ((``, (Const_name(`LIST`, [Var_children `cl`; Patt_child(Var_child `c`)])), -), [], PF(H_box[(0, PO_constant `[`); (0, PO_format(PF(HoV_box[((0, (Abs 0), 0), PO_expand(H_box[(0, PO_subcall((`cl`, -), [])); (0, PO_constant `;`)])); ((0, (Abs 0), 0), PO_subcall((`c`, -), []))]))); (0, PO_constant `]`)])); ((``, (Const_name(`LIST`, [])), -), [], PF(H_box[(0, PO_constant `[]`)])); ((``, (Print_loop((Const_name(`DUPL`, [Patt_child(Var_child `cl`); Patt_child(Link_child(((Val 1), Default), []))])), Var_child `c`)), -), [], PF(H_box[(0, PO_constant `(`); (0, PO_format(PF(HV_box[((0, (Abs 0), 0), PO_expand(H_box[(0, PO_subcall((`cl`, -), [])); (0, PO_constant `,`)])); ((0, (Abs 0), 0), PO_subcall((`c`, -), []))]))); (0, PO_constant `)`)])); ((``, (Const_name(`LETREC`, [Patt_child(Const_name(`DUPL`, [Patt_child(Var_child `var1`); Patt_child(Print_loop((Const_name(`DUPL`, [Patt_child(Var_child `varl`); Patt_child(Link_child(((Default), Default), []))])), Var_child `varl`))])); Patt_child(Const_name(`DUPL`, [Patt_child(Var_child `body1`); Patt_child(Print_loop((Const_name(`DUPL`, [Patt_child(Var_child `bodyl`); Patt_child(Link_child(((Default), Default), []))])), Var_child `bodyl`))]))])), -), [], PF(V_box[(((Abs 0), 0), PO_format(PF(HV_box[((1, (Inc 1), 0), PO_constant `letrec`); ((1, (Inc 1), 0), PO_format(PF(H_box[(1, PO_subcall((`var1`, -), [])); (1, PO_constant `=`)]))); ((1, (Inc 1), 0), PO_subcall((`body1`, -), []))]))); (((Abs 0), 0), PO_expand(HV_box[((1, (Inc 1), 0), PO_constant `and`); ((1, (Inc 1), 0), PO_expand(H_box[(1, PO_subcall((`varl`, -), [])); (1, PO_constant `=`)])); ((1, (Inc 1), 0), PO_subcall((`bodyl`, -), []))]))])); ((``, (Const_name(`LETREC`, [Patt_child(Var_child `c1`); Patt_child(Var_child `c2`)])), -), [], PF(HV_box[((1, (Inc 1), 0), PO_constant `letrec`); ((1, (Inc 1), 0), PO_format(PF(H_box[(1, PO_subcall((`c1`, -), [])); (1, PO_constant `=`)]))); ((1, (Inc 1), 0), PO_subcall((`c2`, -), []))])); ((``, (Const_name(`ML_FUN`, [Var_children `cl`])), -), [], PF(H_box[(0, PO_constant `(`); (0, PO_format(PF(V_box[(((Abs 0), 0), PO_context_subcall(`name`, (`cl`, -), []))]))); (0, PO_constant `)`)]))] : print_rule list PP_to_ML_rules_fun = - : print_rule_function write_strings = - : (((* # string) -> **) -> * -> string list -> void) generate_rule = - : (print_tree -> string list) write_rule = - : (((* # string) -> **) -> * -> print_tree -> void) write_rules = - : (((* # string) -> **) -> * -> print_tree list -> void) generate_declarations = - : (print_tree -> string list) write_declarations = - : (((* # string) -> **) -> * -> print_tree -> void) generate_head = - : (string -> string list) write_head = - : (((* # string) -> **) -> * -> string -> void) generate_tail = - : (string -> string list) write_tail = - : (((* # string) -> **) -> * -> string -> void) generate_ML = - : (((string # string) -> void) -> string -> print_tree -> void) - : (((string # string) -> void) -> string -> print_tree -> void) generate_ML = - : (((string # string) -> void) -> string -> print_tree -> void) Calling Lisp compiler File PP_parser/generate compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/PP_printer`;;'\ 'loadf `PP_parser/pp_lang1_pp`;;'\ 'loadf `PP_parser/pp_lang2_pp`;;'\ 'loadf `PP_parser/lex`;;'\ 'loadf `PP_parser/syntax`;;'\ 'loadf `PP_parser/convert`;;'\ 'loadf `PP_parser/generate`;;'\ 'compilet `PP_parser/PP_to_ML`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ..................................................................................................................() : void #..() : void ..() : void ....................() : void .......................................................() : void .................................................() : void ...............() : void PP_to_ML = - : (bool -> string -> string -> void) Calling Lisp compiler File PP_parser/PP_to_ML compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/PP_printer`;;'\ 'loadf `PP_parser/PP_parser`;;'\ 'compilet `PP_hol/hol_trees`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ..................................................................................................................() : void #.................................................................................................................................................() : void # New constructors declared: No_types : type_selection Hidden_types : type_selection Useful_types : type_selection All_types : type_selection type_to_print_tree = - : (type -> print_tree) term_to_print_tree = - : (bool -> type_selection -> term -> print_tree) thm_to_print_tree = - : (bool -> bool -> type_selection -> thm -> print_tree) Calling Lisp compiler File PP_hol/hol_trees compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/PP_printer`;;'\ 'loadf `PP_parser/PP_parser`;;'\ 'loadf `PP_hol/hol_trees`;;'\ 'compilet `PP_hol/precedence`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ..................................................................................................................() : void #.................................................................................................................................................() : void #....() : void type_prec = - : (string -> int) min_type_prec = 0 : int max_type_prec = 400 : int term_prec = - : (string -> int) min_term_prec = 0 : int max_term_prec = 1700 : int Calling Lisp compiler File PP_hol/precedence compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/PP_printer`;;'\ 'loadf `PP_parser/PP_parser`;;'\ 'PP_to_ML false `PP_hol/hol_type` ``;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ..................................................................................................................() : void #.................................................................................................................................................() : void #() : void echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/PP_printer`;;'\ 'loadf `PP_parser/PP_parser`;;'\ 'loadf `PP_hol/hol_trees`;;'\ 'loadf `PP_hol/precedence`;;'\ 'compilet `PP_hol/hol_type_pp`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ..................................................................................................................() : void #.................................................................................................................................................() : void #....() : void ......() : void hol_type_rules = [((`type`, (Const_name(`VAR`, [Patt_child(Var_name(`op`, []))])), -), [], PF(H_box[(0, PO_leaf(`op`, -))])); ((`type`, (Const_name(`OP`, [Patt_child(Var_name(`op`, []))])), -), [], PF(H_box[(0, PO_leaf(`op`, -))])); ((`type`, (Const_name(`OP`, [Patt_child(Var_name(`op`, [])); Patt_child(Var_child `type1`); Patt_child(Var_child `type2`)])), -), [], PF(H_box[(0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `(`)])))); (0, PO_format(PF(HV_box[((1, (Abs 3), 0), PO_format(PF(H_box[(1, PO_subcall((`type1`, -), [(`prec`, -)])); (1, PO_leaf(`op`, -))]))); ((1, (Abs 3), 0), PO_subcall((`type2`, -), [(`prec`, -)]))]))); (0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `)`)]))))])); ((`type`, (Const_name(`OP`, [Patt_child(Var_name(`op`, [])); Var_children `types`; Patt_child(Var_child `type`)])), -), [], PF(HV_box[((0, (Abs 3), 0), PO_format(PF(H_box[(0, PO_constant `(`); (0, PO_format(PF(HV_box[((0, (Inc 3), 0), PO_expand(H_box[(0, PO_subcall((`types`, -), [(`prec`, -)])); (0, PO_constant `,`)])); ((0, (Inc 3), 0), PO_subcall((`type`, -), [(`prec`, -)]))]))); (0, PO_constant `)`)]))); ((0, (Abs 3), 0), PO_leaf(`op`, -))])); ((`type`, (Const_name(`type`, [Patt_child(Var_child `type`)])), -), [], PF(H_box[(0, PO_constant `":`); (0, PO_subcall((`type`, -), [(`prec`, -)])); (0, PO_constant `"`)])); ((`term`, (Var_child `type`), -), [], PF(H_box[(0, PO_context_subcall(`type`, (`type`, -), [(`prec`, -)]))]))] : print_rule list hol_type_rules_fun = - : print_rule_function Calling Lisp compiler File PP_hol/hol_type_pp compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/PP_printer`;;'\ 'loadf `PP_parser/PP_parser`;;'\ 'PP_to_ML false `PP_hol/hol_term` ``;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ..................................................................................................................() : void #.................................................................................................................................................() : void #() : void echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/PP_printer`;;'\ 'loadf `PP_parser/PP_parser`;;'\ 'loadf `PP_hol/hol_trees`;;'\ 'loadf `PP_hol/precedence`;;'\ 'loadf `PP_hol/hol_type_pp`;;'\ 'compilet `PP_hol/hol_term_pp`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ..................................................................................................................() : void #.................................................................................................................................................() : void #....() : void ......() : void ..() : void hol_term_rules = [((`term`, (Const_name(`CONST`, [Patt_child(Const_name(`NIL`, [])); Wild_children])), -), [], PF(H_box[(0, PO_constant `[]`)])); ((`term`, (Const_name(`VAR`, [Patt_child(Var_name(`var`, []))])), -), [], PF(H_box[(0, PO_leaf(`var`, -))])); ((`term`, (Const_name(`VAR`, [Patt_child(Var_name(`var`, [])); Patt_child(Const_name(`type`, [Patt_child(Var_child `type`)]))])), -), [], PF(H_box[(0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `(`)])))); (0, PO_format(PF(HV_box[((0, (Abs 0), 0), PO_leaf(`var`, -)); ((0, (Abs 0), 0), PO_format(PF(H_box[(0, PO_constant `:`); (0, PO_subcall((`type`, -), []))])))]))); (0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `)`)]))))])); ((`term`, (Const_name(`CONST`, [Patt_child(Var_name(`const`, []))])), -), [], PF(H_box[(0, PO_leaf(`const`, -))])); ((`term`, (Const_name(`CONST`, [Patt_child(Var_name(`const`, [])); Patt_child(Const_name(`type`, [Patt_child(Var_child `type`)]))])), -), [], PF(H_box[(0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `(`)])))); (0, PO_format(PF(HV_box[((0, (Abs 0), 0), PO_leaf(`const`, -)); ((0, (Abs 0), 0), PO_format(PF(H_box[(0, PO_constant `:`); (0, PO_subcall((`type`, -), []))])))]))); (0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `)`)]))))])); ((`term`, (Print_loop((Const_name(`COMB`, [Patt_child(Const_name(`COMB`, [Patt_child(Const_name(`CONST`, [Patt_child(Var_name(`op`, [])); Wild_children])); Patt_child(Var_child `comps`)])); Patt_child(Link_child(((Val 1), Default), [`op`]))])), Var_child `comp`)), -), [], PF(H_box[(0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `(`)])))); (0, PO_format(PF(HV_box[((0, (Abs 0), 0), PO_expand(H_box[(0, PO_subcall((`comps`, -), [(`prec`, -)])); (0, PO_leaf(`op`, -))])); ((0, (Abs 0), 0), PO_subcall((`comp`, -), [(`prec`, -)]))]))); (0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `)`)]))))])); ((`term`, (Print_loop((Const_name(`COMB`, [Patt_child(Const_name(`COMB`, [Patt_child(Const_name(`CONST`, [Patt_child(Var_name(`op`, [])); Wild_children])); Patt_child(Var_child `args`)])); Patt_child(Link_child(((Val 1), Default), [`op`]))])), Var_child `arg`)), -), [], PF(H_box[(0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `(`)])))); (0, PO_format(PF(HoV_box[((1, (Abs 0), 0), PO_expand(HV_box[((1, (Abs 0), 0), PO_subcall((`args`, -), [(`prec`, -)])); ((1, (Abs 0), 0), PO_leaf(`op`, -))])); ((1, (Abs 0), 0), PO_subcall((`arg`, -), [(`prec`, -)]))]))); (0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `)`)]))))])); ((`term`, (Const_name(`COMB`, [Patt_child(Const_name(`COMB`, [Patt_child(Const_name(`CONST`, [Patt_child(Var_name(`op`, [])); Wild_children])); Patt_child(Var_child `arg1`)])); Patt_child(Var_child `arg2`)])), -), [], PF(H_box[(0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `(`)])))); (0, PO_format(PF(HV_box[((1, (Abs 3), 0), PO_format(PF(H_box[(1, PO_subcall((`arg1`, -), [(`prec`, -)])); (1, PO_leaf(`op`, -))]))); ((1, (Abs 3), 0), PO_subcall((`arg2`, -), [(`prec`, -)]))]))); (0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `)`)]))))])); ((`term`, (Const_name(`COMB`, [Patt_child(Const_name(`CONST`, [Patt_child(Var_name(`op`, [])); Wild_children])); Patt_child(Var_child `arg`)])), -), [], PF(H_box[(0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `(`)])))); (0, PO_leaf(`op`, -)); (0, PO_subcall((`arg`, -), [(`prec`, -)])); (0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `)`)]))))])); ((`term`, (Print_loop((Const_name(`COMB`, [Patt_child(Const_name(`CONST`, [Patt_child(Var_name(`op`, [])); Wild_children])); Patt_child(Const_name(`ABS`, [Patt_child(Var_child `bvs`); Patt_child(Link_child(((Val 1), Default), [`op`]))]))])), Var_child `body`)), -), [], PF(H_box[(0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `(`)])))); (0, PO_format(PF(HV_box[((1, (Abs 3), 0), PO_format(PF(H_box[(0, PO_leaf(`op`, -)); (0, PO_format(PF(HV_box[((1, (Abs 0), 0), PO_subcall((`bvs`, -), [(`prec`, -)]))]))); (0, PO_constant `.`)]))); ((1, (Abs 3), 0), PO_subcall((`body`, -), [(`prec`, -)]))]))); (0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `)`)]))))])); ((`term`, (Print_loop((Const_name(`ABS`, [Patt_child(Var_child `bvs`); Patt_child(Link_child(((Val 1), Default), []))])), Var_child `body`)), -), [], PF(H_box[(0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `(`)])))); (0, PO_format(PF(HV_box[((1, (Abs 3), 0), PO_format(PF(H_box[(0, PO_constant `\`); (0, PO_format(PF(HV_box[((1, (Abs 0), 0), PO_subcall((`bvs`, -), [(`prec`, -)]))]))); (0, PO_constant `.`)]))); ((1, (Abs 3), 0), PO_subcall((`body`, -), [(`prec`, -)]))]))); (0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `)`)]))))])); ((`term`, (Const_name(`COMB`, [Patt_child(Const_name(`COMB`, [Patt_child(Const_name(`COMB`, [Patt_child(Const_name(`CONST`, [Patt_child(Const_name(`COND`, [])); Wild_children])); Patt_child(Var_child `cond`)])); Patt_child(Var_child `x`)])); Patt_child(Var_child `y`)])), -), [], PF(H_box[(0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `(`)])))); (0, PO_format(PF(HoV_box[((1, (Abs 0), 0), PO_format(PF(HV_box[((1, (Abs 0), 0), PO_subcall((`cond`, -), [(`prec`, -)])); ((1, (Abs 0), 0), PO_constant `=>`)]))); ((1, (Abs 0), 0), PO_format(PF(HV_box[((1, (Abs 0), 0), PO_subcall((`x`, -), [(`prec`, -)])); ((1, (Abs 0), 0), PO_constant `|`)]))); ((1, (Abs 0), 0), PO_subcall((`y`, -), [(`prec`, -)]))]))); (0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `)`)]))))])); ((`term_let`, (Print_loop((Const_name(`ABS`, [Patt_child(Var_child `args`); Patt_child(Link_child(((Default), Default), []))])), Wild_child)), -), [], PF(H_box[(1, PO_context_subcall(`term`, (`args`, -), []))])); ((`term`, (Print_loop((Const_name(`COMB`, [Patt_child(Const_name(`COMB`, [Patt_child(Const_name(`CONST`, [Patt_child(Const_name(`LET`, [])); Wild_children])); Patt_child(Print_link((((Default), Default), []), Const_name(`COMB`, [Patt_child(Const_name(`COMB`, [Patt_child(Const_name(`CONST`, [Patt_child(Const_name(`LET`, [])); Wild_children])); Patt_child (Wild_child)])); Patt_child (Wild_child)])))])); Patt_child(Print_label(`argsl`, Print_loop((Const_name(`ABS`, [Patt_child (Wild_child); Patt_child(Link_child(((Default), Default), []))])), Var_child `letbodyl`)))])), Const_name(`COMB`, [Patt_child(Const_name(`COMB`, [Patt_child(Const_name(`CONST`, [Patt_child(Const_name(`LET`, [])); Wild_children])); Patt_child(Const_name(`ABS`, [Patt_child(Var_child `bv`); Patt_child(Print_loop((Const_name(`ABS`, [Patt_child(Var_child `bvl`); Patt_child(Link_child(((Default), Default), []))])), Var_child `body`))]))])); Patt_child(Print_label(`args`, Print_loop((Const_name(`ABS`, [Patt_child (Wild_child); Patt_child(Link_child(((Default), Default), []))])), Var_child `letbody`)))]))), -), [(`argsl`, -); (`letbodyl`, -)], PF(H_box[(0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `(`)])))); (0, PO_format(PF(HoV_box[((1, (Abs 0), 0), PO_format(PF(HV_box[((1, (Abs 3), 0), PO_format(PF(H_box[(1, PO_constant `let`); (1, PO_subcall((`bv`, -), [(`prec`, -)])); (1, PO_context_subcall(`term_let`, (`args`, -), [(`prec`, -)])); (1, PO_constant `=`)]))); ((1, (Abs 3), 0), PO_subcall((`letbody`, -), [(`prec`, -)]))]))); ((1, (Abs 0), 0), PO_expand(HV_box[((1, (Abs 3), 0), PO_expand(H_box[(1, PO_constant `and`); (1, PO_subcall((`bvl`, -), [(`prec`, -)])); (1, PO_context_subcall(`term_let`, (`argsl`, -), [(`prec`, -)])); (1, PO_constant `=`)])); ((1, (Abs 3), 0), PO_subcall((`letbodyl`, -), [(`prec`, -)]))])); ((1, (Abs 0), 0), PO_format(PF(H_box[(1, PO_constant `in`); (1, PO_subcall((`body`, -), [(`prec`, -)]))])))]))); (0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `)`)]))))])); ((`term`, (Print_loop((Const_name(`COMB`, [Patt_child(Const_name(`COMB`, [Patt_child(Const_name(`CONST`, [Patt_child(Const_name(`CONS`, [])); Wild_children])); Patt_child(Var_child `elems`)])); Patt_child(Print_link((((Default), Default), []), Const_name(`COMB`, [Wild_children])))])), Const_name(`COMB`, [Patt_child(Const_name(`COMB`, [Patt_child(Const_name(`CONST`, [Patt_child(Const_name(`CONS`, [])); Wild_children])); Patt_child(Var_child `elem`)])); Patt_child(Const_name(`CONST`, [Patt_child(Const_name(`NIL`, [])); Wild_children]))]))), -), [], PF(H_box[(0, PO_constant `[`); (0, PO_format(PF(HoV_box[((0, (Abs 0), 0), PO_expand(H_box[(0, PO_subcall((`elems`, -), [(`prec`, -)])); (0, PO_constant `;`)])); ((0, (Abs 0), 0), PO_subcall((`elem`, -), [(`prec`, -)]))]))); (0, PO_constant `]`)])); ((`term`, (Print_loop((Const_name(`COMB`, [Patt_child(Link_child(((Val 1), Default), [])); Patt_child(Var_child `rands`)])), Var_child `rator`)), -), [], PF(H_box[(0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `(`)])))); (0, PO_format(PF(HV_box[((1, (Abs 3), 0), PO_subcall((`rator`, -), [(`prec`, -)])); ((1, (Abs 3), 0), PO_subcall((`rands`, -), [(`prec`, -)]))]))); (0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `)`)]))))])); ((`term`, (Const_name(`term`, [Patt_child(Var_child `term`)])), -), [], PF(H_box[(0, PO_constant `"`); (0, PO_subcall((`term`, -), [(`prec`, -)])); (0, PO_constant `"`)])); ((`thm`, (Var_child `term`), -), [], PF(H_box[(0, PO_context_subcall(`term`, (`term`, -), [(`prec`, -)]))]))] : print_rule list hol_term_rules_fun = - : print_rule_function Calling Lisp compiler File PP_hol/hol_term_pp compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/PP_printer`;;'\ 'loadf `PP_parser/PP_parser`;;'\ 'PP_to_ML false `PP_hol/hol_thm` ``;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ..................................................................................................................() : void #.................................................................................................................................................() : void #() : void echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/PP_printer`;;'\ 'loadf `PP_parser/PP_parser`;;'\ 'loadf `PP_hol/hol_trees`;;'\ 'loadf `PP_hol/precedence`;;'\ 'loadf `PP_hol/hol_type_pp`;;'\ 'loadf `PP_hol/hol_term_pp`;;'\ 'compilet `PP_hol/hol_thm_pp`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ..................................................................................................................() : void #.................................................................................................................................................() : void #....() : void ......() : void ..() : void ..() : void hol_thm_rules = [((`thm`, (Const_name(`dot`, [])), -), [], PF(H_box[(0, PO_constant `.`)])); ((`thm`, (Const_name(`term`, [Patt_child(Var_child `term`)])), -), [], PF(H_box[(0, PO_subcall((`term`, -), []))])); ((`thm`, (Const_name(`thm`, [Patt_child(Var_child `concl`); Patt_child(Const_name(`dots`, [Var_children `dots`]))])), -), [], PF(H_box[(1, PO_format(PF(H_box[(0, PO_subcall((`dots`, -), []))]))); (1, PO_constant `|-`); (1, PO_subcall((`concl`, -), []))])); ((`thm`, (Const_name(`thm`, [Patt_child(Var_child `concl`); Patt_child(Const_name(`hyp`, [Var_children `hyps`; Patt_child(Var_child `hyp`)]))])), -), [], PF(HoV_box[((1, (Abs 0), 0), PO_expand(H_box[(0, PO_subcall((`hyps`, -), [])); (0, PO_constant `,`)])); ((1, (Abs 0), 0), PO_subcall((`hyp`, -), [])); ((1, (Abs 0), 0), PO_format(PF(H_box[(1, PO_constant `|-`); (1, PO_subcall((`concl`, -), []))])))])); ((`thm`, (Const_name(`thm`, [Patt_child(Var_child `concl`); Patt_child(Const_name(`hyp`, []))])), -), [], PF(H_box[(1, PO_constant `|-`); (1, PO_subcall((`concl`, -), []))]))] : print_rule list hol_thm_rules_fun = - : print_rule_function Calling Lisp compiler File PP_hol/hol_thm_pp compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/PP_printer`;;'\ 'loadf `PP_parser/PP_parser`;;'\ 'loadf `PP_hol/hol_trees`;;'\ 'loadf `PP_hol/precedence`;;'\ 'loadf `PP_hol/hol_type_pp`;;'\ 'loadf `PP_hol/hol_term_pp`;;'\ 'loadf `PP_hol/hol_thm_pp`;;'\ 'compilet `PP_hol/new_printers`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ..................................................................................................................() : void #.................................................................................................................................................() : void #....() : void ......() : void ..() : void ..() : void ..() : void hol_rules_fun = - : print_rule_function pp_convert_type = - : (type -> print_tree) pp_convert_term = - : (term -> print_tree) pp_convert_thm = - : (thm -> print_tree) pp_convert_all_thm = - : (thm -> print_tree) pp_print_type = - : (type -> void) pp_print_term = - : (term -> void) pp_print_thm = - : (thm -> void) pp_print_all_thm = - : (thm -> void) pp_print_theory = - : (string -> void) Calling Lisp compiler File PP_hol/new_printers compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `PP_printer/PP_printer`;;'\ 'loadf `PP_parser/PP_parser`;;'\ 'loadf `PP_hol/hol_trees`;;'\ 'loadf `PP_hol/precedence`;;'\ 'loadf `PP_hol/hol_type_pp`;;'\ 'loadf `PP_hol/hol_term_pp`;;'\ 'loadf `PP_hol/hol_thm_pp`;;'\ 'loadf `PP_hol/new_printers`;;'\ 'compilet `PP_hol/link_to_hol`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool ..................................................................................................................() : void #.................................................................................................................................................() : void #....() : void ......() : void ..() : void ..() : void ..() : void ..........() : void - : (type -> void) - : (term -> void) - : (thm -> void) - : (term -> void) Calling Lisp compiler File PP_hol/link_to_hol compiled () : void #===> library prettyp rebuilt make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/prettyp' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/trs' echo 'set_flag(`abort_when_fail`,true);;'\ 'compilet `extents`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Calling Lisp compiler File extents compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `extents`;;'\ 'compilet `sets`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool () : void no_rep = - : (* list -> bool) remove_rep = - : (* list -> * list) is_subset = - : (* list -> * list -> bool) Calling Lisp compiler File sets compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `extents`;;'\ 'loadf `sets`;;'\ 'compilet `extract`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool () : void ...() : void get_ids = - : (term -> (term list # term list # term list)) get_consts = - : (term -> term list) get_freevars = - : (term -> term list) get_boundvars = - : (term -> term list) get_types = - : (term -> type list) is_primtype = - : (type -> bool) subtypes = - : (type -> type list) prim_subtypes = - : (type -> type list) get_primtypes = - : (term -> type list) get_primvartypes = - : (term -> type list) Calling Lisp compiler File extract compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `extents`;;'\ 'loadf `sets`;;'\ 'loadf `extract`;;'\ 'compilet `struct`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool () : void ...() : void ..........() : void merge = - : ((* # **) list -> (* # **) list -> (* # **) list) join = - : (((term # term) list # (type # type) list) -> ((term # term) list # (type # type) list) -> ((term # term) list # (type # type) list)) remove_bv = - : (term -> ((term # term) list # (type # type) list) -> ((term # term) list # (type # type) list)) match_type = - : (type -> type -> (type # type) list) match_term = - : (term -> term -> ((term # term) list # (type # type) list)) match_internal_term = - : (term -> term -> ((term # term) list # (type # type) list)) show_wildvar = - : (wildvar -> term) make_wildvar = - : (term -> wildvar) wildvarlist = - : (term list -> wildvar list) show_wildtype = - : (wildtype -> type) make_wildtype = - : (type -> wildtype) wildtypelist = - : (type list -> wildtype list) show_termpattern = - : (termpattern -> (term # wildvar list # wildtype list)) make_termpattern = - : ((term # wildvar list # wildtype list) -> termpattern) show_full_termpattern = - : (termpattern -> (term # term list # type list)) make_full_termpattern = - : ((term # term list # type list) -> termpattern) autotermpattern = - : (term -> termpattern) show_matching = - : (matching -> ((wildvar # term) list # (wildtype # type) list)) null_matching = - : matching make_matching = - : (termpattern -> term -> matching) join_matchings = - : (matching -> matching -> matching) show_full_matching = - : (matching -> ((term # term) list # (type # type) list)) match_of_var = - : (matching -> wildvar -> term) match_of_type = - : (matching -> wildtype -> type) New constructors declared: Nomatch : result_of_match Match : ((matching # (void -> result_of_match)) -> result_of_match) Match_null = Match((-), -) : result_of_match approms = - : ((void -> result_of_match) -> (void -> result_of_match) -> void -> result_of_match) bool_to_rom = - : (bool -> result_of_match) rom_to_bool = - : (result_of_match -> bool) type side_condition defined Calling Lisp compiler File struct compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `extents`;;'\ 'loadf `sets`;;'\ 'loadf `extract`;;'\ 'loadf `struct`;;'\ 'compilet `name`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool () : void ...() : void ..........() : void ........................() : void show_wildchar = - : (wildchar -> string) make_wildchar = - : (string -> wildchar) show_namepattern = - : (namepattern -> (string # wildchar # wildchar)) make_namepattern = - : ((string # wildchar # wildchar) -> namepattern) show_full_namepattern = - : (namepattern -> (string # string # string)) make_full_namepattern = - : ((string # string # string) -> namepattern) wildchar1 = `?` : string wildcharn = `*` : string autonamepattern = - : (string -> namepattern) namematch = - : (namepattern -> string -> bool) Calling Lisp compiler File name compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `extents`;;'\ 'loadf `sets`;;'\ 'loadf `extract`;;'\ 'loadf `struct`;;'\ 'loadf `name`;;'\ 'compilet `thmkind`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool () : void ...() : void ..........() : void ........................() : void .......() : void New constructors declared: Axiom : thmkind Definition : thmkind Theorem : thmkind Calling Lisp compiler File thmkind compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `extents`;;'\ 'loadf `sets`;;'\ 'loadf `extract`;;'\ 'loadf `struct`;;'\ 'loadf `name`;;'\ 'loadf `thmkind`;;'\ 'compilet `matching`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool () : void ...() : void ..........() : void ........................() : void .......() : void .() : void type foundthm defined New constructors declared: Kind' : (thmkind -> thmpattern_rep) Thryname' : (namepattern -> thmpattern_rep) Thmname' : (namepattern -> thmpattern_rep) Conc' : (termpattern -> thmpattern_rep) HypP' : (termpattern list -> thmpattern_rep) HypF' : (termpattern list -> thmpattern_rep) Side' : (side_condition -> thmpattern_rep) Andalso' : ((thmpattern_rep # thmpattern_rep) -> thmpattern_rep) Orelse' : ((thmpattern_rep # thmpattern_rep) -> thmpattern_rep) Not' : (thmpattern_rep -> thmpattern_rep) Where' : ((thmpattern_rep # thmpattern_rep) -> thmpattern_rep) show_thmpattern = - : (thmpattern -> thmpattern_rep) Kind = - : (thmkind -> thmpattern) Thryname = - : (namepattern -> thmpattern) Thmname = - : (namepattern -> thmpattern) Conc = - : (termpattern -> thmpattern) HypP = - : (termpattern list -> thmpattern) HypF = - : (termpattern list -> thmpattern) Side = - : (side_condition -> thmpattern) Andalso = - : ((thmpattern # thmpattern) -> thmpattern) Orelse = - : ((thmpattern # thmpattern) -> thmpattern) Not = - : (thmpattern -> thmpattern) Where = - : ((thmpattern # thmpattern) -> thmpattern) thmmatch = - : (thmpattern -> foundthm -> bool) () : void () : void () : void thmfilter = - : (thmpattern -> foundthm list -> foundthm list) Calling Lisp compiler File matching compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `extents`;;'\ 'loadf `sets`;;'\ 'loadf `extract`;;'\ 'loadf `struct`;;'\ 'loadf `name`;;'\ 'loadf `thmkind`;;'\ 'loadf `matching`;;'\ 'compilet `sidecond`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool () : void ...() : void ..........() : void ........................() : void .......() : void .() : void .......() : void containsfn = - : (termpattern -> term -> void -> result_of_match) () : void Contains = - : (wildvar -> termpattern -> thmpattern) () : void contains = - : (term -> term -> thmpattern) () : void Matches = - : (wildvar -> termpattern -> thmpattern) () : void matches = - : (term -> term -> thmpattern) dest_binder = - : (term -> (term # term)) strip_binders = - : (term -> term) () : void Has_body = - : (wildvar -> termpattern -> thmpattern) () : void has_body = - : (term -> term -> thmpattern) Test1term = - : ((term -> bool) -> wildvar -> thmpattern) test1term = - : ((term -> bool) -> term -> thmpattern) Test1type = - : ((type -> bool) -> wildtype -> thmpattern) test1type = - : ((type -> bool) -> type -> thmpattern) Test2terms = - : ((term -> term -> bool) -> wildvar -> wildvar -> thmpattern) test2terms = - : ((term -> term -> bool) -> term -> term -> thmpattern) Test2types = - : ((type -> type -> bool) -> wildtype -> wildtype -> thmpattern) test2types = - : ((type -> type -> bool) -> type -> type -> thmpattern) Calling Lisp compiler File sidecond compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `extents`;;'\ 'loadf `sets`;;'\ 'loadf `extract`;;'\ 'loadf `struct`;;'\ 'loadf `name`;;'\ 'loadf `thmkind`;;'\ 'loadf `matching`;;'\ 'loadf `sidecond`;;'\ 'compilet `search`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool () : void ...() : void ..........() : void ........................() : void .......() : void .() : void .......() : void .......................() : void get_theorems = - : (string -> foundthm list) New constructors declared: Theory : (string -> searchpath) Ancestors : ((string list # string list) -> searchpath) New constructors declared: List : (foundthm list -> source) Paths : (searchpath list -> source) do_once_only = - : (* list -> * list) searchseq = - : (string list -> string list -> string list) flatten_paths = - : (searchpath list -> string list) New constructors declared: Endofsearch : (foundthm list -> searchstep) Step : ((foundthm list # (void -> searchstep)) -> searchstep) find_theorems = - : (thmpattern -> source -> searchstep) show_step = - : (searchstep -> foundthm list) continue_search = - : (searchstep -> searchstep) Calling Lisp compiler File search compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf `extents`;;'\ 'loadf `sets`;;'\ 'loadf `extract`;;'\ 'loadf `struct`;;'\ 'loadf `name`;;'\ 'loadf `thmkind`;;'\ 'loadf `matching`;;'\ 'loadf `sidecond`;;'\ 'loadf `search`;;'\ 'compilet `user`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool () : void ...() : void ..........() : void ........................() : void .......() : void .() : void .......() : void .......................() : void ..........() : void FT = - : (thmpattern -> source -> searchstep) CS = - : (searchstep -> searchstep) run_search = - : (searchstep -> foundthm list) full_search = - : (thmpattern -> source -> foundthm list) search_until_find = - : (searchstep -> searchstep) search_n_theories = - : (int -> searchstep -> searchstep) search_n_until_find = - : (int -> searchstep -> searchstep) ancestors_excluding = - : (string list -> string list -> searchpath) Ancestry = - : (string list -> searchpath) List_from = - : (searchstep -> source) kind = - : (thmkind -> thmpattern) thryname = - : (string -> thmpattern) thmname = - : (string -> thmpattern) conc = - : (term -> thmpattern) hypP = - : (term list -> thmpattern) hypF = - : (term list -> thmpattern) side = - : (side_condition -> thmpattern) BigAnd = - : (thmpattern list -> thmpattern) BigOr = - : (thmpattern list -> thmpattern) Calling Lisp compiler File user compiled () : void #===> library trs rebuilt make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/trs' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/latex-hol' echo 'set_flag(`abort_when_fail`,true);;'\ 'compilet `filters`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool spec_list = [(`_`, `\US `); (`#`, `\SH `); (`&`, `\AM `); (`%`, `\PC `); (`$`, `\DO `); (`\`, `\BS `); (`'`, `\PR `); (`~`, `\TI `); (`*`, `\AS `); (`<`, `\LES `); (`|`, `\BA `); (`>`, `\GRE `); (`[`, `\LB `); (`]`, `\RB `); (`^`, `\CI `); (`{`, `\LC `); (`}`, `\RC `)] : (string # string) list do_char = - : (string -> string) filter_id = - : (string -> string) dovar = - : (string -> string) symb_of = - : (string -> string) doinfix = - : (string -> string) Calling Lisp compiler File filters compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf(library_pathname() ^ `/prettyp/PP_printer`);;'\ 'loadf(library_pathname() ^ `/prettyp/PP_parser`);;'\ 'compilet `hol_trees`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Updating help search path ....................................................................................................................() : void #Updating help search path ...................................................................................................................................................() : void # New constructors declared: No_types : type_selection Hidden_types : type_selection Useful_types : type_selection All_types : type_selection type_to_print_tree = - : (type -> print_tree) term_to_print_tree = - : (bool -> type_selection -> term -> print_tree) thm_to_print_tree = - : (bool -> bool -> type_selection -> thm -> print_tree) Calling Lisp compiler File hol_trees compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf(library_pathname() ^ `/prettyp/PP_printer`);;'\ 'loadf(library_pathname() ^ `/prettyp/PP_parser`);;'\ 'loadf `hol_trees`;;'\ 'compilet `precedence`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Updating help search path ....................................................................................................................() : void #Updating help search path ...................................................................................................................................................() : void #....() : void is_res_quan = - : (string -> bool) type_prec = - : (string -> int) min_type_prec = 0 : int max_type_prec = 400 : int term_prec = - : (string -> int) min_term_prec = 0 : int max_term_prec = 1800 : int Calling Lisp compiler File precedence compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf(library_pathname() ^ `/prettyp/PP_printer`);;'\ 'loadf(library_pathname() ^ `/prettyp/PP_parser`);;'\ 'PP_to_ML false `latex_type` ``;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Updating help search path ....................................................................................................................() : void #Updating help search path ...................................................................................................................................................() : void #() : void echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf(library_pathname() ^ `/prettyp/PP_printer`);;'\ 'loadf(library_pathname() ^ `/prettyp/PP_parser`);;'\ 'loadf `filters`;;'\ 'loadf `hol_trees`;;'\ 'loadf `precedence`;;'\ 'compilet `latex_type_pp`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Updating help search path ....................................................................................................................() : void #Updating help search path ...................................................................................................................................................() : void #......() : void ....() : void .......() : void latex_type_rules = [((`type`, (Const_name(`VAR`, [Patt_child(Var_name(`op`, []))])), -), [], PF(H_box[(0, PO_leaf(`op`, -))])); ((`type`, (Const_name(`OP`, [Patt_child(Var_name(`op`, []))])), -), [], PF(H_box[(0, PO_leaf(`op`, -))])); ((`type`, (Const_name(`OP`, [Patt_child(Var_name(`op`, [])); Patt_child(Var_child `type1`); Patt_child(Var_child `type2`)])), -), [], PF(H_box[(0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `(`)])))); (0, PO_format(PF(HV_box[((1, (Abs 3), 0), PO_format(PF(H_box[(1, PO_subcall((`type1`, -), [(`prec`, -)])); (1, PO_leaf(`op`, -))]))); ((1, (Abs 3), 0), PO_subcall((`type2`, -), [(`prec`, -)]))]))); (0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `)`)]))))])); ((`type`, (Const_name(`OP`, [Patt_child(Var_name(`op`, [])); Var_children `types`; Patt_child(Var_child `type`)])), -), [], PF(HV_box[((0, (Abs 3), 0), PO_format(PF(H_box[(0, PO_constant `(`); (0, PO_format(PF(HV_box[((0, (Inc 3), 0), PO_expand(H_box[(0, PO_subcall((`types`, -), [(`prec`, -)])); (0, PO_constant `,`)])); ((0, (Inc 3), 0), PO_subcall((`type`, -), [(`prec`, -)]))]))); (0, PO_constant `)`)]))); ((0, (Abs 3), 0), PO_leaf(`op`, -))])); ((`type`, (Const_name(`type`, [Patt_child(Var_child `type`)])), -), [], PF(H_box[(0, PO_constant `":`); (0, PO_subcall((`type`, -), [(`prec`, -)])); (0, PO_constant `"`)])); ((`term`, (Var_child `type`), -), [], PF(H_box[(0, PO_context_subcall(`type`, (`type`, -), [(`prec`, -)]))]))] : print_rule list latex_type_rules_fun = - : print_rule_function Calling Lisp compiler File latex_type_pp compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf(library_pathname() ^ `/prettyp/PP_printer`);;'\ 'loadf(library_pathname() ^ `/prettyp/PP_parser`);;'\ 'PP_to_ML false `latex_thm` ``;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Updating help search path ....................................................................................................................() : void #Updating help search path ...................................................................................................................................................() : void #() : void echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf(library_pathname() ^ `/prettyp/PP_printer`);;'\ 'loadf(library_pathname() ^ `/prettyp/PP_parser`);;'\ 'PP_to_ML false `latex_term` ``;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Updating help search path ....................................................................................................................() : void #Updating help search path ...................................................................................................................................................() : void #() : void echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf(library_pathname() ^ `/prettyp/PP_printer`);;'\ 'loadf(library_pathname() ^ `/prettyp/PP_parser`);;'\ 'loadf `filters`;;'\ 'loadf `hol_trees`;;'\ 'loadf `precedence`;;'\ 'loadf `latex_type_pp`;;'\ 'compilet `latex_term_pp`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Updating help search path ....................................................................................................................() : void #Updating help search path ...................................................................................................................................................() : void #......() : void ....() : void .......() : void ..() : void latex_term_rules = [((`term`, (Const_name(`CONST`, [Patt_child(Const_name(`NIL`, [])); Wild_children])), -), [], PF(H_box[(0, PO_constant `\NIL `)])); ((`term`, (Const_name(`VAR`, [Patt_child(Var_name(`var`, []))])), -), [], PF(H_box[(0, PO_leaf(`var`, -))])); ((`term`, (Const_name(`VAR`, [Patt_child(Var_name(`var`, [])); Patt_child(Const_name(`type`, [Patt_child(Var_child `type`)]))])), -), [], PF(H_box[(0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `(`)])))); (0, PO_format(PF(HV_box[((0, (Abs 0), 0), PO_leaf(`var`, -)); ((0, (Abs 0), 0), PO_format(PF(H_box[(0, PO_constant `:`); (0, PO_subcall((`type`, -), []))])))]))); (0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `)`)]))))])); ((`term`, (Const_name(`CONST`, [Patt_child(Var_name(`const`, []))])), -), [], PF(H_box[(0, PO_leaf(`const`, -))])); ((`term`, (Const_name(`CONST`, [Patt_child(Var_name(`const`, [])); Patt_child(Const_name(`type`, [Patt_child(Var_child `type`)]))])), -), [], PF(H_box[(0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `(`)])))); (0, PO_format(PF(HV_box[((0, (Abs 0), 0), PO_leaf(`const`, -)); ((0, (Abs 0), 0), PO_format(PF(H_box[(0, PO_constant `:`); (0, PO_subcall((`type`, -), []))])))]))); (0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `)`)]))))])); ((`term`, (Print_loop((Const_name(`COMB`, [Patt_child(Const_name(`COMB`, [Patt_child(Const_name(`CONST`, [Patt_child(Var_name(`op`, [])); Wild_children])); Patt_child(Var_child `comps`)])); Patt_child(Link_child(((Val 1), Default), [`op`]))])), Var_child `comp`)), -), [], PF(H_box[(0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `(`)])))); (0, PO_format(PF(HV_box[((0, (Abs 0), 0), PO_expand(H_box[(0, PO_subcall((`comps`, -), [(`prec`, -)])); (0, PO_leaf(`op`, -))])); ((0, (Abs 0), 0), PO_subcall((`comp`, -), [(`prec`, -)]))]))); (0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `)`)]))))])); ((`term`, (Print_loop((Const_name(`COMB`, [Patt_child(Const_name(`COMB`, [Patt_child(Const_name(`CONST`, [Patt_child(Var_name(`op`, [])); Wild_children])); Patt_child(Var_child `args`)])); Patt_child(Link_child(((Val 1), Default), [`op`]))])), Var_child `arg`)), -), [], PF(H_box[(0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `(`)])))); (0, PO_format(PF(HoV_box[((1, (Abs 0), 0), PO_constant `(`); ((1, (Abs 0), 0), PO_expand(HV_box[((1, (Abs 0), 0), PO_subcall((`args`, -), [(`prec`, -)])); ((1, (Abs 0), 0), PO_constant `)\:\CONST{EXP}\:(`)])); ((1, (Abs 0), 0), PO_subcall((`arg`, -), [(`prec`, -)])); ((1, (Abs 0), 0), PO_constant `)`)]))); (0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `)`)]))))])); ((`term`, (Print_loop((Const_name(`COMB`, [Patt_child(Const_name(`COMB`, [Patt_child(Const_name(`CONST`, [Patt_child(Var_name(`op`, [])); Wild_children])); Patt_child(Var_child `args`)])); Patt_child(Link_child(((Val 1), Default), [`op`]))])), Var_child `arg`)), -), [], PF(H_box[(0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `(`)])))); (0, PO_format(PF(HoV_box[((1, (Abs 0), 0), PO_expand(HV_box[((1, (Abs 0), 0), PO_subcall((`args`, -), [(`prec`, -)])); ((1, (Abs 0), 0), PO_leaf(`op`, -))])); ((1, (Abs 0), 0), PO_subcall((`arg`, -), [(`prec`, -)]))]))); (0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `)`)]))))])); ((`term`, (Const_name(`COMB`, [Patt_child(Const_name(`COMB`, [Patt_child(Const_name(`CONST`, [Patt_child(Var_name(`op`, [])); Wild_children])); Patt_child(Var_child `arg1`)])); Patt_child(Var_child `arg2`)])), -), [], PF(H_box[(0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `(`)])))); (0, PO_format(PF(HV_box[((1, (Abs 3), 0), PO_format(PF(H_box[(1, PO_subcall((`arg1`, -), [(`prec`, -)])); (1, PO_leaf(`op`, -))]))); ((1, (Abs 3), 0), PO_subcall((`arg2`, -), [(`prec`, -)]))]))); (0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `)`)]))))])); ((`term`, (Const_name(`COMB`, [Patt_child(Const_name(`CONST`, [Patt_child(Var_name(`op`, [])); Wild_children])); Patt_child(Var_child `arg`)])), -), [], PF(H_box[(0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `(`)])))); (0, PO_leaf(`op`, -)); (0, PO_subcall((`arg`, -), [(`prec`, -)])); (0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `)`)]))))])); ((`term`, (Print_loop((Const_name(`COMB`, [Patt_child(Const_name(`COMB`, [Patt_child(Const_name(`CONST`, [Patt_child(Var_name(`op`, [])); Wild_children])); Patt_child(Var_child `pred`)])); Patt_child(Const_name(`ABS`, [Patt_child(Var_child `bvs`); Patt_child(Link_child(((Val 1), Default), [`op`; `pred`]))]))])), Var_child `body`)), -), [(`bv`, -); (`bvs`, -)], PF(H_box[(0, PO_format(PF_branch((-), (PF(H_box[(0, PO_constant `(`)])), PF_empty))); (0, PO_format(PF(HV_box[((1, (Abs 3), 0), PO_format(PF(H_box[(0, PO_leaf(`op`, -)); (0, PO_format(PF(H_box[(1, PO_subcall((`bv`, -), [])); (1, PO_format(PF_branch((-), (PF_empty), PF(H_box[(1, PO_expand(H_box[(0, PO_constant `\,`); (0, PO_subcall((`bvs`, -), [(`prec`, -)]))]))]))))]))); (0, PO_constant `\RESDOT `); (0, PO_format(PF(H_box[(1, PO_subcall((`pred`, -), [(`prec`, -)]))]))); (0, PO_constant `\DOT`)]))); ((1, (Abs 3), 0), PO_subcall((`body`, -), [(`prec`, -)]))]))); (0, PO_format(PF_branch((-), (PF(H_box[(0, PO_constant `)`)])), PF_empty)))])); ((`term`, (Print_loop((Const_name(`COMB`, [Patt_child(Const_name(`CONST`, [Patt_child(Var_name(`op`, [])); Wild_children])); Patt_child(Const_name(`ABS`, [Patt_child(Var_child `bvs`); Patt_child(Link_child(((Val 1), Default), [`op`]))]))])), Var_child `body`)), -), [(`bv`, -); (`bvs`, -)], PF(H_box[(0, PO_format(PF_branch((-), (PF(H_box[(0, PO_constant `(`)])), PF_empty))); (0, PO_format(PF(HV_box[((1, (Abs 3), 0), PO_format(PF(H_box[(0, PO_leaf(`op`, -)); (0, PO_format(PF(H_box[(1, PO_subcall((`bv`, -), [])); (1, PO_format(PF_branch((-), (PF_empty), PF(H_box[(1, PO_expand(H_box[(0, PO_constant `\,`); (0, PO_subcall((`bvs`, -), [(`prec`, -)]))]))]))))]))); (0, PO_constant `\DOT`)]))); ((1, (Abs 3), 0), PO_subcall((`body`, -), [(`prec`, -)]))]))); (0, PO_format(PF_branch((-), (PF(H_box[(0, PO_constant `)`)])), PF_empty)))])); ((`term`, (Print_loop((Const_name(`ABS`, [Patt_child(Var_child `bvs`); Patt_child(Print_link((((Default), Default), []), Const_name(`ABS`, [Wild_children])))])), Const_name(`ABS`, [Patt_child(Var_child `bv`); Patt_child(Var_child `body`)]))), -), [], PF(H_box[(0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `(`)])))); (0, PO_format(PF(HV_box[((1, (Abs 3), 0), PO_format(PF(H_box[(1, PO_constant `\LAMBDA`); (1, PO_format(PF(H_box[(1, PO_expand(H_box[(1, PO_subcall((`bvs`, -), [(`prec`, -)])); (1, PO_constant `\,`)]))]))); (1, PO_subcall((`bv`, -), [])); (1, PO_constant `\DOT`)]))); ((1, (Abs 3), 0), PO_subcall((`body`, -), [(`prec`, -)]))]))); (0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `)`)]))))])); ((`term`, (Const_name(`COMB`, [Patt_child(Const_name(`COMB`, [Patt_child(Const_name(`COMB`, [Patt_child(Const_name(`CONST`, [Patt_child(Const_name(`COND`, [])); Wild_children])); Patt_child(Var_child `cond`)])); Patt_child(Var_child `x`)])); Patt_child(Var_child `y`)])), -), [], PF(H_box[(0, PO_constant `(`); (0, PO_format(PF(HoV_box[((1, (Abs 0), 0), PO_format(PF(HV_box[((1, (Abs 0), 0), PO_subcall((`cond`, -), [(`prec`, -)])); ((1, (Abs 0), 0), PO_constant `\Rightarrow `)]))); ((1, (Abs 0), 0), PO_format(PF(HV_box[((1, (Abs 0), 0), PO_subcall((`x`, -), [(`prec`, -)])); ((1, (Abs 0), 0), PO_constant `\mid `)]))); ((1, (Abs 0), 0), PO_subcall((`y`, -), [(`prec`, -)]))]))); (0, PO_constant `)`)])); ((`term_let`, (Print_loop((Const_name(`ABS`, [Patt_child(Var_child `args`); Patt_child(Link_child(((Default), Default), []))])), Wild_child)), -), [], PF(H_box[(1, PO_context_subcall(`term`, (`args`, -), []))])); ((`term`, (Print_loop((Const_name(`COMB`, [Patt_child(Const_name(`COMB`, [Patt_child(Const_name(`CONST`, [Patt_child(Const_name(`LET`, [])); Wild_children])); Patt_child(Print_link((((Default), Default), []), Const_name(`COMB`, [Patt_child(Const_name(`COMB`, [Patt_child(Const_name(`CONST`, [Patt_child(Const_name(`LET`, [])); Wild_children])); Patt_child (Wild_child)])); Patt_child (Wild_child)])))])); Patt_child(Print_label(`argsl`, Print_loop((Const_name(`ABS`, [Patt_child (Wild_child); Patt_child(Link_child(((Default), Default), []))])), Var_child `letbodyl`)))])), Const_name(`COMB`, [Patt_child(Const_name(`COMB`, [Patt_child(Const_name(`CONST`, [Patt_child(Const_name(`LET`, [])); Wild_children])); Patt_child(Const_name(`ABS`, [Patt_child(Var_child `bv`); Patt_child(Print_loop((Const_name(`ABS`, [Patt_child(Var_child `bvl`); Patt_child(Link_child(((Default), Default), []))])), Var_child `body`))]))])); Patt_child(Print_label(`args`, Print_loop((Const_name(`ABS`, [Patt_child (Wild_child); Patt_child(Link_child(((Default), Default), []))])), Var_child `letbody`)))]))), -), [(`argsl`, -); (`letbodyl`, -)], PF(H_box[(0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `(`)])))); (0, PO_format(PF(HoV_box[((1, (Abs 0), 0), PO_format(PF(HV_box[((1, (Abs 1), 0), PO_format(PF(H_box[(1, PO_constant `\KEYWD{let}\;`); (1, PO_subcall((`bv`, -), [(`prec`, -)])); (1, PO_context_subcall(`term_let`, (`args`, -), [(`prec`, -)])); (1, PO_constant `=`)]))); ((1, (Abs 1), 0), PO_subcall((`letbody`, -), [(`prec`, -)]))]))); ((1, (Abs 0), 0), PO_expand(HV_box[((1, (Abs 1), 0), PO_expand(HV_box[((1, (Abs 0), 0), PO_constant `\;\KEYWD{and}`); ((1, (Abs 0), 0), PO_subcall((`bvl`, -), [(`prec`, -)])); ((1, (Abs 0), 0), PO_context_subcall(`term_let`, (`argsl`, -), [(`prec`, -)])); ((1, (Abs 0), 0), PO_constant `=`)])); ((1, (Abs 1), 0), PO_subcall((`letbodyl`, -), [(`prec`, -)]))])); ((1, (Abs 0), 0), PO_format(PF(V_box[(((Abs 0), 0), PO_constant `\;\KEYWD{in}`); (((Abs 0), 0), PO_format(PF(HV_box[((1, (Abs 0), 0), PO_subcall((`body`, -), [(`prec`, -)]))])))])))]))); (0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `)`)]))))])); ((`term`, (Print_loop((Const_name(`COMB`, [Patt_child(Const_name(`COMB`, [Patt_child(Const_name(`CONST`, [Patt_child(Const_name(`CONS`, [])); Wild_children])); Patt_child(Var_child `elems`)])); Patt_child(Print_link((((Default), Default), []), Const_name(`COMB`, [Wild_children])))])), Const_name(`COMB`, [Patt_child(Const_name(`COMB`, [Patt_child(Const_name(`CONST`, [Patt_child(Const_name(`CONS`, [])); Wild_children])); Patt_child(Var_child `elem`)])); Patt_child(Const_name(`CONST`, [Patt_child(Const_name(`NIL`, [])); Wild_children]))]))), -), [], PF(H_box[(0, PO_constant `[`); (0, PO_format(PF(HoV_box[((0, (Abs 0), 0), PO_expand(H_box[(0, PO_subcall((`elems`, -), [(`prec`, -)])); (0, PO_constant `;`)])); ((0, (Abs 0), 0), PO_subcall((`elem`, -), [(`prec`, -)]))]))); (0, PO_constant `]`)])); ((`term`, (Print_loop((Const_name(`COMB`, [Patt_child(Link_child(((Val 1), Default), [])); Patt_child(Var_child `rands`)])), Var_child `rator`)), -), [(`rands`, -)], PF(H_box[(0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `(`)])))); (0, PO_format(PF(HV_box[((1, (Abs 3), 0), PO_subcall((`rator`, -), [(`prec`, -)])); ((1, (Abs 3), 0), PO_expand(H_box[(0, PO_constant `\,`); (0, PO_subcall((`rands`, -), [(`prec`, -)]))]))]))); (0, PO_format(PF_branch((-), (PF_empty), PF(H_box[(0, PO_constant `)`)]))))])); ((`term`, (Const_name(`term`, [Patt_child(Var_child `term`)])), -), [], PF(H_box[(0, PO_constant `"`); (0, PO_subcall((`term`, -), [(`prec`, -)])); (0, PO_constant `"`)])); ((`thm`, (Var_child `term`), -), [], PF(H_box[(0, PO_context_subcall(`term`, (`term`, -), [(`prec`, -)]))]))] : print_rule list latex_term_rules_fun = - : print_rule_function Calling Lisp compiler File latex_term_pp compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf(library_pathname() ^ `/prettyp/PP_printer`);;'\ 'loadf(library_pathname() ^ `/prettyp/PP_parser`);;'\ 'loadf `filters`;;'\ 'loadf `hol_trees`;;'\ 'loadf `precedence`;;'\ 'loadf `latex_type_pp`;;'\ 'loadf `latex_term_pp`;;'\ 'compilet `latex_thm_pp`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Updating help search path ....................................................................................................................() : void #Updating help search path ...................................................................................................................................................() : void #......() : void ....() : void .......() : void ..() : void ..() : void latex_thm_rules = [((`thm`, (Const_name(`dot`, [])), -), [], PF(H_box[(0, PO_constant `.`)])); ((`thm`, (Const_name(`term`, [Patt_child(Var_child `term`)])), -), [], PF(H_box[(0, PO_subcall((`term`, -), []))])); ((`thm`, (Const_name(`thm`, [Patt_child(Var_child `concl`); Patt_child(Const_name(`dots`, [Var_children `dots`]))])), -), [], PF(H_box[(1, PO_format(PF(H_box[(0, PO_subcall((`dots`, -), []))]))); (1, PO_constant `\THM`); (1, PO_subcall((`concl`, -), []))])); ((`thm`, (Const_name(`thm`, [Patt_child(Var_child `concl`); Patt_child(Const_name(`hyp`, [Var_children `hyps`; Patt_child(Var_child `hyp`)]))])), -), [], PF(HoV_box[((1, (Abs 0), 0), PO_expand(H_box[(0, PO_subcall((`hyps`, -), [])); (0, PO_constant `,`)])); ((1, (Abs 0), 0), PO_subcall((`hyp`, -), [])); ((1, (Abs 0), 0), PO_format(PF(H_box[(1, PO_constant `\THM`); (1, PO_subcall((`concl`, -), []))])))])); ((`thm`, (Const_name(`thm`, [Patt_child(Var_child `concl`); Patt_child(Const_name(`hyp`, []))])), -), [], PF(H_box[(1, PO_constant `\THM`); (1, PO_subcall((`concl`, -), []))]))] : print_rule list latex_thm_rules_fun = - : print_rule_function Calling Lisp compiler File latex_thm_pp compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf(library_pathname() ^ `/prettyp/PP_printer`);;'\ 'loadf(library_pathname() ^ `/prettyp/PP_parser`);;'\ 'PP_to_ML false `latex_sets` ``;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Updating help search path ....................................................................................................................() : void #Updating help search path ...................................................................................................................................................() : void #() : void echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf(library_pathname() ^ `/prettyp/PP_printer`);;'\ 'loadf(library_pathname() ^ `/prettyp/PP_parser`);;'\ 'loadf `filters`;;'\ 'loadf `hol_trees`;;'\ 'loadf `precedence`;;'\ 'loadf `latex_type_pp`;;'\ 'loadf `latex_term_pp`;;'\ 'loadf `latex_thm_pp`;;'\ 'compilet `latex_sets_pp`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Updating help search path ....................................................................................................................() : void #Updating help search path ...................................................................................................................................................() : void #......() : void ....() : void .......() : void ..() : void ..() : void ..() : void latex_sets_rules = [((`term`, (Const_name(`CONST`, [Patt_child(Const_name(`EMPTY`, [])); Wild_children])), -), [], PF(H_box[(0, PO_constant `\EMPTYSET `)])); ((`term`, (Const_name(`COMB`, [Patt_child(Const_name(`CONST`, [Patt_child(Const_name(`GSPEC`, [])); Wild_children])); Patt_child(Const_name(`ABS`, [Patt_child(Var_child `var`); Patt_child(Const_name(`COMB`, [Patt_child(Const_name(`COMB`, [Patt_child(Const_name(`CONST`, [Patt_child (Wild_child)])); Patt_child(Var_child `elem`)])); Patt_child(Var_child `spec`)]))]))])), -), [], PF(H_box[(0, PO_constant `\BEGINSET `); (0, PO_format(PF(HV_box[((1, (Abs 1), 0), PO_subcall((`elem`, -), [(`prec`, -)])); ((1, (Abs 1), 0), PO_constant `\SUCHTHAT `); ((1, (Abs 1), 0), PO_subcall((`spec`, -), [(`prec`, -)]))]))); (0, PO_constant `\ENDSET `)])); ((`term`, (Print_loop((Const_name(`COMB`, [Patt_child(Const_name(`COMB`, [Patt_child(Const_name(`CONST`, [Patt_child(Const_name(`INSERT`, [])); Wild_children])); Patt_child(Var_child `elems`)])); Patt_child(Print_link((((Default), Default), []), Const_name(`COMB`, [Wild_children])))])), Const_name(`COMB`, [Patt_child(Const_name(`COMB`, [Patt_child(Const_name(`CONST`, [Patt_child(Const_name(`INSERT`, [])); Wild_children])); Patt_child(Var_child `elem`)])); Patt_child(Const_name(`CONST`, [Patt_child(Const_name(`EMPTY`, [])); Wild_children]))]))), -), [], PF(H_box[(0, PO_constant `\BEGINSET `); (0, PO_format(PF(HV_box[((0, (Abs 0), 0), PO_expand(H_box[(0, PO_subcall((`elems`, -), [(`prec`, -)])); (0, PO_constant `,`)])); ((0, (Abs 0), 0), PO_subcall((`elem`, -), [(`prec`, -)]))]))); (0, PO_constant `\ENDSET `)]))] : print_rule list latex_sets_rules_fun = - : print_rule_function Calling Lisp compiler File latex_sets_pp compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'loadf(library_pathname() ^ `/prettyp/PP_printer`);;'\ 'loadf(library_pathname() ^ `/prettyp/PP_parser`);;'\ 'loadf `filters`;;'\ 'loadf `hol_trees`;;'\ 'loadf `precedence`;;'\ 'loadf `latex_sets_pp`;;'\ 'loadf `latex_thm_pp`;;'\ 'loadf `latex_term_pp`;;'\ 'loadf `latex_type_pp`;;'\ 'compilet `formaters`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Updating help search path ....................................................................................................................() : void #Updating help search path ...................................................................................................................................................() : void #......() : void ....() : void .......() : void ..() : void ..() : void ..() : void ..() : void output_strings = - : (string -> string list -> void) latex_hol_rules_fun = - : print_rule_function pp_convert_type = - : (type -> print_tree) pp_convert_term = - : (term -> print_tree) pp_convert_thm = - : (thm -> print_tree) pp_convert_all_thm = - : (thm -> print_tree) latex_type = - : (type -> void) latex_term = - : (term -> void) latex_thm = - : (thm -> void) latex_all_thm = - : (thm -> void) latex_type_to = - : (string -> type -> void) latex_type_add_to = - : (string -> type -> void) latex_term_to = - : (string -> term -> void) latex_term_add_to = - : (string -> term -> void) latex_thm_to = - : (string -> thm -> void) latex_thm_add_to = - : (string -> thm -> void) latex_all_thm_to = - : (string -> thm -> void) latex_all_thm_add_to = - : (string -> thm -> void) latex_theory_to = - : (string -> bool -> string -> void) latex_thm_tag = `@t ` : string latex_thm_end = `` : string latex_theorems_to = - : (string -> (string -> thm) -> string list -> void) latex_all_theorems_to = - : (string -> (string -> thm) -> string list -> void) latex_theorems_add_to = - : (string -> (string -> thm) -> string list -> void) Calling Lisp compiler File formaters compiled () : void #===>Library latex-hol rebuilt make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/latex-hol' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/more_arithmetic' rm -f ineq.th echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `ineq`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool 0 : int () : void Loading library taut ... Updating help search path ........................................ Library taut loaded. () : void NOT_EQ = |- !t1 t2. (t1 = t2) = (~t1 = ~t2) Theorem EQ_LESS_EQ autoloading from theory `arithmetic` ... EQ_LESS_EQ = |- !m n. (m = n) = m <= n /\ n <= m Theorem NOT_LESS autoloading from theory `arithmetic` ... NOT_LESS = |- !m n. ~m < n = n <= m NOT_EQ_LESS_EQ = |- !a b. ~(a = b) = a < b \/ b < a Theorem LESS_CASES_IMP autoloading from theory `arithmetic` ... LESS_CASES_IMP = |- !m n. ~m < n /\ ~(m = n) ==> n < m Theorem LESS_NOT_EQ autoloading from theory `prim_rec` ... LESS_NOT_EQ = |- !m n. m < n ==> ~(m = n) Theorem LESS_ANTISYM autoloading from theory `arithmetic` ... LESS_ANTISYM = |- !m n. ~(m < n /\ n < m) Definition LESS_OR_EQ autoloading from theory `arithmetic` ... LESS_OR_EQ = |- !m n. m <= n = m < n \/ (m = n) LESS_IS_NOT_LESS_OR_EQ = |- !x y. x < y = ~y <= x Theorem LESS_SUC_REFL autoloading from theory `prim_rec` ... LESS_SUC_REFL = |- !n. n < (SUC n) Theorem LESS_THM autoloading from theory `prim_rec` ... LESS_THM = |- !m n. m < (SUC n) = (m = n) \/ m < n Theorem NOT_LESS_0 autoloading from theory `prim_rec` ... NOT_LESS_0 = |- !n. ~n < 0 GEN_INDUCTION = |- !P. P 0 /\ (!n. (!m. m < n ==> P m) ==> P n) ==> (!n. P n) Theorem LESS_EQ_ANTISYM autoloading from theory `arithmetic` ... LESS_EQ_ANTISYM = |- !m n. ~(m < n /\ n <= m) Theorem GREATER_EQ autoloading from theory `arithmetic` ... GREATER_EQ = |- !n m. n >= m = m <= n GREATER_EQ_ANTISYM = |- !n m. ~(n >= m /\ n < m) Theorem LESS_EQ_REFL autoloading from theory `arithmetic` ... LESS_EQ_REFL = |- !m. m <= m Theorem LESS_EQUAL_ANTISYM autoloading from theory `arithmetic` ... LESS_EQUAL_ANTISYM = |- !n m. n <= m /\ m <= n ==> (n = m) LESS_EQ_LESS_EQ_EQ = |- !m n. m <= n /\ n <= m = (m = n) Theorem LESS_SUC autoloading from theory `prim_rec` ... LESS_SUC = |- !m n. m < n ==> m < (SUC n) NOT_LESS_AND_GREATER = |- !n m. n < m ==> ~m < n () : void File ineq loaded () : void #rm -f pre.th echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `pre`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool 0 : int () : void Theorem PRE_SUC_EQ autoloading from theory `arithmetic` ... PRE_SUC_EQ = |- !m n. 0 < n ==> ((m = PRE n) = (SUC m = n)) SUC_PRE = |- !n. 0 < n ==> (SUC(PRE n) = n) Theorem LESS_MONO autoloading from theory `prim_rec` ... LESS_MONO = |- !m n. m < n ==> (SUC m) < (SUC n) Theorem LESS_0 autoloading from theory `prim_rec` ... LESS_0 = |- !n. 0 < (SUC n) Theorem NOT_LESS_0 autoloading from theory `prim_rec` ... NOT_LESS_0 = |- !n. ~n < 0 Theorem PRE autoloading from theory `prim_rec` ... PRE = |- (PRE 0 = 0) /\ (!m. PRE(SUC m) = m) PRE_MONO = |- !m n. (PRE m) < (PRE n) ==> m < n Definition LESS_OR_EQ autoloading from theory `arithmetic` ... LESS_OR_EQ = |- !m n. m <= n = m < n \/ (m = n) Theorem ZERO_LESS_EQ autoloading from theory `arithmetic` ... ZERO_LESS_EQ = |- !n. 0 <= n Theorem LESS_MONO_EQ autoloading from theory `arithmetic` ... LESS_MONO_EQ = |- !m n. (SUC m) < (SUC n) = m < n PRE_MONO_LESS_EQ = |- !m n. m < n ==> (PRE m) <= (PRE n) Theorem LESS_SUC_REFL autoloading from theory `prim_rec` ... LESS_SUC_REFL = |- !n. n < (SUC n) PRE_LESS_EQ = |- !n. (PRE n) <= n Theorem ADD_CLAUSES autoloading from theory `arithmetic` ... ADD_CLAUSES = |- (0 + m = m) /\ (m + 0 = m) /\ ((SUC m) + n = SUC(m + n)) /\ (m + (SUC n) = SUC(m + n)) PRE_ADD = |- !n m. 0 < n ==> (PRE(n + m) = (PRE n) + m) SUC_LESS_PRE = |- !m n. (SUC m) < n ==> m < (PRE n) SUC_LESS_EQ_PRE = |- !m n. 0 < n ==> (SUC m) <= n ==> m <= (PRE n) Theorem LESS_REFL autoloading from theory `prim_rec` ... LESS_REFL = |- !n. ~n < n Theorem INDUCTION autoloading from theory `num` ... INDUCTION = |- !P. P 0 /\ (!n. P n ==> P(SUC n)) ==> (!n. P n) PRE_K_K = |- !k. 0 < k ==> (PRE k) < k Theorem LESS_EQ_ADD autoloading from theory `arithmetic` ... LESS_EQ_ADD = |- !m n. m <= (m + n) Theorem LESS_EQ_MONO_ADD_EQ autoloading from theory `arithmetic` ... LESS_EQ_MONO_ADD_EQ = |- !m n p. (m + p) <= (n + p) = m <= n Theorem NOT_LESS autoloading from theory `arithmetic` ... NOT_LESS = |- !m n. ~m < n = n <= m Theorem SUB_ADD autoloading from theory `arithmetic` ... SUB_ADD = |- !m n. n <= m ==> ((m - n) + n = m) Theorem LESS_IMP_LESS_OR_EQ autoloading from theory `arithmetic` ... LESS_IMP_LESS_OR_EQ = |- !m n. m < n ==> m <= n Theorem NOT_LESS_EQUAL autoloading from theory `arithmetic` ... NOT_LESS_EQUAL = |- !m n. ~m <= n = n < m Theorem SUB_EQ_0 autoloading from theory `arithmetic` ... SUB_EQ_0 = |- !m n. (m - n = 0) = m <= n NOT_LESS_SUB = |- !m n. ~m < (m - n) Theorem PRE_SUB1 autoloading from theory `arithmetic` ... PRE_SUB1 = |- !m. PRE m = m - 1 Theorem LESS_EQ_LESS_TRANS autoloading from theory `arithmetic` ... LESS_EQ_LESS_TRANS = |- !m n p. m <= n /\ n < p ==> m < p PRE_LESS = |- !b. 0 < b /\ b < a ==> (PRE b) < a Theorem LESS_EQ autoloading from theory `arithmetic` ... LESS_EQ = |- !m n. m < n = (SUC m) <= n LESS_IMP_LESS_EQ_PRE = |- !m n. 0 < n ==> (m < n = m <= (PRE n)) () : void File pre loaded () : void #rm -f suc.th echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `suc`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool 0 : int () : void Theorem NOT_SUC_LESS_EQ_0 autoloading from theory `arithmetic` ... NOT_SUC_LESS_EQ_0 = |- !n. ~(SUC n) <= 0 NOT_FORALL_SUC_LESS_EQ = |- ~(!n m. (SUC m) <= n) Theorem LESS_EQ_ANTISYM autoloading from theory `arithmetic` ... LESS_EQ_ANTISYM = |- !m n. ~(m < n /\ n <= m) Theorem GREATER_EQ autoloading from theory `arithmetic` ... GREATER_EQ = |- !n m. n >= m = m <= n Theorem LESS_0 autoloading from theory `prim_rec` ... LESS_0 = |- !n. 0 < (SUC n) NOT_0_GREATER_EQ_SUC = |- !n. ~0 >= (SUC n) Theorem LESS_EQ_MONO autoloading from theory `arithmetic` ... LESS_EQ_MONO = |- !n m. (SUC n) <= (SUC m) = n <= m SUC_GREATER_EQ_SUC = |- !n m. (SUC m) >= (SUC n) = m >= n LESS_EQ_MONO_EQ = |- !n m. (SUC n) <= (SUC m) = n <= m Theorem LESS_THM autoloading from theory `prim_rec` ... LESS_THM = |- !m n. m < (SUC n) = (m = n) \/ m < n Theorem LESS_SUC_REFL autoloading from theory `prim_rec` ... LESS_SUC_REFL = |- !n. n < (SUC n) Theorem LESS_SUC autoloading from theory `prim_rec` ... LESS_SUC = |- !m n. m < n ==> m < (SUC n) Definition LESS_OR_EQ autoloading from theory `arithmetic` ... LESS_OR_EQ = |- !m n. m <= n = m < n \/ (m = n) LESS_EQ_LESS_SUC = |- !m n. m <= n = m < (SUC n) Theorem LESS_EQ autoloading from theory `arithmetic` ... LESS_EQ = |- !m n. m < n = (SUC m) <= n SUC_LESS_EQ = |- !m n. m <= n /\ ~(m = n) ==> (SUC m) <= n Theorem LESS_EQ_SUC_REFL autoloading from theory `arithmetic` ... LESS_EQ_SUC_REFL = |- !m. m <= (SUC m) Theorem NOT_LESS autoloading from theory `arithmetic` ... NOT_LESS = |- !m n. ~m < n = n <= m Theorem SUC_ID autoloading from theory `prim_rec` ... SUC_ID = |- !n. ~(SUC n = n) NOT_SUC_LESS_EQ_SELF = |- !n. ~(SUC n) <= n Theorem ADD_CLAUSES autoloading from theory `arithmetic` ... ADD_CLAUSES = |- (0 + m = m) /\ (m + 0 = m) /\ ((SUC m) + n = SUC(m + n)) /\ (m + (SUC n) = SUC(m + n)) Theorem ADD1 autoloading from theory `arithmetic` ... ADD1 = |- !m. SUC m = m + 1 SUC_0 = |- 1 = SUC 0 Theorem SUC_NOT autoloading from theory `arithmetic` ... SUC_NOT = |- !n. ~(0 = SUC n) SUC_NOT_0 = |- !n. ~(SUC n = 0) () : void File suc loaded () : void #rm -f add.th echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `add`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool 0 : int () : void Theory suc loaded () : void [(); (); (); (); (); (); (); ()] : void list ....() : void Theorem LESS_EQ autoloading from theory `arithmetic` ... LESS_EQ = |- !m n. m < n = (SUC m) <= n Theorem ADD1 autoloading from theory `arithmetic` ... ADD1 = |- !m. SUC m = m + 1 LESS_LESS_EQ = |- !a b. a < b = (a + 1) <= b Theorem ADD_SYM autoloading from theory `arithmetic` ... ADD_SYM = |- !m n. m + n = n + m ADD_SUC_0 = |- !m. SUC m = (SUC 0) + m LESS_EQ_MONO_ADD_EQ0 = |- !m n p. m <= n = (p + m) <= (p + n) Definition ADD autoloading from theory `arithmetic` ... ADD = |- (!n. 0 + n = n) /\ (!m n. (SUC m) + n = SUC(m + n)) LESS_EQ_MONO_ADD_EQ1 = |- !m p. (m + p) <= p = m <= 0 Theorem ZERO_LESS_EQ autoloading from theory `arithmetic` ... ZERO_LESS_EQ = |- !n. 0 <= n LESS_EQ_ADD1 = |- !p n. p <= (n + p) Theorem ADD_ASSOC autoloading from theory `arithmetic` ... ADD_ASSOC = |- !m n p. m + (n + p) = (m + n) + p ADD_SYM_ASSOC = |- !a b c. a + (b + c) = b + (a + c) Theorem LESS_EQ_ADD autoloading from theory `arithmetic` ... LESS_EQ_ADD = |- !m n. m <= (m + n) Theorem LESS_EQ_TRANS autoloading from theory `arithmetic` ... LESS_EQ_TRANS = |- !m n p. m <= n /\ n <= p ==> m <= p LESS_EQ_SPLIT = |- !m n p. (m + n) <= p ==> n <= p /\ m <= p Theorem LESS_SUC autoloading from theory `prim_rec` ... LESS_SUC = |- !m n. m < n ==> m < (SUC n) Theorem ADD_CLAUSES autoloading from theory `arithmetic` ... ADD_CLAUSES = |- (0 + m = m) /\ (m + 0 = m) /\ ((SUC m) + n = SUC(m + n)) /\ (m + (SUC n) = SUC(m + n)) ADDL_GREATER = |- !m n p. m < n ==> m < (p + n) Theorem NOT_LESS_0 autoloading from theory `prim_rec` ... NOT_LESS_0 = |- !n. ~n < 0 Theorem NOT_LESS autoloading from theory `arithmetic` ... NOT_LESS = |- !m n. ~m < n = n <= m Theorem LESS_EQ_LESS_EQ_MONO autoloading from theory `arithmetic` ... LESS_EQ_LESS_EQ_MONO = |- !m n p q. m <= p /\ n <= q ==> (m + n) <= (p + q) ADDL_GREATER_EQ = |- !m n p. m <= n ==> m <= (p + n) ADDR_GREATER = |- !m n p. m < n ==> m < (n + p) ADDR_GREATER_EQ = |- !m n p. m <= n ==> m <= (n + p) Theorem LESS_TRANS autoloading from theory `arithmetic` ... LESS_TRANS = |- !m n p. m < n /\ n < p ==> m < p LESS_LESS_MONO = |- !m n p q. m < p /\ n < q ==> (m + n) < (p + q) Definition LESS_OR_EQ autoloading from theory `arithmetic` ... LESS_OR_EQ = |- !m n. m <= n = m < n \/ (m = n) LESS_LESS_EQ_MONO = |- (!m n p q. m < p /\ n <= q ==> (m + n) < (p + q)) /\ (!m n p q. m <= p /\ n < q ==> (m + n) < (p + q)) Theorem LESS_REFL autoloading from theory `prim_rec` ... LESS_REFL = |- !n. ~n < n ADD_EQ_LESS_IMP_LESS = |- !n m k l. (k + m = l + n) /\ k < l ==> n < m LESS_ADD_ASSOC = |- !a b c d. a < (b + c) ==> a < (b + (c + d)) Theorem GREATER_EQ autoloading from theory `arithmetic` ... GREATER_EQ = |- !n m. n >= m = m <= n GREATER_EQ_SPLIT = |- !m n p. p >= (m + n) ==> p >= n /\ p >= m Theorem LESS_MONO_ADD autoloading from theory `arithmetic` ... LESS_MONO_ADD = |- !m n p. m < n ==> (m + p) < (n + p) LESS_TRANS_ADD = |- !m n p q. m < (n + p) /\ p < q ==> m < (n + q) Definition GREATER autoloading from theory `arithmetic` ... GREATER = |- !m n. m > n = n < m Definition GREATER_OR_EQ autoloading from theory `arithmetic` ... GREATER_OR_EQ = |- !m n. m >= n = m > n \/ (m = n) ADD_GREATER_EQ = |- !m n. (m + n) >= m ADD_MONO_LESS = |- !m n p. (m + p) < (m + n) = p < n Theorem LESS_NOT_EQ autoloading from theory `prim_rec` ... LESS_NOT_EQ = |- !m n. m < n ==> ~(m = n) Theorem LESS_0 autoloading from theory `prim_rec` ... LESS_0 = |- !n. 0 < (SUC n) Theorem INV_SUC_EQ autoloading from theory `prim_rec` ... INV_SUC_EQ = |- !m n. (SUC m = SUC n) = (m = n) Theorem SUC_ID autoloading from theory `prim_rec` ... SUC_ID = |- !n. ~(SUC n = n) Theorem SUC_0 autoloading from theory `suc` ... SUC_0 = |- 1 = SUC 0 NOT_1_TWICE = |- !n. ~(1 = n + n) Theorem LESS_EQ_LESS_TRANS autoloading from theory `arithmetic` ... LESS_EQ_LESS_TRANS = |- !m n p. m <= n /\ n < p ==> m < p SUM_LESS = |- !m n p. (m + n) < p ==> m < p /\ n < p Theorem LESS_IMP_LESS_OR_EQ autoloading from theory `arithmetic` ... LESS_IMP_LESS_OR_EQ = |- !m n. m < n ==> m <= n Theorem LESS_SUC_REFL autoloading from theory `prim_rec` ... LESS_SUC_REFL = |- !n. n < (SUC n) NOT_LESS_IMP_LESS_EQ_ADD1 = |- !a b. ~a < b ==> b <= (a + 1) NOT_ADD_LESS = |- !m n. ~(m + n) < n ADD_EQ_LESS_EQ = |- !m n p. (m + n = p) ==> m <= p SUC_LESS_N_LESS = |- !m n. (m + 1) < n ==> m < n Theorem LESS_ADD_SUC autoloading from theory `arithmetic` ... LESS_ADD_SUC = |- !m n. m < (m + (SUC n)) LESS_ADD1 = |- !a. a < (a + 1) () : void File add loaded () : void #rm -f zero_ineq.th echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `zero`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool 0 : int () : void [(); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); ()] : void list Theorem ZERO_LESS_EQ autoloading from theory `arithmetic` ... ZERO_LESS_EQ = |- !n. 0 <= n Theorem LESS_EQ_LESS_TRANS autoloading from theory `arithmetic` ... LESS_EQ_LESS_TRANS = |- !m n p. m <= n /\ n < p ==> m < p M_LESS_0_LESS = |- !m n. m < n ==> 0 < n Theorem LESS_SUC_REFL autoloading from theory `prim_rec` ... LESS_SUC_REFL = |- !n. n < (SUC n) Theorem LESS_LEMMA1 autoloading from theory `prim_rec` ... LESS_LEMMA1 = |- !m n. m < (SUC n) ==> (m = n) \/ m < n Theorem NOT_LESS_0 autoloading from theory `prim_rec` ... NOT_LESS_0 = |- !n. ~n < 0 LESS1EQ0 = |- !m. m < 1 = (m = 0) Theorem LESS_EQ_ADD autoloading from theory `arithmetic` ... LESS_EQ_ADD = |- !m n. m <= (m + n) Theorem ADD_SYM autoloading from theory `arithmetic` ... ADD_SYM = |- !m n. m + n = n + m Theorem ADD1 autoloading from theory `arithmetic` ... ADD1 = |- !m. SUC m = m + 1 Theorem GREATER_EQ autoloading from theory `arithmetic` ... GREATER_EQ = |- !n m. n >= m = m <= n Theorem LESS_EQ_REFL autoloading from theory `arithmetic` ... LESS_EQ_REFL = |- !m. m <= m NOT_EQ_0 = |- !m. ~(m = 0) ==> m >= 1 Theorem LESS_0_CASES autoloading from theory `arithmetic` ... LESS_0_CASES = |- !m. (0 = m) \/ 0 < m Theorem NOT_LESS_EQUAL autoloading from theory `arithmetic` ... NOT_LESS_EQUAL = |- !m n. ~m <= n = n < m Definition LESS_OR_EQ autoloading from theory `arithmetic` ... LESS_OR_EQ = |- !m n. m <= n = m < n \/ (m = n) LESS_EQ_0_EQ = |- !m. m <= 0 ==> (m = 0) Theorem LESS_REFL autoloading from theory `prim_rec` ... LESS_REFL = |- !n. ~n < n GREATER_NOT_ZERO = |- !x. 0 < x ==> ~(x = 0) NOT_0_AND_MORE = |- !x. ~((x = 0) /\ 0 < x) () : void File zero loaded () : void #rm -f sub.th echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `sub`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool 0 : int () : void Theory add loaded () : void Theory zero_ineq loaded () : void Theorem EQ_MONO_ADD_EQ autoloading from theory `arithmetic` ... EQ_MONO_ADD_EQ = |- !m n p. (m + p = n + p) = (m = n) Theorem LESS_MONO_ADD_EQ autoloading from theory `arithmetic` ... LESS_MONO_ADD_EQ = |- !m n p. (m + p) < (n + p) = m < n Theorem LESS_EQ_MONO_ADD_EQ autoloading from theory `arithmetic` ... LESS_EQ_MONO_ADD_EQ = |- !m n p. (m + p) <= (n + p) = m <= n NUM_LESS_EQ_PLUS_CONV = - : (term -> conv) NUM_EQ_PLUS_CONV = - : (term -> conv) NUM_LESS_PLUS_CONV = - : (term -> conv) File num_convs loaded () : void [(); (); (); (); (); ()] : void list Theorem PRE autoloading from theory `prim_rec` ... PRE = |- (PRE 0 = 0) /\ (!m. PRE(SUC m) = m) Theorem SUB_MONO_EQ autoloading from theory `arithmetic` ... SUB_MONO_EQ = |- !n m. (SUC n) - (SUC m) = n - m Theorem NOT_LESS_0 autoloading from theory `prim_rec` ... NOT_LESS_0 = |- !n. ~n < 0 SUB_SUC_PRE_SUB = |- !n m. 0 < n ==> (n - (SUC m) = (PRE n) - m) Theorem ADD_CLAUSES autoloading from theory `arithmetic` ... ADD_CLAUSES = |- (0 + m = m) /\ (m + 0 = m) /\ ((SUC m) + n = SUC(m + n)) /\ (m + (SUC n) = SUC(m + n)) Theorem ADD_SUC autoloading from theory `arithmetic` ... ADD_SUC = |- !m n. SUC(m + n) = m + (SUC n) ADD_SUC = |- SUC(m + n) = m + (SUC n) Definition SUB autoloading from theory `arithmetic` ... SUB = |- (!m. 0 - m = 0) /\ (!m n. (SUC m) - n = (m < n => 0 | SUC(m - n))) Theorem LESS_SUC_NOT autoloading from theory `arithmetic` ... LESS_SUC_NOT = |- !m n. m < n ==> ~n < (SUC m) SUB_SUC = |- !k m. m < k ==> (k - m = SUC(k - (SUC m))) Theorem SUB_ADD autoloading from theory `arithmetic` ... SUB_ADD = |- !m n. n <= m ==> ((m - n) + n = m) SUB_LESS_TO_LESS_ADDR = |- !m n p. p <= m ==> ((m - p) < n = m < (n + p)) Theorem ADD_SYM autoloading from theory `arithmetic` ... ADD_SYM = |- !m n. m + n = n + m SUB_LESS_TO_LESS_ADDL = |- !m n p. n <= m ==> ((m - n) < p = m < (n + p)) LESS_SUB_TO_ADDR_LESS = |- !m n p. p <= m ==> (n < (m - p) = (n + p) < m) LESS_SUB_TO_ADDL_LESS = |- !m n p. n <= m ==> (p < (m - n) = (n + p) < m) SUC_SUB = |- !m n. (m < n ==> ((SUC m) - n = 0)) /\ (~m < n ==> ((SUC m) - n = SUC(m - n))) Theorem SUB_LESS_EQ autoloading from theory `arithmetic` ... SUB_LESS_EQ = |- !n m. (n - m) <= n LESS_SUB_BOUND = |- !k l. k < l ==> (l - k) <= l Theorem LESS_IMP_LESS_OR_EQ autoloading from theory `arithmetic` ... LESS_IMP_LESS_OR_EQ = |- !m n. m < n ==> m <= n SUB_SUB_ID = |- !k l. l < k ==> (k - (k - l) = l) Theorem SUB_0 autoloading from theory `arithmetic` ... SUB_0 = |- !m. (0 - m = 0) /\ (m - 0 = m) Theorem SUB_EQ_0 autoloading from theory `arithmetic` ... SUB_EQ_0 = |- !m n. (m - n = 0) = m <= n Theorem NOT_LESS autoloading from theory `arithmetic` ... NOT_LESS = |- !m n. ~m < n = n <= m LESS_SUB_IMP_INV = |- !k l. 0 < (k - l) ==> l < k Theorem ADDL_GREATER_EQ autoloading from theory `add` ... ADDL_GREATER_EQ = |- !m n p. m <= n ==> m <= (p + n) Definition ADD autoloading from theory `arithmetic` ... ADD = |- (!n. 0 + n = n) /\ (!m n. (SUC m) + n = SUC(m + n)) LESS_EQ_ADD_SUB1 = |- !m n p. p <= n ==> (m + (n - p) = (m + n) - p) LESS_EQ_SUB_ADD = |- !m n p. p <= m ==> ((m - p) + n = (m + n) - p) Theorem GREATER_EQ autoloading from theory `arithmetic` ... GREATER_EQ = |- !n m. n >= m = m <= n GREATER_EQ_SUB_LESS_TO_ADD = |- !n m p. p >= n ==> ((p - n) < m = p < (n + m)) SUB_GREATER_EQ_ADD = |- !n m p. p >= n ==> ((p - n) >= m = p >= (n + m)) SUB_LE_ADD = |- !n m p. n <= p ==> (m <= (p - n) = (n + m) <= p) Theorem LESS_EQ_ANTISYM autoloading from theory `arithmetic` ... LESS_EQ_ANTISYM = |- !m n. ~(m < n /\ n <= m) NOT_SUB_0 = |- !m n. m < n ==> ~(n - m = 0) NOT_0_SUB = |- !m n. ~(m - n = 0) ==> ~(m = 0) Theorem NOT_EQ_0 autoloading from theory `zero_ineq` ... NOT_EQ_0 = |- !m. ~(m = 0) ==> m >= 1 Theorem ADD1 autoloading from theory `arithmetic` ... ADD1 = |- !m. SUC m = m + 1 SUB_1_LESS = |- !m n. ~(m = 0) /\ m < (SUC n) ==> (m - 1) < n Theorem LESS_THM autoloading from theory `prim_rec` ... LESS_THM = |- !m n. m < (SUC n) = (m = n) \/ m < n Definition LESS_OR_EQ autoloading from theory `arithmetic` ... LESS_OR_EQ = |- !m n. m <= n = m < n \/ (m = n) Theorem SUC_SUB1 autoloading from theory `arithmetic` ... SUC_SUB1 = |- !m. (SUC m) - 1 = m SUB_1_LESS_EQ = |- !m n. m < n ==> (n - 1) >= m ADD_LESS_EQ_SUB = |- !n m p. n <= p ==> ((n + m) <= p = m <= (p - n)) PRE_SUB_SUC = |- !m n. m < n ==> (PRE(n - m) = n - (SUC m)) Theorem LESS_SUC autoloading from theory `prim_rec` ... LESS_SUC = |- !m n. m < n ==> m < (SUC n) Theorem PRE_SUB1 autoloading from theory `arithmetic` ... PRE_SUB1 = |- !m. PRE m = m - 1 LESS_PRE = |- !i m. i < (m - 1) ==> i < m Theorem LESS_MONO_EQ autoloading from theory `arithmetic` ... LESS_MONO_EQ = |- !m n. (SUC m) < (SUC n) = m < n Theorem LESS_0 autoloading from theory `prim_rec` ... LESS_0 = |- !n. 0 < (SUC n) Theorem LESS_REFL autoloading from theory `prim_rec` ... LESS_REFL = |- !n. ~n < n PRE_LESS_LESS_SUC = |- !i m. i < (m - 1) /\ 0 < m ==> (i + 1) < m Theorem SUC_0 autoloading from theory `suc` ... SUC_0 = |- 1 = SUC 0 Theorem LESS_OR autoloading from theory `arithmetic` ... LESS_OR = |- !m n. m < n ==> (SUC m) <= n Theorem SUB_PLUS autoloading from theory `arithmetic` ... SUB_PLUS = |- !a b c. a - (b + c) = (a - b) - c SUB_PRE_SUB_1 = |- !a b. 0 < b ==> ((a - (PRE b)) - 1 = a - b) LESS_SUB_IMP_SUM_LESS = |- !i m. i < (m - 1) /\ 1 < m ==> (i + 1) < m Theorem SUB_EQUAL_0 autoloading from theory `arithmetic` ... SUB_EQUAL_0 = |- !c. c - c = 0 SUB_SELF = |- !c. c - c = 0 Theorem ADD_SUB autoloading from theory `arithmetic` ... ADD_SUB = |- !a c. (a + c) - c = a ADD_SUB_SYM = |- !a c. (c + a) - c = a SUB_ADD_SELF = |- !m n. ~m < n ==> ((m - n) + n = m) Theorem LESS_ANTISYM autoloading from theory `arithmetic` ... LESS_ANTISYM = |- !m n. ~(m < n /\ n < m) Theorem ADD_MONO_LESS autoloading from theory `add` ... ADD_MONO_LESS = |- !m n p. (m + p) < (m + n) = p < n Theorem LESS_MONO_ADD autoloading from theory `arithmetic` ... LESS_MONO_ADD = |- !m n p. m < n ==> (m + p) < (n + p) Theorem NOT_LESS_EQUAL autoloading from theory `arithmetic` ... NOT_LESS_EQUAL = |- !m n. ~m <= n = n < m Definition GREATER autoloading from theory `arithmetic` ... GREATER = |- !m n. m > n = n < m SMALLER_SUM = |- !m n p. m < p /\ n < p ==> ~((m + n) - p) > m Theorem LESS_EQ_ADD autoloading from theory `arithmetic` ... LESS_EQ_ADD = |- !m n. m <= (m + n) NOT_LESS_SUB = |- !m n. ~m < (m - n) SUB_BOTH_SIDES = |- !m n p. (m = n) ==> (m - p = n - p) Theorem LESS_EQ_LESS_TRANS autoloading from theory `arithmetic` ... LESS_EQ_LESS_TRANS = |- !m n p. m <= n /\ n < p ==> m < p SUB_LESS_BOTH_SIDES = |- !m n p. p <= m /\ m < n ==> (m - p) < (n - p) Theorem LESS_LESS_MONO autoloading from theory `add` ... LESS_LESS_MONO = |- !m n p q. m < p /\ n < q ==> (m + n) < (p + q) LESS_TWICE_IMP_LESS_SUB = |- !a b m. a < m /\ b < m /\ m <= (a + b) ==> ((a + b) - m) < m Theorem SUB_LESS_OR autoloading from theory `arithmetic` ... SUB_LESS_OR = |- !m n. n < m ==> n <= (m - 1) Theorem OR_LESS autoloading from theory `arithmetic` ... OR_LESS = |- !m n. (SUC m) <= n ==> m < n Theorem LESS_EQ_TRANS autoloading from theory `arithmetic` ... LESS_EQ_TRANS = |- !m n p. m <= n /\ n <= p ==> m <= p Theorem ZERO_LESS_EQ autoloading from theory `arithmetic` ... ZERO_LESS_EQ = |- !n. 0 <= n Theorem LESS_EQ_MONO autoloading from theory `arithmetic` ... LESS_EQ_MONO = |- !n m. (SUC n) <= (SUC m) = n <= m SUB_LESS_EQ_SUB_SUC = |- !a b c n. 0 < c /\ a <= (b - n) ==> (a - c) <= (b - (SUC n)) Theorem ADD_ASSOC autoloading from theory `arithmetic` ... ADD_ASSOC = |- !m n p. m + (n + p) = (m + n) + p SUB_EQ_SUB_ADD_SUB = |- !a b c. a <= b /\ b <= c ==> (c - a = (c - b) + (b - a)) Theorem ADD_EQ_SUB autoloading from theory `arithmetic` ... ADD_EQ_SUB = |- !m n p. n <= p ==> ((m + n = p) = (m = p - n)) ADD_EQ_IMP_SUB_EQ = |- !a b c. (a = b + c) ==> (a - b = c) Theorem LESS_0_CASES autoloading from theory `arithmetic` ... LESS_0_CASES = |- !m. (0 = m) \/ 0 < m SUB_GREATER_0 = |- !a b. a < b ==> (b - a) > 0 Theorem LESS_EQ_REFL autoloading from theory `arithmetic` ... LESS_EQ_REFL = |- !m. m <= m LESS_EQ_SUB_1 = |- !a b. a <= b ==> (a - 1) <= (b - 1) SUB_LESS_EQ_SUB1 = |- !x. x > 0 ==> (!a. (a - x) <= (a - 1)) () : void File sub loaded () : void #rm -f mult.th echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `mult`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool 0 : int () : void Theorem LESS_MONO_MULT autoloading from theory `arithmetic` ... LESS_MONO_MULT = |- !m n p. m <= n ==> (m * p) <= (n * p) Theorem MULT_SYM autoloading from theory `arithmetic` ... MULT_SYM = |- !m n. m * n = n * m LESS_MONO_MULT1 = |- !m n p. m <= n ==> (p * m) <= (p * n) Theorem LESS_OR autoloading from theory `arithmetic` ... LESS_OR = |- !m n. m < n ==> (SUC m) <= n Theorem LESS_EQ_LESS_EQ_MONO autoloading from theory `arithmetic` ... LESS_EQ_LESS_EQ_MONO = |- !m n p q. m <= p /\ n <= q ==> (m + n) <= (p + q) Theorem ADD_ASSOC autoloading from theory `arithmetic` ... ADD_ASSOC = |- !m n p. m + (n + p) = (m + n) + p Theorem LESS_EQ_REFL autoloading from theory `arithmetic` ... LESS_EQ_REFL = |- !m. m <= m Theorem ADD_CLAUSES autoloading from theory `arithmetic` ... ADD_CLAUSES = |- (0 + m = m) /\ (m + 0 = m) /\ ((SUC m) + n = SUC(m + n)) /\ (m + (SUC n) = SUC(m + n)) Theorem MULT_CLAUSES autoloading from theory `arithmetic` ... MULT_CLAUSES = |- !m n. (0 * m = 0) /\ (m * 0 = 0) /\ (1 * m = m) /\ (m * 1 = m) /\ ((SUC m) * n = (m * n) + n) /\ (m * (SUC n) = m + (m * n)) Theorem INDUCTION autoloading from theory `num` ... INDUCTION = |- !P. P 0 /\ (!n. P n ==> P(SUC n)) ==> (!n. P n) LESS_MULT_PLUS_DIFF = |- !n k l. k < l ==> ((k * n) + n) <= (l * n) Theorem LESS_LESS_EQ_TRANS autoloading from theory `arithmetic` ... LESS_LESS_EQ_TRANS = |- !m n p. m < n /\ n <= p ==> m < p Theorem LESS_EQ_ADD autoloading from theory `arithmetic` ... LESS_EQ_ADD = |- !m n. m <= (m + n) Theorem TIMES2 autoloading from theory `arithmetic` ... TIMES2 = |- !n. 2 * n = n + n Theorem LESS_SUC_REFL autoloading from theory `prim_rec` ... LESS_SUC_REFL = |- !n. n < (SUC n) Definition EXP autoloading from theory `arithmetic` ... EXP = |- (!m. m EXP 0 = 1) /\ (!m n. m EXP (SUC n) = m * (m EXP n)) ONE_LESS_TWO_EXP_SUC = |- !n. 1 < (2 EXP (SUC n)) Theorem LESS_0 autoloading from theory `prim_rec` ... LESS_0 = |- !n. 0 < (SUC n) Theorem NOT_LESS_0 autoloading from theory `prim_rec` ... NOT_LESS_0 = |- !n. ~n < 0 NOT_MULT_LESS_0 = |- !m n. 0 < m /\ 0 < n ==> 0 < (m * n) EXP1 = |- !n. n EXP 1 = n Theorem ZERO_LESS_EXP autoloading from theory `arithmetic` ... ZERO_LESS_EXP = |- !m n. 0 < ((SUC n) EXP m) ZERO_LESS_TWO_EXP = |- !n. 0 < (2 EXP n) Definition LESS_OR_EQ autoloading from theory `arithmetic` ... LESS_OR_EQ = |- !m n. m <= n = m < n \/ (m = n) ONE_LESS_EQ_TWO_EXP = |- !n. 1 <= (2 EXP n) () : void File mult loaded () : void #rm -f odd_even.th echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `odd_even`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool 0 : int () : void Definition EVEN autoloading from theory `arithmetic` ... EVEN = |- (EVEN 0 = T) /\ (!n. EVEN(SUC n) = ~EVEN n) Definition ODD autoloading from theory `arithmetic` ... ODD = |- (ODD 0 = F) /\ (!n. ODD(SUC n) = ~ODD n) EVEN_ODD_0 = |- EVEN 0 /\ ~ODD 0 NOT_EVEN_ODD_SUC_EVEN_ODD = |- !n. (~EVEN(SUC n) = EVEN n) /\ (~ODD(SUC n) = ODD n) Theorem EVEN_ODD autoloading from theory `arithmetic` ... EVEN_ODD = |- !n. EVEN n = ~ODD n Theorem ODD_EVEN autoloading from theory `arithmetic` ... ODD_EVEN = |- !n. ODD n = ~EVEN n EVEN_ODD_SUC = |- !n. (EVEN(SUC n) = ODD n) /\ (ODD(SUC n) = EVEN n) Theorem ODD_ADD autoloading from theory `arithmetic` ... ODD_ADD = |- !m n. ODD(m + n) = ~(ODD m = ODD n) Theorem EVEN_ADD autoloading from theory `arithmetic` ... EVEN_ADD = |- !m n. EVEN(m + n) = (EVEN m = EVEN n) EVEN_ODD_PLUS_CASES = |- !n m. (ODD n /\ ODD m ==> EVEN(n + m)) /\ (ODD n /\ EVEN m ==> ODD(n + m)) /\ (EVEN n /\ EVEN m ==> EVEN(n + m)) Theorem EVEN_MULT autoloading from theory `arithmetic` ... EVEN_MULT = |- !m n. EVEN(m * n) = EVEN m \/ EVEN n EVEN_IMPL_MULT = |- !n m. EVEN n \/ EVEN m ==> EVEN(n * m) Theorem ODD_MULT autoloading from theory `arithmetic` ... ODD_MULT = |- !m n. ODD(m * n) = ODD m /\ ODD n ODD_IMPL_MULT = |- !n m. ODD n /\ ODD m ==> ODD(n * m) MULT_ODD = |- !n m. ODD(n * m) ==> ODD n /\ ODD m MULT_EVEN = |- !n m. EVEN(n * m) ==> EVEN n \/ EVEN m () : void File odd_even loaded () : void #rm -f min_max.th echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `minmax`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool 0 : int () : void MAX_DEF = |- !n p. MAX n p = (n <= p => p | n) Theorem ZERO_LESS_EQ autoloading from theory `arithmetic` ... ZERO_LESS_EQ = |- !n. 0 <= n MAX_0 = |- !n. MAX 0 n = n Theorem NOT_LESS autoloading from theory `arithmetic` ... NOT_LESS = |- !m n. ~m < n = n <= m Definition LESS_OR_EQ autoloading from theory `arithmetic` ... LESS_OR_EQ = |- !m n. m <= n = m < n \/ (m = n) MAX_SYM = |- !n p. MAX n p = MAX p n MAX_REFL = |- !n. MAX n n = n Theorem LESS_EQ_SUC_REFL autoloading from theory `arithmetic` ... LESS_EQ_SUC_REFL = |- !m. m <= (SUC m) MAX_SUC = |- !n. MAX n(SUC n) = SUC n Theorem LESS_EQ_MONO autoloading from theory `arithmetic` ... LESS_EQ_MONO = |- !n m. (SUC n) <= (SUC m) = n <= m SUC_MAX = |- !n p. MAX(SUC n)(SUC p) = SUC(MAX n p) MIN_DEF = |- !n p. MIN n p = (n <= p => n | p) MIN_0 = |- !n. MIN 0 n = 0 MIN_SYM = |- !n p. MIN n p = MIN p n MIN_REFL = |- !n. MIN n n = n MIN_SUC = |- !n. MIN n(SUC n) = n SUC_MIN = |- !n p. MIN(SUC n)(SUC p) = SUC(MIN n p) () : void File minmax loaded () : void #rm -f div_mod.th echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `div_mod`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool 0 : int () : void Theorem LESS_MOD autoloading from theory `arithmetic` ... LESS_MOD = |- !n k. k < n ==> (k MOD n = k) Theorem SUC_LESS autoloading from theory `prim_rec` ... SUC_LESS = |- !m n. (SUC m) < n ==> m < n SUC_MOD = |- !n m. (SUC n) < m ==> ((SUC n) MOD m = SUC(n MOD m)) Theorem LESS_0 autoloading from theory `prim_rec` ... LESS_0 = |- !n. 0 < (SUC n) Theorem ADD_CLAUSES autoloading from theory `arithmetic` ... ADD_CLAUSES = |- (0 + m = m) /\ (m + 0 = m) /\ ((SUC m) + n = SUC(m + n)) /\ (m + (SUC n) = SUC(m + n)) Theorem MULT_CLAUSES autoloading from theory `arithmetic` ... MULT_CLAUSES = |- !m n. (0 * m = 0) /\ (m * 0 = 0) /\ (1 * m = m) /\ (m * 1 = m) /\ ((SUC m) * n = (m * n) + n) /\ (m * (SUC n) = m + (m * n)) Theorem NOT_LESS_0 autoloading from theory `prim_rec` ... NOT_LESS_0 = |- !n. ~n < 0 NOT_MULT_LESS_0 = |- !m n. 0 < m /\ 0 < n ==> 0 < (m * n) Theorem MOD_TIMES autoloading from theory `arithmetic` ... MOD_TIMES = |- !n. 0 < n ==> (!q r. ((q * n) + r) MOD n = r MOD n) Theorem MULT_ASSOC autoloading from theory `arithmetic` ... MULT_ASSOC = |- !m n p. m * (n * p) = (m * n) * p Theorem MULT_SYM autoloading from theory `arithmetic` ... MULT_SYM = |- !m n. m * n = n * m Theorem MOD_MULT autoloading from theory `arithmetic` ... MOD_MULT = |- !n r. r < n ==> (!q. ((q * n) + r) MOD n = r) Theorem DA autoloading from theory `arithmetic` ... DA = |- !k n. 0 < n ==> (?r q. (k = (q * n) + r) /\ r < n) MOD_MULT_MOD = |- !m n. 0 < n /\ 0 < m ==> (!x. (x MOD (n * m)) MOD n = x MOD n) MULT_LEFT_1 = |- !m. 1 * m = m MULT_RIGHT_1 = |- !m. m * 1 = m Theorem DIV_MULT autoloading from theory `arithmetic` ... DIV_MULT = |- !n r. r < n ==> (!q. ((q * n) + r) DIV n = q) Theorem ADD_0 autoloading from theory `arithmetic` ... ADD_0 = |- !m. m + 0 = m MULT_DIV = |- !n q. 0 < n ==> ((q * n) DIV n = q) DIV_ONE = |- !q. q DIV (SUC 0) = q Definition ADD autoloading from theory `arithmetic` ... ADD = |- (!n. 0 + n = n) /\ (!m n. (SUC m) + n = SUC(m + n)) Definition MULT autoloading from theory `arithmetic` ... MULT = |- (!n. 0 * n = 0) /\ (!m n. (SUC m) * n = (m * n) + n) LESS_DIV_EQ_ZERO = |- !r n. r < n ==> (r DIV n = 0) Theorem MOD_EQ_0 autoloading from theory `arithmetic` ... MOD_EQ_0 = |- !n. 0 < n ==> (!k. (k * n) MOD n = 0) SUC_MOD_SELF = |- !n. (SUC n) MOD (SUC n) = 0 Definition DIVISION autoloading from theory `arithmetic` ... DIVISION = |- !n. 0 < n ==> (!k. (k = ((k DIV n) * n) + (k MOD n)) /\ (k MOD n) < n) Theorem MULT_SUC_EQ autoloading from theory `arithmetic` ... MULT_SUC_EQ = |- !p m n. (n * (SUC p) = m * (SUC p)) = (n = m) SUC_DIV_SELF = |- !n. (SUC n) DIV (SUC n) = 1 Theorem ADD_ASSOC autoloading from theory `arithmetic` ... ADD_ASSOC = |- !m n p. m + (n + p) = (m + n) + p Theorem ADD_SYM autoloading from theory `arithmetic` ... ADD_SYM = |- !m n. m + n = n + m ADD_DIV_SUC_DIV = |- !n. 0 < n ==> (!r. (n + r) DIV n = SUC(r DIV n)) Theorem RIGHT_ADD_DISTRIB autoloading from theory `arithmetic` ... RIGHT_ADD_DISTRIB = |- !m n p. (m + n) * p = (m * p) + (n * p) ADD_DIV_ADD_DIV = |- !n. 0 < n ==> (!x r. ((x * n) + r) DIV n = x + (r DIV n)) Theorem ADD1 autoloading from theory `arithmetic` ... ADD1 = |- !m. SUC m = m + 1 Theorem LESS_OR autoloading from theory `arithmetic` ... LESS_OR = |- !m n. m < n ==> (SUC m) <= n Definition LESS_OR_EQ autoloading from theory `arithmetic` ... LESS_OR_EQ = |- !m n. m <= n = m < n \/ (m = n) SUC_DIV_CASES = |- !n. 0 < n ==> (!x. ((SUC x) DIV n = x DIV n) \/ ((SUC x) DIV n = SUC(x DIV n))) Theorem LESS_THM autoloading from theory `prim_rec` ... LESS_THM = |- !m n. m < (SUC n) = (m = n) \/ m < n Less_lemma = |- !m n. m < n ==> (?p. (n = m + p) /\ 0 < p) Theorem LESS_EQ_ADD autoloading from theory `arithmetic` ... LESS_EQ_ADD = |- !m n. m <= (m + n) LESS_MONO_DIV = |- !n. 0 < n ==> (!p q. p < q ==> (p DIV n) <= (q DIV n)) Theorem LESS_EQ_REFL autoloading from theory `arithmetic` ... LESS_EQ_REFL = |- !m. m <= m LESS_EQ_MONO_DIV = |- !n. 0 < n ==> (!p q. p <= q ==> (p DIV n) <= (q DIV n)) Theorem LESS_TRANS autoloading from theory `arithmetic` ... LESS_TRANS = |- !m n p. m < n /\ n < p ==> m < p Theorem LESS_SUC_REFL autoloading from theory `prim_rec` ... LESS_SUC_REFL = |- !n. n < (SUC n) Theorem LESS_LESS_EQ_TRANS autoloading from theory `arithmetic` ... LESS_LESS_EQ_TRANS = |- !m n p. m < n /\ n <= p ==> m < p Less_MULT_lemma = |- !r m p. 0 < p ==> r < m ==> r < (p * m) Theorem LESS_MONO_ADD_EQ autoloading from theory `arithmetic` ... LESS_MONO_ADD_EQ = |- !m n p. (m + p) < (n + p) = m < n Less_MULT_ADD_lemma = |- !m n r r'. 0 < m /\ 0 < n /\ r < m /\ r' < n ==> ((r' * m) + r) < (n * m) Theorem ADD_INV_0_EQ autoloading from theory `arithmetic` ... ADD_INV_0_EQ = |- !m n. (m + n = m) = (n = 0) DIV_DIV_DIV_MULT = |- !m n. 0 < m /\ 0 < n ==> (!x. (x DIV m) DIV n = x DIV (m * n)) () : void File div_mod loaded () : void #rm -f more_arithmetic.th echo 'set_flag(`abort_when_fail`,true);;'\ 'loadt `mk_more_arithmetic`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool () : void Theory ineq loaded () : void Theory pre loaded () : void Theory sub loaded () : void Theory mult loaded () : void Theory min_max loaded () : void Theory odd_even loaded () : void Theory div_mod loaded () : void () : void File mk_more_arithmetic loaded () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'compilet `num_convs`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool Theorem EQ_MONO_ADD_EQ autoloading from theory `arithmetic` ... EQ_MONO_ADD_EQ = |- !m n p. (m + p = n + p) = (m = n) Theorem LESS_MONO_ADD_EQ autoloading from theory `arithmetic` ... LESS_MONO_ADD_EQ = |- !m n p. (m + p) < (n + p) = m < n Theorem LESS_EQ_MONO_ADD_EQ autoloading from theory `arithmetic` ... LESS_EQ_MONO_ADD_EQ = |- !m n p. (m + p) <= (n + p) = m <= n NUM_LESS_EQ_PLUS_CONV = - : (term -> conv) NUM_EQ_PLUS_CONV = - : (term -> conv) NUM_LESS_PLUS_CONV = - : (term -> conv) Calling Lisp compiler File num_convs compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'compilet `num_tac`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool () : void GEN_INDUCT_RULE = - : (thm -> thm -> thm) GEN_INDUCT_TAC = - : tactic Calling Lisp compiler File num_tac compiled () : void #===> library more_arithmetic rebuilt make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/more_arithmetic' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/numeral' echo 'set_flag(`abort_when_fail`,true);;' \ 'loadt `numeral_theory`;;' \ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool false : bool () : void def_buffer = "T" : term new_defn = - : (string list -> thm) define = - : (term -> void) File define loaded () : void Theorem LESS_0 autoloading from theory `prim_rec` ... LESS_0 = |- !n. 0 < (SUC n) Theorem NOT_SUC autoloading from theory `num` ... NOT_SUC = |- !n. ~(SUC n = 0) Theorem NOT_LESS_0 autoloading from theory `prim_rec` ... NOT_LESS_0 = |- !n. ~n < 0 NOT_0_IMP_0_LESS = |- !n. ~(n = 0) = 0 < n Theorem LESS_EQ_TRANS autoloading from theory `arithmetic` ... LESS_EQ_TRANS = |- !m n p. m <= n /\ n <= p ==> m <= p Theorem LESS_EQ_ADD autoloading from theory `arithmetic` ... LESS_EQ_ADD = |- !m n. m <= (m + n) LESS_OR_EQ_IMP_LESS_OR_EQ_ADD = |- !m n p. m <= n ==> m <= (n + p) Theorem LESS_EQ_MONO autoloading from theory `arithmetic` ... LESS_EQ_MONO = |- !n m. (SUC n) <= (SUC m) = n <= m Definition ADD autoloading from theory `arithmetic` ... ADD = |- (!n. 0 + n = n) /\ (!m n. (SUC m) + n = SUC(m + n)) Theorem ADD_SYM autoloading from theory `arithmetic` ... ADD_SYM = |- !m n. m + n = n + m Definition LESS_OR_EQ autoloading from theory `arithmetic` ... LESS_OR_EQ = |- !m n. m <= n = m < n \/ (m = n) Definition MULT autoloading from theory `arithmetic` ... MULT = |- (!n. 0 * n = 0) /\ (!m n. (SUC m) * n = (m * n) + n) Theorem MULT_SYM autoloading from theory `arithmetic` ... MULT_SYM = |- !m n. m * n = n * m MULT_NONNEG_MONO_LESS_OR_EQ = |- !m n. 0 < m ==> n <= (m * n) Theorem LESS_LESS_EQ_TRANS autoloading from theory `arithmetic` ... LESS_LESS_EQ_TRANS = |- !m n p. m < n /\ n <= p ==> m < p ADDR_GREATER = |- !m n p. m < n ==> m < (n + p) ADDL_GREATER = |- !m n p. m < n ==> m < (p + n) Theorem LENGTH_APPEND autoloading from theory `list` ... LENGTH_APPEND = |- !l1 l2. LENGTH(APPEND l1 l2) = (LENGTH l1) + (LENGTH l2) Theorem LENGTH_SNOC autoloading from theory `list` ... LENGTH_SNOC = |- !x l. LENGTH(SNOC x l) = SUC(LENGTH l) Theorem LENGTH_REVERSE autoloading from theory `list` ... LENGTH_REVERSE = |- !l. LENGTH(REVERSE l) = LENGTH l Definition LENGTH autoloading from theory `list` ... LENGTH = |- (LENGTH[] = 0) /\ (!h t. LENGTH(CONS h t) = SUC(LENGTH t)) LENGTH_CLAUSES = |- (LENGTH[] = 0) /\ (!h t. LENGTH(CONS h t) = SUC(LENGTH t)) /\ (!x l. LENGTH(SNOC x l) = SUC(LENGTH l)) /\ (!l1 l2. LENGTH(APPEND l1 l2) = (LENGTH l1) + (LENGTH l2)) /\ (!l. LENGTH(REVERSE l) = LENGTH l) Theorem MULT_CLAUSES autoloading from theory `arithmetic` ... MULT_CLAUSES = |- !m n. (0 * m = 0) /\ (m * 0 = 0) /\ (1 * m = m) /\ (m * 1 = m) /\ ((SUC m) * n = (m * n) + n) /\ (m * (SUC n) = m + (m * n)) Theorem LESS_EQ_MONO_ADD_EQ autoloading from theory `arithmetic` ... LESS_EQ_MONO_ADD_EQ = |- !m n p. (m + p) <= (n + p) = m <= n Theorem RIGHT_ADD_DISTRIB autoloading from theory `arithmetic` ... RIGHT_ADD_DISTRIB = |- !m n p. (m + n) * p = (m * p) + (n * p) Theorem LESS_ADD_1 autoloading from theory `arithmetic` ... LESS_ADD_1 = |- !m n. n < m ==> (?p. m = n + (p + 1)) LESS_MULT_PLUS_DIFF = |- !n k l. k < l ==> ((k * n) + n) <= (l * n) Theorem LAST autoloading from theory `list` ... LAST = |- !x l. LAST(SNOC x l) = x Theorem BUTLAST autoloading from theory `list` ... BUTLAST = |- !x l. BUTLAST(SNOC x l) = l Theorem NULL autoloading from theory `list` ... NULL = |- NULL[] /\ (!h t. ~NULL(CONS h t)) Theorem SNOC_INDUCT autoloading from theory `list` ... SNOC_INDUCT = |- !P. P[] /\ (!l. P l ==> (!x. P(SNOC x l))) ==> (!l. P l) SNOC_BUTLAST = |- !l. ~NULL l ==> (SNOC(LAST l)(BUTLAST l) = l) Theorem LESS_MONO_ADD_EQ autoloading from theory `arithmetic` ... LESS_MONO_ADD_EQ = |- !m n p. (m + p) < (n + p) = m < n Theorem LESS_TRANS autoloading from theory `arithmetic` ... LESS_TRANS = |- !m n p. m < n /\ n < p ==> m < p LESS_LESS_MONO = |- !m n p q. m < p /\ n < q ==> (m + n) < (p + q) Theorem LESS_EQ_REFL autoloading from theory `arithmetic` ... LESS_EQ_REFL = |- !m. m <= m Theorem LESS_EQUAL_ANTISYM autoloading from theory `arithmetic` ... LESS_EQUAL_ANTISYM = |- !n m. n <= m /\ m <= n ==> (n = m) Theorem NOT_LESS autoloading from theory `arithmetic` ... NOT_LESS = |- !m n. ~m < n = n <= m NOT_EQ_LESS_EQ = |- !a b. ~(a = b) = a < b \/ b < a Theorem LESS_REFL autoloading from theory `prim_rec` ... LESS_REFL = |- !n. ~n < n GREATER_NOT_ZERO = |- !x. 0 < x ==> ~(x = 0) Theorem NOT_LESS_EQUAL autoloading from theory `arithmetic` ... NOT_LESS_EQUAL = |- !m n. ~m <= n = n < m LESS_IS_NOT_LESS_OR_EQ = |- !x y. x < y = ~y <= x Theorem INV_SUC_EQ autoloading from theory `prim_rec` ... INV_SUC_EQ = |- !m n. (SUC m = SUC n) = (m = n) Definition REPLICATE autoloading from theory `list` ... REPLICATE = |- (!x. REPLICATE 0 x = []) /\ (!n x. REPLICATE(SUC n)x = CONS x(REPLICATE n x)) Theorem LENGTH_REPLICATE autoloading from theory `list` ... LENGTH_REPLICATE = |- !n x. LENGTH(REPLICATE n x) = n LENGTH_REPLICATE = |- !n e. LENGTH(REPLICATE n e) = n Definition ALL_EL autoloading from theory `list` ... ALL_EL = |- (!P. ALL_EL P[] = T) /\ (!P x l. ALL_EL P(CONS x l) = P x /\ ALL_EL P l) EVERY_REPLICATE = |- !n e. ALL_EL($= e)(REPLICATE n e) () : void IS_NORMALIZED = |- !digits. IS_NORMALIZED digits = (digits = []) \/ 0 < (HD digits) IS_NORMALIZED_NIL = |- IS_NORMALIZED[] Theorem NOT_CONS_NIL autoloading from theory `list` ... NOT_CONS_NIL = |- !h t. ~(CONS h t = []) Definition HD autoloading from theory `list` ... HD = |- !h t. HD(CONS h t) = h IS_NORMALIZED_CONS = |- !e l. IS_NORMALIZED(CONS e l) = 0 < e () : void IS_BASEN = |- !radix digits. IS_BASEN radix digits = ALL_EL($> radix)digits IS_BASEN_NIL = |- !r. IS_BASEN r[] Definition GREATER autoloading from theory `arithmetic` ... GREATER = |- !m n. m > n = n < m IS_BASEN_CONS = |- !r l e. IS_BASEN r(CONS e l) = e < r /\ IS_BASEN r l IS_BASEN_CONS_IMP_LESS = |- !r l e. 1 < r ==> IS_BASEN r(CONS e l) ==> e < r IS_BASEN_CONS_IMP_IS_BASEN = |- !r l e. 1 < r ==> IS_BASEN r(CONS e l) ==> IS_BASEN r l Theorem list_Axiom autoloading from theory `list` ... list_Axiom = |- !x f. ?! fn. (fn[] = x) /\ (!h t. fn(CONS h t) = f(fn t)h t) BASEN = |- (!radix. BASEN radix[] = 0) /\ (!radix digit digits. BASEN radix(CONS digit digits) = (digit * (radix EXP (LENGTH digits))) + (BASEN radix digits)) Theorem ADD_CLAUSES autoloading from theory `arithmetic` ... ADD_CLAUSES = |- (0 + m = m) /\ (m + 0 = m) /\ ((SUC m) + n = SUC(m + n)) /\ (m + (SUC n) = SUC(m + n)) BASEN_ZEROS = |- !r n. BASEN r(REPLICATE n 0) = 0 Theorem SUC_LESS autoloading from theory `prim_rec` ... SUC_LESS = |- !m n. (SUC m) < n ==> m < n Theorem ZERO_LESS_EXP autoloading from theory `arithmetic` ... ZERO_LESS_EXP = |- !m n. 0 < ((SUC n) EXP m) one_less_exp_lemma = . |- !m. 0 < (r EXP m) BASEN_EMPTY_EQ_0 = |- !r l. 1 < r ==> IS_NORMALIZED l ==> ((BASEN r l = 0) = (l = [])) BASEN_CONS_0 = |- !r l. BASEN r(CONS 0 l) = BASEN r l Theorem MULT_ASSOC autoloading from theory `arithmetic` ... MULT_ASSOC = |- !m n p. m * (n * p) = (m * n) * p Theorem EQ_MONO_ADD_EQ autoloading from theory `arithmetic` ... EQ_MONO_ADD_EQ = |- !m n p. (m + p = n + p) = (m = n) Theorem ADD_ASSOC autoloading from theory `arithmetic` ... ADD_ASSOC = |- !m n p. m + (n + p) = (m + n) + p Definition EXP autoloading from theory `arithmetic` ... EXP = |- (!m. m EXP 0 = 1) /\ (!m n. m EXP (SUC n) = m * (m EXP n)) Definition SNOC autoloading from theory `list` ... SNOC = |- (!x. SNOC x[] = [x]) /\ (!x x' l. SNOC x(CONS x' l) = CONS x'(SNOC x l)) BASEN_SNOC = |- !r e l. BASEN r(SNOC e l) = ((BASEN r l) * r) + e BASEN_DIGIT_EQ_DIGIT = |- !r e. BASEN r[e] = e BASEN_EXP_N = |- !r n. BASEN r(CONS 1(REPLICATE n 0)) = r EXP n BASEN_LESS_EXP_LENGTH = |- !r l. 1 < r ==> IS_BASEN r l ==> (BASEN r l) < (r EXP (LENGTH l)) Theorem SUB_LESS_OR autoloading from theory `arithmetic` ... SUB_LESS_OR = |- !m n. n < m ==> n <= (m - 1) BASEN_LESS_OR_EQ_EXP_LENGTH = |- !r l. 1 < r ==> IS_BASEN r l ==> (BASEN r l) <= ((r EXP (LENGTH l)) - 1) Theorem DIV_MULT autoloading from theory `arithmetic` ... DIV_MULT = |- !n r. r < n ==> (!q. ((q * n) + r) DIV n = q) Theorem MOD_MULT autoloading from theory `arithmetic` ... MOD_MULT = |- !n r. r < n ==> (!q. ((q * n) + r) MOD n = r) numeral_lemma = |- !r' n r q q'. r' < n ==> r < n ==> ((q * n) + r = (q' * n) + r') ==> (r = r') /\ (q = q') basen_and_eq_lemma = ..... |- (BASEN r l1 = BASEN r l2) /\ (h = h') Theorem CONS_11 autoloading from theory `list` ... CONS_11 = |- !h t h' t'. (CONS h t = CONS h' t') = (h = h') /\ (t = t') Theorem SUC_NOT autoloading from theory `arithmetic` ... SUC_NOT = |- !n. ~(0 = SUC n) Theorem list_INDUCT autoloading from theory `list` ... list_INDUCT = |- !P. P[] /\ (!t. P t ==> (!h. P(CONS h t))) ==> (!l. P l) BASEN_11 = |- !r l1 l2. 1 < r ==> IS_BASEN r l1 ==> IS_BASEN r l2 ==> (LENGTH l1 = LENGTH l2) ==> (BASEN r l1 = BASEN r l2) ==> (l1 = l2) Theorem SUB_0 autoloading from theory `arithmetic` ... SUB_0 = |- !m. (0 - m = 0) /\ (m - 0 = m) Theorem SUB_MONO_EQ autoloading from theory `arithmetic` ... SUB_MONO_EQ = |- !n m. (SUC n) - (SUC m) = n - m BASEN_EXP_LESS_OR_EQ = |- !r l. 1 < r ==> ~NULL l ==> IS_NORMALIZED l ==> IS_BASEN r l ==> (r EXP ((LENGTH l) - 1)) <= (BASEN r l) Theorem LESS_EQ autoloading from theory `arithmetic` ... LESS_EQ = |- !m n. m < n = (SUC m) <= n BASEN_EXP_LESS = |- !r l. IS_BASEN r l ==> IS_NORMALIZED l ==> ~NULL l ==> 1 < r ==> ((r EXP ((LENGTH l) - 1)) - 1) < (BASEN r l) BASEN_ONTO = |- !r l. ?n. BASEN r l = n Theorem LEFT_ADD_DISTRIB autoloading from theory `arithmetic` ... LEFT_ADD_DISTRIB = |- !m n p. p * (m + n) = (p * m) + (p * n) Theorem EXP_ADD autoloading from theory `arithmetic` ... EXP_ADD = |- !p q n. n EXP (p + q) = (n EXP p) * (n EXP q) Definition APPEND autoloading from theory `list` ... APPEND = |- (!l. APPEND[]l = l) /\ (!l1 l2 h. APPEND(CONS h l1)l2 = CONS h(APPEND l1 l2)) BASEN_APPEND = |- !r l m. BASEN r(APPEND l m) = ((r EXP (LENGTH m)) * (BASEN r l)) + (BASEN r m) IS_BASEN_APPEND = |- !r l m. IS_BASEN r(APPEND l m) = IS_BASEN r l /\ IS_BASEN r m Theorem LESS_MOD autoloading from theory `arithmetic` ... LESS_MOD = |- !n k. k < n ==> (k MOD n = k) Theorem MOD_TIMES autoloading from theory `arithmetic` ... MOD_TIMES = |- !n. 0 < n ==> (!q r. ((q * n) + r) MOD n = r MOD n) Theorem LESS_MONO_EQ autoloading from theory `arithmetic` ... LESS_MONO_EQ = |- !m n. (SUC m) < (SUC n) = m < n Theorem num_CASES autoloading from theory `arithmetic` ... num_CASES = |- !m. (m = 0) \/ (?n. m = SUC n) Theorem SUC_SUB1 autoloading from theory `arithmetic` ... SUC_SUB1 = |- !m. (SUC m) - 1 = m Definition TL autoloading from theory `list` ... TL = |- !h t. TL(CONS h t) = t Theorem list_CASES autoloading from theory `list` ... list_CASES = |- !l. (l = []) \/ (?t h. l = CONS h t) BASEN_TRAILING = |- !r l. 1 < r ==> IS_BASEN r l ==> ~NULL l ==> (BASEN r(TL l) = (BASEN r l) MOD (r EXP ((LENGTH l) - 1))) Theorem SNOC_APPEND autoloading from theory `list` ... SNOC_APPEND = |- !x l. SNOC x l = APPEND l[x] BASEN_LEADING = |- !r l. 1 < r ==> IS_BASEN r l ==> ~NULL l ==> (BASEN r(BUTLAST l) = (BASEN r l) DIV r) Theorem LESS_EQ_EXISTS autoloading from theory `arithmetic` ... LESS_EQ_EXISTS = |- !m n. m <= n = (?p. n = m + p) Theorem LESS_THM autoloading from theory `prim_rec` ... LESS_THM = |- !m n. m < (SUC n) = (m = n) \/ m < n NORMALIZED_LENGTHS_LEMMA = |- !l1 l2 r. ~(1 < r /\ IS_BASEN r l1 /\ IS_BASEN r l2 /\ IS_NORMALIZED l1 /\ IS_NORMALIZED l2 /\ (BASEN r l1 = BASEN r l2) /\ (LENGTH l1) < (LENGTH l2)) NORMALIZED_LENGTHS = |- !l1 l2 r. 1 < r ==> IS_BASEN r l1 ==> IS_BASEN r l2 ==> IS_NORMALIZED l1 ==> IS_NORMALIZED l2 ==> (BASEN r l1 = BASEN r l2) ==> (LENGTH l1 = LENGTH l2) NORMALIZED_BASEN_11 = |- !l1 l2 r. 1 < r ==> IS_BASEN r l1 ==> IS_BASEN r l2 ==> IS_NORMALIZED l1 ==> IS_NORMALIZED l2 ==> (BASEN r l1 = BASEN r l2) ==> (l1 = l2) Definition DIVISION autoloading from theory `arithmetic` ... DIVISION = |- !n. 0 < n ==> (!k. (k = ((k DIV n) * n) + (k MOD n)) /\ (k MOD n) < n) div_mod_lemma = . |- (n = ((n DIV (r EXP m)) * (r EXP m)) + (n MOD (r EXP m))) /\ (n MOD (r EXP m)) < (r EXP m) BASEN_ONTO_MOD_LEMMA = |- !m n r. ?l. 1 < r ==> n < (r EXP m) ==> (LENGTH l = m) /\ (n = BASEN r l) BASEN_MOD_ONTO_LEMMA = |- !n m r. ?l. 1 < r ==> (LENGTH l = n) /\ (BASEN r l = m MOD (r EXP n)) BASEN_DIGITS_EXISTS = |- ?f. !n m r. 1 < r ==> (LENGTH(f r n m) = n) /\ (BASEN r(f r n m) = m MOD (r EXP n)) BASEN_DIGITS = |- !n m r. 1 < r ==> (LENGTH(BASEN_DIGITS r n m) = n) /\ (BASEN r(BASEN_DIGITS r n m) = m MOD (r EXP n)) SELECT_TAC = - : tactic EXP_1 = |- !r. r EXP 1 = r MULT_POS_MONO = |- !m n. 0 < n ==> m <= (m * n) POS_EXP_POS = |- !r x. 0 < r ==> 0 < x ==> r <= (r EXP x) LESS_LEMMA1 = |- !m n. m < (SUC n) ==> (m = n) \/ m < n LESS_MONO_REV = |- !m n. (SUC m) < (SUC n) ==> m < n Theorem LESS_SUC autoloading from theory `prim_rec` ... LESS_SUC = |- !m n. m < n ==> m < (SUC n) MULT_LESS_MULT = |- !m n p q. m < n ==> p < q ==> (m * p) < (n * q) MULT_POS_STRICT_MONO = |- !m n p. n < p ==> n < ((SUC m) * p) Theorem LESS_EXP_SUC_MONO autoloading from theory `arithmetic` ... LESS_EXP_SUC_MONO = |- !n m. ((SUC(SUC m)) EXP n) < ((SUC(SUC m)) EXP (SUC n)) EXP_LESS_EXP = |- !m n n'. 1 < m ==> n < n' ==> (m EXP n) < (m EXP n') EXP_2_STRICT_MONO = |- !m n. 1 < m ==> 1 < n ==> m < (m EXP n) NUM_CASES_DISJ = |- !n m. m < n \/ (m = n) \/ n < m Theorem LESS_MULT_MONO autoloading from theory `arithmetic` ... LESS_MULT_MONO = |- !m i n. ((SUC n) * m) < ((SUC n) * i) = m < i MULT_POS_STRICT_MONO2 = |- !m n1 n2. 0 < m ==> ((m * n1) < (m * n2) = n1 < n2) () : void LOG = |- !r n. LOG r n = (@x. (r EXP x) <= n /\ n < (r EXP (x + 1))) Theorem LESS_OR autoloading from theory `arithmetic` ... LESS_OR = |- !m n. m < n ==> (SUC m) <= n Theorem LESS_0_CASES autoloading from theory `arithmetic` ... LESS_0_CASES = |- !m. (0 = m) \/ 0 < m LOG_1 = |- !r. 1 < r ==> (LOG r 1 = 0) () : void File numeral_theory loaded () : void #rm -f dummy.th echo 'set_flag(`abort_when_fail`,true);;' \ 'new_theory `dummy`;;' \ 'load_library `reduce`;;' \ 'new_parent `numeral`;;' \ 'let t = `numeral` in do' \ 'map (\s. autoload_theory(`definition`,t,fst s)) (definitions t);' \ 'map (\s. autoload_theory(`theorem`,t,fst s)) (theorems t);;' \ 'compilet `numeral_rules`;;' \ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool () : void Loading library reduce ... Extending help search path. Loading boolean conversions........ Loading arithmetic conversions.................. Loading general conversions, rule and tactic..... Library reduce loaded. () : void Theory numeral loaded () : void [(); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); (); ()] : void list Theorem LESS_EQ_ADD autoloading from theory `arithmetic` ... LESS_EQ_ADD = |- !m n. m <= (m + n) Theorem ADD_ASSOC autoloading from theory `arithmetic` ... ADD_ASSOC = |- !m n p. m + (n + p) = (m + n) + p Theorem LESS_EQ_EXISTS autoloading from theory `arithmetic` ... LESS_EQ_EXISTS = |- !m n. m <= n = (?p. n = m + p) ADDR_GREATER_EQ = |- !m n p. m <= n ==> m <= (n + p) Theorem LESS_ANTISYM autoloading from theory `arithmetic` ... LESS_ANTISYM = |- !m n. ~(m < n /\ n < m) NOT_LESS_AND_GREATER = |- !n m. n < m ==> ~m < n Theorem LESS_MONO_ADD_EQ autoloading from theory `arithmetic` ... LESS_MONO_ADD_EQ = |- !m n p. (m + p) < (n + p) = m < n Theorem ADD_SYM autoloading from theory `arithmetic` ... ADD_SYM = |- !m n. m + n = n + m ADD_MONO_LESS = |- !m n p. (m + p) < (m + n) = p < n Theorem ADD_SUB autoloading from theory `arithmetic` ... ADD_SUB = |- !a c. (a + c) - c = a ADD_EQ_IMP_SUB_EQ = |- !a b c. (a = b + c) ==> (a - b = c) radices = [10; 16] : int list max = - : (int -> int -> int) max_radix = 16 : int () : void upto = - : (int -> int list) zero_upto = - : (int -> int list) lengthen = - : (* -> int -> * list -> * list) listify = - : (* -> * list) firstn = - : (int -> * list -> * list) butfirstn = - : (int -> * list -> * list) absolute_value = - : (int -> int) mk_binary_comb = - : (term -> term -> term -> term) dest_unary_comb = - : (term -> term -> term) dest_binary_comb = - : (term -> term -> (term # term)) mk_term_list = - : ((string # type) -> int -> term list) Definition SNOC autoloading from theory `list` ... SNOC = |- (!x. SNOC x[] = [x]) /\ (!x x' l. SNOC x(CONS x' l) = CONS x'(SNOC x l)) CONS_OF_SNOC_CONV = - : conv SNOC_OF_CONS_CONV = - : conv Definition GREATER autoloading from theory `arithmetic` ... GREATER = |- !m n. m > n = n < m Theorem LESS_SUC autoloading from theory `prim_rec` ... LESS_SUC = |- !m n. m < n ==> m < (SUC n) Theorem LESS_SUC_REFL autoloading from theory `prim_rec` ... LESS_SUC_REFL = |- !n. n < (SUC n) Definition LENGTH autoloading from theory `list` ... LENGTH = |- (LENGTH[] = 0) /\ (!h t. LENGTH(CONS h t) = SUC(LENGTH t)) LENGTH_COMPARE_CONV = - : conv Theorem LESS_NOT_EQ autoloading from theory `prim_rec` ... LESS_NOT_EQ = |- !m n. m < n ==> ~(m = n) COMPARE_EQ_RULE = - : (thm -> thm) COMPARE_LT_RULE = - : (thm -> thm) Theorem NOT_LESS autoloading from theory `arithmetic` ... NOT_LESS = |- !m n. ~m < n = n <= m Definition LESS_OR_EQ autoloading from theory `arithmetic` ... LESS_OR_EQ = |- !m n. m <= n = m < n \/ (m = n) COMPARE_LE_RULE = - : (thm -> thm) Theorem LESS_REFL autoloading from theory `prim_rec` ... LESS_REFL = |- !n. ~n < n COMPARE_GT_RULE = - : (thm -> thm) Theorem GREATER_EQ autoloading from theory `arithmetic` ... GREATER_EQ = |- !n m. n >= m = m <= n Definition GREATER_OR_EQ autoloading from theory `arithmetic` ... GREATER_OR_EQ = |- !m n. m >= n = m > n \/ (m = n) COMPARE_GE_RULE = - : (thm -> thm) LENGTH_EQ_CONV = - : conv is_lt = - : (term -> bool) LENGTH_LT_CONV = - : conv is_le = - : (term -> bool) LENGTH_LE_CONV = - : conv is_gt = - : (term -> bool) LENGTH_GT_CONV = - : conv is_ge = - : (term -> bool) LENGTH_GE_CONV = - : conv fast_num_CONV = - : conv Theorem LESS_TRANS autoloading from theory `arithmetic` ... LESS_TRANS = |- !m n p. m < n /\ n < p ==> m < p Theorem EQ_LESS autoloading from theory `prim_rec` ... EQ_LESS = |- !n. (SUC m = n) ==> m < n fast_GT_CONV = - : conv fast_LT_CONV = - : conv mk_basen = - : (term -> term list -> term) dest_basen = - : (term -> (term # term)) is_basen = - : (term -> bool) dest_unary_basen_comb = - : (term -> (term # term # term # term # term list)) dest_binary_basen_comb = - : (term -> (term # term # term # term # term list # term # term # term list)) numeral_of_int = - : ((int # int) -> int list) basen_of_numeral = - : ((int # int list) -> term) basen_of_int = - : ((int # int) -> term) numeral_of_basen = - : (term -> (int # int list)) int_of_numeral = - : ((int # int list) -> int) int_of_basen = - : (term -> int) Definition ALL_EL autoloading from theory `list` ... ALL_EL = |- (!P. ALL_EL P[] = T) /\ (!P x l. ALL_EL P(CONS x l) = P x /\ ALL_EL P l) Definition IS_BASEN autoloading from theory `numeral` ... IS_BASEN = |- !radix digits. IS_BASEN radix digits = ALL_EL($> radix)digits Theorem IS_BASEN_NIL autoloading from theory `numeral` ... IS_BASEN_NIL = |- !r. IS_BASEN r[] IS_BASEN_CONV = - : conv Theorem IS_NORMALIZED_CONS autoloading from theory `numeral` ... IS_NORMALIZED_CONS = |- !e l. IS_NORMALIZED(CONS e l) = 0 < e Theorem IS_NORMALIZED_NIL autoloading from theory `numeral` ... IS_NORMALIZED_NIL = |- IS_NORMALIZED[] IS_NORMALIZED_CONV = - : conv Theorem BASEN_CONS_0 autoloading from theory `numeral` ... BASEN_CONS_0 = |- !r l. BASEN r(CONS 0 l) = BASEN r l ONCE_BASEN_NORMALIZE_CONV = - : conv BASEN_NORMALIZE_CONV = - : conv ONCE_BASEN_DENORMALIZE_CONV = - : conv BASEN_DENORMALIZE_CONV = - : (int -> conv) Theorem ADD_CLAUSES autoloading from theory `arithmetic` ... ADD_CLAUSES = |- (0 + m = m) /\ (m + 0 = m) /\ ((SUC m) + n = SUC(m + n)) /\ (m + (SUC n) = SUC(m + n)) Theorem MULT_CLAUSES autoloading from theory `arithmetic` ... MULT_CLAUSES = |- !m n. (0 * m = 0) /\ (m * 0 = 0) /\ (1 * m = m) /\ (m * 1 = m) /\ ((SUC m) * n = (m * n) + n) /\ (m * (SUC n) = m + (m * n)) Theorem LESS_MONO_MULT autoloading from theory `arithmetic` ... LESS_MONO_MULT = |- !m n p. m <= n ==> (m * p) <= (n * p) Theorem LESS_EQ autoloading from theory `arithmetic` ... LESS_EQ = |- !m n. m < n = (SUC m) <= n Definition MULT autoloading from theory `arithmetic` ... MULT = |- (!n. 0 * n = 0) /\ (!m n. (SUC m) * n = (m * n) + n) Theorem BASEN_LESS_EXP_LENGTH autoloading from theory `numeral` ... BASEN_LESS_EXP_LENGTH = |- !r l. 1 < r ==> IS_BASEN r l ==> (BASEN r l) < (r EXP (LENGTH l)) Theorem LESS_LESS_EQ_TRANS autoloading from theory `arithmetic` ... LESS_LESS_EQ_TRANS = |- !m n p. m < n /\ n <= p ==> m < p Definition BASEN autoloading from theory `numeral` ... BASEN = |- (!radix. BASEN radix[] = 0) /\ (!radix digit digits. BASEN radix(CONS digit digits) = (digit * (radix EXP (LENGTH digits))) + (BASEN radix digits)) BASEN_COMPARE_CONV = - : conv BASEN_EQ_CONV = - : conv BASEN_LT_CONV = - : conv BASEN_LE_CONV = - : conv BASEN_GT_CONV = - : conv BASEN_GE_CONV = - : conv Theorem ADD_SUC autoloading from theory `arithmetic` ... ADD_SUC = |- !m n. SUC(m + n) = m + (SUC n) fast_add = - : (int -> int -> thm) fast_add_with_carry = - : (int -> int -> int -> thm) fast_mul_with_carry = - : (int -> int -> int -> thm) Theorem MOD_TIMES autoloading from theory `arithmetic` ... MOD_TIMES = |- !n. 0 < n ==> (!q r. ((q * n) + r) MOD n = r MOD n) Definition DIVISION autoloading from theory `arithmetic` ... DIVISION = |- !n. 0 < n ==> (!k. (k = ((k DIV n) * n) + (k MOD n)) /\ (k MOD n) < n) Theorem EQ_MONO_ADD_EQ autoloading from theory `arithmetic` ... EQ_MONO_ADD_EQ = |- !m n p. (m + p = n + p) = (m = n) Theorem RIGHT_ADD_DISTRIB autoloading from theory `arithmetic` ... RIGHT_ADD_DISTRIB = |- !m n p. (m + n) * p = (m * p) + (n * p) Theorem DIV_UNIQUE autoloading from theory `arithmetic` ... DIV_UNIQUE = |- !n k q. (?r. (k = (q * n) + r) /\ r < n) ==> (k DIV n = q) Theorem MOD_MULT autoloading from theory `arithmetic` ... MOD_MULT = |- !n r. r < n ==> (!q. ((q * n) + r) MOD n = r) Theorem DIV_MULT autoloading from theory `arithmetic` ... DIV_MULT = |- !n r. r < n ==> (!q. ((q * n) + r) DIV n = q) fast_div_mod = - : (int -> int -> (thm # thm)) basen_add_basecase = |- !r. ((BASEN r[]) + (BASEN r[]) = BASEN r[0]) /\ (LENGTH[] = LENGTH[]) /\ (LENGTH[] = LENGTH[]) Theorem MULT_ASSOC autoloading from theory `arithmetic` ... MULT_ASSOC = |- !m n p. m * (n * p) = (m * n) * p Definition EXP autoloading from theory `arithmetic` ... EXP = |- (!m. m EXP 0 = 1) /\ (!m n. m EXP (SUC n) = m * (m EXP n)) basen_add_step_lemma = |- !r. 0 < r ==> (!x y xs ys z zs. ((BASEN r xs) + (BASEN r ys) = BASEN r(CONS z zs)) /\ (LENGTH xs = LENGTH ys) /\ (LENGTH xs = LENGTH zs) ==> ((BASEN r(CONS x xs)) + (BASEN r(CONS y ys)) = BASEN r(CONS(((x + y) + z) DIV r)(CONS(((x + y) + z) MOD r)zs))) /\ (LENGTH(CONS x xs) = LENGTH(CONS y ys)) /\ (LENGTH(CONS x xs) = LENGTH(CONS(((x + y) + z) MOD r)zs))) PURE_BASEN_ADD_CONV = - : conv BASEN_ADD_CONV = - : conv Theorem ADD_0 autoloading from theory `arithmetic` ... ADD_0 = |- !m. m + 0 = m Theorem ADD1 autoloading from theory `arithmetic` ... ADD1 = |- !m. SUC m = m + 1 PURE_BASEN_SUC_CONV = - : conv BASEN_SUC_CONV = - : conv Theorem SUB_EQ_0 autoloading from theory `arithmetic` ... SUB_EQ_0 = |- !m n. (m - n = 0) = m <= n Theorem SUB_EQUAL_0 autoloading from theory `arithmetic` ... SUB_EQUAL_0 = |- !c. c - c = 0 BASEN_SUB_CONV = - : conv Theorem PRE_SUB1 autoloading from theory `arithmetic` ... PRE_SUB1 = |- !m. PRE m = m - 1 PURE_BASEN_PRE_CONV = - : conv BASEN_PRE_CONV = - : conv basen_mul_basecase = |- !r n. ((BASEN r[]) * (BASEN r[n]) = BASEN r[0]) /\ (LENGTH[] = LENGTH[]) Theorem MULT_SYM autoloading from theory `arithmetic` ... MULT_SYM = |- !m n. m * n = n * m Theorem BASEN_DIGIT_EQ_DIGIT autoloading from theory `numeral` ... BASEN_DIGIT_EQ_DIGIT = |- !r e. BASEN r[e] = e basen_mul_step_lemma = |- !r. (0 < r = T) ==> (!n x xs y ys. ((BASEN r xs) * (BASEN r[n]) = BASEN r(CONS y ys)) /\ (LENGTH xs = LENGTH ys) ==> ((BASEN r(CONS x xs)) * (BASEN r[n]) = BASEN r(CONS(((n * x) + y) DIV r)(CONS(((n * x) + y) MOD r)ys))) /\ (LENGTH(CONS x xs) = LENGTH(CONS(((n * x) + y) MOD r)ys))) PURE_BASEN_MUL_BY_DIGIT_CONV = - : conv basen_mul_sum_basecase = |- !r x. BASEN r[BASEN r x] = BASEN r x basen_mul_sum_step_lemma = |- !r x1 x2 xs. BASEN r(CONS(BASEN r x1)(CONS(BASEN r x2)xs)) = BASEN r(CONS(((BASEN r x1) * r) + (BASEN r x2))xs) Theorem LEFT_ADD_DISTRIB autoloading from theory `arithmetic` ... LEFT_ADD_DISTRIB = |- !m n p. p * (m + n) = (p * m) + (p * n) Theorem BASEN_SNOC autoloading from theory `numeral` ... BASEN_SNOC = |- !r e l. BASEN r(SNOC e l) = ((BASEN r l) * r) + e basen_extend_mul_lemma = |- !x r y more_zs. (x * (BASEN r[y]) = BASEN r more_zs) ==> (!ys zs. (x * (BASEN r ys) = BASEN r zs) ==> (x * (BASEN r(SNOC y ys)) = BASEN r[BASEN r zs;BASEN r more_zs])) PURE_BASEN_MUL_EXTEND_RULE = - : (term -> thm -> thm) basen_mul_combine_pps_basecase = |- !r y. (BASEN r[BASEN r[];BASEN r[y]] = BASEN r[0;y]) /\ (LENGTH[y] = SUC(LENGTH[])) /\ (LENGTH[y] = SUC(LENGTH[])) basen_mul_combine_pps_step_lemma = |- !r. 0 < r ==> (!x y xs ys z zs. (BASEN r[BASEN r xs;BASEN r ys] = BASEN r(CONS z zs)) /\ (LENGTH ys = SUC(LENGTH xs)) /\ (LENGTH zs = SUC(LENGTH xs)) ==> (BASEN r[BASEN r(CONS x xs);BASEN r(CONS y ys)] = BASEN r(CONS(((x + y) + z) DIV r)(CONS(((x + y) + z) MOD r)zs))) /\ (LENGTH(CONS y ys) = SUC(LENGTH(CONS x xs))) /\ (LENGTH(CONS(((x + y) + z) MOD r)zs) = SUC(LENGTH(CONS x xs)))) PURE_BASEN_MUL_COMBINE_PPS_CONV = - : conv BASEN_MUL_COMBINE_PPS_CONV = - : conv BASEN_MUL_EXTEND_RULE = - : (term -> thm -> thm) basen_mul_basecase = |- !r x. x * (BASEN r[]) = BASEN r[] BASEN_MUL_SNOC_CONV = - : conv STEP_BASEN_MUL_CONV = - : conv Theorem INV_SUC_EQ autoloading from theory `prim_rec` ... INV_SUC_EQ = |- !m n. (SUC m = SUC n) = (m = n) Theorem LENGTH_MAP autoloading from theory `list` ... LENGTH_MAP = |- !l f. LENGTH(MAP f l) = LENGTH l Theorem BASEN_APPEND autoloading from theory `numeral` ... BASEN_APPEND = |- !r l m. BASEN r(APPEND l m) = ((r EXP (LENGTH m)) * (BASEN r l)) + (BASEN r m) Definition MAP autoloading from theory `list` ... MAP = |- (!f. MAP f[] = []) /\ (!f h t. MAP f(CONS h t) = CONS(f h)(MAP f t)) BASEN_MUL_CONV = - : conv LESS_DIV = |- !n k. k < n ==> (k DIV n = 0) Theorem LESS_MOD autoloading from theory `arithmetic` ... LESS_MOD = |- !n k. k < n ==> (k MOD n = k) LESS_DIV_MOD = |- !n k. k < n ==> (k DIV n = 0) /\ (k MOD n = k) less_divmod_thm = |- !dividend divisor r. ((BASEN r[]) * divisor) + dividend = dividend basen_divmod_conv = - : (term -> conv) BASEN_DIV_CONV = - : conv Theorem MOD_UNIQUE autoloading from theory `arithmetic` ... MOD_UNIQUE = |- !n k r. (?q. (k = (q * n) + r) /\ r < n) ==> (k MOD n = r) BASEN_MOD_CONV = - : conv Theorem EXP_ADD autoloading from theory `arithmetic` ... EXP_ADD = |- !p q n. n EXP (p + q) = (n EXP p) * (n EXP q) BASEN_EXP_CONV = - : conv BASEN_CONV = - : conv BASEN_OF_NUM_CONV = - : (term -> conv) NUM_ARITH_CONV = - : conv NUM_ARITH_RULE = - : (thm -> thm) NUM_ARITH_TAC = - : tactic Calling Lisp compiler File numeral_rules compiled () : void #rm -f dummy.th make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/numeral' make[4]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/ind_defs' echo 'set_flag(`abort_when_fail`,true);;'\ 'compilet `ind-defs`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool mk_predv = - : (term list -> term) checkfilter = - : (* list -> * list -> * list -> * list) checkside = - : (term -> term -> term) mk_mk_pred = - : ((term # term list # term list) -> (term # term # (term -> term))) make_rule = - : ((term # term # term list # (term -> term)) -> goal -> term) make_definition = - : ((term # term list) -> goal list -> term) derive_induction = - : conv usedef = - : ((term list # thm) -> ((thm -> thm) # conv)) eximp = - : (term list -> thm -> (term # thm)) derive_rule = - : (term -> ((thm -> thm) # conv) -> thm -> thm) derive_rules = - : conv prove_inductive_relation_exists = - : ((term # term list) -> goal list -> thm) - : ((term # term list) -> goal list -> thm) prove_inductive_relation_exists = - : ((term # term list) -> goal list -> thm) new_inductive_definition = - : (bool -> string -> (term # term list) -> goal list -> (thm list # thm)) simp_axiom = - : ((thm # term) -> thm) reduce_asm = - : (term -> conv) prove_asm = - : (term -> conv) simp_concl = - : (thm -> conv) simp_rule = - : ((thm # term) -> thm) simp = - : ((thm # term) -> thm) derive_strong_induction = - : ((thm list # thm) -> thm) - : ((thm list # thm) -> thm) derive_strong_induction = - : ((thm list # thm) -> thm) MK_CONJ_THEN = - : (term -> term -> thm_tactic -> thm_tactical) MK_CHOOSE_THEN = - : (term -> * list -> term -> thm_tactic -> thm_tactical) MK_THEN = - : (term -> term -> thm_tactic -> thm_tactical) TACF = - : (term -> term -> thm_tactic -> thm_tactic -> tactic) TACS = - : (term -> term -> thm_tactic -> thm_tactic -> tactic list) mkred = - : (term -> term list -> conv) RED_CASE = - : (term -> term -> conv) APPLY_CASE = - : (conv list -> conv) RED_WHERE = - : (term -> term -> conv) is_param = - : (* list -> (* # *) list -> * -> bool) RULE_INDUCT_THEN = - : (thm -> thm_tactic -> thm_tactic -> tactic) - : (thm -> thm_tactic -> thm_tactic -> tactic) RULE_INDUCT_THEN = - : (thm -> thm_tactic -> thm_tactic -> tactic) axiom_tac = - : thm_tactic prove_conj = - : (thm list -> conv) RULE_TAC = - : thm_tactic - : thm_tactic RULE_TAC = - : thm_tactic reduce = - : (term list -> thm list -> thm list -> (term # term) list -> (thm list # (term # term) list)) REDUCE = - : conv - : conv REDUCE = - : conv MATCH_MP = - : (thm -> thm -> thm) LIST_NOT_FORALL = - : ((thm -> (thm # *)) -> thm -> (thm # *)) simp_axiom = - : ((thm -> thm -> thm) -> term list -> thm -> thm -> (thm # thm)) crul = - : (term -> thm -> thm) CONJ_RUL = - : (term -> thm -> thm) LIST_EXISTS_THEN = - : ((thm -> thm) -> thm -> thm) RULE = - : (thm -> thm -> thm) EXISTS_IMP2 = - : (term -> thm -> thm) efn = - : (term -> thm -> thm) RULE2 = - : (* -> thm -> thm -> thm) NOT_NOT = - : (thm -> thm) simp_rule = - : ((thm -> thm -> thm) -> term -> term list -> thm -> thm -> (thm # thm)) simp = - : (term -> (thm -> thm -> thm) -> thm -> thm -> (thm # thm)) LIST_DE_MORGAN = - : ((* -> thm -> (thm # thm)) -> * list -> thm -> (thm # thm)) derive_cases_thm = - : ((thm list # thm) -> thm) - : ((thm list # thm) -> thm) derive_cases_thm = - : ((thm list # thm) -> thm) Calling Lisp compiler File ind-defs compiled () : void #echo 'set_flag(`abort_when_fail`,true);;'\ 'compilet `ind_defs`;;'\ 'quit();;' | /build/hol88-NNpOMw/hol88-2.02.19940316/hol =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #false : bool () : void Calling Lisp compiler File ind_defs compiled () : void #===> library ind_defs rebuilt make[4]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library/ind_defs' =======> library rebuilt make[3]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316/Library' date Wed Oct 13 16:06:26 UTC 2021 make[2]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316' date Wed Oct 13 16:06:26 UTC 2021 make permissions make[2]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316' find $(ls -1 | grep -v debian) \ \( -type d -exec chmod 775 {} \; \) -o\ \( -type f -exec chmod 664 {} \; \) for f in hol hol-lcf basic-hol Manual/LaTeX/makeindex Manual/LaTeX/makeindex.bin/*/makeindex Manual/Reference/bin/mktex Manual/Reference/bin/typecheck ; do\ ( if [ -f $f ] ; then\ find $f -exec chmod 775 {} \; ;fi) ; \ done make[2]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316' =======> hol Version 2.02 (GCL) and libraries made make[1]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316' find -name "raw_*_map" -exec rm {} \; for i in $(find -maxdepth 1 -name "*hol*"); do \ printf 'install `'/usr/share/hol88-2.02.19940316'`;;\nlisp `(ml-save "foo")`;;\n' | ./$i &&\ mv foo $i; done HOL-LCF version 2.02 (GCL) created 13/10/21 #HOL installed (`/usr/share/hol88-2.02.19940316`) () : void # =============================================================================== HOL88 Version 2.02 (GCL), built on 13/10/21 =============================================================================== #HOL installed (`/usr/share/hol88-2.02.19940316`) () : void # BASIC-HOL version 2.02 (GCL) created 13/10/21 #HOL installed (`/usr/share/hol88-2.02.19940316`) () : void #touch build-arch-stamp fakeroot debian/rules binary-arch find -maxdepth 1 -name "*hol*" | awk '{a=$1;sub("/[^/]*$","",a);printf("%s usr/lib/hol88-2.02.19940316/%s\n",$1,a);}' >>debian/hol88.install echo debian/hol88.sh usr/bin >>debian/hol88.install find Library -name "*.o" | awk '{a=$1;sub("/[^/]*$","",a);printf("%s usr/lib/hol88-2.02.19940316/%s\n",$1,a);}' >>debian/hol88-library.install find * -maxdepth 0 -name "*hol*" | awk '{printf("/usr/lib/hol88-2.02.19940316/%s usr/share/hol88-2.02.19940316/%s\n",$1,$1);}' >>debian/hol88.links find Library -name "*.o" | awk '{printf("/usr/lib/hol88-2.02.19940316/%s usr/share/hol88-2.02.19940316/%s\n",$1,$1);}' >>debian/hol88-library.links echo "#!/bin/bash" >debian/hol88.sh echo >>debian/hol88.sh echo "exec /usr/lib/hol88-2.02.19940316/hol" >>debian/hol88.sh chmod 755 debian/hol88.sh dh_testdir dh_testroot dh_prep -a -X./ml/site.ml.orig -X./contrib/tooltool/Makefile.orig \ -X./contrib/tooltool/events.c.orig -X./contrib/tooltool/func_fix.c.orig \ -X./contrib/tooltool/lex.c.orig -X./contrib/tooltool/parse.y.orig \ -X./contrib/tooltool/patchlevel.h.orig -X./contrib/tooltool/windows.c.orig \ -X./contrib/Xhelp/hol_apro.orig -X./contrib/Xhelp/hol_ref.orig \ -X./contrib/Xhelp/xholhelp.h.orig -X./contrib/Xhelp/hol_thm.orig dh_installdirs -a dh_installdirs: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_install -a dh_install: warning: Compatibility levels before 10 are deprecated (level 9 in use) mv debian/hol88/usr/bin/hol88.sh debian/hol88/usr/bin/hol88 /usr/bin/make -f debian/rules DH_OPTIONS=-a binary-common make[1]: Entering directory '/build/hol88-NNpOMw/hol88-2.02.19940316' dh_testdir dh_testroot dh_installchangelogs dh_installchangelogs: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_installdocs dh_installdocs: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_installexamples dh_installexamples: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_installman dh_installman: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_lintian dh_link dh_link: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_strip dh_strip: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_strip: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_compress dh_compress: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_compress: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_fixperms dh_makeshlibs dh_makeshlibs: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_installdeb dh_installdeb: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_shlibdeps dh_shlibdeps: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_shlibdeps: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_gencontrol dh_md5sums dh_builddeb dpkg-deb: building package 'hol88-library' in '../hol88-library_2.02.19940316-35.1_amd64.deb'. dpkg-deb: building package 'hol88' in '../hol88_2.02.19940316-35.1_amd64.deb'. make[1]: Leaving directory '/build/hol88-NNpOMw/hol88-2.02.19940316' dpkg-genbuildinfo --build=any dpkg-genchanges --build=any >../hol88_2.02.19940316-35.1_amd64.changes dpkg-genchanges: info: binary-only arch-specific upload (source code and arch-indep packages not included) dpkg-source --after-build . dpkg-buildpackage: info: binary-only upload (no source included) I: running special hook: sync-out /build/hol88-NNpOMw /tmp/hol88-2.02.19940316-35.18oeu_iro I: cleaning package lists and apt cache... W: deleting files in /tmp: fileqvd4qK W: deleting files in /tmp: file4ofC8V W: deleting files in /tmp: root I: creating tarball... I: done I: removing tempdir /tmp/mmdebstrap.i7k3i9YtI7... I: success in 1113.8999 seconds md5: Value of 'md5' differs for hol88-library_2.02.19940316-35.1_amd64.deb md5: Size differs for hol88-library_2.02.19940316-35.1_amd64.deb md5: Value of 'md5' differs for hol88_2.02.19940316-35.1_amd64.deb md5: Size differs for hol88_2.02.19940316-35.1_amd64.deb sha1: Value of 'sha1' differs for hol88-library_2.02.19940316-35.1_amd64.deb sha1: Size differs for hol88-library_2.02.19940316-35.1_amd64.deb sha1: Value of 'sha1' differs for hol88_2.02.19940316-35.1_amd64.deb sha1: Size differs for hol88_2.02.19940316-35.1_amd64.deb sha256: Value of 'sha256' differs for hol88-library_2.02.19940316-35.1_amd64.deb sha256: Size differs for hol88-library_2.02.19940316-35.1_amd64.deb sha256: Value of 'sha256' differs for hol88_2.02.19940316-35.1_amd64.deb sha256: Size differs for hol88_2.02.19940316-35.1_amd64.deb Checksums: FAIL diffoscope run passed diffoscope run passed